← 목록으로

TurboPython - Python 코드를 C++를 거쳐 네이티브 실행 파일로 컴파일하는 언어

요약
  • TurboPython은 Python 문법을 기반으로 코드를 C++로 변환하여 네이티브 실행 파일로 컴파일하는 정적 타입 언어입니다.
  • CPython 런타임 없이 소유권과 빌림 모델을 통해 메모리를 관리하며, GIL 없는 OS 스레드 지원과 C/C++ 통합 기능을 제공합니다.
  • Python 문법으로 독립 실행 파일과 네이티브 라이브러리를 만들려는 개발자를 위한 정적 타입 언어와 컴파일러
  • 타입을 지정한 코드를 C++로 변환한 뒤 컴파일하고, 생성된 프로그램은 CPython 런타임, 가비지 컬렉터, 자동 참조 카운팅 없이 실행
  • 소유권과 빌림 모델로 객체의 수명을 관리하고, 소유자보다 오래 살아남는 참조를 컴파일 단계에서 검사. Own[T]로 값의 소유권을 호출자나 컨테이너에 전달 가능
  • Python 리스트는 같은 객체의 참조를 담지만, TurboPython 리스트는 객체 자체를 보관함
    • 리스트에 넣은 뒤에도 원래 객체를 사용하면 복사본을 저장하고, 더 이상 사용하지 않으면 객체를 리스트로 이동
  • 함수 매개변수와 클래스 필드에 타입 명시가 필요하며, 지역 변수는 타입 추론 지원. 정수 리터럴은 기본적으로 int32이고, 오버플로 발생 시 오류로 실행 중단
  • GIL 없는 OS 스레드와 잠금, 원자적 연산, 채널 지원. async/await와 asyncio는 일부 기능 제공
  • 독립 실행 파일뿐 아니라 CPython 확장 모듈로 빌드 가능. 생성한 C++ 코드를 기존 프로젝트에 통합하거나 @native로 C/C++ 함수와 타입을 연결
  • 일반적인 Python 편집기와 린터를 활용할 수 있으며, 코딩 에이전트용으로 Python과의 차이, 소유권 규칙, 설치 버전의 API 문서를 프로젝트에 생성하는 기능 제공
  • NumPy, requests 같은 기존 CPython 패키지는 직접 import 불가. 표준 라이브러리 일부와 전용 tplib을 제공하며, 의존성은 TurboPython으로 작성하거나 포팅해야 함
  • Python 3.12 이상과 C++23 컴파일러 필요. Linux/macOS 지원, Windows는 WSL 권장. 컴파일러를 포함한 설치 옵션도 제공
  • 초기 개발 단계로 Python 호환성과 메모리 안전성 검사가 아직 부분적임. 지원 범위는 호환성 문서에서 확인 가능
  • Apache 2.0 + LLVM 예외 조항 적용
그냥 목록으로
원문 보기 ↗