Clause
← All dokumentation

Översatt från det engelska originalet · 06042fa · 2026-10-09 · Läs på engelska

Validering

Nuvarande baslinje

Plan 11 step 1, 2026-10-03, commit b1a471f, Windows x64: clang-cl 23.1.2, LLVM SDK 23.1.2 (/MT, _ITERATOR_DEBUG_LEVEL=0), Lizard 1.24.0, clang-tidy 22.1.8, OTP-pin 21776803ecd1 med orakel OTP 29.1.1 / ERTS 17.1.

KontrollResultat
Färsk kombinerad Debug-CTest125/125, noll överhoppade (729 s seriellt; 85 s med -j 16)
CTest i snabbläge (debug-fast)122 tester, cirka 60 s
check-qualityGodkänt; Lizard CCN 10, clang-tidy över 258 produktionsenheter
Valfria OTP-granskningstester14/14
regenerate.py --corpus all --check19/19 korpusar återskapas
Främmande O0/O2-objekt7 mål inspekterade (Linux x86/x64/ARM/AArch64, Windows x86/x64, Apple Silicon)

Köra grinden

Från ett x64-utvecklarskal för Visual Studio med C:\Program Files\LLVM\bin i PATH (automatiskt val av SDK återanvänder thirdparty/):

cmake --preset debug --fresh -DBUILD_TESTING=ON -G Ninja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl
cmake --build build/debug
ctest --preset debug-fast                  # during development
ctest --preset debug -j 16                 # full mode, at feature completion
cmake --build build/debug --target check-quality      # changed files + dependents
cmake --build build/debug --target check-quality-all  # whole tree

Fixturer och ursprung

Testdesign

Beteende testas via den riktiga CLI:n, emitterade objekt, länkade native-konsumenter och goldens från OTP. Fokuserade enhetstester finns kvar endast där källkod inte kan nå tillståndet, var och ett med sitt syfte angivet i testet:

Fall som beror på filsystemets förmågor (länkar, skiftlägesalias) rapporterar överhoppningar per fall; de ersätter aldrig ett godkänt helt test.

Plattforms- och sanitizer-status

Historik

Sammanfattat från de tidigare posterna per steg (original i Git-historiken fram till commit 2777c98). Om inget annat anges: Windows x64, LLVM 23.1.2, pin 21776803ecd1, orakel OTP 29.1.1 / ERTS 17.1. Testantal är fullständiga CTest-körningar utan överhoppningar.

DatumMilstolpeTesterKvalitetsenheterAnteckningar
2026-09-19Parserfas VI (macOS arm64, OTP 29.1 751f87b7, orakel 29.0.5)46alla344/344 produktioner belagda; korpus med 10 filer
2026-09-20Projekt (macOS arm64)64allaDebug, enbart kompilator, ASan+UBSan
2026-09-28Testmigrering till CLI-arbetsflöden74/75—Baslinje 78/93; stackspill i parser_hardening åtgärdades senare med 8 MiB stack
2026-09-28Reparation av Windows-grinden75allaLizard + clang-tidy rena
2026-09-29Kompilatormilstolpe steg 1–46103182Enbart kompilator 80, enbart runtime 16, runtime-ASan 16
2026-10-01PG1 semantisk matris och bevis104—Källhashar fastlåsta
2026-10-01PG2 felkanal108—ABI rev 2
2026-10-01PG3 atomer109189ABI rev 3
2026-10-01PG4 bindningar med räckvidd11119126 legalitetsfall
2026-10-02PG5 mönstersemantik11319692 legalitetsmoduler
2026-10-02PG6 matchning av omedelbara värden11419934 anrop
2026-10-02PG7 guards för omedelbara värden1192051 689 anrop
2026-10-02PG8 kontrollflöde i guards1202072 075 anrop
2026-10-02PG9 ordnade klausuler1212081 020 anrop
2026-10-02PG10 matchningar i kroppar1222091 666 anrop
2026-10-02PG11 stabil heap och rötter123213ABI rev 4
2026-10-02PG12 tupler/listor/strängar1252214 801 anrop
2026-10-02PG13 godtyckliga heltal12723116 065 anrop
2026-10-02PG14 flyttal12923814 436 anrop
2026-10-02PG15 maps1312448 010 anrop
2026-10-02PG15a OTP-fria goldens11824414 korpusar, 49 959 värden; granskningar valfria
2026-10-02PG16 bitstrings1202538 826 anrop
2026-10-03PG17 tupel-records1212571 025 utfall, 29 semantiska fall
2026-10-03PG18 guard-katalog12225781 rader, 5 033 utfall
2026-10-03PG19 bindningsfakta123258822 utfall, 976 dominanskontroller
2026-10-03PG20 avslutning12425819 korpusar, 67 634 värden, 1 969 seedade utfall
2026-10-03Granskning av OTP-källkod125258Kopierade OTP-filer ersatta med lokala fragment
2026-10-03Plan 11 step 1 baslinje125258Se nuvarande baslinje
2026-10-03Plan 11 step 2 programfixturer126258Sex OTP-goldens; snabbläge 123 tester; fullt -j 16 83 s
2026-10-03Plan 11 step 4 termutskrift128 snabba2659 542 ~w/display-goldens; 154 kompilerade display-anrop i alla policyer; clang-tidy kört med ett jobb (samtidiga körningar kraschade verktyget på oförändrade enheter)
2026-10-04Plan 11 step 8 körare för körbara filer (phase B stängd)138 (135 snabba)272Fallen demo, exits under åtta kombinationer av policy/drivrutin; fullt -j 16 235 s
2026-10-04Plan 11 step 8I klassisk heap (phase C stängd)144 (140 snabba)276Fullt -j 16 370 s: 143/144, codegen_dependency fick timeout efter 120 s under last och klarade sig ensamt på 29 s; Lizard-all 0 varningar; tidy-all godkänt med ett jobb efter ett tyst avslut med två jobb
2026-10-04Plan 11 step 9 case och begin146 (142 snabba)114 ändradeSnabbt 142/142; berörda tester 7/7 i fullt läge; Lizard 0 varningar; tidy godkänt med ett jobb efter ett tyst avslut med två jobb
2026-10-05Plan 11 step 10 if147 (143 snabba)114 ändradeSnabbt 143/143; berörda tester 8/8 i fullt läge; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 11 raises i källkod148 (144 snabba)124 ändradeSnabbt 144/144; berörda tester 22/22 i fullt läge; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 12 catch Expr149 (145 snabba)277Snabbt 145/145; berörda tester 25/25 i fullt läge; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 13 try ... of ... catch150 (146 snabba)189 ändradeSnabbt 146/146; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 14 try ... after153 (149 snabba)2 ändradeSnabbt 149/149; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 15 stackspår och raise/3154 (150 snabba)129 ändradeSnabbt 150/150; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 16 maybe (phase D stängd)155 (151 snabba)277Snabbt 151/151; fullt -j 16 155/155 på 259 s; Lizard-all 0 varningar; tidy-all godkänt
2026-10-05Plan 11 step 18 rekursiva anropsgrafer156 (152 snabba)91 ändradeSnabbt 152/152; berörda tester 13/13 i fullt läge; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 19 explicita ramar och svansanrop157 (153 snabba)278Snabb och fullständig CTest godkända (med fallet från step 20: 154/154, 158/158); clang-cl-konfigurering; Lizard 0 varningar; tidy godkänt
2026-10-05Plan 11 step 20 djup rekursion i kroppar och stackbudget158 (154 snabba)278Snabbt 154/154; fullt 158/158; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 21 list-comprehensions159 (155 snabba)ändradeSnabbt 155/155; berörda tester i fullt läge; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 22 binary- och map-comprehensions (phase E stängd)160 (156 snabba)allaSnabbt 156/156; fullt -j 12 160/160 på 275 s; Lizard-all 0 varningar; tidy-all godkänt efter åtgärd av fyra fynd i ny kod
2026-10-06Plan 11 step 23 rotinventering, SafePoint, levande register160 (156 snabba)50 ändradeSnabbt 156/156; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 26 skräpsamling från genererad kod161 (157 snabba)63 ändradeSnabbt 157/157; fullt -j 12 161/161 på 107 s; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27 heaputtömning efter skräpsamling162 (158 snabba)50 ändradeSnabbt 158/158; fullt -j 12 162/162 på 108 s; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27 korrigering: inga minnestak som standard162 (158 snabba)50 ändradeFullt -j 12 158/162 på 120 s, 4 codegen_failure_* åtgärdade genom att förvänta out_of_memory, sedan 10/10 berörda; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27 uppföljning: inga tak för binaries eller antal processer, --max-atoms164 (160 snabba)281Snabbt 160/160; fullt -j 12 164/164 på 105 s; Lizard 0 varningar; tidy-all godkänt
2026-10-06Plan 11 step 28 grafkopior mellan heapar, delade buffertar utanför heapen166 (162 snabba)71 ändradeSnabbt 162/162; fullt -j 12 166/166 på 130 s; Lizard 0 varningar; tidy godkänt
2026-10-07Plan 11 step 29 uppdateringar av records167 (163 snabba)38 ändradeSnabbt 163/163; Lizard 0 varningar; tidy godkänt; records-korpusen återskapas under OTP
2026-10-07Plan 11 step 30 record_info/2168 (164 snabba)42 ändradeSnabbt 164/164; fullt -j 12 168/168 på 119 s; Lizard 0 varningar; tidy godkänt
2026-10-07Plan 11 step 31B celler för native records och CLAUSE_record_v1 (ABI 6)169 (165 snabba)283 ändradeSnabbt 165/165; fullt -j 12 169/169 på 122 s; Lizard 0 varningar; tidy godkänt efter två åtgärder
2026-10-07Plan 11 step 31C lokala native records170 (166 snabba)285 ändradeSnabbt 166/166; fullt -j 12 170/170 på 146 s; Lizard och tidy godkända efter komplexitetsåtgärder
2026-10-07Plan 11 step 31D kvalificerade och importerade native records171 (167 snabba)124 ändradeSnabbt 167/167; fullt -j 12 171/171 på 129 s; Lizard 0 varningar; tidy godkänt efter tre åtgärder
2026-10-07Plan 11 step 31E anonyma native records (step 31 stängt)172 (168 snabba)33 ändradeSnabbt 168/168; fullt -j 12 172/172 på 124 s; Lizard 0 varningar; tidy godkänt efter en åtgärd
2026-10-07Plan 11 step 32 funktionsvärden fun F/A, fun M:F/A (ABI 7)173 (169 snabba)289 ändradeSnabbt 169/169; fullt -j 12 173/173 på 122 s; Lizard och tidy godkända efter komplexitetsåtgärder
2026-10-07Plan 11 step 33 closures med fångade variabler175 (171 snabba)134 ändradeSnabbt 171/171; fullt -j 12 175/175 på 126 s; Lizard och tidy godkända efter komplexitetsåtgärder
2026-10-07Plan 11 step 34 namngivna funs176 (172 snabba)132 ändradeSnabbt 172/172; fullt -j 12 176/176 på 152 s; Lizard 0 varningar; tidy godkänt
2026-10-07Plan 11 step 35 dynamiska anrop M:F(Args), apply/2,3, fun M:F/A vid körning (ABI 8)177 (173 snabba)290 (analysatorkonfiguration ändrad)Snabbt 173/173; fullt -j 12 177/177 på 142 s; Lizard 0 varningar och tidy godkänt efter en komplexitetsåtgärd och tre tidy-åtgärder
2026-10-06Plan 11 step 27E ERTS-gräns för stora heltal, error:system_limit165 (161 snabba)157 ändradeSnabbt 161/161; fullt -j 12 165/165 på 130 s; Lizard 0 varningar; tidy godkänt; 21 goldens för körbara filer återskapas under OTP
2026-10-06Plan 11 step 27D inga tak för map-storlek eller nyckelarbete164 (160 snabba)13 ändradeSnabbt 160/160; fullt -j 12 164/164 på 115 s; efter en tidy-åtgärd i bit_order godkänns 35 berörda tester; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27C gräns för tupelaritet 16 777 215164 (160 snabba)51 ändradeSnabbt 160/160; fullt -j 12 164/164 på 121 s; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27B inga tak för listlängd eller jämförelsearbete164 (160 snabba)4 ändradeSnabbt 160/160; fullt -j 12 164/164 på 125 s; Lizard 0 varningar; tidy godkänt
2026-10-06Plan 11 step 27A runtime-omfattande minnesgräns och --max-heap/stack/memory164 (160 snabba)49 ändradeSnabbt 160/160; fullt -j 12 164/164 på 118 s; efter en tidy-åtgärd i ProcessStack::grow godkänns 42 berörda tester; Lizard 0 varningar; tidy godkänt

PG = steg i mönster-/guard-planen (arkiverat i .agents/00-finished.md).