[squeak-dev] Daily Commit Log

commits at source.squeak.org commits at source.squeak.org
Wed Sep 7 23:55:12 UTC 2011

Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:


Name: Kernel-nice.614
Ancestors: Kernel-nice.613

Let (ScaledDecimal newFromNumber: 0.0 scale: 2) print itself.

While at it, review ScaledDecimal comment and indicate that the fraction inst var can be an Integer eventually.



Name: Kernel-nice.615
Ancestors: Kernel-nice.614

Integer shall understand #numerator and #denominator to be polymorphic to Fraction.
Integer shall be polymorphic to Fraction because Fraction with denominator = 1 don't preserve their class across arithmetic operations.



Name: Kernel-nice.616
Ancestors: Kernel-nice.615

Form a Fraction explicitely rather than sending asFraction when coercing an Integer is required.
This way, Integer>>#isFraction and Integer>>#asFraction can be modified.



Name: Kernel-nice.617
Ancestors: Kernel-nice.616

Consider an Integer as a special kind of Fraction (from behavioral POV, not from hierarchical POV), ans as such answer true to #isFraction and answer self to #asFraction.

This is a logical consequence of having Fraction with a unit denominator automatically reduced to Integer.

Two pre-requisites to this change are:
- letting Integer be polymorphic with Fraction by responding to #numerator and #denominator
- and don't letting senders of #asFraction rely on the class of the result being a Fraction (which was the case of some coercion message only).
These requirements should be fullfiled by update-nice.196.mcm.

A side effect of this change is to speed up a bit mixed arithmetic like (1/2)+1, but not 1+(1/2).

A second side effect is that (1 at 2) asNonFractionalPoint will now convert coordinates to floating point.

There is no other sender of #isFraction or #asFraction affected by the change in the trunk image.


More information about the Squeak-dev mailing list