Branch: refs/heads/dtl/epoll-forksqueak
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 8996e9691f97e9f8b4f0c3460737ba484a7527db
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/8996e9691f97e9f8b4…
Author: David T. Lewis <lewis(a)mail.msen.com>
Date: 2021-02-10 (Wed, 10 Feb 2021)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixX11.c
Log Message:
-----------
Rearrange disconnectXDisplay and forgetXDisplay to give clean shutdown
with epoll event handling. Fixes a spurious console error message on
image exit.
Hi All,
I just added a variable to the Windows VM that tracks device additions
and removals via receiving WM_DEVICECHANGE messages. On Windows this
allows plugins such as the SoundPlugin and CameraPlugin enumerating the
available devices on every API call/primitive invocation rather than only
when devices change. This facility is also needed on Mac and would be
great to have on unix.
It turn out that on Mac it is also straight=forward to achieve. See
https://stackoverflow.com/questions/9918429/how-to-know-when-a-hid-usb-blue…,
especially Vivek Gani's answer (2 upvotes). It also turns out that much of
the necessary support code already exists in the Mac JoystickPlugin.
See platforms/iOS//plugins/JoystickTabletPlugin/HID*.
I wonder if any one has free time to do the work for the Mac to use
IOHIDManagerRegisterDeviceMatchingCallback &
IOHIDManagerRegisterDeviceRemovalCallback to provide a simple counter in
the core Mac VM which is incremented whenever a device changes, just like
the Windows implementation. If not, no biggie I'll get to this eventually.
And if any unix and/or linux experts know how various unices and especially
linux approach this issue please respond here. I've no idea if unix/linux
provide a good API here.
_,,,^..^,,,_
best, Eliot
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 11a07925dd8acf106488a255fa15fe933364d5ff
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/11a07925dd8acf1064…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-02-09 (Tue, 09 Feb 2021)
Changed paths:
M platforms/win32/vm/sqWin32.h
M platforms/win32/vm/sqWin32Window.c
Log Message:
-----------
Add a variable (deviceChangeCount) to the Windows VM to track
WM_DEVICECHANGE messages so that plugins such as the SoundPlugin
can update their device lists as and when required, rather than
on every access. Make sure the variable is correctly exported to
external plugins. [ci skip] (cuz I'm not ready to release the new SoundPlugin).
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 3125f103b1efcde6e6bdc8e3275447ca5f1aad5e
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/3125f103b1efcde6e6…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-02-09 (Tue, 09 Feb 2021)
Changed paths:
M src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
M src/plugins/AioPlugin/AioPlugin.c
M src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
M src/plugins/B2DPlugin/B2DPlugin.c
M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
M src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
M src/plugins/BochsX64Plugin/BochsX64Plugin.c
M src/plugins/CameraPlugin/CameraPlugin.c
M src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
M src/plugins/CroquetPlugin/CroquetPlugin.c
M src/plugins/DESPlugin/DESPlugin.c
M src/plugins/DSAPrims/DSAPrims.c
M src/plugins/DropPlugin/DropPlugin.c
M src/plugins/FFTPlugin/FFTPlugin.c
M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c
M src/plugins/FileCopyPlugin/FileCopyPlugin.c
M src/plugins/FilePlugin/FilePlugin.c
M src/plugins/Float64ArrayPlugin/Float64ArrayPlugin.c
M src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
M src/plugins/FloatMathPlugin/FloatMathPlugin.c
M src/plugins/GdbARMPlugin/GdbARMPlugin.c
M src/plugins/GdbARMv8Plugin/GdbARMv8Plugin.c
M src/plugins/GeniePlugin/GeniePlugin.c
M src/plugins/HostWindowPlugin/HostWindowPlugin.c
M src/plugins/IA32ABI/IA32ABI.c
M src/plugins/ImmX11Plugin/ImmX11Plugin.c
M src/plugins/InternetConfigPlugin/InternetConfigPlugin.c
M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
M src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
M src/plugins/JoystickTabletPlugin/JoystickTabletPlugin.c
M src/plugins/Klatt/Klatt.c
M src/plugins/LargeIntegers/LargeIntegers.c
M src/plugins/LocalePlugin/LocalePlugin.c
M src/plugins/MD5Plugin/MD5Plugin.c
M src/plugins/MIDIPlugin/MIDIPlugin.c
M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
M src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
M src/plugins/QuicktimePlugin/QuicktimePlugin.c
M src/plugins/RePlugin/RePlugin.c
M src/plugins/SHA2Plugin/SHA2Plugin.c
M src/plugins/ScratchPlugin/ScratchPlugin.c
M src/plugins/SecurityPlugin/SecurityPlugin.c
M src/plugins/SerialPlugin/SerialPlugin.c
M src/plugins/SocketPlugin/SocketPlugin.c
M src/plugins/SoundCodecPrims/SoundCodecPrims.c
M src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
M src/plugins/SoundPlugin/SoundPlugin.c
M src/plugins/Squeak3D/Squeak3D.c
M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
M src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c
M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
M src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
M src/plugins/SqueakSSL/SqueakSSL.c
M src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
M src/plugins/UUIDPlugin/UUIDPlugin.c
M src/plugins/UnicodePlugin/UnicodePlugin.c
M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
M src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
M src/plugins/WeDoPlugin/WeDoPlugin.c
M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
M src/plugins/ZipPlugin/ZipPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2944
Continuing on from VMMaker.oscog-eem.2943 we have no business overriding the
default EXPORT definition for external plugins (which is essential on Windows).
We define EXPORT to map to static for internal plugins only.
Commit: 2076dcd279e4458d3681f9e43846b594e7dcc3e9
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/2076dcd279e4458d36…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-02-09 (Tue, 09 Feb 2021)
Changed paths:
M platforms/Cross/vm/sq.h
M platforms/Cross/vm/sqAssert.h
M platforms/win32/vm/sqWin32Heartbeat.c
Log Message:
-----------
Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/aafcb78371c7...20…
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2944.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2944
Author: eem
Time: 9 February 2021, 9:01:28.421478 am
UUID: 242b00d2-2d09-4363-8f25-cedcd6ee2187
Ancestors: VMMaker.oscog-eem.2943
Continuing on from VMMaker.oscog-eem.2943 we have no business overriding the default EXPORT definitoon for external plugins. We define EXPORT to map to static for internal plugins only.
=============== Diff against VMMaker.oscog-eem.2943 ===============
Item was changed:
----- Method: VMPluginCodeGenerator>>emitCHeaderOn: (in category 'C code generator') -----
emitCHeaderOn: aStream
"Write a C file header onto the given stream, adding include files and some basic definitions."
| standardHeaders |
+ aStream nextPutAll: (self fileHeaderVersionStampForSourceClass: pluginClass); cr.
- aStream nextPutAll: (self fileHeaderVersionStampForSourceClass: pluginClass); cr; cr.
"config.h should always go first because config.h properly defines flags.
One of those is _GNU_SOURCE, as explained in https://www.gnu.org/software/autoconf/manual/autoconf.html#Posix-Variants,
where the Autoconf macro AC_USE_SYSTEM_EXTENSIONS makes sure this is defined."
standardHeaders := #('"config.h"' '<math.h>' '"sqMathShim.h"' '<stdio.h>' '<stdlib.h>' '<string.h>' '<time.h>').
self emitHeaderFiles: standardHeaders on: aStream.
headerFiles := headerFiles copyWithoutAll: standardHeaders.
"Additional header files; include C library ones first."
self emitHeaderFiles: (headerFiles select: [:hdr| hdr includes: $<]) on: aStream.
aStream cr; nextPutAll: '/* Do not include the entire sq.h file but just those parts needed. */
#include "sqConfig.h" /* Configuration options */
#include "sqVirtualMachine.h" /* The virtual machine proxy definition */
#include "sqPlatformSpecific.h" /* Platform specific definitions */'; cr; cr.
self addHeaderFile: '"sqMemoryAccess.h"'.
"Additional header files; include squeak VM ones last"
self emitHeaderFiles: (headerFiles reject: [:hdr| hdr includes: $<]) on: aStream.
+ aStream cr; nextPutAll: '#define true 1
- aStream cr; nextPutAll: '/* Default EXPORT macro that does nothing (see comment in sq.h): */
- #define EXPORT(returnType) returnType
-
- #define true 1
#define false 0
#define null 0 /* using ''null'' because nil is predefined in Think C */
#ifdef SQUEAK_BUILTIN_PLUGIN
# undef EXPORT
# define EXPORT(returnType) static returnType
# define INT_EXT "(i)"
#else
# define INT_EXT "(e)"
#endif'; cr.
self maybePutPreambleFor: pluginClass on: aStream.
aStream cr!
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: dbe76be273c374a63a25e1079486a6ef2aabcfba
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/dbe76be273c374a63a…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-02-08 (Mon, 08 Feb 2021)
Changed paths:
M src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
M src/plugins/AioPlugin/AioPlugin.c
M src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
M src/plugins/B2DPlugin/B2DPlugin.c
M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
M src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
M src/plugins/BochsX64Plugin/BochsX64Plugin.c
M src/plugins/CameraPlugin/CameraPlugin.c
M src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
M src/plugins/CroquetPlugin/CroquetPlugin.c
M src/plugins/DESPlugin/DESPlugin.c
M src/plugins/DSAPrims/DSAPrims.c
M src/plugins/DropPlugin/DropPlugin.c
M src/plugins/FFTPlugin/FFTPlugin.c
M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c
M src/plugins/FileCopyPlugin/FileCopyPlugin.c
M src/plugins/FilePlugin/FilePlugin.c
M src/plugins/Float64ArrayPlugin/Float64ArrayPlugin.c
M src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
M src/plugins/FloatMathPlugin/FloatMathPlugin.c
M src/plugins/GdbARMPlugin/GdbARMPlugin.c
M src/plugins/GdbARMv8Plugin/GdbARMv8Plugin.c
M src/plugins/GeniePlugin/GeniePlugin.c
M src/plugins/HostWindowPlugin/HostWindowPlugin.c
M src/plugins/IA32ABI/IA32ABI.c
M src/plugins/ImmX11Plugin/ImmX11Plugin.c
M src/plugins/InternetConfigPlugin/InternetConfigPlugin.c
M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
M src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
M src/plugins/JoystickTabletPlugin/JoystickTabletPlugin.c
M src/plugins/Klatt/Klatt.c
M src/plugins/LargeIntegers/LargeIntegers.c
M src/plugins/LocalePlugin/LocalePlugin.c
M src/plugins/MD5Plugin/MD5Plugin.c
M src/plugins/MIDIPlugin/MIDIPlugin.c
M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
M src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
M src/plugins/QuicktimePlugin/QuicktimePlugin.c
M src/plugins/RePlugin/RePlugin.c
M src/plugins/SHA2Plugin/SHA2Plugin.c
M src/plugins/ScratchPlugin/ScratchPlugin.c
M src/plugins/SecurityPlugin/SecurityPlugin.c
M src/plugins/SerialPlugin/SerialPlugin.c
M src/plugins/SocketPlugin/SocketPlugin.c
M src/plugins/SoundCodecPrims/SoundCodecPrims.c
M src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
M src/plugins/SoundPlugin/SoundPlugin.c
M src/plugins/Squeak3D/Squeak3D.c
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
M src/plugins/SqueakSSL/SqueakSSL.c
M src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
M src/plugins/UUIDPlugin/UUIDPlugin.c
M src/plugins/UnicodePlugin/UnicodePlugin.c
M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
M src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
M src/plugins/WeDoPlugin/WeDoPlugin.c
M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
M src/plugins/ZipPlugin/ZipPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2943
Resolve the conflict between sqAssert.h's attempt to export warning and error to
external plugins with the crude redefinition of the EXPORT macro on generating
plugins. So so by moving the redefinition of EXPORT after a plugin's include
files. The issue here is Windows' requirement to use declspec(dll_import) &
declspec(dll_import) for sharing between exe and dll.
Commit: 9f1b4644e7396e473bd9bb4cf67f8a9d5a4e11d6
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/9f1b4644e7396e473b…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-02-08 (Mon, 08 Feb 2021)
Changed paths:
M platforms/unix/vm/aio.c
Log Message:
-----------
Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/f376ffbc0b6d...9f…