<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'>Thank you Eliot.<br><br>In the interests of time, I think I will just handle each configuration as it comes. <br><br>I will add your information to the new configuration step-by-step Help book.<br><br><br>cheers.<br><div class="zmail_extra"><div id="1"><br>---- On Sat, 28 May 2016 22:26:01 -0400 <b>Eliot Miranda &lt;eliot.miranda@gmail.com&gt;</b> wrote ---- <br></div><blockquote style="border-left: 1px solid #0000FF;padding-left: 6px; margin: 0 0 0 5px"><div> <div>Hi Tim,<div><br><div>On Sat, May 28, 2016 at 6:43 PM, gettimothy <span>&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>&gt;</span> wrote:<br><blockquote style="margin: 0.0px 0.0px 0.0px 0.8ex;border-left-width: 1.0px;border-left-color: rgb(204,204,204);border-left-style: solid;padding-left: 1.0ex;">&nbsp;<br><u></u><div><div style="font-size: 10.0pt;font-family: Verdana , Arial , Helvetica , sans-serif;">Does a matrix exist that maps <br>ls -1 Cog/platforms/unix/vm/*.c<br>aio.c<br>debug.c<br>dlfcn-dyld.c<br>mac-alias.c<br>osExports.c<br>sqUnixCharConv.c<br>sqUnixEvent.c<br>sqUnixExternalPrims.c<br>sqUnixHeartbeat.c<br>sqUnixITimerHeartbeat.c<br>sqUnixITimerTickerHeartbeat.c<br>sqUnixMain.c<br>sqUnixMemory.c<br>sqUnixSpurMemory.c<br>sqUnixThreads.c<br>sqUnixVMProfile.c<br><br>to build type and platform?<br><br>If not, I will assemble one by hand, but I don't want to duplicate work that has already been done.<br><br>For example...<br><br>linux32x86 squeak.cog.v3 builds fine with sqUnixMemory.c however squeak.cog.spur requires sqUnixSpurMemory.c <br><br>I suspect all the relationships are encoded in the configure and mvm scripts. If they are documented elsewhere, it will save some work.<br></div></div></blockquote><div><br></div><div>Actually in the Makefiles, and in tests on manifest defines in the sources.&nbsp; So...in e.g.&nbsp;build.macos32x86/common/Makefile.vm you find&nbsp;</div><div>...</div><div>OSXCOMMONDIR:=$(PLATDIR)/iOS/vm/Common<br></div><div>...</div><div>XEX:=%/sqSqueakMainApplication+screen.m %/sqMacV2Window.m \</div><div>&nbsp; &nbsp; &nbsp;%/SqViewBitmapConversion.m %/sqSqueakOSXCGView.m</div><div>OSXSRC=$(wildcard $(OSXDIR)/*.c) $(wildcard $(OSXDIR)/*.m) \</div><div>&nbsp; &nbsp; &nbsp; &nbsp; $(wildcard $(OSXCOMMONDIR)/*.c) $(wildcard $(OSXCOMMONDIR)/*.m) \</div><div>&nbsp; &nbsp; &nbsp; &nbsp; $(wildcard $(OSXCLASSESDIR)/*.c) $(wildcard $(OSXCLASSESDIR)/*.m)</div><div>OSXSRC:=$(filter-out $(XEX),$(OSXSRC)) UNIXSRC:=$(addprefix $(UNIXVMDIR)/,aio.c sqUnixHeartbeat.c sqUnixSpurMemory.c \<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sqUnixThreads.c sqUnixVMProfile.c)</div><div><br></div><div>and in platforms/unix/vm/sqUnixSpurMemory.c you find</div><div><br></div><div><div>#if SPURVM</div></div><div>...</div><div>#endif</div><div><br></div><div>and in&nbsp;platforms/iOS//vm/Common/sqMacV2Memory.c you find</div><div><div>#include "sq.h"</div><div>#if !SPURVM</div></div><div>...</div><div>#endif</div><div><br></div><div><br></div><div>So that on the Mac v3 sqUnixSpurMemory..o is empty and sqMacV2Memory..o is not, but on the Mac Spur vice verse.</div><div><br></div><div>Likewise for platforms/unix/vm/sqUnixSpurMemory.c &amp; platforms/unix/vm/sqUnixMemory.c.&nbsp; Use the source Luke!</div><div><br></div><div>Which is to say that I try and use manifest constants defined in *src/vm/interp.h to define which features to include. &nbsp;e.g. Compare src/v/interp.h with spursrc/vm/interp.h:</div><div><br></div><div><div>McStalker.oscogvm$ diff {src,spursrc}/vm/interp.h</div><div>10c10</div><div>&lt; #define BaseHeaderSize 4</div><div>---</div><div>&gt; #define BaseHeaderSize 8</div><div>35a36</div><div>&gt; #define SPURVM 1</div></div><div><br></div><div>or spursrc/vm/interp.h with spur64src/vm/interp.h</div><div><br></div><div><div>2c2</div><div>&lt; &nbsp; &nbsp; &nbsp; CCodeGeneratorGlobalStructure VMMaker.oscog-eem.948 uuid: 9323b2ad-f5cf-4aca-8f31-67eb5616ccca</div><div>---</div><div>&gt; &nbsp; &nbsp; &nbsp; CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1580 uuid: 2b856f5e-e0b4-44bb-b23d-07561132f8c8</div><div>8c8</div><div>&lt; #define SQ_VI_BYTES_PER_WORD 4</div><div>---</div><div>&gt; #define SQ_VI_BYTES_PER_WORD 8</div><div>11,12c11,12</div><div>&lt; #define BytesPerOop 4</div><div>&lt; #define BytesPerWord 4</div><div>---</div><div>&gt; #define BytesPerOop 8</div><div>&gt; #define BytesPerWord 8</div><div>32,33c32,33</div><div>&lt; #define MinSmallInteger -1073741824</div><div>&lt; #define MaxSmallInteger 1073741823</div><div>---</div><div>&gt; #define MinSmallInteger -1152921504606846976</div><div>&gt; #define MaxSmallInteger 1152921504606846975</div></div><div><br></div><div>or spursrc/vm/interp.h with nsspursrc/vm/interp.h</div><div><div>McStalker.oscogvm$ diff {spursrc,nsspursrc}/vm/interp.h</div><div>34a35,37</div><div>&gt; #define NewspeakVM 1</div><div>&gt; #define MULTIPLEBYTECODESETS 1</div><div>&gt;&nbsp;</div></div><div><br></div><div>etc.</div><div><br></div><div>Putting stuff in config files is sadistic.&nbsp; I wouldn't do that.&nbsp; It needs to be in the source.</div></div><br><div><br></div>-- <br><div><div><div><span style="font-size: small;border-collapse: separate;"><div>_,,,^..^,,,_<br></div><div>best,&nbsp;Eliot</div></span></div></div></div> </div></div> </div></blockquote><br></div><br></div></body></html>