[Pkg] The Trunk: Kernel-nice.404.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Feb 23 14:14:53 UTC 2010
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.404.mcz
==================== Summary ====================
Name: Kernel-nice.404
Author: nice
Time: 23 February 2010, 3:14:34.835 pm
UUID: 602205a3-29f5-9240-9436-c42070a48cea
Ancestors: Kernel-nice.403
Connect ExtendedNumberParser in Number class>>#readFrom: and some variants
Current behavior is:
'' asNumber -> Error (used to be 0)
'1.' asNumber -> 1.0 (used to be 1)
'1.e2' asNumber -> 100.0
'1.e+2' asNumber -> 100.0 (NEW)
'+1' asNumber -> 1 (NEW)
OLD weird squeak behaviour preserved for sign position:
'-16rFF' asNumber ->-255
'16r-FF' asNumber ->-255
-16r-FF' asNumber -> 255
(NOW has same with +)
These ones used to fail:
'1r0' asNumber -> 1 (ignore the rest from $r to end)
'2r3' asNumber -> 2 (ignore the rest from $r to end)
Changes due to 16rff from Andreas
'16r1.e2' asNumber -> 1.8828125 (used to be 4096.0)
Now time to raise your voice...
=============== Diff against Kernel-nice.403 ===============
Item was changed:
----- Method: Integer class>>readFrom:ifFail: (in category 'instance creation') -----
readFrom: aStringOrStream ifFail: aBlock
"Answer an instance of one of the concrete subclasses if Integer.
+ Initial plus or minus sign accepted.
+ Imbedded radix specifiers not allowed; use Number class readFrom: for that.
- Initial minus sign accepted.
- Imbedded radix specifiers not allowed; use Number
- class readFrom: for that.
Execute aBlock if there are no digits."
+ ^(ExtendedNumberParser on: aStringOrStream) nextIntegerBase: 10 ifFail: aBlock!
- ^(SqNumberParser on: aStringOrStream) nextIntegerBase: 10 ifFail: aBlock!
Item was changed:
----- Method: Number class>>readFrom: (in category 'instance creation') -----
readFrom: stringOrStream
"Answer a number as described on aStream. The number may
be any accepted Smalltalk literal Number format.
It can include a leading radix specification, as in 16rFADE.
It can as well be NaN, Infinity or -Infinity for conveniency.
If stringOrStream does not start with a valid number description, fail."
+ ^(ExtendedNumberParser on: stringOrStream) nextNumber!
- ^(SqNumberParser on: stringOrStream) nextNumber!
Item was changed:
----- Method: Number class>>readFrom:ifFail: (in category 'instance creation') -----
readFrom: stringOrStream ifFail: aBlock
"Answer a number as described on aStream. The number may
be any accepted Smalltalk literal Number format.
It can include a leading radix specification, as in 16rFADE.
It can as well be NaN, Infinity or -Infinity for conveniency.
If input does not represent a valid number, then execute fail block
and leave the stream positioned before offending character"
+ ^(ExtendedNumberParser on: stringOrStream) failBlock: aBlock; nextNumber!
- ^(SqNumberParser on: stringOrStream) failBlock: aBlock; nextNumber!
Item was changed:
----- Method: Integer class>>readFrom:base: (in category 'instance creation') -----
readFrom: aStringOrStream base: base
"Answer an instance of one of the concrete subclasses if Integer.
+ Initial plus or minus sign accepted, and bases > 10 use letters A-Z.
+ Imbedded radix specifiers not allowed; use Number class readFrom: for that.
- Initial minus sign accepted, and bases > 10 use letters A-Z.
- Imbedded radix specifiers not allowed; use Number
- class readFrom: for that.
Raise an Error if there are no digits."
+ ^(ExtendedNumberParser on: aStringOrStream) nextIntegerBase: base!
- ^(SqNumberParser on: aStringOrStream) nextIntegerBase: base!
Item was removed:
- ----- Method: Number class>>readExactlyFrom: (in category 'instance creation') -----
- readExactlyFrom: stringOrStream
- "Answer a number as described on aStream. The number may
- include a leading radix specification, as in 16rFADE"
-
- ^(SqNumberParser on: stringOrStream) nextNumber!
More information about the Packages
mailing list