diff --git a/compiler/generic/new-genesis.lisp b/compiler/generic/new-genesis.lisp index 1d3c8660faa609a6f64b3c5bcc1b04d57e9391e1..dcf39281e08ca48fc1c54b4e23a7dfc3daf9b082 100644 --- a/compiler/generic/new-genesis.lisp +++ b/compiler/generic/new-genesis.lisp @@ -4,7 +4,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.39 1999/09/09 16:31:08 pw Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.40 2000/10/23 20:20:48 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -711,6 +711,8 @@ (frob *free-interrupt-context-index* (make-fixnum-descriptor 0)) + (frob *batch-mode* (cold-intern nil)) + (frob *initial-layouts* (list-all-layouts)) (let ((res *nil-descriptor*)) diff --git a/lisp/lisp.c b/lisp/lisp.c index 5c562f207633450ccb912b8c216e1b7fd3e8af5d..fed153d567a8d6293de8ff89c0b68c0d78e6e6dc 100644 --- a/lisp/lisp.c +++ b/lisp/lisp.c @@ -1,7 +1,7 @@ /* * main() entry point for a stand alone lisp image. * - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/lisp.c,v 1.17 2000/10/16 17:30:01 dtc Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/lisp.c,v 1.18 2000/10/23 20:20:42 dtc Exp $ * */ @@ -89,7 +89,6 @@ void main(int argc, char *argv[], char *envp[]) char *arg, **argptr; char *core = NULL, *default_core; boolean monitor; - lispobj batch_mode; lispobj initial_function; #ifdef MACH @@ -102,7 +101,6 @@ void main(int argc, char *argv[], char *envp[]) set_lossage_handler(ldb_monitor); monitor = FALSE; - batch_mode = NIL; argptr = argv; while ((arg = *++argptr) != NULL) { @@ -120,9 +118,6 @@ void main(int argc, char *argv[], char *envp[]) else if (strcmp(arg, "-monitor") == 0) { monitor = TRUE; } - else if (strcmp(arg, "-batch") == 0) { - batch_mode = T; - } } default_core = arch_init(); @@ -220,10 +215,23 @@ void main(int argc, char *argv[], char *envp[]) /* Convert the argv and envp to something Lisp can grok. */ SetSymbolValue(LISP_COMMAND_LINE_LIST, alloc_str_list(argv)); SetSymbolValue(LISP_ENVIRONMENT_LIST, alloc_str_list(envp)); - SetSymbolValue(BATCH_MODE, batch_mode); - /* Pick off sigint until the lisp system gets far enough along to */ - /* install it's own. */ + /* + * Parse the command line again, picking up values that override + * those loaded from the core. + */ + + argptr = argv; + while ((arg = *++argptr) != NULL) + { + if (strcmp(arg, "-batch") == 0) + SetSymbolGlobalValue(BATCH_MODE, T); + } + + /* + * Pick off sigint until the lisp system gets far enough along to + * install it's own. + */ sigint_init(); if (monitor)