4 puntos por GN⁺ 2025-11-27 | 2 comentarios | Compartir por WhatsApp
  • Se presentó un PR grande de 13 mil líneas que agrega información de depuración DWARF v5 al compilador nativo de OCaml para habilitar depuración a nivel de código fuente con GDB y LLDB en macOS y Linux
  • La implementación incluye breakpoints por función y por línea, seguimiento de parámetros y variables locales, visualización de información de tipos básicos y soporte para AMD64 y ARM64
  • El autor indicó que este código fue generado en colaboración por modelos de IA como Claude Sonnet 4.5 y ChatGPT 5 (Codex), y que él se limitó a dirigir y revisar a la IA en lugar de escribir el código
  • Los mantenedores de OCaml rechazaron fusionarlo y cerraron el PR, citando problemas de copyright, falta de discusión de diseño, carga de mantenimiento y dificultad para revisar código hecho por IA
  • Esta discusión muestra nuevos desafíos para la comunidad open source sobre la calidad, copyright y procesos de colaboración del código generado por IA

Resumen del PR de soporte de depuración DWARF v5

  • El PR agrega información de depuración DWARF v5 al compilador nativo de OCaml para permitir depuración a nivel de código fuente en GDB y LLDB
    • Configuración de breakpoints por nombre de función, archivo y línea; visualización de nombres de variables; provisión de información de tipos
    • Soporte para arquitecturas AMD64 y ARM64; sin soporte para plataformas de 32 bits
  • Implementa soporte completo de DWARF tanto en macOS (Mach-O) como en Linux (ELF) usando reubicaciones relativas a secciones
  • Se añade un plugin de LLDB (ocaml_lldb.py) que ofrece el comando para imprimir valores de OCaml (ocaml print)
  • Las pruebas constan de 9 elementos y validan funcionalidad, tipos y depuración por línea

Detalles de la implementación

  • Se actualiza de DWARF v4 a v5 y se usa DW_FORM_string para evitar errores de enlace
  • Soporte para múltiples unidades de compilación (CU) y eliminación de duplicados en la tabla de cadenas
  • Seguimiento de variables locales y parámetros, bloques léxicos e información de tipos básicos reflejados en la estructura DWARF
  • El módulo Var_lifetime rastrea el ciclo de vida de las variables, y el campo fun_var_info transmite información de variables a lo largo de todo el pipeline de compilación
  • Se representan ámbitos anidados mediante DW_TAG_lexical_block
  • Los scripts de prueba verifican breakpoints y visualización de tipos en GDB y LLDB

Polémica por el código generado por IA

  • El autor dijo: “Claude Sonnet 4.5 escribió la mayor parte y ChatGPT 5 (Codex) la revisó”
    • Explicó que “solo dirigí y revisé a la IA; no escribí ni una sola línea directamente”
  • En algunos archivos aparece el nombre de Mark Shinwell como autor, lo que desató una controversia sobre el origen del copyright
  • En un informe de análisis separado, el autor sostuvo que “la estructura, el nombramiento y el sistema de tipos son distintos de la implementación de OxCaml, por lo que no es una copia”

Reacción de los mantenedores

  • gasche: señaló que se enviaron más de 13 mil líneas de código sin discusión de diseño previa, lo que implica una gran carga de revisión y mantenimiento
    • Decidió que no podía fusionarse, afirmando que el código escrito por IA “es más difícil de revisar y conlleva riesgo legal”
  • dra27: criticó la expresión “la IA entiende el código” y subrayó que los LLM no entienden, sino que son herramientas de generación de patrones
  • bluddy y tmcgilchrist: mencionaron que el código de DWARF debería separarse en una biblioteca independiente y que incluirlo dentro del compilador aumentaría la carga de mantenimiento
  • Cuando la discusión se intensificó, el PR fue bloqueado con estado “too heated”

Puntos en disputa sobre IA y colaboración open source

  • El autor enfatizó que era un experimento de desarrollo basado en IA, diciendo que intentaba demostrar “que la IA puede completar código de alta calidad”
  • Los mantenedores señalaron la falta de políticas claras sobre la calidad, el copyright y el proceso de revisión del código generado por IA
  • Este caso abrió el debate sobre los procedimientos y criterios necesarios cuando el desarrollo asistido por IA se integra en proyectos open source

2 comentarios

 
iolothebard 2025-11-27

Pero… quien envió el PR no lo entiende en absoluto.
Por lo tanto… se rechaza este PR. (¡bang, bang, bang!)

 
GN⁺ 2025-11-27
Opiniones de Hacker News
  • Me pregunto si los maintainers de OCaml recibieron algún tipo de entrenamiento especial para lidiar con gente difícil
    Su paciencia y madurez fueron sorprendentes. Yo los habría bloqueado de inmediato al estilo Torvalds

    • En la gran empresa donde trabajo hay un ambiente donde, si eres escéptico con la IA, te tratan como paria
      El liderazgo tiene una fe casi religiosa en la IA, así que quieren que todos los ingenieros la usen al máximo
      Hasta las revisiones de código cada vez las hace más la IA. Pero en este caso no parece que hayan sido amables por eso
    • Si eres maintainer de un proyecto grande de código abierto, supongo que terminas recibiendo ese entrenamiento de forma natural
    • No parecía que el contribuidor tuviera malas intenciones. Tal vez había una forma de redirigir esa energía de manera constructiva
      por ejemplo, pidiéndole que dividiera el PR o guiándolo a presentar una propuesta de diseño
    • Parece que a algunas personas la existencia de la IA les arruinó la forma de pensar
      Los maintainers fueron demasiado amables, y frustra ver que gasten tiempo en gente así
    • Volví a leer el hilo y me impresionó
      La manera en que los maintainers respondieron sin emociones, con lógica y empatía, fue una comunicación de manual
      Aun así, me pregunto si tanta amabilidad no termina reforzando la ilusión
  • Esa persona parecía tener incluso menos autoconciencia que un LLM
    Preguntarle a una IA si los commits generados por IA están justificados es realmente absurdo
    Aun así, por lo menos fue honesto. La frase “mantendré esta montaña de basura, pero tienen que pagarme” fue lo mejor

    • Me impresionó que la comunidad diera retroalimentación constructiva con tanta calma
      Por eso hasta me dieron ganas de contribuir al ecosistema de OCaml
    • Creo que quizá no era simplemente tonto, sino un troll de alto nivel
    • Esa parte sí fue la cereza del pastel
  • La pregunta “¿por qué el autor del archivo enviado aparece como Mark Shinwell?”
    y la respuesta “la IA lo decidió, yo no pregunté” resumen todo perfectamente

    • Más gracioso todavía porque antes había dicho “la IA entiende este código en profundidad, inténtenlo”
    • Me hizo recordar eso de que un buen desarrollador debe pensar en varios niveles de abstracción al mismo tiempo
      Esta generación de IA ni siquiera hace el mínimo de pensamiento desde múltiples ángulos
      Era obvio que le iban a preguntar por qué estaba ese copyright, y ni siquiera tenía preparada una respuesta
    • Aunque sea open source, siento que una contribución así está muy lejos del espíritu mental del código abierto
      Al final, la carga de la revisión se traslada al maintainer y el contribuidor no asume la responsabilidad del mantenimiento
    • Al principio pensé que era una broma, y me impactó descubrir que era real
    • Por un momento pensé que tal vez el verdadero Mark Shinwell estaba aquí, así que busqué su perfil de GitHub
  • El currículum de esta persona es legendario
    Pasó por bancos de Wall Street, fue director de tecnología en Deutsche Bank, vendió licencias a EA,
    intentó escribir el libro “Hardcore Erlang”, consiguió 2 millones de dólares en financiamiento cripto en 2 días, etc.
    Debe ser un genio o el charlatán del siglo
    Enlaces relacionados: blog anterior, PDF del currículum, entrevista, sitio oficial, noticia sobre la cancelación del libro de Erlang

  • Aunque el código lo haya generado la IA, si la comunidad se toma el tiempo de conversar y dar retroalimentación,
    que el autor copie y pegue tal cual un texto largo escrito por la IA me parece motivo de bloqueo inmediato
    Si actúas como un bot de spam, es natural que te traten como un bot de spam

    • Antes un colega pegó un ticket de Jira en ChatGPT, copió la respuesta y envió un PR
      Cuando yo le hacía preguntas, respondía con ese tono típico de GPT
      Al final hice la prueba yo mismo y obtuve una respuesta casi idéntica palabra por palabra,
      y desde entonces declaré que ya no revisaría su código
  • Cuando salió la frase “este es un análisis de copyright escrito por IA”, ahí ya se había llegado al límite
    Yo en ese punto habría baneado el repo de inmediato

    • La madurez emocional de los maintainers fue realmente impresionante
    • Fue simple payasada, y creo que lo correcto era reírse y seguir adelante
  • Yo también he tenido que cerrar PRs generados por IA en varios proyectos open source
    Este tipo de contribuidores, cuando los rechazan en un proyecto, se van moviendo a otros
    La carga de revisión aumenta y los contribuidores reales disminuyen
    Aun así, es interesante ver este tipo de discusiones en tiempo real en HN

    • Al final este PR se cerró y se bloqueó. Los maintainers respondieron con paciencia, pero
      al autor no lo convenció en absoluto la lógica. Parece que otros proyectos también podrían resistir así
    • Los maintainers de open source se resistirán a esta ola aunque sea solo para no ser objeto de burla en HN o Reddit
      De hecho, lo que debería preocuparnos más es el software empresarial
  • Quisiera preguntarles a los defensores de la IA:
    si presentan un discurso escrito por IA y luego reciben preguntas, ¿qué van a responder?
    Esto es exactamente eso

    • Hablando desde la postura de alguien a favor de la IA, el problema no es la IA en sí, sino la actitud de enviar algo sin entenderlo
      Lanzar un PR de 13k líneas sin comprenderlo está mal haya o no haya IA de por medio
      La IA es solo una herramienta; da igual si usas una máquina CNC o una sierra, lo importante es entender el resultado
    • La respuesta “la IA lo decidió, yo no pregunté” lo dice todo
    • La actitud de “no puedo responder porque no hay financiamiento; si me pagan, se lo pregunto a la IA” es ridícula
    • También salió la broma de que, en realidad, los políticos llevan mucho tiempo haciendo eso
    • También hubo quien dijo: “La IA entiende perfectamente su pregunta. Demuestre que está equivocada”
  • De todos los PRs generados por IA que he visto, este fue el caso más singular
    La mayoría son código que no funciona escrito por principiantes, pero esta vez era complejo y realmente funcionaba
    El autor, Joel Reymont, era un desarrollador con 30 años de experiencia y un veterano con cuenta en HN desde 2008
    La paciencia de los maintainers de OCaml fue admirable y, al final, él cerró su postura con un comentario humano, diciendo
    que dejaría de intentar contribuir a OSS con IA
    Aun así, este tipo de PR sigue siendo una pérdida de tiempo para todos,
    y hasta ahora no he visto ningún caso donde se haya usado de forma productiva

  • Fue un PR realmente increíble
    Enlace al commit en cuestión

    • Se hizo la broma de que al menos ese cambio en particular quizá no lo escribió la IA /s