pharo
pharo copied to clipboard
UndefinedObject reportWin32GFXDetails:
Open System Reporter and click-on one of these three: OSDetails HardwareDetails GFXHardwareDetails
UndefinedObject(Object)>>error:
UndefinedObject(Object)>>errorNotIndexable
UndefinedObject(Object)>>size
TextStream>>nextPutAll:
StSystemReporter>>reportWin32GFXDetails:
[:each |
self perform: each value with: stream.
stream cr] in [:stream |
items do: [:each |
self perform: each value with: stream.
stream cr]] in StSystemReporter(StReporter)>>createTextForReport: in Block: [:each |...
OrderedCollection>>do:
[:stream |
items do: [:each |
self perform: each value with: stream.
stream cr]] in StSystemReporter(StReporter)>>createTextForReport: in Block: [:stream | ...
Text class>>streamContents:
StSystemReporter(StReporter)>>createTextForReport:
[ :selection |
selection selectedItems
ifNotNil: [ :items |
reportText text: (self createTextForReport: items)]] in StSystemReporter(StReporter)>>connectPresenters in Block: [ :selection | ...
FullBlockClosure(BlockClosure)>>cull:
[ aBlock cull: self ] in SpMultipleSelectionMode>>whenChangedDo: in Block: [ aBlock cull: self ]
FullBlockClosure(BlockClosure)>>cull:
FullBlockClosure(BlockClosure)>>cull:cull:
[ :block | block cull: self value cull: oldValue ] in ObservableValueHolder>>valueChanged: in Block: [ :block | block cull: self value cull: oldValue ]
OrderedCollection>>do:
ObservableValueHolder>>valueChanged:
[ | oldValue |
oldValue := value.
value := anObject.
self valueChanged: oldValue ] in ObservableValueHolder>>value: in Block: [ | oldValue |...
FullBlockClosure(BlockClosure)>>ensure:
ObservableValueHolder>>value:
SpMultipleSelectionMode>>selectIndexes:
SpMorphicListAdapter>>selectionChanged:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[action cull: anAnnouncement cull: announcer] in AnnouncementSubscription>>deliver: in Block: [action cull: anAnnouncement cull: announcer]
FullBlockClosure(BlockClosure)>>on:do:
[ Processor terminateRealActive ] in [ :ex |
| onDoCtx handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home.
"find the context on stack for which this method's is sender"
[ onDoCtx sender == thisCtx ] whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx ifNil: [ "Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateRealActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority) resume.
"cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in FullBlockClosure(BlockClosure)>>on:fork: in Block: [ Processor terminateRealActive ]
C:\Users\XXXX\Documents\Pharo\images\Pharo 11.0 - 64bit (stable)\Pharo 11.0 - 64bit (stable).image Pharo11.0.0 Build information: Pharo-11.0.0+build.689.sha.8986777f96ab65cba515d005d13487e0375fa85c (64 Bit) Unnamed
Windows 10 Home 22H2
These are all just for windows:
self isWindows
ifTrue: [
{ (#'OS Details' -> #reportWin32OSDetails:).
(#'VM Configuration' -> #reportWin32VMConfig:).
(#'Hardware Details' -> #reportWin32HardwareDetails:).
(#'GFX Hardware Details' -> #reportWin32GFXDetails:).
} do: [ :each | self addTopicSpec: each ].
].
Maybe the best is to comment it for Pharo11 and add an issue for Pharo12 to decide if we fix or remove.
@tesonep These are asking the (Windows) VM for some system attributes like
(Smalltalk vm getSystemAttribute: 10003)
that always returns nil. Therefore the system reporter fails. In Pharo 9,10,11, 12 and 13 it is not working.
In Pharo 8 this was last working:
Hi @astares and @igouy do you think it is still relevant to show this information? They are other tools that perform this task better (MsInfo32.exe https://support.microsoft.com/en-us/topic/description-of-microsoft-system-information-msinfo32-exe-tool-10d335d8-5834-90b4-8452-42c58e61f9fc) and we don't have it in the other systems.
Describes the MSINFO tool and lists the switches that are supported by the MSINFO32 command-line tool in Windows 7, in Windows 8.1 and Windows 10.
@tesonep I think these items in the system reporter are a leftover from Squeak and Croquet times (where specific 3D stuff was done for Windows OpenGL, DirectX and other).
Would possibly only be helpful for specific cases (like Woden or other) to trace system setup on Windows.
From my side I think we can remove the "GFX Hardware Details" parts from system reporter if it would be too much effort to repair/restore it. The number of issues that traces down to specific Windows graphics card issues or other is low and as you said there are other tools for that. And I do not know if we can similar infos from OS on Linux or OSX.
The "OS Environment" setup is useful nonetheless - but we have support inside the image for it via FFI already and can do this for other platforms equally. For instance on Windows we can get the environment variables via:
LibC resultOfCommand: 'SET'
(unfortunately with the shortly flashing DOS box as Pharo on Windows is still is not able to execute cmds with own stdout/stdin).
Nonetheless I wonder why these primitives are not working from VM side anymore - was the code removed or is this stuff broken in VM and requires some cleanup and love there?