피드로 돌아가기
Live Coding in C++ Is Difficult But Not Impossible
Dev.toDev.to
Infrastructure

LLVM ORC JIT 기반의 C++ 런타임 Eval 시스템 구현 및 Steam Deck 실시간 검증

Live Coding in C++ Is Difficult But Not Impossible

Ranjith Hegde2026년 4월 19일16advanced

Context

멀티미디어 프레임워크 MayaFlux의 실시간 제어를 위해 DSL이나 스크립팅 언어가 아닌 순수 C++의 런타임 Eval 환경 필요. 기존 디버거 하이재킹 및 Cling 인터프리터 방식은 높은 지연 시간과 템플릿 인스턴스화 제약, 메모리 관리 불안정성으로 인해 성능 요구사항 충족 불가.

Technical Solution

  • clang::InterpreterIncrementalCompilerBuilder 조합을 통한 점진적 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)를 최소화하는 라이브러리 직접 링크 방식 고려

원문 읽기