Closed Tehnix closed 6 years ago
The basic work flow is to try building ghcjs with lts 9.21 and see if it works! In practice this usually entails finding out if any of the ghcjs boot packages have different versions in 9.21, and then creating a branch of ghcjs-boot that uses those versions (eg https://github.com/matchwood/ghcjs-boot/tree/lts-8.11). Then you have to work out if any of the patches in ghcjs-boot need to be updated, or if any new patches need to be added. Finally you create a source distribution.
Lts-9.21 shouldn't be too difficult (fingers crossed). The main problem is simply the amount of processor time it takes to compile and test ghcjs but I would be happy to give it a go if you'd like to help out?
I would love to! I might be getting ahead of myself, but since work on GHCJS for GHC 8.2 seems to be active, do you think it would make more sense to put the focus on making a dist for that instead? Or would that entail a lot more work, than just upgrading the resolver packages for the current GHCJS version, to lts-9.21?
Great! GHCJS for 8.2 should, in principle, be easier to make a dist for, because the boot package strategy changed. However I did try doing this a few weeks ago and failed at the point of actually getting stack to use the dist - I think some of the changes in how ghcjs is built didn't mesh well with stack, but I'm not 100% sure. I was planning to try again with new hardware in the next month or so (I just don't have enough RAM on my current development machine).
In any case, I think lts 9.21 is a good snapshot to support, and it is worth doing both. Perhaps we should start with 9.21 and get something working for that, and then tackle GHCJS 8.2.
Hmm, what is your usual strategy for compiling GHCJS? Just clone down ghcjs, switch to the ghc-8.0 branch and stack build?
Pretty much! I made some changes to ghcjs when I was putting things together for the last dist https://github.com/matchwood/ghcjs/commits/lts-8.11 so if you take a look at those commits you should be able to get an idea of what is required. But it is probably worth starting from scratch with the latest ghc-8.0 branch, and then using my commits for lts-8.11 as a guide.
Oh, and remember that the part that will really need fixing is ghcjs-boot. https://github.com/matchwood/ghcjs-boot/commits/lts-8.11 . That is where we'll have to write patches for boot packages if necessary.
There is some info in the readme about the workflow for that (basically clone the subrepos, update them, and then git diff any changes back into the patches directory). Also if you are building with stack there is this https://github.com/matchwood/ghcjs/blob/lts-8.11/STACK.markdown
Ok, I made a branch for ghcjs for us to work on lts-9.21 https://github.com/matchwood/ghcjs/tree/lts-9.21
I'll make a similar one for ghcjs-boot, and then I'll start working on hacking things together a bit.
Ok, here is the ghcjs-boot branch https://github.com/matchwood/ghcjs-boot/tree/lts-9.21
I've updated the easiest packages to match stack versions, but I haven't done the following:
because they aren't handled in the same way (they are more complicated).
Ok, I'm at the point where I need to start modifying patches for the deps I updated. We will need to coordinate our efforts from this point on, as there is no point in both of us wrestling with the same patches! If you can let me know a way of contacting you aside from this issue we can discuss and break up the remaining work...
@matchwood quick work :D I'll get GHCJS running with your branches later today, after work.
W.r.t. coordinating, do you mind slack, or prefer IRC? I would suggest the Haskell-miso slack chat (auto invite via https://haskell-miso-slack.herokuapp.com), else we could do it in #GHCJS on Freenode. Or something else, if you have any preferences.
I could imagine others would be interested in the progress/contributing, so I'd prefer to keep it somewhere open.
Slack is fine, I've created a channel on haskell-miso for this purpose and invited you there.
A possibly working candidate dist is now in the develop branch https://github.com/matchwood/ghcjs-stack-dist/tree/develop.
Working candidate released to master.
I was wondering what work is involved in updating this to something like LTS 9.21, which has aeson-1.1.2.0?