fsfe-france
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fsfe-france] Re: Compilateurs et GPL


From: address@hidden
Subject: [Fsfe-france] Re: Compilateurs et GPL
Date: Thu, 30 Oct 2003 13:59:43 +0100
User-agent: Internet Messaging Program (IMP) 3.2.1

Bonjour,

>       [ Je réponds sur la liste publique FSF France qui est destinée
> à ce type de questions. J'ai supprimé toute référence explicite
> vous
> concernant, libre à vous de vous faire connaitre si vous le
> souhaitez. ]

Non, je n'ai rien a caché, vous avez bien fait de transmettre le message
à la liste ! :)

 
>       Comme je ne connais pas ce compilateur, il me faudrait plus
> d'information sur la nature des chaines en question.

Les chaines de caractères contiennent la déclaration et l'implémentation
de fonctions Python. En fait, le serveur web à la sortie utilise des
fonctions standards. Si l'utilisateur n'a pas écrit ces propres
fonctions standards, le compilateur utilise celle par défaut qui sont
stokées dans des chaines de caractères à l'intérieur de son propre code.

Une chaine n'est donc pas une instruction simple mais un ensemble
d'instructions, c'est-à-dire, en quelques sortes, un algorithme.

>       Le plus simple est sans doute que vous donniez un exemple
> simple (code source + code généré + instructions utilisées). 

L'exemple le plus simple que je peux vous donner est un "Hello, World"
dans sa forme la plus contractée :

### SOURCE Hello.cpy ###
CherryClass Root:
mask:
    def index(self): Hello, World !
### FIN SOURCE ###

L'instruction de compilation est la suivante :
python ../cherrypy.py Hello.cpy
(où Hello.cpy se trouve dans un sous-répertoire de la racine de CherryPy)

Le code généré à partir de cette source de 3 lignes est un fichier de
1111 lignes de Python. Il s'agit d'un serveur HTTP affichant une page
HTML contenant "Hello, World !" à l'URL "http://localhost:8000/";.

Pour générer ce fichier, le compilateur a utilisé des fichiers annexes
qui se trouvent dans le sous-répertoire "src" de la racine de CherryPy
(pour la partie "serveur HTTP" entre autre). Mais des bouts de codes
sont en plus stockés dans le code même du compilateur. Il s'agit, comme
je vous l'ai dit de fonctions standards permettant en l'occurence de
gérer le comportement du serveur à l'initialisation, à la réception
d'une requête HTTP, pour les erreurs d'URL, etc. Il contient en plus des
fonctions servant facilitant le déboggage. Dans un soucis de simplicité,
tout le code est dans un seul et même fichier, le fichier "compilé" qui
est en fait un script Python, donc facilement compréhensible pour un humain.

La différence, je pense, avec GCC est que ce dernier produit des
fichiers binaires, alors que CherryPy produit un autre code source.

Est-ce que ces explications ont éclairci un peu mon problème ? Le
mainteneur n'est pas au courant de toutes les subtilités des licences et
il envisage de passer le compilateur qui était jusque là sous licence
GPL, dans une licence BSD. Je suis persuadé que cette solution de
facilité n'est pas la plus judicieuse car nous perdrions les avantages
du copyleft. Comment donc permettre aux utilisateurs de CherryPy de
choisir la licence de leur choix tout en gardant le compilateur sous
licence GNU GPL ?

Merci pour votre aide.

Cordialement,

Damien Boucard
-- 
Étudiant UTBM     - Génie Informatique '03  -
Répondre à        - address@hidden  -
Develper Cherrypy - http://www.cherrypy.org -
Membre Club LoLuT - http://lolut.utbm.info  -




reply via email to

[Prev in Thread] Current Thread [Next in Thread]