Hi,
With the following in m.scm:
-
(module m
(do-something)
(import chicken scheme)
(use posix)
(define process (make-parameter 'hello))
(define (do-something)
(printf Doing something...\n))
)
-
...and compiled thusly:
csc -s -O2 -d1 m.scm -j m -o m.so
csc -s m.import.scm
Hi,
I get the wrong binding for process when I (use m):
-
#;1 (use m)
; loading ./m.import.so ...
; loading ./m.so ...
#;2 (process)
hello
-
Of course... I was expecting the posix unit's binding for process:
-
#;1 (use posix)
; loading library posix ...
#;2 process
Hi Andy, all.
I looked into this recently since it also seemed like a bug to me, but
the behavior seems to be intentional judging from the code.
A workaround is to exclude `process` from the import list in `m` (as in
`(import (except posix ...))`) -- this prevents the behavior you're
seeing, at