피드로 돌아가기
Changelog 2026: A Year of Sprints | Changelog 2026: um ano de sprints
Dev.toDev.to
Infrastructure

CrabPascal: 인터프리터에서 Delphi 패리티 컴파일러로의 진화

Changelog 2026: A Year of Sprints | Changelog 2026: um ano de sprints

CrabPascal2026년 6월 4일6advanced

Context

단순 인터프리터 구조의 한계와 Run/Build 모드 간의 동작 불일치로 인한 신뢰성 저하 발생. 특히 예외 처리 및 다이내믹 디스패치 구현 부족으로 인한 Delphi 언어적 패리티 부족 상태였음.

Technical Solution

  • 'One Sprint, One Version, One Review' 체계 도입을 통한 점진적 컴파일러 기능 확장
  • 정확한 에러 위치 식별을 위해 Placeholder 방식에서 File/Line/Column 기반의 Diagnostic Spans 구조로 전환
  • 가짜 C 코드를 생성하던 기존 방식 대신 Exception Codegen 불가 시 빌드를 거부하는 'Honest Build' 철학 적용
  • RTL(Runtime Library) 확장 및 System.* 네임스페이스 해석기 구현을 통한 Delphi 호환성 확보
  • Parser Hardening을 통한 Enum 및 상속 클래스 관련 버그 해결과 Regression Test 자동화 체계 구축
  • Dotted Unit Name 지원을 위한 Semantic Resolver 로직 개선으로 모듈 참조 구조 정밀화

- 신규 기능 개발 시 'Run'과 'Build' 결과가 일치하는지 검증하는 Parity Gate 설정 - 컴파일러 개발 시 기능 구현보다 정확한 Diagnostic 정보 제공을 우선순위에 배치 - 기술 부채를 마케팅 용어가 아닌 Audit 기반의 투명한 리스트(TD-IDs)로 관리

원문 읽기