diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/design/029-past-one-node.md | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/docs/design/029-past-one-node.md b/docs/design/029-past-one-node.md index 5f2c7bb..93c2752 100644 --- a/docs/design/029-past-one-node.md +++ b/docs/design/029-past-one-node.md @@ -176,13 +176,37 @@ C의 속도로 컴파일하기 쉬운 쪽**이어야 한다. 61–183배의 절� 정해진다. 셈의 정의를 꼴과 무관하게 정하는 것은 계약의 결정이다. - 평평한 `ranges`의 값은 바뀔 때로 옮겨 간다(재지 않음). - UAX #14 하나다. DNS, HTTP, inflate, JSON은 바이트와 텍스트와 재귀의 섞임이 달라, 인자를 옮겨 말하지 않는다. +- **메시지 끝에서 끝(`app.c`의 BORDER, 2026-10-19).** 사건의 테두리도 손으로 썼다. 런타임의 `pure_app_message`와 같은 페이로드를 + 받고, 상태 `breaks`에 답을 남긴다. 모든 끝이 18,672줄 모두에서 시험의 답과 같다. 틀린 규칙 판은 손으로 쓴 끝 둘도 거부된다. + | 끝 | 기계 명령/점 | 사이클/점 | 줄 하나에 | + |---|---|---|---| + | 런타임(실행기) | 40,365 | 15,525 | 132,262 | + | 런타임, 빈 처리기(사건만) | 1,595 | 664 | 5,268 | + | 손으로 쓴 테두리 + shared | 592 | 292 | 1,944 | + | 손으로 쓴 테두리 + plain | 379 | 238 | 1,245 | + | 같은 페이로드를 받는 Vega의 C | 240 | 91 | 787 | + - **끝에서 끝 40,365 → 592, 68배다. 같은 페이로드를 받는 C(240)의 2.5배이고, 사이클로는 3.2배다.** 테두리는 1,595에서 약 22(줄 하나에 + 약 72)로 준다. + - 테두리가 남기는 뜻은 이것뿐이다. 행이 온전하고 수마다 유한한지 본다(`place_fields`, `decode_cell`). 일의 예산과 메모리 셈을 다시 + 시작한다. 처리기가 바꾸는 단 하나의 상태(`breaks`, N2)를 따로 쓰고, 오류 없이 끝날 때만 상태의 것으로 만든다(그 상태 하나에 대한 + pending과 되돌리기). 읽는 이가 쥐지 않은 버퍼에 쓰고, 쥐고 있으면 새 버퍼를 잡는다. 사건과 바뀜을 센다. 저장소가 없는 앱이다(여기 + 런타임과 같다). 저장은 원리 2의 일이다. + - 지운 것. 메시지의 행을 메시지마다 트리로 다시 짓기(`pure_list_read`의 `make_tree`와 행마다의 `pure_list_insert`). 상태 54개를 사건마다 + 다섯 번 훑기(pending 복사, 되복사, 버스트 열기와 닫기, settle). 그 가운데 40개는 `t.X` 읽기의 등록기다. 지난 사건의 중첩 리스트 놓기. + 통째로만 바뀌는 bytes 상태를 텍스트 편집의 조각 트리(`pure_draft_splice`)로 쓰기. + - 새 사실은 없다. 테두리가 지운 것은 N2(처리기가 바꾸는 것은 `breaks`뿐)와 오늘의 증명(등록기는 부름마다 제 것), 언어의 뜻(입력은 + 바뀌지 않는다), 표현의 결정(행은 페이로드에서 읽고, bytes 상태는 버퍼)이 허락한다. 그래서 끝에서 끝까지 새로 증명할 사실은 + 여전히 N1과 N4, 넓힐 분석은 N2다. + - 단서. 손으로 쓴 판의 수는 하네스를 다시 지을 때마다 1% 안에서 움직인다(인라인의 결정). shared는 이번 빌드에서 570이었다. 런타임의 + 수도 돌릴 때마다 0.2% 안에서 움직인다. 저장소가 붙은 앱은 재지 않았다. - **고친 것: let 리스트 후보.** 처음 이 자리에 "셈으로 깨졌다(13,000, 32%, 1.5배)"라고 적었다. 그것은 실행기 안의 몫이었다. 위의 사슬에서 인자로 재니 9.43배이고, 사슬에서 가장 큰 인자다. - **고친 것: 막대의 셈.** "명령 하나가 기계 명령 하나여도 C의 2.5배"라고 적었다. 명령의 수가 바닥이라고 본 것인데, range()의 both는 실행된 명령 269.5개를 기계 명령 226개로 한다(하나에 0.84). 레지스터 아래에서 옮김과 상수가 사라진다. 그 셈은 틀렸다. - **원리 1이 지금 말하는 것.** 시험한 길(실행기의 몸을 이어 붙이기)은 죽었다(앱 1.43배, range() 1.78배). 표현까지 포함해 증명에서 내보내는 것은 UAX #14의 처리기에서 C의 2.5배(사이클 3.6배)다. 새 사실 둘과 넓힌 분석 하나가 필요하고, 계약(검사와 셈)과 알고리즘이 - 남는다. 사건 자체(1,566)는 이 길 밖이다. 손으로 쓴 점 하나이지, 지은 내보내기가 아니다. + 남는다. 사건의 테두리도 손으로 쓰면 메시지 끝에서 끝이 40,365 → 592, 같은 페이로드를 받는 C의 2.5배다(새 사실 없이). 손으로 쓴 +점 하나이지, 지은 내보내기가 아니다. ## 원리 2. 커밋이 곧 복제본이다 |
