* Re-introduces the unused member "documentation" of struct scm_subr_entry.
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 28 Dec 2000 15:09:56 +0000 (15:09 +0000)
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 28 Dec 2000 15:09:56 +0000 (15:09 +0000)
NEWS
RELEASE
libguile/ChangeLog
libguile/procs.c
libguile/procs.h

diff --git a/NEWS b/NEWS
index f171f80..1395094 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -330,8 +330,7 @@ SCM_VALIDATE_NULLORROSTRING_COPY, SCM_ROLENGTH, SCM_LENGTH, SCM_HUGE_LENGTH,
 SCM_SUBSTRP, SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_COERCE_SUBSTR,
 SCM_ROSTRINGP, SCM_RWSTRINGP, SCM_VALIDATE_RWSTRING, SCM_ROCHARS,
 SCM_ROUCHARS, SCM_SETLENGTH, SCM_SETCHARS, SCM_LENGTH_MAX, SCM_GC8MARKP,
-SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR, SCM_SUBR_DOC,
-SCM_SUBR_PROPS
+SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR, SCM_SUBR_DOC
 
 Use SCM_ASSERT_RANGE or SCM_VALIDATE_XXX_RANGE instead of SCM_OUTOFRANGE.
 Use scm_memory_error instead of SCM_NALLOC.
diff --git a/RELEASE b/RELEASE
index f0c9121..1623047 100644 (file)
--- a/RELEASE
+++ b/RELEASE
@@ -53,7 +53,7 @@ In release 1.6:
   SCM_COERCE_SUBSTR, SCM_ROSTRINGP, SCM_RWSTRINGP, SCM_VALIDATE_RWSTRING,
   SCM_ROCHARS, SCM_ROUCHARS, SCM_SETLENGTH, SCM_SETCHARS, SCM_LENGTH_MAX,
   SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR,
-  SCM_SUBR_DOC, SCM_SUBR_PROPS
+  SCM_SUBR_DOC
 - remove scm_vector_set_length_x
 - remove function scm_call_catching_errors
   (replaced by catch functions from throw.[ch])
index fcc3b94..665d820 100644 (file)
@@ -1,3 +1,15 @@
+2000-12-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       This patch re-introduces the unused member "documentation" of
+       struct scm_subr_entry as requested by Mikael Djurfeldt.
+
+       * procs.h (scm_subr_entry):  Re-introduced member "documentation".
+
+       (SCM_SUBR_DOC):  Un-deprecated.
+
+       * procs.c (scm_make_subr_opt, scm_mark_subr_table):  Struct
+       scm_subr_entry has a member "documentation" again.
+
 2000-12-28  Michael Livshin  <mlivshin@bigfoot.com>
 
        * guardians.c (mark_dependencies_in_tconc): new function.
index a79c7d7..d1279a2 100644 (file)
@@ -102,6 +102,7 @@ scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set)
   scm_subr_table[entry].handle = z;
   scm_subr_table[entry].name = symbol;
   scm_subr_table[entry].generic = 0;
+  scm_subr_table[entry].properties = SCM_EOL;
   
   SCM_SET_SUBRF (z, fcn);
   SCM_SET_CELL_TYPE (z, (entry << 8) + type);
@@ -148,6 +149,8 @@ scm_mark_subr_table ()
       SCM_SETGCMARK (scm_subr_table[i].name);
       if (scm_subr_table[i].generic && *scm_subr_table[i].generic)
        scm_gc_mark (*scm_subr_table[i].generic);
+      if (SCM_NIMP (scm_subr_table[i].properties))
+       scm_gc_mark (scm_subr_table[i].properties);
     }
 }
 
index a843525..3e332f0 100644 (file)
@@ -62,6 +62,7 @@ typedef struct
   SCM *generic;                        /* 0 if no generic support
                                 * *generic == 0 until first method
                                 */
+  SCM properties;              /* procedure properties */
 } scm_subr_entry;
 
 #define SCM_SUBRNUM(subr) (SCM_CELL_WORD_0 (subr) >> 8)
@@ -72,6 +73,7 @@ typedef struct
 #define SCM_SUBRF(x) ((SCM (*)()) SCM_CELL_WORD_1 (x))
 #define SCM_SET_SUBRF(x, v) (SCM_SET_CELL_WORD_1 ((x), (v)))
 #define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))
+#define SCM_SUBR_PROPS(x) (SCM_SUBR_ENTRY (x).properties)
 #define SCM_SUBR_GENERIC(x) (SCM_SUBR_ENTRY (x).generic)
 
 #define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
@@ -188,7 +190,6 @@ extern SCM scm_make_cclo (SCM proc, SCM len);
 
 #if (SCM_DEBUG_DEPRECATED == 0)
 
-#define SCM_SUBR_PROPS(x) SCM_EOL
 #define SCM_SUBR_DOC(x) SCM_BOOL_F
 
 #endif  /* SCM_DEBUG_DEPRECATED == 0 */