Releases
v0.6.5
0.6.5 Change list
Changes / improvements
Allow splat in initializers.
Init command will now add test-sources
to project.json
#1520
a++
may be discarded if a
is optional and ++/-- works for overloaded operators.
Improve support for Windows cross compilation on targets with case sensitive file systems.
Add "sources" support to library manifest.json
, defaults to root folder if unspecified.
Add char_at method in DString and operators [], len, []= and &[].
Add -q
option, make --run-once
implicitly -q
.
Add -v
, -vv
and -vvv
options for increasing verbosity, replacing debug-log and debug-stats options.
Fixes
Fix bug where a > 0 ? f() : g()
could cause a compiler crash if both returned void!
.
@builtin
was not respected for generic modules #1617 .
Fix issue writing a single byte in the WriteBuffer
A distinct inline pointer type can now participate in pointer arithmetics.
Support &a[0] returning the distinct type when applying it to a distinct of a pointer.
Fix error when calling HashMap.remove
on uninitialized HashMap
.
Fix issue with resolved try-unwrap in defer.
Fix issue with overloaded subscript and ++/-- and assign ops (e.g. *=
)
Fix issue with properties in different targets not being respected #1633 .
Indexing an Optional slice would crash in codegen #1636 .
SimpleHeapAllocator bug when splitting blocks allowed memory overrun.
Not possible to alias or take reference for extension methods on non-user defined types. #1637
Prevent methods from using names of properties or fields. #1638
b64 / hex data strings can now be used with ` as well.
Contracts on generic modules would evaluate too late, sometimes not catching the error until it already occurred elsewhere.
Fix bug preventing optionals from being used in ranges or as indices.
Crash compiling for arm64 when returning 16 byte and smaller structs by value not a power of 2 #1649 .
Enforce single module compilation for static libraries to make constructors run properly.
Crash when using --no-obj without compile-only. #1653
Do not produce expression locations for windows.
Issue where multiple methods were accepted for the same type.
Issue where a method was linked to a type alias instead of the underlying type.
Fix Fnv1a encoding.
Fix issue with accessing arrays in access-overloaded types, e.g. list[1][2]
#1665 .
Cast removing arbitrary array indices and converting them to pointers should always be fine #1664
Incorrect "no-libc" definition of cos
, making it unavailable for wasm.
Fix issue with the adjoint and inverse calculations for Matrix2x2
.
It was possible to create 0 length arrays using byte literals. #1678
Crash when a constant null typeid is checked for properties. #1679
Stdlib changes
Add io::MultiReader
, io::MultiWriter
, and io::TeeReader
structs.
Updated Base32 API.
Add file::save
.
Add memcpy
/ memset
/ memcmp
to nolibc.
Add sort::quickselect
to find the k-th smallest element in an unordered list.
Add sort::is_sorted
to determine if a list is sorted.
You can’t perform that action at this time.