Compilers and Virtual Machines

Igalia is the most experienced JavaScript virtual machine engineering consultancy contributing code upstream to V8, JavaScriptCore and SpiderMonkey. We also apply our compilers knowledge to work in other dynamic language implementations like Python, Scheme, Ruby and more.

Compiler technology is at the heart of performance optimization: compilers generate the machine code that will run your software, and as such, they are the main responsible actors in making the best use of the CPU instruction set to get the job done in the most efficient way possible.

We have the best team of WebKit developers with a strong competence in JavaScript engines like V8, JavaScriptCore and SpiderMonkey, making Igalia the best partner of choice for optimizing consumer electronic solutions based on client-side web technology.

We specialize in JavaScript upstream work as well as other domains such as debuggers (GDB and integrated debuggers), dynamic language environments integration to existing C/C++ systems, and Guile Scheme compiler, especially in the optimizer and its next-generation virtual machine.

Igalia has talented engineers who understand how compilers work and can optimize how they generate machine code for your programs, providing that performance boost that can make a real difference. Our team can provide holistic optimizations: in the runtime, on the frontend, the optimizer and in the backend.

We can also help companies developing Javascript-based software and products, advising on their design and implementation choices or programming and upstreaming new features required in the javascript engine.

Featured Media

Andy Wingo: DIY Internet: Snappy, Secure Networking with MinimaLT -- JSConf EU 2013
Andy Wingo: JavaScriptCore's DFG JIT -- JSConf EU 2012
Andy Wingo at JSConf USA 2012


Andy Wingo 01/07/2014

flow analysis in guile

Greets, and welcome back to the solipsism! I've been wandering the wilderness with my Guile hackings lately, but I'm finally ready to come back to civilization. Hopefully you will enjoy my harvest of forest fruit. Today's article is about...

Andy Wingo 18/05/2014

effects analysis in guile

OK kids, so I had a bit of time recently and have been hacking on Guile's new CPS-based compiler slated for stable release in a few months. I have a few things to write about but today's article is on effects analysis.what it is, yoThe job of...

Andy Wingo 17/03/2014

stack overflow

Good morning, gentle hackers. Today's article is about stack representation, how stack representations affect programs, what it means to run out of stack, and that kind of thing. I've been struggling with the issue for a while now in Guile and...

Andy Wingo 07/03/2014

es6 generator and array comprehensions in spidermonkey

Good news, everyone: ES6 generator and array comprehensions just landed in SpiderMonkey! Thanks to Bloomberg for sponsoring this work.

Andy Wingo 18/02/2014

compost, a leaf function compiler for guile

What's that out by the woodshed? It's a steaming pile -- it's full of bugs -- it's compost, a leaf function compiler for Guile!Around this time last year, a few of us cooked up some hack-dishes to bring to a potluck for Guile...


Implement generator mirror

Implement generator mirror R=yangguo@chromium.org, aandrey@chromium.org BUG=v8:3292 LOG=N Review URL: https://codereview.chromium.org/580823002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Andy Wingo18/09/2014

Array.prototype.sort: Unchecked calls to hasOwnProperty and push and sort

Array.prototype.sort: Unchecked calls to hasOwnProperty and push and sort BUG=v8:3537 LOG= R=arv@chromium.org, wingo@igalia.com, yangguo@chromium.org Review URL: https://codereview.chromium.org/555173002 git-svn-id:...

Andy Wingo17/09/2014

Enable ES6 generators

Enable ES6 generators R=rossberg@chromium.org BUG=v8:2355 LOG=Y Review URL: https://codereview.chromium.org/573963003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Andy Wingo16/09/2014

Add (ice-9 unicode) module

Add (ice-9 unicode) module

Andy Wingo12/09/2014

Arguments object has @@iterator

Arguments object has @@iterator R=arv@chromium.org, verwaest@chromium.org, rossberg@chromium.org BUG=v8:3391 LOG=N TEST=mjsunit/harmony/arguments-iterator.js Review URL: https://codereview.chromium.org/342453002 git-svn-id:...

Andy Wingo25/08/2014