Biweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
Sylvain: !9779 adding TH support for the JS backend passes CI and is ready for reviews.
Ticket #23013 has been opened to keep track of an issue with the recompilation avoidance mechanism. Fixing the issue seems to require some invasive refactoring that is best left for a future merge request.
Luite: !10008 Implemented keeping track of subdirectories in GHC's temporary file manager. Ready for review. Fixes #22952.
Josh: has merged the refactor of the RTS generation module to reduce redundant code.
In this refactor, debug logging was also completed to determine the correct numbers
reduce the size of these arrays for efficiency, and to remove
panic cases in favour
of generating higher numbered names without caching.
Sylvain: !9825 has been updated after an helpful review by Matthew Claven.
Jeff: MR is open. In response to feedback from the team Jeff has added (and removed) several features that distinguish the eDSL from sunroof. These include: removing threading and continuations, adding named unique variables and a proper switch statement. These changes allow more of the RTS to be replaced in the eDSL and allow the RTS to be typed using Haskell's type system. For example, now the STG registers track the type of the values they hold.
Sylvain: fixed CI script test that prevented performance results to be stored for the JS backend (see #22923 and !10026).
Josh: opened a CLC (Core Libraries Committee) proposal to add stricter versions of
Data.List in addition to the existing lazy versions. The
proposal considers evidence that these versions are situationally more performant,
by comparing allocation statistics, generated STG, and microbenchmarks - as well as
making the argument for consistency with existing
List functions that also have
Josh: opened a CLC proposal to modify the implementation of
to use unboxed tuples in the return type of encoding functions. This change presents
a significant allocation improvement, due to the difficulty GHC has with applying a
certain optimisation within data types.
Jeff: Has been hard at work on the Optimization Handbook.
He has finished a
Lambda Lifting, significantly expanded the glossary, and added
documentation to the
haskell extension that he finished last month. The optimization handbook is now
in review by IOG's IT team to migrate it to the Haskell Foundation website.
Luite: Added a testcase and did some cleanups in the types of the C code in MR
!9957, and adjusted
the bytecode generator to not produce zero offset
SLIDE instructions anymore.
This is now ready for review.