comments.
(scm_deval_args, deval_args): Renamed scm_deval_args to
deval_args, since it is not part of the interface.
(SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
use references to debug.vect[0] before it exists. Add parentheses
to switch statement.
* goops.h: Added local emacs variables.
* srcprop.c (scm_source_property): Remove redundant SCM_IMP
test.
* strings.c (scm_c_string2str): Clarified comment. Replaced
THINKME by FIXME for uniformness. Removed question about whether
arguments need to be protected from garbage collection: Arguments
must be protected as any other variable.
* strings.c (scm_c_string2str): New function. Converts a
given Scheme string into a C string. Also put in two
THINKME's regarding the malloc policy for the missing converter
routines.
SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
(SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
macros.
(SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
* inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
SCM_GC_CELL_* macros when accessing free cells.
scm_debug_newcell2, scm_tc16_allocated): Removed from header.
(scm_deprecated_newcell, scm_deprecated_newcell2): New.
(SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
scm_deprecated_newcell and scm_deprecated_newcell2.
gc.c (scm_tc16_allocated): Only define when including deprecated
features.
(scm_debug_newcell, scm_debug_newcell2): Removed.
(scm_init_storage): Do not initialize scm_tc16_allocated.
(scm_init_gc): Do it here.
(allocated_mark): New, from old code.
(scm_deprecated_newcell, scm_deprecated_newcell2): New.
* win32-socket.c (getservent, setservent, endservent,
getprotoent, setprotoent, endprotoent): New functions.
Appropriate replacements for M$-Windows.
* numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
these definitions for GUILE_DEBUG.
* net_db.c: Include "win32-socket.h" if compiling with a native
M$-Windows compiler. Include some pieces of code (protoent and
servent interface) protected by HAVE_* macros when using a
native M$-Windows compiler.
(SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
(SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
(SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
(s_scm_major_version): use SCM_MAJOR_VERSION.
(s_scm_minor_version): use SCM_MINOR_VERSION.
(s_scm_micro_version): use SCM_MICRO_VERSION.
(s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
SCM_MICRO_VERSION.
(scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
Minimize scope of local variable. Eliminate dependency on
macro DEBUG_EXTENSIONS.
(s_splicing): New error message string.
(scm_m_body): Issue 'bad body' message rather than 'missing
expression' message.
(scm_m_quote): Eliminate unnecessary copying.
(scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
checking of the body to scm_m_body.
(scm_m_do): Move comment to function header. Rename arg1 to
binding. Made the code a bit easier to read.
(evalcar): Removed.
(iqq): Added a comment. Changed the depth parameter to
unsigned. Use size_t for vector lengths. Make sure vector object
is gc protected as long as its contents are read. Add some syntax
checks. Get rid of unnecessary SCM_IMP test. Clean up the
control structure a bit.
(scm_m_delay): Added comment about the implementation of
scm_m_delay.
(scm_m_define): Add comment about guile's currying define
syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
(scm_m_letrec1): Removed. Part of the functionality is taken
over by the new function 'transform_bindings'.
(transform_bindings): New function. Takes over some of the
functionality of removed function 'scm_m_letrec1', namely to split
a list of bindings into a reversed list of variables and a list of
initializers.
(scm_m_letrec): Call 'transform_bindings'.
(scm_m_let): Minimized scope of local variables. Renamed 'proc'
to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
test. Use 'transform_bindings'. Fixed scoping error with named
let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
Jerram for suggesting the fix). Cleaned up the control structure
a bit.
(scm_m_expand_body): Use 'transform_bindings'. Eliminated
unnecessary consing. Eliminated unnecessary
SCM_DEFER/ALLOW_INTS.
(SCM_CEVAL): Un-obfuscated some loops.
index entries for each Guile primitive to the copy of the doc
snarf output that is used for reference manual synchronization.
Online help is unchanged.