stage0 重构vm使其依赖自己的地址空间不再共用宿主机 修改vm的ABI 修正相关nob构建问题

This commit is contained in:
zzy committed 2026-09-22 23:12:15 +08:00
1 parent fae017b52d
commit c0a86ea552
14 files changed
+2149 -1572

No files matched your search

+82 -12
View File
@@ -3,6 +3,13 @@
/* clang-format off */
#define VM_SRCS "stage0/spl_mcode.c", "stage0/spl_syscall.c", "stage0/spl_vm.c",
static const char *stage0_headers[] = {
"stage0/spl_asp.h", "stage0/spl_mcode.h", "stage0/spl_syscall.h",
"stage0/spl_vm.h", "stage0/spl_rt_core.h", "stage0/spl_rt.h",
"stage0/spl_vm_embed.h",
};
static const char *spl_cli_srcs[] = {"stage0/spl_cli.c", VM_SRCS};
static const char *vm_test_srcs[] = {"stage0/test_spl_vm.c", VM_SRCS};
static const char *splc0_srcs[] = {
@@ -30,8 +37,8 @@ static const char *splc0_srcs[] = {
};
static const char *splc1_crt_deps[] ={
"stage2/sys/spl_rt.h",
"stage2/sys/spl_vm_embed.h",
"stage0/spl_rt.h",
"stage0/spl_vm_embed.h",
// TODO
};
@@ -88,10 +95,73 @@ static const char* splc1_deps[] = {
};
static const char* splc2_deps[] = {
/* stage3 */
"stage3/ast2ir.spl",
"stage3/ast_clone.spl",
"stage3/ctvm.spl",
"stage3/eval.spl",
"stage3/intrin.spl",
"stage3/lang_type.spl",
"stage3/sema.spl",
"stage3/splc2.spl",
"stage3/splrt.spl",
/* stage2 */
"stage2/sys/exit.spl",
"stage2/sys/file.spl",
"stage2/sys/mem.spl",
"stage2/sys/time.spl",
"stage2/sys/vm.spl",
"stage2/utils/algorithm.spl",
"stage2/utils/arena.spl",
"stage2/utils/ascii.spl",
"stage2/utils/byte_buffer.spl",
"stage2/utils/byte_view.spl",
"stage2/utils/error.spl",
"stage2/utils/fmt.spl",
"stage2/utils/hash.spl",
"stage2/utils/io.spl",
"stage2/utils/json.spl",
"stage2/utils/log.spl",
"stage2/utils/lsp_frame.spl",
"stage2/utils/map.spl",
"stage2/utils/memory.spl",
"stage2/utils/mp.spl",
"stage2/utils/path.spl",
"stage2/utils/profile.spl",
"stage2/utils/set.spl",
"stage2/utils/source.spl",
"stage2/utils/str.spl",
"stage2/utils/utf8.spl",
"stage2/utils/value.spl",
"stage2/utils/vec.spl",
"stage2/ast.spl",
"stage2/ast2ir.spl",
"stage2/attr.spl",
"stage2/def.spl",
"stage2/diag.spl",
"stage2/eval.spl",
"stage2/intrin.spl",
"stage2/ir.spl",
"stage2/ir2c.spl",
"stage2/ir2vm.spl",
"stage2/ir_builder.spl",
"stage2/lang_type.spl",
"stage2/layout.spl",
"stage2/lexer.spl",
"stage2/mcode.spl",
"stage2/parser.spl",
"stage2/scope.spl",
"stage2/sema.spl",
"stage2/splc1.spl",
"stage2/token.spl",
"stage2/type_table.spl",
};
static const char *splc2_crt_deps[] = {};
static const char *splc2_crt_deps[] = {
"stage0/spl_rt.h", "stage0/spl_rt_core.h", "stage0/spl_asp.h",
"stage0/spl_mcode.h", "stage0/spl_vm.h", "stage0/spl_syscall.h",
"stage0/spl_vm_embed.h",
};
/* clang-format on */
@@ -138,32 +208,32 @@ static build_t targets[] = {
BUILD_EXE_WITH_OPTIMIZATION,
.exe = {.srcs = spl_cli_srcs,
.srcs_count = NOB_ARRAY_LEN(spl_cli_srcs),
.headers = NULL,
.headers_count = 0},
.headers = stage0_headers,
.headers_count = NOB_ARRAY_LEN(stage0_headers)},
},
{
"spl_cli_g",
BUILD_EXE,
.exe = {.srcs = spl_cli_srcs,
.srcs_count = NOB_ARRAY_LEN(spl_cli_srcs),
.headers = NULL,
.headers_count = 0},
.headers = stage0_headers,
.headers_count = NOB_ARRAY_LEN(stage0_headers)},
},
{
"vm_test",
BUILD_EXE,
.exe = {.srcs = vm_test_srcs,
.srcs_count = NOB_ARRAY_LEN(vm_test_srcs),
.headers = NULL,
.headers_count = 0},
.headers = stage0_headers,
.headers_count = NOB_ARRAY_LEN(stage0_headers)},
},
{
"splc0",
BUILD_EXE,
.exe = {.srcs = splc0_srcs,
.srcs_count = NOB_ARRAY_LEN(splc0_srcs),
.headers = NULL,
.headers_count = 0},
.headers = stage0_headers,
.headers_count = NOB_ARRAY_LEN(stage0_headers)},
},
{
"splc1",