net_db.c, read.c, socket.c: Update error messages to use ~A for
%s, ~S for %S to work with new `simple-format' format and be
standardized better.
* print.h, print.c (scm_simple_format): Added `simple-format'
primitive. It's the old scm_display_error, with ARGS now a rest
parameter, and the destination first instead of last (and a couple
new capabilities inspired by `format' -- #t as destination means
current-output-port, #f means return the formatted text as a
string.
* gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
* backtrace.c (scm_display_error_message): Rewrote to use
scm_simple_format() procedure.
* __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
(obsolete)
* Makefile.am: likewise, add INCLTDL (libltdl headers) to
INCLUDES, set dlpreopened files in LDFLAGS, link libguile
against libltdl
* DYNAMIC-LINKING: Removed because it is obsolete.
Emacs 20.5.
* acconfig.h: add LOCALTIME_CACHE.
* These changes should make it unnecessary to call tzset from
Scheme after modifying the TZ environment variable, even if the
system date facilities cache the value.
* stime.c (setzone, scm_localtime): added comments.
(tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
(setzone): don't call tzset.
(restorezone): call tzset only if HAVE_TZSET is defined.
(scm_tzset): don't define if HAVE_TZSET not defined. Change the
doc string to indicate that this procedure isn't likely to do
anything useful.
(scm_localtime, scm_strftime, scm_mktime): call tzset if
LOCALTIME_CACHE is defined.
scm_lookupcar1: throw an error with key 'unbound-variable instead
of 'misc-error when an unbound variable is encountered.
* filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
scm_symlink, scm_readlink, scm_lstat),
posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
scm_sync),
simpos.c (scm_system),
stime.c (scm_times, scm_strptime):
move the HAVE_XXX feature tests out of the procedure bodies.
don't use SCM_SYSMISSING.
scm_validate.h (SCM_SYSMISSING): removed.
error.h, error.c (scm_sysmissing): comment that this is deprecated.
see ChangeLog entry for 1999-12-28.
report the position of the argument.
* error.h, error.c (scm_out_of_range_pos): Added this function to
take extra "pos" argument, the position number of the errant
argument.
* debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
* snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
prefers that and I'm reasonably indifferent.
SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
Mikael's macros, below, but changed names and SCM_SNARFING no
longer expands to include %%% -- that must appear in the argument
so that the token appears at the call-site as a reminder).
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.