Discussion:
[Larceny-users] building git version for flat1 (latin1)
Sven Hartrumpf
2016-01-11 16:09:53 UTC
Permalink
Hi.

Good to see that larceny is taking the R7RS road. Thanks!

For older projects, I still need Latin-1, so I decided to build
the git version using the flat1 option.
I followed the file doc/HOWTO-BUILD and used Larceny 0.98 as the
host system. Steps 1 and 2 went smoothly.
For step 3, there was no ./larceny.bin in the top-level git directory,
but only in src/Rts/.
cd src/Rts/
./larceny.bin -stopcopy -- src/Build/iasn-larceny-heap.fasl
Is this correct?

Furthermore, there is no file larceny for the next steps.
Should I copy the one from 0.98 ?

At what step should I change the environment variable LARCENY_ROOT
from pointing to Larceny 0.98 to the build git version?

Thanks for your time.
Sven
William D Clinger
2016-01-11 16:31:04 UTC
Permalink
Good to hear from you, Sven.
Post by Sven Hartrumpf
For older projects, I still need Latin-1, so I decided to build
the git version using the flat1 option.
I followed the file doc/HOWTO-BUILD and used Larceny 0.98 as the
host system. Steps 1 and 2 went smoothly.
For step 3, there was no ./larceny.bin in the top-level git directory,
but only in src/Rts/.
cd src/Rts/
./larceny.bin -stopcopy -- src/Build/iasn-larceny-heap.fasl
Is this correct?
That might work, but I think larceny.bin is supposed to be
copied out of src/Rts into the root directory. It could be
that our autobuild scripts do that but our HOWTO-BUILD file
neglects to mention that step.
Post by Sven Hartrumpf
Furthermore, there is no file larceny for the next steps.
Should I copy the one from 0.98 ?
That will probably work. Once again, our HOWTO-BUILD file
is probably not telling you where to obtain that shell script.
Post by Sven Hartrumpf
At what step should I change the environment variable LARCENY_ROOT
from pointing to Larceny 0.98 to the build git version?
I *think* LARCENY_ROOT is used only by the larceny and twobit
shell scripts, so you should change LARCENY_ROOT after you've
built larceny.bin and the heap files and before you start to
use the larceny shell script to run the newly built system.
In particular, you'll want to change LARCENY_ROOT before you
compile the R7RS libraries. The larceny script will itself
set LARCENY_ROOT to a reasonable default if LARCENY_ROOT isn't
already defined, but a prior definition of LARCENY_ROOT would
prevent the newly built system from running.

That's all from memory. I won't have time to test this myself
for a couple of days, because the new semester's classes start
today and tomorrow.

Will
Sven Hartrumpf
2016-01-12 12:57:16 UTC
Permalink
Thanks for the helpful answers, Will.
Post by William D Clinger
Good to hear from you, Sven.
Post by Sven Hartrumpf
For older projects, I still need Latin-1, so I decided to build
the git version using the flat1 option.
I followed the file doc/HOWTO-BUILD and used Larceny 0.98 as the
host system. Steps 1 and 2 went smoothly.
For step 3, there was no ./larceny.bin in the top-level git directory,
but only in src/Rts/.
cd src/Rts/
./larceny.bin -stopcopy -- src/Build/iasn-larceny-heap.fasl
Is this correct?
That might work, but I think larceny.bin is supposed to be
copied out of src/Rts into the root directory. It could be
that our autobuild scripts do that but our HOWTO-BUILD file
neglects to mention that step.
This made me reconsider my build and I started with a fresh
git repo and Larceny 0.98 as host system. This time it went
smoothly! (./larceny and ./larceny.bin exist in the git directory
at the right place.)
Post by William D Clinger
Post by Sven Hartrumpf
At what step should I change the environment variable LARCENY_ROOT
from pointing to Larceny 0.98 to the build git version?
I *think* LARCENY_ROOT is used only by the larceny and twobit
shell scripts, so you should change LARCENY_ROOT after you've
built larceny.bin and the heap files and before you start to
use the larceny shell script to run the newly built system.
In particular, you'll want to change LARCENY_ROOT before you
compile the R7RS libraries. The larceny script will itself
set LARCENY_ROOT to a reasonable default if LARCENY_ROOT isn't
already defined, but a prior definition of LARCENY_ROOT would
prevent the newly built system from running.
Hence, I decided not to set LARCENY_ROOT in my shell.
Instead I try to get the right directory in my PATH variable.
And this worked, as said above.

A tiny refinement to HOWTO-BUILD:
At the beginning of 4., it might be better to write
./larceny (not larceny) in order to make sure the built system
(and not the host system) is called.

Greetings
Sven

Loading...