Move examples/*.sx and their expected/ snapshots into per-category subfolders (examples/<category>/...). Folder = leading filename token, with ffi-objc/ffi-jni kept whole; filenames are unchanged. The corpus runner and LSP sweep now discover each category's expected/ dir, while issues/ stays flat. Example 1058's repo-root-relative companion import is made file-relative. Path strings embedded in 164 snapshots were regenerated (path-only changes). Test-layout docs in CLAUDE.md updated.
17 lines
605 B
Plaintext
17 lines
605 B
Plaintext
// A BODIED `abi(.compiler)` function is a compiler-domain function: the comptime
|
|
// evaluator runs its sx body, but it is NEVER lowered into the shipped binary
|
|
// (emit_llvm skips it, like an extern). Here `double` folds the `#run` const at
|
|
// compile time; `main` only ever sees the folded constant, and no `double` symbol
|
|
// exists in the binary. (Regression for the S3 step of the abi(.compiler) work —
|
|
// see current/PLAN-COMPILER-VM.md.)
|
|
|
|
#import "modules/std.sx";
|
|
|
|
double :: (x: i64) -> i64 abi(.compiler) { x * 2 }
|
|
|
|
answer :: #run double(42);
|
|
|
|
main :: () {
|
|
print("answer = {}\n", answer);
|
|
}
|