guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core/libguile ChangeLog debug.c eva...


From: Dirk Herrmann
Subject: guile/guile-core/libguile ChangeLog debug.c eva...
Date: Mon, 11 Dec 2000 06:48:24 -0800

CVSROOT:        /cvs
Module name:    guile
Changes by:     Dirk Herrmann <address@hidden>  00/12/11 06:48:23

Modified files:
        guile-core/libguile: ChangeLog debug.c eval.c gsubr.c srcprop.c 
                             variable.c gc.c gc.h init.c keywords.c 
                             options.c 

Log message:
        * Initialize symbols using SCM_(GLOBAL_)?SYMBOL instead of 
scm_sysintern...
        * Use scm_str2symbol instead of scm_sysintern0.
        * Garbage collection initialization code now within gc.c only.

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ChangeLog.diff?r1=1.1201&r2=1.1202
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/debug.c.diff?r1=1.78&r2=1.79
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/eval.c.diff?r1=1.184&r2=1.185
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/gsubr.c.diff?r1=1.34&r2=1.35
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/srcprop.c.diff?r1=1.40&r2=1.41
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/variable.c.diff?r1=1.30&r2=1.31
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/gc.c.diff?r1=1.170&r2=1.171
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/gc.h.diff?r1=1.66&r2=1.67
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/init.c.diff?r1=1.106&r2=1.107
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/keywords.c.diff?r1=1.27&r2=1.28
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/options.c.diff?r1=1.28&r2=1.29

Patches:
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1201 
guile/guile-core/libguile/ChangeLog:1.1202
--- guile/guile-core/libguile/ChangeLog:1.1201  Sun Dec 10 12:34:12 2000
+++ guile/guile-core/libguile/ChangeLog Mon Dec 11 06:48:23 2000
@@ -1,3 +1,30 @@
+2000-12-11  Dirk Herrmann  <address@hidden>
+
+       * debug.c (scm_sym_procname, scm_sym_dots, scm_sym_source,
+       scm_init_debug), eval.c (scm_sym_dot, scm_sym_arrow, scm_sym_else,
+       scm_sym_unquote, scm_sym_uq_splicing, scm_sym_enter_frame,
+       scm_sym_apply_frame, scm_sym_exit_frame, scm_sym_trace,
+       scm_init_eval), gsubr.c (scm_sym_name, scm_init_gsubr), srcprop.c
+       (scm_sym_filename, scm_sym_copy, scm_sym_line, scm_sym_column,
+       scm_sym_breakpoint), variable.c (anonymous_variable_sym):
+       Initialize symbols by using SCM_(GLOBAL_)?SYMBOL.
+
+       * gc.c (scm_i_getenv_int):  Moved here from init.c.
+
+       * gc.[ch] (scm_init_storage):  Read gc configuration environment
+       variables here, not in init.c.
+
+       * init.c (scm_i_getenv_int):  Moved to gc.c.
+
+       (scm_init_guile_1):  Move configuration code to scm_init_storage.
+       Make sure procprops get initialized early.
+
+       * keywords.c (scm_c_make_keyword):  Report amount of memory freed
+       by scm_must_free.  Use scm_str2symbol instead of scm_sysintern0.
+
+       * options.c (scm_init_opts):  Use scm_str2symbol instead of
+       scm_sysintern0.
+
 2000-12-10  Mikael Djurfeldt  <address@hidden>
 
        * threads.h (SCM_MUTEXP): Typo: removed extra parenthesis.
Index: guile/guile-core/libguile/debug.c
diff -u guile/guile-core/libguile/debug.c:1.78 
guile/guile-core/libguile/debug.c:1.79
--- guile/guile-core/libguile/debug.c:1.78      Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/debug.c   Mon Dec 11 06:48:23 2000
@@ -138,9 +138,11 @@
 #undef FUNC_NAME
 
 
-static SCM scm_sym_source, scm_sym_dots;
-static SCM scm_sym_procname;
 
+SCM_SYMBOL (scm_sym_procname, "procname");
+SCM_SYMBOL (scm_sym_dots, "...");
+SCM_SYMBOL (scm_sym_source, "source");
+
 /* {Memoized Source}
  */
 
@@ -614,10 +616,6 @@
 
   scm_tc16_debugobj = scm_make_smob_type ("debug-object", 0);
   scm_set_smob_print (scm_tc16_debugobj, debugobj_print);
-
-  scm_sym_procname = SCM_CAR (scm_sysintern ("procname", SCM_UNDEFINED));
-  scm_sym_dots = SCM_CAR (scm_sysintern ("...", SCM_UNDEFINED));
-  scm_sym_source = SCM_CAR (scm_sysintern ("source", SCM_UNDEFINED));
 
 #ifdef GUILE_DEBUG
   scm_sysintern ("SCM_IM_AND", SCM_IM_AND);
Index: guile/guile-core/libguile/eval.c
diff -u guile/guile-core/libguile/eval.c:1.184 
guile/guile-core/libguile/eval.c:1.185
--- guile/guile-core/libguile/eval.c:1.184      Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/eval.c    Mon Dec 11 06:48:23 2000
@@ -448,14 +448,19 @@
 const char scm_s_clauses[] = "bad or missing clauses";
 const char scm_s_formals[] = "bad formals";
 
-SCM scm_sym_dot, scm_sym_arrow, scm_sym_else;
-SCM scm_sym_unquote, scm_sym_uq_splicing, scm_sym_apply;
+SCM_GLOBAL_SYMBOL (scm_sym_dot, ".");
+SCM_GLOBAL_SYMBOL (scm_sym_arrow, "=>");
+SCM_GLOBAL_SYMBOL (scm_sym_else, "else");
+SCM_GLOBAL_SYMBOL (scm_sym_unquote, "unquote");
+SCM_GLOBAL_SYMBOL (scm_sym_uq_splicing, "unquote-splicing");
 
 SCM scm_f_apply;
 
 #ifdef DEBUG_EXTENSIONS
-SCM scm_sym_enter_frame, scm_sym_apply_frame, scm_sym_exit_frame;
-SCM scm_sym_trace;
+SCM_GLOBAL_SYMBOL (scm_sym_enter_frame, "enter-frame");
+SCM_GLOBAL_SYMBOL (scm_sym_apply_frame, "apply-frame");
+SCM_GLOBAL_SYMBOL (scm_sym_exit_frame, "exit-frame");
+SCM_GLOBAL_SYMBOL (scm_sym_trace, "trace");
 #endif
 
 
@@ -3880,11 +3885,6 @@
   scm_f_apply = scm_make_subr ("apply", scm_tc7_lsubr_2, scm_apply);
   scm_system_transformer = scm_sysintern ("scm:eval-transformer",
                                          scm_make_fluid ());
-  scm_sym_dot = SCM_CAR (scm_sysintern (".", SCM_UNDEFINED));
-  scm_sym_arrow = SCM_CAR (scm_sysintern ("=>", SCM_UNDEFINED));
-  scm_sym_else = SCM_CAR (scm_sysintern ("else", SCM_UNDEFINED));
-  scm_sym_unquote = SCM_CAR (scm_sysintern ("unquote", SCM_UNDEFINED));
-  scm_sym_uq_splicing = SCM_CAR (scm_sysintern ("unquote-splicing", 
SCM_UNDEFINED));
 
   scm_lisp_nil = scm_sysintern ("nil", SCM_UNDEFINED);
   SCM_SETCDR (scm_lisp_nil, SCM_CAR (scm_lisp_nil));
@@ -3899,13 +3899,6 @@
 #if SCM_DEBUG_DEPRECATED == 0
   scm_top_level_lookup_closure_var =
     scm_sysintern ("*top-level-lookup-closure*", scm_make_fluid ());
-#endif
-
-#ifdef DEBUG_EXTENSIONS
-  scm_sym_enter_frame = SCM_CAR (scm_sysintern ("enter-frame", SCM_UNDEFINED));
-  scm_sym_apply_frame = SCM_CAR (scm_sysintern ("apply-frame", SCM_UNDEFINED));
-  scm_sym_exit_frame = SCM_CAR (scm_sysintern ("exit-frame", SCM_UNDEFINED));
-  scm_sym_trace = SCM_CAR (scm_sysintern ("trace", SCM_UNDEFINED));
 #endif
 
 #ifndef SCM_MAGIC_SNARFER
Index: guile/guile-core/libguile/gc.c
diff -u guile/guile-core/libguile/gc.c:1.170 
guile/guile-core/libguile/gc.c:1.171
--- guile/guile-core/libguile/gc.c:1.170        Fri Dec  8 05:41:56 2000
+++ guile/guile-core/libguile/gc.c      Mon Dec 11 06:48:23 2000
@@ -2435,18 +2435,31 @@
   freelist->heap_size = 0;
 }
 
+
+/* 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;
+}
+
+
 int
-scm_init_storage (scm_sizet init_heap_size_1, int gc_trigger_1,
-                 scm_sizet init_heap_size_2, int gc_trigger_2,
-                 scm_sizet max_segment_size)
+scm_init_storage ()
 {
+  scm_sizet gc_trigger_1;
+  scm_sizet gc_trigger_2;
+  scm_sizet init_heap_size_1;
+  scm_sizet init_heap_size_2;
   scm_sizet j;
 
-  if (!init_heap_size_1)
-    init_heap_size_1 = scm_default_init_heap_size_1;
-  if (!init_heap_size_2)
-    init_heap_size_2 = scm_default_init_heap_size_2;
-
   j = SCM_NUM_PROTECTS;
   while (j)
     scm_sys_protects[--j] = SCM_BOOL_F;
@@ -2454,14 +2467,11 @@
 
   scm_freelist = SCM_EOL;
   scm_freelist2 = SCM_EOL;
-  init_freelist (&scm_master_freelist,
-                1, SCM_CLUSTER_SIZE_1,
-                gc_trigger_1 ? gc_trigger_1 : scm_default_min_yield_1);
-  init_freelist (&scm_master_freelist2,
-                2, SCM_CLUSTER_SIZE_2,
-                gc_trigger_2 ? gc_trigger_2 : scm_default_min_yield_2);
-  scm_max_segment_size
-    = max_segment_size ? max_segment_size : scm_default_max_segment_size;
+  gc_trigger_1 = scm_i_getenv_int ("GUILE_MIN_YIELD_1", 
scm_default_min_yield_1);
+  init_freelist (&scm_master_freelist, 1, SCM_CLUSTER_SIZE_1, gc_trigger_1);
+  gc_trigger_2 = scm_i_getenv_int ("GUILE_MIN_YIELD_2", 
scm_default_min_yield_2);
+  init_freelist (&scm_master_freelist2, 2, SCM_CLUSTER_SIZE_2, gc_trigger_2);
+  scm_max_segment_size = scm_i_getenv_int ("GUILE_MAX_SEGMENT_SIZE", 
scm_default_max_segment_size);
 
   scm_expmem = 0;
 
@@ -2473,6 +2483,8 @@
 
   mark_space_ptr = &mark_space_head;
 
+  init_heap_size_1 = scm_i_getenv_int ("GUILE_INIT_SEGMENT_SIZE_1", 
scm_default_init_heap_size_1);
+  init_heap_size_2 = scm_i_getenv_int ("GUILE_INIT_SEGMENT_SIZE_2", 
scm_default_init_heap_size_2);
   if (make_initial_segment (init_heap_size_1, &scm_master_freelist) ||
       make_initial_segment (init_heap_size_2, &scm_master_freelist2))
     return 1;
Index: guile/guile-core/libguile/gc.h
diff -u guile/guile-core/libguile/gc.h:1.66 guile/guile-core/libguile/gc.h:1.67
--- guile/guile-core/libguile/gc.h:1.66 Wed Dec  6 07:16:59 2000
+++ guile/guile-core/libguile/gc.h      Mon Dec 11 06:48:23 2000
@@ -354,9 +354,7 @@
 extern SCM scm_permanent_object (SCM obj);
 extern SCM scm_protect_object (SCM obj);
 extern SCM scm_unprotect_object (SCM obj);
-extern int scm_init_storage (scm_sizet init_heap_size, int trig,
-                             scm_sizet init_heap2_size, int trig2,
-                            scm_sizet max_segment_size);
+extern int scm_init_storage (void);
 extern void *scm_get_stack_base (void);
 extern void scm_init_gc (void);
 
Index: guile/guile-core/libguile/gsubr.c
diff -u guile/guile-core/libguile/gsubr.c:1.34 
guile/guile-core/libguile/gsubr.c:1.35
--- guile/guile-core/libguile/gsubr.c:1.34      Wed Dec  6 08:24:00 2000
+++ guile/guile-core/libguile/gsubr.c   Mon Dec 11 06:48:23 2000
@@ -59,7 +59,8 @@
 
 /* #define GSUBR_TEST */
 
-SCM scm_sym_name;
+SCM_GLOBAL_SYMBOL (scm_sym_name, "name");
+
 SCM scm_f_gsubr_apply;
 
 SCM
@@ -207,10 +208,13 @@
 scm_init_gsubr()
 {
   scm_f_gsubr_apply = scm_make_subr_opt("gsubr-apply", scm_tc7_lsubr, 
scm_gsubr_apply, 0);
-  scm_sym_name = SCM_CAR (scm_sysintern ("name", SCM_UNDEFINED));
-  scm_permanent_object (scm_sym_name);
+
 #ifdef GSUBR_TEST
   scm_make_gsubr("gsubr-2-1-l", 2, 1, 1, gsubr_21l); /* example */
+#endif
+
+#ifndef SCM_MAGIC_SNARFER
+#include "libguile/gsubr.x"
 #endif
 }
 
Index: guile/guile-core/libguile/init.c
diff -u guile/guile-core/libguile/init.c:1.106 
guile/guile-core/libguile/init.c:1.107
--- guile/guile-core/libguile/init.c:1.106      Sun Nov 26 10:27:49 2000
+++ guile/guile-core/libguile/init.c    Mon Dec 11 06:48:23 2000
@@ -368,20 +368,6 @@
     }
 }
 
-/* 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;
-}
-
 
 /* The main init code.  */
 
@@ -482,11 +468,7 @@
 #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_init_storage ();
   scm_struct_prehistory ();    /* Must come after scm_init_storage */
   scm_weaks_prehistory ();     /* Must come after scm_init_storage */
   scm_init_subr_table ();
@@ -498,6 +480,7 @@
 #endif
   start_stack (base);
   scm_init_gsubr ();
+  scm_init_procprop ();
   scm_init_environments ();
   scm_init_feature ();
   scm_init_alist ();
@@ -542,7 +525,6 @@
   scm_init_regex_posix ();
 #endif
   scm_init_procs ();
-  scm_init_procprop ();
   scm_init_scmsigs ();
 #ifdef HAVE_NETWORKING
   scm_init_net_db ();
Index: guile/guile-core/libguile/keywords.c
diff -u guile/guile-core/libguile/keywords.c:1.27 
guile/guile-core/libguile/keywords.c:1.28
--- guile/guile-core/libguile/keywords.c:1.27   Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/keywords.c        Mon Dec 11 06:48:23 2000
@@ -95,13 +95,16 @@
 SCM
 scm_c_make_keyword (char *s)
 {
-  SCM vcell;
   char *buf = scm_must_malloc (strlen (s) + 2, "keyword");
+  SCM symbol;
+
   buf[0] = '-';
   strcpy (buf + 1, s);
-  vcell = scm_sysintern0 (buf);
+  symbol = scm_str2symbol (buf);
   scm_must_free (buf);
-  return scm_make_keyword_from_dash_symbol (SCM_CAR (vcell));
+  scm_done_free (strlen (s) + 2);
+
+  return scm_make_keyword_from_dash_symbol (symbol);
 }
 
 SCM_DEFINE (scm_keyword_p, "keyword?", 1, 0, 0, 
Index: guile/guile-core/libguile/options.c
diff -u guile/guile-core/libguile/options.c:1.28 
guile/guile-core/libguile/options.c:1.29
--- guile/guile-core/libguile/options.c:1.28    Fri Nov 17 08:25:04 2000
+++ guile/guile-core/libguile/options.c Mon Dec 11 06:48:23 2000
@@ -218,9 +218,15 @@
 
   for (i = 0; i < n; ++i)
     {
-      options[i].name =        (char *) SCM_CAR (scm_sysintern0 
(options[i].name));
-      options[i].doc = (char *) scm_permanent_object (scm_take0str
-                                                     (options[i].doc));
+      SCM name;
+      SCM doc;
+
+      name = scm_str2symbol (options[i].name);
+      options[i].name =        (char *) name;
+      scm_permanent_object (name);
+      doc = scm_take0str (options[i].doc);
+      options[i].doc = (char *) doc;
+      scm_permanent_object (doc);
       if (options[i].type == SCM_OPTION_SCM)
        SCM_SETCDR (protected_objects,
                    scm_cons (SCM_PACK(options[i].val), SCM_CDR 
(protected_objects)));
Index: guile/guile-core/libguile/srcprop.c
diff -u guile/guile-core/libguile/srcprop.c:1.40 
guile/guile-core/libguile/srcprop.c:1.41
--- guile/guile-core/libguile/srcprop.c:1.40    Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/srcprop.c Mon Dec 11 06:48:23 2000
@@ -76,11 +76,11 @@
  *
  */
 
-SCM scm_sym_filename;
-SCM scm_sym_copy;
-SCM scm_sym_line;
-SCM scm_sym_column;
-SCM scm_sym_breakpoint;
+SCM_GLOBAL_SYMBOL (scm_sym_filename, "filename");
+SCM_GLOBAL_SYMBOL (scm_sym_copy, "copy");
+SCM_GLOBAL_SYMBOL (scm_sym_line, "line");
+SCM_GLOBAL_SYMBOL (scm_sym_column, "column");
+SCM_GLOBAL_SYMBOL (scm_sym_breakpoint, "breakpoint");
 
 scm_bits_t scm_tc16_srcprops;
 static scm_srcprops_chunk *srcprops_chunklist = 0;
@@ -329,14 +329,8 @@
   scm_set_smob_print (scm_tc16_srcprops, srcprops_print);
 
   scm_source_whash = scm_make_weak_key_hash_table (SCM_MAKINUM (2047));
-
-  scm_sym_filename = SCM_CAR (scm_sysintern ("filename", SCM_UNDEFINED));
-  scm_sym_copy = SCM_CAR (scm_sysintern ("copy", SCM_UNDEFINED));
-  scm_sym_line = SCM_CAR (scm_sysintern ("line", SCM_UNDEFINED));
-  scm_sym_column = SCM_CAR (scm_sysintern ("column", SCM_UNDEFINED));
-  scm_sym_breakpoint = SCM_CAR (scm_sysintern ("breakpoint", SCM_UNDEFINED));
-
   scm_sysintern ("source-whash", scm_source_whash);
+
 #ifndef SCM_MAGIC_SNARFER
 #include "libguile/srcprop.x"
 #endif
Index: guile/guile-core/libguile/variable.c
diff -u guile/guile-core/libguile/variable.c:1.30 
guile/guile-core/libguile/variable.c:1.31
--- guile/guile-core/libguile/variable.c:1.30   Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/variable.c        Mon Dec 11 06:48:23 2000
@@ -83,7 +83,7 @@
 }
 
 
-static SCM anonymous_variable_sym;
+SCM_SYMBOL (anonymous_variable_sym, "anonymous-variable");
 
 
 static SCM
@@ -229,7 +229,6 @@
   scm_set_smob_print (scm_tc16_variable, variable_print);
   scm_set_smob_equalp (scm_tc16_variable, variable_equalp);
 
-  anonymous_variable_sym = SCM_CAR (scm_sysintern ("anonymous-variable", 
SCM_UNDEFINED));
 #ifndef SCM_MAGIC_SNARFER
 #include "libguile/variable.x"
 #endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]