Releases
v0.6.1
Compare
Sorry, something went wrong.
No results found
Changes / improvements
Addition of $append and $concat functions.
Added $$str_hash, $$str_upper, $$str_lower, $$str_find builtins.
Improved error notes when call expressions have errors.
Trailing body arguments may now be &ref, #hash, $const and $Type arguments.
"panic-msg" setting to suppress panic message output.
Require @export functions to have @export types.
Disallow leading/trailing/duplicate '_' in module names.
Updated mangling.
Added $$unaligned_load and $$unaligned_store.
--no-headers option to suppress creating headers when generating a library.
Support c-file compilation in libraries.
Allow using $defined(&a[1]) to check if the operation is supported.
Max number of members in a struct is limited to 65535.
The maximum number of parameters in a call is now 255, up from 127.
Array comparison now uses built-in memcmp on LLVM to enable optimizations.
Prevent implicit array casts to pointers with higher alignment #1237 .
Macro $case statements now pick the first match and does not evaluate the rest.
manifest.json is now checked for incorrect keys.
Added --list-manifest-properties to list the available properties in manifest.json.
Indexing into a constant array / struct now works at compile time.
Improved error message when trying user foreach with an untyped list.
Fixes
Error with unsigned compare in @ensure when early returning 0 #1207 .
Prevent Mach-O from removing @init and @dynamic in a more reliable way #1200 .
Fix of missing copy of parameterized custom attributes.
Fixed crash on certain recursive function definitions #1209 .
Return the typekind "FUNC" for a function pointer.
No longer possible to dereference a function pointer.
Fix bug with @jump miscompile.
Bit negate does implicit integer promotion.
Bitstructs, unions and flexible arrays now correctly emitted in headers.
Fix distinct inline conversions.
Bit negating const zero flags would give an incorrect result.
Fix to scalar -> vector conversions.
Bug fix for rethrow + defer catch.
Wrong size for structs containing overaligned structs #1219
$typeof(*x) should be valid when x is an [out] parameter #1226
Fix ABI lowering for 128 bit vectors on Linux.
Bad error message when using a generic method without generic parameters #1228
Private function called from nested macro not visible to linker #1232
Bitstructs in structs would not be correctly be handled in some cases.
Fix problem where a $$FUNC would return "" when evaluated for a static in a function #1236 .
ordinal is no longer a valid associated value name for enums.
Constants defined by indexing into another constant could fail codegen.
Stdlib nolibc code bugs fixed.
Regression: duplicate symbols with static variable declared in macro #1248 .
Unsplat with named parameters was accidentally disallowed.
Reference parameter doesn't work with vector subscript #1250 .
The msvc_sdk script failed to work properly on windows when run in folders with spaces.
Stdlib changes
Added remove_first_item remove_last_item and remove_item as aliases for the match functions.
Added @str_hash, @str_upper, @str_lower, @str_find compile time macros.
Remove "panic" text from unreachable() when safe mode is turned off.
Added @unaligned_store and @unaligned_load.
Null ZString, DString or pointer prints "(null)" for printf.
Updated sorting API.
Insertion sort and counting sort added.
Added missing mem and mem::allocator functions for aligned allocations.
Added new_init_with_array and temp_init_with_array for List.
Fixed posix NativeMutex.lock_timeout.
Fixed env::ARCH_32_BIT and env::ARCH_64_BIT.
Added time::us.
You canβt perform that action at this time.