summaryrefslogtreecommitdiff
path: root/src/CHAD/Types.hs
Commit message (Collapse)AuthorAge
* 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
|
* Pretty-printer that supports extension fieldsTom Smeding2025-01-28
|
* WIP accum top-level argsTom Smeding2024-11-26
|
* Prepare for introducing top-level args in accum modTom Smeding2024-11-23
|
* 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.