問題タブ [scalac]

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 投票する
3 に答える
552 参照

performance - 特定のシナリオでscalacが末尾再帰を最適化できないのはなぜですか?

scalac ( Scalaコンパイラ)が末尾再帰を最適化しないのはなぜですか?

これを示すコードとコンパイラの呼び出し:

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

java - スカラセッターメソッド「myvar_$eq(myval)」をJavaでより快適なものにエイリアスするにはどうすればよいですか?

私は最近、自分自身に言語を教えようとして、いくつかのコードをJavaからscalaに変換しています。

このscalaクラスがあるとします。

今、私はJavaからアクセスしたいので、scalaにいる場合のようにドット表記を使用することはできません。

したがって、次のように発行することで、変数の内容を取得できます。

次の方法で設定します。

これは、私たちのPersonクラスがjavapで次のように見えるために当てはまります。

はい、私は自分のゲッター/セッターを書くことができましたが、クラスをそれで満たすことは嫌いであり、すでにそれらを持っていることを考えるとあまり意味がありません-私は_$eqメソッドをより良くエイリアスしたいだけです。(これは、antlrのようなものを扱っている場合、実際にはさらに悪化します。これは、それをエスケープする必要があり、person.name _ \ $ eq( "newname");のようになってしまうためです。

注:クラスをより多くのセッターメソッドで満たすのではなく、これに我慢する必要があります。

では、この状況であなたはどうしますか?

0 投票する
5 に答える
8175 参照

java - vararg を使用するメソッドと使用しないメソッドの間で Scala で曖昧さを解消するにはどうすればよいですか

Scala の Java jcommander ライブラリを使用しようとしています。Java JCommander クラスには複数のコンストラクタがあります。

可変引数を取らない最初のコンストラクターを呼び出したいです。私は試した:

エラーが発生します:

名前付きパラメーターも使用してみましたが、同じ結果が得られました。

可変引数を取らないコンストラクターを呼び出したいことを Scala に伝えるにはどうすればよいですか?

Scala 2.8.0 を使用しています。

0 投票する
2 に答える
733 参照

scala - FSC は毎回再コンパイルします

FSC は、必要がなくても毎回私の .scala ファイルを再コンパイルします。試行の間に何も編集せずに 2 回コンパイルでき、それらを再コンパイルします! たとえば、2つのファイルがあります

Hello.scala

そして Tokens.scala:

ant にプロジェクトを最初からコンパイルするように依頼すると、次の出力が表示されます。

私は何も編集せず、再度 ant コンパイルを依頼します。

ご覧のとおり、fsc は Hello.scala の場合はスマートに動作し (再コンパイルなし)、Tokens.scala の場合は愚かに動作します。問題は何らかの形で継承に関連していると思いますが、それだけです。

では、何が問題なのですか?

0 投票する
2 に答える
1696 参照

scala - Scala Fast Compilation サーバー (FSC) のタイムアウトをオフにするにはどうすればよいですか?

Scala コンパイル サーバーを使用しています。これはおそらく私の IDE IntelliJ IDEA とは関係ありませんが、その IDE で特別な実行構成を使用して Scala コンパイル サーバーを起動したことをお知らせします。

何もコンパイルせずにしばらくすると、コンパイル サーバーはメッセージなしで終了します。通常、何かをコンパイルしようとしてコンパイルが失敗したときにのみ、これに気付きます。次に、コンパイル サーバーを再度起動する必要があります。もちろん、次のコンパイルには長い時間がかかります。これは、コンパイル サーバーを起動してから最初のコンパイルであるためです。

そのタイムアウトをオフにするにはどうすればよいですか? scalac のマンページを見たところ、オプションがないようです。その実行構成に VM オプションを追加できます。

0 投票する
4 に答える
4309 参照

scala - scala コンパイラ フェーズの順序は?

scala コンパイルのフェーズのイメージを明確にしたいと思います。コンパイラで特定のことが発生する必要があることは知っていますが、それらが発生する順序と、その順序がプログラミングにどのように影響するかはよくわかりません。

次のことは、コンパイラが行うことの完全なリストであると言っているのは正しいですか?

  • 解析プログラム
  • タイプをチェック
  • 消去する
  • 暗黙の変換
  • 生成されたバイトコード
  • 最適化

もしそうなら、これらのフェーズを実行する順序は何ですか? この順序は、プログラマー、特に型レベルのプログラマーにどのように影響しますか?

0 投票する
3 に答える
320 参照

scala - scalac プラグインを複数のファイルに分割する

scalacプラグインを複数のファイルに分割したいと考えています。これは簡単に聞こえますが、行に起因するパス依存のタイプの問題により、うまくいきませんでしたimport global._

Lex Spoon のサンプル プラグインは次のとおりです。

スコープ内になくても、独自のファイルにComponentどのように配置できますか?DivByZeroPhaseimport global._

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

scala - 特定のフェーズの後に Scala コンパイルを停止する

次のようにインプロセスでプラグインを実行して、プラグインをテストしています。

ただし、速度が遅いscalacため、特定のフェーズの後 (具体的には、プラグインの実行後) にコンパイルを終了したいと考えています。残念ながらGlobal.cancel、意図した効果はありません。どうすればこれを行うことができますか?

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

scala - 実行時の依存関係としてscala-compiler.jarを追加する

sbtとそのProguardプラグインを使用して、プログラムの実行可能jarを作成しています。scala-compiler.jarただし、私のプログラムは実行時にコンパイルを行うことに依存しています。scala-compiler.jar私は私の最後の瓶に入ることができないようです。このページには非常によく似た情報がいくつかありますが、最初から最後まで機能させることができません。助言がありますか?

編集:これは私が得た最も近いものです:

これには、proguard min jar内のコンパイラjarが含まれますが、それを実行すると、次のようになります。

0 投票する
3 に答える
6069 参照

java - Java コードを解析する Scalac からの永久に隠された警告 - コンパイラのバグ?

scalac Java パーサーが私の Java コードに異議を唱えています

これは、コンパイルされているパッケージ内の同じ名前のインポートとクラスの間の衝突のようです。

私のパッケージにはクラスがあります

別のパッケージからインポートされたクラスと同じ名前を持つ

インポートについて不平を言っているところ。Javac はとても満足しています。クラスのバージョンを参照する必要がないことに注意してください。その存在だけで、インポート時に警告がトリガーされます。

インポートを削除して @Entity を明示的に参照することでこれを修正できますが、これはコンパイラのバグですか?