gpt4 book ai didi

scala - 什么是 Scala 运行时、二进制兼容性以及如何部署 Scala 应用程序?

转载 作者:行者123 更新时间:2023-12-05 00:49:50 26 4
gpt4 key购买 nike

这实际上是三个问题,但对我来说,它们是紧密相连的。

  • 什么是 Scala 运行时? 它只是一个常规的 JVM 和 java-lang 库的类路径吗?我可以在普通的 JVM 上运行 Scala 应用程序吗?我是否应该一直部署 scala-lang.jar连同我自己的代码?
  • 那在哪里binary compatibility 来自?这个问题的答案通常听起来像:

  • Different Scala compilers produce different bytecode.



    但这对我来说解释不多。这是否意味着字节码的“接口(interface)”发生了变化?例如,更改包含伴随对象实例的字段的名称。如果是,那么为什么没有向后兼容性?是否可以将元数据添加到字节码? Scala 编译器可以使用它来改变其行为/期望并为各种版本发出不同的字节码。
  • 为多个 Scala 版本交叉编译的库是否意味着使用 Java 中的库需要每个版本都有自己的互操作性?
  • 最佳答案

    什么是 Scala 运行时?

    是的,Scala 运行时运行在 JVM 之上,它所需要的只是支持 scala-lang.jar库和适当版本的“普通”JVM。 Scala 代码被编译为 JVM 字节码。您可以了解更多关于 Scala 编译器的功能 here或者你可以检查编译phases .

    是的,当您想在 JVM 上运行 Scala 代码时,您应该始终提供 scala-lang.jar ,但 JVM 并不是运行 Scala 代码所必需的。有像 Scala native 这样的项目允许您在没有 JVM 或 Scala.js 的平台上本地运行 Scala 代码允许您在 JavaScript 引擎之上运行它。

    这种二进制(不)兼容性从何而来?

    这种(非)兼容性来自(不仅是)Scala 标准库的 ABI 的变化(参见 ABI versioning)。已经有一个改进向后二进制兼容性的提议。查看详情here

    关于scala - 什么是 Scala 运行时、二进制兼容性以及如何部署 Scala 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685413/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com