2015-04-03 8 views
6

Sto seguendo il tutorial e sembra che Scala.js funzioni solo con sbt.Può Scala.js non compilarsi?

Ci sono bit di Scala.js (o dell'ambiente Scala in generale) che non sono scritti in Scala? Oppure non tutti i bit necessari passano attraverso Scala.js per qualche altro motivo? Cosa mi manca?

risposta

7

Principalmente, questo è dovuto al fatto che il compilatore Scala utilizza troppe parti del JDK che non sono state portate su Scala.js (ancora). Alcune di queste parti, in particolare relative alla lettura di file (nel classpath e nei file di origine), che non possono essere implementate in JavaScript in quanto tali (anche se potrebbero essere implementate per una piattaforma particolare, come Node.js).

Esiste anche la dipendenza da ASM, una libreria di manipolazione bytecode Java scritta in Java. Sebbene Scala.js compili su JavaScript, il bytecode Java viene ancora utilizzato per la compilazione separata (ricerca di simboli in parti precedentemente compilate, come le librerie).

Quindi, anche se le parti specifiche di Scala.js sono scritte in modo indipendente dalla piattaforma (ad esempio, testiamo che l'ottimizzatore di Scala.js può ottimizzare se stesso), ci sono molte parti in scalac che non funzionano pronto per l'uso in Scala.js.

+0

Non sono affatto preoccupato per la manipolazione dei file - voglio solo essere in grado di digitare qualcosa nel browser e averlo compilato ed eseguito stand-alone. C'è una libreria bytecode-to-js là fuori da qualche parte. Mi chiedo se lo usi su ASM ... – Malvolio