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

2022-04-08: Fuzion April Update

Hi,

Here is this month's update:

  • Social Media
  • Effects
    • Support for Effects was added to Fuzion
    • Inspired by languages like Koka, Flix, Effekt
    • Goal is to encapsulate (side-) effects in otherwise pure functions such that
      • non-functional effects are formally documented, become part of the signature.
      • code can be statically analyzed for dependencies and impact on the external world
      • non-local control flow is supported
      • these effects can be replaced by different handlers (e.g., code that prints to io.out (stdout) could be called using a handler for io.out that redirects the output to a file).
    • Parts of the standard library use effects now.
  • fuzion-lang.dev
  • Fuzion Language
    • New expression type.env to access effect of given type.
    • Unicode punctuations are now allowed as codepoints within operators
  • Standard Library
    • New effects: io.out, io.err, random, time.nano, state T, envir.args, try/raise
    • f32/f64 now offer trigonometric functions, exp, log, and squareRoot, and constants , π
    • intersection operator added to psSet: infix ⋂
  • fz command
    • fz -effects main.fz now performs static analysis on main.fz and prints effects required by this feature.
  • C backend
    • Support for f32 and f64
  • Language Server
    • Now tries to offer infix/postfix operator completion.
  • Testing
    • Tests on windows now automated using github CI

Cheers,

--Fridtjof.