2023-06-01: Fuzion June Update
Hello and welcome to another issue of
Quite significant work improving the base library and solving important issues related to boxed types and type features has been done in the last month:
- Fuzion language
redefinekeyword has been removed from Fuzion #1411. In contrast to the synonymous
redef, this keyword was barely used in the standard library.
Fix the handling of calls to boxed values #1426. When a function is called on a boxed value, the target of the call is no longer the
refinstance, but the
valueinstance that was boxed.
This change sounds subtle, but it fixes a number of problems when the original value type is used as the type of inner features of the boxed value type feature and these types must be value types even after boxing. All the details can be found in the pull request description.
Calling type features from type parameters has been fixed #1471.
IndexOutOfBoundsExceptionin chained booleans #1511.
Allow the redefinition of features with type parameters #1515.
Fix a NullPointerException when inheriting from a feature that does not exist #1509.
Fix the propagation of types in covariant features #1523.
- base library
Ryu, a float to string algorithm has been implemented in Fuzion #986. Currently, this exists besides the
f64.as_stringfeatures, which use the float to string operation of the underlying backend. Since the output of this varies depending on whether the interpreter or the C backend is used, the long-term goal is to replace the implementation of
io.file.openhave been added #1428, which simplify working with files from Fuzion code.
In an effort to reduce clutter in the base library, several features have been grouped in common outer features, such as
matrix, which are now grouped in the
numfeature #1440, or
Set, and friends, which are in a feature
Functionsfeature #1510. Function composition is now implemented for
memoizefeature, which remembers the result of a call to a given feature with a given value after the first computation #1522.
Return an error if
io.stdin.read_lineis called at the end of a file #1531.
mutable_tree_mapis an heir of
has_total_ordernow #1539. This means that
date_times can be compared using the standard infix operators now.
- C backend
- fz tool
- Fuzion language server
Version 0.82.1 has been released.
--The Fuzion Team.