+1, please include in the update.mcm! I also like the Pharo alternative to Fuel out the error context... Lighter than full image save. Oh but we don't have Fuel yet :( Who wants to make it with a segment?
2013/10/31 commits@source.squeak.org
Frank Shearar uploaded a new version of CommandLine to project The Trunk: http://source.squeak.org/trunk/CommandLine-fbs.1.mcz
==================== Summary ====================
Name: CommandLine-fbs.1 Author: fbs Time: 31 October 2013, 10:32:52.821 pm UUID: dc871e85-bd16-d742-acbf-4d2b838113d1 Ancestors:
CommandLineToolSet does little more than dump errors to stderr.
DummyUIManager comes from Pharo via Pavel Krivanek's minimising script.
==================== Snapshot ====================
SystemOrganization addCategory: #'CommandLine-Tools'! SystemOrganization addCategory: #'CommandLine-UIManager'!
UIManager subclass: #DummyUIManager instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'CommandLine-UIManager'!
!DummyUIManager commentStamp: 'fbs 10/31/2013 07:36' prior: 0! I'm an alternative UIManager used to run an the image without GUI. I redefine methods which require user input as these requests are irrelevant in a headless environment. !
----- Method: DummyUIManager>>checkForNewDisplaySize (in category 'display') ----- checkForNewDisplaySize Display extent = DisplayScreen actualScreenSize ifTrue: [^ self]. DisplayScreen startUp. !
----- Method: DummyUIManager>>chooseDirectory:from: (in category 'ui requests') ----- chooseDirectory: label from: dir ^ nil!
----- Method: DummyUIManager>>chooseFrom:lines:title: (in category 'ui requests') ----- chooseFrom: aList lines: linesArray title: aString ^ aList first!
----- Method: DummyUIManager>>chooseFrom:values:lines:title: (in category 'ui requests') ----- chooseFrom: labelList values: valueList lines: linesArray title: aString ^ valueList first!
----- Method: DummyUIManager>>confirm: (in category 'ui requests') ----- confirm: queryString (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer|^answer].
self error: 'No user response possible'!
----- Method: DummyUIManager>>confirm:orCancel: (in category 'ui requests') ----- confirm: aString orCancel: cancelBlock (ProvideAnswerNotification signal: aString) ifNotNil: [:answer | ^answer == #cancel ifTrue: [cancelBlock value] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>displayProgress:at:from:to:during: (in category 'ui requests') ----- displayProgress: titleString at: aPoint from: minVal to: maxVal during: workBlock ^ workBlock value: Association new!
----- Method: DummyUIManager>>edit:label:accept: (in category 'ui requests') ----- edit: aText label: labelString accept: anAction ^ nil!
----- Method: DummyUIManager>>fontFromUser: (in category 'ui requests')
fontFromUser: priorFont self error: 'No user response possible'!
----- Method: DummyUIManager>>inform: (in category 'ui requests') ----- inform: aString "Nothing to be done here"!
----- Method: DummyUIManager>>informUserDuring: (in category 'ui requests') ----- informUserDuring: aBlock aBlock value: nil!
----- Method: DummyUIManager>>newDisplayDepthNoRestore: (in category 'display') ----- newDisplayDepthNoRestore: pixelSize "Change depths. Check if there is enough space!! , di" | area need | pixelSize = Display depth ifTrue: [^ self "no change"]. pixelSize abs < Display depth ifFalse: ["Make sure there is enough space" area := Display boundingBox area. "pixels"
need := (area * (pixelSize abs - Display depth) // 8)
"new bytes needed" + Smalltalk lowSpaceThreshold. (Smalltalk garbageCollectMost <= need and: [Smalltalk garbageCollect <= need]) ifTrue: [self error: 'Insufficient free space']]. Display setExtent: Display extent depth: pixelSize.
DisplayScreen startUp!
----- Method: DummyUIManager>>request:initialAnswer: (in category 'ui requests') ----- request: queryString initialAnswer: defaultAnswer (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer | ^ answer == #default ifTrue: [defaultAnswer] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>requestPassword: (in category 'ui requests')
requestPassword: queryString ^ self request: queryString initialAnswer: ''!
----- Method: DummyUIManager>>restoreDisplay (in category 'display') ----- restoreDisplay!
----- Method: DummyUIManager>>restoreDisplayAfter: (in category 'display')
restoreDisplayAfter: aBlock aBlock value. Sensor waitButton.!
StandardToolSet subclass: #CommandLineToolSet instanceVariableNames: '' classVariableNames: 'SaveSnapshotOnError' poolDictionaries: '' category: 'CommandLine-Tools'!
----- Method: CommandLineToolSet class>>debugError: (in category 'debugging') ----- debugError: anError "Print out a sensible stack trace and bail" | problemPlace s | self saveSnapshotOnError ifTrue: [Smalltalk saveAs: 'Debug-' , (Smalltalk imageName subStrings: '/') last]. problemPlace := anError signalerContext. s := FileStream stderr. (anError isKindOf: MessageNotUnderstood) ifTrue: [ s nextPutAll: anError messageText; cr; nextPutAll: problemPlace sender methodNode printString; cr]. (problemPlace stackOfSize: 20) do: [:ctx | s cr. ctx printOn: s]. s flush.
SmalltalkImage current snapshot: false andQuit: true!
----- Method: CommandLineToolSet class>>debugSyntaxError: (in category 'debugging') ----- debugSyntaxError: anError | s | s := FileStream stderr. s nextPutAll: '----- Syntax error -----'; cr. s nextPutAll: anError errorCode; cr. s nextPutAll: '----- Syntax error -----'; cr.
self debugError: anError!
----- Method: CommandLineToolSet class>>saveSnapshotOnError (in category 'preferences') ----- saveSnapshotOnError <preference: 'Save snapshot of image on failure' category: 'debug' description: 'If true, saves a snapshot of the failing image to the current directory.' type: #Boolean> ^ SaveSnapshotOnError ifNil: [SaveSnapshotOnError := false].!
----- Method: CommandLineToolSet class>>saveSnapshotOnError: (in category 'preferences') ----- saveSnapshotOnError: aBoolean SaveSnapshotOnError := aBoolean.!
----- Method: CommandLineToolSet class>>unload (in category 'class initialization') ----- unload ToolSet unregister: self.!
Fuel works in 4.4, but not quite yet in 4.5: http://build.squeak.org/job/ExternalPackage-Fuel/lastFailedBuild/console Sadly, that output's not particularly useful.
frank
On 31 October 2013 23:02, Nicolas Cellier nicolas.cellier.aka.nice@gmail.com wrote:
+1, please include in the update.mcm! I also like the Pharo alternative to Fuel out the error context... Lighter than full image save. Oh but we don't have Fuel yet :( Who wants to make it with a segment?
2013/10/31 commits@source.squeak.org
Frank Shearar uploaded a new version of CommandLine to project The Trunk: http://source.squeak.org/trunk/CommandLine-fbs.1.mcz
==================== Summary ====================
Name: CommandLine-fbs.1 Author: fbs Time: 31 October 2013, 10:32:52.821 pm UUID: dc871e85-bd16-d742-acbf-4d2b838113d1 Ancestors:
CommandLineToolSet does little more than dump errors to stderr.
DummyUIManager comes from Pharo via Pavel Krivanek's minimising script.
==================== Snapshot ====================
SystemOrganization addCategory: #'CommandLine-Tools'! SystemOrganization addCategory: #'CommandLine-UIManager'!
UIManager subclass: #DummyUIManager instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'CommandLine-UIManager'!
!DummyUIManager commentStamp: 'fbs 10/31/2013 07:36' prior: 0! I'm an alternative UIManager used to run an the image without GUI. I redefine methods which require user input as these requests are irrelevant in a headless environment. !
----- Method: DummyUIManager>>checkForNewDisplaySize (in category 'display') ----- checkForNewDisplaySize Display extent = DisplayScreen actualScreenSize ifTrue: [^ self]. DisplayScreen startUp. !
----- Method: DummyUIManager>>chooseDirectory:from: (in category 'ui requests') ----- chooseDirectory: label from: dir ^ nil!
----- Method: DummyUIManager>>chooseFrom:lines:title: (in category 'ui requests') ----- chooseFrom: aList lines: linesArray title: aString ^ aList first!
----- Method: DummyUIManager>>chooseFrom:values:lines:title: (in category 'ui requests') ----- chooseFrom: labelList values: valueList lines: linesArray title: aString ^ valueList first!
----- Method: DummyUIManager>>confirm: (in category 'ui requests') ----- confirm: queryString (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer|^answer].
self error: 'No user response possible'!
----- Method: DummyUIManager>>confirm:orCancel: (in category 'ui requests') ----- confirm: aString orCancel: cancelBlock (ProvideAnswerNotification signal: aString) ifNotNil: [:answer | ^answer == #cancel ifTrue: [cancelBlock value] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>displayProgress:at:from:to:during: (in category 'ui requests') ----- displayProgress: titleString at: aPoint from: minVal to: maxVal during: workBlock ^ workBlock value: Association new!
----- Method: DummyUIManager>>edit:label:accept: (in category 'ui requests') ----- edit: aText label: labelString accept: anAction ^ nil!
----- Method: DummyUIManager>>fontFromUser: (in category 'ui requests')
fontFromUser: priorFont self error: 'No user response possible'!
----- Method: DummyUIManager>>inform: (in category 'ui requests') ----- inform: aString "Nothing to be done here"!
----- Method: DummyUIManager>>informUserDuring: (in category 'ui requests') ----- informUserDuring: aBlock aBlock value: nil!
----- Method: DummyUIManager>>newDisplayDepthNoRestore: (in category 'display') ----- newDisplayDepthNoRestore: pixelSize "Change depths. Check if there is enough space!! , di" | area need | pixelSize = Display depth ifTrue: [^ self "no change"]. pixelSize abs < Display depth ifFalse: ["Make sure there is enough space" area := Display boundingBox area. "pixels"
need := (area * (pixelSize abs - Display depth) // 8)
"new bytes needed" + Smalltalk lowSpaceThreshold. (Smalltalk garbageCollectMost <= need and: [Smalltalk garbageCollect <= need]) ifTrue: [self error: 'Insufficient free space']]. Display setExtent: Display extent depth: pixelSize.
DisplayScreen startUp!
----- Method: DummyUIManager>>request:initialAnswer: (in category 'ui requests') ----- request: queryString initialAnswer: defaultAnswer (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer | ^ answer == #default ifTrue: [defaultAnswer] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>requestPassword: (in category 'ui requests')
requestPassword: queryString ^ self request: queryString initialAnswer: ''!
----- Method: DummyUIManager>>restoreDisplay (in category 'display') ----- restoreDisplay!
----- Method: DummyUIManager>>restoreDisplayAfter: (in category 'display')
restoreDisplayAfter: aBlock aBlock value. Sensor waitButton.!
StandardToolSet subclass: #CommandLineToolSet instanceVariableNames: '' classVariableNames: 'SaveSnapshotOnError' poolDictionaries: '' category: 'CommandLine-Tools'!
----- Method: CommandLineToolSet class>>debugError: (in category 'debugging') ----- debugError: anError "Print out a sensible stack trace and bail" | problemPlace s | self saveSnapshotOnError ifTrue: [Smalltalk saveAs: 'Debug-' , (Smalltalk imageName subStrings: '/') last]. problemPlace := anError signalerContext. s := FileStream stderr. (anError isKindOf: MessageNotUnderstood) ifTrue: [ s nextPutAll: anError messageText; cr; nextPutAll: problemPlace sender methodNode printString; cr]. (problemPlace stackOfSize: 20) do: [:ctx | s cr. ctx printOn: s]. s flush.
SmalltalkImage current snapshot: false andQuit: true!
----- Method: CommandLineToolSet class>>debugSyntaxError: (in category 'debugging') ----- debugSyntaxError: anError | s | s := FileStream stderr. s nextPutAll: '----- Syntax error -----'; cr. s nextPutAll: anError errorCode; cr. s nextPutAll: '----- Syntax error -----'; cr.
self debugError: anError!
----- Method: CommandLineToolSet class>>saveSnapshotOnError (in category 'preferences') ----- saveSnapshotOnError <preference: 'Save snapshot of image on failure' category: 'debug' description: 'If true, saves a snapshot of the failing image to the current directory.' type: #Boolean> ^ SaveSnapshotOnError ifNil: [SaveSnapshotOnError := false].!
----- Method: CommandLineToolSet class>>saveSnapshotOnError: (in category 'preferences') ----- saveSnapshotOnError: aBoolean SaveSnapshotOnError := aBoolean.!
----- Method: CommandLineToolSet class>>unload (in category 'class initialization') ----- unload ToolSet unregister: self.!
Ah, but I see that you use SqueakMap... SqueakMap point to ConfigurationOfFuel-MartinDias.197 Unfortunately, this configuration is obsolete. Because it points to http://ss3.gemstone.com/ss/Fuel which has been drained from every .mcz (IMHO a mistake, it should have been used as a fallback repository...).
There is another problem even with more recent configuration: they do not attempt anything for a squeak4.5.x serie, and will thus fail to load the FuelCompatibility layer... Fixing the configuration is not enough, because it is also necessary to fix Metacello which never heard of squeak4.5 either...
That's a few hurdles, but we can make it.
2013/11/1 Frank Shearar frank.shearar@gmail.com
Fuel works in 4.4, but not quite yet in 4.5: http://build.squeak.org/job/ExternalPackage-Fuel/lastFailedBuild/console Sadly, that output's not particularly useful.
frank
On 31 October 2013 23:02, Nicolas Cellier nicolas.cellier.aka.nice@gmail.com wrote:
+1, please include in the update.mcm! I also like the Pharo alternative to Fuel out the error context... Lighter than full image save. Oh but we don't have Fuel yet :( Who wants to make it with a segment?
2013/10/31 commits@source.squeak.org
Frank Shearar uploaded a new version of CommandLine to project The
Trunk:
http://source.squeak.org/trunk/CommandLine-fbs.1.mcz
==================== Summary ====================
Name: CommandLine-fbs.1 Author: fbs Time: 31 October 2013, 10:32:52.821 pm UUID: dc871e85-bd16-d742-acbf-4d2b838113d1 Ancestors:
CommandLineToolSet does little more than dump errors to stderr.
DummyUIManager comes from Pharo via Pavel Krivanek's minimising script.
==================== Snapshot ====================
SystemOrganization addCategory: #'CommandLine-Tools'! SystemOrganization addCategory: #'CommandLine-UIManager'!
UIManager subclass: #DummyUIManager instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'CommandLine-UIManager'!
!DummyUIManager commentStamp: 'fbs 10/31/2013 07:36' prior: 0! I'm an alternative UIManager used to run an the image without GUI. I redefine methods which require user input as these requests are
irrelevant
in a headless environment. !
----- Method: DummyUIManager>>checkForNewDisplaySize (in category 'display') ----- checkForNewDisplaySize Display extent = DisplayScreen actualScreenSize ifTrue: [^
self].
DisplayScreen startUp.
!
----- Method: DummyUIManager>>chooseDirectory:from: (in category 'ui requests') ----- chooseDirectory: label from: dir ^ nil!
----- Method: DummyUIManager>>chooseFrom:lines:title: (in category 'ui requests') ----- chooseFrom: aList lines: linesArray title: aString ^ aList first!
----- Method: DummyUIManager>>chooseFrom:values:lines:title: (in
category
'ui requests') ----- chooseFrom: labelList values: valueList lines: linesArray title: aString ^ valueList first!
----- Method: DummyUIManager>>confirm: (in category 'ui requests') ----- confirm: queryString (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer|^answer].
self error: 'No user response possible'!
----- Method: DummyUIManager>>confirm:orCancel: (in category 'ui requests') ----- confirm: aString orCancel: cancelBlock (ProvideAnswerNotification signal: aString) ifNotNil: [:answer | ^answer == #cancel ifTrue: [cancelBlock value] ifFalse:
[answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>displayProgress:at:from:to:during: (in category 'ui requests') ----- displayProgress: titleString at: aPoint from: minVal to: maxVal during: workBlock ^ workBlock value: Association new!
----- Method: DummyUIManager>>edit:label:accept: (in category 'ui requests') ----- edit: aText label: labelString accept: anAction ^ nil!
----- Method: DummyUIManager>>fontFromUser: (in category 'ui requests')
fontFromUser: priorFont self error: 'No user response possible'!
----- Method: DummyUIManager>>inform: (in category 'ui requests') ----- inform: aString "Nothing to be done here"!
----- Method: DummyUIManager>>informUserDuring: (in category 'ui requests') ----- informUserDuring: aBlock aBlock value: nil!
----- Method: DummyUIManager>>newDisplayDepthNoRestore: (in category 'display') ----- newDisplayDepthNoRestore: pixelSize "Change depths. Check if there is enough space!! , di" | area need | pixelSize = Display depth ifTrue: [^ self "no change"]. pixelSize abs < Display depth ifFalse: ["Make sure there is enough space" area := Display boundingBox area. "pixels"
need := (area * (pixelSize abs - Display depth) // 8)
"new bytes needed" + Smalltalk lowSpaceThreshold. (Smalltalk garbageCollectMost <= need and: [Smalltalk garbageCollect <= need]) ifTrue: [self error: 'Insufficient free
space']].
Display setExtent: Display extent depth: pixelSize. DisplayScreen startUp!
----- Method: DummyUIManager>>request:initialAnswer: (in category 'ui requests') ----- request: queryString initialAnswer: defaultAnswer (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer | ^ answer == #default ifTrue: [defaultAnswer] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>requestPassword: (in category 'ui
requests')
requestPassword: queryString ^ self request: queryString initialAnswer: ''!
----- Method: DummyUIManager>>restoreDisplay (in category 'display')
restoreDisplay!
----- Method: DummyUIManager>>restoreDisplayAfter: (in category
'display')
restoreDisplayAfter: aBlock aBlock value. Sensor waitButton.!
StandardToolSet subclass: #CommandLineToolSet instanceVariableNames: '' classVariableNames: 'SaveSnapshotOnError' poolDictionaries: '' category: 'CommandLine-Tools'!
----- Method: CommandLineToolSet class>>debugError: (in category 'debugging') ----- debugError: anError "Print out a sensible stack trace and bail" | problemPlace s | self saveSnapshotOnError ifTrue: [Smalltalk saveAs: 'Debug-' , (Smalltalk
imageName
subStrings: '/') last]. problemPlace := anError signalerContext. s := FileStream stderr. (anError isKindOf: MessageNotUnderstood) ifTrue: [ s nextPutAll: anError messageText; cr; nextPutAll: problemPlace sender methodNode printString; cr]. (problemPlace stackOfSize: 20) do: [:ctx | s cr. ctx printOn:
s].
s flush. SmalltalkImage current snapshot: false andQuit: true!
----- Method: CommandLineToolSet class>>debugSyntaxError: (in category 'debugging') ----- debugSyntaxError: anError | s | s := FileStream stderr. s nextPutAll: '----- Syntax error -----'; cr. s nextPutAll: anError errorCode; cr. s nextPutAll: '----- Syntax error -----'; cr.
self debugError: anError!
----- Method: CommandLineToolSet class>>saveSnapshotOnError (in category 'preferences') ----- saveSnapshotOnError <preference: 'Save snapshot of image on failure' category: 'debug' description: 'If true, saves a snapshot of the failing image to the current directory.' type: #Boolean> ^ SaveSnapshotOnError ifNil: [SaveSnapshotOnError := false].!
----- Method: CommandLineToolSet class>>saveSnapshotOnError: (in
category
'preferences') ----- saveSnapshotOnError: aBoolean SaveSnapshotOnError := aBoolean.!
----- Method: CommandLineToolSet class>>unload (in category 'class initialization') ----- unload ToolSet unregister: self.!
We don't need to create a dependency on Fuel for that. Besides, it's so much simpler to just _launch_ the image with the error, not get into another image and "load" it...
On Thu, Oct 31, 2013 at 6:02 PM, Nicolas Cellier nicolas.cellier.aka.nice@gmail.com wrote:
+1, please include in the update.mcm! I also like the Pharo alternative to Fuel out the error context... Lighter than full image save. Oh but we don't have Fuel yet :( Who wants to make it with a segment?
2013/10/31 commits@source.squeak.org
Frank Shearar uploaded a new version of CommandLine to project The Trunk: http://source.squeak.org/trunk/CommandLine-fbs.1.mcz
==================== Summary ====================
Name: CommandLine-fbs.1 Author: fbs Time: 31 October 2013, 10:32:52.821 pm UUID: dc871e85-bd16-d742-acbf-4d2b838113d1 Ancestors:
CommandLineToolSet does little more than dump errors to stderr.
DummyUIManager comes from Pharo via Pavel Krivanek's minimising script.
==================== Snapshot ====================
SystemOrganization addCategory: #'CommandLine-Tools'! SystemOrganization addCategory: #'CommandLine-UIManager'!
UIManager subclass: #DummyUIManager instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'CommandLine-UIManager'!
!DummyUIManager commentStamp: 'fbs 10/31/2013 07:36' prior: 0! I'm an alternative UIManager used to run an the image without GUI. I redefine methods which require user input as these requests are irrelevant in a headless environment. !
----- Method: DummyUIManager>>checkForNewDisplaySize (in category 'display') ----- checkForNewDisplaySize Display extent = DisplayScreen actualScreenSize ifTrue: [^ self]. DisplayScreen startUp. !
----- Method: DummyUIManager>>chooseDirectory:from: (in category 'ui requests') ----- chooseDirectory: label from: dir ^ nil!
----- Method: DummyUIManager>>chooseFrom:lines:title: (in category 'ui requests') ----- chooseFrom: aList lines: linesArray title: aString ^ aList first!
----- Method: DummyUIManager>>chooseFrom:values:lines:title: (in category 'ui requests') ----- chooseFrom: labelList values: valueList lines: linesArray title: aString ^ valueList first!
----- Method: DummyUIManager>>confirm: (in category 'ui requests') ----- confirm: queryString (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer|^answer].
self error: 'No user response possible'!
----- Method: DummyUIManager>>confirm:orCancel: (in category 'ui requests') ----- confirm: aString orCancel: cancelBlock (ProvideAnswerNotification signal: aString) ifNotNil: [:answer | ^answer == #cancel ifTrue: [cancelBlock value] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>displayProgress:at:from:to:during: (in category 'ui requests') ----- displayProgress: titleString at: aPoint from: minVal to: maxVal during: workBlock ^ workBlock value: Association new!
----- Method: DummyUIManager>>edit:label:accept: (in category 'ui requests') ----- edit: aText label: labelString accept: anAction ^ nil!
----- Method: DummyUIManager>>fontFromUser: (in category 'ui requests')
fontFromUser: priorFont self error: 'No user response possible'!
----- Method: DummyUIManager>>inform: (in category 'ui requests') ----- inform: aString "Nothing to be done here"!
----- Method: DummyUIManager>>informUserDuring: (in category 'ui requests') ----- informUserDuring: aBlock aBlock value: nil!
----- Method: DummyUIManager>>newDisplayDepthNoRestore: (in category 'display') ----- newDisplayDepthNoRestore: pixelSize "Change depths. Check if there is enough space!! , di" | area need | pixelSize = Display depth ifTrue: [^ self "no change"]. pixelSize abs < Display depth ifFalse: ["Make sure there is enough space" area := Display boundingBox area. "pixels"
need := (area * (pixelSize abs - Display depth) // 8)
"new bytes needed" + Smalltalk lowSpaceThreshold. (Smalltalk garbageCollectMost <= need and: [Smalltalk garbageCollect <= need]) ifTrue: [self error: 'Insufficient free space']]. Display setExtent: Display extent depth: pixelSize.
DisplayScreen startUp!
----- Method: DummyUIManager>>request:initialAnswer: (in category 'ui requests') ----- request: queryString initialAnswer: defaultAnswer (ProvideAnswerNotification signal: queryString) ifNotNil: [:answer | ^ answer == #default ifTrue: [defaultAnswer] ifFalse: [answer]].
self error: 'No user response possible'!
----- Method: DummyUIManager>>requestPassword: (in category 'ui requests')
requestPassword: queryString ^ self request: queryString initialAnswer: ''!
----- Method: DummyUIManager>>restoreDisplay (in category 'display') ----- restoreDisplay!
----- Method: DummyUIManager>>restoreDisplayAfter: (in category 'display')
restoreDisplayAfter: aBlock aBlock value. Sensor waitButton.!
StandardToolSet subclass: #CommandLineToolSet instanceVariableNames: '' classVariableNames: 'SaveSnapshotOnError' poolDictionaries: '' category: 'CommandLine-Tools'!
----- Method: CommandLineToolSet class>>debugError: (in category 'debugging') ----- debugError: anError "Print out a sensible stack trace and bail" | problemPlace s | self saveSnapshotOnError ifTrue: [Smalltalk saveAs: 'Debug-' , (Smalltalk imageName subStrings: '/') last]. problemPlace := anError signalerContext. s := FileStream stderr. (anError isKindOf: MessageNotUnderstood) ifTrue: [ s nextPutAll: anError messageText; cr; nextPutAll: problemPlace sender methodNode printString; cr]. (problemPlace stackOfSize: 20) do: [:ctx | s cr. ctx printOn: s]. s flush.
SmalltalkImage current snapshot: false andQuit: true!
----- Method: CommandLineToolSet class>>debugSyntaxError: (in category 'debugging') ----- debugSyntaxError: anError | s | s := FileStream stderr. s nextPutAll: '----- Syntax error -----'; cr. s nextPutAll: anError errorCode; cr. s nextPutAll: '----- Syntax error -----'; cr.
self debugError: anError!
----- Method: CommandLineToolSet class>>saveSnapshotOnError (in category 'preferences') ----- saveSnapshotOnError <preference: 'Save snapshot of image on failure' category: 'debug' description: 'If true, saves a snapshot of the failing image to the current directory.' type: #Boolean> ^ SaveSnapshotOnError ifNil: [SaveSnapshotOnError := false].!
----- Method: CommandLineToolSet class>>saveSnapshotOnError: (in category 'preferences') ----- saveSnapshotOnError: aBoolean SaveSnapshotOnError := aBoolean.!
----- Method: CommandLineToolSet class>>unload (in category 'class initialization') ----- unload ToolSet unregister: self.!
squeak-dev@lists.squeakfoundation.org