2022-08-16: Fuzion August Update
Hi,
Here is this month's update:
- Fuzion language
- added syntax sugar for tuple types like
(i32, list bool)
. - allowed types to be put in parentheses, i.e.,
(stack i32)
is the same asstack i32
. Syntax of.env
and.type
will require parentheses, i.e., instead ofstack i32 .type
one will have to write(stack i32).type
and similarly for.env
. - changed parser to allow actual arguments passed to type parameters to be any type, including function types
(i32)->bool
or tuples(i32, string)
. - removed support for lambdas using
fun
keyword, i.e., instead offun (x i32) -> x+x
, you have to writex -> x+x
. Type inference from a lambda is not possible, though. - features with empty argument list and a result type that is put in parentheses (usually a tuple) now require an empty argument list
()
since the result type would otherwise be parsed as an argument list.
- added syntax sugar for tuple types like
- Intermediate Representation
- Added abstract interpreter framework and application-wide data-flow analysis
- C backend
- can optionally use Boehm garbage collector now, enabled via
-useGC
option for thefz
command - Uses whole-program data-flow analysis to remove unreachable features, resulting in a significant reduction in code size and compile time
- can optionally use Boehm garbage collector now, enabled via
- benchmarks
- added a variety of "standard" benchmarks to be run nightly (not deployed to fuzion-lang.dev website yet)
- fuzion-lang.dev
- porting of webserver from Java to Fuzion has started. Performance still too poor to deploy, though.
- language sever
- shows used effects of main feature(s) in inlay hint:
- shows used effects of main feature(s) in inlay hint:
- fzjava
- fixed passing of arrays of references when calling Java code from Fuzion features.
- base library
- started adding support for file I/O.
asString
on mutable value now calls asString on the value.mapOf
now accepts an array of tuples as follows:
myMap := mapOf [ ("one", 1), ("two", 2), ("three", 3) ]
Cheers,
--Fridtjof.