[Experiment] Automatic rewriting of sends to deprecated methods

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: [Experiment] Automatic rewriting of sends to deprecated methods

stepharo


>>
>> It can be made pluggable, of course. I don’t want to have that there in a way that it requires
>> the refactoring engine to be present all the time.
>>
>> If it’s there —> transform. If not —> do what it does now.
>>
>> But just think how much this simplifies the experience of people loading old code into a new
>> Pharo version: it just keeps running and fixes itself! It’s that kind of things we need to be
>> able to evolve the system.
>>
>> Imagine, this is a functionality (I think) no other system has!

Yes but we should make it pluggable.

I would like something that says
        before all the tests were green and after these automatic changes they are also green :)

> I will not like a feature where it transforms my code without asking.
> I would prefer that a diff browser pops up and asks me if changes are ok. Automatic rewrite of code often forgot to check some specific cases and you end with bugs in your code if there is no review.
> The idea is great but the choice of changing the code or not has to be in the user hands.


Reply | Threaded
Open this post in threaded view
|

Re: [Experiment] Automatic rewriting of sends to deprecated methods

stepharo
In reply to this post by Stephan Eggermont-3
We could ship a specific package with rules for each version of Pharo.
We did it with andre's work and we should continue.

Le 1/9/15 10:23, Stephan Eggermont a écrit :

> On 01-09-15 08:35, Marcus Denker wrote:
>> But just think how much this simplifies the experience of people
>> loading old code into a new
>> Pharo version: it just keeps running and fixes itself! It’s that kind
>> of things we need to be
>> able to evolve the system.
>
> This is a crucial step to support continuous improvement indeed.
> Just-in-time repeatable refactoring, reducing the cost of change
>
> Stephan
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [Experiment] Automatic rewriting of sends to deprecated methods

Marcus Denker-4
In reply to this post by stepharo

Imagine, this is a functionality (I think) no other system has!

Yes but we should make it pluggable.

Yes!
 
I would like something that says
        before all the tests were green and after these automatic changes they are also green :)

Exactly, that's what I implemented: you run the tests and all code covered will be transformed automaticallly
*and* with the gurantee that it is correct. There are no false positives as we only transform when the deprecated
method is called. It's a "perfect" transformation, but of course only for non-dead code.

    Marcus 

Reply | Threaded
Open this post in threaded view
|

Re: [Experiment] Automatic rewriting of sends to deprecated methods

stepharo
May be in that can we should have a
    deprecated: andTransform: message

Now the question is when do you build a rule.
We should discuss with gustavo and his macro recorder.

Stef
Imagine, this is a functionality (I think) no other system has!

Yes but we should make it pluggable.

Yes!
 
I would like something that says
        before all the tests were green and after these automatic changes they are also green :)

Exactly, that's what I implemented: you run the tests and all code covered will be transformed automaticallly
*and* with the gurantee that it is correct. There are no false positives as we only transform when the deprecated
method is called. It's a "perfect" transformation, but of course only for non-dead code.

    Marcus 


Reply | Threaded
Open this post in threaded view
|

Re: [Experiment] Automatic rewriting of sends to deprecated methods

Ben Coman
In reply to this post by Marcus Denker-4
On Wed, Sep 2, 2015 at 2:13 PM, Marcus Denker <[hidden email]> wrote:

>
>>>> Imagine, this is a functionality (I think) no other system has!
>>
>>
>> Yes but we should make it pluggable.
>>
> Yes!
>
>>
>> I would like something that says
>>         before all the tests were green and after these automatic changes
>> they are also green :)
>
>
> Exactly, that's what I implemented: you run the tests and all code covered
> will be transformed automaticallly

Ahh. I thought you were thinking of doing it in normally executing
code. Doing it while running tests makes more sense.  It only occurs
on a specific user action.  If you start with clean packages, all
changes can be reviewed.
cheers -ben

12