[squeak-dev] International text input on X11

David T. Lewis lewis at mail.msen.com
Wed May 25 03:20:34 UTC 2016


On Tue, May 24, 2016 at 09:50:45AM -0700, Yoshiki Ohshima wrote:
> 
> On Sun, May 22, 2016 at 5:03 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> > On Sun, May 15, 2016 at 10:27:13PM -0400, David T. Lewis wrote:
> >>
> >> If I understand correctly, here is what we need to do:
> >>
> >> 1) Apply the changes of Mr Hachisuka to the VM.
> >>  - The diff is in the earlier email from Yoshiki:
> >>       http://lists.squeakfoundation.org/pipermail/squeak-dev/2016-May/189599.html
> >>       http://www2.asu.ac.jp/hachi/v3/scratch14ime.html
> >>  - Test updated VM to make sure the changes do not cause problems. Make sure
> >>    it works without problems for Squeak trunk and for Scratch.
> >>  - Apply the update in SVN for both oscog and trunk. I can help here.
> >>  - Test the VM. Tim, I need help on this. I do not currently have a working
> >>    Cog build environment (Unbuntu/autotools/gcc version issues). Can you
> >>    apply the patch from Yoshiki's email and see if your resulting Cog VM
> >>    continues to work for you as expected on Pi with Scratch?
> >>  - Yoshiki, we should give credit to Mr Hachisuka for his contribution. Can
> >>    you please give his full name for the commit notice? I assume the patch
> >>    is MIT licensed.
> >>
> >
> > Hi Yoshiki,
> >
> > I think that I now understand the VM changes for sqUnixX11.c, and I have applied
> > the changes of Mr Hachisuka and committed them to the SVN trunk for interpreter
> > VM. If these changes are correct, then I will also make a patch and commit them
> > to the oscog branch for Cog/Spur VMs.
> >
> > I arranged the code such that the multibyte recordPendingKeys() logic is used
> > if and only if the -compositioninput option is set on the command line or the
> > equivalent SQUEAK_COMPOSITIONINPUT environment variable is set. I believe that
> > this is the intended usage, but please let me know if I did not understand.
> >
> > If you are able to compile an interpreter VM (http://wiki.squeak.org/squeak/6354),
> > then please let me know if these changes work as you expect. If you cannot easily
> > make an interpreter VM, then I can commit the changes to the Cog/Spur branch,
> > but I would prefer to test them first if possible.
> 
> It does buiid.  Yay.  The build directory structure seems to be
> different from Cog, though.  How do I test a VM that is just
> generated?  Do people set different install directory someways?
>

I do not think that there is any standard approach for this, but here is
what I do for my own use:

- Install a Cog VM. Rename the /usr/local/bin/squeak file to /usr/local/bin/cog.
This is the 32-bit JIT VM for Squeak V3 images.

- Install a Spur VM. Rename /usr/local/bin/squeak file to /usr/local/bin/spur.
This is the 32-bit JIT Spur VM for Spur images.

- Install Spur 64 bit VM. Rename the /usr/local/bin/squeak file to /usr/local/bin/spur64.
This is the 64-bit JIT Spur VM for 64 bit Spur images.

- Compile and install trunk interpreter VM. Do not rename the /usr/local/bin/squeak
file. These are the 64-bit VMs for both 32-bit V3 image and 64-bit V3 image.

With this arrangement, I type "cog" when I want to run a Cog VM, "spur" when I
want to run a Spur VM, and "spur64" when I want to run a 64-bit Spur. For
either 32-bit or 64-bit V3 images, I type "squeak".

I also have a script of my own making installed as /usr/local/bin/vmrun
that selects an appropriate VM based on the image format, but I no longer
use it because I usually know which VM I want anyway, so it is better for
me to just use "cog", "spur", "spur64", or "squeak" directly.

Yoshiki, I should mention that since my last email, I have also updated
the SVN oscog branch so that the -compositionInput option will work on Cog
and Spur. This means that we can apply the sqUnixX11.c patch for Cog and
Spur also, and it should now work the same as for the interpreter VM. But
I appreciate very much if you can first confirm that the patch works as
you expect on interpreter VM. Then we can apply the update for Cog/Spur
so that it can be used for Scratch on Raspberry Pi.

I am sorry if I am moving too slowly here, but I do not understand how
multibyte character composition should work, so I am trying to be careful
with the changes.

Dave
 


More information about the Squeak-dev mailing list