2023-03-03: Fuzion March Update
Hi,
here are our Fuzion news for March:
- General
- Inspired by Steve Poole's talk at FOSDEM, we improved the security of the Fuzion repository and added an Openssf Scorecard (#1103, #1133, #1134, #1140, #1141).
- Fuzion language
- Type inference of type parameters has been improved, e.g., numeric constants are only used as a fallback if no more accurate type is available (#1030, #1053).
-
Using
universe.this.x
it is now possible to access a feature namedx
in the universe, even when shadowed by another feature calledx
in the local scope (#1173).
- base library
-
Features
time.date_time
andtime.now
have been implemented to enable access to the current time and date (#1029). -
Base library feature
mutate
now supports local mutation:m : mutate is # declare local mutate type m x := m.go ()-> # create instance of m and use it v := m.env.new 42 # create mutable integer, init with 42 for i in 1..10 do v <- 2 * v.get # mutate it else v.get # return final value say x
- String ordering has been fixed after being broken for a short amount of time due to a typo (#1047).
-
After plain infix operators like
=
,<=
, and so on had been temporarily removed due to moving the relevant code to use type features, they are back now (#1049). All uses of/=
have been replaced by!=
now (#1050). -
comparable_sequence
has been merged intosearchable_sequence
(#1067). - a CTrie can now be created using a sequence of key-value pairs (#1073).
-
Some internal uses of the
stream
feature have been removed in preparation of the planned removal of thestream
feature (#1090, #1091, #1093).
-
Features
- interpreter back-end
- The internal handling of open resources like open files has been improved to make the code cleaner and adapt it for future uses like handling of open network connections (#1155).
- C back-end
- windows support for fileio and env vars has been improved (#1087).
- fz tool
- Some error messages have been improved.
-
The output of the
-XdumpFUIR
option has been improved to allow better debugging (#1110).
- fuzion-lang.dev website
- A page on the design of lazy arguments support has been added.
- Account deletion is supported now.
Besides this, we are already working on some things that have not yet landed in Fuzion. Some highlights include:
- Fuzion language
- The semantics of referencing outer instances via
a.this
the their typesa.this.type
is being defined, in particular in conjunction with inheritance used in these outer features. - Support for
lazy
evaluation of arguments at the language level is being prepared.
- The semantics of referencing outer instances via
- base library
- support for network connections
-
support for mutable data structures implemented using the
mutate
effect, in particular linked lists and a tree-based map.
Cheers,
--The Fuzion Team.