問題タブ [rubinius]
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.
ruby - Rubyで高性能計算?
私の同僚は通常、高パフォーマンスの計算 (大量のデータ配列の計算) に C または Fortran を使用します。Ruby コードをコンパイル/変換して、パフォーマンスの点で最適化された C コードに近づける可能性はあるのでしょうか?
Ruby をバイトコード (Rubinius、JRuby、IronRuby、YARV?、Cardinal) にコンパイルしたり、ネイティブ コード (MacRuby、..?) にコンパイルしたりするプロジェクトは多数あります。C のパフォーマンスに近づく可能性はどのくらいですか?
また、Ruby コードを C コードに変換する非アクティブなプロジェクトとして、約 2 年間、ruby2c があります。
関連する質問:
ruby - Rubinius は File クラスのメソッドを認識しません
ファイル操作が多いプロジェクトがあります。コードをコンパイルできるようにする必要があるため、Rubinius を試しています。を含むコードを実行しようとすると
次のエラーが表示されます。
これを認識させるために含める必要があるものはありますか? ところで、私もDir.existsを試しましたか? それはエイリアスであるため、それも機能しませんでした。このメソッドが 1.8.7 に存在しなかったのは問題ですか? のリストが見つからないようです
vm-implementation - Rubinius VM での言語の作成
言語を作成するために Rubinius VM をいじってみたいと思っていますが、ドキュメントを読んだだけでは、どうやって始めればよいのかまだよくわかりません。プロジェクトを見ても、vm の解析と使用がどこで行われるのかまだわかりません。誰もこれのためのリソースを持っていますか?
ruby - ミックスインはRubiniusのどこに実装されていますか?
Rubiniusソースのどこにモジュールを含める責任があるコードがありますか?(具体的には、モジュールをオブジェクトクラスのスーパークラスとして配置します)。
jvm - アーリーコールによるメソッドディスパッチキャッシュのプリロード?
キャッシングは、VM が静的な「v-table」ベースのメソッド ルックアップに匹敵する動的メソッド ディスパッチを作成するために使用する通常の戦略です。これを利用して、アプリケーションが作成すると予想されるさまざまなオブジェクトのメソッドをインテリジェントに「事前に呼び出す」ことができますか?これにより、そのメソッドが「通常の」実行フローでプログラムによって実際に使用されるときにキャッシュ ミスを回避できると期待できますか? このプラクティスが奨励されているか、何らかの方法で簡単になっている VM を使用する言語はありますか? プログラムが多くの作業を行っていないときに、VM 自体でこのプロセスを自動化できますか?
ruby - Ruby で Fixnum の + (プラス) メソッドを再定義し、元の + 機能を保持するにはどうすればよいですか?
これにより、1.9.2 Ruby で SystemStackError がスローされます (ただし、Rubinius では機能します)。
しかし、 (他のエラーに基づいて) super
forはありません。+
+
元の機能にアクセスするにはどうすればよいですか?
ruby - RUBY_ENGINEのどの値がどのRuby実装に対応しますか?
実行時にRubyの実装(MRI、JRuby、Rubiniusなど)を検出するために私が知っている方法は、グローバル定数をチェックすることRUBY_ENGINE
です。
既知のRuby実装とそれに対応するRUBY_ENGINEの値の合理的に包括的なリストは何ですか?
ruby - ルビニウス:公式の方法として列挙子を生成する方法は?
怠惰な配列を生成するための次の簡単なコードがあります。
公式のRuby1.9.3では、出力は[1,2,3,4,5]
、私が欲しいものです。
しかし、ルビニウスでは、エラーが発生し、列挙子定数が見つからないことがわかります。
それで私はそれを調べて、列挙子がEnumerable
の代わりにモジュールで定義されていることを見つけました、そしてkernel
それが生成されるとき、それは括弧内にいくつかの引数を必要とします:http:
//rubydoc.info/github/evanphx/rubinius/master/Enumerable/Enumerator
より多くの引数が必要なため、またはに変更しようとしましたが、どちらも機能しEnumerator.new
ませEnumerable::Enumerator.new
ん。include Enumerable
上記の例をRubiniusで行うにはどうすればよいですか?公式とRubiniusの両方でコードを機能させる方法はありますか?
rvm - Capistrano +RVMrvm_install_rubyとRubinius
デプロイメントホストのセットアップを完全に自動化しようとしているので、Rubyの手動インストールを避けています。
私はcapistrano-rvm
仕事をすることを約束しているので使用していますが、RVMがRubiniusをコンパイルするときに問題があります:
の内容/home/app/.rvm/log/rbx-2.0.0pre/rake.log
は次のとおりです。
どうすればいいですか?それはRVMによって行われるべきでしたね?
誰かがすでにこの問題に会い、抜け出しましたか?
編集
RVMが1.8.7
以前rbx
にロードとコンパイルを行ったことを忘れましたが、ビルドへの依存のようです。たぶん、RVMは正しく初期化されていないgemセットで実行されていますか?
ruby - RubiniusにGzipReadereach_lineメソッドがありません
Zlib:GzipReaderを使用してgzip圧縮されたファイルを読み取ろうとしています。これはruby1.9.3を使用すると期待どおりに機能しますが、Rubiniusを使用するとmethod_missing
エラーが発生します。each_line
Rubiniusを使用してgzip圧縮されたファイルを読み取る方法はありますか?