Compiler updating user code

Daniel Murphy yebbliesnospam at gmail.com
Fri Mar 14 04:44:34 PDT 2014


"Manu" <turkeyman at gmail.com> wrote in message 
news:mailman.105.1394774104.23258.digitalmars-d at puremagic.com...

> So it comes up fairly regularly that people suggest that the compiler 
> should have a mode where it
> may update user code automatically to assist migration to new compiler 
> versions.
>
> I'm personally against the idea, and Walter certainly doesn't like it, but 
> it occurred to me that a
> slight variation on this idea might be awesome.
>
> Imagine instead, an '-update' option which instead of modifying your code, 
> would output a .patch
> file containing suggested amendments wherever it encountered deprecated 
> code...
> The user can then take this patch file, inspect it visually using their 
> favourite merge tool, and pick
> and choose the bits that they agree or disagree with.
>
> I would say this approach takes a dubious feature and turns it into a 
> spectacular feature!

If you're using version control, these are practically the same thing.  If 
not, you have bigger problems.

> Language changes are probably easy enough to handle, but what about cases 
> of 'deprecated' in
> the library?
> It's conceivable that the deprecated keyword could take an optional 
> argument to a CTFE function
> which would receive the expression as a string, and the function could 
> transform and return an
> amended string which would also be added to the output patch file. This 
> way, the feature could
> conceivably also offer upgrade advice for arbitrary library changes.
>
> Considering the advice in the context of a visual diff/merge window would 
> be awesome if you ask
> me.

Simple updates could be trivially scripted, but more complex ones would need 
full re-write rules.  All of this is fairly easy to do, and is a simple form 
of auto-refactoring code.

Once we have a full-featured auto-formatter we'll be most of the way there. 



More information about the Digitalmars-d mailing list