aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 09:14:03 +0100
committereunhhu <[email protected]>2026-09-28 09:14:03 +0100
commite5716bd108039982d55bcd3b2da25e9f28b5825a (patch)
tree736eaaad2f2c119c7997cecfb875fd4c60ed4b31
parent25af3db3643c7a4e961b172104ca289f5923e83a (diff)
downloadaup-e5716bd108039982d55bcd3b2da25e9f28b5825a.tar.gz
aup-e5716bd108039982d55bcd3b2da25e9f28b5825a.zip
Allow 16 records and 128 record fields
-rw-r--r--compiler/compile.c2
-rw-r--r--docs/design/002-dsl-direction.md2
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 참조 모델과 같다. 필드를 더하고 순서를 바꾼 레코드로 교체해도 항목이