* Renamed scm_symbols to symbols and made it static in symbols.c.
[bpt/guile.git] / libguile / init.c
index 60ea523..d20cdc2 100644 (file)
@@ -79,6 +79,7 @@
 #include "libguile/fports.h"
 #include "libguile/gc.h"
 #include "libguile/gdbint.h"
+#include "libguile/goops.h"
 #include "libguile/gsubr.h"
 #include "libguile/hash.h"
 #include "libguile/hashtab.h"
 #include "libguile/tag.h"
 #include "libguile/throw.h"
 #include "libguile/unif.h"
+#include "libguile/values.h"
 #include "libguile/variable.h"
 #include "libguile/vectors.h"
 #include "libguile/version.h"
@@ -182,11 +184,13 @@ start_stack (void *base)
 
   /* Create an object to hold the root continuation.
    */
-  SCM_NEWCELL (scm_rootcont);
-  SCM_SET_CONTREGS (scm_rootcont, scm_must_malloc (sizeof (scm_contregs),
-                                                  "continuation"));
-  SCM_SET_CELL_TYPE (scm_rootcont, scm_tc7_contin);
-  SCM_SEQ (scm_rootcont) = 0;
+  {
+    scm_contregs *contregs = scm_must_malloc (sizeof (scm_contregs),
+                                             "continuation");
+    contregs->num_stack_items = 0;
+    contregs->seq = 0;
+    SCM_NEWSMOB (scm_rootcont, scm_tc16_continuation, contregs);
+  }
   /* The root continuation is further initialized by restart_stack. */
 
   /* Create the look-aside stack for variables that are shared between
@@ -364,20 +368,6 @@ scm_load_startup_files ()
     }
 }
 
-/* Get an integer from an environment variable.  */
-static int
-scm_i_getenv_int (const char *var, int def)
-{
-  char *end, *val = getenv (var);
-  long res;
-  if (!val)
-    return def;
-  res = strtol (val, &end, 10);
-  if (end == val)
-    return def;
-  return res;
-}
-
 \f
 /* The main init code.  */
 
@@ -478,21 +468,20 @@ scm_init_guile_1 (SCM_STACKITEM *base)
 #ifdef GUILE_DEBUG_MALLOC
   scm_debug_malloc_prehistory ();
 #endif
-  scm_init_storage (scm_i_getenv_int ("GUILE_INIT_SEGMENT_SIZE_1", 0),
-                   scm_i_getenv_int ("GUILE_MIN_YIELD_1", 0),
-                   scm_i_getenv_int ("GUILE_INIT_SEGMENT_SIZE_2", 0),
-                   scm_i_getenv_int ("GUILE_MIN_YIELD_2", 0),
-                   scm_i_getenv_int ("GUILE_MAX_SEGMENT_SIZE", 0));
-  scm_struct_prehistory ();    /* Must come after scm_init_storage */
-  scm_weaks_prehistory ();     /* Must come after scm_init_storage */
+  scm_init_storage ();
+  scm_struct_prehistory ();    /* requires storage */
+  scm_symbols_prehistory ();    /* requires storage */
+  scm_weaks_prehistory ();     /* requires storage */
   scm_init_subr_table ();
   scm_environments_prehistory (); /* create the root environment */
-  scm_init_root ();
+  scm_init_continuations ();
+  scm_init_root ();            /* requires continuations */
 #ifdef USE_THREADS
   scm_init_threads (base);
 #endif
   start_stack (base);
   scm_init_gsubr ();
+  scm_init_procprop ();
   scm_init_environments ();
   scm_init_feature ();
   scm_init_alist ();
@@ -500,7 +489,6 @@ scm_init_guile_1 (SCM_STACKITEM *base)
   scm_init_async ();
   scm_init_boolean ();
   scm_init_chars ();
-  scm_init_continuations ();
 #ifdef GUILE_DEBUG_MALLOC
   scm_init_debug_malloc ();
 #endif
@@ -538,7 +526,6 @@ scm_init_guile_1 (SCM_STACKITEM *base)
   scm_init_regex_posix ();
 #endif
   scm_init_procs ();
-  scm_init_procprop ();
   scm_init_scmsigs ();
 #ifdef HAVE_NETWORKING
   scm_init_net_db ();
@@ -549,11 +536,12 @@ scm_init_guile_1 (SCM_STACKITEM *base)
   scm_init_srcprop ();
 #endif
   scm_init_stackchk ();
-  scm_init_struct ();  /* Requires struct */
-  scm_init_stacks ();
+  scm_init_struct ();
+  scm_init_stacks ();   /* Requires struct */
   scm_init_strports ();
   scm_init_symbols ();
   scm_init_tag ();
+  scm_init_values ();   /* Requires struct */
   scm_init_load ();
   scm_init_objects (); /* Requires struct */
   scm_init_print ();   /* Requires struct */
@@ -585,6 +573,9 @@ scm_init_guile_1 (SCM_STACKITEM *base)
   scm_init_dynamic_linking ();
   scm_init_lang ();
   scm_init_script ();
+  
+  scm_init_oop_goops_goopscore_module ();
+  
   scm_initialized_p = 1;
 
   scm_block_gc = 0;            /* permit the gc to run */
@@ -594,6 +585,7 @@ scm_init_guile_1 (SCM_STACKITEM *base)
   scm_stack_checking_enabled_p = SCM_STACK_CHECKING_P;
 #endif
 
+  scm_load_startup_files ();
 }
 
 /* Record here whether SCM_BOOT_GUILE_1 has already been called.  This
@@ -635,8 +627,6 @@ invoke_main_func (void *body_data)
 {
   struct main_func_closure *closure = (struct main_func_closure *) body_data;
 
-  scm_load_startup_files ();
-
   (*closure->main_func) (closure->closure, closure->argc, closure->argv);
 
   /* never reached */