scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals):
Renamed and made global.
* eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
(SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
* evalext.c (serial-map): New procedure: Version of `map' which
guarantees that the procedure is applied to the lists in serial
order.
(sequence->list): New syntax: Version of `begin' which returns a
list of the results of the body forms instead of the result of the
last body form.
(scm_definedp, scm_m_undefine): Moved from eval.c
* macros.c, macros.h: New files.
(procedure->syntax, procedure->macro, procedure->memoizing-macro,
macro?, macro-type, macro-name, macro-transformer): Moved from
eval.c
(scm_make_synt): Moved from eval.c
* procs.c, procs.h (procedure-documentation): Moved from eval.c.
(scm_grow_port_cbuf): New function.
* ports.c (scm_add_to_port_table, scm_remove_from_port_table):
Handle new fields.
(scm_generic_fgets), fports.c (local_fgets): Use a loop
to read unread characters. Use SCM_TRY_CLRDY instead of
SCM_CLRDY.
(SCM_TRY_CLRDY): New macro: Only clear the first unread
character. (SCM_CLRDY clears all.)
(SCM_N_READY_CHARS): New macro: Returns number of unread
characters in a port. Returns wrong answer if SCM_CRDYP is false.
(struct scm_port_table): New fields: `entry' contains port table
index, `cp' points to last unread char, `cbuf' is the buffer for
unread chars, `cbufend' points after end of the character buffer.
* ports.h, ports.c (scm_unread_string): New procedure.
(scm_grow_port_cbuf): New function.
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.
* guile-snarf.in: If the CPP environment variable is set, use that
as the C preprocessor, instead of the preprocessor autoconf
found.
* snarf.h (SCM_PROC): Cast the function pointer passed to
scm_make_gsubr, to satisfy C++.
Richard Polton.)
Bug reports from Russ McManus:
* guile-snarf.in: If the CPP environment variable is set, use that
as the C preprocessor, instead of the preprocessor autoconf
found.
* snarf.h (SCM_PROC): Cast the function pointer passed to
scm_make_gsubr, to satisfy C++.
#bytes(...) to #y(...), and syntax for short vectors from
#short(...) to #h(...). This may seem nutty, but, like the other
uniform vectors, byte vectors and short vectors want to have the
same print and read syntax (and, more basic, want to have read
syntax!). Changing the read syntax to use multiple characters
after the hash sign breaks with the conventions used in R5RS and
the conventions used for the other uniform vectors. It also
introduces complexity in the current reader, both on the C and
Scheme levels. (The Right solution is probably to change the
syntax and prototypes for uniform vectors entirely.)
(Thanks to Jorgen "forcer" Schaefer.)
* ports.h (SCM_NOFTELL): New flag.
* fports.c (local_fgets): If it's set, use the generic fgets.
* socket.c (scm_socket): Set SCM_NOFTELL on the ports we produce.
(inhibit loading of user init file).
(scm_shell_usage): Add usage text for -q switch.
(scm_compile_shell_switches): Always load user init file first if
it is loaded at all.
and is now broken under NetBSD. I can't fathom what it's trying
to do, so I've replaced it with something that I do understand,
which seems to work, and which isn't broken on NetBSD. "Progress?
You Decide." (Thanks to Perry Metzger.)
Clark McGrew.)
* ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
raeql_1): Add cases for scm_tc7_svect (short vectors) and
scm_tc7_llvect (long long vectors).
get rid of these spurious mismatch warnings. Now both
libguile/versiondat.h and ice-9/version.scm are generated directly
by the configuration process, rather than having version.scm
generated directly, and libguile/versiondat.h generated by the
Makefile, which is generated by configure. It seems that
sometimes the Makefile would change, but versiondat.h depends on
Makefile.in, not Makefile, so it wouldn't get rebuilt.
* Makefile.am (versiondat.h): Target removed; this is generated
directly by the configure script now.
(BUILT_SOURCES): Remove versiondat.h.
* versiondat.h.in: New file, transformed by the configure script
into versiondat.h.
* Makefile.in: Regenerated.
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.)