50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Scala 2.11.0 发布

  • 2014-04-24
  • 本文字数:1026 字

    阅读完需:约 3 分钟

在经过 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) 构建,读者可以参考这篇指南来安装 Eclipse 和 Scala IDE。

相对于 2.10.x,Scala 2.11.0 主要做了一些性能优化、Bug 修复以及过时标记的改进,但对 Java 8 的支持多少有点令人失望,相信 Scala 会在 2.12 系列中增强此部分的功能。读者可以从这里下载最新版本的 Scala。如果不了解 Scala,可以看看由 Scala 的作者亲自录制的视频教程

参考文档:

  1. SCALA 2.11.0 IS NOW AVAILABLE
  2. Hacker News

感谢方腾飞对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-04-24 20:215135
用户头像

发布了 219 篇内容, 共 150.1 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

每日一R「06」内存管理

Samson

8月月更 ​Rust

IPv6报文头深度解析

穿过生命散发芬芳

ipv6 8月月更

Kafka基础知识

阿泽🧸

kafka 8月月更

开源一夏 | 见微知著,带你认认数据分析的大门,站在门口感受一下预测的魅力

迷彩

开源 数据分析 预测模型 签约计划第三季 8月月更

手把手带你实战 AGP 7.x ASM 字节码插桩

如浴春风

android asm Gradle 签约计划第三季

Kubernetes分布式持续交付Zadig

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes Docker Compose 迁移

CTO技术共享

开源 签约计划第三季 8月月更

头脑风暴:组合总和 Ⅳ

HelloWorld杰少

8月月更

一文带你打通Node流的"任督二脉"

战场小包

前端 Node 签约计划第三季

开源云原生与行业应用 | ChinaOSC

CCF开源发展委员会

RT-Thread记录(七、IPC机制之邮箱、消息队列)

矜辰所致

ipc RT-Thread 8月月更

网络编程(三)数据链路相关知识

Albert Edison

Linux 网络编程 计算机网络 8月月更 数据链路

急如闪电快如风,彩虹女神跃长空,Go语言高性能Web框架Iris项目实战-初始化项目ep00

刘悦的技术博客

Go golang 框架 go语言 Go 语言

三种插件开发模式,带你玩废tinymce

Five

tinymce 签约计划第三季 8月月更

Redis 多机

武师叔

8月月更

在线文字图标logo文章封面图生成工具

入门小站

工具

深入浅出sychronized与Lock的实现原理

清风

后端 原理 并发 lock sychronized

史上最全的Java并发系列之Java多线程

自然

多线程 并发 8月月更

苏彤,你的 Python Flask 编写生成二维码接口写完了

梦想橡皮擦

Python 爬虫 8月月更

史上最全的Java并发系列之Java多线程(二)

自然

多线程 并发 8月月更

开源雨林企业开源治理与贡献论坛| ChinaOSC

CCF开源发展委员会

KubeSphere 新版本3.3.0解读

CTO技术共享

开源 签约计划第三季 8月月更

在线XML转Excel工具

入门小站

工具

开源教育论坛| ChinaOSC

CCF开源发展委员会

CCF开源发展委员会执委增选

CCF开源发展委员会

《Effective Java》第54条:返回零长度的数组或者集合,而不是null

okokabcd

Java

计算后缀表达式-算法与数据结构-栈的运用-C++语言实现

清风莫追

算法 数据结构, 8月月更

“红山开源”创新论坛 | ChinaOSC

CCF开源发展委员会

Kubernetes LIST请求服务调优

CTO技术共享

开源 签约计划第三季 8月月更

企业架构是当代的屠龙之术吗?

涛哥 数字产品和业务架构

企业架构

阿里云解决方案架构师张平:云原生数字化安全生产的体系建设

阿里巴巴云原生

阿里云 云原生 安全 数字化

Scala 2.11.0 发布_Scala_小盖_InfoQ精选文章