fix compilation on OSX with dmd-2.082#8823
Merged
WalterBright merged 2 commits intodlang:masterfrom Oct 11, 2018
Merged
Conversation
- mangling D's long/ulong as C++'s int64_t/uint64_t was reverted with 2.082 due to breaking interop of C++'s and D's size_t/ptrdiff_t - this revert unveiled a mismatch in dmd's backend where the C++ side uses int64_t/uint64_t as targ_ptrdiff_t/targ_size_t while the D side uses long/ulong, thus 2.082 cannot compile dmd on OSX-64 - fixed by using int64_t/uint64_t everywhere - druntime's int64_t/uint64_t are correctly mangled as long long/unsigned long long since on OSX-64 2.079
- due to relying on magic enums (cpp_ulonglong on OSX), plain comparison between targ_ullong and targ_llong is an error
Contributor
|
Thanks for your pull request, @MartinNowak! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub fetch digger
dub run digger -- build "master + dmd#8823" |
Contributor
jacob-carlborg
left a comment
There was a problem hiding this comment.
Could we please add a test for this?
Member
Author
We don't have a self-hosting OSX test any longer, so no (#7721). |
Contributor
Right. |
jacob-carlborg
approved these changes
Oct 11, 2018
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This blocks the upcoming 2.083 beta/release
due to breaking interop of C++'s and D's size_t/ptrdiff_t
uses int64_t/uint64_t as targ_ptrdiff_t/targ_size_t while the D side
uses long/ulong, thus 2.082 cannot compile dmd on OSX-64
long long/unsigned long long since OSX-64 2.079
Related:
long/ulong as int64_t/uint64_t approach #7416
reverted with #8285
druntime cpp_longlong/cpp_ulonglong definitions dlang/druntime#2187