self-host TCS compiler GIR and add portable host runtime

This commit is contained in:
冰朔 2026-08-21 17:15:23 +08:00
commit ff29e52a32
33 changed files with 3848 additions and 831 deletions

View file

@ -6,7 +6,7 @@ COMPILER TCS-COMPILER-STAGE1-0001 {
name_zh = "TCS 第一代自举编译器";
version = "0.1.0";
profile = "HLDP-NP/1";
lifecycle = "SOURCE_DEFINED_NOT_YET_EXECUTABLE";
lifecycle = "EXECUTABLE_SEMANTIC_FIXED_POINT_PROVEN_HOST_ACCEPTANCE_IN_PROGRESS";
bootstrap_seed = "TCS-STAGE0-IGNITION-0001";
output = "GIR/1";
}
@ -96,7 +96,6 @@ COMPILER TCS-COMPILER-STAGE1-0001 {
standard_library_test = "REQUIRED";
negative_corpus_test = "REQUIRED";
minimum_runnable_module_test = "REQUIRED";
current_state = "NOT_PROVEN";
current_state = "SH01_TO_SH06_LOCAL_PASS_SH07_TARGET_READBACK_IN_PROGRESS";
}
}

View file

@ -254,10 +254,10 @@ Stage-0 可以由现有宿主语言实现,但只能叫“点火引导”。正
```yaml
language_tree_unified: DEFINED
syntax_and_field_standard: DRAFT_V0_1
stage0_parser_compiler: IMPLEMENTATION_ACTIVE
gir_module_loader: IMPLEMENTATION_ACTIVE
tcs_stage1_compiler: NOT_IMPLEMENTED
self_compile_fixed_point: NOT_PROVEN
jd_final_native_master: NOT_PROVEN
hololake_tcs_runtime_integration: NOT_IMPLEMENTED
stage0_parser_compiler: REPLACEABLE_BOOTSTRAP_SEED_PASS
gir_module_loader: PORTABLE_MINIMUM_RUNTIME_PASS
tcs_stage1_compiler: EXECUTABLE_COMPILER_GIR_PASS
self_compile_fixed_point: LOCAL_PASS_CROSS_HOST_FINAL_GATE_IN_PROGRESS
jd_final_native_master: LIVE_READBACK_PASS_100
hololake_tcs_runtime_integration: MACOS_STANDALONE_RUNTIME_PASS_SHELL_INTEGRATION_PENDING
```

View file

@ -0,0 +1,33 @@
schema: tcs.host-abi/v1
id: TCS-HOST-ABI-0001
version: 0.1.0
language_frontend: ONE_TCS_COMPILER
machine_ir: GIR_1
rule: HOST_BACKENDS_MUST_NOT_CHANGE_TCS_SEMANTICS_AUTHORITY_OR_RECEIPTS
targets:
- target_id: TCS-HOST-MACOS-AARCH64-0001
triple: aarch64-apple-darwin
role: HOLOLAKE_HUMAN_AND_PERSONA_LOCAL_NODE
- target_id: TCS-HOST-LINUX-X86_64-0001
triple: x86_64-unknown-linux-musl
role: GUANGHU_OS_LINUX_COMPATIBILITY_SUBSTRATE
- target_id: TCS-HOST-WINDOWS-X86_64-0001
triple: x86_64-pc-windows-msvc
role: HOLOLAKE_WINDOWS_LOCAL_NODE
required_host_operations:
- EXACT_ROOT_FILE_READ
- EXACT_ROOT_ATOMIC_WRITE
- SHA256
- MONOTONIC_TIMEOUT
- TARGET_READBACK
forbidden_host_expansion:
- INFER_TARGET_FROM_CURRENT_DIRECTORY
- INFER_AUTHORITY_FROM_OS_USER
- SUBSTITUTE_SHELL_FOR_UNREGISTERED_OPERATION
- CHANGE_GIR_SEMANTICS_BY_PLATFORM
acceptance:
compile_same_tcs_source_to_same_semantic_gir: REQUIRED
execute_same_gir_with_equivalent_receipt_state: REQUIRED
host_specific_receipt_fields: [target_triple, host_runtime_sha256]
cross_target_evidence_required: true
current_state: CONTRACT_DEFINED_IMPLEMENTATION_IN_PROGRESS

View file

@ -1,7 +1,7 @@
schema: tcs.self-host-standard/v1
id: TCS-SELF-HOST-STANDARD-0001
version: 0.1.0
state: DEFINED_NOT_YET_PASSED
state: LOCAL_SELF_HOST_PASS_CROSS_HOST_FINAL_GATE_IN_PROGRESS
compiler_source: language/compiler/TCS-COMPILER-STAGE1.tcs
gates:
- id: SH-01
@ -22,12 +22,19 @@ decision:
allowed: [FAIL_0, PASS_100]
partial_pass: false
current:
SH-01: FAIL_0
SH-02: FAIL_0
SH-03: FAIL_0
SH-04: FAIL_0
SH-05: FAIL_0
SH-06: FAIL_0
SH-01: PASS_100
SH-02: PASS_100
SH-03: PASS_100
SH-04: PASS_100
SH-05: PASS_100
SH-06: PASS_100
SH-07: FAIL_0
aggregate: FAIL_0
evidence:
compiler_a: build/self-host/compiler-A.gir.json
compiler_b: build/self-host/compiler-B.gir.json
semantic_fixed_point_field: identity.definition_sha256
standard_library: build/self-host/TCS-STDLIB-CORE.module.gir.json
runnable_module: build/self-host/ECHO-PACKAGE.module.gir.json
stage0_disabled_test: native-runtime/tcs-gir-runtime/tests/stage1_runtime.rs
negative_corpus: language/tests/negative/UNREGISTERED-OPERATION.tcs

View file

@ -0,0 +1,17 @@
TCS 0.1;
MODULE TCS-STDLIB-CORE-0001 {
header { schema = "tcs.module/v1"; name_zh = "TCS 核心标准库"; name_en = "TCS Core Standard Library"; version = "0.1.0"; language = "TCS/0.1"; profile = "HLDP-NP/1"; protocols = ["TCS-MODULE-ABI-0001", "TCS-HOST-ABI-0001"]; lifecycle = "CANDIDATE"; canonical_uri = "language/stdlib/TCS-STDLIB-CORE.tcs"; compatibility = ["GIR/1", "TCS-COMPILER-STAGE1-0001"]; }
source { source_id = "HLP-PART-TCS-LANG-0001"; source_uri = "language/stdlib/TCS-STDLIB-CORE.tcs"; source_sha256 = "SELF_AT_COMPILE_TIME"; source_role = "STANDARD_LIBRARY"; }
manifest { module_id = "TCS-STDLIB-CORE-0001"; display_name_zh = "TCS 核心标准库"; entry_program_id = "HLP-PROGRAM-ECHO-0001"; entry_source = "language/examples/ECHO-MODULE.tcs"; abi = "GIR/1"; }
entry { kind = "REGISTERED_OPERATION_LIBRARY"; id = "TCS-STDLIB-CORE-0001"; }
capabilities { required = ["HOST.EXACT_ROOT_IO", "HOST.SHA256"]; provided = ["CORE.ECHO"]; }
authority_ceiling { maximum = "LOCAL_EXACT_RECEIPT_PATH"; network = false; process = false; }
resource_ceiling { concurrency = 1; timeout_ms = 1000; memory_limit_bytes = 1048576; }
data_scope { read = ["PROGRAM_LITERAL"]; write = ["CALLER_SCOPED_RECEIPT_ROOT"]; }
network_scope { allowed = false; domains = []; }
install { account_scoped = true; registration_is_installation = false; activation_requires_self_test = true; }
self_test { program_id = "HLP-PROGRAM-ECHO-0001"; expect = "EXECUTED_TARGET_READBACK_VERIFIED"; }
rollback { action = "RESTORE_PREVIOUS_STANDARD_LIBRARY"; preserve_receipts = true; }
projection { display_name_zh = "TCS 核心标准库"; technical_detail_default = false; }
}

View file

@ -0,0 +1,17 @@
TCS 0.1;
MODULE TCS-HOST-LINUX-X86_64-0001 {
header { schema = "tcs.module/v1"; name_zh = "TCS Linux 宿主运行核"; name_en = "TCS Linux Host Runtime"; version = "0.1.0"; language = "TCS/0.1"; profile = "TCS-HOST-ABI/0.1"; protocols = ["TCS-HOST-ABI-0001"]; lifecycle = "CANDIDATE"; canonical_uri = "language/targets/TCS-HOST-LINUX-X86_64.tcs"; compatibility = ["GIR/1", "x86_64-unknown-linux-musl"]; }
source { source_id = "HLP-PART-TCS-HOST-0001"; source_uri = "native-runtime/tcs-gir-runtime"; source_sha256 = "BOUND_AT_BUILD"; source_role = "PORTABLE_HOST_RUNTIME"; }
manifest { module_id = "TCS-HOST-LINUX-X86_64-0001"; display_name_zh = "TCS Linux 宿主运行核"; entry_program_id = "TCS-COMPILER-STAGE1-0001"; entry_source = "build/self-host/compiler-B.gir.json"; target_triple = "x86_64-unknown-linux-musl"; }
entry { kind = "COMPILER_GIR_RUNTIME"; id = "TCS-COMPILER-STAGE1-0001"; }
capabilities { required = ["HOST.EXACT_ROOT_IO", "HOST.SHA256", "HOST.MONOTONIC_TIME"]; provided = ["TCS.COMPILE", "GIR.RUN"]; }
authority_ceiling { maximum = "CALLER_PROVIDED_EXACT_ROOT_AND_VALID_LEASE"; network = false; process = false; }
resource_ceiling { concurrency = 1; timeout_ms = 30000; memory_limit_bytes = 268435456; }
data_scope { read = ["TCS_SOURCE", "COMPILER_GIR", "GIR_INPUT"]; write = ["CALLER_SCOPED_BUILD_AND_RECEIPT_ROOT"]; }
network_scope { allowed = false; domains = []; }
install { account_scoped = false; registration_is_installation = false; activation_requires_self_test = true; }
self_test { program_id = "HLP-PROGRAM-ECHO-0001"; expect = "EXECUTED_TARGET_READBACK_VERIFIED"; }
rollback { action = "RESTORE_PREVIOUS_HOST_RUNTIME"; preserve_receipts = true; }
projection { display_name_zh = "TCS Linux 宿主运行核"; technical_detail_default = false; }
}

View file

@ -0,0 +1,17 @@
TCS 0.1;
MODULE TCS-HOST-MACOS-AARCH64-0001 {
header { schema = "tcs.module/v1"; name_zh = "TCS macOS 宿主运行核"; name_en = "TCS macOS Host Runtime"; version = "0.1.0"; language = "TCS/0.1"; profile = "TCS-HOST-ABI/0.1"; protocols = ["TCS-HOST-ABI-0001"]; lifecycle = "CANDIDATE"; canonical_uri = "language/targets/TCS-HOST-MACOS-AARCH64.tcs"; compatibility = ["GIR/1", "aarch64-apple-darwin"]; }
source { source_id = "HLP-PART-TCS-HOST-0001"; source_uri = "native-runtime/tcs-gir-runtime"; source_sha256 = "BOUND_AT_BUILD"; source_role = "PORTABLE_HOST_RUNTIME"; }
manifest { module_id = "TCS-HOST-MACOS-AARCH64-0001"; display_name_zh = "TCS macOS 宿主运行核"; entry_program_id = "TCS-COMPILER-STAGE1-0001"; entry_source = "build/self-host/compiler-B.gir.json"; target_triple = "aarch64-apple-darwin"; }
entry { kind = "COMPILER_GIR_RUNTIME"; id = "TCS-COMPILER-STAGE1-0001"; }
capabilities { required = ["HOST.EXACT_ROOT_IO", "HOST.SHA256", "HOST.MONOTONIC_TIME"]; provided = ["TCS.COMPILE", "GIR.RUN"]; }
authority_ceiling { maximum = "CALLER_PROVIDED_EXACT_ROOT_AND_VALID_LEASE"; network = false; process = false; }
resource_ceiling { concurrency = 1; timeout_ms = 30000; memory_limit_bytes = 268435456; }
data_scope { read = ["TCS_SOURCE", "COMPILER_GIR", "GIR_INPUT"]; write = ["CALLER_SCOPED_BUILD_AND_RECEIPT_ROOT"]; }
network_scope { allowed = false; domains = []; }
install { account_scoped = true; registration_is_installation = false; activation_requires_self_test = true; }
self_test { program_id = "HLP-PROGRAM-ECHO-0001"; expect = "EXECUTED_TARGET_READBACK_VERIFIED"; }
rollback { action = "RESTORE_PREVIOUS_HOST_RUNTIME"; preserve_receipts = true; }
projection { display_name_zh = "TCS macOS 宿主运行核"; technical_detail_default = false; }
}

View file

@ -0,0 +1,17 @@
TCS 0.1;
MODULE TCS-HOST-WINDOWS-X86_64-0001 {
header { schema = "tcs.module/v1"; name_zh = "TCS Windows 宿主运行核"; name_en = "TCS Windows Host Runtime"; version = "0.1.0"; language = "TCS/0.1"; profile = "TCS-HOST-ABI/0.1"; protocols = ["TCS-HOST-ABI-0001"]; lifecycle = "CANDIDATE"; canonical_uri = "language/targets/TCS-HOST-WINDOWS-X86_64.tcs"; compatibility = ["GIR/1", "x86_64-pc-windows-msvc"]; }
source { source_id = "HLP-PART-TCS-HOST-0001"; source_uri = "native-runtime/tcs-gir-runtime"; source_sha256 = "BOUND_AT_BUILD"; source_role = "PORTABLE_HOST_RUNTIME"; }
manifest { module_id = "TCS-HOST-WINDOWS-X86_64-0001"; display_name_zh = "TCS Windows 宿主运行核"; entry_program_id = "TCS-COMPILER-STAGE1-0001"; entry_source = "build/self-host/compiler-B.gir.json"; target_triple = "x86_64-pc-windows-msvc"; }
entry { kind = "COMPILER_GIR_RUNTIME"; id = "TCS-COMPILER-STAGE1-0001"; }
capabilities { required = ["HOST.EXACT_ROOT_IO", "HOST.SHA256", "HOST.MONOTONIC_TIME"]; provided = ["TCS.COMPILE", "GIR.RUN"]; }
authority_ceiling { maximum = "CALLER_PROVIDED_EXACT_ROOT_AND_VALID_LEASE"; network = false; process = false; }
resource_ceiling { concurrency = 1; timeout_ms = 30000; memory_limit_bytes = 268435456; }
data_scope { read = ["TCS_SOURCE", "COMPILER_GIR", "GIR_INPUT"]; write = ["CALLER_SCOPED_BUILD_AND_RECEIPT_ROOT"]; }
network_scope { allowed = false; domains = []; }
install { account_scoped = true; registration_is_installation = false; activation_requires_self_test = true; }
self_test { program_id = "HLP-PROGRAM-ECHO-0001"; expect = "EXECUTED_TARGET_READBACK_VERIFIED"; }
rollback { action = "RESTORE_PREVIOUS_HOST_RUNTIME"; preserve_receipts = true; }
projection { display_name_zh = "TCS Windows 宿主运行核"; technical_detail_default = false; }
}

View file

@ -0,0 +1,19 @@
TCS 0.1;
PROGRAM TCS-NEGATIVE-UNREGISTERED-0001 {
header { schema = "tcs.program/v1"; name_zh = "未注册操作拒绝样例"; name_en = "Unregistered Operation Rejection"; version = "0.1.0"; language = "TCS/0.1"; profile = "HLDP-NP/1"; protocols = ["GLS-0101"]; lifecycle = "NEGATIVE_TEST"; canonical_uri = "language/tests/negative/UNREGISTERED-OPERATION.tcs"; compatibility = ["TCS-COMPILER-STAGE1-0001"]; }
source { source_id = "TCS-NEGATIVE-CORPUS-0001"; source_uri = "language/tests/negative/UNREGISTERED-OPERATION.tcs"; source_sha256 = "SELF_AT_COMPILE_TIME"; source_role = "NEGATIVE_TEST"; }
subject { subject_id = "TCS-TEST-RUNNER-0001"; subject_kind = "TEST_RUNTIME"; verification = "LOCAL_TEST_BOUND"; }
target { target_id = "TCS-NEGATIVE-TARGET-0001"; target_kind = "TEST_RECEIPT"; exact_path = "./build/negative-should-not-exist.hldp"; expected_state = "ABSENT"; }
inputs { MESSAGE { type = "Text"; value = "必须拒绝"; } }
outputs { ECHOED { type = "Text"; required = true; } }
conditions { C1 { expression = "TARGET_EXACT_AND_WITHIN_ALLOWED_ROOT"; on_false = "FAIL_CLOSED"; } }
actions { A1 { operation = "ABSORB"; input_refs = ["MESSAGE"]; output_refs = ["ECHOED"]; on_success = "COMPLETE"; on_failure = "FAIL_CLOSED"; } }
authority { mode = "TEST_ONLY"; issuer = "TCS-TEST-RUNNER-0001"; scope = ["WRITE_EXACT_RECEIPT_ONLY"]; one_shot = true; }
resources { timeout_ms = 1000; max_actions = 1; memory_limit_bytes = 1048576; }
failure { default = "FAIL_CLOSED"; emit_error = true; write_receipt = true; }
stop { on_timeout = "STOPPED"; on_authority_loss = "STOPPED"; }
cleanup { remove_temporary = true; preserve_receipts = true; }
rollback { required = false; actions = []; verification = "NOT_APPLICABLE"; }
receipt { schema = "tcs.execution-receipt/v1"; machine_path = "./build/negative-should-not-exist.hldp"; human_projection = "不得生成"; integrity = "SHA256_AND_READBACK"; }
}