2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

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

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

关注

评论

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

Soul学习笔记---运行 soul-examples-dubbo(三)

fightingting

Soul网关

智能手表

张老蔫

28天写作

第 1 周作业

老元宵

Soul 学习笔记---搭建编译项目(一)

fightingting

Soul网关

Java学习(一)

灵霄

java基础

Soul 网关实践 04|dubbo 服务接入网关

哼干嘛

这样提问,大牛才会为你解答(提问的智慧)

yes

当前岗位的理想岗位模型

白生

如何构建高效可信的持续交付能力,华为云有绝活!

华为云开发者联盟

软件 DevOps 持续交付 华为云

产品经理00期训练营第一周作业 4班

mas

产品经理训练营

绩效管理,上下同心者胜(三)

一笑

管理 绩效 28天写作

一张自查清单

熊斌

学习 个人总结 成长笔记 28天写作

如何处理消息队列中的重复消息

废材姑娘

RocketMQ

如何恶意使用微信视频号 | 视频号 28 天 (12)

赵新龙

28天写作

Java 程序经验小结:消除GC触及不到的过期对象引用

后台技术汇

28天写作

AI无人机出手,让输电线路巡检更“聪明”!

华为云开发者联盟

华为云 modelarts 视觉处理

Mybatis【12】-- Mybatis多条件怎么查询?

秦怀杂货店

mybatis

第1周总结

老元宵

汽车行业产品经理备忘录(作业三)

Rui

期货合约系统软件开发|期货合约APP开发

系统开发

经验说丨华为云视频Cloud Native架构下实践

华为云开发者联盟

架构 微服务 华为云 CloudNative

《原神》运维自动化的探索与实践

OpsMind

运维 运维自动化

作业-week1

赝品

心仪的岗位

正午看星星

作业

产品经理训练营作业00

KingSwim

轻松几步教你将React Native 项目运行在Web端

华为云开发者联盟

html 大前端 Web API React Native

开发实战:Float如何保留2位小数

worry

项目管理系列(6)-能力成熟度

Ian哥

28天写作

一个button的成长过程

德育处主任

CSS html css3 html/css 28天写作

深入剖析RSA密钥原理及实践

vivo互联网技术

算法 https 公钥加密 rsa

云原生动态周报 | KubeEdge被评为2020十大边缘计算开源项目

华为云原生团队

云计算 云原生 边缘计算 华为云 边缘技术

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