-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.12.0.0 release planning #573
Comments
It's mostly import lists diverging, which makes backports annoying.
We don't necessarily need to deliver something revolutionary. Just getting released what's already done (https://github.com/haskell/bytestring/milestone/5?closed=1) would be enough. Finally fixing #13 (or deciding not to fix) is a nice to have. It's probably time to act on #249. Dunno what to do with #140. My tinkering in #521 was not quite successful.
There is very little value in |
The
|
JavaScript backend of GHC requires either pure Haskell implementation or JS shims for all |
If someone wants to volunteer, I've started implementing Haskell versions of the C functions 1 year ago: https://github.com/hsyl20/bytestring/commits/hsyl20/pure-bytestring Perhaps we could do this incrementally:
Would this process be accepted? It would be simpler than to prepare a single huge MR. |
Answering myself: the Cabal flag would just enable a CPP flag so we can also enable the CPP flag if |
I have a couple of novice questions:
Otherwise, I'm afraid my experiments with GHC-JS were just hobby stuff, and now that Zurihac is over, I only have a couple hours a week to devote to it. :) Don't count on me to affect bytestring timelines in any meaningful way! |
GHCJS used a JS shim. |
GHCJS maintained JS sources for packages in a "shims" library. E.g. for bytestring: https://github.com/ghcjs/ghcjs/blob/ghc-8.10/lib/boot/shims/pkg/bytestring.js.pp We could port some of this code in bytestring but I'd rather maintain Haskell code than JS code.
Moritz has been exploring this with a custom Setup.hs file that would build and link C sources with emscripten. But it's quite difficult because Emscripten assumes that the C memory is a single big JS array, which is not what the JS backend has. So we would have to generate some glue code derived from the C sources... At this point we might as well write a C to JS compiler ourselves that would generate the appropriate JS :) Edit: or we could derive the glue code from some extended Haskell signature. That's what Moritz has started to implement: https://github.com/input-output-hk/plutus-apps/blob/f0e5fd6415f826ddbfbaae53f6db20a57779066e/js-bindgen/app/Main.hs |
Makes sense to me, but since AFAIU you have more pressing matters at hand, let's target it for the next release, closer to the end of the year. |
@clyring I guess we are good to go with both |
I think everything is good-to-go. I will make both releases in a few hours. |
The JS compatibility discussion can be continued at #625. 0.12.0.0 was released months ago; this ticket can be closed. |
From #569 (comment) :
@Bodigrim Can you elaborate on what challenges you faced recently with backporting? (I imagine 3b0f5d3 could have been a bit painful depending on how you approached it, but that seems a bit exceptional.)
Three years sounds like a good amount of time between major releases to me, though I'm not optimistic about getting
bytestring-0.12
shipped with ghc-9.8. "Late 2023" is not far off; we should start thinking now about what outstanding issues/tasks deserve attention before then.My preference is to make the last planned release in the 0.11 series concurrently with the first release of the next major version; that makes good signalling easy and I think we can do so at very low cost. That would likely make 0.11.5.0 the last 0.11-series release.
The text was updated successfully, but these errors were encountered: