Skip to content

docs(unshadow): #2-ext rt_str inline โ€” ๐Ÿ”ด CLOSED-NEGATIVE (ABI-boundary falsification)#2087

Merged
dancinlife merged 2 commits into
mainfrom
unshadow-2ext-rt-str-inline
May 29, 2026
Merged

docs(unshadow): #2-ext rt_str inline โ€” ๐Ÿ”ด CLOSED-NEGATIVE (ABI-boundary falsification)#2087
dancinlife merged 2 commits into
mainfrom
unshadow-2ext-rt-str-inline

Conversation

@dancinlife
Copy link
Copy Markdown
Contributor

โœ‚๏ธ UNSHADOW #2-extension โ€” rt_str_* ์ธ๋ผ์ธ: ๐Ÿ”ด CLOSED-NEGATIVE

#2(hexa_int, merged ~28%)์„ ๋ฌธ์ž์—ด prim์œผ๋กœ ํ™•์žฅ ์‹œ๋„ โ†’ link ๊ฒฝ๊ณ„์„œ falsified. ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์Œ(codegen.hexa clean revert) โ€” log + verdict + ๋ฒค์น˜๋งŒ ๊ธฐ๋ก(publishable negative ยท commons paper_negative_ok).

๋ฌด์—‡์ด ๋ฐ˜์ฆ๋๋‚˜

prim rt_str_starts_with ์ธ๋ผ์ธ โ†’ ์•ˆ ๋งํฌ๋จ:

Undefined symbols: _HX_STRLEN (x8)   ยท   grep -c HX_STRLEN self/runtime.h โ†’ 0

runtime.h๋Š” HexaVal-level ABI๋งŒ exportํ•˜๊ณ  ๋‚ด๋ถ€ ์Šค์นผ๋ผ ํ—ฌํผ(HX_STRLENยทhxlcl_strncmp)๋Š” ๋…ธ์ถœ ์•ˆ ํ•จ. ๋ชจ๋“  ์˜๋ฏธ์žˆ๋Š” rt_str_* ๋ณธ๋ฌธ์€ ๋น„-export ๋‚ด๋ถ€์— ์˜์กด โ†’ ์ˆœ์ˆ˜-๋ ˆ์ด์•„์›ƒ ์ธ๋ผ์ธ form ๋ถ€์žฌ.

์™œ hexa_int์€ ๋๋‚˜ (์—ญ๊ทœ๋ช…)

((HexaVal){.tag,.i})๋Š” runtime.h-๊ฐ€์‹œ ๊ตฌ์กฐ์ฒด+๋ฆฌํ„ฐ๋Ÿด๋งŒ ์”€ โ†’ ๋‚ด๋ถ€ ํ—ฌํผ 0๊ฐœ. ์ธ๋ผ์ธ ๊ฐ€๋Šฅ โ‡” prim ๋ณธ๋ฌธ์ด runtime.h ๊ฐ€์‹œ ํ‘œ๋ฉด๋งŒ ์‚ฌ์šฉ. ์ด๊ฒŒ ์ด๋ฒˆ ๋ฐœ๊ฒฌ.

๊ฐ€๋“œ๋Š” ์ •์ƒ

double-eval ๊ฐ€๋“œ(๊ฐ ์ธ์ž 1ํšŒ let-bind, __sw_s/__sw_p) ์„ค๊ณ„๋Š” ์ •ํ™•ํ–ˆ์Œ. ๋ฐ˜์ฆ์€ ABI ๊ฒฝ๊ณ„์ง€ ๊ฐ€๋“œ ๊ฒฐํ•จ ์•„๋‹˜.

verdict: .verdicts/unshadow-2ext-rt-str-inline/F-UNSHADOW-2EXT-RT-STR-INLINE.txt. milestone flip ์—†์Œ(ํ™•์žฅ). ๐Ÿค– Generated with Claude Code

dancinlife and others added 2 commits May 29, 2026 22:09
โ€ฆtime.h ABI ๊ฒฝ๊ณ„ ์ฐจ๋‹จ)

UNSHADOW #2 (hexa_int box ์ธ๋ผ์ธ, ~28%) ๋ฅผ STRING ๋Ÿฐํƒ€์ž„ prim ์œผ๋กœ ํ™•์žฅ ์‹œ๋„ํ•œ
closed-negative finding. prim = `rt_str_starts_with` (liveยทpureยทHexaVal 2-arg).

falsifier: "pure rt_str_* accessor ์˜ body ๋ฅผ codegen ์ฝœ์‚ฌ์ดํŠธ์— ์ธ๋ผ์ธ โ†’
clang -O2 ๊ฐ€ ๊ฒฝ๊ณ„ ๋„˜์–ด ์ตœ์ ํ™”, byte-identicalยทsingle-eval".

๋ฐ˜์ฆ(THE WALL): inline arm ๋งํฌ ์‹คํŒจ โ€” `Undefined symbols: "_HX_STRLEN"`.
runtime.h ๋Š” HexaVal-๋ ˆ๋ฒจ ABI ํ•จ์ˆ˜๋งŒ export ํ•˜๊ณ  ๋‚ด๋ถ€ ์Šค์นผ๋ผ ํ—ฌํผ
(HX_STRLENยทhxlcl_strncmpยทlibc strncmp)๋Š” runtime.c amalgam ๋‚ด๋ถ€์—๋งŒ ์กด์žฌ โ†’
emitted ํ”„๋กœ๊ทธ๋žจ(`#include "runtime.h"` + link runtime.o)์—์„œ ์ฐธ์กฐ ๋ถˆ๊ฐ€.
HX_IS_STR/HX_STR ๋Š” export ๋˜์ง€๋งŒ HX_STRLEN ์€ ์•ˆ ๋จ.

ruled-out axis: hexa_int ๊ฐ€ ์„ฑ๊ณตํ•œ ๊ฑด box-literal ์ด runtime.h-๊ฐ€์‹œ struct
๋ ˆ์ด์•„์›ƒ + ๋ฆฌํ„ฐ๋Ÿด๋งŒ ์จ์„œ(๋‚ด๋ถ€ ํ—ฌํผ 0) ์ธ๋ฐ, ๋ชจ๋“  ์˜๋ฏธ์žˆ๋Š” rt_str_* body ๋Š”
๋‚ด๋ถ€ ํ—ฌํผ๋ฅผ ๊ฑด๋“œ๋ ค ์ˆœ์ˆ˜-๋ ˆ์ด์•„์›ƒ ์ธ๋ผ์ธ ํ˜•ํƒœ๊ฐ€ ์—†์Œ. ์ธ๋ผ์ธํ•˜๋ ค๋ฉด runtime.h
ํ—ฌํผ export(=๊ฒฝ๊ณ„ ์žฌํ™•๋Œ€) ๋˜๋Š” ์ „์—ญ ํ”„๋ฆฌ์•ฐ๋ธ” `#include <string.h>`(surgical ์•„๋‹˜ +
strncmp ๋งคํฌ๋กœ-shadow ์ถฉ๋Œ) ํ•„์š” โ€” ๋‘˜ ๋‹ค ์ฝœ์‚ฌ์ดํŠธ ์ธ๋ผ์ธ ์Šค์ฝ”ํ”„ ๋ฐ–.

double-eval ๊ฐ€๋“œ ์„ค๊ณ„๋Š” ์ •์ƒ(emitted C ์—์„œ ๊ฐ ์ธ์ž ์ •ํ™•ํžˆ 1ํšŒ let-bind ํ™•์ธ,
BASE single-eval calls=1). ๋ฐ˜์ฆ์€ ๊ฐ€๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋งํฌ ๊ฒฝ๊ณ„.

์ •ํ™•์„ฑ ์šฐ์„ : codegen ๋ณ€๊ฒฝ revert(์ธ๋ผ์ธ์€ ๋นŒ๋“œ ์ž์ฒด ์‹คํŒจ). bench/log/verdict ๋งŒ commit.
UNSHADOW.md cross-layer milestone ๋ฏธ๋ณ€๊ฒฝ(extension). NO hand-written .c.

artifacts:
- .verdicts/unshadow-2ext-rt-str-inline/F-UNSHADOW-2EXT-RT-STR-INLINE.txt (verbatim)
- bench/unshadow/strstarts_{corpus,heavy,singleeval}.hexa
- domains/UNSHADOW.log.md (extension entry)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts:
#	domains/UNSHADOW.log.md
@dancinlife dancinlife merged commit d27e6b9 into main May 29, 2026
2 of 8 checks passed
@dancinlife dancinlife deleted the unshadow-2ext-rt-str-inline branch May 29, 2026 13:22
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