diff options
| -rw-r--r-- | CHECKPOINT.md | 2 | ||||
| -rw-r--r-- | docs/design/016-bool-and-i64.md | 20 |
2 files changed, 20 insertions, 2 deletions
diff --git a/CHECKPOINT.md b/CHECKPOINT.md index 923f297..e17be43 100644 --- a/CHECKPOINT.md +++ b/CHECKPOINT.md @@ -31,7 +31,7 @@ +9%, 상주 −10%, [107](docs/research/107-snapshot-nodes-reused.md)). 남은 가장 큰 몫은 항목 찾기다. 키로 나눈 소유자는 그다음에 본다. 대신 압축한 파일이 한 주기의 0을 미리 가져 커밋이 새 블록을 받지 않는다(저장소 커밋 +21%, 저널 커밋 −59%, [085](docs/research/085-cycle-sized-files.md)). -남은 것: macOS 검증, `bool`·`i64`, 압축을 없애는 제자리 재사용 저장소(085 다음), 응답을 기다리는 출력의 묶음 전달(083), 앱 +남은 것: macOS 검증, `i64`([016](docs/design/016-bool-and-i64.md)의 2단계. `bool`은 들어갔다), 압축을 없애는 제자리 재사용 저장소(085 다음), 응답을 기다리는 출력의 묶음 전달(083), 앱 라우트의 인증·TLS(문서 피어의 TLS는 있다), aup·Vega의 배포 묶음, 캐시보다 큰 목록을 찾는 걸음(109: 미리 가져오기로는 줄지 않았다. 한 사건의 조회를 겹치거나 구조를 바꿔야 한다). diff --git a/docs/design/016-bool-and-i64.md b/docs/design/016-bool-and-i64.md index ead3ae8..5164a7c 100644 --- a/docs/design/016-bool-and-i64.md +++ b/docs/design/016-bool-and-i64.md @@ -1,6 +1,6 @@ # 016 — 참·거짓과 정확한 정수: `bool`과 `i64` -작성일: 2026-09-30. 상태: 1단계(`bool`) 구현 중, 2단계(`i64`) 설계. +작성일: 2026-09-30. 상태: 1단계(`bool`) 구현, 검사로 고정. 2단계(`i64`) 설계. aup의 v0c에 남은 것(aup `docs/design/002-dsl-direction.md`의 `i64 bool`)이고, [015](015-boundary-meaning.md)가 정한 경계마다의 값의 뜻에 두 종류를 더한다. @@ -54,6 +54,24 @@ aup의 원칙(002)을 따른다. 위치가 정수가 아니듯 참·거짓은 � **옮기는 비용.** 예제의 수 깃발을 bool로 바꾼다(`done`, `urgent`, `running`, `holding`). 저장된 0과 1은 위의 교체 규칙으로 그대로 이어진다. +### 1단계에서 알게 된 것 + +- **새 명령은 필요 없었다.** 처음 설계는 BOOL_CONST와 BOOL_TEXT를 더하려 했다. CONST와 NUM_TEXT의 인자 하나(0이던 + 자리)로 충분했다. 검증기의 종류와 타입 번호만 늘었고, 실행기는 bool을 수의 칸의 0과 1로 그대로 돈다(잎 단위 실행도). +- **저장된 보냄의 bool을 거절하던 곳이 있었다.** 출력의 필드 타입을 저장소에서 다시 읽는 검사가 `>= 행`으로 bool(6)까지 + 막아, bool 필드를 가진 출력의 보냄이 기다리는 노드는 다시 시작하지 못했다. `server_meaning`의 재시작 출구가 잡았고, + 고쳤다. test-module이 잡지 못한 까닭은 bool 보냄을 저장하고 다시 여는 경우가 없어서였다. 그 경우를 더했다(고치기 전의 + 코드로는 실패한다). +- **−0은 `false`로 옮긴다.** 수가 bool이 될 때 0과 1만 옮기기로 했는데, 015가 0에는 부호가 없다고 정했으므로 −0도 0이다. + 처음 구현은 −0을 기본값으로 보냈다. +- **JSON의 `True`는 타입이 아니라 문법의 거절이다**(`json`). 1, 0, `"true"`, `null`, 배열은 `json_type`이다. + +검사: Pure test-module에 bool 검증 거절 28가지와 실행·메시지 바이트·보냄·링크·교체·저장(보냄 포함)을 더했고, 레인 대조의 무작위 +생성기가 수와 bool을 나눠 만든다(3,600 집계가 비트까지 같다). `server_meaning`은 값 67개마다 bool 필드를 싣고 나가는 길 일곱에서 +본다(거절 52가지, bool은 거절의 종류까지). HTTP에서 bool 보기의 글자와 bool 인자도 본다. aup는 bool 진단 20가지, 받아들이는 +형식, 출력마다 `true`·`false`인지 보는 검사(파이썬의 `True == 1`을 같게 보지 않는 비교)를 더했다. Vega는 bool 보기가 CLI, TUI, +문장, 웹에서 `true`·`false`로 보이는지 본다. 커밋: Pure `86fd4f7`·`d1c90e2`·`d415a5a`, aup `b8e3faa`, Vega `72ecae6`. + ## 2단계: `i64` 1단계가 들어간 뒤 같은 방식으로 한다. 정할 것을 미리 적는다. |
