03

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

Updates

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...

Commits

EmitCreateIteratorResult loads map from function's context

EmitCreateIteratorResult loads map from function's context Caching or serialization can cause full-codegen output to be shared between contexts. CreateIteratorResult, however, was doing the wrong thing by creating results with the map that was current...

Andy Wingo29/10/2014

Move AST node counting to post-pass

Move AST node counting to post-pass R=mstarzinger@chromium.org, svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/683023002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Andy Wingo28/10/2014

Revert "Move AST node counting to post-pass"

Revert "Move AST node counting to post-pass" This reverts commit 698356720824559a6bd81c24be707b44ac277526 for breaking regress-96526-002 among other things. TBR=mstarzinger@chromium.org BUG= Review URL:...

Andy Wingo27/10/2014

Move AST node counting to post-pass

Move AST node counting to post-pass R=mstarzinger@chromium.org, svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/675493002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Andy Wingo27/10/2014

Array.prototype.{reduce, reduceRight}: Wrong order of operations when determining initial value.

Array.prototype.{reduce, reduceRight}: Wrong order of operations when determining initial value. BUG=v8:3534 LOG= R=svenpanne@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/614733002 Patch from Diego Pino . git-svn-id:...

Andy Wingo22/10/2014