Make the AST nodes a package#23098
Conversation
29c58b5 to
6073863
Compare
|
1ab354d to
5dfe000
Compare
|
For DAutoTest failure. |
|
test\unit\parser\dvcondition_location.d(5): Expected 'dmd\cond.d' or 'dmd\cond\package.d' in one of the following import paths: |
c742cd9 to
f547c27
Compare
|
test\unit\support.d(57): Expected 'dmd\dmodule.d' or 'dmd\dmodule\package.d' in one of the following import paths: |
01f34dd to
0952e55
Compare
|
test/unit/deinitialization.d(78): Expected 'dmd/dmodule.d' or 'dmd/dmodule/package.d' in one of the following import paths: |
|
oh, |
6528d55 to
85e8534
Compare
ibuclaw
left a comment
There was a problem hiding this comment.
And what justification is there for this constantly breaking projects that have been using dmd as a library for over 20 years?
|
This is the culmination of four(?) years of work, three (4?) GSoC/SAoC projects. DMD explicitly does not guarantee API stability across version and breaks compatibility all the time. This change doesn't even change function signatures, and is functionally identical to the packaging of |
|
Thanks for your pull request and interest in making D better, @thewilsonator! 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 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#23098" |
66940df to
90f8ed4
Compare
dkorpel
left a comment
There was a problem hiding this comment.
Sorry, I gotta agree with Iain here.
- This is very disruptive
- Sunk cost is not a justification
- The goal of the AST refactor was to get rid of astbase.d, not to move code
- We had agreed with Walter that we would stop packaging frontend modules after the ones he reluctantly let in
Can we please let this rest now?
Only marginally so. It is more disruptive than say #16875, #21572 , #21394,
Indeed, it should pull its weight, and IMO it does. The refactorings leading up to this were all an improvement, and this is the last step, and a significant portion of the navigability wins. I am of the opinion that this is a great improvement to the structural navigability of the codebase, especially for newcomers.
That was one goal. It has always been my goal to do this and I think I've made that pretty clear. Also this does not merely "move code", it makes the codebase structure apparent in the directory structure.
As I recall (though admittedly not in great detail) was that he didn't want it done prematurely, but was fine for the other packages (mangle, glue, iasm, etc.) because their import graphs were as isolated and sparse as they were going to be. Since then we have had a SAoC student make a very valiant effort in separating out the semantic stuff and I have put in some more work cleaning things up.
If there is some timeframe after which this is more acceptable, e.g. after a release codifying editions, then I am all ears and I am happy to twist some arms over beer at dconf for this, but I am not going to let this go and I would prefer to get this done sooner rather than later. |
|
Well as it stands the PR still has 146 files changed, 30 KLOC moved, but an empty description. Only the term "structural navigability" is dropped somewhere in this conversation. To start, this PR should have a description saying exactly what it does. Which files were moved into the ast package, and why? Also, Then, the value of those properties can be weighed against the disruption to see if this PR indeed pulls it's weight. Because a tree structure doesn't automatically mean better navigation than a flat structure, especially if the branches are chosen somewhat arbitrarily. |
No description provided.