Finch/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 04d5486477 boot: structs by value (System V), addr(fn) callbacks -- the compiler builds itself
C structs travel as C passes them: up to 16 bytes in INTEGER/SSE registers per eightbyte,
bigger ones byval and through sret, out-of-registers structs on the stack. addr(fn) makes a
C-callable thunk that rebuilds the arguments. With those, the self-hosted compiler can
compile boot/cimport.fch, which calls libclang with CXCursor and CXString by value and gives
it callbacks -- so it compiles itself.

boot.sh: stage 2 and stage 3 are identical (57904 lines of IR); 22 passed, 0 failed,
0 skipped. Only x86-64 System V so far; Windows and ARM64 conventions are still in C++.
2026-10-25 19:47:20 +01:00
..
fail Fix the two known limits: adding map keys while looping over the map is a runtime error; temporaries held by an expression are freed when try / or-blocks leave early. err usable after or, inner err shadows outer. 2026-10-25 19:13:46 +01:00
run boot: methods (fn T.m, self by address, mutation analysis), str() of any value 2026-10-25 19:13:46 +01:00
boot.sh boot: structs by value (System V), addr(fn) callbacks -- the compiler builds itself 2026-10-25 19:47:20 +01:00
cimport_boot_test.fch boot: cimport.fch, the C header importer written in Finch on libclang 2026-10-25 19:40:50 +01:00
cross.sh ARM64 and macOS: AAPCS64 struct passing, aarch64/macos targets, Apple frameworks and ld messages, tests/cross.sh, CI on ARM64 Linux and macOS 2026-10-09 00:34:00 +02:00
lsp_test.py Finch 2.4.0: methods, maps, errors as values; str() of any value; macOS and ARM64 docs; Kate support 2026-10-09 01:11:12 +02:00
run.sh Finch 2.4.0: methods, maps, errors as values; str() of any value; macOS and ARM64 docs; Kate support 2026-10-09 01:11:12 +02:00