InfoQ Homepage Compilers Content on InfoQ
-
Babel 7.7 Released with Improved TypeScript Support, Top-Level Await and More
The recently released Babel 7.7 now parses top-level await, Flow enum declarations (Flow proposal), and proposes recovery options from certain syntax errors. Babel 7.7 now supports TypeScript 3.7. Babel also introduces a new optional babel.config.json configuration files, and miscellaneous other features and bug fixes.
-
Sucrase, a Faster Babel for Modern JS Runtimes
The Sucrase JavaScript/TypeScript compiler aims at providing significantly faster development builds than the Babel compiler. Faster builds mean faster iterations, specially when testing on a large codebase. Some empirical measures show a gain in speed between 4x and 20x vs. Babel. Developers may thus enjoy the improved developer experience in development, and still resort to Babel in production.
-
Writing Web Applications in Java - a Study of Alternatives
Developers familiar with the Java Virtual Machine languages and who want to develop web applications without the difficulties of a JavaScript development stack, have an increasing array of alternatives to JavaScript to choose from. The performance penalty vs. native JavaScript web applications is shrinking.
-
J2CL: A Java-to-JavaScript Transpiler
J2CL is a source-to-source compiler that converts Java to Javascript. It attempts to solve a different problem than similar Java-to-Javascript frameworks such as GWT. Likewise, J2CL is not meant to compete with or replace existing JavaScript frameworks; J2CL is about interoperability and cross-platform code reuse.
-
Svelte 3 Front-End Framework Moves Reactivity into the JavaScript Language, Q&A with Rich Harris
The recently released front-end framework Svelte 3 introduces a new syntax to express reactivity in JavaScript. InfoQ interviewed Rich Harris, Svelte creator, and discussed what Svelte 3 means and its implications for developers.
-
.NET Core Completes Move to RyuJIT
The .NET Core CLR team has announced that their next-generation just-in-time compiler RyuJIT is now completely powering the .NET Core platform. This change makes four architectures available (x86, x64, ARM32, and ARM64) to .NET Core developers. Furthermore, all will benefit from a fast modern compiler design.
-
.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.