2015-04-03 11 views
6

Przechodzę przez samouczek i wygląda na to, że Scala.js działa tylko pod sbt.Czy Scala.js się nie kompiluje?

Czy są jakieś fragmenty Scala.js (lub ogólnie środowiska Scala), które nie są napisane w Scali? A może wszystkie niezbędne bity przechodzą przez Scala.js z jakiegoś innego powodu? czego mi brakuje?

Odpowiedz

7

Głównie dlatego, że kompilator Scali używa zbyt wielu części JDK, które nie zostały przeniesione do Scala.js (jeszcze). Niektóre z tych części, w szczególności związane z czytaniem plików (w ścieżce klas i plikach źródłowych), których nie można zaimplementować w JavaScript jako takie (choć można je zaimplementować dla jednej konkretnej platformy, takiej jak Node.js).

Istnieje również zależność od ASM, biblioteki manipulacji kodu Java, napisanej w Javie. Mimo że Scala.js kompiluje się do JavaScript, kod bajtowy Java jest nadal używany do oddzielnej kompilacji (wyszukiwania symboli w uprzednio skompilowanych częściach, takich jak biblioteki).

Tak więc, mimo że poszczególne części Scala.js są napisane w sposób niezależny od platformy (np. Testujemy, że optymalizator Scala.js może zoptymalizować się), jest wiele części w skalacu, które nie działają out-of-the-box w Scala.js.

+0

Nie martwię się w żaden sposób o manipulację plikami - chcę tylko móc wpisać coś w przeglądarce i skompilować i uruchomić osobno. Tam gdzieś jest biblioteka kodu bajtowego. Zastanawiam się, czy używasz tego w ASM ... – Malvolio

Powiązane problemy