[Vm-dev] nuSqueak source

Yoshiki Ohshima Yoshiki.Ohshima at acm.org
Wed Oct 28 15:34:14 UTC 2020


Come to think of it, a better fix for a problem like this one:

 KeySym symbolic;
 int keyCode= x2sqKey(&evt->xkey, &symbolic);
 int ucs4= xkeysym2ucs4(symbolic);

was (obviously) to change the first line to:

 KeySym symbolic= 0;

rather than to try to store 0 into *symbolic on the callee side. (A
professor of my college days once told us that "most bugs are related to
uninitialized variables."  I should've known better.)

When I get  around to it, I'll make another change and this time make a
pull request.


On Tue, Oct 27, 2020 at 11:43 AM Eliot Miranda <eliot.miranda at gmail.com>
wrote:

>
>
>
> On Tue, Oct 27, 2020 at 11:14 AM Yoshiki Ohshima <Yoshiki.Ohshima at acm.org>
> wrote:
>
>>
>> Thanks!  Maybe I should not have sent a separate email to Eliot ^^;
>>
>
> Don't sweat it :-)  Fixes gratefully received :-)  Thanks *very* much for
> attending to the input issue. Much appreciated.
>
>>
>> On Tue, Oct 27, 2020 at 10:46 AM Nicolas Cellier <
>> nicolas.cellier.aka.nice at gmail.com> wrote:
>>
>>>
>>> Ah too late, Eliot was faster, hit the pull request next time :)
>>>
>>> Le mar. 27 oct. 2020 à 18:43, Nicolas Cellier <
>>> nicolas.cellier.aka.nice at gmail.com> a écrit :
>>>
>>>> Hi Yoshiki,
>>>> what you could do is
>>>> 1) revert the changes to sqPlatformSpecific.h (fseek, ftell) since we
>>>> have a working workaround now
>>>> 2) just create a pull request from the github web interface (that's
>>>> rather easy)
>>>> It will be very easy for us to integrate (one click), and we'll keep
>>>> your authorship.
>>>>
>>>> Le mar. 27 oct. 2020 à 18:02, Yoshiki Ohshima <Yoshiki.Ohshima at acm.org>
>>>> a écrit :
>>>>
>>>>>
>>>>> I have a branch on a clone on github:
>>>>>
>>>>>
>>>>> https://github.com/yoshikiohshima/opensmalltalk-vm/tree/composition-input-fix-2020-Oct
>>>>>
>>>>> It might be easier to pull from this?  Separately, I'll mail you
>>>>> sqUnixX11.c.
>>>>>
>>>>> On Tue, Oct 27, 2020 at 9:58 AM Eliot Miranda <eliot.miranda at gmail.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> Hi Yoshiki,
>>>>>>
>>>>>>     on my Mac patch isn't smart enough to decode a git diff.  Can you
>>>>>> just email me your platforms/unix/vm-display-X11/sqUnixX11.c and I'll
>>>>>> integrate?  Thanks!
>>>>>>
>>>>>> On Tue, Oct 27, 2020 at 8:21 AM Yoshiki Ohshima <
>>>>>> Yoshiki.Ohshima at acm.org> wrote:
>>>>>>
>>>>>>>
>>>>>>> The previous one was just a hack but I think I found the real
>>>>>>> problem. It was about the variable symbolic, that gets symbolic key code
>>>>>>> *when* it is needed has to be zero'ed  out when it is not needed.
>>>>>>>
>>>>>>> The diff is attached... I'll a make pull request if that helps.
>>>>>>>
>>>>>>> On Sat, Oct 24, 2020 at 5:32 PM Yoshiki Ohshima <
>>>>>>> Yoshiki.Ohshima at acm.org> wrote:
>>>>>>>
>>>>>>>> For the /build.linuxARMv6/squeak.cog.spur/build.debug  case, a
>>>>>>>> hack I did was like this:
>>>>>>>>
>>>>>>>> diff --git a/platforms/unix/vm/sqPlatformSpecific.h
>>>>>>>> b/platforms/unix/vm/sqPlatformSpecific.h
>>>>>>>>
>>>>>>>> index 268593673..bfb57257b 100644
>>>>>>>>
>>>>>>>> --- a/platforms/unix/vm/sqPlatformSpecific.h
>>>>>>>>
>>>>>>>> +++ b/platforms/unix/vm/sqPlatformSpecific.h
>>>>>>>>
>>>>>>>> @@ -105,8 +105,8 @@ extern void sqFilenameFromString(char *uxName,
>>>>>>>> sqInt stNameIndex, int sqNameLeng
>>>>>>>>
>>>>>>>>  #undef sqFTruncate
>>>>>>>>
>>>>>>>>  /* sqFTruncate should return 0 on success, ftruncate does also */
>>>>>>>>
>>>>>>>>  #define        sqFTruncate(f,o) ftruncate(fileno(f), o)
>>>>>>>>
>>>>>>>> -#define ftell(s) ftello(s)
>>>>>>>>
>>>>>>>> -#define fseek(s,o,w) fseeko(s,o,w)
>>>>>>>>
>>>>>>>> +// #define ftell(s) ftello(s)
>>>>>>>>
>>>>>>>> +// #define fseek(s,o,w) fseeko(s,o,w)
>>>>>>>>
>>>>>>>>
>>>>>>>>  #if defined(__GNUC__)
>>>>>>>>
>>>>>>>>  # if !defined(VM_LABEL)
>>>>>>>>
>>>>>>>> diff --git a/spur64src/vm/cogit.c b/spur64src/vm/cogit.c
>>>>>>>>
>>>>>>>> index d62b05f40..e1c14a021 100644
>>>>>>>>
>>>>>>>> --- a/spur64src/vm/cogit.c
>>>>>>>>
>>>>>>>> +++ b/spur64src/vm/cogit.c
>>>>>>>>
>>>>>>>> @@ -6,6 +6,8 @@
>>>>>>>>
>>>>>>>>  # define SysV 1
>>>>>>>>
>>>>>>>>  #endif
>>>>>>>>
>>>>>>>>
>>>>>>>> +#define __arm64__
>>>>>>>>
>>>>>>>> +
>>>>>>>>
>>>>>>>>  #if defined(__arm64__) || defined(__aarch64__) ||
>>>>>>>> defined(__ARM_ARCH_ISA_A64) || defined(ARM64) || defined(ARMv8)
>>>>>>>>
>>>>>>>>
>>>>>>>> and this produced a runnable VM on Raspberry Pi4
>>>>>>>>
>>>>>>>> On Sat, Oct 24, 2020 at 4:41 PM Yoshiki Ohshima <
>>>>>>>> Yoshiki.Ohshima at acm.org> wrote:
>>>>>>>>
>>>>>>>>> And I tried a few more things by checking out the last release tag
>>>>>>>>> 202003021730 or try opensmalltalk-vm/build.
>>>>>>>>> linuxARMv6/squeak.cog.spur/build.debug but those attempts did not
>>>>>>>>> work. For the latter got this error:
>>>>>>>>>
>>>>>>>>> In file included from /usr/include/features.h:424,
>>>>>>>>>
>>>>>>>>>                  from /usr/include/pthread.h:21,
>>>>>>>>>
>>>>>>>>>                  from
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:62,
>>>>>>>>>
>>>>>>>>>                  from
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16,
>>>>>>>>>
>>>>>>>>>                  from
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/unix/vm/aio.c:35:
>>>>>>>>>
>>>>>>>>> /usr/include/stdio.h:721:12: error: conflicting types for ‘fseeko’
>>>>>>>>>
>>>>>>>>>  extern int __REDIRECT (fseeko,
>>>>>>>>>
>>>>>>>>>             ^~~~~~~~~~
>>>>>>>>>
>>>>>>>>> In file included from
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/Cross/vm/sqAssert.h:16,
>>>>>>>>>
>>>>>>>>>                  from
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/unix/vm/aio.c:35:
>>>>>>>>>
>>>>>>>>> /home/pi/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:109:22:
>>>>>>>>> note: previous declaration \
>>>>>>>>>
>>>>>>>>> of ‘fseeko’ was here
>>>>>>>>>
>>>>>>>>>  #define fseek(s,o,w) fseeko(s,o,w)
>>>>>>>>>
>>>>>>>>>                       ^~~~~~
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, Oct 24, 2020 at 1:59 PM Yoshiki Ohshima <
>>>>>>>>> Yoshiki.Ohshima at acm.org> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Eliot,
>>>>>>>>>>
>>>>>>>>>> For build.linux64ARMv8/squeak.cog.spur/build.debug, i get the
>>>>>>>>>> following error. I think I followed the steps in the instructions,
>>>>>>>>>> including running updateSCCSVersion and mvm. How can I fix it?
>>>>>>>>>>
>>>>>>>>>> /home/pi/opensmalltalk-vm/spur64src/vm/cogit.c:22:3: error:
>>>>>>>>>> #error As yet no Cogit implementation appears to exist for your platform.
>>>>>>>>>>
>>>>>>>>>>  # error As yet no Cogit implementation appears to exist for
>>>>>>>>>> your platform.
>>>>>>>>>>
>>>>>>>>>>    ^~~~~
>>>>>>>>>>
>>>>>>>>>> /home/pi/opensmalltalk-vm/spur64src/vm/cogit.c:23:3: error:
>>>>>>>>>> #error Consider implementing it, starting by adding a subclass of
>>>>>>>>>> CogAbstractInstruction.
>>>>>>>>>>
>>>>>>>>>>  # error Consider implementing it, starting by adding a subclass
>>>>>>>>>> of CogAbstractInstruction.
>>>>>>>>>>
>>>>>>>>>>    ^~~~~
>>>>>>>>>>
>>>>>>>>>> make[1]: *** [Makefile:207: cogit.o]
>>>>>>>>>>
>>>>>>>>>> On Wed, Oct 21, 2020 at 10:21 AM Eliot Miranda <
>>>>>>>>>> eliot.miranda at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Hi Yoshiki,
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Oct 21, 2020 at 10:14 AM Yoshiki Ohshima <
>>>>>>>>>>> Yoshiki.Ohshima at acm.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I heard that people got a new problem in inputting Japanese
>>>>>>>>>>>> text into Scratch 1.4 running on Raspberry Pi OS after, or around the
>>>>>>>>>>>> version 2020-08-20. I would like to take a look at it but it might involve
>>>>>>>>>>>> recompiling and generating  the VM with debugging info.  Last time I looked
>>>>>>>>>>>> into it was years and years ago and I need to basically make a fresh start.
>>>>>>>>>>>>
>>>>>>>>>>>> Is the process of making NuSqeauk VM For Raspberry Pi up to
>>>>>>>>>>>> date and straightforward? Can people point me to the right point to start?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Making a Cog VM for Raspberry pi is straight-forward.  Clone
>>>>>>>>>>> opensmalltalk-vm.  cd to build.linux64ARMv8, read the HowToBuild, cd to build.linux64ARMv8/squeak.cog.spur/build.debug,
>>>>>>>>>>> or build.linux64ARMv8/squeak.stack.spur/build.debug, then run
>>>>>>>>>>> ./mvm
>>>>>>>>>>>
>>>>>>>>>>> _,,,^..^,,,_
>>>>>>>>>>> best, Eliot
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> -- Yoshiki
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> -- Yoshiki
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> -- Yoshiki
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -- Yoshiki
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> _,,,^..^,,,_
>>>>>> best, Eliot
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> -- Yoshiki
>>>>>
>>>>>
>>
>> --
>> -- Yoshiki
>>
>>
>
> --
> _,,,^..^,,,_
> best, Eliot
>


-- 
-- Yoshiki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201028/557c6a5b/attachment-0001.html>


More information about the Vm-dev mailing list