[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:06552] Re: Q: 新関数 test 方法



平松さん、こんにちは。

	2001年3月31日(土)[13:14:58]の、
	[xyzzy:06547] Q: 新関数 test 方法
	への返事です。

関数 load-library、require、autoload は、
 1 指定されたファイル名の末尾に".lc"を追加したもの
 2 指定されたファイル名の末尾に".l"を追加したもの
 3 指定されたファイル名そのもの
の順で、変数 *load-path* に設定されているディレクトリ
それぞれについてファイルが存在するかを調べて、最初に見
つかったものをロードします。

たとえば、*load-path* がデフォルト("site-lisp/" "lisp/")
のとき、(load-library "foo") とすると、
 1 site-lisp/foo.lc
 2 lisp/foo.lc
 3 site-lisp/foo.l
 4 lisp/foo.l
 5 site-lisp/foo
 6 lisp/foo
の順にファイルを探します(たぶん)。

また、初期化ファイルとして、siteinit.l と ~/.xyzzy が
ありますが、siteinit.l に書いたもの(siteinit.l でロー
ドしたもの)はダンプファイルに保存され、次回からの起動
では元のファイルは参照されません。したがって、元のファ
イルを変更した場合はダンプし直す必要があります。


…ということを踏まえて、

> 1. lispフォルダ内の aaa.l,  aaa.lc の関係
>       - aaa.lc優先で効果なし?

こっち。

>     また逆に、aaa.lを消しては駄目?

お好みで。

> 2. xyzzy.W98 と aaa.l, aaa.lc の関係
>      aaa.l/.lcを作り直すと、xyzzy.W98も作り直さないと駄目?

どこからロードしているかによります。

> 3. site-lispフォルダとlispフォルダの関係
>      どちらが優先 あるいは 読み込み順序?

*load-path* の設定によります。標準では site-lisp 優先。

> 4. aaa.lのみ登録で、aaa.lcがない時は、質問2/3は?

同じ。

> 5. パソコンのrestartをかけないと、反映されないことがある?

ない。

> 6. filerのupdate方法 = 関数foo()の追加、key-bindの仕方
>      - 関数foo()をsite-list/foo.lとしてsave。
>        このとき、これをfiler.l内に書いたのと同じ効果を
>        出す方法は?

特に何もしなくてもだいたい同じです。必要であれば foo.l 
の先頭に (in-package "editor") を書けば 99.75% ぐらい
同じになりますが、本当に必要でなければ in-package しな
い方が無難です。

> 7. provide, in-package関数の使い方

provide は require とセットで使用します。
たとえば、bar.l に (provide "bar") と書いておくと、別
の場所で (require "bar") としたとき、まだ bar.l がロー
ドされていない場合だけロードされるようになります。たい
ていの場合は provide を使う必要はありませんが、他のモ
ジュールとファイル名が重複しない限り害はないので、縁起
物として書いておいても構いません。

in-package は面倒なんでパス。とりあえず、必要でない限
り使わない方がいいということにしておきます。

>     6のようにしたとき、foo.lに書く内容としてこれらの関数が
>     関係しますか?

したりしなかったり。


> 新しい関数をcheckしたい=test方法(仮、実験)中心で、よろしくお願い致します。

そういう用途だと、C-x C-e とか、*scratch* での C-j と
か、eval-buffer とかがお手軽です。

-- 
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx

Index Home