2D physics

2D physics

LLVM

I found WWDC a disappointment. It felt like half last years conference and half a web conference. I went last year and there are better places to learn AJAX. So it is nice to see Apple doing interesting things.

LLVM (Low Level Virtual Machine), which Apple is involved in, could be described as compiler infrastructure. That is it can be used to replace various aspects of compilers. It is very clean, neat and well designed system that provides optimisations at various levels, including compile and run-time.

Why is this neat? Well it provides very good optimisations. One comparison has the LLVM JIT performing 20% faster than gcc4.2 and 100% faster than gcc4.0.1 (which Apple currently ships) for one benchmark. For those that are interested I think the best way to learn about LLVM is to read the experiences of Reid Spencer’s implementation of creating Stacker which is a Forth-like language which compiles to an LLVM backend.

There is already a C/C++ LLVM frontend and Apple is working on a very nice new C frontend. Have a look at some interesting presentations. The presentation I thought was most interesting is Steve Naroff’s New LLVM C Front-end. Especially look at the error messages it can produce.

Apple also use it for GLSL just in time compilation to provide OpenGL shader support for features unsupported by video cards. Chris Lattner also presents an overview of the more technical side of this functionality.

Preface

I just got back from Apple’s WWDC and I’ve decided to start a blog. I think there’s room for at least one more. There are too many things I want put online that do not fit into an article format, thus this experiment. If I run out of intelligent things to say, I’ll try to stop.

The focus here will be on programming and user interaction, I intend to write intelligent things and as I am a user interaction researcher those are my areas of expertise.