Sources/Dezip/ is an external collection, not part of the build. It contains
4,919 .pas files (77 MB, about 354k lines). Most are SWAG/FreePascal or
Delphi units, so a failure count is not a compiler score; it is a map of what
the TP3 subset does not cover yet.
Every file was compiled separately with the current shell/compiletest, in a
fresh process and with a 5-second timeout. Separate processes matter: the
first batch run aborted after a compiler bug, and one crashing source must not
hide the rest of the corpus.
| result | count |
|---|---|
| compiles | 49 |
| errors | 4,870 |
| crashes/timeouts | 0 |
By error code:
| code | meaning | count |
|---|---|---|
| 41 | unknown construct/identifier | 4,335 |
| 90 | include file not found | 418 |
| 102 | not implemented | 48 |
| 1 | syntax / semicolon | 39 |
| 30 | simple type expected | 20 |
| 56 | type mismatch | 9 |
| 99 | compiler overflow | 1 |
The useful subset is pascsrc/, which is the classic TP3 example material:
44 of 84 compile. The SWAG tree is 4,473 files, almost all FreePascal or
Delphi units; only 5 compile.
'I' is scanned as a CHAR scalar, not a
string, so DefConst took the integer path and shifted a 16-bit value through
divi until it became zero: SIGFPE in DefConst. The array element type
is now consulted; a scalar element of a STRING array is stored as a
one-character string. t118_strconstarray compiles and prints '', I,
II.Roman2.pas in the SWAG tree. It now gets a normal
diagnostic (Word is not yet a type) instead of killing the compiler.uses/unit imports. Most SWAG files cannot even reach a declaration
after their uses line.Word, LongInt, ShortInt, Single, Double.absolute, Printer, Dos, Mem/Msdos, and
Addr beyond the currently supported pointer paths.ERROR 90, 418 files).The 49 clean files are useful smoke material, but the corpus is intentionally
not wired into run_all.sh: it lives outside the repository and most of it is
outside the TP3 language subset.
The obvious non-TP3 material was removed:
Dezip/swag-pascal-master tree and its
swag-pascal-master.zip;.pas files outside that tree that declare unit, use uses, or carry
FreePascal/Delphi markers;Mixed archives — including pascsrc.zip, which also contains the 44 compiling
TP3 examples — were deliberately kept.
Before cleanup: 6,810 files, 4,919 .pas, 907 zips.
After cleanup: 1,731 files, 71 .pas, 858 zips.
The remaining 71 Pascal files compile as 54 OK / 17 errors after the first
compiler upgrades (long identifiers, named labels, Addr, field widths,
nested arrays, negative bounds, forward pointer types, NIL, and forward
procedure parameters). The remaining 17 are TP3-feature gaps, not
unit/Delphi noise.