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

2023-05-12: Fuzion May Update

Hi,

Here is this month's update:

  • Fuzion language
    • An attempt to redefine a choice feature now results in an error (#1304).

    • Fixed handling of the choice of syntax (#1289):

      
      # no declaration of the apple, pear, or banana features here!
      fruit : choice of apple, pear, banana.
                

      The code in the example above used to work, but this broke and went unnoticed for a while.

    • \' is no longer a valid escape in string constants. This is because ' is a valid character in strings without an escape as well (#1315).
    • The multi-line strings presented in the last Fuzion Update have been extended to allow the dismissal of newlines. This allows wrapping long strings in Fuzion code that is not supposed to contain line breaks (#1299).

      
      s := """
        hello \
        world"""
                

    • The fun keyword has been removed from Fuzion (#1321, #1325). Use lambdas instead.

  • base library
    • searchable_list has been merged into searchable_sequence (#1333).

    • More features, including public-facing ones have been renamed to match the Fuzion naming convention (#1337, #1338, #1339, #1340, #1341, #1345, #1356, #1366, #1368).

    • The spit feature has been removed (#1343) use the equivalent yak feature to print text without a new line..

    • Extended the exit effect to allow setting an exit code which is used later when calling exit without arguments (#1346). This is useful in tests, for instance.

    • Many effects in the standard library now inherit from simpleEffect (#1370, #1371, #1372, #1373, #1374, #1375). This decreases code complexity significantly.

  • interpreter backend
    • The intrinsics for setting and clearing environment variables have been implemented to always return failure. This is because Java does not support modifying environment variables at runtime, but avoids compiler errors when trying to use these features from the interpreter backend (#1336).

  • fz tool
    • Allow specifying -1 as the maximum warning or error count. In this case, an unlimited amount of warnings respectively errors is shown (#1332).

    • Compatibility with different versions of the Clang compiler has been improved when compiling code from the C backend (#1384).

  • tests
    • Tests for nested option have been added (#1316). This will ensure nested options continue to work as they do right now even though changes to their internals are planned.

Cheers,

--The Fuzion Team.