Как отключить тайм-аут сервера быстрой компиляции Scala (FSC)?

Я использую сервер компиляции Scala. Это, вероятно, не связано с моей IDE IntelliJ IDEA, но я просто сообщу вам, что запускаю сервер компиляции Scala через специальную конфигурацию запуска в этой IDE.

Через некоторое время, которое проходит без компиляции, сервер компиляции завершает работу без каких-либо сообщений. Обычно я замечаю это только тогда, когда пытаюсь что-то скомпилировать, а компиляция терпит неудачу. Затем мне нужно снова запустить сервер компиляции, и, конечно, следующая компиляция занимает много времени, потому что это снова первая компиляция с момента запуска сервера компиляции.

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


person Madoc    schedule 13.12.2010    source источник
comment
Я думаю, что ваша проблема связана с тем фактом, что сервер компилятора не перезапускается автоматически в следующий раз, когда вам это нужно. Это правильно?   -  person Ken Bloom    schedule 13.12.2010
comment
Было бы здорово, если бы сервер компиляции (перезапускался) автоматически при необходимости. Если вы знаете, как я могу это сделать, пожалуйста, скажите мне. Однако было бы еще лучше, если бы оно не прекращалось само по себе через какое-то время.   -  person Madoc    schedule 14.12.2010
comment
Этот вопрос должен содержать ключевое слово FSC (Fast Scala Compiler). чтобы проще было гуглить.   -  person Jakub Holý    schedule 25.02.2011
comment
@Jakub Holý: Моя оценка в StackOverflow слишком низкая, чтобы создать новый тег.   -  person Madoc    schedule 26.02.2011


Ответы (2)


Передайте -max-idle 0 в качестве параметра. Он будет работать в очень (очень!) недавнем выпуске и должен быть доступен в Scala 2.9.0, когда он выйдет. Однако нет никакой гарантии, что название не изменится до тех пор.

person Daniel C. Sobral    schedule 21.03.2011

Я не думаю, что вы можете. Вот фрагмент кода с сервера компиляции:

object SocketServer
{
  // After 30 idle minutes, politely exit.
  // Should the port file disappear, and the clients
  // therefore unable to contact this server instance,
  // the process will just eventually terminate by itself.
  val IdleTimeout = 1800000
  val BufferSize  = 10240

  def bufferedReader(s: Socket) = new BufferedReader(new InputStreamReader(s.getInputStream()))
  def bufferedOutput(s: Socket) = new BufferedOutputStream(s.getOutputStream, BufferSize)
}

Я думаю, вам следует открыть запрос функции на scala-lang.org.

person IttayD    schedule 13.12.2010
comment
Спасибо. Жестко заданный тайм-аут, который нельзя переопределить, хм. Не совсем лучшая практика. Я открою запрос функции. - person Madoc; 14.12.2010
comment
время ожидания будет настраиваемым в следующей версии FSC, как указано в комментарии в блоге. . - person Jakub Holý; 25.02.2011