2023-05-12: Fuzion May Update
Hi,
Here is this month's update:
- Fuzion language
-
An attempt to redefine a
choicefeature now results in an error (#1304). -
Fixed handling of the
choice ofsyntax (#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
funkeyword has been removed from Fuzion (#1321, #1325). Use lambdas instead.
-
- base library
-
searchable_listhas been merged intosearchable_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
spitfeature has been removed (#1343) use the equivalentyakfeature to print text without a new line.. -
Extended the
exiteffect to allow setting an exit code which is used later when callingexitwithout 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
optionhave 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.