| 10 Feb 2025 |
sterni (he/him) | emily: We don't really need a survey; just look at nixpkgs: LLVM 12 is used by, among other things, GHC versions; those GHC versions are also used e.g. by elm related stuff | 14:23:05 |
sterni (he/him) | removing that is just a lot of churn figuring out whether packages can be upgraded etc. but you have to start from the bottom and work your way upwards | 14:23:41 |
sterni (he/him) | GHC does generate notoriously weird LLVM bitcode, occasionally running into the limits of llc/optc in strange ways. As a consequence, I don't think it is safe to just assume that older GHC versions will just work with newer LLVM versions, especially since it is hard to gain confidence from our CI since the LLVM backend stuff is not well covered anymore for the affected GHC versions. I'm not willing to bump GHC before we have verified that GHC did not have to make any changes to the backend to accomodate the newer LLVM versions. Unfortunately, I'm busy with other things, but happy to do that at some point. | 14:26:07 |
sterni (he/him) | I am also open to removing 8.10-9.2, but as things stand there are some major challenges associated with it. I can write up the state of that in more detail on the LLVM removal issue or maybe a separate issue? | 14:30:02 |
emily | In reply to @sternenseemann:systemli.org emily: We don't really need a survey; just look at nixpkgs: LLVM 12 is used by, among other things, GHC versions; those GHC versions are also used e.g. by elm related stuff I thought the survey was about whether external users still need old GHCs (I got the sense that it's unlikely as the toolchains using the old ghcjs etc. also use old Nixpkgs but that we didn't have hard data) | 16:57:36 |
emily | if it's just about unpinning GHCs in Nixpkgs I can help with that - I surveyed the elm stuff and it looked simple enough | 16:58:12 |
maralorn | The survey was mainly about convincing sterni that we can drop 8.10-9.2. if he is fine with doing that anyway we don’t need it. 😄 | 16:58:58 |
emily | I'm also a little unclear on what would be required to get aarch64-darwin bootstrapping without those old GHCs | 16:59:37 |
sterni (he/him) | emily: downstream use is a consideration that comes after upstream use I'd say… | 17:00:14 |
emily | well, the only reason I didn't work on upstream use is because I understood that downstream use was the sticking point and waiting on a survey... | 17:01:03 |
emily | seemed pointless to put effort in if it might not help the LLVM patch backporting burden we keep facing | 17:01:24 |
sterni (he/him) | ghcjs is problematic, we'll have to find people that actually use it to give feedback I guess. I guess with coming GHC versions the js backend will become production ready, so it's probably justifiable to drop ghcjs at that point | 17:01:38 |
emily | so do we need a survey or not? :) | 17:01:54 |
maralorn | sterni: I am here. I actually use ghcjs every day. I can tell you that we can drop it. | 17:02:15 |
emily | if there's agreement in principle I'm happy to help with the work, but not if there's just going to be another reason they have to stay on the other side of it. | 17:02:21 |
sterni (he/him) | that seems like a contradictory sentence… | 17:02:33 |
emily | sigh | 17:03:03 |
sterni (he/him) | emily: we can probably start by talking to Divam or whoever we know else we know at Obsidian. I also suspect that Mercury was using ghcjs at some point, we can probably also ask someone there. | 17:03:38 |
emily | let me know when you guys figure it out | 17:03:09 |
sterni (he/him) | maybe just asking informally on discourse is easier than a survey? | 17:04:14 |
maralorn | sterni: I have a call every 2 weeks with the obsidian people. You can believe me. | 17:04:18 |
sterni (he/him) | what exactly should I believe idk what we're talking about | 17:04:38 |
maralorn | They don’t use and don’t plan to use an up-to-date nixpkgs pin to use ghcjs. | 17:05:10 |
sterni (he/him) | emily: But you make a good point on bootstrapping, I realized yesterday that it may be extremely difficult to get rid of GHC 8.10.7 and that we kind of need its LLVM backend. | 17:05:14 |
sterni (he/him) | maralorn: why did they even upstream 8.10.7 ghcjs lol | 17:05:33 |
maralorn | Well, that was years ago and at that point they were using it?^^ | 17:06:02 |
sterni (he/him) | it's getting to be just one big blur | 17:06:34 |
emily | I'm tired of the fact that we have to keep backporting LLVM patches that require manual work to apply to LLVM 12 that we can't just skip and leave broken on Darwin because the GHC bootstrap pulls it in and GHC is now used by everything. and I'm tired of the constantly-shifting goalposts around GHC versions that there has never been any evidence that the people who would use them are actually using modern Nixpkgs and substantial amounts of evidence that they're not. | 17:06:49 |
sterni (he/him) | emily: i.e. we kind of need 8.10.7 or 9.0.2 to bootstrap GHC 9.4.8 due to build system bugs. Simultaneously, these compilers are the only remaining compilers that are not affected by various problems relating to the build system. Without 9.4.8 we would be unable to cross compile GHC to riscv64 and do TemplateHaskell in pkgsStatic. | 17:08:32 |
emily | if there's an agreement that they can be dropped if the internal uses are sorted, I'll help | 17:07:03 |