2011-08-03 19 views
6

私はスカラではいくらか面倒な問題が発生しています。問題は、小さなスケーラプロジェクトを完璧にコンパイルできますが、プロジェクトが大きくなるとコンパイラはStackOverflowExceptionでクラッシュします。 明らかに、私はコンパイラのスタックサイズを増やす必要がありますが、これはおそらく私の主な問題です。netbeans 7.0とscalaの結果がstackoverflow

私は、これらのパラメータでのNetBeansを起動しています:

netbeans_default_options="-J-client -J-Xmx512m -J-Xss8m -J-Xms512m -J-XX:PermSize=128m -J-XX:MaxPermSize=512m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true" 

だから、私の知る限り承知しているとして、-J-Xss8mは8メガバイトにスレッドのスタックサイズを増やす必要があります。しかし、それはコンパイラに影響しないようです。

-deprecation -J-Xss8m 

しかし、再び、それは私がまだ取得しています、助けにはならない。だから私は、この結果として、私は、NetBeansで設定できるコンパイラフラグを使用して、直接コンパイラに同じパラメータを渡そうとしました例外。 netbeansのドキュメントを検索しましたが、私が見つけたのは、すでに設定したnetbeansの起動パラメータだけでした。私はこの問題をどのように処理するかについてのさらなる情報を私に与えてくれることを願っています。

詳細情報: 私はついに1台のマシンですべてを試してみました。私は同じ設定と同じコンパイラを使用しましたが、驚いたことに、私は同じ結果を得ていませんでした。つまり、彼のマシンでは、コンパイラは例外なくすべてのコードをコンパイルします。 私のコンピュータと彼の唯一の違いは、RAMとCPUの消費量が多いことですが、同じスタートアップオプションでネットビーンズを使用しているため、取引を行うべきではありません。

これまでのところ、私は2.9スカラコンパイラのRCを試してみましたが、あまり助けになりませんでした。また、2.9コンパイラで2.8プラグインを使用しているときに問題が発生する可能性があり、その逆の場合もあるので、正しいスカラプラグインがインストールされているかどうかを確認しました。しかし、私は2.9プラグインと2.9コンパイラを使用しているので、問題ありません。

+0

時々、同じスタックトレースが何度か見られました。私は、NetBeansとは無関係で、私のケースでは、コンパイラが正しく認識/処理できないタイプレベルのエラーが主に発生していると答えています。 –

+0

答えをいただきありがとうございました。友人の別のマシン。私の驚いたことに、彼のマシンではすべてうまくいったが、違いはない。同じコンパイラ、同じIDEを同じOSで使用します。私は私のオープニングポストの詳細情報を追加します... – Shelling

答えて

3

Scalaコンパイラにより多くのスタック領域を与える問題は、より多くのヒープ領域を指定することに似ています。 Scalaコンパイラの実行時には、これらのオプションの両方をカスタムJVM引数として指定する必要があります。しかし、Netbeansには、それを行う方法に関するあらゆる種類の文書が欠けているので、ここにあります。

Netbeansを使用してScalaコンパイラのカスタムJVM引数を指定する方法は、プロジェクトごとにbuild.xmlをカスタマイズすることです。

  1. 公開nbproject/build-impl.xmlプロジェクトのフォルダにあります。
  2. "scalac"を検索し、次のターゲット:-init-macrodef-scalacが見つかります。
  3. ターゲット定義全体をコピーし、build.xmlに貼り付けて保存します。
  4. 閉じるnbproject/build-impl.xml、今からbuild.xmlで作業します。
  5. <scalac>タグを見つけた場合、ネストは次のようになります。target.macrodef.sequential。scalac
  6. 次のようにscalacタグにカスタム "JVMARGS" 属性を追加し、それが見えます:< scalacのJVMARGS = " - Xss2048k -Xmx2000mを" ... >
  7. 保存のbuild.xml。今すぐnetbeansでプロジェクトをコンパイルすると、コンパイラはカスタムjvm引数で実行されます。
+0

ついにあなたの助けを借りて、設定を変更するようになった:) – Shelling

関連する問題