スクリプト ヘッダーの Needs フィールドを処理するときの R3 の動作と、それが単語バインディングに与える影響について知りたいです。
バックグラウンド。現在、R3 を学習するために、いくつかの R2 スクリプトを R3 に移植しようとしています。R2 では、スクリプト ヘッダーの Needs フィールドは基本的に単なるドキュメントでしたが、スクリプトを実行するために必要なスクリプトを参照するカスタム関数と共に使用しました。
R3 は Needs 参照スクリプト自体を呼び出しているように見えますが、バインディングは他のスクリプトを実行するのとは異なるようです。
たとえば、%test-parent.r が次の場合:
REBOL [
title: {test parent}
needs: [%test-child.r]
]
parent: now
?? parent
?? child
%test-child は次のとおりです。
REBOL [
title: {test child}
]
child: now
?? child
R3 Alpha (Saphiron ビルド 2013 年 2 月 22 日/11:09:25) は以下を返します。
>> do %test-parent.r
Script: "test parent" Version: none Date: none
child: 9-May-2013/22:51:52+10:00
parent: 9-May-2013/22:51:52+10:00
** Script error: child has no value
** Where: get ajoin case ?? catch either either -apply- do
** Near: get :name
test-parent が %test-child.r によって設定された Child にアクセスできない理由がわかりません
test-parent.r ヘッダーから Needs フィールドを削除し、代わりに DO %test-child.r だけの行を挿入すると、エラーは発生せず、スクリプトは期待どおりに実行されます。