pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

squeak5-vm: Update to 202606270913



Module Name:	pkgsrc-wip
Committed By:	Atsushi Toyokura <asteria.at%gmail.com@localhost>
Pushed By:	steleto
Date:		Thu Aug 13 15:05:33 2026 +0900
Changeset:	e35e4e5965eda757a00cd566b73b9cd7517c30dc

Modified Files:
	squeak5-vm/Makefile
	squeak5-vm/PLIST
	squeak5-vm/distinfo
	squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_build_mvm
	squeak5-vm/patches/patch-src_spur64.cog_cogitX64SysV.c
Added Files:
	squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_plugins.int
	squeak5-vm/patches/patch-platforms_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h
Removed Files:
	squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerHeartbeat.c
	squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c

Log Message:
squeak5-vm: Update to 202606270913

202606270913 (2026-07-27):

Release Version 2026.06

This is a minor release with no major changes. Also see the update
notes of OSVM Version 2026.04.

Update notes are based on the commit messages since Cog-eem.509 and
VMMaker.oscog-eem.3755. Also see update map update.oscog-mt.20, which
corresponds to this tag (which is based on Cog-ct.510 and
VMMaker.oscog-eem.3766).

- Add CameraPlugin for Linux platform (besides Windows and macOS)
- Fix issue with UTF-8 console output on Windows platforms (see #771)
- Fix issue with error reaper in FFI plugin
- Fix serious issue with creation of unscanned ephemerons

VMMaker Dev Notes

- Fix simulation of Integer >> asUnsignedInteger
- Fix ancient type inference bug in Slang
- Fix some issues in the multi-threaded VM (not yet released)

Known issues

- On Linux, the idle CPU usage could be improved; see #764
- On Linux, the extended clipboard needs more care; see #756
- TLS support in SqueakSSL could be improved; see #768

Compatibility notes

- Pre-built Linux binaries require GLIBC_2.35, which means Ubuntu
  22.04 or later
  - For older systems, please try linux64x64_ubuntu-20.04 or build the
    VM on your own
  - We will happily help out; just ask on the vm-dev mailing list
- On macOS and Windows, a restart of the VM is required after
  installing SqueakFFI for the first time
  - Otherwise, modules and function addresses cannot be loaded
- On macOS, the Smalltalk interpreter runs on a non-GUI thread, which
  might affect some GUI-related FFI callouts in third-party projects. We
  plan to provide an option so that FFI can be used again in these
  cases. For GUI-related VM primitives, we made sure to choose the
  correct thread.
- On Windows, you might have to install C runtime support libraries,
  i.e. Microsoft Visual C++ Redistributable Version 14, if you get the
  startup message that VCRUNTIME140.DLL or MSVCP140.DLL cannot be
  found. Note that the earliest supported Windows is still Windows XP.

Info on VM flavors

- cog.spur (32/64-bit, has JIT, ARM or Intel, Squeak 5.0 and later)
- stack.spur (32/64-bit, no JIT, ARM or Intel, Squeak 5.0 and later)
- LEGACY
  - cog.v3 (32-bit, has JIT, ARM or Intel, Squeak 4.6 and before)
  - stack.v3 (32-bit, no JIT, ARM or Intel, Squeak 4.6 and before)
- COMPATIBILITY
  - cog.spur for Ubuntu 22.04 (requires GLIBC_2.35 or later; Ubuntu
    Pro LTS support lasts until 2032)
  - cog.spur for Ubuntu 20.04 (requires GLIBC_2.31 or later; Ubuntu
    Pro LTS support lasts until 2030)

If you want to compile the sources that are attached here, put the
sqSCCSVersion.h from here into platforms/Cross/vm.

202604252110 (2026-04-27):

Release Version 2026.04

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

Update notes are based on the commit messages since Cog-eem.508 and
VMMaker.oscog-eem.3739. Also see update map update.oscog-mt.19, which
corresponds to this tag (which is based on Cog-ct.509 and
VMMaker.oscog-eem.3755).

- Fixes critical issue with #become: in 32-bit builds so that it does
  not swap identity hashes to avoid having to #rehash involved
  structures (see #766)
- Fixes issue in FFI exception catching (i.e., second-time exceptions
  would crash the VM)

Known issues

- On Linux, the idle CPU usage could be improved; see #764
- On Linux, the extended clipboard needs more care; see #756
- TLS support in SqueakSSL could be improved; see #768

Compatibility notes

- Pre-built Linux binaries require GLIBC_2.35, which means Ubuntu
  22.04 or later
  - For older systems, please try linux64x64_ubuntu-20.04 or build the
    VM 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
- On macOS, the Smalltalk interpreter now runs on a non-GUI thread,
  which might affect some GUI-related FFI callouts in third-party
  projects. We plan to provide an option so that FFI can be used again
  in these cases. For GUI-related VM primitives, we made sure to choose
  the correct thread.
- On Windows, the CameraPlugin is now part of the release because we
  now build with the Windows 10 SDK, not mingw-w64. Both ways are still
  supported for custom builds.
- On Windows, you might have to install C runtime support libraries,
  i.e. Microsoft Visual C++ Redistributable Version 14, if you get the
  startup message that VCRUNTIME140.DLL or MSVCP140.DLL cannot be
  found. Note that the earliest supported Windows is still Windows XP.
- (VMMaker) RawBitsArray >> byteAt: is now expected in the base Squeak
  image (i.e. Squeak 6.1alpha and later) because it was removed from
  VMMaker-Simulation package

Info on VM flavors

- cog.spur (32/64-bit, has JIT, ARM or Intel, Squeak 5.0 and later)
- stack.spur (32/64-bit, no JIT, ARM or Intel, Squeak 5.0 and later)
- LEGACY
  - cog.v3 (32-bit, has JIT, ARM or Intel, Squeak 4.6 and before)
  - stack.v3 (32-bit, no JIT, ARM or Intel, Squeak 4.6 and before)
- COMPATIBILITY
  - cog.spur for Ubuntu 22.04 (requires GLIBC_2.35 or later; Ubuntu
    Pro LTS support lasts until 2032)
  - cog.spur for Ubuntu 20.04 (requires GLIBC_2.31 or later; Ubuntu
    Pro LTS support lasts until 2030)

If you want to compile the sources that are attached here, put the
sqSCCSVersion.h from here into platforms/Cross/vm.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=e35e4e5965eda757a00cd566b73b9cd7517c30dc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 squeak5-vm/Makefile                                  |  8 ++++----
 squeak5-vm/PLIST                                     |  4 ++++
 squeak5-vm/distinfo                                  | 14 +++++++-------
 ...tch-building_linux64x64_squeak.cog.spur_build_mvm | 17 ++++++++---------
 ...h-building_linux64x64_squeak.cog.spur_plugins.int | 14 ++++++++++++++
 ...s_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h | 20 ++++++++++++++++++++
 .../patch-platforms_unix_vm_sqUnixITimerHeartbeat.c  | 13 -------------
 ...h-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c | 13 -------------
 .../patches/patch-src_spur64.cog_cogitX64SysV.c      | 20 ++++++++++----------
 9 files changed, 67 insertions(+), 56 deletions(-)

diffs:
diff --git a/squeak5-vm/Makefile b/squeak5-vm/Makefile
index 5eb2593045..b277233673 100644
--- a/squeak5-vm/Makefile
+++ b/squeak5-vm/Makefile
@@ -2,11 +2,11 @@
 
 DISTNAME=	opensmalltak-vm
 PKGNAME=	squeak5-vm-${GITHUB_TAG}
-PKGVERSION=	5.0-${GITHUB_TAG}
+PKGVERSION=	7.0-${GITHUB_TAG}
 CATEGORIES=	lang
 MASTER_SITES=	${MASTER_SITE_GITHUB:=OpenSmalltalk/}
 GITHUB_PROJECT=	opensmalltalk-vm
-GITHUB_TAG=	202312181441
+GITHUB_TAG=	202606270913
 
 MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=	http://opensmalltalk.org/
@@ -34,9 +34,9 @@ SUBST_MESSAGE.sccs=	Set version infomation to the VM.
 SUBST_FILES.sccs=	platforms/Cross/vm/sqSCCSVersion.h
 SUBST_FILES.sccs+=	platforms/Cross/plugins/sqPluginsSCCSVersion.h
 SUBST_SED.sccs=		-e "s,\$$Rev,\$$Rev: ${GITHUB_TAG} ,g"
-SUBST_SED.sccs+=	-e "s,\$$Date,\$$Date: Mon 18 Dec 2023 15:41:18 +0100 ,g"
+SUBST_SED.sccs+=	-e "s,\$$Date,\$$Date: Sat 27 Jun 2026 11:13:44 +0200 ,g"
 SUBST_SED.sccs+=	-e "s,\$$URL,\$$URL: `${ID} -un`@`${HOSTNAME_CMD}`:${WRKSRC} ,g"
-SUBST_SED.sccs+=	-e "s,\$$CommitHash,\$$CommitHash: cc2dd9090 ,g"
+SUBST_SED.sccs+=	-e "s,\$$CommitHash,\$$CommitHash: be1b7ad34 ,g"
 
 INSTALLATION_DIRS+=	bin
 
diff --git a/squeak5-vm/PLIST b/squeak5-vm/PLIST
index e07a13bf25..14292821df 100644
--- a/squeak5-vm/PLIST
+++ b/squeak5-vm/PLIST
@@ -4,9 +4,12 @@ bin/squeak
 lib/squeak/${PKGVERSION}-64bit/B3DAcceleratorPlugin.so
 lib/squeak/${PKGVERSION}-64bit/DESPlugin.so
 lib/squeak/${PKGVERSION}-64bit/FileAttributesPlugin.so
+lib/squeak/${PKGVERSION}-64bit/HelloExternalWorldPlugin.so
+lib/squeak/${PKGVERSION}-64bit/HelloWorldPlugin.so
 lib/squeak/${PKGVERSION}-64bit/ImmX11Plugin.so
 lib/squeak/${PKGVERSION}-64bit/LocalePlugin.so
 lib/squeak/${PKGVERSION}-64bit/MD5Plugin.so
+lib/squeak/${PKGVERSION}-64bit/PseudoTTYPlugin.so
 lib/squeak/${PKGVERSION}-64bit/SHA2Plugin.so
 lib/squeak/${PKGVERSION}-64bit/Squeak3D.so
 lib/squeak/${PKGVERSION}-64bit/SqueakFFIPrims.so
@@ -20,4 +23,5 @@ lib/squeak/${PKGVERSION}-64bit/squeak
 lib/squeak/${PKGVERSION}-64bit/vm-display-X11.so
 lib/squeak/${PKGVERSION}-64bit/vm-display-null.so
 lib/squeak/${PKGVERSION}-64bit/vm-sound-OSS.so
+lib/squeak/${PKGVERSION}-64bit/vm-sound-Sun.so
 lib/squeak/${PKGVERSION}-64bit/vm-sound-null.so
diff --git a/squeak5-vm/distinfo b/squeak5-vm/distinfo
index 085558cd04..f1cdb063ef 100644
--- a/squeak5-vm/distinfo
+++ b/squeak5-vm/distinfo
@@ -1,9 +1,11 @@
 $NetBSD$
 
-BLAKE2s (opensmalltak-vm-202312181441.tar.gz) = 35efe327e9d0e8673573744a0d1ef3d6f415ccf8816bb5dbfc1278d537f60f1a
-SHA512 (opensmalltak-vm-202312181441.tar.gz) = d253d01e33fceaaf5713e96e747e877458272e78469b776c2e57c28e1429a2797954535857694d06ec96d4e054743d67bc57bc73d19d107c7fb5753df422e0c8
-Size (opensmalltak-vm-202312181441.tar.gz) = 55030856 bytes
-SHA1 (patch-building_linux64x64_squeak.cog.spur_build_mvm) = ca310dc2cf25bacadadaccdaddb00fe3e01db7a5
+BLAKE2s (opensmalltak-vm-202606270913.tar.gz) = 43525eba6d8eabafcb3e3b65a45b65a031157c01b62f01803ee800163035b9d3
+SHA512 (opensmalltak-vm-202606270913.tar.gz) = ae51237d7a3d9844c5ab9ff087189d07b45a222b170057a00c025b23059374519f908d435f2d3f1b230b0bf8fffbd4da60889f6db96567991fc08ceb1036b84a
+Size (opensmalltak-vm-202606270913.tar.gz) = 46493970 bytes
+SHA1 (patch-building_linux64x64_squeak.cog.spur_build_mvm) = 33cb8d3c13d37b7b757a457b764aba9cbdb63dc2
+SHA1 (patch-building_linux64x64_squeak.cog.spur_plugins.int) = 5cad209cd518b7d04396b334399d406b400543bb
+SHA1 (patch-platforms_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h) = dbf963dc6bf5f6e05f9afeb8ca907c24b94b1e5b
 SHA1 (patch-platforms_Cross_plugins_SqueakFFIPrims_sqFFIPlugin.c) = 7c2b933ca02d032f76e076f6b9f98510a06af12e
 SHA1 (patch-platforms_unix_config_bin.squeak.sh.in) = eca83ca07948b5abce150bd4be4b5a7a8e1630eb
 SHA1 (patch-platforms_unix_config_configure.ac) = 465b211778a8d70bc2d030f0e8987f0e48edc1c2
@@ -15,7 +17,5 @@ SHA1 (patch-platforms_unix_plugins_SqueakSSL_openssl__overlay.h) = f66f067c8876a
 SHA1 (patch-platforms_unix_plugins_UUIDPlugin_sqUnixUUID.c) = ceeffabb8d8ad18e98e4850ca4a7680983a5a88b
 SHA1 (patch-platforms_unix_vm-display-X11_acinclude.m4) = 6fe2caffdcafa00185102d79dbb1dd50c3c814ee
 SHA1 (patch-platforms_unix_vm_include__ucontext.h) = ef722fe06ac5e565e9303a7467cbee1b23f9d0bd
-SHA1 (patch-platforms_unix_vm_sqUnixITimerHeartbeat.c) = 96b6f1094b07c9456f9b6cc56b2bc7237e6c24f0
-SHA1 (patch-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c) = 2714da2e76226d5194a07ad1ea5ead3edc39d7fd
 SHA1 (patch-platforms_unix_vm_sqUnixMain.c) = 4990908bca9221ed18a4c4f93ee653a4828e4098
-SHA1 (patch-src_spur64.cog_cogitX64SysV.c) = f0a60621d6bfc3aa101da95d1fa354829f3e5d56
+SHA1 (patch-src_spur64.cog_cogitX64SysV.c) = 78a53935edc84d13c40eeb1dc9edcd9df69b5807
diff --git a/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_build_mvm b/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_build_mvm
index c6adfcdd2b..0b30e58c01 100644
--- a/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_build_mvm
+++ b/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_build_mvm
@@ -1,16 +1,15 @@
 $NetBSD$
 
---- building/linux64x64/squeak.cog.spur/build/mvm.orig	2023-12-18 14:41:18.000000000 +0000
+--- building/linux64x64/squeak.cog.spur/build/mvm.orig	2026-06-27 09:13:44.000000000 +0000
 +++ building/linux64x64/squeak.cog.spur/build/mvm
-@@ -16,6 +16,11 @@ case $(uname -s) in
-            ;;
+@@ -36,6 +36,10 @@ esac
+ n|no|N|NO)	echo "ok but this isn't safe!!";;
+ *)			test -f Makefile && make reallyclean
  esac
- 
 +CFLAGS="${CFLAGS} -Wno-error=implicit-function-declaration"
 +CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types"
 +CFLAGS="${CFLAGS} -Wno-error=int-conversion"
-+#CFLAGS="${CFLAGS} -Wno-error=return-mismatch"
-+
- # Prefer clang over gcc, but use gcc if clang isn't available...
- CC=gcc
- if [ -x /usr/bin/clang ]; then CC=clang; fi
++CFLAGS="${CFLAGS} -Wno-error=return-mismatch"
+ ../../../../scripts/copylinuxpluginspecfiles
+ test -f config.h || ../../../../platforms/unix/config/configure --without-npsqueak \
+ 		--with-vmversion=5.0 \
diff --git a/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_plugins.int b/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_plugins.int
new file mode 100644
index 0000000000..c24fbb1ce1
--- /dev/null
+++ b/squeak5-vm/patches/patch-building_linux64x64_squeak.cog.spur_plugins.int
@@ -0,0 +1,14 @@
+$NetBSD$
+
+removed CameraPlugin
+
+--- building/linux64x64/squeak.cog.spur/plugins.int.orig	2026-08-12 09:56:31.545138295 +0000
++++ building/linux64x64/squeak.cog.spur/plugins.int
+@@ -6,7 +6,6 @@ BMPReadWriterPlugin \
+ B2DPlugin \
+ BitBltPlugin \
+ BMPReadWriterPlugin \
+-CameraPlugin \
+ CroquetPlugin \
+ HostWindowPlugin \
+ ZipPlugin \
diff --git a/squeak5-vm/patches/patch-platforms_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h b/squeak5-vm/patches/patch-platforms_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h
new file mode 100644
index 0000000000..1a04fea435
--- /dev/null
+++ b/squeak5-vm/patches/patch-platforms_Cross_plugins_PseudoTTYPlugin_PseudoTTYPlugin.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+Fix prototype
+
+--- platforms/Cross/plugins/PseudoTTYPlugin/PseudoTTYPlugin.h.orig	2026-08-12 10:17:10.525768186 +0000
++++ platforms/Cross/plugins/PseudoTTYPlugin/PseudoTTYPlugin.h
+@@ -1,8 +1,8 @@
+ #include "../AsynchFilePlugin/AsynchFilePlugin.h"
+ 
+-int ptyInit();
+-int ptyShutdown();
+-int ptyForkAndExec();
+-int ptyClose();
+-int ptyWindowSize();
++int ptyInit(void);
++int ptyShutdown(void);
++int ptyForkAndExec(AsyncFile *, int, char *, int, sqInt *, int);
++int ptyClose(AsyncFile *);
++int ptyWindowSize(AsyncFile *, int, int);
+ 
diff --git a/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerHeartbeat.c b/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerHeartbeat.c
deleted file mode 100644
index baf68fb5c1..0000000000
--- a/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerHeartbeat.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- platforms/unix/vm/sqUnixITimerHeartbeat.c.orig	2018-10-19 04:12:21.000000000 +0000
-+++ platforms/unix/vm/sqUnixITimerHeartbeat.c
-@@ -305,7 +305,7 @@ static int handling_heartbeat = 0;
- #endif
- 
- static void
--heartbeat_handler(int sig, struct siginfo *sig_info, void *context)
-+heartbeat_handler(int sig, struct siginfo_t *sig_info, void *context)
- {
- #if !defined(SA_NODEFER)
- 	/* if the CAS fails, the heartbeat is already being handled. */
diff --git a/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c b/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c
deleted file mode 100644
index cd7d24b32b..0000000000
--- a/squeak5-vm/patches/patch-platforms_unix_vm_sqUnixITimerTickerHeartbeat.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- platforms/unix/vm/sqUnixITimerTickerHeartbeat.c.orig	2018-11-05 16:37:13.052717036 +0000
-+++ platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
-@@ -329,7 +329,7 @@ prodHighPriorityThread()
- }
- 
- static void
--high_performance_tick_handler(int sig, struct siginfo *sig_info, void *context)
-+high_performance_tick_handler(int sig, struct siginfo_t *sig_info, void *context)
- {
- static int tickCheckInProgress;
- 
diff --git a/squeak5-vm/patches/patch-src_spur64.cog_cogitX64SysV.c b/squeak5-vm/patches/patch-src_spur64.cog_cogitX64SysV.c
index 5669fe0be8..b6d97abf89 100644
--- a/squeak5-vm/patches/patch-src_spur64.cog_cogitX64SysV.c
+++ b/squeak5-vm/patches/patch-src_spur64.cog_cogitX64SysV.c
@@ -1,15 +1,15 @@
 $NetBSD$
 
---- src/spur64.cog/cogitX64SysV.c.orig	2022-06-02 14:10:44.000000000 +0000
+--- src/spur64.cog/cogitX64SysV.c.orig	2026-06-27 09:13:44.000000000 +0000
 +++ src/spur64.cog/cogitX64SysV.c
-@@ -22979,9 +22979,7 @@ dispatchConcretize(AbstractInstruction *
- 			((self_in_dispatchConcretize->operands))[2] = 0;
- 			return savedSize1;
- 		}
--		if ((reg20 == RAX)
--		 || ((reg20 == RBP)
--		 || (reg20 == RSP))) {
-+		if (reg20 == RAX) {
- 			offset38 = 0;
+@@ -24484,9 +24484,7 @@ l2:
+ 		   an interrupt is delivered immediately after that point.  See mail threads beginning with
+ 		   http://lists.squeakfoundation.org/pipermail/vm-dev/2019-September/031428.html
+ 		   http://lists.squeakfoundation.org/pipermail/vm-dev/2019-October/031499.html */
+-		if ((reg == RAX)
+-		 || ((reg == RBP)
+-		 || (reg == RSP))) {
++		if (reg == RAX) {
+ 			offset1 = 0;
  		}
  		else {


Home | Main Index | Thread Index | Old Index