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