Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.577.mcz
==================== Summary ====================
Name: Kernel-ul.577
Author: ul
Time: 30 April 2011, 4:06:16.848 am
UUID: f674fdde-21e4-f14c-a297-a29dfe42219c
Ancestors: Kernel-ul.576, Kernel-ul.575
Merged.
=============== Diff against Kernel-ul.576 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.577.mcz
==================== Summary ====================
Name: Kernel-ul.577
Author: ul
Time: 30 April 2011, 4:06:16.848 am
UUID: f674fdde-21e4-f14c-a297-a29dfe42219c
Ancestors: Kernel-ul.576, Kernel-ul.575
Merged.
=============== Diff against Kernel-ul.576 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.577.mcz
==================== Summary ====================
Name: Kernel-ul.577
Author: ul
Time: 30 April 2011, 4:06:16.848 am
UUID: f674fdde-21e4-f14c-a297-a29dfe42219c
Ancestors: Kernel-ul.576, Kernel-ul.575
Merged.
=============== Diff against Kernel-ul.576 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.575.mcz
==================== Summary ====================
Name: Kernel-ul.575
Author: ul
Time: 28 April 2011, 12:03:58.259 am
UUID: 33ed898b-6592-984b-b1e6-d9f2a778f216
Ancestors: Kernel-ul.574
- removed support for BlockContexts from ContextPart >> #copyTo:
- added a new method #copyTo:bottomContextDo: which provides access to the bottom context during copying
=============== Diff against Kernel-ul.574 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.575.mcz
==================== Summary ====================
Name: Kernel-ul.575
Author: ul
Time: 28 April 2011, 12:03:58.259 am
UUID: 33ed898b-6592-984b-b1e6-d9f2a778f216
Ancestors: Kernel-ul.574
- removed support for BlockContexts from ContextPart >> #copyTo:
- added a new method #copyTo:bottomContextDo: which provides access to the bottom context during copying
=============== Diff against Kernel-ul.574 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.575.mcz
==================== Summary ====================
Name: Kernel-ul.575
Author: ul
Time: 28 April 2011, 12:03:58.259 am
UUID: 33ed898b-6592-984b-b1e6-d9f2a778f216
Ancestors: Kernel-ul.574
- removed support for BlockContexts from ContextPart >> #copyTo:
- added a new method #copyTo:bottomContextDo: which provides access to the bottom context during copying
=============== Diff against Kernel-ul.574 ===============
Item was removed:
- ----- Method: BlockContext>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- (dict at: self home ifAbsentPut: [OrderedCollection new]) add: copy.
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was changed:
----- Method: ContextPart>>copyTo: (in category 'query') -----
copyTo: aContext
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender."
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home. It is best to use BlockClosures instead. They only hold a ContextTag, which will work for all copies of the original home context."
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].
+ ^copy!
- ^ self copyTo: aContext blocks: IdentityDictionary new!
Item was removed:
- ----- Method: ContextPart>>copyTo:blocks: (in category 'private') -----
- copyTo: aContext blocks: dict
- "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. BlockContexts whose home is also copied will point to the copy. However, blockContexts that are not on the stack but may be later will not have their home pointing in the new copied thread. So an error will be raised if one of these tries to return directly to its home."
-
- | copy |
- self == aContext ifTrue: [^ nil].
- copy := self copy.
- dict at: self ifPresent: [:blocks | blocks do: [:b | b privHome: copy]].
- self sender ifNotNil: [
- copy privSender: (self sender copyTo: aContext blocks: dict)].
- ^ copy!
Item was added:
+ ----- Method: ContextPart>>copyTo:bottomContextDo: (in category 'query') -----
+ copyTo: aContext bottomContextDo: aBlock
+ "Copy self and my sender chain down to, but not including, aContext. End of copied chain will have nil sender. Evaluate aBlock with the copy of bottom context when it still points to the original sender."
+
+ | copy |
+ self == aContext ifTrue: [ ^nil ].
+ copy := self copy.
+ sender
+ ifNil: [ aBlock value: copy ]
+ ifNotNil: [
+ sender == aContext ifTrue: [ aBlock value: copy ].
+ copy privSender: (sender copyTo: aContext bottomContextDo: aBlock) ].
+ ^copy!
Levente Uzonyi uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ul.440.mcz
==================== Summary ====================
Name: Collections-ul.440
Author: ul
Time: 26 April 2011, 2:37:08.897 am
UUID: 4c084629-af8b-3740-b919-ec87f228c915
Ancestors: Collections-kb.439
- ignore the leadingChar for unique characters in Character class >> #leadingChar:code:
- fixed the copying of Characters
=============== Diff against Collections-kb.439 ===============
Item was changed:
----- Method: Character class>>leadingChar:code: (in category 'instance creation') -----
leadingChar: leadChar code: code
code >= 16r400000 ifTrue: [
self error: 'code is out of range'.
].
leadChar >= 256 ifTrue: [
self error: 'lead is out of range'.
].
+ code < 256 ifTrue: [ ^self value: code ].
-
^self value: (leadChar bitShift: 22) + code.!
Item was changed:
----- Method: Character>>clone (in category 'copying') -----
clone
+ "Characters from 0 to 255 are unique, copy only the rest."
+
+ value < 256 ifTrue: [ ^self ].
+ ^super clone!
- "Answer with the receiver, because Characters are unique."!
Item was changed:
----- Method: Character>>copy (in category 'copying') -----
copy
+ "Characters from 0 to 255 are unique, copy only the rest."
+
+ value < 256 ifTrue: [ ^self ].
+ ^super copy!
- "Answer with the receiver because Characters are unique."!
Item was changed:
----- Method: Character>>deepCopy (in category 'copying') -----
deepCopy
+ "Characters from 0 to 255 are unique, copy only the rest."
+
+ value < 256 ifTrue: [ ^self ].
+ ^super deepCopy!
- "Answer with the receiver because Characters are unique."!
Item was added:
+ ----- Method: Character>>shallowCopy (in category 'copying') -----
+ shallowCopy
+ "Characters from 0 to 255 are unique, copy only the rest."
+
+ value < 256 ifTrue: [ ^self ].
+ ^super shallowCopy!
Item was changed:
----- Method: Character>>veryDeepCopyWith: (in category 'copying') -----
veryDeepCopyWith: deepCopier
+ "Characters from 0 to 255 are unique, copy only the rest."
+
+ value < 256 ifTrue: [ ^self ].
+ ^super veryDeepCopyWith: deepCopier!
- "Return self. I can't be copied."!