InfoQ Homepage Compilers Content on InfoQ
-
JRuby's New IR Paves the Way for Future Performance Improvements
A new intermediate representation (IR) for JRuby code enables many optimizations and could bring the next performance boost. InfoQ talked to Subbu Sastry who works on the IR.
-
MacRuby 0.5 Beta Brings JIT, AOT, GCD Support, Removes GIL
The first beta of MacRuby 0.5 is available, complete with a new VM, JIT and AOT - and without the GIL. InfoQ talked to the MacRuby core team about the state of MacRuby and whether there'll be a way to write Ruby apps for the iPhone using MacRuby.
-
New Installer Provides a Much Faster Ruby for Windows
Luis Lavena is working on an update to the Ruby installer for Windows, including a new Ruby binary built with a modern compiler. Benchmarks show Ruby 1.8.6 running more than twice as fast than previously. We talked to Luis Lavena about the new Ruby Installer.
-
A Type System for Scala Actors to Enforce Race Safety Without Sacrificing Performance
Philipp Haller and Martin Odersky introduce a type system that enables safe massage transfer in Scala actors. Formalized as an extension of the EPFL Scala compiler, “Object Capability Types” system, based on capability checking and external uniqueness, enforces race safety without sacrificing performance and removes significant limitations on message shape imposed by existing approaches.
-
Ruby VM Roundup: IronRuby 1.0 Coming Up, RubySpec, JRuby 1.3.1
IronRuby's alive and kicking - and will go 1.0 in July. We look at some resources to get up to speed with IronRuby's status. Also: JRuby 1.3.1 is an important bug fix update for JRuby users, MacRuby continues to improve and MagLev now comes with a native parser.
-
JRuby Roundup: JRuby 1.3 Released, ruby2java, JSR 292 Progress
JRuby 1.3 is now available, bringing performance improvements and compatibility with Google AppEngine. Work on other improvements is continuing and a first version of the ruby2java compiler is now available. Also: InvokeDynamic support is making it's way into the builds for the next Java version.
-
Rich Hickey on Clojure's Features and Implementation
In this interview from QCon London 2009, Rich Hickey talks about Clojure. The discussion includes the ideas behind Clojure's STM support, what other concurrency primitives Clojure supports and which ones might get added in the future. Other topics covered are Clojure's AOT support, the role and implementation of multimethods, Clojure ports to other systems and much more.
-
Performance Roundup: Heap Stacks Boost Threads in 1.8.x, MacRuby AOT, ZenProfile and EventHooks
New patches by Joe Damato improve the efficiency of Ruby 1.8.x's green threads with heap stacks: instead of copying the entire stack at every context switch, the patches actually switch between different stacks. Ryan Davis released zenprofile and event_hook for efficient profiling. Also: work on a MacRuby Ahead of Time compiler using LLVM has started.
-
Microsoft Has Open Sourced the Common Compiler Infrastructure
Microsoft Research has open sourced the Common Compiler Infrastructure: Metadata (CCI) and CCI: Code and AST projects containing a set of libraries used by compilers and other programming tools to manipulate metadata in CLR assemblies and debug files. The CCI: Metadata components subsume System.Reflection while CCI: Code and AST subsumes System.CodeDom.
-
Jeff Moser's How .NET Regular Expressions Really Work
Did you know the last 15 regular expressions are cached? Or that the .NET engine uses a form of machine code? You can learn this and more from Jeff Moser's in-depth study of how regular expressions work in .NET.
-
C# 4.0 "Fixes" Deadlock Issue
C# 4.0 implemented a change that assured optimized and non -optimized compiles yielded consistent results. This "Fix" emphasized some design problems with locking mechanisms.
-
Presentation: Ruby.rewrite(Ruby)
In this RubyFringe talk, Reginald Braithwaite shows how to write Ruby that reads, writes, and rewrites Ruby. The demos include extending the Ruby language with conditional expressions, new forms of evaluation such as call-by-name and call-by-need, and more.
-
RubyConf'08 Videos: Ruby VMs: Internals of YARV, Rubinius, MagLev
The videos from RubyConf '08 are available. We looked at the Ruby VM talks. Sasada Koichi, creator of the Ruby 1.9 VM, talks about the state of the VM, experiments with Ruby to C AOT, Ricsin and more. Evan Phoenix talks about the state of the Rubinius C++ VM. A detailed talk shows how MagLev is implemented. Also: MacRuby, JRuby, IronRuby, VM optimizations, RubySpec.
-
GWT 1.5: Java 5 Support, Performance Improvements and JavaScript Enhancements
Google Web Toolkit (GWT), a Java-centric compiler which creates JavaScript-based web applications, released version 1.5 today. InfoQ spoke with tech lead Bruce Johnson to learn more about this release and what new capabilities it adds to GWT.
-
Article: Exploring LISP on the JVM
This article, written by Per Jacobsson, is aimed at Java developers curious about Lisp. It discusses the different dialects of Lisp that are available on the JVM today, and gives a crash course in how Lisp programming works and what makes it unique. Finally it looks at how Lisp code can be integrated with a Java system.