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

2026-01-19: Fuzion January Update

Most of us took some time off in between the years, so only limited progress to report after a well deserved holiday!

  • General
    • Advent-of-Code in Fuzion solutions showed a much more stable base library and Fuzion implementation. Only 5 issues where found and these are usability and performance improvements only.

      Unfortunately, there will be no Fuzion talk at FOSDEM this year. But parts of the the Fuzion team will be around anyway, so let us know if you want to meet!

  • Fuzion language
    • changed anonymous feature syntax to use _ : instead of ref : (#6402)

      Now, an anonymous feature that extends a feature F is defined using _ : F is .... Here is an example that defines an anonymous feature that inherits form String that contains all printable ASCII characters:

          say (_ : String is
                 public redef utf8 Sequence u8 => u8 32 .. 127
              )
              
  • Base library
    • New library features

      • added stack.as_sequence (#6410)

      • added String.join_lines (#6417)

      • implemented trit.as_string (#6392)

    • Changed library features

      • re-implemented numeric.from_u32 to be in O(log n) instead of O(n) (#6344)

      • simplified implementation of String.infix * (#6374)

      • changed io.Read_Handler.read to return array backed Sequence instead of array (#6339)

      • improved performance of Sequence.find (#6376)

      • improved performance of Sequence.concat (#6375)

      • moved stack to own file (#6408)

      • String: temporarily drop precondition is_array_backed in split_at_byte (#6382)

  • Documentation
    • update adoptium usage and recommendation (#6378)

  • Front end
    • freeze empty lists to detect accidental changes of these lists(#6431)

    • show error on duplicate file (case-insensitive) (#6439)

  • DFA
    • NumericValue, simplify joinInstances (#6316)

    • remove old debug code (#6419)

    • use clazzIsUnitType instead of c_unit (#6356)

  • FUIR
    • remove special clazzes c_fuzion and c_java (#6350)

    • remove unneeded special clazzes true_ and false_ (#6351)

    • simplify some logic, add comment (#6371)

  • Back ends
    • C: use clazzIsUnitType instead of c_unit (#6355, #6353, #6354)

    • C: fix cInclude logic, remove dead code (#6364)

    • C: fixed synchronization for atomic bool (#6365)

  • Language Server
    • add completion test (#6432)

    • fix SourceText.uriOf to work with modules (#6415)

    • fix NPE and UnsupportedOperationException (#6429)

    • test, extend test with hover functionality (#6416)

  • MacOS, Windows
    • fix macOS/win failure (#6438)

  • Tests
    • lsp, add checks for reading / writing (#6346)

    • deduplicate test names (#6391)

    • remove skip file in lib_concur_Channel (#6435)

  • Build Tools
    • Profiler: demangle names for more readable flame graphs when using -XjavaProf (#6400)

    • disable interpreter in PR test runs (#6427)

    • disable lsp test again (#6361)

    • makefile: add serve_docs / serve_java_docs (#6336)

    • fix #6366, time reserved keyword (#6367)

  • fzjava
    • fix #6384: StringBuilder fuzion wrapper should inherit java.lang.Object (#6386)

  • fzweb
    • performance improvements in various parts of the webserver (#247, #248, #285, #286)

    • display of the latest commits and social media posts on the main page (#254, #256, #258, #278, #279)

    • catch more types of faults, preventing crashes (#266)

    • improve handling of client IP addresses (#270, #272)

    • clean up closed connections (#277)

    • fix double entry in navigation menu (#280)

    • fix crash when writing to closed connections (#287)

Cheers,

--The Fuzion Team.

last changed: 2026-03-13