GitHub Trending오픈소스 · 도구

aardappel/goose

힙 할당·가비지콜렉션 없는 메모리 안전 언어 Goose 공개

원제 aardappel/goose

스타 2,933당일 +157C++
Key Point

기존 저수준 언어의 성능·메모리 효율과 안전성 사이 트레이드오프를 없애는 새로운 메모리 모델이 주목할 만하다.

핵심 요약

  • C/Rust 문법과 유사하지만 힙이 없는 메모리 안전 시스템 프로그래밍 언어 Goose를 공개했다.
  • 모든 동적 값이 컴파일러가 관리하는 데이터 스택에 인라인으로 저장되고, 스코프 종료 시 메모리가 자동 해제된다.
  • 16개 벤치마크 기준 C++보다 3.3배, 최적화된 C++보다 1.16배, 안전한 Rust보다 1.12배 빠르며 메모리는 각각 1.9배, 1.3배, 1.2배 적게 사용한다.
  • 할당자·GC·참조 카운팅·소멸자가 없고, 동적 배열은 성장해도 기존 참조가 유효하게 유지된다.
  • 수명 주석 없이 컴파일러가 참조의 루트를 추론하고 수명 위반을 거부한다.
  • 문자열·배열·가변 크기 필드를 인라인으로 저장해 포인터 없이 연속된 메모리 블록을 만들며, 같은 레코드가 C++에선 160바이트 1할당에서 Goose는 29바이트 0할당이 된다.
  • 가변 크기 Enum은 최대 크기가 아닌 각 변형의 크기만큼 저장해 Rust보다 4배 작고 2배 빠르다.
  • 포인터보다 좁은 상대 참조(1~4바이트 오프셋)로 위치 독립적인 자료구조를 만들 수 있고, 저장·로드가 단순 읽쓰기로 된다.
  • 재귀 호출 전 스택 정리·풀 활용 등 제약이 있으며, 가변 크기 배열은 순회만 가능하고 인덱싱이 불가능하다.
  • C로 컴파일되고 C 함수 호출을 지원하며, 번들된 TinyCC 백엔드로 빌드 단계 없이 인프로세스 실행이 가능하다.
  • 공유 메모리 없는 스레드, 제네릭, 고차 함수, 함수값이 컴파일 타임 엔티티로 오버헤드 없이 처리된다.
  • Windows·macOS·Linux용 미리 빌드된 컴파일러를 릴리스 페이지에서 배포하며, VS Code 확장과 언어 서버를 제공한다.
  • 약 3만 줄의 C++ 컴파일러, 명세, 표준 라이브러리, 31개 샘플, CI 테스트 스위트를 포함하며 Apache 2.0 라이선스를 따른다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗