First Draft: Symbol Representation (Export)

Richard (Rikki) Andrew Cattermole richard at cattermole.co.nz
Fri Mar 29 13:45:39 UTC 2024


On 30/03/2024 2:28 AM, Johan wrote:
> On Thursday, 29 February 2024 at 11:15:07 UTC, Richard (Rikki) Andrew 
> Cattermole wrote:
>> D's support for shared libraries has historically presented challenges 
>> for users, especially when dealing with complex use cases. This 
>> proposal aims to improve the user experience by establishing a user 
>> story that will provide a consistent and user-friendly approach to 
>> usage and compilation of binaries without a thorough understanding of 
>> linkers.
>>
>> With the recent resolution of dmd's exportation support on Windows 
>> (druntime support is still under development), we are now ready to 
>> focus on making D's shared library capabilities more accessible and 
>> usable for common use cases.
>>
>> Links: 
>> [current](https://gist.githubusercontent.com/rikkimax/1d7cfdb8ed74e9e4efc9ba0208f42e7e/11e36e8a332324c5323792da2835337d0306a6c9) [latest](https://gist.github.com/rikkimax/1d7cfdb8ed74e9e4efc9ba0208f42e7e)
> 
> Quick remark:
> `export ( Identifier )`
> will have all the problems associated with version identifiers, in 
> particular that you cannot combine version identifiers (A && B) or 
> generate them briefly from boolean expressions. Is there a reason why 
> you do not allow boolean expression here?
> 
> -Johan

At the current point in time, I don't see any reason to introduce that 
behavior.

The version that would be provided should be coming from the compiler or 
your build manager.

If you are not limiting yourself to ``InBinary_*``, you're probably 
going to have a lot of pain.

It is meant for advanced situations where the external import path 
switch might be giving the wrong results and you need to go on a per 
symbol basis.



More information about the dip.development mailing list