[squeak-dev] Number readFrom: can we remove some "accidental" features

David T. Lewis lewis at mail.msen.com
Sun Aug 31 14:11:09 UTC 2008


On Sun, Aug 31, 2008 at 02:13:10AM +0200, nicolas cellier wrote:
> 
> Strangely, Squeak Number class>>#readfrom: used to accept non Smalltalk 
> syntax like:
> (Number readFrom: '.2') -> 0.2 .
> (Number readFrom: '2.e3') -> 2000.0 .
> 
> (See 
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2006-April/103137.html)
> 
> Don't know if accidental or on purpose, but to me, this is wrong and I 
> did not implement this behavior in SqNumberParser because there is no 
> such official Smalltalk syntax to my knowledge.
> 
> Up to any one to accept an alternate number syntax by subclassing 
> SqNumberParser.
> 
> Now I see that Dave Lewis (dtl) asserted this feature:
> 
> testAsNumberWithSuperfluousDecimalPoint
> 	| sd |
> 	sd _ '123.s2' asNumber.
> 	self assert: ScaledDecimal == sd class.
> 	self assert: sd scale == 2.
> 	self assert: '123.00s2' = sd printString.
> 

This originates from Mantis #156 (http://bugs.squeak.org/view.php?id=158).

> I'd like to remove this feature.
> Is it ok?

If you change it, please change the tests to match. IIRC, the
Mantis 156 patch corrected some bad problems that originated
from the addition of ScaledDecimal to the system. I wrote the
ScaledDecimalTest unit tests to document what I did, and I used
"Smalltalk-80 The Language" as a guide where I could. I am not
an expert in numerics or Smalltalk syntax, so it may not be right.
>From my point of view, as long as the tests are kept up to date
with the implementation, I'll be happy.

I would suggest opening a Mantis report for the change, and tie
it to Mantis 156 so folks will know the background.

Dave




More information about the Squeak-dev mailing list