피드로 돌아가기
Dev.toBackend
원문 읽기
Rust 기반 단일 문자열 모듈 구축을 통한 런타임-코드젠 일관성 확보
Delphi-Style String Functions in CrabPascal (v2.13.0) | Funções de string estilo Delphi no CrabPascal (v2.13.0)
AI 요약
Context
인터프리터와 C 코드 생성기 간의 문자열 처리 로직 분리로 인한 동작 불일치(drift) 위험 존재. Delphi의 1-based indexing 규격 준수와 Unicode 표준 대응을 위한 통합 관리 구조 필요.
Technical Solution
src/pascal_strings.rs라는 단일 Rust 모듈로 문자열 built-in 함수를 중앙 집중화한 설계- 인터프리터와
stubs.c기반 C 헬퍼가 동일한 Rust 구현체를 공유하여 실행 모드 간 행동 일관성 유지 cargo test및string_conformance.rs를 통한 단일 테스트 스위트 및 컨포먼스 게이트 구축- v2.13.0의 UTF-8 codepoint 계산 방식에서 v2.22.0의 UTF-16 code unit 기반 UnicodeString 규격으로의 점진적 마이그레이션
- Delphi API 표면-Rust 내부 구현-C 미러 출력 구조의 계층적 아키텍처 채택
실천 포인트
- 다중 실행 환경(Interpreter, Compiler, Transpiler) 설계 시 핵심 로직의 Single Source of Truth 확보 여부 검토 - 외부 언어 규격(1-based indexing 등) 준수 시 구현체 레벨에서 강제하는 제약 사항 설계 - Unicode 처리 시 단순 바이트 길이가 아닌 Semantic Length(Code Unit/Codepoint) 정의 명확화