LibFR inform6: Licence et nouvelle version

Je pense qu’il faudrait « faire pression » sur les développeurs d’inform6 pour qu’ils l’incluent d’office (ils ne se rendent pas forcément compte que c’est nécessaire s’ils sont anglo saxons) et permettent un flag pour utiliser l’iso-machin à la place. On est en 2016, ça fait plus de 10 ans que j’ai passé tous mes fichiers textes en utf8, et même si je suis pour le maintien des anciennes fonctionnalités le plus longtemps possible et ne pas tout casser d’une version à l’autre, ici ça me semble quand même nécessaire depuis le temps. Reste à savoir ce que donne l’ouverture d’un fichier utf8 depuis windows (genre l’odieux notepad.exe), est-ce qu’il va pouvoir relire le texte correctement ?

I � unicode :wink:

c’est pas encore gagné…

Déjà, j’avais l’habitude d’utiliser plusieurs sources de bibliothèques, séparées par des virgules. Visiblement, maintenant ça bloque si le chemin est trop long :

vers la fin, le « tr » fait référence à « trunk », il n’a pas pu aller au bout. En fait, dans la nouvelle organisation des fichiers, le dossier « outils » n’existe plus, du coup je ne sais pas si cet affichage a été provoqué par cela ou si c’est lié à une limitation qu’il n’y avait pas auparavant. En tout cas avant on mettait divers chemins possibles et inform se débrouillait avec cela. Vu que ce nouveau compilateur est prévu pour Inform7, avec des chemins quasi intangibles, c’est possible que ça soit moins souple qu’auparavant

J’ai corrigé les chemins chez moi, et mis uniquement de vrais chemins existant :

inform -v5 +include_path=/usr/local/share/inform/lib,/home/monlogin/perso/_mesdocs/mes_vcs/i6-french-language/,/home/monlogin/perso/_mesdocs/mes_vcs/svn_inform_tuxfamily/informfr/outils/divers/trunk/ +Language_name=French monjeu

Néanmoins j’ai là une autre erreur :

J’ai copié dans un dossier temporaire les 2 dossiers qui posaient problème + les options qui vont bien :

inform -v5 +include_path=./lib,/usr/local/share/inform/lib,/tmp/libs +Language_name=French '$MAX_VERBS=180'  '$MAX_ACTIONS=250' '$MAX_DICT_ENTRIES=2000' monjeu 

et là il manque trop de choses :

(12 erreurs en tout)

Je vois que dans English.h il y a une référence à « Constant COLON__TX », il faudra sans doute le rajouter, ainsi que d’autres dans la bibl francophone, ou bien modifier le fichier parser.h

Et à mon avis, ce n’est pas terminé… les fichiers parser.h et english.h ont été complètement modifiés depuis la version 6.11, du coup je pense que ça va être un gros travail pour mettre ça à jour.

Ah, tu as essayé de mixer 6.12 et les biblis francophones actuelles? Wouarf, en effet y’a du boulot…
Pour ce qui est d’Unicode, j’espère quand même que notepad.exe sait les afficher, mais je vérifierai…

Akien, je vois sur les listes debian que Ben Finney veut faire un package inform6-compiler et un autre inform6-library ? Il me semble qu’il compte packager la 6.11 anglaise dans le package. Ça me fait penser: est-ce qu’il y a moyen de dire « nécessite la version 6.11 du package, ne peut pas marcher avec la version 6.12 » ?

(Est-ce qu’on veut demander à ce Ben Finney si il veut inclure les biblis françaises dans le package quand elles seront terminées ? Ou est-ce que c’est mieux de faire un package complet inform6-library-fr ? Ou est-ce qu’il faut qu’il fasse un package inform6-library sans aucune bibli de langue et deux packages inform6-library-en et inform6-library-fr ? X) )

J’utilisais ça comme entête de mon source : !% -Cu !% -SD !% -v8 !% +include_path=./,./lib,./lib/lib,./lib/source !% +language_name=english.h

De mémoire, pour éviter les erreurs, il faut mettre à jour la fin du fichier FrenchG.h avec le grammar.h de la 6.12 : [code]! ------------------------------------------------------------------------------
! Final task: provide trivial routines if the user hasn’t already:
! ------------------------------------------------------------------------------

Default Story 0;
Default Headline 0;
Default d_obj NULL;
Default u_obj NULL;

Stub AfterLife 0;
Stub AfterPrompt 0;
Stub Amusing 0;
Stub BeforeParsing 0;
Stub ChooseObjects 2;
Stub DarkToDark 0;
Stub DeathMessage 0;
Stub Epilogue 0;
Stub GamePostRoutine 0;
Stub GamePreRoutine 0;
Stub InScope 1;
Stub LookRoutine 0;
Stub NewRoom 0;
Stub ObjectDoesNotFit 2;
Stub ParseNumber 2;
Stub ParserError 1;
Stub PrintTaskName 1;
Stub PrintVerb 1;
Stub TimePasses 0;
Stub UnknownVerb 1;

#Ifdef TARGET_GLULX;
Stub HandleGlkEvent 2;
Stub IdentifyGlkObject 4;
Stub InitGlkWindow 1;
#Endif; ! TARGET_GLULX

#Ifndef PrintRank;
[ PrintRank; « . »; ];
#Endif;

#Ifndef ParseNoun;
[ ParseNoun obj; obj = obj; return -1; ];
#Endif;

#Ifdef INFIX;
Include « infix »;
#Endif;

! ==============================================================================

Undef LIBRARY_STAGE; Constant LIBRARY_STAGE = AFTER_GRAMMAR;

#Ifnot; ! LIBRARY_STAGE < AFTER_GRAMMAR but ~= AFTER_VERBLIB
Message « Error: ‹ verblib › needs to be correctly included before including ‹ grammar ›. This will cause a big number of errors! »;
#Endif;

#Ifnot; ! LIBRARY_STAGE >= AFTER_GRAMMAR : already included
Message « Warning: ‹ grammar › included twice; ignoring second inclusion. (Ignore this if this is on purpose.) »;
#Endif;

#Ifnot; ! LIBRARY_STAGE is not defined
Message « Error: ‹ parser ›, then ‹ verblib › need to be correctly included before including ‹ grammar ›. This will cause a big number of errors! »;
#Endif;

! ==============================================================================[/code](LowerCase et UpperCase sont dorénavant dans english.h et il me semble qu’il y avait bien une constante ou une variable non définie ou déclarée qui obligeait à modifier parser.h ; mais là, sans être un bogue, c’est à mon sens une erreur de David Griffith, puisque la traduction des bibliothèques devrait pouvoir être faite en modifiant seulement les fichiers english.h [French.h] et grammar.h [FrenchG.h])

J’avais passé du temps à tester la 6.12 et elle compilait correctement sans problèmes majeurs.
(Quant à l’UTF-8, je constate que vous considérez ENFIN son usage dans les bibliothèques et dans le source du jeu !)

Ah super, merci pour les flags !

Pour UpperCase et LowerCase, est-ce que c’est parce que les langues ont des alphabets différents ? Si on veut dire que « É » est l’uppercase de « é », et si Uppercase est dans parser, ça veut dire qu’il faut modifier parser alors que c’est juste parce que les anglophones n’ont pas prévu le coup… Enfin, si je me rappelle bien de ce que font ces routines.

Pour ce qui est de 6.12, je crois que ça marche bien en effet - les problèmes signalés pour la 6.12.1 sont relativement mineurs (« est-ce qu’on a bien interprété le DM4 », etc), enfin je crois ! Je crois qu’il n’y a pour l’instant aucun jeu qui utilise 6.12, par contre.
Et oui, on aurait peut-être dû passer en Unicode avant mais bon ^^

Ça y est ! J’ai opéré le changement de la licence pour la bibliothèque francophone I6 : bitbucket.org/informfr/i6-frenc … 590a1dc69f

La nouvelle licence est donc l’Artistic License 2.0, conformément à la licence d’Inform 6 Library.

J’imagine qu’un changement de licence similaire devrait être fait pour la bibliothèque francophone I7 ?

Oui, mais comme je l’ai déjà dit, si l’extension est distribuée sur le site d’Inform 7, on devra prendre du CC-BY.

La même chose s’applique pour la Public Library intégrée à l’IDE (qui permet de télécharger les extension depuis l’IDE).

Bien sûr, rien ne nous oblige à la distribuer sur le site d’I7, mais comme l’extensions française est censée être un peu « officielle »…

Je ne suis pas contre, Otto non plus, reste à savoir pour les autres puisque une partie de l’extension provient de la bibli I6 (la routine LanguageToInformese et les réponses, entre autres). Techniquement, il faudrait peut-être aussi demander à Graham Nelson son avis, puisqu’il à fait une grosse partie (la conjugaison automatique des verbes, notamment).

Merci pour tes commits ! J’ai fermé les tickets correspondants :slight_smile:

Ah très bien, je n’avais pas vu qu’il y avait déjà des tickets pour ça. J’ai jeté un coup d’oeil à tous les tickets du coup et ait ajouté deux trois commentaires.

J’aimerai bien faire un peu de « cleanup » cosmétique dans les fichiers pour partir sur de bonnes bases. Je ferai sûrement ça via une merge request pour que vous puissiez vérifier que je ne fais pas de bêtises, puisque je ne suis pas très familier de la syntaxe utilisée par les lib Inform.

Est-ce qu’il y a une référence pour cette syntaxe par ailleurs ?

Modération : J’ai déplacé les messages inappropriés d’Auraes et leurs réponses vers un autre fil de discussion. J’ai hésité à les supprimer mais je n’ai pas envie de faire un pseudo martyr qui irait crier à la censure injustifie. Je laisse donc ses messages visibles pour que chacun puisse se faire un avis de la justesse ou non de ma décision.

J’avais un peu de temps aujourd’hui alors j’ai corrigé quelques bugs faciles :slight_smile:

J’aimerais bien des avis sur ticket #21 (quelle formulation), ticket #28 (où met-on les messages entre crochets), et ticket #31 (quelles réponses doivent avoir des points d’exclamation), qui sont des questions de conventions et d’homogénéisation – notamment, est-ce que les gens d’I7 font différemment, etc. Merci :slight_smile:

Fais au mieux je pense, comme tu le sens sera sans doute très bien. Au pire des cas, si une modification choque quelqu’un, il sera temps d’en discuter après.

21 : C’est affiché à quelle occasion ? Je n’arrive pas à le trouver dans I7.

28 : Peut-être qu’on pourrait mettre entre crochets tous les messages qui s’adressent directement au joueur devant son ordinateur. Comme ça ça ne prend pas en compte les messages du style « Je n’ai pas compris ». Ou alors on met vraiment tout entre crochets tant que ce n’est pas quelque chose qui s’est déroulé dans le jeu, quittes à reprendre des habitudes (de toutes façon, ça ne dérangera pas les hypothétiques nouveaux). On peut aussi carrément ne plus mettre de crochets du tout. (pour le coup du « mettez toujours les traits d’union », les crochets sont utiles car l’action continue quand même après, alors il faut quelque chose pour séparer le message.)

31 : J’en avais enlevé quelques-uns, notamment le « Sortir d’où ?! », qui avait le mauvais goût de combiner un phrase abrupte sans verbe, le point d’interrogation et le point d’exclamation. Mais c’est vrai qu’il en reste plein. Je suis pour qu’on les enlève, sauf peut-être pour les évidences comme « Vous ne pouvez pas poser un objet sur lui-même ! », puisque là c’est peu de la faute du joueur.

Dans tous les cas, dis-nous clairement les modifications effectuées, pour que je puisse faire la même chose avec I7.

(Je ne suis pas trop pour qu’on discute de la bibli ici. C’était surtout destiné à la licence. On avait un fil dédié. On peut aussi en faire un nouveau puisque l’autre est un peu vieux, ou on peux ne passer que par Bitbucket, mais c’est bof.)

Oui, par contre même dans un cas comme celui-ci, ça peut arriver parce que le parseur n’a pas bien fait la différence entre 2 objets (ou que l’auteur du jeu n’a pas mis les bons synonymes etc), de toute façon même sans exclamation, la phrase garde son sens.

D’où le « peut-être ». :wink:

Merci pour vos commentaires ici et sur bitbucket. Je suis en voyage cette semaine mais j’y répondrai :slight_smile:

Petite question/suggestion concernant l’attribution et les remerciements pour les bibliothèques francophones, mais lors d’une partie (pas dans la source donc).

En ce moment, il existe un verbe « version française » en I6 qui fait exactement la même chose que « version » mais avec une petite ligne en plus qui indique la version de la bibli :

Du coup ça fait un peu inutile je trouve.

Est-ce que ce ne serait pas mieux de tout simplement insérer cette ligne à « version » directement ? Je propose qu’on fasse cela, et que « vf » affiche un texte plus détaillé, qui indique la licence et remercie tous ceux qui ont contribué : JL, Stormi, Otto, Mule, Akien, la communauté espagnole, Graham Nelson…

On pourrait faire la même chose pour I7. On remplacerait ça :

par

Qu’en pensez vous ? Il faudra juste se mettre d’accord pour un texte commun à I6 et I7 (excepté pour les ajouts d’I7).

Ça me semble bien. Fait comme tu le sens.

J’ai fait quelques trucs sur la bibli aujourd’hui pour ceux que ça intéresse. Pour la suite :

  • Pour la version à venir je voudrais régler deux-trois trucs mineurs + la simplification de la table des pronoms (cf I7) + le coup de la version, là ;
  • J’aimerais bien avoir le déconjugueur prêt pour la version suivante + le truc sur les « de/du/des » que j’ai bugtracké aujourd’hui (qui sont des gros changements même si invisibles pour l’utilisateur si bien faits) ;
  • Ensuite (et seulement ensuite) on passe en Unicode et en 6.12. (Parce que tout ça nécessite de changer la version du compilateur utilisée.)

Ça irait ? Akien, tu penses qu’une version intermédiaire (i.e. pas Unicode 6.12) serait bien pour être paquetée ?

C’est qui « Communauté IFiction-FR » ?!

Ah bon !