mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 01:00:20 +02:00
* sort.c: typo in comment fixed.
* keywords.c: Added documentation. * guardians.c: Added documentation (could be better). * gc.c: Added docs for gc-set-debug-check-freelist. * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS. * boolean.c: Added docs for `not', `boolean?' (by hand).
This commit is contained in:
parent
7e2cb69cbc
commit
da4a1dbab4
6 changed files with 40 additions and 16 deletions
|
@ -54,7 +54,7 @@
|
||||||
|
|
||||||
SCM_DEFINE (scm_not, "not", 1, 0, 0,
|
SCM_DEFINE (scm_not, "not", 1, 0, 0,
|
||||||
(SCM x),
|
(SCM x),
|
||||||
"")
|
"Return #t iff X is #f, else return #f.\n")
|
||||||
#define FUNC_NAME s_scm_not
|
#define FUNC_NAME s_scm_not
|
||||||
{
|
{
|
||||||
return SCM_BOOL(SCM_FALSEP(x));
|
return SCM_BOOL(SCM_FALSEP(x));
|
||||||
|
@ -64,7 +64,7 @@ SCM_DEFINE (scm_not, "not", 1, 0, 0,
|
||||||
|
|
||||||
SCM_DEFINE (scm_boolean_p, "boolean?", 1, 0, 0,
|
SCM_DEFINE (scm_boolean_p, "boolean?", 1, 0, 0,
|
||||||
(SCM obj),
|
(SCM obj),
|
||||||
"")
|
"Return #t iff OBJ is either #t or #f.\n")
|
||||||
#define FUNC_NAME s_scm_boolean_p
|
#define FUNC_NAME s_scm_boolean_p
|
||||||
{
|
{
|
||||||
return SCM_BOOL(SCM_BOOL_F == obj || SCM_BOOL_T == obj);
|
return SCM_BOOL(SCM_BOOL_F == obj || SCM_BOOL_T == obj);
|
||||||
|
|
|
@ -56,6 +56,10 @@
|
||||||
|
|
||||||
SCM_DEFINE1 (scm_eq_p, "eq?", scm_tc7_rpsubr,
|
SCM_DEFINE1 (scm_eq_p, "eq?", scm_tc7_rpsubr,
|
||||||
(SCM x, SCM y),
|
(SCM x, SCM y),
|
||||||
|
"Return #t iff X references the same object as Y.\n"
|
||||||
|
"`eq?' is similar to `eqv?' except that in some cases\n"
|
||||||
|
"it is capable of discerning distinctions finer than\n"
|
||||||
|
"those detectable by `eqv?'.\n"
|
||||||
"")
|
"")
|
||||||
#define FUNC_NAME s_scm_eq_p
|
#define FUNC_NAME s_scm_eq_p
|
||||||
{
|
{
|
||||||
|
@ -66,7 +70,11 @@ SCM_DEFINE1 (scm_eq_p, "eq?", scm_tc7_rpsubr,
|
||||||
|
|
||||||
SCM_DEFINE1 (scm_eqv_p, "eqv?", scm_tc7_rpsubr,
|
SCM_DEFINE1 (scm_eqv_p, "eqv?", scm_tc7_rpsubr,
|
||||||
(SCM x, SCM y),
|
(SCM x, SCM y),
|
||||||
"")
|
"The `eqv?' procedure defines a useful equivalence relation on objects.\n"
|
||||||
|
"Briefly, it returns #t if X and Y should normally be\n"
|
||||||
|
"regarded as the same object. This relation is left\n"
|
||||||
|
"slightly open to interpretation, but works for comparing\n"
|
||||||
|
"immediate integers, characters, and inexact numbers.\n")
|
||||||
#define FUNC_NAME s_scm_eqv_p
|
#define FUNC_NAME s_scm_eqv_p
|
||||||
{
|
{
|
||||||
if (x==y) return SCM_BOOL_T;
|
if (x==y) return SCM_BOOL_T;
|
||||||
|
@ -91,6 +99,12 @@ SCM_DEFINE1 (scm_eqv_p, "eqv?", scm_tc7_rpsubr,
|
||||||
|
|
||||||
SCM_DEFINE1 (scm_equal_p, "equal?", scm_tc7_rpsubr,
|
SCM_DEFINE1 (scm_equal_p, "equal?", scm_tc7_rpsubr,
|
||||||
(SCM x, SCM y),
|
(SCM x, SCM y),
|
||||||
|
"Return #t iff X and Y are recursively `eqv?' equivalent.\n"
|
||||||
|
"`equal?' recursively compares the contents of pairs, vectors, and\n"
|
||||||
|
"strings, applying `eqv?' on other objects such as numbers and\n"
|
||||||
|
"symbols. A rule of thumb is that objects are generally `equal?'\n"
|
||||||
|
"if they print the same. `Equal?' may fail to terminate if its\n"
|
||||||
|
"arguments are circular data structures.\n"
|
||||||
"")
|
"")
|
||||||
#define FUNC_NAME s_scm_equal_p
|
#define FUNC_NAME s_scm_equal_p
|
||||||
{
|
{
|
||||||
|
|
|
@ -300,7 +300,9 @@ static int scm_debug_check_freelist = 0;
|
||||||
|
|
||||||
SCM_DEFINE (scm_gc_set_debug_check_freelist_x, "gc-set-debug-check-freelist!", 1, 0, 0,
|
SCM_DEFINE (scm_gc_set_debug_check_freelist_x, "gc-set-debug-check-freelist!", 1, 0, 0,
|
||||||
(SCM flag),
|
(SCM flag),
|
||||||
"")
|
"If FLAG is #t, check the freelist for consistency on each cell allocation.\n"
|
||||||
|
"This procedure only exists because the GUILE_DEBUG_FREELIST \n"
|
||||||
|
"compile-time flag was selected.\n")
|
||||||
#define FUNC_NAME s_scm_gc_set_debug_check_freelist_x
|
#define FUNC_NAME s_scm_gc_set_debug_check_freelist_x
|
||||||
{
|
{
|
||||||
SCM_VALIDATE_BOOL_COPY (1,flag,scm_debug_check_freelist);
|
SCM_VALIDATE_BOOL_COPY (1,flag,scm_debug_check_freelist);
|
||||||
|
|
|
@ -151,6 +151,15 @@ static SCM guard1;
|
||||||
|
|
||||||
SCM_DEFINE (scm_make_guardian, "make-guardian", 0, 0, 0,
|
SCM_DEFINE (scm_make_guardian, "make-guardian", 0, 0, 0,
|
||||||
(),
|
(),
|
||||||
|
"Return a new guardian object.\n"
|
||||||
|
"A guardian allows dynamically allocated objects to be\n"
|
||||||
|
"saved from deallocation by the garbage collector so that\n"
|
||||||
|
"clean up or other actions can be performed using the data\n"
|
||||||
|
"stored within the objects.\n"
|
||||||
|
"See R. Kent Dybvig, Carl Bruggeman, and David Eby (1993)\n"
|
||||||
|
"\"Guardians in a Generation-Based Garbage Collector\".\n"
|
||||||
|
"ACM SIGPLAN Conference on Programming Language Design\n"
|
||||||
|
"and Implementation, June 1993\n"
|
||||||
"")
|
"")
|
||||||
#define FUNC_NAME s_scm_make_guardian
|
#define FUNC_NAME s_scm_make_guardian
|
||||||
{
|
{
|
||||||
|
|
|
@ -70,7 +70,7 @@ int scm_tc16_kw;
|
||||||
|
|
||||||
SCM_DEFINE (scm_make_keyword_from_dash_symbol, "make-keyword-from-dash-symbol", 1, 0, 0,
|
SCM_DEFINE (scm_make_keyword_from_dash_symbol, "make-keyword-from-dash-symbol", 1, 0, 0,
|
||||||
(SCM symbol),
|
(SCM symbol),
|
||||||
"")
|
"Return a keyword object from SYMBOL that starts with `-' (a dash).")
|
||||||
#define FUNC_NAME s_scm_make_keyword_from_dash_symbol
|
#define FUNC_NAME s_scm_make_keyword_from_dash_symbol
|
||||||
{
|
{
|
||||||
SCM vcell;
|
SCM vcell;
|
||||||
|
@ -108,8 +108,7 @@ scm_c_make_keyword (char *s)
|
||||||
|
|
||||||
SCM_DEFINE (scm_keyword_p, "keyword?", 1, 0, 0,
|
SCM_DEFINE (scm_keyword_p, "keyword?", 1, 0, 0,
|
||||||
(SCM obj),
|
(SCM obj),
|
||||||
"@code{keyword?} returns @code{#t} if the argument @var{kw} is a keyword;\n"
|
"Returns #t if the argument OBJ is a keyword, else #f.")
|
||||||
"it returns @code{#f} otherwise.")
|
|
||||||
#define FUNC_NAME s_scm_keyword_p
|
#define FUNC_NAME s_scm_keyword_p
|
||||||
{
|
{
|
||||||
return SCM_BOOL(SCM_KEYWORDP (obj));
|
return SCM_BOOL(SCM_KEYWORDP (obj));
|
||||||
|
@ -119,8 +118,8 @@ SCM_DEFINE (scm_keyword_p, "keyword?", 1, 0, 0,
|
||||||
|
|
||||||
SCM_DEFINE (scm_keyword_dash_symbol, "keyword-dash-symbol", 1, 0, 0,
|
SCM_DEFINE (scm_keyword_dash_symbol, "keyword-dash-symbol", 1, 0, 0,
|
||||||
(SCM keyword),
|
(SCM keyword),
|
||||||
"@code{keyword-dash-symbol} [FIXME: have no idea what this does; it is\n"
|
"Return KEYWORD as a dash symbol.\n"
|
||||||
"not commented.]")
|
"This is the inverse of `make-keyword-from-dash-symbol'.\n")
|
||||||
#define FUNC_NAME s_scm_keyword_dash_symbol
|
#define FUNC_NAME s_scm_keyword_dash_symbol
|
||||||
{
|
{
|
||||||
SCM_VALIDATE_KEYWORD (1,keyword);
|
SCM_VALIDATE_KEYWORD (1,keyword);
|
||||||
|
|
|
@ -413,7 +413,7 @@ scm_cmp_function (SCM p)
|
||||||
/* Question: Is there any need to make this a more general array sort?
|
/* Question: Is there any need to make this a more general array sort?
|
||||||
It is probably enough to manage the vector type. */
|
It is probably enough to manage the vector type. */
|
||||||
/* endpos equal as for substring, i.e. endpos is not included. */
|
/* endpos equal as for substring, i.e. endpos is not included. */
|
||||||
/* More natural wih length? */
|
/* More natural with length? */
|
||||||
|
|
||||||
SCM_DEFINE (scm_restricted_vector_sort_x, "restricted-vector-sort!", 4, 0, 0,
|
SCM_DEFINE (scm_restricted_vector_sort_x, "restricted-vector-sort!", 4, 0, 0,
|
||||||
(SCM vec, SCM less, SCM startpos, SCM endpos),
|
(SCM vec, SCM less, SCM startpos, SCM endpos),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue