On 24 juil. 2014, at 17:05, stepharo <[email protected]> wrote:

> Camille
> 
> Ammonite is not that sezzy :)

Because it has tentacles? :-D

> May be 
> autoRepair
> selfRepair :)

Yes for example ;)

> 
> Stef
> On 24/7/14 14:34, Camille Teruel wrote:
>> Hello Pharo users,
>> 
>> I'm pleased to announce the release of Deprecator.
>> It's a prototype of a small tool that permits you to deprecate method by 
>> annotating them with a <deprecated: ...> pragma.
>> This pragma takes a rewrite expression as argument that specifies how to 
>> rewrite the message send to the deprecated method. 
>> If such a deprecated method is executed, a warning is thrown and a debugger 
>> opens.
>> This debugger has a little 'Rewrite' button that permits to rewrite the 
>> sending method according to the rewrite expression and then resume the 
>> execution with the new rewritten sending method :)
>> The implementation is a proof-of-concept and is a bit hacky here and there, 
>> but it works. 
>> 
>> Example:
>> 
>> You have a class C with a method that you deprecate. 
>> Its rewrite expression tells that if it's executed as the result of a 
>> message send of the form: 
>> <receiver> deprecatedMethodArg1: <arg1> arg2: <arg2>, 
>> this message send should be rewritten to: 
>> <receiver> replacementMethodArg1: <arg2> arg2: <arg1>.
>>  Note you can change the order of arguments or even the receiver.
>>  
>> C>>deprecatedMethodArg1: o1 arg2: o2
>>  <deprecated: '`@receiver replacementMethodArg1: `@arg2 arg2: `@arg1'>
>>   ^ #deprecated
>> 
>> C>>replacementMethodArg1: o1 arg2: o2
>>  ^ #replacement
>> 
>> C>>senderMethod
>>  ^ self deprecatedMethodArg1: 1 + 1 arg2: 2 + 2.
>> 
>> Then if you execute C new senderMethod, and then click on the "Rewrite" 
>> button of the debugger, then sending method is rewritten to:
>> 
>> C>>senderMethod
>>  ^ self replacementMethodArg1: 2 + 2 arg2: 1 + 1.
>> 
>> and the result is #replacement. 
>> 
>> The repo is on sSmalltalkHub:
>> MCHttpRepository
>>  location: 'http://smalltalkhub.com/mc/CamilleTeruel/Deprecator/main'
>>  user: ''
>>  password: ''
>> 
>> I hope for comments, feature suggestions, code reviews, contributors, etc :) 
>> BTW, if you have a better name for this project let me know! 
>> For example, I thought about Ammonite because it's an extinct animal 
>> (analogy with deprecated) and it fits the sea naming theme.
>> 
>> Cheers,
>> Camille
> 

Reply via email to