[squeak-dev] Re: About on:do:
tim Rowledge
tim at rowledge.org
Mon Jul 21 17:18:37 UTC 2008
On 21-Jul-08, at 9:51 AM, Eliot Miranda wrote:
>
>
> On Mon, Jul 21, 2008 at 8:58 AM, Andreas Raab <andreas.raab at gmx.de>
> wrote:
> Eliot Miranda wrote:
> BTW, this is a really nice implementation by Andreas and Dan.
>
> As much as I like to take credit, in this case it wasn't me. I don't
> quite remember but I think Tim came up with it (was this one of the
> adopted Interval changes?)
>
> I'm sorry. I misunderstood a conversation we had recently.
> Apologies Tim And its great to hear you sounding so chipper at 1808
> years old.
>
Well, as I was saying to Lucius Septimus Severus back then , "Emp", I
said, "Emp - we need to put a flag in some primitive". Of course he
misunderstood and took a legion or two off to impale some barbarians.
Note the method involved -
Interpreter>isUnwindMarked: aContext
"Is this a MethodContext whose meth has a primitive number of 198?"
| header meth pIndex |
"NB: the use of a primitive number for marking the method is pretty
grungy, but it is simple to use for a test sytem, not too expensive
and we don't actually have the two spare method header bits we need.
We can probably obtain them when the method format is changed
NB 2: actually, the jitter will probably implement the prim to
actually mark the volatile frame by changing the return function
pointer."
self inline: true.
header := self baseHeader: aContext.
(self isMethodContextHeader: header) ifFalse: [^false].
meth := self fetchPointer: MethodIndex ofObject: aContext.
pIndex := self primitiveIndexOf: meth.
^pIndex == 198
... and particularly the two NBs.
I think it's a pretty poor implementation all in all but it was the
best compromise we could develop at the time and given the belief we
would have a working JIT Real Soon Now to replace the interpreter. A
mere eight years later we still don't have a cleaned up image format,
jitter, closures, host windows etc etc in actual use[1]. Sigh.
tim
[1] Yes, I know all of them have been developed in some form - I've
worked on all of them - but are they in actual use?
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: WDS: Warp Drive, Scotty!
More information about the Squeak-dev
mailing list
|