最新的Libc++第9版本現在釋出,官方提到,這個Libc++ C++標準函式庫是LLVM編譯器基礎架構的一部分。Libc++是針對C++11和C++14或更高版本,所提供的C++標準函式庫實作。

Libc++第9版本修復了許多臭蟲,並放棄對GCC 4.9的支援,目前只支援GCC 5.1及更高版本。同時也加入一些新的語言功能,包括std::swap現在成為一個常數表式(Constant Expression),在容器類別中加入了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是一個概念機器(Conceptual Machine)的組合語言,並非物理機器的組合語言,但是要讓WebAssembly可以跨出瀏覽器,在不同的作業系統上運作,需要一個概念作業系統的系統介面。

目前雖然有幾個方式可以讓WebAssembly在沒有瀏覽器的情況下執行,但都屬於旁門左道的方法,Mozilla為了要維持WebAssembly的可移植性以及安全性,提出了WebAssembly系統介面,定義了一套模組化的標準介面。目前這項工作從最基本的wasi-core開始,其包含了所有應用程式需要的基礎。


Advertisement

更多 iThome相關內容