Load the attached ChangeSets: first Ti-Engine and then Ti-Support.

You could then evaluate the below expressions -- watch the Transcript to see which methods are being analysed.�

TiSystem current reset.�
string := '3 + 4'.�
Compiler new analyze: string in: nil to: nil notifying: nil ifFail: [1].�
"=> return {<SmallInteger>} "

TiSystem current reset.�
string := 'Display boundingBox'.�
Compiler new analyze: string in: nil to: nil notifying: nil ifFail: [1]. �
"=> return {<Rectangle origin: <Point x: <SmallInteger> y: <SmallInteger>> corner: <Point x: <SmallInteger> y: <SmallInteger>>>}"�

TiSystem current explore.�

Analysing 'Display boundingBox' shows a couple of surprises:�
  1. The code never goes through the #new method (it creates objects using #basicNew and #@)
  2. Object code goes through Object>>value but knowing that the implementation just answers self, it could be easily optimised.�

I will try to package it more nicely under Monticello -- there are still a few rough edges that need to be polished before getting it to the same state it was in 2001...

Cheers,�
Francisco�