Question

Est-ce que SBT faire usage de fsc?

Pour des fins de test, je suis compilant un programme 500 en ligne sur une machine Ubuntu assez lente (Atom N270). Trois fois de compilation successives étaient 77s, 66s et 66s.

Je puis compilé le fichier avec fsc de la ligne de commande. Maintenant, mes temps étaient des années 80, 25s, 18s. Mieux! Cela me implique de SBT est pas en utilisant fsc. Ai-je raison? Si oui, pourquoi ne pas l'utiliser?

je peux essayer d'obtenir SBT d'utiliser explicitement fsc à décompiler, bien que je ne suis pas sûr que je vais trouver la config. Quelqu'un at-il fait cela?

Était-ce utile?

La solution

SBT ne peut pas bénéficier du compilateur rapide Scala lorsque vous l'exécutez de manière interactive (avec ou sans utiliser son mode de construction en continu) parce que les classes du compilateur Scala sont chargés et obtenir « réchauffé » et JIT-ed, qui est l'ensemble de son de fsc avantage.

Autres conseils

Cette discussion m'a fait réaliser que je l'ai utilisé sbt dans le mauvais sens.

Au lieu de (à partir de la ligne de commande):

$ sbt compile
$ sbt test

.. il faut continuer à courir sbt et le traiter comme l'invite de commande.

$ sbt
> compile
  ...
> test

Il a l'historique des commandes et la capacité même de retour de plongée dans la ligne de commande OS. J'ai écrit cette « réponse » pour d'autres comme moi (provenant d'un état d'esprit Makefile) qui pourraient ne pas se rendre compte que nous prenons la pilule tout faux. :)

(Il est encore lent, cependant.)

Au moins pour SBT 0.7.x les auteurs expliquent que ce n'est pas aussi vite que fsc, qui met en cache l'instance du compilateur (y compris les bibliothèques chargées) plutôt que seulement les classes du compilateur JITted:

http://code.google.com/p/simple- build-outil / wiki / ChangeDetectionAndTesting

Mon expérience confirme également que fsc est plus rapide pour compiles complet, mais ne sélectionne pas automatiquement ce recompiler.

Pour SBT 0,10, je ne trouve pas de document que ce soit sur cette question.

Vous n'avez pas besoin de le faire plus. SBT a sa propre façon maintenant:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top