-
-
Notifications
You must be signed in to change notification settings - Fork 610
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
Fix Issue 18651 - ice: assert in glue.d:777 when building these three… #10960
Conversation
|
Thanks for your pull request and interest in making D better, @BorisCarvajal! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
Please see CONTRIBUTING.md for more information. If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment. Bugzilla references
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 "stable + dmd#10960" |
|
The test in bugzilla does use phobos, but it doesn't so much but an import. |
|
@Geod24 , indeed the test just imports two packages but the feature of concern ( |
|
@BorisCarvajal : I guess the ideal would be to come up with a test that depends on deferred sema3 being run but not Phobos. How time consuming would that be ? |
|
I don't know. But I've uploaded the original test case, it's better than nothing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please let me have a look before merging, this test shouldn't pass ATM ....
EDIT:
TEST_OUTPUT isn't enforced because this PR targets stable and the d_do_test extensions weren't merged yet. So we should probably have a master -> stable merge before proceeding with this PR.
|
@MoonlightSentinel, I'll use -deps=file to make the compilation silent, the output is long and can vary. |
|
|
Dustmite found an interesting reduction: This PR fixes the segfault but does not recognize the invalid import in |
|
Interesting reduction by the mighty Dustmite. |
|
|
|
@MoonlightSentinel , DMD loads the import just fine. Thanks anyway, I'll update the test to the reduced code. (Note: This is different from your recent issue report, in which case the import file doesn't exist at all) |
Agreed, itis just odd and feels like it should not work.
Yeah, that was the first failed reduction. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use explicit imports instead of an additional import path (it avoids confusion about the location of these files).
You could also create an additional directory (imports/test18651) for all addtional files used by this test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing work, thanks
… trivial files
The problem was that some functions were not with sematic3 pass done because their symbol parent was deferred and
runDeferredSemantic3()wasn't run. In this case were two auto generated functions (__xopEquals, __xtoHashthat start only with semantic2) of some instantiation ofSortedRange.The test case on bugzilla uses Phobos and consumes 550MB of RAM, moreover, I think crafting another reduced case could be really time consuming, just in this example there were like ten thousand symbols deferred but still only two functions left over.