Branch: refs/heads/krono/highdpi-v2
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: d7ac40223f2cb7e60f4a96e32bdb06fd5b3a4592
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d7ac40223f2cb7e60f…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-22 (Tue, 22 Mar 2022)
Changed paths:
M .gitignore
M building/macos64ARMv8/common/Makefile.flags
Log Message:
-----------
Command-line tools for Xcode have different SDK path
Commit: beedf7902c7da1dadb6366fdb4a6208103d3ca5b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/beedf7902c7da1dadb…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-23 (Wed, 23 Mar 2022)
Changed paths:
M building/macos64ARMv8/common/Makefile.flags
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
M platforms/iOS/vm/OSX/Newspeak-Info.plist
M platforms/iOS/vm/OSX/Pharo-Info.plist
M platforms/iOS/vm/OSX/Squeak-Info.plist
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.m
Log Message:
-----------
Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for Metal backend.
Commit: 220f91c6de598f069d1070f6408f721526298d3f
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/220f91c6de598f069d…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-23 (Wed, 23 Mar 2022)
Changed paths:
M platforms/iOS/plugins/HostWindowPlugin/sqMacHostWindow.m
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
M platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
Log Message:
-----------
For macOS platform, fixes high-resolution scaling when (1) reading prior display extent from image and (2) setting new extent via HostWindowPlugin.
Commit: 2dde6de7a161ace4c8c4ef78bea0f8208c4bfc0d
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/2dde6de7a161ace4c8…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-24 (Thu, 24 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
Log Message:
-----------
Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for both OpenGL and CoreGraphics backends. Note that the CoreGraphics backend is still kind of broken and should not be used on macOS 10.15.x or 11.x.x.
Commit: fe9c1034af2d27029444e486f520bafe7e6edf30
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/fe9c1034af2d270294…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-24 (Thu, 24 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
Log Message:
-----------
Fixes initial screen refresh for macOS OpenGL backend when using high-resolution mode. Only applies to macOS 10.x.x because OpenGL support was dropped starting with macOS 11.x.x.
Commit: c119f5bf8d26ef0a41936512baaf36689931731d
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/c119f5bf8d26ef0a41…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-25 (Fri, 25 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
M platforms/iOS/vm/OSX/sqSqueakOSXView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.m
Log Message:
-----------
For macOS platform, fixes drag-and-drop for high-resolution mode. Note that this change also makes the dragged file names/urls accessible directly after drag-enter, not just when letting go of the mouse button. Thus, the image can now show the dragged file names early on. The macOS dragging cursor is still visible though.
Commit: 68343d42632824620b262941f99506dfbf2c7b88
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/68343d42632824620b…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-25 (Fri, 25 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
Log Message:
-----------
For macOS platform, fixes mouse tracking (entered, exited, moved), which got lost since macOS 10.5 where NSTrackingArea was introduced.
Commit: 0fff8c345f3da3d972cd49018ec1b82f6e2c7433
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/0fff8c345f3da3d972…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-28 (Mon, 28 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.h
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.h
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
M platforms/iOS/vm/OSX/sqSqueakOSXView.h
Log Message:
-----------
For macOS platform, clean up code around mouse tracking. The flag NSTrackingInVisibleRect ensures that macOS will take care of resizing the tracking area when the window is resized.
Commit: 1f5aee54d2d086d8ceaadebc6af23b8926cf0e7d
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1f5aee54d2d086d8ce…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-29 (Tue, 29 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/Newspeak-Info.plist
M platforms/iOS/vm/OSX/Pharo-Info.plist
M platforms/iOS/vm/OSX/Squeak-Info.plist
Log Message:
-----------
For macOS platform, explicitly allow "Open in low resolution" in case the default gets changed.
Commit: 9a03134ac3d2b7b05a79e51d8c170d543269e24b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/9a03134ac3d2b7b05a…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-29 (Tue, 29 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/Newspeak-Info.plist
M platforms/iOS/vm/OSX/Pharo-Info.plist
M platforms/iOS/vm/OSX/Squeak-Info.plist
Log Message:
-----------
Fix typo in previous commit. :-/
Commit: d2ebcbc25a0deb8d0a58bbb998c48faf95c6d1fe
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d2ebcbc25a0deb8d0a…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-31 (Thu, 31 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
Log Message:
-----------
For macOS platform, makes -core-graphics backend kind of usable again. There are still occasional segfaults that should be inspected. Also, the Smalltalk image must not rely on deferred updates in the VM but implement an extra composition buffer in the image. Squeak/Morph has #disableDeferredUpdates for this.
Commit: ee7fec3e1a54294028eb12db89a98a084902be9b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ee7fec3e1a54294028…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-31 (Thu, 31 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
Log Message:
-----------
For macOS platform, disable vsync for -opengl backend to not slow down the VM interpreter loop.
Commit: 34c0321b1ec07e1650ea4f6cae048f003657c863
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/34c0321b1ec07e1650…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-31 (Thu, 31 Mar 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
Log Message:
-----------
For macOS platform, disable vsync for -metal backend to not slow down the VM interpreter loop.
NOTE THAT we now have sporadic segfaults as with the -core-graphics backend. There is a @synchronized missing somewhere. I suspect something around input events bc. the crashes always happen after a mouse click...
Commit: dd4011712ace52c0446580fc3ed9988007577fea
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/dd4011712ace52c044…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-03-31 (Thu, 31 Mar 2022)
Changed paths:
M platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
Log Message:
-----------
For macOS platform, fixes the sporadic segfaults...
...that started to happen after the recent changes to both -metal and -core-graphics backends, which entailed a slight change in what is actually in the view's event loop. That is, we added "redraw" events to work around vsync limitations. See uses of setNeedsDisplayInRect:.
The solution was, apparently, that we must not call the ancient Carbon-style pumpRunLoop() but always do the modern pumping via pumpRunLoopEventSendAndSignal().
Still, one of the remaining issues is that, for example, Squeak's #disableDeferredUpdates does not work for MVC-style display, which relies on the #copyBits side effect of directly pushing the contents to the screen. I will think of something such as pumping events from within the image.
Commit: cbc443d5288806d74750af799654e1de1e2d6713
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/cbc443d5288806d747…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-01 (Fri, 01 Apr 2022)
Changed paths:
M platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
Log Message:
-----------
For macOS platform using -metal backend, do some code clean-up and add more commentary on where display events are generated to avoid slowing down the VM interpreter loop.
Commit: e19cb0fcfc5ee389e5116226eda179ea6217421b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/e19cb0fcfc5ee389e5…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-01 (Fri, 01 Apr 2022)
Changed paths:
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
Log Message:
-----------
For macOS platform using -core-graphics backend, initialize colorMap32 like we do for all supported backends, even though we don't seem to accept display depths other than 32-bit (BGRA) these days, although we could because we the color-mapping tables (1-to-32, 2-to-32, etc.) still present.
Commit: ab7eaf0ec1fe0eb822ed4b25d3ef84a7b462b8eb
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ab7eaf0ec1fe0eb822…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-01 (Fri, 01 Apr 2022)
Changed paths:
M cmake/Zlib.cmake
M third-party/zlib.spec
Log Message:
-----------
Merge remote-tracking branch 'remotes/upstream/Cog' into marceltaeumel/high-resolution-fix
Commit: 7cc38e3dd97b47dab102a509347972814729fa7b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/7cc38e3dd97b47dab1…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-04 (Mon, 04 Apr 2022)
Changed paths:
M platforms/Mac OS/vm/Developer/sqMacMinimal.c
M platforms/Mac OS/vm/sqMacWindowUniversal.c
M platforms/Plan9/vm/sqPlan9io.c
M platforms/RiscOS/vm/sqRPCWindows.c
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAPI.m
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
M platforms/iOS/vm/OSX/sqSqueakMainApplication+screen.m
M platforms/unix/vm-display-Quartz/sqUnixQuartz.m
M platforms/unix/vm-display-Quartz/zzz/sqUnixQuartz.m
M platforms/unix/vm-display-X11/sqUnixX11.c
M platforms/unix/vm-display-custom/sqUnixCustomWindow.c
M platforms/unix/vm-display-fbdev/sqUnixFBDev.c
M platforms/unix/vm-display-null/sqUnixDisplayNull.c
M platforms/win32/vm/sqWin32Window.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/upstream/Cog' into marceltaeumel/high-resolution-fix
Commit: 5c61dbab183257e4f051c9fbc6b4b74097408d8c
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5c61dbab183257e4f0…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-05 (Tue, 05 Apr 2022)
Changed paths:
M .gitignore
M building/macos64ARMv8/common/Makefile.flags
M platforms/iOS/plugins/HostWindowPlugin/sqMacHostWindow.m
M platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
M platforms/iOS/vm/OSX/Newspeak-Info.plist
M platforms/iOS/vm/OSX/Pharo-Info.plist
M platforms/iOS/vm/OSX/Squeak-Info.plist
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
M platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.h
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.h
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
M platforms/iOS/vm/OSX/sqSqueakOSXView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.m
Log Message:
-----------
Merge pull request #620 from marceltaeumel/marceltaeumel/high-resolution-fix
For macOS -metal -core-graphics -opengl backends, fixes several issues concerning performance and high-resolution
Commit: d6c93011dafbf389ef7a9abebbd4649a1f1096c4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d6c93011dafbf389ef…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/spur32.cog.newspeak/cogitARMv5.c
M src/spur32.cog.newspeak/cogitIA32.c
M src/spur32.cog.newspeak/cointerp.c
M src/spur32.cog.newspeak/cointerp.h
M src/spur32.cog.newspeak/gcc3x-cointerp.c
M src/spur32.cog.newspeak/vmCallback.h
M src/spur32.stack.newspeak/gcc3x-interp.c
M src/spur32.stack.newspeak/interp.c
M src/spur32.stack.newspeak/vmCallback.h
M src/spur64.cog.newspeak/cogitARMv8.c
M src/spur64.cog.newspeak/cogitX64SysV.c
M src/spur64.cog.newspeak/cogitX64WIN64.c
M src/spur64.cog.newspeak/cointerp.c
M src/spur64.cog.newspeak/cointerp.h
M src/spur64.cog.newspeak/gcc3x-cointerp.c
M src/spur64.cog.newspeak/vmCallback.h
M src/spur64.stack.newspeak/gcc3x-interp.c
M src/spur64.stack.newspeak/interp.c
M src/spur64.stack.newspeak/vmCallback.h
Log Message:
-----------
Newspeak source as per VMMaker.oscog-mt.3175 [ci skip]
Commit: 158fa56c20df4276a022410fb48637840e0eef6a
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/158fa56c20df4276a0…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/v3.cog/cointerp.c
M src/v3.cog/gcc3x-cointerp.c
M src/v3.stack/gcc3x-interp.c
M src/v3.stack/interp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-mt.3176 [ci skip]
Commit: 393ec68334b64b2fd1a476746d7648a0d8b5de6f
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/393ec68334b64b2fd1…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/spur32.cog.lowcode/cogitARMv5.c
M src/spur32.cog.lowcode/cogitIA32.c
M src/spur64.cog.lowcode/cogitARMv8.c
M src/spur64.cog.lowcode/cogitX64SysV.c
M src/spur64.cog.lowcode/cogitX64WIN64.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-mt.3177 [ci skip]
Commit: ac5f9dcd6d11e328d80710192751eabc69a726e9
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ac5f9dcd6d11e328d8…
Author: Tobias Pape <tobias(a)netshed.de>
Date: 2022-04-07 (Thu, 07 Apr 2022)
Changed paths:
M .gitignore
M building/macos64ARMv8/common/Makefile.flags
M platforms/iOS/plugins/HostWindowPlugin/sqMacHostWindow.m
M platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
M platforms/iOS/vm/OSX/Newspeak-Info.plist
M platforms/iOS/vm/OSX/Pharo-Info.plist
M platforms/iOS/vm/OSX/Squeak-Info.plist
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
M platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.h
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.h
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.m
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
M platforms/iOS/vm/OSX/sqSqueakOSXView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.h
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.m
M src/spur32.cog.lowcode/cogitARMv5.c
M src/spur32.cog.lowcode/cogitIA32.c
M src/spur32.cog.newspeak/cogitARMv5.c
M src/spur32.cog.newspeak/cogitIA32.c
M src/spur32.cog.newspeak/cointerp.c
M src/spur32.cog.newspeak/cointerp.h
M src/spur32.cog.newspeak/gcc3x-cointerp.c
M src/spur32.cog.newspeak/vmCallback.h
M src/spur32.stack.newspeak/gcc3x-interp.c
M src/spur32.stack.newspeak/interp.c
M src/spur32.stack.newspeak/vmCallback.h
M src/spur64.cog.lowcode/cogitARMv8.c
M src/spur64.cog.lowcode/cogitX64SysV.c
M src/spur64.cog.lowcode/cogitX64WIN64.c
M src/spur64.cog.newspeak/cogitARMv8.c
M src/spur64.cog.newspeak/cogitX64SysV.c
M src/spur64.cog.newspeak/cogitX64WIN64.c
M src/spur64.cog.newspeak/cointerp.c
M src/spur64.cog.newspeak/cointerp.h
M src/spur64.cog.newspeak/gcc3x-cointerp.c
M src/spur64.cog.newspeak/vmCallback.h
M src/spur64.stack.newspeak/gcc3x-interp.c
M src/spur64.stack.newspeak/interp.c
M src/spur64.stack.newspeak/vmCallback.h
M src/v3.cog/cointerp.c
M src/v3.cog/gcc3x-cointerp.c
M src/v3.stack/gcc3x-interp.c
M src/v3.stack/interp.c
Log Message:
-----------
Merge remote-tracking branch 'origin/Cog' into krono/highdpi-v2
* origin/Cog:
CogVM source as per VMMaker.oscog-mt.3177 [ci skip]
CogVM source as per VMMaker.oscog-mt.3176 [ci skip]
Newspeak source as per VMMaker.oscog-mt.3175 [ci skip]
For macOS platform using -core-graphics backend, initialize colorMap32 like we do for all supported backends, even though we don't seem to accept display depths other than 32-bit (BGRA) these days, although we could because we the color-mapping tables (1-to-32, 2-to-32, etc.) still present.
For macOS platform using -metal backend, do some code clean-up and add more commentary on where display events are generated to avoid slowing down the VM interpreter loop.
For macOS platform, fixes the sporadic segfaults...
For macOS platform, disable vsync for -metal backend to not slow down the VM interpreter loop.
For macOS platform, disable vsync for -opengl backend to not slow down the VM interpreter loop.
For macOS platform, makes -core-graphics backend kind of usable again. There are still occasional segfaults that should be inspected. Also, the Smalltalk image must not rely on deferred updates in the VM but implement an extra composition buffer in the image. Squeak/Morph has #disableDeferredUpdates for this.
Fix typo in previous commit. :-/
For macOS platform, explicitly allow "Open in low resolution" in case the default gets changed.
For macOS platform, clean up code around mouse tracking. The flag NSTrackingInVisibleRect ensures that macOS will take care of resizing the tracking area when the window is resized.
For macOS platform, fixes mouse tracking (entered, exited, moved), which got lost since macOS 10.5 where NSTrackingArea was introduced.
For macOS platform, fixes drag-and-drop for high-resolution mode. Note that this change also makes the dragged file names/urls accessible directly after drag-enter, not just when letting go of the mouse button. Thus, the image can now show the dragged file names early on. The macOS dragging cursor is still visible though.
Fixes initial screen refresh for macOS OpenGL backend when using high-resolution mode. Only applies to macOS 10.x.x because OpenGL support was dropped starting with macOS 11.x.x.
Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for both OpenGL and CoreGraphics backends. Note that the CoreGraphics backend is still kind of broken and should not be used on macOS 10.15.x or 11.x.x.
For macOS platform, fixes high-resolution scaling when (1) reading prior display extent from image and (2) setting new extent via HostWindowPlugin.
Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for Metal backend.
Command-line tools for Xcode have different SDK path
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/e31e766c77a1...ac…
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: d6c93011dafbf389ef7a9abebbd4649a1f1096c4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d6c93011dafbf389ef…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/spur32.cog.newspeak/cogitARMv5.c
M src/spur32.cog.newspeak/cogitIA32.c
M src/spur32.cog.newspeak/cointerp.c
M src/spur32.cog.newspeak/cointerp.h
M src/spur32.cog.newspeak/gcc3x-cointerp.c
M src/spur32.cog.newspeak/vmCallback.h
M src/spur32.stack.newspeak/gcc3x-interp.c
M src/spur32.stack.newspeak/interp.c
M src/spur32.stack.newspeak/vmCallback.h
M src/spur64.cog.newspeak/cogitARMv8.c
M src/spur64.cog.newspeak/cogitX64SysV.c
M src/spur64.cog.newspeak/cogitX64WIN64.c
M src/spur64.cog.newspeak/cointerp.c
M src/spur64.cog.newspeak/cointerp.h
M src/spur64.cog.newspeak/gcc3x-cointerp.c
M src/spur64.cog.newspeak/vmCallback.h
M src/spur64.stack.newspeak/gcc3x-interp.c
M src/spur64.stack.newspeak/interp.c
M src/spur64.stack.newspeak/vmCallback.h
Log Message:
-----------
Newspeak source as per VMMaker.oscog-mt.3175 [ci skip]
Commit: 158fa56c20df4276a022410fb48637840e0eef6a
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/158fa56c20df4276a0…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/v3.cog/cointerp.c
M src/v3.cog/gcc3x-cointerp.c
M src/v3.stack/gcc3x-interp.c
M src/v3.stack/interp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-mt.3176 [ci skip]
Commit: 393ec68334b64b2fd1a476746d7648a0d8b5de6f
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/393ec68334b64b2fd1…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M src/spur32.cog.lowcode/cogitARMv5.c
M src/spur32.cog.lowcode/cogitIA32.c
M src/spur64.cog.lowcode/cogitARMv8.c
M src/spur64.cog.lowcode/cogitX64SysV.c
M src/spur64.cog.lowcode/cogitX64WIN64.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-mt.3177 [ci skip]
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/5c61dbab1832...39…
Marcel Taeumel uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-mt.3177.mcz
==================== Summary ====================
Name: VMMaker.oscog-mt.3177
Author: mt
Time: 6 April 2022, 4:13:28.572017 pm
UUID: cdab6d73-9309-3945-8f5d-3a13e4966ded
Ancestors: VMMaker.oscog-mt.3176
Fixes definition of struct BytecodeFixup for generated Lowcode sources to make them compile again without having to define 'LowcodeVM=1' during compilation.
See its use in #ensureFixupAt: where it is clearly a configuration of the code generator and not an #ifdef that can be changed during compilation. Luckily, there are no other variation points in "platforms/**" like we have for PharoVM or NewspeakVM.
=============== Diff against VMMaker.oscog-mt.3176 ===============
Item was changed:
----- Method: CogSSBytecodeFixup class>>filteredInstVarNames (in category 'translation') -----
filteredInstVarNames
+ "Override to guard LowcodeVM-specific native stack info, and to put
- "Override to add ifdef LowcodeVM around the native stack info, and to put
char vars before short vars.
self typedef"
| vars |
vars := super filteredInstVarNames asOrderedCollection.
vars
remove: 'instructionIndex';
add: 'instructionIndex' afterIndex: (vars indexOf: 'simStackPtr');
remove: 'isTargetOfBackwardBranch';
+ add: 'isTargetOfBackwardBranch' afterIndex: (vars indexOf: 'simStackPtr').
+ LowcodeVM ifFalse:
+ [vars remove: 'simNativeStackPtr'; remove: 'simNativeStackSize'].
- add: 'isTargetOfBackwardBranch' afterIndex: (vars indexOf: 'simStackPtr');
- add: '#if LowcodeVM' beforeIndex: (vars indexOf: 'simNativeStackPtr');
- add: '#endif' afterIndex: (vars indexOf: 'simNativeStackSize').
^vars!
Marcel Taeumel uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-mt.3176.mcz
==================== Summary ====================
Name: VMMaker.oscog-mt.3176
Author: mt
Time: 6 April 2022, 2:54:12.612017 pm
UUID: e0dad7c2-84d4-c740-86d3-f270ffc43add
Ancestors: VMMaker.oscog-mt.3175
Fixes v3.cog and v3.stack, which both do not specify the IMMUTABILITY option and thus there is no #define IMMUTABILITY in their generated interp.h, which will then make the generated sources for getCogVMFeatureFlags not compile.
Note that this seems to be a little bit different compared to, e.g., BIT_IDENTICAL_FLOATING_POINT. Not sure whether we want to discriminate between "defined" and "not defined" or "defined && 1" and "not defined || defined && !1". Seems to be mixed up at the moment. In any case, we must use a #cppIf:ifTrue:ifFalse: guard.
=============== Diff against VMMaker.oscog-mt.3175 ===============
Item was changed:
----- Method: StackInterpreter>>getCogVMFeatureFlags (in category 'internal interpreter access') -----
getCogVMFeatureFlags
"Answer an array of flags indicating various optional features of the Cog VM.
If the bit is set then...
Bit 0: supports two bytecode sets (MULTIPLEBYTECODESETS)
Bit 1: supports immutablity (IMMUTABILITY)
Bit 2: suffers from a UNIX setitimer signal-based heartbeat
Bit 3: the VM provides cross-platform bit-identical floating point
Bit 4: the VM can catch exceptions in FFI calls and answer them as primitive failures
Bit 5: the VM has suspend primitives 568 & 578 which back up a process to before the wait if it was waiting on a condition variable"
^objectMemory integerObjectOf: (MULTIPLEBYTECODESETS ifTrue: [1] ifFalse: [0])
+ + (self cppIf: #IMMUTABILITY ifTrue: [IMMUTABILITY ifTrue: [2] ifFalse: [0]] ifFalse: [0])
- + (IMMUTABILITY ifTrue: [2] ifFalse: [0])
+ (self cppIf: #'ITIMER_HEARTBEAT' ifTrue: [4] ifFalse: [0])
+ (self cppIf: #'BIT_IDENTICAL_FLOATING_POINT' ifTrue: [8] ifFalse: [0])
+ (self ioCanCatchFFIExceptions ifTrue: [16] ifFalse: [0])
+ (RevisedSuspend ifTrue: [32] ifFalse: [0])!
Tested with **Squeak6.0alpha** and **Cuis6.0-5069**.
Fixed issues:
- Correct image-side display bounds in high-resolution mode on start-up and via `#setNewScreenSize:` (i.e., HostWindowPlugin primitiveHostWindowSizeSet)
- File drag in high-resolution mode is now matching image-side display bounds
- File drag has now access to file paths in DragEnter, not just DragDrop (i.e., mouseUp)
- `-core-graphics` usable again
- `-opengl` does not slow down VM interpeter loop anymore (e.g., in Morphic's use of primitive 127 and 231)
- `-metal` does not slow down VM interpeter loop anymore (e.g., in Morphic's use of primitive 127 and 231)
Known issues:
- **Rather frequent segfaults in macOS64ARMv8**, maybe related to JIT via `checkForEventsMayContextSwitch:` where `checkCogCompiledCodeCompactionCalledFor` is called before `ioProcessEvents` ... maybe because of new display events queued in `-core-graphics` and `-metal` backends
----
Known issues on macOS 12:
- No OS-supported "Low Resolution" mode; use magnifier
- No `-opengl` support
- High-resolution mode scales up hardware cursor
Known issues on macOS 11.6:
- No `-opengl` support
- High-resolution mode scales up hardware cursor
Known issues on macOS 10.15:
- High-resolution mode scales up hardware cursor
----
Known issues for `-metal` backend:
- Must use image-side buffer for composition to avoid flickering
Known issues for `-core-graphics` backend:
- Must use image-side buffer for composition to avoid flickering
- Blitting on `Display` via `Form reverse` not working bc. alpha value must be FF (255)
- Rather slow bc. only full and no clippy-based updates due to inaccessible double-buffering in CoreGraphics
Known issues for `-opengl` backend:
- No blitting support for Squeak's MVC
- No blitting support for Squeak's Morph's fast window dragging/resizing
-----
Note that Squeak6.0alpha has direct support for that image-side buffer via `#disableDeferredUpdates` preference. The support in Squeak's Morphic has been there since at least 1999. Cuis does not yet have an image-side buffer for composition but flickering is rare.
Note that `-core-graphics` could be made compatible with `Form reverse` blitting rule by using a color with alpha value (almost) 0 such as `Color gray alpha: 1/255` or `Color colorFromPixelValue: 16r01808080`. Try out via `Display fill: (0@0 corner: 200@200) rule: Form reverse fillColor: Color gray`.
Finally note that both `-metal` and `-core-graphics` now do rather nothing in primitive 231 (i.e., `forceDisplayUpdate`/ `ioForceDisplayUpdate` / `drawThelayers`) but rely on a scheduled display event to be delivered via primitive 94 (i.e., `primitiveGetNextEvent` / `ioProcessEvents` / `vmIOProcessEvents`), which is also called every 20 milliseconds on any other primitive send. See `checkForEventsMayContextSwitch` in VMMaker sources.
-----
**Big thanks to [krono](https://github.com/krono/) for helping out with this high-resolution stuff and other details on macOS!**
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/620
-- Commit Summary --
* Command-line tools for Xcode have different SDK path
* Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for Metal backend.
* For macOS platform, fixes high-resolution scaling when (1) reading prior display extent from image and (2) setting new extent via HostWindowPlugin.
* Extracting directly from krono/highdpi-v2, fixes high-resolution scaling for both OpenGL and CoreGraphics backends. Note that the CoreGraphics backend is still kind of broken and should not be used on macOS 10.15.x or 11.x.x.
* Fixes initial screen refresh for macOS OpenGL backend when using high-resolution mode. Only applies to macOS 10.x.x because OpenGL support was dropped starting with macOS 11.x.x.
* For macOS platform, fixes drag-and-drop for high-resolution mode. Note that this change also makes the dragged file names/urls accessible directly after drag-enter, not just when letting go of the mouse button. Thus, the image can now show the dragged file names early on. The macOS dragging cursor is still visible though.
* For macOS platform, fixes mouse tracking (entered, exited, moved), which got lost since macOS 10.5 where NSTrackingArea was introduced.
* For macOS platform, clean up code around mouse tracking. The flag NSTrackingInVisibleRect ensures that macOS will take care of resizing the tracking area when the window is resized.
* For macOS platform, explicitly allow "Open in low resolution" in case the default gets changed.
* Fix typo in previous commit. :-/
* For macOS platform, makes -core-graphics backend kind of usable again. There are still occasional segfaults that should be inspected. Also, the Smalltalk image must not rely on deferred updates in the VM but implement an extra composition buffer in the image. Squeak/Morph has #disableDeferredUpdates for this.
* For macOS platform, disable vsync for -opengl backend to not slow down the VM interpreter loop.
* For macOS platform, disable vsync for -metal backend to not slow down the VM interpreter loop.
* For macOS platform, fixes the sporadic segfaults...
* For macOS platform using -metal backend, do some code clean-up and add more commentary on where display events are generated to avoid slowing down the VM interpreter loop.
* For macOS platform using -core-graphics backend, initialize colorMap32 like we do for all supported backends, even though we don't seem to accept display depths other than 32-bit (BGRA) these days, although we could because we the color-mapping tables (1-to-32, 2-to-32, etc.) still present.
-- File Changes --
M .gitignore (1)
M building/macos64ARMv8/common/Makefile.flags (1)
M platforms/iOS/plugins/HostWindowPlugin/sqMacHostWindow.m (4)
M platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m (17)
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m (10)
M platforms/iOS/vm/OSX/Newspeak-Info.plist (4)
M platforms/iOS/vm/OSX/Pharo-Info.plist (4)
M platforms/iOS/vm/OSX/Squeak-Info.plist (4)
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m (9)
M platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m (4)
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m (10)
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.h (1)
M platforms/iOS/vm/OSX/sqSqueakOSXCGView.m (196)
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.h (1)
M platforms/iOS/vm/OSX/sqSqueakOSXHeadlessView.m (8)
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h (4)
M platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m (129)
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.h (6)
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m (74)
M platforms/iOS/vm/OSX/sqSqueakOSXView.h (7)
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.h (3)
M platforms/iOS/vm/iPhone/Classes/SqueakUIView.m (12)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/620.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/620.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/620
You are receiving this because you are subscribed to this thread.
Message ID: <OpenSmalltalk/opensmalltalk-vm/pull/620(a)github.com>