最新的Libc++第9版本现在推出,官方提到,这个Libc++ C++标准函数库是LLVM编译器基础架构的一部分。Libc++是针对C++11和C++14或更高版本,所提供的C++标准函数库实作。
Libc++第9版本修复了许多臭虫,并放弃对GCC 4.9的支持,目前只支持GCC 5.1及更高版本。同时也加入一些新的语言功能,包括std::swap现在成为一个常数表式(ConstantExpression),在容器类别中加入了contains方法,还新增std::midpoint与std::lerp数学函数,而std::span新增了front和back方法等。
不过,Libc++第9版本最受人注目的更新,还是加入了WebAssembly System Interface(WASI)的支持,而这将能增加与WebAssembly的互通性。WASI是由Mozilla最新提出,让WebAssembly离开浏览器跨作业系统执行的解决方案。
新一代网页格式WebAssembly拥有极高的执行效率,可以让浏览器执行重量级的应用程式,又能兼顾安全,因此Mozilla想办法要扩增WebAssembly的可移植性。Mozilla表示,之所以WebAssembly可以在不同平台上执行,是因为WebAssembly是一个概念机器(ConceptualMachine)的组合语言,并非物理机器的组合语言,但是要让WebAssembly可以跨出浏览器,在不同的作业系统上运作,需要一个概念作业系统的系统界面。
目前虽然有几个方式可以让WebAssembly在没有浏览器的情况下执行,但都属于旁门左道的方法,Mozilla为了要维持WebAssembly的可移植性以及安全性,提出了WebAssembly系统界面,定义了一套模组化的标准界面。目前这项工作从最基本的wasi-core开始,其包含了所有应用程式需要的基础。
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/1367745.html