Hi Tim,On Sat, May 28, 2016 at 6:43 PM, gettimothy <gettimothy@zoho.com> wrote:Does a matrix exist that maps
ls -1 Cog/platforms/unix/vm/*.c
aio.c
debug.c
dlfcn-dyld.c
mac-alias.c
osExports.c
sqUnixCharConv.c
sqUnixEvent.c
sqUnixExternalPrims.c
sqUnixHeartbeat.c
sqUnixITimerHeartbeat.c
sqUnixITimerTickerHeartbeat.c
sqUnixMain.c
sqUnixMemory.c
sqUnixSpurMemory.c
sqUnixThreads.c
sqUnixVMProfile.c
to build type and platform?
If not, I will assemble one by hand, but I don't want to duplicate work that has already been done.
For example...
linux32x86 squeak.cog.v3 builds fine with sqUnixMemory.c however squeak.cog.spur requires sqUnixSpurMemory.c
I suspect all the relationships are encoded in the configure and mvm scripts. If they are documented elsewhere, it will save some work.Actually in the Makefiles, and in tests on manifest defines in the sources. So...in e.g. build.macos32x86/common/Makefile.vm you find...OSXCOMMONDIR:=$(PLATDIR)/iOS/vm/Common...XEX:=%/sqSqueakMainApplication+screen.m %/sqMacV2Window.m \%/SqViewBitmapConversion.m %/sqSqueakOSXCGView.mOSXSRC=$(wildcard $(OSXDIR)/*.c) $(wildcard $(OSXDIR)/*.m) \$(wildcard $(OSXCOMMONDIR)/*.c) $(wildcard $(OSXCOMMONDIR)/*.m) \$(wildcard $(OSXCLASSESDIR)/*.c) $(wildcard $(OSXCLASSESDIR)/*.m)OSXSRC:=$(filter-out $(XEX),$(OSXSRC)) UNIXSRC:=$(addprefix $(UNIXVMDIR)/,aio.c sqUnixHeartbeat.c sqUnixSpurMemory.c \sqUnixThreads.c sqUnixVMProfile.c)and in platforms/unix/vm/sqUnixSpurMemory.c you find#if SPURVM...#endifand in platforms/iOS//vm/Common/sqMacV2Memory.c you find#include "sq.h"#if !SPURVM...#endifSo that on the Mac v3 sqUnixSpurMemory..o is empty and sqMacV2Memory..o is not, but on the Mac Spur vice verse.Likewise for platforms/unix/vm/sqUnixSpurMemory.c & platforms/unix/vm/sqUnixMemory.c. Use the source Luke!Which is to say that I try and use manifest constants defined in *src/vm/interp.h to define which features to include. e.g. Compare src/v/interp.h with spursrc/vm/interp.h:McStalker.oscogvm$ diff {src,spursrc}/vm/interp.h10c10< #define BaseHeaderSize 4---> #define BaseHeaderSize 835a36> #define SPURVM 1or spursrc/vm/interp.h with spur64src/vm/interp.h2c2< CCodeGeneratorGlobalStructure VMMaker.oscog-eem.948 uuid: 9323b2ad-f5cf-4aca-8f31-67eb5616ccca---> CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1580 uuid: 2b856f5e-e0b4-44bb-b23d-07561132f8c88c8< #define SQ_VI_BYTES_PER_WORD 4---> #define SQ_VI_BYTES_PER_WORD 811,12c11,12< #define BytesPerOop 4< #define BytesPerWord 4---> #define BytesPerOop 8> #define BytesPerWord 832,33c32,33< #define MinSmallInteger -1073741824< #define MaxSmallInteger 1073741823---> #define MinSmallInteger -1152921504606846976> #define MaxSmallInteger 1152921504606846975or spursrc/vm/interp.h with nsspursrc/vm/interp.hMcStalker.oscogvm$ diff {spursrc,nsspursrc}/vm/interp.h34a35,37> #define NewspeakVM 1> #define MULTIPLEBYTECODESETS 1>etc.Putting stuff in config files is sadistic. I wouldn't do that. It needs to be in the source.--_,,,^..^,,,_best, Eliot