Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

2025-12-08: Fuzion December Update

This month marked a period of stability for the Fuzion language itself. Most changes were done to the compiler internals, the standard library, and the tooling around Fuzion.

  • General
    • Upgrade to Java 25 (#6191)

  • Base library
    • New library features

      • lib: add String.from, creating String from variable data (#6188)

      • lib: add io.Read_Handler.from allowing to create a Read_Handler fro… (#6189)

      • lib: add io.slurp (#6219)

      • base: add feature idx for index accesses (#6244)

      • net: implement basic IP address parsing (#6314)

      • lib: add index [] (v String) to envir.vars (#6249)

      • lib: date_time, add feature to calc unix_time_stamp (#6239)

    • Changed library features

      • lib: use infix : for list creation (#6196)

      • lib: encodings, add html encoding (#6197)

      • lib: cleanup API according to #6198 (#6202)

      • print_effect: add check for error (#6212)

      • map_of: change arg type from array to Sequence (#6224)

      • lib: bench, change API (#6230)

      • lib: change features splitting Strings to return array backed Sequence (#6215)

      • lib: Blocking_Queue cleanup (#6302)

      • lib: circular buffer, simplifcations, contracts (#6306)

      • mod: buffered_writer, change write result, add write_detailed (#6305)

      • base: add effect annotations to public features (#6294)

      • bool: do not wrap bool in lazy (#6320)

      • abstract_array redefine first/last/is_empty (#6321)

      • base: update example (#6332)

      • lib: use [] instead of list.empty (#6313)

      • net: return a net.ip_address from net.channel.get_peer_address (#6310)

      • lib: Iterator, rename has_next as next (#6298)

      • lib: as_array, avoid iterating twice (#6286)

      • lib: fix deadlock in concur.Channel (#6261)

  • Modules
    • http: add common reason phrases and response_message convenience cons… (#6190)

    • nom: add comment json parser (#6208)

    • modules/nom: implement access feature in json_value (#6210)

    • nom: add xml parser (#6214)

    • ctrie: add qualifiers to pre/post conditions (#6220)

    • web: default user agent, via web.Config effect (#6228)

    • web, module: fix "Call has ambiguous result" (#6252)

    • lock_free, Map: switch to array from list as backing for list_node (#6300)

    • mod: add module webserver (#6308)

  • Documentation
    • add hierarchy of faults diagram (#6319)

  • Front end
    • fe: specify default modules (#6156)

    • ast: fix NPE in Function.updateTarget (#6209)

    • fe: don't add main.fum to source file path (#6253)

    • ast: merge visitations (#6254)

    • ast: remove Nop (#6257)

    • fe: map resolved effect types (#6295)

  • Monomorphization/DFA
    • dfa: mark calls as hot again if a result changes that they depend on (#6245)

    • dfa: set TRACE_ALL_EFFECT_ENVS to true (#6275)

    • dfa: minor cleanups (#6281)

  • FUIR
    • fuir: cleanup precondition (#6264)

    • fuir: GeneratingFuir, pass FeatureLookup instead of FrontEnd (#6260)

  • JVM back end
    • be/jvm: remove duplicate ensure_not_frozen (#6152)

    • be/jvm: add check for no implicit padding (#6218)

    • be/jvm: automate generation of jvm dependency list (#4423)

  • C back end
    • be/c: declare current only if hasData=true (#6263)

    • be/c: raise identifier length (#6324)

  • native features
    • convert intrisics to natives (#6268)

    • native features: switch from array to mutate.array (#6296)

    • fzE_thread_join, assert success, add NYI to return error code (#6299)

  • Fuzion tools
    • tools: add -gdb, easily start gdb for c code (#6285)

    • Metrics add some dfa metrics (#6323)

    • metrics: add some basic fum-file metrics (#6331)

  • Build
    • Makefile: fix a few dependency definitions (#6194)

    • Makefile: reorder include mod_java.mk after all target (#6204)

    • Makefile: _simple_example, FUZION_BASE, order only dependency (#6203)

    • Makefile: order only dependency MOD_TERMINAL for (check|record)_simple_example (#6206)

    • makefile: refinements, should prevent copying fz when changing module (#6279)

  • Windows
    • win, action: install libsodium (#6233)

    • win: fix fzE_file_flush (#6234)

    • win: fix isnan and run tests (wolfssl) (#6278)

    • fix classpath for windows (#6318)

    • Makefile: change workaround for msys2 (#6227)

  • Tests
    • skip test lib_concur_Channel, failing frequently due to #5722 (#6187)

    • tests: #3178, reduce running time (#6223)

    • restore windows tests (#6231)

    • check simple example, remove seemingly unneeded replacements (#6232)

    • actions: move docs, lsp, syntaxcheck, shellcheck to own action (#6242)

    • tests: mutable hash map, change test sizes (#6247)

    • tests: update wolfssl (#6271)

    • post test results to influxdb (#6241)

    • tests: add _backend_ fuir (#6250)

    • run make jobs in parallel in GitHub actions (#6240)

    • add jenkins fail mails (#6274)

    • tests: skip channel test (#6280)

    • try enable test native_value again (#6312)

    • remove skip file mod_wolfssl (#6325)

    • run_tests: add metric total_time (#6327)

    • skip test lock_free_stack due to bug (#6288)

    • tests: remove distinction run_tests vs run_test_parallel (#6256)

Cheers,

--The Fuzion Team.

last changed: 2025-12-17
next: 2025-11-13: Fuzion November Update