Frank Shearar uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-cbc.203.mcz
==================== Summary ====================
Name: Graphics-cbc.203
Author: cbc
Time: 13 March 2013, 4:14:19.182 pm
UUID: e843098f-81e9-c944-bc06-8b15a3d44f23
Ancestors: Graphics-nice.202
Added Form>>writePNGfileNamed: (along the lines of Form>>writeBMPfileNamed:)
=============== Diff against Graphics-nice.202 ===============
Item was added:
+ ----- Method: Form>>writePNGfileNamed: (in category 'fileIn/Out') -----
+ writePNGfileNamed: fName "Display writePNGfileNamed: 'display.png'"
+ PNGReadWriter putForm: self onFileNamed: fName!
Frank Shearar uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-cbc.203.mcz
==================== Summary ====================
Name: Graphics-cbc.203
Author: cbc
Time: 13 March 2013, 4:14:19.182 pm
UUID: e843098f-81e9-c944-bc06-8b15a3d44f23
Ancestors: Graphics-nice.202
Added Form>>writePNGfileNamed: (along the lines of Form>>writeBMPfileNamed:)
=============== Diff against Graphics-nice.202 ===============
Item was added:
+ ----- Method: Form>>writePNGfileNamed: (in category 'fileIn/Out') -----
+ writePNGfileNamed: fName "Display writePNGfileNamed: 'display.png'"
+ PNGReadWriter putForm: self onFileNamed: fName!
Frank Shearar uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-cbc.203.mcz
==================== Summary ====================
Name: Graphics-cbc.203
Author: cbc
Time: 13 March 2013, 4:14:19.182 pm
UUID: e843098f-81e9-c944-bc06-8b15a3d44f23
Ancestors: Graphics-nice.202
Added Form>>writePNGfileNamed: (along the lines of Form>>writeBMPfileNamed:)
=============== Diff against Graphics-nice.202 ===============
Item was added:
+ ----- Method: Form>>writePNGfileNamed: (in category 'fileIn/Out') -----
+ writePNGfileNamed: fName "Display writePNGfileNamed: 'display.png'"
+ PNGReadWriter putForm: self onFileNamed: fName!
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.458.mcz
==================== Summary ====================
Name: Tools-eem.458
Author: eem
Time: 20 March 2013, 12:36:28.93 pm
UUID: 92bec064-c457-41af-b8c3-86f7daafbbb9
Ancestors: Tools-eem.457
In CHangeSorter, after forgetting a class, select at the
same point in the class list, which helps if e.g. doing
something repetitive such as moving a number of classes
to another change set.
=============== Diff against Tools-eem.457 ===============
Item was changed:
----- Method: ChangeSorter>>forgetClass (in category 'class list') -----
forgetClass
+ "Remove all mention of this class from the changeSet.
+ After forgetting, select at the same point in the class
+ list, which helps if e.g. doing something repetitive such
+ as moving a number of classes to the other side."
+ | index classList |
- "Remove all mention of this class from the changeSet"
-
self okToChange ifFalse: [^ self].
+ currentClassName ifNil: [^self].
+ index := self classList indexOf: currentClassName.
+ myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
+ currentSelector := nil.
+ classList := self classList.
+ currentClassName := classList isEmpty ifFalse:
+ [classList at: (index min: classList size)].
+ self showChangeSet: myChangeSet!
- currentClassName ifNotNil: [
- myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
- currentClassName := nil.
- currentSelector := nil.
- self showChangeSet: myChangeSet].
- !
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.458.mcz
==================== Summary ====================
Name: Tools-eem.458
Author: eem
Time: 20 March 2013, 12:36:28.93 pm
UUID: 92bec064-c457-41af-b8c3-86f7daafbbb9
Ancestors: Tools-eem.457
In CHangeSorter, after forgetting a class, select at the
same point in the class list, which helps if e.g. doing
something repetitive such as moving a number of classes
to another change set.
=============== Diff against Tools-eem.457 ===============
Item was changed:
----- Method: ChangeSorter>>forgetClass (in category 'class list') -----
forgetClass
+ "Remove all mention of this class from the changeSet.
+ After forgetting, select at the same point in the class
+ list, which helps if e.g. doing something repetitive such
+ as moving a number of classes to the other side."
+ | index classList |
- "Remove all mention of this class from the changeSet"
-
self okToChange ifFalse: [^ self].
+ currentClassName ifNil: [^self].
+ index := self classList indexOf: currentClassName.
+ myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
+ currentSelector := nil.
+ classList := self classList.
+ currentClassName := classList isEmpty ifFalse:
+ [classList at: (index min: classList size)].
+ self showChangeSet: myChangeSet!
- currentClassName ifNotNil: [
- myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
- currentClassName := nil.
- currentSelector := nil.
- self showChangeSet: myChangeSet].
- !
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.458.mcz
==================== Summary ====================
Name: Tools-eem.458
Author: eem
Time: 20 March 2013, 12:36:28.93 pm
UUID: 92bec064-c457-41af-b8c3-86f7daafbbb9
Ancestors: Tools-eem.457
In CHangeSorter, after forgetting a class, select at the
same point in the class list, which helps if e.g. doing
something repetitive such as moving a number of classes
to another change set.
=============== Diff against Tools-eem.457 ===============
Item was changed:
----- Method: ChangeSorter>>forgetClass (in category 'class list') -----
forgetClass
+ "Remove all mention of this class from the changeSet.
+ After forgetting, select at the same point in the class
+ list, which helps if e.g. doing something repetitive such
+ as moving a number of classes to the other side."
+ | index classList |
- "Remove all mention of this class from the changeSet"
-
self okToChange ifFalse: [^ self].
+ currentClassName ifNil: [^self].
+ index := self classList indexOf: currentClassName.
+ myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
+ currentSelector := nil.
+ classList := self classList.
+ currentClassName := classList isEmpty ifFalse:
+ [classList at: (index min: classList size)].
+ self showChangeSet: myChangeSet!
- currentClassName ifNotNil: [
- myChangeSet removeClassChanges: (self withoutItemAnnotation: currentClassName).
- currentClassName := nil.
- currentSelector := nil.
- self showChangeSet: myChangeSet].
- !
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.749.mcz
==================== Summary ====================
Name: Kernel-eem.749
Author: eem
Time: 15 March 2013, 3:20:44.917 pm
UUID: 73418d30-16f5-44e4-aca3-8a2ba22bc43c
Ancestors: Kernel-nice.748
Less noise in abstractSymbolic sends. Plus better send
printing for both abstractSymbolic and symbolic if selector
is not a symbol.
=============== Diff against Kernel-nice.748 ===============
Item was changed:
----- Method: InstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
+ send: selector super: supered numArgs: numArgs
- send: selector super: supered numArgs: numberArguments
"Print the Send Message With Selector, selector, bytecode. The argument,
supered, indicates whether the receiver of the message is specified with
'super' in the source method. The arguments of the message are found in
the top numArguments locations on the stack and the receiver just
below them."
+ self print: (supered
+ ifTrue: ['superSend: ']
+ ifFalse: ['send: '])
+ , (self stringForSelector: selector numArgs: numArgs).
- self print: (supered ifTrue: ['superSend: '] ifFalse: ['send: ']) , selector.
indentSpanOfFollowingJump := #(blockCopy: #closureCopy:copiedValues:) includes: selector!
Item was added:
+ ----- Method: InstructionPrinter>>stringForSelector:numArgs: (in category 'printing') -----
+ stringForSelector: selector numArgs: numArgs
+ ^(selector isSymbol and: [selector numArgs = numArgs])
+ ifTrue: [selector]
+ ifFalse: [selector printString
+ , (numArgs = 1
+ ifTrue: [' (1 arg)']
+ ifFalse: [' (', numArgs printString, ' args)'])]!
Item was removed:
- ----- Method: RelativeInstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
- send: selector super: supered numArgs: numArgs
- "Print the Send Message With Selector, selector, bytecode. The argument,
- supered, indicates whether the receiver of the message is specified with
- 'super' in the source method. The arguments of the message are found in
- the top numArguments locations on the stack and the receiver just
- below them."
-
- self print: (supered
- ifTrue: ['superSend: ']
- ifFalse: ['send: '])
- , selector storeString
- , (numArgs = 1
- ifTrue: [' (1 arg)']
- ifFalse: [' (', numArgs printString, ' args)'])!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.749.mcz
==================== Summary ====================
Name: Kernel-eem.749
Author: eem
Time: 15 March 2013, 3:20:44.917 pm
UUID: 73418d30-16f5-44e4-aca3-8a2ba22bc43c
Ancestors: Kernel-nice.748
Less noise in abstractSymbolic sends. Plus better send
printing for both abstractSymbolic and symbolic if selector
is not a symbol.
=============== Diff against Kernel-nice.748 ===============
Item was changed:
----- Method: InstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
+ send: selector super: supered numArgs: numArgs
- send: selector super: supered numArgs: numberArguments
"Print the Send Message With Selector, selector, bytecode. The argument,
supered, indicates whether the receiver of the message is specified with
'super' in the source method. The arguments of the message are found in
the top numArguments locations on the stack and the receiver just
below them."
+ self print: (supered
+ ifTrue: ['superSend: ']
+ ifFalse: ['send: '])
+ , (self stringForSelector: selector numArgs: numArgs).
- self print: (supered ifTrue: ['superSend: '] ifFalse: ['send: ']) , selector.
indentSpanOfFollowingJump := #(blockCopy: #closureCopy:copiedValues:) includes: selector!
Item was added:
+ ----- Method: InstructionPrinter>>stringForSelector:numArgs: (in category 'printing') -----
+ stringForSelector: selector numArgs: numArgs
+ ^(selector isSymbol and: [selector numArgs = numArgs])
+ ifTrue: [selector]
+ ifFalse: [selector printString
+ , (numArgs = 1
+ ifTrue: [' (1 arg)']
+ ifFalse: [' (', numArgs printString, ' args)'])]!
Item was removed:
- ----- Method: RelativeInstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
- send: selector super: supered numArgs: numArgs
- "Print the Send Message With Selector, selector, bytecode. The argument,
- supered, indicates whether the receiver of the message is specified with
- 'super' in the source method. The arguments of the message are found in
- the top numArguments locations on the stack and the receiver just
- below them."
-
- self print: (supered
- ifTrue: ['superSend: ']
- ifFalse: ['send: '])
- , selector storeString
- , (numArgs = 1
- ifTrue: [' (1 arg)']
- ifFalse: [' (', numArgs printString, ' args)'])!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.749.mcz
==================== Summary ====================
Name: Kernel-eem.749
Author: eem
Time: 15 March 2013, 3:20:44.917 pm
UUID: 73418d30-16f5-44e4-aca3-8a2ba22bc43c
Ancestors: Kernel-nice.748
Less noise in abstractSymbolic sends. Plus better send
printing for both abstractSymbolic and symbolic if selector
is not a symbol.
=============== Diff against Kernel-nice.748 ===============
Item was changed:
----- Method: InstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
+ send: selector super: supered numArgs: numArgs
- send: selector super: supered numArgs: numberArguments
"Print the Send Message With Selector, selector, bytecode. The argument,
supered, indicates whether the receiver of the message is specified with
'super' in the source method. The arguments of the message are found in
the top numArguments locations on the stack and the receiver just
below them."
+ self print: (supered
+ ifTrue: ['superSend: ']
+ ifFalse: ['send: '])
+ , (self stringForSelector: selector numArgs: numArgs).
- self print: (supered ifTrue: ['superSend: '] ifFalse: ['send: ']) , selector.
indentSpanOfFollowingJump := #(blockCopy: #closureCopy:copiedValues:) includes: selector!
Item was added:
+ ----- Method: InstructionPrinter>>stringForSelector:numArgs: (in category 'printing') -----
+ stringForSelector: selector numArgs: numArgs
+ ^(selector isSymbol and: [selector numArgs = numArgs])
+ ifTrue: [selector]
+ ifFalse: [selector printString
+ , (numArgs = 1
+ ifTrue: [' (1 arg)']
+ ifFalse: [' (', numArgs printString, ' args)'])]!
Item was removed:
- ----- Method: RelativeInstructionPrinter>>send:super:numArgs: (in category 'instruction decoding') -----
- send: selector super: supered numArgs: numArgs
- "Print the Send Message With Selector, selector, bytecode. The argument,
- supered, indicates whether the receiver of the message is specified with
- 'super' in the source method. The arguments of the message are found in
- the top numArguments locations on the stack and the receiver just
- below them."
-
- self print: (supered
- ifTrue: ['superSend: ']
- ifFalse: ['send: '])
- , selector storeString
- , (numArgs = 1
- ifTrue: [' (1 arg)']
- ifFalse: [' (', numArgs printString, ' args)'])!
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.457.mcz
==================== Summary ====================
Name: Tools-eem.457
Author: eem
Time: 13 March 2013, 3:38:18.611 pm
UUID: 6a200caf-d602-48bc-8da5-fbeb8ec49eee
Ancestors: Tools-eem.456
Debugger robustness when attempting to assign to outer
temps when the outer context has returned and the stack
has been cut-back to remove the temps.
=============== Diff against Tools-eem.456 ===============
Item was changed:
----- Method: DebuggerMethodMapForClosureCompiledMethods>>privateDereference:in:put: (in category 'private') -----
privateDereference: tempReference in: aContext put: aValue
"Assign the temporary with reference tempReference in aContext.
tempReference can be
integer - direct temp reference
#( indirectionVectorIndex tempIndex ) - remote temp in indirectionVector at index
#( outer. temp reference ) - a temp reference in an outer context."
^tempReference isInteger
ifTrue:
+ [tempReference <= aContext stackPtr
+ ifTrue:
+ [aContext tempAt: tempReference put: aValue]
+ ifFalse:
+ [UIManager default inform: 'Cannot assign temp because it is no longer on stack.\Activation has returned?' withCRs.
+ nil]]
- [aContext tempAt: tempReference put: aValue]
ifFalse:
[tempReference first == #outer
ifTrue:
[self privateDereference: tempReference last
in: aContext outerContext
put: aValue]
ifFalse: "If stopped before indirection vectors are created they will be nil."
+ [tempReference first <= aContext stackPtr
+ ifTrue:
+ [(aContext tempAt: tempReference first)
+ ifNil: [UIManager default inform: 'Cannot assign remote temp because indirection vector is nil.\Too early in method execution?' withCRs.
+ nil]
+ ifNotNil:
+ [:indirectionVector|
+ indirectionVector
+ at: tempReference second
+ put: aValue]]
+ ifFalse:
+ [UIManager default inform: 'Cannot assign remote temp because it is no longer on stack.\Activation has returned?' withCRs.
+ nil]]]!
- [(aContext tempAt: tempReference first)
- ifNil: [UIManager default inform: 'Cannot assign remote temp because indirection vector is nil.\Too early in method execution?' withCRs.
- nil]
- ifNotNil:
- [:indirectionVector|
- indirectionVector
- at: tempReference second
- put: aValue]]]!