03

Compilers and Virtual Machines

Igalia is the most experienced Javascript virtual machine engineering consultancy contributing code upstream to both V8 and JSC. 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.

At Igalia we believe that client-side web technologies are the future of consumer electronics: we have the best team of WebKit developers that any consultancy can offer and we complement that with a strong competence in Javascript engines like V8 and JSC, making Igalia the best partner of choice for optimizing consumer electronic solutions based on client-side web technology.

Although most of our upstream work lives around Javascript engines our skills apply also other domains: we have experience with debuggers (GDB and integrated debuggers) and can integrate dynamic language environments in existing C/C++ systems too. We have experience also with the 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 at JSConf USA 2012

Updates

Andy Wingo 08/05/2013

generators in v8

Hey y'all, ES6 generators have landed in V8! Excellent!Many of you know what that means already, but for those of you that don't, a little story.A few months ago I was talking with Andrew Paprocki over at Bloomberg. They use JavaScript in all...

Andy Wingo 18/04/2013

inside full-codegen, v8's baseline compiler

Greetings to all. This is another nargish article on the internals of the V8 JavaScript engine. If that's your thing, read on. Otherwise, here's an interesting interview with David Harvey. See you laters!full-codegenToday's topic is...

Andy Wingo 04/04/2013

thoughts on blink

So Chromium forked WebKit again! You've probably seen some articles on it already, but Alex Russell's piece is pretty good.In retrospect the split was easy to see coming, but I can't help but feel bittersweet about it. The announcement...

Igalia 20/08/2012

New contents in our web page

Our website has received a few upgrades and we updated much of the information about our work.

Andy Wingo 27/06/2012

inside javascriptcore's low-level interpreter

Good day, hackers! And hello to the rest of you, too, though I fear that this article isn't for you. In the vertical inches that follow, we're going to nerd out with JavaScriptCore's new low-level interpreter. So for those of you that...

Commits

Add interface to disable automatic finalization

Add interface to disable automatic finalization

Andy Wingo17/04/2014

Slot allocation can re-use closure and argument slots

Slot allocation can re-use closure and argument slots

Andy Wingo16/04/2014

Remove SCM_FRAME_PROGRAM

Remove SCM_FRAME_PROGRAM

Andy Wingo16/04/2014

VM robustness for optimized closures

VM robustness for optimized closures

Andy Wingo16/04/2014

Fix rewinding continuations when outermost frame has zero locals

Fix rewinding continuations when outermost frame has zero locals

Andy Wingo16/04/2014