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.
num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
now rely on SIZEOF_ macros that have been figured out at
configure time.
* num2integral.i.c: Adapt to new interface.
(NUM2INTEGRAL): Test whether a fixnum can be represented in the
target type by casting it and checking whether it is still the
same. Do not try to handle bignums for integral types that are
smaller than fixnums. When handling bignums, collect the
magnituse first into a unsigned type, and correctly check for
overflow.
(INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
only -MIN_VALUE can still be negative of all negative numbers (in
twos-complement).
* configure.in: Include `win32-socket.o' in the list of object
files if networking is enabled on Win32.
2001-11-07 Stefan Jahn <stefan@lkcc.org>
* win32-socket.[ch]: New files. Defines Winsock-API error codes
and makes them available through Guile. That is because the
Winsock-API does not store its errors in `errno' and thus cannot
return error messages via `strerror (errno)'.
* socket.c (scm_init_socket): Initialize `win32-socket' part
here under M$-Windows.
* numbers.h: Added missing declaration of
`scm_sys_check_number_conversions()'.
* error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
and use in `(strerror)' and `(system-error)'.
* Makefile.am (EXTRA_libguile_la_SOURCES): Added
`win32-socket.[ch]' to extra source and header files.
a call to turn-on-debugging when --debug has been given instead of
turning it on directly. Also, handle new `--no-debug' option,
which might suppress the call to turn-on-debugging.
* NEWS: Corrected remarks about SCM_API.
* configure.in: Defining USE_DLL_IMPORT definition to indicate
usage of DLL import macros in `libguile/__scm.h'.
(LIBOBJS): Removed `fileblocks.o' from the list of object files.
Somehow Jim Blandy's patch from 1997 did not survive.
2001-11-04 Stefan Jahn <stefan@lkcc.org>
* configure.in (EXTRA_DEFS): Follow-up patch. Using SCM_IMPORT
instead of __SCM_IMPORT__.
* readline.c (scm_readline_init_ports): Disable input/output
stream redirection for Win32. The readline package for Win32
does not support this. The guile-readline library works fine
for command line editing.
* readline.h (SCM_RL_API): Renamed __FOO__ macros into FOO.
2001-11-04 Stefan Jahn <stefan@lkcc.org>
* Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
here (was at guile_LDADD) which describes the dependency
correctly and allows a clean build on Win32.
* __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
into FOO.
* __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
import macros for external libraries (libcrypt, libqthreads,
libreadline and libregex).
* coop-defs.h: Include <winsock2.h> for `struct timeval'.
* posix.c (flock): Added support for flock() in M$-Windows.
* guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
of __SCM_IMPORT__.
* fports.c (getflags): Differentiate reading and writing pipes
descriptors.
* filesys.c (S_IS*): Redefine all of the S_IS*() macros for
M$-Windows.
* coop.c (coop_condition_variable_timed_wait_mutex): Use
conditionalized error code if `ETIMEDOUT' is not available.
(scm_thread_usleep): Remove bogus declaration of `struct timeval
timeout'.
* numbers.c (PTRDIFF_MIN): Moved this definition where it actually
belongs. That is because NO_PREPRO_MAGIC gets undefined after
each inclusion of `num2integral.i.c'.
(SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
2001-11-04 Stefan Jahn <stefan@lkcc.org>
* md/Makefile.am (EXTRA_DIST): Added `i386.asm'.
* md/i386.asm: New file. Contains the Intel syntax version for
nasm/tasm/masm of the file `i386.s'.
* qt.h.in: Definition of QT_API, QT_IMPORT and QT_EXPORT.
Prefixed each symbols which is meant to go into a DLL.
* Makefile.am (libqthreads_la_LDFLAGS): Put `-no-undefined'
into LDFLAGS to support linkers which do not allow unresolved
symbols inside shared libraries.
(EXTRA_DIST): Add `libqthreads.def', which is an export file
definition for M$-Windows. It defines exported symbols. This is
necessary because the M$VC linker does not know how to export
assembler symbols into a DLL.
2001-11-04 Stefan Jahn <stefan@lkcc.org>
* srfi-13.h, srfi-14.h, srfi-4.h: Follow-up patch. Renamed
__FOO__ macros into FOO.
2001-11-04 Stefan Jahn <stefan@lkcc.org>
* tests/ports.test: Run (close-port) before (delete-file) if
necessary/advisory.