Referenz auf den Erlang/OTP-Quelltext
Clause verfolgt den offiziellen Branch maint-29. Der geprüfte Pin liegt in
references/otp-pin.cmake:
- Revision
9710673e5916164dff9616327df7de39f1aa75a9(OTP 29.1.2, Upstream-Commit vom 2026-10-22), aktualisiert am 2026-10-24. - Installiertes Orakel für Goldens und Audits: OTP 29.1.1 / ERTS 17.1.
references/otp ist ein ignorierter Checkout. Normale Builds und Tests
verwenden projekteigene Goldens und brauchen weder den Checkout noch ein
installiertes OTP. Konfiguration und Tests holen oder bewegen die Referenz nie.
Live-Audits sind optional mit -DCLAUSE_OTP_AUDITS=ON; siehe
Neuerzeugung der Fixtures.
OTP-Quelltext, kopierte Hilfsprogramme und von OTP erzeugte Header gelangen nie in Git. Eingecheckte Testeingaben sind lokal verfasst; eingecheckte Goldens sind Beobachtungen dieser Eingaben. Siehe Validierung.
Ablauf der Aktualisierung
Zu Beginn von Arbeiten ausführen, die von OTP abhängen.
git -C references/otp status --shortprüfen und lokale Arbeit sichern. Holen:git -C references/otp fetch https://github.com/erlang/otp.git refs/heads/maint-29:refs/remotes/origin/maint-29.git -C references/otp log -1 origin/maint-29und die Änderungen seit dem Pin prüfen, besonders Grammatik, Scanner, Präprozessor und Korpus-Eingaben.- Den sauberen lokalen Branch vorspulen:
git merge --ff-only origin/maint-29(Ersteinrichtung:git switch --create maint-29 --track origin/maint-29). LF-Checkout-Bytes verwenden (core.autocrlf=false), damit Prüfsummen auf jedem Host übereinstimmen; in einem vorhandenen Windows-Checkout nur die im Manifest gelisteten Textdateien underl_parse.yrlnormalisieren und Binär-Fixtures von Upstream unverändert lassen. - Den Compiler-Header aus derselben Revision erzeugen (aus dem Projektstamm):
perl references/otp/erts/emulator/utils/beam_makeops -compiler -outdir references/otp/lib/compiler/src references/otp/lib/compiler/src/genop.tab. Unter Windows nur das erzeugtebeam_opcodes.hrlauf LF normalisieren. - Den Pin aktualisieren und jeden Pfad in
tests/fixtures/parser/phase6/otp.tsvprüfen. Hashes erst nach Prüfung echter Upstream-Änderungen erneuern. Ändert sicherl_parse.yrl,tests/fixtures/parser/grammar.tsv, seine Fixtures undphase6/coverage.tsvprüfen; jede gewöhnliche Produktion braucht einen gemessenen Zeugen. - Mit
CLAUSE_OTP_AUDITS=ONund auf den Checkout gesetztemCLAUSE_OTP_SOURCE_ROOTkonfigurieren. Die Audit-Tests undtests/compiler/patternmatch/regenerate.py --corpus all --checkausführen. Revision und Ergebnisse unten festhalten; Abweichungen melden, statt sie durch Neuerzeugung zu verdecken.
Pin-Historie
Historische Einträge behalten die Revision, gegen die sie entstanden sind.
| Datum | Ereignis | Revision |
|---|---|---|
| 2026-09-19 | Parser-Validierung gegen das Tag OTP 29.1 | 751f87b703fe5948607d08e82599ce644b772e76 |
| 2026-09-28 | Wechsel zu maint-29; Grammatik und zehn Korpusdateien identisch | 21776803ecd11f5fa948732c0ec66b8f325dedfc |
| 2026-10-01 – 10-03 | Vor jedem Muster-/Guard-Schritt neu geholt; unverändert | dieselbe |
| 2026-10-03 | Plan 11, step 1: 14 Audit-Tests bestehen, 19 Korpora reproduzieren | dieselbe |
| 2026-10-14 | Auf OTP 29.1.2 aktualisiert: Hashes von Grammatik, Scanner, Präprozessor und phase6/otp.tsv unverändert (genop.tab nur Kommentar); 17 Audit-Tests bestehen und 19 Korpora reproduzieren unter Orakel 29.1.1; die von Executable-, Lint-, Programm- und Ausgabe-Goldens erfasste Revision aktualisiert (Ausgaben unverändert, external_terms behält seine von der Atomreihenfolge abhängige Map-Ausgabe) | d199a49a01a2079afb6f2c5c9ae047cd4555e68d |
| 2026-10-24 | Aktualisiert; Upstream änderte nur .github/-Workflows (32 Dateien), daher sind die Eingaben für Grammatik, Scanner, Präprozessor, Korpus und phase6/otp.tsv byteidentisch, und die Audits wurden nicht erneut ausgeführt; die von Goldens erfasste Revision aktualisiert | 9710673e5916164dff9616327df7de39f1aa75a9 |
Clause