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

2022-06-13: Fuzion June Update


Here is this month's update:

  • Events
    • The talk on Fuzion at last month's Gulaschprogrammiernacht is available online.
  • fuzion-lang.dev website
    • idioms:
      • added idiom 81 rounding of floating point number
  • Fuzion Language
    • Working with Type values:
      • Overloading with type parameters now works as follows: A feature f with m type parameters and n value parameters can be called with m+n actual arguments (m types and n values) or, if the types can be inferred from the value parameters, with just n actual value arguments.

        If an overloaded f with n formal arguments (type or value) exists, a call with n actual arguments will always call this f with n formal arguments.

      • add support for calling type parameters, i.e., in a feature f(X type), it is now possible to call X as in say X. The result is an instance of feature Type.
      • add support to declare inner feature in type feature, e.g. i32.type.blabla is say "this is blabla in i32.type"
      • type features now inherit from the type features of corresponding to the plain features their corresponding plain feature inherits from.
    • Field are becoming immutable, set f := e expressions are removed from the code and will become illegal in user code, mutation is done using mutate effect in the base library, see below
  • base library
    • some changes towards using type parameter arguments instead of generics using < / >
    • stdout/err changed intrinsic to write whole strings not just bytes
    • added effect for stdin
    • added transducers (only filter/map are implemented right now) and means to compose transducers
    • added effect mutate. A mutable field f with initial value v can now be created using f := mut v
    • added Functions.compose
  • fz command
    • bug fixes
  • Language Server
  • Team
    • Wael Youssfi has joined the Fuzion team for his final student internship.