4 points par GN⁺ 2025-11-27 | 2 commentaires | Partager sur WhatsApp
  • 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

 
iolothebard 2025-11-27

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)

 
GN⁺ 2025-11-27
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

    • Dans le grand groupe où je travaille, si on est sceptique vis-à-vis de l’IA, on est traité comme un paria
      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
    • Quand on est mainteneur d’un grand projet open source, on finit sans doute par recevoir ce genre de formation naturellement
    • Le contributeur ne semblait pas animé de mauvaises intentions. Il y avait peut-être moyen de rediriger cette énergie de façon constructive
      Par exemple en lui faisant découper la PR ou en l’orientant vers une proposition de design
    • Certaines personnes semblent avoir le cerveau déréglé par l’existence de l’IA
      Les mainteneurs sont trop gentils, et c’est frustrant de les voir perdre du temps avec ce genre de gens
    • J’ai relu le fil avec admiration
      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

    • J’ai été impressionné par la manière dont la communauté a donné un feedback constructif avec calme
      Ça m’a même donné envie de contribuer moi aussi à l’écosystème OCaml
    • Je pense qu’il n’est peut-être pas simplement idiot, mais un troll de haut niveau
    • C’était vraiment la cerise sur le gâteau
  • À 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à

    • C’est encore plus drôle de se rappeler qu’avant ça, il avait dit : « l’IA comprend ce code en profondeur, allez-y, mettez-la à l’épreuve »
    • Ça rappelle qu’un bon développeur doit savoir penser simultanément à plusieurs niveaux d’abstraction
      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
    • C’est de l’open source, certes, mais ce genre de contribution est très éloigné de l’esprit open source sur le plan mental
      Au final, toute la charge de revue est reportée sur les mainteneurs, tandis que le contributeur n’assume pas la maintenance
    • Au début je croyais à une blague, alors apprendre que c’était vrai a été sidérant
    • Je me suis demandé si le vrai Mark Shinwell traînait par ici, alors je suis allé chercher son profil GitHub
  • 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

    • J’ai déjà eu un collègue qui collait des tickets Jira dans ChatGPT puis copiait les réponses pour soumettre des PR
      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

    • Le niveau de maturité émotionnelle des mainteneurs était stupéfiant
    • C’était juste du numéro de clown, il suffisait d’en rire et de passer à autre chose
  • 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

    • Cette PR a fini par être fermée puis verrouillée. Les mainteneurs ont répondu avec beaucoup de patience, mais
      l’auteur n’a absolument pas été convaincu par les arguments. D’autres projets devraient pouvoir tenir bon eux aussi
    • Les mainteneurs open source résisteront probablement à cette vague, ne serait-ce que parce qu’ils ne veulent pas se faire ridiculiser sur HN ou Reddit
      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

    • Si je me place du point de vue des défenseurs de l’IA, le problème n’est pas l’IA en soi, mais le fait de soumettre sans comprendre
      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
    • La réponse « c’est l’IA qui l’a décidé, je ne lui ai pas demandé » dit absolument tout
    • L’attitude du type « je ne peux pas répondre faute de financement ; donnez-moi de l’argent et je demanderai à l’IA » est ahurissante
    • Certains ont aussi plaisanté en disant que les politiciens faisaient déjà ça depuis longtemps
    • On a aussi vu passer : « l’IA comprend parfaitement votre question. À vous de prouver qu’elle a tort »
  • 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é

    • Certains ont plaisanté en disant qu’au moins ce diff-là n’avait peut-être pas été écrit par l’IA /s