피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Delphi 호환성 극대화를 위한 CrabPascal v2.10.0의 System.* Namespace 설계
System.* Namespaces and the CrabPascal RTL | Namespaces System.* e a RTL do CrabPascal
AI 요약
Context
기존 CrabPascal RTL의 단순한 유닛 명명법으로 인한 Delphi 코드 포팅 시의 높은 마찰력 발생. 특히 System.SysUtils와 같은 현대적 Delphi의 Dotted Unit naming 체계 미지원으로 인한 컴파일 에러 및 코드 수정 필요성 증대.
Technical Solution
- Embarcadero RTL 구조를 미러링한 rtl/sys/ 디렉토리 레이아웃 도입을 통한 물리적 구조 일치
- UnitResolver의 검색 우선순위를 rtl/sys/ 경로에 우선 배정하여 Namespaced Shim의 우선권을 확보한 설계
- 기존 구현체의 중복 방지를 위해 내부적으로 원본 유닛을 re-export하는 Shim 파일 구조 채택
- CARGO_MANIFEST_DIR 기반의 경로 해결 방식을 통한 CI 환경의 작업 디렉토리 의존성 제거
- Namespace fidelity를 우선 확보한 뒤 Runtime behavior를 점진적으로 확장하는 Incremental RTL 전략 수행
실천 포인트
- 외부 생태계 코드 포팅 시 구현체 재작성보다 Namespace Mapping 레이어 선행 구축 검토 - 하위 호환성 유지와 현대적 표준 도입을 위한 Shim-based Re-export 패턴 활용 - 빌드 시스템의 Search Path 우선순위 설정을 통한 레거시와 신규 구조의 공존 전략 수립