[xyzzy:06552] Re: Q: 新関数 test 方法
- Subject: [xyzzy:06552] Re: Q: 新関数 test 方法
- From: KAMEI Tetsuya <kamei@xxxxxxxxxxxx>
- X-mailer: KaMail-0.0.2.4[01/03/14] on xyzzy-0.2.1.189 (windows-nt)
- X-yzzy-version: 0.2.1.189
平松さん、こんにちは。
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