Hi David,
I've verified that VMMaker-dtl.357 produces code which compiles without error and (seemingly) correctly on Plan9! Thank you for merging my changes, I appreciate it.
-Alex
On 12/30/2014 07:09 PM, David T. Lewis wrote:
On Tue, Dec 23, 2014 at 12:30:49PM -0500, Alex Franchuk wrote:
This summary is correct. Is there anything else you need from me?
Hi Alex,
I have merged your changes into the VMMaker package for the interpreter VM. I made a few changes to merge it into the latest version and to avoid adding new methods in Squeak trunk. I think that I have it right now, but I'd appreciate if you have a chance to try the latest version (VMMaker-dtl.357) and let me know if it now generates code that compiles properly on the Plan9 compiler. Please let me know if I made any mistakes in the merge, it is quite possible that I will have done so.
Eliot,
It's quite likely that some of these changes will prove redundant with work that you have already done in Cog for proper return type declarations. But I wanted to capture Alex's changes into the Montecello repository while they are still fresh. One thing I do want to call to your attention is the inlineReturnTypes dictionary that Alex added to the code generator. The interesting thing about this is that it is used in TAssignmentNode>>emitCCodeOn:level:generator: to add type casts for methods that typically were not properly declared for one reason or another. That serves as a red flag for missing or improper type declarations throughout the VMMaker code, and I suspect that it may prove to be a useful diagnostic tool.
Dave
On Dec 2, 2014 7:49 PM, "David T. Lewis" lewis@mail.msen.com wrote:
On Tue, Dec 02, 2014 at 01:44:41PM -0500, Alex Franchuk wrote:
On 12/02/2014 07:54 AM, David T. Lewis wrote:
On Mon, Dec 01, 2014 at 11:58:02AM -0500, Alex Franchuk wrote:
On 12/01/2014 10:34 AM, Eliot Miranda wrote: > On Nov 30, 2014, at 8:21 PM, Alex Franchuk alex.franchuk@gmail.com > wrote: > >> Hello all, >> >> I'm at a stage of stability in my port of Squeak to the Plan9
operating
>> system. I was wondering who I should contact, or where I should go,
to
>> either submit my work or get access to the SVN repository of
platforms
>> hosted at squeakvm.org. It didn't quite seem like the sort of thing
that
>> should be put on the Mantis bug tracker, but I could be wrong. >> >> Any push in the right direction would be much appreciated! >> > If your port uses Cog then please send me a tarball of the files plus > some description of any changes you had to make. And thanks!! Currently it does not use Cog, although that is actually my next step
in
development if I have enough time! It just uses the normal interpreter (as generated by VMMaker).
Hi Alex,
I see that you have uploaded your Plan9-Compat.4.cs change set to the Mantis issue, thanks for doing that.
http://bugs.squeak.org/view.php?id=7821
I think that you are working with a "trunk" VMMaker as your base. I may
be
able to help by testing your changes first with Linux and an interpreter VM. From there, I should be able to forward the applicable changes to
Eliot
for Cog.
I need to ask couple of questions so that I start from the right place:
- Are all of the changes for Plan 9 compatibility in the change set for
VMMaker?
Or are there additional changes that need to be applied to the
trunk/Cross
or trunk/unix source code? If there are platforms files, please follow
Eliot's
suggestion of sending a tarball (or zip, or whatever is convenient). If
it
is not too large, please send it directly to the vm-dev list.
- Which version of the VMMaker package did you start with? If you can
give me
a specific VMMaker mcz file that you initially loaded, or tell me what Squeak image you initially used, that would help. Or, try evaluating
"VMMaker
versionString" in your VMMaker image, and let me know what it says.
Thanks, Dave
Hi Dave,
To answer your questions:
- I believe almost all of the changes in the change set are for VMMaker,
although there is a change to the abstract SequenceableCollection object to add a doWithIndex:separatedBy: message.
- The version of VMMaker that I started with was VMMaker-dtl.350, which
I loaded from source.squeak.org/VMMaker into a Squeak-4.5 image.
I'll wrap up the platforms code into a tarball and send it to Eliot (and the vm-dev list). Currently the platform code assumes that the FilePlugin, SocketPlugin, B2DPlugin, and BitBltPlugin have been generated as internal plugins with the interpreter code, I still need to make changes for it to intelligently generate the makefile based on the configuration (there are no autoconf tools in Plan9 so that will end up being some script). So I will probably be making more changes as time goes on.
Thanks, Alex
Ah, brilliant! Now I see what you are doing.
To summarize:
There are no changes to platforms/Cross or platforms/unix, and there is a new platforms/Plan9 directory needed for the development that you are doing for the Plan9 port of the Squeak VM.
Aside from that, your changes are in VMMaker (in the change set that you attached to the Mantis issue) and these changes are needed to resolve issues detected by the compiler on Plan9.
Thanks, Dave