On Tue, May 24, 2016 at 8:20 PM, David T. Lewis lewis@mail.msen.com wrote:
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@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:
- 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.
In any case, I built an interpreter VM (of trunk, rev. 3730). But I get an error:
This interpreter (vers. 0) cannot read image file (vers. 6521)
Any thoughts?