- Une vaste PR de 13 000 lignes a été soumise pour ajouter les informations de débogage DWARF v5 au compilateur natif OCaml, avec prise en charge du débogage au niveau du code source dans GDB et LLDB sur macOS et Linux
- L’implémentation inclut notamment des points d’arrêt par fonction et par ligne, le suivi des paramètres et des variables locales, l’affichage des informations de types de base ainsi que la prise en charge d’AMD64 et ARM64
- L’auteur indique que ce code est le résultat d’une collaboration entre des modèles d’IA comme Claude Sonnet 4.5 et ChatGPT 5 (Codex), et qu’il s’est contenté de piloter et relire l’IA au lieu d’écrire le code lui-même
- Les mainteneurs d’OCaml ont refusé l’intégration et fermé la PR en invoquant des questions de droit d’auteur, l’absence de discussion sur la conception, la charge de maintenance et la difficulté à relire du code généré par IA
- Cette discussion illustre les nouveaux défis que soulèvent dans la communauté open source la qualité du code généré par IA, le droit d’auteur et les procédures de collaboration
Vue d’ensemble de la PR de prise en charge du débogage DWARF v5
- La PR ajoute les informations de débogage DWARF v5 au compilateur natif OCaml afin de permettre le débogage au niveau du code source dans GDB et LLDB
- définition de points d’arrêt par nom de fonction, fichier et ligne, affichage des noms de variables, fourniture d’informations de type
- prise en charge des architectures AMD64 et ARM64, sans support des plateformes 32 bits
- Mise en œuvre d’un support DWARF complet sur macOS (Mach-O) et Linux (ELF) à l’aide de relocations relatives aux sections
- Ajout d’un plugin LLDB (
ocaml_lldb.py) fournissant la commande d’affichage des valeurs OCaml (ocaml print)
- Les tests se composent de 9 éléments et vérifient le fonctionnement, les types et le débogage par ligne
Détails de l’implémentation
- Passage de DWARF v4 à v5 avec utilisation de DW_FORM_string pour éviter les erreurs d’édition de liens
- Prise en charge de plusieurs unités de compilation (CU) et suppression des doublons dans la table des chaînes
- Intégration du suivi des variables locales et des paramètres, des blocs lexicaux et des informations de types de base dans la structure DWARF
- Le module Var_lifetime suit le cycle de vie des variables, et le champ fun_var_info transmet les informations sur les variables dans toute la chaîne de compilation
- DW_TAG_lexical_block est utilisé pour représenter les portées imbriquées
- Les scripts de test vérifient dans GDB et LLDB les points d’arrêt et l’affichage des types
Polémique autour du code généré par IA
- L’auteur affirme que « Claude Sonnet 4.5 a rédigé l’essentiel et ChatGPT 5 (Codex) a relu »
- il explique qu’il a « uniquement guidé et relu l’IA, sans écrire lui-même une seule ligne »
- Le nom de Mark Shinwell apparaît comme auteur dans certains fichiers, ce qui a déclenché une controverse sur l’origine des droits d’auteur
- Dans un rapport d’analyse séparé, l’auteur soutient que « la structure, la dénomination et le système de types diffèrent de l’implémentation OxCaml, et qu’il ne s’agit donc pas d’une copie »
Réaction des mainteneurs
- gasche : souligne qu’environ 13 000 lignes de code ont été soumises sans discussion préalable sur la conception, ce qui représente une lourde charge de relecture et de maintenance
- il décide que le code rédigé par IA est « plus difficile à relire et comporte des risques juridiques », et qu’il ne peut donc pas être fusionné
- dra27 : critique l’expression selon laquelle « l’IA comprend le code » et insiste sur le fait que les LLM sont des outils de génération de motifs, pas de compréhension
- bluddy et tmcgilchrist : estiment que le code DWARF devrait être séparé dans une bibliothèque distincte, car son inclusion dans le compilateur alourdirait la charge de maintenance
- Alors que les échanges s’envenimaient, la PR a été verrouillée avec le statut « too heated »
Enjeux de la collaboration entre IA et open source
- L’auteur souligne qu’il s’agissait d’une expérimentation de développement fondée sur l’IA, visant à « prouver qu’une IA peut produire du code de haute qualité »
- Les mainteneurs pointent l’absence de politique claire sur « la qualité, le droit d’auteur et les procédures de relecture du code généré par IA »
- Ce cas a relancé le débat sur les procédures et critères nécessaires lorsque le développement assisté par IA est intégré dans des projets open source
2 commentaires
Pourtant… la personne qui a soumis cette PR ne le comprend pas du tout.
Par conséquent… cette PR est rejetée. (toc toc toc)
Avis Hacker News
Je me demande si les mainteneurs principaux d’OCaml ont reçu une formation spéciale pour gérer les personnes difficiles
Leur patience et leur maturité sont franchement impressionnantes. À leur place, j’aurais probablement bloqué ça immédiatement à la Torvalds
La direction a une foi quasi religieuse dans l’IA et veut que tous les ingénieurs l’utilisent au maximum
Les revues de code sont elles aussi de plus en plus confiées à l’IA. Cela dit, ici, ce n’était sans doute pas pour cette raison qu’ils étaient restés polis
Par exemple en lui faisant découper la PR ou en l’orientant vers une proposition de design
Les mainteneurs sont trop gentils, et c’est frustrant de les voir perdre du temps avec ce genre de gens
La manière dont les mainteneurs ont répondu, sans émotion, avec logique et empathie, relevait vraiment de la communication de manuel
Je me demande quand même si cette gentillesse ne renforce pas au contraire leurs illusions
Cette personne semblait manquer de conscience de soi encore plus qu’un LLM
Demander à l’IA de justifier un commit produit par l’IA, c’est vraiment absurde
Au moins, il était honnête. La formule « je vais maintenir cette montagne de déchets, mais il faut me payer » était mémorable
Ça m’a même donné envie de contribuer moi aussi à l’écosystème OCaml
À la question « pourquoi l’auteur des fichiers soumis est-il indiqué comme étant Mark Shinwell ? »,
il a répondu : « c’est l’IA qui l’a décidé, je ne lui ai pas demandé » ; tout est résumé là
Ces générations IA ne font même pas ce minimum de réflexion multidimensionnelle
Il était évident qu’on allait lui demander pourquoi il y avait un copyright, et pourtant il n’avait préparé aucune réponse
Au final, toute la charge de revue est reportée sur les mainteneurs, tandis que le contributeur n’assume pas la maintenance
Le CV de cette personne est légendaire
Passage par des banques de Wall Street, directeur technique chez Deutsche Bank, vente de licences à EA,
tentative d’écriture du livre « Hardcore Erlang », levée crypto de 2 millions de dollars en deux jours, etc.
Soit c’est un génie, soit le plus grand mythomane du siècle
Liens associés : ancien blog, CV PDF, interview, site officiel, annulation du livre Erlang
Même si le code a été généré par l’IA, quand la communauté prend le temps de discuter et de donner du feedback,
le fait que l’auteur se contente de copier-coller tel quel de longs textes écrits par l’IA mérite selon moi un bannissement immédiat
Si on se comporte comme un spambot, il est normal d’être traité comme un spambot
Quand je lui posais des questions, il répondait avec ce ton GPT tellement reconnaissable
J’ai fini par faire le test moi-même, et j’obtenais une réponse presque identique mot pour mot,
après quoi j’ai déclaré que je ne relirais plus jamais son code
Au moment où il a été question d’une « analyse de copyright rédigée par l’IA », c’en était déjà trop
À sa place, j’aurais banni du dépôt à cet instant précis
J’ai moi aussi fermé des PR générées par l’IA dans plusieurs projets open source
Ce genre de contributeurs va d’un projet à l’autre dès qu’ils sont refusés quelque part
La charge de revue augmente, et les vrais contributeurs se font plus rares
Cela dit, c’est fascinant de suivre ce genre de discussion en temps réel sur HN
l’auteur n’a absolument pas été convaincu par les arguments. D’autres projets devraient pouvoir tenir bon eux aussi
Ce qui m’inquiète davantage, c’est le logiciel d’entreprise
J’aimerais poser une question aux défenseurs de l’IA
Si vous présentez un exposé rédigé par l’IA, que répondez-vous ensuite aux questions ?
C’est exactement la situation ici
Balancer une PR de 13k lignes sans la comprendre est inacceptable, avec ou sans IA
L’IA n’est qu’un outil ; qu’on utilise une machine CNC ou une scie, l’important est de comprendre le résultat
Parmi toutes les PR générées par l’IA que j’ai vues jusqu’ici, c’était le cas le plus atypique
D’habitude, c’est du code non fonctionnel écrit par un débutant, alors qu’ici c’était complexe et ça fonctionnait réellement
Joel Reymont, l’auteur, était un développeur avec 30 ans d’expérience et un vétéran de HN présent depuis 2008
La patience des mainteneurs d’OCaml était remarquable, et au final il a résumé sa position dans un commentaire très humain,
disant qu’il allait cesser de contribuer à l’OSS avec l’IA
Malgré cela, ce genre de PR reste une perte de temps pour tout le monde,
et je n’ai encore jamais vu de cas où cela ait été utilisé de manière productive
C’était vraiment une PR incroyable
Lien vers le commit concerné