Administrator
|
I was following an example in "Squeak Open Personal Computing and Multimedia" to make a really simple plugin.
InterpreterPlugin subclass: #ExamplePlugin with one method: ExamplePlugin class>>answerSeventeen self export: true. interpreterProxy pop: 1 thenPush: (interpreterProxy integerObjectOf: 17) The calling code is: PluginUser>>usePluginPrimitive <primitive: 'answerSeventeen' module: 'ExamplePlugin'> ^ ExamplePlugin doPrimitive: 'answerSeventeen'. I translate with no problem with: ExamplePlugin translateInDirectory: FileDirectory default doInlining: true. n.b. I chose true for doInlining: on the outcome of a game of rock-paper-scissors, not really sure what the tradeoffs are here Now here's where, several tutorials and dozens of web pages later, things get... a little murky... InterpreterSupportCode writeMacSourceFiles. Oh boy, this class doesn't seem to exist in Pharo or Squeak trunk even though it is mentioned by the tutorials. Well, I read something about platform files somewhere, let's get those working: svn checkout http://squeakvm.org/svn/squeak/trunk/platforms/ Llet's try to compile it. Let's see what the tutorials have to say... uh oh, one uses a 3rd-party IDE and the other two finish, to trumpets, with a version of "Now, compile it to generate the library. Bye-bye." C compiling a little rusty <begin flopping around here> gcc -I~/Squeak/platform ExamplePlugin.c doh! gcc -I/Users/sean/Squeak/platforms/Cross/vm/ ExamplePlugin.c oops! gcc -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac OS/vm/ ExamplePlugin.c nope... gcc -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/ ExamplePlugin.c hmm.... gcc -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/Developer/ ExamplePlugin.c I'm glad my mother's not watching... gcc -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/Developer/ ExamplePlugin.c maybe I should start a new career... gcc -bundle -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/Developer/ ExamplePlugin.c ...snip... gcc -bundle -framework Carbon -I/Developer/SDKs/MacOSX10.6.sdk/Developer/Headers/FlatCarbon/ -I/Users/sean/Squeak/platforms/Cross/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/ -I/Users/sean/Squeak/platforms/Mac\ OS/vm/Developer/ -o ExamplePlugin.bundle ExamplePlugin.c <end flopping around> Well, it created *something* So I moved it into the VM's Resources folder with the other plugins, shut down the image, restarted, and... no go, still executing the "primitive failed" code. I may be missing something really simple here and forgive me if this is incoherent - my brain is fried... Where did I go wrong? And, what should I do now? Thanks. Sean p.s. I used VMMakerTool "External Plugins" button, but it just put my .c file in a different folder and created this file: plugins.ext: # Automatically generated makefile include for external plugins EXTERNAL_PLUGINS = ExamplePlugin
Cheers,
Sean |
Free forum by Nabble | Edit this page |