<div dir="ltr"><br><br><div class="gmail_quote">On Fri, Jul 25, 2008 at 2:46 AM, Paolo Bonzini <<a href="mailto:bonzini@gnu.org">bonzini@gnu.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">Stéphane Ducasse wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I was happily browsing code when I suddenly encountered that method<br>
Does anybody know what it measn to return #compiledMethod?<br>
</blockquote>
<br></div>
That you have half literals (pointers) and half bytecodes (bytes) in the indexed instance variables. This was probably done in the blue book for size optimization, but it is much less relevant today.</blockquote><div><br>
</div><div>I disagree that its less relevant. These hybrid things are more compact and faster to interpret. That can still be useful, e.g. on pocket phones. See my blog post that discusses this in some detail.</div><div>
<br></div><div><a href="http://www.mirandabanda.org/cogblog/2008/06/17/bluebook-compiledmethods-having-our-cake-and-eating-it-too/">http://www.mirandabanda.org/cogblog/2008/06/17/bluebook-compiledmethods-having-our-cake-and-eating-it-too/</a><br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="Wj3C7c"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
typeOfClass<br>
"Answer a symbol uniquely describing the type of the receiver"<br>
self instSpec = CompiledMethod instSpec ifTrue:[^#compiledMethod]. "Very special!"<br>
self isBytes ifTrue:[^#bytes].<br>
(self isWords and:[self isPointers not]) ifTrue:[^#words].<br>
self isWeak ifTrue:[^#weak].<br>
self isVariable ifTrue:[^#variable].<br>
^#normal.<br>
<br>
<br>
</blockquote>
<br>
<br>
</div></div></blockquote></div><br></div>