dmd: Move all public C++ functions into a dmd namespace#16155
dmd: Move all public C++ functions into a dmd namespace#16155ibuclaw merged 1 commit intodlang:masterfrom
Conversation
|
Thanks for your pull request, @ibuclaw! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#16155" |
887474d to
693828a
Compare
|
Might have to park this for a while, the ability to import symbols in C++ "namespaces" wasn't added until 2.087. https://issues.dlang.org/show_bug.cgi?id=19893 Workaround is to (1) remove all selective imports, and (2) add these in the same module as the definition. |
Sitting on this, I think alternatively this could be turned on its head.
@kinke any better ideas? |
693828a to
76769d6
Compare
bffd0c8 to
e24d2fe
Compare
|
Now all C++ definitions have been put in a leaf module - not compiled into DMD, but for the C++ FE unittester only - there's nothing blocking this. We can continue having 2.079 as our baseline version, this module is only for GDC and LDC anyway. |
|
@kinke I'm yet to give this a test against gdc, but please do have a glance at it regardless. I've put a few functions in |
|
One |
|
Looks good to me. Mind the conflict and we are good to go. @kinke any objections? |
|
No objections, should be good. I probably won't be able to check this before merging v2.108 into LDC, so might follow up then. |
e24d2fe to
dcc8464
Compare
9e2cd96 to
c393016
Compare
c393016 to
580dd1a
Compare
These are all exposed under a dmd namespace (dlang#16155)
These are all exposed under a dmd namespace (#16155)
As discussed @kinke / @RazvanN7.
extern(C++)can/should be move to separate PR - I've just bundled it all in here, as it was simpler to fix them up so they didn't appear in the regexp I was using to match functions as I was going through them.Update: now all
extern(C++)top-level functions are in one (boilerplate) leaf module.