On 2010-02-05, at 8:48 AM, Álvaro Castro-Castilla wrote:
El 5 de febrero de 2010 14:28, Marc Feeley feeley@iro.umontreal.ca escribió:
On 2010-02-05, at 8:17 AM, Álvaro Castro-Castilla wrote:
A) If I use import, it says that c-lambda is not available in interpreted mode. But then I'm trying with compile-modules! However, it tries to write to /usr/lib/modules/ns.dat, and I don't have the permission. Using this compiler option:
bsc -:~~DIR=/data/projects/scheme -i
I'm just guessing, but you probably meant:
bsc -:~~=/data/projects/scheme -i
The "DIR" part is a meta variable in the documentation, to be replaced by "lib", "bin", etc or be empty when the central installation directory is meant (i.e. the meaning of a path like "~~/...").
Also, in your Scheme files (and maybe blackhole) there seems to be references to the library directory with a path like this:
~~/lib
Note that it is better to use
~~lib
so that proper redirection will occur (if the system is started with -:~~lib=/foo/bar).
Marc
Ah, I tried that, but then it doesn't find gambit#.scm, and with ~~bin it gives a weirder error:
*** ERROR IN #<procedure #2>, "/usr/lib64/modules/module.scm"@1038.23 -- No such file or directory (open-process '(path: "/data/projects/scheme/gambc-cc.bat" arguments: ("dyn") directory: "/data/projects/scheme/" environment: ("GAMBC... )
I tried doing this as root and it works. I guess that if I don't have access to default ~~lib, then I need to copy all the gambit library distributed files to the place where ns.dat could be written?
As root you could change the write permission of /usr/lib/modules to allow you or the group you are in to write. This of course has obvious security issues. Perhaps blackhole should distinguish between modules that are available system-wide and those that are user specific.
Alternatively, compile the Gambit system from scratch and install it in your home directory. Something like this:
./configure --prefix=/home/foobar/gambit --enable-single-host make make install
Then ~~lib will be /home/foobar/gambit/lib and you will have write access to it.
Marc