Releases
v0.7.2
Compare
Sorry, something went wrong.
No results found
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.