Hi,

In order to use Lieberman prototypes, in the examples a fix is applied to the 
send macro, in order to make it use the libid_bind2 function. This is done in 
the send2.h header, by redefining the macro.

However, I get the impression that this is only a half solution. More 
precisely, including the send2.h file does not redirect all send's being done 
in files which have already been compiled without the header. So for example, 
the whole library in function/objects was compiled without send2.h, so any 
messages sent in that library won't use the delegation chain, and hence 
something like this is problematic:

Suppose Object (from the library) has got some method like this:

Object foo
[
        self bar
]

And now I have my own Prototype with the delegation chain, derived from 
object:

Prototype : Object (next)

Prototype _delegate
[
        ^next
]

Now, if I call Prototype foo, which will in turn end up in Prototype bar, the 
call to bar will be done with the old send macro, and hence NOT perform 
lookup in Prototype's delegation chain (i.e. "next" field)

Has this been anticipated somehow? The only fix I see is to modify libid.c to 
always use libid_bind2, costing a performance penalty when no Lieberman 
prototypes are used...

Cheers,

Hans

-- 
If we cannot live so as to be happy, let us at least live so as to deserve it
 -- Immanuel Hermann Fichte

A liberal is a person whose interests aren't at stake at the moment
 -- Willis Player

Ark Linux - Linux for the Masses (http://arklinux.org)

Hans Schippers
Aspirant FWO - Vlaanderen
Formal Techniques in Software Engineering (FoTS)
University of Antwerp
Middelheimlaan 1
2020 Antwerpen - Belgium
Phone: +32 3 265 38 71
Fax: +32 3 265 37 77
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to