- 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
Pero… quien envió el PR no lo entiende en absoluto.
Por lo tanto… se rechaza este PR. (¡bang, bang, bang!)
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
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
por ejemplo, pidiéndole que dividiera el PR o guiándolo a presentar una propuesta de diseño
Los maintainers fueron demasiado amables, y frustra ver que gasten tiempo en gente así
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
Por eso hasta me dieron ganas de contribuir al ecosistema de OCaml
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
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
Al final, la carga de la revisión se traslada al maintainer y el contribuidor no asume la responsabilidad del mantenimiento
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
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
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 autor no lo convenció en absoluto la lógica. Parece que otros proyectos también podrían resistir así
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
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
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