"Steve Harris" sharris@thinktankinc.com wrote:
I am planning on building a version that using the netscape plug-in api. this should make it much easier to port between platforms,
I did this about two years ago, and you should find most of the hooks for it in the Mac source file sqMacWindow.c. The basic idea was to run the Squeak VM for some number of bytecodes on each "idle" event provided by the Netscape browser. (Pluggins run as user event handlers that are expected to return control to the browser fairly quickly--say, within half a second.)
One problem with this approach was that the mechanism to count the bytecodes slowed down the bytecode dispatch considerably--by a factor of two, as I recall! A better approach might be to use a timer interrupt to tell the VM when to return control to the browser.
Do you have any thoughts on how to handle this problem?
-- John
P.S. I believe that the Netscape plug-in API is supported by IE as well as Netscape, so I agree that using this API is a much more portable approach to making Squeak a plug-in than ActiveX. But it could be that having Squeak run under ActiveX has other applications. (I don't use Windows much, so I'm not sure what a Squeak ActiveX control might be used for. Could you embed a Squeak application in a Word document? Control Squeak from another application?)
One problem with this approach was that the mechanism to count the bytecodes slowed down the bytecode dispatch considerably--by a factor of two, as I recall! A better approach might be to use a timer interrupt to tell the VM when to return control to the browser.
Do you have any thoughts on how to handle this problem?
You could count preemption points instead... I.E. in
Interpreter >># checkForInterrupts
squeak-dev@lists.squeakfoundation.org