[Vm-dev] How to addGCRoot: ? help requested

David T. Lewis lewis at mail.msen.com
Sun Dec 23 23:28:18 UTC 2012


On Mon, Dec 24, 2012 at 12:05:46AM +0100, Nicolas Cellier wrote:
>  
> 2012/12/23 Igor Stasenko <siguctua at gmail.com>:
> >
> > On 23 December 2012 22:25, Nicolas Cellier
> > <nicolas.cellier.aka.nice at gmail.com> wrote:
> >>
> >> Ah OK, thanks, I get it...
> >> Two questions remain:
> >>
> >> 1) how to access addGCroot: from within a SmartSyntaxInterpreterPlugin ?
> >
> > interpreterProxy addGCroot: ...
> >
> 
> Hmm, in NB you used a different strategy...
> First, you defined a NBInterpreterProxy to perform a simpleCall to
> addGCRoot() after registering this function in class method
> #proxyFunctionsData unless it is from #CogProxyFunctionsData (why
> two?)
> Then, no plugin calls addGCRoot: directly.
> Instead you defined a primAddGCRoot: in order to use it from within the image.
> That's a bit too much for a helpful simple example.
> 
> I fail to see how this easily transpose to a vanilla VMMaker and it's
> native InterpreterProxy.
> I think I'll have to hack InterpreterProxy to give access to
> addGCRoot: unless there is more magic I missed in the code
> generator...

It is already defined in the InterpreterProxy, so in principle
'interpreterProxy addGCroot: ... ' should work from a plugin. However,
I do not see any actual examples of this being used in any plugins
in my image. I have a hard time figuring out how to use something
like this without a working example, so maybe someone can provide a
pointer to a plugin that is currently using this mechanism?

Dave



More information about the Vm-dev mailing list