diff options
| author | eunhhu <[email protected]> | 2026-10-19 05:46:11 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-19 05:46:11 +0100 |
| commit | 475f35cb45a77dc41029126370887fd33b332800 (patch) | |
| tree | 3461a36d487301dbc15e68330430f540d8ec66c0 /docs/design | |
| parent | c545227f2461e92afc38a0e1317a288e8c653cc6 (diff) | |
| download | pure-475f35cb45a77dc41029126370887fd33b332800.tar.gz pure-475f35cb45a77dc41029126370887fd33b332800.zip | |
028 and 140: list values' copying measured a second time (UAX #14's Text record copies its nine lets' lists a line: with building them, 260 of 1,774 instructions a code point, after inflate's code()), and a keyed list's floor seek (the last item keyed x or below) first wanted (UAX #14's ranges, a binary search by position, 360 instructions a code point), one spec behind it
Diffstat (limited to 'docs/design')
| -rw-r--r-- | docs/design/028-bytes-state.md | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/docs/design/028-bytes-state.md b/docs/design/028-bytes-state.md index 7e760fa..216df58 100644 --- a/docs/design/028-bytes-state.md +++ b/docs/design/028-bytes-state.md @@ -68,6 +68,8 @@ TEXT_COMPARE의 인자 비트로 이미 만들었다(008). - **리스트 값의 나눔.** let의 리스트를 값으로 넘기면 Pure의 LIST_VALUE가 항목을 하나씩 복사한다. 복사 없이 나누려면 이벤트 도중의 리스트가 쓰기 전 복사(copy-on-write)를 해야 한다. 지금의 `pure_list_share`는 이벤트 사이의, 다른 스레드의 읽는 쪽을 위한 것이다. 명세가 그 비용에 닿으면 정한다. + - 잰 것(2026-10-19): UAX #14의 `Text` 레코드는 줄마다 let의 리스트 아홉 개를 복사해 짓는다. 그 복사와 리스트 짓기가 코드 포인트당 + 명령 1,774개 가운데 260개다(140). inflate의 `code()`에 이은 두 번째 수다. - **한 번에 비우기.** 블록 안의 let 리스트와 `xs = [...]`는 항목을 하나씩 지운다. 명령 하나로 비울지는 그 비용이 보이면 정한다. ## 착수 기준 |
