Swift 5发布,ABI终于稳定了

h4cd 开源中国

Swift 5 发布了,这是一个重要里程碑。



此版本终于迎来了 ABI 稳定,因此 Swift 运行时现在可以引入到 Apple 平台各类操作系统的各个版本中,包括 macOS、iOS、tvOS 与 watchOS。


Swift 5 还引入了构建块的新功能,包括重新实现 String、在运行时对执行内存的独占访问与新数据类型,以及对动态可调用类型的支持。


Swift 5 兼容 Swift 4、Swift 4.1 和 Swift 4.2,Xcode 10.2 中包含了一个代码迁移器,可以自动处理许多迁移需要用到的源码更改。


语言更新


稳定的 ABI 与二进制兼容性

ABI 已经稳定,因此 Swift 库现在可以整合到每个 macOS、iOS、tvOS 和 watchOS 版本中,应用将更容易构建,并且体积更小,因为它们不必包含这些库。


标准库更新

Swift 5 中的标准库包括以下新特性:

  • 使用 UTF-8 编码重新实现的 String 可以产生更快的代码。之前我们已经报导过:Swift 5将使用UTF-8作为首选字符串编码

  • 改进了对字符串中原生文本的支持

  • 标准库添加 Result 和 SIMD 矢量类型

  • 增强了字符串插值功能,为从数据构造文本提供了更多灵活性

  • 改进了 Dictionary 和 Set 的性能


其它语言和编译器更新

Swift 5 默认为调试和发布版本强制执行对内存的独占访问。此外 Swift 5 支持动态可调用类型,有助于提高与 Python、JavaScript 和 Ruby 等动态语言的互操作性。


包管理器更新

Swift 5 为 Swift Package Manager 带来了许多新功能,包括依赖镜像、特定于目标的构建设置、自定义部署目标与生成代码覆盖率数据的能力。此外,swift run 命令现在可以在 REPL 中导入库而无需构建可执行文件。


开源中国征稿啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿


推荐阅读

GitHub不让盗版Windows用户登录?纯属段子

JS引擎V8发布v7.4,性能又大幅提高了

Java 12 / JDK 12 正式发布

速度大提升,Arch Linux计划将zstd作为默认压缩算法

毕业三年,我从萌新后台开发成长为团队 leader

「在看」一下分享给更多开发者↓↓↓

    Read more

    Swift 5发布,ABI终于稳定了

    h4cd 开源中国

    Swift 5 发布了,这是一个重要里程碑。



    此版本终于迎来了 ABI 稳定,因此 Swift 运行时现在可以引入到 Apple 平台各类操作系统的各个版本中,包括 macOS、iOS、tvOS 与 watchOS。


    Swift 5 还引入了构建块的新功能,包括重新实现 String、在运行时对执行内存的独占访问与新数据类型,以及对动态可调用类型的支持。


    Swift 5 兼容 Swift 4、Swift 4.1 和 Swift 4.2,Xcode 10.2 中包含了一个代码迁移器,可以自动处理许多迁移需要用到的源码更改。


    语言更新


    稳定的 ABI 与二进制兼容性

    ABI 已经稳定,因此 Swift 库现在可以整合到每个 macOS、iOS、tvOS 和 watchOS 版本中,应用将更容易构建,并且体积更小,因为它们不必包含这些库。


    标准库更新

    Swift 5 中的标准库包括以下新特性:

    • 使用 UTF-8 编码重新实现的 String 可以产生更快的代码。之前我们已经报导过:Swift 5将使用UTF-8作为首选字符串编码

    • 改进了对字符串中原生文本的支持

    • 标准库添加 Result 和 SIMD 矢量类型

    • 增强了字符串插值功能,为从数据构造文本提供了更多灵活性

    • 改进了 Dictionary 和 Set 的性能


    其它语言和编译器更新

    Swift 5 默认为调试和发布版本强制执行对内存的独占访问。此外 Swift 5 支持动态可调用类型,有助于提高与 Python、JavaScript 和 Ruby 等动态语言的互操作性。


    包管理器更新

    Swift 5 为 Swift Package Manager 带来了许多新功能,包括依赖镜像、特定于目标的构建设置、自定义部署目标与生成代码覆盖率数据的能力。此外,swift run 命令现在可以在 REPL 中导入库而无需构建可执行文件。


    开源中国征稿啦!


    开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


    现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿


    推荐阅读

    GitHub不让盗版Windows用户登录?纯属段子

    JS引擎V8发布v7.4,性能又大幅提高了

    Java 12 / JDK 12 正式发布

    速度大提升,Arch Linux计划将zstd作为默认压缩算法

    毕业三年,我从萌新后台开发成长为团队 leader

    「在看」一下分享给更多开发者↓↓↓

      Read more