on Win32 platforms.
Checking for `ws2_32.dll', `winsock2.h', add `uname.o' and
`dirent.o' and define extra compiler flags necessary to build
clean dlls.
Check for `regcomp()' inside `-lregex'.
`export-syntax', `re-export' and `re-export-syntax' into the
`define-module' form. This is the recommended way of exporting
bindings.
* srfi-2.scm, srfi-4.scm, srfi-8.scm, srfi-9.scm, srfi-10.scm,
srfi-11.scm, srfi-14.scm, srfi-16.scm: Move module the system
directives `export', `export-syntax', `re-export' and
`re-export-syntax' into the `define-module' form. This is the
recommended way of exporting bindings.
* goops.scm, goops/active-slot.scm, goops/compile.scm,
goops/composite-slot.scm, goops/describe.scm, goops/dispatch.scm,
goops/old-define-method.scm, goops/save.scm, goops/util.scm: Move
module the system directives `export', `export-syntax',
`re-export' and `re-export-syntax' into the `define-module' form.
This is the recommended way of exporting bindings.
* slib.scm (array-indexes): New procedure.
(*features*): Extend. (Probably some of these options should be
set elsewhere.) (Thanks to Aubrey Jaffer.)
* and-let-star-compat.scm, and-let-star.scm, calling.scm,
channel.scm, common-list.scm, debug.scm, debugger.scm,
expect.scm, hcons.scm, lineio.scm, ls.scm, mapping.scm,
null.scm, optargs.scm, poe.scm, popen.scm, pretty-print.scm,
q.scm, r5rs.scm, rdelim.scm, regex.scm, runq.scm, safe-r5rs.scm,
safe.scm, session.scm, slib.scm, streams.scm, string-fun.scm,
syncase.scm, threads.scm: Move module the system directives
`export', `export-syntax', `re-export' and `re-export-syntax'
into the `define-module' form. This is the recommended way of
exporting bindings.
scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
scm_list_<n> over scm_cons[2]?.
(scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
SCM_C[AD][AD]R instead of explicit form.
(scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
comparison parameters.
(scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
!SCM_NULLP instead of SCM_NIMP.
(scm_m_case): Don't copy the form. Renamed proc to clause and
minimized its scope. Renamed x to clauses. Removed side
effecting operation from macro call.
(scm_m_cond): Don't copy the form. Renamed arg1 to clause and
minimized its scope. Renamed x to clauses. Minimized the scope
of variable 'len'. Make sure the else clause is treated specially
even in case of '=>' occurences. Don't change the else to #t in
order to be able to distinguish this case in the evaluator. Leave
type checking of the recipient to the evaluator.
(scm_c_improper_memq): Made the comment somewhat clearer.
(scm_m_lambda): Renamed proc to formals. Removed unnecessary
test for SCM_IM_LET at the place of the formal parameters.
Simplified the formal parameter checking.
(scm_m_letstar): Added Comment. Renamed proc to bindings.
Renamed arg1 to binding and minimized its scope. Eliminated
unnecessary consing.
(scm_m_do): Renamed proc to bindings. Minimized the scope of
variable 'len'.
(build_binding_list): New static function.
(unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
Further, split up the 'letrec' unmemoizing code to the
corresponding parts for 'do', 'let' and 'letrec', adding comments
to each form. Cleanup the handling of the do form (This removes
some *real* code :-).
(SCM_CEVAL): Removed side effecting operation from macro call.
Handle the 'else clause of the 'cond form specially - the symbol
'else is not replaced with #t any more.
SCM_UNSPECIFIED: Fall back to standard handling instead of raising
an exception. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
* arrays.scm (read:uniform-vector): Return *unspecified* instead
of raising an exception if hash extend character isn't followed by
the array list. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
across a hexdigit after having read a # or if not reading a hex
value. This will enable the calling code to correctly handle
forms like 1e2. (The background is, that the exponent markers d,
e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
providing this patch.
(mem2complex): Fix erroneous double-negation. Now, numbers like
1-i will be read correctly.
Initialize. These variables are now registered as gc roots.
(scm_current_pstate): Update documentation.
(scm_current_pstate, scm_make_print_state, scm_free_print_state,
scm_prin1, scm_init_print): print_state_pool is registered as a
gc root and thus does not need to be protected by a surrounding
pair any more.
(make_print_state): The car of print_state_pool no longer holds
the scm_print_state_vtable.
(scm_current_pstate, scm_make_print_state, print_circref,
scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
SCM_N<foo>.
(scm_prin1): When building lists, prefer scm_list_<n> over
scm_cons[2]?.
(scm_iprlist): Removed a redundant SCM_IMP test.
(scm_simple_format): Use SCM_EQ_P to compare SCM values.
(scm_memcons, scm_mem_to_proc): When building lists, prefer
scm_list_<n> over scm_cons[2]?.
(scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
(scm_procedure_name): Use SCM_CADR instead of explicit form.
(debugobj_print): Coerce scm_intprint arg 1 to long, not int.
Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
for some reason his patch didn't make it into the cvs.