問題タブ [rakudo]

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.

0 投票する
1 に答える
205 参照

raku - Apocalypse #1 で導入された「セマンティック モデル」とは何ですか?

Apocalypse #1で、ラリーは次のように書いてます。

Raku は、単一のセマンティック モデルに対応する複数の構文をサポートします。次に、その単一のセマンティック モデルが複数のプラットフォームにマップされます。

ラリーが「単一のセマンティックモデル」を書いたときに何を意味していたのかについて、私が持っているいくつかの漠然とした考えは次のとおりです。

  • チューリング完全言語/オートマトン; および/または

  • 6モデルになったもの; および/または

  • NQP/nqpになったもの。

(私はググっていくつかの議論を見つけました。たとえば、これは slashdotにありますが、それらは同様に漠然としていました。)

おそらく、彼が考えていたことに対する答えよりも重要なのは、何が実現したかということです。

彼の定式化は、 NQP および/または nqp (Raku / NQP/nqp / NQP バックエンド アーキテクチャの中間) にマッピングされる可能性があるように聞こえます。

(もしそうなら、おそらくそのモデルは nqp の Raku のローストに相当するものによって「指定」されていますか?)

または、Liz++、QAST、または RAST ごとに?


私の主要な質問 (タイトル) に最もよく答えることができると思う人は知っていますが、おそらく他の誰かが知っていますか?

0 投票する
1 に答える
78 参照

documentation - Raku のイントロスペクションは、異なるファイル/モジュールにまたがるすべてのマルチ候補を一覧表示できますか?

proto と multi が同じモジュールで定義されている場合、Type.^lookup('method').candidatesすべての multi 候補のリストを返します。ただし、プロトがマルチとは異なるファイル/モジュールにある場合、これは機能しないようです。

Raku の内省を通じて、複数候補の完全なリストを見つける方法はありますか? または、ソース コードを grep する以外に方法はありませんか? (特定のプロトに適用可能な複数の候補の完全なリストがあると、文書化の目的に役立つため、お願いします。)

0 投票する
1 に答える
133 参照

compilation - 実行されていないコンパイル時のコードによって Raku のバイトコード サイズが増加するのはなぜですか? 実行時のパフォーマンスが低下しますか?

次の 2 つのプログラムを検討してください。

単純に、両方のプログラムがまったく同じバイトコードにコンパイルされることを期待していました。CHECKブロックは、コンパイルの最後に実行するコードを指定します。変数をチェックしてから何もしないことは、プログラムの実行時の動作に影響を与えないため、コンパイルされたバイトコードに含める必要はありません。

ただし、これら 2 つのプログラムをコンパイルしても、同じバイトコードにはなりません。具体的には、CHECKブロックを使用しないバージョンをコンパイルすると、24K のバイトコードが作成されますが、ブロックを使用するバージョンでは 60K が作成されます。これら 2 つのバージョンでバイトコードが異なるのはなぜですか? このバイトコードの違いには、ランタイム コストがありますか (または潜在的に) ありますか? (そうしなければならないように思えますが、私は確信したいのです)。

そして、もう 1 つの関連する質問:DOC CHECKブロックはどのように上記に適合しますか? 私の理解では、フラグを指定して実行されていない場合、コンパイラDOC CHECKでさえブロックをスキップします。--docそれと一致して、hello-world プログラムのバイトコードは、上記のようなブロックが与えられたときにサイズが増加しません。DOC CHECKただし、ブロックにステートメントが含まれている場合はサイズが大きくなります。そのことから、それはどういうわけか特殊なケースであり、ブロック内でも実行されるuseと結論付けています。あれは正しいですか?もしそうなら、私が知っておくべき他の同様に特別なケースのフォームはありますか?useDOC CHECK