Skip to content

Releases: OpenSmalltalk/opensmalltalk-vm

202312181441

20 Dec 14:15
Compare
Choose a tag to compare

Release Version 2023.12 (for updated Squeak 6.0/5.3 bundles and Cuis 6)

  • Fixes file drop from OS into the image on macOS
  • Fixes pass-through of command-line arguments on macOS
  • Fixes warning about applicationSupportsSecureRestorableState on macOS 12.0+

This is a patch release. Also see the release notes of OSVM Version 2023.

🚧 Compatibility notes

  • Pre-built Linux binaries require GLIBC_2.29, which means Ubuntu 20.04 or later
    • For older systems, please build on your own
    • We will happily help out; just ask on the vm-dev mailing list
  • On macOS, a restart of the VM is required after installing SqueakFFI for the first time
    • Otherwise, modules and function addresses cannot be loaded

⚠️ Known issues

  • On Ubuntu 22.04 within VirtualBox 7.0, screen contents stop refreshing after some keyboard input until mouse cursor is moved again
  • On Ubuntu/Linux, many SqueakSSL tests fail on Squeak 6.0+ ... might be an image-related issue w/ old certificates
  • Occasional crashes (or lock-ups) on RaspPi4 and RaspPi5; we are investigating
    • The platform subtype can be 'aarch64', which means that (at least in Squeak) the detection of #isLowerPerformance fails and thus lots of tests are timing out. See TestCase >> #defaultTimeout

202311211431

21 Nov 14:46
Compare
Choose a tag to compare
202311211431 Pre-release
Pre-release

📢 Please use the more recent release candidate OSVM Version 2023.12

Release Candidate Version 2023

  • Adds error codes for ImageSegment storage primitive fail
  • Adds error codes for primitiveFileClose on Linux, macOS, and Windows
  • Adds machine-code primitive for #primitiveHighResClock on 64-bit platforms
  • Adds machine-code primitive for #perform:withArguments: (84)
  • Adds VM parameter 50 for maxLiteralCountForCompile
  • Adds primitive 96 (primitiveObjectsAccessibleFromRoots) to be used on an array of objects; internally part of primitive 98 (primitiveStoreImageSegment)
  • Adds support for multi-byte data to ClipboardExtendedPlugin
  • Adds support for various data types to ClipboardExtendedPlugin on Windows
  • Adds support for UTF8 Unicode to ClipboardExtendedPlugin on Windows
  • Adds flag #upscaleDisplayIfHighDPI to be set via command line or stored in image header; true by default
  • Adds support for -eventtrace on Linux and Windows
  • Fixes memory leak related to scale-factor lookup on Linux (X11)
  • Fixes potential GDI leak in getDpiSystem on Windows
  • Fixes failure of Spur image segment loading due to not having enough memory
  • Fixes path lookup for "." (i.e., current directory) on Windows
  • Fixes JIT issue around frameless block activation
  • Fixes JIT issue around cache flushing on ARMv8
  • Fixes bug in primitive 105 (primitiveSpurStringReplace)
  • Fixes bug in SpurSegmentManager
  • Fixes bug in BitBlt rgbMul combination
  • Fixes structure argument passing for ARMv8 FFI call-outs
  • Fixes float conversions for FFI call-outs
  • Fixes float arguments for FFI call-outs on RiscV64
  • Fixes #become: on compiled methods for Spur flavors
  • Fixes jitted #perform: primitive by adding argument-count check
  • Fixes MoveCqR on ARMv8 for certain bit patterns (in the JIT)
  • Fixes crash on ARMv8 when toggling fail/succeed primitives for mixed mode arithmetic
  • Fixes accessor-depth calculation in SocketPlugin and other places
  • Fixes type-declaration problem in DeflatePlugin for 64-bit RiscV
  • Fixes other issues around SmartSyntaxInterpreterPlugins (e.g., JPEGReadWriter2Plugin, BitBltSimulation, SocketPlugin)
  • Updates support for compilation on RiscV64 (including FFI plugin)
  • Updates VectorEnginePlugin to 2022-10-28 (89cc00e86...) from Cuis
  • Updates BitBltPlugin to be faster for noSource/noHalftone setup
  • Updates joystick support on Linux

🚧 Compatibility notes

  • Pre-built Linux binaries require GLIBC_2.29, which means Ubuntu 20.04 or later
    • For older systems, please build on your own
    • We will happily help out; just ask on the vm-dev mailing list
  • On macOS, a restart of the VM is required after installing SqueakFFI for the first time
    • Otherwise, modules and function addresses cannot be loaded

⚠️ Known issues

  • On Ubuntu 22.04 within VirtualBox 7.0, screen contents stop refreshing after some keyboard input until mouse cursor is moved again
  • On Ubuntu/Linux, many SqueakSSL tests fail on Squeak 6.0+ ... might be an image-related issue
  • On macOS, command-line arguments are not passed to the image (see #668)
  • On macOS, file-drop crashes the VM
  • Crashes on RaspPi4; we are investigating
    • The platform subtype can be 'aarch64', which means that (at least in Squeak) the detection of #isLowerPerformance fails and thus lots of tests are timing out. See TestCase >> #defaultTimeout

202206021410

02 Jun 15:10
c9fd365
Compare
Choose a tag to compare

Release Version 2022.06 (for Squeak 6.0 and updated 5.3 bundles)

  • Adds joystick/gamepad support on Linux
  • Fixes support for OpenSSL3 on Linux
  • Fixes resolution of fully-qualified domain names (FQDNs) longer than 64 characters on Linux

This is a patch release. Also see the release notes of OSVM Version 2022.

⚠️ Known Issues

  • Memory leak on X11 (Linux) related to scale-factor lookup
    • 100-200 KiB every 3-6 seconds
    • See issue #642
    • Workaround via environment variable SQUEAK_DISPLAY_PER_MONITOR_SCALE=1
    • Does not affect -headless -vm-display-X11 -headless -nodisplay -vm-display-null (i.e., smalltalkCI is fine)

202205110711

11 May 07:34
Compare
Choose a tag to compare

📢 Please use the more recent patch release OSVM Version 2022.06

Release Version 2022

  • Adds ARMv8/Aarch64/ARM64 JIT incl. support for Apple M1
  • Adds "fast C primitives" via #FastCPrimitiveFlag
  • Adds support for catching exceptions in FFI callouts
  • Adds #primitiveScreenScaleFactor (for DPI-aware images)
  • Adds primitives 568 and 578 complementing 88 (primitiveSuspend)
  • Adds #primitiveMultipleBytecodeSetsActive to update image format for SistaV1
  • Adds VectorEnginePlugin
  • Fixes regressions in ARMv6 support
  • Fixes performance regressions of -metal and -opengl backends on macOS
  • Fixes -core-graphics backend on macOS
  • Fixes Retina scaling on macOS, i.e., support "backing scale factor"
  • Fixes primitive 126 to fail on graphics backends w/o composition buffer
  • Fixes regressions in vm-display-fbdev on Linux
  • Fixes time sync (e.g., for DST) on Windows
  • Fixes UDP binding on Windows

⚠️ Known Issues

  • No support for OpenSSL3 (e.g., on Ubuntu 22.04)

202204190959

19 Apr 11:41
Compare
Choose a tag to compare
202204190959 Pre-release
Pre-release
Release Candidate 3

202112201228

20 Dec 12:45
Compare
Choose a tag to compare
202112201228 Pre-release
Pre-release
Release Candidate 2

202112022203

08 Dec 17:44
Compare
Choose a tag to compare
202112022203 Pre-release
Pre-release
CogVm source as per VMMaker.oscog-eem.3117

Cog ARMv8: Since id_aa64isar0_el1 is a priviledged instruction use getauxval on
linux to derive the value(s) derived there-from, currenty whether atomic
instructions are available or not. This addresses opensmalltalk-vm Issue #608.

latest-debug-build

30 Jul 17:59
02d52d1
Compare
Choose a tag to compare
latest-debug-build Pre-release
Pre-release

CogVM source as per VMConstruction-Plugins-OSProcessPlugin.oscog-eem.77

Finally understand (Thanks John Mac) the difference between sa_sigaction
and sa_handler in a struct sigaction, and apply this to setting handlers.

latest-build

30 Jul 18:06
02d52d1
Compare
Choose a tag to compare
latest-build Pre-release
Pre-release

CogVM source as per VMConstruction-Plugins-OSProcessPlugin.oscog-eem.77

Finally understand (Thanks John Mac) the difference between sa_sigaction
and sa_handler in a struct sigaction, and apply this to setting handlers.

latest-assert-build

30 Jul 18:04
02d52d1
Compare
Choose a tag to compare
latest-assert-build Pre-release
Pre-release

CogVM source as per VMConstruction-Plugins-OSProcessPlugin.oscog-eem.77

Finally understand (Thanks John Mac) the difference between sa_sigaction
and sa_handler in a struct sigaction, and apply this to setting handlers.