NetBeans 7.0 и результаты Scala в стеке потока - PullRequest
6 голосов
/ 03 августа 2011

Я испытываю некоторые довольно раздражающие проблемы со скалой.Проблема в том, что я могу отлично скомпилировать небольшой проект Scala, но когда проекты становятся больше, компилятор падает с StackOverflowException .Ясно, что я должен увеличить размер стека для компилятора, однако, это, вероятно, моя главная проблема здесь, я не знаю как.

Я запускаю 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 МБ.Однако это не влияет на компилятор.Поэтому я попытался передать тот же параметр компилятору напрямую, используя флаги компилятора, которые я могу установить в netbeans, что привело к следующему:

-deprecation -J-Xss8m

Но опять же, это не помогает, явсе еще получаю исключение.Я искал документацию по netbeans, но нашел только параметры запуска netbeans, которые я уже установил.Я надеюсь, что кто-то здесь может дать мне дополнительную информацию о том, как решить эту проблему.

Дополнительная информация: Итак, через день у меня наконец-то появилась возможность попробовать все на другой машине.Я использовал те же настройки и тот же компилятор, но, к моему удивлению, я не получил тот же результат.То есть компилятор на своем компьютере компилирует весь код без каких-либо исключений.Единственная разница между моим компьютером и его состоит в том, что у него больше оперативной памяти и мощности процессора, но это не должно сработать, поскольку мы оба используем netbeans с одинаковыми параметрами запуска.

К настоящему времени я даже попробовализ RC компилятора 2.9 scala это не сильно помогло.Кроме того, я проверил, правильно ли установлен плагин scala, поскольку могут возникнуть проблемы при использовании плагина 2.8 с компилятором 2.9 и наоборот.Однако я использую плагин 2.9 и компилятор 2.9, так что все в порядке.

1 Ответ

3 голосов
/ 04 августа 2011

Проблема предоставления компилятору Scala большего количества стекового пространства аналогична задаче большего пространства кучи.Обе эти опции должны быть указаны в качестве пользовательских аргументов JVM при запуске компилятора Scala.Однако в Netbeans отсутствует какая-либо документация о том, как это сделать, поэтому вот оно.

Способ задания пользовательских аргументов JVM для компилятора Scala с Netbeans заключается в настройке build.xml для каждого проекта.

  1. Откройте nbproject / build-impl.xml в папке проекта.
  2. Найдите "scalac" , и вы найдете следующую цель: -init-macrodef-scalac .
  3. Скопируйте все определение цели, вставьте его в build.xml и сохраните.
  4. Закрыть nbproject / build-impl.xml , теперь вы будете работать с build.xml .
  5. В цели, которую вы только что скопировали, найдите , вложенность будет выглядеть следующим образом: target.macrodef.sequential.scalac
  6. Добавьте пользовательский атрибут "jvmargs" в тег скаляка, он будет выглядеть следующим образом:
  7. Сохраните build.xml .Теперь, когда вы компилируете свой проект с помощью netbeans, компилятор будет запускаться с пользовательскими аргументами jvm.
...