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
-
The
redefinekeyword has been removed from Fuzion #1411. In contrast to the synonymousredef, 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 thevalueinstance 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.
-
Fix an
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
-
More features, including public-facing ones have been renamed to match the Fuzion naming convention #1412, #1367, #1439.
-
Basic support for networking with TCP and UDP sockets landed #1223. A basic demo webserver written in Fuzion has been added #1456.
-
Ryu, a float to string algorithm has been implemented in Fuzion #986. Currently, this exists besides the
f32.as_stringandf64.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 ofas_stringby Ryu. -
The effects
io.file.useandio.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
complex,fraction,matrix, which are now grouped in thenumfeature #1440, orMap,Set, and friends, which are in a featurecontainernow #1465. -
More features have been moved to type features #1469, #1482, #1484, #1483, #1487, #1488. In particular
numericand heirs use type features now #1506. -
String.is_ascii_white_spaceis nowu8.is_ascii_white_space#1494. -
Remove the
Functionsfeature #1510. Function composition is now implemented forUnaryfeatures. -
Implement the
String.upper_caseandString.lower_casefeatures #355. -
Add
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 ofMapnow #1534. -
time.date_timeinherits fromhas_total_ordernow #1539. This means thatdate_times can be compared using the standard infix operators now.
-
- C backend
- fz tool
- Fuzion language server
-
Version 0.82.1 has been released.
-
Cheers,
--The Fuzion Team.