Hi there again. I've played with Self via a remote X connection (thanks, Mario!), and I love it. I'm buying a Sparc to run it on. (slowly. :v)
I would like to build the VM source. (Hinting to maybe considering porting it to something else, though I understand from reading back through the archive of this list that this would be a formidable undertaking. So I best not make any promises. :v) However, it's abundantly not clear to me how to get the source to build on a SunOS machine. The docs mention some RCS setup from UW, but (of course) the source tree isn't set up that way. I spent a fair amount of time just getting the compile-time tools in bin/sun4 to build. This makes me think that there's probably a "right way" to get the tree to build (a "make all" sort of thing), and I don't have it. :v)
Any tips would be greatly appreciated.
Thanks, --Jon
Jon Howell jonh@cs.dartmouth.edu 603-643-2460 (h) 603-646-3297 (w) http://www.cs.dartmouth.edu/~jonh
I would like to build the VM source. (Hinting to maybe considering porting it to something else, though I understand from reading back through the archive of this list that this would be a formidable undertaking. So I best not make any promises. :v) However, it's abundantly not clear to me how to get the source to build on a SunOS machine. The docs mention some RCS setup from UW, but (of course) the source tree isn't set up that way. I spent a fair amount of time just getting the compile-time tools in bin/sun4 to build. This makes me think that there's probably a "right way" to get the tree to build (a "make all" sort of thing), and I don't have it. :v)
Building the VM is definitely non-trivial. I have an old message that describes the steps; I've appended it. It was composed before the final release, so it may not be totally accurate - let me know if you have problems.
Mario
--------------------
Here are instructions on how to build the VM.
1 Put self/bin/shell and one of self/bin/{sun4,svr4} on your path. 2 Set the env var SELF_WORKING_DIR to the name of the top-level directory of the hierarchy 3 Go into one of self/vm/sun4/generated or self/vm/svr4/generated depending on your OS (the former is for SunOS4.x and the latter for Solaris 2.[345]) and run "make lists". 4 Go into one of self/vm/sun4/optimized or self/vm/svr4/optimized and run make.
Here's a script of a complete build (under Solaris 2.3).
Script started on Mon Aug 29 11:10:11 1994 obj.$$ uname -a SunOS obj 5.3 Generic_101349-01 sun4m sparc obj.$$ gcc -v Reading specs from /home/kahuna/local_svr4/lib/gcc-lib/sparc-sun-solaris2.3/2.5.5/specs gcc version 2.5.5 obj.$$ ls CheckInstall* bin/ Install* fast_compiler/ Makefile includeDB MakefileCompileTemplate lookup/ MakefileDebugTemplate memory/ MakefileFTPTemplate new_compiler/ MakefileObjTemplate parser/ MakefileOptimizeTemplate prims/ MakefileProfileTemplate runtime/ MakefilePubTemplate self/ MakefilePublishTemplate sic/ MakefileSrcTemplate sun4/ MakefileSun3Template svr4/ MakefileSun4Template todo altered/ typescript asm/ zone/ obj.$$ cd bin obj.$$ ls svr4 AddTrailingNewline* getRevision* removeUnderscore* Makefile isLink* resetTime* Update* linked* skipComments* cmprev* lock_run* zap* cwdRootedIn* makeDepsAndIncs* dangling* obj_patch* obj.$$ cd svr4 obj.$$ export PATH=`pwd`:$PATH obj.$$ cd ../shell obj.$$ export PATH=`pwd`:$PATH obj.$$ pwd /home/mario/self3/bin/shell obj.$$ cd ../.. obj.$$ cd svr4 obj.$$ cd optimized obj.$$ make make: fopen: ../generated/Dependencies: No such file or directory make: *** No rule to make target `../generated/Dependencies'. Stop. obj.$$ cd ../generated obj.$$ make lists Creating include and dependency files /home/mario/self3/svr4/generated is not rooted in /home/mario/self. error: should only be executed in sun4/generated svr4/generated make: *** [lists] Error 1 obj.$$ export SELF_WORKING_DIR=~/self3 obj.$$ make lists Creating include and dependency files Finishing up dependencies New database: reading database: ../../includeDB computing closures writing output files obj.$$ cd ../optimized obj.$$ make Removing locks Compiling ../../memory/ageTable.c Compiling ../../memory/allocation.c Compiling ../../memory/assignmentMap.c Compiling ../../memory/blockMap.c Compiling ../../memory/blockOop.c Compiling ../../memory/byteVectorMap.c Compiling ../../memory/byteVectorOop.c Compiling ../../memory/codeSlotsMap.c Compiling ../../memory/debugPrintable.c Compiling ../../memory/enumeration.c Compiling ../../memory/errorCodes.c Compiling ../../memory/fctProxyMap.c Compiling ../../memory/fctProxyOop.c Compiling ../../memory/floatMap.c Compiling ../../memory/floatOop.c Compiling ../../memory/foreignOop.c Compiling ../../memory/immediateMap.c Compiling ../../memory/map.c Compiling ../../memory/mapMap.c Compiling ../../memory/mapOop.c Compiling ../../memory/mapTable.c Compiling ../../memory/mapVtbls.c Compiling ../../memory/markMap.c Compiling ../../memory/markOop.c Compiling ../../memory/memOop.c Compiling ../../memory/mirrorMap.c Compiling ../../memory/mirrorOop.c Compiling ../../memory/monitor.c Compiling ../../memory/monitorBar.c Compiling ../../memory/objVectorMap.c Compiling ../../memory/objVectorOop.c Compiling ../../memory/oop.c Compiling ../../memory/oopsOop.c Compiling ../../memory/os.c Compiling ../../memory/oTable.c Compiling ../../memory/processMap.c Compiling ../../memory/processOop.c Compiling ../../memory/proxyMap.c Compiling ../../memory/proxyOop.c Compiling ../../memory/profilerOop.c Compiling ../../memory/profilerMap.c Compiling ../../memory/rSet.c Compiling ../../memory/search.c Compiling ../../memory/slotDesc.c Compiling ../../memory/slotList.c Compiling ../../memory/slotType.c Compiling ../../memory/slotsMap.c Compiling ../../memory/slotsOop.c Compiling ../../memory/smiMap.c Compiling ../../memory/smiOop.c Compiling ../../memory/space.c Compiling ../../memory/stringMap.c Compiling ../../memory/stringOop.c Compiling ../../memory/stringTable.c Assembling sun4.enum.s Assembling sun4.search.s Compiling ../../memory/universe.c Compiling ../../memory/universe.more.c Compiling ../../memory/util.c Compiling ../../memory/vframeOop.c Compiling ../../memory/vframeMap.c Compiling ../../memory/vmStrings.c Compiling ../../fast_compiler/blist.c Compiling ../../fast_compiler/codeGen.c Compiling ../../fast_compiler/fcompiler.c Compiling ../../fast_compiler/fscope.c Compiling ../../fast_compiler/registerState.c Compiling ../../fast_compiler/registerString.c Compiling ../../fast_compiler/sun4.codeGen.c Compiling ../../sic/aNode.c Compiling ../../sic/basicBlock.c Compiling ../../sic/bitVector.c Compiling ../../sic/defUse.c Compiling ../../sic/inlining.c Compiling ../../sic/node.c Compiling ../../sic/nodeGen.c Compiling ../../sic/opcode.c Compiling ../../sic/preg.c Compiling ../../sic/regAlloc.c Compiling ../../sic/rscope.c Compiling ../../sic/sic.c Compiling ../../sic/sicExpr.c Compiling ../../sic/sicInline.c Compiling ../../sic/sicPrimline.c Compiling ../../sic/sicScope.c Compiling ../../sic/sicSplit.c Compiling ../../sic/slist.c Compiling ../../sic/tracing.c Compiling ../../sic/sun4.node.c Compiling ../../sic/sun4.genHelper.c Compiling ../../new_compiler/clist.c Compiling ../../new_compiler/compiler.c Compiling ../../new_compiler/conflicts.c Compiling ../../new_compiler/context.c Compiling ../../new_compiler/experiment.c Compiling ../../new_compiler/delay.c Compiling ../../new_compiler/fixed.c Compiling ../../new_compiler/gen.c Compiling ../../new_compiler/genutil.c Compiling ../../new_compiler/hashTable.c Compiling ../../new_compiler/inline.c Compiling ../../new_compiler/moves.c Compiling ../../new_compiler/msg.c Compiling ../../new_compiler/name.c Compiling ../../new_compiler/objectIO.c Compiling ../../new_compiler/op.c Compiling ../../new_compiler/oracle.c Compiling ../../new_compiler/passes.c Compiling ../../new_compiler/path.c Compiling ../../new_compiler/pqueue.c Compiling ../../new_compiler/primline.c Compiling ../../new_compiler/print.c Compiling ../../new_compiler/scope.c Compiling ../../new_compiler/split.c Compiling ../../new_compiler/table.c Compiling ../../new_compiler/type.c Compiling ../../new_compiler/typeGroup.c Compiling ../../new_compiler/uncommon.c Compiling ../../new_compiler/use.c Compiling ../../new_compiler/uses.c Compiling ../../new_compiler/value.c Compiling ../../new_compiler/variable.c Compiling ../../new_compiler/varSet.c Compiling ../../new_compiler/weight.c Compiling ../../asm/asm.c Compiling ../../asm/fields.c Compiling ../../asm/label.c Compiling ../../asm/nameDesc.c Compiling ../../asm/operand.c Compiling ../../asm/pcDesc.c Compiling ../../asm/regs.c Compiling ../../asm/scopeDesc.c Compiling ../../asm/sparc-disasm.c Compiling ../../asm/sparc-opc.c Compiling ../../asm/sparc-pinsn.c Compiling ../../asm/sun4.asm.c Compiling ../../asm/sun4.regs.c Assembling allocZone.s Compiling ../../zone/addrDesc.c Compiling ../../zone/countStub.c Compiling ../../zone/codeTable.c Compiling ../../zone/ncode.c Compiling ../../zone/nmethod.c Compiling ../../zone/nmethodScopes.c Compiling ../../zone/nmln.c Compiling ../../zone/fprofiler.c Compiling ../../zone/scopeDescRecorder.c Compiling ../../zone/sun4.addrDesc.c Compiling ../../zone/zoneHeap.c Compiling ../../zone/zone.c Compiling ../../parser/byteCodes.c Compiling ../../parser/expr.c Compiling ../../parser/kinds.c Compiling ../../parser/list.c Compiling ../../parser/parser.c Compiling ../../parser/positionTable.c Compiling ../../parser/scanner.c Compiling ../../parser/send.c Compiling ../../parser/slot.c Compiling ../../parser/str.c Compiling ../../parser/stringUtil.c Compiling ../../lookup/cacheStub.c Compiling ../../lookup/sun4.cacheStub.c Compiling ../../lookup/diDesc.c Compiling ../../lookup/deps.c Compiling ../../lookup/key.c Compiling ../../lookup/lookup.c Compiling ../../lookup/lookupCache.c Compiling ../../lookup/machineCache.c Compiling ../../lookup/sendDesc.c Compiling ../../lookup/slotRef.c Compiling ../../lookup/target.c Compiling ../../runtime/abort.c ../../runtime/abort.c: In function `void fatalHandler()': ../../runtime/abort.c:372: warning: `volatile' function does return Compiling ../../runtime/aCompiler.c Compiling ../../runtime/asyncMalloc.c Compiling ../../runtime/callgraph.c Compiling ../../runtime/conversion.c Compiling ../../runtime/debug.c Compiling ../../runtime/eventlog.c Compiling ../../runtime/files.c Compiling ../../runtime/format.c Compiling ../../runtime/frame.c Compiling ../../runtime/hprofiler.c Compiling ../../runtime/init.c Compiling ../../runtime/itimer.c Compiling ../../runtime/lprintf.c Compiling ../../runtime/nprofiler.c Compiling ../../runtime/nprofiler.copygraph.c Compiling ../../runtime/process.c Compiling ../../runtime/processInfo.c Compiling ../../runtime/recompile.c Compiling ../../runtime/shell.c Compiling ../../runtime/stack.c Assembling sun4.runtime.s Compiling ../../runtime/timer.c Compiling ../../runtime/ubDesc.c Compiling ../../runtime/uncommonBranch.c Compiling ../../runtime/vframe.c Compiling ../../runtime/xError.c Assembling sun4.asmPrims.s Assembling sun4.memCopyPrims.s Compiling ../../prims/dynLink.c Compiling ../../prims/glue.c Compiling glueDefs.c Compiling ../../prims/glueSupport.c Compiling ../../prims/miscPrims.c Compiling ../../prims/prim.c Compiling ../../prims/unixPrims.c Compiling ../../prims/unixPrims.glue.c Compiling ../../prims/xlibPrims.c Making debug version of malloc.o Making write.o Making exit.o Compiling vmDate Linking Self obj.$$ size Self 2221226 + 48428 + 63412 = 2333066 obj.$$ ls -l Self -rwxr-xr-x 1 mario 12985496 Aug 29 12:20 Self* obj.$$
script done on Mon Aug 29 12:44:44 1994
self-interest@lists.selflanguage.org