this finding! :) Preliminary dating suggests an almost 4 year old
remnant from the SCM ancestor. The sample has been removed from
the finding site and is now safely stored in the repository.
* numbers.h: Removed prototype for num2long.
* unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
* gh_data.c (gh_scm2doubles): Make it possible to pass result
array as second arg.
(gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
* gh.h: Updated and added prototypes.
* gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
SCM_CAUTIOUS; this way, 1) there's only one version of each flag
to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
if we want to use them in a header file some day, we can. (Thanks
to Michael Livshin.)
comparison is okay here.
* numbers.c (scm_istr2int): Add cast; len is known to be positive.
* numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
(true, but confusing) fact that -1 == ((unsigned) 0 - 1).
* numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
signed/unsigned.
warning.
* eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
to avoid compiler warnings.
* dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
ANSI declarations combined with K&R definitions. We'll
appease it a little bit. But when it invades France, we fight.
* print.c (scm_iprlist): Change 'tlr' argument to an int.
* print.h (scm_iprlist): Here too.
* numbers.c (scm_divbigdig): Change definition to match
declaration in numbers.h.
* unif.c (scm_makflo): Change definition to match declaration in
unif.h.
scheme name from "int?" to "integer?". It seems to do the job.
* numbers.h: Rename prototype too.
* scmhob.h (intp): Change definition to refer to scm_integer_p. I
hope this is right.
* * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
scm_num_eq_p): Rename these according to R4RS conventions: call
them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
to making libguile R4RS compliant without ice-9...
eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
vports.c: Cleaned up use of pairs: Don't make any special
assumptions about the internal structure of selectors and
mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
(Among other things, this change makes it easier to build Guile
with certain compilers which have problems with casted lvalues.)
numbers are), just call scm_small_istr2int to deal with it.
(scm_small_istr2int): New function, created by un-#ifdefing the
non-bignum version of scm_istr2int and renaming it.
wta for range errors (ASSERT still needs work).
* error.c, error.h (scm_out_of_range): new procedure.
* error.c, error.h (scm_out_of_range_key): new key.
* posix.c (scm_sync): #else was missing.
* error.c, error.h: append _key to names scm_num_overflow and
scm_system_error.
* __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
of consing an empty list.
(SCM_SYSERROR etc.): move into error.c, make them procedures instead
of macros, saves code and string space.
error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
lower case. Rename scm_syserror_m to scm_syserror_msg.
error.h: prototypes for new procedures.
* error.c, error.h: setup scm_num_overflow key.
* __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
Remove definition of SCM_OVSCM_FLOW.
* fports.c (scm_open_file): use SCM_SYSERROR_M.
* __scm.h: SCM_SYSERROR_M: new macro for system errors with an
explicit message and args.
* error.c, error.h, __scm.h: change system_error_sym to
scm_system_error.
* error.c (system_error_sym): remove leading %% from the Scheme name
"%%system-error".
* __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
* boot-9.scm: remove leading %% from references to '%%system-error.
(%%handle-system-error): don't pass all the thrown arguments when
aborting, just the key and subr.
Remove the code to "Install default handlers for built-in errors."
Remove the definition of the syserror procedure.
Associate 'numerical-overflow with default handler.