Довідкові вихідні коди Erlang/OTP
Clause стежить за офіційною гілкою maint-29. Перевірена фіксація версії
(pin) зберігається в references/otp-pin.cmake:
- Ревізія
21776803ecd11f5fa948732c0ec66b8f325dedfc(коміт upstream від 2026-09-22), востаннє підтверджено без змін 2026-10-03. - Встановлений еталонний OTP (oracle) для еталонів (goldens) і аудитів: OTP 29.1.1 / ERTS 17.1.
references/otp — це ігнорована робоча копія. Звичайні збірки й тести
використовують власні еталони проєкту й не потребують ні робочої копії, ні
встановленого OTP. Конфігурація й тести ніколи не завантажують і не
просувають довідкову версію. Живі аудити вмикаються за бажанням через
-DCLAUSE_OTP_AUDITS=ON; див.
повторне генерування фікстур.
Вихідні коди OTP, скопійовані допоміжні файли й згенеровані OTP заголовки ніколи не потрапляють у Git. Закомічені тестові вхідні дані написані в проєкті; закомічені еталони є спостереженнями над цими вхідними даними. Див. валідацію.
Процедура оновлення
Виконується на початку роботи, що залежить від OTP.
- Перевірте
git -C references/otp status --shortі збережіть локальні зміни. Завантаження: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-29і зміни від моменту фіксації, особливо граматику, сканер, препроцесор і вхідні дані корпусу. - Перемотайте чисту локальну гілку вперед:
git merge --ff-only origin/maint-29(перше налаштування:git switch --create maint-29 --track origin/maint-29). Використовуйте байти робочої копії з LF (core.autocrlf=false), щоб контрольні суми збігалися на кожному хості; в наявній робочій копії на Windows нормалізуйте лише текстові файли з маніфесту йerl_parse.yrl, а бінарні фікстури upstream залишайте без змін. - Згенеруйте заголовок компілятора з тієї самої ревізії (з кореня проєкту):
perl references/otp/erts/emulator/utils/beam_makeops -compiler -outdir references/otp/lib/compiler/src references/otp/lib/compiler/src/genop.tab. На Windows нормалізуйте до LF лише згенерованийbeam_opcodes.hrl. - Оновіть фіксацію версії й перевірте кожен шлях у
tests/fixtures/parser/phase6/otp.tsv. Оновлюйте хеші лише після перегляду справжніх змін upstream. Якщо змінюєтьсяerl_parse.yrl, перегляньтеtests/fixtures/parser/grammar.tsv, його фікстури йphase6/coverage.tsv; кожне звичайне правило виводу потребує виміряного свідка. - Сконфігуруйте з
CLAUSE_OTP_AUDITS=ONіCLAUSE_OTP_SOURCE_ROOT, що вказує на робочу копію. Запустіть аудитні тести йtests/compiler/patternmatch/regenerate.py --corpus all --check. Запишіть ревізію й результати нижче; повідомляйте про розбіжності замість того, щоб приховувати їх повторним генеруванням.
Історія фіксацій
Історичні записи зберігають ревізію, щодо якої їх зроблено.
| Дата | Подія | Ревізія |
|---|---|---|
| 2026-09-19 | Валідація парсера щодо тегу OTP 29.1 | 751f87b703fe5948607d08e82599ce644b772e76 |
| 2026-09-28 | Перехід на maint-29; граматика й десять файлів корпусу ідентичні | 21776803ecd11f5fa948732c0ec66b8f325dedfc |
| 2026-10-01 – 10-03 | Повторне завантаження перед кожним кроком зразків/guard; без змін | та сама |
| 2026-10-03 | План 11, крок 1: 14 аудитних тестів проходять, 19 корпусів відтворюються | та сама |
Clause