Clause
← Уся документація

Перекладено з англійського оригіналу · 06042fa · 2026-10-09 · Читати англійською

Довідкові вихідні коди Erlang/OTP

Clause стежить за офіційною гілкою maint-29. Перевірена фіксація версії (pin) зберігається в references/otp-pin.cmake:

references/otp — це ігнорована робоча копія. Звичайні збірки й тести використовують власні еталони проєкту й не потребують ні робочої копії, ні встановленого OTP. Конфігурація й тести ніколи не завантажують і не просувають довідкову версію. Живі аудити вмикаються за бажанням через -DCLAUSE_OTP_AUDITS=ON; див. повторне генерування фікстур.

Вихідні коди OTP, скопійовані допоміжні файли й згенеровані OTP заголовки ніколи не потрапляють у Git. Закомічені тестові вхідні дані написані в проєкті; закомічені еталони є спостереженнями над цими вхідними даними. Див. валідацію.

Процедура оновлення

Виконується на початку роботи, що залежить від OTP.

  1. Перевірте 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 і зміни від моменту фіксації, особливо граматику, сканер, препроцесор і вхідні дані корпусу.
  2. Перемотайте чисту локальну гілку вперед: 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 залишайте без змін.
  3. Згенеруйте заголовок компілятора з тієї самої ревізії (з кореня проєкту): 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.
  4. Оновіть фіксацію версії й перевірте кожен шлях у tests/fixtures/parser/phase6/otp.tsv. Оновлюйте хеші лише після перегляду справжніх змін upstream. Якщо змінюється erl_parse.yrl, перегляньте tests/fixtures/parser/grammar.tsv, його фікстури й phase6/coverage.tsv; кожне звичайне правило виводу потребує виміряного свідка.
  5. Сконфігуруйте з CLAUSE_OTP_AUDITS=ON і CLAUSE_OTP_SOURCE_ROOT, що вказує на робочу копію. Запустіть аудитні тести й tests/compiler/patternmatch/regenerate.py --corpus all --check. Запишіть ревізію й результати нижче; повідомляйте про розбіжності замість того, щоб приховувати їх повторним генеруванням.

Історія фіксацій

Історичні записи зберігають ревізію, щодо якої їх зроблено.

ДатаПодіяРевізія
2026-09-19Валідація парсера щодо тегу OTP 29.1751f87b703fe5948607d08e82599ce644b772e76
2026-09-28Перехід на maint-29; граматика й десять файлів корпусу ідентичні21776803ecd11f5fa948732c0ec66b8f325dedfc
2026-10-01 – 10-03Повторне завантаження перед кожним кроком зразків/guard; без змінта сама
2026-10-03План 11, крок 1: 14 аудитних тестів проходять, 19 корпусів відтворюютьсята сама