A belated announcement here:
Changes / improvements
- Disallow multiple
_
in a row in digits, e.g.1__000
. - Added
@link
attribute. - New ‘linker’ build option.
- “linker” project setting updated, “system-linker” removed.
Fixes
- Struct/union members now correctly rejects members without storage size #1147.
math::pow
will now correctly promote integer arguments.- Pointer difference would fail where alignment != size (structs etc) #1150
- Fixed array calculation for npot2 vectors.
$memcpy_inline
and$memset_inline
fixed..$Type = ...
and.$foo = ...
now works #1156.int.min
incorrect behaviour #1154.- Bitstruct cast to other bitstruct by way of underlying type would fail #1159.
- Bug in
time.add_seconds
#1162. - Remove initial ‘./’ in Win32 paths when running a binary.
- ‘output’ directory for projects was incorrect in templates.
- Regression: no stacktrace.
- For MacOS, running with higher optimization would crash as initializers were removed.
compile-run
andrun
now returns the proper return code.- Allow String constants → ichar*, and allow integer pointers to explicitly convert between unsigned signed.
- Bug in unaligned return value lowering for Aarch64.
Stdlib changes
- Added
new_aligned
andalloc_aligned
functions to prevent accidental under-alignment when allocating simd. - Fixes to realloc of aligned allocations
- Use native Windows calls on aligned allocations on Windows.
- mem::copy_inline, mem::clear_inline and mem::set_inline added.
- mem::copy / clear / set no longer has an
$inline
attribute. - Native aligned libc malloc on Windows & POSIX.
- Simplification of the allocator interface.
- CoreFoundation only linked on MacOS when used.
0.5 has feature stability guarantees, so code written for 0.5.0-0.5.4 will work with 0.5.5.