2009-11-05 10 views
2

Je trouve l'option de ligne de commande scala '-i' assez utile pour exécuter du code scala et ensuite me jeter dans un shell interactif pour que je puisse prod/inspecter les choses qu'il a définies. Une chose qui me mystifie complètement: pourquoi charger et exécuter le script deux fois?Qu'est-ce que l'option de ligne de commande scala -i est supposée faire?

Par exemple, le fichier contenant le test.scala donné canoniques

println("Hello world") 

course

scala -i test.scala 

produit:

$ scala -i test.scala 
Loading test.scala... 
Hello world 

Loading test.scala... 
Hello world 

Welcome to Scala version 2.7.5final (Java HotSpot(TM) Client VM, Java 1.6.0_12). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> 

en cours d'exécution Il est évident que c'était deux fois pas trop d'un mal à la tête, mais c'est ennuyeux pour les scripts qui prennent du temps (j'utilise le [Project Euler] (https://projecteuler.net) problèmes pour apprendre scala)

Je suppose que je ne comprends pas l'intention ou l'utilisation de l'option -i en quelque sorte ... comment puis-je obtenir mon fichier de script exécuté une seule fois?

(FWIW, je suis sur Debian/Lenny avec le paquet scala de Squeeze.)

Répondre

6

Le double chargement des fichiers donnés à l'option -i est un bogue bien connu dans Scala 2.7. Il est fixé depuis longtemps dans le coffre de développement 2.8.

RRS

+0

Merci! Cela a beaucoup plus de sens que ce n'est le comportement voulu! – timday

0

Le scala manual page dit que l'option -i « demande qu'un dossier soit préchargé. Il est significatif que pour interactive coquilles". Il semble que les gens qui ne sont pas des coquilles ne sont pas supposés l'utiliser.