[dmd-internals] Refactorings of dmd

Andrei Alexandrescu via dmd-internals dmd-internals at puremagic.com
Fri May 22 18:43:13 PDT 2015


On 5/22/15 3:07 PM, Walter Bright via dmd-internals wrote:
> I have pulled the ones you needed for DDMD, and I pulled them because it
> was necessary in order to make DDMD work.
>
> Of course it's a judgement call, but refactorings that are not
> productive share one or more of these characteristics:
>
> 1. potatoe potahto name changes
> 2. indentation/whitespace/reformatting
> 3. the number of lines of code increases
> 4. re-ordering functions in a file
> 5. moving code from one file to another
> 6. large diffs with no seeming point to them
> 7. large diffs that are not reviewable because github diff is unhelpful
> with figuring out what actually changed
> 8. make dmd slower
>
> Essentially, refactorings that "bounce the rubble" around are going to
> be viewed negatively.
>
> Refactorings that would be viewed with favor:
>
> 1. identifying significant common code sequences out and consolidating
> into reusable functions
> 2. better encapsulation
> 3. more logical flow of control
> 4. reduction in cyclomatic complexity
> 5. move towards making functions pure
>
> For example, I recently did a small refactor that replaced argc/argv
> manual memory management with the Strings type. It removed a bunch of
> code, and the rest flowed a lot better.
>
> I've pulled a lot of refactorings. My concern with this is the large
> increase in regressions. Those refactorings should be reducing
> regressions - but it seems that at best they are not helping, and at
> worst are making things worse. I'm also concerned that people are not
> working on the real problems with DMD, and instead are doing
> refactorings. We have a lot of open regressions, and no proposed fixes
> for them. But we've got refactorings regularly appearing. I know that
> refactorings are more fun than regression fixes. But we've got to get
> the bread and butter work done.
>
> And lastly, I am swamped with work. I'm the only one working on range
> fixes for Phobos - fixes that I have been advocating for a couple years
> now, and nobody has done anything to move this forward. So I am doing
> it. This range-ification is, quite frankly, absolutely critical to D's
> future success. I must get it done. But I get bogged down in
> interminable reviews of refactorings with hundreds of lines of rubble
> bouncing.

I quoted this all because I so much agree with it. Brilliantly put. -- 
Andrei



More information about the dmd-internals mailing list