The Trunk: Kernel-cmm.758.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-cmm.758.mcz

commits-2
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.  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!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-cmm.758.mcz

Bert Freudenberg

On 2013-05-03, at 16:44, [hidden email] 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!
>
>


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-cmm.758.mcz

Chris Muller-3
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 <[hidden email]> wrote:

>
> On 2013-05-03, at 16:44, [hidden email] 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!
>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-cmm.758.mcz

Frank Shearar-3
Then we should fix our systems! Because having thousands of one-line
changes - if they are indeed independent - should be exactly what we
should be doing. Each commit becomes trivial to QA.

frank

On 3 May 2013 18:32, Chris Muller <[hidden email]> wrote:

> 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 <[hidden email]> wrote:
>>
>> On 2013-05-03, at 16:44, [hidden email] 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!
>>>
>>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-cmm.758.mcz

Chris Muller-3
Yes, absolutely.  I just started a new thread in hopes of spurring a discussion.

On Fri, May 3, 2013 at 3:03 PM, Frank Shearar <[hidden email]> wrote:

> Then we should fix our systems! Because having thousands of one-line
> changes - if they are indeed independent - should be exactly what we
> should be doing. Each commit becomes trivial to QA.
>
> frank
>
> On 3 May 2013 18:32, Chris Muller <[hidden email]> wrote:
>> 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 <[hidden email]> wrote:
>>>
>>> On 2013-05-03, at 16:44, [hidden email] 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!
>>>>
>>>>
>>>
>>>
>>
>