2026-08-07: Fuzion August Update
We have started preparing a first release of the feeze scheduler tracer and setting up feeze.dev as a project website. We are happy to receive your feedback!
- General
-
Important changes to the Fuzion team:
-
Simon von Hackewitz has successfully finished his training as Fachinformatiker Anwendungsentwicklung in June and has joined our team as a full developer in July.
-
Artur Dmitriienko started an internship on first of August with the goal to become our new trainee Fachinformatiker Anwendungsentwicklung from September.
-
-
- Fuzion language
-
Anonymous inner features like
_ : a is ...may no longer inherit from several features as in_ : a, b is ...: add error for anonymous feature with multiple inheritance calls (#7378)
-
- Base library
-
New library features
add mutable dynamic arrays, that can grow/shrink (#7249)
Add POSIX clocks and use them for timeouts in
blocking_mutate.wait(#7376)-
add
short_circuiteffect to allow early return with result (#7326)To use this, you can now write, e.g., as follows
say <| flow.short_circuit (option i32) .run ()-> (1..100).for_each i-> if i=42 (flow.short_circuit (option i32)).env.return i nil -
add
Unbuffered Channelfor channels that do not buffer data (#7266)This is used to implement go-style channels created via
ch := concur.channel TYPEwith blocking operations to sendch<-valand receive<-chdata. -
Map.as_mutable_mapadd default implementation (#7297) -
os: add basic support for creating pipes (#7156)
-
add effect
native_accessto denote access of native code (#7397)
-
Changed library features
-
Add precondition to
concur.blocking_mutate.wakeup_next_in_waiting_list(#7352) -
allow repeated calls of
os.process.waitwhile process is running (#7334) -
better error for failing
switch.or_panic(#7406) -
call
finallyfor default effects instated at big bang. (#7330) -
enhancements to
file.meta_data(#7283) -
fix effect annotation in
Unbuffered_Channel(#7351) -
fix
NullPointerExceptionduring error output (#7407) -
make
Mutable_Hash_Mapthread-safe (#7294) -
fix naming convention issues (#7332)
-
move
has_intervaltoproperty.interval(#7336) -
move
pathtoio.path(#7388) -
move
send_signalto Process effect (#7396) -
Mutable_Hash_Mapusenum.fractioninstead off32(#7302) -
rename
effasflow(#7335) -
rename
time.duration.timestotime.duration.scale(#7409) -
synchronize read access to
concur.Thread.park_condition, fix #7320 (#7350) -
threadseffect, default_value, do not include self in running/child threads (#7331) -
use function to initialize mutable array instead of single value (#7399)
-
fix occasional “process not in set of running processes” (#7377)
-
time/frequency: fix case of infinite period multiplied by zero (#7445)
-
time/period: for
infix *document behavior for casen = 0using a post condition (#7446) -
change effects to ref-effect removing the handler
-
convert delete effect to ref-effect removing Handler (#7371)
-
convert
envir.argsto ref-effect (#7362) -
convert move effect to ref-style removing Handler (#7370)
-
convert stat effect to ref-effect, removing Handler (#7372)
-
change
nanoto ref-effect removingNano_Time_Handler(#7359) -
change
writerto ref effectWriterremoving Handler (#7355) -
convert random effect to ref-effect, removing Handler (#7361)
-
convert Seek effect to ref-style, removing
_Handler(#7393) -
convert
Unique_Idandenv.Varseffects to not use Handlers (#7347) -
make
exita ref-effect (#7365) -
make
processa ref-effect, remove handler (#7366) -
update
Threadseffect to ref-style, removing_Handler(#7389) -
update
dir.maketo ref-effect style, removing Handler (#7373) -
remove some more
envshort-hands (#7276)
-
-
-
Removed library features
-
- Other library modules
-
realtime module
-
tokiwa module
-
web module
-
- Parser
- Front end
-
rename,
isRelayTypeInCotypeasisRelayType(#7316) -
resolve NYI comment hinting on a potential performance problem (#7319)
-
change λ.call visi to public (#7140)
-
cleanup call result type determination (#7275)
-
consider type features as well for partially applicable features (#7308)
-
fix check-condition logic in
Call.cotypeInheritanceCall(#7281) -
fix resolving type call where targets are QualThisTypes (#7455)
-
fix this-type not properly adjusted to cotype-target (#7263)
-
fix type pars not handed down via targets of inheritance calls (#7398)
-
flag error when user code call
<effect>.type.default_value(#7375) -
Loop, mark successBlock/elseBlock as
final(#7342) -
remove restriction constraint must not be choice (#7395)
-
simplify code in
isAssignableFroma bit (#7422) -
replace
GenericTypebyParametricType(#7309)
- Middle end
- Backends
-
JVM backend
-
be/jvm: callNative, store result of arguments expressions in locals (#7413)
-
-
- Tests
- Benchmarks
-
Modified Jitter so that testing threads send raw data back to the main thread. (#7125)
-
- Build Infrastructure
- Documentation
- Fuzion Webserver
- Feeze
-
rec: cleanup stdout output (#73)
-
rec: do not attempt to load
libfuzion_rt.soif it does not exist (#75) -
Documentation
-
GUI
-
bin: check dependencies when starting feeze GUI: OpenJDK >= 25, libgc. (#21, #23, #71)
-
add desktop file and icon (#26)
-
add UI scale to feeze script (#72)
-
cleanup rename Java package
dev.flang.feezeasdev.feeze(#83) -
Enable desktop start of feeze (#79)
-
support changed recorder output:
readyinstead ofWaiting for commands(#76)
-
-
Build process and GitHub Actions
-
add build scripts for ubuntu 24, 26 and latest and release script for ubuntu 24 (#30, #31, #32, #33, #35, #36, #37, #38, #40, #41, #42, #43, #44, #45, #46, #47, #48, #49, #50, #51, #52, #53, #54, #55, #56, #57, #58, #64, #65, #66, #67, #68, #69, #70)
-
make: add
releaseas make target to build release (#22) -
make: Add makefile rules to download Fuzion release to use for build (#24)
-
make: use Fuzion rel 0.098 (#28)
-
make: fix typo in error message (#34)
-
make: use /usr/sbin/bpftool (#39)
-
-
First version of feeze website (#59, #60, #61, #62, #80, #81, #82, #84, #86, #87)
Cheers,
--The Fuzion Team.