Nikita Karetnikov <[email protected]> skribis:

>> I don’t know GHC, but apparently it can be bootstrapped from
>> intermediate generated C files:
>
>>   http://www.haskell.org/ghc/docs/6.4.1/html/building/sec-porting-ghc.html
>
>> Wouldn’t that be better than fiddling with binaries out-of-band?
>
> The recent versions of the compiler don’t support this.  So you have to
> use the old version.  I’ve spent four hours on this and didn’t even get
> to the intermediate C files (that’s the first step).  The compiler
> depends on the old libraries, so you have to downgrade.  That’s the main
> difficulty.
>
> Also, you can’t build GHC 7.6.3 using GHC 6.4.1.  Users would have to
> build several compilers any time they want the latest version.  That may
> take more than six hours (or even longer) on an average machine.
>
> So I’d prefer to avoid this if it’s possible.

Blech.  I find it worrisome if GHC doesn’t have a better bootstrapping
story.  How do they port it then?

>>> 1. We’d have to host the binaries (step 2) somewhere and repeat the
>>>    process whenever the hash of ‘/bin/sh’ changes.  How often will this
>>>    happen?
>
>> The hash of /bin/sh?  Where did you see /bin/sh?  :-)
>
> I meant this one:
>
> scheme@(guile-user)> ,use (guix build utils)
> scheme@(guile-user)> (which "sh")
> $1 = "/nix/var/nix/profiles/default/guix-profile/bin/sh"
> scheme@(guile-user)> (readlink $1)
> $2 = "/nix/store/fzcdfwyyin5dr7finlaq2kph396nrlli-bash-4.2/bin/sh"
>
> How often may the hash change?  In other words, what does Bash use to
> “source” the hash function?  Will it happen whenever you merge
> ‘core-updates’?

Yes.  (The hash in the store file name is the hash of all the inputs
that led to that directory (info "(guix) Introduction").)

>> The ‘uri’ argument can be a list:
>
>>   (origin
>>     (method url-fetch)
>>     (uri (list "http://..."; "file://..."))
>>     (sha256 ...))
>
>> However, ‘url-fetch’ doesn’t support file://.
>
>> The other option would be to allow ‘source’ to be a list; that’s easily
>> implemented, just not done yet.
>
> Thanks, I’ll look into it.

Great, thanks.

Ludo’.

Reply via email to