aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested
Commit message (Collapse)AuthorAge
* Remove ixsFromIxR' and simplify ixsFromIxRMikolaj Konarski2026-02-18
|
* Make List?, except ListH, less generalMikolaj Konarski2026-02-18
|
* Optimize slightly sh?FromList and sh?ToListMikolaj Konarski2026-02-18
|
* De-triplicate ix?ToLinearMikolaj Konarski2026-02-18
|
* De-triplicate sh?EnumMikolaj Konarski2026-02-18
|
* Define ix?FromLinear without THMikolaj Konarski2026-02-18
|
* Implement ranked shape conversions as newtype coercesMikolaj Konarski2026-02-18
|
* Make ShR a newtype over ShXMikolaj Konarski2026-02-18
|
* Add the trivial Eq and Ord instances also for StaticShXMikolaj Konarski2026-02-18
|
* Prefer newtype deriving over Generic deriving for simplicityMikolaj Konarski2026-02-18
|
* Temporarily remove the UNPACK, until GHC is fixed not to crash with itMikolaj Konarski2026-02-18
|
* Optimize the representation of ListHMikolaj Konarski2026-02-18
|
* Inline SMayNat in ListHMikolaj Konarski2026-02-18
|
* Clone ListX into ListHMikolaj Konarski2026-02-18
|
* Simplify the signature of fooIndexMikolaj Konarski2026-02-18
|
* Implement shxFromShS and shsFromShX as a newtype coerceMikolaj Konarski2026-02-18
|
* Make ShS a newtype over ShXMikolaj Konarski2026-02-18
| | | | TODO: use lemmas in place of the unsafeCoerceRefl
* Implement index conversions as unsafeCoerceMikolaj Konarski2026-02-18
| | | | until maybe we make shaped and ranked newtypes over mixed?
* Fix a few KnownNat in ShS-related TODOs and reword the restMikolaj Konarski2026-02-18
|
* Temporarily revert ListS as a newtype over ListXMikolaj Konarski2026-02-18
| | | | | | | | until a GHC workaround is found. Please revert this commit ASAP so that horde-ad can coerce shaped to mixed things for free (unless the cost of the new WrapJust type turns out to overweight the benefit, which is unlikely, and/or unless unsafeCoerce works without WrapJust somehow).
* Remove KnownNat from ListS and express ListS as newtype over ListXMikolaj Konarski2026-02-18
| | | | as sketched by Tom.
* Add a precautionary INLINEABLE to the now polymorphic shsTakeIxMikolaj Konarski2026-02-18
|
* Add mtoListPrimLinear and friendsMikolaj Konarski2026-02-18
|
* Add mslice to be typing-wise a counterpart of mappendMikolaj Konarski2026-02-18
|
* Save some VS.concat by using toVectorListTMikolaj Konarski2026-02-12
|
* Let X.fromListOuterSN and ravelOuterN take NonEmptyMikolaj Konarski2026-02-12
|
* Don't force a list of identical elementsMikolaj Konarski2026-02-12
| | | | | | | | | This makes a big difference when a pair of lists is attempted to be streamed and the first one is of trivial primitive elements (e.g., when implementing a fold as a special case of mapAccum with the output list containing only ()). Forcing the first trivial list would cause the second non-trivial list to be represented as nested thunks, burdening GC greatly.
* Simplify and slightly speed up internal fromList functionsMikolaj Konarski2026-02-12
|
* Inline most lifting wrappersMikolaj Konarski2026-02-12
| | | | | | | This results in only marginal performance gain, probably because they are already small enough to be specialized and/or inlined automatically, but these pragmas ensure it remains so regardless of changes in GHC heuristics.
* Add a potentialy helpful bang for consistencyMikolaj Konarski2026-02-12
|
* Document that mshapeTree is partialHEADmild-tweaks-repackagedmasterMikolaj Konarski2026-02-12
|
* Add a few more GHC warnings and fix all offendersMikolaj Konarski2026-01-31
|
* Improve the implementation of fromSNat'Mikolaj Konarski2026-01-31
| | | | leading to 6% lower allocation in Det.hs primal test.
* Fix f in SMayNat to always be SNat and UNPACK itMikolaj Konarski2026-01-31
|
* Implement Tom's ixsFromIxSMikolaj Konarski2026-01-31
| | | | | | that really helps in processing indexes using list functions and getting back to the same type of index now that KnownNat is removed from IxS and so the type information is harder to preserve.
* Make type variables consistent between shaped and mixed listsMikolaj Konarski2026-01-31
|
* Generalize shsTakeIxMikolaj Konarski2026-01-31
|
* Speed up the bad case of mvecsReplicate using mvecsWriteLinearMikolaj Konarski2026-01-31
|
* Express mvecsWrite and mvecsWritePartial using the new methodsMikolaj Konarski2026-01-31
| | | | | | | and change the type of the latter to make it possible. This slightly improves performance of horde-ad tests, before horde-ad even starts using the Linear methods, which improves performance even more.
* Add mvecsWriteLinear and mvecsWritePartialLinear (unused yet)Mikolaj Konarski2026-01-31
|
* Add mvecsReplicateMikolaj Konarski2026-01-31
|
* Remove the preposterous shsFromListS and shsFromIxSMikolaj Konarski2026-01-31
|
* Generalize ix?ToLinear and speed it up a bitMikolaj Konarski2026-01-31
|
* Add INLINEABLE to ixxToLinear ahead of generalization, to benchmarkMikolaj Konarski2026-01-31
| | | | No horde-ad test speedup noticed.
* Improve haddocks of mvecsUnsafeFreezeTom Smeding2026-01-31
|
* Add method mvecsUnsafeFreeze and use itMikolaj Konarski2026-01-31
|
* Inlining magicTom Smeding2025-12-03
|
* Restore suffixes sharing in *FromLinearTom Smeding2025-12-03
| | | | Thanks Mikolaj for spotting it's broken
* Make shsFromList even more const-likeMikolaj Konarski2025-12-02
|
* Add a missing INLINEABLE for ixsToListMikolaj Konarski2025-12-02
|