[plt-scheme] mzc: native code path + plt/collects/mzlib

From: Bill Richter (richter at math.northwestern.edu)
Date: Thu Apr 17 23:41:18 EDT 2003

   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

(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?

Posted on the users mailing list.