Tobias Dammers
Tobias Dammers
I just spent some time looking into this from the GHC side of things; it seems that, at least in the `Data.Array.Accelerate.Arrray.Analysis.Hash` module, the problem boils down to excessive inlining....
> Honestly that module probably doesn't need all the inlining. I think I just read in the bytestring builder docs somewhere that for good performance you need to inline everything....
> Here is the ghc-8.6.1 -v3 log for ..NoFib.Prelude.ZipWith Great, thanks for that! This one looks like there could actually be more going on than just literally obeying `INLINE` pragmas...
This currently depends on ~~#388~~ #411 and #389; those should be dealt with first before merging this.
Is this still relevant? The current API has this signature: ```haskell updateKES :: HasCallStack => ContextKES v -> SignKeyKES v -> Period -- ^ The /current/ period for the key,...
There are more functions in the PinnedSizedBytes module that have referential transparency issues: - `psbFromByteString` (implemented in terms of `psbFromBytes`) - `psbFromByteStringCheck` (implemented separately, for some reason, but also has...
Right, yes. I think what it boils down to is that we need to decide whether we want to present `PinnedSizedBytes` with value semantics (immutable) or with mutable-reference semantics (immutable...
I think pairing up is the way to go here, something like: ```haskell data SignKeyWithPeriodKES k = SignKeyWithPeriodKES { sk :: !(SignKeyKES k), period :: !KESPeriod } ``` This has...
Implementation on the `tdammers/kes-agent-requirements` branch (https://github.com/input-output-hk/cardano-base/commit/3bd4a04049f07423cfdbf54479df386eb8af1696)
This is *kind of* how asserts are supposed to work, but IMO it's a good idea to just enable them (`-fno-ignore-asserts`) - at the very least for testing, but I...