-
Notifications
You must be signed in to change notification settings - Fork 40
Open
Description
TODO
-
Lumberhack mk 4 PR
- Duplication of definitions
- Check for regressions induced by label-sharing; it any, add a
Configflag to tweakcreateLabelsForDuplicatedBranchesinhkmc2/shared/src/main/scala/hkmc2/semantics/ucs/Normalization.scala - Transform explicit returns into implicit ones in the top-level blocks
- Constrain public fields against no-change strategy
-
Transform more places
- Class methods
- Record field initializers
- Also, fuse records?
-
Apply Lumberhack to compiled files
- Support customizable list of "see-through" modules such as
NofibPrelude: use syntax@seethrough import "..."
- Support customizable list of "see-through" modules such as
-
Float out lambda binders
- Benchmark nofib test suite
-
Deal with side effects
Missing Implementation
-
restParam - multiple parameter lists
- Deforestation related to functions and values inside classes/modules
-
Matchblocks with non-Value.Refscrutinees (likeMatch(Select(…), …)))
I put this as a missing implementation here because I am not sure how to handle selections inside branches related to non-Value.Refscrutinees — but maybe this is not strictly a “missing implementation” because it seems that although the definition of Match says that thescrutcan be aPath, the scrut currently always seems to be compiled to aValue.Ref.
More todos
- Merging of duplicated consumers
- After fusion, some duplicated consumers may have identical bodies, they can be merged
- Before fusion, duplication of consumers may lead to loss of fusion opportunities
- Reification of recursive strategies
Ad-hoc things to generalize
- Remove the special-casing of the "force" and "lazy" and use annotations instead
- Don't special-case NofibPreluse – instead, allow listing a set of file to optimize with
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels