diff options
| author | eunhhu <[email protected]> | 2026-10-04 13:30:31 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-04 13:30:31 +0100 |
| commit | d806c3197500565d20787161d1e1e94ce39df7a1 (patch) | |
| tree | 26664778482aa7051d89d07c01f79e4527560a8d /docs/design/018-lifetimes-and-computation.md | |
| parent | f668d54e0c84bdb6240ba1133ee167385a7dc440 (diff) | |
| download | pure-d806c3197500565d20787161d1e1e94ce39df7a1.tar.gz pure-d806c3197500565d20787161d1e1e94ce39df7a1.zip | |
Keep transient states the app's while it runs, never stored (018 stage 1)
Diffstat (limited to 'docs/design/018-lifetimes-and-computation.md')
| -rw-r--r-- | docs/design/018-lifetimes-and-computation.md | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/docs/design/018-lifetimes-and-computation.md b/docs/design/018-lifetimes-and-computation.md index 901ab08..fab6d96 100644 --- a/docs/design/018-lifetimes-and-computation.md +++ b/docs/design/018-lifetimes-and-computation.md @@ -1,6 +1,6 @@ # 018 — 상태의 수명과 메모리 안의 계산 -작성일: 2026-10-04. 상태: 설계와 착수 기준(구현 전). +작성일: 2026-10-04. 상태: 설계와 착수 기준. 1단계(transient) 구현, 검사로 고정했다. [외부 리뷰 005](../outside-feedback/feedback-005.md)의 (1) "순수 인메모리 연산 및 알고리즘의 단절"과, 상태의 영속성과 상태성을 aup 안에서 정할 수단이 필요하다는 요청에서 시작한다. @@ -81,7 +81,10 @@ view distance(from: u32, to: u32) = { # 보기의 본문(3단계): 스냅숏� (위의 `picked`). - 모듈을 바꿀 때 저장되던 상태가 transient가 되면 그 값은 메모리에서 이어지고, 저장소의 옛 값은 모듈이 버린 상태의 값처럼 남는다(지금도 버린 상태는 지우지 않는다). 다시 저장되는 상태가 되면 그때 시작하는 앱은 저장소의 그 값을 받는다(버렸던 - 상태를 다시 들인 것과 같다). transient였던 것이 저장되는 상태가 되면 바꾸는 그 저장에서 지금의 값이 쓰인다. + 상태를 다시 들인 것과 같다). transient였던 것이 저장되는 상태가 되면 리스트는 바꿀 때 이미지를 쓰고, 수와 text는 바꾼 뒤의 + 첫 저장에서 쓰인다. +- 스냅숏(다른 스레드의 읽기)은 저장되는 text를 저장소의 매핑으로 나누지만 transient text는 저장소에 없으니 스냅숏마다 복사한다. + 큰 text를 transient로 두면 그만큼 든다. - **`let 이름: list of 레코드 [by 필드]`** 는 이벤트의 리스트다. 핸들러(3단계부터는 보기 본문)의 맨 바깥 블록에만 둔다. 저장되는 리스트가 하는 것을 모두 한다(`add`, `append`, `remove`, `[키]`, `has`, `count`, `first`, `last`, `+ n`, 집계, 걷기). 이벤트가 시작할 때 비어 있고, 끝나면(성공이든 실패든) 비워진다. 되돌리기를 기록하지 않는다. |
