feat: integrate Wasuro WASM runtime into Asuro build chain
- Add compile_wasuro.sh to sparse-clone Wasuro src/wasm from gitea
(develop branch) with caching to skip redundant pulls
- Update compile.sh to include wasuro build step in pipeline
- Update compile_sources.sh to dynamically discover -Fu paths via
find across src/ and wasuro/ directories
- Extend system.pas with FPC 3.2.2 compilerprocs required by Wasuro:
- 64-bit signed/unsigned div and mod (fpc_div_int64, fpc_mod_int64,
fpc_div_qword, fpc_mod_qword) with correct i386 parameter mapping
- 64-bit multiply (fpc_mul_int64) via three 32-bit MUL instructions
- Float-to-integer intrinsics (Trunc, Round) using x87 FPU
- Memory allocation compilerprocs (fpc_getmem, fpc_freemem)
delegating to kernel kalloc/kfree
- Exception handling stubs (reraise, raiseexception, catches, doneexception)
- setjmp/longjmp for exception address stack
- Fix sInt64 type alias (was longint/32-bit, now int64/64-bit)
- Add serial debug helpers (COM1 $3F8) for bare-metal tracing
- Wire up Wasuro in kernel.pas: init WASM VM, set I/O callback to
syslog, and run all 1103 Wasuro tests (0 failures)
- Update .gitignore to exclude wasuro/ cache directory
This commit is contained in:
+203
-18
File diff suppressed because it is too large
Load Diff
@@ -106,6 +106,10 @@ uses
|
||||
volcmd,
|
||||
volumemanager,
|
||||
vterminal,
|
||||
wasm,
|
||||
wasm.vm.io,
|
||||
wasm.test,
|
||||
wasm.test.framework,
|
||||
Windows,
|
||||
XHCI;
|
||||
|
||||
@@ -243,6 +247,10 @@ begin
|
||||
vfs.init();
|
||||
storagetest.init;
|
||||
|
||||
{ Let's test Wasuro! }
|
||||
wasm.vm.io.io_set_writechar(@syslog.logchar);
|
||||
wasm.wasm_init;
|
||||
|
||||
{ Management Interfaces }
|
||||
tracer.push_trace('kmain.STRMGMT');
|
||||
splash.update(10, 'Initializing storage management...');
|
||||
@@ -328,6 +336,7 @@ begin
|
||||
cfifols.UnitTest;
|
||||
lifo.UnitTest;
|
||||
circ.UnitTest;
|
||||
wasm.test.run_all_tests;
|
||||
splash.update(90, 'Running test suite...');
|
||||
minh.UnitTest;
|
||||
maxh.UnitTest;
|
||||
|
||||
Reference in New Issue
Block a user