[Pharo-project] What is a primitive method?

Mariano Martinez Peck marianopeck at gmail.com
Fri Oct 22 04:38:44 EDT 2010


THanks Eliot for the explanation.
So....The compiler checks and for these kind of special quick methods it
creates a CompiledMethod that has in its header, a primitive value ?

So...if I would be able to put a "self halt" (but I cannot do it becaue
otherwise it won't be quick anymore)  in Number>>isNumber, the debugger
would never stop there?

Interesting!  Thanks Oscar for the question, it make me learn.

Mariano

2010/10/22 Eliot Miranda <eliot.miranda at gmail.com>

> Hi Oscar,
>
>     see Object class>>whatIsAPrimitive.  Further, most of the primitive
> methods you're seeing are methods that answer self, nil, true false or an
> inst var.  See the difference between these:
>
> SystemNavigation new browseAllSelect: [:m| m isQuick]
>
> SystemNavigation new browseAllSelect: [:m| m primitive > 0 and: [m isQuick
> not]]
>
> SystemNavigation new browseAllSelect: [:m| m primitive > 0 and: [m isQuick
> not and: [(#(117 120) includes: m primitive) not]]]
>
> HTH
> Eliot
>
>
> On Thu, Oct 21, 2010 at 9:18 AM, Oscar E A Callau <oalvarez at dcc.uchile.cl>wrote:
>
>>
>> Hi all,
>>
>>     I have a (basic) question:
>>
>> What is a primitive method?
>>
>> In pharo 1.1.1, we have CompiledMethod>>primitive that basically return:
>>
>> 0 if the method is not a primitive method
>> >0 otherwise
>>
>> But if you execute this on i.e. Number>>isNumber or Morph>>#model compiled
>> methods you get that these two are primitive methods. Are they primitive
>> methods?
>>
>> Other (related) question is: When I executed the expression:
>>
>> SystemNavigation default allPrimitiveMethods
>>
>> , I get a OrderedCollection with 5581 elements. Are all those methods,
>> primitive methods?
>>
>>
>> Thanks in advance
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20101022/f8c2e55f/attachment-0001.html>


More information about the Pharo-dev mailing list