<div dir="ltr">D'abord merci pour l'acceptation rapide de mes 2/3 derniers PRs (@Fourchaux). C'est sympa.<br><br>J'ai pris des notes durant l'écriture de ces PRs et je me permets de t'en envoyer quelques-unes pour avoir ton avis, éventuellement (c'est tout en vrac, sorry).<br><br>(Les commentaires viennent surtout de Batteries et JST_Base).<br><br>Le répertoire src/core est principalement concerné.<br><br>* Noms de modules: écrits en camlCase sauf CCArray_slice.<br><br>* CCArray.to_seq:<br>Correspond à (Base.Array_ to_sequence :) 'the input array is copied internally so that future modifications of it do not change the sequence. '<br><br>ou à (Base.Array_to_sequence_mutable :) 'the input array is shared with the sequence and modifications of it will result in modification of the sequence.' ?<br><br>* CCHashtbl.S.keys_list & CCHashtbl.Poly.keys_list :<br>Rajout de: 'If the key is in the Hashtable multiple times, all occurrences will be returned' ?<br><br>* CCHeap.S :<br>Les fonctions of_seq, of_klist, of_gen & to_seq, to_klist, to_gen sont-elles de Complexity: O(n log n) ?<br><br>* CCList.of_seq / of_gen / of_klist :<br>Rajout de: 'In the result, elements appear in the same order as they did in the source sequence/gen/klist.' ?<br><br>* CCList.mli :<br>(** {2 Lists of pairs} *) : dernière ligne à supprimer ?<br><br>* CCList.foldi & CCListlabels.foldi :<br>Fonctions Tail-recursive ?<br><br>* CCOpt.exists & CCOpt.for_all:<br>Rajout de : 'This is a short-circuiting operation' ? <br><br>* CCVector.of_array:<br>Rajout de: 'Operates in O(n) time.' ?<br><br><br>De manière plus générale :<br><br>* Est-il nécessaire de garder les (très laides lignes !) Since: dans la doc finale ?<br>Il serait bien d'avoir une première page avec les seules infos de base (noms fonctions + types + descriptions) et une autre page avec des infos diverses (versions, exemples d'utilisation, sources ...) comme dans les docs de F#, Rust, etc... etc...<br>Mais bon, c'est un autre problème.<br><br>A propos, tu génères comment tes docs Containers ?<br>Actuellement si je lance $ make doc<br>j'ai des messages d'erreur du genre :<br><br>odoc: internal error, uncaught exception:<br>      File "src/docOckIdentEnv.ml", line 260, characters 22-28: Assertion failed ...<br>Pb odoc, jbuilder, autre ????<br><br>* Des fonctions identiques ont des noms différents dans Containers, Batteries ou Base.<br>Plus gênant des noms identiques correspondent à des fonctions différentes.<br>Base.Array.findi <> CCArray.findi <> BatArray.findi<br>Un peu dommage !<br><br>* Des fonctions s'appellent mapi, findi, foldi sauf CCArray.find_map_i (pourquoi pas CCArray.find_mapi ?)<br><br>* Des fichiers *.mli (CCFormat.mli - CCList.mli - CCListLabels.mli et surtout CCString.mli) possèdent des tests qtest.<br>Pas préférable de mettre tous les tests dans les fichiers *.ml ?<br><br>* Inversement on trouve des Comments identiques dans des fichiers <a href="http://foo.ml">foo.ml</a> et foo.mli. (Ex: CCSet.ml et CCSet.mli). <br>Pas mieux de réserver les commentaires aux seuls fichiers *.mli ?<br>Rem: dans ces cas-là je n'ai modifié que les seuls *.mli. Désolé.<br><br>* Je n'ai pas trop de commentaires pour les fonctions:<br><br>- 'add_foo'<br>- 'array'<br>- 'bool'<br>- 'float/3'<br>- 'int' & 'int32' & 'int64'<br>- 'nativeint'<br>- 'CCHash.combine/2/3/4'<br>- beaucoup de fonctions 'compare' et 'equal'<br>- 'fold_l' & 'fold_m'<br>- 'gen' & 'gen_cpy'<br>- 'klist' & 'klist_cpy'<br>-'list' & 'list_cpy'<br>- 'hash'<br>- 'map_m'<br>- 'pair'<br>- 'pop'<br>- 'push'<br>- 'quad'<br>- 'random' & 'random_foo'<br>- 'sequence_m'<br>- 'string'<br>- 'triple'<br>- 'write_lines_l'<br><br>Grrrrrr .....<br><br>* Il serait bien de développer/écrire des présentations pour chaque module. Dans ce domaine, Batteries est plutôt bien fait, je trouve. (mais là mes connaissances sont trop faibles pour pouvoir écrire du texte technique pertinent).<br><br>* Rem: le module CCMonomorphic semble important. Quelqu'un (jpdeplaix ?) écrive une présentation dans CCMonomorphic.mli.<br><br>Sinon, j'ignore tes intentions mais j'espère que tu vas continuer à développer Containers. <br>Je suis curieux de voir l'influence que va avoir Base (avec l'arrivée annoncée d'une documentation, la ré-écriture des exemples de RWO et la propagande de JST ...) .<br>Je serais également curieux d'avoir l'avis des Gourous OCaml (qui refusent presque toutes modifs de la Std librairie) à propos de Base.<br>En faisant 'open Base' et en tapant les tout premiers exemples de la doc OCaml officielle on reçoit des tonnes de "Warning - deprecated" mais aussi des erreurs sur du code très très basique (# (1 < 2) = false) . C'est quand même chaud !<br><br>Mais bon, si c'est l'avenir.<br><br>Bien, on va stopper là.<br><br>A+<br><br>PS : lors des élections de novembre prochain tu vas être aux premières loges pour assister au basculement politique du Texas (même si Austin est déjà démocrate ). Le Texas. Un Blue State. MAGA !!! <br></div>