今年六月,Apple 推出了 Swift System,这是一个底层系统接口库。现在 Swift System 已开源并增加了 Linux 支持。Apple 称,他们的目标是为所有受支持的 Swift 平台的底层系统接口提供常态化解决方案。

如多数常规操作一样,Swift 支持 C 接口,但是从 C 导入的一些弱类型系统接口可能容易出错且难以处理,无法充分利用 Swift 的类型安全特性。因此,Swift System 模块引入了多种语言功能,以提高表达能力并消除出现错误的机会。

Swift 团队工程师 Michael Ilseman 举了这样一个例子:Swift System 使用 FileDescriptor 命名空间中的默认参数将 open 系统调用定义为静态函数:

与 C 版本相比,Swift System 普遍使用原始的可表示结构和选项集,这些强类型有助于在编译时捕获错误,而且能够方便地在弱 C 类型之间来回转换。标准语言机制和信号中断重试行为也极大地简化了错误和信号处理。另外,与 UnsafePointer 相比,FilePath 使用起来更加安全。

Swift System 是一个多平台库,而非跨平台。它根据特定情况,为每个受支持的平台提供单独的 API 和行为。目前 Swift System 处于起步阶段,仅包括少量系统调用、currency 类型和一些方便的功能。为扩大 API 覆盖范围,Apple 表示正致力于在 Swift Package Manager 中采用 Swift System。同时,Swift 对 Windows 的支持也会进一步增强。

转载自 OSC开源社区

推荐阅读:
  • 全宇宙首本 VS Code 中文书,来了!

  • Code Runner for VS Code 突破 1000 万下载量!支持运行超过 40 种语言

  • 微软也爱 Python!VS Code Python 全新发布!Jupyter Notebook 原生支持终于来了!

  • 微软也爱 Java!微软在 SpringOne 大会上宣布 Azure Spring Cloud 云服务!

  • 在微软(Microsoft)工作是怎样一番体验?

  • 微软内推,长期有效

  • 代码编辑器横评:为什么 VS Code 能拔得头筹

  • 知否知否,VS Code 不止开源

  • 那些年,我们一起追的 VS Code

玩转VS Code

VS Code · 编程开发 · 业界资讯

linux怎样自制库_苹果开源Swift System,增加Linux支持相关推荐

  1. 中国首枚芯片邮票问世;苹果开源 Swift System | 极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 中国首枚芯片邮票问世!搭载 120um 超薄 NF ...

  2. linux怎样自制库_如何制作自己的LINUX系统?

    创建工作目录 使用busybox生成根文件系统中的bin等目录 创建服务启动脚本与inittab文件与fstab文件 创建根文件系统的init脚本(initrc使用linuxrc,而initramfs ...

  3. 树莓派如何使用第三方库_使用MCC DAQ与第三方Linux驱动的树莓派数据采集

    简介 Raspberry Pi®是一种单板式计算机,可连接键盘.显示器,并运行基于Linux®的操作系统.低于人民币300元的树莓派提供了一种注重性价比的数据采集方案. MCC以三种不同的方式支持树莓 ...

  4. linux mysql换成_把 SQL Server 迁移到 Linux?不如换成 MySQL

    (点击上方公众号,可快速关注) 英文:Tony Branson 译者:Linux中国 链接:linux.cn/article-8073-1.html 最近几年,数量庞大的个人和组织放弃 Windows ...

  5. linux如何卸载内核模块_如何加载或卸载Linux内核模块

    linux如何卸载内核模块 本文摘自Manning出版的< Linux in Action>第15章. Linux使用内核模块管理硬件外围设备. 这是这样的. 一个运行中的Linux内核是 ...

  6. linux实现命令解释器_想在Win10上安装Linux,只需一个命令即可实现

    尽管在Windows 10上,安装用于Linux 2的Windows子系统并不困难,但它需要很多步骤,如果你还想将WSL2设置为默认值,则需要更多步骤.但是,在将来的版本中,微软致力于简化安装过程,以 ...

  7. 苹果开源Swift底层非阻塞I/O框架SwiftNIO

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ 在近日举行的try! Swift东京大会上,苹果宣布了SwiftNIO项目,这是一个用Swi ...

  8. linux 图形界面库,几款开源的图形界面库(GUI Libraries)

    遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows CE的应用程序... ...

  9. linux c 界面库,几款开源的图形界面库(GUI Libraries)

    国外: 遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows CE的应用程序 ...

最新文章

  1. 【力扣网练习题】罗马数字转整数
  2. 《看透springmvc源码分析与实践》读书笔记二
  3. flume高可用-failover-模型分析
  4. Bailian2754 八皇后【回溯】
  5. Python实现机器学习
  6. CCS 软件使用经验四则
  7. CopyU!v2 已经收录到腾讯软件管家!
  8. 国际象棋渲染测试软件,多线程运算效能Fritz国际象棋测试_CPUCPU评测-中关村在线...
  9. B站网页端下载视频,直接浏览器下载或者Java实现下载
  10. httpclient 假死问题
  11. 上帝永远不会问你的十件事
  12. 手机阅读行业分析(beta)
  13. 阿里云天池大数据:【入门】精灵宝可梦数据集分析
  14. XiunoBBS ax_date 插件 日期显示不正确 修复
  15. SQL报错及解决方法(随缘更新)
  16. 面试前端程序员想拿 10K,面试官说你只值8K,如何应付?
  17. 【GIS小白学习笔记】Excel加至Arcgis坐标分带选择
  18. 主成分分析法及MATLAB代码
  19. Unity中的万向节死锁
  20. 如何使用edge给chrome下载官方插件

热门文章

  1. PKM2数据导出的xml显示用的XSL
  2. Biztalk2009安装全过程截图,x64平台需要手动更改运行模式
  3. 测试oracle中set arraysize xx对性能的影响
  4. Assembly Manifest 通俗简易手册
  5. UWP 实现分享功能
  6. BZOJ1026[SCOI2009]windy数
  7. 安装IPython攻略
  8. HDU 1114 iggy-Bank(完全背包)
  9. grootJsAPI文档
  10. MySQL查询优化之索引