JMP16 の致命的なバグこれは質問ではなく、JMP16 に移行してからスクリプト内で最近気づいた問題に注意を喚起しているだけです。名前空間です( ... )削除された名前空間に対して真の値は返されませんが、JMP16.2 では返されます (ただし、JMP14.3 では返されません)。
このため、次のスクリプトは JMP16.2 をクラッシュさせます。
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ),
ns:ns:__item__ = 4;
);
この問題を回避するには、スクリプトをこれと同等のものに変更する必要がありました。
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ) & !Is Missing( ns:ns << Get Name ),
ns:ns:__item__ = 4;
);
自動化とスクリプト作成Re: JMP16 の致命的なバグここで何か更新はありますか?
の候補のようですJmp と JSL の小さなトラップ...
Re: JMP16 の致命的なバグ実はその理由を今思い出したのですが --名前空間が存在しますは変数の値を調べて、その値が名前空間を表すことができるかどうかを示します。名前空間です変数が直接名前空間であるか名前空間参照であるかを示す必要があります。
このため、このコードは失敗します。
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Namespace Exists( ns name ),
Show( ns name:item )
);
一方、これはそうではありません:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Is Namespace( ns name ),
Show( ns name:item )
);
Re: JMP16 の致命的なバグははは、あなたの投稿をよく読んでいませんでした。確かにこれは機能するようですが、コード内で何らかの理由でこのメソッドを使用しなかったような漠然とした感覚があります。その理由は今は思い出せませんが。
Re: JMP16 の致命的なバグ私はNamespace Exists()を意味しましたが、これはIs Namespaceとは異なるようです(または、ここで何かが欠けている可能性があります)
Names Default To Here(1);
Clear Log();
Delete Namespaces();
ns = New Namespace();
ns:ns = New Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
ns:ns << Delete Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
/*Namespace Exists(ns:ns) = 1;
Is Namespace(ns:ns) = 1;
Namespace Exists(ns:ns) = 0;
Is Namespace(ns:ns) = 1;*/
Re: JMP16 の致命的なバグ@jthi 、裸の名前空間の場合は機能しますが、次のようにスコープ付きの名前空間を指定する場合は機能しません。
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
Re: JMP16 の致命的なバグこの情報をいただきまして誠にありがとうございます。 JMP 開発者は、見つかった問題を調査して記録し、将来のリリースで修正できるようにしました。
Re: JMP16 の致命的なバグ見つけてくれてありがとう。 これを再現することができたので、調査のために JMP サポートにレポートを送信しました。
ダン
JMP製品管理。
Re: JMP16 の致命的なバグナイスキャッチ! 次の 17 ベータ版までに手遅れにならないことを願っています。
Re: JMP16 の致命的なバグNamespace Exists() は、削除された名前空間に対して 0 を返すようです。
Re: JMP16 の致命的なバグはい、今日も報告させていただきました。最新情報があればここに投稿します -- ただし、チームはおそらくこの問題をすでに認識していると思います。
Re: JMP16 の致命的なバグこのことは JMP サポート担当者に報告されましたか?