diff options
| author | eunhhu <[email protected]> | 2026-09-28 09:14:03 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 09:14:03 +0100 |
| commit | e5716bd108039982d55bcd3b2da25e9f28b5825a (patch) | |
| tree | 736eaaad2f2c119c7997cecfb875fd4c60ed4b31 | |
| parent | 25af3db3643c7a4e961b172104ca289f5923e83a (diff) | |
| download | aup-e5716bd108039982d55bcd3b2da25e9f28b5825a.tar.gz aup-e5716bd108039982d55bcd3b2da25e9f28b5825a.zip | |
Allow 16 records and 128 record fields
| -rw-r--r-- | compiler/compile.c | 2 | ||||
| -rw-r--r-- | docs/design/002-dsl-direction.md | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/compiler/compile.c b/compiler/compile.c index bf3c882..af9899a 100644 --- a/compiler/compile.c +++ b/compiler/compile.c @@ -10,7 +10,7 @@ /* Limits and opcodes of Pure module format v5. */ enum { STATES = 32, INPUTS = 32, VIEWS = 64, HANDLERS = 64, CODE = 65535, STACK = 64, NAME = 32, JOINS = 8, DEPTH = 64, FIELDS = 64, COLLECTIONS = 1, CONSTANTS = 4096, CONSTANT_BYTES = 1 << 20, - RECORDS = 8, RECORD_FIELDS = 64, FIELDS_PER_RECORD = 16, FNS = 64, PARAMS = 8, MODULES = 9 }; + RECORDS = 16, RECORD_FIELDS = 128, FIELDS_PER_RECORD = 16, FNS = 64, PARAMS = 8, MODULES = 9 }; enum { CONST, LOAD, DT, ADD, SUB, MUL, DIV, NEG, LT, LE, GT, GE, EQ, NE, AND, OR, NOT, MIN, MAX, CLAMP, STORE, JZ, JMP, FIELD, DOC, DOC_SIZE, LEN, REPLACE, REPLY, REQUIRE, TEXT_CONST, TEXT_LOAD, TEXT_INPUT, NUM_TEXT, CONCAT, CHARS, LINES, TEXT_BYTES, diff --git a/docs/design/002-dsl-direction.md b/docs/design/002-dsl-direction.md index 07aee73..a3ffb65 100644 --- a/docs/design/002-dsl-direction.md +++ b/docs/design/002-dsl-direction.md @@ -122,7 +122,7 @@ view status = "{at.position + 1}/{tasks.count}" - 레코드 값(`Task { ... }`)은 아직 `append`/`insert`/`add`의 인자로만 쓴다. 레코드 상태와 항목 전체 읽기는 없다. 찾기는 `first(...)`(조건)와 키 있는 리스트의 `xs[키]`(키)로 한다. -한도: 레코드 8개, 레코드당 필드 16개, 전체 필드 64개, 리스트당 항목 65,536개. +한도: 레코드 16개, 레코드당 필드 16개, 전체 필드 128개, 리스트당 항목 1,600만 개(2^24). 검증: 무작위 추가·이동·토글·복사·이름 바꾸기·지우기 4,800단계(빈 리스트에서 실패하는 이벤트 약 500건 포함)에서 리스트, 인덱스, 보기, 실패 여부가 Python 참조 모델과 같다. 필드를 더하고 순서를 바꾼 레코드로 교체해도 항목이 |
