2025-06-17: Fuzion June Update
A small example calling the GTK toolkit from Fuzion shows nice our progress on the foreign function interface. An important change to the Fuzion language is support for right associative operators.
- General
-
The GreenCode project is gaining speed after the German consortium started off in October more and more countries are getting their funding and participation settled.
Fuzion will be used to perform resource monitoring and control at the level of the programming language using support in compiler, static analysis and runtime system.
Fuzion release 0.093 (#5236), development phase started for rel 0.094 (#5246)
-
- Fuzion language
Support for right-associative operators (#5300)
Instead of
say <| ("Hello, "+ <| "World!")
you can now write
say <| "Hello, "+ <| "World!"
parser: require base prefix to be repeated after dot in float literals (#5267)
Non-decimal float literals with fractional parts now have to be written like
.0xFFF.0xFF
, i.e., repeating the0x
prefix to disambiguate the fractional part from a dot-call like0xFFF.as_string
.
- Base library
-
New library features
add
concur.Channel
for inter-thread communication (#5273)add
fzE_destroy_jvm
, turn fuzion.java into effect (#5218)Add
Sequence.infix *
to create new Sequence by repeatingn
times (#5241)add features to get random number from full range of numeric types
i32
,u32
,i64
andu64
(#5193)add module wolfssl (#5270)
add
Sequence.group_by
variants to group elements using a mutable map or using hashable keys (#5229)add
uuid
(#5200)add
String.as_c_string
(#5284)
-
Changed library features
-
made
infix :
inlist.fz
as right-associative (#5307)This permits creating lists like
1 : 2 : 3 : nil
without parentheses make
Sequence.peek
lazy (#5242)on cleanup error trigger runtime fault (#5210)
runtime.fault
, add comment to handler args (#5211)change
net.client
into a type feature (#5212)lib/be: changed thread type from
i64
intoThread ref
(#5222)
-
-
Removed library features
lib: inn
net.connection
, removeis_active
(#5213)
-
- Parser
parser: cleanup: Remove
mayUseCommas
argument for rules likeexpr
(#5257)Improved parsing of do call after an operator: If there is no white space before the operator as in
even_integers := 1.. .filter %%2
the operator is parsed as a postfix operator, while with white space before the operator as in
check (even_integers ∀ .is_even)
the operator is parsed as an infix operator (#5258 which solved all but last sentence of #5252).
- Front end
add error when calling
effect.finally
from user code (#5215)enhance error message in case a lambda stars with infix operator without a space as in `x->!x` instead of `(x -> !x)` (#5220)
fix #5259 by partial application in
NumLiteral.propagateExpectedType
(#5275)fix #5263 by creating an error message that explains partial application (#5280)
Improve error for lambda or partial assigned to non-function, fix #5243 (#5253)
Match, fix compiler crash due to conflict in replacing subject field (#5205)
for debug output, omit showing generics for this type in toString (#5247)
AbstractType, fix NPE in applyTypePars (#5189)
fix compiler crash when compiling code like
x ()->bool => *2
, i.e., a prefix call is used partially but arg count is not 1, fix #5268 (#5269)
- middle end
raise error at compile time (instead of run-time) on unmet type constraint in precondition (#5303)
- C back end
add
assert
for checking that size of value types are equal (#5274)
- Windows
- LSP
- Examples
add GTK example (#5256)
- Tests
Cheers,
--The Fuzion Team.