GN⁺: Cosmopolitan v3.5.0 릴리즈
(github.com/jart)- C코드를 빌드하면 윈/맥/리눅스/BSD 등 어디서나 실행하게 만들어주는 라이브러리 및 툴체인
- 인터프리터/가상머신이 필요없음
- GCC 와 Clang을 재구성하여 POSIX Polyglot 포맷을 만들어서 각 OS에서 네이티브로 실행
3.5의 개선 사항
- 메모리 맵 구현: 더 높은 품질의 메모리 맵 구현체
- Lua 5.4.6 지원 (내부에 포함된 Redbean 웹서버가 사용)
- -x LANG 플래그 지원
- C++ STL을 재구현하는데 있어서 많은 진전
- ctl::string 최적화: 작은 문자열 최적화를 포함한 다양한 최적화를 진행함.
- ctl::set 및 ctl::map 도입: 새로운 자료 구조를 도입함.
- ctl::unique_ptr 구현: 고유 포인터 기능을 추가함.
- minimal new.h 제공: 최소한의 new.h 파일을 제공함.
- _Atomic 정의 수정: C++에서의
_Atomic
정의를 수정함. - 기타 최적화 및 버그 수정: 다양한 최적화와 버그 수정을 진행함.
GitHub 개발 프로세스 개선
- 라벨러 액션 추가: GitHub 라벨러 액션을 추가함.
- 이슈 템플릿 추가: 이슈 템플릿을 추가함.
- 테스트 라벨 제거: 라벨러 설정 파일에서 테스트 라벨을 제거함.
Hacker News 의견
- Python을 APE, pex, shiv, pyinstaller, pants 빌드 시스템과 결합해 단일 파일 파이썬 실행 파일을 만드는 도구 체인을 기대함.
- Graal Native와 결합하면 Clojure/Java 바이너리를 VM 없이 어디서나 실행 가능하게 할 수 있을 것 같음.
- 두 커밋을 확인했는데, 두 줄 모두 동일한 문자 수를 가짐. 이런 작업을 즐기지만 쉽지는 않음.
- 이 프로젝트가 멋지긴 하지만, 단일 바이너리로 빌드 프로세스를 단순화하는 것 외에 다른 이유가 있는지 궁금함. 성능, 정적 링크 가능성, 표준 준수 측면에서 musl과 glibc와 비교해 어떤지 알고 싶음.
- Cosmopolitan에 대해 항상 약간 두려움을 느낌. 멋진 해킹이지만, 작동하지 않을 것 같은 느낌이 듦.
- 저장소에는 lua와 다양한 기능을 갖춘 멋진 웹 서버인 redbean의 소스 코드도 포함되어 있음.
- 오래된 장치에서 cgo로 컴파일된 Go를 실행하려다 포기했음. Cosmopolitan-flavored cgo 바이너리를 성공적으로 빌드한 사람이 있는지 궁금함. Cosmopolitan libc가 Linux 2.6을 지원하므로 희망적임.
- 거의 4년 동안 이 프로젝트를 팔로우하고 있지만, Cosmopolitan/αpε가 얼마나 진지한 프로젝트인지 아직도 모르겠음.
- "실제로 휴대 가능한 실행 파일 헤더"를 읽는 것이 재미있음.
- Cosmopolitan libc를 APE 없이 배포할 계획이 있는지 궁금함. 현재는 프레임워크+도구 체인에 더 가까운 것 같음.