Hi Esteban,
On Wed, Apr 12, 2017 at 06:08:56PM +0200, Esteban Lorenzano wrote:
> forget to say that iceberg will not work 100% yet :)
> but here, problem is because you need to install the threaded version, which
> of course I forget to point :P
>
> curl get.pharo.org/64/60+vmTLatest | bash
>
> this is the correct one for linux users.
Thanks, I'm successfully past the Metacello load.
Next problem:
PrimitiveFailed: primitive #integerAt:put:size:signed: in ExternalAddress
failed
while executing:
proc := OSSUnixSubprocess new
command: 'git';
arguments: #('config' '--global' 'user.name' 'AlistairGrant');
runAndWaitOnExitDo: [ :cmd :out :err | self assert: cmd
isSuccess ].
I'm going to have to learn about FFI some time...
Full stack below.
I should have also added I'm on Ubuntu 16.04, and this obviously all
works fine in the 32bit VM / image.
Cheers,
Alistair
ExternalAddress(Object)>>primitiveFailed:
ExternalAddress(Object)>>primitiveFailed
ExternalAddress(ByteArray)>>integerAt:put:size:signed:
ExternalAddress(ByteArray)>>unsignedLongAt:put:
ExternalAddress(ByteArray)>>nbUInt32AtOffset:put:
[ :string :index |
| pointer |
"0 terminated"
pointer := ExternalAddress allocate: string size + 1.
self registerPointer: pointer.
LibC memCopy: string to: pointer size: string size.
pointer nbUInt8AtOffset: string size put: 0. "string terminating null char"
aPointer
nbUInt32AtOffset: (index - 1) * self systemAccessor sizeOfPointer
put: pointer value ] in OSSUnixSubprocess>>collectArgumentPointersInto:
in Block: [ :string :index | ...
OrderedCollection(SequenceableCollection)>>withIndexDo:
OSSUnixSubprocess>>collectArgumentPointersInto:
OSSUnixSubprocess>>buildPrimitiveArgVArgument
OSSUnixSubprocess>>internalRun
[ self internalRun ] in OSSUnixSubprocess>>run in Block: [ self internalRun ]
BlockClosure>>ensure:
OSSUnixSubprocess>>run
OSSUnixSubprocess>>runAndWaitOnExitDo:
UndefinedObject>>DoIt
OpalCompiler>>evaluate
DoItChunk>>importFor:
[ :declaration |
requestor ifNotNil: [ requestor contents: declaration contents ].
value := declaration importFor: requestor ] in
CodeImporter>>evaluateDeclarations in Block: [ :declaration | ...
OrderedCollection>>do:
CodeImporter>>evaluateDeclarations
CodeImporter class>>evaluateFileStream:
MultiByteFileStream(FileStream)>>fileIn
FileStream class>>fileIn:
SimpleServiceEntry>>performServiceFor:
PluggableButtonMorph>>performAction:
[ :m |
(m containsPoint: evt cursorPoint)
ifTrue: [ m enabled
ifTrue: [ m performAction: evt ] ] ] in
PluggableButtonMorph>>mouseUp: in Block: [ :m | ...
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo: