피드로 돌아가기
Dev.toInfrastructure
원문 읽기
LLVM ORC JIT 기반의 C++ 런타임 Eval 시스템 구현 및 Steam Deck 실시간 검증
Live Coding in C++ Is Difficult But Not Impossible
AI 요약
Context
멀티미디어 프레임워크 MayaFlux의 실시간 제어를 위해 DSL이나 스크립팅 언어가 아닌 순수 C++의 런타임 Eval 환경 필요. 기존 디버거 하이재킹 및 Cling 인터프리터 방식은 높은 지연 시간과 템플릿 인스턴스화 제약, 메모리 관리 불안정성으로 인해 성능 요구사항 충족 불가.
Technical Solution
clang::Interpreter와IncrementalCompilerBuilder조합을 통한 점진적 C++ 컴파일 구조 설계- LLVM ORC JIT(On-Request Compilation) 엔진을 도입하여 C++ 코드를 네이티브 머신 코드로 실시간 변환 및 실행
- C++20 Coroutines를 통한 시간적 좌표 조율 및 Vulkan 1.3 기반의 데이터 스트림 통합 처리
- Neovim-TCP 통신 기반의 코드 전송 및 런타임 JIT Eval 파이프라인 구축
- 도메인별(Audio/Frame/Compute) 스케줄링 어노테이션을 통한 아키텍처 경계 제거 및 단일 처리 프리미티브 적용
실천 포인트
1. 런타임 코드 실행 필요 시 인터프리터의 메모리 관리 모델과 심볼 가시성 범위 확인
2. 템플릿 기반 라이브러리의 경우 사전 인스턴스화 없이 런타임 생성이 가능한 JIT 엔진인지 검토
3. 실시간성 확보를 위해 프로세스 간 경계(Process Boundary)를 최소화하는 라이브러리 직접 링크 방식 고려