0.7.11.2:
[sbcl.git] / src / runtime / runtime.c
index aa54b85..0307d05 100644 (file)
@@ -40,9 +40,6 @@
 #include "interr.h"
 #include "monitor.h"
 #include "validate.h"
-#if defined GENCGC
-#include "gencgc.h"
-#endif
 #include "core.h"
 #include "save.h"
 #include "lispregs.h"
@@ -151,10 +148,10 @@ main(int argc, char *argv[], char *envp[])
                    lose("more than one core file specified");
                } else {
                    ++argi;
-                   core = copied_string(argv[argi]);
                    if (argi >= argc) {
                        lose("missing filename for --core argument");
                    }
+                   core = copied_string(argv[argi]);
                    ++argi;
                }
            } else if (0 == strcmp(arg, "--end-runtime-options")) {
@@ -198,15 +195,19 @@ main(int argc, char *argv[], char *envp[])
        char *sbcl_home = getenv("SBCL_HOME");
        if (sbcl_home) {
            char *lookhere;
-           lookhere = (char *) calloc(strlen("/sbcl.core") + strlen(sbcl_home) + 1,
-                                       sizeof(char));
-           sprintf(lookhere, "%s/sbcl.core", sbcl_home);
+           char *stem = "/sbcl.core";
+           lookhere = (char *) calloc(strlen(sbcl_home) +
+                                      strlen(stem) +
+                                      1,
+                                      sizeof(char));
+           sprintf(lookhere, "%s%s", sbcl_home, stem);
            core = copied_existing_filename_or_null(lookhere);
            free(lookhere);
        } else {
            core = copied_existing_filename_or_null("/usr/lib/sbcl.core");
            if (!core) {
-               core = copied_existing_filename_or_null("/usr/local/lib/sbcl.core");
+               core =
+                   copied_existing_filename_or_null("/usr/local/lib/sbcl.core");
            }
        }
        if (!core) {
@@ -216,7 +217,7 @@ main(int argc, char *argv[], char *envp[])
 
     if (!noinform) {
        printf(
-"This is SBCL " SBCL_VERSION_STRING ", an implementation of ANSI Common Lisp.\n\
+"This is SBCL %s, an implementation of ANSI Common Lisp.\n\
 \n\
 SBCL is derived from the CMU CL system created at Carnegie Mellon University.\n\
 Besides software and documentation originally created at Carnegie Mellon\n\
@@ -233,8 +234,8 @@ It is mostly in the public domain, but also includes some software copyrighted\n
 used under BSD-style licenses allowing copying only under certain conditions.\n\
 See the COPYING file in the distribution for more information.\n\
 \n\
-More information on SBCL is available at <http://sbcl.sourceforge.net/>.\n\
-");
+More information about SBCL is available at <http://sbcl.sourceforge.net/>.\n\
+", SBCL_VERSION_STRING);
        fflush(stdout);
     }
 
@@ -250,11 +251,6 @@ More information on SBCL is available at <http://sbcl.sourceforge.net/>.\n\
 
     set_lossage_handler(monitor_or_something);
 
-#if 0
-    os_init();
-    gc_init();
-    validate();
-#endif
     globals_init();
 
     initial_function = load_core_file(core);
@@ -264,17 +260,11 @@ More information on SBCL is available at <http://sbcl.sourceforge.net/>.\n\
     SHOW("freeing core");
     free(core);
 
-#if defined GENCGC
-    gencgc_pickup_dynamic();
-#else
-#endif
+    gc_initialize_pointers();
 
 #ifdef BINDING_STACK_POINTER
     SetSymbolValue(BINDING_STACK_POINTER, BINDING_STACK_START);
 #endif
-#if defined INTERNAL_GC_TRIGGER && !defined __i386__
-    SetSymbolValue(INTERNAL_GC_TRIGGER, make_fixnum(-1));
-#endif
 
     interrupt_init();