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

Katerina Barone-Adesi 31/10/2014

A tale of sunk allocation

Pflua is fast; Igalia wants it to be faster. When I joined Igalia, one of the big open questions was why some very similar workloads had extremely different speeds; matching a packet dump against a matching or non-matching host IP address could make the...

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.

Commits

Merge pull request #86 from Igalia/declare-variables

Merge pull request #86 from Igalia/declare-variables Declare global variables, and make 'verbose' local.

Katerina Barone-Adesi18/11/2014

Merge pull request #85 from Igalia/cache-ffi-c

Merge pull request #85 from Igalia/cache-ffi-c Cache ffi.C

Katerina Barone-Adesi18/11/2014

Merge pull request #84 from Igalia/low-icmp6

Merge pull request #84 from Igalia/low-icmp6 Implement 'icmp6'

Katerina Barone-Adesi18/11/2014

Cache ffi.C

Cache ffi.C

Diego Pino18/11/2014

Add example 'icmp6'

Add example 'icmp6'

Diego Pino18/11/2014