Pergunta

O SBT faz uso do FSC?

Para fins de teste, estou compilando um programa de 500 linhas em uma máquina Ubuntu bastante lenta (Atom N270). Três tempos de compilação sucessivos foram 77s, 66s e 66s.

Eu então compilei o arquivo com fsc da linha de comando. Agora, meus tempos eram 80, 25s, 18s. Melhor! Isso implica para mim que SBT é não usando fsc. Estou certo? Se sim, por que não o usa?

Posso tentar fazer com que o SBT use explicitamente o FSC para compilar, embora não tenha certeza de que descobrirei a configuração. Alguém já fez isso?

Foi útil?

Solução

O SBT não pode se beneficiar do Fast Scala Compiler quando você o executa interativamente (com ou sem usar seu modo de construção contínuo) porque as classes do compilador Scala são carregadas e se aquecem e se aquecem e Jit-Ed, que é a totalidade de fscvantagem.

Outras dicas

Esta discussão me fez perceber que tenho usado sbt o caminho errado.

Em vez de (da linha de comando):

$ sbt compile
$ sbt test

..one deve manter sbt executando e trate -o como o prompt de comando.

$ sbt
> compile
  ...
> test

Ele tem o histórico de comando e até a capacidade de voltar à linha de comando do OS. Eu escrevi essa 'resposta' para outras pessoas como eu (vindo de uma mentalidade makefile) que pode não perceber que estamos levando a pílula errada. :)

(Ainda é lento, no entanto.)

Pelo menos para o SBT 0.7.x, os autores explicam que não é tão rápido quanto o FSC, que armazena em cache a instância do compilador (incluindo as bibliotecas carregadas), em vez de apenas as classes do compilador jitt:

http://code.google.com/p/simple-build-tool/wiki/ChangedEtectionAndtesting

Minha experiência também confirma que o FSC é mais rápido para compilamentos completos, mas não seleciona automaticamente o que recompilar.

Para o SBT 0.10, não consigo encontrar nenhum documento sobre esse assunto.

Você não precisa mais fazer isso. O SBT tem seu próprio caminho agora:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top