On Mon, Jan 03, 2011 at 06:55:45PM -0800, Stef T wrote: > Hello Everyone, > So, long time squeaker, first time pharo(er ?). Please don't hold this > against me ;) > > I am trying to get CommandShell loaded into Pharo (using the Seaside > Image) via Monticello. I have tried this on Pharo 1.1/1.1.1/1.2 for the > record (same thing). I skip past the MVC/Morphic errors about PluggableList > etc, and I can get the command shell to pop-up, however, two things happen; >
The CommandShell package on SqueakSource is also now broken down into sub-packages, so you can load the individual parts if you want. But just proceding through the MVC warnings as you did is harmless. > 1) CommandShell complains about AioPlugin not being present and that it > will use the 'old slow' way. That's fine, it's merely a warning AFAIK, noone has tried building the AioPlugin for Mac, so you will get this warning when running on a Mac. But as you say, it's just a warning. > but > 2) None of the commands get executed. If I try the stuff which will eval > inside squeak/pharo, then that's fine (Eg; stdout nextPutAll: 'hello world'; > cr.). However, if I try a command such as 'ls' or 'who', all hell breaks > lose. stack trace follows :) > > If I am doing anything obviously wrong, please feel free to hit me over > the head :) Nope, it's not you, it's the plugin included with your VM. Some of the Mac VMs in circulation were accidentally built with a very out of date version of the OSProcessPlugin. Apparently you have one of them, and it will definitely not work. But I think there is a newer version (4.2.5 IIRC) that has the up to date plugin that works properly on Mac. Dave > > Regards > S. > > > > > 3 January 2011 6:49:43 pm > > VM: Mac OS - intel - 1065 - Squeak3.8.1 of '28 Aug 2006' [latest update: > #6747] Squeak VM 4.2.4b1 > Image: Pharo-1.1-11406-rc3 [Latest update: #11406] > > SecurityManager state: > Restricted: false > FileAccess: true > SocketAccess: true > Working Dir /Users/stef/squeak/SeaSide-3.0 > Trusted Dir /foobar/tooBar/forSqueak/bogus > Untrusted Dir /Users/stef/Library/Preferences/Squeak/Internet/My Squeak > > UndefinedObject(Object)>>mustBeBooleanIn: > Receiver: nil > Arguments and temporary variables: > context: > BufferedAsyncFileReadStream>>moveAvailableDataFrom: > proceedValue: nil > Receiver's instance variables: > nil > > UndefinedObject(Object)>>mustBeBoolean > Receiver: nil > Arguments and temporary variables: > > Receiver's instance variables: > nil > > BufferedAsyncFileReadStream>>moveAvailableDataFrom: > Receiver: BufferedAsyncFileReadStream: 'pipeReader' > Arguments and temporary variables: > sqFile: #[48 205 236 155 72 91 120 160 0 0 0 0 0 0 0 0 > 0 0 0 0 1 0 0 0] > bufferSize: 1000 > buffer: > ' ...etc... > count: #(0) > Receiver's instance variables: > > > BufferedAsyncFileReadStream>>moveAvailableDataToBuffer > Receiver: BufferedAsyncFileReadStream: 'pipeReader' > Arguments and temporary variables: > > Receiver's instance variables: > > > BufferedAsyncFileReadStream>>update: > Receiver: BufferedAsyncFileReadStream: 'pipeReader' > Arguments and temporary variables: > aParameter: a PseudoAioEventHandler > Receiver's instance variables: > > > [] in PseudoAioEventHandler(Object)>>changed: > Receiver: a PseudoAioEventHandler > Arguments and temporary variables: > aParameter: BufferedAsyncFileReadStream: 'pipeReader' > aDependent: a PseudoAioEventHandler > Receiver's instance variables: > dependents: a DependentsArray(BufferedAsyncFileReadStream: > 'pipeReader') > eventGenerator: a Process in Debugger > class>>openOn:context:label:contents:full...etc... > > DependentsArray>>do: > Receiver: a DependentsArray(BufferedAsyncFileReadStream: 'pipeReader') > Arguments and temporary variables: > aBlock: [:aDependent | aDependent update: aParameter] > dep: BufferedAsyncFileReadStream: 'pipeReader' > i: 1 > iLimiT: 1 > Receiver's instance variables: > a DependentsArray(BufferedAsyncFileReadStream: 'pipeReader') > > PseudoAioEventHandler(Object)>>changed: > Receiver: a PseudoAioEventHandler > Arguments and temporary variables: > aParameter: a PseudoAioEventHandler > Receiver's instance variables: > dependents: a DependentsArray(BufferedAsyncFileReadStream: > 'pipeReader') > eventGenerator: a Process in Debugger > class>>openOn:context:label:contents:full...etc... > > PseudoAioEventHandler(Object)>>changed > Receiver: a PseudoAioEventHandler > Arguments and temporary variables: > > Receiver's instance variables: > dependents: a DependentsArray(BufferedAsyncFileReadStream: > 'pipeReader') > eventGenerator: a Process in Debugger > class>>openOn:context:label:contents:full...etc... > > [] in [] in PseudoAioEventHandler>>eventGeneratorProcess > Receiver: a PseudoAioEventHandler > Arguments and temporary variables: > d: a Delay(125 msecs) > Receiver's instance variables: > dependents: a DependentsArray(BufferedAsyncFileReadStream: > 'pipeReader') > eventGenerator: a Process in Debugger > class>>openOn:context:label:contents:full...etc... > > BlockClosure>>repeat > Receiver: [self changed. > d wait] > Arguments and temporary variables: > > Receiver's instance variables: > outerContext: [] in > PseudoAioEventHandler>>eventGeneratorProcess > startpc: 59 > numArgs: 0 > > [] in PseudoAioEventHandler>>eventGeneratorProcess > Receiver: a PseudoAioEventHandler > Arguments and temporary variables: > d: a Delay(125 msecs) > Receiver's instance variables: > dependents: a DependentsArray(BufferedAsyncFileReadStream: > 'pipeReader') > eventGenerator: a Process in Debugger > class>>openOn:context:label:contents:full...etc... > > [] in BlockClosure>>newProcess > Receiver: [[self changed. > d wait] repeat] > Arguments and temporary variables: > > Receiver's instance variables: > outerContext: PseudoAioEventHandler>>eventGeneratorProcess > startpc: 54 > numArgs: 0 > > > --- The full stack --- > UndefinedObject(Object)>>mustBeBooleanIn: > UndefinedObject(Object)>>mustBeBoolean > BufferedAsyncFileReadStream>>moveAvailableDataFrom: > BufferedAsyncFileReadStream>>moveAvailableDataToBuffer > BufferedAsyncFileReadStream>>update: > [] in PseudoAioEventHandler(Object)>>changed: > DependentsArray>>do: > PseudoAioEventHandler(Object)>>changed: > PseudoAioEventHandler(Object)>>changed > [] in [] in PseudoAioEventHandler>>eventGeneratorProcess > BlockClosure>>repeat > [] in PseudoAioEventHandler>>eventGeneratorProcess > [] in BlockClosure>>newProcess >
