[gambit-list] How to avoid the warning about a undefined variable?

Vok Vojwo ceving at gmail.com
Wed Nov 16 11:24:46 EST 2011


I have a simple module:

$ cat a.scm
(##namespace ("a#"))
(##include "~~lib/gambit#.scm")
(##include "a#.scm")
(define a "a")

And the corresponding header:

$ cat a#.scm
(##namespace ("a#" a))

And a script which uses this module:

$ cat b.scm
#!/usr/bin/env gsi-script
(load "a")
(##include "~~lib/gambit#.scm")
(##include "a#.scm")
(define (main . args)
  (write a)
  (newline))

I can run the script without problems:

$ gsi b
"a"

It works the same if I use it interactively:

$ gsi
Gambit v4.6.2

> (load "b")
"/home/szi/gambit/modules/b.scm"
> (main)
"a"
> ,q

But when I compile the two files:

$ gsc a
$ gsc b

The compiled version produces a warning although the symbol gets
evaluated correctly.

$ gsi b
*** WARNING -- Variable "a#a" used in module "b.o1" is undefined
"a"

Why? And what do I have to do to avoid the warning?



More information about the Gambit-list mailing list