1

J'ai une nouvelle version du compilateur ETP-basic (en C++). J'aimerais rendre le projet open source, parce que je sens que le projet va avancer vraiment doucement plus le temps passe moins j'ai du temps libre.

J'en ai un peu discuté avec squalyl IRL mais je repose la question ici.
Ma question c'est:

Comment faire un projet open source? ou comment rendre son projet open source...
Il faut faire un site avec un svn etc?.. systeme de proposition de patch etc.. comment ca marche vraiment?

Voila. Sachant que le but là n'est pas de concurrencer tigcc, on va proposer quelque chose de différent à savoir la compilation envers plusieurs cibles:
z80
68k (dejà fini)
nspire

le 68k cest du natif là. Pour les autres plateformes, mon compilo inclut un bout de génération de pseudo-assembleur qui pourrait etre utilisé comme langage assembleur intermédiaire avant d'etre traduit en asm z80 ou asm(Nspire). Ou autre solution, faire du bytecode. S'il y en a qui sont intéressés et/ou veulent contribuer (pour l'IDE, pour le compilo, l'eventuel virtual machine, pour le site, etc...)
Tout ce qui passe pas par le port 80, c'est de la triche.

2

Bah, en principe il suffit de sortir le code sous une licence libre (de préférence "GNU General Public License, version 2 or (at your option) any later version" (ou si tu veux "version 3 or (at your option) any later version", c'est le "any later version" l'essentiel parce que GCC passe aux nouvelles versions de la GPL quand elles sortent), ça permet d'utiliser ton code pour faire un frontend GCC).

Maintenant, si tu veux attribuer des contributeurs, une infrastructure avec un RCS (CVS, SVN, git, ..., peu importe) public (avec commit access pour les contributeurs réguliers), ça aide. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Les détails de la Free Software Foundation ici:

http://www.gnu.org/licenses/gpl-howto.html
Trout are freshwater fish and have under water weapons.
Trout are very valuable and immensely powerful.
Keep away from the trout.
Why should it mean that the fish in the sea are all unable to sing? Fish fish fish fish fish.
I wish that I could get my hands on a dozen fish!

4

J'aimerais une license assez permisive où les gens peuvent prendre le code et l'utiliser dans un projet closed source s'ils veulent. La seule restriction que je veux mettre, c'est éthique, càd empecher de dire la provenance du code etp pour un projet illicite ou qu'on approuve pas (tout en ne restreignant pas son utilisation)
C'est LGPL ca?

Si je mets en place un svn, à qui donner le droit d'écriture?
Tout ce qui passe pas par le port 80, c'est de la triche.

5

onur (./4) :
J'aimerais une license assez permisive où les gens peuvent prendre le code et l'utiliser dans un projet closed source s'ils veulent. [snip, cf. ci-dessous]C'est LGPL ca?

Ce que tu veux là (mis à part la phrase que je cite à part plus bas) m'a plutôt l'air d'une licence de type X11 ou BSD. La LGPL demande qu'ils séparent clairement ton code du leur, fournissent les sources pour leur version modifiée de ton code et fournissent un moyen (linkage dynamique, publication des sources ou des fichiers objet, ...) de modifier et/ou mettre à jour ton code.

Les licences X11 et BSD sont compatibles avec la GPL (sauf si tu mets la fameuse "advertising clause" de l'ancienne licence BSD), donc le code resterait utilisable pour un frontend GCC par exemple, mais je te conseille de réfléchir 2 fois là-dessus. Veux-tu vraiment qu'une entreprise comme M$ puisse prendre tout ton code, ne rien donner en échange, et vendre le résultat comme un produit propriétaire? C'est exactement ce qu'ils ont fait avec la pile TCP/IP de BSD, par exemple.
La seule restriction que je veux mettre, c'est éthique, càd empecher de dire la provenance du code etp pour un projet illicite ou qu'on approuve pas (tout en ne restreignant pas son utilisation)

Euh, les licences utilisées sont en général plutôt le contraire, on est obligés de citer la provenance. Enfin, il y a quand-même ce paragraphe de la licence BSD:
Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

(que la FSF retient compatible avec la GPL v2, et dans la v3 la compatibilité est explicite, cf. le paragraphe 7d qui autorise "Limiting the use for publicity purposes of names of licensors or authors of the material") qui apporte une certaine protection. Mais la notice "Copyright 2007 Onur Celebi" va forcément se retrouver au minimum quelque part dans les sources avec toutes les licences libres courantes (et ton code n'est plus compatible avec au moins la GPL si tu interdis ça).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

Sinon, pour une cible Nspire, il faudrait déjà qu'on puisse faire tourner du code natif...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

c'est une ouverture prévue.

Onur, pour ton souci de publication, t'inquiete pas, on peut voir ça en pause café.
Pour les droits d'écriture, d'après moi, ça devrait être réservés aux développeurs "permanents", et tu demandes aux contributeurs occasionnels d'envoyer des patches par rapport à des révisions données.

Moi je pense que tu devrais bien préciser ce que tu veux. Obliger la liberté du compilateur et autoriser des choses plus restrictives pour le code produit, par exemple.

Comme ça ton boulot reste libre, mais les trucs produits par ton boulot, les gens en font ce qu'ils veulent. non?

Kevin, est ce que c'est possible quelque chose de ce genre?

précédents > Ah je connaissais pas cette histoire de TCP, c'est vraiment dégeu neutral

8

squalyl (./7) :
précédents > Ah je connaissais pas cette histoire de TCP, c'est vraiment dégeu droit.gif


bah si la licence est prévue pour permettre ça, quel est le problème ? embarrassed
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

9

chais pas, ça fait un peu pikassiette quand même sorry

tant pis pour BSD, oué, mais bon...

10

pourquoi ça ? ça me paraît pas si étonnant que ça que des gens qui font une pile TCP/IP stable et performante aient envie que tout le monde puisse en profiter, y compris l'Empire du Mal ^^

onur (./4) :
La seule restriction que je veux mettre, c'est éthique, càd empecher de dire la provenance du code etp pour un projet illicite

Tu veux une clause qui dise que c'est illicite de mettre ton code dans un projet illicite ? tritop Une licence n'empêche pas physiquement qqun de faire qqch, juste légalement, donc je vois pas trop l'intérêt d'interdire des trucs déjà illégaux cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

squalyl (./7) :
Moi je pense que tu devrais bien préciser ce que tu veux. Obliger la liberté du compilateur et autoriser des choses plus restrictives pour le code produit, par exemple.

Comme ça ton boulot reste libre, mais les trucs produits par ton boulot, les gens en font ce qu'ils veulent. non?
Kevin, est ce que c'est possible quelque chose de ce genre?

Bah évidemment, c'est le cas de GCC par exemple.

La licence du compilateur n'influe pas du tout sur la licence du code produit. En revanche, s'il y a un runtime qui est linké dedans, la licence du runtime influe sur le code qui l'utilise, c'est pour ça que les libs de GCC (libgcc, libstdc++ etc.) ont une exception à la GPL pour permettre l'utilisation de ces libs dans du code propriétaire. TIGCCLIB utilise la même exception.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

Ok, la LGPL me va.
Pollux (./10) :
Tu veux une clause qui dise que c'est illicite de mettre ton code dans un projet illicite ?


Oui, j'ai mal dit. Je pensais par exemple aux libs de site web qui sont utilisés dans des sites porno et qu'on veut pas que les sites citent la provenance de cette lib pour l'image de la lib. Je vois pas vraiment comment un compilo pourrait entrer dans ce cas là mais bon. Ca me semble une clause importante.

Kevin Kofler (./6) :
Sinon, pour une cible Nspire, il faudrait déjà qu'on puisse faire tourner du code natif...


Ca en est où cette histoire? je suis pas vraiment de près à vrai dire. Je pense qu'il y en a quelques uns qui seraient interessés d'adapter un compilo qui peut cracher du code pour à la fois 68k et Nspire. Au passage, ca explique aussi mon interdiction d'appeler les rom_call des tios sur 68k directement.
squalyl (./7) :
Pour les droits d'écriture, d'après moi, ça devrait être réservés aux développeurs "permanents", et tu demandes aux contributeurs occasionnels d'envoyer des patches par rapport à des révisions données

oui.
squalyl (./7) :
Moi je pense que tu devrais bien préciser ce que tu veux. Obliger la liberté du compilateur et autoriser des choses plus restrictives pour le code produit, par exemple

oui aussi. J'ai donné les grandes lignes dans le premier post. En gros cest: langage simple et unique et un truc qui pond du code pour plusieurs machines avec la meme source.

Apres, les autres parties peuvent bénéficier peut etre de licenses différentes: l'IDE, le vm (s'il y a lieu), les libs runtime etc..
Tout ce qui passe pas par le port 80, c'est de la triche.

13

onur (./12) :
Je pense qu'il y en a quelques uns qui seraient interessés d'adapter un compilo qui peut cracher du code pour à la fois 68k et Nspire.

Bah, tant qu'on ne peut rien faire tourner sur la Nspire, ça reste obligatoirement du vapor. Et rien ne dit qu'il sera un jour possible de faire tourner des programmes dessus, il y a beaucoup de protections.
Au passage, ca explique aussi mon interdiction d'appeler les rom_call des tios sur 68k directement.

Mais il faut voir à quel prix. Bien sûr, un programme qui utilise les ROM_CALLs 68k directement ne sera pas portable (sauf si le ROM_CALL en question est émulé dans le runtime* pour les autres machines). Mais l'alternative est qu'on n'a accès qu'à un nombre très limité de fonctionnalités (celles proposées par ton runtime* portable), ce qui limite beaucoup l'utilité du langage. Personnellement, je retiens la compilation conditionnelle (#ifdef), avec en plus un moyen d'accès aux fonctions natives par plateforme, comme une meilleure solution, ça permettrait aussi d'implémenter un runtime portable dans le langage-même.

Un autre problème est que tes fonctions ne sont pas vraiment portables. Ce n'est pas le fait de renommer DrawStr en Locate qui va changer le fait que ta fonction a exactement le prototype de DrawStr et prend les mêmes valeurs numériques, valeurs qui en plus sont codées en dur (pas de constantes de type A_NORMAL, à moins que tu ne les aies rajoutées pendant la réécriture).

* Quand je parle de runtime, ça comprend aussi une lib statique de type tigcc.a et même des fonctions copiées-collées directement par le compilateur dans le code généré, ce n'est qu'un détail d'implémentation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

En tous cas, vu les performances de fast rpl sur le z80, faire tourner du bytecode sur les z80 me semble une bonne idée. Pour la nspire, on verra bien.

Je suis pas trop pour la compilation conditionnelle.. Je pense que c'est beaucoup plus facile pour l'utilisateur d'avoir un seul et unique code qui tourne sur plusieurs machines. Pour tout ce qui est taille de l'écran, on peut utiliser des pseudo-constantes.
Tout ce qui passe pas par le port 80, c'est de la triche.

15

j'ai pas compris: pourquoi pas de code natif sur z80 confus

16

parce que c'est super difficile sad
Tout ce qui passe pas par le port 80, c'est de la triche.

17

18

> Je pense que c'est beaucoup plus facile pour l'utilisateur d'avoir un seul et unique code qui tourne sur plusieurs machines
Ca a un coût en termes de taille et de vitesse...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

19

Et ce n'est pas très faisable non plus. Déjà les jeux ont du mal à gérer les 2 tailles d'écran des 68k correctement, alors si après tu rajoutes les Z80 et la Nspire, ça ne va plus du tout.

AMHA, le programme qui tourne sur toutes les calculatrices sans modification ni compilation conditionnelle est un rêve pas réaliste du tout.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

Pas de modif du tout non. Mais un minimum quoi.
Tout ce qui passe pas par le port 80, c'est de la triche.

21

Kevin > Ou alors ça restera des programmes simples et/ou mal optimisés.

22

Oui y aura un prix à payer mais l'optimiseur à cible fixée marchera bien. Et je suis persuadé de que meme en bytecode ca va etre rapide vu fast rpl.
Tout ce qui passe pas par le port 80, c'est de la triche.

23

À quand la release?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

Je ne sais pas. Moi j'ai plus trop le temps de continuer. Ca dépendra du nombre de personne qui se mettent sur le projet
Tout ce qui passe pas par le port 80, c'est de la triche.

25

Mais on ne peut pas se mettre sur le projet si tu ne releases pas ce que tu as déjà. smile Ou n'as-tu pas du tout commencé?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

Ah tu parles de ce release là. Dès que je peux. Il faut quoi? Un site web, avec un outil de versionning?
Tout ce qui passe pas par le port 80, c'est de la triche.

27

Alors strict minimum il faut un tarball qui contient les sources sous une licence acceptable.
Mais un outil de versioning serait un plus. Soit tu demandes l'hébergement à un des grands sites comme SourceForge, Google Code Hosting, BerliOS, Savannah, Gna! etc., soit tu t'arranges pour héberger un petit serveur de contrôle de révision (CVS, SVN ou autre) quelque part, soit tu demandes à Tyler Cassidy, il peut peut-être te proposer un SVN sur calcforge.org.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

28

#vapor# ... roll

Tu ne risques pas d'obtenir de la participation si tu n'ouvres même pas un projet. roll

Je ne pense pas que créer un compte sur un des grands sites que j'ai mentionnés prenne 2 mois. grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

29

Tout ce qui passe pas par le port 80, c'est de la triche.

30

lol
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.