阿熊
阿熊
元老
发贴: 5644
|
于 2014-05-07 16:38
在经过4个RC版本之后,Scala 2.11.0正式发布,该版本主要针对Java 6,并开始试验性支持Java 8,比如读取Java 8字节码、解析Java 8源代码。另外,在2.10.x系列版本上构建的没有过时警告Scala的代码可以在2.11平台正常构建。Scala 2.11.0修复了2.10.x中的613个BUG,并在2.10系列的基础上做了大幅改进,官方宣称Scala 2.11的设计目标是更小、更快、更稳健。 Scala 2.11.0主要在集合、反射、宏和编译器等方面进行了改进,具体如下: 1. 集合 提高了Immutable HashMap、HashTable的filters、unions、like方法的执行速度,增加了LongMap、AnyRefMap以提升在Key为Long或者AnyRef时的性能,BigDecimal的round操作语义更加明确,并且通过减少不必要的BigInt转换以提升性能。另外List的map、flatMap、collect性能也得到了提升。 2. 模块化 从Scala核心jar中拆分出xml、解析、swing等模块,这些模块都已经单独提供,另外也对编译器进行了模块化。 3. 反射、宏以及quasiquotes 请读者参考此文档来了解这部分的变化以及兼容性。 4. 编译器后端 引入新的字节码生成方案GenBCode,采用新的方案编译闭包并引入独立的项目scala.js。 5. 编译器优化 增量编译性能得到了明显提升,读者可以升级sbt到0.13.2版本并添加incOptions := incOptions.value.withNameHashing(true)参数来体验此特性。另外还优化了反射的性能。 6. REPL 字节码反编译命令:javap已经支持Java 7,新加了:kind命令。 7. 改进-Xlint警告 新版本的Scala会在未使用的private/local的terms或者类型以及未使用的imports时给予警告。 8. 编译器瘦身 移除了.net编译器后端,重新实现了Pattern Matcher的Bytecode Emitter,还删除了无用的代码。 另外,Scala 2.11.0对应的IDE基于Eclipse 4.2/4.3(Juno/Kepler)构建
|