aboutsummaryrefslogtreecommitdiff
path: root/src/micro/micro.c
diff options
context:
space:
mode:
authorGravatar zinc <zinc@downsta.ir> 2026-10-15 14:10:03 +0330
committerGravatar zinc <zinc@downsta.ir> 2026-10-15 14:10:03 +0330
commita3b72f0c6d02f96606c200cde04735fd57151805 (patch)
tree7ed42ed6b38588750b31db23c6274cc9fdf8c175 /src/micro/micro.c
parentmerge work/borrow: borrow returns before definition, borrows clause, borrow m... (diff)
boot: build the compiler from a pinned wasm seed (seed/zc.wasm, WASI) under wasmtime or node, proven by the fixpoint; seed/MANIFEST hashes; make seed; legacy c bootstrap kept as make genome-c
Diffstat (limited to 'src/micro/micro.c')
-rw-r--r--src/micro/micro.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/micro/micro.c b/src/micro/micro.c
index 23994dd..39a22b2 100644
--- a/src/micro/micro.c
+++ b/src/micro/micro.c
@@ -776,6 +776,13 @@ int micro_run(void)
micro_msg("zy: genome does not fit\n");
return 1;
}
+#ifdef MICRO_PORT_IMAGE
+ /* the port may hand over an image of its own in place of the embedded one
+ (the wasm bootstrap seed does, to run a freshly built compiler) */
+ i = micro_port_image(m, (UCell)GORG, (UCell)FBOT);
+ if (i < 0) { micro_msg("zy: bad image\n"); return 1; }
+ if (i == 0)
+#endif
for (i = 0; i < GLEN; i++) m[GORG + i] = genome_word(i);
jknown = 0;
return run(GORG);