From e5d27951fd0bffede36ac70c18c24a2e462ecc76 Mon Sep 17 00:00:00 2001 From: CharlesKWON Date: Mon, 13 Apr 2026 18:54:14 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20update=20CLAUDE.md=20=E2=80=94=20remove?= =?UTF-8?q?=20resolved=20constraints,=20update=20metrics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 9 constraints resolved (2026-04-11~13), 3 remain. Test metrics updated: 483 RTL, 258 PRG tests, Harbour parity diff 0. Co-Authored-By: Claude Opus 4.6 (1M context) --- CLAUDE.md | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0cb4986..8863953 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -68,9 +68,22 @@ cd ~/tmp && rm -f *.dbf __cte_*.dbf && /tmp/test_sql | 항목 | 상태 | 우회 방법 | |------|------|----------| | 세미콜론 IF...ENDIF | Five 파서 미지원 | 여러 줄로 분리 | -| STATIC inside FUNCTION | local index 0 에러 | 모듈 레벨 STATIC 사용 | -| LOCAL inside IF/FOR | gengo가 호이스트하지만 불안정 | 함수 최상단에 LOCAL 선언 | -| 클로저 안에서 외부 변수 수정 | RefCell 기반 동작 | += 등 compound assign은 emitAssignExpr 경유 | +| `{||}` / `{=>}` 함수 인자 내 | 파서가 빈 블록/해시를 인자 위치에서 파싱 실패 | 변수에 담아서 전달 | +| CDX compound index 쓰기 | 읽기만 지원, 생성 불가 | NTX 사용 또는 Harbour로 CDX 생성 | + +### 해결된 제약 (2026-04-11~13) + +| 항목 | 커밋 | +|------|------| +| STATIC inside FUNCTION → panic | `5bfdc47` — Go 패키지 변수로 emit | +| FIELD->NAME 빈 값 반환 | `e95afad` — GetAliasField 반환 타입 수정 | +| OrdSetFocus(n) 무동작 | `e95afad` — 숫자→문자열 변환 수정 | +| Break("string") RECOVER USING panic | `3adc9d7` — BreakValue duck-type dispatch | +| SET INDEX TO a, b, c 마지막만 열림 | `3adc9d7` — 파서+gengo 다중 파일 지원 | +| PCount() 항상 0 반환 | `3adc9d7` — CallerParamCount + Frame.paramCount | +| OutStd()/OutErr() 미등록 | `e95afad` — RTL 등록 | +| Date + Numeric panic | `6c53747` — NumInt→Numeric 확장 | +| STATIC += / -= 단순 대입으로 처리 | `5bfdc47` — compound assign 지원 | --- @@ -92,11 +105,23 @@ cd ~/tmp && rm -f *.dbf __cte_*.dbf && /tmp/test_sql --- -## 현재 지표 (2026-04-10) +## 현재 지표 (2026-04-13) -- Go test: ALL PASS -- RTL 함수: 417개 +- Go test: ALL PASS (14 packages) +- RTL 함수: 483개 - FiveSql2: 43/43 (100%) - Compat: 51/51 (100%) +- Syntax test: 100/100 +- RDD test: 44/44 +- RTL test: 114/114 +- Harbour RDD parity: diff 0 (281-line NTX+CDX comparison) +- Windows cross-compile: OK (five.exe 4.0MB) +- Linux cross-compile: OK (five_linux 3.8MB) - @byref: 동작 (RefCell) - Mutable closure: 동작 (RefCell + EnsureLocalRef) +- FIELD->NAME: 동작 (읽기/쓰기) +- STATIC inside FUNCTION: 동작 (패키지 변수 + 함수 스코프 격리) +- PCount(): 동작 (CallerParamCount) +- Break/RECOVER USING: 동작 (BreakValue duck-type) +- 파일 락킹: POSIX fcntl + Windows LockFileEx +- INDEX 성능: Harbour 대비 12% faster (50k records)