C3 언어, 0.7 버전 마무리 및 0.8 버전으로의 도약

by DD
1개월 전
조회수 20

C3 언어, 0.7 버전 종료 및 0.8 버전으로의 전환을 발표하며, 단순성과 제어에 집중

매트릭스 라이브러리 업데이트 및 다양한 기능 개선을 통해 언어의 일관성 강화

컴파일러 성능 향상 및 LLVM 22와의 호환성 확보 등 개발 환경 개선

커뮤니티 기여를 강조하며, 향후 부호 있는 크기(signed sizes)를 기본으로 하는 0.8 버전 출시 예고

C3 언어 0.7 버전의 주요 변경 사항

C3 언어 0.7 버전은 constdef 추론(constdef inference), @weak 속성 개선, 그리고 빈 enum 금지 등 언어의 핵심적인 측면을 다듬는 데 집중했다. 특히, constdef를 사용한 마스크 정의 시 표현식 추론 오류를 해결하여 개발 편의성을 높였다. 또한, 컴파일러는 $$builtin 함수의 직접 사용에 대한 경고를 추가하여 표준 라이브러리 사용을 권장한다.

업데이트된 매트릭스 라이브러리

이번 릴리스의 핵심은 매트릭스 라이브러리(Matrix Library)의 업데이트이다. 새로운 매트릭스 타입은 열 우선(column major) 방식을 채택하여 그래픽스 및 수학 라이브러리와의 호환성을 높였다. 또한, 쿼터니언(Quat), Mat2, Mat3, Mat4, Vec2, Vec3, Vec4, Rect 등의 별칭(aliases)을 추가하여 개발자가 더욱 직관적으로 사용할 수 있도록 개선했다.

표준 라이브러리 및 도구 개선

표준 라이브러리(Standard Library)는 JSON 직렬화(JSON Serialization) 지원, GZIP 압축/해제 기능, AES 암호화 Zip 파일 지원 등 다양한 기능을 추가했다. 또한, std::mem::allocator를 std::core::mem::allocators로 분리하여 메모리 할당 방식을 개선했다. 도구 측면에서는 LLVM 22와의 호환성을 확보하고, Android SDK 자동 다운로드 기능을 추가하여 개발 환경을 개선했다.

향후 0.8 버전의 주요 변화

0.8 버전에서는 부호 있는 크기(signed sizes)를 기본으로 사용하는 'Szmageddon'으로 명명된 대대적인 변화가 예고되었다. 이는 타입 프로모션 규칙 및 리터럴 타입에도 영향을 미칠 것으로 예상된다. 또한, 기존에 deprecated된 기능 제거를 통해 언어의 일관성을 더욱 강화할 예정이다. 이러한 변화는 C3 언어의 미래를 위한 중요한 단계가 될 것이다.

C3 closes out its 0.7 era — focusing on simplicity and control before 0.8