Matthew Craven

Results 74 comments of 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`...

> 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...