Changes / improvements
- Hash variables may now take a designated initializer.
- Added
@safemacro
to override the@
requirement for non-function-like macros. - More information available with debug log in non debug builds.
- Removed install_win_reqs.bat which didn’t work well.
- Support
**
to mean./**
- MacOS init/finalizer now respects priority.
- Bitstructs supports
!=
and==
. - Support Windows
.def
files using--windef
. - Bitstructs now fold compile time constant bit ops.
- Fix issue where in some cases a constant global with a string wasn’t folded (e.g. in asm stmts)
- Lateral implicit imports removed.
- Default to ‘.’ if no libdir is specified.
- Improved error messages for
--lib
. - Added
--linker
to set the linker #1067.
Fixes
- Fixes to macro context evaluation with macro varargs.
- Dynamic methods registered before init functions on MacOS.
- Fixed clobber on x86
cpuid
instruction. - Removed invalid syntax from grammar.y.
output
project setting now respected.- Aliased declarations caused errors when used in initializers.
- Aliased consts used as constant initializers caused errors.
- Exported module names replace
::
by_
. - Const ternary would evaluate incorrectly for ?:
$$MODULE
would report the incorrect module name in macros.- Fixed debug info for globals and for/switch scopes.
out
now correctly detects subscript use.- Ambiguous recursive imports are now correctly detected.
- Overzealous local escape check corrected #1127.
- Fixes to the matrix functions #1130.
Stdlib changes
- Deprecated
Allocator
helper functions. - Added
mem::allocator
functions corresponding to removed allocator functions. - Changed
mem::new
/mem::temp_new
to accept an optional initializer, and will clear by default. - Mem
_clear
and_zero
variants deprecated. “new_*” functions will clear by default. - Mem “alloc_" functions replace old "new_” behaviour.
- Fixed temp memory issue with formatter.
- Added temp_push and temp_pop for pushing / popping the temp allocator manually (or from C).
- Added byte_size to
List
- Added
GenericList
.
0.5 has feature stability guarantees, so any code written for 0.5.0 - 0.5.3 will work on 0.5.4.