+2000-12-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * environments.[ch] (scm_system_environment): New variable, will
+ replace scm_symhash soon. We may decide for a better name and
+ also to split this up into a set of environments later.
+
+ (scm_environments_prehistory): Initialize scm_system_environment.
+
+ * init.c (scm_init_guile_1): scm_environments_prehistory requires
+ storage to be initialized.
+
2000-12-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (change_environment, inner_eval, restore_environment):
scm_bits_t scm_tc16_observer;
#define DEFAULT_OBARRAY_SIZE 137
+SCM scm_system_environment;
+
\f
/* error conditions */
scm_tc16_observer = scm_make_smob_type ("observer", 0);
scm_set_smob_mark (scm_tc16_observer, observer_mark);
scm_set_smob_print (scm_tc16_observer, observer_print);
+
+ /* create system environment */
+ scm_system_environment = scm_make_leaf_environment ();
+ scm_permanent_object (scm_system_environment);
}
#define SCM_OBSERVER_PROC(x) \
((scm_environment_observer) SCM_CELL_WORD_3 (x))
+extern SCM scm_system_environment;
+
extern void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN;
extern void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN;
extern void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN;
scm_debug_malloc_prehistory ();
#endif
scm_init_storage ();
- scm_struct_prehistory (); /* requires storage */
- scm_symbols_prehistory (); /* requires storage */
- scm_weaks_prehistory (); /* requires 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_environments_prehistory (); /* requires storage */
scm_init_continuations ();
- scm_init_root (); /* requires continuations */
+ scm_init_root (); /* requires continuations */
#ifdef USE_THREADS
scm_init_threads (base);
#endif