The saying goes
- once is happenstance
- twice is just circumstance
- the third time and you have discovered a Natural Law
So what does this have to do with anything?
Well, I now have a revitalized vm-display-fbdev working on
Raspberry Pi 3 -- Alpine Linux
Raspberry Pi 4 -- Alpine Linux
and
LePotato (AML-s905x-cc) -- Armbian (Debian) Linux
Which run Squeak and Cuis images.
Uses libevdev and a framebuffer. Works with libc or MUSL. No X11!
Look, ma! Smalltalk IS the window system!
Having done it is a proof of concept. ;^)
https://github.com/KenDickey/opensmalltalk-vm
or just the salients in
https://github.com/KenDickey/FBDevVM
See some notes in the top-level directories and look at
'build.linux68ARMv8/HowToBuild'.
Any help in Sqeakifying/cleaning the sources is appreciated.
I only use Arm chips. Any brave souls want to test using amd64/intel?
Enjoy!
-KenD
A bit of context: For Squeak, I am currently implementing full-fledged handling of DND events sent by the host system. Actually, Squeak only handles `SQDragDrop` at the moment.
However, when logging all received DND events on the image side, I discovered that whenever a file is dropped into the VM, after the last `SQDragMove` an `SQDragLeave` is received before the eventual `SQDragDrop`. This looks very suspicious to me. Neither does the same happen on any other platform (tested on Win32, too), nor does it appear logical to me in any way. If I release the mouse button *over* the image, the drag did not leave, so a "drag leave" should not be recorded.
This MR makes sure that in `dndInDrop()`, an `SQDragLeave` event is only recorded if the drop was not successful. (Please note that the `SQDragDrop` event itself will be sent in a deferred manner; `dndInDrop()` itself only calls `XConvertSelection()` from the X-Server which then will send a `SelectionNotify` which will trigger `dndGetSelection()` and eventually have `generateSqueakDropEventIfDroppedFiles()` called.)
Please review carefully, as I am a bloody VM newbie and this is my very first commit to this repo! :-) Mentioning @eliotmiranda who appears to be the code owner of this plugin, according to the file's history.
Todos:
- [ ] Think about backward compatibility: Squeak did not respect any of the drag events but `SQDragDrop` until today, and I'm reworking that handling ATM, so there will be no problem. But are there other users of this plugin that could rely on the old behavior which I consider a bug? Or does the `sq` in the prefix unambiguously stand for `Squeak`?
- [ ] Are there any tests I could run to make sure that this change cannot break anything else?
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/508
-- Commit Summary --
* Fix a typo
* Comment out suspicious line
* Merge branch 'Cog' into sqUnixXdnd
* Refactor changes
* Don't skip SQDragLeave if XGetSelectionOwner failed
-- File Changes --
M platforms/unix/vm-display-X11/sqUnixXdnd.c (11)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/508.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/508.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/508
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 82c7c51183b73fa91c8ee7cd73ded32aaa03b8c4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/82c7c51183b73fa91c…
Author: Christoph Thiede <christoph.thiede(a)outlook.de>
Date: 2020-06-07 (Sun, 07 Jun 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Fix a typo
Commit: 97aa3c72a3bf29ef3cd67d23646152c80b5c98fd
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/97aa3c72a3bf29ef3c…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Comment out suspicious line
Commit: 0b2d16ee5c4efe12b3014afa753d19c9bd64ccfc
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/0b2d16ee5c4efe12b3…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M build.win64x64/common/Makefile.msvc
M build.win64x64/common/Makefile.msvc.flags
Log Message:
-----------
Merge branch 'Cog' into sqUnixXdnd
Commit: cb852fe26b0fa1e363bf2e62961da6644ea9833b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/cb852fe26b0fa1e363…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Refactor changes
Commit: e2be1e85adaa5da536f665cf4a05655c0a0658da
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/e2be1e85adaa5da536…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Don't skip SQDragLeave if XGetSelectionOwner failed
Commit: aafdc2837074b859c3d392a3f86b3645b12e91d7
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/aafdc2837074b859c3…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-28 (Sun, 28 Jun 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Only record SQDragLeave xor SQDragDrop
Commit: 4def9a65347638fe002deb5cfb92d00fa532145c
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/4def9a65347638fe00…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-06-28 (Sun, 28 Jun 2020)
Changed paths:
M .travis.yml
M build.macos32x86/common/Makefile.vm
R build.macos32x86/common/mkNamedPrims.sh
M build.macos64x64/common/Makefile.vm
R build.macos64x64/common/mkNamedPrims.sh
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cogitX64SysV.c
M nsspur64src/vm/cogitX64WIN64.c
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cogitARMv5.c
M nsspursrc/vm/cogitIA32.c
M nsspursrc/vm/cogitMIPSEL.c
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
A platforms/Cross/util/mkIntPluginIndices.sh
A platforms/Cross/util/mkNamedPrims.sh
M platforms/Cross/vm/sqCogStackAlignment.h
M platforms/Cross/vm/sqNamedPrims.c
M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
M platforms/win32/misc/Makefile.mingw32
M platforms/win32/plugins/DropPlugin/sqWin32Drop.c
M platforms/win32/vm/sqWin32.h
M platforms/win32/vm/sqWin32Main.c
M platforms/win32/vm/sqWin32PluginSupport.c
M platforms/win32/vm/sqWin32Window.c
M scripts/revertIfEssentiallyUnchanged
M spur64src/vm/cogit.h
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cogitX64SysV.c
M spurlowcode64src/vm/cogitX64WIN64.c
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cogitARMv5.c
M spurlowcodesrc/vm/cogitIA32.c
M spurlowcodesrc/vm/cogitMIPSEL.c
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
M spursista64src/vm/cogitX64SysV.c
M spursista64src/vm/cogitX64WIN64.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cogitARMv5.c
M spursistasrc/vm/cogitIA32.c
M spursistasrc/vm/cogitMIPSEL.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cogitIA32.c
M spursrc/vm/cogitMIPSEL.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/validImage.c
M src/plugins/DESPlugin/DESPlugin.c
M src/plugins/DSAPrims/DSAPrims.c
M src/plugins/MD5Plugin/MD5Plugin.c
M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
A src/plugins/SHA2Plugin/SHA2Plugin.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/vm/cogit.h
M src/vm/cogitARMv5.c
M src/vm/cogitIA32.c
M src/vm/cogitMIPSEL.c
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/cointerpmt.c
M src/vm/cointerpmt.h
M src/vm/gcc3x-cointerp.c
M src/vm/gcc3x-cointerpmt.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
M third-party/libssh2.spec
Log Message:
-----------
Merge remote-tracking branch 'origin/Cog' into sqUnixXdnd
Commit: 1fde7270c5c3c4bbf7e9d33b8594f9e3ac3f8c92
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1fde7270c5c3c4bbf7…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Add explaining comments
Commit: 33df20b6b4e18c5b827bd3da48be3ba0e1a1dcef
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/33df20b6b4e18c5b82…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Refactor drop event generation
In particular, if the dropped content cannot be accepted, record a DragDrop event with
numFiles == 0 rather than a DragLeave event. This aligns the
behavior to the handling of unsupported drag contents such as texts.
Commit: 3100c64c6b770079bdd13888ed8740eff38a8fe7
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/3100c64c6b770079bd…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Improve comments
Commit: 2ff21e28c04f97b3250e8001a6befc33e21ca2b7
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/2ff21e28c04f97b325…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Nuke obsolete variable
Commit: b992e979b0ddc8f0887e965f411d0a6ca5108282
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b992e979b0ddc8f088…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Revert rejected change
Commit: 403836b5d07d6036e2855d133d148df9e4602892
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/403836b5d07d6036e2…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-07-10 (Fri, 10 Jul 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Fix a stupid slip
Commit: b45c7b1d8d8a99f24adf13785a3cbae783ad2d46
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b45c7b1d8d8a99f24a…
Author: Christoph Thiede <christoph.thiede(a)student.hpi.de>
Date: 2020-08-19 (Wed, 19 Aug 2020)
Changed paths:
M .gitignore
M build.linux32ARMv6/squeak.cog.spur/plugins.ext
M build.linux32ARMv6/squeak.stack.spur/plugins.ext
M build.linux32ARMv6/squeak.stack.v3/plugins.ext
M build.linux32x86/squeak.cog.spur.immutability/plugins.ext
M build.linux32x86/squeak.cog.spur/plugins.ext
M build.linux32x86/squeak.cog.v3/plugins.ext
M build.linux32x86/squeak.sista.spur/plugins.ext
M build.linux32x86/squeak.stack.spur/plugins.ext
M build.linux32x86/squeak.stack.v3/plugins.ext
A build.linux64ARMv8/HowToBuild
A build.linux64ARMv8/makeall
A build.linux64ARMv8/makeallclean
A build.linux64ARMv8/makeallmakefiles
A build.linux64ARMv8/makeallsqueak
R build.linux64ARMv8/pharo.cog.spur/apt-get-libs.sh
R build.linux64ARMv8/pharo.cog.spur/build/mvm
R build.linux64ARMv8/pharo.cog.spur/plugins.ext
R build.linux64ARMv8/pharo.cog.spur/plugins.ext.all
R build.linux64ARMv8/pharo.cog.spur/plugins.int
M build.linux64ARMv8/pharo.stack.spur/build.debug/mvm
M build.linux64ARMv8/squeak.cog.spur/build.assert/mvm
M build.linux64ARMv8/squeak.cog.spur/build.debug/mvm
M build.linux64ARMv8/squeak.cog.spur/build/mvm
M build.linux64ARMv8/squeak.cog.spur/plugins.ext
M build.linux64ARMv8/squeak.stack.spur/build.assert/mvm
M build.linux64ARMv8/squeak.stack.spur/plugins.ext
M build.linux64x64/makeallsqueak
M build.linux64x64/squeak.cog.spur.immutability/plugins.ext
M build.linux64x64/squeak.cog.spur/plugins.ext
M build.linux64x64/squeak.stack.spur/plugins.ext
M build.macos32x86/common/Makefile.app
M build.macos32x86/common/Makefile.flags
M build.macos32x86/common/Makefile.lib.extra
M build.macos32x86/common/Makefile.plugin
M build.macos32x86/common/Makefile.rules
M build.macos32x86/common/Makefile.vm
M build.macos32x86/makeproduct
M build.macos32x86/squeak.cog.spur+immutability/plugins.ext
M build.macos32x86/squeak.cog.spur/plugins.ext
M build.macos32x86/squeak.cog.v3/plugins.ext
M build.macos32x86/squeak.sista.spur/plugins.ext
M build.macos32x86/squeak.stack.spur/plugins.ext
M build.macos32x86/squeak.stack.v3/plugins.ext
A build.macos64ARMv8/HowToBuild
A build.macos64ARMv8/bochsx64/conf.COG
A build.macos64ARMv8/bochsx64/conf.COG.dbg
A build.macos64ARMv8/bochsx64/exploration/Makefile
A build.macos64ARMv8/bochsx64/makeclean
A build.macos64ARMv8/bochsx64/makeem
A build.macos64ARMv8/bochsx86/conf.COG
A build.macos64ARMv8/bochsx86/conf.COG.dbg
A build.macos64ARMv8/bochsx86/exploration/Makefile
A build.macos64ARMv8/bochsx86/makeclean
A build.macos64ARMv8/bochsx86/makeem
A build.macos64ARMv8/common/Makefile.app
A build.macos64ARMv8/common/Makefile.app.newspeak
A build.macos64ARMv8/common/Makefile.app.squeak
A build.macos64ARMv8/common/Makefile.flags
A build.macos64ARMv8/common/Makefile.lib.extra
A build.macos64ARMv8/common/Makefile.plugin
A build.macos64ARMv8/common/Makefile.rules
A build.macos64ARMv8/common/Makefile.sources
A build.macos64ARMv8/common/Makefile.vm
A build.macos64ARMv8/gdbarm32/clean
A build.macos64ARMv8/gdbarm32/conf.COG
A build.macos64ARMv8/gdbarm32/makeem
A build.macos64ARMv8/gdbarm64/clean
A build.macos64ARMv8/gdbarm64/conf.COG
A build.macos64ARMv8/gdbarm64/makeem
A build.macos64ARMv8/makeall
A build.macos64ARMv8/makeallinstall
A build.macos64ARMv8/makeproduct
A build.macos64ARMv8/makeproductinstall
A build.macos64ARMv8/makesista
A build.macos64ARMv8/makespur
A build.macos64ARMv8/pharo.stack.spur.lowcode/Makefile
A build.macos64ARMv8/pharo.stack.spur.lowcode/mvm
A build.macos64ARMv8/pharo.stack.spur.lowcode/plugins.ext
A build.macos64ARMv8/pharo.stack.spur.lowcode/plugins.int
A build.macos64ARMv8/pharo.stack.spur/Makefile
A build.macos64ARMv8/pharo.stack.spur/mvm
A build.macos64ARMv8/pharo.stack.spur/plugins.ext
A build.macos64ARMv8/pharo.stack.spur/plugins.int
A build.macos64ARMv8/squeak.cog.spur.immutability/Makefile
A build.macos64ARMv8/squeak.cog.spur.immutability/mvm
A build.macos64ARMv8/squeak.cog.spur.immutability/plugins.ext
A build.macos64ARMv8/squeak.cog.spur.immutability/plugins.int
A build.macos64ARMv8/squeak.cog.spur/Makefile
A build.macos64ARMv8/squeak.cog.spur/mvm
A build.macos64ARMv8/squeak.cog.spur/plugins.ext
A build.macos64ARMv8/squeak.cog.spur/plugins.int
A build.macos64ARMv8/squeak.sista.spur/Makefile
A build.macos64ARMv8/squeak.sista.spur/mvm
A build.macos64ARMv8/squeak.sista.spur/plugins.ext
A build.macos64ARMv8/squeak.sista.spur/plugins.int
A build.macos64ARMv8/squeak.stack.spur/Makefile
A build.macos64ARMv8/squeak.stack.spur/mvm
A build.macos64ARMv8/squeak.stack.spur/plugins.ext
A build.macos64ARMv8/squeak.stack.spur/plugins.int
M build.macos64x64/common/Makefile.app
M build.macos64x64/common/Makefile.flags
M build.macos64x64/common/Makefile.lib.extra
M build.macos64x64/common/Makefile.plugin
M build.macos64x64/common/Makefile.rules
M build.macos64x64/common/Makefile.vm
M build.macos64x64/squeak.cog.spur.immutability/plugins.ext
M build.macos64x64/squeak.cog.spur/plugins.ext
M build.macos64x64/squeak.sista.spur/plugins.ext
M build.macos64x64/squeak.stack.spur/plugins.ext
M build.sunos32x86/squeak.cog.spur/plugins.ext
M build.sunos32x86/squeak.stack.spur/plugins.ext
M build.sunos64x64/squeak.cog.spur/plugins.ext
M build.sunos64x64/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.cog.spur.lowcode/plugins.ext
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
M nsspur64src/vm/cogit.h
A nsspur64src/vm/cogitARMv8.c
M nsspur64src/vm/cogitX64SysV.c
M nsspur64src/vm/cogitX64WIN64.c
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cogitARMv5.c
M nsspursrc/vm/cogitIA32.c
M nsspursrc/vm/cogitMIPSEL.c
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M platforms/Cross/plugins/FloatMathPlugin/ieee754names.h
M platforms/Cross/plugins/IA32ABI/arm32abicc.c
M platforms/Cross/plugins/IA32ABI/arm64abicc.c
M platforms/Cross/plugins/IA32ABI/dabusiness.h
M platforms/Cross/plugins/IA32ABI/dabusinessARM.h
M platforms/Cross/plugins/IA32ABI/dabusinessARM32.h
M platforms/Cross/plugins/IA32ABI/dabusinessARM64.h
M platforms/Cross/plugins/IA32ABI/dabusinessPostLogic.h
M platforms/Cross/plugins/IA32ABI/dabusinessppc.h
M platforms/Cross/plugins/IA32ABI/dabusinessppcPostLogicDouble.h
M platforms/Cross/plugins/IA32ABI/dabusinessppcPostLogicFloat.h
M platforms/Cross/plugins/IA32ABI/dabusinessppcPostLogicInteger.h
M platforms/Cross/plugins/IA32ABI/ia32abicc.c
M platforms/Cross/plugins/IA32ABI/ppc32abicc.c
M platforms/Cross/plugins/IA32ABI/x64sysvabicc.c
M platforms/Cross/plugins/IA32ABI/x64win64abicc.c
M platforms/Cross/third-party/fdlibm/fdlibm.h
M platforms/Cross/vm/sq.h
M platforms/Cross/vm/sqAssert.h
M platforms/Cross/vm/sqTicker.c
M platforms/Mac OS/vm/sqMacMain.c
M platforms/iOS/plugins/BochsIA32Plugin/Makefile
M platforms/iOS/plugins/BochsX64Plugin/Makefile
M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
M platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.h
M platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
M platforms/iOS/vm/Common/Classes/sqSqueakMainApp.m
M platforms/iOS/vm/OSX/sqMacUnixExternalPrims.m
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+attributes.m
M platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m
M platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+attributes.m
M platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication.m
M platforms/minheadless/generic/sqPlatformSpecific-Generic.c
M platforms/minheadless/unix/sqPlatformSpecific-Unix.c
M platforms/minheadless/windows/sqPlatformSpecific-Win32.c
M platforms/unix/vm/include_ucontext.h
M platforms/unix/vm/sqUnixMain.c
M platforms/win32/vm/sqWin32VMProfile.c
M spur64src/vm/cogit.h
A spur64src/vm/cogitARMv8.c
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
A spurlowcode64src/vm/cogitARMv8.c
M spurlowcode64src/vm/cogitX64SysV.c
M spurlowcode64src/vm/cogitX64WIN64.c
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cogitARMv5.c
M spurlowcodesrc/vm/cogitIA32.c
M spurlowcodesrc/vm/cogitMIPSEL.c
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
A spursista64src/vm/cogitARMv8.c
M spursista64src/vm/cogitX64SysV.c
M spursista64src/vm/cogitX64WIN64.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cogitARMv5.c
M spursistasrc/vm/cogitIA32.c
M spursistasrc/vm/cogitMIPSEL.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cogitIA32.c
M spursrc/vm/cogitMIPSEL.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/validImage.c
A src/ckformat.c
M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c
M src/plugins/FilePlugin/FilePlugin.c
M src/plugins/IA32ABI/IA32ABI.c
M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
M src/plugins/LargeIntegers/LargeIntegers.c
M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
M src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
M src/plugins/SecurityPlugin/SecurityPlugin.c
M src/plugins/SocketPlugin/SocketPlugin.c
M src/plugins/SoundPlugin/SoundPlugin.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/UnixOSProcessPlugin/UnixOSProcessPlugin.c
M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
M src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
M src/vm/cogit.h
M src/vm/cogitARMv5.c
M src/vm/cogitIA32.c
M src/vm/cogitMIPSEL.c
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/cointerpmt.c
M src/vm/cointerpmt.h
M src/vm/gcc3x-cointerp.c
M src/vm/gcc3x-cointerpmt.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
Log Message:
-----------
Merge branch 'Cog' into sqUnixXdnd
Commit: a9b022f578fdb61119663da6931293513ec3e6a4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/a9b022f578fdb61119…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2020-08-21 (Fri, 21 Aug 2020)
Changed paths:
M platforms/unix/vm-display-X11/sqUnixXdnd.c
Log Message:
-----------
Merge pull request #508 from LinqLover/sqUnixXdnd
sqUnixXdnd: Don't record SQDragLeave when XdndDrop is handled
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/989bee3ab3d0...a9…
Build Update for OpenSmalltalk/opensmalltalk-vm
-------------------------------------
Build: #2141
Status: Errored
Duration: 22 mins and 4 secs
Commit: 989bee3 (Cog)
Author: Eliot Miranda
Message: CogVM source as per VMMaker.oscog-eem.2792
General:
Eliminate translation time type error warnings for extendedStoreBytecodePop:
and fetchLong32:ofFloatObject:.
Simplify and correct the comments of some of the integer oop => value
conversion routines. These routines can simply return values directly
instead of assigning through a variable.
Spur:
Looking at class indentityHash distributions in my current VMMaker image it is
clear that setting the classTableIndex to point at the start of the last used
page is not a good strategy, and leads to far too sparse a class table. So
change the policy and set the classTableIndex to the first unused slot.
Eliminate unintentional duplication in
inLineRunLeakCheckerFor:excludeUnmarkedObjs:classIndicesShouldBeValid:
View the changeset: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/985c7706236e...98…
View the full build log and details: https://travis-ci.org/github/OpenSmalltalk/opensmalltalk-vm/builds/71972295…
--
You can unsubscribe from build emails from the OpenSmalltalk/opensmalltalk-vm repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=8795279&ut….
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notificati….
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 989bee3ab3d023ebb7b41b7e88da1f8b05f3711c
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/989bee3ab3d023ebb7…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2020-08-20 (Thu, 20 Aug 2020)
Changed paths:
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M spur64src/vm/cogit.h
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/validImage.c
M src/vm/cogit.h
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/cointerpmt.c
M src/vm/cointerpmt.h
M src/vm/gcc3x-cointerp.c
M src/vm/gcc3x-cointerpmt.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2792
General:
Eliminate translation time type error warnings for extendedStoreBytecodePop:
and fetchLong32:ofFloatObject:.
Simplify and correct the comments of some of the integer oop => value
conversion routines. These routines can simply return values directly
instead of assigning through a variable.
Spur:
Looking at class indentityHash distributions in my current VMMaker image it is
clear that setting the classTableIndex to point at the start of the last used
page is not a good strategy, and leads to far too sparse a class table. So
change the policy and set the classTableIndex to the first unused slot.
Eliminate unintentional duplication in
inLineRunLeakCheckerFor:excludeUnmarkedObjs:classIndicesShouldBeValid:
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2791.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2791
Author: eem
Time: 19 August 2020, 6:21:04.014485 pm
UUID: 04cdce33-b4a9-4acb-982e-ed9393a1783b
Ancestors: VMMaker.oscog-eem.2790
Looking at class indentityHash distributions in my current VMMaker image it is clear that setting the classTableIndex to point at the start of the last used page is not a good strategy, and leads to far too sparse a class table. So change the policy and set the classTableIndex to the first unused slot (unless bootstrapping).
=============== Diff against VMMaker.oscog-eem.2790 ===============
Item was changed:
----- Method: SpurMemoryManager>>setHiddenRootsObj: (in category 'class table') -----
setHiddenRootsObj: anOop
hiddenRootsObj := anOop.
self cCode: [self assert: self validClassTableRootPages]
inSmalltalk: [numClassTablePages ifNotNil:
[self assert: self validClassTableRootPages]].
classTableFirstPage := self fetchPointer: 0 ofObject: hiddenRootsObj.
self assert: (self numSlotsOf: classTableFirstPage) - 1 = self classTableMinorIndexMask.
"Hack fix. A bug in markAndTraceClassOf: caused the class of the first class table page
to be changed from its pun. This can be restored manually, but we do it here too."
self flag: 'remove at some stage'.
(self classIndexOf: classTableFirstPage) ~= self arrayClassIndexPun ifTrue:
[self setClassIndexOf: classTableFirstPage to: self arrayClassIndexPun].
- "Set classTableIndex to the start of the last used page (excepting first page).
- Set numClassTablePages to the number of used pages."
numClassTablePages := self classTableRootSlots.
+ self bootstrapping ifTrue:
+ ["Set classTableIndex to the start of the last used page (excepting first page).
+ Set numClassTablePages to the number of used pages."
+ 2 to: numClassTablePages - 1 do:
+ [:i|
+ (self fetchPointer: i ofObject: hiddenRootsObj) = nilObj ifTrue:
+ [numClassTablePages := i.
+ classTableIndex := (i - 1 max: 1) << self classTableMajorIndexShift.
+ ^self]].
+ "no unused pages; set it to the start of the second page."
+ classTableIndex := 1 << self classTableMajorIndexShift.
+ ^self].
+ "If loading an image, set the classTableIndex to the first unused slot in the class table after the first page.
+ Set numClassTablePages to the number of used pages.
+ Set classTableIndex to point at the first unused entry. First set it to the max as a sentinel."
+ classTableIndex := numClassTablePages << self classTableMajorIndexShift.
+ 1 to: numClassTablePages - 1 do:
+ [:i| | page j |
+ (page := self fetchPointer: i ofObject: hiddenRootsObj) = nilObj
+ ifFalse:
+ [classTableIndex >> self classTableMajorIndexShift > i ifTrue:
+ [j := 0.
+ [j < self classTablePageSize] whileTrue:
+ [(self fetchPointer: j ofObject: page) = nilObj ifTrue:
+ [classTableIndex := i << self classTableMajorIndexShift + j.
+ j := self classTablePageSize].
+ j := j + 1]]]
+ ifTrue:
+ [classTableIndex >> self classTableMajorIndexShift > i ifTrue:
+ [classTableIndex := (i - 1 max: 1) << self classTableMajorIndexShift].
+ numClassTablePages := i.
+ self assert: (self classOrNilAtIndex: classTableIndex) = nilObj.
+ ^self]].
+ "no unused slots; set it to the start of the second page."
+ classTableIndex >> self classTableMajorIndexShift >= numClassTablePages ifTrue:
+ [classTableIndex := 1 << self classTableMajorIndexShift].
+ self assert: (self classOrNilAtIndex: classTableIndex) = nilObj!
- 2 to: numClassTablePages - 1 do:
- [:i|
- (self fetchPointer: i ofObject: hiddenRootsObj) = nilObj ifTrue:
- [numClassTablePages := i.
- classTableIndex := (numClassTablePages - 1 max: 1) << self classTableMajorIndexShift.
- ^self]].
- "no unused pages; set it to the start of the second page."
- classTableIndex := 1 << self classTableMajorIndexShift!