[Vm-dev] What a cruel world!

John McIntosh johnmci at smalltalkconsulting.com
Tue Dec 28 09:38:21 UTC 2010


What directories, the older and other reasoning can determined by
setting the debug value and if the plugins are loaded locally only or
not. The entire logic was rewritten for 5.x

On 12/28/10, Igor Stasenko <siguctua at gmail.com> wrote:
>
> Hi,
>
> i trying to discover which directories and in what order mac VM
> looking for extrnal plugin module,
> and to make sure that it finds my module, i renamed library
> FloatMathPlugin.dylib to
> FloatMathPluginz.dylib
>
> and correspondingly in primitive invocation, i put:
>
> primitiveExp
>        "Answer E raised to the receiver power.
>         Optional. See Object documentation whatIsAPrimitive."
>
>        <primitive: 'primitiveExp' module: 'FloatMathPluginz'>
>        self isNaN ifTrue:[  ^self].
>
> now i found that module is loaded, but primitive doesn't work..
> entering gdb, i found following cruel line in callInitializersIn():
>
> 		if(strncmp(moduleName, module->name, strlen(module->name)) != 0) {
> 			DPRINTF(("ERROR: getModuleName returned %s (expected: %s)\n",
> moduleName, module->name));
> 			return 0;
> 		}
>
> where moduleName is a result from call module's 'getModuleName' function,
> which is obviously returns 'FloatMathPlugin' instead of 'FloatMathPluginz',
> and therefore comparison fails, and module fails to initialize :(
>
>
> Btw, i would find this thing much faster, if somebody wouldn't put
> following in the beginning of sqNamedPrims.c :
>
> #undef DEBUG   <<<< whyyyy?!?!?
>
> #undef DPRINTF
> #ifdef DEBUG
> #define DPRINTF(what) printf what
> #else
> #define DPRINTF(what)
> #endif
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>


-- 
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================


More information about the Vm-dev mailing list