Releases
v0.7.2
Changelist
Changes / improvements
Better default assert messages when no message is specified #2122
Add --run-dir
, to specify directory for running executable using compile-run
and run
#2121 .
Add run-dir
to project.json.
Add quiet
to project.json.
Deprecate uXX and iXX bit suffixes.
Add experimental LL / ULL suffixes for int128 and uint128 literals.
Allow the right hand side of |||
and &&&
be runtime values.
Added @rnd()
compile time random function (using the $$rnd()
builtin). #2078
Add math::@ceil()
compile time ceil function. #2134
Improve error message when using keywords as functions/macros/variables #2133 .
Deprecate MyEnum.elements
.
Deprecate SomeFn.params
.
Improve error message when encountering recursively defined structs. #2146
Limit vector max size, default is 4096 bits, but may be increased using --max-vector-size.
Allow the use of has_tagof
on builtin types.
@jump
now included in --list-attributes
#2155 .
Add $$matrix_mul
and $$matrix_transpose
builtins.
Add d
as floating point suffix for double
types.
Deprecate f32
, f64
and f128
suffixes.
Allow recursive generic modules.
Add deprecation for @param foo "abc"
.
Add --header-output
and header-output
options for controlling header output folder.
Generic faults is disallowed.
Fixes
Assert triggered when casting from int[2]
to uint[2]
#2115
Assert when a macro with compile time value is discarded, e.g. foo();
where foo()
returns an untyped list. #2117
Fix stringify for compound initializers #2120 .
Fix No index OOB check for [:^n]
#2123 .
Fix regression in Time diff due to operator overloading #2124 .
attrdef with any invalid name causes compiler assert #2128 .
Correctly error on @attrdef Foo = ;
.
Contract on trying to use Object without initializing it.
Variable aliases of aliases would not resolve correctly. #2131
Variable aliases could not be assigned to.
Some folding was missing in binary op compile time resolution #2135 .
Defining an enum like ABC = { 1 2 }
was accidentally allowed.
Using a non-const as the end range for a bitstruct would trigger an assert.
Incorrect parsing of ad hoc generic types, like Foo{int}****
#2140 .
$define did not correctly handle generic types #2140 .
Incorrect parsing of call attributes #2144 .
Error when using named argument on trailing macro body expansion #2139 .
Designated const initializers with {}
would overwrite the parent field.
Empty default case in @jump switch does not fallthrough #2147 .
&&&
was accidentally available as a valid prefix operator.
Missing error on default values for body with default arguments #2148 .
--path
does not interact correctly with relative path arguments #2149 .
Add missing @noreturn
to os::exit
.
Implicit casting from struct to interface failure for inheriting interfaces #2151 .
Distinct types could not be used with tagof #2152 .
$$sat_mul
was missing.
for
with incorrect var
declaration caused crash #2154 .
Check pointer/slice/etc on [out]
and &
params. #2156 .
Compiler didn't check foreach over flexible array member, and folding a flexible array member was allowed #2164 .
Too strict project view #2163 .
Bug using #foo
arguments with $defined
#2173
Incorrect ensure on String.split.
Removed the naive check for compile time modification, which fixes #1997 but regresses in detection.
Stdlib changes
Added String.quick_ztr
and String.is_zstr
std::ascii moved into std::core::ascii. Old _m variants are deprecated, as is uint methods.
Add String.tokenize_all
to replace the now deprecated String.splitter
Add String.count
to count the number of instances of a string.
Add String.replace
and String.treplace
to replace substrings within a string.
Add Duration * Int
and Clock - Clock
overload.
Add DateTime + Duration
overloads.
Add Maybe.equals
and respective ==
operator when the inner type is equatable.
Add inherit_stdio
option to SubProcessOptions
to inherit parent's stdin, stdout, and stderr instead of creating pipes. #2012
Remove superfluous cleanup
parameter in os::exit
and os::fastexit
.
Add extern fn ioctl(CInt fd, ulong request, ...)
binding to libc;
You canβt perform that action at this time.