피드로 돌아가기
Why Janet?
Hacker NewsHacker News
Infrastructure

Bytecode-to-C 컴파일 기반 1MB 미만 경량 런타임 구현

Why Janet?

2026년 6월 2일8intermediate

Context

전통적인 Lisp 계열 언어의 복잡한 문법 체계와 무거운 런타임 의존성으로 인한 배포 효율성 저하 발생. 특히 스크립트 언어의 느린 실행 속도와 정규 표현식 기반 텍스트 처리의 예측 불가능성 해결 필요.

Technical Solution

  • Bytecode를 .c 파일로 변환 후 시스템 C 컴파일러로 정적 링크하여 외부 의존성 없는 단일 Native Executable 생성
  • Parsing Expression Grammars(PEG) 도입을 통한 정규 표현식의 한계 극복 및 비정형/바이너리 데이터의 예측 가능한 파싱 구조 설계
  • Mutable/Immutable Collection을 표준 라이브러리 수준에서 분리하여 메모리 참조 및 값 기반 세맨틱으로 데이터 일관성 확보
  • 8개의 핵심 Instruction 기반의 최소ist Core 설계와 Macro 시스템을 통한 유연한 고수준 제어 흐름 확장
  • C 라이브러리 형태의 소형 런타임 설계로 기존 C/C++ 애플리케이션 내의 Scripting Interface 임베딩 최적화

1. 단일 바이너리 배포가 필요한 경량 CLI 도구 설계 시 Bytecode-to-C 방식 검토

2. 복잡한 멀티라인 텍스트나 바이너리 파싱 필요 시 Regex 대신 PEG 도입 고려

3. 임베디드 환경의 스크립팅 인터페이스 구현 시 런타임 라이브러리의 크기와 정적 링크 가능 여부 확인

원문 읽기