Swift 3 将不包含稳定的 ABI

近日,苹果公司Swift语言创始人Chris Lattner,在Swift官方邮件组服务上声明,Swift 3原计划的目标之一—— ABI的稳定性,将会推迟发布。

Lattner的原话:

刚开始的时候我们不适宜发布这些远大的目标——包括一些重要的为了锁定标准库ABI的泛型功能。

因此,Swift Evolution Git 仓库的ReadMe文件中已经去掉了ABI的稳定性。

由于原来的ReadMe文件中有相关说明,ABI的稳定性将允许将来Swift版本开发的应用程序和编译库可以在二进制层次上与 Swift 3.0 版本的应用程序和编译库相互调用。这样,ABI的稳定性将保证一定程度的二进制兼容性,即使源语言发生了变化,并且第三方更容易发布二进制库。另外,ABI的稳定性将允许删除需要的Swift标准库和二进制文件,就像目前情况下通过Xcode创建的iOS和OS X应用程序一样。

Lattner还解释说,大约会在2016年8月份左右开始这一特性的讨论并且会讨论什么时候把它纳入Swift语言中。目前尚不清楚ABI的稳定性是否会纳入Swift 3.1 或 4.0 版本,但是Lattner期望它是一个优先级最高的功能。

Lattner的声明引起了一些不满, 主要是关于Swift 3原计划的大多数目标是如何被取消的。其他的一些评论强调,Swift刚开源的时候是如何定义Swift 3的初始范围的,是否是社区的提议驱使Swift在ABI稳定之前专注于更需要明确的其它方面的开发,苹果工程师Greg Parker回复说,ABI一旦定义了,就很难去改变,就如OS X和iOS的历史架构转换演示一样。特别地,他提到,Objective C ABI在极少数情况下存在的有意或无意的缺陷主要是由于时间的压力,如用BOOL代替正确的布尔字符,或者由于使用传统的GCC而使用setjmp-longjmp异常处理机制而不是“零成本”异常处理,等等。所有的一切,他总结:

如果我们在Swift 3就试图冲破ABI稳定性的大门,我们肯定会以有意或无意的缺陷而结束[…]。能够花时间去做正确的事情是弥足珍贵的。

文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-21 12:00:31

Swift 3 将不包含稳定的 ABI的相关文章

在 Xcode 项目中使用 swift package fetch

本文讲的是在 Xcode 项目中使用 swift package fetch, 到目前为止,Cocoa with Love 的 git 仓库都使用"git subtrees"来管理相关依赖,所有的依赖都被拷贝并静态存放于依赖方目录下.我希望能找到一种更动态地依赖管理方式来代替现有的方案,同时保持对库使用者的不可见性.(译者注:Cocoa with Love) 我想要使用 Swift 包管理工具(Swift Package Manager)来解决这个问题,但我又不希望所有的仓库都必须依赖

swift编程语言入门介绍

  swift是什么? swift是苹果于wwdc 2014发布的编程语言,这里引用the swift programming language的原话: swift is a new programming language for ios and os x apps that builds on the best of c and objective-c without the constraints of c compatibility. swift adopts safe programm

Swift简介

原文:Swift简介 1. swift初始来源     没有了解过swift可以先参考Brec Victor的Inventing on Principle ,Swift编程环境的大部分概念都源自于Brec这个演讲. 2. swift是啥 Swift是苹果在WWDC 2014发布的新的编程语言,这里引用The Swift Programming Language的原文: Swift is a new programming language for iOS and OS X apps that b

Swift 3 API 设计准则

一款编程语言标准库的设计理念,往往对这门编程语言给人的整体感觉有很大影响.好的标准库就好似语言本身的扩展一般,并且保证标准库内部的一致性可以有效提升整体的开发体验.为了搭建一个好的 Swift 标准库,Swift 3 的其中一个主要目标就是要定义一组 API 设计准则,并且始终如一地应用这些准则. Swift API 设计准则包含了几个主要目标,它们都旨在统一 Swift 的开发风格.这些主要目标分别是: Swift API 设计准则:实际的 API 设计准则我们目前正在积极开发中.目前,Swi

苹果公司推出的新编程语言Swift简介和入门教程_IOS

一.Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话: 复制代码 代码如下: Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility.Swift adopts sa

IBM公布Kitura 1.0和Bluemix Runtime for Swift 3

Swift 3正式公布几天后,IBM就已发布了自家的开源服务器端Kitura框架1.0版,以及IBM Bluemix Runtime for Swift 3.InfoQ就服务器端的Swift发展情况采访了IBM的Chris Bailey. 为了兑现改善服务器端Swift稳定性和实用性的承诺,IBM发布了适用于云平台的1.0版Swift框架:Kitura,该框架包含大量新功能,例如URL路由.SSL/TTL支持.JSON解析,以及可插拔式中间件.Kitura还包含了一个可提供静态文件的Web服务器

苹果的新编程语言 Swift 简介

原文出处: Lucia(@peng_gong) 欢迎加入iOS小组. 关于 这篇文章简要介绍了苹果于WWDC 2014发布的编程语言--Swift. 前言 在这里我认为有必要提一下Brec Victor的Inventing on Principle,Swift编程环境的大部分概念都源自于Brec这个演讲. 接下来进入正题. Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话: Swift is a n

Swift调用Objective-C编写的API实例_Swift

互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言.当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 Cocoa 应用的方案. 互用性很重要的一点就是允许你在写 Swift 代码时使用 Objective-C 的 API 接口.当你导入一个 Objective-C 框架后,你可以使用原生的 Swift 语法实例化它的 Class 并且与之交互. 初始化 为了使用 Swift 实例化 O

端午节后福利:Node.js 8

端午节结束了.虽然接下来的四个月都没有节假日,但笔者一点都不烦恼.因为 Node.js 8 在端午后第一个工作日就正式发布,这足以让我与 Node.js 的激情燃烧一个夏天!本文挑选了笔者认为 Node.js 8 最令人兴奋的四大新功能,与大家分享. async/await 与 util.promisify Node.js 一直以来的关键设计就是把用户关在一个"异步编程的监狱"里,以换取非阻塞 I/O 的高性能,让用户轻易开发出高度可扩展的网络服务器.这从 Node.js 的 API