Clause
← Toda a documentação

Traduzido do original em inglês · 06042fa · 2026-10-09 · Ler em inglês

Referência das fontes do Erlang/OTP

O Clause acompanha o ramo oficial maint-29. A fixação revista encontra-se em references/otp-pin.cmake:

references/otp é um checkout ignorado. As compilações e os testes normais usam goldens pertencentes ao projeto e não precisam nem do checkout nem de um OTP instalado. A configuração e os testes nunca obtêm nem avançam a referência. As auditorias ao vivo são opcionais, com -DCLAUSE_OTP_AUDITS=ON; ver regeneração de fixtures.

As fontes do OTP, os auxiliares copiados e os cabeçalhos gerados pelo OTP nunca entram no Git. As entradas de teste registadas no repositório são de autoria local; os goldens registados são observações dessas entradas. Ver validação.

Procedimento de atualização

Executar no início de qualquer trabalho que dependa do OTP.

  1. Verificar git -C references/otp status --short e preservar o trabalho local. Obter: git -C references/otp fetch https://github.com/erlang/otp.git refs/heads/maint-29:refs/remotes/origin/maint-29. Rever git -C references/otp log -1 origin/maint-29 e as alterações desde a fixação, sobretudo na gramática, no scanner, no pré-processador e nas entradas do corpus.
  2. Avançar o ramo local limpo: git merge --ff-only origin/maint-29 (primeira configuração: git switch --create maint-29 --track origin/maint-29). Usar bytes de checkout LF (core.autocrlf=false) para que as somas de verificação coincidam em todas as máquinas; num checkout Windows existente, normalizar apenas os ficheiros de texto listados no manifesto e erl_parse.yrl, e manter inalteradas as fixtures binárias do upstream.
  3. Gerar o cabeçalho do compilador a partir da mesma revisão (a partir da raiz do projeto): perl references/otp/erts/emulator/utils/beam_makeops -compiler -outdir references/otp/lib/compiler/src references/otp/lib/compiler/src/genop.tab. No Windows, normalizar para LF apenas o beam_opcodes.hrl gerado.
  4. Atualizar a fixação e verificar todos os caminhos em tests/fixtures/parser/phase6/otp.tsv. Atualizar os hashes apenas depois de rever alterações reais do upstream. Se erl_parse.yrl mudar, rever tests/fixtures/parser/grammar.tsv, as suas fixtures e phase6/coverage.tsv; cada produção comum precisa de uma testemunha medida.
  5. Configurar com CLAUSE_OTP_AUDITS=ON e CLAUSE_OTP_SOURCE_ROOT apontado para o checkout. Executar os testes de auditoria e tests/compiler/patternmatch/regenerate.py --corpus all --check. Registar a revisão e os resultados abaixo; relatar a divergência em vez de regenerar para a esconder.

Histórico da fixação

Os registos históricos mantêm a revisão em relação à qual foram feitos.

DataEventoRevisão
2026-09-19Validação do parser em relação à tag OTP 29.1751f87b703fe5948607d08e82599ce644b772e76
2026-09-28Mudança para maint-29; gramática e dez ficheiros do corpus idênticos21776803ecd11f5fa948732c0ec66b8f325dedfc
2026-10-01 – 10-03Obtida de novo antes de cada step de padrões/guards; inalteradaa mesma
2026-10-03Plano 11, step 1: 14 testes de auditoria passam, 19 corpora reproduzem-sea mesma