[Pharo-project] type-inference: it works!

Francisco Garau francisco.garau at gmail.com
Fri Mar 30 09:33:30 EDT 2012


No unit tests, sorry...

Is not profiling, it's abstract intrepretation using types instead of objects.

- Francisco


On 30 Mar 2012, at 15:15, Alexandre Bergel <alexandre.bergel at me.com> wrote:

> Hi Francisco,
> 
> I've tried your implementation. It seems to work in Pharo 1.4. Do you have unit test somewhere?
> How does your profiler work? From what you have said in your email, it seems you are profiling the execution. Is that true?
> 
> Cheers,
> Alexandre
> 
> 
> On 29 Mar 2012, at 18:47, Francisco Garau wrote:
> 
>> 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: 
>> The code never goes through the #new method (it creates objects using #basicNew and #@)
>> 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 
>> <Ti-Engine.2.cs><Ti-Support.2.cs>
> 
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120330/dcd265b0/attachment-0001.html>


More information about the Pharo-dev mailing list