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

From: Bill Richter (richter at math.northwestern.edu)
Date: Thu Apr 17 01:35:52 EDT 2003

I think I was not compiling native code correctly.  The mzc manual
seems to say that my .so files will only be used if I create them as:

mzc --extension --destination compiled/native/i386-linux  filename.scm 

So my .so files will not be found in the current directory:

     3.3  Autodetecting Compiled Files for Loading

     Native-code files are found in (build-path dir "compiled"
     "native" (system-library-subpath)) where dir is the directory of
     the requested file. 

and I get:

Welcome to MzScheme version 203, Copyright (c) 1995-2002 PLT
> (build-path "." "compiled" "native" (system-library-subpath))
"./compiled/native/i386-linux"


And that brings up the question of my top 2 commands:

(require (lib "list.ss")) 
(require (lib "etc.ss"))

but these files in ~/plt/collects/mzlib are only byte-compiled.  Don't
I need native code compiled files?  The mzc manual (Compiling
Collections) seems to say the way to do that is:

cd ~/plt/collects

mzc --collection-extension mzlib

Why wasn't this done automatically when I installed plt?  The native
code is supposed to be so much faster that the byte-compiled files.

Also, the brunt of my program is using `quicksort' from 
~/plt/collects/mzlib/list.ss

So it seems to me that until I native-compile list.ss, I'm not getting
the speed advantage.  However, since the definition begins:

  (define quicksort
    (polymorphic

I'm not tempted to just paste the definition into my own files.


Posted on the users mailing list.