First Draft: Symbol Representation (Export)

Johan j at j.nl
Fri Mar 29 13:33:49 UTC 2024


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)

"The compiler must not inline a function from an out of binary 
module if it refers to non-exported symbols."

I think this should instead be detected at module compile time, 
giving a warning that an exported pragma(inline, true) function 
is calling a hidden function.
Let's keep `pragma(inline, true)` as a very strong inlining hint.

-Johan


More information about the dip.development mailing list