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

2023-03-03: Fuzion March Update

Hi,

here are our Fuzion news for March:

  • General
    • Inspired by Steve Poole's talk at FOSDEM, we improved the security of the Fuzion repository and added an Openssf Scorecard (#1103, #1133, #1134, #1140, #1141).
  • Fuzion language
    • Type inference of type parameters has been improved, e.g., numeric constants are only used as a fallback if no more accurate type is available (#1030, #1053).
    • Using universe.this.x it is now possible to access a feature named x in the universe, even when shadowed by another feature called x in the local scope (#1173).
  • base library
    • Features time.date_time and time.now have been implemented to enable access to the current time and date (#1029).
    • Base library feature mutate now supports local mutation:
      
      m : mutate is           # declare local mutate type m
      
      x := m.go ()->          # create instance of m and use it
      
        v := m.env.new 42     # create mutable integer, init with 42
      
        for i in 1..10 do
          v <- 2 * v.get      # mutate it
        else
          v.get               # return final value
      
      say x
                
    • String ordering has been fixed after being broken for a short amount of time due to a typo (#1047).
    • After plain infix operators like =, <=, and so on had been temporarily removed due to moving the relevant code to use type features, they are back now (#1049). All uses of /= have been replaced by != now (#1050).
    • comparable_sequence has been merged into searchable_sequence (#1067).
    • a CTrie can now be created using a sequence of key-value pairs (#1073).
    • Some internal uses of the stream feature have been removed in preparation of the planned removal of the stream feature (#1090, #1091, #1093).
  • interpreter back-end
    • The internal handling of open resources like open files has been improved to make the code cleaner and adapt it for future uses like handling of open network connections (#1155).
  • C back-end
    • windows support for fileio and env vars has been improved (#1087).
  • fz tool
    • Some error messages have been improved.
    • The output of the -XdumpFUIR option has been improved to allow better debugging (#1110).
  • fuzion-lang.dev website

Besides this, we are already working on some things that have not yet landed in Fuzion. Some highlights include:

  • Fuzion language
    • The semantics of referencing outer instances via a.this the their types a.this.type is being defined, in particular in conjunction with inheritance used in these outer features.
    • Support for lazy evaluation of arguments at the language level is being prepared.
  • base library
    • support for network connections
    • support for mutable data structures implemented using the mutate effect, in particular linked lists and a tree-based map.

Cheers,

--The Fuzion Team.