With libevdev, mouse and keyboard are bound to devices in /dev/input with names like "event0" and "event1".
Different keyboard/mouse hw binds to different numbers, so it is important to allow overrides via shell variables.
E.g.
SQUEAK_MSDEV=/dev/input/event1
SQUEAK_KBDEV=/dev/input/event0
vs
SQUEAK_MSDEV=/dev/input/event0
SQUEAK_KBDEV=/dev/input/event1
Mouse rebinding works, but not keyboard rebinding.
--
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/issues/575
O2 and O1 compilation produce a segmentation fault due to stack corruption (when debugging we saw some extra pushes from the stack) on callbacks return. This happens on windows 32, when compiling with mingw gcc 7.4.0.
The issue can be reproduced easily by running the Alien qsort example in latest vms in both Pharo and Squeak.
This PR proposes to patch just the thunkEntry function. Not optimizing just that function solves the issue in our environment, though maybe there is a more fine-grained solution. We should still investigate what is the particular optimization that causes the problem.
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/353
-- Commit Summary --
* Patch callback thunkEntry to not optimize, failing in win32 using gcc 7.4.0
-- File Changes --
M platforms/Cross/plugins/IA32ABI/ia32abicc.c (2)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/353.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/353.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/353
In addition to the existing alpha blending rules (24 and 34), I propose 3 new additional rules.
Check https://en.wikipedia.org/wiki/Alpha_compositing
Existing rule 34 is a correct implementation of Alpha Blending for scaled forms, i.e. if premultiplied alpha is used. But rule 24 is a correct implementation of non-scaled forms, only for the case where destination is opaque (i.e. it's alpha is 1.0 in every pixel). If destination includes translucency (or it is completely transparent), the result is not correct. In order to fix it, the RGB of each pixel need to be divided by the pixel alpha.
The proposed blendUnscaled is the basic (for non-scaled forms) alpha blending described in Wikipedia. Note that users knowing that destination background is opaque might call the faster rule 24 instead.
The other two additional proposed rules are for converting to and from premultiplied alpha.
EXISTING blend 24 alphaBlend
resultAlpha = srcAlpha + destAlpha*(1-srcAlpha)
resultRGB = srcAlpha*source + (1-srcAlpha)*dest
EXISTING blendAlphaScaled 34 alphaBlendScaled
resultRGBA = source + (1-srcAlpha)*dest
NEW PROPOSED multiplyRGBByAlpha
Non premultiplied alpha -> premultiplied alpha. Only uses destination. Alpha unmodified. For each RGB component,
resultRGB = dest*destAlpha
NEW PROPOSED divideRGBByAlpha
Premultiplied alpha -> non premultiplied alpha. Only uses destination. Alpha unmodified. For each RGB component,
resultRGB = dest/destAlpha
NEW PROPOSED blendUnscaled
Equivalent to blend, and then divideRGBByAlpha
resultAlpha = srcAlpha + destAlpha*(1-srcAlpha)
resultRGB = (srcAlpha*source + (1-srcAlpha)*dest) / resultAlpha
This would allow handling of scaled (premultiplied-alpha) forms, and blending of regular forms including translucency, without the need to call slower smalltalk code to fix the results.
--
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/issues/505
After making sure a string was not interned, ( "Symbol findInterned: 'test123'" returned nil ), I did
| s | s := #TEST123.
s translateToLowercase.
s -> (Symbol findInterned: s)
and the resulting s is a Symbol and it is not interned.
To make sure that the primitive is invoked (and not its fallback code), put a halt in ByteString class >> #translate:from:to:table:
--
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/issues/561
Hi guys,
i report you that according to my latest tests with Cuis on a BeagleBone Black the
VM in the title is not running.
But the latest-build does run !
bye
================= output ==================================
root@beaglebone:~/cuis-project# ./sqcogspurlinuxhtRPi/squeak Cuis-Smalltalk-Dev/Cuis5.0-4834-32.image
Segmentation fault Wed Sep 15 15:55:11 2021
/root/cuis-project/sqcogspurlinuxhtRPi/lib/squeak/5.0-202003021730/squeak
Squeak VM version: 5.0-202003021730 Tue Mar 3 09:42:45 UTC 2020 gcc 4.9.2 [Production Spur VM]
Built from: CoInterpreter VMMaker.oscog-nice.2712 uuid: da64ef0b-fb0a-4770-ac16-f9b448234615 Mar 3 2020
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2719 uuid: e40f3e94-3a54-411b-9613-5d19114ea131 Mar 3 2020
Revision: VM: 202003021730 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
Date: Mon Mar 2 18:30:55 2020 CommitHash: 6a0bc96
Plugins: 202003021730 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
Build host: Linux travis-job-97835d24-79f4-41d1-b7e9-c81bd8bf7149 4.4.0-104-generic #127~14.04.1-Ubuntu SMP Mon Dec 11 12:44:15 UTC 2017 armv7l GNU/Linux
plugin path: ./sqcogspurlinuxhtRPi/lib/squeak/5.0-202003021730 [default: /root/cuis-project/sqcogspurlinuxhtRPi/lib/squeak/5.0-202003021730/]
C stack backtrace & registers:
r0 0x00000000 r1 0x03004c70 r2 0x03004d30 r3 0x03004c70
r4 0x00000000 r5 0xbe952e90 r6 0x03012d40 r7 0x00224250
r8 0x00000000 r9 0x00000001 r10 0x00216288 fp 0x0021a278
ip 0x000005ec sp 0xbe950ea8 lr 0x00069290 pc 0x0004fe44
*[0x0]
/lib/arm-linux-gnueabihf/libc.so.6(vsprintf+0x4e)[0xb6d2a293]
Smalltalk stack dump:
0xbe952e64 M SystemDictionary(Set)>findElementOrNil: 0x30cc098: a(n) SystemDictionary
0xbe952e90 I SystemDictionary(Dictionary)>at:put: 0x30cc098: a(n) SystemDictionary
0xbe952ebc I SystemDictionary>at:put: 0x30cc098: a(n) SystemDictionary
0xbe952f08 I [] in SystemDictionary>snapshot:andQuit:embedded:clearAllClassState: 0x30cc098: a(n) SystemDictionary
0x3a79bf0 s [] in BlockClosure>newProcess
Most recent primitives
maxIdentityHash
identityHash
at:
at:
stack page bytes 4096 available headroom 2788 minimum unused headroom 3776
(Segmentation fault)
Aborted
root@beaglebone:~/cuis-project#
==========================================
--
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/issues/597
I'm running Cog on aarch64, and because I have an old linux kernel (v3.18.140) which I cannot upgrade (it's a repurposed PostmarketOS Android device), Cog yields illegal instruction trying to execute `mrs x0, id_aa64isar0_el1`. This instruction is privileged, but later linux kernels trap and emulate it for userspace.
Given that it's currently only being used to detect presence of atomic instructions (`self setHasAtomicInstructions: (idISAR0 >> 20 bitAnd: 2r1111) = 2r10`), and there's a kernel API for retrieving that specific bit of information (<https://www.kernel.org/doc/html/latest/arm64/elf_hwcaps.html> suggests HWCAP_ATOMICS), perhaps instead of using the instruction directly Cog could call the relevant `getauxval` variant?
For now, I have the Stack VM running well on aarch64, so I can make progress, even if it is a little slower than it could be :-)
--
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/issues/608
I am trying to build the unix sources for this project, exactly following the `HowToBuildFromSources` manual (the easy way). But unfortunately, when running `make` I get an error that `bld/plugins.int` is missing:
```
$ make
[ -d bld ] || mkdir bld
[ -f bld/Makefile ] || ( cd bld; ../config/configure; )
checking for gcc... gcc
# ... (75 lines skipped)
checking whether to build static libraries... no
/workspace/opensmalltalk-vm/src
/workspace/opensmalltalk-vm/src/plugins
checking sanity of generated src directory... bad
missing file: /workspace/opensmalltalk-vm/platforms/unix/bld/plugins.int
make: *** [Makefile:5: all] Error 1
```
See yourself:
[](https://gitpod.io/#snapshot/9bc102f3-ba84-437f-a226-a8851782c41b)
Is it me or is the documentation of the build process not up to date? Looking forward to your help!
--
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/issues/507