On Friday, Libc++ version 9 was released; libc++ is an implementation of the C++ standard library, targeting C++11, C++14 and above. Libc++ 9 is a part of the LLVM Compiler Infrastructure, release 9.0.0 which was made available in September. Libc++ 9 adds explicit support for WebAssembly System Interface (WASI) along with major improvements from the previous release and new feature work. Libc++ has also dropped support for GCC 4.9; they now support GCC 5.1 and above.
WASI is a system interface for the WebAssembly platform. Currently, it supports sandboxed access to the filesystem via a POSIX-like API, as well as other basic interfaces like argv, environment variables, random numbers, and timers. There are three popular implementations of WASI: wasmtime, Mozilla’s WebAssembly runtime, Lucet, Fastly’s WebAssembly runtime, and a browser polyfill.
Improvements in Libc ++ 9
- Minor fixes to std::chrono operators.
- libc++ now correctly handles Objective-C++ ARC qualifiers in std::is_pointer.
- Front and back methods are added to std::span
- std::to_chars now adds leading zeros.
- Ensure std::tuple is trivially constructible.
- std::aligned_union now works in C++03.
- Output of nullptr to std::basic_ostream is formatted properly.
- P0608 is now implemented as a sane variant converting constructor.
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime
- std::is_unbounded_array and std::is_bounded_array added to type traits.
- std::atomic now includes many new features and specialization
- Added std::midpoint and std::lerp math functions and std::is_constant_evaluated function
- Erase-like algorithms now return size type.
- Added contains method to container types.
- std::swap is now a constant expression.
- std::move and std::forward now both work in C++03 mode.
People on Twitter were quite happy with WASI support in libc ++
https://twitter.com/Stephen_d2005/status/1178489876070535168
https://twitter.com/iwillrunoutofsp/status/1182702301062008832
You can also see the release notes for additional information.
Introducing Weld, a runtime written in Rust and LLVM for cross-library optimizations
LLVM 9 releases with official RISC-V target support, asm goto, Clang 9, and more
LLVM’s Clang 9.0 to ship with experimental support for OpenCL C++17, asm goto initial support and more.
LLVMs Arm stack protection feature turns ineffective when the stack is re-allocated