From noreply at github.com Mon Mar 1 01:18:22 2021 From: noreply at github.com (Eliot Miranda) Date: Sun, 28 Feb 2021 17:18:22 -0800 Subject: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] a69b4c: On Windows allow a zero width in openCamera to sel... Message-ID: Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: a69b4c93edbbde759c849aa8e2f9adc97e808694 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/a69b4c93edbbde759c849aa8e2f9adc97e808694 Author: Eliot Miranda Date: 2021-02-28 (Sun, 28 Feb 2021) Changed paths: M platforms/win32/plugins/CameraPlugin/winCameraOps.cpp M platforms/win32/plugins/SoundPlugin/sqWin32Sound.c M platforms/win32/vm/sqWin32Window.c Log Message: ----------- On Windows allow a zero width in openCamera to select the largest frame size available. Get rid of an annoying print of the WM_DEVICECHANGE message (DPRINTF is a misnomer). Update sound devices on next access after a WM_DEVICECHANGE message. From no-reply at appveyor.com Mon Mar 1 01:37:28 2021 From: no-reply at appveyor.com (AppVeyor) Date: Mon, 01 Mar 2021 01:37:28 +0000 Subject: [Vm-dev] Build failed: opensmalltalk-vm 1.0.2408 Message-ID: <20210301013728.1.041C2F4A7E14688C@appveyor.com> An HTML attachment was scrubbed... URL: From stes at telenet.be Mon Mar 1 13:45:38 2021 From: stes at telenet.be (stes@PANDORA.BE) Date: Mon, 1 Mar 2021 14:45:38 +0100 (CET) Subject: [Vm-dev] unix SqueakSource socket 'too many open files' problem Message-ID: <1062729404.50152194.1614606338459.JavaMail.zimbra@telenet.be> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 One thing to check is also ulimit -n the numbber of open files that the shell reports. You could change it with ulimit -n -S where is smaller than the current limit. I'm not sure whether it matters for sockets. But it may be the case that some software was installed on your machine that perhaps changed the profile, and that change the ulimit -n setting. David Lewis wrote: > Tim, one other thing to look out for is the event handling in the VM. > Since last October it now uses the Linux-specific epoll mechanism. > If the problem you see now started happening after updating to a > newer VM, then consider this as a possible suspect. Linux epoll originated on Linux but there exist implementations on other Operating Systems it seems. OpenIndiana has epoll and other facilities like Berkeley BSD kqueue. https://illumos.org/man/5/epoll When running the Squeak opensmalltalk configure script it says for me $ grep HAVE_EPOLL config.h #define HAVE_EPOLL 1 #define HAVE_EPOLL_PWAIT 1 So basically the configure script logic detects on OpenIndiana and enabled it. This is because the ax_have_epoll.m4 M4 file from autoconf was used: https://www.gnu.org/software/autoconf-archive/ax_have_epoll.html If I configure ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no then $ grep EPOLL config.h /* #undef HAVE_EPOLL */ /* #undef HAVE_EPOLL_PWAIT */ So basically when epoll support was introduced, it automatically switched on OpenIndiana to epoll. So you could try as an experiment build the VM with ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no The way to do that would be to edit the "mvm" script and add the above to the configure command line so that git diff reports something like: - - CFLAGS="$OPT" + CFLAGS="$OPT"\ + ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no I am not sure whether it is the right way to disable epoll. Perhaps a configure --without-epoll exists but I don't see it. Also an issue is , how to see how the VM was built ? In my case, by default on OpenIndiana epoll seems to be enabled now. $ strings squeak | grep aioEnable aioEnable(%d, %p, %d): IGNORED aioEnable(%d): fd too large aioEnable: descriptor %d already enabled aioEnable(%d, %p, %d): allocating new epoll_event aioEnable: malloc event aioEnable(%d, %p, %d): allocating new epollEventData ... aioEnable(%d, %p, %d): enable non-blocking io and sigio ... but when I compile with ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no then $ strings squeak | grep aioEnable aioEnable(%d, %p, %d): IGNORED aioEnable(%d): fd too large aioEnable: descriptor %d already enabled aioEnable(%d): external To return to the Linux case, it could be a good experiment to build the VM without epoll if that is supported and see if it makes a difference, either by using the method described or by the recommended method to do it (as the method I describe may not be the correct one). Finally as David T. Lewis also indicates the problem may have existed in the past before epoll, so there is of course not really an indication that epoll is involved here. Basically as I read my interpretation of what David T. Lewis wrote is that file descriptor socket leaks have always been a problem - with/without epoll. Regards, David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJgPO/GAAoJEAwpOKXMq1MaCUUIAK0d//me/vV4uuICELaOnxEs zCqHtdb/8J8lI4GhvBW/oniSanyduFyzCxe7powS+5m4L/ons7U/2wmQXS2w3Vcy gY9pbXm4m5v9xIBUC0oD/REqhTo0epeem8Q/2GN6bvHPBjTt+BWVh3Z42l6HN/TB LXFfnXPck5buU2Lzo27brXE2XAweZx2JKdjhxB+YGOzsiwjWECqiy+zDXwXi2uN7 KG2ijFdQ6QTd5TaeQWgLhpFT/gnGX1ss8KPlkeKdcE7SH+EM0zPiie50bulUaJ7Q viLM3pT7+K5U9NZ7FXbkhACg4MR8MPz0llHC4zUznqwiaNv2XEwf4Tk+Zy+rnhs= =7R9P -----END PGP SIGNATURE----- From stes at telenet.be Mon Mar 1 14:29:44 2021 From: stes at telenet.be (stes@PANDORA.BE) Date: Mon, 1 Mar 2021 15:29:44 +0100 (CET) Subject: [Vm-dev] aioDisable: epoll_ctl: Bad file descriptor Message-ID: <1679457806.50325514.1614608984251.JavaMail.zimbra@telenet.be> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi, I tried building opensmalltalk on Linux and for me when I launch the VM, then quit it, I get: aioDisable: epoll_ctl: Bad file descriptor I modified the mvm script build.linux64x64/squeak.cog.spur/build/mvm and rebuilt with ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no that works and when I then launch and quit the VM the aioDisable: epoll_ctl: Bad file descriptor is not printed. Both OpenIndiana and Linux have epoll(7) but I'm unsure whether it is desired to disable epoll or to enable epoll. Thanks, David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJgPPoIAAoJEAwpOKXMq1MaogkH/1hdgrLx0HZ7VObA9J4vemoM FUNR4MPKxttk0sN2Pwd84QPRv5aEbbQePzg6E/+qziZdrXmdPZOwpyvP14n8CzeK u44HBkB6/189FCt/wo1RfVgpxkrh39dyQb2kiWQPEJUSNTIU0u8t9G1PQ2CMpkdo V1njrJX54Xx/KK5msByB/xATbVZUcFRSmWhA9w0UvmJjAsSqtSOIKqdwCUWymsTH zOuaCDd358lagogS9WmTi9CqEsY/3OKE27CTeXQgY8/r9VbBA1DJ9HiYuxyJ0mmn YGAK6+SivkkT0bNlNi/R8XMt52a1FgK/8xZ0jF7js9vpgMjGVcLrZKsekqyGMGM= =cd3I -----END PGP SIGNATURE----- From stes at telenet.be Mon Mar 1 17:20:58 2021 From: stes at telenet.be (stes@PANDORA.BE) Date: Mon, 1 Mar 2021 18:20:58 +0100 (CET) Subject: [Vm-dev] regression: TestObjectsAsMethods crash in 4.19.5 (not in 4.16.7) In-Reply-To: <605876499.30501015.1614071179388.JavaMail.zimbra@telenet.be> References: <949389016.25753821.1613919758428.JavaMail.zimbra@telenet.be> <605876499.30501015.1614071179388.JavaMail.zimbra@telenet.be> Message-ID: <766189717.50931693.1614619258680.JavaMail.zimbra@telenet.be> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 > Install primitiveArrayBecomeOneWayNoCopyHash as primitive 248 > replacing obsolete primitiveInvokeObjectAsMethod. Any news on this Tests-ObjectsAsMethods issue ? The purpose of those tests are not clear to me; Perhaps the change for the "primitives" which was made, can be reverted ? Possibly that creates a new problem for primitiveArrayBecomeOneWayNoCopyHash. David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJgPSIjAAoJEAwpOKXMq1MaKBoIALZFV2hJydzkLUcLB1YDIS5D 7M3E/ucLxvfWoCBygz0/r/TLou2Sk57x9WpGTWpBkMwOlQiPfL5q10Zq5iOZ+qDA Zbdz3iUHEV8FlVTGoOD4HR+eoblfnNhE6KhhkKb5YqmIVkpXr1UNY5ao/MPOFYV0 s12lTGqznhoh5ZI+i2U+sTDJljNiJojxzvWdq5rJ658PISWFPuqw/YJamQZvKiWx /HFQf+om5MKPt/jtzfpCxskuJ5evU2XBcTb6dFXzNgeaoqJEsLnnUj08vubHMA34 mRYHk+Pp4SxMYV/0CJ3dWOgOirMN7yVi7tTdKAdJeEmoPqP4cMUMbb8C+xOA5Uc= =5Ffs -----END PGP SIGNATURE----- From noreply at github.com Mon Mar 1 20:38:27 2021 From: noreply at github.com (Eliot Miranda) Date: Mon, 01 Mar 2021 12:38:27 -0800 Subject: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 61876d: Disable the Newspeak CI builds after conversation ... Message-ID: Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 61876d5cc401968af2524c8d49f95591d0f2c0a5 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/61876d5cc401968af2524c8d49f95591d0f2c0a5 Author: Eliot Miranda Date: 2021-03-01 (Mon, 01 Mar 2021) Changed paths: M .appveyor.yml M .travis.yml Log Message: ----------- Disable the Newspeak CI builds after conversation with Gilad. From no-reply at appveyor.com Mon Mar 1 20:57:00 2021 From: no-reply at appveyor.com (AppVeyor) Date: Mon, 01 Mar 2021 20:57:00 +0000 Subject: [Vm-dev] Build failed: opensmalltalk-vm 1.0.2409 Message-ID: <20210301205700.1.652B4E1A12255DEC@appveyor.com> An HTML attachment was scrubbed... URL: From lewis at mail.msen.com Mon Mar 1 23:39:19 2021 From: lewis at mail.msen.com (David T. Lewis) Date: Mon, 1 Mar 2021 18:39:19 -0500 Subject: [Vm-dev] aioDisable: epoll_ctl: Bad file descriptor In-Reply-To: <1679457806.50325514.1614608984251.JavaMail.zimbra@telenet.be> References: <1679457806.50325514.1614608984251.JavaMail.zimbra@telenet.be> Message-ID: <20210301233919.GA73711@shell.msen.com> A fix is here in branch 'dtl/epoll-forksqueak': https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/dtl/epoll-forksqueak I'm fairly sure these fixes are correct, but I don't want to merge to the Cog branch without review. I can't build the tip of Cog on my Ubuntu box right now due to an unrelated issue with configuring header files, but if someone else could try merging 'dtl/epoll-forksqueak' into branch 'Cog' to confirm no issues, that would be great. Dave On Mon, Mar 01, 2021 at 03:29:44PM +0100, stes at PANDORA.BE wrote: > > > Hi, > > I tried building opensmalltalk on Linux and for me when I launch the VM, > then quit it, I get: > > aioDisable: epoll_ctl: Bad file descriptor > > I modified the mvm script build.linux64x64/squeak.cog.spur/build/mvm > and rebuilt with > > ax_cv_have_epoll=no ax_cv_have_epoll_pwait=no > > that works and when I then launch and quit the VM the > > aioDisable: epoll_ctl: Bad file descriptor > > is not printed. > > Both OpenIndiana and Linux have epoll(7) but I'm unsure whether it > is desired to disable epoll or to enable epoll. > > Thanks, > David Stes > From lewis at mail.msen.com Tue Mar 2 00:04:10 2021 From: lewis at mail.msen.com (David T. Lewis) Date: Mon, 1 Mar 2021 19:04:10 -0500 Subject: [Vm-dev] regression: TestObjectsAsMethods crash in 4.19.5 (not in 4.16.7) In-Reply-To: <766189717.50931693.1614619258680.JavaMail.zimbra@telenet.be> References: <949389016.25753821.1613919758428.JavaMail.zimbra@telenet.be> <605876499.30501015.1614071179388.JavaMail.zimbra@telenet.be> <766189717.50931693.1614619258680.JavaMail.zimbra@telenet.be> Message-ID: <20210302000410.GA79682@shell.msen.com> On Mon, Mar 01, 2021 at 06:20:58PM +0100, stes at PANDORA.BE wrote: > > > Install primitiveArrayBecomeOneWayNoCopyHash as primitive 248 > > replacing obsolete primitiveInvokeObjectAsMethod. > > Any news on this Tests-ObjectsAsMethods issue ? > > The purpose of those tests are not clear to me; > > Perhaps the change for the "primitives" which was made, can be reverted ? > > Possibly that creates a new problem for primitiveArrayBecomeOneWayNoCopyHash. > > David Stes > You can consider this a bug in the most recent interpreter VMs. I had failed to notice that there is a hard coded reference to that primitive number within the VM itself, and this reference is now resulting in invocation of the wrong function. A trivial fix is to rearrange some primtive number assignments, but the correct thing to do is adopt the logic that Eliot uses in oscog so that the function is not invoked as a "primitive" at all. I'll try to follow up on this next week. Dave From noreply at github.com Tue Mar 2 00:31:34 2021 From: noreply at github.com (Eliot Miranda) Date: Mon, 01 Mar 2021 16:31:34 -0800 Subject: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 15fdea: Update from c++11 to c++14 on MacOS builds. Affec... Message-ID: Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 15fdeaa142257eeb6bff3b41014f2f407420a70d https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/15fdeaa142257eeb6bff3b41014f2f407420a70d Author: Eliot Miranda Date: 2021-03-01 (Mon, 01 Mar 2021) Changed paths: M build.macos32x86/common/Makefile.rules M build.macos64ARMv8/common/Makefile.rules M build.macos64x64/common/Makefile.rules Log Message: ----------- Update from c++11 to c++14 on MacOS builds. Affects only Bochs simulators and Terf plugins, hence [ci skip] From tim at rowledge.org Tue Mar 2 04:08:31 2021 From: tim at rowledge.org (tim Rowledge) Date: Mon, 1 Mar 2021 20:08:31 -0800 Subject: [Vm-dev] unix SqueakSource socket 'too many open files' problem In-Reply-To: <1afb3b3d-82b7-413e-5f5c-2fa155cbc3b9@gmail.com> References: <0E53D947-69DB-46D1-906F-E173B1FD3661@rowledge.org> <20210225211202.GA55616@shell.msen.com> <237F031E-D0DC-4CAE-ADB9-1D3BF5A93CB0@rowledge.org> <20210225231714.GA78767@shell.msen.com> <41B85629-A9EF-48E7-807B-3EA8CDD6652B@rowledge.org> <20210226211244.GA85415@shell.msen.com> <1afb3b3d-82b7-413e-5f5c-2fa155cbc3b9@gmail.com> Message-ID: <9899BB21-3B3F-4315-963A-0BD4A2E939CC@rowledge.org> > On 2021-02-26, at 10:32 PM, K K Subbu wrote: > > On 27/02/21 2:42 am, David T. Lewis wrote: >> Here is what I saw on the squeaksource.com server a few minutes ago: >> squeaksourcecom at dan:~$ ls -l /proc/16147/fd > > The socket count can be generated directly with: > > $ ls -l /proc/$(pgrep squeak)/fd | grep -c socket: That's pretty neat, thanks. > > This can then be visually graphed every, say, 3600s with: > > bars='======================================================+'; > while true; do > echo $bars | cut -c 1-$(ls -l /proc/$(pgrep squeak)/fd | grep -c socket:) > sleep 3600 > done > Goodness; shell script bargraphs. Whatever next? > If this shows a monotonic growth, then a leak can be suspected. I'm pretty sure there is a slow leak; but slow. It's climbed from 19 to 30 over three days tim -- tim Rowledge; tim at rowledge.org; "You're a ghost driving a meat-coated skeleton made from stardust, riding a rock, hurtling through space. Fear nothing" From kksubbu.ml at gmail.com Tue Mar 2 12:18:25 2021 From: kksubbu.ml at gmail.com (K K Subbu) Date: Tue, 2 Mar 2021 17:48:25 +0530 Subject: [Vm-dev] unix SqueakSource socket 'too many open files' problem In-Reply-To: <9899BB21-3B3F-4315-963A-0BD4A2E939CC@rowledge.org> References: <0E53D947-69DB-46D1-906F-E173B1FD3661@rowledge.org> <20210225211202.GA55616@shell.msen.com> <237F031E-D0DC-4CAE-ADB9-1D3BF5A93CB0@rowledge.org> <20210225231714.GA78767@shell.msen.com> <41B85629-A9EF-48E7-807B-3EA8CDD6652B@rowledge.org> <20210226211244.GA85415@shell.msen.com> <1afb3b3d-82b7-413e-5f5c-2fa155cbc3b9@gmail.com> <9899BB21-3B3F-4315-963A-0BD4A2E939CC@rowledge.org> Message-ID: <96b07b8d-ed38-5343-2a71-4d7b79243033@gmail.com> On 02/03/21 9:38 am, tim Rowledge wrote: >> If this shows a monotonic growth, then a leak can be suspected. > I'm pretty sure there is a slow leak; but slow. It's climbed from 19 to 30 over three days Tim, Ugh! slow leaks can be really annoying to diagnose. You may narrow down the specific leak with ss (socket stats) $ ss -s to get a breakdown by tcp/udp ipv4/ipv6 etc. or $ ss state close-wait to catch all sockets in close-wait state. The arguments is a filter condition and the man page gives examples of various filter expressions. You may also use the watch command to sample it every day (-n 86400) and highlight the difference (-d): $ watch -n 86400 -d ss state close-wait BTW, an early trick I learned is to keep a small terminal running such commands in a corner (or second monitor these days). This lets me use the center of the screen for all active work. Any gross changes in shape (char graphs ;-)) or highlight will catch the corner of the eye. HTH .. Subbu From stes at telenet.be Wed Mar 3 15:50:29 2021 From: stes at telenet.be (stes@PANDORA.BE) Date: Wed, 3 Mar 2021 16:50:29 +0100 (CET) Subject: [Vm-dev] aioDisable: epoll_ctl: Bad file descriptor In-Reply-To: <1679457806.50325514.1614608984251.JavaMail.zimbra@telenet.be> References: <1679457806.50325514.1614608984251.JavaMail.zimbra@telenet.be> Message-ID: <1232427951.2281475.1614786629222.JavaMail.zimbra@telenet.be> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi, Good news; I tried your changes related to epoll(7) support, and in to my limited testing so far, it seems an improvement. I tried on my Linux test server: $ git branch * (HEAD detached at origin/dtl/epoll-forksqueak) Cog I built on Linux from that epoll-forksqueak branch, $ grep EPOLL config.h #define HAVE_EPOLL 1 #define HAVE_EPOLL_PWAIT 1 now for both the Cog and Stack Spur VM, when I launch it on Linux, then quit it, I do *not* get the : aioDisable: epoll_ctl: Bad file descriptor However the odd thing now is that if I try the main Cog branch on Linux, I'm not getting the error any longer, so it seems to be gone. I may by coincidence have seen the message, while it may be perhaps not 100% reproducible but happening only occasionaly. Anyway when on OpenIndiana (not Linux), I tried: configure configure decides for me that it wants to enable epoll on OpenIndiana: $ uname SunOS $ grep EPOLL config.h #define HAVE_EPOLL 1 #define HAVE_EPOLL_PWAIT 1 so also on OpenIndiana (which is in the SunOS family) configure enables epoll. $ git branch * (HEAD detached at origin/dtl/epoll-forksqueak) Cog so I compiled that version on OpenIndiana (with epoll as set by configure). When I launch it, do something (open some browser), then quit it, no error. I tried sqstkspur64 and sqcogspur64. Actually on OpenIndiana I have so far never seen the aioDisable: epoll_ctl: Bad file descriptor for the time epoll was enabled (a few months ago now). But I have a feeling that these issues can be quite complex and subtle, and that the issue may only be happening on some occasions. In any case as far as I can see, your 'branch' seems an improvement. David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJgP7AKAAoJEAwpOKXMq1MaJXYH/ijJkk5Qg5K6gfC8C5F36kZp EYr4yCfpibaYUgjg206MV9yN/RHUPnl+cnZtKzyv9xPgkdfDjZfA+V1IDahXnH/O BmJNR3Y3bpJasDzlaTp/cCS9wJFrM54v1o92ZTERe9xIfGufTZSTLxRos/nh0gNy a6jwj7GYnhORykXJAIrMCDA3Mnu9ziYPN5O/ycYfp2AfoLvQZHb8qsX5W4AD8JB+ 0kIsnrLfShyTC8M8m3tWy6r2fKeMQc5FH8IK0hxZCqe19RSRnrBo+RhhP9GBV7sX B6ZUNNGsoyE/CDgUK3l5yn5E7d7/Q2LixmqYcmAlbE96q79+hKXYVivvBTTM+2I= =hhf5 -----END PGP SIGNATURE----- From noreply at github.com Thu Mar 4 20:42:18 2021 From: noreply at github.com (Eliot Miranda) Date: Thu, 04 Mar 2021 12:42:18 -0800 Subject: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 04af39: C reserved words if, while, switch are not function ... Message-ID: Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 04af39a36e2bea3ffa20234d2ba5c983205bc759 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/04af39a36e2bea3ffa20234d2ba5c983205bc759 Author: Eliot Miranda Date: 2021-03-04 (Thu, 04 Mar 2021) Changed paths: M platforms/win32/vm/sqWin32.h M platforms/win32/vm/sqWin32Alloc.c M platforms/win32/vm/sqWin32DirectInput.c M platforms/win32/vm/sqWin32DnsInfo.c M platforms/win32/vm/sqWin32HandleTable.h M platforms/win32/vm/sqWin32Heartbeat.c M platforms/win32/vm/sqWin32Main.c M platforms/win32/vm/sqWin32Prefs.c M platforms/win32/vm/sqWin32Service.c M platforms/win32/vm/sqWin32Time.c M platforms/win32/vm/sqWin32Window.c Log Message: ----------- C reserved words if,while,switch are not function calls. Hence always put a space before the following parenthesis. From no-reply at appveyor.com Thu Mar 4 21:01:32 2021 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Mar 2021 21:01:32 +0000 Subject: [Vm-dev] Build failed: opensmalltalk-vm 1.0.2410 Message-ID: <20210304210132.1.4841081B85528211@appveyor.com> An HTML attachment was scrubbed... URL: From eliot.miranda at gmail.com Fri Mar 5 03:00:57 2021 From: eliot.miranda at gmail.com (Eliot Miranda) Date: Thu, 4 Mar 2021 19:00:57 -0800 Subject: [Vm-dev] Removing the old pre-event-driven input polling input primitives Message-ID: Hi all, I'm just checking. It seems to me that primitives 90, 107, & 108, oldPrimMousePt, oldPrimMouseButtons, & oldPrimKbdNext, have been obsolete for a very long time. Am I correct? Is there any possibility these could be relevant to a Cog VM, that is any image from 4.0 on? WOuld removing the support for these primitives form the VM potentially impact porting old Etoys projects? Any other potential impacts? I'd like to nuke the code to ease extending the VM to support modern mice, which have many more buttons available, because it makes things unnecessarily complicated. _,,,^..^,,,_ best, Eliot -------------- next part -------------- An HTML attachment was scrubbed... URL: From commits at source.squeak.org Fri Mar 5 20:30:59 2021 From: commits at source.squeak.org (commits at source.squeak.org) Date: Fri, 5 Mar 2021 20:30:59 0000 Subject: [Vm-dev] VM Maker: VMMaker.oscog-eem.2946.mcz Message-ID: Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2946.mcz ==================== Summary ==================== Name: VMMaker.oscog-eem.2946 Author: eem Time: 5 March 2021, 12:30:49.883238 pm UUID: 461911e1-d450-4f05-8a40-7b0470487041 Ancestors: VMMaker.oscog-eem.2945 Nuke the obsolete polling input primitives primitiveMouseButtons, primitiveKbdNext et al. These really are irrelevant to all images that run on Cog VMs. Fix a couple of compiler warnings. =============== Diff against VMMaker.oscog-eem.2945 =============== Item was changed: ----- Method: CogMethodZone>>cogMethodContaining: (in category 'jit - api') ----- cogMethodContaining: mcpc "Answer the method containing mcpc for the purposes of code zone compaction, where mcpc is actually the value of instructionPointer at the time of a compaction." | cogMethod prevMethod | mcpc > limitAddress ifTrue: [^nil]. mcpc < baseAddress ifTrue: [cogit assertMcpcIsPrimReturn: mcpc. ^nil]. + self assert: mcpc < self freeStart. - self assert: mcpc < self limitZony. cogMethod := coInterpreter cCoerceSimple: baseAddress to: #'CogMethod *'. [cogMethod asUnsignedInteger < mcpc] whileTrue: [prevMethod := cogMethod. cogMethod := self methodAfter: cogMethod]. "Since mcpc is actually instructionPointer we expect that it is either at the stack check (normal code zone reclamation invoked through checkForEventsMayContextSwitch:) or is in a primitive, immediately following the call of the C primitive routine." self assert: (prevMethod notNil and: [mcpc = (prevMethod asUnsignedInteger + prevMethod stackCheckOffset) or: [(cogit backEnd isCallPrecedingReturnPC: mcpc) and: [(coInterpreter primitiveIndexOfMethod: prevMethod methodObject header: prevMethod methodHeader) > 0 or: [(cogit backEnd callTargetFromReturnAddress: mcpc) = cogit ceCheckForInterruptTrampoline]]]]). ^prevMethod! Item was changed: ----- Method: InterpreterPrimitives>>primitiveKbdNext (in category 'I/O primitives') ----- primitiveKbdNext "Obsolete on virtually all platforms; old style input polling code. Return the next keycode and remove it from the input buffer. The low byte is the 8-bit ISO character. The next four bits are the Smalltalk modifier bits