tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Updating plans of lang/ghc

On Wed, 08 Jan 2014, David Holland wrote:
The idea is that ghc-bootstrap depends on ghc (used for building) but
ghc does *not* depend on ghc-bootstrap; instead once in a while
someone takes the ghc-bootstrap package from the build host and posts
it as a distfile in MASTER_SITE_LOCAL, and updates the distfile
information in the main ghc package. I think this avoids most of the
problems that otherwise come up.

Let's see if I understand this idea.

When you build ghc from pkgsrc, it downloads a binary blob from MASTER_SITE_LOCAL, and uses that as a compiler to build the current version of ghc from source code written in Haskell.

That binary blob is the result from somebody building ghc-bootstrap some time in the past, which then depended on ghc (possibly an older version), which depended on an older version of the binary blob.

That older version of the binary blob depends (indirectly) on an even older version of the binary blob, etc. The number of steps in the chain are limited by uploading new versions of the binary blob as seldom as possible (essentially, only when the old bootstrap blob is not good enough to build a new compiler).

How was the very first version of the binary blob in MASTER_SITE_LOCAL built? Is there a history traceable to a version that depended only on C code and a C compiler?

Will all the binary blobs, and the sources from which they were built, be saved ~forever, in case somebody wants to audit the provenance chain in the future?

Can ghc be built using some other Haskell implementation?

--apb (Alan Barrett)

Home | Main Index | Thread Index | Old Index