-
-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DMD 2.063.1 merge #398
Merged
Merged
DMD 2.063.1 merge #398
Conversation
This file contains 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
Was added in 2.063.
Allows us to get through a Phobos build without errors.
We should think about using symbolic constants for runtime function names though, this is not maintainable in the long run.
Fixes DMD testcase 'testbounds2'.
Fixes DMD testcase 'aliasthis'.
Fixes DMD testcase 'xtest46'.
Fixed DMD testcase 'nulltype'.
The frontend seems to explicitly insert __cpctor now. Fixes DMD testcase 'sdtor'.
Fixes DMD testcase 'arrayop'.
The new arguments to the call in DtoLinkage do not exactly match what was there before, but have been harmonized with the other canInline call.
Apart from reducing the diff to upstream DMD, this also fixes a "cannot interpret" CTFE issue.
Fixes crash in DMD testcase 'mangle'.
This is necessary to enable aliasing compiler-generated symbols with pragma(mangle, …). Note that globals for internal use are still directly created.
This way, we stay at least compatible w.r.t. demanglers, pragma(mangle, …) tricks. Fixes DMD testcase 'mangle'.
The AST the frontend generates is arguably invalid, but we have to deal with that. Fixes DMD testcase 'interpret'.
Having something like this would be useful in determining whether to define a given template symbol during codegen, but the frontend sometimes produces TemplateInstances in a scope where sc->tinst has not been semantic'd, thus breaking the chaining mechanism.
This avoids problems where we would codegen children of an "inner" template instantiation (i.e. a member of a non-template aggregate in another module) because we have no way to know the outer (declare-only) entity exists in the respective mustDefineSymbol invocation. An example for this are the std.typecons.RefCounted internals of std.file.DirIterator, as used from std.datetime and other modules. This is not only inefficient, but also causes linking issues due to attribute inference for these functions not having run yet (and consequently the mangled name being different from the actual definition).
This does not fix the root cause, which is likely a frontend bug/oddity, but avoids the crash.
Fixes DMD testcase 'testrightthis'.
The design split between IrFuncTy/IrTypeFunction might need a review at some point.
@redstar: The Linux x86/x86_64 build seems solid, and from a quick look it seems like there aren't any new issues on OS X and Windows, apart from maybe a fiber switching race condition on MinGW (don't know if that was there before, though). Should we merge this to avoid more conflicts? |
Yes, we should. It's the only way to attract more tester/user. |
Well, there we go. |
Two comments:
|
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.
Just here for tracking.