Electron 3.0.0 发布,升级 Chrome、Node 与 V8;Swift 4.2 发布

Electron 3.0.0 发布,升级 Chrome、Node 与 V8;Swift 4.2 发布

Electron 3.0.0 发布,升级 Chrome、Node 与 V8
Swift 4.2 正式发布:泛型改进,更快更兼容!

Electron 3.0.0 发布,升级 Chrome、Node 与 V8

Electron 3.0.0 发布了,Electron 是 GitHub 发布的跨平台桌面应用开发工具,支持 Web 技术开发桌面应用,其本身是基于 C++ 开发的,GUI 核心来自于 Chrome,而 JavaScript 引擎使用 V8。

此版本主要更新内容包括:

新特性

此次更新 Electron 工具链的几个重要部分都进行了升级,包括 Chrome v66.0.3359.181、Node v10.2.0 和 V8 v6.6.346.23:

[#12656] feat: app.isPackaged

[#12652] feat: app.whenReady()

[#13183] feat: process.getHeapStatistics()

[#12485] feat: win.moveTop() 将窗口 z-order 移动到顶部

[#13110] feat: TextField 与 Button API

[#13068] feat: netLog API 动态日志控制

[#13539] feat: 在沙箱渲染中启用 webview

[#14118] feat: fs.readSync 现在可用于大文件

[#14031] feat: node fs 封装使 fs.realpathSync.native 和 fs.realpath.native 可用

破坏性 API 变更

[#12362] feat: 更新菜单项订单控制

[#13050] refactor: 删除了已弃用的 API

[#12477] refactor: 删除 did-get-response-details 和 did-get-redirect-request 事件

[#12655] feat: 默认禁用导航拖放

[#12993] feat: 需要使用 node v4.x 或更高版本的 Electron npm 模块

[#12008 #12140 #12503 #12514 #12584 #12596 #12637 #12660 #12696 #12716 #12750 #12787 #12858] refactor: NativeWindow

[#11968] refactor: menu.popup()

[#8953] feat: 不再使用 JSON 发送 ipcRenderer.sendSync 的结果

[#13039] feat: 默认忽略 URL 后面的命令行参数

[#12004] refactor: 将api::Window 重命名为 api::BrowserWindow

[#12679] feat: 可视化缩放现在默认关闭

[#12408] refactor: 将 app 命令 media-play_pause 重命名为 media-play-pause

bug 修复

[#13397] fix: fs.statSyncNoException 抛出异常的问题

[#13476, #13452] fix: 使用 jquery 加载网页时崩溃

[#14092] fix: 在 net :: ClientSocketHandle 析构函数中崩溃

[#14453] fix: 立即通知焦点变化

此外还有其它更新内容,并且分别针对 Windows、Linux 与 macOS 平台做了一些 bug 修复,详情见发布公告:

https://electronjs.org/blog/electron-3-0


下载地址:

https://electronjs.org/blog/electron-3-0


Swift 4.2 正式发布:泛型改进,更快更兼容!

Swift 4.2 现已正式发布!Swift 4.2 基于 Swift 4 的优势,提供更快的编译时间,改进调试体验,更新标准库以及融合二进制兼容性。

泛型改进

随着对 conditional conformance 的支持,Swift 4.2 在泛型方面取得了重大进展,像是减少样板代码的数量,使更多代码可重用等等。要了解有关 conditional conformance 的更多信息,请参阅:

https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md

标准库更新

Swift 4.2 中的标准库包含许多新特性,比如 Hashable 协议的改进以及新的统一随机化函数(randomization functions)和协议集。

SE-0197 Adding in-place removeAll(where:) to the Standard Library

SE-0199 Adding toggle to Bool

SE-0202 Random Unification

SE-0204 Add last(where:) and lastIndex(where:) Methods

SE-0206 Hashable Enhancements

SE-0207 Add an allSatisfy algorithm to Sequence

二进制兼容性

Swift 4.2 使语言更接近稳定的 ABI ,为未来的 Swift 版本实现二进制兼容性。访问 ABI Dashboard 可了解有关此项工作当前进展的更多详情:

https://swift.org/abi-stability/

其他语言和编译器更新

Swift 4.2 包含许多对开发者体验有显着影响的改进,包括:

Support for batch mode compilation resulting in faster build times

Change in calling convention for retain/release cycle to reduce code size and improve runtime performance

Lazier SIL deserialization with -Onone

Recursive metadata support

More compact reflection metadata

Default arguments are inlined at call sites

Some long-standing bug fixes, including init declname, switch with multiple case labels per block, inheritance of generic initializers, and more

Swift 4.2 还实现了 Swift Evolution 上的一些提案:

SE-0054 Abolish ImplicitlyUnwrappedOptional type. Read even more details about the reimplementation here.

SE-0079 Allow using optional binding to upgrade self from a weak to strong reference

SE-0193 Cross-module inlining and specialization

SE-0194 Derived Collection of Enum Cases

SE-0195 Introduce User-defined “Dynamic Member Lookup” Types

SE-0196 Compiler Diagnostic Directives

SE-0205 withUnsafePointer(to::) and withUnsafeBytes(of::) for immutable values

SE-0210 Add an offset(of:) method to MemoryLayout

SE-0212 Compiler Version Directive

包管理器更新

Swift 4.2 为 Swift 包管理器引入了新功能:

支持批处理模式. Swift targets will be now compiled using the Swift compiler’s batch mode.

Improved scheme generation logic. The scheme generation logic is improved and generates schemes as follows:

One scheme containing all regular and test targets of the root package.

One scheme per executable target containing the test targets whose dependencies intersect with the dependencies of the executable target.

Automatic Xcode project generation. The generate-xcodeproj has a new –watch option to watch the file system and automatically regenerate the Xcode project if needed. This uses the watchman tool to watch the required files.

Swift 4.2 还实现了 Swift Evolution 上关于包管理器的一些提案:

SE-0201 Package Manager Local Dependencies. SwiftPM now supports declaring dependency on a package using its path on disk instead of the git URL. This requires updating the package’s tools version to 4.2.

SE-0208 Package Manager System Library Targets. The PackageDescription API in tools version 4.2 supports a new type of target “system library target”, which moves the current system-module packages feature from package to target level.

SE-0209 Package Manager Swift Language Version API Update. swiftLanguageVersions property in PackageDescription manifest API for tools version 4.2 is changed from an array of Integers to an array of SwiftVersion enum.

迁移说明和更新细节可查阅:

https://swift.org/blog/swift-4-2-released/

下载地址:

https://swift.org/download/

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...