Re: [Store] Message not understood: #absoluteSymbol

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

Re: [Store] Message not understood: #absoluteSymbol

Boris Popov, DeepCove Labs (SNN)
Alan Knight wrote:
> There seems to be something interesting in your package such that
>
>    Root whoDefinesBinding: theBindingInQuestion
>
> comes back with nil, indicating the binding is not defined in any namespace, not even Undeclared. The system should probably be able to handle that gracefully, but it sounds like this package may have more problems that not being able to compute its prerequisites properly.
>  

Sorry for the delay, I just haven't had a chance to jump in the debugger
since. Here's where the problem is, and you be the judge of who's at fault.

We'll use an existing package as guinea pig, say Compression-ZLib, where
class ZLibInterface has a method,

z_off_t
    <C: typedef long z_off_t>

Now, lets take a look at the things it references,

(ZLibInterface compiledMethodAt: #z_off_t) allLiterals ... IdentitySet
((ResolvedDeferredBinding key: #z_off_t))

Now, the reason why #z_off_t resolves locally, of course, is because
ZLibInterface explicitly imports OS.ZLib.ZLibInterfaceDictionary.* where
aCTypedefType instance called z_off_t lives. Unfortunately trying to
look up this symbol in the local bindings of ZLib or ZLibInterface is
pointless, which is why recursive lookup from Root comes back with nil
in the first place.

ZLib localBindingFor: #z_off_t ... nil
ZLibInterface localBindingFor: #z_off_t ... nil

Oh yea, this means that if you try to calculate prerequisites for
Compression-ZLib, you are destined to see the error in its fully glory
for yourself. Or even, say, OS-Support etc, pretty much any package that
defines subclasses of ExternalInterface is cursed in the current
implementation.

Cheers!

-Boris


> At 12:29 PM 1/10/2006, Boris Popov wrote:
>  
>> This exception pops up when trying to compute prerequisites for a package (7.4):
>>
>> Unhandled exception: Message not understood: #absoluteSymbol
>> UndefinedObject(Object)>>doesNotUnderstand:
>> Store.PackageModel>>includesDataKey:owner:
>> Store.PackageModel>>definesName:in:
>> optimized [] in [] in Refactory.Browser.DeploymentPrerequisitesTool>>addReferencePrereqsFrom:to:
>> OrderedCollection>>detect:ifNone:
>> optimized [] in Refactory.Browser.DeploymentPrerequisitesTool>>addReferencePrereqsFrom:to:
>> IdentitySet(Set)>>do:
>> Refactory.Browser.DeploymentPrerequisitesTool>>addReferencePrereqsFrom:to:
>> optimized [] in Refactory.Browser.DeploymentPrerequisitesTool>>computePrerequisites
>>    
>
> --
> Alan Knight [|], Cincom Smalltalk Development
> [hidden email]
> [hidden email]
> http://www.cincom.com/smalltalk
>
> "The Static Typing Philosophy: Make it fast. Make it right. Make it run." - Niall Ross
>  


-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.