-
-
Notifications
You must be signed in to change notification settings - Fork 651
Merge remote-tracking branch 'upstream/mangle' into merge_mangle #6998
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
Conversation
Thanks for your pull request, @MartinNowak! Bugzilla references
|
Thanks Rainer for your persistent work on this ;). |
Looks like vibe-d found a small phobos problem with this.
|
fail12485.d is a rather ugly test: it wants to produce an error on recursion, but does so only by the length of the symbol. Should we add a recursion check elsewhere? |
druntime failures are due to mangled names being compared by profiler tests. Can we assume ddemangle to be available to compare demangled names? |
I'd rather not as it adds a dependency on an up-to date ddemangle being installed on all CI systems. |
I've opted to allow both manglings for now, the old version can be removed later: dlang/druntime#1878 |
Now the druntime patch is merged, I see two issues left:
|
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.
Should the test actually try to generate a symbol longer than 8MB or try to hit that recursion limit with less memory?
@MartinNowak I opted for the former here: MartinNowak#2. Can you merge this into this PR? Or can I do this myself? I'm not used to the workflow, but is this PR open for edits from other?
Yes. |
You can also close this PR and open one from your branch if that's easier for you. |
AFAICT it's not visible in the side bar, only for my own PRs.
Thanks for the info. I just pushed to Martins fork, seems to work fine. It even automatically closed my PR against his fork. |
Just wondering if this will get merged soon. Getting impatient waiting for this to land in master. ;-) |
FYI: it's available when you see the following before the CI status window:
(Currently on my phone, so without screenshot) If you do this more frequently, you might want to have a look at this page: https://wiki.dlang.org/Guidelines_for_maintainers#Write_access_to_PRs |
@braddr I'm afraid that a bad test in a previous commit continues to allocate memory, but never stops on some build servers even though the build is deleted. One seems to build for 55 hours now: https://auto-tester.puremagic.com/show-run.ghtml?projectid=1&runid=2670646&isPull=true Can you abort these somehow? |
Thanks for the info, found it now. I've seen it before but thought that it would be always displayed. |
I think the Phobos PR has been merged and the auto-tester is all green. Any other blocking issues? :) |
No objections from my side ;-) BTW:
|
Noice! 🎉
I also tried building Vibe.d, but there's a huge variance of the run time when running the same build multiple times (of course with
Yeah ... only @braddr has access to the auto-tester |
FYI: this just means that code.dlang.org was unreachable. There are multiple efforts to make DUB more stable, e.g. dlang/dub#1190, dlang/dub#1198, dlang/dub-registry#231 |
Added a changelog entry. The vibe.d failure looks like a tough one to fix: it uses the mangled name during serialization. Not sure how not to break this, but adding a function that converts the new mangling to the old one could help updating code... |
This might help dlang/dmd#6998 to pass the tests. Is the mangling only used for the test in vibe.d or does a change also have an impact on real serialized data?
Rebased and fixed the mangling of the new builtins.
Thanks for the info, I missed the additional "merge" in the ref. |
We're now testing vibe.d 0.8.1-rc.2 with the mangling dependency gone. |
21d36eb
to
ebdd27a
Compare
AFAIK was vibe.d release the only thing blocking this from being merged. In any case, let's finally merge this into master :) |
ebdd27a
to
ef800eb
Compare
Yes, let's merge this into master! Can't wait... |
Two weeks is probably too short for proper exposure, so master should be fine. I guess those interested in this most have no trouble building it themselves or using dmd nightly. |
I've been checking out the branch separately and rebasing on master locally. Works beautifully, if only a bit inconveniently because every time I update git master I have to manually rebase. It will be much easier once this is merged into master. Also, it will allow more people to give it the testing it needs before we ship it with a release, on the off-chance that some remote corner-case causes a regression. |
WOOOHOOOO!! Finally, this is in! Big thanks to everyone involved in the effort in fixing this issue. Special kudos to @rainers for a totally awesome implementation. |
Let's hope it lives up to the expectations. Thanks everyone helping to get this through the different CI hosts and finally merged (after more than a year). This raises hope for the precise GC, too (the original PR is open for almost 3 years, but rebooted last year dlang/druntime#1603). |
I've been using the |
Hopefully other template-heavy projects will see similar improvements too. |
Tested the latest dmd on some of my other D projects. Overall trend is a decrease in executable size. The size reductions are generally less dramatic for non-template-heavy code, but for template-heavy code, dramatic gains similar to what I mentioned are noted. For example, dcal saw a reduction from about 7-8 MB to 1.9MB, which is roughly a 3x-4x reduction. The amount of reduction roughly correlates with how template-heavy the code is, as is to be expected. I did not observe any increases in executable sizes except in a few very old projects that I'm guessing are not valid data points, because I may have run |
I've lodged the change to fail12485.d as a regression https://issues.dlang.org/show_bug.cgi?id=21499 |
No description provided.