diff options
Diffstat (limited to 'docs/design/028-bytes-state.md')
| -rw-r--r-- | docs/design/028-bytes-state.md | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/docs/design/028-bytes-state.md b/docs/design/028-bytes-state.md index 9396105..7e760fa 100644 --- a/docs/design/028-bytes-state.md +++ b/docs/design/028-bytes-state.md @@ -1,6 +1,6 @@ # 028 — 바이트 하나인 상태 -작성일: 2026-10-19. 상태: 설계. [140](../research/140-spec-suite.md)의 "027 뒤의 결정점"에서 써서 닿은 명세가 둘(inflate, +작성일: 2026-10-19. 상태: 만들었다(아래 "만든 것"). [140](../research/140-spec-suite.md)의 "027 뒤의 결정점"에서 써서 닿은 명세가 둘(inflate, HTTP/1.1)이 된 틈이다. 쌓임을 막는 규칙(둘 이상의 명세)을 넘으므로 핵에 들인다. 같은 결정점의 다른 하나(바이트의 `==`)는 TEXT_COMPARE의 인자 비트로 이미 만들었다(008). @@ -75,3 +75,23 @@ TEXT_COMPARE의 인자 비트로 이미 만들었다(008). - **바꿀 결정.** bytes를 상태의 타입으로 들인다. - **최소 확인.** 위 검증 모두. - **중단 기준.** 실행기만의 길이나 묶음 실행기의 명령 수가 1%를 넘게 바뀌면 멈추고 어디를 건드렸는지 찾는다. + +## 만든 것 (2026-10-19) + +- **Pure.** 상태 타입 6을 text 상태로 읽고 `state_flags`에 `PURE_TEXT_BYTES`를 둔다. 표시가 상태의 모양에 들어가므로, 질의 모듈과 + 교체를 받아들이는 serve의 견주기(`same_states`)가 그것까지 견준다. 검증: bytes 상태의 TEXT_LOAD는 바이트를 놓고 TEXT_SET은 + 바이트를 받는다. 커서의 명령(CUR_START, CUR_END, TEXT_INSERT, TEXT_REMOVE, TEXT_LINE, 앵커의 MOVE·COUNT·AT)은 거절하고("anchor in + bytes"), 앵커가 bytes 상태를 가리키면 로드가 거절한다. 저장: `values`에 종류 7과 이름을 적는다. text 상태의 파일이 UTF-8이 + 아닐 때 그 표시가 있으면 초기값, 없으면 `store_error`다. 교체: bytes → text는 draft가 UTF-8일 때만 남기고, 아니면 초기값으로 + 저장소의 draft를 다시 연다. pure-run은 16진으로 보인다. +- **aup.** `state x: bytes`(`= "..."`), 이름은 바이트 값, `x = …`는 바이트(문자열은 바이트를 만난다), 커서와 text 연산은 진단. +- **검증.** + - 단위 시험 `bytes_states`: 저장소에서 다시 시작하는 일곱 번, 실행 중의 교체 셋, 거절 넷. 0xff와 0x00이 다시 시작을 지나 남는다. + bytes → text → bytes → text를 오가며 UTF-8이 아닌 것은 초기값, UTF-8인 것은 그대로다. 표시 없이 UTF-8이 아닌 text 파일은 기존 + 시험대로 여전히 `store_error`다. + - aup의 `bytes_state`: 300걸음을 저장소로 15번 다시 시작하며 파이썬과 같다. 같은 이름의 text로 저장소에서 시작하고 실행 중에 + 교체한다. 진단 셋. + - Pure, Vega, aup의 전체 검사가 지난다. + - 명령 수(b47 대 b46): 묶음의 BFS +0.12%, 나머지 ±0.001% 안이다. 실행기의 걸음은 그대로다(로드와 저장만 바뀌었다). + - 은행 질의(s45와 s47을 한 번에 번갈아 여섯 번의 중앙값, 바이트의 비교와 함께): in_credit −0.31%, per_branch −0.18%, ranks + −0.11%, 나머지 ±0.01% 안이다. 일곱 질의의 답은 바이트까지 같다. |
