Zig 0.17.0 릴리스, 빌드 시스템 재작업과 x86_64 리눅스 증분 컴파일 지원
- Zig 0.17.0은 5개월 작업, 206명 기여자, 925개 커밋으로 구성된 릴리스이며 원래 예상보다 커졌음
- 빌드 시스템을 재작업해 Build Server Protocol을 도입했고, ELF 링커 개선으로 x86_64-linux에서 증분 컴파일이 모든 사용자에게 동작할 것으로 예상함
- 문법을 정식 명세화하고 퍼징을 붙였으며, C 번역 기능은 외부 패키지로 분리함
- 언어 변경으로 void{} 문법, errdefer 캡처, i0, 배열 곱셈 문법, internal과 link_once 전역 링키지를 제거했고 @divCeil과 @backingInt를 추가함. @hasDecl은 public 선언에만 true를 반환함
- 표준 라이브러리에 SafeAllocator를 도입하고 StackFallbackAllocator를 재작업했으며, ArrayList 포인터 안정성, debug.SafetyLock 공유 잠금, fmt.allocPrint의 mem.Allocator 이동, std.zon.parse 재작업이 들어감
Hacker News 의견들
Zig 프로젝트 요즘 어떻게 굴러가나? AI에 대해 강경하게 나갔던 걸로 기억하는데.
요즘 기준으로 한 달이면 될 일을 5개월이나 쓰는 것 같더라.
C++화되는 게 아쉬움. Zig가 자리잡길 바랐던 곳에 요즘은 C3나 Odin을 보고 있음.
잘 되고 있는 것 같은데. Tigerbeetle이랑 Ghostty 둘 다 Zig로 잘 돌아가고, 재단 자금도 괜찮아 보이고 릴리스도 계속 나오잖아.
나는 쓰면서 꽤 재밌게 쓰고 있음. 진짜 잘 돌아감.
LLVM 버전 올리는 게 큰 작업인 건 알겠는데 루프 벡터화가 아직도 꺼져 있는 건 좀 답답함.
그 수정을 LLVM 22로 백포트할 수 없었던 이유가 LLVM 라이브러리 ABI를 바꿔서임. LLVM 23으로 바로 건너뛰는 것도 배포판 패키지 관리자들 때문에 어려웠고.
걱정할 필요 없음. 23으로 올리는 짧은 릴리스 주기를 따로 돌리겠다고 했음.
Zig state of the tagged union 영상도 봐볼 만함. Andrew가 SQLite 결과에 자극받아서 LLM으로 버그 찾는 걸 받아들이기 시작했고, 버그 없는 소프트웨어로 가는 도구로 본다고 함.
아래 스레드에서 자기가 겪은 버그를 AI로 확인했다고 언급해서 이슈가 닫혔다는 사람도 있던데, 이제 와서 그거 다 다시 열어줄 건가?
Andrew는 참 특이한 사람임. Zig를 만들 만큼은 혁신적인데 LLM에 대해서는 그렇게 똑똑한 사람이 그렇게 멍청할 수 있나 싶음.
LLM 받아들이는 것도 전체 브랜치 커버리지랑 퍼징을 다 한 다음이라는 게 포인트임.
정기 후원하라고 하는데, 나중에 프로젝트 리더가 너나 네 회사 욕해도 놀라지는 마셈. 그래도 언어는 좋음.
반대 상황이 더 낫겠음? 돈을 충분히 내면 리더가 의견을 입 다물어주는 게?
리더가 개인적 성숙함을 훨씬 더 보여주기 전까지는 후원 안 할 듯.
AI 정책에 바뀐 건 없나?
타깃 지원은 볼 때마다 감탄함. 이 부분에서 C랑 경쟁할 수 있는 유일한 언어일지도 모르겠음. 다음 릴리스에서 기대하는 건 스택리스 코루틴 IO 구현이랑 퍼스트클래스 퍼저 툴링.