v0.2.10
Full Changelog: v0.2.9...v0.2.10
Vix Language v0.2.10 Release Notes
Release Date: 2026-06-06
New Features
Multi-object file linking support
- The compiler now supports linking multiple object files directly without recompilation.
- Usage:
vixc file1.o file2.o file3.o -o output - This enables separate compilation workflows where individual modules are compiled to
.ofiles first, then linked together. - Added new
vix_link_multi()API in the linker module to handle multiple input files. - Files:
src/main.c,src/compiler/Linker/Linker.h,src/compiler/Linker/Linker.cpp
Bug Fixes
Enum type definition now accepts leading |
- The parser now accepts an optional leading
|before the first variant in type alias enum definitions. - This allows writing enums in a more consistent style:
type T = | Int | Float | String | Bool | Unit - Previously, the first variant had to omit the
|, which was inconsistent with subsequent variants. - File:
src/parser/parser.y
Linker: removed hardcoded CRT object paths
- Fixed the ELF linker path discovery to check file existence before adding CRT objects (
crt1.o,crti.o,crtbegin.o,crtend.o,crtn.o) to the linker arguments. - Eliminated a redundant second call to
probeSysPathsduring ELF linking; the sysroot is now probed once and reused. - This fixes link failures on systems where the CRT objects are located in non-standard directories or where some objects are absent.
- File:
src/compiler/Linker/Linker.cpp
Validation
- Rebuilt
vixcsuccessfully. - Verified enum definitions with leading
|on the first variant now parse correctly. - Tested multi-object linking with
vixc a.o b.o -o prog.