<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 7, 2019 at 5:28 AM Guillermo Polito <<a href="mailto:guillermopolito@gmail.com">guillermopolito@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi all,<div dir="ltr" class="m_6155253803599300367gmail_signature"><div dir="ltr"><div></div></div></div><div><br></div><div>In the last couple of days I've worked a bit on making VMMaker work in Pharo again, based on the original effort of Eliot. I've produced a couple of patches that I've left in the VMMaker inbox (below I past the commits' info).</div><div><br></div><div>With these changes I was able to generate, compile and run successfully so far the Stack VM on OSX (mojave). I've tried it with opensmalltalk-vm's platform code commit a838346b1, which is a commit previous to the migration to Metal.</div><div><br></div><div>To make this work I've written some tests too. I've packaged them so far in a separate package (VMMaker-Tests). I've seen that currently VMMaker tests are inside the VMMaker package itself, but some of them are red in Pharo. I can move those tests to the VMMaker package itself if people see a value on them.</div><div><br></div><div>In any case, I'm just submitting this for review :).</div><div><br></div><div>Cheers,</div><div>Guille</div><div><br></div><div>==== Patch 1 ====<br></div><div><div>Name: VMMaker.oscog-GAP.2533</div><div>Author: GAP</div><div>Time: 7 May 2019, 10:57:16.034354 am</div><div>UUID: 3209319f-60f3-4586-8d03-cfac3c9fddee</div><div>Ancestors: VMMaker.oscog-eem.2532</div><div><br></div><div>Convert numeric constants to strings for concatenation.</div><div>Required for Pharo compatibility, where the arguments of concatenation are not automatically coerced to strings.</div></div><div><br></div><div>==== Patch 2 - Pharo specific package ====</div><div><div>Name: VMMakerCompatibilityForPharo6-GuillermoPolito.10</div><div>Author: GuillermoPolito</div><div>Time: 7 May 2019, 11:03:08.229705 am</div><div>UUID: 4f49f938-aa44-0d00-8739-04000059f8ce</div><div>Ancestors: VMMakerCompatibilityForPharo6-eem.9</div><div><br></div><div>Fixes in AST translation to make it work as in Squeak</div><div>- to:do: => to:by:do: with extra arguments</div><div>- ifNil:ifNotNil: => ifTrue:ifFalse:</div><div>- fix arguments in TMethods</div><div>- fix comments in TMethods</div><div>- add name at the level of TParseNode (#name is not defined in Object anymore in Pharo)</div><div><br></div><div>Other</div><div>- Added FileDirectory compatibility layer using FileSystem behind the scenes (see FileDirectory and VMMakerFile classes).</div><div>- Added PackageOrganizer compatibility layer using RPackage behind the scenes.</div><div>- Extending Scanner and SystemNavigation with compatibility methods</div><div>- Extending Time with compatibility method</div></div><div><br></div><div>==== Patch 3 - Tests ====<br></div><div><div>Name: VMMakerTests-GuillermoPolito.1</div><div>Author: GuillermoPolito</div><div>Time: 7 May 2019, 11:27:14.195596 am</div><div>UUID: 77f9288f-aa44-0d00-873a-d0970059f8ce</div><div>Ancestors: </div><div><br></div><div>Tests for AST translation and C code generation</div></div></div></div></div></div></div></div>
</blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">To some of us, writing computer programs is a fascinating game. A program is a building of thought. It is costless to build, weightless, growing easily under our typing hands. If we get carried away, its size and complexity will grow out of control, confusing even the one who created it. This is the main problem of programming. It is why so much of today's software tends to crash, fail, screw up.</p><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.<br></p><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">- Martin Harverbeke (from <a href="http://eloquentjavascript.net/index.html" style="color:rgb(17,85,204)" target="_blank">Eloquent JavaScript</a>)</p></div></div>