pkgsrc-Users archive

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

Re: Where to host ChezScheme boot images



On Tue, May 16, 2017, at 16:34, Robert Elz wrote:
>     Date:        Tue, 16 May 2017 20:27:11 +0200 From:        Aleksej
>     Lebedev <root%zta.lk@localhost> Message-ID:
>     <3a447b8d8837b9ee53ebc7e988db064f%zta.lk@localhost>
>
>
>   | As for the other architectures, real work must be done,
>
> Yes, that one is the hard work...
>
>
>   | Well, ChezScheme almost follows this pattern, except in "write ...
>   | in some programming language that is widely supported"
>   part
>   | :-).
>
> Actually, sometime in the past there was no ChezScheme right? I know,
> that's a dumb question, of course there wasn't. But then there was the
> very first version, and someone wrote that. And they compiled it. And
> they didn't compile it using ChezScheme because that didn't exist yet.
> And probably this same method, whatever it was, was used several
> times, to make bigger and better versions, until ChezScheme was
> finally working well enough to compile itself.

I just happen to be reading
https://www.cs.indiana.edu/~dyb/pubs/hocs.pdf which describes this
history in some detail.

In short, a hand-coded scheme system in Z80 assembler (ca. 1981) was
used to bootstrap a a now-forgotten dialect called C-Scheme (which, by
1984, had made it over to a VAX running BSD) which, in turn, was used
to bootstrap the first Chez Scheme (ca. 1984).  As far as I can tell,
it's been self-hosting since then.  So basically, Chez Scheme predates
C-as-universal-language.

In fact, one could just as reasonably ask how to distribute a working
gcc without trusting a binary blob somewhere along the way.  In
principle you could start from the machine code listings for a primitive
compiler and run it on a PDP-8 emulator (wait, where did you get the
PDP-
8 emulator?) and then reproduce the history of C compilers (assuming we
still have the sources for the compiler that was used to compile the
first gcc).  In practice, I suspect that cross-compilation from a
trusted machine is probably the only useful answer.

-- IDL


Home | Main Index | Thread Index | Old Index