simple named primative based on Greenberg's "Extending the Squeak Virtual Machine" example plugin not loading.

John M McIntosh johnmci at smalltalkconsulting.com
Thu Jan 19 22:53:07 UTC 2006


My I suggest you look at
JMMMacSpellingPlugin.1.cs

for usage of things like
	self primitive: 'primitiveGetGuessesForWordListLength' parameters:# 
(Oop SmallInteger).

&

^size asSmallIntegerObj

which help avoid having to mess with
> 	interpreterProxy
> 		pop: 1
> 		thenPush:

Likely the method would become

answerSeventeen
	self primitive: 'primitiveAnswerSeventeen'.
	^17 asSmallIntegerObj


As for the plugin, how did you build it?

See SqueakQuicktime.xcodeproj
in the mac os plugins quicktimeplugin directory for an example xcode  
project to build a quicktime plugin bundle.

On 19-Jan-06, at 2:17 PM, Michael Kohout wrote:

> Thanks for those who forwarded me information on how to build a 3.8 vm
> on OS X.  I was able to finally build a vm for my 3.8 image.
>
> I also went ahead and built a simple named primative(based on the
> example from Andrew Greenber's "Extending the Squeak Virtual Machine"
> from the NuBlue book-but instead of extending InterpreterPlugin used
> SmartSyntaxInterpreterPlugin.
>
> But after rerunning VMMaker(which I then verify is generating the .c
> files) and rebuilding the vm(and I do see the generated .c files in
> the "compile sources" step of the debug build target), I do a call out
> to my test plugin while using the new vm.  For some reason my code
> doesn't seem to find it(when I do a call out to the plugin via the
> interface, it reverts to using the code after the call to the
> primitive).
>
> Here is my plugin class def:
> SmartSyntaxInterpreterPlugin subclass: #ExamplePlugin
> 	instanceVariableNames: ''
> 	classVariableNames: ''
> 	poolDictionaries: ''
> 	category: 'My Stuff-Plugins'
>
> -it's single method-
> answerSeventeen
> 	"comment stating purpose of message"
> 	self export: true.
> 	interpreterProxy
> 		pop: 1
> 		thenPush:(interpreterProxy integerObjectOf:17)
>
> -it's single class method-
> declareHeaderFilesIn: aCCodeGenerator
> 		aCCodeGenerator addHeaderFile: '<occi.h>'
>
> the interface class:
> Object subclass: #ExampleCaller
> 	instanceVariableNames: ''
> 	classVariableNames: ''
> 	poolDictionaries: ''
> 	category: 'My Stuff-Plugins'
>
> -it's single method-
> call
> 	<primitive:'answerSeventeen' module: 'ExamplePlugin'>
> 	^false.
>
> Why doesn't the plugin load and run?  I apologize in advance if I've
> not looked at some documentation that already answers these questions.
> I've also included the fileouts of these two classes if you'd prefer
> looking at them in that format.
>
> thanks for your help,
> Mike Kohout
> <ExamplePlugin.st>
> <ExampleCaller.st>
>

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list