- Foi enviado um grande PR de 13 mil linhas que adiciona informações de depuração DWARF v5 ao compilador nativo do OCaml, oferecendo suporte a depuração em nível de código-fonte com GDB e LLDB no macOS e no Linux
- A implementação inclui breakpoints por função e por linha, rastreamento de parâmetros e variáveis locais, exibição de informações de tipos básicos e suporte a AMD64 e ARM64
- O autor afirmou que este código foi gerado em colaboração por modelos de IA como Claude Sonnet 4.5 e ChatGPT 5 (Codex), e que ele próprio apenas orientou e revisou a IA, em vez de escrever o código
- Os mantenedores do OCaml recusaram a integração e encerraram o PR, citando questões de direitos autorais, ausência de discussão de design, custo de manutenção e dificuldade de revisar código gerado por IA
- A discussão revelou novos desafios para a comunidade open source em relação à qualidade, direitos autorais e processo de colaboração de código gerado por IA
Visão geral do PR de suporte a depuração DWARF v5
- O PR adiciona informações de depuração DWARF v5 ao compilador nativo do OCaml, possibilitando depuração em nível de código-fonte no GDB e no LLDB
- Configuração de breakpoints por nome de função, arquivo e linha, exibição de nomes de variáveis e fornecimento de informações de tipo
- Suporte às arquiteturas AMD64 e ARM64; plataformas de 32 bits não são suportadas
- Implementação de suporte completo a DWARF tanto no macOS (Mach-O) quanto no Linux (ELF), usando realocação relativa a seções
- Adição do plugin do LLDB (
ocaml_lldb.py) para fornecer o comando de exibição de valores do OCaml (ocaml print)
- Os testes são compostos por 9 itens e verificam funcionalidade, tipos e depuração por linha
Detalhes da implementação
- Atualização de DWARF v4 para v5 com uso de DW_FORM_string para evitar erros de linkedição
- Suporte a múltiplas unidades de compilação (CU) e eliminação de duplicação na tabela de strings
- Rastreamento de variáveis locais e parâmetros, blocos léxicos e informações de tipos básicos refletidos na estrutura DWARF
- O módulo Var_lifetime rastreia o ciclo de vida das variáveis, e o campo fun_var_info transmite informações de variáveis por todo o pipeline de compilação
- DW_TAG_lexical_block é usado para representar escopos aninhados
- Os scripts de teste verificam breakpoints e exibição de tipos no GDB e no LLDB
Controvérsia sobre o código gerado por IA
- O autor afirmou: “Claude Sonnet 4.5 escreveu a maior parte e o ChatGPT 5 (Codex) revisou”
- Ele explicou: “Eu apenas orientei e revisei a IA; não escrevi diretamente uma única linha”
- Como o nome de Mark Shinwell aparecia como autor em alguns arquivos, surgiu uma controvérsia sobre a origem dos direitos autorais
- Em um relatório de análise separado, o autor argumentou que “a implementação difere do OxCaml em estrutura, nomenclatura e sistema de tipos, e não é uma cópia”
Reação dos mantenedores
- gasche: apontou que mais de 13 mil linhas foram enviadas sem discussão de design, o que aumenta a carga de revisão e manutenção
- Decidiu que o merge era inviável, dizendo que código escrito por IA é “mais difícil de revisar e traz riscos legais”
- dra27: criticou a expressão “a IA entende o código”, enfatizando que LLMs não entendem, mas são ferramentas de geração de padrões
- bluddy e tmcgilchrist: comentaram que o código DWARF deveria ser separado em uma biblioteca própria e que incluí-lo dentro do compilador aumentaria a carga de manutenção
- Quando a discussão se intensificou, o PR foi bloqueado com o status “too heated”
Pontos de debate sobre IA e colaboração open source
- O autor enfatizou que era um experimento de desenvolvimento baseado em IA, dizendo que queria “provar que a IA pode concluir código de alta qualidade”
- Os mantenedores apontaram a ausência de uma política clara sobre qualidade, direitos autorais e procedimentos de revisão para código gerado por IA
- Este caso desencadeou discussões sobre os processos e critérios necessários quando o desenvolvimento assistido por IA é integrado a projetos open source
2 comentários
Mas... quem enviou o PR não entende absolutamente nada.
Portanto... este PR está indeferido. (tum tum tum)
Comentários do Hacker News
Fiquei me perguntando se os mantenedores do OCaml receberam algum treinamento especial para lidar com pessoas difíceis
A paciência e a maturidade deles são impressionantes. Se fosse eu, já teria bloqueado no estilo Torvalds
A liderança tem uma fé quase religiosa em IA, então quer que todo engenheiro use IA ao máximo
Até a revisão de código está ficando cada vez mais a cargo de IA. Mas não parece que aqui eles foram gentis por esse motivo
Por exemplo, fazendo a pessoa dividir o PR ou propor uma sugestão de design
Os mantenedores são gentis demais, e dá frustração ver tempo sendo desperdiçado com esse tipo de gente
A forma como os mantenedores responderam, sem emoção, com lógica e empatia, foi realmente uma comunicação de manual
Ainda assim, fico pensando se essa gentileza não acaba reforçando a ilusão
Teve gente que parecia ter menos autoconsciência do que um LLM
Perguntar à IA se o commit gerado pela IA era justificável é realmente absurdo
Ainda assim, pelo menos a pessoa foi honesta. O auge foi o “vou manter essa montanha de lixo, mas vocês têm que me pagar”
Isso até me fez querer contribuir com o ecossistema OCaml
A resposta à pergunta “por que o autor dos arquivos enviados aparece como Mark Shinwell?”
foi “a IA decidiu isso, eu não perguntei”, e isso resume tudo
Essa geração da IA nem o mínimo de pensamento multifacetado demonstra
Era óbvio que alguém perguntaria por que havia copyright ali, e mesmo assim ele não tinha resposta preparada
No fim, o custo da revisão é empurrado para os mantenedores, e o colaborador não assume a responsabilidade da manutenção
O currículo desse cara é lendário
Passou por bancos de Wall Street, foi diretor de tecnologia no Deutsche Bank, vendeu licenças para a EA,
tentou escrever o livro “Hardcore Erlang”, levantou US$ 2 milhões em cripto em dois dias etc.
Ou é um gênio, ou o maior fanfarrão do século
Links relacionados: blog antigo, currículo em PDF, entrevista, site oficial, notícia do cancelamento do livro sobre Erlang
Mesmo que o código tenha sido feito por IA, a comunidade está gastando tempo conversando e dando feedback,
então acho que, se o autor simplesmente copia e cola um texto longo escrito por IA, isso já é motivo para bloqueio imediato
Se age como spam bot, é natural ser tratado como spam bot
Quando eu fazia perguntas, a resposta dele tinha aquele tom típico de GPT
No fim, testei por conta própria e saiu uma resposta praticamente idêntica palavra por palavra,
e depois disso declarei que não revisaria mais código dele
Quando apareceu a frase “aqui está uma análise de copyright escrita por IA”, ali já tinha passado de todos os limites
Se fosse comigo, eu teria bloqueado o repositório na mesma hora
Eu também já fechei PRs gerados por IA em vários projetos open source
Esses colaboradores, quando são rejeitados em um projeto, simplesmente vão bater em outro
A carga de revisão aumenta, e os contribuidores de verdade diminuem
Mesmo assim, é interessante ver esse tipo de discussão em tempo real no HN
o autor não foi convencido pela lógica de jeito nenhum. Outros projetos provavelmente também vão conseguir resistir assim
Na verdade, o que preocupa mesmo é o lado do software corporativo
Eu queria perguntar aos defensores da IA:
se você fizer uma apresentação escrita por IA e depois receber perguntas, o que vai responder?
Esta situação é exatamente isso
Jogar um PR de 13 mil linhas sem entender o que ele faz é errado com ou sem IA
IA é só uma ferramenta; seja usando uma máquina CNC ou uma serra, o importante é entender o resultado
Entre todos os PRs gerados por IA que já vi, este foi o caso mais singular
A maioria é código quebrado escrito por iniciante, mas desta vez era algo complexo e que realmente funcionava
O autor, Joel Reymont, era um desenvolvedor com 30 anos de experiência e veterano no HN desde 2008
A paciência dos mantenedores do OCaml foi admirável, e no fim ele resumiu sua posição em um comentário humano,
dizendo que deixaria de contribuir para OSS com IA
Ainda assim, esses PRs continuam sendo perda de tempo para todo mundo,
e até hoje não vi nenhum caso em que tenham sido usados de forma produtiva
Foi realmente um PR impressionante
Link para o commit em questão