[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MIT-Scheme-devel] Very curious problem
From: |
Matt Birkholz |
Subject: |
[MIT-Scheme-devel] Very curious problem |
Date: |
Tue, 14 Feb 2012 21:20:39 -0700 |
> From: Joe Marshall <address@hidden>
> Date: Tue, 14 Feb 2012 15:07:00 -0800
>
> I just added code to implement LETREC*, [...]
>
> Everything continued to work, with one bizarre exception. [...]
>
> So, here's the mystery. If I set the named-let expansion to
> anything other than LETREC, everything works. If I remove the
> `package' macro around the forms, everything works. It only goes
> into an infinite loop if I have the outer package form, AND expand
> named-let into LETREC.
This could be caused by our weird build situation. I just tried to
build from source with 9.1.1 and was reminded of an earlier email from
a nearly identical hacker.
> From: Joe Marshall <address@hidden>
> Date: Wed, 18 Jan 2012 12:42:39 -0800
>
> Hi all,
>
> [...]
>
> I added a small section to the top-level README.txt that briefly
> explains how to re-syntax and compile the compiler with an interpreted
> version of itself.
That section describes how to use a runtime.com band to syntax the
compiler without the compiler present. The liarc (and svm)
cross-compiler(s) MUST be built this way. The compiler is a built
thing, and building it in environments already populated by a
different compiler shouldn't (doesn't) work. Our standard build
forgets that; it only happens to work whilst old and new compilers are
very similar and have the same target!
So I hacked compile.sh to follow the examples in
compile-boot-compiler.sh and compile-svm.sh. It uses the old compiler
to syntax and compile the new runtime/, sf/, cref/ and star-parser/.
The new compiler is then syntaxed with these new versions.
commit 48c535b41a299714d3b442c5ab68cd5f29f6c99f
Author: Matt Birkholz <address@hidden>
Date: Tue Feb 14 21:12:04 2012 -0700
Syntax new compiler with new runtime, sf, etc.
This strategy allows today's master (48c535b) to be built correctly
using 9.1.1 -- no hand-made compiler-band.com necessary. Perhaps it
will fix your problem too...