Hi all,
The commit below causes an all white screen on 32 bit Squeak. Well at least Arm 32.
Thanks.
bruce
CogVM source as per Name: VMMaker.oscog-eem.3144
Spur CoInterpreter: harmonize named and numbered primitive Spur primitive property flags. Use a common pragma, primitiveMetadata:, to mark named primitives and numbered primitives. Mark several methods with the PrimCallOnSmalltalkStack (a.k.a. FastCPrimitiveFlag) flag, especially BoxedFloat, SmallFloat, and 64-bit LargeInteger primitives in InterpreterPrimitives. Make sure that vmParameterAt: uses that flag, even though the other versions of primitive 254 do not.
Nuke support for the old pre-Alien callbacks. Only very old versions of two plugins use this, and it's easy to upgrade to use Alien callbacks. (missing from the Monticello commit message)
Spur Cogit: Instead of setting newMethod & primitiveFunctionPointer for all primitives, only set newMethod & primitiveFunctionPointer on failure (unless a primitive uses the PrimCallNeedsNewMethod flag). Use a CallRT to invoke internal primitives if it spans far enough.
Hi Bruce,
thanks for the prompt feedback. I think I've fixed it. Alas I can't run 32-bit binaries on my mac because the Cocoa GUi no longer compiles under supported MacOS versions. I should have checked with the simulator. Please check commit a29dc4bea18c728d40f8b16dfe879642d0410d91
CogVM sources as per VMMaker.oscog-eem.3146
InterpreterPrimitives: fix the 64-bit large integer support on 32-bit platforms.
On Sun, Feb 6, 2022 at 7:02 AM Bruce O'Neel bruce.oneel@pckswarms.ch wrote:
Hi all,
The commit below causes an all white screen on 32 bit Squeak. Well at least Arm 32.
Thanks.
bruce
CogVM source as per Name: VMMaker.oscog-eem.3144
Spur CoInterpreter: harmonize named and numbered primitive Spur primitive property flags. Use a common pragma, primitiveMetadata:, to mark named primitives and numbered primitives. Mark several methods with the PrimCallOnSmalltalkStack (a.k.a. FastCPrimitiveFlag) flag, especially BoxedFloat, SmallFloat, and 64-bit LargeInteger primitives in InterpreterPrimitives. Make sure that vmParameterAt: uses that flag, even though the other versions of primitive 254 do not.
Nuke support for the old pre-Alien callbacks. Only very old versions of two plugins use this, and it's easy to upgrade to use Alien callbacks. (missing from the Monticello commit message)
Spur Cogit: Instead of setting newMethod & primitiveFunctionPointer for all primitives, only set newMethod & primitiveFunctionPointer on failure (unless a primitive uses the PrimCallNeedsNewMethod flag). Use a CallRT to invoke internal primitives if it spans far enough.
Hi,
Wow, thanks very much! This seems perfect!
cheers
bruce
On 2022-02-06T20:00:07.000+01:00, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Bruce, thanks for the prompt feedback. I think I've fixed it. Alas I can't run 32-bit binaries on my mac because the Cocoa GUi no longer compiles under supported MacOS versions. I should have checked with the simulator. Please check commit a29dc4bea18c728d40f8b16dfe879642d0410d91 CogVM sources as per VMMaker.oscog-eem.3146 InterpreterPrimitives: fix the 64-bit large integer support on 32-bit platforms. On Sun, Feb 6, 2022 at 7:02 AM Bruce O'Neel bruce.oneel@pckswarms.ch wrote:
Hi all, The commit below causes an all white screen on 32 bit Squeak. Well at least Arm 32. Thanks. bruce CogVM source as per Name: VMMaker.oscog-eem.3144 Spur CoInterpreter: harmonize named and numbered primitive Spur primitive property flags. Use a common pragma, primitiveMetadata:, to mark named primitives and numbered primitives. Mark several methods with the PrimCallOnSmalltalkStack (a.k.a. FastCPrimitiveFlag) flag, especially BoxedFloat, SmallFloat, and 64-bit LargeInteger primitives in InterpreterPrimitives. Make sure that vmParameterAt: uses that flag, even though the other versions of primitive 254 do not. Nuke support for the old pre-Alien callbacks. Only very old versions of two plugins use this, and it's easy to upgrade to use Alien callbacks. (missing from the Monticello commit message) Spur Cogit: Instead of setting newMethod & primitiveFunctionPointer for all primitives, only set newMethod & primitiveFunctionPointer on failure (unless a primitive uses the PrimCallNeedsNewMethod flag). Use a CallRT to invoke internal primitives if it spans far enough.
-- _,,,^..^,,,_ best, Eliot
vm-dev@lists.squeakfoundation.org