피드로 돌아가기
Hacker NewsHacker News
Infrastructure

C99 표준 준수 및 Lua 기반 동적 컴파일러 도입을 통한 크로스 컴파일 환경 구축

NetHack 5.0.0

2026년 5월 2일2intermediate

Context

플랫폼 간 빌드 호환성 제약과 레거시 빌드 도구의 의존성으로 인한 배포 효율성 저하 발생. 기존 yacc 및 lex 기반의 정적 컴파일 구조로 인해 타겟 플랫폼별 개별 빌드 필요성 증대.

Technical Solution

  • C99 표준 준수를 통한 소스 코드 현대화 및 컴파일러 호환성 확보
  • Cross-compiling 지원 구조 설계를 통한 단일 플랫폼 내 타겟 OS 바이너리 생성 환경 구축
  • yacc 및 lex 기반의 정적 레벨/던전 컴파일러를 Lua 기반 텍스트 처리 방식으로 전환
  • 런타임 시 Lua 스크립트를 로드하여 처리하는 동적 프로세싱 구조 도입으로 빌드 타임 의존성 제거
  • makedefs 유틸리티의 텍스트 처리 로직을 게임 내 Lua 엔진으로 통합하여 데이터 파이프라인 단순화

- 빌드 타임의 정적 컴파일 의존성을 런타임 스크립트 해석 방식으로 전환하여 배포 유연성 검토 - Cross-compiling Toolchain 구축을 통한 플랫폼별 빌드 파이프라인 단일화 추진 - 레거시 표준(C89 등)에서 현대적 표준(C99 이상)으로의 마이그레이션을 통한 코드 이식성 확보

원문 읽기