them when declared. The strange SCM_NIMP tests are replaced by
SCM_CONSP tests that more closely reflect the intended semantics.
However, we don't get a performance penalty here, because the
SCM_CONSP test was performed by the ALISTCELL test anyway. * The
extremely ugly use of ASRTGO macros was removed: The calls to
ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
label parameter that only exists when SCM_RECKLESS is not defined.
This works, because ASRTGO itself is defined in a way that it only
makes use of the label parameter if SCM_RECKLESS is not defined
(shudder!). Does guile make at all use of the possibility to
define SCM_RECKLESS? * Codesize is likely to be reduced, since
instead of two calls to SCM_ASSERT performed by the ALISTCELL test
we now only get one test.
* list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
some variables in `list?'. Fix `reverse' and `reverse!'
primitives to handle improper lists better.
print warnings in an Emacs compile-mode parseable format.
* struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
SCM_OUTOFRANGE as 3rd argument.
* random.c: Fix argument/number mismatch (that I introduced :-( ).
* __scm.h: Do not #define SCM_ARG* when snarfing;
lets us distinguish between 1 and SCM_ARG1 when snarfing as only
the former (using the number) requires the argument to match the
formal in the current argument snarfing check.
* ramap.c: Remove extraneous #undef FUNC_NAME.
posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
redundant with the safer macros. Patch from Dirk Hermann applied
by hand. Thanks Dirk!
* scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
uses in random.c.
* ramap.c: whitespace change.
removals from Dirk Hermann.
* alist.c: Rename formals to match the parameter names in the
documentation, updates to documentation. Thanks Dirk Hermann!
procedure body, so that the procedure is left undefined if waitpid
is not available. previously in this case the procedure was
defined but would raise a system-error when called, which is
pointless. I intend to make the same change for other procedures
and deprecate SCM_SYSMISSING and scm_sysmissing.