Skip to content

docs+codegen(unshadow): C tag-check elision — correctness PROVEN · perf CLOSED-NEGATIVE#2094

Merged
dancinlife merged 3 commits into
mainfrom
unshadow-C-tag-elision
May 29, 2026
Merged

docs+codegen(unshadow): C tag-check elision — correctness PROVEN · perf CLOSED-NEGATIVE#2094
dancinlife merged 3 commits into
mainfrom
unshadow-C-tag-elision

Conversation

@dancinlife
Copy link
Copy Markdown
Contributor

unary-plus +literal 의 numeric-operand tag-guard 삭제 pilot. IntLit/FloatLit 는 정적으로 TAG_INT/TAG_FLOAT → hexa_throw arm unreachable → codegen 삭제. g5 byte-diff IDENTICAL (HIT+NO-HIT). 정직: correctness PROVEN(무손실) · perf 🔴 CLOSED-NEGATIVE — clang -O2 가 리터럴-tag guard 를 이미 dead-eliminate, opaque-value bounds/null 은 runtime.o ABI 벽(#2-EXT 와 동일). UNSHADOW 🔵 C 마일스톤 flip + log 기록.

🤖 Generated with Claude Code

dancinlife and others added 3 commits May 29, 2026 22:46
…SED-NEGATIVE

🔵 C refinement-type tag-check elision (🟡 reg-alloc 무손실 우회 = prove-then-delete).
codegen 변경은 직전 커밋(self/codegen.hexa: unary-plus `+literal` numeric
tag-guard 삭제). 본 커밋 = verdict + bench + domain flip.

g5 byte-diff IDENTICAL (mini macOS arm64, base=origin/main vs new=elision,
동일 runtime.o):
- HIT  corpus  md5 e8060fb1...  (양쪽 동일, emitted-C: guard DELETED)
- NO-HIT corpus md5 8de57030...  (양쪽 동일, emitted-C byte-identical = inert)

정직: correctness PROVEN(무손실). perf 🔴 CLOSED-NEGATIVE — clang -O2 가
리터럴-tag guard 를 이미 dead-eliminate(base/new asm IDENTICAL, u_main 66
instr, hexa_throw 0). inline-가시 검사는 -O2 와 중복; opaque-value bounds/null
검사는 hexa_array_get 안 = runtime.o ABI 벽(#2-EXT rt_str 와 동일).
RULED-OUT AXIS: 소스레벨 tag-elision 은 inline-가시 검사에서 clang -O2 못 이김.

verdict: .verdicts/unshadow-C-tag-elision/F-UNSHADOW-C-TAG-ELISION.txt (verbatim)
bench:   self/bench/unshadow_c_tag_elision_bench.hexa
domain:  UNSHADOW.md C milestone [x] · UNSHADOW.log.md 항목

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts:
#	domains/UNSHADOW.log.md
#	domains/UNSHADOW.md
@dancinlife dancinlife merged commit 849c865 into main May 29, 2026
2 of 9 checks passed
@dancinlife dancinlife deleted the unshadow-C-tag-elision branch May 29, 2026 14:43
dancinlife added a commit that referenced this pull request May 29, 2026
UNSHADOW 전제를 HEXA-STACK 으로 재작성: LLVM 을 재구현하지 않고(M1 native-asm
5/5 패배) clang -O2 를 floor 로 상속한 위에 🔵 우위(인라인·atlas-fold·
proof-carrying·check-elision)를 ceiling 으로 적층. 이번 사이클 두 closed-negative
(#2-ext rt_str · C tag-elision)가 한 블로커로 수렴 = runtime.o C-ABI 벽;
LTO/same-TU = .c=0 졸업이 두 tier 를 동시에 여는 열쇠.

- UNSHADOW.md: 전제 재작성 + 3 신규 milestone (🟡 parity 상속 · 🔵×🟡 LTO unwall
  실측 · 🏗️ 적층 원칙 문서화)
- UNSHADOW.easy.md: 🏗️ HEXA-STACK 적층 섹션 (ASCII floor/ceiling 다이어그램 + 비교표)
- UNSHADOW.log.md: B(#2093)+C(#2094) 랜딩 + ABI-벽 수렴 meta-finding 기록

Co-authored-by: dancinlife <search5599@proton.me>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant