피드로 돌아가기
Dev.toBackend
원문 읽기
CrabPascal v2.21.0: Fake Exception Stub 제거를 통한 빌드 무결성 확보
Honest Build: No Fake Exception Codegen | Build honesto: sem codegen falso de exceptions
AI 요약
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 매트릭스 관리