Skip to content

Back from Silicon Valley

February 20, 2013

DSCN0859How Mozilla sees itself

I’m back to Canada after a two week visit to the Mozilla offices in Mountain View. The visit started with a presentation of Higgs and my PhD research work, which was made available online on Air Mozilla. Then, over the next two weeks, I had several one on one meetings with several members of the JS engine and research teams at Mozilla. The Mozilla people were all extremely friendly and forthcoming. Because of Mozilla’s open culture, I was able to get answers to just about any question I might want to ask about their work. I was also invited to give a talk at Apple and briefly meet with the JavaScriptCore team. This trip was a great opportunity to discuss and refine my research ideas, as well as to gain specific insights into the workings of production JavaScript JIT compilers.

DSCN0850Speaking at Apple

There were also unexpected benefits to my visit. The presentation I gave at Mozilla, which was made available online, garnered some attention on twitter and reddit. As a result, I received invitations to meet from Alex Gaynor of the PyPy project and from Ariya Hidayat of the Esprima parser project (both of which I promptly accepted). I was also invited by Andrei Alexandrescu himself to talk about Higgs and my experience using the D programming language at DConf 2013. Finally, I had the pleasant surprise of getting pull requests on the Higgs github repository.

DSCN0606A taste of America

Being in the Silicon Valley area, I also took the opportunity to visit San Francisco on the weekends. I went to an outdoor pub with some friends and got invited to a barbecue party where I was introduced to the infamous Cards Against Humanity. San Francisco is a charming city with its own highly liberal hippie subculture. It has cute little boutiques and cafés, streetfood, and beautiful parks. Public transportation seems rather good, at least in the city itself (I can’t speak so highly of the suburbs).

DSCN0867San Francisco

The bay area, and San Francisco, are truly different from what I’m used to. It seems everyone is involved with technology, or with a startup, in one way or another. Everyone has a smartphone and Apple TV. People use apps on their phones to summon cabs. The rents are very high and almost everybody has housemates (even couples). Because so many people are in tech, the online communities of the bay area are also more active than elsewhere. Getting to experience Silicon Valley was an interesting experience, and makes me understand why so many tech companies choose to establish themselves in the area: nowhere else are people this excited about tech.

At this point, you might be wondering what I’ve done with my research during this trip, besides talking to many people. For one, I started looking more seriously into the area of trace compilation. The Mozilla people have let me know that they had multiple issues with their TraceMonkey JIT, which eventually led to its retirement. One of these issues was trace explosion: the generation of too many independent traces. Another was constant fallback to the interpreter. What I want to do with Higgs, is implement something closer to region-based compilation, and attempt to solve some of these tracing problems.

In terms of code, I started planning the implementation of a simple backend and tracing JIT for Higgs, so that I can begin experimenting with these concepts. I already made some minor refactorings that will be necessary for this JIT to be possible. I also took the time to fix many (dozens of) bugs that were preventing Higgs from running SunSpider and V8 benchmarks. The good news is that Higgs is now much more standards compliant than before, and even better tested. I updated the lists of supported features and supported benchmarks on the Higgs page to reflect this.

From → Higgs, JavaScript

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: