Thanks to its featureful, portable, and modern codebase, Clang/LLVM is rapidly becoming the toolchain of choice for developers worldwide. Recently, its portability has allowed Clang/LLVM to be ported to run inside the Chrome web browser, by way of another LLVM derived technology called Portable Native Client. Working in tandem with several other browser based development tools, the path has been opened to full in-browser software development. This talk explores the unique challenges of porting Clang/LLVM to the browser.
Native Client (NaCl) is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Portable Native Client builds on this foundation by providing a portable LLVM IR derived wire format which is seamlessly compiled and run on the fly. Support for venerable, cornerstone POSIX APIs—files, processes, sockets, terminal I/O— is then built on top of an I/O layer called PPAPI with security limitations that mirror the constraints of Javascript.
Come learn about: porting Clang/LLVM to Native Client, bridging the gap between POSIX and the Web, measuring performance, and connecting Clang/LLVM with other FOSS tools in our in-browser development environment, including editors, interpreters, and build tools. Watch a demonstration of in-browser C/C++ development to discover how the Web can dramatically increase the reach and impact of the LLVM project by frictionlessly putting its tools in the hands of developers and users everywhere.
Speakers: Brad Nelson