피드로 돌아가기
Honest Build: No Fake Exception Codegen | Build honesto: sem codegen falso de exceptions
Dev.toDev.to
Backend

CrabPascal v2.21.0: Fake Exception Stub 제거를 통한 빌드 무결성 확보

Honest Build: No Fake Exception Codegen | Build honesto: sem codegen falso de exceptions

CrabPascal2026년 6월 4일5intermediate

Context

CrabPascal의 build-exe 경로에서 Exception Handling을 위해 구현된 Stub 블록이 컴파일은 성공하나 런타임 동작은 보장하지 못하는 Parity Gap 발생. 이로 인해 개발 환경(run)과 프로덕션 환경(native build) 간의 동작 불일치로 인한 예기치 못한 Crash 위험 상존.

Technical Solution

  • build-exe 내 try/except/finally 블록 및 raise 문에 대한 C 코드 생성 전면 차단
  • 미지원 구문 탐지 시 명시적 Error 메시지를 출력하여 crab-pascal run 사용을 유도하는 Fail-fast 구조 도입
  • CI Pipeline 단계에서 미지원 구문을 통한 빌드 실패를 강제하여 Silent Failure 가능성 원천 제거
  • codegen::tests::test_codegen_errors_on_try_raise 테스트 케이스 추가를 통한 Stub 재도입 방지 및 Regression Test 강화
  • 향후 setjmp/longjmp 또는 LLVM 기반의 Table-based Handler 도입을 위한 단계적 Lowering 전략 수립

- 기능 미구현 시 Stub 코드로 컴파일만 통과시키는 'Fake Feature' 지양 - 개발-운영 환경 간 동작 불일치를 방지하기 위해 명시적 에러를 통한 Fail-fast 설계 적용 - 언어 구현체 설계 시 Runtime Interpreter와 Native Codegen 간의 Feature Parity 매트릭스 관리

원문 읽기