問題タブ [mirah]
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.
android - 言語ランタイムなしのJVMベースの言語
誰かがいくつかの代替JVM言語を知っていますか、それがわかりにくいかもしれませんが、言語ランタイムを必要とせずに、プレーンな古いJavaバイトコードにコンパイルできます。
スタートアップやサイズのペナルティなしでAndroidアプリケーションを開発しようとするためにこれが必要です。Scala、Clojure、Groovyはすべて、アプリケーションとともに配布される独自のランタイムライブラリを必要とするため、この質問の範囲外です。
この目標を達成すると主張する唯一の言語はCharlesNutterのMirahですが、私はそれをWindowsで動作させることができませんでした。
編集:少し明確にするために、私はどの言語にもランタイムライブラリがなければならないことを知っています。明らかに、私が探しているのは、JRE以外に追加のランタイムを必要としない言語、または少なくとも非常に限られた言語です。
scala - MirahはJRuby、Groovy、Scalaに対して何を提供していますか?
Mirah言語は、JRuby、Groovy、Scalaに対して何を提供しますか?
android - ruby on android : ruboto vs rhodes?
Ruby を使って Android アプリを開発しようとした人はいますか? もしそうなら、どのツールをお勧めしますか? 両方を比較して、長所と短所は何ですか?
経験、洞察などの共有は大歓迎です。
gem - 「タスク「ブートストラップ」の作成方法がわからない」とはどういう意味ですか?
ここの指示に従って、ミラを構築しようとしていました。ステップ 'rake gem' で、いくつかの警告と失敗通知を受け取りました。出力のサンプルは次のとおりです。
警告: org/dynalang/dynalink/MonomorphicCallSite.class(org/dynalang/dynalink:MonomorphicCallSite.class): メジャー バージョン 51 は、このコンパイラでサポートされている最高のメジャー バージョンである 50 よりも新しいです。コンパイラをアップグレードすることをお勧めします。注: /Users/paul/dev/interesting/mirah/src/org/mirah/DynalangBootstrap.java は非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。4 つの警告 jar のビルド: /Users/paul/dev/interesting/mirah/javalib/mirah-bootstrap.jar レーキが中止されました! タスク「ブートストラップ」の作成方法がわからない
この問題のトラブルシューティングを開始するにはどうすればよいですか? たとえば、どのコンパイラをアップグレードする必要があり、どのようにアップグレードできますか?
mirah - どうすればミラを学ぶことができますか?
Mirahでは、JVM言語を参照しています:http://www.mirah.org/
オンラインで入手できる唯一の有用なドキュメントは例です。ルビーのような構文だと言っているのは理解できますが、ミラ特有の癖があると思います。
さまざまな構文の癖を特定するにはどうすればよいですか?ミラを学ぶには、ルビー自体を学ぶだけで十分でしょうか?
ありがとう!
mirah - mirah スクリプトの例を実行しようとしているときにエラーが発生しましたか?
サンプル フォルダーから取得した mirah スクリプトを実行しようとしたときに、これを取得しました。どうすればこれを修正できますか、ありがとう!
android - Android アプリケーション開発における SL4A と Ruboto の比較
JRuby (または Ruby for Android の適切なバリアント) を使用して、Android でアプリを作成することを考えています。
私の調査によると、Android での Ruby 開発をサポートする現在 2 つのプロジェクトがあります。
- ルボト
- SL4A
githubの Ruboto wikiのFAQから、 Ruboto はアプリケーション開発の準備ができているようですが、まだ JIT コンパイルをサポートしておらず、アプリケーションは (モバイル デバイスのインストール用に) 大きなフットプリントを与えるライブラリでパッケージ化する必要があります。
SL4A について十分な知識はありませんが、SL4A も JVM で JRuby スクリプトを実行しようとしているようです。ただ、肝心なのはSL4Aがまだアルファ版なので、アプリ開発に使えるかどうかはわかりません。
これらのプラットフォームの知識が豊富な人は、どのプラットフォームを使用すべきかを提案できますか? また、近い将来、JIT(パフォーマンス)、フットプリントの削減、Android への API アクセスの向上という点で成熟する可能性が高いのはどれでしょうか?
mirah - Mirah が提供するメタプログラミング機能は何ですか?
Mirahのホームページによると
Mirah は、コンパイル時のメタプログラミングとマクロのさまざまなメカニズムをサポートしています。Mirah では、動的言語の「オープン クラス」の感覚の多くが可能です。
しかし、私は詳細を見つけることができません。誰か詳しい情報を持っていますか?
java - 複数のソースディレクトリをコンパイルするMaven android
このarchetypeを使用して Maven Android プロジェクトを作成しました。mirahソース ファイルをプロジェクト内に統合したいと考えています。そこで、ここで説明したプラグインを pom.xml に追加しました。プラグインの構成セクションをセットアップして、ソース ディレクトリが src/main/mirah を指すようにします。
しかし、実行するmvn compile
と、src/main/java 内のソースのみがコンパイルされます。問題をデバッグするために実行しmvn -X compile
てみましたが、mirah または mirah-maven-plugin に関連するものは見つかりません。
アーキタイプを使用して、 project と project-it (tests) という 2 つのプロジェクトを作成しました。ルート ディレクトリには pom.xml があり、project と project-it ディレクトリには pom.xml があります。ルート ディレクトリとプロジェクトの pom.xml の両方で上記の構成を試しました。
build-helper プラグインの使用に関連するこの質問に遭遇しましたが、私の場合に役立つかどうかはわかりません。私のミラプラグインがまったく呼び出されていないためです。
これは私がやろうとしていることをする正しい方法ですか? セットアップに関するヘルプ、またはこれをトラブルシューティングする方法へのポインタは大歓迎です。
私のpom.xmlの関連ビット
以下の回答に従って編集されました。
build-helper プラグインを使用してソース ディレクトリを追加しましたmvn org.mirah.maven:maven-mirah-plugin:1.0:compile
。以下の回答を使用して mirah ソースをコンパイルすることができます。ただしmvn compile
、src/main/java のソースのみをコンパイルし、src/main/mirah はコンパイルしません。
mvn -X compile
ここの出力に興味がある人は、パスティがあります。
ruby - Ruby / JRuby の __getattr__ のような Python
Python __getattr__
for Ruby のようなものはありますか? Python ではobj.__getattr__
、未定義の属性 (メソッドまたはプロパティ) が参照されたときに呼び出されます。Rubyで見つけましmethod_missing
たが、プロパティでは機能しません。
私の使用例は次のとおりです。Mirahを JRuby -> Java コンパイラとしてテストしています。標準の JRuby では、Swing のメソッドと属性は "Rubyfied" (例: label.setText "x" => label.text = "x") ですが、Mirah には JRuby のような独自のランタイム ライブラリがないため、Mirah ではそうではありません。 . 次に、実行時に属性参照を取得し、各呼び出しを対応する Swing メソッドにマップします (label.text => label.getText() / label.text = "x" => label.setText("x") ) .