InfoQ Homepage Compilers Content on InfoQ
-
V8 Gets a Non-Optimizing Compiler Stage to Improve Performance
The latest version of the JavaScript V8 engine, V8 9.1, introduces a new intermediate compiler stage, called Sparkplug, that improves performance on real-world benchmarks by 5-15%, says V8 engineer Leszek Swirski. It will be available in the upcoming Chrome 91.
-
REPLicant, a Super Simple Svelte REPL - Peter Allen at Svelte Summit 2020
Peter Allen recently gave a talk at Svelte Summit 2020 in which he explained the benefits of REPL (Read-Print-Eval-Loop) playgrounds. While the Svelte REPL is complex due to the handling of many edge cases, the principles underlying code playground implementations are simple. Allen progressively led the viewer into the implementation of the simplest possible version of the Svelte REPL.
-
MDsveX - Adding Interactivity with Svelte Components in Markdown
The mdsvex npm package was recently entirely rewritten to allow Svelte developers to have Markdown content inside a Svelte component and also use Svelte components inside Markdown. Like Gatsby with MDX/React, mdsvex allows developers to mix Markdown and Svelte components to generate interactive content.
-
WebAssembly Used by Java-to-Web Compiler CheerpJ 2.0 to Port Java Applications to Browsers
LeaningTech recently released the second major iteration of CheerpJ. CheerpJ 2.0 may convert Java applications into a mix of HTML, WebAssembly and JavaScript, so that developers can run Java applications (including applets) in browsers or integrate Java libraries into web applications. CheerpJ 2.0 uses WebAssembly to improve runtime speed.
-
Ionic's Stencil Component Compiler Design Considerations -- Adam Bradley at DotJS2019
Adam Bradley, creator of StencilJS and co-creator of Ionic Framework, reviewed at dotjs2019 the design and architecture that went into Stencil, a component compiler which generates framework agnostic components.
-
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.