Do I really have to rebuild the entire VM?

Andreas.Raab at gmx.de Andreas.Raab at gmx.de
Wed Nov 20 13:01:23 UTC 2002


> Ahh, I didn't mean the B3D.. interface in particular, but the plugin 
> interface in general.
> 
> I still have the <PluginName>_<functionName> style functions + support 
> code, with the following table:
> 
> char *internalPrimitiveNames[][2] = {
> { "B2DPlugin", "primitiveSetColorTransform" },
> ...
> 
> This seems to have changed rather significantly, and I obviously missed 
> the change.

Oh, that's what you mean. We changed this in order to allow the very same
source be used for either internal or external plugins. Mostly because due to
the changed directory structure of VMMaker and friends it was a real pain to
specify the locations for "builtin" and "external" plugins. But there's not a
lot to it - what you have to do is to update your sqNamedPrims.c (see
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/squeak/squeak/platforms/Cross/vm/)
and make sure the sqNamedPrims.h reflects the new structure. If you're using
VMMaker it will generate it for you. Otherwise it should look roughly like
this:

extern sqExport vm_exports[];
extern sqExport os_exports[];
extern sqExport ADPCMCodecPlugin_exports[];
extern sqExport AsynchFilePlugin_exports[];
extern sqExport B3DAcceleratorPlugin_exports[];
...

sqExport *pluginExports[] = {
	vm_exports,
	os_exports,
	ADPCMCodecPlugin_exports,
	AsynchFilePlugin_exports,
	B3DAcceleratorPlugin_exports,
...
	NULL
};

Note that os_exports are those entry points that used to reside in
"platform.exports" (vm_exports those that come from interpret.c itself).

Cheers,
  - Andreas

-- 
+++ GMX - Mail, Messaging & more  http://www.gmx.net +++
NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen!




More information about the Squeak-dev mailing list