设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

SCALA 2.12路线图

2014-7-7 14:36| 发布者: joejoe0332| 查看: 3070| 评论: 0|原作者: 孙镜涛|来自: Infoq

摘要: Scala官方网站于6月30日发布了Scala 2.12路线图,新版本需要Java 8的支持。以下是该路线图的详细内容,即将发布的2.11.x版本将会引入以下实验特性:Java 8风格的闭包编译、Miguel的新后端和优化器。 ...

Scala官方网站于6月30日发布了Scala 2.12路线图,新版本需要Java 8的支持。以下是该路线图的详细内容,英文原文请点击这里


目标

  • 最小化用户和类库维护者的迁移成本。

  • 在一段时间内继续支持Java 6(仅针对Scala 2.11)。

  • 跟踪Java平台的进展。


如何实现

  • 即将发布的2.11.x版本将会引入以下实验特性:Java 8风格的闭包编译、Miguel的新后端和优化器

  • 通过完全向后兼容的源码轻松地实现2.11和2.12版本之间的交叉构建,Scala团队并不会移除废弃的方法,但是会支持可选的废弃错误(译者注:根据用户的选择决定是否告诉用户他们使用了废弃的方法)。

  • 官方构建的Scala 2.12将会以Java 8为目标平台(因此运行也需要Java 8)。在默认情况下将会使用新的后端和优化器。


背景

  • 在没有对artifactId做进一步命名调整之前无法让一个Scala二 进制版本以两个不同的Java版本为目标。即使确实能够通过maven指定所需的Java版本,这个分支对于生态系统而言也会是一个巨大的负担。因此,所 需Java版本与Scala(二进制)版本必须匹配。

  • 通过在这两个版本上运行同样的社区构建(Community Build)检查2.11/2.12的交叉构建。为了提升源码的向后兼容性,Scala 2.12不会移除废弃的成员。但是如果用户在代码中使用了2.11.0版本或者更早版本中的废弃成员,那么默认情况下2.12的编译器将会发出废弃错误。 原则上,如果针对Java 6平台编译2.12的类库,那么它应该与2.11向后兼容。

  • 紧跟平台的发展是非常重要的,即使Java 8中基于MethodHandle实现的闭包可能不会马上产生显著的性能收益。对于那些并不支持Java 8字节码的平台而言,有两个项目(retrolambdaForax’s JSR292 backport)能够将Java 8的invokedynamic字节码重写为Java 6的字节码。


Scala 2.11和2.12共享的特性

  • 使用MethodHandle有效地编译Lambda(在2.11上需要单独的兼容模块)。

  • Java 8 互操作(双向):

    • 改善了Java 8字节码的读取支持(已经在2.11中实现)
    • 提升并默认打开SAM支持。Scala能够通过它无缝地调用Java 8高阶方法(2.11已经实现,使用-Xexperimental)
    • 兼容模块让Java 8能够调用Scala的高阶方法
  • 完全集成Miguel的新后端和优化器(重构代码、深入的测试和文档、移除旧的后端)。

  • 风格检查器:一个有效的、社区驱动的平台,它可以实现精确的代码风格检查(在编译器之上构建)。

  • 集合:提升测试覆盖范围、性能和文档。

  • 改善文档:关注于内容(如果想要做贡献,这是一个非常好的起点,也包括工具方面的文档)。

  • 继续改善基础设施(sbt构建,提升拉请求验证和发布自动化、bug跟踪器清理和自动化)。


Scala 2.12专有的特性:更多的Java 8 特性

以下特性的开发将于2015年开始。因为这些特性是二进制不兼容的,所以它们无法移植到2.11上。

  • 将FunctionN转变成函数式接口(Functional Interface),这样Java 8代码不需要包装器就能调用Scala中的高阶方法。

  • 支持@interface特征,确保编译成Java接口(有助于互操作、性能和二进制兼容性)。

  • Streams:集成进Scala集合?

  • 使用JDK提供的forkjoin类库而不是嵌入自己的。

  • SIP-20 改善了惰性val初始化。


时间

Scala 2.10.5 (Q4 2014) 将会是2.10的最后一个版本。Scala团队打算在2014年发布5个2.11.x版本,在2015年还会发布几个版本。2.12将会从2014 Q4开始开发,2015年团队的开发重心将会转移到2.12。

2.10.0

04/01/2013

第一个2.10.x 版本

2.11.0

16/04/2014

第一个2.11.x版本

2.11.1

19/05/2014

 

2.11.2

21/07/2014

 

2.11.3

29/09/2014

 

2.10.5

Q4 2014

最后一个 2.10.x版本

2.12.0-M1

24/11/2014

 

2.11.4

Dec 2014

 

2.12.0-M{2,3,4}

Q{1,2,3} 2015

按季度发布2.12.0-Mx版本

2.12.0-M5

Oct 2015

 

2.12.0-RC1

Nov 2015

M1发布一年之后

2.12.0

Jan 2016

 

转自
http://www.infoq.com/cn/news/2014/07/scala-2.12?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部