!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

726 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org145 Servers

Load older messages


SenderMessageTime
5 Apr 2025
@divyaranjan:matrix.orgDivya* emily: Why can't GHC be fully bootstrapped from source? We (Guix) bootstrap GHC uptp 9.4 from GHC 4 and it works.08:22:32
@emilazy:matrix.orgemilywhat do you build GHC 4 with?08:22:54
@divyaranjan:matrix.orgDivya* emily: Why can't GHC be fully bootstrapped from source? We (Guix) bootstrap GHC upto 9.4 from GHC 4 and it works.08:22:58
@emilazy:matrix.orgemilyI know there are various designs on using Hugs to bootstrap or the like, but I didn't think anyone had actually managed to construct a complete chain. there are a lot of issues08:23:15
@divyaranjan:matrix.orgDivya
In reply to @emilazy:matrix.org
I know there are various designs on using Hugs to bootstrap or the like, but I didn't think anyone had actually managed to construct a complete chain. there are a lot of issues
Yeah, I realized. The chain from GHC 4 to GHC 9.2 isn't complete yet. But probably can be done.
08:32:31
@emilazy:matrix.orgemilythat chain isn't really the hard part08:32:43
@emilazy:matrix.orgemilyit's getting a GHC in the first place08:32:46
@emilazy:matrix.orgemilyhow is GHC 4 built?08:32:52
@divyaranjan:matrix.orgDivya
In reply to @emilazy:matrix.org
how is GHC 4 built?
GHC 4 is bootstrapped from source.
08:35:01
@emilazy:matrix.orgemilyhuh. how? Hugs?08:42:20
@terrorjack:matrix.orgterrorjack from generated .hc sources actually: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/haskell.scm#n221 08:42:30
@emilazy:matrix.orgemilyok. that's not from source :)08:42:48
@emilazy:matrix.orgemilybut makes sense08:42:53
@divyaranjan:matrix.orgDivyaYeah from HC08:43:02
@emilazy:matrix.orgemilythat's not source. that's compiler output08:43:12
@divyaranjan:matrix.orgDivyaIndeed. Someday I need to sit down and do the chain from Hugs. It's sad that Haskell hasn't taken care of this.08:44:49
@divyaranjan:matrix.orgDivyaHave you guys talked to the GHC folks?08:45:05
@emilazy:matrix.orgemilyit's not as simple as chaining from Hugs, people have tried but it requires a lot of patching to even start getting anywhere08:46:57
@divyaranjan:matrix.orgDivya
In reply to @emilazy:matrix.org
it's not as simple as chaining from Hugs, people have tried but it requires a lot of patching to even start getting anywhere
Are the people from the Nix community? From Guix, 2-3 people have been trying to do this.
09:15:10
@emilazy:matrix.orgemilymostly not, since Nixpkgs has bigger bootstrapping issues :)09:15:36
@emilazy:matrix.orgemily (and though we might use complicated bootstrap chains to verify binaries, it's unlikely we'd put them into production, since chasing through a dozen GHC builds on every staging-next cycle would be too painful. I'm not sure how Guix copes with that kind of thing tbh) 09:16:28
@divyaranjan:matrix.orgDivya
In reply to @emilazy:matrix.org
(and though we might use complicated bootstrap chains to verify binaries, it's unlikely we'd put them into production, since chasing through a dozen GHC builds on every staging-next cycle would be too painful. I'm not sure how Guix copes with that kind of thing tbh)
I don't think one has to necessarily do that. You'd only have to bootstrap a particular version from a previous one and then just "inherit" that for the next versions.
09:19:44
@emilazy:matrix.orgemilybut when you rebuild core parts of the toolchain, you need to do the bootstrap all over again09:20:58
@me:linj.techlinj
In reply to @divyaranjan:matrix.org
Are the people from the Nix community? From Guix, 2-3 people have been trying to do this.
@alex:tunstall.xyz has done some work
09:22:47
@hellwolf:matrix.orghellwolf
In reply to @emilazy:matrix.org
but when you rebuild core parts of the toolchain, you need to do the bootstrap all over again
wouldn't you freeze the bootstrapped one to a git commit and never touch it again?
09:27:09
@emilazy:matrix.orgemilylet's say you build GHC 4 with Hugs compiled with GCC 1409:27:42
@hellwolf:matrix.orghellwolf* wouldn't you freeze the bootstrapped one to a git commit (of guix pkg? or nixpkgs) and never touch it again?09:28:04
@emilazy:matrix.orgemilythen when you bump GCC to 15, you need to build GHC 4 with Hugs compiled with GCC 1509:28:08
@emilazy:matrix.orgemily ca-derivations would allow short-circuiting once you get to a bit-identical binary output, but that might never happen, e.g., because glibc store path changed 09:28:10
@hellwolf:matrix.orghellwolfi see. i can see running old bin in a new container as a workaround09:29:19

Show newer messages


Back to Room ListRoom Version: 6