*iroi*

mechairoi の Blog

Gaucheのreplとmodule

gaucheでreplを使おうと思って色々試してたんだけど、 replを開いたときのモジュールがどう決まるのかよくわからん。 特に問題ないんだけど気になる。

(select-module user)
(print (current-module))
(read-eval-print-loop)
(print)

(print "-------------")

(define-module aaa)
(select-module aaa)
(print (current-module))
(read-eval-print-loop)
(print)

(print "-------------")

(select-module user)
(with-module aaa
  (begin
    (print (current-module))
    (read-eval-print-loop)))

とかして実行して、3回のreplでそれぞれ(current-module)と^Dを入れると,

#<module user>
gosh> (current-module)
#<module user>
gosh>
-------------
#<module aaa>
gosh> (current-module)
#<module aaa>
gosh>
-------------
#<module aaa>
gosh> (current-module)
#<module user>
gosh>

うーん?

gosh -V
Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]