[Vm-dev] Plugin mix ups

K. K. Subramaniam subbukk at gmail.com
Sun Aug 23 08:05:45 UTC 2009


Hi,

I just bumped into subtle errors caused by the plugin resolution algorithms 
ioLoadModule() in sqUnixExternalPrims.c.

I was testing Etoys 4 on a machine that also had VM v3.10-5 installed. Etoys 
(also VM v3.10-5) was placed in $HOME/etoys/. I assumed that -plugins (from 
command line) or SQUEAK_PLUGINS (from env) would override internal search 
paths. Etoys tested fine and the code was sent into the field. It promptly 
bombed :-(.

The error turned out to be due to plugins missing in Etoys but present 
squeakvm. When a OSProcess plugin was missing in -plugins path, instead of 
returning an error, the algorithm continued searching in built-in paths and 
picked one up from /usr/local/lib/squeak/3.10-5/. Of course, the field machines 
did not have squeakvm installed, so the code bombed.

Plugins are an integral part of VM and cannot be shared across multiple VM 
builds. How do VM-ers run vms on the same machine without such mixups? How 
does one override built-in paths in squeakvm and force it to search only in 
certain paths?

I propose that squeakPlugins be set to ${SQUEAK_PLUGINS:-vmPath} while 
starting and then override it with -plugins arg (if provided). I am not 
convinced vmLibDir or LD_LIBRARY_PATH are really needed.

Subbu


More information about the Vm-dev mailing list