[plt-scheme] mzc: native code path + plt/collects/mzlib
The idea is that someone can run setup-plt with --collection-extension
(as you write) if they find the result sufficiently useful.
Thanks, Matthew! That's what I was missing: setup-plt. So I read the
help-desk help setup-plt --help to be sure, and ran it:
(banach)plt> setup-plt --collection-extension
setup-plt: unknown flag: "--collection-extension"
(banach)plt> setup-plt --extension
and it took a long time, and I think I got a fatal error:
setup-plt: Compiling extension for MzLib at /.autofs/home/richter/plt/collects/mzlib
make: Failed to make compiled/native/process.c; Errors encountered. Compilation aborted.
I got 2 files I wanted, for etc.ss & list.ss, but:
(kepler)i386-linux> pwd
/rhome/richter/plt/collects/mzlib/compiled/native/i386-linux
(kepler)i386-linux> ls
awk.o cm.o contracts.o etc.o info.o pconvert.o
class-old.o cmdline.o date.o file.o list.o pregexp.o
class.o compat.o deflate.o include.o match.o pretty.o
class100.o compile.o defmacro.o inflate.o math.o
The mzc manual reads:
When compiling a collection to native code, mzc automatically created a
compiled directory in the collection directory, a native directory in that
compiled directory, and a platform-specific directory in native using the
directory name returned by system-library-subpath. Intermediate .c and
.kp files are kept in native. The platform-specific directory gets intermediate
.o/.obj files and the final _loader.so or _loader.dll.
So didn't get the needed final _loader.so file, and that was because
process.c didn't compile? mzscheme won't use etc.o by itself?
1. mzc compilation often fails to provide any speed increase.
Interesting. But wouldn't you think that row reducing matrices and
quicksorting long lists would profit from native compilation?