Re: [Pharo-users] [Pharo-dev] Deprecator
On 24 juil. 2014, at 18:11, Ben Coman <btc@openInWorld.com> wrote:
Camille Teruel wrote:
On 24 juil. 2014, at 17:05, stepharo <stepharo@free.fr> wrote:
Camille
Ammonite is not that sezzy :)
Because it has tentacles? :-D
May be autoRepair selfRepair :)
Yes for example ;)
How about 'Reprecator' because you are Rep(airing)(Dep)recations.
This one is fun :)
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
camille teruel wrote
How about 'Reprecator' because you are Rep(airing)(Dep)recations. This one is fun :)
Ha ha ha, worth it for humor value alone! ----- Cheers, Sean -- View this message in context: http://forum.world.st/Deprecator-tp4769844p4769961.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
participants (2)
-
Camille Teruel -
Sean P. DeNigris