InfoQ Homepage Compilers Content on InfoQ
-
Clojure 1.1 Adds Transients, Chunked Sequences for Efficiency
Clojure 1.1 RC1 is out and cuts the overhead of functional programming with a few new constructs: transients bring controlled mutability for persistent data structures; chunked sequences make lazy sequences more efficient. InfoQ takes a look at what makes these improvements work.
-
.NET 4.0 Brings XAML 2009, but Not for WPF Users
At PDC 2009, Michael Shim and Rob Relyea presented Microsoft’s plans for the future of XAML. Long term, they plan on unifying the various XAML languages and parsers, but for now developers will only get XAML 2009 for non-UI technologies like Workflow Foundation. The new parser, on the other hand, will bring new functionality to everyone who needs to analyze, manipulate, or generate XAML.
-
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.