Hi Alistair,
On Wed, Feb 21, 2018 at 9:31 AM, Alistair Grant <[hidden email]> wrote: Yep, OSSubprocess doesn't work on 64 bit VMs at the moment. Well, the changes to FilePlugin.class belong in VMMaker.oscog. And cfileRecordSize doesn't make sense , since all pointers are of the same size in C: cfileRecordSize + "Return the size of a stdio FILE* handle" + <option: #PharoVM> + <static: false> + ^self sizeof: #'FILE*' I would simple use (self sizeof: #'void *') or (self sizeof: #'FILE *'). Other than that I can't see any problems. Thanks, _,,,^..^,,,_ best, Eliot |
Hi Eliot, On 21 February 2018 at 18:56, Eliot Miranda <[hidden email]> wrote: > > Hi Alistair, > > On Wed, Feb 21, 2018 at 9:31 AM, Alistair Grant <[hidden email]> wrote: >> >> Yep, OSSubprocess doesn't work on 64 bit VMs at the moment. >> >> Eliot, Mariano has indicated he's waiting on >> https://github.com/pharo-project/pharo-vm/pull/142 >> Do you know of a reason why it shouldn't be merged? > > > Well, the changes to FilePlugin.class belong in VMMaker.oscog. Good point. I'm embarrassed to say I didn't look at the code, just the comments. > And cfileRecordSize doesn't make sense , since all pointers are of the same size in C: > > cfileRecordSize > + "Return the size of a stdio FILE* handle" > + <option: #PharoVM> > + <static: false> > + ^self sizeof: #'FILE*' > > I would simple use (self sizeof: #'void *') or (self sizeof: #'FILE *'). Yep - although this could use <inline: #always>. > Other than that I can't see any problems. I've sent Mariano a message asking him to clarify what he needs from this PR. I'll follow up again after he replies (I'm keen to see OSSubprocess on the 64 bit VM). Thanks! Alistair >> >> Thanks, >> Alistair >> >> >> >> On 21 February 2018 at 18:22, phideaux <[hidden email]> wrote: >> > When trying the simple example (ls -la /Users) in Pharo 6.1 64bit you get a >> > talkback because >> > ExternalAddress integerAt:put:size:signed: fails using >> > 'primitiveFFIIntegerAtPut' in module 'SqueakFFIPrims' >> > >> > Something to do with OSSubprocess not accommodating 64 bit pointers perhaps? >> > >> > Same code works fine on 32bit version. >> > >> > VM is CoInterpreter VMMaker.oscog-eem.2254 Jul 20 2017 for macOS downloaded >> > from pharo.org/downloaded page >> > >> > Regards, >> > Jay+ >> > >> > >> > >> > -- >> > Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html >> > >> > > > > -- > _,,,^..^,,,_ > best, Eliot > |
Hmm, wait, I think these are two different issues :) I managed to successfully use OSSubprocess in 64bits with some tweaks. The problem is that OSSubprocess does some manual type coertions like assumming 32 bits: collectArgumentPointersInto: aPointer [...] aPointer nbUInt32AtOffset: (self argVArguments size - 1) * self systemAccessor sizeOfPointer put: 0 That should probably be replaced by: aPointer platformUnsignedLongAt: (self argVArguments size - 1) * self systemAccessor sizeOfPointer put: 0. Now, those methods depend on UFFI, having UFFI is a must for OSSubprocess. On Thu, Feb 22, 2018 at 7:07 PM, Alistair Grant <[hidden email]> wrote:
|
I'll try making a PR now to fix that. On Mon, Feb 26, 2018 at 10:19 AM, Guillermo Polito <[hidden email]> wrote:
|
Could you check this version? On Mon, Feb 26, 2018 at 10:19 AM, Guillermo Polito <[hidden email]> wrote:
|
Hi guys, Thanks Guille for the spin and the rest for asking. I just answered everything into the related github issues. On Mon, Feb 26, 2018 at 6:32 AM, Guillermo Polito <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |