[self-interest] Re: Self ported to Linux

Samantha Atkins samantha at objectent.com
Wed Jan 30 01:30:06 UTC 2002



Jecel Assumpcao Jr wrote:


> The famous Self compiler that ran numerical benchmarks at 50% the speed 
> of optimized C was introduced in Self 2.0 and was created by Craig 
> Chambers. The result is simply amazing when you consider that C does no 
> index or overflow checking and had a far better code generator. Craig's 
> compiler was a huge leap forward in type analysis and he has continued 
> this work in his Vortex Compiler project (for the Modula 3 and Cecil 
> languages). The problem was that compilation was slow and so 
> interactive use of Self 2 wasn't very nice. The compiler didn't do such 
> a great job in highly polymorphic (very OO styled) benchmarks.
> 


The really nice option would be to have the uber-compiler 
available for streamlining production code but not turned on 
during normal development cycles.


> In Self 3 and 4 an entirely different direction was taken by Urs 
> Hölzle. Two simple compilers replaced the complex one used previously, 
> and type analysis was replaced with type feedback. The first compiler 
> (NIC, the Non Inlining Compiler) did a quick and dirty job that allowed 
> code to start running. Data structures called PICs (Polymorphic Inline 
> Caches) improved the performance of message sending and, as a side 
> effect, collected information about the types of objects actually used 
> in the various call sites in the code. When a given method was 
> identified as being critical to system performance (a "hot spot", hence 
> the name of the technology given at Animorphics and included in Java 2) 
> the second compiler (SIC, the Simple Inlining Compiler) was called to 
> generate much better code. Though the type information available in the 
> PICs was just a subset of what could be obtained with type analysis, it 
> was good enough for the SIC to do a good job very quickly.


Very cool.  It brings up some interesting and provocative ideas.

- samantha





More information about the Self-interest mailing list