From d981870038c3ffa531f5c1d07e4aec855e061491 Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Wed, 14 Oct 2026 08:45:35 +0330 Subject: build: generate everything into build/, keep src/ free of generated files src/ carried 8.4 MB of build output: the genome header, the javascript vm and its layout, and the language-server image, plus a second copy of the extension server under editors/vscode/server/. none of it is source. - move the genome from src/core/genome.h to build/core/genome.h and compile with -Ibuild/core; `make all` bootstraps one when it is missing - write genome.json, layout.ts, layout.js and lsp.json to build/js/ - compile tinyvm.ts to build/js/, typed by a tracked src/js/layout.d.ts so the vm needs no generated file beside its source - build the wasm server into build/editors/vscode/server/ and stage the whole server into editors/vscode/server/ only while mkvsix.sh packages it - redirect the test suite, image_run.js, tinyvm.sh, tinyvm.bat, test_win.ps1 and the baremetal build at the new paths, and add make lspimage and make vsix - stop tracking every generated file also fix a build blocker: lookup_raw compared skind against K_VAR, which was never declared, so `make genome` could not run at all. the guard is about emitted program globals, which are K_GVAR and K_GARR. tests/test.sh -q reports 159 passed and 21 failed both before and after this change; every failure is pre-existing and comes from the checked-in genome being stale relative to src/, plus the bootstrap above. --- tests/test_win.ps1 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'tests/test_win.ps1') diff --git a/tests/test_win.ps1 b/tests/test_win.ps1 index 0a18728..0edc86c 100644 --- a/tests/test_win.ps1 +++ b/tests/test_win.ps1 @@ -66,7 +66,7 @@ try { $isFixpoint = [System.Linq.Enumerable]::SequenceEqual($g1, $g2) Report-Result $isFixpoint "Fixpoint: compiler compiles itself to identical $($g1.Length / 8) words" - $ghRepo = (Get-FileHash "src\core\genome.h").Hash + $ghRepo = (Get-FileHash "build\core\genome.h").Hash $ghGen = (Get-FileHash "$tempDir\s1\genome.h").Hash Report-Result ($ghRepo -eq $ghGen) "genome.h is up to date" @@ -226,20 +226,20 @@ try { Write-Host " [SKIP] Node.js not detected in PATH, skipping lsp protocol tests." -ForegroundColor DarkYellow } - # --- 8. JavaScript / TypeScript vm runtime (src/js/tinyvm.js) --- - Write-Host "`n=== 8. JavaScript VM Runtime (node src/js/tinyvm.js) ===" -ForegroundColor Yellow + # --- 8. JavaScript / TypeScript vm runtime (build/js/tinyvm.js) --- + Write-Host "`n=== 8. JavaScript VM Runtime (node build/js/tinyvm.js) ===" -ForegroundColor Yellow $nodeCmd = Get-Command node -ErrorAction SilentlyContinue if ($nodeCmd) { - $jsHello = (node src\js\tinyvm.js examples\hello.zc 2>&1) -join "`n" + $jsHello = (node build\js\tinyvm.js examples\hello.zc 2>&1) -join "`n" Report-Result ($jsHello.Trim() -eq "hello, world!") "JS VM: hello.zc" - $jsFact = (node src\js\tinyvm.js examples\fact.zc 2>&1) -join "`n" + $jsFact = (node build\js\tinyvm.js examples\fact.zc 2>&1) -join "`n" Report-Result ($jsFact.Contains("3628800")) "JS VM: fact.zc" - $jsPrimes = (node src\js\tinyvm.js examples\primes.zc 2>&1) -join "`n" + $jsPrimes = (node build\js\tinyvm.js examples\primes.zc 2>&1) -join "`n" Report-Result ($jsPrimes.Contains("widest gap: 72")) "JS VM: primes.zc" - $jsMandel = (node src\js\tinyvm.js examples\mandel.zc 2>&1) -join "`n" + $jsMandel = (node build\js\tinyvm.js examples\mandel.zc 2>&1) -join "`n" Report-Result ($jsMandel.Contains("*") -or $jsMandel.Contains(".")) "JS VM: mandel.zc (custom fmul enhancement)" } else { Write-Host " [SKIP] Node.js not detected in PATH, skipping JS tests." -ForegroundColor DarkYellow -- cgit v1.2.3