[Chicken-users] Redefinition of imported binding gets implicitly exported

2013-10-25 Thread Andy Bennett
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

Re: [Chicken-users] Redefinition of imported binding gets implicitly exported

2013-10-25 Thread Andy Bennett
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

Re: [Chicken-users] Redefinition of imported binding gets implicitly exported

2013-10-25 Thread Evan Hanson
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