Scala 3.8.4 现已发布,包含多项改进和修复。一些值得注意的修复包括:
- 加强 TASTy 解析以防止恶意构造的文件出现无限循环(#25676)
- 修复了 Scaladoc 中的一个存储型 XSS 漏洞(#25681)
- 改进了
scala.sys.process.Parser.tokenize中的错误处理(#25675)
- 修复了 TastyPrinter 的 JAR 遍历逻辑,使其包含子目录(#25678)
:help syntax for all compiler settings (#26052)
现在,可以在任何编译器设置后添加:help来查看其文档,而不再像以前那样只能查看固定的子集。无论在何处传递编译器选项,此功能均可正常工作,让你无需中断工作流程即可轻松查阅可用标志。
使用 Scala runner,在运行脚本或项目时,可在命令行中为 flag 添加 :help:
> scala test.scala -Xkind-projector:help
-Xkind-projector Allow `*` as type lambda placeholder to be compatible with
kind projector. When invoked as -Xkind-projector:underscores
will repurpose `_` to be a type parameter placeholder, this
will disable usage of underscore as a wildcard.
Default disable
Choices: disable, , underscores
在 REPL 中,通过:settings传递相同的 flag:
scala> :settings -Wunused:help
-Wunused Enable or disable specific `unused` warnings
Choices:
- nowarn,
- all,
- imports :
Warn if an import selector is not referenced.,
- privates :
Warn if a private member is unused,
- locals :
Warn if a local definition is unused,
- explicits :
Warn if an explicit parameter is unused,
- implicits :
Warn if an implicit parameter is unused,
- params :
Enable -Wunused:explicits,implicits,
- patvars :
Warn if a variable bound in a pattern is unused,
- linted :
Enable -Wunused:imports,privates,locals,implicits
升级到 Scala CLI 1.14.0
捆绑的 Scala CLI 已从 1.11.x 版本升级到 1.12.5 版本、1.13.0 版本,最终升级到1 .14.0 版本。这些版本之间的主要新增功能包括:
- v1.12.5:run、package 和 doc 命令新增实验性 --cross 支持;全局 --offline 配置键;在 publish local 命令中新增实验性本地 .m2 配置
- v1.13.0:支持 Scala.js 1.21.0;Ammonite REPL 已弃用并计划移除;支持纯 Java 测试的 java-test-runner;通过 packaging.graalvmJvmId 和 packaging.graalvmArgs 进行 GraalVM native-image 打包
- v1.14.0:支持
.test.java文件;新增关闭 auto-IDE-setup 的开关
可参阅 Scala CLI 发行说明了解完整详情。