#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"
/* 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
}
}
-/* 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. */
#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 ();
scm_init_async ();
scm_init_boolean ();
scm_init_chars ();
- scm_init_continuations ();
#ifdef GUILE_DEBUG_MALLOC
scm_init_debug_malloc ();
#endif
scm_init_regex_posix ();
#endif
scm_init_procs ();
- scm_init_procprop ();
scm_init_scmsigs ();
#ifdef HAVE_NETWORKING
scm_init_net_db ();
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 */
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 */
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
{
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 */