Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon

Libc++ 9 releases with explicit support for WebAssembly System Interface (WASI)

Save for later
  • 2 min read
  • 14 Oct 2019

article-image

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 R$50/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