[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 7e0018: Abstract all the setjmp/longjmp defines to a commo...

Eliot Miranda noreply at github.com
Thu Apr 16 02:54:11 UTC 2020

  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 7e0018d2bda239f11f6b30748de6ac78ca0111d9
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2020-04-15 (Wed, 15 Apr 2020)

  Changed paths:
    M platforms/Cross/plugins/BochsIA32Plugin/sqBochsIA32Plugin.cpp
    M platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp
    M platforms/Cross/plugins/GdbARMv8Plugin/sqGdbARMv8Plugin.c
    M platforms/Cross/plugins/IA32ABI/ia32abi.h
    R platforms/Cross/plugins/JPEGReadWriter2Plugin/Error.c
    M platforms/Cross/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.h
    M platforms/Cross/plugins/JPEGReadWriter2Plugin/jmorecfg.h
    M platforms/Cross/plugins/JPEGReadWriter2Plugin/sqJPEGReadWriter2Plugin.c
    A platforms/Cross/vm/sqSetjmpShim.h

  Log Message:
  Abstract all the setjmp/longjmp defines to a common place to avoid duplication
and divergence.  Specifically use the new sqSetjmpShim.h in the Alien plugin
(for callback return), the JPEGReadWriter2Plugin, and the processor simulator
plugins.  We still need to alter interpreter generation to use sqSetjmpShim.h.

N.B. this work is forced by issues with setjmp/longjmp crashing the 64-bit VM
on Windows, compiled with MSVC or clang-cl.exe.  Even with this "harmonisation",
while the Debug and Production VMs work when compiled by clang-cl.exe (work
meaning Alien callbacks work and the JPEGReadWriter2Test tests pass),
*THE ASSERT VM DOES NOT*.  Why this is so will take further investigation. But
for the moment being able to use the debug VM for assert checking and having a
functional production VM is more valuable than having nothing because the Assert
VM isn't working properly.

JPEGReadWriter2Plugin: Nuke Error.c and move error_exit to
sqJPEGReadWriter2Plugin.c.  Eliminate the malloc/free pair for the jmp_buf,
simply providing it as a local variable.  Streamline some of the code to avoid
unnecessary work and duplication.

Laura, I miss you, and love your code.  Hope you're doing well.

More information about the Vm-dev mailing list