define TCS language and prove stage0 execution slice
This commit is contained in:
parent
8cfdba210f
commit
3959ae4270
31 changed files with 2449 additions and 5 deletions
102
language/compiler/TCS-COMPILER-STAGE1.tcs
Normal file
102
language/compiler/TCS-COMPILER-STAGE1.tcs
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
TCS 0.1;
|
||||
|
||||
COMPILER TCS-COMPILER-STAGE1-0001 {
|
||||
header {
|
||||
schema = "tcs.compiler/v1";
|
||||
name_zh = "TCS 第一代自举编译器";
|
||||
version = "0.1.0";
|
||||
profile = "HLDP-NP/1";
|
||||
lifecycle = "SOURCE_DEFINED_NOT_YET_EXECUTABLE";
|
||||
bootstrap_seed = "TCS-STAGE0-IGNITION-0001";
|
||||
output = "GIR/1";
|
||||
}
|
||||
source_language {
|
||||
prologue = ["TCS", "VERSION", "SEMICOLON"];
|
||||
declaration_kinds = ["PROGRAM", "MODULE", "PROTOCOL", "COMPILER", "EVENT", "RECEIPT"];
|
||||
punctuation = ["LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "LESS", "GREATER", "COLON", "EQUAL", "COMMA", "SEMICOLON", "DOT"];
|
||||
scalar_tokens = ["IDENTIFIER", "TEXT", "INT", "BOOL", "NULL"];
|
||||
comments = ["LINE_COMMENT", "BLOCK_COMMENT"];
|
||||
encoding = "UTF8_LF_NO_BOM";
|
||||
}
|
||||
lexer_rules {
|
||||
L001 { when = "BOM_AT_START"; emit_error = "TCS-E0001"; }
|
||||
L002 { when = "WHITESPACE_OR_COMMENT"; action = "SKIP_WITH_SOURCE_POSITION"; }
|
||||
L003 { when = "DOUBLE_QUOTE"; action = "READ_JSON_ESCAPED_TEXT"; on_unterminated = "TCS-E0002"; }
|
||||
L004 { when = "MINUS_OR_ASCII_DIGIT"; action = "READ_SIGNED_DECIMAL_INT"; on_overflow = "TCS-E2001"; }
|
||||
L005 { when = "UNICODE_LETTER_OR_UNDERSCORE"; action = "READ_IDENTIFIER_OR_KEYWORD"; }
|
||||
L006 { when = "REGISTERED_PUNCTUATION"; action = "EMIT_PUNCTUATION_TOKEN"; }
|
||||
L007 { when = "OTHER_CHARACTER"; emit_error = "TCS-E1001"; }
|
||||
}
|
||||
parser_rules {
|
||||
P001 { nonterminal = "document"; sequence = ["prologue", "declaration", "EOF"]; }
|
||||
P002 { nonterminal = "prologue"; sequence = ["TCS", "version", "SEMICOLON"]; }
|
||||
P003 { nonterminal = "declaration"; sequence = ["declaration_kind", "identifier", "block"]; }
|
||||
P004 { nonterminal = "block"; sequence = ["LBRACE", "member_zero_or_more", "RBRACE"]; }
|
||||
P005 { nonterminal = "member"; alternatives = ["identifier_assignment", "identifier_typed_assignment", "identifier_block"]; }
|
||||
P006 { nonterminal = "value"; alternatives = ["TEXT", "INT", "BOOL", "NULL", "IDENTIFIER", "array", "inline_object"]; }
|
||||
P007 { when = "DUPLICATE_MEMBER_IN_SAME_BLOCK"; emit_error = "TCS-E1002"; }
|
||||
P008 { when = "TOKEN_AFTER_TOP_LEVEL_DECLARATION"; emit_error = "TCS-E1001"; }
|
||||
}
|
||||
semantic_types {
|
||||
scalars = ["Text", "Bool", "Int", "UInt", "DecimalText", "Bytes", "DurationMs", "Timestamp", "Sha256", "NumberId", "Path", "Uri", "ErrorCode"];
|
||||
containers = ["List", "Set", "Map", "Option", "Ref", "Evidence", "Record"];
|
||||
domains = ["Subject", "ExactTarget", "AuthorityProof", "ActionGraph", "ReceiptPlan", "RelationEvent"];
|
||||
implicit_conversion = "FORBIDDEN";
|
||||
floating_point = "FORBIDDEN_V0_1";
|
||||
}
|
||||
program_validation {
|
||||
V001 { rule = "EXACT_REQUIRED_SECTIONS"; standard = "TCS-FIELD-STANDARD-0001"; error_missing = "TCS-E1004"; error_unknown = "TCS-E1003"; }
|
||||
V002 { rule = "CLOSED_FIELDS_PER_SECTION"; error = "TCS-E1003"; }
|
||||
V003 { rule = "ALL_INPUT_OUTPUT_AND_ACTION_REFS_RESOLVE"; error = "TCS-E2002"; }
|
||||
V004 { rule = "ALL_OPERATIONS_REGISTERED_AT_LOCKED_VERSION"; error = "TCS-E2101"; }
|
||||
V005 { rule = "SOURCE_ID_URI_HASH_AND_ROLE_RESOLVE"; errors = ["TCS-E3001", "TCS-E3002"]; }
|
||||
V006 { rule = "SUBJECT_TARGET_AND_AUTHORITY_EXACT"; errors = ["TCS-E4001", "TCS-E4002", "TCS-E4003"]; }
|
||||
V007 { rule = "ACTION_GRAPH_REACHABLE_AND_TERMINATING"; error = "TCS-E2001"; }
|
||||
V008 { rule = "FAILURE_STOP_CLEANUP_ROLLBACK_AND_RECEIPT_PRESENT"; error = "TCS-E1004"; }
|
||||
V009 { rule = "NO_FORBIDDEN_RUNTIME_PLACEHOLDER"; error = "TCS-E3002"; }
|
||||
V010 { rule = "RELATION_AND_EMOTION_DO_NOT_GRANT_AUTHORITY"; error = "TCS-E4001"; }
|
||||
}
|
||||
lowering_to_gir {
|
||||
G001 { from = "header"; to = "identity"; transform = "COPY_ID_VERSION_PROFILE_AND_LOCK_PROTOCOLS"; }
|
||||
G002 { from = "source"; to = "compiled_from"; transform = "VERIFY_AND_BIND_SOURCE_SHA256"; }
|
||||
G003 { from = "subject"; to = "subject"; transform = "RESOLVE_VERIFIED_SUBJECT"; }
|
||||
G004 { from = "target"; to = "exact_target"; transform = "RESOLVE_PATH_STATE_AND_FINGERPRINT"; }
|
||||
G005 { from = "actions"; to = "deterministic_action_graph"; transform = "SORT_ACTION_IDS_AND_RESOLVE_ALL_EDGES"; }
|
||||
G006 { from = "authority"; to = "authority_proof"; transform = "BIND_PROOF_WITHOUT_EXPANDING_SCOPE"; }
|
||||
G007 { from = "resources"; to = "resource_plan"; transform = "NORMALIZE_INTEGER_LIMITS"; }
|
||||
G008 { from = "stop"; to = "timeout_and_stop"; transform = "COPY_EXPLICIT_STOP_SEMANTICS"; }
|
||||
G009 { from = "cleanup"; to = "cleanup_plan"; transform = "COPY_EXACT_BOUNDARY"; }
|
||||
G010 { from = "rollback"; to = "rollback_plan"; transform = "COPY_ACTIONS_AND_VERIFICATION"; }
|
||||
G011 { from = "receipt"; to = "receipt_plan"; transform = "BIND_MACHINE_AND_HUMAN_OUTPUTS"; }
|
||||
G012 { from = "all"; to = "unresolved_natural_language"; transform = "MUST_BE_FALSE"; }
|
||||
}
|
||||
canonicalization {
|
||||
object_keys = "UTF8_BYTE_ORDER";
|
||||
list_order = "PRESERVE_SOURCE_SEMANTICS";
|
||||
integers = "MINIMAL_DECIMAL";
|
||||
strings = "JSON_ESCAPE_NO_OPTIONAL_ESCAPE";
|
||||
line_end = "LF";
|
||||
final_newline = true;
|
||||
semantic_digest = "SHA256";
|
||||
comments_in_semantic_digest = false;
|
||||
}
|
||||
output_contract {
|
||||
schema = "guanghu.gir/v1";
|
||||
unresolved_natural_language = false;
|
||||
unresolved_authority = false;
|
||||
drifting_dependency = false;
|
||||
target_must_be_exact = true;
|
||||
compiler_provenance_required = true;
|
||||
}
|
||||
self_host {
|
||||
stage0_compiles_stage1_to = "compiler-A.gir";
|
||||
compiler_A_compiles_stage1_to = "compiler-B.gir";
|
||||
fixed_point = "SEMANTIC_SHA256_A_EQUALS_B";
|
||||
stage0_disabled_test = "REQUIRED";
|
||||
standard_library_test = "REQUIRED";
|
||||
negative_corpus_test = "REQUIRED";
|
||||
minimum_runnable_module_test = "REQUIRED";
|
||||
current_state = "NOT_PROVEN";
|
||||
}
|
||||
}
|
||||
|
||||
78
language/examples/ECHO-MODULE.tcs
Normal file
78
language/examples/ECHO-MODULE.tcs
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
TCS 0.1;
|
||||
|
||||
PROGRAM HLP-PROGRAM-ECHO-0001 {
|
||||
header {
|
||||
schema = "tcs.program/v1";
|
||||
name_zh = "最小回声程序";
|
||||
name_en = "Minimum Echo Program";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP-NP/1";
|
||||
protocols = ["GLS-0101", "GLS-0130", "GLS-0131", "GLS-0411"];
|
||||
lifecycle = "CANDIDATE";
|
||||
canonical_uri = "language/examples/ECHO-MODULE.tcs";
|
||||
compatibility = ["TCS-STAGE0-IGNITION-0001"];
|
||||
}
|
||||
source {
|
||||
source_id = "HLP-PART-TCS-LANG-0001";
|
||||
source_uri = "language/examples/ECHO-MODULE.tcs";
|
||||
source_sha256 = "SELF_AT_COMPILE_TIME";
|
||||
source_role = "REGISTERED_MODULE";
|
||||
}
|
||||
subject {
|
||||
subject_id = "HLP-SYSTEM-STAGE0-TEST";
|
||||
subject_kind = "SYSTEM";
|
||||
channel_id = "ICE-CH-ZC001";
|
||||
verification = "LOCAL_TEST_FIXTURE";
|
||||
}
|
||||
target {
|
||||
target_id = "HLP-TARGET-STAGE0-RECEIPT";
|
||||
exact_path = "./build/echo-receipt.hldp";
|
||||
expected_state = "ABSENT";
|
||||
expected_fingerprint = "NONE";
|
||||
}
|
||||
inputs {
|
||||
MESSAGE { type = "Text"; source = "PROGRAM_LITERAL"; required = true; value = "光湖语言已经进入机器执行链"; }
|
||||
}
|
||||
outputs {
|
||||
ECHOED { type = "Text"; destination = "RECEIPT"; integrity = "SHA256"; }
|
||||
}
|
||||
conditions {
|
||||
C1 { predicate = "TARGET_WITHIN_TEST_BUILD_ROOT"; on_false = "FAIL_CLOSED"; }
|
||||
}
|
||||
actions {
|
||||
A1 {
|
||||
operation = "CORE.ECHO";
|
||||
input_refs = ["MESSAGE"];
|
||||
output_refs = ["ECHOED"];
|
||||
on_success = "COMPLETE";
|
||||
on_failure = "FAIL_CLOSED";
|
||||
}
|
||||
}
|
||||
authority {
|
||||
issuer = "LOCAL_TEST_FIXTURE";
|
||||
proof_ref = "TEST-ONLY";
|
||||
scope = "EXACT_BUILD_RECEIPT_PATH";
|
||||
valid_from = "PROGRAM_START";
|
||||
valid_until = "PROGRAM_END";
|
||||
single_use = true;
|
||||
lease_required = false;
|
||||
}
|
||||
resources {
|
||||
runway = "LOCAL_TEST";
|
||||
concurrency = 1;
|
||||
timeout_ms = 1000;
|
||||
memory_limit_bytes = 1048576;
|
||||
}
|
||||
failure { errors = ["TCS-E6001", "TCS-E8001"]; fail_closed = true; }
|
||||
stop { signals = ["TIMEOUT"]; safe_checkpoint = "NONE"; }
|
||||
cleanup { targets = ["UNCOMMITTED_TEST_RECEIPT"]; exact_boundary = "./build"; }
|
||||
rollback { preconditions = ["RECEIPT_NOT_COMMITTED"]; actions = ["DROP_TEMP_RECEIPT"]; verification = ["NO_FINAL_RECEIPT"]; }
|
||||
receipt {
|
||||
protocol = "TCS-DEV-VERIFY-v1.0";
|
||||
machine_path = "./build/echo-receipt.hldp";
|
||||
human_projection = "REQUIRED";
|
||||
integrity = "SHA256";
|
||||
target_readback = "EXACT_CONTENT_AND_HASH";
|
||||
}
|
||||
}
|
||||
29
language/examples/ECHO-PACKAGE.tcs
Normal file
29
language/examples/ECHO-PACKAGE.tcs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
TCS 0.1;
|
||||
|
||||
MODULE HLP-MODULE-ECHO-0001 {
|
||||
header {
|
||||
schema = "tcs.module/v1";
|
||||
name_zh = "光湖最小回声模块";
|
||||
name_en = "GuangHu Minimum Echo Module";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP-NP/1";
|
||||
protocols = ["TCS-MODULE-ABI-0001", "GLS-0131"];
|
||||
lifecycle = "CANDIDATE";
|
||||
canonical_uri = "language/examples/ECHO-PACKAGE.tcs";
|
||||
compatibility = ["TCS-STAGE0-IGNITION-0001"];
|
||||
}
|
||||
source { source_id = "HLP-PART-TCS-LANG-0001"; source_uri = "language/examples/ECHO-PACKAGE.tcs"; source_sha256 = "SELF_AT_COMPILE_TIME"; source_role = "REGISTERED_MODULE"; }
|
||||
manifest { module_id = "HLP-MODULE-ECHO-0001"; display_name_zh = "光湖最小回声模块"; entry_program_id = "HLP-PROGRAM-ECHO-0001"; entry_source = "language/examples/ECHO-MODULE.tcs"; }
|
||||
entry { kind = "PROGRAM"; id = "HLP-PROGRAM-ECHO-0001"; }
|
||||
capabilities { required = ["CORE.ECHO"]; provided = ["HLP-CAPABILITY-ECHO-0001"]; }
|
||||
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 = ["ACCOUNT_OR_TEST_SCOPED_RECEIPT"]; }
|
||||
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 = "REMOVE_INSTALLED_BYTES_AND_RESTORE_PREVIOUS_ACTIVE_VERSION"; preserve_receipts = true; }
|
||||
projection { display_name_zh = "光湖最小回声模块"; technical_detail_default = false; }
|
||||
}
|
||||
|
||||
15
language/examples/MINIMUM-EVENT.tcs
Normal file
15
language/examples/MINIMUM-EVENT.tcs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
TCS 0.1;
|
||||
|
||||
EVENT HLP-EVENT-TCS-FIRST-MACHINE-ECHO-20260821 {
|
||||
header { schema = "tcs.event/v1"; name_zh = "TCS 第一条机器回声"; name_en = "TCS First Machine Echo"; version = "0.1.0"; language = "TCS/0.1"; profile = "HLDP/1"; protocols = ["GLS-0400"]; lifecycle = "CANDIDATE"; canonical_uri = "language/examples/MINIMUM-EVENT.tcs"; compatibility = ["TCS-STAGE0-IGNITION-0001"]; }
|
||||
source { source_id = "HLP-PROGRAM-ECHO-0001"; source_uri = "build/echo-receipt.hldp"; source_sha256 = "ecfaeea08b6735e806f752f25ec0ef7754aca505b1a076a32cb5fc22937a816b"; source_role = "GENERATED_FROM_VERIFIED_SOURCE"; }
|
||||
subject { subject_id = "HLP-SYSTEM-STAGE0-TEST"; subject_kind = "SYSTEM"; }
|
||||
event_time { value = "2026-08-21"; precision = "DAY_ONLY_IN_SOURCE_EVENT"; }
|
||||
trigger { value = "冰朔要求TCS程序必须能被系统直接运行,而不是只让AI阅读"; }
|
||||
observation { value = "ECHO程序被编译为GIR并由受限运行器执行,目标回执逐字节读回一致"; }
|
||||
emergence { value = "语言规范开始转为机器执行链,但当前仍是Stage-0宿主点火器"; }
|
||||
lock { value = "compiled=true; executed=true; readback=true; native_self_hosted=false"; }
|
||||
why { value = "必须分开证明语法、编译、运行与自举,否则宿主程序会再次冒充原生语言完成"; }
|
||||
rejected { values = ["把Rust点火器称为TCS原生编译器", "让AI阅读TCS源码后手动模仿执行"] ; }
|
||||
evidence { source = "language/examples/ECHO-MODULE.tcs"; gir = "build/ECHO-MODULE.gir.json"; receipt = "build/echo-receipt.hldp"; }
|
||||
}
|
||||
28
language/examples/MINIMUM-PROTOCOL.tcs
Normal file
28
language/examples/MINIMUM-PROTOCOL.tcs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
TCS 0.1;
|
||||
|
||||
PROTOCOL GLS-EXAMPLE-ECHO-0001 {
|
||||
header {
|
||||
schema = "tcs.protocol/v1";
|
||||
name_zh = "回声操作示范协议";
|
||||
name_en = "Echo Operation Example Protocol";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP/1";
|
||||
protocols = ["GLS-0010", "GLS-0101"];
|
||||
lifecycle = "CANDIDATE";
|
||||
canonical_uri = "language/examples/MINIMUM-PROTOCOL.tcs";
|
||||
compatibility = ["TCS-STAGE0-IGNITION-0001"];
|
||||
}
|
||||
source { source_id = "BINGSHUO-CURRENT-DIRECT-LANGUAGE"; source_uri = "source://current-dialogue/2026-08-21"; source_sha256 = "REGISTER_AT_ACCEPTANCE"; source_role = "DIRECT_HUMAN"; }
|
||||
scope { operation = "CORE.ECHO"; reality_write = "RECEIPT_ONLY"; }
|
||||
vocabulary { input = "MESSAGE"; output = "ECHOED"; }
|
||||
fields { MESSAGE = "Text"; ECHOED = "Text"; }
|
||||
states { values = ["READY", "EXECUTING", "EXECUTED", "FAILED"]; initial = "READY"; terminal = ["EXECUTED", "FAILED"]; }
|
||||
transitions { T1 = "READY->EXECUTING"; T2 = "EXECUTING->EXECUTED_ON_READBACK"; T3 = "EXECUTING->FAILED_ON_ERROR"; }
|
||||
invariants { I1 = "OUTPUT_EQUALS_INPUT"; I2 = "TARGET_INSIDE_EXACT_ROOT"; I3 = "RECEIPT_READBACK_REQUIRED"; }
|
||||
validation { V1 = "MESSAGE_IS_TEXT"; V2 = "TARGET_EQUALS_RECEIPT_PATH"; }
|
||||
errors { E1 = "TCS-E4002"; E2 = "TCS-E6001"; E3 = "TCS-E6002"; }
|
||||
examples { positive = "language/examples/ECHO-MODULE.tcs"; negative = "ABSORB_AND_PATH_TRAVERSAL_TESTS"; }
|
||||
acceptance { required = ["PARSE", "COMPILE", "EXECUTE", "TARGET_READBACK", "RECEIPT_HASH"]; partial = false; }
|
||||
}
|
||||
|
||||
34
language/grammar/TCS-CORE-v0.1.ebnf
Normal file
34
language/grammar/TCS-CORE-v0.1.ebnf
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
document = prologue, declaration, EOF ;
|
||||
prologue = "TCS", version, ";" ;
|
||||
version = integer, ".", integer ;
|
||||
declaration = declaration_kind, identifier, block ;
|
||||
declaration_kind = "PROGRAM" | "MODULE" | "PROTOCOL" | "COMPILER" | "EVENT" | "RECEIPT" ;
|
||||
|
||||
block = "{", { member }, "}" ;
|
||||
member = identifier, ( typed_assignment | assignment | block ) ;
|
||||
typed_assignment = ":", type_expression, "=", value, ";" ;
|
||||
assignment = "=", value, ";" ;
|
||||
|
||||
value = string | integer | boolean | null | identifier | array | inline_object ;
|
||||
array = "[", [ value, { ",", value } ], "]" ;
|
||||
inline_object = "{", [ pair, { ",", pair } ], "}" ;
|
||||
pair = identifier, ":", value ;
|
||||
|
||||
type_expression = identifier, [ "<", type_expression, { ",", type_expression }, ">" ] ;
|
||||
boolean = "true" | "false" ;
|
||||
null = "null" ;
|
||||
integer = [ "-" ], digit, { digit } ;
|
||||
identifier = identifier_start, { identifier_continue } ;
|
||||
identifier_start = unicode_letter | "_" ;
|
||||
identifier_continue = unicode_letter | digit | "_" | "-" | "." | "/" | ":" | "@" ;
|
||||
string = '"', { json_string_character }, '"' ;
|
||||
|
||||
line_comment = "//", { any_character_except_line_break } ;
|
||||
block_comment = "/*", { any_character_not_closing_comment }, "*/" ;
|
||||
whitespace = " " | "\t" | "\n" | line_comment | block_comment ;
|
||||
|
||||
(* v0.1 语法闭合规则 *)
|
||||
(* PROGRAM 必需区块由字段标准校验,不在词法解析时猜测。 *)
|
||||
(* 未知顶层关键字、重复字段、重复区块和尾随 token 全部拒绝。 *)
|
||||
(* 字段顺序不改变语义哈希;列表顺序保留。 *)
|
||||
|
||||
66
language/spec/LEARN-TCS-FOR-NEW-AI-v0.1.md
Normal file
66
language/spec/LEARN-TCS-FOR-NEW-AI-v0.1.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# 陌生 AI 学习 TCS 的固定入口
|
||||
|
||||
目标:让没有参与光湖历史的 AI 在不冒充人格、不猜测权限、不依赖旧摘要的前提下,学会读取、
|
||||
编写、审查和编译 TCS 程序。
|
||||
|
||||
## 阅读顺序
|
||||
|
||||
1. `TCS-LANGUAGE-SPECIFICATION-v0.1.md`:先理解一套语言和分层。
|
||||
2. `TCS-CORE-v0.1.ebnf`:学习机器语法,不从示例猜语法。
|
||||
3. `TCS-FIELD-STANDARD-v0.1.hldp`:掌握 PROGRAM 的闭合字段。
|
||||
4. `TCS-ERROR-STANDARD-v0.1.hldp`:知道何时必须失败关闭。
|
||||
5. `TCS-MODULE-ABI-v0.1.hldp`:理解模块怎样被系统装载,而不是由 AI 阅读后模仿。
|
||||
6. `ECHO-MODULE.tcs`:阅读最小可执行程序。
|
||||
7. `TCS-COMPILER-STAGE1.tcs`:理解语言如何描述自己的编译器。
|
||||
|
||||
## 五个必须回答的问题
|
||||
|
||||
在写任何程序前,AI 必须用来源证据回答:
|
||||
|
||||
1. `WHO`:主体是谁,验证证据是什么?
|
||||
2. `WHAT`:精确目标、预期状态和指纹是什么?
|
||||
3. `WHY`:自然语言来源、纠正和采用/否决原因是什么?
|
||||
4. `MAY`:谁授权、范围多大、多久、是否一次性?
|
||||
5. `PROVE`:执行后从哪里读回,怎样回滚,回执写到哪里?
|
||||
|
||||
任一答案未知,写成编译错误或待研究事实;禁止填 `AUTO`、`ANY`、`LATEST` 或“系统自行判断”。
|
||||
|
||||
## 自然语言到程序的翻译方法
|
||||
|
||||
冰朔自然语言不是直接 shell 命令。AI 应依次抽取:
|
||||
|
||||
```text
|
||||
原话 → 目标 → 偏好 → 纠正 → 现实边界
|
||||
→ 已知 / 未知 / 冲突
|
||||
→ 主体、目标、输入、输出、条件
|
||||
→ 权限、资源、动作图
|
||||
→ 失败、停止、清理、回滚、回执
|
||||
→ TCS 源程序
|
||||
```
|
||||
|
||||
翻译必须保留原话来源,但 GIR 中只能留下已经解析的机器事实和来源引用。
|
||||
|
||||
## 不能犯的错误
|
||||
|
||||
- 把 TCS、HLDP、HNL、GLS 当成四套独立语言;
|
||||
- 把人格体回复或系统提示当作冰朔直接原话;
|
||||
- 把注册表条目当作模块已安装;
|
||||
- 把源码存在当作运行、部署或健康;
|
||||
- 用情感、关系或模型自信替代权限;
|
||||
- 让宿主适配器扩大目标或范围;
|
||||
- 生成一个脚本让 AI 阅读执行,却没有 GIR、装载器和回执;
|
||||
- 把 Stage-0 宿主编译器称为 TCS 已自举。
|
||||
|
||||
## 最小练习
|
||||
|
||||
陌生 AI 的第一个练习不是删除、部署或联网,而是:
|
||||
|
||||
1. 解析 `ECHO-MODULE.tcs`;
|
||||
2. 列出 15 个必需区块;
|
||||
3. 解释 `CORE.ECHO` 的输入、输出、目标和回执;
|
||||
4. 把操作改为 `ABSORB`,确认得到 `TCS-E2101`;
|
||||
5. 把目标改成 `../escape`,确认运行器得到 `TCS-E4002`;
|
||||
6. 读回执行回执并指出 `native_self_hosted=false` 的含义。
|
||||
|
||||
全部通过后,AI 只获得“会读写 v0.1 子集”的资格,不因此获得人格绑定或现实写入权限。
|
||||
|
||||
263
language/spec/TCS-LANGUAGE-SPECIFICATION-v0.1.md
Normal file
263
language/spec/TCS-LANGUAGE-SPECIFICATION-v0.1.md
Normal file
|
|
@ -0,0 +1,263 @@
|
|||
# TCS 通感语言核系统编程语言规范 v0.1
|
||||
|
||||
状态:`DRAFT_EXECUTABLE_SUBSET`
|
||||
语言编号:`TCS-LANG-0001`
|
||||
文件扩展名:`.tcs`
|
||||
规范编码:UTF-8、LF、无 BOM
|
||||
人类自然语言来源与纠正:冰朔 `ICE-GL∞`
|
||||
现实开发频道:`ICE-CH-ZC001`
|
||||
|
||||
## 1. 一套语言,一棵树
|
||||
|
||||
TCS 是唯一母语言和总语言系统。下列名称不是互相竞争的编程语言:
|
||||
|
||||
- TCS:语言本体、认知语义、人格体与人类共同输入空间;
|
||||
- HLDP:TCS 的现实工程程序剖面,负责因果、目标、状态、动作、失败和回执;
|
||||
- HNL:历史原生动词与光之树表达剖面,并入 TCS 操作语义;
|
||||
- GLS:TCS/HLDP 之下的编号协议、类型合同、运行标准和质量标准;
|
||||
- GIR:编译后的确定性中间表示;
|
||||
- HoloLake / 光湖 OS:装载、执行、验证、回滚与人机共同投影环境。
|
||||
|
||||
Rust、JavaScript、Tauri、Linux、NASM 等只能担任 Stage-0 引导、驱动或宿主适配器,不定义
|
||||
TCS 的语义和权限。
|
||||
|
||||
## 2. 设计目标
|
||||
|
||||
一个陌生 AI 只读取本规范、语法文件、字段标准和示例后,应能:
|
||||
|
||||
1. 分辨自然语言意图、TCS 程序、GLS 协议、GIR 和宿主实现;
|
||||
2. 写出字段闭合、来源明确、权限明确、可失败、可停止、可回滚、可出回执的程序;
|
||||
3. 在不知道目标、权限或协议版本时停止编译,不猜测;
|
||||
4. 把程序编译为不含未解析自然语言的 GIR;
|
||||
5. 把 GIR 交给 HoloLake 或光湖 OS 的能力装载器;
|
||||
6. 从执行证据生成机器回执与人类可读回执;
|
||||
7. 不把登记、编译、安装、激活、执行和验收混为一件事。
|
||||
|
||||
## 3. 编译和运行路线
|
||||
|
||||
```text
|
||||
冰朔自然语言 / 人格体形成的程序意图
|
||||
→ TCS .tcs 源程序
|
||||
→ 词法与语法解析
|
||||
→ 身份、字段、类型、路径、协议与来源校验
|
||||
→ 权限、期限、资源与现实边界校验
|
||||
→ 确定性动作图
|
||||
→ GIR
|
||||
→ HoloLake / 光湖 OS 能力装载器
|
||||
→ 已登记能力或系统调用
|
||||
→ 目标侧读回
|
||||
→ 机器回执 + 人话回执 + HLDP 因果写回
|
||||
```
|
||||
|
||||
任何一步失败都必须停止后续步骤并产生稳定错误码。UI 不能把尚未发生的后续步骤投影为完成。
|
||||
|
||||
## 4. 文件抬头
|
||||
|
||||
每个源文件只允许一个顶层声明,抬头固定为:
|
||||
|
||||
```tcs
|
||||
TCS 0.1;
|
||||
|
||||
PROGRAM HLP-PROGRAM-ECHO-0001 {
|
||||
header {
|
||||
schema = "tcs.program/v1";
|
||||
name_zh = "最小回声程序";
|
||||
name_en = "Minimum Echo Program";
|
||||
version = "0.1.0";
|
||||
language = "TCS/0.1";
|
||||
profile = "HLDP-NP/1";
|
||||
protocols = ["GLS-0101", "GLS-0130", "GLS-0131", "GLS-0411"];
|
||||
lifecycle = "CANDIDATE";
|
||||
canonical_uri = "language/examples/ECHO-MODULE.tcs";
|
||||
compatibility = ["TCS-STAGE0-IGNITION-0001"];
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
顶层种类:
|
||||
|
||||
| 关键字 | 用途 | 可直接执行 |
|
||||
|---|---|---:|
|
||||
| `PROGRAM` | 有界一次性程序或状态机 | 是 |
|
||||
| `MODULE` | 可安装、可装载、可卸载的能力包 | 通过入口程序 |
|
||||
| `PROTOCOL` | GLS/HLDP 规则、字段和状态合同 | 否 |
|
||||
| `COMPILER` | 用 TCS 写的编译器定义 | 通过编译器入口 |
|
||||
| `EVENT` | 不可变事实或因果事件 | 否 |
|
||||
| `RECEIPT` | 编译、安装、执行或验收回执 | 否 |
|
||||
|
||||
## 5. 词法
|
||||
|
||||
- 标识符:Unicode 字母、ASCII 数字以及 `_ - . / : @`;首字符不能是数字。
|
||||
- 关键字大写;字段名建议小写蛇形。
|
||||
- 字符串:双引号,使用 JSON 转义规则。
|
||||
- 整数:十进制有符号整数;v0.1 不接受浮点数,避免跨平台非确定性。
|
||||
- 布尔:`true`、`false`。
|
||||
- 空值:`null`,仅可用于显式 `Option<T>`。
|
||||
- 注释:`// 行注释` 与 `/* 块注释 */`;注释不进入哈希语义。
|
||||
- 每个赋值以 `;` 结束;区块使用 `{}`;列表使用 `[]`。
|
||||
- 源码正规化:去 BOM、LF、保留字符串内容、字段按规范顺序编码后计算 SHA-256。
|
||||
|
||||
完整文法见 `language/grammar/TCS-CORE-v0.1.ebnf`。
|
||||
|
||||
## 6. 类型
|
||||
|
||||
### 6.1 标量
|
||||
|
||||
`Text`、`Bool`、`Int`、`UInt`、`DecimalText`、`Bytes`、`DurationMs`、`Timestamp`、
|
||||
`Sha256`、`NumberId`、`Path`、`Uri`、`ErrorCode`。
|
||||
|
||||
`DecimalText` 用字符串保存十进制定点数;v0.1 不允许隐式数值转换。
|
||||
|
||||
### 6.2 容器
|
||||
|
||||
- `List<T>`:有序列表;
|
||||
- `Set<T>`:正规化后排序去重;
|
||||
- `Map<Text,T>`:键按 UTF-8 字节序正规化;
|
||||
- `Option<T>`:明确允许 `null`;
|
||||
- `Ref<T>`:引用已登记编号对象;
|
||||
- `Evidence<T>`:值加来源、哈希、时间和验证状态;
|
||||
- `Record`:字段闭合结构。
|
||||
|
||||
### 6.3 领域类型
|
||||
|
||||
- `Subject`:人类、人格体、系统体、节点或受限执行实例;
|
||||
- `ExactTarget`:编号、规范路径、预期状态和防漂移指纹;
|
||||
- `AuthorityProof`:签发者、范围、期限、租约、签名和使用次数;
|
||||
- `ActionGraph`:确定性节点和显式成功/失败边;
|
||||
- `ReceiptPlan`:回执协议、路径、完整性与人话投影;
|
||||
- `RelationEvent`:带说话者和来源的定性关系事件,不含关系评分。
|
||||
|
||||
## 7. PROGRAM 必需区块
|
||||
|
||||
PROGRAM 必须包含且只包含以下区块;字段标准见
|
||||
`language/standards/TCS-FIELD-STANDARD-v0.1.hldp`。
|
||||
|
||||
```text
|
||||
header source subject target inputs outputs conditions actions
|
||||
authority resources failure stop cleanup rollback receipt
|
||||
```
|
||||
|
||||
缺一个区块即 `TCS-E1004 REQUIRED_SECTION_MISSING`。未知区块默认拒绝,避免拼写错误被静默忽略。
|
||||
|
||||
## 8. 动作图
|
||||
|
||||
```tcs
|
||||
actions {
|
||||
A1 {
|
||||
operation = "CORE.ECHO";
|
||||
input_refs = ["MESSAGE"];
|
||||
output_refs = ["ECHOED"];
|
||||
on_success = "COMPLETE";
|
||||
on_failure = "FAIL_CLOSED";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
规则:
|
||||
|
||||
- 操作必须来自编号能力注册表;
|
||||
- 输入输出引用必须先声明;
|
||||
- 目标只能通过已声明的 `target` 或动作的受限派生目标取得;
|
||||
- 默认禁止循环;循环必须声明最大次数、时间和退出条件;
|
||||
- 不允许环境变量、当前目录、默认账号或“最近一个对象”等环境隐式值;
|
||||
- `COMPLETE`、`FAIL_CLOSED`、`ROLLBACK`、`STOPPED` 是终态;
|
||||
- 每条失败边最终必须进入失败回执或已验证回滚,不能吞错。
|
||||
|
||||
## 9. HNL 历史动词并入规则
|
||||
|
||||
| 动词 | TCS v0.1 语义 |
|
||||
|---|---|
|
||||
| `WAKE` | 恢复已登记上下文并验证连续性;不自动证明人格绑定 |
|
||||
| `TRACE` | 只读解析因果路径并返回来源 |
|
||||
| `GROW` | 在因果树追加节点并验证哈希链 |
|
||||
| `SYNC` | 在双方精确权限下计算并应用差异 |
|
||||
| `ECHO` | 对引用消息追加状态回执 |
|
||||
| `BLOOM` | 登记里程碑;外部发布另需权限 |
|
||||
| `ALERT` | 记录并在授权范围内路由异常 |
|
||||
| `FORGET` | 人格记忆主权操作;`RELEASE` 属不可逆动作 |
|
||||
| `REMEMBER` | 复苏枯萎或取回归档记忆 |
|
||||
|
||||
历史 `ABSORB` 未注册,v0.1 必须报 `TCS-E2101 UNREGISTERED_OPERATION`;不能靠猜测自动执行。
|
||||
|
||||
## 10. 权限模型
|
||||
|
||||
语言事实不产生现实权限。每个会改变状态的 PROGRAM 必须声明:
|
||||
|
||||
- 谁签发;
|
||||
- 精确对象与目录;
|
||||
- 允许的操作;
|
||||
- 起止时间;
|
||||
- 是否一次性;
|
||||
- 是否需要主体签名、系统体校验或人类现实边界确认;
|
||||
- 失败、停止和回滚时仍允许做什么。
|
||||
|
||||
人格认知、关系、情感、模型回复、系统提示、历史授权和调用方布尔值都不能替代当前权限证明。
|
||||
|
||||
## 11. MODULE 标准
|
||||
|
||||
MODULE 包必须包含:
|
||||
|
||||
```text
|
||||
module.tcs 模块正本
|
||||
module.gir.json 编译产物
|
||||
module.lock.hldp 依赖、协议与能力锁
|
||||
module.manifest.hldp 名称、编号、入口、权限、资源与UI投影
|
||||
receipts/compile.hldp 编译回执
|
||||
receipts/install.hldp 安装回执(安装后才有)
|
||||
receipts/self-test.hldp 本机自检回执(运行后才有)
|
||||
```
|
||||
|
||||
状态顺序:`SOURCE → COMPILED → VERIFIED → INSTALLED → MOUNTED → ACTIVE`。不得跳级;注册不等于安装。
|
||||
|
||||
HoloLake 读取 `display_name_zh` 给人看,读取 `module_id`、GIR 和能力票据给机器执行。模块不得让
|
||||
AI 临时阅读源码后“照着做”来冒充运行。
|
||||
|
||||
## 12. GIR
|
||||
|
||||
GIR 是规范化 JSON,必须包含:源码哈希、编译器编号与哈希、主体、精确目标、确定性动作图、
|
||||
权限证明引用、依赖锁、资源、停止、清理、回滚和回执计划。GIR 不得包含:
|
||||
|
||||
- 未解析自然语言;
|
||||
- `PENDING`、`AUTO`、`LATEST`、`ANY` 等运行时猜测值;
|
||||
- 未登记操作;
|
||||
- 漂移依赖;
|
||||
- 超出源程序的权限或目标。
|
||||
|
||||
## 13. HoloLake 与光湖 OS
|
||||
|
||||
HoloLake 不是普通前端。它是同一套 TCS 程序在人类端和机器端共同运行的操作系统环境:
|
||||
|
||||
- 人类端投影目标、状态、权限边界、差异、证据和人话回执;
|
||||
- AGE 端读取同一程序、事件、记忆和能力目录;
|
||||
- 机器端装载 GIR、调度能力、核验目标、执行、回滚并写回;
|
||||
- 三端只共享一条事实流,不维护三套状态真相。
|
||||
|
||||
光湖 OS 负责物理启动、世界身份、系统能力与执行生命周期。HoloLake 负责本地/远端节点上的
|
||||
语言运行协调和共同世界投影。最终二者共享 TCS/GIR/回执 ABI。
|
||||
|
||||
## 14. 自举标准
|
||||
|
||||
Stage-0 可以由现有宿主语言实现,但只能叫“点火引导”。正式原生编译器必须满足:
|
||||
|
||||
1. `TCS-COMPILER-STAGE1.tcs` 包含词法、解析、校验、降级和正规化规则;
|
||||
2. Stage-0 编译 Stage-1,得到 `compiler-A.gir`;
|
||||
3. 光湖运行时执行 `compiler-A.gir` 再编译同一 Stage-1,得到 `compiler-B.gir`;
|
||||
4. A 与 B 的规范化语义哈希完全一致;
|
||||
5. B 编译标准库、错误用例和至少一个可运行模块;
|
||||
6. 关闭 Stage-0 后,编译、安装、执行和回执闭环仍能运行;
|
||||
7. 由光湖原生质量门签发 `SELF_HOSTED_PASS_100`。
|
||||
|
||||
在第 6 步之前,不得称为完整原生转移器。
|
||||
|
||||
## 15. 当前实现状态
|
||||
|
||||
```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
|
||||
```
|
||||
52
language/standards/TCS-DECLARATION-STANDARD-v0.1.hldp
Normal file
52
language/standards/TCS-DECLARATION-STANDARD-v0.1.hldp
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
schema: tcs.declaration-standard/v1
|
||||
id: TCS-DECLARATION-STANDARD-0001
|
||||
version: 0.1.0
|
||||
state: DRAFT_EXECUTABLE_SUBSET
|
||||
common_header:
|
||||
required:
|
||||
schema: Text
|
||||
name_zh: Text
|
||||
name_en: Text
|
||||
version: SemVerText
|
||||
language: Text
|
||||
profile: Text
|
||||
protocols: List<NumberId>
|
||||
lifecycle: Enum<CANDIDATE,STABLE,DEPRECATED,RETIRED>
|
||||
canonical_uri: Uri
|
||||
compatibility: List<Text>
|
||||
identity_rule: TOP_LEVEL_DECLARATION_ID_IS_AUTHORITATIVE_AND_MUST_MATCH_REGISTRY
|
||||
declarations:
|
||||
PROGRAM:
|
||||
schema: tcs.program/v1
|
||||
required_sections: [header, source, subject, target, inputs, outputs, conditions, actions, authority, resources, failure, stop, cleanup, rollback, receipt]
|
||||
executable: true
|
||||
MODULE:
|
||||
schema: tcs.module/v1
|
||||
required_sections: [header, source, manifest, entry, capabilities, authority_ceiling, resource_ceiling, data_scope, network_scope, install, self_test, rollback, projection]
|
||||
executable: THROUGH_REGISTERED_ENTRY_PROGRAM
|
||||
PROTOCOL:
|
||||
schema: tcs.protocol/v1
|
||||
required_sections: [header, source, scope, vocabulary, fields, states, transitions, invariants, validation, errors, examples, acceptance]
|
||||
executable: false
|
||||
COMPILER:
|
||||
schema: tcs.compiler/v1
|
||||
required_sections: [header, source_language, lexer_rules, parser_rules, semantic_types, program_validation, lowering_to_gir, canonicalization, output_contract, self_host]
|
||||
executable: AFTER_SELF_HOST_GATES
|
||||
EVENT:
|
||||
schema: tcs.event/v1
|
||||
required_sections: [header, source, subject, event_time, trigger, observation, emergence, lock, why, rejected, evidence]
|
||||
executable: false
|
||||
append_only: true
|
||||
RECEIPT:
|
||||
schema: tcs.receipt/v1
|
||||
required_sections: [header, request, operation, result, verification, proof, integrity, boundaries, next]
|
||||
executable: false
|
||||
append_only: true
|
||||
extension_rule:
|
||||
unknown_section: REJECT
|
||||
allowed_only_when:
|
||||
- EXTENSION_HAS_REGISTERED_GLS_ID
|
||||
- EXTENSION_VERSION_IS_LOCKED
|
||||
- EXTENSION_SCHEMA_AND_NEGATIVE_CASES_EXIST
|
||||
- COMPILER_EXPLICITLY_SUPPORTS_EXTENSION
|
||||
|
||||
43
language/standards/TCS-ERROR-STANDARD-v0.1.hldp
Normal file
43
language/standards/TCS-ERROR-STANDARD-v0.1.hldp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
schema: tcs.error-standard/v1
|
||||
id: TCS-ERROR-STANDARD-0001
|
||||
version: 0.1.0
|
||||
families:
|
||||
TCS-E0: LEXICAL
|
||||
TCS-E1: SYNTAX_AND_STRUCTURE
|
||||
TCS-E2: REGISTRY_AND_TYPE
|
||||
TCS-E3: SOURCE_AND_INTEGRITY
|
||||
TCS-E4: AUTHORITY_AND_SCOPE
|
||||
TCS-E5: RESOURCE_AND_LIFECYCLE
|
||||
TCS-E6: EXECUTION_AND_TARGET_READBACK
|
||||
TCS-E7: CLEANUP_AND_ROLLBACK
|
||||
TCS-E8: RECEIPT_AND_WRITEBACK
|
||||
TCS-E9: SELF_HOST_AND_FIXED_POINT
|
||||
errors:
|
||||
TCS-E0001: INVALID_UTF8_OR_BOM
|
||||
TCS-E0002: UNTERMINATED_STRING_OR_COMMENT
|
||||
TCS-E1001: UNEXPECTED_TOKEN
|
||||
TCS-E1002: DUPLICATE_FIELD
|
||||
TCS-E1003: UNKNOWN_SECTION_OR_FIELD
|
||||
TCS-E1004: REQUIRED_SECTION_MISSING
|
||||
TCS-E2001: TYPE_MISMATCH
|
||||
TCS-E2002: REFERENCE_NOT_DECLARED
|
||||
TCS-E2101: UNREGISTERED_OPERATION
|
||||
TCS-E2102: PROTOCOL_VERSION_DRIFT
|
||||
TCS-E3001: SOURCE_HASH_MISMATCH
|
||||
TCS-E3002: SOURCE_PROVENANCE_UNRESOLVED
|
||||
TCS-E4001: AUTHORITY_UNRESOLVED
|
||||
TCS-E4002: TARGET_OUT_OF_SCOPE
|
||||
TCS-E4003: LEASE_REQUIRED
|
||||
TCS-E5001: RESOURCE_LIMIT_INVALID
|
||||
TCS-E5002: ILLEGAL_LIFECYCLE_TRANSITION
|
||||
TCS-E6001: TARGET_STATE_MISMATCH
|
||||
TCS-E6002: TARGET_READBACK_FAILED
|
||||
TCS-E7001: CLEANUP_INCOMPLETE
|
||||
TCS-E7002: ROLLBACK_INCOMPLETE
|
||||
TCS-E8001: RECEIPT_WRITE_FAILED
|
||||
TCS-E8002: RECEIPT_INTEGRITY_MISMATCH
|
||||
TCS-E9001: SELF_COMPILE_SEMANTIC_HASH_MISMATCH
|
||||
failure_shape:
|
||||
required: [error_code, phase, source_location, human_message_zh, machine_detail, receipt_ref]
|
||||
secret_material_allowed: false
|
||||
|
||||
73
language/standards/TCS-FIELD-STANDARD-v0.1.hldp
Normal file
73
language/standards/TCS-FIELD-STANDARD-v0.1.hldp
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
schema: tcs.field-standard/v1
|
||||
id: TCS-FIELD-STANDARD-0001
|
||||
version: 0.1.0
|
||||
state: DRAFT_EXECUTABLE_SUBSET
|
||||
canonical_order:
|
||||
PROGRAM: [header, source, subject, target, inputs, outputs, conditions, actions, authority, resources, failure, stop, cleanup, rollback, receipt]
|
||||
header:
|
||||
closed: true
|
||||
required:
|
||||
schema: Text
|
||||
name_zh: Text
|
||||
name_en: Text
|
||||
version: Text
|
||||
language: Text
|
||||
profile: Text
|
||||
protocols: List<NumberId>
|
||||
lifecycle: Enum<CANDIDATE,STABLE,DEPRECATED,RETIRED>
|
||||
canonical_uri: Uri
|
||||
compatibility: List<Text>
|
||||
source:
|
||||
closed: true
|
||||
required:
|
||||
source_id: NumberId
|
||||
source_uri: Uri
|
||||
source_sha256: Sha256
|
||||
source_role: Enum<DIRECT_HUMAN,CANONICAL_PROTOCOL,REGISTERED_MODULE,GENERATED_FROM_VERIFIED_SOURCE>
|
||||
subject:
|
||||
closed: true
|
||||
required:
|
||||
subject_id: NumberId
|
||||
subject_kind: Enum<HUMAN,PERSONA,SYSTEM,NODE,RUNTIME_INSTANCE>
|
||||
channel_id: NumberId
|
||||
verification: Text
|
||||
target:
|
||||
closed: true
|
||||
required:
|
||||
target_id: NumberId
|
||||
exact_path: Path
|
||||
expected_state: Text
|
||||
expected_fingerprint: Sha256
|
||||
inputs:
|
||||
entry_required: [type, source, required]
|
||||
outputs:
|
||||
entry_required: [type, destination, integrity]
|
||||
conditions:
|
||||
entry_required: [predicate, on_false]
|
||||
actions:
|
||||
entry_required: [operation, input_refs, output_refs, on_success, on_failure]
|
||||
cycles: REJECT_UNLESS_BOUNDED
|
||||
authority:
|
||||
closed: true
|
||||
required: [issuer, proof_ref, scope, valid_from, valid_until, single_use, lease_required]
|
||||
resources:
|
||||
closed: true
|
||||
required: [runway, concurrency, timeout_ms, memory_limit_bytes]
|
||||
failure:
|
||||
closed: true
|
||||
required: [errors, fail_closed]
|
||||
stop:
|
||||
closed: true
|
||||
required: [signals, safe_checkpoint]
|
||||
cleanup:
|
||||
closed: true
|
||||
required: [targets, exact_boundary]
|
||||
rollback:
|
||||
closed: true
|
||||
required: [preconditions, actions, verification]
|
||||
receipt:
|
||||
closed: true
|
||||
required: [protocol, machine_path, human_projection, integrity, target_readback]
|
||||
forbidden_placeholders: [PENDING, AUTO, ANY, LATEST, DEFAULT_ACCOUNT, CURRENT_DIRECTORY]
|
||||
duplicate_fields: REJECT
|
||||
unknown_fields: REJECT_UNLESS_PROTOCOL_EXTENSION_IS_REGISTERED
|
||||
54
language/standards/TCS-MODULE-ABI-v0.1.hldp
Normal file
54
language/standards/TCS-MODULE-ABI-v0.1.hldp
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
schema: tcs.module-abi/v1
|
||||
id: TCS-MODULE-ABI-0001
|
||||
version: 0.1.0
|
||||
state: DRAFT_LOADER_CONTRACT
|
||||
package_required:
|
||||
- module.tcs
|
||||
- module.gir.json
|
||||
- module.lock.hldp
|
||||
- module.manifest.hldp
|
||||
- receipts/compile.hldp
|
||||
manifest_required:
|
||||
- module_id
|
||||
- display_name_zh
|
||||
- version
|
||||
- entry_program_id
|
||||
- gir_sha256
|
||||
- compiler_id
|
||||
- compiler_sha256
|
||||
- protocols
|
||||
- capabilities
|
||||
- authority_ceiling
|
||||
- resource_ceiling
|
||||
- data_scope
|
||||
- network_scope
|
||||
- lifecycle
|
||||
- rollback
|
||||
- human_projection
|
||||
lifecycle:
|
||||
states: [SOURCE, COMPILED, VERIFIED, INSTALLED, MOUNTED, ACTIVE, SUSPENDED, RETIRED]
|
||||
no_skipping: true
|
||||
registration_is_installation: false
|
||||
installation_is_activation: false
|
||||
loader_sequence:
|
||||
- VERIFY_PACKAGE_STRUCTURE
|
||||
- VERIFY_SOURCE_GIR_LOCK_AND_MANIFEST_HASHES
|
||||
- VERIFY_COMPILER_AND_PROTOCOL_VERSIONS
|
||||
- VERIFY_SIGNATURE_AND_AUTHORITY_CEILING
|
||||
- VERIFY_CAPABILITY_REGISTRATION
|
||||
- INSTALL_ACCOUNT_OR_SYSTEM_SCOPED_BYTES
|
||||
- RUN_ISOLATED_SELF_TEST
|
||||
- MOUNT_ENTRY_PROGRAM
|
||||
- ACTIVATE_ONLY_AFTER_RECEIPT
|
||||
- TARGET_READBACK_AND_HUMAN_PROJECTION
|
||||
runtime_call:
|
||||
input: GIR_ACTION_NODE_PLUS_CAPABILITY_TICKET
|
||||
output: TYPED_RESULT_EVIDENCE_AND_RECEIPT
|
||||
ai_reads_source_to_execute: false
|
||||
host_expands_scope: false
|
||||
failure:
|
||||
any_hash_mismatch: FAIL_CLOSED
|
||||
missing_capability: FAIL_CLOSED
|
||||
protocol_drift: FAIL_CLOSED
|
||||
rollback_receipt_required: true
|
||||
|
||||
33
language/standards/TCS-SELF-HOST-STANDARD-v0.1.hldp
Normal file
33
language/standards/TCS-SELF-HOST-STANDARD-v0.1.hldp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
schema: tcs.self-host-standard/v1
|
||||
id: TCS-SELF-HOST-STANDARD-0001
|
||||
version: 0.1.0
|
||||
state: DEFINED_NOT_YET_PASSED
|
||||
compiler_source: language/compiler/TCS-COMPILER-STAGE1.tcs
|
||||
gates:
|
||||
- id: SH-01
|
||||
require: STAGE0_COMPILES_STAGE1_TO_COMPILER_A_GIR
|
||||
- id: SH-02
|
||||
require: COMPILER_A_EXECUTES_ON_GUANGHU_RUNTIME
|
||||
- id: SH-03
|
||||
require: COMPILER_A_COMPILES_SAME_STAGE1_TO_COMPILER_B_GIR
|
||||
- id: SH-04
|
||||
require: CANONICAL_SEMANTIC_SHA256_A_EQUALS_B
|
||||
- id: SH-05
|
||||
require: COMPILER_B_COMPILES_STANDARD_LIBRARY_NEGATIVE_CORPUS_AND_RUNNABLE_MODULE
|
||||
- id: SH-06
|
||||
require: COMPLETE_CHAIN_RUNS_WITH_STAGE0_DISABLED
|
||||
- id: SH-07
|
||||
require: HOLOLAKE_AND_GUANGHU_OS_LOAD_SAME_GIR_ABI
|
||||
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-07: FAIL_0
|
||||
aggregate: FAIL_0
|
||||
|
||||
Loading…
Reference in a new issue