diff --git a/NEWS b/NEWS index f171f8082..13950944d 100644 --- 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 f0c912185..16230478a 100644 --- 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]) diff --git a/libguile/ChangeLog b/libguile/ChangeLog index fcc3b94a7..665d820d6 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,15 @@ +2000-12-28 Dirk Herrmann + + 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 * guardians.c (mark_dependencies_in_tconc): new function. diff --git a/libguile/procs.c b/libguile/procs.c index a79c7d79c..d1279a21a 100644 --- a/libguile/procs.c +++ b/libguile/procs.c @@ -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); } } diff --git a/libguile/procs.h b/libguile/procs.h index a843525a4..3e332f0ab 100644 --- a/libguile/procs.h +++ b/libguile/procs.h @@ -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 */