Gauche > Archives > 2017/11/02

2017/11/02 14:26:36 UTCkaki
#
R7RSスクリプトを load すると、カレントモジュール(或いは :environment で渡したモジュール)ではなく r7rs.user にロードされるのが罠な気がしています。オプション無しで起動したREPLからロードした場合、ロードした定義がそのままでは見えないので。REPLの場合は予め -r7 オプションを付けて起動するか、後から (select-module r7rs.user) (import (gauche interactive)) すればいいですが、知らないと引っかかります。指定したモジュールに読み込んでくれないのもちょっと気になります。
#
ついでにこれ調べてて思ったんですが、user#import が user モジュールから export されていてもいいんじゃないかと思いました。
2017/11/02 14:51:36 UTCkaki
#
-r7 付けても -e に渡した式は user モジュールで評価されるんですね。
2017/11/02 17:46:18 UTCkaki
#
例えば、R7RSプログラムのテストをGaucheで書く場合、
#
(use gauche.test)
(test-start "foo")
(load "./foo.scm")
(select-module r7rs.user)

(import (gauche base)
        (gauche test))
(test-module 'r7rs.user)

...
#
みたいな感じになるんでしょうか。