2010-12-13 22 views
13

Estoy usando un servidor de compilación Scala. Esto probablemente no esté relacionado con mi IDE IntelliJ IDEA, pero le informaré que inicie el servidor de compilación de Scala a través de una configuración de ejecución especial en ese IDE.¿Cómo desactivo el tiempo de espera del servidor de compilación rápida de Scala (FSC)?

Después de un tiempo que transcurre sin compilar nada, el servidor de compilación finaliza, sin ningún mensaje. Usualmente, solo noto esto cuando intento compilar algo y la compilación falla. Luego, tengo que volver a iniciar el servidor de compilación y, por supuesto, la próxima compilación lleva mucho tiempo, porque una vez más es la primera compilación desde que se inició el servidor de compilación.

¿Cómo desactivo el tiempo de espera? Miré la página de manual para scalac, y parece que no hay ninguna opción para ello. Puedo agregar opciones de VM para esa configuración de ejecución.

+0

Creo que su problema tiene que ver con el hecho de que el servidor del compilador no se reinicia automáticamente la próxima vez que lo necesite. ¿Es eso correcto? –

+1

Sería genial si el servidor de compilación se (re) iniciará automáticamente cuando sea necesario. Si sabes cómo puedo hacer eso, por favor dime. Sin embargo, aún sería mejor si no se detiene por sí mismo después de un tiempo. – Madoc

+1

Esta pregunta debe contener la palabra clave [FSC (Fast Scala Compiler)] (http://www.scala-lang.org/docu/files/tools/fsc.html) para que sea más fácil buscarla en Google. –

Respuesta

6

Pass -max-idle 0 como parámetro. Funcionará en una muy (muy!) Reciente cada noche, y debería estar disponible en Scala 2.9.0 cuando salga. Sin embargo, no hay garantía de que el nombre no cambie hasta entonces.

+0

¡Eso es increíble, muchas gracias! – Madoc

6

No creo que puedas. Aquí es un fragmento de código desde el servidor de compilación:

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) 
} 

Creo que debería abrir una de estas solicitudes en scala-lang.org

+0

Gracias. Un tiempo de espera codificado que no puede ser anulado, hmm. Realmente no es la mejor práctica. Abriré una solicitud de función. – Madoc

+2

El [tiempo de espera será configurable] (http://alarmingdevelopment.org/?p=562#comment-58925) en la próxima versión de FSC como se menciona en un comentario del blog. –

Cuestiones relacionadas