Plugin mix ups

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Plugin mix ups

K. K. Subramaniam
 
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