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

2022-09-13: Fuzion September Update

Hi,

Here is this month's update:

Mostly language cleanup, removing old syntax for generics using </>, removing lambda declarations using fun, adding syntax for tuple types, etc.

  • Fuzion language
    • tuple types now can be using (A,B,C) syntax, e.g.,
        triple(T type, v T) (T,T,T) is
          (v,v,v)
      is equivalent to
        triple(T type, v T) tuple T T T is
          (v,v,v)
    • function types and lambda expressions can no longer be declared using the fun keyword, but syntax like (i32, bool) -> string or (x,y) -> x + y*3
    • Fuzion grammar cleanup: new rule actual for actual arguments, which could be an expression for a value argument or a type for a type argument
    • Cleanup and simplification in indentation rules for actual arguments and cases in a match-expression.
    • ASCII control codes HT, VT, FF and stray CR are now rejected in the source code.
  • base library
    • support for file I/O: adding exists, delete, move, create_dir, etc.
    • added ctrie hash tries.
    • added ascii for ASCII control codes.
    • generally replace generics using </> by type parameters.
    • improved syntax of type-expressions: Now using (list i32).type instead of the awkward list i32 .type. Same for .env.
    • added cache effect to allow a simple caching of results.
  • tests
    • Added tests/indentation/indentation and tests/indentation_negative/indentation_negative to illustrate and check Fuzion's indentation rules for code blocks and arguments.
  • benchmarks
    • updated to use new syntax for type parameters instead of generics using </>
  • language server extension
    • v0.78.1 fixes vast memory usage
  • fuziondoc
    • updated to use new syntax for type parameters instead of generics using </>
  • general

Cheers,

--Fridtjof.