summaryrefslogtreecommitdiff
path: root/src/CHAD
Commit message (Collapse)AuthorAge
* Pass around an accumMap (but it's empty still)Tom Smeding3 days
|
* D2[Array] now has a Maybe instead of zero-size for zeroTom Smeding5 days
| | | | Remaining problem: 'add' in Compile doesn't use the D2 stuff
* Much process with accumulator revampTom Smeding2025-03-14
|
* Clean up code organisation a littleTom Smeding2025-03-09
|
* Compile: Implement EWith (TODO EAccum)Tom Smeding2025-03-05
| | | | That's going to be a mess
* test: Simplify and make it a bit fasterTom Smeding2025-02-28
|
* Pretty-printer that supports extension fieldsTom Smeding2025-01-28
|
* Add ext field to remaining AST constructorsTom Smeding2025-01-27
|
* WIP accum top-level argsTom Smeding2024-11-26
|
* Prepare for introducing top-level args in accum modTom Smeding2024-11-23
|
* Configuration for CHADTom Smeding2024-11-14
|
* BenchmarkTom Smeding2024-11-07
|
* Towards a test suiteTom Smeding2024-10-07
|
* WIP better zero/plus, fixing Accum (...)Tom Smeding2024-09-13
The accumulator implementation was wrong because it forgot (in accumAdd) to take into account that values may be variably-sized. Furthermore, it was also complexity-inefficient because it did not build up a sparse value. Thus let's go for the Haskell-interpreter-equivalent of what a real, fast, compiled implementation would do: just a tree with mutable variables. In practice one can decide to indeed flatten parts of that tree, i.e. using a tree representation for nested pairs is bad, but that should have been done _before_ execution and for _all_ occurrences of that type fragment, not live at runtime by the accumulator implementation.