Harvesting and deprecation

Andreas Raab andreas.raab at gmx.de
Fri May 9 11:18:09 UTC 2003


Stef,

In order to support easier migration it might be better to have something
like

Object>>deprecated: aBlock

e.g.,

Smalltalk>>browseAllSendersOf: aSymbol
	^self deprecated:[SystemNavigation browseAllSendersOf: aSymbol]

This would make it easier for people to find potential problems while
migrating things. It would also make a nice package to have "just the
deprecated" things you can use to (for example) run or port code that has
been written for older versions. Object>>deprecated: can then raise an
exception which (if it resumes) evaluates the block. So if you're in a
desparate hurry you can get your system running fast and once you got a
little time you can fix all the places.

Cheers,
  - Andreas

> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of Stephane Ducasse
> Sent: Friday, May 09, 2003 12:30 PM
> To: The general-purpose Squeak developers list
> Subject: Re: Harvesting and deprecation
> 
> 
> Hi brent
> 
> In KCP we choose to let the deprecated method but raise an exception 
> (self error:)
> with an explanation telling which method should be call instead.
> 
> Noury suggested that we introduce an exception DeprecatedException so 
> that we can
> trap them specifically.
> 
> So we do not follow the deprecated pattern a la java in the 
> sense that 
> we do not say in the future this method will be deprecated and still 
> let it. We were thinking that we could
> go faster than way.
> 
> But I like your idea to add deprecated in ProtoObject.
> 
> For now I was doing that this way
> 
> allBehaviorDo: aBlock
> 
> 	self flag: #deprecated.
> 	self error: 'This method is deprecated please use 
> SystemNavigation>>allBehaviorDo:'
> 
> 
> 
> Stef
> 
> On Friday, May 9, 2003, at 09:45 AM, Brent Pinkney wrote:
> 
> > OK,
> >
> > I have been following the harvesting thread for a while now 
> and have 
> > been called apon to revide my DateAndTime stuff. This 
> removes a couple 
> > of yucky methods that have crept into Date and Time.
> >
> > What is the preffered method of deprecating classes and methods ?
> >
> > In the full image of yore it was relatively simple. In the 
> SqueakMap 
> > era, how do I know I can cull a redundant or yucky method/class ?
> >
> > The alternative for endless backward compatibility seems to 
> be a cop 
> > out. A tight lean elegant implementation is important.
> >
> > I propose calling ProtoObject>>#deprecated in the to be deprecated 
> > method. Two versions later this should cause and exception. 
> > Alternatively move the methods to the deprecated category, although 
> > this may not play nicely with DVS.
> >
> > Ideas ?
> >
> > Cheers
> >
> > Brent
> >
> >
> 
> 



More information about the Squeak-dev mailing list