Frank Shearar uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-fbs.515.mcz ==================== Summary ==================== Name: Tools-fbs.515 Author: fbs Time: 3 January 2014, 11:36:39.703 am UUID: eb2eb7de-3e2e-bb44-95a0-0f945bb74023 Ancestors: Tools-tpr.514 Move some Tools functionality out of Kernel to Tools. =============== Diff against Tools-tpr.514 =============== Item was added: + ----- Method: Behavior>>inspectAllInstances (in category '*Tools-accessing instances and variables') ----- + inspectAllInstances + "Inpsect all instances of the receiver. 1/26/96 sw" + + | all allSize prefix | + all := self allInstances. + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no + instances of ', self name]. + prefix := allSize = 1 + ifTrue: ['The lone instance'] + ifFalse: ['The ', allSize printString, ' instances']. + + all asArray inspectWithLabel: (prefix, ' of ', self name)! Item was added: + ----- Method: Behavior>>inspectSubInstances (in category '*Tools-accessing instances and variables') ----- + inspectSubInstances + "Inspect all instances of the receiver and all its subclasses. CAUTION - don't do this for something as generic as Object!! 1/26/96 sw" + + | all allSize prefix | + all := self allSubInstances. + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no + instances of ', self name, ' + or any of its subclasses']. + prefix := allSize = 1 + ifTrue: ['The lone instance'] + ifFalse: ['The ', allSize printString, ' instances']. + + all asArray inspectWithLabel: (prefix, ' of ', self name, ' & its subclasses')! Item was added: + ----- Method: ContextPart>>errorReportOn: (in category '*Tools-debugger access') ----- + errorReportOn: strm + "Write a detailed error report on the stack (above me) on a stream. For both the error file, and emailing a bug report. Suppress any errors while getting printStrings. Limit the length." + + | cnt aContext startPos | + strm print: Date today; space; print: Time now; cr. + strm cr. + strm nextPutAll: 'VM: '; + nextPutAll: Smalltalk platformName asString; + nextPutAll: ' - '; + nextPutAll: Smalltalk asString; + cr. + strm nextPutAll: 'Image: '; + nextPutAll: SystemVersion current version asString; + nextPutAll: ' ['; + nextPutAll: Smalltalk lastUpdateString asString; + nextPutAll: ']'; + cr. + strm cr. + SecurityManager default printStateOn: strm. + + "Note: The following is an open-coded version of ContextPart>>stackOfSize: since this method may be called during a low space condition and we might run out of space for allocating the full stack." + cnt := 0. startPos := strm position. + aContext := self. + [aContext notNil and: [(cnt := cnt + 1) < 20]] whileTrue: + [aContext printDetails: strm. "variable values" + strm cr. + aContext := aContext sender]. + + strm cr; nextPutAll: '--- The full stack ---'; cr. + aContext := self. + cnt := 0. + [aContext == nil] whileFalse: + [cnt := cnt + 1. + cnt = 20 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'; cr]. + strm print: aContext; cr. "just class>>selector" + + "exit early if too long..." + strm position > (startPos+ self class maxLengthForASingleDebugLogReport) ifTrue: [strm nextPutAll: '...etc...'. ^ self]. cnt > self class maxStackDepthForASingleDebugLogReport ifTrue: [strm nextPutAll: '-- and more not shown --'. ^ self]. + aContext := aContext sender]. + ! Item was added: + ----- Method: Object>>explore (in category '*Tools-Explorer') ----- + explore + ^ToolSet explore: self! Item was added: + ----- Method: Object>>inspectWithLabel: (in category '*Tools-inspecting') ----- + inspectWithLabel: aLabel + "Create and schedule an Inspector in which the user can examine the receiver's variables." + ^ToolSet inspect: self label: aLabel! Item was added: + ----- Method: Object>>notifyWithLabel: (in category '*Tools-error handling') ----- + notifyWithLabel: aString + "Create and schedule a Notifier with aString as the window label as well as the contents of the window, in order to request confirmation before a process can proceed." + + ToolSet + debugContext: thisContext + label: aString + contents: aString + + "nil notifyWithLabel: 'let us see if this works'"! Item was changed: MessageSet subclass: #RecentMessageSet instanceVariableNames: '' + classVariableNames: 'NumberOfRecentSubmissionsToStore' - classVariableNames: '' poolDictionaries: '' category: 'Tools-Browser'! !RecentMessageSet commentStamp: 'sw 8/1/2002 17:40' prior: 0! RecentMessageSet is a message set that shows the most recently-submitted methods, in chronological order.! |
Some questions.
Moving out the inspect / explore stuff to Tools seems reasonable, but why ContextPart>>errorReportOn: moved out of Kernel? Because one of the responsibilities of Kernel is to do reasonable reporting in case of an error isn't it? Is there any error-handling left in Kernel? Also, why putting back unused NumberOfRecentSubmissionsToStore var into RecentMessages? On Fri, Jan 3, 2014 at 5:36 AM, <[hidden email]> wrote: > Frank Shearar uploaded a new version of Tools to project The Trunk: > http://source.squeak.org/trunk/Tools-fbs.515.mcz > > ==================== Summary ==================== > > Name: Tools-fbs.515 > Author: fbs > Time: 3 January 2014, 11:36:39.703 am > UUID: eb2eb7de-3e2e-bb44-95a0-0f945bb74023 > Ancestors: Tools-tpr.514 > > Move some Tools functionality out of Kernel to Tools. > > =============== Diff against Tools-tpr.514 =============== > > Item was added: > + ----- Method: Behavior>>inspectAllInstances (in category '*Tools-accessing instances and variables') ----- > + inspectAllInstances > + "Inpsect all instances of the receiver. 1/26/96 sw" > + > + | all allSize prefix | > + all := self allInstances. > + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no > + instances of ', self name]. > + prefix := allSize = 1 > + ifTrue: ['The lone instance'] > + ifFalse: ['The ', allSize printString, ' instances']. > + > + all asArray inspectWithLabel: (prefix, ' of ', self name)! > > Item was added: > + ----- Method: Behavior>>inspectSubInstances (in category '*Tools-accessing instances and variables') ----- > + inspectSubInstances > + "Inspect all instances of the receiver and all its subclasses. CAUTION - don't do this for something as generic as Object!! 1/26/96 sw" > + > + | all allSize prefix | > + all := self allSubInstances. > + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no > + instances of ', self name, ' > + or any of its subclasses']. > + prefix := allSize = 1 > + ifTrue: ['The lone instance'] > + ifFalse: ['The ', allSize printString, ' instances']. > + > + all asArray inspectWithLabel: (prefix, ' of ', self name, ' & its subclasses')! > > Item was added: > + ----- Method: ContextPart>>errorReportOn: (in category '*Tools-debugger access') ----- > + errorReportOn: strm > + "Write a detailed error report on the stack (above me) on a stream. For both the error file, and emailing a bug report. Suppress any errors while getting printStrings. Limit the length." > + > + | cnt aContext startPos | > + strm print: Date today; space; print: Time now; cr. > + strm cr. > + strm nextPutAll: 'VM: '; > + nextPutAll: Smalltalk platformName asString; > + nextPutAll: ' - '; > + nextPutAll: Smalltalk asString; > + cr. > + strm nextPutAll: 'Image: '; > + nextPutAll: SystemVersion current version asString; > + nextPutAll: ' ['; > + nextPutAll: Smalltalk lastUpdateString asString; > + nextPutAll: ']'; > + cr. > + strm cr. > + SecurityManager default printStateOn: strm. > + > + "Note: The following is an open-coded version of ContextPart>>stackOfSize: since this method may be called during a low space condition and we might run out of space for allocating the full stack." > + cnt := 0. startPos := strm position. > + aContext := self. > + [aContext notNil and: [(cnt := cnt + 1) < 20]] whileTrue: > + [aContext printDetails: strm. "variable values" > + strm cr. > + aContext := aContext sender]. > + > + strm cr; nextPutAll: '--- The full stack ---'; cr. > + aContext := self. > + cnt := 0. > + [aContext == nil] whileFalse: > + [cnt := cnt + 1. > + cnt = 20 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'; cr]. > + strm print: aContext; cr. "just class>>selector" > + > + "exit early if too long..." > + strm position > (startPos+ self class maxLengthForASingleDebugLogReport) ifTrue: [strm nextPutAll: '...etc...'. ^ self]. cnt > self class maxStackDepthForASingleDebugLogReport ifTrue: [strm nextPutAll: '-- and more not shown --'. ^ self]. > + aContext := aContext sender]. > + ! > > Item was added: > + ----- Method: Object>>explore (in category '*Tools-Explorer') ----- > + explore > + ^ToolSet explore: self! > > Item was added: > + ----- Method: Object>>inspectWithLabel: (in category '*Tools-inspecting') ----- > + inspectWithLabel: aLabel > + "Create and schedule an Inspector in which the user can examine the receiver's variables." > + ^ToolSet inspect: self label: aLabel! > > Item was added: > + ----- Method: Object>>notifyWithLabel: (in category '*Tools-error handling') ----- > + notifyWithLabel: aString > + "Create and schedule a Notifier with aString as the window label as well as the contents of the window, in order to request confirmation before a process can proceed." > + > + ToolSet > + debugContext: thisContext > + label: aString > + contents: aString > + > + "nil notifyWithLabel: 'let us see if this works'"! > > Item was changed: > MessageSet subclass: #RecentMessageSet > instanceVariableNames: '' > + classVariableNames: 'NumberOfRecentSubmissionsToStore' > - classVariableNames: '' > poolDictionaries: '' > category: 'Tools-Browser'! > > !RecentMessageSet commentStamp: 'sw 8/1/2002 17:40' prior: 0! > RecentMessageSet is a message set that shows the most recently-submitted methods, in chronological order.! > > |
> Also, why putting back unused NumberOfRecentSubmissionsToStore var
> into RecentMessages? RecentMessagesSet. |
In reply to this post by Chris Muller-3
On 3 January 2014 16:48, Chris Muller <[hidden email]> wrote:
> Some questions. > > Moving out the inspect / explore stuff to Tools seems reasonable, but > why ContextPart>>errorReportOn: moved out of Kernel? > > Because one of the responsibilities of Kernel is to do reasonable > reporting in case of an error isn't it? Is there any error-handling > left in Kernel? #errorReportOn: uses a bunch of System classes, so doesn't belong in Kernel. Since #errorReportOn: is something the Debugger uses during the process of making a bug report mail, and the only other use is from SmalltalkImage >> #logError:inContext:to:, it seemed reasonable to push the message into Tools. I could see an argument for System being its more natural home. > Also, why putting back unused NumberOfRecentSubmissionsToStore var > into RecentMessages? Hm, that wasn't intentional! I wonder how that even got in there. OK, I'll rip it out (again). Gives me an excuse to fix that ridiculous typo I made, too. frank > On Fri, Jan 3, 2014 at 5:36 AM, <[hidden email]> wrote: >> Frank Shearar uploaded a new version of Tools to project The Trunk: >> http://source.squeak.org/trunk/Tools-fbs.515.mcz >> >> ==================== Summary ==================== >> >> Name: Tools-fbs.515 >> Author: fbs >> Time: 3 January 2014, 11:36:39.703 am >> UUID: eb2eb7de-3e2e-bb44-95a0-0f945bb74023 >> Ancestors: Tools-tpr.514 >> >> Move some Tools functionality out of Kernel to Tools. >> >> =============== Diff against Tools-tpr.514 =============== >> >> Item was added: >> + ----- Method: Behavior>>inspectAllInstances (in category '*Tools-accessing instances and variables') ----- >> + inspectAllInstances >> + "Inpsect all instances of the receiver. 1/26/96 sw" >> + >> + | all allSize prefix | >> + all := self allInstances. >> + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no >> + instances of ', self name]. >> + prefix := allSize = 1 >> + ifTrue: ['The lone instance'] >> + ifFalse: ['The ', allSize printString, ' instances']. >> + >> + all asArray inspectWithLabel: (prefix, ' of ', self name)! >> >> Item was added: >> + ----- Method: Behavior>>inspectSubInstances (in category '*Tools-accessing instances and variables') ----- >> + inspectSubInstances >> + "Inspect all instances of the receiver and all its subclasses. CAUTION - don't do this for something as generic as Object!! 1/26/96 sw" >> + >> + | all allSize prefix | >> + all := self allSubInstances. >> + (allSize := all size) = 0 ifTrue: [^ self inform: 'There are no >> + instances of ', self name, ' >> + or any of its subclasses']. >> + prefix := allSize = 1 >> + ifTrue: ['The lone instance'] >> + ifFalse: ['The ', allSize printString, ' instances']. >> + >> + all asArray inspectWithLabel: (prefix, ' of ', self name, ' & its subclasses')! >> >> Item was added: >> + ----- Method: ContextPart>>errorReportOn: (in category '*Tools-debugger access') ----- >> + errorReportOn: strm >> + "Write a detailed error report on the stack (above me) on a stream. For both the error file, and emailing a bug report. Suppress any errors while getting printStrings. Limit the length." >> + >> + | cnt aContext startPos | >> + strm print: Date today; space; print: Time now; cr. >> + strm cr. >> + strm nextPutAll: 'VM: '; >> + nextPutAll: Smalltalk platformName asString; >> + nextPutAll: ' - '; >> + nextPutAll: Smalltalk asString; >> + cr. >> + strm nextPutAll: 'Image: '; >> + nextPutAll: SystemVersion current version asString; >> + nextPutAll: ' ['; >> + nextPutAll: Smalltalk lastUpdateString asString; >> + nextPutAll: ']'; >> + cr. >> + strm cr. >> + SecurityManager default printStateOn: strm. >> + >> + "Note: The following is an open-coded version of ContextPart>>stackOfSize: since this method may be called during a low space condition and we might run out of space for allocating the full stack." >> + cnt := 0. startPos := strm position. >> + aContext := self. >> + [aContext notNil and: [(cnt := cnt + 1) < 20]] whileTrue: >> + [aContext printDetails: strm. "variable values" >> + strm cr. >> + aContext := aContext sender]. >> + >> + strm cr; nextPutAll: '--- The full stack ---'; cr. >> + aContext := self. >> + cnt := 0. >> + [aContext == nil] whileFalse: >> + [cnt := cnt + 1. >> + cnt = 20 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'; cr]. >> + strm print: aContext; cr. "just class>>selector" >> + >> + "exit early if too long..." >> + strm position > (startPos+ self class maxLengthForASingleDebugLogReport) ifTrue: [strm nextPutAll: '...etc...'. ^ self]. cnt > self class maxStackDepthForASingleDebugLogReport ifTrue: [strm nextPutAll: '-- and more not shown --'. ^ self]. >> + aContext := aContext sender]. >> + ! >> >> Item was added: >> + ----- Method: Object>>explore (in category '*Tools-Explorer') ----- >> + explore >> + ^ToolSet explore: self! >> >> Item was added: >> + ----- Method: Object>>inspectWithLabel: (in category '*Tools-inspecting') ----- >> + inspectWithLabel: aLabel >> + "Create and schedule an Inspector in which the user can examine the receiver's variables." >> + ^ToolSet inspect: self label: aLabel! >> >> Item was added: >> + ----- Method: Object>>notifyWithLabel: (in category '*Tools-error handling') ----- >> + notifyWithLabel: aString >> + "Create and schedule a Notifier with aString as the window label as well as the contents of the window, in order to request confirmation before a process can proceed." >> + >> + ToolSet >> + debugContext: thisContext >> + label: aString >> + contents: aString >> + >> + "nil notifyWithLabel: 'let us see if this works'"! >> >> Item was changed: >> MessageSet subclass: #RecentMessageSet >> instanceVariableNames: '' >> + classVariableNames: 'NumberOfRecentSubmissionsToStore' >> - classVariableNames: '' >> poolDictionaries: '' >> category: 'Tools-Browser'! >> >> !RecentMessageSet commentStamp: 'sw 8/1/2002 17:40' prior: 0! >> RecentMessageSet is a message set that shows the most recently-submitted methods, in chronological order.! >> >> > |
Free forum by Nabble | Edit this page |