問題タブ [mop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
common-lisp - すべての継承ツリーからスロット定義リーダーを収集する方法はありますか?
ジェネリック関数slot-definition-readers
は、 でなければならない引数を取得しますdirect-slot-definition
。オブジェクトが別のクラスから継承するクラスのインスタンスである場合、オブジェクトのすべての有効スロットのリーダーを取得するにはどうすればよいですか? 手動でツリーをトラバースし、各スーパークラスslot-definition-readers
の結果を呼び出して結果をclass-direct-slots
収集する必要がありますか、それとも私が認識していない別の方法がありますか?
security - スクリプトを呼び出す前に Groovy CallSiteArray をスキャンする
そのため、私は groovy を使用してアプリケーション スクリプト インターフェイスを実装していますが、これらはかなり厳格なセキュリティ要件です。
コンパイル時に、ホワイト リストとブラック リストの長いリストと式チェッカーを使用して SecureASTCustomizer を使用し、最初からコンパイルしたくないものがないことを確認します。
ただし、コンパイルされたスクリプトは、理論的には変更可能な永続ストアに格納されます。
そのため、コンパイルされたスクリプトを実行する前に確認する必要があります。現時点では、invokeMethod を介した各パスをチェックするカスタム MetaClassImpl を返す MetaClassCreationHandle のインスタンスで処理しています。
ただし、これによりパフォーマンスのオーバーヘッドが発生します。
スクリプトがインスタンス化されると、"Script".$callSiteArray が invokestatic "Script".$getCallSiteArray() の結果に設定されます。
そのメソッドを自分で呼び出す方法、または構築された呼び出しサイト配列を利用できるようにして、それを調べて同じ種類のチェックを行う方法はありますか? それとも、グルーヴィーな CallSites に十分な情報がありませんか?
Groovy のバージョンは (残念ながら) 2.1.6 に修正されています
raku - コンテナがクラスかオブジェクトかを調べる
文法がクラスまたはシングルトンであることに興味があったので、次の小さなプログラムを作成して調べました。
これは複数のディスパッチを使用してそれを見つけ、Mini
実際にはクラスであることがわかります。一般に、これを見つけるためのより短い方法はありますか? または、パッケージがインスタンスである可能性のある実際のクラスを知る必要がない方法はありますか?