HISTORIQUE v1.2, octobre 2007 : • Première version disponible. v1.3, octobre 2008 : • Options : ``-shift``, [[``-width``]]. • Correction d'un bug pour les graphes de ''permutation''. • Accélération du test d'ajacence pour les arbres, de O(n) à O(1), grâce à la représentation implicite. • Nouveaux graphes : ''outerplanar'', ''sat''. v1.4, novembre 2008 : • Nouveaux formats de sortie : ``matrix``, ``smatrix``, ``list``. • Nouveau graphe : ''kout''. • Correction d'un bug dans l'option [[``-width``]]. • Correction d'un bug dans la combinaison ``[[-format]] -shift [[-delv]]``. v1.5, décembre 2008 : • Correction d'un bug dans ''tree'' lorsque n=1. v1.6, décembre 2009 : • Nouveaux graphes : ''rpartite'', ''bipartite''. v1.7, janvier 2010 : • Nouveaux graphes : ``icosa``, ``dodeca``, ``rdodeca``, ``cubocta``, ``geo``, ''wheel'', ''cage'', ``headwood``, ''pappus'', ''mcgee'', ``levi``, ''butterfly'', ''hexagon'', ''whexagon'', ''arytree'', ''binary'', ''ktree'', ''tw'', ''kpath'', ''pw'', ''arboricity'', ''wagner'', ''mobius'', ''tutte-coexter'', ''paley''. • Nouveau format de sortie : ``[[-format]] dot``. • Nouvelles options : [[``-header``]], ``-h``, [[``-redirect``]], ``-dotpdf``. • Correction d'un bug dans ''kout'', et dans ''tree'' lorsque n=0. • ''tree'' devient un cas particulier d\'''arboricity''. • Aide intégrée pour les paramètres des graphes. v1.8, juillet 2010 : • Nouveaux graphes : ''chvatal'', ''grotzsch'', ''debruijn'', ''kautz'', ''gpstar'', ''pstar'', ''pancake'', ''nauru'', ''star'', ''udg'', ''gpetersen'', ''mobius-kantor'', ''desargues'', ''durer'', ''prism'', ''franklin'', ''gabriel'', ''thetagone'', ''td-delaunay'', ''yao'', ''theta'', ''dtheta''. • Suppression du graphe ``geo`` (remplacé par ''udg''). • Nouvelles options : ``-pos``, [[``-norm``]], [[``-label``]], ``-dotfilter``. • Nouvelle famille d'options : ``[[-xy]] file/noise/scale/seed``. • Définition plus compacte de ``dodeca`` (non explicite). • Utilisation du générateur ``random()`` plutôt que ``rand()``, pour garantir une meilleure génération de valeurs aléatoires. • Correction d'un bug dans ``[[-format]] standard`` qui provoquait une erreur. • Correction d'un bug dans kneser pour k=0, n=0 ou k>n/2. • Nouveaux formats : ``-format dot``, ``-format xy``. • Suppression de ``-dotpdf`` (qui est maintenant : ``-format dotpdf``). • Labeling pour : ''gpetersen'', ''gpstar'', ''pstar'', ''pancake'', ''interval'', ''permutation''. v1.9, août 2010 : • Renommage de ``-h`` en [[``-list``]]. • Renommage de ``-xy file`` en [[``-xy load``]]. • Centrage des positions sur le barycentre des graines ([[``-xy seed``]]). • Nouvelles options : [[``-star``]], [[``-visu``]], [[``-xy round``]]. • Les graphes peuvent être stockés en mémoire, sous la forme d'une liste d'adjacence grâce à l'option [[``-check``]]. • Généralisation de [[``-delv

``]] avec p<0. • Nouveaux graphes : ''caterpillar'', ''hajos'', ''hanoi'', ''sierpinski'', ''sunlet'', ''load''. • Labeling pour : ''hanoi'', ''sierpinski''. • Aide sur toutes les options (nécessitant au moins un paramètre) et non plus seulement pour les graphes. • Nouvelle famille d'options : ``[[-vcolor]] deg/degr/pal``. • Correction d'un bug pour l'aide dans le cas de commande préfixe (ex : ``pal`` & ''paley''). v2.0, septembre 2010 : • Nouvelles options : ``[[-vcolor]] degm/list/randg``, ``[[-xy]] unique/permutation``, [[``-check bfs``]], ``-algo iso/sub``. • L'option [[``-xy round

``]] admet des valeurs négatives pour p. • Le graphe [[``load ``]] et l'option [[``-xy load ``]] prennent en charge la lecture à partir de l'entrée standard (en donnant ``-`` comme nom de fichier), la lecture de famille de graphes, et les commentaires. • Les formats ``list``/``matrix``/``smatrix`` utilisent un espace linéaire O(n+m) contre O(n²) auparavant. • Les sommets sur le bord (graphes géométriques) ne sont plus coupés (boîtes englobantes plus grandes). • Nouveaux graphes : ''kpage'', ''outerplanar n (= kpage n 1)'', ''rng'', ''nng'', ''fritsch'', ''soifer'', ''gray'', ''hajos'' (qui avait été défini mais pas implémenté !), ''crown'', ''moser'', ''tietze'', ''flower_snark'', ''markstrom'', ''clebsch'', ''robertson'', ''kittell'', ''rarytree'', ''rbinary'', ''poussin'', ''errera''. • Les graphes de ''gabriel'' (ainsi que ''rng'' et ''nng'') dépendent maintenant de [[``-norm``]]. • ''wheel n'' a maintenant n+1 sommets, et non plus n. • Aide intégrée améliorée avec ``?``. Ex : gengraph tutte ? ; gengraph -visu ? • Les options ``-help`` et ``?`` permettent la recherche d'un mot clef. Ex : gengraph -help planaire ; gengraph ? arbre • Description plus compacte de ''tutte'' (et des graphes à partir d'un tableau). • Correction d'un bug pour ''rpartite'' (qui ne marchait pas). v2.1, octobre 2010 : • Nouvelles options : ``[[-check]] degenerate/gcolor/edge/dfs/ps1/paths/paths2/minor/isub``, ``[[-filter]] minor/sub/iso/vertex/edge/degenerate/ps1``, ``-filter degmax/degmin/deg/gcolor/component/radius/girth/diameter``, ``-filter cut-vertex/biconnected/isub/all/minor-inv/isub-inv/sub-inv``. • Renommage de ``-algo iso/sub`` en ``-check iso/isub``. • Extension de [[``-label ``]] à b=2 qui force l'affiche des noms sous forme d'entiers, même avec [[``-permute``]]. • Correction d'un bug pour ''house'' (qui ne marchait pas). • Nouveau graphe : ''windmill''. v2.2, novembre 2010 : • Gestion des graphes orientés : lecture d'un fichier de graphe (ou d'une famille avec arcs et arêtes). • Nouvelles options : [[``-[un]directed``]], [[``-[no]loop``]], ``[[-check]] twdeg/tw``, ``[[-filter]] tw/id/hyperbol/rename``. • Permet l'affichage de la valeur (``p``) dans l'option ``-filter``. • Nouveau graphe : ''aqua''. • Correction du graphe ''tutte-coexter'' et suppression du graphe ``levi`` (qui en fait était le graphe de Tutte-Coexter). • Généralisation du graphe ''load'' à ``load : ``. v2.3, décembre 2010 : • Nouvelles options : ``[[-check]] ps1bis/edge``, ``[[-filter]] ps1bis/tw2``, ``-filter minus/minus-id/unique/connected/bipartite/forest``, ``-check ps1ter``. • Remplacement de ``LONG_MAX`` par ``RAND_MAX`` (=2^31-1) dans les expressions faisant intervenir ``random()`` (qui est de type ``long`` mais qui est toujours dans [0,2^31[, même si ``sizeof(long)``>4). Il y avait un bug pour les architectures avec ``sizeof(long)``>4. • Nouveau graphe : ''cylinder''. • Suppression de la variante ``''load'' :`` au profit de la forme plus générale ``:`` valable pour ''load'', ``-filter``, etc. v2.4, janvier 2011 : • Correction d'un bug dans ``[[-filter]] minus-id``. • Correction d'un bug dans ''rpartite'' (incorrect à partir de r>5 parts). • Correction d'un bug dans ''whexagon'' (nombre de sommets incorrect). • Nouvelles options : ``[[-check]] ps1x/girth``, ``-filter ps1c/ps1x``. • Renommages : ``ps1bis`` → ``ps1b``, ``ps1ter`` → ``ps1c``. • Nouveau graphe : ''mycielski''. • Le graphe ''grotzsch'' est maintenant défini à partir du graphe ''mycielski'' (la définition précédente était fausse). • Bug détecté : ``''td-delaunay'' 500 [[-check gcolor]] [[-format]] no [[-seed]] 7 | grep '>6'`` qui donne jusqu'à 7 couleurs ; le nombre de couleurs affichées dans [[``-check gcolor``]] est erroné. v2.5, mars 2011 : • Nouveaux graphes : ''line-graph'', ''claw''. v2.6, juin 2011 : • Amélioration du test ``[[-filter]] ps1`` : détection de cliques et d'arbres. v2.7, octobre 2011 : • Nouvelle option : [[``-check bellman``]] (pour les géométriques seulement). • Ajout des champs ``xpos,ypos`` à la structure ``graph``. • Nouveaux graphes : ''linial'', ''linialc'', ''cube'', ''diamond'', ''theta0''. v2.8, novembre 2011 : • Nouveaux graphes : ''ggosset'', ''gosset'', ''rplg'', ''wiener-araya'', ``headwood4``. • Correction d'un bug pour [[``-xy seed ``]] lorsque k=1. • Nouvelles options : ``-check maincc``, [[``-maincc``]] (non documentée). v2.9, février 2013 : • Nouveau graphe : ''frucht'', ''halin''. • Correction d'un bug pour [[``-check gcolor``]] qui ne renvoyait pas le nombre correct de couleurs, et qui de plus n'utilisait pas l'heuristique du degré minimum. • Correction d'un bug affectant ``''permutation'' [[-label]] 1``. v3.0, octobre 2013 : • Nouveaux graphes : ''rig'', ''barbell'', ''lollipop''. • Généralisation de l'option ``[[-filter]] forest``. • Nouvelles options : [[``-apex``]], ``-filter isforest``, ``-filter istree``, ``-filter cycle``. • Correction d'un bug dans ``-filter vertex``. • Amélioration de l'aide lors d'erreurs de paramètre comme : ``-filter vertex`` au lieu de [[``-filter vertex ``]]. • Amélioration de l'option [[``-header``]]. v3.1, décembre 2013 : • Nouveau graphe : ''bpancake''. • Légère modification des labels des sommets des graphes ''pancake'', ''gpstar'' et ''pstar''. • Nouvelles options : [[``-xy grid``]], [[``-xy vsize``]]. • Modification de la taille des sommets pour ``dot`` permettant de tenir compte de ``-xy scale``. v3.2, mai 2014 : • Amélioration du test de [[``-check ps1b``]] (ajout de règle et réduction du nombre d'indéterminées dans graphes des conflits). v3.3, juillet 2014 : • Modification importante du code pour [[``-check ps1``]]. • Modification des graphes ''linial'' et ''linialc''. • Nouvelles options : [[``-check kcolor``]], [[``-vcolor kcolor``]], ``-len``, [[``-check kcolorsat``]]. v3.4, février 2015 : • Documentation et mise au point de l'option [[``-maincc``]]. • Correction d'un bug lors de la combinaison de ``load `` et de [[``-vcolor pal ``]]. • Correction d'un bug dans la fonction ``SortInt()`` qui affectait [[``-vcolor deg``]]. • Correction d'un bug avec l'option ``[[-label]] 1`` pour certains graphes (''outerplanar''…). • Création du script ``dot2gen.awk`` pour convertir le format DOT en format standard (voir ''load''). • Nouvelles options : [[``-fast``]], [[``-caption``]]. • Introduction du groupement d'arêtes/arcs ``i-(j k …)`` dans le format standard (il reste un bug si ce format est lu depuis l'entrée standard). v3.5, mars 2015 : • Correction d'un bug pour le dégradé de couleurs avec [[``-vcolor pal ``]]. • Nouvelles options : ``[[-check]] ncc/connected``, ``[[-check routing]] scenario […] cluster``. • Nouvelle variante de graphe : ''loadc ''. • Nouveaux graphes : ''octahedron'', ''turan'', ''hexahedron'', ''tetrahedron'', ''deltohedron''=''trapezohedron'', ''antiprism'', ''flip'', ''associahedron'', ''shuffle''. • Changements de nom (ajout du suffixe ``hedron``) pour : ''isocahedron'', ''dodecahedron'', ''cuboctahedron'', ''rdodecahedron''. v3.6, juin 2015 : • Nouvelles options : [[``-version``]], [[``-variant``]], [[``-check info``]], [[``-xy mesh``]], [[``-check routing tzrplg``]], [[``-check routing dcr``]]. • Nouveaux graphes : ''percolation'', ''hgraph'', ''cricket'', ''moth'', ''bull'', ''expander''. • Correction de bug dans ``-help ?``, dans ``-check girth`` (qui donnait -1 pour un cycle de taille n), dans ''butterfly'' (mauvais nombre de paramètres). • Vérification que le nombre de sommets n'est pas négatif pour plusieurs graphes dont ''tree'', ''kout'', etc., ce qui pouvait provoquer des erreurs. • Vérification du format d'entrée pour ''load[c]''. • L'option ``-check maincc`` n'affiche plus le graphe initial. • Description du format des familles de graphes dans l'aide. • Affiche plus de messages d'erreurs : lecture d'un graphe au mauvais format, mauvaise combinaison d'options… v3.7, juillet 2015 : • Nouvelle implémentation des mots de Dyck, qui sont maintenant uniformes. En conséquence les graphes aléatoires ''tree'', ''arboricity'', ''rarytree'', ''rbinary'', ''outerplanar'', ''kpage''… sont générés de manière uniforme. • Nouveaux graphes : ''treep'' (et simplification de ''halin''), ''ygraph'', ''ringarytree'' (et simplification de ''arytree'', ''binary'', ''wheel''), ''netgraph'', ''egraph'', ''rgraph''=''fish'', généralisation de ''barbell'', ''tadpole''=''dragon'', ''pan'', ''banner'', ''paw'', ''theta0'' (redéfinition), ''fan'', ''gem'', ''chess'', ''knight'', ''antelope'', ''camel'', ''giraffe'', ''zebra'', ''utility'', ''zamfirescu'', ''hatzel'', ''web'', ''bdrg'', ''fdrg'', ''regular'', ''cubic'', ''plrg''. • Nouvelles options : ``-check radius``, ``-check diameter``. • Correction d'un bug si combinaison d'options ``[[-check ncc]] [[-format]] list`` (mauvaise gestion de la variable ``CHECK``). • Introduction de caractères UTF-8 mathématiques dans l'aide. v3.8, novembre 2015 : • Nouveaux graphes : ''ladder'', ''matching'', ''d-octahedron'', ''johnson''. • Correction d'un bug pour le graphe ''kpage'' (introduit à la [[v3.7]]). v3.9, février 2016 : • Renommage de l'option ``-xy scale`` en [[``-xy box``]]. • Correction d'un bug dans ''rbinary'' (mauvais alias/définition). • Correction d'un bug (introduit à la [[v3.6]]) dans la fonction ``max(double,double)`` au lieu de ``fmax()`` qui affectait certains graphes et options géométriques (''rng'', [[``-xy grid``]], ''percolation''…). • Correction d'un bug concernant ''rarytree'' lorsque b>2. • Correction d'un bug dans les statistiques pour [[``-check routing``]]. • Généralisation du graphe ''rarytree'' (augmentation du degré de la racine). • Nouveaux graphes : ''herschel'', ''goldner-harary'', ''rbinaryz'', ''point'', ''empty'', ''apollonian'', ''dyck'', ''cross'', ''tgraph'', ''bidiakis'', ''gear'', ''centipede'', ''harborth'', ''sunflower'', ''planar'', ''squaregraph'', ''polygon''. • Modification de certains graphes (''cage'', ''ring'', ''gabriel'', ''nng'', ''rng'') afin que le test d'adjacence ne dépende plus de ``N`` mais de ``PARAM[0]`` par exemple. • Introduction du format ``%SEED`` pour l'option [[``-caption``]]. v4.0, mars 2016 : • Nouveaux graphes : ''pat'', ''star-polygon'', ''convex-polygon''. • Nouvelles options : [[``-check kindepsat``]], [[``-xy circle``]], ``-xy polar``, [[``-xy unif``]], [[``-xy convex``]], [[``-xy ratio``]], [[``-xy zero``]]. • Aide permettant les préfixes comme dans [[``-check routing cluster``]]. v4.1, avril 2016 : • Nouvelles options : [[``-xy convex2``]], ``[[-check routing hdlbr]]/bc``. • Nouveaux graphes : ''kstar'', ''split'', ''cactus'', ''squashed''. • Suppression de ``-check paths2`` qui donnait toujours comme [[``-check paths``]]. • Option [[``-check bellman``]] apparaît dans l'aide. v4.2, mai 2016 : • Nouvelles options : [[``-check routing agmnt``]], ``[[-format]] vertex``, ``[[-check routing]] hash mix``, [[``-xy unif``]], [[``-xy polygon``]]. • Amélioration de l'option [[``-check info``]]. • Prise en compte de [[``-xy ratio``]] dans [[``-xy unif``]] et [[``-xy seed``]]. • Affichage de l'écart type dans les stats affichées par ``-check routing``. • Affichage des erreurs sur ``stderr`` plutôt que ``stdout``. • Nouveau graphe : ''suzuki''. v4.3, juin 2016 : • Nouveaux graphes : ''triplex'', ''jaws'', ''starfish''. • Suppression d'un bug (Abort trap: 6) pour ``[[-format]] dot``. • Modification de l'initialisation du générateur aléatoire qui pouvait faire comme ``[[-seed]] 0`` sur certains systèmes où ``clock()`` est toujours nulle. • Ajout de variantes pour [[``-check routing cluster``]]. • Nouvelles options : [[``-xy cycle``]], [[``-xy disk``]], [[``-check stretch``]], [[``-xy surface``]]. • Modification de l'option [[``-norm``]] (``-norm 2`` → ``-norm L2``, etc.). • Renommage de ``-xy polar`` en [[``-xy disk``]]. v4.4, juillet 2016 : • Nouvelle option : ``-check simplify``. • Nouveaux graphes : ''schlafli'', ''doily'', ''fork (= tgraph)''. • Suppression d'un bug pour ''gosset'' (mauvais paramétrage). v4.5, août 2016 : • Modification du terminateur de séquence pour ''bdrg'' et ''fdrg'' : ``-1`` devient ``.``. • Refonte du prototype des fonctions d'adjacence : ``adj(i,j)`` → ``adj(Q)``. • Désactivation des options [[``-apex``]] et [[``-star``]] (et donc de ''caterpillar''). • Finalisation de l'implémentation de fdrg (et donc de ''regular'' et ''cubic''). • Redéfinition des graphes : ''netgraph'', ''egraph'', ''sunlet'', ''cross'', ''tgraph'', ''ygraph''. • Nouveaux graphes : ''comb'', ''alkane'' (et ses nombreuses variantes), ''banana'', ''rlt'', ''circle''. • L'option [[``-fast``]] est effective pour ''fdrg'' et ''bdrg''. • Suppression d'un bug affectant [[``-xy mesh``]]. • Correction du graphe ''interval'' qui renvoyait en fait un ''circle''. • Génération d'une aide HTML à partir du source : ``gengraph.html``. • Nouvelle option : ``[[-norm]] poly

``. v4.6, septembre 2016 : • Nouvelle option : ``[[-check routing]] scenario until ``. • Nouveaux graphes : ''uno'', ''unok'', ''behrend''. v4.7, janvier 2017 : • Dans ``[[-check bfs]]/dfs``, détection d'une source invalide. • Dans [[``-check dfs``]], calcul et affichage de la hauteur des sommets. • Ajout d'un paramètre pour ''unok''. v4.8, mars 2017 : • Calcul dans [[``-check stretch``]] du stretch max. minimum. • Correction d'un bug dans [[``-xy convex``]] qui pouvait produire des ensembles non convexes et des points en dehors du cercle de rayon 1. • Nouveau graphe : ''ngon''. v4.9, juin 2017 : • Correction d'un bug pour l'option [[``-xy box``]] et amélioration du dessin de la grille pour [[``-xy grid``]]. • Généralisation de [[``-check bellman``]] aux graphes non valués. • Renommage des options : ``-dotfilter`` → [[``-dot filter``]], ``-len`` → [[``-dot len``]], ``[[-filter]] hyperbol`` → ``-filter hyper``. • Nouvelles options : ``-norm hyper``, [[``-xy hyper``]], [[``-dot scale``]], [[``-label ``]] avec b=3 et b<0, [[``-check volm``]]. • Nouveaux graphes : ''hudg'', ''hyperbolic''. v5.0, août 2017 : • Nouveaux graphes : ''helm'', ''haar''. • Nouveau format HTML utilisant vis.js (voir [[``-format``]]). v5.1, août 2018 : • Redéfinition (plus simple) du graphe ''turan''. • Redéfinition de ''bidiakis'' comme graphe ''cage''. • Redéfinition de ''centipede'' comme graphe ''comb'' (et sans [[``-star``]]). • Simplification de [[``-check bellman``]] avec optimisation pour utilisations multiples comme dans [[``-check stretch``]]. • Amélioration de détails dans l'aide HTML (blocs ``!!!`` et ``Ex :``). • Changement des paramètres (maintenant avec un ``.`` final) pour : ''grid'', ''aqua'', ''rpartite'', ''cage'', ''ring'', ''ggosset''. • Orientation corrigée avec [[``-directed``]] pour les graphes (et leurs composés) utilisant une représentation implicite : ''kout'', ''ktree'', ''kpath'', ''kpage'', ''hyperbolic'', ''cactus'', ''planar'', ''rarytree'', ''apollonian'', ''expander'', ''polygon''. • Orientation supportée pour ''cage'' et ''ring'' (possibilité de cordes<0). • Nouveaux graphes : ''margulis'', ''collatz'', ''syracuse'', ''mst'', ''farkas'', ''kakutami_[3|5|7]x+1'' (3 graphes), ''[w|u][psl|dis][d]'' (8 graphes). • Redéfinition de l'option [[``-loop``]] avec suppression de ``-noloop``. • Inversion des lignes/colonnes dans ''uno'' et ''unok''. • Redéfinition du ''cuboctahedron'' à partir de ''linial''. • Aide sur le graphe ''chvatal'' qui était absente. • ``[[-format]] xy`` : affichage de coordonnées entières si elles le sont. • Bug corrigé pour [[``-label ``]] avec b<0 : affiche exclusif centré ou pas. • Bug corrigé pour [[``-xy zero``]] et ``-xy bord`` apparu à la [[v4.9]]. • Définitions des graphes oubliés ''mobius-kantor'' et ''dragon''. • Utilisation d'une version uniforme pour remplacer ``random()%k``. • Nouvelle option : ``[[-dot scale]] auto``. v5.2, juin 2019 : • Nouveaux graphes : ''dart'', ''kite'', ''domino'', ''hourglass'', ''antenna'', ''parachute'', ''parapluie'', ''klein''. • Graphes ''alkane'' : nouvelles abréviations, option ``[[-label]] 1`` activée par défaut, correction d'un bug pour le graphe ``methane``. • Chargement conditionnel des scripts JS dans le format HTML. • Nouvelles options : ``-visuh``, ``-check subdiv``. • Correction d'un bug pour ''unok'', introduit à la version [[v5.1]]. • Correction d'un bug pour [[``-check stretch``]] (Bellman-Ford avec appels multiples). • Correction d'un bug dans ``nb_edges()`` introduit à la version v5.1, et qui affectait par exemple [[``-check edges``]]. • Correction bug dans la détection de séquence graphique qui pouvait affecter ''fdrg'' et ses composés ''regular'' et ''cubic''. v5.3, janvier 2021 : • Nouveaux graphes : ''knng'', ''rectree'', ''odd'', ''biggs'', ''biggs-smith''. • Redéfinition de ''nng'' à partir de ''knng''. • Renommage de ``headwood`` et ``headwood4`` en ''heawood'' et ''heawood4''. • Nouvelles options : ``-check prune``, [[``-dot dir``]]. v5.4, février 2023 : • Nouveaux graphes : ''tree_fibo'', ''tree_part'', ''tree_binom''. • Nouvelles options : [[``-dot attr``]], [[``-check ball``]]. • Génération rapide ([[``-fast``]]) pour tous les graphes basés sur une k-orientation et unification pour ceux basés sur ''load'' (soit au total +15 graphes). • Correction d'un bug pour ''arboricity n k'', introduit à la version [[v5.1]], qui fixait k=1. • Ajout du synonyme ``-check span`` pour [[``-check sub``]]. • Ajout de l'aide pour [[``-check isub``]]. v6.0a, juin 2023 : Cette version est le fruit du travail conséquent d'un étudiant en stage (Sylvain Chiron). Elle apporte une innovation majeure : le traitement des graphes en notation polonaise inversée. Une seule invocation de GenGraph permet ainsi de générer tous les graphes que l'on souhaite et d'enchainer des traitements dessus. De plus, l'étudiant a souhaité travailler sur le caractère convivial du projet, aussi bien pour les utilisateurs que pour les développeurs. Cela se manifeste par la création d'un dépôt du code source (lien en haut du manuel) découpé en de nombreux fichiers, des procédures automatisées pour la compilation, le débogage et l'installation, du travail sur l'interactivité du programme et l'amélioration du format de l'aide. En outre, quelques nouveaux algorithmes de graphes sont disponibles. Ces nouveautés paraissent de façon anticipée pour permettre aux utilisateurs d'expérimenter dès maintenant la nouvelle puissance de GenGraph. Il faut cependant noter que : • d'une part, elle apporte déjà des changements syntaxiques importants : les options qui prenaient un fichier en paramètre n'en prennent plus, l'ancienne option ``-filter`` est découpée en plusieurs options, l'ordre des instructions devient très déterminant ; • d'autre part, elle annonce aussi une certaine instabilité : la nouvelle catégorie des graphes opérations va bientôt supplanter certaines options, le système de génération (avec [[``-fast``]], [[``-gen[c]``]], ''loadc'') va être retravaillé, et la syntaxe de certaines nouvelles instructions risque d'être modifiée dès la prochaine version. Un travail de reconception du logiciel est donc en cours, et la prochaine version devrait être bien plus au point. La liste complète des changements est donnée dans les catégories ci-dessous. Graphes : • L'application peut désormais générer et gérer plusieurs graphes à la fois : voir [[LECTURE DE LA LIGNE DE COMMANDE]]. • Un nouveau graphe ''caterpillar'' remplace l'ancien algorithme de graphe chenille (désactivé depuis la [[v4.5]]), qui n'était pas uniforme. • Correction du graphe ''parapluie'' qui n'acceptait aucun paramètre. • Ajout du graphe ''triangle'' et du synonyme ''complete (= clique)''. • Nouvelle catégorie de graphes : les [[GRAPHES OPÉRATIONS]], contenant ''accessible*'', ''cc*+'', ''del-e*'', ''half*'', ''line-graph*'', ''maincc*'', ''not*'', ''not-wl*'', ''transpose*'', ''union*'', ''union-d*'' et ''union-de*''. Ils sont destinés à remplacer les options [[``-not``]], [[``-dele``]] et cie. • Ajout de variantes [[``-fast``]] pour les graphes ''ring'', ''grid'' et ''rpartite''. Algorithmes : • Nouvelles options : [[``-op``]], [[``-extract``]], [[``-extract-all``]], [[``-print-prop``]], [[``-print-test``]], [[``-prop``]], [[``-sort[-inv]``]], [[``-test``]], [[``-while``]]. • L'option [[``-filter``]] est modifiée pour utiliser et affecter la nouvelle pile, et reposer sur les options génériques [[``-test``]] et [[``-prop``]]. Elle ne permet plus d'afficher les valeurs, ce qui est maintenant le rôle de l'option [[``-print-prop``]]. • [[``-op simplify``]], [[``-op maincc``]], [[``-op subdiv``]] et [[``-op prune``]] supplantent les options de [[``-check``]] du même nom pour plus de fonctionnalités (il demeure possible de les utiliser avec ``-check``). • [[``-variant ``]] n'affecte plus que les fonctions d'adjacence des classes de graphes. Pour les algorithmes, il faut utiliser les écritures ``-op variant `` et ``-check variant ``. • Les options ``-check`` qui prenaient un fichier de graphe en paramètre (``-check iso/sub/isub/minor``) tirent maintenant ce dernier de la pile. • ``-check radius/diameter/girth`` deviennent des synonymes de la combinaison ``-prop ... -print-prop -output -`` équivalente. • Nouveaux algorithmes : [[``-op linegraph``]], [[``-check clique``]], [[``-prop clique``]]. • Les « intervalles » de ``-test`` sont maintenant appelés « sélecteurs ». Le code ``+`` est suggéré à la place de ``t``, et les nouveaux codes ``%x`` et ``%x=y`` ont été ajoutés. Options diverses : • Nouvelles options : [[``-chrono``]], [[``-chrono-reset``]], [[``-discard``]], [[``-dup``]], [[``-dup-group``]], [[``-forget-ids``]], [[``-gen[c]``]], [[``-group``]], [[``-group-n``]], [[``-id``]], [[``-n-times``]], [[``-pause``]], [[``-print``]], [[``-quit``]], [[``-shift-ids``]], [[``-ungroup``]], [[``-xy none``]], [[``-xy-as-default``]]. • Restauration des options [[``-star``]] et [[``-apex``]] désactivées depuis la [[v4.5]]. • Suppression de l'option ``-shift`` (rendue obsolète par ''union-d*'' et ``-output-union-d``). • Les options ``[[-xy]] vsize/grid/zero`` sont maintenant des options de [[``-view``]], et ``-pos`` est remplacé par [[``-view pos``]]. Formats : • Nouvelles options : ``[[-format]] auto``, [[``-output``]], [[``-output-group``]], [[``-output-union-d``]], [[``-view border``]], [[``-view no``]], [[``-visu-as``]]. • ''load'' lit maintenant correctement tous les graphes sur l'entrée standard. De plus, le nouveau graphe ''load-str'' permet de charger un graphe depuis sa description au format simple donnée directement en paramètre. Ex : echo '0-1-(2 3) 4-5' | gengraph ''load'' - gengraph ''load-str'' '0-1-(2 3) 4-5' • Des groupes de graphes peuvent être directement chargés avec ''load+'' et ''load-str+''. • Option ``-format dot`` renommée en ``[[-format]] dot-``. • Le format standard est maintenant plutôt appelé format simple (voir [[LE FORMAT PAR DÉFAUT]]). Il a de nouveaux alias : ``simple``, ``default``, ``classic`` et ``edges``. • De nouveaux sucres sont pris en charge pour la lecture de graphes au format simple (``i-*``, ``i->*`` et ``*->i``). • Les options ``-visu`` et ``-visuh`` sont supplantées par ``-format auto``, ``-output``, [[``-visu``]] et [[``-visu-as``]]. • [[``-vcolor``]], [[``-vsize``]], [[``-view vsize``]] et [[``-caption``]] fonctionnent maintenant avec le format HTML, sauf [[``-vcolor list``]]. Dépôt : • Création d'un dépôt Git du projet. • Découpage du code en de nombreux fichiers. • Adoption explicite d'une licence de logiciel libre : CeCILL-C. • Ajout de lisez-moi en anglais et en français expliquant notamment comment installer le logiciel. Compilation et installation : • Ajout d'un ``Makefile`` pour compiler le projet et l'aide HTML. • Création de ``tools/dependencies.c`` pour ajouter la dépendance libbsd à la compilation si utilisation de glibc < 2.36. • Ajout de la cible ``debug`` pour faciliter le débogage. • Ajout de cibles ``merge`` et ``split`` (ainsi que ``split-all`` et ``split-debug``) dans le ``Makefile``, et de ``tools/gengraph_c-split.c`` et ``tools/gengraph_c-compile.c`` pour pouvoir travailler avec un fichier combiné ``gengraph.c`` comme avant. • Ajout de cibles ``install`` et ``uninstall`` dans le ``Makefile`` permettant d'installer et de désinstaller GenGraph. Aide et interactivité : • Nouvelles options : [[``-html``]], [[``-list-options``]], [[``-list-graphs``]]. • L'aide intégrée et l'aide HTML utilisent un noyau commun en langage C pour l'analyse et le traitement. • Ajout de formatage dans l'aide (notamment des couleurs dans l'aide intégrée) et les messages d'erreur. • Ajout d'un sommaire et de liens dans l'aide HTML. • L'aide intégrée ne fait plus appel aux programmes ``sed``, ``grep``, ``awk``, ``sort`` et ``more`` ; elle utilise le programme ``less`` si disponible. • Ajout de la vérification du format des nombres dans les paramètres. • Ajout de règles dans l'aide HTML pour un meilleur rendu à l'impression (vers PDF ou papier), avec les titres numérotés. • La complétion pour Bash est disponible.