Matthew Craven
Matthew Craven
I think the best-case-scenario with respect to this issue would be for `bytestring` to eventually switch from using `memcpy` directly to using [`copyBytes`](https://hackage.haskell.org/package/base-4.16.0.0/docs/Foreign-Marshal-Utils.html#v:copyBytes) and for the latter to have improved...
There is an obvious benefit to not to fiddling with the `MutableByteArray#`s ourselves: shorter, simpler code. The `keepAlive#` matter is a separate issue (#461) and is mostly orthogonal to this...
Thank you. I think the part of the GHC `Integer` simplification changes that we need to avoid intermediate `Integer`s in `stimes @StrictByteString @Int` without any rewrite rules was already merged...
As expected, with `Int`, the Core GHC-9.4.1-alpha1 generates looks great. ``` -- RHS size: {terms: 20, types: 9, coercions: 0, joins: 0/0} testSpecInt :: Int -> S.ByteString -> S.ByteString [GblId,...
My machine is giving me a very hard time, so I might not be able to continue work on this for a while. The timing is unfortunate. Maintainers, please feel...
I was finally able to work on this again tonight. The diff is rather large, but the majority of it is a very mechanical translation from code that uses `Ptr`...
ping @sjakobi
> BTW, has anyone investigated the perf impact already? > > > I haven't yet had time to investigate whether this actually helps performance with 9.2.4 and obviously for a...
I've verified that the improvement in runtime allocations is about 10% for [the relevant GHC perf test](https://gitlab.haskell.org/ghc/ghc/-/blob/6b47aa1cc87426db4fe7d805af69894de05780ff/testsuite/tests/perf/should_run/T7257.hs). That test also allocates a bunch of list objects, so the improvement when...
I'd like to understand the `Builder` regressions a bit better. But they seem likely unrelated to the expected `keepAlive#` regressions this patch aims to fix, and shouldn't block it. Later...