[gambit-list] Macros in Black Hole

Marc Feeley feeley at iro.umontreal.ca
Fri Feb 5 08:58:19 EST 2010


On 2010-02-05, at 8:48 AM, Álvaro Castro-Castilla wrote:

> 
> 
> El 5 de febrero de 2010 14:28, Marc Feeley <feeley at 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




More information about the Gambit-list mailing list