| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Save some VS.concat by using toVectorListT | Mikolaj Konarski | 7 days |
| | | |||
| * | Let X.fromListOuterSN and ravelOuterN take NonEmpty | Mikolaj Konarski | 9 days |
| | | |||
| * | Don't force a list of identical elements | Mikolaj Konarski | 10 days |
| | | | | | | | | | | 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 functions | Mikolaj Konarski | 10 days |
| | | |||
| * | Document that mshapeTree is partial | Mikolaj Konarski | 10 days |
| | | |||
| * | Use shxDropSSX instead of shxSplitApp, etc. | Mikolaj Konarski | 10 days |
| | | |||
| * | Improve the implementation of the other fromSNat' | Mikolaj Konarski | 10 days |
| | | |||
| * | Make library strided-array-ops public | Mikolaj Konarski | 2025-12-27 |
| | | |||
| * | Add pragmas to functions that -fprof-late-overloaded-calls reports | Mikolaj Konarski | 2025-12-27 |
| | | | | | | | | as breaking the chain of specialization (but it's currently broken, so these may be false positives, but these pragmas may be handy in the future anyway and they can't do much harm in theory and in practice they are right now neutral performance-wise). | ||
| * | Inline most lifting wrappers | Mikolaj Konarski | 2025-12-24 |
| | | | | | | | | 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 few more GHC warnings and fix all offenders | Mikolaj Konarski | 2025-12-22 |
| | | |||
| * | Mute the pattern-namespace-specifier warning until things can be fixed | Mikolaj Konarski | 2025-12-22 |
| | | |||
| * | Make it clear that ravelOuterN is called just once | Mikolaj Konarski | 2025-12-21 |
| | | |||
| * | Remove ixsFromIxR' and simplify ixsFromIxR | Mikolaj Konarski | 2025-12-20 |
| | | |||
| * | Add a potentialy helpful bang for consistency | Mikolaj Konarski | 2025-12-20 |
| | | |||
| * | Improve the implemenetation of fromSNat' | Mikolaj Konarski | 2025-12-19 |
| | | | | | leading to 6% lower allocation in Det.hs primal test. | ||
| * | Make List?, except ListH, less general | Mikolaj Konarski | 2025-12-17 |
| | | |||
| * | Optimize slightly sh?FromList and sh?ToList | Mikolaj Konarski | 2025-12-17 |
| | | |||
| * | De-triplicate ix?ToLinear | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | De-triplicate sh?Enum | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Define ix?FromLinear without TH | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Implement ranked shape conversions as newtype coerces | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Make ShR a newtype over ShX | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Add the trivial Eq and Ord instances also for StaticShX | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Prefer newtype deriving over Generic deriving for simplicity | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Temporarily remove the UNPACK, until GHC is fixed not to crash with it | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Optimize the representation of ListHrepro-UNPACK | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Inline SMayNat in ListH | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Clone ListX into ListH | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Simplify the signature of fooIndex | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Implement shxFromShS and shsFromShX as a newtype coerce | Mikolaj Konarski | 2025-12-16 |
| | | |||
| * | Make ShS a newtype over ShX | Mikolaj Konarski | 2025-12-16 |
| | | | | | TODO: use lemmas in place of the unsafeCoerceRefl | ||
| * | Fix f in SMayNat to always be SNat and UNPACK it | Mikolaj Konarski | 2025-12-14 |
| | | |||
| * | Implement Tom's ixsFromIxS | Mikolaj Konarski | 2025-12-14 |
| | | | | | | | 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. | ||
| * | Implement index conversions as unsafeCoerce | Mikolaj Konarski | 2025-12-13 |
| | | | | | until maybe we make shaped and ranked newtypes over mixed? | ||
| * | Fix a few KnownNat in ShS-related TODOs and reword the rest | Mikolaj Konarski | 2025-12-12 |
| | | |||
| * | Make arith enums disjoint | Tom Smeding | 2025-12-12 |
| | | | | | | | This should prevent operation confusion like calling oxarop_binary_* with IB_QUOT. No error is thrown statically, but at least the nonsense operation crashes reliably at runtime instead of doing, well, nonsense. | ||
| * | Improve haddocks of mvecsUnsafeFreeze | Tom Smeding | 2025-12-12 |
| | | |||
| * | Temporarily revert ListS as a newtype over ListX | Mikolaj Konarski | 2025-12-12 |
| | | | | | | | | | 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). | ||
| * | Make type variables consistent between shaped and mixed lists | Mikolaj Konarski | 2025-12-12 |
| | | |||
| * | Remove KnownNat from ListS and express ListS as newtype over ListX | Mikolaj Konarski | 2025-12-11 |
| | | | | | as sketched by Tom. | ||
| * | Remove the preposterous shsFromListS and shsFromIxS | Mikolaj Konarski | 2025-12-11 |
| | | |||
| * | Generalize shsTakeIx | Mikolaj Konarski | 2025-12-11 |
| | | |||
| * | Fix a typo in IntElt Int | Mikolaj Konarski | 2025-12-11 |
| | | |||
| * | Add method mvecsUnsafeFreeze and use it | Mikolaj Konarski | 2025-12-09 |
| | | |||
| * | Speed up the bad case of mvecsReplicate using mvecsWriteLinear | Mikolaj Konarski | 2025-12-09 |
| | | |||
| * | Generalize ix?ToLinear and speed it up a bit | Mikolaj Konarski | 2025-12-09 |
| | | |||
| * | Add INLINEABLE to ixxToLinear ahead of generalization, to benchmark | Mikolaj Konarski | 2025-12-09 |
| | | | | | No horde-ad test speedup noticed. | ||
| * | Express mvecsWrite and mvecsWritePartial using the new methods | Mikolaj Konarski | 2025-12-08 |
| | | | | | | | | 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 Konarski | 2025-12-08 |
| | | |||
