[squeak-dev] The Trunk: Kernel-cmm.758.mcz
Chris Muller
asqueaker at gmail.com
Fri May 3 17:32:41 UTC 2013
Our systems cannot handle thousands of one-line changes. The ancestry
is kept in memory, bloating our images, and the FileBasedRepository
types utilized by our trunk process only operate by enumerating every
single version into a list, grinding our systems ever slower. Totally
unsustainable.
On Fri, May 3, 2013 at 11:53 AM, Bert Freudenberg <bert at freudenbergs.de> wrote:
>
> On 2013-05-03, at 16:44, commits at source.squeak.org wrote:
>
>> Chris Muller uploaded a new version of Kernel to project The Trunk:
>> http://source.squeak.org/trunk/Kernel-cmm.758.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Kernel-cmm.758
>> Author: cmm
>> Time: 3 May 2013, 11:43:45.83 am
>> UUID: b64656cf-20bf-4bad-9fca-2750e1c67e67
>> Ancestors: Kernel-cmm.757
>>
>> - Another ticky-tack commit because Monticello-bf.540 did not capture ALL package changes.
>
> We already established that my MC mod does not match your old workflow ;)
>
> OTOH, I do prefer this to be two separate commits, because they have nothing to do with each other, except that they happen to be in the same package.
>
> - Bert -
>
>
>
>> The comment for the prior package is wrong, it did not include this change because I failed to:
>>
>> 1) Copy the change text to the clipboard
>> 2) click "Cancel"
>> 3) Find a MC browser.
>> 4) Click "Save"
>> 5) Re-paste the change text.
>>
>> Please see my immediate ancestor for what this change is about.
>>
>> =============== Diff against Kernel-cmm.757 ===============
>>
>> Item was changed:
>> ----- Method: Float class>>fromIEEE32Bit: (in category 'instance creation') -----
>> fromIEEE32Bit: word
>> "Convert the given 32 bit word (which is supposed to be a positive 32bit value) from a 32bit IEEE floating point representation into an actual Squeak float object (being 64bit wide). Should only be used for conversion in FloatArrays or likewise objects."
>>
>> | sign mantissa exponent newFloat delta |
>> word negative ifTrue: [^ self error:'Cannot deal with negative numbers'].
>> + word = 0 ifTrue: [^ Float zero].
>> - word = 0 ifTrue: [^ 0.0].
>> sign := word bitAnd: 16r80000000.
>> word = sign ifTrue: [^self negativeZero].
>>
>> exponent := ((word bitShift: -23) bitAnd: 16rFF) - 127.
>> mantissa := word bitAnd: 16r7FFFFF.
>>
>> exponent = 128 ifTrue:["Either NAN or INF"
>> mantissa = 0 ifFalse:[^ Float nan].
>> sign = 0
>> ifTrue:[^ Float infinity]
>> ifFalse:[^ Float infinity negated]].
>>
>> exponent = -127 ifTrue: [
>> "gradual underflow (denormalized number)
>> Remove first bit of mantissa and adjust exponent"
>> delta := mantissa highBit.
>> mantissa := (mantissa bitShift: 1) bitAnd: (1 bitShift: delta) - 1.
>> exponent := exponent + delta - 23].
>>
>> "Create new float"
>> newFloat := self new: 2.
>> newFloat basicAt: 1 put: ((sign bitOr: (1023 + exponent bitShift: 20)) bitOr: (mantissa bitShift: -3)).
>> newFloat basicAt: 2 put: ((mantissa bitAnd: 7) bitShift: 29).
>> ^newFloat!
>>
>>
>
>
More information about the Squeak-dev
mailing list
|