Releases
v0.9.0
Compare
Sorry, something went wrong.
No results found
New Features
package system
Improved PDB support with code inspection
typeid type (also a keyword)
type is not a keyword any more
opaque type
Parameteric polymorphic union type:
union(T: typeid, N: int) {int, T, [N]T}
bit_set type:
bit_set[Some_Enum];
bit_set['A' .. 'Z'];
bit_set[0..8; u16];
cstring type (useful for interfacing with C libraries)
in binary operator for map and bit_set types:
Parametric polymorphic signature changes with polymorphic names:
new :: proc($T: typeid) -> ^T {}
make_int_array :: proc($N: int) -> [N]int {}
foo :: proc($N: $I, $T: typeid) {}
auto_cast unary operator
Explicit inline and no_inline on procedure calls
deprecated attributes
Built-in procedures:
#defined
#assert compile time assert
expand_to_tuple for (fixed length) arrays
typeid_of
"intrinsics" package:
Diverging procedures proc() -> ! (no return)
using Foo :: enum {A, B, C}; f := A;
Foo :: enum {A, B, C}; len(Foo)
New context features:
temp_allocator
logger (Still in development)
Assigning directly to context parameters creates a new context
(context is scope based)
New compiler flags:
-lld (use LLD as the linker on Windows)
Improved minimum dependency building
foreign import x {"foo.lib", "bar.lib"}
Removed Features
using in
Old import system (replaced with the package system)
You can’t perform that action at this time.