JS Team Newsletter 8/11-8/30
I’ve been swamped the past few weeks, so this is a bigger catch-up newsletter. I’ll just give the big news because there’s plenty of it.
Nicolas Pierron has joined the JS team to work on IonMonkey. He has done a lot of work on the NixOS package system as well as a few different programming languages research project. He’s starting out by teaching IonMonkey how to call C++ functions from jitcode. Welcome Nicolas!
2011 Summer Internship Program
- Andrew Drake, returning from last summer, this time implemented linear scan register allocation.
- Ryan Pearl implemented SSA-based optimistic global value numbering, an optimization that eliminates redundant computations.
- Andy Scheff implemented loop invariant code motion, an optimization that hoists expressions out of the loop that compute the same thing every iteration. He also wrote the trampolines that allow us to jump from C++ into the generated jitcode.
- Hannes Verschore added compiler support for more opcodes, including conditional branches, multiplication, and a jump table implementation of switch statements, so now IonMonkey can run programs that aren’t entirely trivial.
Each one made a valuable contribution to the project that will (barring meteor strike) eventually ship to hundreds of millions of Firefox users and make their JS faster! Goodbye, and thanks! It was a pleasure having you here!
Project Status Updates
We’ve formed a dedicated project team for IonMonkey. David Anderson is the IonMonkey Project Leader, and the core team members are Chris Leary, Nicolas Pierron, Marty Rosenberg, and Sean Stangl. Brian Hackett will also be working alongside the team to integrate the type inference analysis with the IonMonkey compiler.
The new Debug API has landed! Congrats to Jim Blandy and Jason Orendorff. This is a major improvement to our debugging infrastructure that will make it easier to develop debugging tools for Firefox and help make those tools more reliable. The new Debug API has a well-defined protocol that can operate over a network, so it also makes remote debugging possible.