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
redefine
keyword 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
ref
instance, but thevalue
instance 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
IndexOutOfBoundsException
in 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_string
andf64.as_string
features, 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_string
by Ryu. -
The effects
io.file.use
andio.file.open
have 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 thenum
feature #1440, orMap
,Set
, and friends, which are in a featurecontainer
now #1465. -
More features have been moved to type features #1469, #1482, #1484, #1483, #1487, #1488. In particular
numeric
and heirs use type features now #1506. -
String.is_ascii_white_space
is nowu8.is_ascii_white_space
#1494. -
Remove the
Functions
feature #1510. Function composition is now implemented forUnary
features. -
Implement the
String.upper_case
andString.lower_case
features #355. -
Add
memoize
feature, 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_line
is called at the end of a file #1531. -
mutable_tree_map
is an heir ofMap
now #1534. -
time.date_time
inherits fromhas_total_order
now #1539. This means thatdate_time
s 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.