2010-12-13 7 views
13

Я использую сервер компиляции Scala. Вероятно, это не связано с моей IDE IntelliJ IDEA, но я просто сообщу вам, что я запускаю сервер компиляции Scala с помощью специальной конфигурации запуска в этой среде IDE.Как отключить тайм-аут сервера FAS (Scala Fast Compilation)?

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

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

+0

Я думаю, что ваша проблема связана с тем фактом, что сервер компилятора автоматически не перезагружается автоматически в следующий раз, когда вам это нужно. Это верно? –

+1

Было бы здорово, если бы сервер компиляции (перезагрузился) автоматически при необходимости. Если вы знаете, как я могу это сделать, скажите мне. Тем не менее, было бы лучше, если бы оно не остановилось само по себе через некоторое время. – Madoc

+1

Этот вопрос должен содержать ключевое слово [FSC (Fast Scala Compiler)] (http://www.scala-lang.org/docu/files/tools/fsc.html), чтобы его было проще для Google. –

ответ

6

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

+0

Это потрясающе, спасибо большое! – Madoc

6

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

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

+0

Спасибо. Чрезмерное время ожидания, которое нельзя переопределить, хм. Не самая лучшая практика. Я открою запрос функции. – Madoc

+2

[время ожидания будет настраиваться] (http://alarmingdevelopment.org/?p=562#comment-58925) в следующей версии FSC, как указано в комментарии к блогу. –