【问题标题】:Can Scala.js not compile itself?Scala.js 不能自己编译吗?
【发布时间】:2015-04-04 21:21:23
【问题描述】:

我正在阅读教程,看起来 Scala.js 只能在 sbt 下运行。

是否有一些 Scala.js(或一般的 Scala 环境)不是用 Scala 编写的?或者由于其他原因,所有必要的部分都不能通过 Scala.js?我错过了什么?

【问题讨论】:

    标签: scala.js


    【解决方案1】:

    这主要是因为 Scala 编译器使用了太多尚未移植到 Scala.js 的 JDK 部分(目前)。其中一些部分,尤其是与读取文件(在类路径和源文件中)相关的部分,无法在 JavaScript 中实现(尽管可以在一个特定平台上实现,例如 Node.js)。

    还有对 ASM 的依赖,这是一个用 Java 编写的 Java 字节码操作库。即使 Scala.js 编译为 JavaScript,Java 字节码仍用于单独编译(在以前编译的部分中查找符号,例如库)。

    因此,即使 Scala.js 的特定部分是以独立于平台的方式编写的(例如,我们测试了 Scala.js 优化器是否可以优化自身),但 scalac 中有很多部分无法解决Scala.js 中的开箱即用。

    【讨论】:

    • 我一点也不担心文件操作——我只是希望能够在浏览器中输入一些内容并对其进行编译并独立运行。某处有一个 bytecode-to-js 库。我想知道你是否在 ASM 上使用它...
    猜你喜欢
    • 1970-01-01
    • 2015-06-28
    • 2015-06-04
    • 2016-10-26
    • 2017-05-31
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多