Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: be726747a84ac5f028ee229175340b563c2b90cf
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/be726747a84ac5f028…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-09-13 (Mon, 13 Sep 2021)
Changed paths:
M building/linux32ARMv6/pharo.cog.spur/plugins.ext
M building/linux32ARMv6/squeak.cog.spur/plugins.ext
M building/linux32ARMv6/squeak.cog.v3/plugins.ext
M building/linux32x86/pharo.cog.spur/plugins.ext
M building/linux32x86/squeak.cog.spur/plugins.ext
M building/linux32x86/squeak.cog.v3/plugins.ext
M building/linux32x86/squeak.sista.spur/plugins.ext
M building/linux64ARMv8/squeak.cog.spur/plugins.ext
M building/linux64ARMv8/squeak.cogmt.spur/plugins.ext
M building/linux64x64/pharo.cog.spur/plugins.ext
M building/linux64x64/squeak.cog.spur/plugins.ext
Log Message:
-----------
Linux VMs that optionally build the processor plugins should optionally build
all the processor plugins.
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: e0b4c9d8c0b22af64d4863d47d83f422b139c348
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/e0b4c9d8c0b22af64d…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-09-13 (Mon, 13 Sep 2021)
Changed paths:
M building/linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
M building/linux64x64/squeak.cog.spur/build.assert/mvm
M building/linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
M building/linux64x64/squeak.cog.spur/build.debug/mvm
M building/linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
M building/linux64x64/squeak.cog.spur/build/mvm
M building/linux64x64/squeak.stack.spur/build.assert/mvm
M building/linux64x64/squeak.stack.spur/build.debug/mvm
M building/linux64x64/squeak.stack.spur/build/mvm
Log Message:
-----------
No longer force the user to compile linux64x64 (at least for the squeak builds)
with clang. I just built on centos 8 using gcc 8.4 and things are fine.
Given the external function defined by the following Squeak method:
```smalltalk
myFunc: aFloat64Array
<apicall: void 'myFunc' (double*)>
^ self externalCallFailed
```
When passing an instance of `Float64Array` to this method, the FFI plugin throws error code 6 (`Could not coerce arguments`).
The same can be reproduced in similar scenarios for other 64-bit indexable objects like `DoubleWordArray` and `SignedDoubleWordArray` (which ultimately share the same class format anyway).
There were no issues when doing the same using 32-bit indexable objects.
---
As far as I can tell the issue seems to stem from `ThreadedFFIPlugin >> ffiAtomicArgByReference:Class:in:` which ends with the following code:
```smalltalk
(atomicType <= FFITypeDoubleFloat) ifTrue:
[((interpreterProxy isWords: oop) or: [oopClass = interpreterProxy classByteArray]) ifTrue:
[^self ffiPushPointer: (interpreterProxy firstIndexableField: oop) in: calloutState].
(oopClass = interpreterProxy classExternalAddress) ifTrue:
[^self ffiPushPointer: (self longAt: oop + interpreterProxy baseHeaderSize) in: calloutState].
isAlien ifTrue:
[^self ffiPushPointer: (self pointerForOop: (self startOfData: oop)) in: calloutState]].
^FFIErrorCoercionFailed
```
While the second line checks 32-bit indexable via `isWords:` and byte arrays, it seems to be missing a test for `isLong64s:`.
---
Just in case it's relevant for some reason:
```
Squeak
latest update: #20467
Image format 68021 (64 bit)
Preferred bytecode set: SistaV1
```
```
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2940]
Unix built on Jun 9 2021 14:12:17 Compiler: Clang 10.0.0
platform sources revision VM: 202102090434 Date: Mon Feb 8 20:34:38 2021 CommitHash: 9f1b4644e Plugins: 202102090434
CoInterpreter VMMaker.oscog-eem.2940 uuid: 29171f50-756f-4560-8488-ced65f2d4841 Jun 9 2021
StackToRegisterMappingCogit VMMaker.oscog-eem.2940 uuid: 29171f50-756f-4560-8488-ced65f2d4841 Jun 9 2021
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/569
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: ae0c1a6b473aa5ed05433d91a3257804aa1ddd90
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ae0c1a6b473aa5ed05…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-09-11 (Sat, 11 Sep 2021)
Changed paths:
M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
M src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c
M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.3068
ThreadedFFIPlugin:
pass any kind of non-pointer object to non-byte */char * args.
We could insist on void *, but let's see how we get on with this.
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: cd4f46804cde3ee1e04bd302929b9202d9db7b7f
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/cd4f46804cde3ee1e0…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-09-11 (Sat, 11 Sep 2021)
Changed paths:
M building/macos32x86/common/Makefile.app
M building/macos64ARMv8/common/Makefile.app
M building/macos64x64/common/Makefile.app
R src/spur32.cog.lowcode/exampleSqNamedPrims.h
R src/spur32.cog.newspeak/exampleSqNamedPrims.h
R src/spur32.cog/exampleSqNamedPrims.h
R src/spur32.sista/exampleSqNamedPrims.h
R src/spur32.stack.lowcode/exampleSqNamedPrims.h
R src/spur32.stack.newspeak/exampleSqNamedPrims.h
R src/spur32.stack/exampleSqNamedPrims.h
R src/spur64.cog.lowcode/exampleSqNamedPrims.h
R src/spur64.cog.newspeak/exampleSqNamedPrims.h
R src/spur64.cog/exampleSqNamedPrims.h
R src/spur64.sista/exampleSqNamedPrims.h
R src/spur64.stack.lowcode/exampleSqNamedPrims.h
R src/spur64.stack.newspeak/exampleSqNamedPrims.h
R src/spur64.stack/exampleSqNamedPrims.h
R src/v3.cog/exampleSqNamedPrims.h
R src/v3.stack/exampleSqNamedPrims.h
Log Message:
-----------
Allow Mac Info.plist to contain APP{_IDENTIFIER which doesn't differ between
Foo.app, FooAssert.app or FooDebug.app. Get rid of exampleSqNamedPrims.h noise.
Branch: refs/heads/dtl/distinct-scriptnames
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 225a7e404407114a1813fcbedfe42572e63c6620
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/225a7e404407114a18…
Author: David T. Lewis <lewis(a)mail.msen.com>
Date: 2021-09-10 (Fri, 10 Sep 2021)
Changed paths:
M building/linux32ARMv6/squeak.cog.spur/build.assert/mvm
M building/linux32ARMv6/squeak.cog.spur/build.debug/mvm
M building/linux32ARMv6/squeak.cog.spur/build/mvm
M building/linux32ARMv6/squeak.stack.spur/build.assert/mvm
M building/linux32ARMv6/squeak.stack.spur/build.debug/mvm
M building/linux32ARMv6/squeak.stack.spur/build/mvm
M building/linux32x86/squeak.cog.spur/build.assert.itimerheartbeat/mvm
M building/linux32x86/squeak.cog.spur/build.assert/mvm
M building/linux32x86/squeak.cog.spur/build.debug.itimerheartbeat/mvm
M building/linux32x86/squeak.cog.spur/build.debug/mvm
M building/linux32x86/squeak.cog.spur/build.itimerheartbeat/mvm
M building/linux32x86/squeak.cog.spur/build/mvm
M building/linux32x86/squeak.cog.spur/plugins.ext
M building/linux32x86/squeak.cog.v3/plugins.ext
M building/linux32x86/squeak.sista.spur/build.assert.itimerheartbeat/mvm
M building/linux32x86/squeak.sista.spur/build.assert/mvm
M building/linux32x86/squeak.sista.spur/build.debug.itimerheartbeat/mvm
M building/linux32x86/squeak.sista.spur/build.debug/mvm
M building/linux32x86/squeak.sista.spur/build.itimerheartbeat/mvm
M building/linux32x86/squeak.sista.spur/build/mvm
M building/linux32x86/squeak.stack.spur/build.assert/mvm
M building/linux32x86/squeak.stack.spur/build.debug/mvm
M building/linux32x86/squeak.stack.spur/build/mvm
M building/sunos32x86/squeak.cog.spur/build/mvm
M building/sunos32x86/squeak.stack.spur/build/mvm
Log Message:
-----------
Use scriptname=spur32 instead of scriptname=spur for 32bit spur VMs
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 421adcfbe38bcfb43a7d2fdcff39b6a64c0ac0a5
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/421adcfbe38bcfb43a…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-09-09 (Thu, 09 Sep 2021)
Changed paths:
M src/plugins/B2DPlugin/B2DPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/spur32.cog/cogit.h
M src/spur32.cog/cogitARMv5.c
M src/spur32.cog/cogitIA32.c
M src/spur32.cog/cointerp.c
M src/spur32.cog/cointerp.h
M src/spur32.cog/gcc3x-cointerp.c
M src/spur32.sista/cogit.h
M src/spur32.sista/cogitARMv5.c
M src/spur32.sista/cogitIA32.c
M src/spur32.sista/cointerp.c
M src/spur32.sista/cointerp.h
M src/spur32.sista/gcc3x-cointerp.c
M src/spur64.cog/cogit.h
M src/spur64.cog/cogitARMv8.c
M src/spur64.cog/cogitX64SysV.c
M src/spur64.cog/cogitX64WIN64.c
M src/spur64.cog/cointerp.c
M src/spur64.cog/cointerp.h
M src/spur64.cog/gcc3x-cointerp.c
M src/spur64.sista/cogit.h
M src/spur64.sista/cogitARMv8.c
M src/spur64.sista/cogitX64SysV.c
M src/spur64.sista/cogitX64WIN64.c
M src/spur64.sista/cointerp.c
M src/spur64.sista/cointerp.h
M src/spur64.sista/gcc3x-cointerp.c
M src/v3.cog/cogit.h
M src/v3.cog/cogitARMv5.c
M src/v3.cog/cogitIA32.c
M src/v3.cog/cointerp.c
M src/v3.cog/cointerp.h
M src/v3.cog/gcc3x-cointerp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.3066
Cogit:
Split followForwardedLiteralsIn: into followForwardedLiteralsImplementationIn:
to avoid unnecessary ensureWritableCodeZone/ensureExecutableCodeZone in
followForwardedLiteralsInOpenPICList.
Spur:
Update SMM's class comment. Better comment objectAfterMaybeSlimBridge:limit:.
BalloonEngine/B2DPlugin:
use FastCPrimitiveFlag & FastCPrimitiveAlignForFloatsFlag for all primitives
that don't use the copyBitsFn (because copyBitsFn potentially interacts with
surfaces and so has an indeterminate stack depth).
BitBltPlugin:
faster checking for rule 41, avoiding unnecessary setting/testing
prim fail flag, and function call when rule ~= 41.