On Feb 5, Per Eckerdal scribed:
I just figured this out today: $ cat ~/.gambcini ; load blackhole, always (load "~~/lib/syntax-case") (load "~~/lib/modules/build") $ gsc -:s,dar Gambit v4.6.0
That will work. The load syntax-case will be a no-op, though, because BH and syntax-case attach to the same callback so BH will overwrite syntax-case. So I don't think you get syntax-case macros even if you do it that way. The code that I run before the REPL starts is this:
(and (equal? (path-strip-directory (car (command-line))) "bsc") (load "~~lib/modules/build") (let () (##namespace ("module#")) (##include "~~lib/gambit#.scm")
;; It's possible to do some configuration of BH here if desired. (println "Loaded Black Hole.")))
I have a symlink in PATH that points to gsc. That way I can start Black Hole by running bsc and non-black hole gambit isn't affected.
/Per
Thanks Per.
I remember I had to play with it to get it to work. The load order actually mattered. If I didn't load syntax-case:
(import (std srf1/1))
*** ERROR -- No such file or directory (path-normalize "srf1/1.scm" #f "C:\tools\GAMBIT~1\v4.6.0\lib\modules\std\")
If I load syntax-case last:
(import (std srfi/1))
*** ERROR -- invalid module specifier (std srfi/1)
I'm basically a newbie to Scheme, but I have a couple of months playing with Chicken. I really liked Chicken's module system and eggs and see BH in a similar role (modules and controlled namespaces that R5RS doesn't provide). Once I get a set of libraries up and running, I can't imagine using Gambit without BH loaded.
Thanks, Dave