Compiling to native code has become more convenient in
the Intel and Common Larceny versions of this release.
Loading a file of Scheme source code now compiles it to
native code, as in the Sparc version of Larceny.
With the Intel IA32-native version, the read/eval/print
loop also compiles to native code. Common Larceny's
read/eval/print loop still uses Larceny's interpreter.
With the IA32 version of Larceny v0.92, loading a file
is much slower than with the Sparc version of v0.92.
We expect to fix this in future releases.
The Intel IA32 native code generator now uses Sassy,
the assembler that Jonathan Kraut announced a few
months ago in this newsgroup. We are grateful to him
for making Sassy available to the Scheme community.
Will
> The Intel IA32 native code generator now uses Sassy,
> the assembler that Jonathan Kraut announced a few
> months ago in this newsgroup. We are grateful to him
> for making Sassy available to the Scheme community.
Congratulations on the new release!
and...
You're quite welcome. I'm very pleased that you and your team were able
to re-target Larceny and Twobit to use Sassy (and that you did so!).
Also, if the speed issue is related to Sassy, please feel free to email
me privately to discuss possible changes or additions that would help to
move things along.
-Jon
--
Jonathan Kraut
NYC
ja...@columbia.edu
We clearly have some kind of problem that is unrelated
to Sassy. From what I have seen so far, it's as though
our build process had become a bit unglued during the
transition from NASM to Sassy, and some parts of the
compiler and assembler (i.e. Sassy) may be running as
interpreted code rather than compiled. I doubt whether
it's quite that simple, but I suspect it will turn out
to be every bit as stupid as that.
Apart from the compiler and assembler, every benchmark
I have run so far is performing about as well as expected.
By the way, the performance problem we are discussing
here affects only the IA32-native version that uses Sassy.
A version of Petit Larceny that compiles to IA32 native
code via NASM is still available in v0.92, and it compiles
and assembles as fast as ever.
Will
We traced that to an inefficient symbol-hash procedure that
was part of the reference implementation of SRFI 69, which
had overwritten Larceny's usual symbol-hash procedure in
Larceny/IA32 because Sassy uses SRFI 69. Fixing this made
loading go twice as fast on one benchmark, and five times
as fast on another.
We did not change the version number, since this affects
only the heap images for Larceny/IA32, but the file name
for the faster release contains "-0.92b-" instead of the
"-0.92-" of the original. If you are using the original
release of Larceny/IA32 that I announced in this thread,
you should download the current release. We apologize
for the inconvenience.
Will