InfoQ Homepage Compilers Content on InfoQ
-
.NET WebAssembly Support an Ongoing Experiment
WebAssembly now ships on by default in the four major browsers and the .NET community continues to push forward to provide .NET developers the ability to compile their to WebAssembly and run it in the browser.
-
LLVM Has Documented the PDB Format, Complete with PDB to YAML Conversion
LLVM can now generate PDB files, allowing the use of Windows debugging tools. In addition, they have documented the format and created tooling for analyzing with and generating PDB files from YAML.
-
Profile Guided Optimization Comes to .NET Core
Profile Guided Optimization is a native compilation technology that has long been available to native code developers (i.e. Visual C++). Microsoft has announced that this technology is now available for .NET Core developers on Windows x86/x64 and Linux x64.
-
Prepack JavaScript Compiler Aims to Reduce Startup Time
Facebook has revealed Prepack, a compile time JavaScript interpreter that aims to reduce the time spent initializing code by pre-computing the global code block. The biggest beneficiaries of this tool are React Native apps and other platforms where startup time is one of the biggest performance bottlenecks.
-
GCC 7.1 Released with Full C++17 Support
The latest GNU Compiler Collection major release, GCC 7.1, brings substantial new functionality, writes GCC maintainer Jakub Jelinek, including experimental support for the current C++17 draft, better diagnostics, and new optimizations.
-
LLD, LLVM’s New Linker, Coming to LLVM 4
LLD, which touts great performance improvements over GCC ld, will be included in LLVM 4 rc1 and enabled by default. Although the new linker is already able to build a running FreeBSD/amd64 base system, its inclusion in LLVM is still experimental and could be set back in rc2 if it causes problems.
-
MIT Extended LLVM IR to Enable Better Optimization of Parallel Programs
Researchers at MIT have been working on a fork of LLVM to explore a new approach to optimizing parallel code by embedding fork-join parallelism directly into the compiler’s intermediate representation (IR). This, the researchers maintain, makes it possible to leverage most of the IR-level serial optimizations for parallel programs.
-
WebAssembly Browser Preview Asks Community for Feedback
The upcoming WebAssembly technology has reached the browser preview stage where major browser vendors have released a stable and compatible version of the language. They are now asking the community to use it and provide feedback.
-
How Facebook Redesigned the HHVM JIT Compiler for Performance
In the Summer of 2013, Facebook engineers started a major redesign of the HHVM JIT compiler that brought an overall 15% reduction of CPU usage on Facebook’s web servers. Facebook engineer Guilherme Ottoni has recently described how Facebook achieved that result by backing profile-guided optimizations (PGO) into their JIT compiler.
-
V8's New JavaScript Interpreter Improves Memory Consumption
Google's V8 JavaScript engine has a new interpreter, called Ignition, that hopes to reduce the compiler's memory consumption and reduce complexity. Chrome 53 will start using Ignition on Android devices with 512 MB of RAM or less.
-
Go 1.7 Brings Compiler Improvements and More
Go 1.7 significantly improves both compile times and runtime performance, says Google engineer Chris Broadfoot. It also adds hierarchical tests and benchmarks and official support for Linux on IBM z Systems (s390x).
-
Rust 1.10 Improves Bootstrapping, Panic Handling, and More
Newly released Rust 1.10 introduces a new approach to bootstrapping that aims to be friendlier to open-source distributions. Additionally, it adds a new cargo option for handling panic that improves compiler performance and reduces binary size, a new format for shared libraries, and many performance improvements.
-
Anders Hejlsberg Explains Modern Compiler Construction
The main reference in compiler construction, Compiler: Principles, Techniques, and Tools, also know as the Dragon Book, was first published in 1986. Anders Hejlsberg, known for his work on Turbo Pascal, Delphi, C# and TypeScript, explains in a Channel 9 interview how compiler construction today is different from how it was done 30 years ago.
-
Go 1.7 to Improve Compilation Speed and Generate Faster Code
When Go 1.7 development cycle has still about a couple of weeks to go, Go committer Dave Cheney has reported on the team efforts to improve the toolchain for the coming release.
-
Android N Combines AOT, Interpretation and JIT
Android N introduces a hybrid runtime using compilation + interpretation + JIT to obtain the best compromise between installation time, memory footprint, battery consumption and performance.