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! |
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! > > |
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! >> >> > > |
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! >>> >>> >> >> > |
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! >>>> >>>> >>> >>> >> > |
Free forum by Nabble | Edit this page |