2024-10-17: Fuzion October Update
Last month was the first month with no changes to the Fuzion language. But this was not due to lack of activity, but the focus has clearly shifted to Fuzion application development, base library work, documentation and internal improvements.
- General
At OOPSLA / SPLASH 2024's VMIL workshop, the internals of The Fuzion Intermediate Representations will be presented next Sunday.
In the background, we are working on implementing the web server for the Fuzion website in Fuzion itself. The work on this is not yet public, but we are making good progress. It will be released as soon as the initial development phase is complete.
- Fuzion language
no changes!
- Base library
-
New base library features
-
Changes to the following standard library features
-
- API Documentation
annotate features which are or contain abstract features (#3704)
annotate private constructors (#3815)
annotate redefined features (#3719)
complete restructuring of sections based on
AbstractFeature.Kind
(#3821)don't show parents of function features (#3804)
fix check-condition (_sourceModule != null); (#3828)
fix wrongly displayed
is
where it should be=>
(#3810)show features inherited from
Type
as type features (#3717)show names of generic types relative to the feature they are used in (#3814)
use monospace font only for code, increase contrast on description (#3806)
- Parser
- Front end
Frontend produces librarymodule (#3811)
createMIR from library module (#3675)
fix check condition failure (#3707)
flag error on illegal
.this
type (#3696)library feature current, use thisType of selfType (#3774)
refine check, legal qual this type (#3766)
Wip frontend reset (#3775)
ast/air: Small cleanup in logic for this-type replacement (#3807)
ast: avoid duplicate error with source position 'built-in' (#3785)
ast: Don't let co-type inherit from
Type
in case of earlier errors (#3791)ast: fix "source position not available" in error (#3735)
ast: fix NPE in
empty_constructor4.fz
example (#3715)ast: fix outers generics where not fully resolved => require condition failure (#3755)
ast: fix precondition failure, AbstractType.asString (#3641)
ast: fix stack overflow in case of recursive constraint (#3751)
ast: generate type features for more than just constructors/choice (#3655)
ast: improve error message when redefining hidden feature (#3618)
ast: improve logic for order of duplicate feature declaration errors (#3790)
ast: In
Call
, relax target type lookup to allow for partial application, fix #3658 (#3671)ast: inference via constraint type parameter (#3838)
ast: Resolution.resolveTypes, relax post condition (#3706)
ast: suppress subsequent error of generated feature
λ.call
(#3692)ast: Types, remove unused
f_Any
(#3712)ast/fe: Simplify
Expr.box
, add box result type to.fum
file (#3872)
- DFA
- Middle End
First step to remove air and use DFA for monomorphization (#3820)
ai: add check to access of env, site should not always result in void (#3748)
air: Add missing this-type replacement in co-type inheritance clause, fix #3801 (#3805)
air: remove
Clazzes.instance
(#3729)air: Use
sourceRange()
, notpos()
when missing abstract implementation (#3795)
- Fuzion IR
fuir: remove manual stack cleanup (#3217)
- JVM back end
jvm: add FuzionOptions to jar file when using
-jar
target (#3783)jvm: Use special value instead of
null
for unit type effect to fix #3734 (#3736)be/jvm,dfa: fix get_static_field0 (#3853)
be/jvm: add check for locals of stackmaptable (#3836)
be/jvm: cleanup, break up long boolean expression (#3765)
be/jvm: fix "VerifyError: Instruction type does not match stack map" (#3745)
be/jvm: fix check condition in drop (#3764)
be/jvm: get_field fix ClassCastException (#3862)
be/jvm: use
resultType
instead ofjavaType
in a few places (#3788)be/jvm/c: fix get_field0 (#3851)
be/jvm/runtime: handle
null
message ingetException
(#3800)fzjava: improve determinism of short-hands (#3854)
- C back end
- Interpreter back end
- Tests
tests: add regression tests (#3709, #3874, #3865, #3841, #3743)
tests: add suffix
_int
to expected out/err files if files for other backends exist (#3818)tests: fix "result is not used" error (#3725)
tests: fix
calls_on_ref_and_val_target_negative
and change to simple_and_negative (#3740)tests: fix windows test failure (#3867)
tests: improve negative tests to clearly display result (#3708)
tests: kill after 600s (#3830)
tests: replace negative tests with simple_and_negative tests(#3759, #3762, #3779)
tests: skip onesCount in interpreter takes >10min on linux (#3868)
tests: skip test lib_concur_thread_pool in be/c (#3832)
- Util
- Windows
win: fix
found identifier '�'
(#3739)
Cheers,
--The Fuzion Team.