問題タブ [scala-compiler]
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.
scala - scalacで使用される中間言語?
GCC コンパイラー には、RTL、GENERIC、GIMPLE などの「中間言語」がいくつかあります。
この回答は、 の中間表現のアイデアを示唆していscalac
ます。
私の質問は: Scala にコンパイラの「中間表現」はありますか? これに関するドキュメントはありますか?
仮定:
- JVM バイト コードのことではありません。それより上の抽象化のレベルを意味します。
scala - scala を「2.10.3」にアップグレードしますが、私の jar ファイルには「2.10」しか表示されません
build.sbt で scalaVersion := "2.10.3" を指定していますが、./sbt パッケージの後にパッケージを myapp_ 2.10 -1.0.0.jar として取得しました。
myapp_ 2.10.3 -1.0.0.jar ではないでしょうか??
同様に変更する必要があるパラメータはありますか?
ありがとう!
scala - Scala ランタイム プラグイン システム
私は単純なアプリケーション サーバーに取り組んでおり、拡張プラグイン システムを作成したいと考えています。プラグインを構築するために、scala ソース ファイルを生成する特別なウィザードを作成する予定です。ビジネスロジックをアプリケーションサーバーに含めるために、自動コンパイルとこのファイルのロードが必要です。Scalaで行うことは可能ですか?このアイデアを実現するには、読んで実行する必要がありますか?
scala - Scala 2.10 でコンパイラが生成する暗黙の値は何ですか?
Scala リフレクション ガイドには次のように書かれています。
マニフェストと同様に、実際にはコンパイラに TypeTag を生成するように要求できます。これは、TypeTag[T] 型の暗黙の証拠パラメータを指定するだけで実行できます。暗黙的な検索中に一致する暗黙的な値が見つからない場合、コンパイラは TypeTag[T] を自動的に生成します。
このStackOverflow の回答は、「暗黙の証拠」の概念を美しく説明しています。ただし、コンパイラがTypeTag[T]を生成することが何を意味するのかは、まだ完全には明らかではありません。
これは、これが「暗黙の証拠」検索の特殊なケースであることを意味しますか? つまり、クラス TypeTag[T] は、コンパイラが暗黙的な検索を行うときに特別な方法で処理されますか? Scala リフレクション API で暗黙的なパラメーター値を探してみましたが、TypeTag[T] を提供するものは見つかりませんでした。そのため、TypeTag[T] の暗黙的なパラメーターはコンパイラーの内部から来ていると思います (ドキュメントにあるように)。したがって、クラス名 TypeTag[T] はコンパイラのソースにハードコードされています。この仮定は正しいですか?
暗黙的な値の自動生成はどこかに文書化されていますか? 言い換えれば、自動的に生成された暗黙の証拠をすべてリストしたドキュメントがどこかにありますか? Scala 言語仕様(バージョン 2.9)に TypeTag[T] が見つかりませんでした。TypeTag[T] に最も近い概念は、自動的に生成される暗黙のパラメーターであるマニフェストです。マニフェストは、Scala 2.9 で自動的に生成される唯一の暗黙的な値パラメーターですか?
scala - ScalaのIMainとGlobal.Runの違いは何ですか?
Scala 内から Scala コードを解釈したいと考えています。私はウェブ上で2つのアプローチを見つけました:
- IMain例ここ
- Global.Run例えばここ
性能に違いはありますか?また、評価の結果を知りたいです。
scala - Scala-compiler: jar をクラスパスに追加
次のコードがあります。
単一のクラスをコンパイルしようとしています。コンパイラは、指定されたファイルをコンパイルしようとします。しかし、コンパイラは Strat.jar で何も認識していないようです。コンパイラをコードで実行するときにクラスパスに jar を追加するにはどうすればよいですか?
私は2.11.0RC1を使用しています
scala - Scala `IMain` v. 2.11 の型 `()Int` と `Int` の違いは何ですか?
私は 2.11 のコンパイラと repl の新しい API をいじっていて、奇妙なことにぶつかりました。これが私のrepl出力です:
ご覧のとおり、 をtypeOfTerm("x")
返します()Int
が、 をtypeOfExpression("x")
返しますInt
。()Int
typeが type の変数を表す場合だと思いますInt
が、よくわかりません。誰かがそれを確認したり、私の混乱を修正したり、これについて話しているドキュメントに私を案内してくれたりしたら、私はそれを感謝します. 見つけたリフレクション ドキュメントを調べましたが、運がありませんでした。