2 min read

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.
  • 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 ++

You can also see the release notes for additional information.

Read Next

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

Content Marketing Editor at Packt Hub. I blog about new and upcoming tech trends ranging from Data science, Web development, Programming, Cloud & Networking, IoT, Security and Game development.