【问题标题】:How can I find a description of scala compiler flags/options?如何找到 scala 编译器标志/选项的描述?
【发布时间】:2013-09-03 20:58:16
【问题描述】:

如何找到最新 scalac 版本的所有标志?在谷歌搜索了几个小时后,我只找到了outdateddocs。 (例如,他们甚至没有提到“-feature”标志)。

有没有办法从 scalac 或其他任何东西中获取编译器标志列表?

【问题讨论】:

    标签: scala scalac scala-compiler


    【解决方案1】:

    编辑:Scala Compiler Options 的文档已发布。

    我们大多数人都使用scalac -helpscalac -Xscalac -Y

    也别忘了scala -help

    编辑:sbt 用户可以照常进行:

    > set scalacOptions in Compile += "-X"
    > compile
    [snip]
    [info]   -Xcheck-null                   Warn upon selection of nullable reference.
    [info]   -Xcheckinit                    Wrap field accessors to throw an exception on uninitialized access.
    [info]   -Xdisable-assertions           Generate no assertions or assumptions.
    [info]   -Xdivergence211                Turn on the 2.11 behavior of implicit divergence not terminating recursive implicit searches (SI-7291).
    [info]   -Xelide-below <n>              Calls to @elidable methods are omitted if method priority is lower than argument
    [info]   -Xexperimental                 Enable experimental extensions.
    [info]   -Xfatal-warnings               Fail the compilation if there are any warnings.
    [snip]
    

    至少手册页最近更新了:

    https://issues.scala-lang.org/browse/SI-7824

    【讨论】:

    • 如果您的大部分 Scala 使用是通过 Maven 或 SBT 进行的,您可能实际上没有在您的系统上安装 scalac(我没有),所以这并不总是最方便的解决方案。编译器的真实在线文档将非常有用。
    • @ChristopherCurrie 我同意文档/工具没有显示scalac 的最新基本选项很烦人。如果没有,我想我会开一张票;那应该是自动化的。我什至只是对自己说,featurelanguage 和 OP 一样在哪里。 “哦。”
    • 如果您使用的构建版本使用的 scalac 版本与您在本地安装的版本不同,这也很烦人。
    • 另一种奇怪的方法:Scala 2.12.12 不支持 scalacOptions 中的 JMV>8,尽管 docs.scala-lang.org/overviews/compiler-options/index.html 说相反。

      [错误] 用法:-target: 其中 选项为 jvm-1.5、jvm-1.6、jvm-1.7、jvm-1.8(默认值:jvm-1.8)。 vs

      文档:-target:TARGET 或 --target:TARGET 目标文件的目标平台。 ([8],9,10,11,12)

    • @DonaldDuck 似乎我评论说它应该有一个下拉菜单来选择一个版本。也许我会把这个请求分解成一张新的票。 github.com/scala/docs.scala-lang/issues/…
    【解决方案2】:

    我能找到的最接近的是编译器的相关源文件。不幸的是,这些选项分布在几个文件中。在撰写本文时,它是这样分解的:

    这些当然是针对当前开发版本的编译器,所以如果你想要scalac的特定版本的选项,你需要使用“分支”下拉菜单来查看正确的版本标记。

    【讨论】:

    • 另一种思路是抢源码和ant docs.comp。然后 scala/build/scaladoc/compiler/index.html#scala.tools.nsc.Settings 从 std 和其他设置继承。不幸的是,scaladoc 只是一个列表。另一个想法是获取 Eclipse IDE 并以这种方式浏览这些源代码。
    • 另一个相当新鲜的参数和定义列表:tpolecat.github.io/2017/04/25/scalac-flags.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多