写点什么

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:214975
用户头像

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

关注

评论

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

【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警

YashanDB

数据库 yashandb

Zonos-v0.1:开源 TTS 模型,支持多语言和高保真声音克隆;「Apple 智能」或即将在国内上线,苹果举行开发者活动

声网

央视聚焦!天翼云全栈适配DeepSeek 引领国产智算新纪元

极客天地

飞算JavaAI 来袭!程序员:我可以退休了吗?

飞算JavaAI开发助手

华为云GaussDB助力国家统计局, 开启统计现代化改革新篇章

轶天下事

开源安全领航者!华为云CodeArts Governance构建更安全的软件开发生命周期

轶天下事

TikTok运营中的IP问题解析

Ogcloud

TikTok tiktok运营 tiktok矩阵 TikTok矩阵运营

Acunetix v25.1 发布,新增功能概览

sysin

Acunetix

低代码架构驱动企业数字化升级:管理系统平台建设的技术实践与效能评估

不在线第一只蜗牛

低代码 数字化

如何用好 AI 编码工具,让通义灵码帮你做更多工作

阿里巴巴云原生

阿里云 云原生 通义灵码

如何用好 AI 编码工具,让通义灵码帮你做更多工作

阿里云云效

阿里云 云原生

华为云软件开发生产线(CodeArts)1月新功能特性

轶天下事

【YashanDB知识库】数据库升级后用yasboot在线扩充备节点出现报错

YashanDB

数据库 yashandb

一文详解 RocketMQ 如何利用 Raft 进行高可用保障

阿里巴巴云原生

阿里云 RocketMQ 云原生

【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法

YashanDB

数据库 yashandb

代码生成新突破:飞算JavaAI 如何让项目开发提速 40%?

飞算JavaAI开发助手

飞算JavaAI:开发界的“特斯拉”,带你飞速前行!

飞算JavaAI开发助手

95年,28岁,聊聊外包四年的真实感受

Geek_Yin

Java 面试 金三银四 跳槽 java 技术提升 IT外包

Java面试题及答案最全总结(2025版)

Geek_Yin

Java 面试 金三银四跳槽 Java 面试题 java 技术提升 #程序员

【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法

YashanDB

数据库 yashandb

年度回顾 | 龙蜥这一年:进化·重构·赴未来

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥 OpenAnolis 2024 年度回顾

颠覆传统!飞算JavaAI:一键自动化开发流程,复制粘贴从此成为传说!

飞算JavaAI开发助手

飞算JavaAI,让繁琐代码“蒸发”的神奇工具!

飞算JavaAI开发助手

Nacos Python SDK 强势来袭,动态管理大模型 Prompt!

阿里巴巴云原生

阿里云 云原生 nacos

【YashanDB知识库】MySQL field 函数的改写方法

YashanDB

数据库 yashandb

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