the plugin does not runs out of the box on current vm's, I'm afraid :( Tomorrow I will try to fix the remaining problems for running this plugin... wish me luck :) Cheers, Esteban El 04/01/2011, a las 6:25p.m., Stef T escribió:
On Jan 4, 2011, at 8:36 AM, Stéphane Ducasse wrote:
On Mon, Jan 03, 2011 at 06:55:45PM -0800, Stef T wrote:
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.
Is there a pointer for the source code ? I am pretty handy with Xcode and don't mind giving it a whirl ;)
good there is a gitorious account for the vm and we would enjoy that people can contribute via there.
Hello Stéphane, Everyone,
Under OSX (10.6.5) and pulling the vm source from squeak (either the trunk or the blessed branch) I get this when building (without making any changes to the installed plugins -- yet ;)
Stef-T-MacBook-Pro:build stef$ ../unix/cmake/configure --without-RomePlugin --without-vm-display-Quartz .... [ 70%] Building C object CMakeFiles/squeakvm.dir/version.c.o [ 71%] Building C object CMakeFiles/squeakvm.dir/disabledPlugins.c.o Linking C executable squeakvm Undefined symbols: "_sendInvokeCallbackStackRegistersJmpbuf", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_classUnsafeAlien", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_primitiveFailFor", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_internalIsImmutable", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_getStackPointer", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_reestablishContextPriorToCallback", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_classAlien", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o "_internalIsMutable", referenced from: _sqGetInterpreterProxy in sqVirtualMachine.c.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [squeakvm] Error 1 make[1]: *** [CMakeFiles/squeakvm.dir/all] Error 2 make: *** [all] Error 2
that's .. not looking too healthy. Is OSX 'knowingly busted' ?
Regards S.
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.
Hrm, I am using the OSProcess from squeaksource .59. The version history says
Name: OSProcess-dtl.59 Author: dtl Time: 28 November 2010, 8:43:48.839 pm UUID: bd5d2b4e-efbd-4091-ac0a-d0bd7af64b2c
surely this is 'new enough' ? Is there a known 'stable' version you would suggest ?
regards S.
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