Re: Namespace collisions

Jonas Maebe via fpc-pascal <[email protected]>
Newsgroups gmane.comp.compilers.free-pascal.general
Message-ID <[email protected]>
On 07/11/2024 16:27, Adriaan van Os via fpc-pascal wrote:
> In ObjectiveC we have the infamous namespace collision problem. I am 
> wondering how this applies to Objective Pascal.
> 
> For example, I have a plugin, written in Pascal, with only one global 
> external symbol, the plugin entry point
> 
> 000000000000a6d0 (__TEXT,__text) external _MyPluginEntryPoint
> 
> But the plugin uses Cocoa internally, e.g. to declare an 
> NSApplicationDelegate. This ends up in the plugin code as a non-global 
> symbol, e.g.
> 
> 000000000006aa80 (__TEXT,__text) non-external (was a private external) 
> -[NSApplicationDelegate application:openFile:]
> 
> And I have another plugin that does the same. So, there are two 
> non-global symbols like this
> 
> 000000000006aa80 (__TEXT,__text) non-external (was a private external) 
> -[NSApplicationDelegate application:openFile:]
> 
> Does the namespace collision problem apply now ? or only to symbols that 
> are global external symbols ? Is this different in Objective Pascal from 
> Objective C ?

It works exactly the same in Objective Pascal as in Objective C, as this 
is defined by the Objective C ABI. Since that one is completely 
name-based, any time you define two classes with the same name you have 
a potential problem, in the sense that it is unpredictable which one 
will be used at run time.


Jonas
_______________________________________________
fpc-pascal maillist  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.