X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=slam.sh;h=70505113f7e1de79e3080c2da1c1601cf29ed92c;hb=959057baab99d4328fc386aee3fcc812f5fcb3ed;hp=c1ea5f1cf9792d73da897f687200438b33382f0a;hpb=d7f6139a91d7d9b0667a597584ae306d958bb2f4;p=sbcl.git diff --git a/slam.sh b/slam.sh index c1ea5f1..7050511 100644 --- a/slam.sh +++ b/slam.sh @@ -1,19 +1,20 @@ #!/bin/sh +# ("smooth duct tape: the mark of a true craftsman":-) + # a quick and dirty way of partially rebuilding the system after a # change # # This script is not a reliable way to build the system, but it is # fast.:-| It can be useful if you are trying to debug a low-level -# problem, e.g. a problem in src/runtime/*.c or in src/code/unix.lisp, -# and you find yourself wanting to make a small change and test it -# without going through the entire build-the-system-from-scratch -# cycle. +# problem, e.g. a problem in src/runtime/*.c or in +# src/code/cold-init.lisp, and you find yourself wanting to make a +# small change and test it without going through the entire +# build-the-system-from-scratch cycle. # # You probably don't want to be using this script unless you -# understand the system build process to be able to guess when it -# won't work. - +# understand the system build process well enough to be able to guess +# when it won't work. # This software is part of the SBCL system. See the README file for # more information. @@ -24,8 +25,19 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. +if [ "" != "$*" ]; then + echo no command line arguments supported in this version of slam + exit 1 +fi -export SBCL_XC_HOST="${1:-sbcl --noprogrammer}" +# We don't try to be general about this in this script the way we are +# in make.sh, since (1) we use our command line args as names of files +# to recompile, and (2) the idiosyncrasies of SBCL command line +# argument order dependence, the meaninglessness of duplicate --core +# arguments, and the SBCL-vs-CMUCL dependence of --core/-core argument +# syntax make it too messy to try deal with arbitrary SBCL commands. +# So you have no choice: +export SBCL_XC_HOST='sbcl --noprogrammer' # (We don't do make-host-1.sh at all. Hopefully nothing relevant has # changed.) @@ -33,22 +45,18 @@ export SBCL_XC_HOST="${1:-sbcl --noprogrammer}" sh make-target-1.sh || exit 1 # Instead of doing the full make-host-2.sh, we (1) use after-xc.core -# to rebuild only the specifically-requested Lisp files (or skip -# after-xc.core completely if no Lisp files are specifically -# requested), then (2) run GENESIS. +# to rebuild only obviously-out-of-date Lisp files, then (2) run +# GENESIS. +sbcl --core output/after-xc.core <<'EOF' || exit 1 + (load "src/cold/slam.lisp") +EOF +# (This ^ used to be +# for f in $*; do echo "(target-compile-stem \"$f\")"; done \ +# | sbcl --core output/after-xc.core || exit 1 +# and perhaps we do something like this again, allowing explicit +# rebuild-this-stem requests on the command line to supplement +# the rebuild-obviously-outdated-stems logic above.) # -# Our command line arguments are the stems that we'll use -# after-xc.core to recompile. If there are no command line arguments, -# though, make a point of not calling after-xc.core, since it might -# not exist, and there's no point in causing a fatal failure (by -# unsuccessfully trying to execute it) unnecessarily. -if [ "$*" != "" ] ; then - # Actually, I wrote this script when I needed to do a lot of - # tweaking in src/runtime/*.c, and I haven't tried to make it - # work for src/code/*.c yet. -- WHN 2001-05-12 - echo stub: no support yet for after-xc.core - exit 1 -fi sh make-genesis-2.sh || exit 1 sh make-target-2.sh || exit 1