[0334c6]: src / ChangeLog Maximize Restore History

Download this file

ChangeLog    57390 lines (43871 with data), 2.2 MB

2014-05-11  Sam Steingold  <sds@gnu.org>

	* m4/termcap.m4 (CL_TERMCAP): also look for tgetent in tinfo;
	fixes bug#665 as suggested by Jason Miller <jasontkd@users.sf.net>

2013-04-14  Sam Steingold  <sds@gnu.org>

	* modules/asdf/asdf.lisp: upgrade to 2.33

2013-01-06  Sam Steingold  <sds@gnu.org>

	Avoid startup errors when the user has weird ~/.clisp
	* pathname.d, subr.d (PROBE-PATHNAME): accept &key (:error t)
	* spvw.d (main_actions): pass :ERROR NIL to PROBE-PATHNAME

2013-02-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/clx-demos.lisp: require CLX

2013-02-05  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (__swblk_t): remove the unused
	`def-c-type' (removed from glibc too); fixes bug#3603421;
	see also http://article.gmane.org/gmane.comp.lib.glibc.alpha/25618

2013-01-06  Bruno Haible  <bruno@clisp.org>

	* pathname.d (unix_user_pwd): Don't use getlogin().
	Reported by Alberto Riva <alb@chip.org> in
	<http://article.gmane.org/gmane.lisp.clisp.general:13995>

2012-11-23  Sam Steingold  <sds@gnu.org>

	* modules/oracle/Makefile.in (ALL_CFLAGS): new variable,
	accumulate all C flags here, move -I$(srcdir) here from CPPFLAGS
	which is overridden by clisp-link invocation from Makefile

2012-11-20  Sam Steingold  <sds@gnu.org>

	PCRE-EXEC returns character positions instead of byte positions
	* lispbibl.d (Encoding_mblen): export to clisp.h
	* modules/pcre/cpcre.c (PCRE-EXEC): use it convert ovector (byte
	positions) to MATCH (character positions)
	Reported by Mike Palmer <michaeljohnpalmer@gmail.com> in
	<http://article.gmane.org/gmane.lisp.clisp.general:13972>

2012-11-29  Sam Steingold  <sds@gnu.org>

	* modules/oracle/oracle.lisp: code clean-up for better performance
	and error reporting
	(db-error, nl, out, out-nl): remove
	(check-seq-type): add
	(fetch-all): use it
	(update-row, comma-list-of-keys, join): use WITH-OUTPUT-TO-STRING
	instead of CAT so that the algorithm is linear instead of quadratic
	(check-pairs): use ETYPECASE
	(to-string): use PRINC-TO-STRING instead of FORMAT

2012-09-14  Vladimir Tzankov  <vtzankov@gmail.com>

	implement RFE#3545986
	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): add abort restart that
	kills current thread - exits with two values: :ABORT and current
	internal real time

2012-08-20  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (per_thread): TLS (i.e. __thread qualifier) is supported
	by gcc 4.5+ on MacOSX and results in significant performance gain

2012-08-03  Vladimir Tzankov  <vtzankov@gmail.com>

	* stream.d (wr_by_array_iau8_buffered): pin the source buffer before
	performing actual write

2012-05-03  Sam Steingold  <sds@gnu.org>

	update berkeley-db to 5.1
	* modules/berkeley-db/bdb.c (add_message): fix
	(DB-VERSION): use db_full_version when available
	(DBE-CREATE): remote is no longer supported by upstream
	(dbt_to_object): also return nil when p_dbt->size==0
	(DB-COMPACT): add
	(DB-VERIFY): mark the db handle invalid because it "may not be accessed
	again after DB->verify() is called, regardless of its return"

2012-04-27  Sam Steingold  <sds@gnu.org>

	Fix bug#3467762: symlink to directory handling
	* modules/syscalls/calls.c (symlink_file): strip trailing "/" from
	new_pathstring
	(copy_one_file): use PROBE-PATHNAME instead of PROBE-FILE to
	accommodate directories
	* pathname.d (delete_directory): when rmdir() fails with ENOTDIR,
	call unlink() because we are dealing with a symbolic link

2012-04-23  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-apply): do not bind *FORMAT-CS* here ...
	(formatter): ... do it here instead for run-time error reporting
	in compiled FORMAT calls [bug#3498026]

2012-04-23  Sam Steingold  <sds@gnu.org>

	Do not signal errors inside begin/end_blocking_system_call blocks
	Reported by Don Cohen http://article.gmane.org/gmane.lisp.clisp.devel:22914
	* modules/syscalls/calls.c (POSIX:OPENLOG): use clisp_realloc
	instead of clisp_malloc/free
	(my_chmod, my_chown, my_utime): return status instead of signaling
	(SET-FILE-STAT): signal errors after end_blocking_system_call
	(FILE-INFO): do not jump out of a begin/end_blocking_system_call block

2012-04-23  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (error_bad_type): fix declaration (for g++)
	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): add a cast

2012-04-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS): do not add -Wimplicit when compiling with C++:
	"warning: command line option `-Wimplicit' is valid for C/ObjC but not for C++"

2012-04-20  Sam Steingold  <sds@gnu.org>

	Fix bug#3517196: APPLY reacts differently to dotted list when compiled
	* eval.d (error_apply_dotted): remove; use error_subr_toofew() instead
	(apply_subr, apply_closure): more checks for dotted argument list

2012-04-23  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (logical-pathname-translations): signal TYPE-ERROR on
	non-existent logical host as per ANSI [bug#3520570]

2012-04-19  Sam Steingold  <sds@gnu.org>

	The official binary IP address representation is now a byte
	vector, not an integer.
	* socket.d (string_to_addr1): use data_to_sb8vector instead of
	LEbytes_to_UI
	* modules/rawsock/rawsock.c (CONVERT-ADDRESS): ipv6 is 128 bits,
	not 64; accept byte vectors too
	* modules/rawsock/test.tst: use CONVERT-ADDRESS instead of ip->ve

2012-04-19  Sam Steingold  <sds@gnu.org>

	* array.d (data_to_sbvector): add a modexp function
	(copy_sbvector): use it
	* lispbibl.d (data_to_sbvector): add the prototype
	(data_to_sb8vector): add a #define and export both to clisp.h
	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
	* modules/dirkey/dirkey.c, modules/gdbm/gdbm.c:
	* modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
	* modules/syscalls/calls.c: use them

2012-04-18  Sam Steingold  <sds@gnu.org>

	* error.d (error_pos_integer): add, based on charstrg.d:error_posint
	* lispbibl.d (error_pos_integer): add the prototype
	* charstrg.d (error_posint): remove
	(test_index): use error_pos_integer instead
	* sequence.d (error_posint): remove
	(test_start_end, test_start_end_1, test_count_arg):
	use error_pos_integer instead

2012-03-27  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (pcre_config_option): check the return
	value of pcre_config() and use a long for value storage

2012-03-27  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (bool_char_lconv, int_char_lconv): treat
	-1 like CHAR_MAX and use sfixnum instead of fixnum

2012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* hashtabl.d (prepare_resize): check kvtable size against
	ARRAY-DIMENSION-LIMIT

2012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (arraysize_limit_1) [MACOSX, WIDE_HARD]: set to
	2^24-2 since HEAPCODES memory model is used

2012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (signal_handler_thread) [MULTITHREAD, MACOSX]: ignore
	SIGHUP & SIGCONT until I know how to handle them (vfork()
	causes SIGHUP - e.g. (DISASSEMBLE 'CAR))

2012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* foreign.d (FOREIGN-CALL-OUT): foreign call may block. use
	begin/end_block_system_call()

2012-02-13  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2b.lisp (compute-dispatch): Don't blindly assume that
	(bc-and-not class test-class) is non-nil; test it explicitly.
	[bug#3487338]

2012-02-02  Sam Steingold  <sds@gnu.org>

	* socket.d (get_hostname): turn into a function and allocate the
	array in the caller to support gcc 4.7 [patch#3474660]

2012-02-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (file_stat_to_STACK): use off_to_I
	instead of L_to_I for st_size [bug#3483340]
	[S_IFMT]: split st_mode into mknod_type_check and check_chmod_mode

2012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (mt_main_actions): main thread should be the same as any
	other - initialize time, reader and set normal exit flag

2012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_lock_helper): fix possible deadlock when acquiring
	a lock released by xcondition_wait()
	(THREAD-INTERRUPT): release thread's _signal_reenter_ok spinlock on
	error

2012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>

	* xthread.d (testandset) [ARM]: implement spinlocks for ARM

2011-10-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_lock_helper): remove wrong "shortcut" on
	acquiring a lock held by thread that exemption-wait-ed on it
	[bug#3424574]

2011-09-16  Sam Steingold  <sds@gnu.org>

	* pathname.d (assure_dir_exists): call merge-pathnames on the
	truename to ensure that all truenames have non-NIL version because
	a NIL component means "unfilled" (19.2.2.2.1) [bug#3405120]

2011-09-16  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_DECOLONIZE): fix the 2011-07-25 15472 patch
	which broke the native msys/mingw build
	Reported by Dan Stanger <dan.stanger@ieee.org>
	<http://article.gmane.org/gmane.lisp.clisp.devel:22759>

2011-09-14  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp: include rlconf.h for
	DEFAULT_INPUTRC and SYS_INPUTRC and tilde.h for tilde_expand

2011-09-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean5): do not remove modules.h twice

2011-08-29  Sam Steingold  <sds@gnu.org>

	add interface to VerQueryValue, GetFileVersionInfo et al
	http://msdn.microsoft.com/en-us/library/ms647464(v=vs.85).aspx
	* modules/syscalls/calls.c (OS:FILE-VERSION): add function
	* modules/syscalls/posix.lisp (OS:FILE-VERSION): add structure
	* modules/syscalls/configure.in (LIBS): add -lversion

2011-08-29  Sam Steingold  <sds@gnu.org>

	* clisp.rc.in: extract from makemake.in
	* makemake.in (clisp.rc): use it

2011-08-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (MODULE_CPPFLAGS_VAR): remove
	(MODULE_CPPFLAGS): always define and use to avoid adding
	${GNULIB_INCLUDE} to CPPFLAGS twice

2011-08-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (clisp.rc) [win32]: add version information for filever
	http://msdn.microsoft.com/en-us/library/aa381058(v=VS.85).aspx

2011-08-25  Sam Steingold  <sds@gnu.org>

	Report failures in init_language
	* spvw_language.d (init_language): accept lisp_error_p and report
	all failures using either fprintf() or error();
	use classify_namestring on all platforms to check argv_localedir
	(language_deutsch): rename to language_german for consistency
	(language_francais): rename to language_french for consistency
	* i18n.d (SET-CURRENT-LANGUAGE): pass lisp_error_p=true to init_language
	* lispbibl.d (init_language): update the prototype
	(file_kind_t): move here from pathname.d and rename from
	namestring_kind_t
	(classify_namestring): add the prototype
	* pathname.d (classify_namestring): make global
	* spvw.d (main): pass lisp_error_p=false to init_language

2011-08-24  Sam Steingold  <sds@gnu.org>

	* configure (makemake_args) [win32gcc]: add --with-dynamic-modules=no
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs:27739>
	(host_arg): add both --host and --build argument
	Suggested by Eric Blake <eblake@redhat.com>
	https://lists.gnu.org/archive/html/bug-libsigsegv/2011-08/msg00006.html

2011-08-24  Sam Steingold  <sds@gnu.org>

	* error.d (format_message, FORMAT-MESSAGE): move here from ...
	* errwin32.d: here for the sake of cygwin

2011-08-24  Sam Steingold  <sds@gnu.org>

	* makemake.in: save & restore CC around setting it for XCC_CREATESHARED
	Suggested by Eric Blake <eblake@redhat.com>
	http://article.gmane.org/gmane.comp.shells.bash.bugs:17158

2011-08-24  Sam Steingold  <sds@gnu.org>

	* misc.d (LISP-IMPLEMENTATION-VERSION): add missing GETTEXT calls
	(MACHINE-TYPE, MACHINE-VERSION): make return value immutable
	* spvw.d (main): localize the name of the main thread

2011-08-24  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language): danish locale is "da_DK"
	Reported by Bruno Haible

2011-08-23  Sam Steingold  <sds@gnu.org>

	* win32.d (WSAEAGAIN, WSAENOENT): remove unused defines
	(ioctl): do not define to ioctlsocket because gnulib defines it to
	rpl_ioctl which calls ioctlsocket

2011-08-23  Sam Steingold  <sds@gnu.org>

	revert most of the 2011-08-17 patch
	* win32.d: include <ddk/ntifs.h> for NtQueryInformationFile
	because that's what works with i686-pc-mingw32-gcc and is
	recommended by http://msdn.microsoft.com/en-us/library/ff567052.aspx;
	do not include ntstatus.h because it is included by winddk/ntddk
	which is included by ntifs
	* configure.in: do not test for windows headers

2011-08-19  Sam Steingold  <sds@gnu.org>

	Implement RFE#3384688: use OS facilities to print os-error
	* condition.lisp (try-coerce-to-condition): special handling of
	NIL datum for the sake of OS-ERROR & its subclasses
	(os-error): add $CODE slot and :REPORT option
	(os-error-win32, os-stream-error, os-file-error): new conditions,
	subclasses of OS-ERROR
	(simple-os-error): remove
	(%defclcs): remove OS-ERROR -> SIMPLE-OS-ERROR map
	* lispbibl.d (cint_white_p): do not export
	(condition_t): remove os_error
	(OS_file_error): signal OS-FILE-ERROR, not SIMPLE-FILE-ERROR
	* constsym.d (simple_os_error): remove
	(os_error, os_file_error, os_stream_error, strerror): add
	(os_error_win32, format_message) [WIN32|CYGWIN]: add
	* subr.d (strerror): add
	(format_message) [WIN32|CYGWIN]: add
	* error.d (end_error): for os_stream_error, os_file_error,
	os_error, os_error_win32: reset errstring (known as datum to
	COERCE-TO-CONDITION, see above) to NIL; complete :CODE
	(error_code_converter_t, convert_error_code): add
	(OS_filestream_error): signal OS-ERRORs, not SIMPLE-ERRORs
	* errunix.d (os_error_t, get_errormsg): remove
	(STRERROR): preliminary implementation: required numeric argument
	(OS_error, OS_error_arg): push errcode on STACK for the :CODE argument
	(errno_out_low): use ANSIC_error_code_converter & strerror_r
	* errwin32.d (get_OS_error_info): remove
	(OS_error_internal_body): remove
	(format_message): add
	(OS_error_internal): use it
	(FORMAT-MESSAGE): preliminary implementation: required numeric argument
	(OS_error, OS_error_arg): push errcode on STACK for the :CODE argument
	* spvw.d (libopen, find_name): define when WIN32_NATIVE|HAVE_DLOPEN
	for the sake of finding converters in error.d:convert_error_code
	* modules/syscalls/calls.c (RESOLVE-HOST-IPADDR): signal
	error_condition, not os_error because there is no errno
	(errno_to_symbol_w, errno_to_symbol_a): add error_code_converter_t
	objects for error.d:convert_error_code
	(ERRNO, LAST-ERROR): convert from symbolic to numeric too
	(STRERROR, FORMAT-MESSAGE): use and override the preliminary
	definitions in errunix.d and errwin32.d
	* modules/syscalls/preload.lisp: unlock the SYSTEM package and
	remove it from *SYSTEM-PACKAGE-LIST* to enable overriding STRERROR
	& FORMAT-MESSAGE in calls.c
	* modules/syscalls/posix.lisp: import and export SYS::STRERROR &
	SYS::FORMAT-MESSAGE; re-add SYSTEM to *SYSTEM-PACKAGE-LIST*

2011-08-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (LIBS): prepend ${GLLIB_A} before -lws2_32 & -lintl
	<http://article.gmane.org/gmane.lisp.clisp.devel:22701>

2011-08-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_last_error) [WIN32|CYGWIN]:
	renamed from check_errno
	(OS::LAST-ERROR) [WIN32|CYGWIN]: extracted from OS:ERRNO
	(OS::FORMAT-MESSAGE) [WIN32|CYGWIN]: extracted from OS::STRERROR
	(POSIX:ERRNO, POSIX:STRERROR): always define
	* modules/syscalls/posix.lisp (last-error, format-message): export
	* lispbibl.d (cint_white_p): export to clisp.h for FORMAT-MESSAGE
	to strip terminating whitespace and periods to conform to strerror

2011-08-17  Sam Steingold  <sds@gnu.org>

	* configure.in: check for many more windows headers which might
	declare NtQueryInformationFile
	* win32.d: try to include all those header one by one
	Suggested by Michael Kappert & Yaroslav Kavenchuk
	<http://article.gmane.org/gmane.lisp.clisp.devel:22684> &c

2011-08-08  Sam Steingold  <sds@gnu.org>

	* spvw_mmap.d (munmap, mprotect) [HAVE_MACH_VM|HAVE_WIN32_VM]:
	declare when defined to avoid a "warning: no previous declaration"

2011-08-08  Sam Steingold  <sds@gnu.org>

	Rename errno_t to os_error_code_t to avoid a conflict with mingw
	* unix.d (os_error_code_t): typedef to int; replaces errno_t
	* win32.d (os_error_code_t): typedef to DWORD; replaces errno_t
	* unixaux.d, win32aux.d (namestring_file_id, handle_file_id):
	return os_error_code_t instead of errno_t
	* pathname.d (check_file_reopen): update for the new type name

2011-08-08  Sam Steingold  <sds@gnu.org>

	* configure.in: check for <winternl.h>, <ntstatus.h> and <ddk/winddk.h>
	* win32.d: include them only when detected (the first two on
	cygwin/mingw, the last one on msys/mingw)

2011-08-05  Sam Steingold  <sds@gnu.org>

	fix the 2011-03-31 fix for bug#1731469
	* loop.lisp (*nullvar*): new unbound global
	(destructure): use it instead of (helpvar 0) for null patters
	(expand-loop): bind it; repeat count var does not depend on preceding
	(expand-loop@note-initialization): do not barf on *nullvar* reuse

2011-08-03  Sam Steingold  <sds@gnu.org>

	fix bug#3384698: loop does not warn on REPEAT before FOR
	* loop.lisp (expand-loop): REPEAT is a TERMINATION-TEST
	which is a MAIN-CLAUSE, not a VARIABLE-CLAUSE

2011-08-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_errno): add ERFKILL & EHWPOISON

2011-08-02  Sam Steingold  <sds@gnu.org>

	fix bug#3384693: no warning when lambda is incompatible with arglist
	* compiler.lisp (inline-callable-function-lambda-p): call c-warn
	when the lambdalist is incompatible with the argument count

2011-08-02  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/aclocal.m4): run aclocal in src
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs:27763>

2011-08-02  Sam Steingold  <sds@gnu.org>

	fix bug#3384825: simple condition printing ignores user-supplied methods
	* condition.lisp (simple-condition): use :REPORT option instead of
	a PRINT-OBJECT :AROUND method

2011-08-01  Sam Steingold  <sds@gnu.org>

	fix recent breakage
	* socket.d (CLOSE) [win32]: define
	* win32.d (ioctl): define to ioctlsocket

2011-08-01  Sam Steingold  <sds@gnu.org>

	fix "clean" targets
	* makemake.in (anymodule): do not remove gllib; there is no such dir
	(clean1): do not remove build-aux, but do remove dynmod
	(clean5): remove modules.h and build-aux unless building in src
	(clean6): do not remove Makefile
	(clean7): depend on distclean-subdirs
	(clean-subdirs, distclean-subdirs): new targets
	(clean): depend on clean-subdirs
	* po/Makefile.in.in (distclean): remove Makefile.in

2011-08-01  Sam Steingold  <sds@gnu.org>

	* utils/txt2c.c (process_file): avoid a segfault by checking that
	standard_include_path is not NULL before accessing it

2011-08-01  Sam Steingold  <sds@gnu.org>

	revert the parts of the 2011-07-29 15496:d628d9ac3fce patch
	which broke the in-place build (in the src directory)
	* _clisp.c: include w32shell & execname with "", not <>
	* encoding.d: include nls_* with "", not <>
	* eval.d: include lightning with "", not <>
	* lispbibl.d: include version.h with "", not <>
	* modules.c: include lispbibl & clisp with "", not <>
	* spvw.d: include spvw_calendar.c with "", not <>

2011-08-01  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/configure.in, modules/clx/new-clx/configure.in:
	* modules/syscalls/configure.in: call AC_SYS_LARGEFILE before the
	first AC_CHECK_SIZEOF to ensure 64-bit size_t
	Reported by Vladimir Tzankov <vtzankov@gmail.com> in
	<http://article.gmane.org/gmane.lisp.clisp.devel:22642>

2011-07-29  Sam Steingold  <sds@gnu.org>

	link over fewer files into the build directory
	* makemake.in (CLISP_LIBDIR): do not set
	(EVERY_INCLUDES_H): remove gllib files
	(UNICODE_INCLUDES, NLS_INCLUDES, SPVW_VERSION, w32shell.c)
	(execname.c, spvw_calendar.c, with_jitc): do not link over
	(TXT2CINCL): use SRCDIR, not SRCTOPDIR
	(gllib): pass top_srcdir, not CLISP_LIBDIR to make
	(modules.h): create with touch
	(LINKKIT): link files directly into linkkit/
	* modules.h: remove
	* Makefile.devel (src/gllib/Makefile.in): replace
	$(top_srcdir)/src/build-aux with $(top_srcdir)/build-aux instead
	of CLISP_LIBDIR
	* _clisp.c: include w32shell & execname with <>, not ""
	* encoding.d: include nls_* with <>, not ""
	* eval.d: include lightning with <>, not ""
	* lispbibl.d: include version.h with <>, not ""
	* modules.c: include lispbibl & clisp with <>, not ""
	* spvw.d: include spvw_calendar.c with <>, not ""

2011-07-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (GNULIB_INCLUDE): -I$(builddir)/gllib -I$(srcdir)/gllib
	(XCPPFLAGS): add GNULIB_INCLUDE
	(UNICODE_EXTRA, GLLIB_MODULE_HEADERS): remove
	(anymodule): add GNULIB_INCLUDE to CPPFLAGS
	* encoding.d: include localcharset as <>, not as ""

2011-07-28  Sam Steingold  <sds@gnu.org>

	* socket.d (CLOSE): do not redefine the unix.d definition

2011-07-28  Sam Steingold  <sds@gnu.org>

	* configure: do not link over anything
	* makemake.in (po): new target
	(makemake.in, config.h.in, configure): remove link_dep targets
	(makemake, config.h, config.status): depend on files in SRCDIR
	* po/Makefile.in.in (VPATH): add

2011-07-28  Sam Steingold  <sds@gnu.org>

	* makemake.in (GLLIB_MODULE_HEADERS): set to regex.h for regexp

2011-07-27  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (ANSIC_error): export to clisp.h

2011-07-27  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): fix a typo: setsockopt was
	requested twice while getsockopt was not requested at all
	(GNULIB_IMPORTS): add recvfrom & sendto for rawsock
	* modules/rawsock/rawsock.c: use ANSIC_error instead of OS_error

2011-07-27  Sam Steingold  <sds@gnu.org>

	fix mingw compilation
	* lispbibl.d (setjmp) [__MINGW32__]: do not define
	Include <winsock2.h> before <windows.h> to avoid a warning
	* stream.d (QueryInformationFile) [WIN32_NATIVE]: do not include
	<ddk/ntifs.h> here, instead ...
	* win32.d: include <winternl.h> & <ntstatus.h>
	(_exit): remove prototype (get it from gnulib)
	(lseek): undef before redefining
	(CoGetCurrentProcess): remove prototype, rely on above headers

2011-07-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: when the portability is ensured by
	gnulib, use ANSIC_error; when we use WIN32_NATIVE functions
	directly, use OS_error
	(POSIX:MKSTEMP) [WIN32_NATIVE]: use _get_osfhandle to convert the
	return value of gnulib mkstemp() to a windows file handle
	Include <shldisp.h> & <shlguid.h> for CLSID_ShellLink &
	IID_IShellLink
	* modules/regexp/Makefile.in (NO_CXX): removed unused variable

2011-07-27  Sam Steingold  <sds@gnu.org>

	* spvw_ctype.d (init_ctype): add "#ifdef LC_MESSAGES" for mingw

2011-07-26  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): use AC_MSG_ERROR instead of setting
	variables to bad values

2011-07-26  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): add select

2011-07-26  Sam Steingold  <sds@gnu.org>

	revert last patch; fix the gnulib defines in a more robust way:
	change C names for Lisp symbols to avoid clashes with the C world
	Suggested by Bruno
	* undef-gnulib.h: remove
	* Makefile.devel, makemake.in: remove undef-gnulib.h
	* spvwtabf.d, spvwtabo.d, spvwtabs.d: do not include undef-gnulib.h
	* constsym.d, eval.d, io.d, package.d, pathname.d, stream.d,
	* subr.d, time.d (read): rename to readL
	(listen): ... listenL
	(write): ... writeL
	(sleep): ... psleep
	(time): ... pptime
	(close): ... closeL
	Thanks to Yaroslav Kavenchuk for extensive testing

2011-07-25  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/undef-gnulib.h): new target
	(gnulib-imported): call it at the end
	* spvwtabf.d, spvwtabo.d, spvwtabs.d: include undef-gnulib.h after
	lispbibl to undefine the lisp symbols redefined by gnulib
	* makemake.in: link undef-gnulib.h into the build directory
	(spvwtab*.o): depend on undef-gnulib.h
	* undef-gnulib.h: new file, regenerated on each gnulib-imported

2011-07-25  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_DECOLONIZE): even when $ac_cv_build is mingw, use
	cygpath when available because cross-compiling on cygwin is not detected

2011-07-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): add close, ioctl, and make stdlib
	inclusion explicit (it has always been present as a dependency)
	* modules/rawsock/rawsock.c, socket.d, stream.d, unix.d, win32.d:
	use close() instead of closesocket() and ioctl() instead of
	ioctlsocket() on all platforms

2011-07-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (RMRF, HG): new variables
	(gnulib-imported): remove gnulib directories before import to see
	added and deleted files right away

2011-07-20  Sam Steingold  <sds@gnu.org>

	* makemake.in: pass "--execute netrc=off" to wget to avoid
	"unknown token" errors

2011-07-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): add sys_select

2011-07-19  Sam Steingold  <sds@gnu.org>

	* configure.in: do not call gt_LC_MESSAGES
	* spvw_ctype.d, spvw_language.d: assume LC_MESSAGES is present
	* win32.d: do not define HAVE_LC_MESSAGES

2011-07-19  Sam Steingold  <sds@gnu.org>

	* bdb.c, clx.f, dirkey.c, gdbm.c, cpcre.c, rawsock.c, calls.c:
	* aridecl.d, array.d, charstrg.d, control.d, debug.d, encoding.d:
	* error.d, errunix.d, errwin32.d, eval.d, flo_konv.d, foreign.d:
	* funarg.d, genclisph.d, intbyte.d, intdiv.d, intelem.d, intmal.d:
	* io.d, lfloat.d, lisparit.d, lispbibl.d, makemake.in, pathname.d:
	* record.d, sequence.d, spvw.d, spvw_allocate.d, stream.d, symbol.d:
	* unix.d, win32.d, win32aux.d: gnulib module stdlib prodvides
	macro _Noreturn; use it instead of nonreturning_function()

2011-07-19  Sam Steingold  <sds@gnu.org>

	use gnulib modules to convert windows WSAGetLastError to errno
	* Makefile.devel (GNULIB_CORE): add bind accept listen recv send
	setsockopt shutdown connect socket setsockopt getsockname getpeername
	replace strerror with strerror_r-posix
	* errwin32.d (SOCK_error): remove
	* lispbibl.d: include <sys/select.h>
	* socket.d, stream.d, win32aux.d: use ANSIC_error instead of SOCK_error;
	use errno instead of sock_errno_is/sock_set_errno
	* unix.d, win32.d (SHUT_RD, SHUT_WR, SHUT_RDWR): do not defined
	here, ensured by gnulib (in sys/socket)
	(sock_errno, sock_errno_is, sock_set_errno, SOCK_error): remove

2011-07-15  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (language): make it static to avoid
	warning: non-local variable '<anonymous enum> language' uses anonymous type

2011-07-15  Sam Steingold  <sds@gnu.org>

	* socket.d (ipv4_ntop, ipv6_ntop): remove
	(addr_to_string): simplify
	(MACHINE-INSTANCE): use it
	(socket_getlocalname_aux, socket_getpeername): use inet_ntop
	instead of ipv[46]_ntop

2011-07-15  Sam Steingold  <sds@gnu.org>

	* encoding.d, lispbibl.d, pathname.d, socket.d, spvw.d, stream.d:
	* unix.d: always include <string.h> & <sys/socket.h> in lispbibl.d
	(socket, setsockopt): drop explicit prototypes, they are declared
	in <sys/socket.h> (from gnulib, if necessary)

2011-07-14  Sam Steingold  <sds@gnu.org>

	* configure.in: restore the readline check (accidentally removed)

2011-07-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (UTILS): fix the last patch by making utils depend
	on ${EXTRAOBJ}

2011-07-13  Sam Steingold  <sds@gnu.org>

	* win32.d (HAVE_IPV4, HAVE_IPV6): define to 1 to avoid
	warning: "HAVE_IPV4" redefined
	Reported by Yaroslav Kavenchuk <kavenchuk@gmail.com>

2011-07-11  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (listen): undef after including unistd because gnulib
	defines it to listen_used_without_including_sys_socket_h

2011-07-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (EXTRAOBJ): set to ${GLLIB_A} to avoid
	"undefined reference to `rpl_malloc'" on mingw;
	but put it after the C file in the compilation command
	<http://article.gmane.org/gmane.lisp.clisp.devel:22573>

2011-07-08  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (REGEXP-EXEC):
	accept :return-type 'boolean instead of :boolean t
	* modules/regexp/regexp.lisp (regexp-matcher):
	pass :return-type 'boolean to regexp-exec

2011-07-08  Sam Steingold  <sds@gnu.org>

	* win32.d, unix.d, lispbibl.d (stdlib, sys/types, unistd, locale)
	(errno): include files which are included in both unix.d and
	win32.d from lispbibl.d instead
	* socket.d: do not include these files here

2011-07-08  Sam Steingold  <sds@gnu.org>

	* makemake.in: avoid $@ in single-target rules

2011-07-07  Sam Steingold  <sds@gnu.org>

	* configure: pass --with-debug to makemake
	* makemake.in: accept --with-debug instead of positional

2011-07-06  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): quote variable in test to avoid error
	"test: too many arguments"

2011-06-24  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/configure.in: check for svm_free_and_destroy_model
	* modules/libsvm/libsvm.lisp: in libsvm 3.1 svm_destroy_model is
	replaced with svm_free_and_destroy_model with a different
	signature, so we have to work around that

2011-06-24  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (PRIORITY, %SET-PRIORITY) [WIN32_NATIVE]:
	compare handles with INVALID_HANDLE_VALUE, not NULL
	(PRIORITY) [WIN32_NATIVE]: make sure failed_p is always set
	* modules/bindings/win32/win32.lisp (GetPriorityClass): add

2011-06-01  Sam Steingold  <sds@gnu.org>

	* pathname.d, subr.d (PROBE-PATHNAME): mark as seclass_rd_sig
	because it may signal permission errors

2011-06-01  Sam Steingold  <sds@gnu.org>

	finish the 2011-05-13 possible_symlink patch
	* pathname.d (my_readlink) [UNIX_LINUX]: do not handle /proc specially
	(stat_for_search) [UNIX_LINUX]: ditto

2011-06-01  Sam Steingold  <sds@gnu.org>

	avoid errors on weird pathnames like ~/.gvfs under gnome
	* pathname.d (get_path_info): accept tolerantp
	(assure_dir_exists): pass tolerantp to get_path_info
	(namestring_kind_t): add NAMESTRING_BAD for existing objects
        for which no information could be obtained
	(classify_namestring): return NAMESTRING_BAD instead of signaling
	(PROBE-PATHNAME): signal the error here
	(directory_search_direntry_ok): never signal any errors,
	just return false
	(directory_search_scandir): call OS_file_error instead of
	error_file_not_exists after a failed directory_search_direntry_ok
	when if_none=DIR_IF_NONE_ERROR
	Reported by Don Cohen http://article.gmane.org/gmane.lisp.clisp.general:13778

2011-05-24  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main) [WIN32_NATIVE]: use FormatMessage()
	instead of strerror() for GetLastError()
	Reported by Bruno Haible

2011-05-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): import mkfifo mknod mkstemp
	mkdtemp getloadavg
	* modules/syscalls/calls.c (MKSTEMP, MKDTEMP, LOADAVG, MKNOD):
	define uniformly on all platforms
	* modules/syscalls/posix.lisp (mknod): export on all platforms

2011-05-20  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (clgettext) [!GNU_GETTEXT]: define for CLSTEXT

2011-05-19  Sam Steingold  <sds@gnu.org>

	* subrkw.d: remove
	* spvw.d (init_subr_tab_2): use subr with LISPFUN_H instead of subrkw
	* subr.d (LISPFUN_H): fix
	* makemake.in (OTHER_INCLUDES): remove subrkw
	* po/Makefile.devel (DSOURCES): ditto
	* check-lispfun.lisp (check-lisp-defs): do not look at subrkw.d

2011-05-19  Sam Steingold  <sds@gnu.org>

	* zthread.d (EXEMPTION-WAIT): fix the key count in the definition
	to match the (correct) declaration in subr.d

2011-05-19  Sam Steingold  <sds@gnu.org>

	* constobj.d, constsym.d, hashtabl.d, io.d, lispbibl.d,
	* pathname.d, predtype.d, spvw.d, spvw_debug.d, subr.d, subrkw.d:
	remove the LOGICAL_PATHNAMES CPP macro;
	logical pathnames are unconditionally present in CLISP

2011-05-19  Sam Steingold  <sds@gnu.org>

	* constobj.d, constsym.d, lispbibl.d, pathname.d, subr.d: remove
	HAVE_SHELL which is always defined on all platforms supported by CLISP

2011-05-19  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (processor_architecture): add DEFCHECKER
	(SYSTEM-INFO): use it; also push dwProcessorType on STACK
	* modules/syscalls/posix.lisp (system-info): add PROCESSOR-TYPE slot

2011-05-19  Sam Steingold  <sds@gnu.org>

	* constobj.d, constsym.d, lispbibl.d, misc.d, socket.d:
	* spvw_memfile.d, subr.d: remove MACHINE_KNOWN
	which is always defined on all platforms supported by CLISP

2011-05-19  Sam Steingold  <sds@gnu.org>

	* constsym.d, lispbibl.d, misc.d, subr.d: remove HAVE_ENVIRONMENT
	which is always defined on all platforms supported by CLISP

2011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>

	* time.d (thread_from_arg) [MULTITHREAD]: fix g++ gcsafety build

2011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>

        * xthread.d: use "raw" mutexes for emulating spinlocks on
        architectures with no inline asm versions

2011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>

        * spvw_sigcld.d (sigcld_enabled_INCF/DECF): fix counting

2011-05-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (UTILCOMPILE): turn into a make variable and use it
	on win32 and when cross-compiling

2011-05-18  Sam Steingold  <sds@gnu.org>

	simplify UI language code
	* lispbibl.d (ENGLISH, LANGUAGE_STATIC): remove
	(language_english): move to ...
	* spvw_language.d (language_english): ... here
	(language): static enum
	(init_language): simplify, remove gotos
	* spvw_memfile.d (loadmem_from_handle): LANGUAGE_STATIC => !GNU_GETTEXT
	* i18n.d (TEXT) [!GNU_GETTEXT]: return the argument as string

2011-05-18  Sam Steingold  <sds@gnu.org>

	* makemake.in: finish the 2008-05-31 CL_CC_NEED_CCPAUX patch
	by removing the special case of comment5 in UTIL building
	(full): fix the grep REPLACE_ regexp (gnulib replacements)

2011-05-18  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c: do not include <ws2tcpip.h> twice
	* modules/rawsock/configure.in: <winsock2.h> is checked by gl_SOCKETLIB;
	add LIBSOCKET to LIBS while checking for functions

2011-05-18  Sam Steingold  <sds@gnu.org>

	* modules/i18n/configure.in: gl_FUNC_NL_LANGINFO is already called
	by gl_INIT in the top-level config file

2011-05-18  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f, modules/clx/new-clx/configure.in:
	* modules/fastcgi/configure.in, modules/regexp/configure.in:
	* modules/rawsock/configure.in, modules/rawsock/rawsock.c:
	* modules/syscalls/configure.in, configure.in, m4/general.m4:
	* m4/rusage.m4: do not check for gnulib files
	* Makefile.devel (GNULIB_CORE): add sys_uio & socketlib (already
	present as dependencies)
	* m4/putenv.m4: remove (should have been removed on 2010-09-27)
	* modules/syscalls/calls.c, modules/syscalls/configure.in:
	<sys/wait.h> and <wchar.h> are provided by gnulib

2011-05-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (SUBDIR_CFLAGS): add @NO_CXX@ because
	gnulib regexp and fnmatch cannot be compiled with C++

2011-05-17  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c, modules/berkeley-db/bdb.c:
	* modules/berkeley-db/configure.in, modules/syscalls/configure.in:
	* modules/fastcgi/fastcgi_wrappers.c, modules/gdbm/gdbm.c:
	* rawsock/rawsock.c, modules/rawsock/configure.in:
	no need to check and guard gnulib #include files and functions

2011-05-17  Sam Steingold  <sds@gnu.org>

	merge the wildcard module into syscalls; import gnulib into src only
	before: clisp:52,284k modules:14,136k src:25,876k
	after:  clisp:44,200k modules: 8,684k src:24,836k
	* Makefile.devel (MODULES): remove wildcard
	(GNULIB_USERS, MAKEFILE_IN): remove
	(gnulib-imported): import files into src/ only
	(GNULIB_CORE): import explicitly "unistd alloca-opt environ"
	which have been already included because of dependencies;
	also import lstat, stat, readlink
	* gnulib-tool.patch: remove
	* configure.in: rely on lstat, stat, readlink
	* makemake.in (GLLIB_A): no need for "_cl" suffix
	* pathname.d: lstat() is always present (from gnulib)
	* unix.d: readlink, lstat, gethostname come from gnulib
	* win32.d: gethostname comes from gnulib
	* m4/stat.m4: remove
	* modules/wildcard, modules/regexp/gl*, modules/syscalls/gl*: remove
	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
	remove gnulib targets
	(GENERATED): remove libgnu_*.a
	(config.h): add target
	* modules/regexp/configure.in, modules/syscalls/configure.in:
	remove gnulib calls
	* modules/regexp/link.sh.in, modules/syscalls/link.sh.in
	(NEW_FILES): remove libgnu_*.a
	* modules/syscalls/calls.c (FNMATCH): add
	* modules/syscalls/posix.lisp: export FNMATCH & FNMATCH-MATCHER
	(fnmatch-matcher): implement
	(wildcard:match, wildcard:wildcard-matcher): add for
	backward-compatibility

2011-05-17  Sam Steingold  <sds@gnu.org>

	* misc.d (environ) [HAVE_ENVIRONMENT]: included for dependencies
	gnulib module environ already provides the declaration
	* socket.d: no need to guard including <unistd.h> - it is always
	provided by the gnulib module unistd
	* unix.d: no need to guard including <unistd.h>, <sys/time.h>,
	<time.h>, <sys/utsname.h> - they are always provided by gnulib
	* aridecl.d, arilev0.d, arilev1.d, lispbibl.d, win32.d:
	remove the last vestiges of Borland support
	* _clisp.c: add '#include "config.h"' (necessary for gnulib)
	* lispbibl.d: rely on alloca.h provided by gnulib/alloca-opt

2011-05-17  Sam Steingold  <sds@gnu.org>

	* configure: detect building for mingw from $CC -dumpmachine

2011-05-17  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): DEFFLAGSET(..., !CONST)
	means that to add CONST to flags one passes NIL to the lisp function

2011-05-16  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (language): static, not global
	(current_language_o): global, not static
	(init_language): do not call bindtextdomain() with a nonexistent
	localedir because that it is usually called by SET-CURRENT-LANGUAGE
	with a NULL second argument
	* lispbibl.d (current_language_o) [!LANGUAGE_STATIC]: declare extern
	* spvw.d (init_memory): update initialization of O(current_language)
	* i18n.d (SET-CURRENT-LANGUAGE): use current_language_o() to set
	O(current_language)

2011-05-13  Sam Steingold  <sds@gnu.org>

	* pathname.d (possible_symlink): remove (linux 2.0.35 is long gone)

2011-05-10  Sam Steingold  <sds@gnu.org>

	* pathname.d (starp): remove
	(multiwild_char_p, singlewild_char_p, wild_char_p): use
	consistently throughout the file
	(DEF_WILD_CHECKER): new macro
	(word_wild_p, wild_p): define using it

2011-05-04  Sam Steingold  <sds@gnu.org>

	* stream.d (IS_EINVAL_EXTRA) [UNIX_SUNOS5]: add ENXIO

2011-05-04  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): replace close-hook with
	fd-hook (renamed in gnulib 2011-04-19)
	(gnulib-imported): pipe stderr to $(GNULIB_IMPORTED_LOG) too

2011-05-04  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language): fix the 2011-04-10 patch (use
	strcpy instead of strcat)

2011-05-04  Sam Steingold  <sds@gnu.org>

	* symbol.d (GENTEMP): add a cast to fix g++ compilation

2011-05-04  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): add
	arpa_inet, netinet_in, inet_ntop, inet_pton
	* lispbibl.d: assume that <netinet/in.h> is always present
	* win32.d (CONNECT_NAME_T, CONNECT_CONST, CONNECT_ADDRLEN_T)
	(HAVE_NETINET_IN_H, HAVE_ARPA_INET_H, RET_INET_ADDR_TYPE)
	(INET_ADDR_SUFFIX, INET_ADDR_CONST): remove
	* socket.d: assume HAVE_ARPA_INET_H, HAVE_INET_NTOP, HAVE_INET_PTON,
	thus inet_addr() is never used
	(connect, inet_addr): remove the prototypes
	(all_digits_dots): remove the function
	* configure.in: do not call CL_CONNECT
	(LIBS): add -lnsl & -lsocket if required for connect() & gethostbyname()
	* m4/connect.m4, m4/socket.m4: remove
	* m4/tcpconn.m4: do not check for inet_pton & inet_ntop (get them
	from gnulib) and inet_addr (never used)
	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: include
	<netinet/in.h> & <arpa/inet.h> unconditionally
	* modules/syscalls/configure.in: do not check for <netinet/in.h> &
	<arpa/inet.h>; do not call CL_SOCKET

2011-05-03  Sam Steingold  <sds@gnu.org>

	* genclisph.d (include_file): renamed from print_file; when fname
	does not exist, emit "#include <fname>"
	* lispbibl.d (stdbool.h): do not check for HAVE_STDBOOL_H because
	it is no longer defined by gnulib
	<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00571.html>

2011-05-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c, modules/syscalls/posix.lisp (stdio):
	enable even without FFI because it is useful for bypassing the
	normal CL filename processing

2011-05-01  Bruno Haible  <bruno@clisp.org>

	Disallow &WHOLE if it comes too late.
	* defmacro.lisp (analyze1): Report an error if &WHOLE appears
	after the first required variable or after &OPTIONAL.
	Refer to CLHS 3.4.4 and 3.4.5
	<http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-4.html>
	<http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-5.html>
	Reported at bug#3295448.

2011-04-28  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (check_family): add
	(XLIB:ACCESS-HOSTS): handle all host families from my X.h and Xauth.h

2011-04-28  Sam Steingold  <sds@gnu.org>

	fix bug#3292605: GET-PROPERTY unpacks properties incorrectly on 64bit
	http://www.x.org/releases/X11R7.6/doc/man/man3/XChangeProperty.3.xhtml
	format = 8/16/32 means char/short/long, __NOT__ int8/int16/int32
	* modules/clx/new-clx/clx.f (get_client_message_format1): add,
	return the format_bytesize in addition to the actual format
	(get_client_message_format): call it
	(XLIB:CHANGE-PROPERTY): use it instead of format/8
	(make_client_message_data, XLIB:GET-PROPERTY):
	use fixnum & L_to_I for conversion instead of make_int*
	(get_client_message_data, coerce_into_map):
	use get_fixnum & I_to_L for conversion instead of get_int*
	* modules/clx/new-clx/clx.lisp (decode-wm-size-hints): revert the
	ZEROP check accidentally committed on 2009-09-18

2011-04-27  Elliott Slaughter  <elliottslaughter@gmail.com>

	* win32msvc/nsis/install.nsi: Fix PATH bug by insisting that packager
	uses long strings version of NSIS. Also upgrade EnvVarUpdate library.
	* win32msvc/nsis/add_to_path.nsh: Obsoleted by env_var_update.nsh.
	* win32msvc/nsis/env_var_update.nsh: Added to supercede add_to_path.nsh.
	* makemake.in: Use env_var_update.nsh rather than add_to_path.nsh.

2011-04-22  Sam Steingold  <sds@gnu.org>

	* places.lisp (setf-VALUES-aux): even if subform sets no values,
	it should consume one assigned value (bug#3291585)

2011-04-21  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (CP): new variable; do _not_ pass "-u" so that
	fresh checkouts will not override updating in build-aux-update et al
	(LIBTOOL_VERSION): bump to 2.4
	(build-aux-update): get compile & ylwrap from a specific automake
	version instead of whatever happens to be currently installed

2011-04-18  Sam Steingold  <sds@gnu.org>

	* configure (makemake_args): when configure detects mingw/msys,
	pass --win32gcc to makemake
	Reported by Elliott Slaughter <elliottslaughter@gmail.com>.

2011-04-15  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): issue a style-warning
	when PARSE-NAMESTRING, MERGE-PATHNAMES, or READ-FROM-STRING, i.e.,
	a function which accept both &KEY arguments and an even number of
	&OPTIONAL arguments, is, apparently, invoked with &KEY but without
	&OPTIONAL arguments

2011-04-15  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-LAMBDABODY): issue a style-warning when lambda
	list contains both &optional and &key

2011-04-12  Sam Steingold  <sds@gnu.org>

	On Max OS X the value of *PATHNAME-ENCODING* is set to UTF-8 and cannot
	be changed because MacOSX pathnames are UTF-8 strings, not byte
	sequences (http://thread.gmane.org/gmane.lisp.clisp.general/13725
	and http://developer.apple.com/library/mac/#qa/qa2001/qa1173.html)
	* lispbibl.d (CONSTANT_PATHNAME_ENCODING) [UNIX_MACOSX]: define to UTF-8
	* encoding.d (init_dependent_encodings) [CONSTANT_PATHNAME_ENCODING]:
	set O(pathname_encoding) to CONSTANT_PATHNAME_ENCODING
	(SYSTEM::SET-PATHNAME-ENCODING): signal an error when the encoding
	argument is not CONSTANT_PATHNAME_ENCODING
	* spvw.d (argv_encoding_pathname): do not define when
	CONSTANT_PATHNAME_ENCODING is defined
	(parse_options): do not accept -Epathname
	* makemake.in (encflags) [TSYSOS=darwin]: do not add -Epathname
	Thanks to Carlos Ungil <carlos.ungil@gmail.com> for testing.

2011-04-10  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language): use strcat and strncat instead
	of while and dotimespL

2011-04-10  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (wait, waitpid): restore (revert
	the 2011-03-23 patch); recommend POSIX:WITH-SUBPROCESSES in comments

2011-04-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:SERVICE): fix non-missing
	protocol handling (bug#3280915)

2011-04-08  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_sigpipe.d [MULTITHREAD, UNIX_MACOSX, GENERATIONAL_GC]:
	patch for strange SIGPIPE delivered to libsigsegv thread

2011-04-06  Sam Steingold  <sds@gnu.org>

	fix bug#3182597: WRITE-BYTE-SEQUENCE :no-hang t is only for byte vectors
	* sequence.d (WRITE-BYTE-SEQUENCE): implement "persev !=
	persev_full" for sequences other than (VECTOR (UNSIGNED-BYTE 8))

2011-04-06  Sam Steingold  <sds@gnu.org>

	* sequence.d (interactive_no_hang): new function
	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): use it

2011-04-06  Sam Steingold  <sds@gnu.org>

	* unixaux.d (fd_read): revert the 2008-12-30 patch which closed
	the fd on ECONNRESET without marking the lisp stream as closed,
	thus leading to EBADF when the stream was closed

2011-04-05  Bruno Haible  <bruno@clisp.org>

	Tweak last two changes.
	* lispbibl.d (GENERATIONAL_GC): Add more comments.
	* spvw.d (SIGSEGV_FAULT_ADDRESS_ALIGNMENT): Define fallback.
	* spvw_fault.d (handle_fault): Simplify use of
	SIGSEGV_FAULT_ADDRESS_ALIGNMENT.

2011-04-04  Sam Steingold  <sds@gnu.org>

	* spvw_fault.d (handle_fault): fix last patch to restore support
	to libsigsegv-2.9 and earlier
	* lispbibl.d (GENERATIONAL_GC): ditto

2011-04-03  Bruno Haible  <bruno@clisp.org>

	Support for generational GC on Linux/S390.
	* configure (SIGSEGV): Recommend libsigsegv-2.10.
	* lispbibl.d (GENERATIONAL_GC): Consider also
	SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
	* spvw_fault.d (handle_fault): Likewise.
	Reported by Christoph Egger <christoph@debian.org>.

2011-03-31  Sam Steingold  <sds@gnu.org>

	fix bug#1731469: loop expansion: spurious LET twice
	* loop.lisp (destructure): warn on destructuring empty patterns
	(expand-loop): do not destructure empty patterns and bind useless
	variables; this makes macroexpansion smaller but does not affect
	compiled code

2011-03-29  Sam Steingold  <sds@gnu.org>

	fix bug#3258485: HANDLER-BIND: no CONSTANTLY as a handler
	* compiler.lisp (insert-combined-LAPs): we have HANDLER-BEGIN&PUSH
	but not HANDLER-BEGIN, so insert a (PUSH)+(POP) after
	HANDLER-BEGIN which is not followed by a (PUSH)

2011-03-29  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (insert-combined-LAPs): remove noop GOs

2011-03-29  Sam Steingold  <sds@gnu.org>

	fix bug#3147908: too much consing in IGNORE-ERRORS,
	partially reverting the 2005-01-21 patch
	* compiler.lisp (c-form-table): map HANDLER-BIND to c-HANDLER-BIND
	and SYS::%HANDLER-BIND to c-%HANDLER-BIND
	(c-handler-bind-handler-anode, c-handler-bind-anode):
	extract from c-HANDLER-BIND
	(c-HANDLER-BIND, c-%HANDLER-BIND): use them
	* init.lisp (%expand-handlers): remove unused code
	* modules/asdf/asdf.lisp (module-provide-asdf): work around the
	upcoming bug#3258485 which was fixed by the 2005-01-21 patch and
	is now being reintroduced

2011-03-29  Sam Steingold  <sds@gnu.org>

	* trace.lisp (subclosure-pos, trace1): use SYMBOL-SUFFIX instead
	of CONCAT-PNAMES to keep the named of the traced definition in the
	same package as the original name

2011-03-28  Sam Steingold  <sds@gnu.org>

	fix bug#3182685: socket-connect with timeout non-zero ->ETIMEDOUT
	* socket.d (connect_via_ip): do not reuse "ret" when checking for
	socket errors (fixes patch 2008-06-30)

2011-03-28  Sam Steingold  <sds@gnu.org>

	fix bug#3165405: LOOP mixing WITH & Hash Table FOR
	* loop.lisp (expand-loop): reverse the order of INITFORMS and
	ENDTEST-FORMS in preamble (tweak the 2006-07-20 patch)

2011-03-27  Sam Steingold  <sds@gnu.org>

	fix bug#3243683: (posix:wait) race condition
	* spvw_sigcld.d (sigcld_enabled): static var which counts how many
	times we have enabled SIGCLD
	(sigcld_enabled_lock) [MULTITHREAD]: spinlock for sigcld_enabled
	(install_sigcld_handler) [MULTITHREAD]: init sigcld_enabled_lock
	(begin_want_sigcld, end_want_sigcld): only act if sigcld_enabled==0
	* modules/syscalls/calls.c (BEGIN-SUBPROCESSES, END-SUBPROCESSES): add
	* modules/syscalls/posix.lisp (with-subprocesses): add

2011-03-24  Sam Steingold  <sds@gnu.org>

	Fix bug#3198722: arg warnings despite :ALLOW-OTHER-KEYS T
	* compiler.lisp (test-argument-syntax): report all wrong keys but
	only if :ALLOW-OTHER-KEYS T is not supplied
	(c-DIRECT-FUNCTION-CALL): duplicate and ignored keys are STYLE warnings

2011-03-24  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_REVISION): explicitly call hg instead of using $Id$
	* m4/general.m4, modules/rawsock/configure.in:
	quote AC_LANG_PROGRAM to avoid an autoconf 2.68 warning
	* m4/address.m4, m4/filecharset.m4:
	use AC_LANG_PROGRAM to avoid an autoconf 2.68 warning
	* m4/eloop.m4, m4/param.m4:
	use AC_LANG_SOURCE to avoid an autoconf 2.68 warning

2011-03-23  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (wait, waitpid): remove, these
	functions never worked properly because clisp ignores SIGCLD by
	default; one should be using POSIX:WAIT instead (bug#3224360)

2011-03-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean-modules, check-doc): update for the cvs->hg switch

2011-03-08  Sam Steingold  <sds@gnu.org>

	* Makefile.devel: update for the cvs->hg switch

2011-03-01  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (split_gen0_on_holes) [MULTITHREAD]: correctly mark the
	end of old generation (it is possible the split-hole to be for
	read-only pinned object)

2011-02-17  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:CREATE-GCONTEXT):
	use error_required_keywords()
	Reported by Peter Van Eynde <pvaneynd@debian.org>

2011-02-11  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (WITH_DEFERRED_INTERRUPTS): fix typo in name and really
	execute deferred interrupts
	* spvw.d (create_thread): allow interrupts in newly created threads
	* zthread.d (thread_stub): defer interrupts until low level per thread
	variables are initialized

2010-12-30  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* pathname.d (classify_namestring) [WIN32_NATIVE]: fixed condition.

2010-12-29  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix for bug#3144993: OS:FILE-INFO crashes when file's times
	are corrupted (Y2.04k bug)
	* time.d (convert_time_to_universal) [WIN32_NATIVE]: use 64 bit
	when dividing ticks by ticks_per_second, because universal time
	exceeds 32 bits around year 2035.

2010-12-10  Sam Steingold  <sds@gnu.org>

	Fix bug#3124200: setting *DEFAULT-PATHNAME-DEFAULTS* breaks REQUIRE
	* init.lisp (open-for-load): accept ignore-pathname-defaults and
	do not call MERGE-PATHNAMES if it is non-NIL;
	use PROBE-PATHNAME instead of DIRECTORY to probe for a directory
	(load): accept :IGNORE-PATHNAME-DEFAULTS and pass it to OPEN-FOR-LOAD;
	pathname merging is done in OPEN-FOR-LOAD
	(search-file): call PATHNAME instead of MERGE-PATHNAMES on the
	argument to avoid being killed by *DEFAULT-PATHNAME-DEFAULTS*
	* defs1.lisp (with-augmented-load-path): do not use UNION since
	the augmentations must come first in *LOAD-PATHS*
	(simple-require): pass :IGNORE-PATHNAME-DEFAULTS T to LOAD

2010-12-10  Sam Steingold  <sds@gnu.org>

	* modules/asdf/asdf.lisp: update to upstream "2.011"
	* src/gmalloc.c: update from upstream (emacs)

2010-12-10  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-gmalloc): new target: get gmalloc.c from emacs

2010-12-02  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (load-path-augmentations): delete NILs
	(augment-load-path): remove
	(with-augmented-load-path): use UNION instead of AUGMENT-LOAD-PATH
	to avoid modifying the global value of *LOAD-PATHS*

2010-12-01  Sam Steingold  <sds@gnu.org>

	* pathname.d (SET-LIB-DIRECTORY): call TRUENAME on argument to
	ensure an existing absolute path

2010-11-29  Sam Steingold  <sds@gnu.org>

	fix bug#3122505: LOAD does not close FAS files with a bad version marker
	* init.lisp (open-for-load): catch errors when READing the version
	marker

2010-11-26  Sam Steingold  <sds@gnu.org>

	* constsym.d, subr.d, subrkw.d, stream.d (make_stream, stream_handles):
	define even when SOCKET_STREAMS is not defined

2010-11-25  Sam Steingold  <sds@gnu.org>

	* init.lisp, constsym.d (stream-handles): move from SOCKET to EXT

2010-11-21  Sam Steingold  <sds@gnu.org>

	* makemake.in: use ${MODULESDIR_} instead of ${SRCTOPDIR}modules

2010-11-14  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: thread safe GENSYM and GENTEMP
	* lispbibl.d (gensym_lock, gentemp_lock): add locks guarding gensym and
	gentemp counters
	* spvw.d (init_multithread): initialize gensym_lock and gentemp_lock
	* defs1.lisp (GENTEMP): remove. implemented in C
	* subr.d, constsym.d: add GENTEMP to subr and symbol tables
	* constobj.d: add gentemp prefix and counter to object table
	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): remove *gensym-counter*
	* symbol.d: define gensym_lock, gentemp_lock
	(GENSYM): re-implement. lock *gensym-counter* increment
	(GENTEMP): implement in C

2010-11-08  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_sockopt_name): add
	(get_sock_opt, set_sock_opt): use it instead of NOTREACHED

2010-10-30  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: add optional :TEST predicate to MT:EXEMPTION-WAIT
	* subr.d, subrkw.d (EXEMPTION-WAIT): accept optional :TEST argument
	* xthread.d (xcondition_wait): accept timeout as void pointer. with
	POSIX_THREADS it is absolute struct timespec, with WIN32_THREADS it is
	unsigned integer specifying milliseconds to wait
	* zthread.d (EXEMPTION-WAIT): loop until :TEST predicate is satisfied
	thus simplifies EXEMPTION-WAIT usage with POSIX_THREADS where spurious
	wakeups are possible
	(xcondition_wait): handle timeout parameter properly

2010-10-28  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (time_stamp): make "prefix" const to avoid
	warning: deprecated conversion from string constant to 'char*'
	* modules/syscalls/calls.c (POSIX:FILE-TREE-WALK): add a cast to
	fix g++ compilation

2010-10-27  Bruno Haible  <bruno@clisp.org>

	* clhs.lisp (*browsers*): Add :firefox-window and :firefox-tab.

2010-10-22  Vladimir Tzankov  <vtzankov@gmail.com>

	* time.d (get_running_times_helper): fix real time calculation. use
	the value returned from get_real_time()

2010-10-21  Sam Steingold  <sds@gnu.org>

	* time.d (GET-INTERNAL-RUN-TIME): when *ANSI*!=NIL, reject the
	optional argument (for strict ANSI compliance)

2010-10-21  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: provide real/run time information on individual threads
	when supported by OS
	* lispbibl.d: remove HAVE_RUN_TIME and dependencies
	(get_thread_run_time, get_run_time): obtain thread or process run time
	(struct clisp_thread_t): add thr_realstart_time - real time at which
	thread has started
	(check_thread): make it global (used from time.d)
	* spvw_gcstat.d (gc_timer_on, gc_timer_off): use get_run_time()
	instead	of get_running_time() (which was causing unused C stack
	area to be overwritten)
	* stream.d: remove run_time_start()and run_time_restart() calls (anyway
	these were nop when HAVE_RUN_TIME was not defined i.e. always)
	* zthread.d (check_thread): make it global
	(thread_stub): initialize thread real start time
	* subr.d (GET-INTERNAL-RUN-TIME, SYSTEM::%%TIME): accept optional
	thread argument
	* time.d: remove HAVE_RUN_TIME and dependencies
	(realstart_time_initialized): flag whether process start time was
	initialized
	(thread_from_arg): returns thread record from optional argument passed
	to GET-INTERNAL-RUN-TIME and SYSTEM::%%TIME
	(real_start_time): return the real start time of a thread or process
	(get_thread_run_time): was get_run_time(). handle thread argument
	(get_running_times_helper): was get_running_times(). handle thread
	argument. never fails and does not GC when called for process wide data
	(get_running_times): use it
	(GET-INTERNAL-RUN-TIME, %%TIME): handle optional thread argument
	(init_time): initialize thread real start time in MT

2010-10-21  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* makemake.in (cygwin_finish): use realpath and cygpath to
	avoid cygcheck bug with symbolic links

2010-10-21  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix PROBE-PATHNAME: proper handle of "/" on UNIX,
	DWIM on WIN32 (broken 10-18) "lisp.exe/" -> "path/lisp.exe"
	* pathname.d (PROBE-PATHNAME): strip last "/" in a loop
	(classify_namestring) [UNIX]: handle ENOTDIR
	like ERROR_INVALID_NAME is handled on WIN32

2010-10-20  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_rusage): add
	(USAGE): accept `what' argument and return a single value

2010-10-18  Sam Steingold  <sds@gnu.org>

	fix bug#3089988: (loop for x do (print x)) should barf
	* loop.lisp (expand-loop): fail when the FOR clause lacks subclauses

2010-10-18  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* pathname.d (FIND_DATA_FWD) [WIN32_NATIVE]: fixed condition

2010-10-18  Julian Squires  <julian@cipht.net>
            Arseny Slobodyuk  <ampy@users.sourceforge.net>

        fix bug#3087668: probe-pathname on root directories on WIN32
	* pathname.d (PROBE-PATHNAME) [!UNIX]: do not remove trailing slash
	(classify_namestring) [WIN32_NATIVE]: use GetFileAttributesEx instead
	of FindFirstFile to retrieve size and modification date/time,
	because GetFileAttributesEx unlike FFF can handle root directories

2010-10-17  Vladimir Tzankov  <vtzankov@gmail.com>

	fix bug#3088751: SIGSEGV on large (unsigned-byte 8) arrays
	* spvw_typealloc.d (allocate_bit_vector): use uintM;
	uintL overflows on 64 bit builds for large vectors
	* spvw_objsize.d (size_sbvector): use uintM instead of uintL
	* spvw_garcol.d (fill_varobject_heap_holes) [MULTITHREAD]:
	holes may be larger than 2^32 bytes (uintL); use uintM

2010-10-15  Sam Steingold  <sds@gnu.org>

	* pathname.d (PROBE-PATHNAME): fix open stream handling

2010-10-12  Sam Steingold  <sds@gnu.org>

	* modules/editor: resurrect editor.lisp from 1998; update and fix
	the most glaring problems; maintainer is wanted!

2010-10-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (GLLIB_MODULE_HEADERS): some headers, e.g.,
	sockets.h, are only needed by modules/*/gllib, not boot

2010-10-12  Sam Steingold  <sds@gnu.org>

	* modules/regexp/gllib/stddef.in.h, modules/regexp/gllib/stdlib.in.h:
	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/stdlib_h.m4:
	* modules/syscalls/gllib/stddef.in.h, modules/syscalls/gllib/strerror.c:
	* modules/syscalls/gllib/strings.in.h:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/sys_utsname.in.h:
	* modules/syscalls/gllib/time.in.h:
	* modules/syscalls/gllib/unistd.in.h, modules/wildcard/glm4/fnmatch.m4:
	* gllib/errno.in.h, gllib/langinfo.in.h, gllib/malloca.c:
	* gllib/stddef.in.h, gllib/stdint.in.h, gllib/stdlib.in.h:
	* gllib/string.in.h, gllib/sys_socket.in.h, gllib/sys_time.in.h:
	* gllib/sys_wait.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
	* gllib/wctype.in.h, glm4/errno_h.m4, glm4/include_next.m4:
	* glm4/stdlib_h.m4, glm4/threadlib.m4: update from gnulib to fix
	error: redefinition of `struct random_data'
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23606>

2010-10-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (module_configure_flags): fix according to
	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13381>

2010-10-12  Sam Steingold  <sds@gnu.org>

	* gmalloc.c: move from src/malloc/ to src/
	* malloc/getpagesize.c: remove obsolete file
	* makemake.in: update

2010-10-11  Sam Steingold  <sds@gnu.org>

	* makemake.in: make charstrg.o depend on $(GLLIB_A) instead of
	gllib because the latter is _always_ rebuilt

2010-10-08  Sam Steingold  <sds@gnu.org>

	* genclisph.d (check_typecodes): run in the generated
	clisp-test-lispbibl instead of genclisph so that the check is
	always enabled

2010-10-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (full): print gnulib replacements only when -verbose
	and do not fail the build when none is found

2010-10-04  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:STRING-TIME): when calling strptime,
	init tm fields to reasonable values because strptime does not set
	fields which are not specified by datum

2010-10-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (default_thread_name): returns name for functionp object
	(MAKE-THREAD): use it

2010-10-04  Sam Steingold  <sds@gnu.org>

	* makemake.in (full): show which system supplied functionality is
	replaced by gnulib

2010-10-03  Vladimir Tzankov  <vtzankov@gmail.com>

	fix bug#3077583: show-stack segfaults with MT
	* lispbibl.d (THREAD_LISP_STACK_START): remove
	* spvw.d (delete_thread): calculate thread stack address and free it
	* debug.d (show_stack): do not use cmpSTACKop for testing end of stack.
	FRAME == STACK_start should be correct end condition in all cases
	* zthread.d (thread_stub): no back trace for new thread

2010-10-02  Sam Steingold  <sds@gnu.org>

	* makemake.in: make charstrg.o depend on gllib

2010-09-29  Sam Steingold  <sds@gnu.org>

	do not use gnulib module getdate which should have been called get_date
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23310>
	* modules/syscalls/calls.c (xalloc_die): remove
	(GETDATE): condition on HAVE_GETDATE & HAVE_DECL_GETDATE_ERR
	* modules/syscalls/configure.in: do not call AC_PROG_YACC;
	check for getdate and getdate_err
	* modules/syscalls/gllib/c-ctype.c, modules/syscalls/gllib/c-ctype.h:
	* modules/syscalls/gllib/getdate.h, modules/syscalls/gllib/getdate.y:
	* modules/syscalls/gllib/gettext.h, modules/syscalls/gllib/gettime.c:
	* modules/syscalls/gllib/timespec.h, modules/syscalls/gllib/xalloc.h:
	* modules/syscalls/gllib/xmalloc.c, modules/syscalls/glm4/bison.m4:
	* modules/syscalls/glm4/clock_time.m4, modules/syscalls/glm4/error.m4:
	* modules/syscalls/glm4/getdate.m4, modules/syscalls/glm4/gettime.m4:
	* modules/syscalls/glm4/inline.m4, modules/syscalls/glm4/timespec.m4:
	* modules/syscalls/glm4/xalloc.m4: remove

2010-09-29  Sam Steingold  <sds@gnu.org>

	* configure.in, modules/syscalls/configure.in:
	do not call macros which are already called by gl_INIT

2010-09-29  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (module__syscalls__init_function_2): if
	DATEMSK is not set, point it to the included file ...
	* modules/syscalls/datemsk: add (based on
	http://www.opengroup.org/onlinepubs/009695399/functions/getdate.html)
	* modules/syscalls/Makefile.in (GENERATED): add datemsk
	(datemsk): new target

2010-09-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (lisp${SHREXT}, lisp${LEXE}): put ${GLLIB_A} before
	$(OBJECTS) so that gllib is rebuilt before compiling charstrg.d

2010-09-28  Sam Steingold  <sds@gnu.org>

	implement POSIX:GETDATE using gnulib
	* Makefile.devel (gnulib-imported): import getdate into syscalls
	(build-aux-update): get ylwrap from automake
	* modules/syscalls/calls.c (tm_to_lisp): extract from STRING-TIME
	(POSIX:GETDATE, xalloc_die): implement
	* modules/syscalls/posix.lisp: export GETDATE
	* modules/syscalls/configure.in: call gl_GETDATE & AC_PROG_YACC
	* modules/syscalls/gllib/c-ctype.c, modules/syscalls/gllib/c-ctype.h:
	* modules/syscalls/gllib/getdate.h, modules/syscalls/gllib/getdate.y:
	* modules/syscalls/gllib/gettext.h, modules/syscalls/gllib/gettime.c:
	* modules/syscalls/gllib/timespec.h, modules/syscalls/gllib/xalloc.h:
	* modules/syscalls/gllib/xmalloc.c, modules/syscalls/glm4/bison.m4:
	* modules/syscalls/glm4/clock_time.m4, modules/syscalls/glm4/error.m4:
	* modules/syscalls/glm4/getdate.m4, modules/syscalls/glm4/gettime.m4:
	* modules/syscalls/glm4/inline.m4, modules/syscalls/glm4/timespec.m4:
	* modules/syscalls/glm4/xalloc.m4: add

2010-09-28  Sam Steingold  <sds@gnu.org>

	fix bug#3076160: pass the top-level configure arguments --build= &
	--host= to the module configures
	* makemake.in (module_configure_flags):
	strip out -srcdir* & -cache-file*

2010-09-28  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (module__rawsock__init_function_2):
	use _GL_UNUSED instead of the ad hoc `unused'

2010-09-28  Sam Steingold  <sds@gnu.org>

	* Makefile.devel ($(MAKEMAKE_TMP)): substitute
	--disable-option-checking for @module_configure_flags@
	* configure.in: substitute $ac_configure_args
	for @module_configure_flags
	* makemake.in (module_configure_flags): use @module_configure_flags@
	instead of hard-wired --disable-option-checking

2010-09-28  Sam Steingold  <sds@gnu.org>

	get strerror from gnulib for POSIX:STRERROR
	* Makefile.devel (GNULIB_CORE): explicitly request already present errno
	(gnulib-imported): request strerror for syscalls
	* modules/syscalls/configure.in:
	call gl_HEADER_ERRNO_H instead of checking for <errno.h>;
	call gl_FUNC_STRERROR instead of checking for strerror
	* modules/syscalls/calls.c: include <errno.h> unconditionally
	(STRERROR): always define (errno.h & strerror ensured by gnulib)
	* modules/syscalls/gllib/errno.in.h, modules/syscalls/glm4/errno_h.m4:
	remove (already present in src/)
	* modules/syscalls/gllib/intprops.h, modules/syscalls/gllib/strerror.c:
	* modules/syscalls/glm4/strerror.m4: add

2010-09-28  Sam Steingold  <sds@gnu.org>

	* configure.in: simplify makemake generation, substitute SHELL
	* makemake.in: use @SHELL@
	* Makefile.devel ($(MAKEMAKE_TMP)): substitute @SHELL@
	Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13369>

2010-09-28  Sam Steingold  <sds@gnu.org>

	* stream.d (resize_screen): call redisplay()

2010-09-27  Sam Steingold  <sds@gnu.org>

	rely on gnulib for setenv portability
	* lispbibl.d (clisp_setenv): remove
	* misc.d (push_envar): return no values
	(GETENV): remove dead code
	(cat_env_var, setenv_via_environ, clisp_setenv): remove
	(SETENV): use setenv and unsetenv instead of clisp_setenv
	* spvw_language.d (init_language): ditto
	* Makefile.devel (GNULIB_CORE): add setenv & unsetenv
	* gllib/malloca.c, gllib/malloca.h, gllib/malloca.valgrind:
	* gllib/setenv.c, gllib/stdlib.in.h, gllib/unsetenv.c:
	* glm4/eealloc.m4, glm4/environ.m4, glm4/malloca.m4:
	* glm4/setenv.m4, glm4/stdlib_h.m4: add

2010-09-27  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): add sys_wait
	* configure.in: call gl_SYS_WAIT_H
	* pathname.d (EXECUTE): assume that WEXITSTATUS et al are present
	* gllib/sys_wait.in.h, glm4/sys_wait_h.m4: add

2010-09-27  Sam Steingold  <sds@gnu.org>

	SIGWINCH updates the SCREEN's idea of window size
	* lispbibl.d (resize_screen) [SCREEN]: declare
	* spvw_sigwinch.d (update_linelength) [SCREEN]: call resize_screen()
	* stream.d (resize_screen) [SCREEN]: implement
	Reported by <edgar-rft@web.de>

2010-09-21  Vladimir Tzankov  <vtzankov@gmail.com>

	* pathname.d (unblock_all_signals): unblocks all blocked signals.
	used in child processes to clear parent's signal mask
	(EXT::LAUNCH, EXT:EXECUTE): use it

2010-09-21  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::CHROOT): add
	* modules/syscalls/posix.lisp (chroot) [unix]: export
	* modules/syscalls/configure.in: check for chroot

2010-09-20  Sam Steingold  <sds@gnu.org>

	* init.lisp (load): if filename is a non-file stream,
	do not call TRUENAME on it

2010-09-17  Sam Steingold  <sds@gnu.org>

	* m4/proto.m4 (CL_PROTO): remove $ac_t (obsolete for 10 years!)
	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13335>

2010-09-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (LIBS): add LIBSOCKET after GLLIB_A so that
	gethostname is found in the right place on woe32
	(SUBDIRS): depend on config.status

2010-09-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* modules/syscalls/calls.c (nftw_fn): do not call lisp code while
	current thread is marked to be in blocking system call

2010-09-15  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (rawsock_error): use ecode instead of
	errno which can be reset by strerror

2010-09-15  Sam Steingold  <sds@gnu.org>

	* .gdbinit (run_mod_test): accept "linkset" argument

2010-09-15  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): remove obsolete reverse
	* lispbibl.d (c_lisp_map_t): remove obsolete use_default_function_p
	* misc.d (map_lisp_to_c, map_c_to_lisp): do not use it
	* modules/syscalls/calls.c: update DEFCHECKER invocations

2010-09-15  Sam Steingold  <sds@gnu.org>

	* win32.d (gethostname): #undef after including <unistd.h> and
	before including winsock headers, as per
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23076>

2010-09-15  Sam Steingold  <sds@gnu.org>

	* utils/gen-uninames: remove, superseded by
	src/gllib/uniname/gen-uninames.lisp

2010-09-15  Sam Steingold  <sds@gnu.org>

	update gnulib
	* modules/regexp/gllib/regex.h, modules/regexp/glm4/regex.m4:
	* gllib/langinfo.in.h, gllib/nl_langinfo.c, gllib/string.in.h:
	* gllib/wctype.in.h, gllib/uniwidth/width.c, glm4/langinfo_h.m4:
	* glm4/lib-ld.m4, glm4/memchr.m4, glm4/progtest.m4:
	* glm4/sockets.m4, glm4/wctype_h.m4: update
	* glm4/socketlib.m4: add

2010-09-15  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_CREATESHARED): use soname & output_objdir
	separately because of cygwin

2010-09-14  Sam Steingold  <sds@gnu.org>

	* init.lisp (load): return the truename of the loaded file

2010-09-14  Sam Steingold  <sds@gnu.org>

	interface to the POSIX function nftw()
	* modules/syscalls/calls.c (FILE-TREE-WALK): add
	* modules/syscalls/posix.lisp (file-tree-walk) [unix]: export
	* modules/syscalls/configure.in: check for nftw and ftw.h

2010-09-14  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (parse-signature): accept :SECLASS and pass
	it to MAKE-SIGNATURE
	(defun-p): pass SEC to PARSE-SIGNATURE instead of ignoring it

2010-09-13  Sam Steingold  <sds@gnu.org>

	bundle ASDF2 as a module
	* Makefile.devel (update-asdf): new .PHONY target
	(pre-release): depend on it
	* modules/asdf: add (based on asdf 2.008)
	* makemake.in, unix/INSTALL: mention asdf in the docs

2010-09-14  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/Makefile (clisp-module): depend on link.sh
	which is required by clisp-link.sh
	* modules/clx/mit-clx/link.sh (NEW_MODULES): add "clx"
	(NEW_FILES): one loop instead of two

2010-09-14  Sam Steingold  <sds@gnu.org>

	* clisp-link.in: support module which have no C component:
	build dll only if NEW_LIBS is non-empty

2010-09-02  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (ignore-check): warn about assigned but never read vars

2010-09-01  Sam Steingold  <sds@gnu.org>

	use gnulib sockets.m4 and socklen.m4 instead of the clisp ones
	* Makefile.devel (GNULIB_CORE): add socklen, sockets, close-hook
	* modules/rawsock/rawsock.c, stream.d, socket.d, win32.d:
	use socklen_t instead of CLISP_SOCKLEN_T
	* configure.in: use gl_SOCKETS instead of CL_SOCKET
	and gl_TYPE_SOCKLEN_T instead of CL_SOCKLEN_T
	* makemake.in: use LIBSOCKET instead of assuming everything is in LIBS

2010-09-01  Sam Steingold  <sds@gnu.org>

	use gnulib/host-cpu-c-abi
	* Makefile.devel (GNULIB_CORE): add host-cpu-c-abi
	* configure.in: use gl_HOST_CPU_C_ABI instead of CL_CANONICAL_HOST_CPU
	* makemake.in (host_cpu_c_abi): replaces host_cpu_abi
	* m4/general.m4 (CL_CACHE_EGREP_CPP, CL_SET_CPU_ABI)
	(CL_CANONICAL_HOST_CPU): remove (superseded by gnulib/host-cpu-c-abi)

2010-09-01  Sam Steingold  <sds@gnu.org>

	update gnulib
	* modules/regexp/gllib/malloc.c, modules/regexp/gllib/stdlib.in.h:
	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/btowc.m4:
	* modules/regexp/glm4/codeset.m4, modules/regexp/glm4/gnulib-comp.m4:
	* modules/regexp/glm4/malloc.m4, modules/regexp/glm4/mbrtowc.m4:
	* modules/regexp/glm4/ssize_t.m4, modules/regexp/glm4/stdlib_h.m4:
	* modules/regexp/glm4/wchar_t.m4, modules/regexp/glm4/wcrtomb.m4:
	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/mbrlen.m4:
	* modules/syscalls/glm4/wchar_t.m4:
	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
	* glm4/codeset.m4, glm4/fcntl-o.m4, glm4/gettext.m4:
	* glm4/iconv.m4, glm4/include_next.m4, glm4/intdiv0.m4:
	* glm4/intl.m4, glm4/intlmacosx.m4, glm4/intmax.m4:
	* glm4/inttypes-pri.m4, glm4/inttypes_h.m4, glm4/lcmessage.m4:
	* glm4/lib-link.m4, glm4/lock.m4, glm4/mbrtowc.m4:
	* glm4/mbsrtowcs.m4, glm4/printf-posix.m4, glm4/size_max.m4:
	* glm4/stdbool.m4, glm4/stdint_h.m4, glm4/threadlib.m4:
	* glm4/visibility.m4, glm4/wchar_t.m4, glm4/wint_t.m4: update
	* modules/syscalls/glm4/socklen.m4: add

2010-08-31  Sam Steingold  <sds@gnu.org>

	* init.lisp (open-for-load): use MUFFLE-CERRORS to ignore encoding
	errors in DIRECTORY to avoid the DOS attack of CLISP not starting
	when HOME contains a file incompatible with *PATHNAME-ENCODING*.
	This finishes the work started on 2008-07-16.

2010-08-31  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-EVAL-WHEN): use AND instead of (IF ... ... NIL)

2010-08-18  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (*module-provider-functions*): add
	(simple-require): extract from REQUIRE
	(require): use the above, now one can hook asdf into clisp

2010-08-18  Sam Steingold  <sds@gnu.org>

	* clisp.spec: remove obsolete file, it has not been used for many
	years, most linux distributions now offer clisp themselves

2010-08-17  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (prepare_dynamic_module): better comment placement
	in reqfile; do not call set_dynamic_module_location; append the
	names of the new files to DYNDIR_FILES
	(add, install): call set_dynamic_module_location outside of the loop
	(install): handle DESTDIR correctly, install DYNDIR_FILES there
	* makemake.in (install-modules) [with_dynamic_modules]: new target,
	allows "a la carte" module installation
	(install-bin) [with_dynamic_modules]: depend on install-modules

2010-08-16  Sam Steingold  <sds@gnu.org>

	fix 2010-07-09 ${DESTDIR} patch which broke "make install DESTDIR=...":
	only respect DESTDIR in "install", not in "add" mode
	* clisp-link.in (try_set_LIBDIR): extract from ...
	(set_dynamic_module_location): use try_set_LIBDIR;
	accept DESTDIR as an argument
	(prepare_dynamic_module): accept DESTDIR as an argument
	(add): pass "" as the DESTDIR to prepare_dynamic_module
	(install): pass DESTDIR as DESTDIR to prepare_dynamic_module

2010-08-16  Sam Steingold  <sds@gnu.org>

	* clisp-link.in: revert the 2010-07-09 ${DESTDIR} patch because it
	breaks "make install DESTDIR=..."

2010-08-13  Sam Steingold  <sds@gnu.org>

	* type.lisp (typep-number-test, c-typep-number): reuse error string
	* init.lisp: use reader (#1#) instead of let for the list of
	exported MOP symbols

2010-08-09  Sam Steingold  <sds@gnu.org>

	* condition.lisp (clos-style-warning, clos-novice-warning)
	(class-obsolescence-warning): add
	(gf-already-called-warning, gf-replacing-method-warning): inherit
	from CLOS-STYLE-WARNING, not CLOS-WARNING
	* init.lisp, clos-package.lisp (clos-style-warning)
	(clos-novice-warning, class-obsolescence-warning): export
	* clos-class3.lisp (defclass):
	the novice warning is now of type CLOS-NOVICE-WARNING;
	drop the weird non-standard :DEFAULT-INITARGS cleanup and warning
	(make-instances-obsolete-<semi-standard-class>-nonrecursive):
	obsolescence warnings are now of type CLASS-OBSOLESCENCE-WARNING
	* clos-genfun2b.lisp (std-add-method): do not use
	WARN-IF-GF-ALREADY-CALLED, mention the method in the warnings message
	(std-remove-method): do not use GF-ALREADY-CALLED-WARNING,
	one warning instead of two
	(gf-already-called-warning, warn-if-gf-already-called): remove
	* clos-genfun3.lisp (ensure-generic-function-using-class-<t>):
	do not call WARN-IF-GF-ALREADY-CALLED

2010-08-09  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-DEFUN): when redefining a functions with the
	same signature, issue a STYLE-WARNING, not a WARNING

2010-08-09  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-source-location): fix the messages,
	messed-up by the 2009-10-28 patch

2010-08-06  Sam Steingold  <sds@gnu.org>

	fix bug#3040648: documentation strings broken for structs
	* clos-class3.lisp (shared-initialize-<structure-class>): do not
	ignore the documentation argument, set the documentation slot instead
	(define-structure-class): accept documentation (ABI change)
	* constobj.d (version): bump because of that!
	* defstruct.lisp (defstruct): pass docstring to define-structure-class
	* documentation.lisp ((setf documentation)@class&structure):
	go through (setf documentation), not sys::%set-documentation

2010-08-06  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* makemake.in (cygwin_finish): use sophisticated grep string to
	make cygwin dependence check more reliable.

2010-08-05  Sam Steingold  <sds@gnu.org>

	* spvw.d (print_banner): flush *standard-output*

2010-08-05  Sam Steingold  <sds@gnu.org>

	* genclisph.d (check_typecodes) [TYPECODES]:
	check that the type tests are correct (normally disabled)

2010-08-05  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix for a bug#3039298 introduced by 2010-04-13 patch:
	short (DOS) filenames were not handled properly.
	* w32shell.c (real_path): care of the zero byte at the end of filename.

2010-08-04  Sam Steingold  <sds@gnu.org>

	* array.d (elt_reverse): use SIMPLE_REVERSE for strings too

2010-08-02  Bruno Haible  <bruno@clisp.org>

	* realelem.d (ffloat_uint32_equal, dfloat_uint32_equal): New functions.

2010-08-02  Sam Steingold  <sds@gnu.org>

	* predtype.d (elt_compare_t): add a typedef

2010-08-01  Bruno Haible  <bruno@clisp.org>

	* realelem.d (ffloat_dfloat_equal) [FAST_FLOAT&FAST_DOUBLE]: Optimize.

2010-08-01  Bruno Haible  <bruno@clisp.org>

	New functions for comparing an ffloat or dfloat with a number.
	* ffloat.d (ffloat_decode): New macro, extracted from FF_decode.
	(FF_decode): Use it.
	* dfloat.d (dfloat_decode): New macro, extracted from DF_decode.
	(DF_decode): Use it.
	(dfloat_decode2): New macro, extracted from DF_decode2.
	(DF_decode2): Use it.
	* realelem.d (ffloat_R_equal, dfloat_R_equal, ffloat_dfloat_equal): New
	functions.
	* compelem.d (ffloat_N_equal, dfloat_N_equal): New functions.

2010-08-01  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (dfloat, dfloatjanus): Make definition in clisp.h
	consistent with the one in lispbibl.d.

2010-08-01  Bruno Haible  <bruno@clisp.org>

	* aridecl.d (FF_exp_low, FF_exp_mid, FF_exp_high, DF_exp_low)
	(DF_exp_mid, DF_exp_high): Hardcode values from IEEE 754.
	* flo_konv.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
	(DF_to_c_double): Simplify accordingly.

2010-07-29  Sam Steingold  <sds@gnu.org>

	* foreign.d (convert_to_foreign): minor code simplification
	* foreign1.lisp (convert-from-foreign): fix a typo
	(convert-to-foreign): inline float conversion

2010-07-28  Sam Steingold  <sds@gnu.org>

	* foreign.d (convert_to_foreign): when fvd is a FLOAT type and obj
	is not of the right type, call coerce_float so that one can use
	any REAL to initialize a FLOAT (helps GSLL a LOT!)

2010-07-27  Sam Steingold  <sds@gnu.org>

	* makemake.in (manual_print): move `if' outside of the `for' loop
	($IMPNOTES_FILES, $DOC, $TOP_DOC): use link_dep

2010-07-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (LIB_TYPE): remove obsolete unused code

2010-07-21  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU): sync with ffcall to use
	CL_SET_CPU_ABI, CL_CACHE_EGREP_CPP, and substitute host_cpu_abi
	* makemake.in (cpu): use @host_cpu_abi@

2010-07-20  Sam Steingold  <sds@gnu.org>

	* stream.d (IS_EINVAL_EXTRA) [*bsd]: when ENOTSUP is not defined,
	use EOPNOTSUPP (e.g., on UNIX_OPENBSD)

2010-07-16  Sam Steingold  <sds@gnu.org>

	* version.sh: 4.49+ (2010-07-17)

2010-07-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (cpu) [mips]: by default gcc runs in 32-bit mode,
	so use the same heuristic as sparc: when "uname -m" is mips64,
	set cpu to mips64 only if `gcc -print-multi-os-directory` ends in 64

2010-07-12  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (save-problem): use WRITE instead of
	FORMAT to avoid creating intermediate LONG-FLOATs

2010-07-12  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4 (CL_FFCALL): use `test' instead of `[]'
	Reported by Arseny Slobodyuk <ampy@ich.dvo.ru>

2010-07-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* stream.d (QueryInformationFile_t) [WIN32]: fix calling convention.
	NT API is uses __stdcall not __cdecl
	(handle_pathname): pass correct buffer size to NtQueryInformationFile

2010-07-09  Aleksej Saushev  <asau@inbox.ru>

	* clisp-link.in: use ${DESTDIR} to support staged module installation

2010-07-09  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_PICFLAG, XCC_CREATESHARED): set using libtool,
	like we already do with EXPORT_DYNAMIC_FLAG_SPEC

2010-07-09  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-call-out, pari-cgetg): no need
	for (:LANGUAGE :STDC) since we already use DEFAULT-FOREIGN-LANGUAGE
	(extract0, extract1, pari-mantissa, pari-set-component)
	(pari-make-object): use MEMORY-AS instead of WITH-C-VAR/DEREF+CAST
	for performance (10%) as per Joerg's suggestions

2010-07-08  Sam Steingold  <sds@gnu.org>

	* init.lisp (sys::check-redefinition): signal STYLE-WARNING
	instead of WARNING
	(warn-of-type): add a predefun

2010-07-08  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (main_actions): move all MT specific stuff to mt_main_actions
	(mt_main_actions): implement main thread killing here

2010-07-07  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (upload-sf): use scp instead of rsync

2010-07-07  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.49 (2010-07-07)

2010-07-07  Sam Steingold  <sds@gnu.org>

	Fix MSVC support
	* Makefile.devel (win32msvc/makefile.msvc6, win32msvc/makefile.msvc7):
	pass --without-dynamic-modules to makemake
	($(MAKEMAKE_TMP)): substitute CLISP_DECOLONIZE
	* makemake.in: check for ./libtool before invoking it

2010-07-07  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (thread_stub): fix double call to set_current_thread.
	causes problems	with USE_CUSTOM_TLS = 2
	* spvw.d (main) [USE_CUSTOM_TLS = 2]: remove the thread specific value
	for signal handling (main) thread

2010-07-05  Yaroslav Kavenchuk  <kavenchuk@jenty.by>

	* makemake.in (CLISP_LIBDIR): use "$(@CLISP_DECOLONIZE@)"

2010-07-04  Sam Steingold  <sds@gnu.org>

	Fix unbuffered output pipe stream initialization (bug#3024887).
	* stream.d (make_pipe): init output unbuffered streams appropriately

2010-07-03  Bruno Haible  <bruno@clisp.org>

	Support for MacOS X in 64-bit mode.
	* m4/mmap.m4 (CL_MMAP): On MacOS X in 64-bit mode, use a base address,
	so that the test succeeds.
	* lispbibl.d (HEAPCODES): Define by default on MacOS X in 64-bit mode.
	* spvw.d (init_memory): Hardcode bounds for mmap on MacOS X in
	64-bit mode.
	* makemake.in (cpu): On MacOS X in 64-bit mode, set it to x86_64.

2010-07-02  Sam Steingold  <sds@gnu.org>

	* init.lisp (load): add RETRY restart to SKIP and STOP
	* condition.lisp (eval-loaded-form): ditto

2010-06-27  Sam Steingold  <sds@gnu.org>

	Support libsvm 2.91
	* modules/libsvm/configure.in: check for svm_set_print_string_function;
	drop pkg-config support
	* modules/libsvm/libsvm.lisp: call svm_set_print_string_function
	when it is available

2010-06-25  Sam Steingold  <sds@gnu.org>

	* spvw.d (quit): FINISH-OUTPUT on standard streams before saying "Bye"

2010-06-24  Sam Steingold  <sds@gnu.org>

	* stream.d (IS_EINVAL_EXTRA): treat all *BSD flavors like DARWIN

2010-06-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): use CLISP_LIBDIR instead of HEREP
	because it is decolonized to prevent "multiple target patterns"

2010-06-24  Sam Steingold  <sds@gnu.org>

	fix bug#3020933: (SETF STREAM-EXTERNAL-FORMAT) fails on TWO-WAY-STREAM
	* stream.d (SET-STREAM-EXTERNAL-FORMAT): handle TWO-WAY-STREAM and
	ECHO-STREAM together with TWO-WAY-SOCKET; use stream_reset_eltype
	to reset pseudofunctions in case line terminator changed

2010-06-24  Sam Steingold  <sds@gnu.org>

	* m4/termcap.m4 (CL_TERMCAP): fix a $LIBTERMCAP test
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2010-06-24  Yaroslav Kavenchuk  <kavenchuk@jenty.by>

	* m4/clisp.m4 (CL_DECOLONIZE): fix a typo in the mingw regexp

2010-06-18  Barry Fishman  <barry_fishman@acm.org>
	Sam Steingold  <sds@gnu.org>

	* clhs.lisp (*browsers*): remove firefox-window & firefox-tab,
	add chromium, conkeror, opera; use emacsclient for emacs
	* cfgunix.lisp (*browser*): recommend firefox

2010-06-18  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (get_locale_info) [WIN32_NATIVE]:
	accept errorp to avoid errors when asked for the full list
	by (I18N:LANGUAGE-INFORMATION)
	(thousands_sep_to_STACK, locale_string_to_STACK)
	(locale_int_to_STACK, locale_bool_to_STACK):
	pass 1 to get_locale_info()
	(get_lang_info, res_to_obj): merge
	(I18N:LANGUAGE-INFORMATION): update

2010-06-18  Sam Steingold  <sds@gnu.org>

	fix the 2010-04-15 patch: rl_deprep_term_function is not always present
	* spvw.d (fini_lowest_level): call rl_deprep_term_function only if
	it has been defined in <readline/readline.h>; include it then
	* m4/readline.m4 (CL_READLINE): check for rl_deprep_term_function
	declaration
	Reported by Yaroslav Kavenchuk <kavenchuk@gmail.com>

2010-06-18  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_memory) [DEBUG_SPVW]: fflush(stderr) so that debug
	output comes before the first lisp output

2010-06-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (string_version_compare): call
	strverscmp and clear the STACK
	(OS:VERSION-COMPARE, OS:VERSION<, OS:VERSION<=, OS:VERSION>)
	(OS:VERSION>=): use it
	* modules/syscalls/posix.lisp (OS:VERSION<, OS:VERSION<=)
	(OS:VERSION>, OS:VERSION>=, OS:VERSION-COMPARE): export
	* modules/syscalls/configure.in: call gl_FUNC_STRVERSCMP
	* Makefile.devel (gnulib-imported): import strverscmp into syscalls

2010-06-17  Sam Steingold  <sds@gnu.org>

	* stream.d (IS_EINVAL, IS_EINVAL_EXTRA): extracted from
	finish_tty_output and force_tty_output
	(finish_tty_output, force_tty_output, clear_tty_output)
	(listen_handle): use IS_EINVAL
	Reported by José H. Espinosa <jose.h.espinosa@gmail.com>

2010-06-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): fix "make check | tee": redirect
	output under nohup because nohup only creates nohup.out if there
	is no redirection

2010-06-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (LIBTOOL_VERSION): bump to 2.2.8
	(GNULIB_MODULES): remove obsolete modules memmove & memcmp
	(build-aux-update): also get ltoptions ltsugar ltversion lt~obsolete
	* configure.in: add AC_CONFIG_MACRO_DIR([m4]) for libtoolize
	* modules/syscalls/glm4/sockpfaf.m4, build-aux/config.sub: update

2010-06-16  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.48++ (2010-06-16)

2010-06-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib): hln merges pathnames, which means that if the
	source pathname is absolute, the destination must be absolute as well

2010-06-15  Sam Steingold  <sds@gnu.org>

	Try to flush buffers even if CLOSE was called with :ABORT T.
	this partially reverts patch 2010-02-25 and fixes bug#3014919
	* stream.d (handle_close_errors, MAYBE_IGNORE_ERRORS): add
	(close_str_in, close_buff_in): do not accept unused abort arg
	(builtin_stream_close): do not pass abort to them
	(close_buff_out, close_generic, close_ochannel, close_buffered):
	use MAYBE_IGNORE_ERRORS around calls which may signal errors
	(oconv_unshift_output_buffered): accept abort arg
	* constobj.d (handler_for_error): add
	* lispbibl.d (clisp_thread_t) [MULTITHREAD]: add
	_running_handle_close_errors
	(running_handle_close_errors) [MULTITHREAD]: define
	* makemake.in (check-script): test for bug#3014919

2010-06-15  Sam Steingold  <sds@gnu.org>

	* pathname.d (handle_directory_encoding_error): use unwind_upto
	instead of a home-brewed concoction

2010-06-15  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (venv_out) [DEBUG_SPVW]: add

2010-06-13  Sam Steingold  <sds@gnu.org>

	* stream.d (BUILT-IN-STREAM-ELEMENT-TYPE): return NIL for an empty
	CONCATENATED-STREAM (bug#3014921)

2010-06-10  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:LOADAVG): fix a GC-safety bug;
	use round() for integer returns

2010-06-10  Sam Steingold  <sds@gnu.org>

	* io.d (STRUCTURE-READER): fix g++ compilation and a GC-safety bug

2010-06-10  Sam Steingold  <sds@gnu.org>

	make OS:BOGOMIPS work even when clisp is compiled with -O
	* modules/syscalls/bogomips.c: extract from calls.c
	* modules/syscalls/calls.c (BOGOMIPS): call extern bogomips()
	* modules/syscalls/Makefile.in (bogomips.o): compile without
	$(CPPFLAGS) and $(CFLAGS) to avoid all optimizations
	(GENERATED): add bogomips.o
	* modules/syscalls/configure.in: do not check for clock,
	it is always present on all platforms
	* modules/syscalls/link.sh.in (NEW_FILES): add bogomips.o

2010-06-09  Sam Steingold  <sds@gnu.org>

	update gnulib
	* modules/regexp/gllib/regex_internal.c:
	* modules/regexp/gllib/regex_internal.h:
	* modules/syscalls/gllib/time.in.h:
	* modules/syscalls/glm4/time_h.m4:
	* build-aux/c++defs.h, build-aux/warn-on-use.h:
	* glm4/fcntl-o.m4, glm4/gnulib-comp.m4, glm4/iconv.m4:
	* glm4/langinfo_h.m4, glm4/lib-link.m4, glm4/stddef_h.m4:
	* glm4/stdint.m4, glm4/wchar_h.m4, glm4/wctype_h.m4: update
	* glm4/libunistring-base.m4: add
	* gllib/uniname.in.h: replaces gllib/uniname.h
	* gllib/unitypes.in.h: replaces gllib/unitypes.h
	* gllib/uniwidth.in.h: replaces gllib/uniwidth.h
	* makemake.in (UNICODE_EXTRA): remove these 3 files

2010-06-09  Sam Steingold  <sds@gnu.org>

	* makemake.in (bench): use base, not boot, for benchmarking
	because it includes syscalls with bogomips

2010-06-09  Sam Steingold  <sds@gnu.org>

	* makemake.in (MAKE): remove unused and unset variable
	(GNU_MAKE): fix setting and usage

2010-06-09  Sam Steingold  <sds@gnu.org>

	* lisparit.d (make_random_state): fix a warning on 32-bit
	platforms by conforming with the official rand_r() declaration

2010-06-09  Sam Steingold  <sds@gnu.org>

	fix bug#3013406: "make distrib" does not play well with dynamic modules
	* _distmakefile (CFLAGS): add @@EXPORT_DYNAMIC_FLAG_SPEC@@
	* makemake.in (distmakefile): substitute EXPORT_DYNAMIC_FLAG_SPEC
	(XCC_DLOPENABLE_EXE_FLAG): replace with EXPORT_DYNAMIC_FLAG_SPEC
	as in libtool.m4
	(XCC_LINKER_FLAG_PREFIX): remove
	(EXPORT_DYNAMIC_FLAG_SPEC): get from libtool

2010-06-04  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (%read-from-string): use gp_read_str
	instead of the obsolete readseq; use DEF-CALL-OUT instead of
	PARI-CALL-OUT to avoid shadowing the CL function
	(pari-reader): gp_read_str takes care of whitespace
	(resultant-vector): add (calls vecbezoutres)

2010-06-03  Sam Steingold  <sds@gnu.org>

	init the PARI internal data structures properly,
	enabling nice error messages to the screen
	* modules/pari/configure.in: do not check for killallfiles, freeall;
	check for pari_close
	* modules/pari/cpari.c (clispErrDie): revert to trivial error message
	(clisp_exception_handler): remove
	(init_for_clisp): pass INIT_DFTm to pari_init_opts; do not set
	GP_DATA (done by pari_init_opts) and default_exception_handler
	(fini_for_clisp): remove
	* modules/pari/pari.lisp (pari-fini): call pari_close(),
	also call pari_close() in :FINI

2010-06-03  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (require): fix the 2010-05-25 patch: do not lock
	*SYSTEM-PACKAGE-LIST* if "SYSTEM" is not locked, i.e., CLISP was
	started with "-d" and thus locking is not desired

2010-06-03  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (convert-to-pari): use symbols instead of
	numbers as the typecode argument in pari-cgetg invocations
	(convert-from-pari-vector): replaces convert-from-pari-VEC and
	convert-from-pari-COL
	(convert-from-pari): use it instead of them
	(convert-to-pari@vector): simplify
	(convert-from-pari-REAL): treat empty mantissa as 0 (no signed 0
	in CLISP)
	(convert-from-pari-SER): fix
	(pari-object): remove the spurious "nil" slot
	(pari-real-qf): fix definition (4 slots, not 3)

2010-06-02  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-typecode): export names
	(variable-order): add (call reorder)
	(euler): remove DEFINE-SYMBOL-MACRO
	(pari-real-precision): re-add function, setf, and symbol-macro
	(pari-real-precision-words): add a function on top of a variable
	(pari-call-out-prec): prec is specified in number of decimals

2010-06-01  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp: use DEFSTRUCT instead of DEFCLASS for
	CLISP representation of PARI objects for speed and i/o

2010-06-01  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (main-loop): exit if (RETURN-FROM MAIN-LOOP) fails
	* makemake.in (check-script): check that loading a broken file
	from -x with -repl does not hang CLISP

2010-06-01  Sam Steingold  <sds@gnu.org>

	Fix bug#3009966: Problems with wild-inferiors in DIRECTORY :FULL T
	* pathname.d (directory_search): respect :FULL T on recursive
	subdirectory search

2010-05-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (interrupt_thread): make sure interrupt will not be lost when
	interrupted thread is waiting on mutex or exemption
	* zthread.d (EXEMPTION-WAIT): store in thread struct associated mutex
	(xlock_lock_helper): when handling pending interrupts - lock internal
	mutex before entering "safe for gc/interrupt" region.

2010-05-28  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (getstack, gettime)
	(gisprime, gispseudoprime): fix declarations
	(make-internal-pari-object): return NIL when PTR is NULL
	(pari-reader): use MAKE-INTERNAL-PARI-OBJECT
	(pari-to-lisp@null): return NIL
	(primpart, primitive-part, maxprime): add declarations
	(make-initargs): do not upcase SYMBOL-NAME
	(convert-from-pari-10, convert-from-pari-11): use %COMPONENT
	(pari-get-integer-data, pari-set-integer-data): define using
	DEF-CALL-OUT and int_W because the order of words in the data
	segment of integers depend on whether PARI is build with gmp (low
	bytes first) or not (high bytes first); see
	<http://article.gmane.org/gmane.comp.mathematics.pari.user/1574>
	<http://pari.math.u-bordeaux.fr/archives/pari-users-1005/msg00008.html>
	(convert-to-pari@integer): use PARI-SET-INTEGER-DATA
	(convert-from-pari-1): use PARI-GET-INTEGER-DATA

2010-05-27  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-mantissa): do not call PARI-LENGTH-RAW,
	use PARI-LENGTH-BYTE to avoid allocating an extra FOREIGN-VARIABLE
	(PARIINFO): define
	(pari-version): also return PARIINFO
	(legendre-polynomial, tchebychev-polynomial, hilbert-matrix)
	(pascal-triangle, binomial-coefficient, set-random-seed)
	(get-random-seed, pari-random): fix definitions
	(pari-effective-length-raw, pari-mantissa-eff):
	restore using PARI-LENGTH-BYTE
	(convert-from-pari-1, convert-from-pari-10): use PARI-MANTISSA-EFF

2010-05-26  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp: update all names to v2 using <pariold.h>
	(pari-pi): remove DEFINE-SYMBOL-MACRO to avoid shadowing a foreign var
	(pari-sign-raw): fix for 64-bit negatives
	(convert-to-pari): NIL->NIL
	(VERYBIGINT, BIGINT): add
	(get-varno): use BIGINT instead of 256 to check validity
	(extract-mantissa): extract from CONVERT-TO-PARI (INTEGER & FLOAT)
	(convert-to-pari@integer&float): use it; use (BITSIZEOF 'ULONG)
	instead of a literal 32 which fixes bignum & (almost) float conversion

2010-05-26  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
	(OS::%SET-CLIPBOARD): behave according to setf logic: return
	the value given. Raise a lisp error on failure.
	Do not try to use unicode when it is not a unicode build.
	(OS:CLIPBOARD): The same unicode guarding ifdefs.
	Expect blocking behaviour of GetClipboardData.

2010-05-25  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-get-real-prec-raw)
	(pari-real-precision, pari-get-real-prec-digits): remove
	(pari-call-out-prec): use (EXT:LONG-FLOAT-DIGITS)
	instead of (PARI-GET-REAL-PREC-RAW) as the default PREC value

2010-05-25  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-byte): add
	(SIGNBITS, SIGNSHIFT, TYPBITS, TYPSHIFT, LGBITS, EXPOBITS)
	(HIGHEXPOBIT, VALPBITS, HIGHVALPBIT, PRECPBITS, PRECPSHIFT)
	(VARNBITS, VARNSHIFT, CLONEBIT): define using DEF-C-CONST
	(pari-sign-byte, pari-type-byte, pari-length-byte)
	(pari-exponent-byte, pari-valuation-byte, pari-precision-byte)
	(pari-varno-byte): define using PARI-BYTE
	(LGEFBITS): remove (gone from PARI)
	(pari-effective-length-byte, pari-effective-length-raw): remove
	(pari-mantissa-eff, pari-mant): remove
	(pari-mantissa, pari-set-component, pari-make-object):
	fix (use a single WITH-C-VAR, shift using (sizeof 'c-pointer))
	(convert-to-pari@integer, convert-to-pari@pari-poly):
	use PARI-LENGTH-BYTE instead of PARI-EFFECTIVE-LENGTH-BYTE
	(convert-from-pari-1, convert-from-pari-10):
	use PARI-MANTISSA instead of PARI-MANTISSA-EFF

2010-05-25  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-CONST): move checking whether we are
	writing to a C file from here to ...
	(note-c-const): ... here
	(c-const-value): when the constant is not defined, VALUE-P is 0, not NIL

2010-05-25  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (require): lock *SYSTEM-PACKAGE-LIST* after loading
	because we might have loaded a system package

2010-05-25  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (maximize-integer-type): add
	(DEF-C-CONST): use it so that we can accept any integer C type
	but only create two C functions: for long and ulong

2010-05-25  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (install): do not "make clisp-module-distrib" when
	moduledir==distribdir; useful for updating dynmod in the build directory

2010-05-25  Sam Steingold  <sds@gnu.org>

	* modules/pari/cpari.c (clisp_exception_handler): new function;
	saves errmessage[numerr] in global_err_data
	(clispErrDie): incorporate global_err_data in the error message
	(init_for_clisp): set default_exception_handler to
	clisp_exception_handler

2010-05-25  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (clispTemp): remove
	(extract0, extract1, pari-set-component, pari-make-object)
	(convert-from-pari-10, convert-from-pari-11):
	use WITH-C-VAR instead of TEMP
	(pari-mant): extract the common part of PARI-MANTISSA-EFF and
	PARI-MANTISSA and use WITH-C-VAR instead of TEMP
	(pari-mantissa-eff, pari-mantissa): use PARI-MANT
	(collect-mantissa): extract & use (ASH . 32) instead of (* . x100000000)
	(convert-from-pari-1, convert-from-pari-2): use it

2010-05-24  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (symmetric-matrix-perfection): fix declaration
	(MAXVARN): use DEF-C-CONST
	* modules/pari/cpari.c: include <pari/paripriv.h> for GP_DATA
	(init_for_clisp): init GP_DATA for #Z"" i/o

2010-05-24  Sam Steingold  <sds@gnu.org>

	* modules/pari/configure.in: do not check for init_opts
	(LIBS): append "-lm" (required for linking with LIBPARI)
	* modules/pari/cpari.c (init_for_clisp): do not use init_opts

2010-05-23  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (txn_status_check): add DEFCHECKER
	(TXN-CHECK): use it to output stat->st_txnarray->status symbolically
	* modules/berkeley-db/dbi.lisp (db-txn-active): status may be a keyword

2010-05-21  Sam Steingold  <sds@gnu.org>

	* modules/pari/Makefile.in (pari.o): pass -I. first thing to CC
	so that pari/config.h was included instead of the clisp config.h

2010-05-18  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp: sync with libpq-fe.h 1.147 (8.4)
	(PG_COPYRES_ATTRS,PG_COPYRES_TUPLES, PG_COPYRES_EVENTS)
	(PG_COPYRES_NOTICEHOOKS, PGresAttDesc, PQconninfoParse, PQinitOpenSSL)
	(PQcopyResult, PQsetResultAttrs, PQresultAlloc, PQsetvalue)
	(lo_import_with_oid): add
	* modules/postgresql/configure.in: check for the new functions

2010-05-18  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: support 4.8
	(DB_XIDDATASIZE): when undefined, use DB_GID_SIZE
	(BDB:DB-CREATE): do not accept :XA
	(BDB:DBC-DEL): accept :CONSUME
	(BDB:DBC-PUT): accept :OVERWRITE-DUP
	* modules/berkeley-db/configure.in:
	check for the new field names in DB_TXN_ACTIVE
	* modules/berkeley-db/dbi.lisp (db-txn-active): rename fields:
	`xid' to `gid' and `xa_status' to `status'
	use :DB-GID-SIZE instead of :DB-XIDDATASIZE

2010-05-18  Sam Steingold  <sds@gnu.org>

	* modules/pari/Makefile.in (ALL_CFLAGS): collect all CFLAGS et al
	variables here and add -I$(srcddir) for cpari.h
	(pari.o, cpari.o): use it instead of listing all variables explicitly

2010-05-18  Sam Steingold  <sds@gnu.org>

	update gnulib
	* build-aux/arg-nonnull.h, build-aux/c++defs.h, build-aux/warn-on-use.h:
	* gllib/langinfo.in.h, gllib/nl_langinfo.c, gllib/stddef.in.h:
	* glm4/fcntl-o.m4, glm4/langinfo_h.m4, glm4/nl_langinfo.m4:
	* glm4/stddef_h.m4, glm4/warn-on-use.m4, glm4/wchar_h.m4:
	* glm4/wctype_h.m4: add
	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/btowc.c:
	* modules/regexp/gllib/gettext.h, modules/regexp/gllib/regcomp.c:
	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/regexp/glm4/btowc.m4, modules/regexp/glm4/gnulib-common.m4:
	* modules/regexp/glm4/gnulib-comp.m4, modules/regexp/glm4/mbrtowc.m4:
	* modules/regexp/glm4/regex.m4, modules/regexp/glm4/stddef_h.m4:
	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
	* modules/regexp/glm4/wcrtomb.m4, modules/syscalls/gllib/Makefile.am:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/time_r.c:
	* modules/syscalls/gllib/unistd.in.h:
	* modules/syscalls/glm4/gnulib-common.m4:
	* modules/syscalls/glm4/gnulib-comp.m4:
	* modules/syscalls/glm4/stddef_h.m4:
	* modules/syscalls/glm4/strings_h.m4, modules/syscalls/glm4/strptime.m4:
	* modules/syscalls/glm4/sys_socket_h.m4:
	* modules/syscalls/glm4/sys_utsname_h.m4:
	* modules/syscalls/glm4/time_h.m4, modules/syscalls/glm4/time_r.m4:
	* modules/syscalls/glm4/unistd_h.m4:
	* modules/wildcard/glm4/gnulib-common.m4:
	* modules/wildcard/glm4/gnulib-comp.m4: update

2010-05-18  Sam Steingold  <sds@gnu.org>

	* genclisph.d: undef PACKAGE_URL together with the other PACKAGE_*

2010-05-18  Sam Steingold  <sds@gnu.org>

	Implement RFE#3001956: *PRINT-CLOSURE* now controls interpreted
	closure output too
	* io.d (STRUCTURE-READER): read #S(FUNCTION ...) as an Iclosure
	(pr_closure): when *PRINT-CLOSURE* is non-NIL, print Iclosure
	using #S(FUNCTION ...) syntax

2010-05-13  Sam Steingold  <sds@gnu.org>

	* pathname.d (direntry_to_string) [!ENABLE_UNICODE]: handle len==-1

2010-05-12  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (OS::%SET-CLIPBOARD): rename from
	SET-CLIPBOARD; use L() instead of `` for PRINC-TO-STRING
	(OS:CLIPBOARD): rename from GET-CLIPBOARD
	* modules/syscalls/posix.lisp (clipboard): add DEFSETF, export
	instead of SET-CLIPBOARD & GET-CLIPBOARD

2010-05-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
	(nlines_a, nlines_w, strzcpy12_a, strzcpy12_w, strzcpy21_a)
	(strzcpy21_w): new static utility functions.
	(SET-CLIPBOARD, GET-CLIPBOARD): new defuns to manage
	textual contents of Windows clipboard.
	* modules/syscalls/posix.lisp [win32 || cygwin]: export
	SET-CLIPBOARD, GET-CLIPBOARD.

2010-05-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (main_actions) [MULTITHREAD]: cleanup stack when main thread
	terminates

2010-05-07  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c (USER-INFO): skip entries with uid of
	-1 when returning a list.  These entries appearing in cygwin
	correspond to user records not synchronized with /etc/passwd.

2010-05-02  Vladimir Tzankov  <vtzankov@gmail.com>

	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: insert GC safe point
	in JMP instructions and discard mv_space for ones that invalidate it

2010-04-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GetSecurityInfoFunc_t)
	(LookupAccountSidFunc_t, GetLengthSidFunc_t, CopySidFunc_t)
	(EqualSidFunc_t, ConvertSidToStringSidFunc_t): add typedefs
	(initialize_sid_apis): use them instead of explicit types

2010-04-27  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Response to bug#2959335 (a feature request, actually)
	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
	(GET-USER-SID): new DEFUN. Returns security identifier (SID)
	of current user or of the user thar's name is specified.
	* modules/syscalls/posix.lisp (GET-USER-SID): exported.

2010-04-27  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
	(initialize_sid_apis): dynamic loading of SID API moved out
	of get_owner block and made available on cygwin.
	(get_owner): fixed potential bugs.
	Comments, cosmetics.

2010-04-22  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Finish and fix COM init patch.
	* win32aux.d (com_initialized): revoke the variable.
	(init_win32): do not init COM.
	(done_win32) [!MULTITHREAD]: unconditionally call
	CoUninitialize.
	* modules/syscalls/calls.c (BTCoCreateInstance): define
	static function for cygwin.

2010-04-21  Sam Steingold  <sds@gnu.org>

	* makemake.in: use "&&" instead of "if+then" for simplicity

2010-04-20  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language_from): accept NULL argument
	(init_language): simplify logic

2010-04-20  Sam Steingold  <sds@gnu.org>

	* stream.d (rd_ch_terminal3): use alloca instead of malloc to
	allocate the prompt

2010-04-20  Sam Steingold  <sds@gnu.org>

	COMPILER-DIAGNOSTICS:USE-HANDLER: COMPILE-FILE must notice the
	warnings signaled by EVAL-WHEN
	* compiler.lisp (c-warn): do not increase *WARNING-COUNT* here
	(c-style-warn): do not increase *STYLE-WARNING-COUNT* & *WARNING-COUNT*
	* condition.lisp (warn-of-type): increase *WARNING-COUNT* and
	*STYLE-WARNING-COUNT* here when they are bound
	* utils/clispload.lsp (*expected-failures*): remove COMPILE-FILE.2
	& COMPILE-FILE.2A

2010-04-19  Sam Steingold  <sds@gnu.org>

	* stream.d (make_terminal_stream_) [HAVE_TERMINAL3]: disable
	readline signal handling by setting "rl_catch_signals = 0"

2010-04-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix COM library initialization in MT version.
	* w32shell.c (BTCoCreateInstance): CoCreateInstance
	with call of CoInitialize if needed.
	(resolve_shell_shortcut): use it.
	* spvw.d (delete_thread) [WIN32_NATIVE]: call
	CoUninitialize on each thread exit.
	* win32aux.d (done_win32) [MULTITHREAD]: do not call CoUninitialize.
	* modules/syscalls/calls.c (BTCoCreateInstance) [WIN32_NATIVE]: declare
	(POSIX::MAKE-SHORTCUT, POSIX::SHORTCUT-INFO) [WIN32_NATIVE]:
	use BTCoCreateInstance instead of CoCreateInstance.

2010-04-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-recompile): remove the 2001-06-15
	*GENSYM-COUNTER* hack because we no longer have GENSYMs in FLETs

2010-04-16  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp: use RT:REM-TEST to disable CHAR-INT.2
	instead of redefining a function

2010-04-15  Sam Steingold  <sds@gnu.org>

	fix bug #2986052: mt/readline: terminal is left raw on crash
	* spvw.d (fini_lowest_level) [GNU_READLINE]: call
	rl_deprep_term_function to restore the terminal state
	(signal_handler_thread): call fini_lowest_level

2010-04-15  Vladimir Tzankov  <vtzankov@gmail.com>

	fix bug#2987732: mt: clisp hangs repeating sched_yield()
	* stream.d (begin_rl_callback, end_rl_callback): define and use instead
	of begin_callback() and end_callback() in readline callbacks

2010-04-15  Sam Steingold  <sds@gnu.org>

	* query.lisp (y-or-n-p, yes-or-no-p): call (FORCE-OUTPUT *QUERY-IO*)
	after every output to *QUERY-IO*

2010-04-14  Sam Steingold  <sds@gnu.org>

	* clhs.lisp: set package/impnotes documentation for package THREADS

2010-04-13  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (fill_terminating_signals_mask): add terminating signals to
	sigset_t mask
	(async_signal_mask): unblock terminating signals if the process is
	exiting due to such signal
	(signal_wait): ignore signals not set in the mask passed to sigwait()
	(signal_handler_thread) [UNIX_MACOSX]: do not ignore SIGHUP

2010-04-13  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix for a bug#1481218 with default drive directory:
	within CLISP default_directory_of() is used to fill missed
	pathname directory component in pathnames like C:lisp.exe.
	This functionality now added to real_path as well to
	support lisp invocation like 'C:\>e:lisp.exe -M e:lispinit.mem'.
	* w32shell.c (real_path): detect and handle default drive
	directory references. Optimization: less use of strlen.

2010-04-12  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_sigterm.d (quit_on_signal_in_progress): move to spvw.d
	* spvw.d (quit_on_signal_in_progress): define it here
	(async_signal_mask) [POSIX_THREADS]: do not add terminating signals if
	process was already signaled with one of them
	(signal_handler_thread): set proper exit code on terminating signal.
	print to stderr "Exiting on signal ...". fix erroneous message on
	terminating signal

2010-04-12  Sam Steingold  <sds@gnu.org>

	* spvw_sigterm.d (quit_on_signal_in_progress): always define
	* spvw.d (signal_handler_thread) [MULTITHREAD]: fix last patch:
	set quit_on_signal_in_progress when terminating

2010-04-11  Sam Steingold  <sds@gnu.org>

	fix bug#2795278: when quitting on signals, do not enter the debugger
	* lispbibl.d (quit_on_signal_in_progress): declare
	* error.d (signal_and_debug): quit if quit_on_signal_in_progress
	* debug.d (break_driver): ditto
	* spvw_sigterm.d (quit_on_signal_in_progress): make global

2010-04-02  Sam Steingold  <sds@gnu.org>

	* pathname.d (SAVEMEM): use nullp(.) instead of eq(NIL,.)
	* zthread.d (MAKE-MUTEX, MUTEX-LOCK): ditto

2010-03-30  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix for a bug#2813561 with cygwin symlinks:
	lack of discrimination between cygwin symlinks, used in build
	process and other Windows shortcuts.
	* w32shell.c (win_shortcut_hdr): lnk file header
	(cmp_shortcut_header, is_cygwin_symlink): new static functions
	(resolve_shell_shortcut): use is_cygwin_symlink

2010-03-29  Sam Steingold  <sds@gnu.org>

	* condition.lisp (prompt-for-new-value): terminate the prompt for
	the new value with (PROMPT-FINISH) instead of ": " to indicate that
	this is a regular prompt and the value will be evaluated
	* macros2.lisp (prompt-for-new-value-string): ditto
	Suggested by Pascal J. Bourguignon <pjb@informatimago.com>

2010-03-26  Sam Steingold  <sds@gnu.org>

	* condition.lisp (prompt-for-new-value): EVAL the value entered by
	the user

2010-03-25  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/configure.in: on ubuntu libsvm is managed by
	pkg-config which seems rather silly because there is no real
	connection between gnome and libsvm;
	we must support both pkg-config and non-pkg-config installations

2010-03-24  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp: remove DEFAULT-FOREIGN-LIBRARY

2010-03-24  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): require CL_PROG_LN_S
	* modules/berkeley-db/Makefile.in, modules/clx/new-clx/Makefile.in:
	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
	* modules/libsvm/Makefile.in, modules/oracle/Makefile.in:
	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in: use @LN@ and @LN_S@

2010-03-24  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/Makefile.in, modules/libsvm/link.sh: restore
	TO_PRELOAD, necessary because of DEF-CALL-IN in libsvm.lisp

2010-03-22  Sam Steingold  <sds@gnu.org>

	* modules/libsvm: remove the upstream sources; install locally and
	pass --with-libsvm-prefix to the top-level configure instead
	* Makefile.devel (MODULES): add libsvm

2010-03-22  Sam Steingold  <sds@gnu.org>

	* modules/libsvm: upgrade to upstream 2.90

2010-03-19  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM-VERSION): cache return value

2010-03-19  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): when OBJDEF-INIT is
	STRINGIFY(FOO), print it as "\"~S\"" to use the quoted CPP definition

2010-03-19  Sam Steingold  <sds@gnu.org>

	upgrade to pcre 8.01
	* modules/pcre/cpcre.c (fullinfo_bool): add
	(PCRE-CONFIG): also accept :MATCH-LIMIT-RECURSION :BSR
	(PCRE-COMPILE): also accept :DFA-SHORTEST :DFA-RESTART
	:FIRSTLINE :DUPNAMES :NEWLINE-CR :NEWLINE-LF :NEWLINE-CRLF :NEWLINE-ANY
	:NEWLINE-ANYCRLF :BSR-ANYCRLF :BSR-UNICODE :JAVASCRIPT-COMPAT
	:NO-START-OPTIMIZE :NO-START-OPTIMISE :PARTIAL-HARD :NOTEMPTY-ATSTART
	(PATTERN-INFO): also accept :OKPARTIAL :JCHANGED :HASCRORLF :MINLENGTH
	(PCRE-VERSION): also return PCRE_DATE

2010-03-19  Sam Steingold  <sds@gnu.org>

	* genclisph.d (print_file) [!HAVE_STDBOOL_H]: enable (see lispbibl.d)
	Reported by Raymond Toy <toy.raymond@gmail.com>

2010-03-18  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GET_PREFIX): add
	($(MAKEFILE_IN)): use it
	(gnulib-imported): remove macro-prefix from _GL_UNUSED which is
	defined in config.h using gnulib-common.m4:gl_COMMON_BODY and thus
	is not amenable to the macro-prefix strategy

2010-03-18  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_direction_compatible) [WIN32_NATIVE]:
	fix bug#2805778 ("0>/dev/null") by using
	GetNumberOfConsoleInputEvents for FILE_TYPE_CHAR
	and PeekNamedPipe for FILE_TYPE_PIPE

2010-03-17  Sam Steingold  <sds@gnu.org>

	* makemake.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in (gllib):
	do not pass build_aux= to make in subdir (revert the 2010-03-17
	patch because it does not look like gnulib will ever use $(build_aux))

2010-03-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (MODULE_AM): avoid not portable "fgrep -q"
	Reported by Christian Walther <cptsalek@gmail.com>

2010-03-17  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_DECOLONIZE): add
	(CL_CLISP): use it instead of inline code
	* configure.in: call CL_DECOLONIZE
	* makemake.in: use CLISP_DECOLONIZE on CLISP_LIBDIR & XCPPFLAGS

2010-03-17  Sam Steingold  <sds@gnu.org>

	* stream.d (find_open_file): add a cast to fix g++ compilation

2010-03-17  Sam Steingold  <sds@gnu.org>

	update gnulib
	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
	* modules/syscalls/glm4/sys_socket_h.m4:
	* modules/syscalls/glm4/sys_utsname_h.m4:
	* modules/syscalls/glm4/time_h.m4, modules/syscalls/glm4/unistd_h.m4:
	* build-aux/warn-on-use.h, gllib/langinfo.in.h, gllib/string.in.h:
	* gllib/sys_time.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
	* gllib/wctype.in.h, glm4/gnulib-comp.m4, glm4/langinfo_h.m4:
	* glm4/string_h.m4, glm4/sys_time_h.m4, glm4/unistd_h.m4: update
	* build-aux/c++defs.h: add
	* glm4/wchar_h.m4: rename from glm4/wchar.m4
	* glm4/wctype_h.m4: rename from glm4/wctype.m4

2010-03-17  Sam Steingold  <sds@gnu.org>

	* Makefile.devel ($(MAKEFILE_IN)): transform just generated
	Makefile.in to add gnulib prefix substitution to rules generating
	headers which come from build-aux

2010-03-16  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): when running on woe32, we must ensure
	that cl_cv_clisp_libdir contains no colons because this will
	confuse make ("multiple target patterns") when $(CLISP_LIBDIR)
	appears in the list of dependencies
	* makemake.in (gllib): ditto

2010-03-16  Sam Steingold  <sds@gnu.org>

	* makemake.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in (gllib):
	pass build_aux= to make in subdir

2010-03-04  Sam Steingold  <sds@gnu.org>

	* spvw.d (INVALID_ARG): also "return 1"
	(parse_options): simplified based on the above

2010-03-03  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (realloc_threads_symvalues): expand all threads symvalues
	tables and initialize new cells to SYMVALUE_EMPTY
	* spvw_global.d (add_per_thread_special_var): use it
	* spvw_memfile.d (loadmem_from_handle): ditto

2010-03-02  Sam Steingold  <sds@gnu.org>

	* pathname.d (CD): do not merge *DEFAULT-PATHNAME-DEFAULTS*
	because the merging breaks the advertised behavior: (CD) is
	actually equivalent to (CD *DEFAULT-PATHNAME-DEFAULTS*),
	and does not just return the current directory as advertised

2010-02-28  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_unlock_helper): signal lock's condition variable
	before unlocking internal mutex. fixes possible deadlock if signal is
	missed

2010-02-27  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (gar_col_normal) [MULTITHREAD]: mark active threads
	before weak pointers
	(SPLIT_REF_LISTS): remove 'condition' argument

2010-02-27  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_lock_helper): do not try to handle pending
	interrupts for signal processing thread (no clisp_thread_t for it)
	(win32_xcondition_wait): cleanup

2010-02-26  Sam Steingold  <sds@gnu.org>

	* configure.in: call gl_FCNTL_O_FLAGS, needed by the new localcharset.c

2010-02-26  Sam Steingold  <sds@gnu.org>

	Handle headers placed in build-aux by gnulib
	* m4/clisp.m4 (CL_CLISP): add AC_SUBST(CLISP_LIBDIR)
	* Makefile.devel ($(MAKEFILE_IN)): manually substitute
	CLISP_LIBDIR for $(top_srcdir)/src/build-aux et al
	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
	* modules/wildcard/Makefile.in: use CLISP_LIBDIR when passing
	CFLAGS to make in gllib
	* makemake.in ($(SUBDIRS)): pass CLISP_LIBDIR to MAKE;
	depend on build-aux
	(BUILD_AUX): add build-aux headers, found in Makefile.am's

2010-02-25  Sam Steingold  <sds@gnu.org>

	Ensure that (CLOSE s :ABORT T) never signals.
	* stream.d (ChannelStream_fini): accept abort argument and do not
	signal errors when it is true
	(close_ichannel): pass abort to ChannelStream_fini
	(close_ochannel): do not call oconv_unshift_output_unbuffered() if
	abort is true; pass abort to ChannelStream_fini
	(close_buffered): do not call oconv_unshift_output_buffered() and
	buffered_flush_everything(); pass abort to ChannelStream_fini
	(SET-STREAM-EXTERNAL-FORMAT): pass abort=0 to ChannelStream_fini
	(builtin_stream_close): do not call harden_elastic_newline if
	abort is true

2010-02-25  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_lend_handle): support sockets

2010-02-23  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_MODULES): add nl_langinfo, which is now
	required by regexp, so that i18n have it always available
	* modules/i18n/configure.in: call gl_FUNC_NL_LANGINFO
	* modules/i18n/gettext.c [!WIN32_NATIVE]:
	assume that nl_langinfo is always present

2010-02-23  Sam Steingold  <sds@gnu.org>

	update gnulib
	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/regcomp.c:
	* modules/regexp/gllib/regex_internal.c:
	* modules/regexp/gllib/regex_internal.h, modules/regexp/gllib/regexec.c:
	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/regexp/glm4/btowc.m4, modules/regexp/glm4/regex.m4:
	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
	* modules/syscalls/gllib/Makefile.am:
	* modules/syscalls/gllib/mktime.c, modules/syscalls/gllib/sockets.c:
	* modules/syscalls/gllib/strftime.c, modules/syscalls/gllib/strftime.h:
	* modules/syscalls/gllib/strings.in.h:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/sys_utsname.in.h:
	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
	* modules/syscalls/gllib/w32sock.h, modules/syscalls/glm4/strings_h.m4:
	* modules/syscalls/glm4/sys_socket_h.m4:
	* modules/syscalls/glm4/sys_utsname_h.m4:
	* modules/syscalls/glm4/unistd_h.m4:
	* modules/wildcard/gllib/Makefile.am:
	* modules/wildcard/gllib/fnmatch.in.h:
	* modules/wildcard/gllib/fnmatch_loop.c:
	* gllib/Makefile.am:
	* gllib/gettimeofday.c, gllib/localcharset.c, gllib/memcmp.c:
	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
	* gllib/wchar.in.h, gllib/wctype.in.h, glm4/extensions.m4:
	* glm4/gettimeofday.m4, glm4/iconv.m4, glm4/localcharset.m4:
	* glm4/string_h.m4, glm4/sys_time_h.m4, glm4/unistd_h.m4:
	* glm4/wchar.m4: update
	* modules/regexp/glm4/warn-on-use.m4:
	* modules/syscalls/gllib/mktime-internal.h:
	* modules/syscalls/glm4/warn-on-use.m4:
	* build-aux/arg-nonnull.h, build-aux/warn-on-use.h:
	* gllib/langinfo.in.h, gllib/nl_langinfo.c:
	* glm4/fcntl-o.m4, glm4/langinfo_h.m4, glm4/nl_langinfo.m4:
	* glm4/warn-on-use.m4: add

2010-02-23  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix interrupt safety and deferred interrupt handling
	* lispbibl.d (WITH_DEFERED_INTERRUPTS): executes body with deferred
	interrupts (after body finishes deferred interrupts are executed)
	(WITH_MUTEX_LOCK_HELP_): release lock only if it was really acquired
	(GC_SAFE_MUTEX_LOCK): set a flag if the lock has been acquired (before
	handling pending interrupts)
	(LISP_MUTEX_UNLOCK_HELP_): use WITH_DEFERED_INTERRUPTS
	(lock_threads, unlock_threads): remove
	(allthreads_lock): make it global
	* spvw.d (allthreads_lock): ditto
	(lock_threads, unlock_threads): remove
	(create_thread): initialize all per thread value cells as empty
	(delete_thread): lock allthreads_lock only if needed
	(tsd_slow_getspecific) [USE_CUSTOM_TLS=2, MACOSX]: return NULL if
	called from non-lisp thread (libsigsegv creates one)
	(signal_handler_thread): exit immediately if some thread has failed
	to be stopped (on terminating signals)
	* spvw_global.d (add_per_thread_special_var): use WITH_OS_MUTEX_LOCK.
	do not lock allthreads_lock (value cells are already initialized as
	empty)
	(clear_per_thread_symvalues): use WITH_OS_MUTEX_LOCK
	* spvw_typealloc.d (allocate_mutex): add newly allocated mutex to
	O(all_mutexes) - prevents memory xmutex_t memory leak in case later
	all_mutexes lock is not acquired (due to interrupt)
	(allocate_exemption): ditto
	* stream.d (get_open_files_lock, release_open_files_lock): remove
	(add_to_open_streams, remove_from_open_streams, find_open_file): use
	WITH_OS_MUTEX_LOCK
	* pathname.d (openp): ditto
	* record.d (FINALIZE): ditto
	* package.d (find_package, MAP-ALL-SYMBOLS): ditto
	* zthread.d (MAKE-THREAD, SYMBOL-VALUE-THREAD, SET-SYMBOL-VALUE-THREAD):
	ditto
	(LIST-THREADS): do not lock allthreads_lock, just copy O(all_threads)
	(MUTEX-OWNER): return second value - how many times the mutex is locked
	by the owner (for non-recursive mutexes this is at most 1)
	(allocate_mutex, allocate_exemption): do not add to O(all_mutexes) and
	O(all_exemption)
	* threads.lisp (WITH-MUTEX-LOCK): unlock the mutex only if it was really
	locked
	(WITH-DEFERRED-INTERRUPTS): fix it. handle nested case and execute
	interrupts only if allowed

2010-02-19  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (SET-SYMBOL-VALUE-THREAD): fix stack layout on
	unbound_variable error

2010-02-19  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (THREAD-JOIN): add :TIMEOUT argument (on timeout return
	values are: NIL; :TIMEOUT)
	* subr.d, subrkw.d: ditto

2010-02-18  Sam Steingold  <sds@gnu.org>

	* package.d (PACKAGE-ITERATE): remove unused variable
	(symbol_list_lookup, shadowing_delete): move selecting the
	comparison function (inverted or not) out of the loop

2010-02-17  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c: <linux/netlink.h> requires <asm/types.h>
	(check_socket_protocol): use "-" in NETLINK_*, like in all others
	* modules/rawsock/configure.in: check for <asm/types.h>

2010-02-17  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (AUTOCONF, AUTOHEADER): remove variables;
	to run autoconf/automake from a non-standard location one has to
	prepend it to PATH because aclocal calls autoconf directly

2010-02-17  Sam Steingold  <sds@gnu.org>

	* lisparit.d (make_random_state): use rand_r() when it is available
	because rand() is neither reentrant nor thread-safe
	* configure.in: check for rand_r()
	Reported by Tobias C. Rittweiler <tcr@freebits.de>

2010-02-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (thread_symbol_place): remove
	(SYMBOL-VALUE-THREAD): return (NIL THREAD-ACTIVE-P) if thread is not
	active. lock threads only when really needed
	(SET-SYMBOL-VALUE-THREAD): more specific errors.
	lock threads only when really needed

2010-02-16  Sam Steingold  <sds@gnu.org>

	* zthread.d (check_thread, check_mutex, check_exemption)
	(check_name_arg): fix subr_self usage (it is a Subr, not a symbol)

2010-02-15  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: make all threads joinable
	* constsym.d, subr.d, subrkw.d: remove :JOINABLE-P
	* spvw_typealloc.d (allocate_thread): allocate mutex and exemption used
	by THREAD-JOIN
	* zthread.d (thread-cleanup): signal waiters in THREAD-JOIN for thread
	completion
	(thread_stub): delegate all cleanup to thread_cleanup
	(MAKE-THREAD): revert last commit
	(THREAD-JOIN): all threads are joinable now
	* spvw.d (main_actions): set main thread return value when it is killed

2010-02-13  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: add THREAD-JOIN
	* lispbibl.d (struct Thread): add mutex, exemption, return values and
	flags to thread record
	(thread_killedp): predicate whether the thread has exited abnormally
	* spvw_typealloc.d (allocate_thread): initialize xth_values to unbound
	* constsym.d, subr.d, subrkw.d: add THREAD-JOIN and :JOINABLE-P to
	MAKE-THREAD keyword arguments
	* threads.lisp: export THREAD-JOIN
	(THROW-TAG): add second optional argument for catch result
	* zthread.d (MAKE-THREAD): accept :JOINABLE-P and allocate mutex and
	exemption for signaling thread exit
	(thread_stub): signal thread join exemption when the thread ends. set
	thread return values and thread exit status
	(THREAD-JOIN): implement. wait on exemption while thread return values
	are available
	(push_interrupt_arguments): pass :arguments (i.e. thread return values)
	to thread being killed
	(THREAD-ACTIVE-P): update condition for inactive thread
	* io.d (pr_orecord): ditto

2010-02-11  Sam Steingold  <sds@gnu.org>

	* condition.lisp (c-warning): do not concat (C-CURRENT-LOCATION)
	to the FORMAT-STRING because the former may contain "~"
	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>

2010-02-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (build-aux): when LN_S is "cp", use "cp -r"

2010-02-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (full) [with_dynamic_modules]: remove dynmod
	(install-bin) [with_dynamic_modules]: handle empty dynmod properly
	(distrib) [with_dynamic_modules]: ditto
	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>

2010-01-31  Sam Steingold  <sds@gnu.org>

	* lambdalist.lisp (check-item): quote PERMISSIBLE here, update callers
	(process-required, push3, process-optional, err-no-default)
	(process-allow-other-keys, process-keywords): new local macros

2010-01-29  Sam Steingold  <sds@gnu.org>

	* lambdalist.lisp (dolist, check-exhausted, symbol-or-pair-p)
	(singleton-symbol-p, err-missing, last-parameter): new local macros

2010-01-28  Sam Steingold  <sds@gnu.org>

	better error reporting in lambda list processing
	* lambdalist.lisp (lambda-list-error): new function,
	calls ERROR-OF-TYPE EXT:SOURCE-PROGRAM-ERROR
	(err-misplaced, err-invalid, skip-L, analyze-lambdalist)
	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist)
	(analyze-modify-macro-lambdalist)
	(analyze-method-combination-lambdalist):
	errfunc accepts FORM in addition to DETAIL
	* compiler.lisp (c-analyze-lambdalist): ditto
	* clos-method2.lisp (decompose-specialized-lambda-list): ditto
	* clos-genfun2b.lisp (check-gf-lambdalist+argorder): ditto
	* clos-methcomb2.lisp (define-method-combination): ditto + use
	SYS::LAMBDA-LIST-ERROR
	* clos-method1.lisp (initialize-instance-<standard-method>): ditto
	(program-error-reporter, analyze-method-description): ditto
	* clos-method3.lisp (method-signature): ditto
	* defstruct.lisp (ds-make-boa-constructor): ditto
	* places.lisp (defsetf, define-modify-macro): ditto
	* clos-genfun3.lisp (analyze-defgeneric-lambdalist): ditto
	* clos-genfun4.lisp (generic-function-signature): ditto
	* clos-methcomb2.lisp (check-em-arguments-option)
	(build-effective-method-function-form): ditto

2010-01-28  Sam Steingold  <sds@gnu.org>

	fix bug#2941408: segfault after giving invalid replacement value
	* error.d (check_symbol_special): do not break out of the loop early

2010-01-28  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (roughly_SP) [USE_CUSTOM_TLS >=2]: simplify the CPP logic
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2010-01-27  Ivan Shvedunov  <ivan4th@gmail.com>

	* lispbibl.d (dfloat) [ARM]: do NOT swap hi/lo when __ARM_EABI__
	is defined (fixes READ-FLOAT/WRITE-FLOAT on Maemo Fremantle)

2010-01-26  Sam Steingold  <sds@gnu.org>

	* pathname.d (EXECUTE): do not resolve links in the file argument
	because some programs dispatch on argv[0], which could be a
	symbolic link. E.g., in Maemo Fremantle OS used in Nokia N900 phone,
	/bin/sh is a symlink to busybox, so RUN-PROGRAM which calls SHELL
	which calls EXECUTE fails because EXECUTE calls "busybox -c"
	instead of "/bin/sh -c".
	Reported by Ivan Shvedunov <ivan4th@gmail.com>
	in <http://article.gmane.org/gmane.lisp.clisp.devel/21219>

2010-01-06  Sam Steingold  <sds@gnu.org>

	upgrade from readline 6.0 to 6.1
	* modules/readline/readline.lisp (state-redisplaying): add

2009-12-30  Sam Steingold  <sds@gnu.org>

	eliminate yet another static: allocaing_room_pointer
	* lispbibl.d (converter_malloc_t, convert_to_foreign): accept
	"void** state" argument
	* foreign.d (convert_to_foreign): ditto, pass it to converter_malloc
	(allocaing_room_pointer): remove
	(allocaing): accept address of allocaing_room_pointer
	(mallocing, nomalloc): accept and ignore the state argument
	(SET-FOREIGN-VALUE, WRITE-MEMORY-AS, FOREIGN-ALLOCATE. callback):
	pass NULL as state to convert_to_foreign
	(EXEC-ON-STACK, FOREIGN-CALL-OUT): declare and pass
	allocaing_room_pointer to convert_to_foreign

2009-12-29  Sam Steingold  <sds@gnu.org>

	* io.d (token_escape_flag): remove global static variable, which
	appears to be messing up "make check-tests-parallel"
	(read_token, read_token_1, test_number_syntax, radix_2): accept
	token_escape_flag argument instead of using the global static
	(read_internal, CHAR-READER, radix_1, RADIX-READER, UNINTERNED-READER)
	(BIT-VECTOR-READER): allocate token_escape_flag on the stack here

2009-12-27  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD, SPVW_BLOCKS]: reuse heap holes for allocations
	* spvw_heap.d (struct heap_hole): strut at the beginning of heap hole
	describing it
	(struct Heap): add heap holes list
	(MIN_HOLE_SIZE_FOR_REUSE): minimum heap hole to consider for reuse
	* spvw_global.d (init_heaps_mt): was init_heap_locks. initialize heap
	holes list
	* spvw.d (main): use it
	* spvw_allocate.d (allocate_in_heap_hole): allocates varobject in heap
	hole (if any of required size is available)
	(allocate_true): try first to allocate in heap hole (if any)
	* spvw_garcol.d (fill_varobject_heap_holes): initialize heap holes list
	(split_gen0_on_holes) [GENERATIONAL_GC]: split generation 0 if there is
	a large hole at its end
	(gar_col_normal): clear heap holes before performing GC. may be split
	generation 0 if there is large hole at its end. take into account
	heap holes when computing used space
	* spvw_space.d (heap_holes_space): calculates space occupied by holes
	for reuse in given heap
	(used_space): take into account heap holes when computing used space

2009-12-10  Sam Steingold  <sds@gnu.org>

	when compiling REQUIRE, if the module is not found (e.g., it is a
	dynamic module), call REQUIRE right away, at compile time.
	* defs1.lisp (augment-load-path, load-path-augmentations)
	(with-augmented-load-path): extracted from require
	(require): use with-augmented-load-path
	* compiler.lisp (load-or-compile): extracted from c-REQUIRE
	(c-REQUIRE): use load-or-compile

2009-12-08  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c: include <linux/netlink.h> when present
	(check_socket_protocol): add NETLINK_*
	* modules/rawsock/configure.in: check for <linux/netlink.h>

2009-12-02  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/demos/sniffer.lisp: add a demo
	* modules/rawsock/Makefile.in (clisp-module-distrib): install it

2009-12-02  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (get_socket_protocol)
	[HAVE_GETPROTOBYNAME]: fix argument order in the error message

2009-12-01  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c (unused):
	define depending on __GNUC__, not GNU

2009-12-01  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (configdev): use strncpy/IFNAMSIZ
	instead of strcpy for copying the interface name

2009-11-29  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): use "." instead of "source" (bash-specific)

2009-11-25  Sam Steingold  <sds@gnu.org>

	* pathname.d (RENAME-FILE): fix the error_too_many_args invocation
	for the ANSI case

2009-11-25  Sam Steingold  <sds@gnu.org>

	fix bug#2902716: CLEAR-INPUT should clear the EOF condition
	* stream.d (clear_input_unbuffered): reset status and
	strm_rd_ch_last slots on all streams, not just tty
	(clear_input_buffered): add, clear the have_eof_p slot
	(clear_input): call clear_input_buffered

2009-11-21  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (dynload_modules): guard libopen() with
	begin_blocking_system_call()
	* foreign.d (open_library): ditto
	* pathname.d (DYNLOAD-MODULES): store libpath on the C stack before
	calling dynload_modules
	* lispbibl.d (dynload_modules): maygc

2009-11-19  Sam Steingold  <sds@gnu.org>

	* eval.d (interpret_bytecode_): use error_mv_toomany
	* control.d (error_mv_toomany): use the message from eval.d

2009-11-19  Sam Steingold  <sds@gnu.org>

	RENAME-FILE accepts :IF-EXISTS (unless *ANSI* is T)
	* pathname.d (move_file) [WIN32_NATIVE]: atomic rename when
	available using MoveFileEx (available since windows 2000)
	(rename_existing_file): use it
	(rename_existing_path): add, use it in rename_file & RENAME-DIRECTORY
	(rename_file): accept if_exists
	(RENAME-FILE): accept :IF-EXISTS unless *ANSI* is T
	* subr.d, subrkw.d (rename_file): modify the declaration
	* modules/syscalls/calls.c (copy_one_file):
	pass :IF-EXISTS to RENAME-FILE

2009-11-19  Sam Steingold  <sds@gnu.org>

	* eval.d (funcall_iclosure): use error_too_few_args
	(interpret_bytecode_): use error_too_many_args
	* control.d (MULTIPLE-VALUE-CALL, APPLYHOOK): ditto

2009-11-19  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp (check-lisp-defs): check for LISPFUNs with
	keywords not mentioned in subrkw.d

2009-11-15  Sam Steingold  <sds@gnu.org>

	* makemake.in: dynamic modules do not work with C++ because of
	symbol mangling, so with_dynamic_modules defaults to !CC_CPLUSPLUS;
	and fail if --with-dynamic-modules is specified with a C++ compiler

2009-11-13  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (intern): perform additional symbol lookup after CERROR
	when package is locked - the symbol may have been interned while
	processing handlers (or by CERROR itself)

2009-11-12  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (unused): do not export to clisp.h, it is never used
	in any module and causes trouble on some platforms
	* modules/berkeley-db/bdb.c, modules/dirkey/dirkey.c:
	* modules/gtk2/gtk.lisp, modules/syscalls/calls.c:
	no need to "#under unused" anymore
	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
	define unused which is actually used here a few times,
	but only _after_ all #include's

2009-11-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (unused): undef unused before all the
	system includes and do not restore it because it is not used here

2009-11-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (cpu): fallback to ${host_cpu}
	(fail): add function, use everywhere

2009-11-10  Sam Steingold  <sds@gnu.org>

	* configure (ffi_modules): fix the configure.in test for module
	requiring FFI

2009-11-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib): use FULLTOPDIR for build-aux

2009-11-05  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (note-function-used): use STYLE-WARNING for
	deprecated functions because WARNING implies non-NIL 3rd return
	value (failure-p) from COMPILE which is an overkill
	* deprecated.lisp (type-expand-1): ditto

2009-11-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (initialize_thread_bindings): allocate per thread value
	cell for symbols that do not have one

2009-11-04  Sam Steingold  <sds@gnu.org>

	* eval.d (interpret_bytecode_): fix a type error in the last patch

2009-11-03  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: create dynamic bindings for all special variables
	* zthread.d (initialize_thread_bindings): initializes symbols per
	thread value cells during thread creation
	(thread_stub): use it
	(MAKE-THREAD): check that :initial-bindings is proper list
	* lispbibl.d (initialize_thread_bindings): declare as global
	* spvw.d (mt_main_actions): use it
	* control.d (make_variable_frame): allocate per thread value cells
	for locally declared special variables (if needed)
	* eval.d (progv, cod_bind): ditto
	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): initialize per thread
	bindings with global symbol values

2009-11-01  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-cerror): extract predefun from ...
	(c-error): use it; accept DETAIL as the 1st argument
	(test-list, c-form, test-argument-syntax, c-illegal-syntax)
	(c-analyze-lambdalist, bind-fixed-var-1, bind-movable-var)
	(bind-movable-var, c-DECLARE, c-SETQ, c-PSETQ)
	(c-MULTIPLE-VALUE-SETQ, c-MULTIPLE-VALUE-BIND, check-blockname)
	(c-RETURN-FROM, c-TAGBODY, c-GO, c-FUNCTION, err-syntax)
	(c-SYMBOL-MACROLET, c-EVAL-WHEN, c-COND, c-CASE, c-FUNCALL-INLINE):
	pass DETAIL to C-ERROR
	* condition.lisp (c-cerror): defun here: signal source-program-error

2009-11-01  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-current-location): when returning a non-empty
	value, terminate it with ": "
	(c-warning, c-error): C-CURRENT-LOCATION is either empty or is
	terminated by ": ", so adjust its use
	* condition.lisp (c-warning): ditto; also bind *ERROR-OUTPUT* to
	*C-ERROR-OUTPUT*, never to *C-LISTING-OUTPUT* which may be NIL,
	because *COMPILE-VERBOSE* does not affect condition handling

2009-11-01  Sam Steingold  <sds@gnu.org>

	* error.d (begin_error): ensure *ERROR-OUTPUT* is valid first thing

2009-10-31  Sam Steingold  <sds@gnu.org>

	* makemake.in (fsstnd): infer based on TSYSOS instead of HSYSOS
	and actively discriminate between linuxes and bsds

2009-10-31  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: acquire package mutex lock before calling use_package
	* package.d (unuse_package): package mutex should be locked by caller
	(UNUSE-PACKAGE, USE-PACKAGE, %IN-PACKAGE): lock the package

2009-10-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (gc_sweep1_varobject_page): fix the build when
	HAVE_SMALL_SSTRING is not defined

2009-10-29  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (ignore-check, value-form-index): revert last patch:
	3.2.5 prescribes style-warning here, the writeup is not normative

2009-10-29  Sam Steingold  <sds@gnu.org>

	* stream.d (fresh_line_low): replaces elastic_newline_pending_p
	(fresh_line): use it for all legwork so that fresh-line is called
	individually on each constituent stream of a BROADCAST-STREAM instead
	of broadcasting a newline to all streams when only one needs it

2009-10-29  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_set, handle_isset): use nullp(.) instead of eq(NIL,.)

2009-10-29  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix GC safety issue in SOCKET-STATUS
	* stream.d (parse_sock_list): do not return pointer in heap, rather
	return the cons whose cdr should be filled with socket status
	(handle_set, handle_isset): use new return from parse_sock_list and
	preserve it across maygc calls

2009-10-28  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (date-string): fix the original bug: the date was
	printed to the stdout instead of being returned as a string

2009-10-28  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (ignore-check, value-form-index): make style-warning
	"used despite IGNORE declaration" a regular warning as per
	COMPILER-DIAGNOSTICS:USE-HANDLER

2009-10-28  Sam Steingold  <sds@gnu.org>

	Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER:
	use the CL Condition system for compiler diagnostics.
	* compiler.lisp (c-current-location): add
	(c-warning): add predefun, uses c-comment
	(c-warn): use it
	(c-style-warn): use it instead of c-warn
	* condition.lisp (simple-style-warning): add
	(c-warning): define

2009-10-28  Sam Steingold  <sds@gnu.org>

	remove the "COMPILER" nickname from #<PACKAGE SYSTEM>
	* package.d (init_packages): do not add "COMPILER" nickname to SYS
	* clos-class5.lisp, clos-genfun3.lisp, clos-package.lisp:
	* clos-slots2.lisp, compiler.lisp, defs2.lisp, deprecated.lisp:
	* disassem.lisp, foreign1.lisp, init.lisp, loadform.lisp:
	* macros1.lisp, places.lisp, trace.lisp: use SYS instead of COMPILER

2009-10-26  Sam Steingold  <sds@gnu.org>

	fix (describe 'linux:wait)
	* foreign.d (PARSE-FOREIGN-INTTYPE): implement
	* constsym.d, subr.d (parse_foreign_inttype): declare
	* foreign1.lisp (parse-c-type): use it for internal int types
	(deparse-c-type): handle internal int types

2009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* time.d (seconds_west) [MULTITHREAD]: use reentrant functions for
	getting time (localtime_r, gmtime_r)

2009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>

	[WIN32_THREADS]: use thread safe C run-time (CRT)
	* xthread.d (xthread_create): use _beginthreadex() for thread creation.
	close returned handle immediately in order to prevent leaks
	(xthread_exit): use _endthreadex() - releases per thread allocated
	resources
	(THREADPROC_SIGNATURE): add. specify correct calling convention and
	return type of start thread procedure
	* spvw.d (mt_main_actions): use THREADPROC_SIGNATURE
	* zthread.d (thread_stub): ditto

2009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* control.d (make_variable_frame) [MULTITHREAD]: do not allocate per
	thread value cells for locally declared special variables
	* eval.d (interpret_bytecode_) [MULTITHREAD]: ditto for cod_bind -
	the code here was plain wrong

2009-10-21  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: handle SIGWINCH signal
	* spvw_sigwinch.d (update_linelength): update SYS::*PRIN-LINELENGTH*
	global value
	* spvw.d (main): set SYS::*PRIN-LINELENGTH* in MT builds
	(signal_handler_thread): handle SIGWINCH

2009-10-21  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_fault.d (LOCK_PAGE_CACHE, UNLOCK_PAGE_CACHE): acquire/release
	spinlock guarding physical page cache
	(handle_fault, handle_fault_range): use them

2009-10-20  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (jmpl_value) [MULTITHREAD]: make it per thread and export
	to modules
	* spvw.d: do not define jmpl_value in MT builds

2009-10-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): fix the non-UNICODE build
	Reported by Angel Popov <angelpopov@yahoo.com>

2009-10-16  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): use m4_esyscmd instead of esyscmd

2009-10-15  Sam Steingold  <sds@gnu.org>

	* built.d (built_flags) [DYNAMIC_FFI]: add libffcall version based
	on LIBFFCALL_VERSION

2009-10-15  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d [MULTITHREAD]: allow USE_CUSTOM_TLS=2 on 64bit builds.
	gcc on osx 10.6+ still does not support __thread qualifier

2009-10-14  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_direction_compatible): NtQueryInformationFile
	is for FILE_TYPE_DISK only, for FILE_TYPE_CHAR, FILE_TYPE_PIPE,
	FILE_TYPE_REMOTE assume compatibility

2009-10-12  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_pathname): extract from handle_to_stream and
	implement for WIN32_NATIVE
	(handle_to_stream): use it

2009-10-12  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_direction_compatible): implement for
	WIN32_NATIVE using NtQueryInformationFile (fixes check-script)

2009-10-09  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: simplify alternative TLS on 32 bit builds
	* lispbibl.d (struct thread_specific_data): use spinlock instead of
	mutex and export it
	* spvw.d (tsd_initialize, tsd_setspecific, tsd_remove_specific): ditto
	(tsd_slow_getspecific): lock (with spinlock) hash table modifications.
	prevents races with tsd_remove_specific. contention is unlikely
	(get_stack_region): implement for WIN32_THREADS. stack range returned
	is [*base ... (*base + *size)] regardless SP_DOWN/UP
	(current_stack_base, current_stack_size): remove
	(set_current_thread): use get_stack_region()
	(main) [USE_CUSTOM_TLS=3]: clear all thread mappings before spawning
	"main thread"

2009-10-09  Sam Steingold  <sds@gnu.org>

	* .gdbinit (run_mod_test): add
	(run_ansi_tests): rename from ansi_tests
	(run_ansi_tests_compiled): renamed from ansi_tests_compiled

2009-10-08  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (STACK, back_trace): do not write the declaration
	into clisp.h if the symbol is defined as a CPP macro

2009-10-08  Sam Steingold  <sds@gnu.org>

	* win32aux.d (CHECK_ERROR_IGNORE_INVALID): add
	(fd_read_wont_hang_p): use it to ignore both
	ERROR_INVALID_FUNCTION and ERROR_INVALID_HANDLE in
	GetNumberOfConsoleInputEvents and ClearCommError

2009-10-08  Sam Steingold  <sds@gnu.org>

	* makemake.in (full-mod-check): use base, not full, and require
	the module from the test files

2009-10-08  Sam Steingold  <sds@gnu.org>

	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/stddef.in.h:
	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/regexp/glm4/unistd_h.m4, modules/syscalls/gllib/Makefile.am:
	* modules/syscalls/gllib/errno.in.h, modules/syscalls/gllib/stddef.in.h:
	* modules/syscalls/gllib/strings.in.h, modules/syscalls/gllib/uname.c:
	* modules/syscalls/gllib/sys_socket.in.h, gllib/wchar.in.h:
	* modules/syscalls/gllib/sys_utsname.in.h, gllib/wctype.in.h:
	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
	* modules/syscalls/glm4/unistd_h.m4
	* gllib/Makefile.am, gllib/alloca.in.h, gllib/stdbool.in.h:
	* gllib/stddef.in.h, gllib/stdint.in.h, gllib/streq.h:
	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
	update from gnulib, using the gnulib-tool hack

2009-10-08  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): since Bruno refuses to apply
	my gnulib-tool patch, we have to patch gnulib-tool before importing
	* gnulib-tool.patch: add gnulib-tool hack to support multiple
	gllib directories: headers are generated for each gllib
	differently, depending on which features are actually used, so we
	need to be able to include all these generated headers without
	fear that one will shadow another, so we prepend the macro-prefix
	before the guard macros

2009-10-08  Sam Steingold  <sds@gnu.org>

	support DYNAMIC_MODULES on woe32 (native & cygwin) using dll def file
	* array.d, charstrg.d, control.d, encoding.d, error.d, errunix.d:
	* errwin32.d, eval.d, flo_konv.d, foreign.d, hashtabl.d, intelem.d:
	* intlog.d, intplus.d, intserial.d, lisparit.d, list.d, misc.d:
	* package.d, pathname.d, predtype.d, sequence.d, socket.d, spvw.d:
	* spvw_allocate.d, spvw_debug.d, spvw_fault.d, spvw_global.d:
	* spvw_language.d, spvw_module.d, spvw_sigcld.d, spvw_sigpipe.d:
	* spvw_typealloc.d, spvwtabf.d, spvwtabo.d, spvwtabs.d, stream.d:
	* symbol.d, time.d, unixaux.d, win32aux.d:
	mark objects exported to modules with modexp instead of global
	* clisp-link.in (prepare_dynamic_module): add @CLISP_DEF@ to libs
	* genclisph.d (emit_dll_def, exportV, exportF, exportE): add;
	accept the second command line argument: the dll def file name
	* lispbibl.d (DYNAMIC_TABLES, modexp, modimp): define;
	use modimp to declare objects exported to modules instead of
	extern (use exportV, exportF and exportE for that) and output then
	into the dll def file using emit_dll_def
	* makemake.in (CLISP_DEF) [with_dynamic_modules]: define to
	"lisp.def" on woe32 (both native and cygwin) and add it to FILES;
	generated it together with clisp.h
	(makevars): add it to LIBS
	(clisp-link): substitute it
	(clean1): remove it
	* modules.c: when DYNAMIC_TABLES is defined, i.e., on
	woe32+dynamic modules, we cannot use, e.g., &subr_tab_data to init
	the modules list, so init to NULL and leave the actual
	initialization to...
	* spvw_module.d (init_modules_0) [DYNAMIC_TABLES]: init
	main_module.stab and main_module.otab
	Thanks to Daniel Leidert <daniel.leidert@gmx.net> for much enlightening!

2009-10-08  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): add -I${HEREP} to CPPFLAGS for
	localcharset.h et al

2009-10-08  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix USE_CUSTOM_TLS=2 build
	* lispbibl.d (struct thread_specific_data): export properly
	* spvw.d (tsd_remove_specific): clear cache for removed entry
	(tsd_slow_getspecific): simplify
	(delete_thread): cleanup thread thread specific entry

2009-10-07  Sam Steingold  <sds@gnu.org>

	try to produce meaningful error messages on platforms without dlerror
	http://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/e720d92269df1398/b2381f02f3bfc8a3
	* spvw.d (error_dlerror) [DYNAMIC_MODULES]: accept an object
	instead of an ASCII string as the last argument
	(dlerror_message): produce object error message using dlerror() or
	FormatMessage
	(get_module_symbol, dynload_modules): use dlerror_message instead
	of dlerror in the error_dlerror call
	* constobj.d (unknown_error, oomst_error) [DYNAMIC_MODULES]: add

2009-10-07  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (rehash_symtab): do not use dotimespC but do/while.
	simplifies the code and enables stepping in gdb

2009-10-05  Sam Steingold  <sds@gnu.org>

	* clisp-link.in: similar to the 2009-10-01 m4/clisp.m4 patch,
	redirect stderr of 'clisp --version' to /dev/null

2009-10-02  Bruno Haible  <bruno@clisp.org>

	Use -DENABLE_UNICODE instead of -DUNICODE.
	* makemake.in (XCFLAGS): Use -DENABLE_UNICODE instead of -DUNICODE.
	* *.d: Test ENABLE_UNICODE instead of UNICODE.
	* modules/clx/new-clx/clx.f: Likewise.
	* win32.d (UNICODE_SAVED): Remove macro.
	* _clisp.c (UNICODE): Remove undef.
	* modules/berkeley-db/bdb.c (UNICODE): Likewise.
	* modules/dirkey/dirkey.c (UNICODE): Likewise.
	* modules/i18n/gettext.c (UNICODE): Likewise.
	* modules/rawsock/rawsock.c (UNICODE): Likewise.
	* modules/syscalls/calls.c (UNICODE): Likewise.

2009-10-01  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_subr_tab_1): Correct error message.
	Reported by Sam Steingold.

2009-10-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (SYSLIBS): remove obsolete unused win32-specific code

2009-10-01  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): remove an unnecessary subshell;
	redirect 'clisp --version' stderr to /dev/null because 'head -n 1'
	closes its input and clisp errors out with "[stream.d:5473] *** -
	Win32 error 232 (ERROR_NO_DATA): The pipe is being closed."

2009-10-01  Sam Steingold  <sds@gnu.org>

	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/unistd_h.m4:
	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/unistd_h.m4:
	* gllib/unistd.in.h, glm4/unistd_h.m4: update from gnulib

2009-09-29  Sam Steingold  <sds@gnu.org>

	* configure.in: call AC_SUBST(LIBTOOL_DEPS)
	* makemake.in (libtool): regenerate from LIBTOOL_DEPS

2009-09-30  Sam Steingold  <sds@gnu.org>

	* win32aux.d (fd_read_wont_hang_p): support serial communication
	devices using ClearCommError
	Reported by Angel Popov <angelpopov@yahoo.com>

2009-09-30  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: do not lock packages while iterating over them
	* constsym.d, subr.d (package_iterate_cleanup): remove
	* defs1.lisp (with-package-iterator): roll back changes from 2009-08-28
	(package-iterator-function): ditto
	* package.d: remove extra (LOCKED) field from Package Iterator State
	(PACKAGE-ITERATE): do not lock current package
	(PACKAGE-ITERATE-CLEANUP): remove
	(MAP-SYMBOLS, MAP-EXTERNAL-SYMBOLS): do not lock packages. symtabs have
	"copy-on-rehash" semantics and insertion/deletion is segfaul safe
	(MAP-ALL-SYMBOLS): do not lock individual packages. make a copy of all
	packages list and iterate over it
	* constobj.d (version): revert to old ABI
	* loop.lisp (expand-loop): do not use WRAP-UNWIND-PROTECT when iterating
	over packages

2009-09-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (symbol_value_b): fix MT g++ build

2009-09-29  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out_level): extract from nobject_out

2009-09-27  Sam Steingold  <sds@gnu.org>

	fix bug#2868147: declaim signals an error on an invalid declaration
	* compiler.lisp (parse-optimize-quality): can be called by DECLAIM,
	so call c-WARN or WARN depending on *COMPILING*

2009-09-27  Bruno Haible  <bruno@clisp.org>

	* m4/connect.m4 (CL_CONNECT): Terminate the expansion with a newline.

2009-09-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix thread safety issue in printer
	* lispbibl.d (Symbol_thread_binding): returns symbol binding in current
	thread (if any)
	* io.d (pr_external_1, BIND_UNLESS): use it

2009-09-26  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (intern) [MULTITHREAD]: search for symbol before locking
	package (it is faster)

2009-09-25  Aleksej Saushev  <asau@inbox.ru>

	* makemake.in (BUILD_AUX): do not link_dep if building in src to
	avoid cyclic dependency

2009-09-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (HERE): set to "./" on all platforms: it seems to be
	needed on mingw and should not be able to hurt anyway

2009-09-25  Sam Steingold  <sds@gnu.org>

	fix bug#2868166: Do not eliminate function calls which are
	advertised to have exceptional situation in unsafe code.
	* lispbibl.d (seclass_t): add seclass_rd_sig: same as read,
	but is also advertised to have "Exceptional situations" in unsafe code
	(seclass_object): handle it
	* constobj.d (seclass_rd_sig): add
	* control.d (FDEFINITION): seclass_rd_sig
	* io.d (GET-DISPATCH-MACRO-CHARACTER, PARSE-INTEGER): seclass_rd_sig
	* pathname.d (PARSE-NAMESTRING, LOGICAL-PATHNAME, WILD-PATHNAME-P)
	(PATHNAME-MATCH-P, TRUENAME, PROBE-FILE, PROBE-DIRECTORY, DIRECTORY):
	(FILE-WRITE-DATE, FILE-AUTHOR): seclass_rd_sig
	* predtype.d (COERCE): seclass_rd_sig
	* sequence.d (CONCATENATE): seclass_rd_sig
	* subr.d: update all of the above
	Reported by "Tobias C. Rittweiler" <tcr@freebits.de>

2009-09-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (intern): fix possible races in MT builds. guard both -
	symtab lookup and insert with package mutex. it was possible to have
	different interned symbols with same print name

2009-09-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (lisp${SHREXT}): only define on with_dynamic_modules
	& woe32 (and cygwin) and add $(LIBS) to libs; depend on ${GLLIB_A}

2009-09-22  Sam Steingold  <sds@gnu.org>

	* modules/regexp/gllib/unistd.in.h, modules/syscalls/gllib/unistd.in.h:
	* gllib/unistd.in.h, glm4/link-follow.m4: update from gnulib

2009-09-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (.PHONY): add am--refresh
	(SUBDIRS): teeny code simplification
	(config.status): also rm $(SUBDIRS)
	(anymodule): ditto: reconfiguring obsoletes gllib
	(GLLIB_A): do not re-execute the code already done in gllib
	(install-bin): depend on full instead of lispinit et al

2009-09-21  Sam Steingold  <sds@gnu.org>

	* pathname.d (DYNLOAD-MODULES): report what is being done
	* constsym.d (loading_message, load_level): export for DYNLOAD-MODULES

2009-09-21  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (with_dynamic_modules): load the modules files
	with an explicit .fas extension, both to override .lisp inherited
	from *load-truename* and to ensure that the module is compiled
	Reported by Barry Fishman <barry_fishman@acm.org>

2009-09-20  Sam Steingold  <sds@gnu.org>

	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/unistd_h.m4:
	* gllib/unistd.in.h, glm4/unistd_h.m4: update from gnulib
	* modules/regexp/gllib/Makefile.am, modules/syscalls/gllib/Makefile.am:
	* gllib/Makefile.am: regenerate

2009-09-20  Sam Steingold  <sds@gnu.org>

	* glm4/absolute-header.m4, glm4/btowc.m4, glm4/malloc.m4:
	* glm4/regex.m4, glm4/ssize_t.m4, glm4/stdlib_h.m4,
	* glm4/wcrtomb.m4: remove obsolete files (now in modules/regexp/glm4)
	* glm4/fnmatch.m4: remove obsolete file (now in modules/wildcard/glm4)

2009-09-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): remove backups in glm4 too

2009-09-18  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): fix cl_cv_have_clisp caching;
	accept an optional second argument to specify whether the features
	and clisp itself are required or not (default=true)

2009-09-17  Sam Steingold  <sds@gnu.org>

	Update gnulib imports (mostly for mktime fixes for NetBSD/i386)
	* modules/regexp/gllib/stddef.in.h, modules/regexp/glm4/stddef_h.m4:
	* modules/regexp/glm4/wchar_t.m4, modules/syscalls/gllib/stddef.in.h:
	* modules/syscalls/glm4/stddef_h.m4, modules/syscalls/glm4/wchar_t.m4:
	* gllib/stddef.in.h, glm4/stddef_h.m4: add
	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/stdlib.in.h:
	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/gnulib-comp.m4:
	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
	* modules/syscalls/gllib/Makefile.am, modules/syscalls/gllib/mktime.c:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/time.in.h:
	* modules/syscalls/gllib/unistd.in.h:
	* modules/syscalls/glm4/gethostname.m4:
	* modules/syscalls/glm4/gnulib-comp.m4:
	* modules/syscalls/glm4/sockets.m4:
	* modules/syscalls/glm4/sockpfaf.m4:
	* modules/syscalls/glm4/sys_socket_h.m4:
	* modules/syscalls/glm4/time_r.m4, modules/syscalls/glm4/unistd_h.m4:
	* modules/wildcard/gllib/Makefile.am
	* gllib/Makefile.am, gllib/string.in.h, gllib/unistd.in.h:
	* gllib/wctype.in.h, glm4/gnulib-comp.m4, glm4/link-follow.m4:
	* glm4/string_h.m4, glm4/threadlib.m4, glm4/unistd_h.m4:
	* glm4/wchar.m4, glm4/wctype.m4: update

	* modules/syscalls/configure.in: gl_AC_FUNC_LINK_FOLLOWS_SYMLINK
	has been renamed to gl_FUNC_LINK_FOLLOWS_SYMLINK

2009-09-17  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-gnulib): add a missing semicolon
	(gnulib-imported): add a missing dollar sign

2009-09-16  Sam Steingold  <sds@gnu.org>

	* package.d (MAP-SYMBOLS, MAP-EXTERNAL-SYMBOLS): lock the
	individual packages being iterated over
	(MAP-ALL-SYMBOLS): ditto, instead of locking all_packages_lock
	(RE-EXPORT): lock TO-PACK

2009-09-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* xthread.d (spinlock_release) [I80386, AMD64]: add gcc optimization
	barrier (reimplemented in inline asm)

2009-09-14  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4 (CL_FFCALL): suggest cvs/savannah instead of
	wget/gnu.org because there is no ffcall tarball on gnu.org

2009-09-14  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): upcase the features for messages and variables
	Thanks to Eric Blake <ebb9@byu.net> for much enlightening!

2009-09-13  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (set_dynamic_module_location): *user-lib-directory*
	may be NIL which is not a valid pathname designator

2009-09-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (BUILD_AUX): when verbose, report it
	(full): pass CLISP=... to clisp-link to possibly override the user
	setting pointing somewhere else;
	[with_dynamic_modules]: mkdir dynmod

2009-09-13  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): check for a specified list of features
	(CL_CLISP_NEED_FFI): remove
	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): fix AC_REQUIRE(CL_CLISP)
	* modules/dbus/configure.in, modules/fastcgi/configure.in:
	* modules/gtk2/configure.in, modules/oracle/configure.in:
	* modules/pari/configure.in, modules/postgresql/configure.in:
	* modules/readline/configure.in, modules/wildcard/configure.in:
	* modules/zlib/configure.in: replace CL_CLISP_NEED_FFI with an
	argument to CL_MODULE_COMMON_CHECKS

2009-09-13  Sam Steingold  <sds@gnu.org>

	* modules/i18n/configure.in: remove the spurious FFI dependency

2009-09-12  Aleksej Saushev  <asau@inbox.ru>

	* makemake.in (INSTALL_SCRIPT): use instead of INSTALL_PROGRAM for
	clisp-link (avoids stripping the script, which is a problem on NetBSD)

2009-09-11  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): use cl_use_clisp instead of
	cl_cv_use_clisp to avoid unnecessary caching

2009-09-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-doc): pass "--tries=1" to wget,
	"-connect_timeout=10" to lynx and
	"--max-time 10" to curl to limit wait time;
	try only one of wget/lynx/curl, not every one of them in order
	(base): set CLISP='./clisp -K boot' for clisp-link because base is
	not present yet thus the default will not work
	(anymodule): no need to pass localeflags to clisp

2009-09-11  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4: move FFI check from CL_CLISP to CL_CLISP_NEED_FFI
	and AC_REQUIRE CL_CLISP in CL_CLISP_NEED_FFI

2009-09-11  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (current_linking_set): use (sys::program-name)
	instead of (aref (argv) 0)

2009-09-11  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (CL_CLISP): add an early cl_cv_have_clisp=no
	rename cl_cv_clisp_modset to cl_cv_clisp_linkset
	also check for ${cl_cv_clisp_libdir}linkkit/modules.c, as in clisp-link

2009-09-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (MYIMPROOT): revert the 2009-07-06 patch, use podval again

2009-09-10  Sam Steingold  <sds@gnu.org>

	New user variable CUSTOM:*USER-LIB-DIRECTORY* is respected by
	REQUIRE and used by "clisp-link install".
	* clisp-link.in (link): remove the obsolete command
	(install): add command
	(set_dynamic_module_location, current_linking_set): add
	(prepare_dynamic_module): call set_dynamic_module_location
	* constsym.d (user_lib_directory): add
	* defs1.lisp (*user-lib-directory*): defvar
	(require): treat it the same as *lib-directory*
	* spvw.d (init_symbol_values): define_variable user_lib_directory
	(main_actions): init user_lib_directory
	* makemake.in: install clisp-link in bindir;
	generate and install its manpage

2009-09-10  Sam Steingold  <sds@gnu.org>

	* modules/queens/Makefile (callqueens.m.c): fix modprep invocation
	* modules/queens/queens.c (queens): add a prototype to pacify gcc

2009-09-10  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/link.sh.in, modules/bindings/glibc/link.sh:
	* modules/bindings/win32/link.sh, modules/clx/mit-clx/link.sh:
	* modules/clx/new-clx/link.sh.in, modules/dbus/link.sh.in:
	* modules/dirkey/link.sh.in, modules/fastcgi/link.sh.in:
	* modules/gdbm/link.sh.in, modules/gtk2/link.sh.in:
	* modules/i18n/link.sh.in, modules/libsvm/link.sh:
	* modules/matlab/link.sh, modules/netica/link.sh:
	* modules/oracle/link.sh.in, modules/pari/link.sh.in:
	* modules/pcre/link.sh.in, modules/postgresql/link.sh.in:
	* modules/queens/link.sh, modules/rawsock/link.sh.in:
	* modules/readline/link.sh.in, modules/regexp/link.sh.in:
	* modules/syscalls/link.sh.in, modules/wildcard/link.sh.in:
	* modules/zlib/link.sh.in: pass CLISP="${CLISP}" to make

2009-09-08  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/Makefile (win32.o): do not depend on
	$(CLISP_LINKKIT)/clisp.h because, first, clisp is presumed to be
	set in stone while a module is compiles, and, second,
	$(CLISP_LINKKIT) may contain a colon (full path on win32 contains
	the drive!) and thus confuse make ("multiple target patterns")
	* modules/bindings/glibc/Makefile (linux.o): ditto

2009-09-03  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/Makefile, modules/bindings/win32/Makefile:
	* modules/libsvm/Makefile, modules/matlab/Makefile:
	* modules/netica/Makefile, modules/queens/Makefile:
	* modules/berkeley-db/link.sh.in, modules/dbus/link.sh.in:
	* modules/dirkey/link.sh.in, modules/fastcgi/link.sh.in:
	* modules/gdbm/link.sh.in, modules/gtk2/link.sh.in:
	* modules/i18n/link.sh.in, modules/libsvm/link.sh:
	* modules/matlab/link.sh, modules/netica/link.sh:
	* modules/oracle/link.sh.in, modules/pari/link.sh.in:
	* modules/pcre/link.sh.in, modules/postgresql/link.sh.in:
	* modules/queens/link.sh, modules/rawsock/link.sh.in:
	* modules/readline/link.sh.in, modules/regexp/link.sh.in:
	* modules/syscalls/link.sh.in, modules/wildcard/link.sh.in:
	* modules/bindings/glibc/link.sh, modules/bindings/win32/link.sh:
	* modules/clx/mit-clx/link.sh, modules/clx/new-clx/link.sh.in:
	* modules/zlib/link.sh.in, clisp-link.in, makemake.in:
	use CLISP_LINKKIT instead of INCLUDES

2009-09-03  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (check_module): when ${CLISP} is set and
	$1/link.sh is not found, run "$1/configure --with-clisp=${CLISP}"

2009-09-03  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/Makefile (svm$(SHREXT)): no need to add -I$(INCLUDES)
	* modules/postgresql/Makefile.in (postgresql.fas): remove an extra rule
	* modules/clx/new-clx/Makefile.in (clisp-module-distrib): fix a typo;
	use "mkdir -p"

2009-09-03  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/Makefile.in, modules/clx/new-clx/Makefile.in:
	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
	* modules/rawsock/Makefile.in, modules/readline/Makefile.in:
	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
	* modules/wildcard/Makefile.in, modules/zlib/Makefile.in:
	(CLISP): init to @CLISP@ -norc -q
	(CLISP_LINKKIT): init to @CLISP_LINKKIT@ and use instead of INCLUDES
	* m4/clisp.m4 (CL_CLISP): define CLISP_LINKKIT instead of CLISP_INCLUDE

2009-09-02  Sam Steingold  <sds@gnu.org>

	modules should be buildable using pre-installed clisp
	* makemake.in (build-aux): add link_dep target
	(modular): depend on it
	(BUILD_AUX): compute the files which module configures need
	(anymodule): pass --with-clisp to module configures
	(distrib, install, install-bin): install BUILD_AUX in libdir/build-aux
	* m4/clisp.m4 (CL_CLISP): major rewrite for better caching
	(CL_CLISP_NEED_FFI): add
	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): require CL_CLISP,
	pass cl_cv_clisp_libdir/build-aux to AC_CONFIG_AUX_DIR
	* modules/berkeley-db/configure.in, modules/clx/new-clx/configure.in:
	* modules/dirkey/configure.in, modules/gdbm/configure.in:
	* modules/i18n/configure.in, modules/pcre/configure.in:
	* modules/rawsock/configure.in, modules/regexp/configure.in:
	* modules/syscalls/configure.in: call CL_MODULE_COMMON_CHECKS
	without arguments
	* modules/dbus/configure.in, modules/fastcgi/configure.in:
	* modules/gtk2/configure.in, modules/oracle/configure.in:
	* modules/pari/configure.in, modules/postgresql/configure.in:
	* modules/readline/configure.in, modules/wildcard/configure.in:
	* modules/zlib/configure.in: ditto and call CL_CLISP_NEED_FFI
	* Makefile.devel ($(MAKEFILE_IN)): create symlink $cl_cv_clisp_libdir
	before automake and remove it afterwards

2009-08-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (GC_SAFE_ACK_SUSPEND_REQUEST_): do not try to acquire
	_gc_suspend_request spinlock - we already hold it
	(GC_SAFE_REGION_END_i): acquire (not 'try acquire') _gc_suspend_request

2009-08-30  Vladimir Tzankov  <vtzankov@gmail.com>

	fix WITH-PACKAGE-ITERATOR thread-safety
	* package.d (PIS_LOCK, PIS_UNLOCK): lock/unlock all_packages_lock
	prior/after package lock is locked/unlocked. use MUTEX-LOCK and
	MUTEX-UNLOCK for handling package locks
	(PACKAGE-ITERATE): release locks at the end of iteration

2009-08-30  Sam Steingold  <sds@gnu.org>

	* loop.lisp (wrap-unwind-protect): add
	(expand-loop): use it when iterating over packages for thread safety

2009-08-28  Sam Steingold  <sds@gnu.org>

	make WITH-PACKAGE-ITERATOR thread-safe
	* constsym.d, subr.d (package_iterate_cleanup): add
	* defs1.lisp (with-package-iterator): wrap MACROLET in
	UNWIND-PROTECT and call CLEANUPFUN, returned by ...
	(package-iterator-function): return two values: iterfun and cleanupfun
	* package.d: add an extra (7th) field to Package Iterator State
	(package-iterate): fill the extra LOCKED field when taking symtab
	and lock the appropriate package's internal mutex
	(package-iterate-cleanup): unlock the currently locked internal mutex
	* constobj.d (version): bump because the ABI function
	PACKAGE-ITERATOR-FUNCTION now returns two values and the
	previously compiled files will not call the cleanup function,
	resulting in a locked internal mutex and blocking READ

2009-08-28  Sam Steingold  <sds@gnu.org>

	* package.d (PACKAGE-ITERATOR, PACKAGE-ITERATE): use symbolic
	macros PIS_* (for Package Iterator State) instead of literals

2009-08-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: threads suspend/resume cleanup
	* spvw_global.d (gc_suspend_all_threads): do not try to acquire suspend
	request spinlock
	* lispbibl.d (GC_SAFE_REGION_END_i, GC_SAFE_ACK_SUSPEND_REQUEST_): try
	to get suspend request spinlock when resuming thread execution

2009-08-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (full-mod-check): same dependencies as base-mod-check

2009-08-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (PATH) [mingw]: do not set; there appears to be no good
	reason to set it, and the present setting reverses the normal order
	Reported by Cesar Romani <cesar.romani@gmail.com>
	in <http://article.gmane.org/gmane.lisp.clisp.general/13055>

2009-08-24  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.48+ (2009-08-24)

2009-08-24  Sam Steingold  <sds@gnu.org>

	FFI:OPEN-FOREIGN-LIBRARY now accepts the :REQUIRE argument.
	* foreign.d (update_library): update the dependencies before
	handling the library itself
	(check_library): allocate space for dependencies in lib_spec
	(FFI:OPEN-FOREIGN-LIBRARY): accept :require
	(push_foreign_object): lib_spec now contains dependencies before objects
	* subr.d, subrkw.d (open_foreign_library): update
	* constsym.d (Krequire) [WIN32 || HAVE_DLOPEN]: add

2009-08-20  Sam Steingold  <sds@gnu.org>

	accept -disable-readline run-time option
	* lispbibl.d (disable_readline): declare
	* spvw.d (disable_readline): define
	(usage): document -disable-readline
	(parse_options): set disable_readline when -disable-readline is given
	* stream.d (make_terminal_stream_): do not use readline when
	disable_readline is true

2009-08-19  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (symbol_list_lookup): search for symbol name in a list
	(symtab_find, shadowing_lookup): use it

2009-08-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_PICFLAG) [cygwin]: empty:
	"warning: -fPIC ignored for target (all code is position independent)"

2009-08-17  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler_continuation): Update
	reference to Linux/arm register to match current API.

2009-08-16  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
	* modules/bindings/win32/Makefile, modules/clx/mit-clx/Makefile:
	* modules/clx/new-clx/Makefile.in, modules/dbus/Makefile.in:
	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
	* modules/matlab/Makefile, modules/netica/Makefile:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
	* modules/queens/Makefile, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in: avoid GNU extensions
	Reported by Aleksej Saushev <asau@inbox.ru>

2009-08-16  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: make packages threads safe
	* package.d (rehash_symtab): do not reuse old cons cell.
	allocate new symtab
	(make_present, unexport, make_external): assign returned symtab -
	possibly newly allocated
	(unuse_1package): do not lock anything. caller should have obtained
	both package mutexes
	(unuse_package): obtain package locks before calling unuse_1package
	(USE-PACKAGE, UNUSE-PACKAGE): obtain global packages lock since more
	than one package mutex will be locked at a time
	(%IN-PACKAGE): lock while modifying existing packages
	(DELETE-PACKAGE): lock existing package during unuse_1package
	(WITH_PACKAGE_LIST_MUTEX_LOCK): macro for obtaining all mutexes
	of a list of packages. on unwinding releases them
	(use_package): use it
	(make_package): guard insertion into all_packages

2009-08-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (lisp${SHREXT}) [dynamic_modules]: new target

2009-08-13  Sam Steingold  <sds@gnu.org>

	* makemake.in: use $0 in all error messages

2009-08-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [win32]: fix echo_dist_modules invocation
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2009-08-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (modcheck): pass :SRCDIR and :OUTDIR to RUN-SOME-TESTS

2009-08-11  Sam Steingold  <sds@gnu.org>

	* gllib/unistd.in.h, modules/regexp/gllib/unistd.in.h:
	* modules/syscalls/gllib/unistd.in.h:
	import the gnulib fix of the 'close' socket dependency

2009-08-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): do not do "cd $@" twice in the same shell

2009-08-11  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_genera1.d (build_old_generation_cache)
	(rebuild_old_generation_cache): fix g++ build (goto crosses auto vars
	initialization)
	* spvw.d (get_module_symbol): add typecast

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/configure.in: use AC_LIB_LINKFLAGS to accept
	--with-libfcgi-prefix
	* modules/fastcgi/link.sh.in (NEW_LIBS): use @LIBS@

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/oracle/configure.in: generate link.sh
	* modules/oracle/link.sh.in: renamed from link.sh
	* modules/oracle/Makefile.in (link.sh): remove target

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/configure.in: check for fcgi_stdio.h; generate link.sh
	* modules/fastcgi/link.sh.in: renamed from link.sh
	* modules/fastcgi/Makefile.in (link.sh): remove target

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/configure.in: generate link.sh
	* modules/dirkey/link.sh.in: renamed from link.sh

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (MKNOD): use S(member) instead of
	`CL:MEMBER` to avoid wasting memory

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/regexp/Makefile.in (regexi.o): -I$(srcdir)/gllib
	* modules/syscalls/Makefile.in (calls.o): -I$(srcdir)/gllib
	* modules/wildcard/Makefile.in (wildcard.o): -Igllib -I$(srcdir)/gllib

2009-08-10  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c: #include "config.h"

2009-08-10  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): the log is in GNULIB_IMPORTED_LOG

2009-08-10  Sam Steingold  <sds@gnu.org>

	* gllib/btowc.c, gllib/fnmatch.c, gllib/fnmatch.in.h:
	* gllib/fnmatch_loop.c, gllib/malloc.c, gllib/regcomp.c, gllib/regex.c:
	* gllib/regex.h, gllib/regex_internal.c, gllib/regex_internal.h:
	* gllib/regexec.c, gllib/stdlib.in.h, gllib/wcrtomb.c:
	remove files which moved to individual modules

2009-08-09  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CORE): remove unistd, so that it is
	present in both src/gllib and modules/syscalls/gllib because
	unistd.h is generated differently depending on whether
	gethostname (required by uname) is present
	(GNULIB_USERS): new variable
	(src/aclocal.m4, MAKEFILE_IN): use it
	(gnulib-imported): keep the log in gnulib-imported.log

2009-08-09  Sam Steingold  <sds@gnu.org>

	* configure.in: do not call gt_NO_CXX
	* makemake.in: do not pass $(NO_CXX) to gnulib make
	* gllib/gettimeofday.c: update from gnulib, now compiles with C++

2009-08-07  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler_continuation) [I80386]: Make it
	compile with libsigsegv 2.7.

2009-08-09  Sam Steingold  <sds@gnu.org>

	* configure: remove the --install option; people should be careful
	with su(1)

2009-08-09  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in, modules/syscalls/configure.in:
	* modules/wildcard/configure.in:
	AM_INIT_AUTOMAKE must come after AC_CONFIG_AUX_DIR

2009-08-07  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in, modules/syscalls/configure.in:
	* modules/wildcard/configure.in, configure.in: pass ([no-define])
	to AM_INIT_AUTOMAKE to avoid defining PACKAGE & VERSION (we
	already have PACKAGE_NAME and PACKAGE_VERSION defined by AC_INIT)

2009-08-07  Bruno Haible  <bruno@clisp.org>

	* configure: Don't leave abazonk files when $exex_prefix and $prefix
	are different.

2009-08-07  Sam Steingold  <sds@gnu.org>

	* modules/regexp/Makefile.in (regexi.o): add -Igllib and depend on gllib
	* modules/syscalls/Makefile.in (calls.o): ditto
	* modules/wildcard/Makefile.in (wildcard.o): ditto

2009-08-06  Sam Steingold  <sds@gnu.org>

	* configure, makemake.in (with_dynamic_modules):
	"yes" is now the default

2009-08-06  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): import uname into syscalls
	* modules/syscalls/calls.c (uname): implement unconditionally
	* modules/syscalls/posix.lisp (uname): export unconditionally
	* modules/syscalls/configure.in: call gl_FUNC_UNAME and
	gl_SYS_UTSNAME_MODULE_INDICATOR([uname]) and do not check for
	uname and <sys/utsname.h>
	* modules/syscalls/gllib/alignof.h:
	* modules/syscalls/gllib/close-hook.c:
	* modules/syscalls/gllib/close-hook.h:
	* modules/syscalls/gllib/errno.in.h:
	* modules/syscalls/gllib/gethostname.c:
	* modules/syscalls/gllib/sockets.c:
	* modules/syscalls/gllib/sockets.h:
	* modules/syscalls/gllib/sys_socket.in.h:
	* modules/syscalls/gllib/sys_utsname.in.h:
	* modules/syscalls/gllib/uname.c:
	* modules/syscalls/gllib/w32sock.h:
	* modules/syscalls/glm4/errno_h.m4:
	* modules/syscalls/glm4/gethostname.m4:
	* modules/syscalls/glm4/sockets.m4:
	* modules/syscalls/glm4/sockpfaf.m4:
	* modules/syscalls/glm4/sys_socket_h.m4:
	* modules/syscalls/glm4/sys_utsname_h.m4:
	* modules/syscalls/glm4/uname.m4: add
	* modules/syscalls/gllib/dummy.c: remove

2009-08-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (install-bin) [with_dynamic_modules]: do not
	install full, install individual module directories instead

2009-08-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (DVIPDF): remove
	(PS2PDF): add
	(manual_print): rename from manual_dvi; remove clisp.dvi from it
	(clisp.dvi): remove target
	(clisp.pdf): generate from clisp.ps
	* configure.in: check for PS2PDF instead of DVIPDF

2009-08-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/Makefile.in (clisp-module-distrib):
	distribute demos

2009-08-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/Makefile.in, modules/fastcgi/Makefile.in:
	* modules/libsvm/Makefile, modules/netica/Makefile:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pari/README, modules/postgresql/Makefile.in:
	* modules/syscalls/Makefile.in (DISTRIBFILES): distribute README

2009-08-06  Sam Steingold  <sds@gnu.org>

	fix bug#1237776: binary distribution does not include local libs
	* makemake.in (distrib): link local libs mentioned in
	base/makevars:LIBS into TOPDIR/base (same for full)
	and modify distmakefile accordingly

2009-08-06  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
	* modules/bindings/win32/Makefile, modules/clx/new-clx/Makefile.in:
	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
	* modules/libsvm/Makefile, modules/matlab/Makefile:
	* modules/netica/Makefile, modules/oracle/Makefile.in:
	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
	* modules/postgresql/Makefile.in, modules/queens/Makefile:
	* modules/rawsock/Makefile.in, modules/readline/Makefile.in:
	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
	* modules/wildcard/Makefile.in, modules/zlib/Makefile.in:
	(DISTRIBFILES): include fas files for dynamic loading

2009-08-06  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (prepare_dynamic_modules): in the REQUIRE file,
	wrap LOADs in APPEASE-CERRORS because FFI modules might try to
	interface to functions absent on this platform

2009-08-06  Sam Steingold  <sds@gnu.org>

	base modules are always linked statically
	* clisp-link.in (with_dynamic_modules): get from the environment
	with the default being @with_dynamic_modules@
	* makemake.in (base): pass with_dynamic_modules=no to clisp-link

2009-08-06  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (lncp): rename from link to separate from link.sh
	(lncp_some): rename from link_some to simplify search

2009-08-06  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (MAKEFILE_IN): depend on aclocal.m4

2009-08-05  Sam Steingold  <sds@gnu.org>

	* modules/regexp/link.sh.in (NEW_FILES): remove regexp.dvi
	* modules/regexp/Makefile.in (DISTRIBFILES, all): ditto
	* modules/regexp/regexp.dvi: remove

2009-08-05  Sam Steingold  <sds@gnu.org>

	use gnulib in syscalls (just string-time for now)
	* Makefile.devel (MAKEFILE_IN): add modules/syscalls/gllib/Makefile
	* modules/syscalls/Makefile.in (libgnu_sc.a): add target
	* modules/syscalls/calls.c (STRING-TIME): implement unconditionally
	* modules/syscalls/posix.lisp (STRING-TIME): export unconditionally
	* modules/syscalls/configure.in: call sc_gl_EARLY, sc_gl_INIT,
	gl_FUNC_MKTIME, gl_FUNC_GNU_STRFTIME, gl_FUNC_STRPTIME;
	do not check for strftime strptime mktime
	* modules/syscalls/link.sh.in (NEW_FILES): add libgnu_sc.a
	* modules/syscalls/gllib/, modules/syscalls/glm4/: add

2009-08-05  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): import no-c++
	* makemake.in (SUBDIRS): disable c++ using NO_CXX for gettimeofday.c
	* configure.in, modules/regexp/configure.in: call gt_NO_CXX
	* modules/regexp/Makefile.in (libgnu_rx.a): pass NO_CXX in CFLAGS
	to gllib because regex cannot be compiled with c++

2009-08-05  Sam Steingold  <sds@gnu.org>

	build modules without linking them over
	* configure: do not link module directories into the build directory
	* makemake.in (anymodule): do not link the module directory,
	run configure in place or link Makefile
	* lndir: remove
	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
	* modules/bindings/win32/Makefile, modules/clx/mit-clx/Makefile:
	* modules/clx/new-clx/Makefile.in, modules/dbus/Makefile.in:
	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
	* modules/matlab/Makefile, modules/netica/Makefile:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
	* modules/queens/Makefile, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in:
	use srcdir to enable building in a separate directory

2009-08-05  Sam Steingold  <sds@gnu.org>

	* modules/gtk2/gtk.lisp (read-gtk-server-cfg): better logging,
	output the generated forms in the same order in which they are read;
	eval filename argument to permit compiling away from the source tree

2009-08-04  Sam Steingold  <sds@gnu.org>

	* modules/regexp/Makefile.in, modules/wildcard/Makefile.in: pass
	"-I$(INCLUDES)/.." in CFLAGS to gllib make because these modules
	rely on src/gllib, so we must also include files in the build dir

2009-08-04  Sam Steingold  <sds@gnu.org>

	* init.lisp (*internal-compiled-file-type*): add
	(*compiled-file-types*): init from *internal-compiled-file-type*
	* compiler.lisp (compile-file-pathname-helper): use
	*internal-compiled-file-type* instead of a string literal
	* utils/modprep.lisp (mod-file): use *internal-compiled-file-type*
	and compile-file-pathname to enable (modprep "bar/foo.c" "./")

2009-08-03  Sam Steingold  <sds@gnu.org>

	keep gnulib files with the module which needs them
	* modules/regexp/gllib, modules/wildcard/gllib:
	* modules/regexp/glm4, modules/wildcard/glm4: add
	* Makefile.devel (MAKEFILE_IN): generate
	modules/regexp/gllib/Makefile.in & modules/wildcard/gllib/Makefile.in
	(gnulib-imported): update all gllib and glm4 directories
	* makemake.in: use libgnu.a as generated by the gnulib build
	process instead of individual object files
	* modules/regexp/Makefile.in, modules/wildcard/Makefile.in:
	* modules/regexp/link.sh.in, modules/wildcard/link.sh.in: link
	with libgnu.a

2009-08-01  Sam Steingold  <sds@gnu.org>

	* genclisph.d (emit_typedef_test): avoid a compilation warning

2009-08-03  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (bdb_errno): do not call end_system_call()
	(LOCK-GET, TXN-RECOVER): move bdb_errno out of
	begin_blocking_system_call/end_blocking_system_call

2009-08-02  Vladimir Tzankov  <vtzankov@gmail.com>

	BERKELEY-DB: fix problems with MT
	* /modules/berkeley-db/bdb.c (SYSCALL1, my_fopen): move error reporting
	outside begin_blocking_system_call/end_blocking_system_call
	(BDB::DBE-SET-OPTIONS): fix a gc-safety bug

2009-07-31  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (with_pinned_varobject): add & export
	* modules/rawsock/rawsock.c (with_buffer_arg, with_sockaddr_arg): use it

2009-07-31  Vladimir Tzankov  <vtzankov@gmail.com>

	RAWSOCK: fix object unpinning
	* modules/rawsock/rawsock.c (with_sockaddr_arg, with_opt_sa_arg): when
	the "body" changes the STACK and pinned object is passed as STACK_x,
	ASSERT_VALID_UNPIN() aborts
	(SOCK-READ, SOCK-READ): unpin object after system calls returns

2009-07-30  Sam Steingold  <sds@gnu.org>

	RAWSOCK: pin everything properly
	* modules/rawsock/rawsock.c (with_sockaddr_arg): replaces CHECK_SOCKADDR
	(PIN_ARG_USE, PIN_ARG_DECL, PIN_DECL, PIN_INIT): define based on
	MULTITHREAD to pass pinned_chain_t objects around
	(fill_iovec): accept a vector of pinned_chain_t on MULTITHREAD
	and pin subvectors
	(optional_sockaddr_argument): accept a pinned_chain_t on
	MULTITHREAD and ping the socket arg
	(with_opt_sa_arg): a wrapper for optional_sockaddr_argument()
	(SOCKADDR-FAMILY, BIND, CONNECT, GETNAMEINFO): use
	with_sockaddr_arg instead of CHECK_SOCKADDR
	(ACCEPT, GETPEERNAME, GETSOCKNAME, RECVFROM, SENDTO): use
	with_opt_sa_arg instead of optional_sockaddr_argument
	(fill_msghdr): accept a vector of pinned_chain_t on MULTITHREAD
	and pass it on to fill_iovec
	(RECVMSG, SENDMSG) [MULTITHREAD]: pass pinned_chain_t to fill_msghdr
	(SOCK-READ, SOCK-WRITE) [MULTITHREAD]: pass pinned_chain_t to fill_iovec

2009-07-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (interrupt_thread) [MULTITHREAD]: prevent races when
	changing/reading pointers to objects on which thread waits

2009-07-29  Vladimir Tzankov  <vtzankov@gmail.com>

	* modules/syscalls/calls.c (POSIX::STAT-VFS): move error
	reporting outside begin_blocking_system_call/end_blocking_system_call.
	save open file stream on STACK around begin/end_blocking_system_call
	(POSIX::WAIT): fix GC-safety bugs

2009-07-29  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (UPLOAD): add src/NEWS so that SF FRS also gets it

2009-07-28  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::FILE-STAT): move error
	reporting outside begin_blocking_system_call/end_blocking_system_call
	(on_pnamestring): save physical namestring on STACK for possible
	GC in begin_blocking_system_call/end_blocking_system_call
	Reported by Vladimir Tzankov

2009-07-28  Reini Urban  <rurban@x-ray.at>

	* utils/modprep.lisp (write-string-c-style): do not downcase chars
	when package is case-sensitive
	(new-fundef): do not fix case when package is case-sensitive
	(case-inverted-package-p): add
	(print-tables-2): use it to invertcase fundef-name

2009-07-28  Vladimir Tzankov  <vtzankov@gmail.com>

	* encoding.d (error_uni32_invalid): fix a GC-safety bug

2009-07-28  Sam Steingold  <sds@gnu.org>

	* Makefile.devel ($(MAKEMAKE_TMP), src/version.h): when sourcing
	version.sh, do not expect "." to be in $PATH

2009-07-28  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.48 (2009-07-28)

2009-07-27  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [win32]: include config.lisp & install.bat
	Reported by Elena Garrulo <egarrulo@gmail.com>

2009-07-27  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: allow (SETF (MT:SYMBOL-VALUE-THREAD sym thread)) if sym
	is not bound in thread
	* zthread.d (thread_symbol_place): return NULL only if the thread is
	dead or the symbol is not special variable
	(SYMBOL-VALUE-THREAD): check for per thread binding of symbol

2009-07-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix SPVW_PAGES build
	* spvw_garcol.d (page_contains_pinned_object): use changed
	pinned_chain_t struct

2009-07-24  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: do not modify STACK when varobject is pinned
	* lispbibl.d (struct pinned_chain_t): make pinned object GC invariant.
	save pointer above STACK at time of pinning - used for unpinning when
	the STACK is unwound.
	(pin_varobject_with_pc): pins varobject using already allocated (on C
	stack) pinned_chain_t struct
	(pin_varobject): use pin_varobject_with_pc()
	(unpin_varobjects): removes specified number of objects from the pinned
	object chain of current thread
	(unwind_pinned_objects): accept clisp_thread_t struct instead of current
	thread STACK. use modified pinned_chain_t struct
	* spvw_garcol.d (gar_col_normal): mark pinned objects

2009-07-24  Sam Steingold  <sds@gnu.org>

	fix bug#2826572: regexp-quote doesn't quote correctly extended
	* modules/regexp/regexp.lisp (regexp-quote): quote "()" in
	extended expressions

2009-07-22  Sam Steingold  <sds@gnu.org>

	* intlog.d (I_I_ash_I): fix a GC-safety bug

2009-07-22  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (SPLI_REF_LISTS): remove type_accessor argument
	(gar_col_normal): use new definition

2009-07-16  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (REGEXP-EXEC): pre-allocate #()
	(rettype_t, CHECK_RETTYPE): add
	(REGEXP-EXEC): remove "default: NOTREACHED;" from switch(rettype)

2009-07-14  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): drop PRINT-LEVEL.8,
	PRINT-LEVEL.9 because I fixed them in the sources

2009-07-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (modcheck): add shell function to unify
	base-mod-check & full-mod-check target generation

2009-07-12  Reini Urban  <rurban@x-ray.at>

	* makemake.in (full-mod-check): add
	(mod-check): depend on it

2009-07-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (TEXT, LEXE, SHREXT): ${host_os} is "mingw32" on
	msys/mingw, so fix the 2009-07-01 breakage
	(DEVPREFIX): only define on cygwin

2009-07-14  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQexecParams, PQprepare)
	(PQexecPrepared, PQsendQueryParams, PQsendPrepare)
	(PQsendQueryPrepared, PQfn, PQescapeByteaConn):
	use C-ARRAY-PTR instead of C-ARRAY-MAX for :IN parameters
	Suggested by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>
	Reported by SOS Sukaeto <sukaeto@gmail.com>

2009-07-13  Sam Steingold  <sds@gnu.org>

	* zthread.d (MUTEX-NAME, EXEMPTION-NAME): add
	(check_name_arg): add; use instead of test_stringsymchar_arg to
	allow any names (strings, symbols, integers &c)
	* constsym.d, subr.d (mutex_name, exemption_name): add
	* threads.lisp (MUTEX-NAME, EXEMPTION-NAME): export
	* constobj.d (type_name_arg): add

2009-07-13  Sam Steingold  <sds@gnu.org>

	* constobj.d (printstring_inactive, printstring_recursive): add
	* io.d (pr_unreadably_with_prefix): rename from pr_unreadably and
	accept an optional prefix to print before string
	(pr_unreadably): define using pr_unreadably_with_prefix
	(pr_orecord): print INACTIVE for dead threads
	and RECURSIVE recursive mutexes

2009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: use per thread value cells in all DYNBIND frames
	* eval.d (progv): use Symbol_thread_value() instead of Symbol_value()
	(bindhooks): ditto
	* control.d (COMPILER-LET): ditto

2009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>

	* threads.lisp (WITH-MUTEX-LOCK): rename WITH-LOCK to WITH-MUTEX-LOCK

2009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>

	fix bug#1472478: Crashing CLISP with finalizers + weak hashtables
	and fix weak references to GC-ed threads objects
	* spvw_garcol.d (gar_col_normal): mark objects to be released after
	weak pointers have been cleaned

2009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (MAKE-THREAD, MAKE-MUTEX, MAKE-EXEMPTION): allow symbols and
	characters for :name argument

2009-07-09  Reini Urban  <rurban@x-ray.at>

	* modules/gtk2/gtk.lisp: "#undef interface" because
	w32api/basetyps.h defines it to "struct" which breaks glade
	declarations like "(GladeInterface *interface)"
	* modules/dbus/dbus.lisp: ditto for "(const char *interface)"

2009-07-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (WAIT): use
	begin_want_sigcld/end_want_sigcld around waitpid/wait4;
	return symbols for signals using check_signal_reverse
	* lispbibl.d (begin_want_sigcld, end_want_sigcld) [HAVE_SIGNALS]:
	export to clisp.h

2009-07-08  Sam Steingold  <sds@gnu.org>

	add POSIX:WAIT (calls waitpid or wait4)
	* modules/syscalls/calls.c (rusage_to_lisp): do not call getrusage
	(USAGE): call getrusage here
	(WAIT): implement
	* modules/syscalls/posix.lisp (wait) [unix]: export
	* modules/syscalls/configure.in (wait4, sys/wait.h): test

2009-07-08  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-ansi-tests): use the common-lisp.net SVN
	repo instead of the GCL CVS

2009-07-07  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): pass --no-vc-files
	and --no-libtool to gnulib-tool; do not remove .cvsignore

2009-07-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (locale): use $(RMRF)

2009-07-07  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/recurrence.lisp (draw-ppict):
	add (declare (compile)) to avoid stack overflow
	Reported by Reini Urban <rurban@x-ray.at>

2009-07-07  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_memfile.d (fill_memdump_header): zero-out header before filling.
	on x86_64 with MT there was 4 byte padding before _subr_tab_addr and
	this causes header validation failure (memcmp-ed) in find_memdump()
	(struct memdump_header_t): rename _per_thread_symvalues to
	_per_thread_symvalues_count (and use)

2009-07-06  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: guard the recently introduced jmp-related exports
	with "ifdef export_unwind_protect_macros", effectively disabling them

2009-07-06  Sam Steingold  <sds@gnu.org>

	* constsym.d (:OPERATION, :OPERANDS): add
	* error.d (end_error): complete :OPERATION, :OPERANDS
	for ARITHMETIC-ERROR and its subtypes
	* aridecl.d (divide_0, error_overflow, error_underflow):
	push :OPERATION and :OPERANDS
	* flo_konv.d (error_nan): ditto
	* intelem.d (BN_ueberlauf): ditto
	* intlog.d (I_I_ash_I): ditto
	* intmal.d (mal_ueberlauf): ditto
	* lfloat.d (error_LF_toolong): ditto
	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>

2009-07-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (MYIMPROOT): use http://clisp.cons.org/beta instead
	of http://clisp.podval.org/impnotes/ because the latter has been
	flaky lately; keep this in sync with doc/Makefile!

2009-07-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS): check the return
	value of gethostbyaddr and only call hostent_to_lisp on non-NULL
	Reported by Reini Urban <rurban@x-ray.at>

2009-07-02  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: simplify object pinning and export it properly
	* lispbibl.d (struct pinned_chain_t): redefine. pinned object is always
	on the stack and pointer to it is kept. export it for modules
	(pin_varobject, unpin_varobject): do not use UNWIND_PROTECT frame. in
	case on non-local exit the object will be unpinned from
	enter_frame_at_STACK (like back_trace is unwound)
	(unwind_pinned_objects): unpins all objects beyond some position in the
	stack
	(enter_frame_at_STACK): use it
	* spvw_garcol.d (gar_col_normal, fill_relocation_memory_regions)
	(page_contains_pinned_object): update usage of pinned_chain_t

2009-07-01  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/configure.in: use $gl_cv_func_fnmatch_gnu
	instead of $ac_cv_func_fnmatch_gnu (fnmatch - serial 4);
	do not link ../gllib/fnmatch.h locally, CPPFLAGS takes care of it

2009-07-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCPPFLAGS): use a full path for gllib because
	CPPFLAGS is passed on to module subdirs

2009-07-01  Sam Steingold  <sds@gnu.org>

	* _clisp.c (-b): print lisplibdir with printf instead of puts to
	avoid the woe32 CR confusing cygwin build tools

2009-07-01  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (pin_varobject, unpin_varobject):
	redefine to NOOP because they are not properly exported yet

2009-07-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (HERE_) [host_os=cygwin]: use `cygpath -m` instead
	of `pwd` to help win32

2009-07-01  Sam Steingold  <sds@gnu.org>

	* _clisp.c (usage): include bad option name in error reporting

2009-06-30  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (SPint, jmpbufsize, sp_jmp_buf): export to clisp.h
	(Pseudofun, stringarg, thread_specific_entry, thread_specific_data):
	use emit_typedef instead of puts

2009-06-30  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (ipcsum, icmpcsum, tcpcsum, udpcsum):
	declare static to avoid "warning: no previous declaration"

2009-06-30  Sam Steingold  <sds@gnu.org>

	* spvw.d (DROP_PRIVILEGES) [!UNIX]: avoid
	warning: empty body in an if-statement

2009-06-30  Sam Steingold  <sds@gnu.org>

	* zthread.d (MAKE-THREAD): CONTROL-ERROR is not a CELL-ERROR

2009-06-30  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: remove the 128 active threads limit
	* lispbibl.d (struct clisp_thread_t): add thr_next and thr_prev fields.
	all threads are kept in double-linked list
	(register_thread): remove
	* spvw.d (allthreads): redefine it as structure containing the head and
	tail of threads linked list
	(register_thread): remove. the thread is "registered" after its creation
	(single_running_threadp, current_stack_size, current_stack_base): use
	new allthreads structure for checking
	(create_thread): add the newly created thread structure to allthreads
	(delete_thread): remove thread from allthreads
	(for_all_threads): redefine to use allthreads structure
	(install_async_signal_handlers) [WIN32_THREADS]: use maximum possible
	semaphore count
	* spvw_memfile.d: use allthreads.head to access single running thread
	* spvw_global.d (gc_suspend_all_threads): re-implement. it used the
	index in threads array before
	* zthread.d (MAKE-THREAD): signal an error if thread creation fails

2009-06-30  Sam Steingold  <sds@gnu.org>

	* makemake.in (PRECIOUS_VARS): list all vars for cflags.h and
	anymodule in one place, keep in sync with ac_precious_vars

2009-06-29  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (parse_buffer_arg): set arg_ to the
	object to be pinned
	(with_buffer_arg): add; pin and unpin arg
	(RECV, RECVFROM, SOCK-READ, SEND, SENDTO, SOCK-WRITE)
	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): use it instead of calling
	parse_buffer_arg directly

2009-06-29  Sam Steingold  <sds@gnu.org>

	* win32.d (PROT_NONE, PROT_READ, PROT_READ_WRITE) [HAVE_MPROTECT]:
	use Unix constants because that's what libgcc uses
	Reported by Vladimir Tzankov <vtzankov@gmail.com>

2009-06-29  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (CONFSTR): fix STACK handling when res=0
	Reported by Reini Urban <rurban@x-ray.at>

2009-06-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (DOC): remove editors
	* doc/editors.txt, doc/extend.txt: remove obsolete files

2009-06-28  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_lock_helper) [WIN32_THREADS]: fix mutex locking. was
	typo when renaming xlock_t members

2009-06-27  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xlock_lock_helper): fix race condition causing deadlock
	between xlock_lock_helper and xcondition_wait_helper

2009-06-26  Sam Steingold  <sds@gnu.org>

	decouple pin_varobject from unprotect_heap_range for the sake of modules
	* lispbibl.d (unprotect_heap_range): accept a flag instead of a bool
	(pin_varobject): do not call unprotect_heap_range()
	(pin_unprotect_varobject): add
	* stream.d: use pin_unprotect_varobject instead of pin_varobject

2009-06-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: do not use/rely on "invalid" pthread_t value
	* xthread.d (xlock_t): better members names
	* zthread.d (xlock_init, xlock_destroy, xlock_lock_helper)
	(xlock_unlock_helper, xcondition_wait_helper): use the new names
	(xlock_lock_helper, xlock_unlock_helper): check both _owned and _owner
	(xlock_unlock_helper): set _owned to false; do not touch _owner
	* spvw.d (interrupt_thread): do not lock/unlock the internal mutex of
	the lock waited on. use new xlock_t members names

2009-06-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-exec-image): use ${TRCR} for cygwin
	Reported by Reini Urban <rurban@x-ray.at>

2009-06-25  Sam Steingold  <sds@gnu.org>

	* glm4/mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): Include <stdlib.h>,
	for the mbtowc declaration.

2009-06-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix xlock_t (MUTEX) unlocking
	* zthread.d (xlock_unlock_helper): set xlock_t _owner to NULL
	(xlock_lock_helper): add more asserts
	(MUTEX-LOCK): ditto
	(thread_cleanup): clear mutex owner before really unlocking it

2009-06-26  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (finalize-coutput-file): avoid
	warning: deprecated conversion from string constant to 'char*'
	in the MODULE__name__CONSTANT_MAP_C_STRING function

2009-06-25  Sam Steingold  <sds@gnu.org>

	* xthread.d (xlock_t): add _owned field because there are no
	guaranteed invalid xthread_t values
	* zthread.d (xlock_init): set _owned to false; do not init _owner
	(xlock_lock_helper): check _owned instead of _owner; init both
	(xlock_unlock_helper): set _owned to false; do not touch _owner

2009-06-25  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_search_scandir) [MULTITHREAD]: avoid
	warning: empty body in an if-statement

2009-06-25  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (current_thread_alloccount, gcunsafe_object_t)
	(tsd_remove_specific, lock_threads, unlock_threads)
	(signal_timeout_call, handle_pending_interrupts):
	use (void) for prototypes of functions which take no arguments

2009-06-25  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (thread_cleanup): move the prototype here ...
	* spvw.d, zthread.d: ... from here

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: handle interrupts when the thread is still not
	entirely initialized
	* spvw.d (handle_pending_interrupts): check *DEFER-INTERRUPTS* for
	SYMVALUE_EMPTY. it is possible to have interrupts while not yet
	initialized with NIL
	* zthread.d (THREAD-INTERRUPT): :OVERRIDE is generalized boolean

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* threads.lisp (WITH-DEFERRED-INTERRUPTS): reverse arguments. was broken
	but seemed to be fine since all tests are with single argument

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (THREAD-INTERRUPT): check that :ARGUMENTS is list
	(push_interrupt_arguments): no need to check for missing args

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* threads.lisp (THREAD-KILL): remove

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* threads.lisp (THREAD-KILL): add :OVERRIDE keyword argument. Allows
	killing a thread even interrupts are deferred in it

2009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: allow THREAD-INTERRUPT to ignore WITH-DEFERRED-INTERRUPTS
	* zthread.d (THREAD-INTERRUPT): accept :FUNCTION, :OVERRIDE and
	:ARGUMENTS keyword arguments
	(push_interrupt_arguments): helper function to push on foreign thread
	stack required data for THREAD-INTERRUPT implementation
	(THREAD-KILL): remove
	* subr.d, subrkw.d: add :FUNCTION, :OVERRIDE and :ARGUMENTS to
	THREAD-INTERRUPT arguments
	(THREAD-KILL): remove
	* constsym.d: add :OVERRIDE and :FUNCTION symbols
	(THREAD-KILL): remove
	* spvw.d (handle_pending_interrupts): ignore WITH-DEFERRED-INTERRUPTS
	if asked to do so
	(signal_handler_thread): on SIGINT and fatal signals - force interrupt
	* threads.lisp (THREAD-KILL): implement via THREAD-INTERRUPT

2009-06-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (GLLIB_O): when REPLACE_GETPAGESIZE is 1, add
	gllib/getpagesize${TOBJ} (just like with gettimeofday)
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2009-06-23  Sam Steingold  <sds@gnu.org>

	* .gdbinit [MULTITHREAD]: suggest "handle SIGUSR1 noprint nostop"

2009-06-23  Sam Steingold  <sds@gnu.org>

	* spvw_mmap.d (mprotect) [HAVE_WIN32_VM]: guard the definition
	with #ifdef HAVE_MPROTECT because mingw may already have it in
	/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a(_trampoline.o):(.text+0x10)

2009-06-22  Sam Steingold  <sds@gnu.org>

	fix bug#2807311: (expt 10 10000000) segfaults
	 (cf. 2008-07-10, bug#2015118)
	* intmal.d (I_square_I): tighten the erglen check (use 16-bit intW
	instead of 32-bit intWC) so that the arithmetic-error
	"overflow during multiplication of large numbers"
	is signaled instead of a SP overflow (segfault) which results from
	__builtin_alloca not checking its argument and overwriting stack

2009-06-22  Sam Steingold  <sds@gnu.org>

	* configure.in: restore gt_LC_MESSAGES: removing it removes
	#undef HAVE_LC_MESSAGES from src/config.h.in

2009-06-22  Sam Steingold  <sds@gnu.org>

	* gllib/Makefile.am, gllib/memchr.valgrind, gllib/string.in.h:
	* glm4/gnulib-cache.m4, glm4/gnulib-comp.m4, glm4/lib-link.m4:
	* glm4/libsigsegv.m4, glm4/memchr.m4: update from gnulib

2009-06-22  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): request getpagesize & sys_time
	* configure.in: do not invoke macros which come from explicitly
	requested packages because they are already called by gl_INIT
	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/17941>
	(gl_GNU_MAKE, gl_LIBSIGSEGV, gl_FUNC_GETTIMEOFDAY)
	(gl_HEADER_SYS_TIME_H, gl_FUNC_GETPAGESIZE): explicitly requested
	(gt_LC_MESSAGES): called by AM_INTL_SUBDIR which is called by
	AM_GNU_GETTEXT which we call explicitly

2009-06-21  Vladimir Tzankov  <vtzankov@gmail.com>

	* type.lisp (thread, mutex, exemption) [MULTITHREAD]: use THREADS
	instead of MT as package name

2009-06-20  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (create_thread) [WIN32_THREADS]: initialize thread's
	_signal_reenter_ok on Win32 as well

2009-06-19  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQexecParams, PQprepare)
	(PQexecPrepared, PQsendQueryParams, PQsendPrepare)
	(PQsendQueryPrepared, PQfn): fix the declarations (input
	parameters were declared as output)
	Reported by SOS Sukaeto <sukaeto@gmail.com>

2009-06-19  Sam Steingold  <sds@gnu.org>

	* type.lisp (thread, mutex, exemption) [MULTITHREAD]: add atomic types

2009-06-19  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: check types Oid and pqbool

2009-06-19  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (size_t, ssize_t): map to CS-CL:symbol-name in
	*C-TYPE-TABLE*, not to the symbol, as should be done as per DEF-C-TYPE

2009-06-18  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: use CL:MAKUNBOUND instead of :UNBOUND (removed)
	* zthread.d (SYMBOL-VALUE-THREAD): use CL:MAKUNBOUND instead of
	:UNBOUND as second return value
	* constsym.d (:UNBOUND): remove

2009-06-18  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix possible deadlock in SYMBOL-VALUE-THREAD
	* zthread.d (thread_symbol_place): do not check arguments. it is called
	when all_threads lock is held and if GC occurs we will get deadlock
	(SYMBOL-VALUE-THREAD): check arguments before acquiring all_threads lock
	(SET-SYMBOL-VALUE-THREAD): ditto

2009-06-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (SYMBOL-VALUE-THREAD): return (VALUES NIL :UNBOUND) in case
	special variable was per thread bound and made unbound via MAKUNBOUND
	* constsym.d (:UNBOUND) [MULTITHREAD]: define it

2009-06-17  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (linkkitdir): when ./linkkit is not found, use
	`dirname $0`/linkkit because there is one in *LIB-DIRECTORY*

2009-06-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (install-bin): install clisp-link using INSTALL_PROGRAM
	instead of INSTALL_DATA so that it is made executable

2009-06-17  Sam Steingold  <sds@gnu.org>

	* glm4/libsigsegv.m4: reverted to serial 3 because serial 4
	does not set LIBSIGSEGV properly

2009-06-17  Sam Steingold  <sds@gnu.org>

	fix bug#2806563: parse-namestring does not like certain chars
	* m4/filecharset.m4 (CL_FILECHARSET): use the auto-detection on
	all platforms, including windows

2009-06-17  Sam Steingold  <sds@gnu.org>

	* configure.in: use gl_FUNC_GETPAGESIZE instead of CL_GETPAGESIZE
	* unix.d (getpagesize): remove prototype
	* win32.d: include <unistd.h> for getpagesize
	* spvw_mmap.d (getpagesize) [HAVE_WIN32_VM]: remove, rely on gnulib
	* m4/getpagesize.m4: remove, rely on glm4/getpagesize.m4
	* m4/mprotect.m4 (CL_MPROTECT): require gl_FUNC_GETPAGESIZE
	instead of CL_GETPAGESIZE

2009-06-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (xcondition_wait_helper) [POSIX_THREADS]: fix infinite
	waiting on condition variable (was a typo with bad consequences)

2009-06-16  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_direction_compatible): when fcntl() fails,
	return false - the handle is likely closed; errno = EBADF
	(make_standard_output_file_stream): accept handle, call
	handle_direction_compatible()
	(make_standard_error_file_stream): remove
	(get_standard_output_file_stream): pass stdout_handle to
	make_standard_output_file_stream()
	(get_standard_error_file_stream): use
	make_standard_output_file_stream(stderr_handle)
	(make_terminal_io): use handle_direction_compatible() in addition
	to pipe_file_handle_p() to decide whether to create a terminal or
	a standard file stream; this fixes bug#2805778: when a
	standard handle is invalid, an empty stream is used
	* makemake.in (check-script): add a test for bug#2805778

2009-06-15  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.47++ (2009-06-15)

2009-06-15  Sam Steingold  <sds@gnu.org>

	* gllib/getpagesize.c, gllib/mbsrtowcs-state.c, gllib/mbsrtowcs.c:
	* gllib/memchr.c, gllib/string.in.h, gllib/strnlen1.c, gllib/strnlen1.h:
	* glm4/00gnulib.m4, glm4/getpagesize.m4, glm4/mbsrtowcs.m4:
	* glm4/memchr.m4, glm4/mmap-anon.m4, glm4/string_h.m4: add from gnulib
	* build-aux/config.guess, build-aux/config.sub, build-aux/depcomp:
	* build-aux/install-sh, build-aux/missing, gllib/config.charset:
	* gllib/gettext.h, gllib/gettimeofday.c, gllib/localcharset.c:
	* gllib/Makefile.am, gllib/mbrtowc.c, gllib/regex_internal.h:
	* gllib/stdint.in.h, gllib/stdlib.in.h:
	* gllib/uniname/gen-uninames.lisp, gllib/uniname/uniname.c:
	* gllib/uniname/uninames.h, gllib/unistd.in.h, gllib/uniwidth/width.c:
	* gllib/wchar.in.h, glm4/btowc.m4, glm4/extensions.m4, glm4/fnmatch.m4:
	* glm4/gnulib-common.m4, glm4/gnulib-comp.m4, glm4/include_next.m4:
	* glm4/lib-link.m4, glm4/lib-prefix.m4, glm4/libsigsegv.m4:
	* glm4/link-follow.m4, glm4/locale-fr.m4, glm4/locale-ja.m4:
	* glm4/locale-zh.m4, glm4/mbrtowc.m4, glm4/multiarch.m4, glm4/regex.m4:
	* glm4/size_max.m4, glm4/stdint.m4, glm4/stdlib_h.m4, glm4/unistd_h.m4:
	* glm4/wchar.m4, glm4/wcrtomb.m4: update from gnulib

2009-06-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-gnulib): use git when it is available

2009-06-15  Sam Steingold  <sds@gnu.org>

	* modules/dbus/dbus.lisp: sync with dbus-1.2.14

2009-06-14  Sam Steingold  <sds@gnu.org>

	* floatprint.lisp (decode-float-decimal): only widen UP [a1;a2]
	when binmant is even

2009-06-13  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_memfile.d (loadmem_from_handle): update only the objects loaded
	from the image. fixes gcsafety build (and some undefined behavior in
	others)

2009-06-12  Sam Steingold  <sds@gnu.org>

	* floatprint.lisp (decode-float-decimal): only widen [a1;a2] when
	binmant is even - because of normal IEEE rounding mode when even
	numbers represent the inclusive intervals

2009-06-11  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (add-module-set): remove command
	(add-module-sets): rename to add
	(create-module-set): rename to create
	* makemake.in (base, full): use add instead of add-module-sets

2009-06-09  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: add WITH-DEFERRED-INTERRUPTS (i.e. WITHOUT-INTERRUPTS)
	* constsym.d (*DEFER-INTERRUPTS*, *DEFERRED-INTERRUPTS*): declare
	* threads.lisp (*DEFER-INTERRUPTS*, *DEFERRED-INTERRUPTS*): ditto. also
	initialize them with *DEFAULT-SPECIAL-BINDINGS*
	(WITH-DEFERRED-INTERRUPTS): add and export it
	* zthread.d (thread_stub): initialize per thread values of
	*DEFER-INTERRUPTS* and *DEFERRED-INTERRUPTS* in case user use some "bad"
	initial bindings
	(THREAD-INTERRUPT): reorder the arguments on the foreign stack
	* spvw.d (mt_main_actions): initialize per thread values of
	*DEFER-INTERRUPTS* and *DEFERRED-INTERRUPTS*
	(handle_pending_interrupts): in case we should defer interrupt - add it
	*DEFERRED-INTERRUPTS*. handle new stack order
	(signal_handler_thread): reorder the arguments on the foreign stack

2009-06-07  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: add partial support for thread interruption on WIN32
	* lispbibl.d (GC_SAFE_REGION_END_i): handle pending interrupts
	depending on thread's flavor
	(install_async_signal_handlers, thr_signal_handler)
	(SIG_THREAD_INTERRUPT, SIG_TIMEOUT_CALL): make them local in spvw.d
	(signal_timeout_call): function to announce new timeout call. used by
	CALL-WITH-TIMEOUT
	* zthread.d (CALL-WITH-TIMEOUT): enable WIN32_THREADS. use
	signal_timeout_call() for queuing timeout call
	(THREAD-INTERRUPT): enable WIN32_THREADS
	* xthread.d (xthread_sigmask, xthread_signal) [WIN32_THREADS]: remove
	* spvw.d: unify POSIX and WIN32 signal handling
	(signal_wait): waits for asynchronous signal
	(signal_timeout_call): announce (WIN32 and POSIX) new timeout call
	(schedule_alarm): schedule next timeout call. NB: to be called
	only from signal handler thread
	(console_handler): CTRL-C handler for WIN32_THREADS
	(interrupt_thread) [WIN32_THREADS]: delay handling in case we are in
	blocking system call. the interrupt will be executed after the call
	returns
	(signal_handler_thread): use signal_wait() and schedule_alarm().

2009-06-05  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: add timed wait on mutexes and exemptions
	* constsym.d: add :TIMEOUT symbol if SOCKET_STREAMS is not defined
	* spvw.d (interrupt_thread) [POSIX_THREADS]: use xmutex_raw_xxxx()
	functions instead of pthreads ones. WIN32 will use soon the same
	function
	(handle_pending_interrupts) [WIN32_THREADS]: add dummy one. not
	implemented
	* subr.d, subrkw.d: (MUTEX-LOCK, EXEMPTION-WAIT): add :TIMEOUT keyword
	parameter
	* xthread.d (xlock_t): use it in both - WIN32_THREADS and POSIX_THREADS
	(xmutex_raw_trylock): add
	* zthread.d (MUTEX-LOCK, EXEMPTION-WAIT): add :TIMEOUT parameter.
	Return T on mutex lock/signaled exemption and NIL on timeout
	(MUTEX-UNLOCK): do not return any value
	(win32_xcondition_wait) [WIN32_THREADS]: implements timed wait on
	exemption
	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper)
	(xcondition_wait_helper): implement the for both WIN32_THREADS and
	POSIX_THREADS

2009-06-05  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: do not use MIN()/MAX() macroses
	* spvw_garcol.d: remove MIN()/MAX() macro definitions
	(gc_sweep2_varobject_page): do not use MAX() macro
	* spvw_genera1.d (build_old_generation_cache): ditto

2009-06-01  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix SIGSEGV on nested interrupts with non-local exit
	* spvw.d (interrupt_thread_signal_handler) [MULTITHREAD]: just call
	handle_pending_interrupts() if it is safe
	(handle_pending_interrupts) [MULTITHREAD]: do not use clisp_thread_t
	_pending_interrupts as a counter but zero it
	(interrupt_thread): always increase thread's _pending_interrupts
	* zthread.d (thread_cleanup): do not zero _thread_interrupt
	(xlock_lock_helper): in case of pending interrupt handle it after the
	control gets into lisp land

2009-05-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* constsym.d (MAKE-LOCK, THREAD-LOCK, THREAD-UNLOCK)
	(*THREAD-WHOSTATE*) [MULTITHREAD]: remove obsolete symbols

2009-05-24  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: thread-interrupt and thread-kill cleanup
	* lispbibl.d (struct clisp_thread_t): remove _thread_exit_tag. use
	global exit tag (defined in constobj.d). add _thread_is_dying - when
	true - the thread is in final cleanup state and should not be
	interrupted (no need for locking when we lookup on it since when we do
	so - the thread is "suspended").
	* constobj.d (thread_exit_tag): add global tag used by THREAD-KILL to
	terminate thread
	* spvw_global.d (suspend_thread): accept lisp thread record as
	parameter. return true if the thread is still alive. obtain and hold the
	threads	lock (allthreads_lock) if asked
	(resume_thread): accept lisp thread record as parameter and release the
	threads lock (allthreads_lock) if asked
	* spvw.d (signal_handler_thread): use new suspend/resume_threads
	(interrupt_thread): do not interrupt the thread if it is dying
	* zthread.d (thread_cleanup): mark the thread as dying. clear pending
	interrupts (if any). do not establish driver frame since we cannot be
	interrupted here anymore
	(thread_stub): use the global thread_exit_tag
	(MAKE-THREAD): ditto (do not create new exit tag)
	(THREAD-KILL): just call THREAD-INTERRUPT (do not check anything)
	(THREAD-INTERRUPT): re-implement it. use changed suspend/resume_thread

2009-05-23  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (clisp_thread_t) [MULTITHREAD]: export _raw_wait_mutex and
	_pending_interrupts to clisp.h
	(handle_pending_interrupts): ditto

2009-05-22  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (fill_varobject_heap_holes) [MULTITHREAD]: fix heap
	hole filling for very large holes (>arraysize_limit_1 bytes)

2009-05-21  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULITHREAD]: keep mutex records consistent in case of interrupts
	* lispbibl.d (GC_SAFE_REGION_END_i): was GC_SAFE_REGION_END(). add
	statement to be executed when the control gets to lisp land
	(GC_SAFE_REGION_END): use the above and handle pending interrupts at
	the end
	(GC_SAFE_REGION_END_WITHOUT_INTERRUPTS): ends GC safe regions and does
	not handle pending interrupts
	* zthread.d (MUTEX-LOCK): update mutex record before executing (if any)
	pending interrupts since there may be non-local exit
	(EXEMPTION-WAIT): ditto

2009-05-21  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: POSIX compliant signal handling (again)
	* xthread.d: remove SOLARIS_THREADS (on Solaris POSIX_THREADS should
	be fine)
	(struct xlock_t): new xmutex_t representation for POSIX_THREADS. it is
	recursive lock that allows "interruptable" timed waits
	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
	functions for dealing with xlock_t (implemented in zthread.d)
	(xcondition_wait_helper): "interruptable" waiting on exemption
	(xmutex_t): define it as xlock_t
	(xthread_init) [POSIX_THREADS]: do nothing
	(xmutex_xxx macros): use xlock_xxx
	(xmutex_raw_t): native pthread_mutex_t. used for thread suspend/resume
	(xmutex_raw_xxx macros): macros for working with xmutex_raw_t
	* lispbibl.d (clisp_thread_t): add _wait_condition, _wait_mutex,
	_raw_wait_mutex. if the thread is blocked on some of these non-reentrant
	objects - interrupt will be marked as pending. add _pending_interrupts
	count of pending interrupts. _gc_suspend_lock is xmutex_raw_t now
	(handle_pending_interrupts): new global function to be called to execute
	deferred interrupts (if any) at appropriate places
	(HANLDE_PENDING_INTERRUPTS): helper macro for calling the above. used in
	GC_SAFE_xxx macros
	(GC_SAFE_ACK_SUSPEND_REQUEST_,GC_SAFE_REGION_END): use xmutex_raw_xxx
	and HANLDE_PENDING_INTERRUPTS. set/unset thread's _raw_wait_mutex
	(interrupt_thread): new global function for interrupting thread based
	on its current state
	(GC_SAFE_MUTEX_LOCK): set/unset thread's _wait_mutex
	* zthread.d (THREAD-INTERRUPT): use interrupt_thread
	(EXEMPTION-WAIT): use HANDLE_PENDING_INTERRUPTS. set/unset thread's
	_wait_condition
	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
	implementation of xlock_t operations
	* spvw.d (interrupt_thread): implement it. if the thread is blocked
	in non-reentrant function (pthreads) mark the interrupt as pending
	and take appropriate actions
	(handle_pending_interrupts): implement it
	(interrupt_thread_signal_handler): execute the interrupt function
	immediately or mark it as pending in case the thread will be resumed
	shortly (and is not safe to execute immediately)
	(signal_handler_thread): use interrupt_thread
	* spvw_global.d (gc_suspend_all_threads, gc_resume_all_threads)
	(suspend_thread, resume_thread): use xmutex_raw_xxx macros

2009-05-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): augment patch 2006-05-10 to respect
	CPPFLAGS, CXXFLAGS, and LDFLAGS in addition to CC and CFLAGS
	Reported by Stelian Ionescu <stelian.ionescu-zeus@poste.it>

2009-05-17  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (show-local-symbols): new function
	(commands0, commands1): access it via LocalSymbols and :ls

2009-05-17  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (trim-if): new user function

2009-05-17  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp (copy-locale-conv): export from I18N
	instead of keeping it in CL-USER

2009-05-17  Sam Steingold  <sds@gnu.org>

	* io.d (WHITESPACEP): use VALUES1

2009-05-14  Sam Steingold  <sds@gnu.org>

	* lisparit.d (FLOAT-SCALE-EXPONENT): fix last patch: RA_F_float_F
	returns nullobj when overflow is ignored; check its return value

2009-05-14  Sam Steingold  <sds@gnu.org>

	finish last patch
	* modules/libsvm/Makefile (clean): also remove svm$(SHREXT)
	* modules/libsvm/link.sh (file_list): use $(SHREXT)
	* makemake.in (echo_dist_modules): pass $(SHREXT) to make

2009-05-14  Vladimir Tzankov  <vtzankov@gmail.com>

	* stream.d (init_streamvars) [MULTITHREAD]: clear per thread
	bindings loaded from image (if any)

2009-05-14  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: persist thread (single one) symvalues
	* spvw_memfile.d (savemem) [MULTITHREAD]: save thread special
	variables symvalues
	(loadmem_from_handle) [MULTITHREAD]: load thread symvalues

2009-05-13  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-float-to-string, format-general-float):
	revert the 2009-01-26 patch (no longer necessary given the latest fixes)

2009-05-13  Sam Steingold  <sds@gnu.org>

	support win32 in modules which compile to DLLs
	* modules/libsvm/Makefile (SHREXT): use it instead of literal .so
	* modules/libsvm/libsvm.lisp (default-foreign-library):
	type depends on the platform
	* modules/libsvm/link.sh: pass SHREXT=${SHREXT} to make
	* makemake.in (anymodule): ditto
	* clisp-link.in: set SHREXT=@SHREXT@ before calling link.sh

2009-05-12  Sam Steingold  <sds@gnu.org>

	* lisparit.d (FLOAT-SCALE-EXPONENT): when 10^q=x, return (1/10,q+1)
	to handle 1d23 properly

2009-04-12  Sam Steingold  <sds@gnu.org>

	* floatprint.lisp (decode-float-decimal): widen [a1;a2] to print
	1d23 without ...99999...

2009-05-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (SPLIT_REF_LISTS): use alive(). fixes collection of
	thread/mutex/exemption records with SPVW_PURE

2009-05-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_weak.d (activate_weak) [MULTITHREAD]: fix gcsafety. do not allow
	GC while waiting on all_weakpointers_lock

2009-05-08  Sam Steingold  <sds@gnu.org>

	fix bug#2787617 Segfault on encode-universal-time on Windows
	* time.d (seconds_west): check localtime() & gmtime() return values

2009-05-08  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (current_thread_impl) [WIN32_THREADS]: use TlsGetValue()
	when exported to clisp.h

2009-05-07  Sam Steingold  <sds@gnu.org>

	fix bug#2788209: *args* contains a mix of old args and new args
	* spvw.d (main_actions): reset *ARGS* when argv_execute_args is empty
	* makemake.in (check-exec-image): add two tests for this bug

2009-05-07  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (thread_cleanup): fix SIGSEGV if GC happens while
	O(all_mutexes) is traversed

2009-05-07  Vladimir Tzankov  <vtzankov@gmail.com>

	[WIN32_THREADS]: export current_thread() in clisp.h
	* lispbibl.d (current_thread_impl) [WIN32_THREADS]: was
	current_thread(). Also export it to clisp.h

2009-05-07  Sam Steingold  <sds@gnu.org>

	* constobj.d (load_extra_file_types): remove the leading dot
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2009-05-04  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): use "clisp${TEXE}" instead of "clisp",
	which fixes the 2009-01-06 patch for mingw
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2009-04-30  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: mutex locking cleanup
	* pathname.d (openp) [MULTITHREAD]: use GC_SAFE_MUTE_(UN)LOCK
	* stream.d (get_open_files_lock) [MULTITHREAD]: ditto
	* record.d (FINALIZE) [MULTITHREAD]: ditto
	* spvw_weak.d (activate_weak) [MULTITHREAD]: ditto

2009-04-30  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: revert parts of last commit. Signal handling is not POSIX
	compliant now (too much inconsistencies and race conditions were
	introduced)
	* lispbibl.d [MULTITHREAD]: remove HADLE_PENDING_INTERRUPTS_XXX and
	its wrappers
	* spvw.d [MULTITHREAD]: revert was changes. use restartable system calls
	* unixaux.d [MULTITHREAD]: do not use handle_pending_interrupts on EINTR
	* xthread.d: remove xlock_t
	* zthread.d: ditto
	* time.d: revert

2009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: POSIX compliant signal handling (and new mutex lock)
	* lispbibl.d: export to clisp.h xlock_t (for POSIX_THREADS)
	(Mutex): make xmu_system pointer (malloc()-ed). the system object
	should be valid across GC (while waiting on mutex GC may run and
	relocate the Mutex record).
	(Exemption): ditto (for xco_system)
	(clisp_thread_t): add _pending_interrupt_count and export it. on async
	interrupt (POSIX signal) it is incremented (and on the LISP stack we
	have what has to be executed).
	(HANDLE_PENDING_INTERRUPTS_NOGC): executes pending interrupts. to be
	called when GC cannot execute in parallel (in not GC safe regions)
	(HANDLE_PENDING_INTERRUPTS_GC): executes pending interrupts. to be
	called while running in GC safe regions (GC may run in parallel).
	(handle_pending_interrupts_gc,  handle_pending_interrupts_nogc): inline
	helper functions for the above two
	(GC_SAFE_MUTEX_LOCK): pass to system functions/macros real pointer
	to the OS mutex object.
	* spvw_typealloc.d (allocate_mutex): allocate (via malloc()) the OS
	xmutex_t (address should be the same across GC)
	(allocate_exemption): ditto
	* spvw_memfile.d (loadmem_from_handle): allocate OS object for mutexes
	and exemption from image
	* spvw.d (interrupt_thread_signal_handler): just increase thread's
	_pending_interrupt_count. the interrupt will be handled later
	(install_async_signal_handlers): let signals cause "slow" system calls
	return EINTR instead of automatically retrying (TODO: socket.d)
	(recursive_mutexattr): remove
	* xthread.d: remove SOLARIS_THREADS (on Solaris POSIX_THREADS should
	be fine)
	(struct xlock_t): new xmutex_t representation for POSIX_THREADS. it is
	recursive lock that allow "interruptible" (via polling) timed waits on
	pthread_mutex_t
	(XLOCK_WAIT_MSEC): default poll interval on mutex and exemptions in
	order to be interruptible. see comments
	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
	functions for dealing with xlock_t (implemented in zthread.d)
	(xcondition_wait_helper): "interruptible" waiting on exemption
	(xmutex_t): define it is as xlock_t
	(xthread_init) [POSIX_THREADS]: do nothing
	(xmutex_xxx macros): use xlock_xxx
	(MAX_SEMAPHORE_COUNT) [WIN32_THREADS]: use maximum allowed value (Win32
	threads currently do not support interruptions)
	* zthread.d (release_mutexes): free malloc()-ed memory for the OS object
	(release_exemptions): ditto
	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
	implementation of xlock_t operations
	(xcondition_wait_helper): implementation
	* unixaux.d: handle EINTR return from system calls by executing pending
	interrupts (if any)
	* time.d (SYSTEM::%SLEEP): use handle_pending_interrupts_nogc()

2009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>

	prevent possible deadlock on async interrupts
	* stream.d (add_to_open_streams) [MULTITHREAD]: allocate new cons
	before obtaining the lock. it is possible while allocating new
	cons to get an async interrupt that will exit non-locally - thus
	not releasing open_files_lock

2009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: fix removal of multiple times pinned objects
	* spvw_garcol.d (fill_relocation_memory_regions) [MULTITHREAD]: fix
	removal of multiple times pinned objects

2009-04-17  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4: fix libffcall download url

2009-04-02  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp: Upgrade libsvm to 2.89
	(svm_print_string): renamed from print_string

2009-04-02  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: remove functions not suitable for preemptive MT
	* zthread.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: remove
	* constsym.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: ditto
	* subr.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: ditto
	* threads.lisp (*THREAD-WHOSTATE*, THREAD-WHOSTATE MAKE-LOCK)
	(THREAD-LOCK, THREAD-UNLOCK) [MULTITHREAD]: remove

2009-03-23  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: Fix uninitialized package mutexes
	* spvw.d (initmem) [MULTITHREAD]: initialize O(all_mutexes)
	* constobj.d (all_mutexes) [MULTITHREAD]: do not initialize

2009-03-20  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: FreeBSD build fixes
	* lispbibl.d (per_thread) [MULTITHREAD]: gcc on FreeBSD supports
	__thread qualifier
	* xthread.d (PTHREAD_MUTEX_RECURSIVE_NP) [MULTITHREAD]: define it on
	FreeBSD

2009-03-17  Vladimir Tzankov  <vtzankov@gmail.com>

	faster re-entrant circularity detection
	* spvw_circ.d (pointer_set, pointer_set_init, pointer_set_free)
	(pointer_set_insert_aux, pointer_set_insert): add. implements simple
	open addressing hash set based on the object address in the lisp heap.
	use it by default

2009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>

	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: remove GC safe
	points at JMP instructions. currently this damages heap

2009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: merge
	PROT_READ_WRITE areas. fixes corner cases with pinned objects that
	share physical memory pages

2009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>

	[MULTITHREAD]: release all thread resources upon termination
	* lispbibl.d (WITH_STOPPED_THREAD): remove (was used only by
	THREAD-INTERRUPT and is not suitable anymore)
	(GC_SAFE_POINT_IF): add GCTRIGGER() in case of suspension
	(delete_thread): remove "full" parameter. all resources are released
	always
	* spvw.d (create_thread): initialize _index field of the new thread with
	invalid value
	(delete_thread): remove "full" parameter. release all allocated memory.
	(signal_handler_thread): do not check whether thread to be interrupted
	is alive (since it is).
	* spvw_global.d (suspend_thread, resume_thread): ditto
	* spvw_garcol.d (gar_col_normal): change the condition for checking
	whether thread is running or terminated
	(gar_col_done): update new references only of alive threads
	* zthread.d (release_threads): do nothing (everything is freed by
	delete_thread). left since in future may be useful
	(thread_stub): prevent killing while running in thread_cleanup()
	(remove_timeout_call): do not allow to be interrupted (by not using
	"GC safe" way for spinlock acquiring
	(THREAD-KILL): change thread alive check
	(THREAD-ACTIVE-P): ditto
	(THREAD-INTERRUPT): reimplement
	(SYMBOL-VALUE-THREAD, SET-SYMBOL-VALUE-THREAD): lock the threads.
	prevents thread termination while working with its symvalues

2009-02-26  Vladimir Tzankov  <vtzankov@gmail.com>

	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: preserve mv_space
	in case of suspend request

2009-02-25  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp: use (:return-type nil) instead
	of (:return-type) which works too but is not officially documented

2009-02-25  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp: upgrade from readline 5.2 to 6.0
	(alphabetic, free, echo-signal-char, gnu-readline-p, display-prompt)
	(editing-mode-emacs, editing-mode-vi, insert-mode-overwrite)
	(insert-mode-insert, explicit-arg, numeric-arg, executing-macro)
	(filename-quoting-desired, attempted-completion-over)
	(completion-type, completion-invoking-key)
	(completion-query-items, completion-append-character)
	(completion-suppress-append, completion-quote-character)
	(completion-found-quote, completion-suppress-quote)
	(sort-completion-matches, completion-mark-symlink-dirs)
	(ignore-completion-duplicates, inhibit-completion): add
	* modules/readline/configure.in: check for the new features

2009-02-24  Vladimir Tzankov  <vtzankov@gmail.com>

	add GC safe points before JMP instructions and in GO special form
	* lispbibl.d (GC_SAFE_ACK_SUSPEND_REQUEST_) [MULTITHREAD]: helper macro
	that acknowledges suspend request and waits for thread resume
	(GC_SAFE_POINT_IF): was GC_SAFE_POINT_ELSE. Check for suspend request
	and executes one of its parameters
	(GC_SAFE_SPINLOCK_ACQUIRE): use it
	* control.d (GO) [MULTITHREAD]: add safe point in order to be possible
	to interrupt infinite non-consing loop (in interpreter)
	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: ditto (in bytecode)

2009-02-22  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (EXEMPTION-WAIT): allow recursive mutex - but enforce to be
	locked just once by the calling thread (otherwise error is signaled)

2009-02-22  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (EXEMPTION-WAIT): do not allow recursive mutexes. this
	may cause really weird hard to debug errors. see APPLICATION USAGE at:
	http://opengroup.org/onlinepubs/007908775/xsh/pthread_mutexattr_settype.html

2009-02-13  Sam Steingold  <sds@gnu.org>

	* .gdbinit (error_notreached): replaces fehler_notreached

2009-02-12  Sam Steingold  <sds@gnu.org>

	avoid preprocessor instructions inside macro invocations
	* spvw_garcol.d (fill_relocation_memory_regions): define
	SET_HEAPNR and MARK_GEN1 for use in for_all_threads()

2009-01-26  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-float-to-string): return the 6th value:
	roundup, meaning that rounding up 9 -> 10 lengthens the number
	(format-general-float): use it to fix (FORMAT NIL "~G" 1.0d24)

2009-02-11  Vladimir Tzankov  <vtzankov@gmail.com>

	avoid preprocessor instructions inside macro invocations
	* spvw.d (ENABLE_DUMMY_ALLOCCOUNT) [MULTITHREAD & DEBUG_GCSAFETY]:
	toggle the dummy alloccount when executing in signal handling thread -
	no lisp thread is associated with it and no real alloccount
	(signal_handler_thread): use it

2009-02-10  Sam Steingold  <sds@gnu.org>

	avoid preprocessor instructions inside macro invocations
	* error.d (uint_type_object, sint_type_object): add
	(check_uint_replacement, check_sint_replacement): use them
	(ulong_type_object, slong_type_object): add
	(check_ulong_replacement, check_slong_replacement): use them
	* spvw_genera1.d (build_old_generation_cache):
	take #ifdef out of dotimespL

2009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (pin_varobject): oops. revert: objects of type gcv_object_t
	are verboten outside of GC

2009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (ASSERT_SAFE_TO_PIN) [MULTITHREAD]: aborts if
	pin_varobject() is used when GC can run at the same time (only
	with DEBUG_SPVW)
	(pin_varobject) [MULTITHREAD]: use it
	(ASSERT_VALID_UNPIN) [MULTITHREAD]: checks that the object to be
	unpinned is at the start of pinned objects chain. this should always
	be the case (there are unwind-protect frames for every pinned object)
	(unpin_varobject_i): use it. simplify it

2009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_global.d (gc_suspend_all_threads): hold the threads lock while
	all threads are suspended. prevents race condition between
	delete_thread() and GC (allthreads[] is changed by delete_thread()
	while GC may use it)
	(gc_resume_all_threads): release the threads lock acquired by
	gc_suspend_all_threads()
	* spvw.d (delete_thread): do not destroy twice _gc_suspend_lock

2009-02-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: fix
	page protection when multiple "writeable" (PROT_READ_WRITE) pinned
	objects share the same physical memory page

2009-02-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_global.d: comments
	(suspend_thread): release heap lock only if it was acquired by us
	(resume_thread): acquire heap lock only if not already owned
	* lispbibl.d: comments

2009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (fill_relocation_memory_regions) [MULTITHREAD]: fix
	corner case: multiple times pinned object at the start of the heap

2009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: fix
	page protection when multiple heap areas should be left with
	PROT_READ_WRITE

2009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d [MULTITHREAD]: export to clisp.h only the types
	(PERFORM_GC) [MULTITHREAD]: set the valid stack range of current
	thread in debug builds
	* xthread.d (testandset) [MIPS]: fix the macro argument

2009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>

	export low-level threads internals to clisp.h
	* xthread.d: convert all functions to macros in order to export them to
	clisp.h. POSIX mutexes code cleanup
	* spvw.d (recursive_mutexattr): always defined in POSIX_THREADS
	* lispbibl.d: export to clisp.h required low-level threads macros. do
	not include xthread.c from clisp.h
	* makemake.in (LINKKIT): revert last commit

2009-02-01  Vladimir Tzankov  <vtzankov@gmail.com>

	* makemake.in (LINKKIT): add xthread.c in threads builds

2009-02-01  Vladimir Tzankov  <vtzankov@gmail.com>

	* unix.d (SETSID): use setsid() if available (do not emulate it via
	setpgid()). fixes MT builds on some linux distributions.

2009-01-30  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (signal_handler_thread): handle ualarm() failures when run in
	virtual machines (timer resolution is too low)

2009-01-29  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_memfile.d (find_memdump): ignore _per_thread_symvalues in the
	saved header when checking image compatibility. they do not survive
	image save/load

2009-01-28  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (SYMBOL_TLS_INDEX_NONE): cast to aint, not uintL

2009-01-28  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (struct symbol_): make its size always be multiple
	of varobject_alignment. fixes 64 bit threads (MT) build

2009-01-21  Sam Steingold  <sds@gnu.org>

	* lisparit.d (FLOAT-SCALE-EXPONENT): restore the mantissa
	precision before comparing it to 1

2009-01-19  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (error_c_integer): export to clisp.h to support
	error_sint et al
	* foreign1.lisp (convert-from-foreign): fix C-POINTER handling
	this fixes the 2008-12-19 patch

2009-01-18  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-float-for-e): before increasing mantwidth,
	make sure it is not NIL

2009-01-18  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (quit_instantly): make it nonreturning_function

2009-01-18  Sam Steingold  <sds@gnu.org>

	fix bug#1007358: LOG of large integers is broken
	* realtran.d (extend2_digits, I_ln_F, RA_ln_F, F_extend_lnx1_F)
	(RA_ln1_F): add
	(R_ln1_R): use RA_ln1_F and F_extend_lnx1_F
	(R_ln_R): use RA_ln_F

2009-01-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* win32aux.d [WIN32_THREADS]: #ifdef the globals not used in MT builds
	(aux_event): define it to NULL in MT builds (can be done in single
	thread as well - no file is openned with FILE_FLAG_OVERLAPPED)

2009-01-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (current_stack_base) [WIN32_THREADS] : fix g++ compilation
	* stream.d (low_close_socket) [WIN32_NATIVE]: fix GC-safety bug
	(low_fill_buffered_socket) [WIN32_NATIVE]: fix GC-safety bug
	* pathname.d (rename_file): fix GC-safety bug

2009-01-16  Sam Steingold  <sds@gnu.org>

	* subr.d (LISPFUN_D): fix a typo in the secfc argument

2009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>

	* pathname.d (file_exists, access0) [WIN32_NATIVE]: fix GC-safety bug
	(open_file): fix GC-safety bug

2009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>

	WIN32_THREADS with mingw
	* lispbibl.d (current_thread) [WIN32_NATIVE]: preserve GetLastError()
	value when USE_CUSTOM_TLS=1 (since TlsGetValue() changes it)
	* xthread.d [WIN32_NATIVE]: critical section functions do not change
	last error nor do they return a value
	(xthread_signal, xthread_sigmask) [WIN32_NATIVE]: remove
	(xcondition_init) [WIN32_NATIVE]: make it expression
	(condition_signal) [WIN32_NATIVE]: fix a typo
	* spvw_garcol.d (MIN, MAX): define them if not available (mingw)
	* time.d (%SLEEP) [WIN32_NATIVE]:  allow GC while sleeping (Win32)
	* win32aux.d (DoInterruptible) [WIN32_NATIVE]: just calls the function
	in MT builds
	(sleep, msleep) [WIN32_NATIVE]: do not use DoInterruptible() in MT
	builds
	(done_win32) [WIN32_NATIVE]: #ifdef code for CTRL-C/BREAK cleanup

2009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (quit_instantly): now function. longjmp() across threads
	is not good
	(main): move cleanup code to quit_instantly()
	(signal_handler_thread) [WIN32_NATIVE]: empty (TODO) stub for "signal"
	handling with WIN32_THREADS

2009-01-16  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): use AC_REQUIRE for
	AC_CONFIG_AUX_DIR instead of calling it explicitly because other
	REQUIREd macros need AC_CONFIG_AUX_DIR's result and REQUIREd
	macros are called before everyting in the macro is executed.
	See <http://article.gmane.org/gmane.comp.lib.gnulib.bugs/16312>.

2009-01-15  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): move AC_CONFIG_AUX_DIR up
	(CL_CONFIG_SUBDIRS): remove unused obsolete macro

2009-01-14  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): remove src/gllib/.cvsignore

2009-01-14  Sam Steingold  <sds@gnu.org>

	* gllib/btowc.c, gllib/mbrtowc.c, gllib/mbsinit.c, gllib/verify.h:
	* gllib/wcrtomb.c, glm4/btowc.m4, glm4/locale-fr.m4, glm4/locale-ja.m4:
	* glm4/locale-zh.m4, glm4/mbrtowc.m4, glm4/mbsinit.m4:
	* glm4/multiarch.m4, glm4/wcrtomb.m4: add from gnulib
	* build-aux/config.guess, build-aux/config.sub, build-aux/missing:
	* gllib/Makefile.am, gllib/regcomp.c, gllib/regex_internal.c:
	* gllib/regex_internal.h, gllib/regexec.c, gllib/stdint.in.h:
	* gllib/stdlib.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
	* gllib/wctype.in.h, glm4/alloca.m4, glm4/codeset.m4:
	* glm4/extensions.m4, glm4/fnmatch.m4, glm4/gettext.m4:
	* glm4/gettimeofday.m4, glm4/glibc2.m4, glm4/glibc21.m4:
	* glm4/gnulib-cache.m4, glm4/gnulib-common.m4, glm4/gnulib-comp.m4:
	* glm4/iconv.m4, glm4/intdiv0.m4, glm4/intldir.m4, glm4/intlmacosx.m4:
	* glm4/intmax.m4, glm4/inttypes-pri.m4, glm4/inttypes_h.m4:
	* glm4/lcmessage.m4, glm4/lib-ld.m4, glm4/lib-link.m4:
	* glm4/libsigsegv.m4, glm4/link-follow.m4, glm4/localcharset.m4:
	* glm4/lock.m4, glm4/longlong.m4, glm4/malloc.m4, glm4/mbstate_t.m4:
	* glm4/nls.m4, glm4/nocrash.m4, glm4/po.m4, glm4/printf-posix.m4:
	* glm4/progtest.m4, glm4/regex.m4, glm4/size_max.m4, glm4/stdbool.m4:
	* glm4/stdint.m4, glm4/stdint_h.m4, glm4/threadlib.m4:
	* glm4/uintmax_t.m4, glm4/visibility.m4, glm4/wchar.m4:
	* glm4/wchar_t.m4, glm4/wint_t.m4, glm4/xsize.m4: update from gnulib

2009-01-15  Vladimir Tzankov  <vtzankov@gmail.com>

	fix mingw build
	* pathname.d (open_input_file): fix a typo
	(LAUNCH): fix missing semicolon
	* stream.d (MAKE-WINDOW): fix bad object declaration
	(low_close_socket): fix missing semicolon
	* spvw_garcol.d: define MAX() macro if needed

2009-01-14  Sam Steingold  <sds@gnu.org>

	POSIX:COPY-FILE now accepts :METHOD :HARDLINK-OR-COPY
	* modules/syscalls/calls.c (hardlink_file): accept error_p to
	indicate whether an error is to be signaled and return status
	(copy_one_file): when method == COPY_METHOD_HARDLINK_OR_COPY and
	hardlink_file() fails, fallback to copy_file_low()
	(check_copy_method): accept :HARDLINK-OR-COPY
	* utils/hln.lisp: pass :METHOD :HARDLINK-OR-COPY to POSIX:COPY-FILE

2009-01-14  Sam Steingold  <sds@gnu.org>

	* m4/clisp.m4 (AC_CLISP): new file: check for a clisp of a correct
	version, for packages which use clisp
	* makemake.in, configure: accept --aclocaldir=DIR
	* makemake.in: install clisp.m4 into aclocaldir

2009-01-14  Sam Steingold  <sds@gnu.org>

	* makemake.in: remove the long unsupported cross.mem stuff,
	created for running the clisp compiler inside some non-clisp
	implementation, such as AKCL

2009-01-09  Sam Steingold  <sds@gnu.org>

	* lisparit.d (FLOAT-SCALE-EXPONENT): restore the mantissa precision

2009-01-08  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (RAWSOCK:IFADDRS): fix keyword arg case

2009-01-09  Vladimir Tzankov  <vtzankov@gmail.com>

	fix image loading in multithread builds
	* spvw_memfile.d (loadmem_from_handle): do not update thread objects.
	they were/will be initialized properly (in single thread it is just
	aktenv)
	* spvw.d (init_memory): do not re-initialize the thread objects - they
	are not modified by loadmem_from_handle(); do not initialize
	O(all_mutexes) and O(all_exemptions) to NIL - they are loaded properly
	from image file

2009-01-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* io.d (READ-CHAR-NO-HANG): fix EOF case when return_Values expands
	to nothing (g++)

2009-01-09 Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (SET_SP_BEFORE_SUSPEND): do not use SP() since it is not
	always exported to modules. use the address of dummy local variable

2009-01-08  Vladimir Tzankov  <vtzankov@gmail.com>

	fix is_valid_stack_address() in multithread debug builds
	* lispbibl.d (clisp_thread_t): add _SP_before_suspend to thread struct
	in builds that allocate lisp objects on C stack. also export it to
	modules
	(SET_SP_BEFORE_SUSPEND): macro for setting _SP_before_suspend just
	before thread may be considered suspended from GC point of view. used
	only in debug builds
	(GC_SAFE_POINT_ELSE, GC_SAFE_REGION_BEGIN): use it
	* spvw.d (clear_per_thread_symvalues): moved to spvw_global.d (avoid
	compilation warnings in debug builds)
	* spvw_global.d (clear_per_thread_symvalues): moved from spvw.d
	(is_in_stack_range): helper macro to check whether an address is in
	thhe stack range of a thread
	(is_valid_stack_address): define it only when it is needed. use
	threads _SP_before_suspend to check address validity

2009-01-07  Sam Steingold  <sds@gnu.org>

	fix bug#2492106: CLISP 2.47/amd64 can't build "pari" module
	* modules/pari/pari.lisp (new_galois_format, factor_add_primes):
	fix type declarations

2009-01-07  Vladimir Tzankov  <vtzankov@gmail.com>

	fix bug#1413016: amd64 debug build broken (gc aborts)
	* spvw_garcol.d (update): use pointable_unchecked() instead of
	as_oint() for address validation in TYPECODES & SPVW_MIXED builds

2009-01-06  Sam Steingold  <sds@gnu.org>

	fix bug#569025: CLISP uses arisparc.d instead of arisparc64.d
	* makemake.in (cpu) [sparc64]: by default gcc runs in 32-bit mode,
	so set cpu based on multi-os-directory

2009-01-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): eat our own dogfood: use the "clisp"
	driver instead of an explicit "lisp.run -M lispinit.mem" for $(CLISP)
	in the module Makefile, do not pass INCLUDES (rely on "clisp -b")

2009-01-06  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main): accept "-b" to print the installation directory
	* modules/berkeley-db/Makefile.in, modules/dbus/Makefile.in:
	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
	* modules/matlab/Makefile, modules/netica/Makefile:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
	* modules/queens/Makefile, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in, modules/clx/new-clx/clx:
	use "clisp -b" instead of "(namestring *lib-directory*)"
	and avoid GNU make-specific syntax

2009-01-06  Sam Steingold  <sds@gnu.org>

	* lisparit.d (FLOAT-SCALE-EXPONENT): use F_extend2_F instead of
	F_extend_F to convert short to double, because single has the same
	mantissa size as short

2009-01-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean0): do not remove linkkit here
	(clean1): remove it here, together with boot/base/full
	(clean-modules): new target, extracted from clean7
	(clean7): depend on clean-modules

2009-01-05  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/Makefile.in, modules/dbus/Makefile.in:
	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
	* modules/matlab/Makefile, modules/netica/Makefile:
	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
	* modules/queens/Makefile, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in: restore buildability by a
	system-wide clisp, removing all external dependencies,
	specifically, $(INCLUDES)/clisp.h and modprep
	(INCLUDES): init to $(shell $(CLISP) -x '(namestring *lib-directory*)')/linkkit
	(MODPREP): remove; use $(INCLUDES)/modprep instead
	* makemake.in (anymodule): depend on linkkit instead of explicit files

2009-01-05  Sam Steingold  <sds@gnu.org>

	* modules/dbus/dbus.lisp, modules/postgresql/postgresql.lisp:
	* modules/readline/readline.lisp: include the local "config.h",
	not the global <config.h>

2009-01-05  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file): when writing a C file, remove it
	on failure too, just like we already remove LIB and FAS files

2009-01-05  Sam Steingold  <sds@gnu.org>

	* room.lisp (room): report GC time in seconds, not internal time units

2009-01-05  Sam Steingold  <sds@gnu.org>

	* control.d (compile_eval_form): aktenv_to_stack may trigger GC
	Reported by Vladimir Tzankov.

2008-12-30  Sam Steingold  <sds@gnu.org>

	Declaration (COMPILE) accepts name argument;
	this fixes bug#2477736: poor error messages from GF funcalls
	* eval.d (parse_dd): return compile name, not just a boolean
	(get_closure): use parse_dd return value over :LAMBDA
	* control.d (parse_doc_decl): ditto
	(compile_eval_form): accept closure_name and pass it to COMPILE-FORM
	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND):
	pass closure_name to compile_eval_form
	(PARSE-BODY): return 4th value - closure_name
	* lispbibl.d (parse_dd): update prototype
	* clos-class3.lisp (install-class-direct-accessors): pass funname
	to the COMPILE declaration
	* clos-genfun2b.lisp (effective-method-function-name): add
	(compute-effective-method-as-function): use it in COMPILE declaration
	(compile-no-jitc): new function, replaces *COMPILE-NO-JITC*
	(compute-discriminating-function-<generic-function>)
	(finalize-fast-gf): use COMPILE-NO-JITC
	* clos-method2.lisp (analyze-method-description): use 4th return
	value of PARSE-BODY for COMPILE declaration
	* compiler.lisp (process-declarations): allow (COMPILE name)
	(symbol-suffix): unlock the package around INTERN
	(compile-form, compile-form-in-toplevel-environment): accept
	optional NAME argument
	* foreign1.lisp (c-struct-constructor): pass name to the COMPILE
	declaration

2008-12-31  Sam Steingold  <sds@gnu.org>

	* macros2.lisp (with-output-to-string): use
	SYS::BUILT-IN-STREAM-CLOSE instead of CLOSE for bootstrapping
	because CLOSE is only defined in gray.lisp - fairly late in the game

2008-12-30  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp (failure, rawsock-error): new conditions
	(eai): inherit from FAILURE
	* modules/rawsock/rawsock.c (rawsock_error): signal RAWSOCK-ERROR
	(SYSCALL): use it

2008-12-30  Sam Steingold  <sds@gnu.org>

	* unixaux.d (fd_read): when errno is ECONNRESET, close fd to avoid
	SIGPIPE on further accesses (see tests/econnreset.lisp)
	Reported by Don Cohen

2008-12-30  Sam Steingold  <sds@gnu.org>

	* error.d (OS_filestream_error): when stream is a stream,
	but not a file stream, signal stream-error instead of os-error
	* errunix.d, errwin32.d (OS_error_arg): replaces OS_file_error
	* lispbibl.d (OS_file_error): define using OS_error_arg

2008-12-30  Sam Steingold  <sds@gnu.org>

	* pathname.d (task_t): use a dedicated type for
	directory_search instead of signean

2008-12-29  Sam Steingold  <sds@gnu.org>

	* pathname.d (namestring_kind_t): use a dedicated type for
	classify_namestring instead of signean

2008-12-29  Sam Steingold  <sds@gnu.org>

	* stream.d (buffered_t): use a dedicated type for
	test_buffered_arg instead of signean

2008-12-29  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (listen_t): use a dedicated type instead of signean
	(listen_char, listen_byte): update declarations
	(ls_avail, ls_eof, ls_wait, ls_avail_p, ls_eof_p, ls_wait_p): remove
	* debug.d (read_form): update listen_char() calls
	* io.d (PEEK-CHAR, LISTEN, READ-CHAR-NO-HANG): ditto
	* sequence.d (READ-BYTE-SEQUENCE): update listen_byte() call
	* stream.d: update all listen functions and their invocations
	throughout the file

2008-12-29  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/Makefile (clx.mem): pass file name to
	saveinitmem instead of using mv

2008-12-28  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-form-table): handle CONCATENATE with c-CONCATENATE
	(c-CONCATENATE): (concatenate 'string ...) ==> (string-concat ...)
	if all the arguments are certain to be strings

2008-12-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): add more default
	special symbols per thread bindings

2008-12-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (MUTEX-UNLOCK): reset the mutex owner before releasing
	the OS mutex

2008-12-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [DEBUGGING]: add -O0

2008-12-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): support FreeBSD make

2008-12-23  Sam Steingold  <sds@gnu.org>

	* spvw_garcol.d (page_contains_pinned_object): do not define
	unless MULTITHREAD is defined to fix the --disable-mmap build

2008-12-23  Sam Steingold  <sds@gnu.org>

	* socket.d (connect_via_ip): fix 2008-06-30 patch: is getsockopt
	fails, return INVALID_SOCKET instead of calling OS_error() here

2008-12-23  Sam Steingold  <sds@gnu.org>

	* stream.d (check_value_range): extracted from ...
	(read_byte_array, write_byte_array, read_char_array): use it

2008-12-23  Vladimir Tzankov  <vtzankov@gmail.com>

	* package.d (itern, do_shadow, unuse_1package, apply_symbols)
	(RENAME-PACKAGE, UNINTERN, DELETE-PACKAGE): use package mutex lock

2008-12-23  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (WITH_LISP_MUTEX_LOCK): accepts boolean parameter
	whether to preserve the mv_space. preserve it when unwinding

2008-12-22  Sam Steingold  <sds@gnu.org>

	* stream.d (error_eos, HANDLE_EOF): add
	(READ-N-BYTES, READ-BYTE, READ-BYTE-NO-HANG, READ-INTEGER)
	(READ-FLOAT): use them

2008-12-22  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp: cast callback libsvm_print_string
	when setting print_string because...
	my 2008-12-19 patch is accepted by the upstream with changes:
	* modules/libsvm/svm.cpp, modules/libsvm/svm.h
	(print_string_stdout): not exported
	(print_string): argument is a "const"

2008-12-22  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (prepare-module, finalize-coutput-file):
	module__~A__object_tab is of type gcv_object_t, not object

2008-12-21  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-WINDOW) [WIN32_NATIVE]: fix a GC-safety bug

2008-12-21  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (mk_pipe_from_handle): replaces mkips_from_handles
	and mkops_from_handles
	* stream.d (CHECK_UNBUFFERED_ELTYPE): new macro
	(make_pipe_stream): new function: common part of ...
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM): use it
	(mk_pipe_from_handle): replaces mkips_from_handles
	and mkops_from_handles
	* pathname.d (make_launch_pipe): accept direction instead of
	parent_inputp
	(LAUNCH): pass direction_t to make_launch_pipe instead of a bool

2008-12-21  Sam Steingold  <sds@gnu.org>

	* foreign.d (FOREIGN-FREE, update_library):
	* stream.d (mkops_from_handles, mkips_from_handles):
	* pathname.d (PROBE-PATHNAME):
	* modules/gdbm/gdbm.c (gdbm_open_read_write):
	* modules/clx/new-clx/clx.f (make_visual_info, make_color):
	fix GC-safety bugs: "TheFoo(STACK_0)->bar = allocate_zot()" is NOT
	safe because lvalue can be computed BEFORE allocation and the GC
	triggered by the allocation will invalidate the lvalue!

2008-12-21  Sam Steingold  <sds@gnu.org>

	* intparam.c (string_length): avoid g++ warning
	"deprecated conversion from string constant to 'char*'"

2008-12-19  Sam Steingold  <sds@gnu.org>

	redirect libsvm output to a lisp stream from C stdout
	* modules/libsvm/libsvm.lisp (*libsvm-output*): new variable
	(write-string-to-libsvm-output): new C call-in (callback)
	set "print_string=&libsvm_print_string" in init_2
	* modules/libsvm/Makefile, modules/libsvm/link.sh: callbacks
	require libsvm.c and ...
	* modules/libsvm/preload.lisp: new file for (make-package "LIBSVM" ...)
	submitted to upstream but not yet accepted:
	* modules/libsvm/svm.cpp (print_string_stdout): new function
	(print_string): new variable, initialized to print_string_stdout
	(info): use vsprintf and (*print_string)
	* modules/libsvm/svm.h (print_string, print_string_stdout): declare

2008-12-19  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (make_faddress): declare
	* foreign.d (make_faddress): make global for ...
	* foreign1.lisp (convert-from-foreign, convert-to-foreign): new
	functions to partially inline convert_from_foreign & convert_to_foreign
	(note-c-call-in): use them

2008-12-19  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (db-log-stat): fix type of mode slot

2008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (thread_cleanup): performs cleanup just before thread
	termination. currently releases (and warns) held mutexes
	(thread_stub): use it
	* spvw.d (mt_main_actions): call thread_cleanup() for the first thread
	* pathname.d (SAVEMEM): do not allow locked mutexes in memory image

2008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>

	* pathname.d (SAVEMEM): signal an error if there are multiple
	running threads
	* spvw.d (single_running_threadp): returns true if the caller is the
	only running thread (used only by SAVEMEM)
	* spvw_memfile.d (loadmem_from_handle): recreate OS mutex and condition
	objects after memory image is loaded

2008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>

	add lisp mutex to every package in threads builds
	* lispbibl.d (struct Package): add pack_mutex in threads builds
	* package.d (make_package): initialize pack_mutex

2008-12-18  Vladimir Tzankov  <vtzankov@gmail.com>

	fix possible memory corruption
	* lispbibl.d, spvw.d (clear_per_thread_symvalues): maygc. should
	acquire threads lock when clears the per thread bindings
	* symbol.d (%PROCLAIM-CONSTANT): preserve GC safety

2008-12-18  Vladimir Tzankov  <vtzankov@gmail.com>

	WITH-LOCK in C (WITH_OS_MUTEX_LOCK, WITH_LISP_MUTEX_LOCK)
	* lispbibl.d (WITH_OS_MUTEX_LOCK, WITH_LISP_MUTEX_LOCK): macros
	for executing statements with mutex lock held and with established
	UNWIND_PROTECT frame ensuring that mutex is unlocked at the end
	* package.d (RENAME-PACKAGE, LIST-ALL-PACKAGES, MAKE-PACKAGE)
	(%IN-PACKAGE, DELETE-PACKAGE, FIND-ALL-SYMBOLS, MAP-ALL-SYMBOLS): use
	WITH_OS_MUTEX_LOCK() with all_packages_lock
	(do_find_all_symbols): do not lock anything - callers hold the lock

2008-12-17  Vladimir Tzankov  <vtzankov@gmail.com>

	add mutex for O(all_packages) in threads builds
	* lispbibl.d (find_pacakge): may trigger GC
	(all_packages_lock): declaration
	* spvw.d (init_multithread): initialize all_packages_lock
	* io.d (read_internal): fix GC safety since find_package() is maygc
	* package.d (make_package, find_package,  do_find_all_symbols)
	(LIST-ALL-PACKAGES, DELETE-PACKAGE, MAP-ALL-SYMBOLS): guard access
	to O(all_packages) via the all_packages_lock
	(RENAME-PACKAGE, %IN-PACKAGE, DELETE-PACKAGE)
	(test_package_arg, correct_packname): fix GC safety since
	find_package() is maygc

2008-12-16  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/svm.cpp (info): call fflush(stdout)
	(info_flush): remove
	patch accepted by upstream

2008-12-16  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (*libsvm-version*): add DEF-C-VAR
	* modules/libsvm/svm.cpp, modules/libsvm/svm.h (libsvm_version): add
	patch accepted by upstream

2008-12-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-doc): use IMPNOTES instead of
	*impnotes-root-default* for ${MYIMPROOT}
	* clhs.lisp (ensure-impnotes-map): avoid barfing on known "invalid
	symbol"s

2008-12-16  Sam Steingold  <sds@gnu.org>

	* stream.d (STREAM-EXTERNAL-FORMAT): use (CAR
	CONCATENATED-STREAM-STREAMS) instead of always returning :DEFAULT

2008-12-15  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/dirkey.c (LDAP::DKEY-INFO): use safe_to_string
	* modules/syscalls/calls.c (RESOLVE-HOST-IPADDR, USER-SHELLS): add
	missing begin_system_call/end_system_call pairs

2008-12-15  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_global.d (gc_resume_all_threads): fix possible double warning
	of failed CALL-WITH-TIMEOUT calls

2008-12-15  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_circ.d: remove obsolete code (threads builds are not compatible
	with GC marking circularity detection)

2008-12-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (sysconf_arg): update for SUS7
	http://www.opengroup.org/onlinepubs/9699919799/functions/sysconf.html
	(confstr_arg): ditto
	http://www.opengroup.org/onlinepubs/9699919799/functions/confstr.html

2008-12-15  Sam Steingold  <sds@gnu.org>

	* modules/libsvm: upgrade to upstream 2.88

2008-12-15  Sam Steingold  <sds@gnu.org>

	* m4/ln.m4 (CL_PROG_HLN): use $cl_cv_prog_LN_S_works

2008-12-14  Sam Steingold  <sds@gnu.org>

	* stream.d (BUILT-IN-STREAM-SET-ELEMENT-TYPE): support CONCATENATED
	and BROADCAST streams, just like in SET-STREAM-EXTERNAL-FORMAT

2008-12-14  Sam Steingold  <sds@gnu.org>

	* stream.d: replace SAME_HANDLE_P_OUT with a general DEBUG_OUT

2008-12-14  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (bt_out): fflush out at the end

2008-12-14  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_direction_compatible): extracted from ...
	(handle_to_stream): use it
	(make_standard_input_file_stream): if stdin_handle is not an open
	input handle, return an empty concatenated stream

2008-12-12  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_global.d (add_per_thread_special_var): sync initialization of
	threads symvalues via threads lock

2008-12-12  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (SET-LOCALE, res_to_obj): use safe_to_string

2008-12-10  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (SYS_CALL): add
	(make_fill_bit_vector, get_key_vector, x_open_display, encode_event)
	(%RESTORE-GCONTEXT-COMPONENTS, QUEUE-EVENT, ACCESS-HOSTS)
	(SET-WM-HINTS): use it instead of X_CALL for memcpy et al

2008-12-09  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (gc_sweep1_varobject_page): allow zero sized holes
	in the heap holes array. fixes corner case in gen0 GC
	(fill_varobject_heap_holes): handle zero sized holes

2008-12-08  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (signal_handler_thread): fix SIG_TIMEOUT_CALL in g++ threads
	builds

2008-12-08  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_multithread_special_symbols): fix g++ compilation

2008-12-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (closed-display)
	(connection-failure, device-busy): remove redefinitions

2008-12-07  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_search_1subdir): accept subdirtail instead
	of subdir to fix GC-safety bug (&Car(STACK) is not gc-visible)
	(directory_search): fix directory_search_1subdir invocation
	Reported by Vladimir Tzankov

2008-12-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCLFLAGS): remove "-x none" which is no longer necessary
	<http://article.gmane.org/gmane.lisp.clisp.devel:19684>

2008-12-07  Vladimir Tzankov  <vtzankov@gmail.com>

	GENERATIONAL_GC (with threads) VM page protection done right
	* spvw_garcol.d (fill_varobject_heap_holes): remove holes_count
	parameter. with GENERATIONAL_GC in generation 0 the holes array
	is filled with memory regions that have to be left with
	PROT_READ_WRITE protection
	(gar_col_normal): initialize the end of heap holes array with
	invalid item.
	* spvw_genera1.d (build_old_generation_cache): add additional
	parameter - array of VM paged aligned memory regions that have to
	be left with PROT_READ_WRITE protection
	* spvw_memfile.d (loadmem_from_handle): pass NULL to
	build_old_generation_cache()
	* spvw_heap.d (struct read_write_region): remove it

2008-12-06  Vladimir Tzankov  <vtzankov@gmail.com>

	fix SPVW_PURE build
	* spvw_garcol.d (struct varobj_mem_region): add heapnr for SPVW_PURE
	with threads builds
	(fill_relocation_memory_regions): initialize heapnr of regions
	(gc_sweep1_varobject_page): fill heapnr of the holes
	(fill_varobject_heap_holes): fill only holes in the requested heap
	(gar_col_normal): fix missing semicolon. fill varobject heap holes
	for each heap in SPVW_PURE
	* spvw_memfile.d (loadmem_from_handle): initialize the physical page
	cache locks (GENERATIONAL_GC && SPVW_PURE_BLOCKS)

2008-12-06  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (fill_relocation_memory_regions): fix marking of VM
	pages from old generation

2008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>

	threads and GENERATIONAL_GC
	* lispbibl.d: remove the warning about threads and GENERATIONAL_GC
	problems
	* spvw_heap.d (physpage_pin_marked, physpage_pin_mark): macros for
	checking/marking VM memory page which should preserve their protection
	after GC. used only during GC (generation == 1)
	(struct read_write_region): contains VM regions that have to be left
	with PROT_READ_WRITE after GC (generation == 0). not used currently
	* spvw_garcol.d (fill_relocation_memory_regions): mark the VM pages
	that have to preserve their protection while traversing the pinned
	objects in threads.
	(fill_varobject_heap_holes): abort wrong heap hole size. dump the
	hole for bug reporting
	(gar_col_normal): use DYNAMIC_ARRAY() instead of alloca()
	* spvw_genera3.d (update_old_generation): treat PROT_READ VM pages
	with pinned objects as PROT_READ_WRITE and update objects in them
	* spvw_genera1.d (build_old_generation_cache): use PROT_READ_WRITE
	for the whole heap instead of PROT_READ (TBD: see the comment)
	(rebuild_old_generation_cache): do not create/update the cache for
	PROT_READ_WRITE pages containing pinned objects.

2008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_global.d (gc_suspend_all_threads): increase thread's suspend
	count after received acknowledge. use DYNAMIC_ARRAY() instead of
	alloca()

2008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* error.d (end_error): abort on error in case the current thread
	is supposed to be suspended

2008-12-05  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp (get-lisp-defs): also check for funcall(S())
	for subrs (which should be called using funcall(L()) instead)
	"make check-sources" is your friend!

2008-12-05  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (pin_varobject): objects of type gcv_object_t are
	verboten outside of GC

2008-12-05  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp (*const-decls*): add "constobj_tl"

2008-12-05  Sam Steingold  <sds@gnu.org>

	remove USER_HOMEDIR - assume that all supported platforms have it
	* pathname.d (USER-HOMEDIR-PATHNAME): define unconditionally
	* constobj.d (user_homedir): ditto
	* constsym.d, subr.d (user_homedir_pathname): ditto
	* lispbibl.d (USER_HOMEDIR): remove define
	* spvw.d (main_actions): use L(user_homedir_pathname) in funcall

2008-12-05  Sam Steingold  <sds@gnu.org>

	* zthread.d (MAKE-THREAD, CALL-WITH-TIMEOUT): simplify (GENSYM) funcall
	(THREAD-KILL): use L(thread_interrupt) instead of S() in funcall
	* spvw_circ.d (ht_add): use L(puthash) instead of S() in funcall
	* spvw.d (main_actions): simplify (GENSYM) funcall

2008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (remove_timeout_call): remove only the requested timeout
	call

2008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>

	no PENDING_INTERRUPTS when MULTITHREAD (fixes also CALL-WITH-TIMEOUT)
	* lispbibl.d (PENDING_INTERRUPTS): do not define it when MULTITHREAD.
	it is not needed and also fixes problem with CALL-WITH-TIMEOUT when
	error is signalled (ualarm()/SIGALRM is called in error.d)
	(clisp_thread_t): remove _interrupt_pending
	* zthread.d (CALL-WITH-TIMEOUT): simplify code

2008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>

	* stream.d (remove_from_open_streams): add function. removes stream
	from O(open_files). use open_files_lock when MULTITHREAD
	(close_buffered): use it
	(builtin_stream_close): use it

2008-12-03  Sam Steingold  <sds@gnu.org>

	* pathname.d (dirent_buf_size) [MULTITHREAD & HAVE_READDIR_R]:
	define only when needed
	(directory_search_scandir): use readdir_r only when present and
	necessary, i.e., when MULTITHREAD & HAVE_READDIR_R
	* configure.in: check for readdir_r

2008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>

	threads fixes
	* error.d (end_error): abort on error signalled from region considered
	"safe for GC". these cases should be fixed - otherwise the thread
	will be treated as safe for GC while it is not
	* spvw.d (init_memory): O(all_mutexes) and O(all_exemptions) do not
	survive memory image loading - initialize them. TLO() objects also.
	* spvw_fault.d (handle_fault_range): guard with page spinlock all
	page accesses/modifications
	* lispbibl.d: warning for problems with threads & GENERATIONAL_GC
	builds
	(all_weakpointers_lock): O(all_weakpointers) lock. synchronize
	modifications of O(all_weakpointers)
	(unprotect_heap_range): macro calling handle_fault_range() for
	pinned varobjects with (PROT_READ or PROT_READ_WRITE access)
	(pin_varobject): accepts additional argument - what access is desired
	for varobject's memory. use unprotect_heap_range() - thus prevents race
	condition between GC and handle_fault_range()
	* unixaux.d: in threads builds do not call handle_fault_range()
	* win32aux.d: in threads builds do not call handle_fault_range()
	* stream.d: call pin_varobject() with desired access
	* spvw_weak.d (activate_weak): use all_weakpointers_lock

2008-12-03  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (fill_varobject_heap_holes): handle large heap holes
	in SPVW_MIXED (greater than *ARRAY-TOTAL-SIZE-LIMIT*)
	* spvw_sigwinch.d (gc_signalblock_on/off): not used in multithread
	builds

2008-12-03  Vladimir Tzankov  <vtzankov@gmail.com>

	* pathname.d (directory_search_scandir): use readdir_r() instead of
	readdir() in multithread builds
	(dirent_buf_size): calculate the size required for struct dirent
	that is passed to readdir_r()

2008-12-02  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:CREATE-PIXMAP): do not require
	WIDTH, HEIGHT and DEPTH, get them from XGetGeometry if missing
	* modules/clx/new-clx/demos/greynetic.lisp (greynetic):
	omit the :DEPTH argument
	* modules/clx/new-clx/demos/bball.lisp (bball): ditto

2008-12-02  Philippe Brochard  <hocwp@free.fr>

	* modules/clx/new-clx/demos/greynetic.lisp (greynetic):
	use (xlib:screen-root-depth screen) for the :depth argument
	* modules/clx/new-clx/demos/bball.lisp (bball): ditto
	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*):
	enable greynetic and bball

2008-12-02  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:DRAW-ARC): use modprep signature
	emulation instead of emulating it by hand

2008-12-01  Sam Steingold  <sds@gnu.org>

	Better keysym->char conversion for the sake of McCLIM
	* modules/clx/new-clx/clx.f (keysym2char): new function; use
	int_char for 8-bit ascii and special-case 6 control keysyms;
	return NIL otherwise (see a long comment in the code)
	(KEYSYM->CHARACTER, KEYCODE->CHARACTER): use it instead if int_char
	Reported by Philippe Brochard <hocwp@free.fr>

2008-12-01  Sam Steingold  <sds@gnu.org>

	* constobj.d [UNIX_CHARNAMES]: add the standard ASCII names "Lf"
	for "Linefeed" (10) and "Ff" for "Page" (12)
	* charstrg.d (charname_table_length, charname_table_codes)
	[UNIX_CHARNAMES]: update for the above

2008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>

	* eval.d (interpret_bytecode_): fix a GC-safety bug (cod_bind)

2008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>

	fix possible multithreading deadlocks
	* spvw.d (thread_symvalues_lock): new mutex guarding the per thread
	symvalues arrays in threads
	(init_multithread): initialize it
	* spvw_global.d (add_per_thread_special_var): use it. threads lock
	used before may lead to deadlock in certain cases
	* zthread.d (thread_stub): call init_reader_low() in the context of
	the new thread
	(MAKE-THREAD): remove init_reader_low() call (may cause deadlock if
	it triggers GC - new thread is registered but not started - so it
	cannot respond to the suspend request).

2008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>

	* stream.d (WRITE-INTEGER): fix a GC-safety bug

2008-11-28  Vladimir Tzankov  <vtzankov@gmail.com>

	define O(dynamic_8bit_vector), O(dynamic_c_string) as thread-local
	constant objects
	* constobj_tl.d (dynamic_8bit_vector, dynamic_c_string): define as
	per thread objects
	* constobj.d (dynamic_8bit_vector, dynamic_c_string): remove from here
	* lispbibi.d (DYNAMICIC_8BIT_VECTOR, FREE_DYNAMIC_8BIT_VECTOR): use
	TLO() instead of O()
	(DYNAMIC_STRING, FREE_DYNAMIC_STRING): use TLO() instead of O()
	(LISPOBJ_TL): takes initstring parameter
	* stream.d (WRITE-INTEGER): fix a GC-safety bug

2008-11-27  Sam Steingold  <sds@gnu.org>

	fix bug#2354265: hang computing log of complex zero
	* comptran.d (N_log_abs_R): check complex argument for 0;
	bug was introduced when fixing bug#1934968

2008-11-27  Sam Steingold  <sds@gnu.org>

	* makemake.in (GLLIB): remove variable, use GLLIB_O instead

2008-11-27  Sam Steingold  <sds@gnu.org>

	* utils/varbrace.c: use {} for empty `for' body to avoid a g++ warning
	(outbuffer_off_insert): make `insert' a `const' to avoid a g++ warning
	* utils/comment5.c: use {} for empty `while' body to avoid a g++ warning

2008-11-27  Sam Steingold  <sds@gnu.org>

	* makemake.in (REPLACE_GETTIMEOFDAY): get from configure
	(GLLIB_O, GLLIB): add gllib/gettimeofday when REPLACE_GETTIMEOFDAY=1

2008-11-27  Vladimir Tzankov  <vtzankov@gmail.com>

	do not pass heap pointers to potentially blocking system calls
	* stream.d (SOCKET-CONNECT, SYS::MAKE-SOCKET-STREAM): use
	with_string_0 instead of TheAsciz().

2008-11-26  Vladimir Tzankov  <vtzankov@gmail.com>

	allow I/O customization variables to be per thread bound
	* spvw.d: allocate per thread symvalues in pages of 1024 object.
	(main): initialize per thread symbol indexes after streams
	special variables are defined (init_streamvars()).
	(initmem): do not initialize per thread symbol indexes - it is too
	early.  stream variables are not declared special yet.

2008-11-26  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_garcol.d (fill_relocation_memory_regions): handle the case
	of multiple times pinned object (from many threads).
	* streams.d (rd_ch_terminal3): fix a typo - end_blocking_system_call()
	instead of begin_blocking_system_call().

2008-11-25  Sam Steingold  <sds@gnu.org>

	* predtype.d (CLASS-OF): simplify switch (Record_type(arg))

2008-11-25  Sam Steingold  <sds@gnu.org>

	* predtype.d (TYPE-OF, CLASS-OF, heap_statistics_mapper) [MULTITHREAD]:
	support THREAD, MUTEX, EXEMPTION
	* constsym.d (hs_thread, hs_mutex, hs_exemption) [MULTITHREAD]: add
	* describe.lisp (describe-object@t) [MT]:
	handle THREAD, MUTEX, EXEMPTION

2008-11-25  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw.d (create_thread): fill thread's _object_tab with NILs.
	(for_all_threadobjs): fix _object_tab iteration.
	* zthread (MAKE-THREAD): initialize the reader after the threads
	lock is released (prevents deadlock if other thread tries to trigger
	GC before reader variables allocation).

2008-11-24  Sam Steingold  <sds@gnu.org>

	allow thread-local constant objects
	* constobj_tl.d (token_buff_1, token_buff_2, displaced_string):
	define there thread-local constant objects in this new file
	* constobj.d: include constobj_tl instead of defining these objects
	* lispbibl.d (TLO): define
	(clisp_thread_t): add _object_tab field
	* io.d (init_reader_low): extract from init_reader
	(init_reader): call it
	(read_token_1, test_potential_number_syntax, test_number_syntax)
	(signal_reader_error, test_dots, upcase_token, case_convert_token)
	(case_convert_token, case_convert_token_1, read_internal)
	(CHAR-READER, radix_2, UNINTERNED-READER, BIT-VECTOR-READER): use
	TLO() instead of O() for token_buff_[12] and displaced_string
	* package.d (get_current_package): ditto
	* makemake.in (EVERY_INCLUDES): add constobj_tl
	* spvw.d (for_all_threadobjs): iterate over thread->_object_tab too
	(main): call init_reader_low()
	* zthread.d (MAKE-THREAD): ditto

2008-11-24  Sam Steingold  <sds@gnu.org>

	* stream.d (position_file_i_buffered): fix a GC-safety bug

2008-11-24  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main): avoid g++ warning:
	"deprecated conversion from string constant to 'char*'"

2008-11-23  Sam Steingold  <sds@gnu.org>

	* spvw.d (delegating_cookie): declare "const" to avoid g++ warning
	"deprecated conversion from string constant to 'char*'"
	* spvw_memfile.d (find_marker): second argument is "const"
	(find_memdump): cast second argument to "const char*";
	use WRITE macro to avoid gcc warning "ignoring return value of
	'write', declared with attribute warn_unused_result"
	* spvw_circ.d (subst_circ_unmark): avoid gcc warning
	"extra tokens at end of #undef directive"

2008-11-23  Sam Steingold  <sds@gnu.org>

	* eval.d (check_funtab): use %ld in printf to avoid a gcc warning
	* pathname.d (LAUNCH): ditto

2008-11-21  Vladimir Tzankov  <vtzankov@gmail.com>

	* spvw_circ.d: use hash table for circularirty detection in MT builds.

2008-11-21  Vladimir Tzankov  <vtzankov@gmail.com>

	add recursive mutexes
	* constsym.d, subr.d, subrkw.d: MAKE-MUTEX accepts keyword arguments
	:NAME and :RECURSIVE-P. MAKE-EXEMPTIION accepts :NAME.
	* zthread.d (MAKE-MUTEX): create appropriate type of mutex.
	non-recursive by default
	(MUTEX-LOCK): handle recursive mutexes. signal error on re-locking
	non-recursive one
	(MUTEX-UNLOCK): handle recursive mutexes. signal an error if the
	calling thread does not own the mutex
	(MUTEX-OWNER): returns the thread owning the mutex
	(MUTEX-RECURSIVE-P): returns whether the mutex is recursive
	(MAKE-EXEMPTION): use keyword :NAME argument
	(EXEMPTION-WAIT): signal an error if the calling thread does not own
	the mutex
	* lispbibl.d (Mutex): add flags and recurse count
	* threads.lisp: export MUTEX-OWNER and MUTEX-RECURSIVE-P
	(WITH-LOCK): use mutex

2008-11-20  Sam Steingold  <sds@gnu.org>

	* .gdbinit (run_all_tests_parallel): add

2008-11-20  Sam Steingold  <sds@gnu.org>

	* io.d (release_buffers): new macro, should be paired with get_buffers
	(read_token_1, STRING-READER, READ-LINE, pr_symbol_part): use it

2008-11-20  Sam Steingold  <sds@gnu.org>

	* stream.d (rd_ch_terminal3): wrap readline() call in
	begin_blocking_system_call()/end_blocking_system_call()

2008-11-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-tests-parallel) [with_threads]: new target

2008-11-20  Vladimir Tzankov  <vtzankov@gmail.com>

	fix memory corruption on thread symvalues initialization
	* spvw_memfile.d (loadmem_from_handle): storage per thread symvalues
	is reallocated correctly.

2008-11-20  Vladimir Tzankov  <vtzankov@gmail.com>

	Do not use GC finalization for mutexes and exemptions
	* constobj.d: add O(all_mutexes), O(mutexes_to_release),
	O(all_exemptions) and O(exemptions_to_release)
	* constsym.d, subr.d: remove %MUTEX-DESTROY and %EXEMPTION-DESTROY
	* lispbibl.d: add locks for O(all_exemptions) and O(all_mutexes)
	(GC_SAFE_MUTEX_LOCK / UNLOCK): helper macros for locking xmutex_t
	* spvw.d (init_multithread): initialize locks for O(all_mutexes) and
	O(all_exemptions)
	* spvw_garcol.d (gar_col_normal): handle O(all_mutexes) and
	O(all_exemptions) - like O(open_files)
	(gar_col_done): release non-referenced mutexes and exemptions.
	(SPLIT_REF_LISTS): helper macro for splitting O(open_files),
	O(all_mutexes), etc into referenced and non-referenced lists.
	* zthread.d: remove mutex_os_detroy and exemption_os_destroy
	(release_mutexes): destroys the OS mutex objects for
	non-referenced Mutex records
	(release_exemptions): destroys the POSIX condition variables for
	non-referenced Exemption records
	(MAKE-MUTEX): add the created mutex to O(all_mutexes)
	(MAKE-EXEMPTION): add the created exemption to O(all_exemption)

2008-11-19  Sam Steingold  <sds@gnu.org>

	* configure, makemake.in, spvw.d: remove POSIXOLD_THREADS and C_THREADS

2008-11-19  Sam Steingold  <sds@gnu.org>

	drop privileges when running suid root and receive a --clisp- superarg
	* unix.d (drop_privileges): declare
	* unixaux.d (drop_privileges): implement, based on
	http://www.usenix.org/events/sec02/full_papers/chen/chen.pdf
	* spvw.d (parse_options): call it when receive a --clisp- superarg
	(main): run *init-hooks* _before_ initializing O(argv) so that
	applications cannot detect and thus disable "--clisp-" superarg
	* configure.in: check for
	getresuid setresuid getresgid setresgid setreuid setregid

2008-11-19  Sam Steingold  <sds@gnu.org>

	* zthread.d (MAKE-THREAD): use check_list instead of error_list
	and check_string instead of check_string_replacement
	(MAKE-MUTEX, MAKE-EXEMPTION): use check_string instead of
	check_string_replacement

2008-11-19  Vladimir Tzankov  <vtzankov@gmail.com>

	Add mutexes and POSIX condition variables (exemptions)
	* lispbibl.d (mutexp): macro "predicate" for mutex records
	(exemptionp): macro predicate for POSIX conditions records
	(all_finalizers_lock): mutex protecting the all_finalizers list
	* spvw.d (init_multithread): initialize all_finalizers_lock
	* spvw_typealloc.d (allocate_mutex): return NIL in case the OS mutex
	creation fails
	(allocate_exemption): return NIL in case OS condition variable
	creation fails
	(mt_main_actions): bind the *thread-whostate* for the first thread
	* constsym.d, subr.d: add mutex and exemption functions
	* record.d (finalize): use all_finalizers_lock
	* xthread.d (xcondition_wait): implementation for pthreads with
	no recursive mutex support
	* zthread.d (MUTEXP, MAKE-MUTEX, MUTEX-LOCK, MUTEX-UNLOCK): mutex
	functions available in lisp
	(%MUTEX-DESTROY): GC finalizer for mutex records
	(EXEMPTIONP, MAKE-EXEMPTION, EXEMPTION-WAIT/SIGNAL/BRAODACAST): POSIX
	condition variables in lisp
	(%EXEMPTION-DESTROY): GC finalizer for exemption records
	(THREAD-WHOSTATE): move to threads.lisp
	(check_mutex): ensure object is mutex record
	(check_exemption): ensure object is exemption record
	* threads.lisp: export mutex and exemption functions
	(THREAD-WHOSTATE): moved here from zthread.d

2008-11-19  Vladimir Tzankov  <vtzankov@gmail.com>

	Remove obsolete threads flavors
	* xthread.d: remove POSIXOLD_THREADS and C_THREADS

2008-11-18  Sam Steingold  <sds@gnu.org>

	STACK: depth=in frames, size=in objects (Bruno)
	* constsym.d, lispbibl.d, spvw.d, subr.d, subrkw.d, threads.lisp
	* zthread.lisp (:VSTACK-SIZE): rename from :VSTACK-DEPTH
	(*DEFAULT-VALUE-STACK-SIZE*): rename from *DEFAULT-VALUE-STACK-DEPTH*

2008-11-18  Sam Steingold  <sds@gnu.org>

	* zthread.d (check_thread): do not eval() the user supplied value

2008-11-17  Vladimir Tzankov  <vtzankov@gmail.com>

	* zthread.d (THREAD-INTERRUPT): avoid a deadlock when a terminated
	thread is interrupted multiple times

2008-11-17  Sam Steingold  <sds@gnu.org>

	Remove TIME_RELATIVE, TIME_UNIX_TIMES, TIME_METHOD=1;
	assume either gettimeofday or ftime is present on a Unix system
	* Makefile.devel (gnulib-imported): also get gettimeofday
	* m4/gettimeofday.m4, m4/times.m4: remove
	* configure.in: call AC_PROG_MKDIR_P, gl_FUNC_GETTIMEOFDAY,
	gl_HEADER_SYS_TIME_H; do not call CL_GETTIMEOFDAY and CL_TIMES_CLOCK
	* constobj.d (start_UT) [TIME_RELATIVE]: remove
	* lisparit.d (make_random_state) [TIME_UNIX_TIMES]: drop get_real_time
	* lispbibl.d (TIME_ABSOLUTE, TIME_RELATIVE, TIME_UNIX_TIMES)
	(TIME_METHOD): remove
	* spvw_gcstat.d (gc_time): remove TIME_METHOD conditionals
	* spvw_sigsegv.d (print_mem_stats): ditto
	* time.d (TIME_RELATIVE, TIME_UNIX_TIMES, TIME_METHOD==1):
	remove all code for these conditionals
	* unixaux.d (gettimeofday): remove emulation (rely on gnulib)
	* unix.d: assume HAVE_GETTIMEOFDAY
	* gllib/gettimeofday.c, sys_time.in.h, gettimeofday.m4, sys_time_h.m4:
	add

2008-11-17  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_lend_handle): fix a GC-safety bug

2008-11-17  Sam Steingold  <sds@gnu.org>

	assume POSIX signal()
	* m4/signal.m4 (CL_TYPE_SIGNAL): remove
	(CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK): do not require it
	* configure.in: do not call it
	* unix.d (signal_handler_t): use a POSIX-compatible declaration

2008-11-17  Sam Steingold  <sds@gnu.org>

	fix module compilation after [threads1] merge
	* lispbibl.d (clisp_thread_t): move _writing_to_subprocess up
	before _mv_space and export it to clisp.h
	(mv_space) [MULTITHREAD]: export to clisp.h
	(HAVE_SIGNALS): no need to export to clisp.h anymore
	(START_WRITING_TO_SUBPROCESS, STOP_WRITING_TO_SUBPROCESS):
	define and export to clisp.h
	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
	* error.d, stream.d: use them instead of setting writing_to_subprocess

2008-11-17  Sam Steingold  <sds@gnu.org>

	* stream.d (clear_input_terminal2): simplify code
	(clear_input_terminal3): fix a GC-safety bug

2008-11-12  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (check-signature): use program_error instead
	of source_program_error for argument count checks because the
	latter requires a DETAIL slot which we do not provide

2008-11-12  Sam Steingold  <sds@gnu.org>

	new module DEFUN keyword: &allow-other-keys
	* utils/modprep.lisp (signature): replace REST-P & KEY-P with REST
	(*valid-signatures*): update
	(parse-signature): accept &allow-other-keys
	(check-signature): output error_key_odd test for &allow-other-keys
	(signature-match, fundef-lispfun, print-tables-2): update
	* modules/clx/new-clx/clx.f (OPEN-DISPLAY, QUEUE-EVENT, SEND-EVENT):
	use &allow-other-keys and update argcount usage: it now counts the
	total number of arguments, not the number of &rest arguments

2008-11-12  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): update the
	handle_length call for the 2008-09-13 change

2008-11-12  Philippe Brochard  <hocwp@free.fr>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:QUEUE-EVENT): implement
	* modules/clx/new-clx/clx.lisp (QUEUE-EVENT): not UNDEFINED

2008-11-11  Philippe Brochard  <hocwp@free.fr>

	* modules/clx/new-clx/clx.f (SEND-EVENT): fix encode_event() call

2008-11-11  Sam Steingold  <sds@gnu.org>

	* pathname.d (PATH_VALUE, LOG_PATH_VALUE, PATH_SLOT): add macros
	(PATHNAME-HOST, PATHNAME-DEVICE, PATHNAME-DIRECTORY)
	(PATHNAME-NAME, PATHNAME-TYPE): use them

2008-11-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (DEVPREFIX) [cygwin]: restore the definition lost on
	2005-08-29

2008-11-11  Sam Steingold  <sds@gnu.org>

	* cfgsunux.lisp: remove file (suntools users can set *EDITOR*)
	* makemake.in (CONFIG): set to cfg${TOS}

2008-11-09  Sam Steingold  <sds@gnu.org>

	* eval.d (reset): avoid a warning in fprintf

2008-11-09  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): run *INIT-HOOKS* after initializing O(argv) so
	that the application can detect --clisp- options and remove setuid
	http://clisp.podval.org/impnotes/image.html#image-exec

2008-11-09  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (saveinitmem): when given an explicit
	:INIT-FUNCTION NIL, reset *DRIVER* to #'SYS::MAIN-LOOP
	* init.lisp: load savemem.lisp after reploop.lisp
	* spvw.d (usage): update REPL recover instructions: :INIT-FUNCTION NIL
	instead of :INIT-FUNCTION (FUNCTION SYS::MAIN-LOOP)

2008-11-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (EVENTS-QUEUED): add (call XEventsQueued)
	* modules/clx/new-clx/clx.lisp (EVENTS-QUEUED): export

2008-11-08  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (SOCKADDR-FAMILY):
	return family as a keyword

2008-11-08  Sam Steingold  <sds@gnu.org>

	* predtype.d (with_gc_statistics): avoid a format argument type
	mismatch warning

2008-11-08  Sam Steingold  <sds@gnu.org>

	* errunix.d (errno_out_low): avoid
	"warning: format not a string literal and no format arguments"

2008-11-07  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:OPEN-DISPLAY): fix the signature
	and a segfault in (XLIB:OPEN-DISPLAY NIL); use grasp()
	(DISPLAY-AUTHORIZATION): move STACK_to_mv past X_CALL
	(CREATE-WINDOW): use macro SLOT
	(get_event_mask): define as check_event_mask_of_list
	(make_event_mask): define as make_uint32
	(CREATE-PIXMAP, PROCESS-EVENT): use error_required_keywords()
	instead of NOTIMPLEMENTED
	(SEND-EVENT): fix the signature and use grasp()
	(dpy_wait): add
	(travel_queque, EVENT-LISTEN): use it
	(get_window_0, get_cursor_0): add
	(GRAB-POINTER, CHANGE-ACTIVE-POINTER-GRAB, GRAB-BUTTON):
	use them, thus treat NIL and UNBOUND the same: as None

2008-11-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (COPY-GCONTEXT-COMPONENTS):
	fix handling of the &rest arguments

2008-11-06  Sam Steingold  <sds@gnu.org>

	save "delegating" executable images which only parse --clisp* args
	* pathname.d (SAVEMEM): second argument EXECUTABLE can be 0 to
	mean delegate all command line options to the INIT-FUNCTION,
	only parse --clisp - prefixed options
	* spvw.d (usage): accept delegating argument
	(delegating_cookie, delegating_cookie_length, delegating_p): add
	(parse_options): when delegating_p returns true, only handle
	options prefixed with --clisp
	* spvw_memfile.d (savemem): second argument is a uintL, not a bool
	(find_marker): always present
	(savemem_with_runtime): when the second argument delegating is
	true, reset the delegating cookie
	* lispbibl.d (savemem): update the prototype

2008-11-06  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-LAMBDABODY): tweak the 2008-11-02 patch: when
	NAME is an integer, use SYMBOL-SUFFIX for FNODE-NAME and do NOT
	save the new *FUNC* in *FNODE-LIST* (i.e., treat it as IGNORABLE)
	(c-FUNCTION, c-%GENERIC-FUNCTION-LAMBDA, c-%OPTIMIZE-FUNCTION-LAMBDA):
	pass (incf *anonymous-count*) as name to c-LAMBDABODY

2008-11-05  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (open-http): write http error to *HTTP-LOG-STREAM*,
	not *TERMINAL-STREAM*

2008-11-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (LPARTS): add timezone only when needed (not unix &
	not win32), i.e., never; add deflanguage files only when building
	with_unicode & with_gettext

2008-11-02  Sam Steingold  <sds@gnu.org>

	implement the ANSI (IGNORE #'FUNCTION) declaration.
	* compiler.lisp (*fnode-list*): new dynamic variable
	(symbol-or-function-p): extracted from ...
	(process-declarations): use it for IGNORE & IGNORABLE too
	(fnode): add slots: IGNORE, IGNORABLE, USED
	(fname-ignored-p): add
	(c-LAMBDABODY): push *FUNC* onto *FNODE-LIST*
	(c-declarations): acept NAMELIST & FNODELIST to set IGNORE & IGNORABLE
	(c-FLET, c-LABELS): pass NAMELIST & FNODELIST to c-declarations
	(c-FUNCTION-MACRO-LET): make fnode IGNORABLE
	(value-form-index): make fnode USED and check if it was declared IGNORE
	(compile-lambdabody): bind *FNODE-LIST* and check for unused fnodes
	* timezone.lisp: declare all locals IGNORABLE

2008-11-02  Sam Steingold  <sds@gnu.org>

	* encoding.d, errwin32.d, spvw.d, spvw_alloca.d, spvw_allocate.d,
	* spvw_memfile.d, spvw_mmap.d, spvw_sigsegv.d, win32aux.d: avoid
	"warning: format not a string literal and no format arguments"
	by using puts instead of printf when possible;
	also use fputc instead of fputs for newline

2008-11-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS): add -Wno-format-nonliteral for gcc
	because -Wformat=2 is the default on ubuntu 8.10

2008-11-02  Sam Steingold  <sds@gnu.org>

	* spvw_sigsegv.d (print_mem_stats): add casts in
	PRINT_INTERNAL_TIME to avoid compilation warnings on x86_64

2008-11-02  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: fix 4.7 support

2008-10-29  Sam Steingold  <sds@gnu.org>

	* configure: replace "grep -e" with "grep" because Solaris 10
	/usr/bin/grep does not support this option even though it is
	standardized by http://www.opengroup.org/susv3/utilities/grep.html
	Reported by Raymond Toy <raymond.toy@ericsson.com>

2008-11-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	circularity detection with GC marks in MT builds.
	* spvw_circ.d (initialize_circ_detection): initializes the
	global lock for running inside circularity detection.
	(circ_detection_lock): global circularity detection mutex.
	(get_circularities): use it.
	(subst_circ): use it.
	* spvw.d (init_multithread): use initialize_circ_detection.

2008-11-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	circularity detection using LISP hashtables
	* spvw_circ.d: circularity detection using LISP hashtables.

2008-11-11  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* spvw_garcol.d (fill_varobject_heap_holes): fix build for SPVW_PURE.
	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): EXT::*COMMAND-INDEX*
	is not exported at the time threads.lisp is loaded.

2008-10-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* spvw_garcol.d (page_contains_pinned_object): fix SPVW_PAGES build.

2008-10-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* xthread.d: AMD64 spinlocks are the same as I80386

2008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* xthread.d: add AMD64 spinlock implementation.
	(xthread_create): do not use gcc extensions for POSIX_THREADS.

2008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* lispbibl.d (Symbol_value): do not use gcc extensions.
	(Symbol_thread_value): do not use gcc extensions.
	(Symbolflagged_value): do not use gcc extensions.
	(symbol_value_i / symbol_value_h): helper static inline
	functions for preventing multiple time argument execution.
	(roughly_SP): define "generic" version that does not use gcc
	extensions.

2008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* lispbibl.d (GC_SAFE_SYSTEM_CALL): do not use gcc extensions.
	(GC_SAFE_CALL): do not use gcc extensions.
	(current_thread): do not use gcc extensions.
	* pathname.d: use new GC_SAFE_SYSTEM_CALL()/GC_SAFE_CALL().
	(check_file_reopen): fix GCSAFETY bug.
	* stream.d: use new GC_SAFE_SYSTEM_CALL()/GC_SAFE_CALL().

2008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* spvw_garcol.d (gc_sweep1_varobject_page): pinned objects
	are always marked.
	* xthread.d: do not check for errors when spinlock_t=mutex_t.

2008-10-29  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]

	* spvw.d (init_multithreading): initialize timeout_call_chain_lock
	spinlock.
	* zthread.d (timeout_call_chain_lock): just declare it - do not
	initialize.
	* xthread.d (SPINLOCK_INIT): remove it.
	spinlocks should be initialized with spinlock_init().
	(xmutex_lock): do not use "var" for local variables.
	(xmutex_trylock): fix typo error.
	(spinlock_acquire): do not check for errors when spinlock_t=xmutex_t
	(spinlock_release): do not check for errors when spinlock_t=xmutex_t
	* spvw_garcol.d (gc_sweep1_varobject_page): holes_count should be
	pointer to uintC. Do not mark explicitly pinned objects.

2008-10-29  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): avoid a compilation warning;
	use ascii_to_string() instead of asciz_to_string() for simplicity

2008-10-29  Sam Steingold  <sds@gnu.org>

	fix --with-threads compilation on platforms where spinlock_t=xmutex_t
	* xthread.d (SPINLOCK_INIT): define
	* zthread.d (timeout_call_chain_lock): use it

2008-10-29  Sam Steingold  <sds@gnu.org>

	* stream.d (get_open_files_lock, release_open_files_lock): define
	(add_to_open_streams, find_open_file): use them
	(rd_ch_keyboard): avoid a "warning: empty body in an if-statement"

2008-10-29  Sam Steingold  <sds@gnu.org>

	Merge the [threads] branch into the trunk
	* constobj.d, constsym.d, control.d, debug.d, error.d, eval.d,
	* lispbibl.d, makemake.in, package.d, pathname.d, savemem.lisp,
	* spvw.d, spvw_allocate.d, spvw_circ.d, spvw_fault.d, spvw_garcol.d,
	* spvw_gcmark.d, spvw_genera1.d, spvw_global.d, spvw_heap.d,
	* spvw_memfile.d, spvw_sigint.d, spvw_sigpipe.d, spvw_sigterm.d,
	* spvw_typealloc.d, spvw_update.d, stream.d, subr.d, subrkw.d,
	* symbol.d, threads.lisp, time.d, xthread.d, zthread.d: merge
	* spvw_garcol_old.d: the pre-MT garbage collector, enabled by
	NO_MULTITHREAD_GC in lispbibl.d
	* makemake.in (SPVW_INCLUDES): add spvw_garcol_old
	* po/Makefile.devel (DSOURCES): ditto

2008-10-28  Sam Steingold  <sds@gnu.org>

	fix bug#2198109: LOAD-LOGICAL-PATHNAME-TRANSLATIONS
	confuses "many" and "one" when *LOAD-PATHS* is wild
	* init.lisp (search-file): treat wild elements of *LOAD-PATHS*
	just like non-wild ones, i.e., return directories, not their listings

2008-10-28  Sam Steingold  <sds@gnu.org>

	* pathname.d (PROBE-PATHNAME): do NOT modify the argument!

2008-10-27  Philippe Brochard  <hocwp@free.fr>

	* modules/clx/new-clx/clx.f (GRAB-BUTTON, UNGRAB-BUTTON): fix
	button argument handling

2008-10-27  Sam Steingold  <sds@gnu.org>

	fix bug#2159172: text drawing functions ignore :start & :end
	* modules/clx/new-clx/clx.f (get_substring_arg)
	(unpack_stringarg_alloca): add
	(general_draw_text, TEXT-EXTENTS, TEXT-WIDTH): use
	unpack_stringarg_alloca

2008-10-26  Sam Steingold  <sds@gnu.org>

	* makemake.in: when re-creating gllib subdir,
	use "config.status $@/Makefile depfiles"
	instead of "config.status --file=$@/Makefile depfiles" as suggested
	in <http://article.gmane.org/gmane.comp.lib.gnulib.bugs/15449>
	to work around an autoconf bug

2008-10-26  Sam Steingold  <sds@gnu.org>

	* configure (conf_dir): remove and inline (called just once);
	fix redirections to avoid the "/bin/sh: Illegal option --" error;
	check whether requested modules require FFI by looking at
	configure.in, Makefile, *.lisp instead of listing modules explicitly

2008-10-25  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FILE-STAT): init file variable

2008-10-25  Sam Steingold  <sds@gnu.org>

	separate potentially blocking system calls from heap access
	* pathname.d (check_file_reopen): use namestring_file_id instead
	of with_file_id
	* stream.d (find_open_file): second argument is uintB flags (this
	is not used as a callback anymore)
	* unix.d, unixaux.d, win32.d, win32aux.d (namestring_file_id):
	replaces with_file_id

2008-10-24  Sam Steingold  <sds@gnu.org>

	Support Berkeley-DB 2.7
	* modules/berkeley-db/configure.in: check for
	DB_ENV.log_set_config and DB_ENV.get_intermediate_dir_mode
	* modules/berkeley-db/bdb.c (DBE-SET-OPTIONS, DBE-GET-OPTIONS)
	[HAVE_DB_ENV_GET_INTERMEDIATE_DIR_MODE]: accept :INTERMEDIATE-DIR-MODE;
	[HAVE_DB_ENV_LOG_SET_CONFIG]:
	accept LOG-DIRECT LOG-DSYNC LOG-AUTO-REMOVE LOG-IN-MEMORY LOG-ZERO
	instead of DSYNC-LOG LOG-AUTOREMOVE LOG-INMEMORY DIRECT-LOG (1 extra)
	(dbe_get_intermediate_dir_mode): add DEFINE_DBE_GETTER1

2008-10-24  Sam Steingold  <sds@gnu.org>

	ensure that all module configures have aux build dir set up
	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): call AC_CONFIG_AUX_DIR here
	* modules/berkeley-db/configure.in, modules/gdbm/configure.in,
	* modules/pari/configure.in, modules/pcre/configure.in,
	* modules/postgresql/configure.in, modules/regexp/configure.in,
	* modules/zlib/configure.in: do not call AC_CONFIG_AUX_DIR,
	pass argument to CL_MODULE_COMMON_CHECKS instead
	* modules/clx/new-clx/configure.in, modules/dirkey/configure.in,
	* modules/fastcgi/configure.in, modules/gtk2/configure.in,
	* modules/i18n/configure.in, modules/oracle/configure.in,
	* modules/dbus/configure.in, modules/rawsock/configure.in,
	* modules/readline/configure.in, modules/syscalls/configure.in,
	* modules/wildcard/configure.in:
	pass argument to CL_MODULE_COMMON_CHECKS

2008-10-24  Sam Steingold  <sds@gnu.org>

	* build-aux/config.rpath, gllib/Makefile.am, gllib/stdint.in.h,
	* gllib/stdlib.in.h, gllib/unistd.in.h, gllib/wchar.in.h,
	* gllib/wctype.in.h, gllib/uniwidth/width.c, glm4/gnulib-cache.m4,
	* glm4/gnulib-common.m4, glm4/gnulib-comp.m4, glm4/include_next.m4,
	* glm4/lib-link.m4, glm4/lib-prefix.m4, glm4/lock.m4,
	* glm4/stdlib_h.m4, glm4/unistd_h.m4, glm4/wchar.m4: sync with gnulib
	* glm4/threadlib.m4: add (pulled in by gettext 0.17)

2008-10-24  Sam Steingold  <sds@gnu.org>

	replace m4/make.m4 with glm4/gnu-make.m4
	* Makefile.devel (gnulib-imported): add gnu-make
	* m4/make.m4: remove
	* glm4/gnu-make.m4: add
	* configure.in: use gl_GNU_MAKE instead of CL_PROG_MAKE

2008-10-24  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.47+ (2008-10-24)

2008-10-23  Sam Steingold  <sds@gnu.org>

	* configure.in (ALL_LINGUAS): remove obsolete variable, use ...
	* po/LINGUAS: new file, keep the list of languages here
	* makemake.in: use it

2008-10-23  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.47 (2008-10-23)

2008-10-23  Sam Steingold  <sds@gnu.org>

	* configure (maybe_mkdir): remove
	* makemake.in: restore --datadir for compatibility with configure

2008-10-23  Stelian Ionescu  <sionescu@common-lisp.net>

	* configure, makemake.in: accept --infodir for compatibility with
	generated configure scripts

2008-10-23  Sam Steingold  <sds@gnu.org>

	fix bug#2188102: new-clx timeout precision is limited
	* modules/clx/new-clx/clx.f (PROCESS-EVENT, EVENT-LISTEN): pass
	unbound instead of NIL as the usec argument to sec_usec()

2008-10-22  Sam Steingold  <sds@gnu.org>

	* po/Makefile.in.in (install-data-yes, installdirs): use "mkdir -p",
	just like on 2007-12-05
	* Makefile.devel (VER, REL): use "./version.sh" instead of "version.sh"

2008-10-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_iff): default=(unsigned)~0
	(IFADDRS): accept :FLAGS-AND and :FLAGS-OR to filter out some interfaces
	(pushSTACK_sockaddr): replaces sockaddr_to_lisp1

2008-10-20  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): check that the DEFCHECKER
	default is a valid CPP constant ([_A-Za-z0-9]*) before protecting
	it with "#ifdef" to accommodate "(unsigned)~0" et al

2008-10-18  Shawn Betts  <sabetts@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (get-wm-class): expect the
	unexpected: there may be many Nulls in WM_CLASS

2008-10-18  Adam Warner  <awarner@users.sourceforge.net>

	fix bug#2175937: Patch --without-unicode build failure
	* pathname.d (direntry_to_string) [!UNICODE]: restore non-UNICODE
	build by using n_char_to_string()

2008-10-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (docdir): defaults in configure to
	${datarootdir}/doc/${PACKAGE_TARNAME},
	not ${datarootdir}/doc/${PACKAGE}
	Reported by "Jose A. Ortega Ruiz" <jao@gnu.org>
	in <http://article.gmane.org/gmane.lisp.clisp.general/12471>

2008-10-17  Sam Steingold  <sds@gnu.org>

	* makemake.in: partially reverted the 2008-10-10 (revision 1.775) patch
	which broke Solaris 8 which requires "gllib/stdint.h".
	CPPFLAGS is for host (and this goes into UTILCOMPILE) while
	XCPPFLAGS is for target (and thus is used to compile *.d)
	Reported by Raymond Toy <raymond.toy@ericsson.com>

2008-10-16  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (USER-INFO): for :DEFAULT,
	use getpwuid(getuid()) if getlogin() fails

2008-10-16  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (CHECK_TYPE): add
	(ensure_living_display, get_ptr_object_and_display)
	(make_xid_obj_low, get_xid_object_and_display, get_display_obj_tc)
	(general_plist_reader, general_plist_writer, SET-WM-HINTS): use it

2008-10-16  Drutsa Pavel  <rawlik@users.sourceforge.net>

	fix bug#2164603: Error: should have been a WINDOW, but was PIXMAP
	* modules/clx/new-clx/clx.f (make_drawable): use
	"make_xid_obj (`XLIB::DRAWABLE`...)" instead of "make_window()"

2008-10-13  Michael Kappert  <michael.kappert@gmx.net>
	Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): strip CR (\r) from all output for woe32

2008-10-13  Sam Steingold  <sds@gnu.org>

	* makemake.in, configure: remove --enable-maintainer-mode and
	never create the autoconf target because configure really depends
	on m4/*, glm4/* &c and to implement this properly we would need to
	check in makemake for autoconf 2.61+ in path, and then generate
	much of Makefile.devel in makemake.in (IOW, I can no longer recall
	when was the last time this target was useful as opposed to a nuisance)

2008-10-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (UTILCOMPILE): use XCPPFLAGS XCFLAGS XCLFLAGS and
	omit EXTRAOBJ to avoid mingw __errno linking problems

2008-10-10  Sam Steingold  <sds@gnu.org>

	* makemake.in: finish the 2007-10-29 (1.690) patch:
	remove all mentions of XCC_UNUSABLE_CPP and gcc-cccp

2008-10-10  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (get_file_size) [WIN32_NATIVE]: add
	(FILE-SIZE) [WIN32_NATIVE]: use it instead of GetFileSizeEx
	which takes a handle and not a pathname

2008-10-08  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (strsignal, _NSIG): add;
	use DEF-C-CONST instead of DEFCONSTANT for signals
	(ECANCELED, ENOKEY, EKEYEXPIRED, EKEYREVOKED, EKEYREJECTED)
	(EOWNERDEAD, ENOTRECOVERABLE): add errnos

2008-10-06  Sam Steingold  <sds@gnu.org>

	fix bug#2146126: name conflict with libmysqlclient
	* spvw.d, lispbibl.d (clisp_malloc): rename from my_malloc
	(clisp_realloc): rename from my_realloc
	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
	* modules/i18n/gettext.c, modules/regexp/regexi.c:
	* modules/syscalls/calls.c, foreign.d, spvw_weak.d: update callers

2008-10-03  Sam Steingold  <sds@gnu.org>

	* foreign.d: use BEGIN_DECLS & END_DECLS

2008-09-29  Sam Steingold  <sds@gnu.org>

	* modules/matlab/wrap.lisp (matfile-content): use MEMORY-AS
	instead of WITH-C-VAR+CAST for efficiency
	Suggested by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>

2008-09-26  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU): better mips detection,
	from the debian ffcall patch

2008-09-26  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.46++ (2008-09-23)

2008-09-26  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (path_truncate, stream_truncate)
	[WIN32_NATIVE]: clarify (simplify?) logic

2008-09-24  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (open-http): also include port number in the Host header
	Reported by Raymond Toy <raymond.toy@ericsson.com>

2008-09-24  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (path_truncate) [WIN32_NATIVE]: fix logic

2008-09-23  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (REGEXP-EXEC): when :BOOLEAN is T but
	match failed, return 1 value NIL instead of 0 values;
	accept :RETURN-TYPE to return a LIST or a VECTOR instead of
	multiple values; also return a list when the number of match
	groups is more than MULTIPLE-VALUES-LIMIT

2008-09-23  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (open-http): fix the Host: header
	Reported by Raymond Toy <raymond.toy@ericsson.com>

2008-09-19  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (SET-TEXTDOMAINDIR): remove unused variable
	* modules/syscalls/calls.c (STREAM-OPTIONS): ditto
	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): ditto
	* genclisph.d (Lsuffix): remove unused global static
	(ULLsuffix): declare only when used
	(emit_typedef_test): use "%ld" for sizeof
	* spvw_debug.d (nobject_out1, bt_out): cast pointers to (uintP)
	before printing, print long ints as "%ld"
	* stream.d (xrealloc): remove unused function
	(TERMINAL-RAW, read_line, READ-INTEGER, READ-FLOAT)
	(WRITE-INTEGER): remove unused variable

2008-09-18  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (my_check_argument): remove (not used
	since DEFCHECKERs were introduced in 1.10 on 2004-05-14)

2008-09-18  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (close@db): pass :ABORT as :NOSYNC

2008-09-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (on_pnamestring): generalize ...
	(stat_obj): remove
	(path_truncate): do not do begin/end_system_call and error
	reporting, return status instead
	(%SET-FILE-SIZE, FILE-SIZE, FILE-STAT, find_first_file)
	(SET-FILE-STAT, STAT-VFS, FILE-OWNER, copy_attributes_and_close):
	use on_pnamestring

2008-09-18  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (open-http): "user-agent" includes version;
	link to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

2008-09-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:FILE-SIZE) [WIN32_NATIVE]:
	surround the GetFileSizeEx call with begin/end_system_call;
	use sint64_to_I instead of off_to_I for the return value

2008-09-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (EVERY_INCLUDES_H): fix the logic for adding config.h

2008-09-16  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: include <sys/param.h>
	(MAXHOSTNAMELEN): fall back to 256 (not 64)
	(MAXPATHLEN): fall back to 4096 (not 1024)
	* modules/syscalls/configure.in: check for <sys/param.h> (for woe32)
	* unix.d: include <sys/param.h> just once
	(MAXHOSTNAMELEN): fall back to 256 (not 64)

2008-09-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:DOMAINNAME)
	(POSIX::%SETDOMAINNAME): add
	* modules/syscalls/posix.lisp (domainname): add defsetf and export

2008-09-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:USER-SHELLS): implement
	* modules/syscalls/posix.lisp (USER-SHELLS): export

2008-09-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c
	(grp_to_lisp): use gid_to_I instead of UL_to_I
	(GROUP-INFO): use integerp instead of uint32_p

2008-09-15  Sam Steingold  <sds@gnu.org>

	* configure: fix bug#2110337: libsigsegv configure hints
	suggest "rm -f ${DIRNAME}/config.cache"

2008-09-15  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (*http-log-stream*): defvar
	(open-http): accept :LOG argument
	(http-proxy, open-http, get-clhs-map, get-string-map)
	(ensure-impnotes-map): use *HTTP-LOG-STREAM* for logging
	* init.lisp (*http-log-stream*): export from CUSTOM

2008-09-15  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script) [win32]: disable $? tests because
	%ERRORLEVEL% on woe32 can be reset to 0 all of a sudden
	http://article.gmane.org/gmane.lisp.clisp.devel/18967
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>

2008-09-13  Sam Steingold  <sds@gnu.org>

	* disassem.lisp (disassemble-machine-code): update for the
	2008-09-10 change: SHELL on success returns NIL

2008-09-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (HSDEFAULT): "http://www.lisp.org/HyperSpec" is dead,
	use "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec"
	* configure: adjust the help message

2008-09-10  Sam Steingold  <sds@gnu.org>

	* pathname.d (SHELL) [WIN32_NATIVE]: return NIL on success and
	exitcode on failure, just like on Unix and as documented
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
	(EXECUTE) [UNIX]: use WEXITSTATUS et al to parse status

2008-09-02  Sam Steingold  <sds@gnu.org>

	* error.d (%DEFCLCS): use symbol_tab instead of symbol_tab_data
	to support TYPECODES on 32 bit platforms
	Reported by Vladimir Tzankov <vtzankov@gmail.com>

2008-09-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): use $(RUN) instead of lisp.run
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>

2008-08-25  Bruno Haible  <bruno@clisp.org>

	* configure (SIGSEGV): Set to libsigsegv-2.6.

2008-08-24  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler_continuation): New function,
	extracted from stackoverflow_handler.
	(stackoverflow_handler): Invoke it. Adapt to sigsegv_leave_handler API
	change in libsigsegv-2.6.

2008-08-21  Sam Steingold  <sds@gnu.org>

	* modules/dbus/dbus.lisp (DBusMessageIter): c-struct, not c-pointer

2008-08-21  Sam Steingold  <sds@gnu.org>

	* foreign.d (foreign_with_pointers_p): support inttypes (return false)

2008-08-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (I_to_ulong, I_to_slong): define regardless of
	HAVE_FFI for the sake of the syscalls module
	* modules/syscalls/calls.c (%SETHOSTID): sethostid does not return
	a value on *BSD, use errno to check for errors
	Reported by José H. Espinosa <jose.h.espinosa@gmail.com>

2008-08-20  Sam Steingold  <sds@gnu.org>

	* modules/dbus/configure.in (dbus_int64_t, dbus_int32_t, dbus_uint32_t)
	(dbus_int16_t, dbus_unichar_t, dbus_bool_t): check types
	* modules/dbus/dbus.lisp (def-c-const): import from EXPORTING;
	pass DBusError by reference using (c-pointer DBusError) instead of
	returning a fresh object using (error (c-ptr DBusError) :in-out) et al;
	(DBusMessageIter): add def-c-type

2008-08-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): use ${TRCRLF} to delete '\r' from
	output in addition to replacing '\n' with '_' to fix woe32

2008-08-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: make sure that end_system_call() is
	called before all errors and that
	errno is only accessed inside begin_system_call/end_system_call

2008-08-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (path_truncate, stream_truncate): call
	end_system_call(); before signaling errors
	(I_to_file_offset, FILE-SIZE) [WIN32_NATIVE]: use LARGE_INTEGER.QuadPart
	(stream_truncate) [WIN32_NATIVE]: fix LARGE_INTEGER literal

2008-08-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (path_truncate, stream_truncate, FILE-SIZE):
	handle WIN32_NATIVE before HAVE_TRUNCATE & HAVE_FTRUNCATE because
	WIN32_NATIVE has a broken ftruncate (similar to fstat: accept some
	unknown int instead of a handle)
	(I_to_offset, STREAM-LOCK, %SETHOSTID): check arg type before conversion
	(file_offset_t): new type, necessary because file offset in win32
	is represented by a non-integer type LARGE_INTEGER
	(I_to_file_offset): convert from an integer
	(path_truncate, stream_truncate): accept length of type file_offset_t
	(%SET-FILE-SIZE): use I_to_file_offset
	(FILE-SIZE): use L2_to_I for WIN32_NATIVE

2008-08-15  Sam Steingold  <sds@gnu.org>

	* pathname.d (find_first_file): fix FindFirstFile call

2008-08-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (HOSTID): rename from GETHOSTID
	(%SETHOSTID) [HAVE_SETHOSTID]: add
	* modules/syscalls/posix.lisp (hostid): add a defsetf
	* modules/syscalls/configure.in (sethostid): add a check

2008-08-13  Frederik  <freggy@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: fix a typo in header detection

2008-08-12  Sam Steingold  <sds@gnu.org>

	* pathname.d (PROBE-PATHNAME): call use_default_dir before
	classify_namestring because the win32 real_path requires an
	absolute pathname

2008-08-12  Sam Steingold  <sds@gnu.org>

	* socket.d: all known unix (and woe32) systems have gethostname

2008-08-12  Sam Steingold  <sds@gnu.org>

	all known unix systems have uname
	* unix.d (uname): remove prototype
	* m4/utsname.m4: remove
	* configure.in, syscalls/configure.in: do not use CL_UTSNAME
	* misc.d (MACHINE-TYPE, MACHINE-VERSION) [UNIX]: assume uname()

2008-08-11  Sam Steingold  <sds@gnu.org>

	* pathname.d: regularize #ifdef UNIX/WIN32 to #if/#elif/#else #error

2008-08-11  Sam Steingold  <sds@gnu.org>

	* pathname.d (FIND_DATA_FWD, FIND_DATA_FSIZE, find_first_file)
	[WIN32_NATIVE]: add
	(classify_namestring): also accept ans return fwd & fsize; use
	find_first_file for WIN32_NATIVE
	(PROBE-PATHNAME): return 4 values for existing paths (+ fwd + fsize)
	(READDIR_entry_timedate): use FIND_DATA_FWD
	(READDIR_entry_size): use FIND_DATA_FSIZE
	(copy_pathname_and_add_subdir): pass NULLs as fwd/fsize to
	classify_namestring()
	(FILE-WRITE-DATE): use find_first_file & FIND_DATA_FWD
	* init.lisp (ppn-fwd): no need to call FILE-WRITE-DATE or DIRECTORY

2008-08-11  Sam Steingold  <sds@gnu.org>

	* gllib/regex_internal.h, glm4/libsigsegv.m4: update from gnulib

2008-08-10  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (hashcode4_atom): avoid MIN which is not defined on woe32
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>

2008-08-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): use PRINC instead of PRINT for cygwin
	Reported by Reini Urban <rurban@x-ray.at>

2008-08-09  Sam Steingold  <sds@gnu.org>

	fix patches 2008-07-11 & 2008-07-12 for Woe32
	* pathname.d (file_status_is_dir) [WIN32_NATIVE]: return bool
	(assure_dir_exists) [WIN32_NATIVE]: fix var field access
	(classify_namestring) [WIN32_NATIVE]: fix var name
	(stat_obj): guard with "#ifdef UNIX"
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>

2008-08-06  Sam Steingold  <sds@gnu.org>

	* fill-out.lisp (fill-stream-flush-buffer):
	remove the "one-line sexp on its own line" special case,
	see <http://article.gmane.org/gmane.lisp.clisp.devel/18759>

2008-08-07  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/dirkey.c (init_iteration_node): do not pass
	pointers into the Lisp heap to system calls

2008-08-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (Rectype_Thread, Rectype_Mutex, Rectype_Exemption):
	move above rectype_longlimit because these are XRECORDs, not LRECORDs

2008-08-05  Sam Steingold  <sds@gnu.org>

	* pathname.d (check_file_reopen): *REOPEN-OPEN-FILE* can also be CLOSE
	* constsym.d (close): declare

2008-08-05  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp: upgrade from readline 5.0 to 5.2
	(variable-value, reset-screen-size, prefer-env-winsize, readerr)
	(state-callback, state-vimotion, state-multikey, state-vicmdonce)
	(default-inputrc, sys-inputrc, tilde-expand): add
	* modules/readline/configure.in: check for the new features

2008-08-05  Vladimir Tzankov  <vtzankov@gmail.com>

	* lispbibl.d (pointable_address_unchecked) [HEAPCODES]:
	export to clisp.h

2008-08-04  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (PATHCONF): fix g++ compilation

2008-08-04  Sam Steingold  <sds@gnu.org>

	* pathname.d (check_file_reopen): fix a GC-safety bug; check the
	value of *REOPEN-OPEN-FILE* and change it to ERROR if it is invalid

2008-08-04  Sam Steingold  <sds@gnu.org>

	* analyse-funtab.lisp (map-calls): turn into a generic function to
	support generic functions (map over fast functions in methods)

2008-08-04  Sam Steingold  <sds@gnu.org>

	* control.d (make_vframe_activate): use GCTRIGGER2(value1,value2)
	instead of a global maygc similar to make_variable_frame() which
	is the only GC-unsafe call in make_vframe_activate()
	Reported by Vladimir Tzankov <vtzankov@gmail.com>

2008-08-04  Sam Steingold  <sds@gnu.org>

	* clos-class6.lisp (class-prototype@built-in-class): finish last
	patch: (SYS::%UNBOUND) should be the first argument to EQ

2008-08-04  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (thread_length): define to 3 because Thread contains
	3 gcv_object_t fields

2008-08-01  Sam Steingold  <sds@gnu.org>

	* modules/dbus/dbus.lisp: support dbus 1.2.1
	(*foreign-guard*): set to T
	* modules/dbus/configure.in: check all functions

2008-07-31  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (documentation@package): fail gracefully when id-href
	is missing the package and impnotes must be regenerated

2008-07-31  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (def-c-enum): accept non-numeric-literal values

2008-07-31  Sam Steingold  <sds@gnu.org>

	* modules/gtk2/configure.in: fail if FFI is not present

2008-07-31  Sam Steingold  <sds@gnu.org>

	* modules/dbus: new module
	* Makefile.devel (MODULES): add dbus

2008-07-29  Sam Steingold  <sds@gnu.org>

	* init.lisp (search-file): fix a bug in "wild" code which caused
	SEARCH-FILE to return NIL even when it found something

2008-07-28 Reini Urban  <rurban@x-ray.at>

	<37_runprog>
	* runprog.lisp: Translate comments to English.

2008-07-28  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (builtin_stream_p): do not export
	* modules/syscalls/calls.c (PATHCONF, FILE-STAT, STAT-VFS):
	use open_file_stream_handle instead of
	builtin_stream_p + SYS::BUILT-IN-STREAM-OPEN-P

2008-07-28  Sam Steingold  <sds@gnu.org>

	new SETFable function POSIX:FILE-SIZE
	* modules/syscalls/configure.in: check for truncate & ftruncate
	* modules/syscalls/calls.c (FILE-SIZE, %SET-FILE-SIZE): implement
	* modules/syscalls/posix.lisp (FILE-SIZE): defsetf & export
	* stream.d (check_open_file_stream): replace strict_p with
	permissive_p to allow retuning nullobj instead of signaling an error
	(open_file_stream_handle): accept permissive_p
	* lispbibl.d (open_file_stream_handle): update the prototype

2008-10-27  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Code cleanup
	* lispbibl.d (unpin_varobject_i): remove just a single
	pinned object from the chain (anyway it was not possible
	to remove more).
	* zthread.d (remove_timeout_call): iterate with single
	variable over the timeout_call_chain.

2008-10-27  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Fix single thread build
	* pathname.d (openp): use open_files_lock only in MT.
	* stream.d (add_to_open_streams): use open_files_lock only in MT.
	(find_open_file): use open_files_lock only in MT.

2008-10-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GC safe regions on system calls in pathname.d
	* lispbibl.d (clisp_thread_t): reorder the fields. Most used
	are first. add _running_handle_directory_encoding_error - global
	variable in pathname.d
	(open_files_lock): global mutex guarding access/modifications of
	O(open_files).
	* spvw.d (init_multithreading): initialize open_files_lock.
	* stream.d (open_files_lock): declaration.
	(add_to_open_streams): serialize calls via open_files_lock.
	(find_open_file): maygc. serialize calls via open_files_lock.
	* pathname.d: add GC safe regions around possibly blocking
	system calls.
	(openp): maygc. serialize calls via open_files_lock.

2008-10-20  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Code cleanup.
	* spvw.d (signal_handler_thread): better comment.
	* spvw_global.d (gc_resume_all_threads): code cleanup (removed
	garbage code).

2008-10-20  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	CALL-WITH-TIMEOUT bugfix and user warning on failure.
	* lispbibl.d (struct timeout_call): add new member - failed -
	set to true if thread has failed to be interrupted.
	* spvw.d (signal_handler_thread): on SIGINT abort if no thread can
	be interrupted. on SIGALRM (CALL-WITH-TIMEOUT) just mark the
	timeout_call as failed if xthread_signal() fails. on termination
	signals - call quit() if some thread cannot be signaled.
	* spvw_global.d (gc_resume_all_threads): before resuming threads -
	report failed timeout_calls if any.
	* zthread.d (remove_timeout_call): is maygc now. acquires the
	timeout_call_chain lock before executing. If the timeout_call has
	failed - reports it as warning.
	(CALL-WITH-TIMEOUT): bugfix when the timeout is fraction number and
	there is overflow in microseconds.
	* pathname.d: sync with CVS head.

2008-10-17  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	CALL-WITH-TIMEOUT fix on linux. Code cleanup
	* lispbibl.d (main_threadp): removed. no more special LISP threads.
	(thr_signal_handler): declaration of the id of the signal handling
	thread (needed for process signal raising).
	* spvw.d (main): initialize thr_signal_handler.
	(signal_handling_thread): SIGALRM and SIG_TIMEOUT_CALL handled the
	same way. May be abandon SIG_TIMEOUT_CALL in future.
	* spvw_garcol.d (gar_col_normal): fix the single threaded build.
	* zthread.d: add comments.
	(CALL-WITH-TIMEOUT): use pthread_kill()/xthread_signal() instead of
	raise(sig). On 32 bit Debian(2.6 kernel) the raise()-ed signals are
	not delivered to the sigwait().

2008-10-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Fix declaration of timeout_call_chain and timeout_call_chain_lock.
	* lispbibl.d: timeout_call_chain and timeout_call_chain_lock
	declared as extern.

2008-10-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	CALL-WITH-TIMEOUT implemented. CATCH frame for THREAD-KILL.
	* lispbibl.d (clisp_thread_t): _dummy_stack_end is replaced by
	_thread_exit_tag. for immediate thread exit (with stack unwind)
	the tag pointed by it should be thrown in the thread context.
	(struct timeout_call): structure for describing CALL-WITH-TIMEOUT call
	in progress.
	(timeout_call_chain): global chain of timeout_call(s) sorted by their
	expiration time.
	(timeout_call_chain_lock): spinlock for guarding the access to
	timeout_call_chain.
	(timeval_less): compares two timeval structures.
	* spvw.d (main_actions): establish CATCH frame for thread exit
	before calling driver().
	(acquire_heap_and_threads_locks): renamed to lock_heap_from_signal. Now
	it acquires only the heap lock and ensures that there is no GC in
	progress (and will not be possible until signal handler releases it).
	(timeval_subtract): subtracts two timeval structures. used for
	computing SIGALRM time.
	(signal_handler_thread): handle SIGALRM and SIG_TIMEOUT_CALL signals
	i.e. CALL-WITH-TIMEOUT without spawning new OS thread.
	* spvw_global.d (gc_suspend/resume_all_threads): no need to keep
	the threads lock while all threads are suspended. Makes signals
	handler thread easier.
	(gc_suspend_count): now it is guarded by the heap lock ("guarded" from
	the signal handler thread).
	* time.d (SYSTEM::%SLEEP): do not use sleep()/usleep() in
	multithread builds since.
	* eval.d (reset): restored it. no more "dummy stack end" for
	thread exit.
	* threads.lisp (%THROW_TAG): throws its argument. Needed in order
	to interrupt thread by from signal handler. (THROW is special form
	and cannot be funcall-ed).
	* constsym.d (thread_throw_tag): symbol for accessing the
	%THROW_TAG function from THREADS package.
	* zthread.d (ensure_uint32): removed - not need for it.
	(thread_stub): establish CATCH frame for thread exit before the
	driver frame.
	(MAKE-THREAD): initialize the _thread_exit_tag for the newly created
	thread.
	(insert_timeout_call): inserts new timeout call into the sorted chain
	of pending ones (timeout_call_chain). Should be called with lock held.
	(remove_timeout_call): removes an item from timeout_call_chain. Should
	be called with the lock held.
	(CALL-WITH-TIMEOUT): implemented without spawning OS threads.
	(THREAD-KILL): use THREAD-INTERRUPT and %THROW_TAG.

2008-10-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Fix possible race condition during SIGINT handling.
	* spvw.d (acquire_heap_and_threads_locks): acquires global locks
	from signal handler without causing deadlock.
	(signal_handler_thread): fix possible race condition in SIGINT
	handling. use acquire_heap_and_threads_locks.

2008-10-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	DEBUG_GCSAFETY fixes in signal handler thread.
	* spvw.d (signal_handler_thread): use_dummy_alloccount can be
	used only when the LISP threads are suspended.

2008-10-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Signal handling code cleanup.
	* lispbibl.d: export updated (with _suspend_count) clisp_thread_t
	to modules. Suspend and resume always lock the threads and do not
	care anymore whether the lock has been already acquired (since all
	mutexes are recursive now).
	(gc_suspend/resume_all_threads): does not take lock_threads anymore.
	(GC_STOP/RESUME_WORLD): does not take lock_threads anymore.
	(WITH_STOPPED_WORLD): does not take lock_threads anymore. parameters
	reordered.
	* spvw.d (for_all_threads): traverse the threads array in
	ascending order (most of the time gives more natural SIGINT handling).
	(interrupt_thread_signal_handler): release the "ok to reenter" spinlock
	before "entering LISP land".
	(signal_handler_thread): more sane signal handling. No signal will be
	missed due to GC in progress.
	* spvw_global.d (gc_suspend/resume_all_threads): does not take
	lock_thread parameter anymore. always acquires threads lock (it is
	safe due to the fact that all mutexes are recursive now).
	(add_per_thread_special_var): code cleanup.
	* spvw_allocate.d: changes due to GC_STOP/RESUME_WORLD parameter change.
	* spvw_garcol.d (gc_sweep1_varobject_page): assert and abort on
	impossible case (that will lead to segfault shortly if happens).
	(fill_varobject_heap_holes): assert if the created object for hole
	filling does not have the same length as the heap hole.
	* zthread.d (MAKE-THREAD): clisp_thread_t allocation is guarded
	by the threads lock (because of add_per_thread_special_var()
	possible race condition).
	(THREAD-INTERRUPT): returns two values - the thread itself and T/NIL
	depending whether it has really tryed to interrupt the thread (in case
	the thread has terminated or there is some OS error - the second
	return value is NIL).
	(THREAD-KILL): same as THREAD-INTERRUPT.
	* xthread.d (xmutex_init): make it recursive on Solaris.
	(xmutext_trylock): define it on Solaris.

2008-10-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Pinned varobjects and signal handling fixes.
	* lispbibl.d (WITH_STOPPED_WORLD): parameters reordered.
	* spvw.d (signal_handler_thread): fixed race condition between GC
	and signal handler.
	(lock_heap_from_signal_thread): removed
	* spvw_garcol.d (gc_sweep1_varobject_page): fixed the pinned
	objects handling.
	(fill_varobject_heap_holes): checks for heap corruption.
	TODO: fill holes in string heap in SPVW_PURE.
	(gar_col_normal): compute the number of possible heap holes before
	allocation of varobj_mem_region arrays.
	* spvw_global.d (add_per_thread_special_var): reorder parameters
	to  WITH_STOPPED_WORLD.
	* zthread.d (ensure_uint32): fixed missing return type.

2008-10-10  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Per thread suspend/resume as GC safe points.
	* lispbibl.d (struct clisp_thread_t): new member - _suspend_count.
	Specifies how many times the thread has been suspended.
	(WITH_STOPPED_THREAD): macro for executing statement ensuring that
	a thread is either terminated or suspended at safe point (used by
	THREAD-INTERRUPT and THREAD-KILL).
	(suspend_thread/resume_thread): global functions declaration.
	* spvw.d: add comments
	(lock_heap_from_signal_thread): function for locking the LISP heap
	when executing in the signal handling thread (should wait for GC to
	finish if in progress).
	(signal_handler_thread): use lock_heap_from_signal_thread().
	* spvw_global.d (suspend_thread/resume_thread): suspend/resume
	LISP thread execution at/from GC safe point.
	(gc_suspend_all_threads/gc_resume_all_threads): changed in order to take
	into account the threads _suspend_count(s).
	* zthread.d (THREAD-INTERRUPT): use WITH_STOPPED_THREAD instead of
	WITH_STOPPED_WORLD.
	(THREAD-KILL): use WITH_STOPPED_THREAD instead of WITH_STOPPED_WORLD.

2008-10-09  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Signals loss fix. Docs update. :VSTACK-SIZE --> :VSTACK_DEPTH
	* zthread.d/subr.d/subrkw.d/constsym.d/threads.lisp/spvw.d:
	*DEFAULT-VALUE-STACK-SIZE* and :VSTACK-SIZE renamed
	to *DEFAULT-VALUE-STACK-DEPTH* and :VSTACK-DEPTH.
	* lispbibl.d (clisp_thread_t): new spinlock: _signal_reenter_ok
	preventing loss of SIG_THREAD_INTERRUPT signal (a signal is sent
	only when this lock is held).
	(GC_SAFE_SPINLOCK_ACQUIRE): macro for GC friendly spinlock acquire.
	* spvw.d (allocate_list_thread_stack): the parameter is stack depth now.
	(create_thread): the parameter is stack depth now.
	(main): after creating main_actions() thread - set the current
	TLS clisp_thread_t to NULL - not in LISP world anymore.
	(interrupt_thread_signal_handler): release the "ok to reenter" spinlock
	after signal re-establishment.
	* spvw_global.d (ACQUIRE_HEAP_LOCK): use GC_SAFE_SPINLOCK_ACQUIRE.
	* zthread.d (MAKE-THREAD): :VSTACK-DEPTH change.
	(THREAD-KILL): fixed. there was race condition problem (many calls for
	the same thread).
	(THREAD-INTERRUPT): be sure that the signal will be received before
	sending it (i.e. "ok to reenter" spinlock).
	* threads.lisp (*DEFAULT-CONTROL-STACK-SIZE*): initialized to 1 MB.

2008-10-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	All threads equal citizens (main not special). Stack sizes settable.
	* lispbibl.d: do not use break_sems in MT builds.
	* spvw.d: main thread is not different than ones created by
	MAKE-THREAD anymore (almost - LISP stack is "leaked" on exit).
	fixed signal handler with DEBUG_GCSAFETY.
	(init_memory): initialize THREADS::*DEFAULT-VALUE-STACK-SIZE*.
	(mt_main_actions): wrapper for main_actions() executed in its own
	thread.
	(main): the thread (C thread) executing  main() does the signal
	handling - after creating mt_main_actions() thread.
	(signal_handler_thread): fix DEBUG_GCSAFETY. ignore SIGHUP and
	SIGCONT on UNIX_MACOSX until I know how to handle them (vfork()
	causes SIGHUP and may be SIGCONT).
	(install_async_signal_handlers): do not start thread for signal
	handling - now it is done from main().
	* spvw_global.d (RESERVE_FOR_MALLOC): in MT build increased to 4
	MB (LISP stacks and symvalues are allocated - currently - via malloc().
	Probably completely different way for stack allocation is needed).
	* constsym.d: add THREADS::*DEFAULT-CONTROL-STACK-SIZE* (C stack) and
	THREADS::*DEFAULT-VALUE-STACK-SIZE* (LISP stack).
	* subr.d, subrkw.d (make_thread): add :CSTACK-SIZE and
	:VSTACK-SIZE keywords parameters
	* threads.lisp: add THREADS::*DEFAULT-CONTROL-STACK-SIZE* (C
	stack) and THREADS::*DEFAULT-VALUE-STACK-SIZE* (LISP stack)
	* zthread.d (ensure_uint32): ensures that its integer argument
	 (object) can fit in uint32
	(MAKE-THREAD): add :CSTACK-SIZE and :VSTACK-SIZE keywords parameters.
	(THREAD-KILL): do not wait on the killed thread to exit.
	* xthread.d (xthread_create): POSIX - create detached threads and
	sets the stack size.
	(xthread_wait): remove - no thread join.
	* pathname.d: add to CVS "threads" branch
	(EXECUTE): wait2 surrounded by GC safe region (many other places
	have the same requirement).

2008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	debug.d added to threads branch.
	* debug.d: added (there is a call to GC that has to stop the  world).

2008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Implementation of THREAD-INTERRUPT, THREAD-KILL and SIGTERM signals.
	* lispbibl.d (clisp_thread_t): two new members. _own_stack -
	whether the thread should release the memory for the LISP stack on exit.
	_dummy_stack_end - pointer in the stack of the thread used for hiding
	the top level driver frame (revealed on thread termination).
	* spvw.d (create_thread): sets the _own_stack depending whether
	the memory for the stack was allocated in it.
	(delete_thread): calls quit() on exiting from the last thread.
	(signal_handler_thread): implement termination signals.
	(main): never exits - even on main thread termination (see comment).
	(main_actions): create the top level driver and hide it via the
	"dummy stack end" - will be revealed only on forced termination.
	* eval.d (reset): reveal the stack beyond the "dummy stack end" if
	needed - the top level driver frame.
	* zthread.d (thread_stub): mark the "dummy stack end" after the
	driver frame.
	(THREAD-INTERRUPT): implemented.
	(THREAD-KILL): implemented (via THREAD-INTERRUPT and dummy stack end).

2008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Signal handling implementation of SIGINT and SIG_THREAD_INTERRUP
	* lispbibl.d: synced with CVS head
	(interruptp): not used in MT.
	* error.d: added to threads branch.
	(tast_break): do nothing in MT.
	* constsym.d (THREAD-RESTART): removed.
	* constobj.d (thread_break_description): string "CTRL-C: User
	break", since from the signal handler thread we cannot allocate
	any lisp object.
	* subr.d (THREAD-RESTART): removed.
	* spvw.d: synced with CVS head
	(signal_handler_thread): implemented CTRL-C signal handler.
	(interrupt_thread_signal_handler): implemented.
	* spvw_sigint.d: use it only in single thread builds
	* spvw_sigterm.d: use it only in single thread builds
	* spvw_typealloc.d (allocate_thread): do not initialize the xth_system.
	* spvw_weak.d: sync with CVS head
	* time.d (%SLEEP): end_blocking_call() in case of error in select().
	* xthread.d (xthread_init): use pthread_mutexattr_settype instead
	of "np" version.
	(xthread_signal): wrapper for pthread_kill().
	* zthread.d (THREAD-RESTART): removed.
	(thread_symbol_place): use eq() for checking  empty symvalue.
	(CALL-WITH-TIMEOUT): removed broken implementation.
	* threads.lisp (THREAD-RESTART): removed from export list.
	(THREADS::*THREAD-WHOSTATE*): special variable for thread's whostate.

2008-10-06  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	SYMBOL-VALUE-THREAD implementation.
	* spvw.d (main): give name to first thread - "main thread".
	* subr.d: removed SYMBOL-GLOBAL-VALUE and SYMBOL-THREAD-VALUE.
	added SYMBOL-VALUE-THREAD.
	* constsym.d: removed SYMBOL-GLOBAL-VALUE and SYMBOL-THREAD-VALUE.
	added SYMBOL-VALUE-THREAD and SET-SYMBOL-VALUE-THREAD.
	* zthread.d (SYMBOL-VALUE-THREAD): returns two values - global/per
	thread symbol binding and BOUND-P boolean (as of -
	http://article.gmane.org/gmane.lisp.clisp.devel/19153)
	(SET-SYMBOL-VALUE-THREAD): used for SETF of the SYMBOL-THREAD-VALUE.
	(thread_symbol_place): helper function returning pointer to symbol
	binding (in thread or global).
	(MAKE-THREAD): make :NAME parameter is required - every thread
	should have name.
	(check-thread): thread argument replacement (when not a thread is
	passed).
	* threads.lisp: export SYMBOL-VALUE-THREAD and define SETF for it.

2008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	MT signal handling partial implementation.
	* lispbibl.d (NC_STACK_): moved here from zthread.d.
	(NC_pushSTACK): moved here from zthread.d.
	(SIG_THREAD_INTERRUPT): signal used for interrupting thread
	execution (SIGUSR1).
	* spvw.d: MT signal processing machinery moved here from
	zthread.d (needs macros like for_all_threads() and we do not want
	to expose the threads internals - i.e. allthreads[] array).
	(async_signal_mask): returns the signal mask including all async
	signals that have to be handled/blocked.
	(install_async_signal_handlers): implemented.
	(signal_handler_thread): the signal handling thread. partially
	implemented.
	(interrupt_thread_signal_handler): SIG_THREAD_INTERRUPT handler.
	just a stub - to be implemented.
	* zthread.d: MT signal processing stuff moved to spvw.d. "Foreign"
	stack access macros moved to lispbibl.d.

2008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Small fixes
	* constsym.d (LISPSYM_B): initialize the filler member for
	LINUX_NOEXEC_HEAPCODES and MULTITHREAD.
	* xthread.d: better handling of pthreads with recursive mutex
	support.

2008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Small fixes and initial signal handling routines.
	* lispbibl.d (install_async_signal_handlers): install global async
	signal handlers in MT (starts non-lisp thread waiting with
	sigwait() for masked signals)
	* spvw.d (main): do not install normal handlers for async signals in MT.
	(recursive_mutexattr): cached global mutex attribute for recursive
	mutex creation (if supported by pthreads).
	* spvw_allocate.d: just formatting
	* spvw_global.d (add_per_thread_special_var): symbol_index was
	declared twice.
	* constsym.d (symbol-thread-value): added.
	* subr.d (symbol-thread-value): added.
	* zthread.d (thread_stub): initialize thread backtrace (important
	on errors). fix the lisp stack handling in case of errors.
	(symbol-thread-value): added and implemented.
	(install_async_signal_handlers): added - still not implemented.
	* xthread.d: xmutex_t should be recursive mutex - because of WIN32
	CRITICAL_SECTION that is always recursive (we want to have same
	behavior on all platforms).
	Implemented for POSIX_THREADS in case the pthreads implementation
	does not already support it.
	* threads.lisp (symbol-thread-value): exported from MT package.

2008-10-03  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Driver frame for new threads and initial special vars bindings
	* lispbibl.d (threadp): macro for testing if an object is lisp
	thread object.
	* spvw.d (delete_thread): do not free per thread symvalues - leave
	them to release_threads (during GC).
	* zthread.d: some comments
	(release_threads): release the per thread symvalues.
	(error_thread): signal type_error for its argument (as error_list).
	(thread_stub): create a driver frame before calling thread function.
	compute initial special variables bindings before calling thread
	function.
	(MAKE-THREAD): additional &key parameter - initial bindings. defaults
	to mt:*default-special-bindings*.
	(THREADP): implemented.
	(THREAD-NAME): implemented.
	(THREAD-ACTIVE-P): implemented.
	(SYMBOL-GLOBAL-VALUE): new function - returns the global symbol value.
	* constsym.d (symbol_global_value): added.
	(default_special_bindings): added.
	(initial_bindings): keyword added.
	* subr.d (MT:MAKE-THREAD): add :initial-bindings keyword parameter.
	(MT:SYMBOL-GLOBAL-VALUE): added.
	* subrkw.d: change MAKE-THREAD definition to accept :initial-bindings.
	* threads.lisp (SYMBOL-GLOBAL-VALUE): exported.
	(*DEFAULT-SPECIAL-BINDINGS*): exported and initialized.

2008-09-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Status update and (delete-package) per thread symbols release
	* spvw.d (clear_per_thread_symvalues): is not maygc.
	* symbol.d (proclaim_constant): because of clear_per_thread_symvalues().
	* package.d (delete_package_aux): remove possible per thread
	bindings of package symbols.

2008-09-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Thread safety fixes (for special variables)
	* lispbibl.d (clear_per_thread_symvalues): maygc while waiting for
	threads lock.
	(GC_STOP/RESUME_WORLD): additional parameter indicating whether we
	already own the threads lock.
	(WITH_STOPPED_WORLD): previously was _PERFORM_GC. added parameter.
	(PERFORM_GC): use WITH_STOPPED_WORLD
	* spvw.d (lock/unlock_threads): mutex locking surrounded with
	begin/end_system_call().
	(add_per_thread_special_var): moved to spvw_global.d (since it may
	"stop the world").
	(clear_per_thread_symvalues): maygc while waiting for threads lock.
	* spvw_global.d (add_per_thread_special_var): moved here from
	spvw.d. will "stop the world" when reallocating threads symvalues.
	(gc_suspend/resume_all_threads): additional parameter indicating
	whether to acquire the thread lock (it is not recursive and the
	caller may already own it).
	* spvw_allocate.d: pass additional parameter to GC_STOP/RESUME_WORLD().
	* eval.d (interpret_bytecode_): fix GCSAFETY in cod_bind.
	* symbol.d (proclaim_constant): fix GCSAFETY.
	* zthread.d: replace begin/end blocking system calls with
	begin/end blocking calls while locking threads.
	* savemem.lisp (saveinitmem): do not bind global symbols before
	saving since this will create per thread bindings that will not
	survive loadmem().

2008-09-25  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Per thread "local special variables" and compiled closures support.
	* lispbibl.d (Symbol_thread_value): new macro used by
	dynamic_bind.  Empty per thread symvalues can be bound.
	(dynamic_bind): use Symbol_thread_value instead of Symbol_value.
	* spvw.d (add_per_thread_special_var): maygc. fix possible race
	condition.
	(initmem): allocate per thread variables before init_object_tab() -
	so *features* is not defined as per thread.
	* eval.d (interpret_bytecode_): handle special variables (cod_bind)
	* control.d (make_variable_frame): handle local special variables
	* spvw_garcol.d (gc_sweep2_varobject_page): add special case:
	!defined(NO_symbolflags) and !(SPVW_PURE) - not clear whether such
	combination is possible.
	* spvw_debug.d: sync with CVS head
	* stream.d: sync with CVS head

2008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Add per thread symvalue only once.
	* control.d (PROCLAIM): Fix: add per thread symvalue only once.

2008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Per thread special variables
	* lispbibl.d (struct symbol_):  add tls_index for per thread
	symbol value.
	(SYMBOL_TLS_INDEX_NONE): empty value for the tls_index.
	(SYMVALUE_EMPTY): non existing symvalue in per thread TLS.
	(Symbol_value): redefined in MT
	(Symbolflagged_value): new macro for accessing the symbol value
	of flagged symbols. It creates the per thread entries.
	(clisp_thread_t): removed _symvalues from the end. The clisp_thread_t
	structure once allocated do not move. Added _ptr_symvalues - accessible
	for modules - where the per thread symvalues are stored.
	(thread_size): removed (clisp_thread_t has const size now)
	(thread_objects_offset): removed
	(thread_objects_count): removed
	(add_per_thread_special_var): adds symvalues (empty) in all threads
	for the specified symbol (called from PROCLAIM).
	(clear_per_thread_symvalues): makes all per thread symvalues empty for
	the specified symbol (used when special var is redefined as constant)
	(realloc_thread_symvalues): reallocates the storage for symvalues -
	_ptr_symvalues in a thread.
	* constsym.d: initialize the tls_index of symbol in MT builds
	* spvw.d (init_multithread_special_symbols): creates per thread
	symvalues for all standard special variables (used when not
	loading image file).
	(add_per_thread_special_var): implementation. adds symvalues (empty) in
	all threads for the specified symbol (called from PROCLAIM).
	(clear_per_thread_symvalues): implementation. makes all per thread
	symvalues empty for the specified symbol (used when special var is
	redefined as constant).
	(realloc_thread_symvalues): implementation. reallocates the storage for
	symvalues - _ptr_symvalues in a thread.
	(for_all_threadobj): redefined to iterate over _ptr_symvalues.
	* spvw_typealloc.d (make_symbol): allocate enough space for the
	symbol and initialize the tls_index.
	* spvw_update.d (do_update_symbol): use symbol_length when
	iterating over symbol_ objects (in MT symbols are more like an xrecord).
	* spvw_gcmark.d (gc_mark): use symbol_length when iterating over
	symbol_ objects.
	* spvw_memfile.d (memflags): added bit(21) for MULTITHREAD image
	 (symbols are larger).
	(memdump_header_t): added _per_thread_symvalues - stores how many cells
	for symvalues should be allocated (global num_symvalues value).
	(loadmem_from_handle): initializes all per thread symvalues (of the only
	running thread) to empty.
	* zthread.d: small changes caused by thread_size() removal.
	* eval.d (unwind): use Symbolflagged_value(obj).
	(bind_next_var): use Symbolflagged_value(obj).
	* control.d (proclaim): adds per thread symvalue for special
	declarations.
	(activate_bindings): use Symbolflagged_value(obj).
	(letstar): use Symbolflagged_value(obj).
	(bind_next_var): use Symbolflagged_value(obj).
	* symbol.d (proclaim_constant): clear the per thread symvalues if any.

2008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GCSAFETY bug in SOCKET-SERVER-CLOSE
	* stream.d (socket_server_close): fixed GCSAFETY bug.

2008-09-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Move globals to clisp_thread_t structure.
	* lispbibl.d (interrupt_pending): make it per thread.
	(writing_to_subprocess): make it per thread.
	* spvw.d (create_thread): initialize the new thread environment.
	* spvw_sigint.d (interrupt_pending): make it per thread.
	* spvw_sigpipe.d (writing_to_subprocess): make it per thread.
	* spvw_circ.d (USE_MULTI_LEVEL_BITMAP): was #ifdef MULTITHREAD.
	* zthread.d (make_thread): do not share aktenv with creating thread.

2008-09-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Per thread break semaphores.
	* lispbibl.d: make break_sems to be per thread.
	(clisp_thread_t): added _break_sems to thread's data
	(break_sems): macro for accessing current thread semaphores.
	* spvw.d: remove global break_sems when building with threads.
	* zthread.d (disable_thread_async_signals): make it void (also
	fixes compilation problem on linux).

2008-09-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Unwind-protect for pinned objects. Pinned object chains per thread.
	* lispbibl.d: removed HAVE_PINNED_BIT
	(pinned_chain_t): all pinned objects within a thread are chained.
	(pin_varobject): make unwind-protect frame and add to the thread chain.
	(unpin_varobject_i): removes all elements from pinned chain until
	it reaches its argument
	(unpin_varobject): unpin already pinned object.
	* spvw.d (main): leave the pinned chain empty.
	* spvw_sigint.d (react_on_sigint): do not unpin any object.
	unwind-protect will do this.
	* spvw_garcol.d: removed HAVE_PINNED_BIT cases.
	(fill_relocation_memory_regions): add all pinned objects from the
	threads chains.
	(page_contains_pinned_object): scan chains of pinned object of all
	threads.
	* stream.d: adjust pin/unpin_varobject to match the unwind-protect
	nature of pin_varobject().
	* zthread.d (make_thread): initialize pinned object chain.

2008-09-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Signal handling fixes.
	* lispbibl.d (interruptp): in multithreading - act only if called
	within the main thread (all async signals are handled in main thread).
	* spvw.d (STACK_PAGE_THRESHOLD): make it 4K. Sometimes debug
	builds happened to sigsegv depending on default stack address
	 (USE_CUSTOM_TLS=3).
	* spvw_sigint.d: comments added
	* xthread.d (xthread_sigmask): sets/gets current thread signal mask
	* zthread.d: use xthread_sigmask().

2008-09-13  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	SIGINT fix. Finish GC safe region (if interrupted in one).
	* spvw_sigint.d (react_on_sigint): Finish GC safe region
	before calling error() (if we are interrupted in GC safe
	region).

2008-09-13  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	MT signal handling. Streams system calls safe for GC.
	* lispbibl.d: disabled multithreading when NO_ASYNC_INTERRUPTS.
	(handle_length): maygc, accepts pointer to gcv_object_t.
	(main_threadp): macro - true if we are in the main thread.
	(SEMA_/SEGV_SEMA_): macro for conditional expansion of signal
	"semaphores" depending on the platform/build (for OSX is wrong).
	* zthread.d: disable the asynchronous signals for newly created threads.
	(disable_thread_async_signals): disables the async signals for the
	current thread.
	(thread_stub/exec_timeout_call): disable async signals at beginning.
	* spvw_sigint.d
	(react_on_sigint): unpin possibly pinned object for the main thread.
	* stream.d: make all system calls "safe for gc". GC may run while
	waiting for input.
	* spvw_memfile.d (savemem): handle_length() expects pointer to
	stream now.

2008-09-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	DEBUG_GCSAFETY fixes.
	* lispbibl.d: include xthread.d in clisp.h for proper module build.
	(TARGET_CPU_DEFINED): if defined - the inclusion of xthread.d will
	not try to deduce the CPU type.
	* spvw.d (current_thread_alloccount): moved from
	spvw_global.d. Special case when called before main() (from C++
	statics initializations).
	* spvw_global.d (current_thread_alloccount): moved to spvw.d
	* xthread.d: define the CPU from compiler supplied definitions if not
	already done in lispbibl.d. Needed for spinlock_t functions when
	included from modules.

2008-09-03  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Fast thread local storage w/o compiler support (32 bit platforms only).
	* lispbibl.d: new CFLAGS - USE_CUSTOM_TLS={1,2,3}
	(set_current_thread): redefined for different types of TLS.
	(current_thread): redefined for different types of TLS.
	(roughly_SP): returns the current stack pointer (used when
	USE_CUSTOM_TLS=2,3).
	(thread_specific_entry/thread_specific_data): cache/hash for
	SP to clisp_thread_t pointer mapping.
	(tsd_getspecific): fast lookup for TLS when USE_CUSTOM_TLS=2
	* spvw.d (threads_tls): global variable holding pointers to
	threads local storage.
	(tsd_initialize): initialize TLS when USE_CUSTOM_TLS=2
	(tsd_setspecific): adds per thread variable to global storage when
	USE_CUSTOM_TLS=2
	(tsd_remove_specific): removes thread specific data for the calling
	thread (USE_CUSTOM_TLS=2).
	(tsd_slow_getspecific): gets the per thread variable value when there
	is cache miss in the fast version  (USE_CUSTOM_TLS=2).
	(current_stack_base): returns the stack bottom of the current thread.
	Used when USE_CUSTOM_TLS=3.
	(current_stack_size): returns the max. stack size of the current thread.
	Used when USE_CUSTOM_TLS=3.
	(get_stack_region): helper function when POSIX_THREADS are defined. Gets
	the stack regions of threads created via pthreads.
	(set_current_thread): implemented as function when USE_CUSTOM_TLS=3
	(threads_maps): global table mapping stack pointer to appropriate
	clisp_thread_t (indexed with  SP shifted by page size - 12 bits).
	(init_multithread): initialize the custom thread local storage (if any).
	(get_reserved_memory_regions): removed.
	(is_safe_region): removed.
	(main): special declaration when USE_CUSTOM_TLS=2
	* zthread.d (thread_stub/exec_timeout_call): special declaration
	when USE_CUSTOM_TLS=2
	* constobj.d: initial commit (added all_threads and
	threads_to_release).

2008-08-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GC fixes for CLOS/SMALL_SSTRING forward pointers and SPVW_PURE.
	* spvw_garcol.d
	(instance_p): returns true if the argument points to CLOS instance.
	(sstring_p): return true if the argument points to sstring (and
	HAVE_SMALL_SSTRINGS is defined).
	(gc_sweep1_varobject_page): do not reserve memory for
	forwarded/reallocated objects (CLOS instances/small strings). Use
	sstring_p/instance_p instead of many ifdefs.
	(gc_sweep2_varobject_page): do not relocate marked objects that
	have been forwarded (CLOS instances and small strings). Special case
	for symbols heap in SPVW_PURE memory model.
	(gar_col_normal): fixed multiple iteration bug over varobject heaps when
	GENERATIONAL_GC is defined and generation is 1.
	* lispbibl.d: added TODO for pin_varobject

2008-08-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GC fixes. SPVW_PAGES pinned varobjects support.
	* spvw_garcol.d (gc_sweep1_varobject_page): code cleanup. fixed
	the case of multiple holes at the end of memory regions.
	(gc_sweep2_varobject_page): code cleanup and fix. moves the objects
	to calculated addresses in sweep1 phase (not by fill pointer anymore).
	(fill_relocation_memory_regions): fixed sorting of memory regions
	(page_contains_pinned_object): returns true if there is a pinned
	object in the page.
	(gc_compact_from_varobject_page): do no compact pages that contain
	pinned varobjects.

2008-08-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GC fixes.
	* lispbibl.d: enabled multithreading when NO_ASYNC_INTERRUPTS.
	* spvw_garcol.d: comments cleanup
	(gc_sweep1_varobject_page): mark the last pinned object in case
	we have not iterated through it.
	(fill_varobject_heap_holes): implementation for simple bit
	vectors (1/2/4/8/16/32) with SPVW_PURE memory model.

2008-08-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Fixed TYPECODES build
	* spvw_garcol.d (fill_relocation_memory_regions): fixed TYPECODES
	compliation problem (varobjectp is not defined with TYPECODES).
	(varobj_mem_region): fixed typo in definition (SVPW_PURE --> SPVW_PURE).

2008-08-25  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Support for "pinned" varobjects.
	* lispbibl.d: sync with CVS head
	(Thread): removed xth_next and xth_prev from Thread xrecord
	(clisp_thread_t): added _pinned object - in case there is no
	HAVE_PINNED_BIT defined.
	(clisp_thread_t): removed the _lthread object.
	(thread_objects_offset/count): thread GC visible objects start from
	_aktenv.
	(delete_thread): additional parameter - full. If true - frees all
	resources (memory) previously allocated.
	(release_threads): releases the threads that have terminated and there
	are no references to them. Called from GC.
	(pin/unpin_varobject): macros that pin/unpin varobject. Currently
	implemented only if HAVE_PINNED_BIT is undefined.
	* spvw.d (push_threads_on_stack): removed
	(delete_thread): additional parameter - full. Implementation.
	(init_memory/main): fixed/add (main) threads initialization.
	* spvw_garcol.d (varobj_mem_region): struct defining memory region
	in varobject heap that can be used for compaction. Also the same
	struct is used for describing the holes in heap that should be
	filled after the compaction.
	(ACCEPTABLE_VAROBJECT_HEAP_HOLE): defines the "acceptable" size of
	the hole in the heap. If there is less place than this constant in
	front of pinned object - new hole is added.
	(gc_sweep1_varobject_page): entirely rewritten in order to take
	care of pinned objects.
	(gc_sweep2_varobject_page): changed in order not to move pinned
	objects - addresses are already calculated in gc_sweep1_varobject_page.
	(fill_relocation_memory_regions): fills a list (array actually) of
	memory regions in varobject heap that can/should be filled during
	compaction. Takes care to keep pinned objects out of these regions.
	(fill_varobject_heap_holes): fills the holes in all varobject heaps,
	caused by the existence (if any) of pinned objects.
	(gar_col_normal): implements the thread xrecords life cycle. All
	terminated threads without references to them are released (the same
	as open files).
	(gar_col_normal): re-factored to use the new pinned object support
	during the sweep phase.
	(gar_col_done): calls release_threads() if needed.
	* spvw_sigsegv.d: sync with CVS head
	* spvw_typealloc.d: comments cleanup
	* zthread.d (release_threads): implementation
	(make-thread): "re-factored" for thread safety and new threads
	life cycle (O(all-threads))
	(list-threads): implemented correctly.

2008-08-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Added GC safe points
	* lispbibl.d (GC_SAFE_CALL/GC_SAFE_SYSTEM_CALL): macros for easing
	encapsulation of blocking system calls which are safe for GC
	(clisp_thread_t): changed typedef. C++ does not like forward
	declarations of "anonymous" typedef-ed structures.
	* stream.d (low_clear_input_unbuffered_handle): added maygc
	(listen_char_unbuffered): added maygc
	(clear_input_unbuffered): added maygc
	(socket-status): blocking select() is safe for GC
	* spvw_fault.d
	(handle_fault_range): implement locking around cache and page
	protection change (the bulk i/o is still not safe for GC)

2008-08-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Make the GC re-entrant
	* spvw_global.d (gc_suspend_count): re-entry counter
	(gc_suspend_all_threads/gc_resume_all_threads): implement the
	GC re-entrancy

2008-08-17  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GENERATIONAL_GC support. Thread xrecord changes.
	* lispbibl.d
	(Thread): the record contains now a pointer (xth_globals) to the
	clisp_thread_t structure (instead of separate pointers
	to LISP stack, backtrace and TLS).
	(push_threads_on_stack): global function to push all active
	threads (in allthreads[] array) to the current thread LISP stack.
	* spvw.d (push_threads_on_stack): implementation.
	(delete_thread): big TODO here. See the comment at the end.
	* spvw_heap.d
	(physpage_state_t): added a cache_lock spinlock. During fault
	handling single thread may manipulate the protection and cache.
	* spvw_genera1.d (build_old_generation_cache): initialize the
	cache_lock of physpage_state_t structures.
	* spvw_fault.d (handle_fault): implement locking around cache and
	page protection changes. PROT_READ_WRITE pages always return
	success now (it means other fault has handled it before us).
	* zthreads.d (list_threads): implemented
	(thread_yield): added safe for GC point.
	(make_thread): initialize the xth_global of the Thread record.

2008-08-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	DEBUG_GCSSAFETY implementation + REPL GC safe point.
	Builds with GENERATIONAL_GC will experience segfaults.
	* lispbibl.d: added GCSAFETY for MT as discussed in
	http://article.gmane.org/gmane.lisp.clisp.devel/18750
	(GC_STOP_WORLD): macro for stopping all threads for GC
	(GC_RESUME_WORLD): macro for resuming all suspended during GC
	threads.
	(alloccount): redefined as macro when build with MT and GCSAFETY.
	(clisp_thread_t): added _alloccount for each thread
	(PERFORM_GC/_PERFORM_GC): refactored in order to take into
	account DEBUG_GCSAFETY
	(current_thread_alloccount): returns a pointer to the
	current thread _alloccount
	(GC_SAFE_REGION_END): fixed possible race condition
	(begin/end_blocking_call): pair macro for defining safe for GC
	regions when the execution is already in system call
	* spvw.d (create_thread): do not initialize the main (first)
	clisp_thread_t fields.
	* spvw_global.d
	(current_thread_alloccount): implementation
	(gc_suspend_all_threads): keep the heap/threads lock on exit
	(gc_resume_all_threads): do not acquire threads lock and
	handle properly heap lock.
	* spvw_allocate.d: added DEBUG_GCSAFETY support
	(LOCK_ALLOCATE): stops the "world" on each allocation in GCSAFETY
	(RETURN_OBJ): resumes the "world" after successful allocation
	in GCSAFETY
	(inc_alloccount): increases the _allocount in all threads (not
	efficient - see comments).
	* zthread.d
	(thread_stub): now it is /*maygc*/ (in GCSAFETY we still do
	not have current_thread() set).
	* stream.d: added GC safe region for REPL. the patch is located at:
	http://code.brumbar.com/stream.d-patch
	(low_read_unbuffered_handle): maygc now.
	(rd_ch_unbuffered): maygc now. the encoding re-acquired from stream
	for each character (since low_read_unbuffered_handle is maygc now).
	(rd_ch_terminal1): maygc now
	* time.d: the patch is located at:
	http://code.brumbar.com/time.d-patch
	(sleep): added safe for GC region arround the system call

2008-08-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	GC_SAFE_REGION_END fix + blocking system calls macros.
	* lispbibl.d (GC_SAFE_REGION_END): fixed possible race condition
	(begin/end_blocking_system_call): macros for marking possibly
	blocking system calls.
	* zthread.d (make-thread): use STACK_item_count() macro for computing
	stack size. use begin/end_blocking_system_call.

2008-08-06  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Heap/GC changes
	* lispbibl.d (pointable_address_unchecked): exported to
	clisp.h (present in CVS head as well)
	(Rectype_Thread,Rectype_Mutex,Rectype_Exemption): moved to
	xrecord area in the declarations (present in CVS head as well)
	(GC_SAFE_REGION_BEGIN/END): now they make GCTRIGGER() for
	debugging purposes.
	(clisp_thread_t): _lthread type changed to gcv_object_t.
	(clisp_thread_t): renamed the spinlocks and mutex for GC
	suspend/resume (now begin with _gc_xxx).
	(thread_objects_offset): does not need parameter. Also include
	again the _lthread.
	(PERFORM_GC): now takes second parameter - whether to lock
	the heap operation before performing GC (since it can be
	called explicitly, not only from allocations).
	(inc_allocstamp): the specialization for mv_space moved after
	the definition of clisp_thread_t.
	* spvw.d: fixed some comments
	(create_thread): takes single parameter - the list stack size.
	(delete_thread): takes a single parameter - the clisp_thread_t
	to be deleted.
	(gc_suspend_all_threads): moved to spvw_global.d
	(gc_resume_all_threads): moved to spvw_global.d
	(main): allocates Thread record for the main thread (done after the
	heap is initialized).
	* spvw_global.d (gc_suspend_all_threads): moved here from
	spvw.d. added second parameter whether to acquire the heap/GC
	lock (in case we are called not from allocate_xxxx but explicitly).
	(gc_resume_all_threads): moved here from spvw.d
	(ACQUIRE_HEAP_LOCK): macro for locking the heap (and GC as well)
	(RELEASE_HEAP_LOCK): macro for releasing the heap lock.
	* spiv_allocate.d
	(all): use ACQUIRE/RELEASE_HEAP_LOCK for locking/releasing the heap
	(all): add second parameter "false" to all PERFORM_GC calls (since
	we already hold the alloc/GC lock).
	* spvw_memfile.d (savemem): calls PERFORM_GC with second parameter
	"true" (alloc/GC lock should be acquired)
	* debug.d (gc): calls PERFORM_GC with second parameter "true"
	 (alloc/GC lock should be acquired)
	* spvw_circ.d (mlb_expand): added a typecast (g++ complains).
	* zthread.d (thread_stub): re-factored.
	(make_thread): re-factored. removed possible deadlock.

2008-08-04  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (thread_length): define to 3 because Thread contains
	3 gcv_object_t fields (sync from HEAD)

2008-08-02  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]

	Heap/GC changes for multithreading
	* lispbibl.d (struct clisp_thread_t): added fields for
	thread suspend/resume support (used for GC).
	(GC_SAFE_POINT, GC_SAFE_POINT_ELSE): macros that define a safe
	point for GC in thread execution.
	(GC_SAFE_REGION_BEGIN,GC_SAFE_REGION_END): macros defining safe
	for GC regions (in begin/end_system_call)
	(PERFORM_GC): macro used for "safe" performing of GC. suspends/resumes
	threads before/after the GC.
	* xthread.d (spinlock_t): enabled spinlocks. added asm implementation
	for POWERPC and fixed the one for x86.
	(xcodition_t): finished native win32 implementation (not tested).
	(xthread_cancel): removed.
	(xthread_wait): added. waits for thread termination
	(xmutex_trylock): added
	(spinlock_tryacquire): added
	* zthread.d
	(make_thread,thread_stub): re-factored the thread creation.
	(call-with-timeout): removed usage of xthread_cancel (not GC safe).
	the spawned thread is not terminated in any way now.
	* spvw.d
	removed the MT dependency on the mmap.
	(main): initialization of MT in the very beginning
	(create_thread): just creates and initializes a clisp_thread. does not
	registers the new thread any more (since it still does not run)
	(delete_thread): fixed bug with thread indexing
	(lock_threads): obtains global thread operations mutex
	(unlock_threads): releases the global thread operation mutex
	(register_thread): register a clisp_thread_t in the global thread array
	(the clisp_thread_t should be running at that time - because of GC).
	(gc_suspend_all_threads): suspends all running threads at points
	"safe" for GC.
	(gc_resume_all_threads): resumes the suspended (for GC) threads.
	* spvw_global.d
	(struct mem): added alloc_lock (spinlock_t) guarding both
	allocation and GC.
	(init_heap_locks): initializes heap locks(s). currently just alloc_lock.
	* spvw_allocate.d
	(LOCK_ALLOCATE, RETURN_OBJ): All heap allocation begin with
	LOCK_ALLOCATE and return via RETURN_OBJ.
	These macros manage the heap/GC lock(s).
	* spvw_memfile.d: calls to GC enclosed in PERFORM_GC.
	* debug.d: calls to GC enclosed in PERFORM_GC.

2008-07-28  vlado tzankov  <vtzankov@gmail.com>  [threads]

	Initial commit of multithreading. Lisp globals are implemented via
	TLS (with or without compiler support)
	* lispbibl.d (struct clisp_thread_t): reordered the fields.
	the structure starts with the ones
	that have to be accesses from modules (STACK, mv_spaces, etc).
	Added _SP_anchor (was global in spvw.d)
	(current_thread, _current_thread, current_thread_tls_key): macro
	current_thread() provides access to the current clisp_thread_t via
	per_thread variable _current_thread (in presence of compiler support)
	or through xthread_key_get (slow).
	(THREAD_SYMVALUES_ALLOCATION_SIZE): initial allocation size of
	clisp_thread_t structure - at the end symvalues will be appended
	(before the change the size depended on the mmap_pagesize)
	(per_thread): removed all qualifiers from global variables in single
	thread builds.  in MT builds - there is single global per thread
	variable for CLISP internals.
	(thread_objects_offset, thread_objects_count): excluded _lthread from
	the returned offset/count. seems to cause problems with GC sometimes.
	(set_current_thread): the first thing a new thread should call
	- assigns the clisp_thread_t to the TLS.
	(create_thread,delete_thread,maxnum_symvalues): made global
	* spvw.d (create_thread): changed to accept size of LISP stack.
	(delete_thread): frees the allocated LISP stack.
	(allocate_lisp_thread_stack): allocates LISP stack.
	currently with malloc()
	(get_reserved_memory_region, is_safe_region): ensure that address range
	for LISP stack is safe (was used in the version with SP tweaking
	- probably will be needed later).
	(init_memory, main): "globals" initialization moved after
	current_thread() is valid.
	* spvw_typealloc.d (allocate_thread): xth_system will be
	initialized on thread creation. what to do with the other fields?
	* xthread.d (xthread_cancel): after cancellation wait the thread to exit
	* zthread.d (NC_STACK_,NC_pushSTACK): macros for filling
	non-current(NC) LISP stacks of not yet started threads.
	(thread_stub): the main entry point of threads created by MAKE-THREAD.
	(MAKE-THREAD): implemented. creates a new OS thread and
	LISP record for it.
	(exec_timeout_call): the entry point of threads created
	by CALL-WITH-TIMEOUT
	(CALL-WITH-TIMEOUT): reimplemented.
	creates OS thread bu NO LISP record for it.
	* thread.lisp (TIMEOUT-MESSAGE): convert to string the default
	answer (y-or-n provides list(s) with characters).

2008-07-27  Sam Steingold  <sds@gnu.org>

	fix bug#2029069: stack overflow with gethash
	* hashtabl.d (hashcode3_atom, hashcode3stable_atom, sxhash_atom):
	accept level argument (ignore it because EQUAL hash code does not
	recurse on atoms)
	(HASHCODE_MAX_LEVEL): rename from HASHCODE_TREE_MAX_LEVEL
	(HASHCODE_NEED_LEAVES): rename from HASHCODE_TREE_NEED_LEAVES
	(hashcode_tree_rec): pass level+1 to hashcode_leaf
	(hashcode_tree): accept level argument
	(hashcode3, hashcode3stable, hashcode4, sxhash): pass level=0 to
	hashcode_tree()
	(hashcode4_): new macro: like hashcode4(), but pass level+1 to
	hashcode_tree()
	(hashcode4_atom, hashcode4_vector, hashcode4_vector_T): accept
	level argument
	(hashcode4_vector): limit count to HASHCODE_NEED_LEAVES

2008-07-27  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (hashcode_pathname): extract
	(hashcode3_atom, hashcode3stable_atom): use it

2008-07-26  Sam Steingold  <sds@gnu.org>

	* control.d (skip_declarations): remove
	(finish_flet): rename the last argument and revert its meaning
	(FLET, MACROLET, FUNCTION-MACRO-LET): update finish_flet calls
	NB: FUNCTION-MACRO-LET now barfs on declarations in both compiled
	and interpreted code

2008-07-24  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-logical-block-parse): uniform error messages

2008-07-24  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): add eval-when.15 and
	eval-when.17 (/= EVAL :EXECUTE) & (/= LOAD :LOAD-TOPLEVEL)

2008-07-23  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-LABELS, c-FLET, c-MACROLET): rework the "ANSI
	SPECIAL declarations" patch to fix a LABELS flaw

2008-07-23  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (check-fdef-name): add local macro
	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
	(c-GENERIC-LABELS): use it

2008-07-23  Sam Steingold  <sds@gnu.org>

	* init.lisp (%expand-form): FLET, LABELS, MACROLET
	respect the SPECIAL declarations, as per ANSI
	NOTE: FUNCTION-MACRO-LET still does NOT - it is our internal operator
	* control.d (make_vframe_activate): extract from LOCALLY
	(LOCALLY, LABELS): use it
	(finish_flet): accept an extra argument ignore_declarations
	(FLET, MACROLET): pass ignore_declarations=false to finish_flet
	(FUNCTION-MACRO-LET): pass ignore_declarations=true to finish_flet
	* compiler.lisp (skip-declarations): remove
	(with-bindings, with-bindings-lite): add local macros
	(c-FLET, c-LABELS): use with-bindings
	(c-MACROLET): use with-bindings-lite

2008-07-23  Sam Steingold  <sds@gnu.org>

	* init.lisp (cons-*fenv*, illegal-syntax): add
	(%expand-form, %expand-fundefs-1, %expand-funmacdefs-1): use them
	* macros3.lisp (expand-LETF*, expand-LETF): use ILLEGAL-SYNTAX
	* compiler.lisp (add-fenv, c-FLET, c-FUNCTION-MACRO-LET)
	(c-GENERIC-FLET, c-MACROLET): use CONS-*FENV*
	(c-illegal-syntax): add
	(analyze-letlist, c-COMPILER-LET): use it
	(mk-var): add local macro
	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
	(c-GENERIC-LABELS): use it

2008-07-22  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (OBJECT_OUT, NOBJECT_OUT): fflush stdout

2008-07-22  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE-COMPILE): fix a typo: UNGREADY->UNGREEDY
	Reported by Todd Kirby <ffmpeg.php@gmail.com>

2008-07-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-script): many more tests

2008-07-22  Sam Steingold  <sds@gnu.org>

	* stream.d (error_value_stream): print the caller

2008-07-22  Sam Steingold  <sds@gnu.org>

	* spvw_sigsegv.d (print_mem_stats): also print a timescore_t

2008-07-22  Sam Steingold  <sds@gnu.org>

	* debug.d (%ROOM): additionally return gc_count, gc_space, gc_time
	* lispbibl.d (internal_time_to_I): declare extern
	* time.d (internal_time_to_I): make global
	* room.lisp (room): return the same values as gc, print gc stats

2008-07-22  Sam Steingold  <sds@gnu.org>

	* eval.d (SUBR-INFO): use STACK_to_mv instead of L(values)
	* stream.d (MAKE-PIPE-IO-STREAM): ditto
	* time.d (%%TIME): ditto

2008-07-22  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: fix bug#2011096: unicode in comments causes
	compile errors when LANG=ja_JP.eucJP

2008-07-22  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): drop tests that we pass

2008-07-21  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_font_info_and_display): prefix
	*CANONICALIZE-ENCODING* with XLIB:: for bootstrap when is has not
	been exported yet

2008-07-21  Sam Steingold  <sds@gnu.org>

	the sets of declaration and type names are disjoint, as per ANSI
	(see http://www.lisp.org/HyperSpec/Body/dec_type.html)
	* condition.lisp (check-not-type, check-not-declaration): define
	(define-condition): use CHECK-NOT-DECLARATION
	* clos-class3.lisp (defclass): use CHECK-NOT-DECLARATION
	* compiler.lisp (c-PROCLAIM): use CHECK-NOT-TYPE
	* constsym.d (check_not_type): declare
	* control.d (PROCLAIM): use CHECK-NOT-TYPE for DECLARATION
	* defstruct.lisp (defstruct): use CHECK-NOT-DECLARATION
	* init.lisp (check-not-declaration): predefine
	* macros2.lisp (deftype): use CHECK-NOT-DECLARATION
	* utils/clispload.lsp (*expected-failures*): remove
	DECLARATION.([4-9]|1[01]) (i.e. tests 4..11 now pass)

2008-07-21  Bruno Haible  <bruno@clisp.org>

	* makemake.in (LIBS): Remove special code for Solaris 2.1.

2008-07-21  Sam Steingold  <sds@gnu.org>

	fix "-x ... -repl", broken since 2008-01-06
	* reploop.lisp (main-loop): accept an optional exit argument
	* spvw.d (main_actions): pass !p->argv_repl to MAIN-LOOP
	* makemake.in (check-script): test "-x ... -repl"

2008-07-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (ANSI_CLISP): add "-p CL-TEST"
	(check-ansi-tests, check-ansi-tests-debug, check-ansi-tests-compiled)
	(check-ansi-tests-compiled-debug): remove IN-PACKAGE from -x

2008-07-21  Sam Steingold  <sds@gnu.org>

	fix bug#2022362: Problem :external-format :dos and (setf
	stream-element-type): after a ((setf stream-element-type)
	'(unsigned-byte 8)) after read-line on a :dos stream
	an NL byte (10) is read from the stream
	* stream.d (rd_by_iau8_unbuffered, rd_by_array_iau8_unbuffered)
	(rd_by_iau8_buffered, rd_by_array_iau8_buffered): respect
	ChannelStream_ignore_next_LF

2008-07-21  Sam Steingold  <sds@gnu.org>

	* pathname.d (check_file_reopen): when *REOPEN-OPEN-FILE* is WARN,
	issue a warning instead of signaling an error
	* constsym.d (check_file_reopen): declare
	* spvw.d (init_symbol_values): init *REOPEN-OPEN-FILE* to ERROR
	* utils/clispload.lsp (*reopen-open-file*): set to WARN to pacify
	6 tests

2008-07-21  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*pprint-first-newline*): set to NIL to
	conform to Paul's expectations

2008-07-21  Sam Steingold  <sds@gnu.org>

	* encoding.d: do not #include <stdio.h>, it is already done by lispbibl

2008-07-20  Sam Steingold  <sds@gnu.org>

	* pprint.lisp (copy-pprint-dispatch): as per ANSI, when no table
	is specified, return a COPY of *PRINT-PPRINT-DISPATCH*, not its value

2008-07-20  Sam Steingold  <sds@gnu.org>

	* io.d (justify_empty_2): concatenate all strings in a single-liner
	into one string instead of pushing all the components into the block

2008-07-18  Sam Steingold  <sds@gnu.org>

	* io.d (paren_open): a minor simplification
	(print): remove an unused static function
	(justify_empty_2): never drop any strm_pphelp_strings (this fixes
	the "risky" test in iofkts.tst)

2008-07-17  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (*canonicalize-encoding*):
	defvar and export from XLIB
	* modules/clx/new-clx/clx.f (get_font_info_and_display): use it
	together with EXT:CANONICALIZE instead of the C ad-hoc-ery

2008-07-17  Sam Steingold  <sds@gnu.org>

	* dfloat.d (RA_to_DF): clean up the STACK before error_overflow()
	* ffloat.d (RA_to_FF): ditto
	* sfloat.d (RA_to_SF): ditto
	These bugs are probably ~20 years old.

2008-07-17  Sam Steingold  <sds@gnu.org>

	* macros3.lisp (canonicalize): new function

2008-07-17  Sam Steingold  <sds@gnu.org>

	* pathname.d (assure_dir_exists) [PATHNAME_UNIX]: fix a GC-safety
	bug introduced on 2008-07-11 (get_path_info is GC-unsafe)
	(classify_namestring): GC-safe

2008-07-17  Sam Steingold  <sds@gnu.org>

	* pathname.d: more robust HAVE_SHELL conditional handling

2008-07-17  Sam Steingold  <sds@gnu.org>

	* error.d (check_c_integer_replacement): use the appropriate
	[su]int(8|16|32|64)_p test instead of always using uint8_p

2008-07-17  Sam Steingold  <sds@gnu.org>

	* error.d (caller_name): new function
	(check_symbol_replacement, check_variable_value_replacement):
	use it when the caller maybe either Subr or Fsubr
	Reported by Vladimir Tzankov <vtzankov@gmail.com>

2008-07-17  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_search_scandir) [WIN32_NATIVE]: use
	direntry_to_string in one more place

2008-07-17  Sam Steingold  <sds@gnu.org>

	* condition.lisp (check-value): disable USE-VALUE when place is
	*PATHNAME-ENCODING* because O(pathname_encoding) is used multiple
	times for the same directory entry

2008-07-16  Sam Steingold  <sds@gnu.org>

	* eval.d (invoke_handlers): reactivate and deactivate handlers
	only around lisp-compiled handlers, not C handlers, who must
	deactivate themselves (this is necessary because the C handlers
	which call longjmp do not abide by the HANDLER_FRAME)
	* pathname.d (handle_directory_encoding_error): deactivate when
	already running; reset STACK
	(direntry_to_string): check STACK

2008-07-16  Sam Steingold  <sds@gnu.org>

	* macros2.lisp (report-one-new-value-string)
	(report-one-new-value-string-instead, report-new-values-string):
	remove the leading "You may " from the message: the message
	describes the action of the user, such as "Abort main loop" or
	"inspect this frame", cf. reploop.lisp
	* reploop.lisp (commands1): more uniform message capitalization

2008-07-16  Sam Steingold  <sds@gnu.org>

	* control.d (SYMBOL-VALUE): tighten identification of STORE-VALUE
	selection in CHECK-VALUE: value2 is T, not just non-NIL
	* eval.d (eval1): ditto
	* error.d, lispbibl.d (check_variable_value_replacement):
	ditto (comment)

2008-07-16  Sam Steingold  <sds@gnu.org>

	* error.d (check_variable_value_replacement): do not pushSTACK
	PLACE unless check_value is to be called

2008-07-16  Sam Steingold  <sds@gnu.org>

	DIRECTORY signals correctable errors on bad pathnames [1st draft]
	* pathname.d (handle_directory_encoding_error): new function:
	ignore the error, pass condition in value1 back to the caller
	(direntry_to_string): new function: call n_char_to_string, catch
	charset-type-error, re-signal it with restarts
	(directory_search_scandir): use direntry_to_string
	* condition.lisp (check-value): accommodate direntry_to_string:
	when place is SYSTEM::PATHNAME-ENCODING, add a CONTINUE restart
	* constobj.d (handler_for_charset_type_error): always enable
	* constsym.d (datum): add

2008-07-15  Bruno Haible  <bruno@clisp.org>

	Avoid buffer overrun.
	* encoding.d (handle_incomplete): Add destend argument.
	(uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs,
	uni32le_mbstowcs): Update callers.

2008-07-15  Bruno Haible  <bruno@clisp.org>

	Fix bug introduced on 2003-03-11.
	* encoding.d (uni16_mblen): Make consistent with uni16be_mbstowcs and
	uni16le_mbstowcs.
	(uni32be_mblen): Make consistent with uni32be_mbstowcs.
	(uni32le_mblen): Make consistent with uni32le_mbstowcs.
	(CONVERT-STRING-FROM-BYTES): Revert last commit.

2008-07-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (fixperms): undo the 2008-05-15 patch:
	cannot look above the top-level directory

2008-07-15  Bruno Haible  <bruno@clisp.org>

	* makemake.in (interpreted.mem, halfcompiled.mem): Depend on
	config.lisp.
	(clean5): Don't remove config.lisp.
	(clean6): Remove config.lisp.

2008-07-15  Bruno Haible  <bruno@clisp.org>

	* encoding.d: Verify already at compile time that HAVE_GOOD_ICONV
	is set rather than crashing at initialization time.

2008-07-15  Bruno Haible  <bruno@clisp.org>

	* makemake.in (clean4): Don't remove all the $SUBDIRS but only the
	built files inside them.

2008-07-15  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): update hash-table output for the
	removal of the ht_freelist (2004-05-09 1.49 2004/06/04)

2008-07-15  Sam Steingold  <sds@gnu.org>

	* encoding.d (CONVERT-STRING-FROM-BYTES): check (cptr == cendptr)
	after (bptr == bendptr)

2008-07-15  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (number_of_conditions_defined_in_c): rename from
	condition_for_broken_compilers_that_dont_like_trailing_commas
	* error.d (SYSTEM::%DEFCLCS): use it to check whether the argument
	is consistent with constsym.d

2008-07-14  Sam Steingold  <sds@gnu.org>

	src/m4/sigsegv.m4 --> src/glm4/libsigsegv.m4
	* Makefile.devel (gnulib-imported): also import libsigsegv
	* configure: use gl_cv_lib_sigsegv instead of cl_cv_lib_sigsegv
	* configure.in: use gl_LIBSIGSEGV instead of CL_SIGSEGV
	* lispbibl.d: use HAVE_LIBSIGSEGV instead of NO_SIGSEGV
	* makemake.in (XCFLAGS): do not add NO_SIGSEGV
	* src/m4/sigsegv.m4: remove
	* src/glm4/libsigsegv.m4: add
	* gllib/Makefile.am, glm4/gnulib-cache.m4, glm4/gnulib-comp.m4:
	regenerate

2008-07-13  Sam Steingold  <sds@gnu.org>

	* error.d (error_illegal_arg): new function
	* lispbibl.d (error_illegal_arg): declare
	* constobj.d (type_buffered_arg): add for stream.d:test_buffered_arg
	* stream.d (test_buffered_arg, test_eltype_arg, check_float_eltype):
	use error_illegal_arg
	* encoding.d (MAKE-ENCODING): ditto
	* pathname.d (check_direction, check_if_does_not_exist)
	(check_if_exists, DIRECTORY): ditto
	* hashtabl.d: fix an error message case

2008-07-13  Sam Steingold  <sds@gnu.org>

	* encoding.d (base64_wcstombs): set CHARSET-TYPE-ERROR slots DATUM
	and EXPECTED-TYPE
	(error_incomplete, error_uni32_invalid, error_utf8_invalid1)
	(error_utf8_invalid2, error_utf8_invalid3, error_utf8_invalid4)
	(error_nls_invalid): signal CHARSET-TYPE-ERROR instead of ERROR
	(base64_wcstombs, error_unencodable, error_incomplete)
	(error_uni32_invalid, error_utf8_invalid1, error_utf8_invalid2)
	(error_utf8_invalid3, error_utf8_invalid4): print the caller

2008-07-13  Sam Steingold  <sds@gnu.org>

	* init.lisp (search-file): list matching files from the FIRST
	directory containing any matching file, because otherwise every
	load will mean a full traversal of ~/lisp/**/

2008-07-13  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (*load-logical-pathname-translations-database*):
	since SEARCH-FILE now handles both files and directories
	similarly, only one element is needed
	(load-logical-pathname-translations): update for the search-file
	changes: when the search finds a directory, it is returned as is
	instead of its contents
	* init.lisp (search-file): EXTENSIONS is optional, also accept KEEP-DIRS
	(load): pass KEEP-DIRS=NIL to search-file

2008-07-13  Sam Steingold  <sds@gnu.org>

	* pathname.d (error_file_stream_unnamed, error_dir_not_exists)
	(error_noname, error_notdir): print caller
	(FILE-NAMESTRING, DIRECTORY-NAMESTRING, ABSOLUTE-PATHNAME)
	(physical_namestring): simplify code

2008-07-12  Sam Steingold  <sds@gnu.org>

	* pathname.d (classify_namestring): extract from check_sub_directory
	(check_sub_directory): remove
	(directory_search_1subdir): use classify_namestring instead
	(PROBE-PATHNAME): also return the physical pathname as the 2nd value
	* init.lisp (ppn-fwd): use the second value of PROBE-PATHNAME
	* win32.d (MAXPATHLEN): define (needed for classify_namestring)

2008-07-12  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (ThePackage_, ThePathname_) [DEBUG_SPVW]: add

2008-07-11  Sam Steingold  <sds@gnu.org>

	new function PROBE-PATHNAME
	* pathname.d (probe_path_from_stream): extract from PROBE-FILE
	(PROBE-FILE): use it
	(PROBE-PATHNAME): implement
	* constsym.d, subr.d (probe_pathname): declare
	* init.lisp (probe-pathname): export
	(search-file): use it instead of probe-file

2008-07-11  Sam Steingold  <sds@gnu.org>

	* pathname.d (error_directory): extract from the unix version of
	assure_dir_exists
	(assure_dir_exists) [WIN32_NATIVE]: use it instead of
	OS_file_error for consistency with unix
	(struct file_status) [WIN32_NATIVE]: new slot fs_fileattr
	(file_status_is_dir): new function
	(get_path_info) [PATHNAME_UNIX]: extract from assure_dir_exists
	(assure_dir_exists) [PATHNAME_UNIX]: use it
	(if_HAVE_LSTAT): remove
	(access0) [WIN32_NATIVE]: set fs_fileattr

2008-07-10  Sam Steingold  <sds@gnu.org>

	* init.lisp (search-file <final def>): do not use DIRECTORY when
	the pathname is non-wild to avoid the denial-of-service attack

2008-07-10  Sam Steingold  <sds@gnu.org>

	* encoding.d (error_nls_invalid): print function name
	* pathname.d (check_no_wildcards): ditto

2008-07-10  Sam Steingold  <sds@gnu.org>

	* debug.d (read_form): fix a GC-safety bug
	 (save function before subsstring)
	* foreign.d (check_faddress_valid): fix a GC-safety bug
	 (check_fpointer can trigger GC!)
	(validate_fpointer): return the argument
	(convert_to_foreign): fix a GC-safety bug
	 (validate_fpointer can trigger GC)
	* modules/clx/new-clx/clx.f (XLIB:SCREEN-SAVER): fix a GC-safety bug
	 (defcheckers are GC-unsafe)

2008-07-10  Sam Steingold  <sds@gnu.org>

	fix bug#2015118: (ash 1 huge) blows SP instead of signaling
	an arithmetic-error
	* intlog.d (I_I_ash_I): tighten the shift check (use 16-bit intW
	instead of 32-bit intWC) so that the "shift is too large"
	error is signaled instead of a SP overflow which results from
	__builtin_alloca not checking its argument and overwriting stack

2008-07-09  Sam Steingold  <sds@gnu.org>

	fix bug#1385641: g++ debug_gcsafety amd64 build is broken
	* lispbibl.d (pgci_pointable, ngci_pointable) [DEBUG_GCSAFETY]:
	pass obj.one_o through pointable_address_unchecked before nonimmprobe
	(cgci_types_pointable, pgci_types_pointable, ngci_types_pointable)
	[TYPECODES & DEBUG_GCSAFETY]: wrap ?gci_pointable in
	pointable_address_unchecked

2008-07-09  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (UL_to_I) [DEBUG_GCSAFETY & intLsize<=oint_data_len]:
	fix export the definition to clisp.h

2008-07-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (STAT-VFS):
	use the right SIZEOF_* conditionals
	(FILE_FUNCTION2): add a cast to fix g++ compilation

2008-07-09  Sam Steingold  <sds@gnu.org>

	fix bug#2014262: float/rational comparison underflows
	* realelem.d (R_R_comp): inhibit floating-point-underflow when
	converting to a rational

2008-07-08  Sam Steingold  <sds@gnu.org>

	* spvw_sigcld.d (end_want_sigcld): avoid the gcc warning:
	suggest a space before ';' or explicit braces

2008-07-08  Sam Steingold  <sds@gnu.org>

	* makemake.in (srcdir) [CROSS]: do not overwrite
	(module_configure_flags) [CROSS]: add --build=${TSYS}
	Reported by Luca Capello <luca@pca.it>

2008-07-08  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.46+ (2008-07-08)

2008-07-07  Sam Steingold  <sds@gnu.org>

	* m4/shm.m4 (CL_SHM_H): run before CL_SHM
	(CL_SHM): require CL_SHM_H, do not set have_shm
	* m4/shm-rmid.m4 (CL_SHM_RMID): use cl_cv_sys_shm_works
	instead of have_shm

2008-07-07  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main): "-t"[raditional] does not take an argument

2008-07-06  Bruno Haible  <bruno@clisp.org>

	Remove MULTIMAP_MEMORY_VIA_SHM and MULTIMAP_MEMORY.
	It cannot compete with SINGLEMAP_MEMORY because it
	1. consumes a lot more memory for page tables, and
	2. hampers swapping in kernels without reverse mapping pointers.
	* lispbibl.d (MULTIMAP_MEMORY_VIA_SHM, MULTIMAP_MEMORY): Don't define.
	* spvw.d (canonaddr, canon): Remove macros.
	(MULTIMAP_MEMORY_SYMBOL_TAB): Remove macro.
	(init_memory, main): Update.
	* spvw_fault.d (xmmprotect): Remove macro/function.
	(handle_read_fault, handle_readwrite_fault, handle_fault)
	(handle_fault_range): Update.
	* spvw_genera1.d (xmprotect_old_generation_cache): Rename from
	xmmprotect_old_generation_cache.
	(in_old_generation_0, in_old_generation_1, in_old_generation)
	(build_old_generation_cache, rebuild_old_generation_cache)
	(gc_check_at): Update.
	* spvw_genera3.d (update_old_generation): Update.
	* spvw_global.d (init_mem_heapnr_from_type): Update.
	* spvw_memfile.d (old_symbol_tab_o, loadmem_update)
	(loadmem_from_handle): Update.
	* spvw_weak.d (MARK, add_watchable): Update.
	* unix.d (SHMMAX): Remove macro fallback.
	* built.d (built_flags): Remove MULTIMAP_MEMORY_VIA_SHM and
	MULTIMAP_MEMORY.
	* makemake.in (XCFLAGS): Remove option -DNO_MULTIMAP_SHM.
	(SPVW_INCLUDES): Remove spvw_multimap.
	* po/Makefile.devel (DSOURCES): Remove spvw_multimap.
	* Makefile.devel (build-linux-x86-standard-spvw_mixed_pages)
	(build-linux-x86-noexec-spvw_mixed_pages)
	(build-darwin-powerpc-standard-spvw_mixed_pages)
	(build-darwin-powerpc-noexec-spvw_mixed_pages):
	Remove option -DNO_MULTIMAP_SHM.

2008-07-05  Bruno Haible  <bruno@clisp.org>

	Remove MULTIMAP_MEMORY_VIA_FILE.
	It cannot compete with SINGLEMAP_MEMORY because it
	1. periodically flushes the working memory to disk,
	2. consumes a lot more memory for page tables, and
	3. hampers swapping in kernels without reverse mapping pointers.
	* lispbibl.d (MULTIMAP_MEMORY_VIA_FILE): Don't define.
	* spvw.d (usage): Don't mention option -t.
	(argv_initparams): Remove argv_tmpdir field.
	(parse_options): Don't recognize option -t.
	(init_memory): Update.
	* spvw_multimap.d [MULTIMAP_MEMORY_VIA_FILE]: Remove code.
	* unix.d: Don't undefine HAVE_MSYNC.
	Don't include headers for statvfs or statfs.
	* built.d (built_flags): Remove MULTIMAP_MEMORY_VIA_FILE.
	* m4/stat.m4 (CL_STAT): Move tests for statvfs, statfs...
	* modules/syscalls/configure.in: ... to here.
	* makemake.in (XCFLAGS): Remove option -DNO_MULTIMAP_FILE.
	* Makefile.devel (build-linux-x86-standard-spvw_mixed_pages)
	(build-linux-x86-noexec-spvw_mixed_pages)
	(build-darwin-powerpc-standard-spvw_mixed_pages)
	(build-darwin-powerpc-noexec-spvw_mixed_pages): Likewise.

2008-07-02  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): also get nocrash
	update from the gnulib repository

2008-07-02  Sam Steingold  <sds@gnu.org>

	* m4/ffcall-codeexec.m4, m4/ffcall-ireg.m4, m4/ffcall-pccstruct.m4:
	* m4/ffcall-smallstruct.m4: remove libffcall-specific files
	* m4/general.m4 (CL_FFCALL_COMMON_LIBTOOL, CL_FFCALL_COMMON_TRAMPOLINE)
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): remove

2008-07-02  Sam Steingold  <sds@gnu.org>

	* stream.d (make_terminal_io): pipe, not just file, i/o handles
	imply non-terminal standard i/o; this should somewhat simplify
	scripting by not requiring the users to resort to make-stream
	(handle_type_t): new type
	(handle_type, regular_handle_type_p, pipe_handle_type_p)
	(pipe_file_handle_p): new functions
	(regular_handle_p): a macro combination of regular_handle_type_p
	and handle_type

2008-07-02  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.46 (2008-07-02)

2008-07-01  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (make_xid_obj_2): signal a
	LOOKUP-ERROR instead of an ERROR; use MAKE-CONDITION &
	SYS::CORRECTABLE-ERROR instead of correctable_error()
	(x_type_error): new function
	(my_type_error, with_stringable_0_tc, get_aint32): use it
	(make_xid_obj_2): no prealloc for cached objects!
	* lispbibl.d (correctable_error): do NOT export to clisp.h

2008-06-30  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (make_xid_obj_low): check that
	prealloc is of the correct type
	* modules/clx/new-clx/image.lisp (*image-bit-lsb-first-p*)
	(*image-byte-lsb-first-p*): default to (NOT SYS::*BIG-ENDIAN*)

2008-06-30  Sam Steingold  <sds@gnu.org>

	fix bug#2002364: XID reuse causes clx cache to get out of sync
	* modules/clx/new-clx/clx.f (make_xid_obj_2): when the cached
	object is of the wrong type, signal a continuable error and offer
	to invalidate either the cache entry or the whole cache
	* lispbibl.d (correctable_error): export to clisp.h

2008-06-30  Sam Steingold  <sds@gnu.org>

	fix bug#2007052: socket-connect with :timeout to a dead port
	* socket.d (connect_via_ip): use getsockopt() to check the status
	of the socket before returning it, as described in the linux man page

2008-06-29  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.45++: pretest [+ gnulib-imported build-aux-update]

2008-06-29  Sam Steingold  <sds@podval.org>

	* modules/libsvm: upgraded to upstream 2.86

2008-06-28  Sam Steingold  <sds@gnu.org>

	* version.sh: new version number convention: VERSION_NUMBER is
	  = MAJOR.MINOR for release,
	  = MAJOR.MINOR+ for development, and
	  = MAJOR.MINOR++ for pretest
	RELEASE_DATE is the date when VERSION_NUMBER was modified.
	Set to 2.45+/2008-06-28

2008-06-28  Sam Steingold  <sds@gnu.org>

	* configure: fail if FFI modules are specified
	but FFCALL is not available

2008-06-28  Sam Steingold  <sds@gnu.org>

	* modules/netica/link.sh (NEW_LIBS): add -lpthread

2008-06-28  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (init-to-tag):
	bind *PRINT-LINES* when printing huge tags

2008-06-27  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): use symbol_without_flags when
	printing a symbol

2008-06-27  Sam Steingold  <sds@gnu.org>

	fix special bindings in evaluated code on 64bit platforms
	* control.d (specdecled_) [!NO_symbolflags]: use
	symbol_without_flags when comparing symbols

2008-06-27  Sam Steingold  <sds@gnu.org>

	* constsym.d, control.d, eval.d, fsubr.d, io.d, lisparit.d:
	* package.d, predtype.d, spvw.d, spvw_allocate.d, spvw_language.d
	(let*, *package*, *readtable*, *evalhook*, *applyhook*)
	(*gc-statistics*, *random-state*):
	use "star" instead of "stern" for C names
	* intdiv.d (UDS_divide_): rename local variable q_stern -> q_star
	* intsqrt.d (UDS_sqrt_): rename local variable b_stern -> b_star

2008-06-26  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): use "..._of_list" instead
	of "..._from_list"
	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: update

2008-06-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (WITH-GCONTEXT, set-wm-class):
	STRING-CONCAT requires package prefix

2008-06-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/sokoban.lisp (init-sokoban):
	do not set *display*
	(sokoban): use xlib:with-open-display;
	handle numeric keypad

2008-06-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (change_property): remove
	(SET-WM-HINTS, CHANGE-PROPERTY): use XChangeProperty() directly
	and ignore its return value which is always 1
	(RECOLOR-CURSOR): fix background handling

2008-06-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (with-open-display): define & export
	* modules/clx/new-clx/demos/bball.lisp:
	* modules/clx/new-clx/demos/bwindow.lisp:
	* modules/clx/new-clx/demos/clclock.lisp:
	* modules/clx/new-clx/demos/greynetic.lisp:
	* modules/clx/new-clx/demos/hanoi.lisp:
	* modules/clx/new-clx/demos/koch.lisp:
	* modules/clx/new-clx/demos/petal.lisp:
	* modules/clx/new-clx/demos/plaid.lisp:
	* modules/clx/new-clx/demos/qix.lisp:
	* modules/clx/new-clx/demos/recurrence.lisp: use it

2008-06-25  Sam Steingold  <sds@gnu.org>

	move WM-HINTS to C to better handle word size differences
	* modules/clx/new-clx/clx.f (lookup_display, change_property): add
	(CHANGE-PROPERTY): use change_property()
	(xlib_error_handler, xlib_io_error_handler): use lookup_display()
	(check_wmh_initial_state, check_wmh_flag): add DEFCHECKERs
	(WM-HINTS, SET-WM-HINTS): implement
	* modules/clx/new-clx/clx.lisp (wm-hints, set-wm-hints)
	(decode-wm-hints, encode-wm-hints): remove

2008-06-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/display.lisp (with-open-display): define
	* modules/clx/mit-clx/package.lisp (with-open-display): export

2008-06-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (CHANGE-PROPERTY):
	check the return value of XChangeProperty()
	(DISPLAY-VENDOR-NAME): return just one value

2008-06-24  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (GET-PROPERTY):
	use uint16 and uint32 instead of unsigned short and unsigned long
	for reliability on 64-bit platforms

2008-06-24  Sam Steingold  <sds@gnu.org>

	* error.d (check_variable_value_replacement): move here from eval.d
	* lispbibl.d (check_variable_value_replacement): prototype
	* eval.d (eval1): call setq here
	* control.d (check_global_symbol_value): remove
	(SYMBOL-VALUE): use check_variable_value_replacement

2008-06-23  Sam Steingold  <sds@gnu.org>

	* eval.d (check_variable_value_replacement): extract from eval1()
	(eval1): use it
	(interpret_bytecode_): use it for cod_getvalue & cod_getvalue_push

2008-06-23  Sam Steingold  <sds@gnu.org>

	* unix/MAGIC.add: remove non-CLISP-specific entries;
	CLISP FASL files start with |SYSTEM|::|VERSION| since 2004-03-27

2008-06-21  Sam Steingold  <sds@gnu.org>

	* modules/netica/Makefile: do not use ${...-...}
	* modules/netica/demo.lisp: test netica:read-net
	* modules/netica/link.sh: netica 3.25 requires g++

2008-06-21  Sam Steingold  <sds@gnu.org>

	* io.d (pr_record_descr): use pr_symbol instead of literal ':' +
	pr_like_symbol(Symbol_name) to print slot names so that the keywords
	are printed as :|HOST| and not :|host| when writing a FASL file
	in a modern package

2008-06-19  Sam Steingold  <sds@gnu.org>

	* modules/netica/: update to the Netica C API version 3.25 from 2.15

2008-06-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (make-xterm-io-stream): avoid a race
	condition [between (delete-file tmps) and (mknod tmps :FIFO :RWXU)]
	by using mkdtemp and creating the pipe in the temporary directory;
	accept :XTERM argument and support rxvt in addition to xterm

2008-06-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (MKDTEMP): strip trailing slash from
	namez because mkdtemp(".../") --> ENOENT

2008-06-16  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (RAWSOCK:NETWORK): use getnetbyaddr
	instead of non-existent getnetbynumber

2008-06-13  Sam Steingold  <sds@gnu.org>

	* defmacro.lisp (make-macro-expansion): bind %proper-list-p to nil,
	not t, to allow dotted macro forms (broken since 2006-04-15)

2008-06-13  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_errno) [WIN32_NATIVE]:
	#include <winerror.h>, drop prefix=ERROR,
	and use cygwin cvs tree to define many more codes

2008-06-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GETHOSTID):
	use `unsigned long' instead of non-standard `ulong'

2008-06-05  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c, modules/syscalls/posix.lisp:
	remove the GET prefix from SETFable functions
	PGID, UID, GID, EUID, EGID, GROUPS

2008-06-05  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GETHOSTID): implement
	* modules/syscalls/posix.lisp (gethostid): export

2008-06-05  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (ERRNO): when the argument is T,
	return all known error codes as an alist

2008-06-04  Sam Steingold  <sds@gnu.org>

	* calls.c (ERRNO, STRERROR) [WIN32_NATIVE]: use GetLastError(),
	SetLastError() and FormatMessage() instead of errno and strerror
	(check_errno) [WIN32_NATIVE]: define separately

2008-06-04  Sam Steingold  <sds@gnu.org>

	* inspect.lisp (get-insp): accept :w and :n
	(print-inspection, inspect-frontend): say when more slots are available
	(inspect): bind *INSPECT-LENGTH* so that :w & :n do not act across
	inspect invocations

2008-06-04  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (DISPLAY-GET-DEFAULT): add
	* modules/clx/new-clx/clx.lisp (display-get-default)
	(display-resource-manager-string, screen-resource-string): export

2008-06-04  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (NO-OPERATION): return no values on
	success and signal an error on failure

2008-06-03  Sam Steingold  <sds@gnu.org>

	* configure, makemake.in: pass --disable-option-checking to
	sub-configures

2008-06-03  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (strip-comments): new function
	(split-command): use it to support comments inside DEFCHECKERs

2008-06-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (physical-memory, *services-file*):
	signal an error on non UNIX & Win32 platforms

2008-06-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FILE-OWNER): use *PATHNAME-ENCODING*
	for the filename instead of *MISC-ENCODING*
	(get_owner) [!HAVE_GETPWUID && !WIN32_NATIVE]: use an exhaustive
	cpp conditioning to ensure that it is always defined

2008-06-03  Sam Steingold  <sds@gnu.org>

	* makemake.in (module_configure_flags): do not add
	--with-dynamic-ffi & --with-dynamic-modules

2008-06-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (encflags): add -Emisc 1:1 so that syscalls tests
	pass (user names may be 8bit)

2008-06-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (OS:ERRNO, OS:STRERROR): implement
	* modules/syscalls/posix.lisp (OS:ERRNO, OS:STRERROR): export

2008-06-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (IMPNOTES): rename to IMPNOTES_FILES to avoid
	conflict with $IMPNOTES which is used by IMPNOTES-ROOT

2008-06-02  Sam Steingold  <sds@gnu.org>

	* condition.lisp (mecase): ECASE for DEFMACRO: print the form in
	the error message
	* foreign1.lisp (parse-c-function, DEF-C-VAR): use SYS::MECASE
	instead of ECASE for a better error message

2008-06-01  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (setjmp) [__MINGW32__]: define as _setjmp (but do not
	define longjmp as _longjmp because the latter does not exist)
	This is only necessary for lightning.
	Thanks to Yaroslav Kavenchuk <kavenchuk@tut.by> for investigation.

2008-06-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab) [WIDE_HARD]: add :WORD-SIZE=64 to *FEATURES*
	* built.d (built_flags): show all WIDE_* variants

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/builtin_strlen.m4 (CL_BUILTIN_STRLEN): Assume ANSI C or C++.
	* m4/mprotect.m4 (CL_MPROTECT): Likewise.
	* m4/select.m4 (CL_SELECT): Likewise.
	* m4/signal.m4 (CL_SIGNAL_REINSTALL, CL_SIGNAL_UNBLOCK,
	CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK):
	Likewise.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove AC_HEADER_STAT invocation.
	* unix.d: Ignore STAT_MACROS_BROKEN.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove AC_HEADER_TIME invocation. Instead simply test
	for <time.h> and <sys/time.h>.
	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): Likewise.
	* unix.d: Don't test TIME_WITH_SYS_TIME. Assume <time.h> and
	<sys/time.h> are compatible.
	* modules/berkeley-db/bdb.c: Likewise.
	* modules/clx/new-clx/clx.f: Likewise.
	* modules/rawsock/rawsock.c: Likewise.
	* modules/syscalls/calls.c: Likewise.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove AC_STRUCT_TM invocation.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_PERROR invocation.
	* _clisp.c (perror): Remove declaration fallback.
	* win32.d (HAVE_PERROR_DECL): Remove macro.
	* m4/perror.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/proto.m4 (CL_PROTO_RET, CL_PROTO_TRY, CL_PROTO_CONST): Remove
	TRAD-DECL argument.
	* m4/connect.m4 (CL_CONNECT): Update.
	* m4/getpagesize.m4 (CL_GETPAGESIZE): Update.
	* m4/ioctl.m4 (CL_IOCTL): Update.
	* m4/putenv.m4 (CL_PUTENV): Update.
	* m4/readline.m4 (CL_READLINE): Update.
	* m4/rlimit.m4 (CL_RLIMIT): Update.
	* m4/rusage.m4 (CL_RUSAGE): Update.
	* m4/select.m4 (CL_SELECT): Update.
	* m4/tcpconn.m4 (CL_TCPCONN): Update.
	* m4/waitpid.m4 (CL_WAITPID): Update.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/termios.m4 (RL_TERM): Remove macro.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_IRIX_SUN invocation.
	* m4/sys-irix.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_DYNIX_SEQ invocation.
	* m4/sys-dynix.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/signal.m4 (RL_RETSIGTYPE): Remove macro.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/siginterrupt.m4 (CL_SIGINTERRUPT): Don't test for sigvec.
	* unixaux.d (siginterrupt): Remove sigvec based emulation.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/shm-rmid.m4 (CL_SHM_RMID): Choose more distant addresses,
	so that the test succeeds on Linux.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/select.m4 (RL_SELECT): Remove macro.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* modules/regexp/configure.in: Require autoconf >= 2.58. Invoke
	AC_C_RESTRICT instead of gl_C_RESTRICT.
	* m4/restrict.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_RAISE invocation.
	* unix.d (raise): Assume 'raise' exists.
	* spvw_sigpipe.d (sigpipe_handler): Likewise.
	* m4/raise.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_OPENFLAGS invocation.
	* unix.d: Assume O_RDWR etc. is defined in <fcntl.h>.
	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): Likewise.
	* m4/ioctl.m4 (CL_IOCTL): Likewise.
	* m4/mmap.m4 (CL_MMAP): Likewise.
	* m4/poll.m4 (CL_POLL): Likewise.
	* m4/select.m4 (CL_SELECT): Likewise.
	* m4/openflags.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_OFFSETOF invocation.
	* m4/intparam.m4 (CL_INTPARAM_ALIGNOF): Don't require CL_OFFSETOF.
	Include <stddef.h> always.
	* lispbibl.d: Include <stddef.h> always.
	(offsetof): Don't redefine, use if it is defined.
	* m4/offsetof.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	Remove SunOS 4 support.
	* lispbibl.d (SUN386, SUN3, UNIX_SUNOS4): Remove macros.
	(MULTIMAP_MEMORY_VIA_FILE, hardware_addressbus_mask, SPVW_MIXED):
	Update.
	* unix.d: Drop UNIX_SUNOS4 conditional.
	* spvw.d (init_memory): Likewise.
	* misc.d (MACHINE-TYPE, MACHINE-VERSION): Likewise.
	* _distmakefile (CC): Likewise.
	* stream.d (MAKE-WINDOW, CLOSE-WINDOW): Drop SUN3 conditional.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	Remove NeXTstep support.
	* SUMMARY: Remove mention of NeXTstep.
	* lispbibl.d (UNIX_NEXTSTEP, NEXTSTEP_CHS): Remove macros.
	* charstrg.d: Remove NEXTSTEP_CHS special casing.
	* io.d: Likewise.
	* eval.d (interpret_bytecode): Drop UNIX_NEXTSTEP conditional.
	* lightning.c (LD, LR): Likewise.
	* misc.d (MACHINE-TYPE): Likewise.
	* spvw.d (init_memory): Likewise.
	* unix.d: Likewise.

	* nls_nextstep.c: Remove file.
	* pseudofun.d (nls_nextstep_table): Remove.
	* encoding.d: Don't include nls_nextstep.c.
	(nls_tables): Remove nls_nextstep_table.
	* constsym.d: Update.
	* makemake.in (NLS_INCLUDES): Remove nls_nextstep.
	* utils/unicode/Makefile (ALL): Remove nls_nextstep.c.
	(nls_nextstep.c): Remove rule.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/gettimeofday.m4 (CL_GETTIMEOFDAY): Remove test for the prototype.
	* unix.d (gettimeofday): Assume the declaration in <sys/time.h>.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/gethostbyname.m4 (CL_GETHOSTBYNAME): Remove test for sun/netdb.h.
	* unix.d: When gethostbyname exists, assume <sys/socket.h> and <netdb.h>
	exist.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_FPU_CONTROL invocation.
	* m4/fpu_control.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_PROG_CP invocation.
	* m4/cp.m4: Remove file.
	* m4/ln.m4 (CL_PROG_LN): Assume "cp -p" works on Unix.
	* makemake.in (CP): Likewise.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/closedir.m4 (CL_CLOSEDIR): Remove check for the prototype.
	Don't define RETCLOSEDIRTYPE any more.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_VOID invocation.
	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): Likewise.
	* m4/cc-void.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_CC_NEED_CCPAUX invocation.
	* m4/cc-cppaux.m4: Remove file.
	* makemake.in (CC_NEED_CCPAUX, XCC_NEED_CCPAUX): Remove variables.
	(*asm*.c): Fix dependency to use XASMCCPAUX.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* m4/c++-constructors.m4: Remove file.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_ACCESSFLAGS invocation.
	* m4/access.m4: Remove file.
	* unix.d: Assume <unistd.h> declares R_OK, W_OK, X_OK.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_ABORT invocation.
	* m4/abort.m4: Remove file.
	* unix.d (abort): Assume <stdlib.h> declares it.

2008-05-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove AC_HEADER_STDC invocation.
	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): Remove AC_HEADER_STDC
	invocation.
	* lispbibl.d: Assume STDC_HEADERS.
	* stream.d: Likewise.
	* unix.d: Likewise.
	* win32.d: Don't set STDC_HEADERS.
	* malloc/gmalloc.c: Assume ANSI C or C++, STDC_HEADERS, memmove.
	* unix/sigsegv.c: Assume STDC_HEADERS.
	* modules/pcre/cpcre.c: Assume STDC_HEADERS.
	* modules/rawsock/configure.in: Test for unistd.h.
	* modules/rawsock/rawsock.c: Assume STDC_HEADERS.

2008-05-30  Sam Steingold  <sds@gnu.org>

	* m4/siginterrupt.m4: )fix a typo:
	$ac_cv_func_strerror -> $ac_cv_func_siginterrupt

2008-05-29  Bruno Haible  <bruno@clisp.org>

	* configure.in: Remove CL_DIR_HEADER invocation.
	* m4/dir.m4: Remove file.
	* m4/closedir.m4 (CL_CLOSEDIR): Assume <dirent.h>.
	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
	* unix.d: Likewise.
	(SDIRENT): Remove macro.
	* pathname.d (directory_search_scandir): Assume <dirent.h> and
	struct dirent.

2008-05-29  Sam Steingold  <sds@gnu.org>

	* m4/fenv_default.m4 (CL_FENV_CHECK): define and use everywhere

2008-05-29  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_CHECK): extract from ...
	(CL_COMPILE_CHECK, CL_LINK_CHECK): use it

2008-05-29  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/configure.in: add proper quoting;
	use AC_LINK_IFELSE instead of AC_TRY_LINK;
	use m4_define to avoid writing the same program twice
	* m4/rusage.m4 (CL_RUSAGE): use AC_RUN_IFELSE instead of AC_TRY_RUN

2008-05-29  Sam Steingold  <sds@gnu.org>

	* m4/ln.m4 (CL_PROG_LN): use AC_CACHE_CHECK instead of
	AC_MSG_CHECKING + AC_CACHE_VAL + AC_MSG_RESULT

2008-05-29  Sam Steingold  <sds@gnu.org>

	* m4/longdouble.m4: remove obsolete file
	* m4/fenv_default.m4, m4/floatparam.m4, m4/intparam.m4:
	assume 'long double' is supported,
	use AC_COMPILE_IFELSE instead of AC_TRY_COMPILE

2008-05-28  Sam Steingold  <sds@gnu.org>

	* m4/sigsegv.m4: use AC_LINK_IFELSE instead of AC_TRY_LINK

2008-05-28  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (last-event-processed)
	(last-timestamp-processed) [USE_LIBXT]: add

2008-05-28  Sam Steingold  <sds@gnu.org>

	* m4/isc-posix.m4: remove. The comment says:
	This file is not needed with autoconf-2.53 and newer. Remove it in 2005.

2008-05-28  Sam Steingold  <sds@gnu.org>

	fix bug#1975798: parameter confusion in new Gray Streams functions
	* gray.lisp (stream-read-sequence): fix argument order in
	stream-read-byte-sequence and stream-read-char-sequence
	and specify the default values for start and end
	(stream-write-sequence): fix argument order in
	stream-write-byte-sequence and stream-write-char-sequence
	and specify the default values for start and end

2008-05-27  Sam Steingold  <sds@gnu.org>

	avoid obsolete macros
	* m4/c++.m4, m4/general.m4: use AC_LANG_PUSH/AC_LANG_POP
	instead of AC_LANG_SAVE/AC_LANG_RESTORE
	* m4/cc-ema.m4: use AC_PREPROC_IFELSE instead of AC_TRY_CPP
	* m4/c++.m4: use AC_RUN_IFELSE instead of AC_TRY_RUN and
	AC_LINK_IFELSE instead of AC_TRY_LINK, use AC_MSG_FAILURE
	* m4/general.m4 (CL_CPP_CHECK): remove unused macro
	(CL_CC_WORKS): use AC_MSG_FAILURE,
	use AC_RUN_IFELSE instead of AC_TRY_RUN
	use AC_LINK_IFELSE instead of AC_TRY_LINK

2008-05-27  Sam Steingold  <sds@gnu.org>

	* eval.d (unused): undef before #include "lightning.c"

2008-05-26  Sam Steingold  <sds@gnu.org>

	* floatparam.c, intparam.c: write to conftest.h or first arg, not stdout
	* m4/address.m4, m4/eloop.m4, m4/filecharset.m4, m4/param.m4:
	use AC_RUN_IFELSE instead of undocumented AC_TRY_EVAL(ac_link)
	* makemake.in (floatparam.h, intparam.h): update

2008-05-25  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (setjmp, longjmp) [HAVE__JMP]: on all autoconf platforms
	(UNIX & __MINGW32__), use _setjmp and _longjmp whenever they are present

2008-05-25  Sam Steingold  <sds@gnu.org>

	* spvw_sigint.d (signal_handler_prepare_for_lisp): extract from
	react_on_sigint()
	(react_on_sigint): call it
	* spvw_sigterm.d (quit_on_signal): ditto

2008-05-25  Bruno Haible  <bruno@clisp.org>

	* m4/signal.m4 (CL_SIGNALBLOCK): Remove macro.
	(CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_UNBLOCK):
	Assume POSIX signal-blocking.
	* unix.d (SIGNALBLOCK_POSIX): Define always.
	* spvw.d (main): Assume SIGNALBLOCK_POSIX on Unix.
	* spvw_sigint.d (react_on_sigint): Likewise.
	* spvw_sigsegv.d (stackoverflow_handler): Likewise.
	* configure.in (CL_SIGNALBLOCK): Remove invocation.

2008-05-25  Bruno Haible  <bruno@clisp.org>

	* floatparam.c: Remove support for K&R C compilers.
	* intparam.c: Likewise.

2008-05-23  Sam Steingold  <sds@gnu.org>

	fix bug#1970141: link.sh should respect $(MAKE)
	* makemake.in (base, full): set MAKE when calling clisp-link
	* modules/berkeley-db/link.sh.in, modules/bindings/glibc/link.sh:
	* modules/bindings/win32/link.sh, modules/clx/mit-clx/link.sh:
	* modules/clx/new-clx/link.sh.in, modules/dirkey/link.sh:
	* modules/fastcgi/link.sh, modules/gdbm/link.sh.in:
	* modules/gtk2/link.sh.in, modules/i18n/link.sh.in:
	* modules/libsvm/link.sh, modules/matlab/link.sh:
	* modules/netica/link.sh, modules/oracle/link.sh:
	* modules/pari/link.sh.in, modules/pcre/link.sh.in:
	* modules/postgresql/link.sh.in, modules/queens/link.sh:
	* modules/rawsock/link.sh.in, modules/readline/link.sh.in:
	* modules/regexp/link.sh.in, modules/syscalls/link.sh.in:
	* modules/wildcard/link.sh.in, modules/zlib/link.sh.in:
	use ${MAKE-make} instead of make

2008-05-22  Sam Steingold  <sds@gnu.org>

	fix bug#1956715: segfault on SIGHUP
	* spvw_sigterm.d (quit_on_signal) [HAVE_SAVED_STACK]: restore STACK

2008-05-22  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in: remove AM_GNU_GETTEXT([external])
	(why was it there in the first place?!)

2008-05-22  Sam Steingold  <sds@gnu.org>

	* configure (--help-modules): more compact output,
	do not print anything for modules whose configure
	does not accept any --with.*prefix arguments

2008-05-21  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::RESOLVE-HOST-IPADDR):
	call sethostent() before the gethostent() iteration

2008-05-20  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FREOPEN): fix stack access
	include <fcntl.h> before DEFMODULE so that DEFCHECKERs work
	(pid_to_I, I_to_pid, uid_to_I, I_to_uid, gid_to_I, I_to_gid): POSIX
	specifies that pid_t is signed, assume that the others are signed too
	http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html

2008-05-20  Sam Steingold  <sds@gnu.org>

	fix bug#1966714: invalid syntax in top-level configure
	* configure (passnext): support non-POSIX /bin/sh on Solaris

2008-05-19  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: move DEFMODULE et al outside of the
	file locking conditional

2008-05-19  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (%FGETC, %FPUTC, %UNGETC): add for testing

2008-05-19  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (mark_fp_valid): export to clisp.h
	* modules/syscalls/calls.c (%STDIO, my_stdin, my_stdout)
	(my_stderr, init_stdio) [HAVE_FFI]: add
	(module__syscalls__init_function_2) [HAVE_FFI]: call init_stdio()
	* modules/syscalls/posix.lisp (stdin, stdout, stderr) [FFI]: defconstant

2008-05-19  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FREOPEN): implement
	* modules/syscalls/posix.lisp (freopen): export

2008-05-18  Sam Steingold  <sds@gnu.org>

	fix bug#1966375: no tgamma on solaris
	* modules/syscalls/posix.lisp (tgamma): if tgamma is not defined,
	define it using lgamma
	* modules/syscalls/calls.c (tgamma) check HAVE_TGAMMA

2008-05-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (upload-sunsite): remove target
	* clisp.lsm: remove file

2008-05-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (upload-sf): use rsync instead of ftp because of
	the change in the SF FRS (File Release System)

2008-05-15  Sam Steingold  <sds@gnu.org>

	* configure: do not pass --with-module to subdir configures
	(starting with autoconf 2.62 this results in warnings)

2008-05-15  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.46 (2008-07-07) [+ gnulib-imported build-aux-update]

2008-05-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (fixperms): also fix web pages permissions
	* utils/fix-perms.sh: accept command line argument ROOT

2008-05-15  Reini Urban  <rurban@x-ray.at>

	* modules/clx/new-clx/clx.f [__CYGWIN__]: include <X11/Xwindows.h>
	first thing to avoid conflicts with INT32,BOOL defined in
	<windows.h> included from clisp.h

2008-05-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (doc-distrib): exclude *~ and .#*

2008-05-15  Sam Steingold  <sds@gnu.org>

	* 2.45 tagged and released

2008-05-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GETPPID): implement
	* modules/syscalls/posix.lisp (getppid): export
	* modules/syscalls/configure.in (getppid): test

2008-05-13  Bruno Haible  <bruno@clisp.org>

	* m4/pkg.m4: New file, from pkg-config-0.23.

2008-05-13  Bruno Haible  <bruno@clisp.org>

	* m4/bold.m4 (BOLD_MSG): Fix underquoting.

2008-05-13  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (SETREUID, SETREGID, TGAMMA): implement
	* modules/syscalls/configure.in (setreuid, setregid, tgamma): check
	(signgam): fix test
	* modules/syscalls/posix.lisp (setreuid, setregid, tgamma): export

2008-05-13  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (USER-INFO): use I_to_uid instead of
	I_to_uint32; when getlogin() fails, signal an error instead of
	defaulting to getuid()

2008-05-12  Bruno Haible  <bruno@clisp.org>

	Clear spurious error messages on MacOS X 10.5.
	* m4/address.m4 (CL_ADDRESS_RANGE): Remove conftest.dSYM directory
	before conftest* files.
	* m4/eloop.m4 (CL_ELOOP): Likewise.
	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
	* m4/param.m4 (CL_MACHINE): Likewise.

2008-05-12  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (tp-mail): put clisp version into the subject line

2008-05-12  Sam Steingold  <sds@gnu.org>

	* foreign.d (convert_to_foreign): accept Fpointer as a C-POINTER
	so that POSIX:FOPEN value can actually be used by FFI

2008-05-11  Sam Steingold  <sds@gnu.org>

	* comptran.d (N_log_abs_R): fix a GC-safety bug (R_R_comp -
	comparison! - turned out to maygc)

2008-05-10  Sam Steingold  <sds@gnu.org>

	fix bug#1961475: Hang on read-char-no-hang
	* stream.d (listen_char_buffered): when the next byte is '\n' and
	ChannelStream_ignore_next_LF is true, discard it and retry

2008-05-10  Sam Steingold  <sds@gnu.org>

	* clos-genfun4.lisp (no-next-method): signal
	SYS::SIMPLE-PROGRAM-ERROR instead of PROGRAM-ERROR because only
	the former accepts :FORMAT-CONTROL & :FORMAT-ARGUMENTS

2008-05-10  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/configure.in: when testing for
	XauGetAuthByAddr, must #include <X11/Xauth.h> for g++

2008-05-09  Sam Steingold  <sds@gnu.org>

	* describe.lisp (clisp-data-file): put the error message through i18n

2008-05-09  Sam Steingold  <sds@gnu.org>

	* condition.lisp (coerce-to-condition): use ERROR instead of
	SIGNAL to report TYPE-ERROR so that COERCE-TO-CONDITION never
	returns NIL (http://article.gmane.org/gmane.lisp.clisp.general/12208)

2008-05-09  Sam Steingold  <sds@gnu.org>

	* trace.lisp (trace, untrace): turn comments into doc strings

2008-05-08  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: check size of pid_t
	* modules/syscalls/calls.c (GETTER, SETTER): move up in file
	(pid_to_I, I_to_pid): define based on SIZEOF_PID_T
	(GETSID, SETPGRP, SETPGID, KILL): use the above
	(GETTER1): add
	(GETSID): use it
	(SETPGID): replace with POSIX::%SETPGID
	(GETPGID): add
	* modules/syscalls/posix.lisp (GETPGID): add DEFSETF

2008-05-07  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.45 (2008-05-15)

2008-05-07  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4 (CL_FFCALL): suggest passing --host=... to the
	FFCALL configure if $ac_cv_build != $ac_cv_host

2008-05-07  Sam Steingold  <sds@gnu.org>

	* configure: accept --cbc to mean Configure/Build/Check and
	--build to mean the build host (the usual autoconf meaning)
	* makemake.in: rely on configure for cross-compilation too
	(EXTRAOBJ) [CROSS]: add gllib/malloc

2008-05-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (MYIMPROOT): use beta pages for the latest id-href.map
	(check-doc): use base, not boot, for better symbol coverage

2008-05-07  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object@symbol) [FFI]:
	print foreign type information

2008-05-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (encflags): ' -E UTF-8 -Epathname 1:1':
	UTF-8 for files, terminal, wildcard test
	1:1 for pathname

2008-05-07  Reini Urban  <rurban@x-ray.at>

	* modules/syscalls/calls.c (FMTID_SummaryInformation)
	(FMTID_UserDefinedProperties): enable also on UNIX_CYGWIN32

2008-05-07  Sam Steingold  <sds@gnu.org>

	fix bug#1959436: Allow ending http_proxy with a slash
	* clhs.lisp (http-proxy): handle the trailing slash

2008-05-07  Reini Urban  <rurban@x-ray.at>

	* modules/syscalls/calls.c (FILE_FUNCTION, CLEARERR): fix g++ and
	cygwin compilation by casting the pointers to (FILE*)

2008-05-06  Bruno Haible  <bruno@clisp.org>

	* clos-specializer2.lisp (reinitialize-instance@specializer): Change
	error message.

2008-05-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FFLUSH): add
	* modules/syscalls/posix.lisp (fflush): export
	(FILENO, FEOF, FERROR, FCLOSE): check return values

2008-05-06  Sam Steingold  <sds@gnu.org>

	* clos-class3.lisp, clos-genfun3.lisp, clos-methcomb2.lisp,
	* describe.lisp, foreign1.lisp, reploop.lisp:
	various small i18n message fixes

2008-05-05  Sam Steingold  <sds@gnu.org>

	* clos-genfun3.lisp (analyze-defgeneric): do not pass through
	gettext messages which contain no text, just format directives
	* clos-method2.lisp (program-error-reporter)
	(analyze-method-description): ditto

2008-05-05  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-not-both-error): replaces format-conditional-error
	(format-parse-cs, format-conditional, formatter-main-1): use it

2008-05-05  Sam Steingold  <sds@gnu.org>

	* clos-slotdef1.lisp, compiler.lisp, lambdalist.lisp, trace.lisp:
	* clos-method1.lisp, clos-methcomb2.lisp: more uniform i18n messages

2008-05-03  Sam Steingold  <sds@gnu.org>

	* foreign.d (check_fvar_alignment): add
	(FOREIGN-VARIABLE, %OFFSET, FOREIGN-ALLOCATE): use it

2008-05-03  Sam Steingold  <sds@gnu.org>

	* charstrg.d, compiler.lisp, debug.d, defmacro.lisp, error.d:
	* funarg.d, record.d, sequence.d: tweak i18n messages

2008-05-02  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (dispatch-reader): fix message
	* io.d (read_macro): ditto
	* pathname.d (SYS::LIB-DIRECTORY): ditto

2008-05-01  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: *.xsl & *.css are not executable

2008-05-01  Sam Steingold  <sds@gnu.org>

	* macros1.lisp (*suppress-similar-constant-redefinition-warning*):
	new user variable
	(defconstant): pass ,initial-var to constant-warning
	(constant-warning): accept 3rd variable and respect
	*suppress-similar-constant-redefinition-warning*
	* constobj.d (version): bump, because constant-warning is ABI

2008-04-30  Sam Steingold  <sds@gnu.org>

	fix bug#1928759: (format nil "~8e" .999999d0) => " 10.0d-1"
	* format.lisp (format-float-for-e): when format-float-to-string
	rounds up above 1, adjust everything

2008-04-23  Sam Steingold  <sds@gnu.org>

	* fill-out.lisp (stream-start-s-expression@t): return
	*PRINT-RIGHT-MARGIN*, just like in format.lisp

2008-04-23  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (clisp_gettext): the common part of ...
	(clgettext, clgettextl): use it

2008-04-23  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (documentation@symbol@impnotes): look into impnotes
	for CUSTOM symbols too, so that (documentation 'impnotes-root
	'sys::impnotes) works

2008-04-23  Sam Steingold  <sds@gnu.org>

	followup to the 2008-04-08 patch which broke log for very small numbers
	* comptran.d (N_log_abs_R): avoid the log(1 + (x^2 + y^2 - 1))
	trick for small numbers
	* realtran.d (ln2_F_float_F): use F_lnx1_F instead of F_lnx_F
	(F_lnx_F): move most of the calculation from R_ln1_R here
	(R_ln1_R): use either F_lnx1_F (small arg) or F_lnx_F (others)
	(R_ln_R): do not call R_ln1_R, call F_lnx_F directly

2008-04-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (installdirs, install-bin, uninstall): pass DESTDIR
	to make in po
	* po/Makefile.in.in (install-data-yes, installdirs): respect DESTDIR
	* configure: do not try to link po twice

2008-04-22  Sam Steingold  <sds@gnu.org>

	* arilev1.d, hashtabl.d, lisparit.d, lispbibl.d, misc.d:
	* pathname.d, spvw.d, spvw_garcol.d, spvw_memfile.d, time.d, unix.d:
	* xthread.d, modules/berkeley-db/bdb.c:
	"#error" does not need quotes around the message

2008-04-17  Sam Steingold  <sds@gnu.org>

	simplify support for FFI modules which want to use stdio.h
	* lispbibl.d (HAVE_FFI): export to clisp.h
	* foreign.d (init_ffi): register size_t and ssize_t
	* foreign1.lisp (size_t, ssize_t, FILE): add types
	* modules/bindings/glibc/linux.lisp (size_t, ssize_t): do not redefine
	* modules/pari/pari.lisp (allocatemoremem): use size_t
	* modules/postgresql/postgresql.lisp (size_t): do not redefine
	(PQtrace, PQprint, PQdisplayTuples, PQprintTuples):
	use FILE instead of c-pointer
	* modules/syscalls/calls.c (fopen, fdopen, fclose)
	(clearerr, feof, ferror, fileno) [HAVE_FFI]: implement
	* modules/syscalls/posix.lisp (fopen, fdopen, fclose)
	(clearerr, feof, ferror, fileno) [FFI]: export

2008-04-17  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (FILE): define to c-pointer,
	use for all FILE functions instead of c-pointer

2008-04-17  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp: sync with libpq-fe.h 1.141 (8.3)
	(PQconnectionNeedsPassword, PQconnectionUsedPassword, PQisthreadsafe)
	(PQnparams, PQparamtype, PQdescribePrepared, PQdescribePortal)
	(PQsendDescribePrepared, PQsendDescribePortal, PQescapeStringConn)
	(PQescapeByteaConn, lo_create, lo_truncate, PQencryptPassword)
	(pg_char_to_encoding, pg_encoding_to_char) [commented out for 8.1.4]
	(pg_valid_server_encoding_id): add
	sync with postgres_ext.h 1.17 (8.3)
	(PG_DIAG_SEVERITY, PG_DIAG_SQLSTATE, PG_DIAG_MESSAGE_PRIMARY)
	(PG_DIAG_MESSAGE_DETAIL, PG_DIAG_MESSAGE_HINT)
	(PG_DIAG_STATEMENT_POSITION, PG_DIAG_INTERNAL_POSITION)
	(PG_DIAG_INTERNAL_QUERY, PG_DIAG_CONTEXT, PG_DIAG_SOURCE_FILE)
	(PG_DIAG_SOURCE_LINE, PG_DIAG_SOURCE_FUNCTION): add
	* modules/postgresql/configure.in: check for the new functions

2008-04-16  Sam Steingold  <sds@gnu.org>

	* debug.d (read_form): pass the remainder of the input line to the
	command function
	* reploop.lisp (debug-reset-io, debug-help, debug-unwind, debug-quit)
	(debug-mode, debug-where, debug-up, debug-top, debug-down, bottom)
	(debug-frame-limit, debug-backtrace, debug-trap-on, debug-trap-off)
	(debug-redo, return, debug-continue, debug-print-error)
	(debug-inspect-error): accept the argline argument
	(debug-mode-[12345], get-frame-limit, debug-backtrace-[12345]): remove
	(wrap-user-commands): pass argline to user function
	(commands1, commands4): update
	(break-loop): pass argline to the restart caller

2008-04-16  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (break-loop): bind *saved-debug-package* &
	*saved-debug-readtable* so that only that binding is modified by
	debug-reset-io, not the global sane values

2008-04-14  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/dirkey1.lisp: do not re-export LDAP functions from EXT

2008-04-14  Sam Steingold  <sds@gnu.org>

	fix bug#1942246: (coerce 1 '(double-float 0d0)) fails
	* predtype.d (COERCE): when result_type is a list, pass its CAR to
	coerce_float() instead of the whole list

2008-04-14  Sam Steingold  <sds@gnu.org>

	* stream.d (sec_usec_number): usec should be _divided_ by 1000000,
	not multiplied by it
	* modules/syscalls/calls.c (rusage_to_lisp): add,
	use sec_usec_number() instead of C arithmetics
	(USAGE): use it instead of GETRU

2008-04-09  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: g++ 4.2.* and 4.3.0 are not supported due to g++ bug 35708

2008-04-08  Sam Steingold  <sds@gnu.org>

	fix bug#1934968: log(complex) sometimes inaccurate
	* comptran.d (R_R_norm2_1_R): new function
	(N_log_abs_R): use it together with R_ln1_R
	* realtran.d (F_lnx1_F): converted from F_lnx_F to accept y=x-1
	(F_lnx_F): use F_lnx1_F
	(R_ln1_R): converted from R_ln_R to accept y=x-1
	(R_ln_R): use R_ln1_R

2008-04-07  Sam Steingold  <sds@gnu.org>

	partially fix bug#1934968: log(complex) sometimes inaccurate
	* comptran.d (N_log_abs_R): new function: compute (log (abs z))
	without using hypot, thus avoiding a square root
	(N_log_N, N_N_log_N): use it

2008-04-06  Sam Steingold  <sds@gnu.org>

	fix bug#1936255: COMPILE discards MACRO doc strings
	* compiler.lisp (generatedp): handle lambda lists from macroexpanders

2008-04-06  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object): update slot access of
	FOREIGN-VARIABLE and FOREIGN-FUNCTION for the fv_version/ff_version
	* documentation.lisp (set-function-documentation): ff_properties is 6
	* foreign1.lisp (foreign-function-in-arg-count): ff_argtypes is 4

2008-04-03  Sam Steingold  <sds@gnu.org>

	* lisparit.d, intprint.d (UDS_to_DIGITS): rename to UDS_to_digits
	(DIGITS): rename to digits_t
	(power_table_entry): rename to power_table_entry_t

2008-04-03  Sam Steingold  <sds@gnu.org>

	fix bug#1790496: float format directive ~ve prints spurious digits
	* lisparit.d (FLOAT-SCALE-EXPONENT): implement
	* constsym.d, subr.d (float_scale_exponent): declare
	* format.lisp (format-scale-exponent-aux, format-scale-exponent): remove
	(format-float-for-e, format-general-float): use
	FLOAT-SCALE-EXPONENT instead of FORMAT-SCALE-EXPONENT

2008-04-02  Sam Steingold  <sds@gnu.org>

	fix bug#1928735: BIGNUM failure
	* intread.d (DIGITS_to_I): drop leading 0s; be extra permissive in the
	initial length check, but perform an overflow check on each erg_len
	increment

2008-04-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (interpreted.mem, halfcompiled.mem): work around an
	msys "feature": ":" after "/" is converted to a ";"

2008-04-02  Vladimir Volovich  <vvv2@users.sourceforge.net>
	Sam Steingold  <sds@gnu.org>

	* makemake.in: quote arguments of "test -n" (fix bug#1932548)

2008-04-01  Sam Steingold  <sds@gnu.org>

	fix bug#1931097: cross-compile mode tries to execute intparam
	* makemake.in (PARAMS) [CROSS]: use touch, not executables, for
	intparam and floatparam because the constants are defined in config.h
	(UTILCC) [CROSS]: define to cc instead of $(CC) because the
	utilities (gctrigger et al) must run locally

2008-04-01  Sam Steingold  <sds@gnu.org>

	fix bug#1931101: new-clx QUERY-COLORS wants colors not pixels
	* modules/clx/new-clx/clx.f (XLIB:QUERY-COLORS): expect pixel sequence
	(coerce_into_color): just fill pixels

2008-03-31  Sam Steingold  <sds@gnu.org>

	fix bug#1929516: m4:CL_INTPARAM_ALIGNOF loops infinitely when
	cross-compiling
	* m4/intparam.m4 (CL_INTPARAM_ALIGNOF): require CL_OFFSETOF and
	include <stddef.h> so that offsetof is defined
	(CL_INTPARAM_CROSS): disable [void (*)(void)] because compilation
	fails, while the results are never used

2008-03-30  Sam Steingold  <sds@gnu.org>

	fix bug#1929496: cosmetic informational message fix
	* m4/param.m4: set cl_machine_file_h before the cross_compiling test
	so that it is defined in both branches

2008-03-30  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GETGROUPS, %SETGROUPS): implement
	* modules/syscalls/posix.lisp (GETGROUPS): export, add DEFSETF
	* modules/syscalls/configure.in: check for getgroups and setgroups
	* lispbibl.d (llength1): export to clisp.h

2008-03-29  Sam Steingold  <sds@gnu.org>

	fix bug#1928920: missing quotes in shell code for test invocation
	* m4/intparam.m4: use ac_cv_type_long_long_int
	instead of the obsolete ac_cv_type_long_long

2008-03-28  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>
	Sam Steingold  <sds@gnu.org>

	* spvw_gcmark.d (down_sxrecord) [USE_JITC]: when gc_drop_jitc,
	replace cclosure_jitc with NIL

2008-03-27  Sam Steingold  <sds@gnu.org>

	fix bug#1683394: TANH floating point overflow for large floats
	* realtran.d (posF_tanh_posF): new function: 1-exp(-2x)/1+exp(-2x)
	(R_tanh_R): use it instead of R_cosh_sinh_R_R when |x|>=1

2008-03-25  Sam Steingold  <sds@gnu.org>

	* array.d, control.d, debug.d, eval.d, execname.c, hashtabl.d:
	* io.d, lisparit.d, lispbibl.d, list.d, package.d, pathname.d:
	* predtype.d, record.d, sequence.d, spvw.d, spvw_circ.d:
	* spvw_debug.d, spvw_garcol.d, spvw_language.d, spvw_memfile.d:
	* stream.d, weak.d: add extra braces to work around the g++ 4.2
	error "jump to label ... crosses initialization of ..."

2008-03-25  Sam Steingold  <sds@gnu.org>

	* m4/cc-sunpro.m4: new file, define CL_CC_SUNPRO
	* configure.in: call CL_CC_SUNPRO
	* makemake.in: use CC_SUNPRO, set by CL_CC_SUNPRO, to detect
	SUN SUNWspro C compiler (instead of "$CC -flags")
	Reported by Vladimir Volovich <vvv2@users.sourceforge.net>

2008-03-25  Sam Steingold  <sds@gnu.org>

	fix bug#1924501: cannot find gllib include
	* makemake.in (CPPFLAGS): pass -Igllib here, not CFLAGS

2008-03-24  Vladimir Volovich  <vvv2@users.sourceforge.net>
	Sam Steingold  <sds@gnu.org>

	fix bug#1924508: undefined symbol getSP when linking lisp.run
	on Sparc Solaris 2.8 using Sun Studio 11
	* spsparc.d, spsparc64.d: add global getSP

2008-03-24  Sam Steingold  <sds@gnu.org>

	fix bug#1924506: void function cannot return value
	* foreign.d (convert_to_foreign): "return void" does not work on
	Solaris 2.8

2008-03-24  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (NULL): #undef before defining
	to avoid "warning: macro redefined: NULL"

2008-03-24  Sam Steingold  <sds@gnu.org>

	* gray.lisp (stream-read-sequence): define methods for
	fundamental-binary-input-stream & fundamental-character-input-stream
	(stream-write-sequence): define methods for
	fundamental-binary-output-stream & fundamental-character-output-stream

2008-03-23  Sam Steingold  <sds@gnu.org>

	implement GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE
	* defs2.lisp (%read-sequence): rename from READ-SEQUENCE
	(read-sequence): call it or GRAY::STREAM-READ-SEQUENCE
	(%write-sequence): rename from WRITE-SEQUENCE
	(write-sequence): call it or GRAY::STREAM-WRITE-SEQUENCE
	* gray.lisp (stream-read-sequence, stream-write-sequence): implement
	Suggested by Anton Vodonosov <avodonosov@yandex.ru>.

2008-03-21  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, debug.d (gdb_show_stack): rename from ext_show_stack
	* lispbibl.d (gdb_disassemble_closure): add protorype
	* debug.d (gdb_disassemble_closure): implement
	* constsym.d (disassemble_closures): add

2008-03-21  Sam Steingold  <sds@gnu.org>

	* eval.d (cclosure_run) [USE_JITC]: new local inline
	(interpret_bytecode) [USE_JITC]: use it instead of explicit code
	* lightning.c: use it instead of interpret_bytecode_()

2008-03-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [XCC_GCC]: add -falign-functions=4 on all
	CPUs - it cannot hurt and is required at least on AMD64

2008-03-18  Sam Steingold  <sds@gnu.org>

	* lightning.c: use jit_movi_p instead of jit_movi_l for pointers
	to avoid "warning: cast from pointer to integer of different size"

2008-03-18  Sam Steingold  <sds@gnu.org>

	* stream.d (push_ch): extract from read_line
	(read_line): use it
	* spvw_debug (nobject_out1): handle arrays

2008-03-18  Sam Steingold  <sds@gnu.org>

	* makemake.in, lispbibl.d: USE_JITC requires HEAPCODES

2008-03-18  Drutsa Pavel  <rawlik@users.sourceforge.net>

	fix bug#1918017: new-clx:gcontext-clip-mask does not set rectangles
	* modules/clx/new-clx/clx.f (XLIB:SET-GCONTEXT-CLIP-MASK): do not
	divide n by 4 when passing to XSetClipRectangles - it has already
	been done by get_seq_len()

2008-03-17  Sam Steingold  <sds@gnu.org>

	* lightning.c (jit_compile_): restore the semantics of byteptr_min
	as in interpret_bytecode_() (fixes --with-debug compilation)

2008-03-17  Sam Steingold  <sds@gnu.org>

	drop JITC objects before saving memory
	* debug.d (GC): accept optional argument to invalidate JITC objects;
	return 3 values (same as %ROOM)
	* subr.d (gc): update declaration
	* lightning.c (gc_drop_jitc): add variable
	* spvw_garcol.d (gar_col): accept level argument to invalidate
	JITC objects (when 1, set gc_drop_jitc to true)
	* lispbibl.d (gar_col): update prototype
	(gc_drop_jitc) [USE_JITC]: declare extern
	* pathname.d (SAVEMEM): pass 1 to gar_col()
	* spvw_memfile.d (savemem): pass 1 to gar_col()
	* spvw_allocate.d (make_space_gc, make_space_gc_true)
	(make_space_gc_false): pass 0 to gar_col()
	* spvw_gcmark.d (down_cclosure) [USE_JITC]: do not mark JITC when
	gc_drop_jitc is true

2008-03-17  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-CONST): pass NIL as version to
	FIND-FOREIGN-FUNCTION (finish patch#1913831)
	* foreign.d (foreign_library_check): when version is non-NIL,
	coerce it to simple-string
	* documentation.lisp (function-documentation): foreign-function
	properties are now in slot 6

2008-03-17  Sam Steingold  <sds@gnu.org>

	* spvw_gcmark.d (down_cclosure) [USE_JITC]: check that the
	cclosure has been already JIT-compiled before gc_mark_jitc_object()
	Reported by Yann Dauphin <yann-nicolas.dauphin@polymtl.ca>
	* lightning.c (next_byte) [FAST_DISPATCH]: undefine to avoid
	error: 'cod_labels' undeclared

2008-03-16  Sam Steingold  <sds@gnu.org>

	* lightning.c (DEBUG_CHECK_BYTEPTR): do not redefine
	(jitc_jmp_cons_): replace with struct jitc_insn_list in a more C style
	* makemake.in [with_jitc=lightning]: compile eval.c with -Wno-unused
	* .gdbinit (build-id-verbose): do not set (not needed
	since gdb-6.6-45.fc8)

2008-03-13  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>

	* eval.d, lightning.c: cleanup: avoid using Lisp objects with malloc,
	use jitc_ prefix for macros defined in CLISP to separate from the
	system code

2008-03-15  Sam Steingold  <sds@gnu.org>

	patch#1913831: dlvsym support in FFI
	* lispbibl.d (Fvariable): add field fv_version
	(Ffunction): add field ff_version
	* io.d (pr_orecord): print foreign variable and function version
	* foreign.d (error_version_nonlibrary, find_name_version): add
	(foreign_library_variable, FIND-FOREIGN-VARIABLE)
	(foreign_library_function, FIND-FOREIGN-FUNCTION)
	(object_handle, object_address, foreign_library_check): accept VERSION
	(update_library): handle versioned objects
	* foreign1.lisp (def-call-out, def-c-var): accept :VERSION
	* subr.d (find_foreign_variable): accept 5 arguments
	(find_foreign_function): accept 6 arguments
	* m4/dynload.m4 (CL_DYNLOAD): check for dlvsym
	Suggested by Kaz Kylheku <kkylheku@gmail.com>.

2008-03-14  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4 (CL_FFCALL): do not nest AC_CACHE_CHECK

2008-03-13  Sam Steingold  <sds@gnu.org>

	* m4/ffcall.m4 (CL_FFCALL): reinstate AC_CACHE_CHECK,
	restore LIBS after a failed test

2008-03-12  Sam Steingold  <sds@gnu.org>

	* glm4/lib-link.m4: update from gnulib, discarding my changes
	* m4/ffcall.m4 (CL_FFCALL): update for the new AC_LIB_LINKFLAGS

2008-03-12  Sam Steingold  <sds@gnu.org>

	* foreign.d (FOREIGN-POINTER-INFO): add interface to dladdr()
	* constsym.d, subr.d (foreign_pointer_info): declare
	* m4/dynload.m4 (CL_DYNLOAD): check for dladdr()
	* foreign1.lisp (FOREIGN-POINTER-INFO): export

2008-03-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean4): also remove ${SUBDIRS} (gllib)

2008-03-12  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/configure.in: fix last patch: cannot nest
	AC_TRY_LINK; fail if XauGetAuthByAddr was not found
	also define HAVE_XGETATOMNAMES when XGetAtomNames is present (4y late!)

2008-03-12  Reini Urban  <rurban@x-ray.at>

	* modules/clx/new-clx/configure.in: explicit check for -lXau,
	needed at least for cygwin

2008-03-11  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (TAGS, tags): new targets

2008-03-11  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.45 (2008-04-04)

2008-03-11  Sam Steingold  <sds@gnu.org>

	keep in our cvs some externally maintained files - because
	requiring ./autogen.sh after cvs co is outrageous
	* autogen.sh: remove
	* Makefile.devel (build-aux-update): update ltmain.sh,
	libtool.m4 (from libtool 2.2) and gtk-2.0.m4 (from gtk2 svn) here
	(gnulib-imported): decouple from build-aux-update

2008-03-10  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-form-table): SORT & STABLE-SORT -> c-SORT
	(c-SORT): new function (check arg order, map STABLE-SORT to SORT)
	* eval.d (FUNTAB): remove stable_sort, add symbol_macro_expand
	* constobj.d (version): bump

2008-03-10  Sam Steingold  <sds@gnu.org>

	thread safety: remove static variables
	* pathname.d (struct file_status): new struct type
	(file_status_init): new function
	(assure_dir_exists): accept a pointer to struct file_status
	instead of using STACK_0; return the value in struct file_status
	(assume_dir_exists): remove
	(file_exists): use struct file_status instead of a global static
	(true_namestring): accept struct file_status, do not modify STACK
	(TRUENAME, PROBE-FILE, DELETE-FILE, rename_file, open_file, CD)
	(FILE-WRITE-DATE, EXECUTE): update true_namestring invocations
	(open_input_file, with_stat_info_computed): accept struct file_status
	(get_time_size): accept pathname directly without STACK
	(with_stat_info): remove
	(with_stat_info_arg): rename to with_stat_info
	(directory_search_scandir, directory_search, shorter_directory):
	update the assure_dir_exists invocations

2008-03-09  Sam Steingold  <sds@gnu.org>

	* pathname.d (assure_dir_exists) [WIN32_NATIVE]:
	move some code outside of with_sstring_0()
	(assume_dir_exists): local, not global
	* lispbibl.d (assume_dir_exists): remove prototype
	* stream.d (finish_output_buffered): remove "#if 0" code which used
	assume_dir_exists()

2008-03-06  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): treat SYS::%UNBOUND using ...
	(function-code-list): SYS::%UNBOUND --> ((PUSH-UNBOUND 1) (POP))
	* clos-class6.lisp, clos-genfun1.lisp, clos-method1.lisp:
	pass (SYS::%UNBOUND) as the first argument to EQ so save one
	bytecode instruction (since this involves an internal CLISP
	function, it does not warrant a general optimization in c-EQ)

2008-03-05  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (l-constantp, c-constantp): hash tables are constants
	(c-constant-value): handle hash tables; check for unhandled types

2008-03-05  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-VAR): when the variable is a constant,
	make anode foldable
	(c-GLOBAL-FUNCTION-CALL): fold some calls (NULL/CONSP/XOR...)

2008-03-03  Sam Steingold  <sds@gnu.org>

	c-NORMAL-FUNCTION-CALL can now fold calls
	* compiler.lisp (try-constant-fold): extract from c-DIRECT-FUNCTION-CALL
	(return-if-foldable): new macro, uses try-constant-fold
	(c-NORMAL-FUNCTION-CALL, c-DIRECT-FUNCTION-CALL): use it
	(function-code-list): extract from c-GLOBAL-FUNCTION-CALL
	(c-GLOBAL-FUNCTION-CALL): use it
	(collect-arg, collect-args): add
	(c-NORMAL-FUNCTION-CALL, c-DIRECT-FUNCTION-CALL)
	(c-GLOBAL-FUNCTION-CALL): use them
	* record.d, subr.d (%UNBOUND): seclass_read, not seclass_foldable,
	because (const-value (new-const #<unbound>)) is NIL

2008-03-03  Sam Steingold  <sds@gnu.org>

	* hashtabl.d, subr.d (GETHASH): seclass_read, not seclass_default

2008-03-02  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (define-hash-table-test): use check-symbol

2008-03-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-recompile): do not specify file name in "-o",
	just the directory

2008-03-02  Sam Steingold  <sds@gnu.org>

	* .gdbinit (build-id-verbose): set to 0 to avoid fedora yum messages
	(main_actions): silent break to call check_funtab()

2008-03-01  Sam Steingold  <sds@gnu.org>

	* clos-genfun4.lisp (check-gf-lambda-list): new function
	(generic-function-argument-precedence-order, generic-function-argorder)
	(generic-function-lambda-list, generic-function-signature): use it

2008-02-29  Sam Steingold  <sds@gnu.org>

	* analyse-funtab.lisp: new file: study which functions should be
	added to eval.d:FUNTAB
	* eval.d (FUNTAB): add check_function_name, typep_class,
	defined_class_p, proper_list_p, pcompiled_function_p, make_macro,
	macrop, macro_expander, symbol_macro_p, standard_instance_access,
	set_standard_instance_access, encodingp
	(FUNTABR): add mapcap
	* constobj.d (version): bump

2008-03-01  Sam Steingold  <sds@gnu.org>

	* record.d (CONSTANT_INITFUNCTION_P): new define
	(CONSTANT-INITFUNCTION-P, %SHARED-INITIALIZE, do_initialize_instance):
	(%MAKE-INSTANCE): use it

2008-02-29  Sam Steingold  <sds@gnu.org>

	* record.d (CLOSURE-CONSTS): fix for the jitc addition

2008-02-29  Sam Steingold  <sds@gnu.org>

	* io.d (pr_cclosure_lang): fix printing of lalist & docstring yet again

2008-02-27  Sam Steingold  <sds@gnu.org>

	use keyword symbols from the core when possible
	* utils/modprep.lisp (mk-objdef, objdef-object, objdef-local): add
	(parse-signature, new-checker): use mk-objdef instead of init-to-objdef
	(check-signature, lexical-analysis, print-tables-1): use
	objdef-object & objdef-local instead of objdef-tag
	NB: this feature is actually disabled because
	&S(...) is invalid (S() is not an lvalue) in non-debug builds
	* modules/berkeley-db/bdb.c, modules/gdbm/gdbm.c, modules/pcre/cpcre.c:
	* modules/syscalls/calls.c, modules/regexp/regexi.c:
	* modules/rawsock/rawsock.c, modules/clx/new-clx/clx.f:
	use #\: in DEFUN to denote core keywords
	* constsym.d (Kcopy): always define
	(Kpreserve, Kinvert): add
	* spvw_debug.d (get_symbol_count, get_constsym) [DEBUG_SPVW]: add
	* modules/syscalls/calls.c (CONSTSYM) [DEBUG_SPVW]: use them

2008-02-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c use S(K...) instead of `...` for
	common keywords
	(copy_method_t): move before DEFMODULE for DEFCHECKER to work
	(check_copy_method): replace with a DEFCHECKER
	(copy_method_object): remove

2008-02-26  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/Makefile.in (all): depend on wildcard.fas
	* modules/oracle/Makefile.in (all): depend on oracle.fas
	* modules/fastcgi/Makefile.in (all): depend on fastcgi.fas
	* modules/bindings/glibc/Makefile (all): depend on linux.fas
	* modules/postgresql/Makefile.in (all): depend on postgresql.fas

2008-02-26  Sam Steingold  <sds@gnu.org>

	a less invasive work-around for bug#1413016:
	it is not amd64 which is at fault, but TYPECODES
	* makemake.in (XCFLAGS): revert the 2007-10-15 patch
	* spvw_garcol.d (update) [TYPECODES]: comment out DEBUG_SPVW_ASSERT
	(gc_unmarkcheck) [TYPECODES]: disable

2008-02-26  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (DEBUG_SPVW_ASSERT): print the failed assertion
	before abort() both as is and with expanded macros

2008-02-25  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/m4/gtk-2.0.m4): use wget instead of svn
	* autogen.sh: svn is no longer required, let us keep it this way!

2008-02-24  Sam Steingold  <sds@gnu.org>

	* configure (info_help): use ./src/configure to get the list
	of options which specify location of dependencies

2008-02-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GNULIB_CHECKOUT): do not specialize
	on a specific user, one can always use a symlink

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* configure (info_help): Mention the --with[out]-lib*-prefix options.
	Sort the other options like autoconf does.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* autogen.sh: New file.
	* Makefile.devel (build-prerequisites): New target.
	(all): Depend on it.
	(EXCLUDE): Exclude autogen.sh.
	* utils/fix-perms.sh: Ensure autogen.sh is executable.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (GTK2_SVN_ROOT): New variable.
	(m4/gtk-2.0.m4): New rule.
	(aclocal.m4): Depend on it.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* makemake.in (COPYRIGHT.rtf): Fix escaping.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	Make it easier to update the gnulib imported files.
	* Makefile.devel (GNULIB_CVS_ROOT, GNULIB_CVS_REPOSITORY): New
	variables.
	(GNULIB_CHECKOUT): Rename from GNULIB_HOME. Make it normally a
	subdirectory of the current directory.
	(update-gnulib): New rule.
	(build-aux-update): Depend on it.
	(gnulib-imported): Rename from gnulib-update.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (build-aux-update): Pass option -d to 'cvs update'.
	Remove unportable 'cd -' command.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	Add rule for fetching a working libtool.m4.
	* build-aux/ltmain.sh: Remove file.
	* Makefile.devel (src/aclocal.m4): Depend on src/m4/libtool.m4.
	(build-aux-update): Depend on src/build-aux/ltmain.sh.
	(LIBTOOL_VERSION, LIBTOOL_SOURCE_FILE, LIBTOOL_SOURCE_URL): New
	variables.
	(build-aux/ltmain.sh m4/libtool.m4): New rule.
	(EXCLUDE): Also exclude the LIBTOOL_SOURCE_FILE and its predecessors.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	fix bug#1836142 part 2.
	* lispbibl.d (STACK_register, mv_count_register, value1_register)
	(back_trace_register): Don't define for gcc-4.2 and newer when
	USE_GCC_REGISTER_VARIABLES is not defined.

2008-02-24  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (STACK_register, mv_count_register, value1_register)
	(back_trace_register): Define for gcc-3.3.[4-6].

2008-02-23  Bruno Haible  <bruno@clisp.org>

	fix bug#1836142 part 1.
	* floatparam.c (check): Change argument types to 'volatile type*'.
	This defeats optimizations of gcc 4.3.0 snapshots.

2008-02-16  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (create-fun-obj): jitc-p is true when either SPACE is 0
	or SPEED is at least 1
	* clos-genfun2b.lisp (*compile-no-jitc*): new constant
	(compute-discriminating-function-<generic-function>)
	(prototype-factory-table, finalize-fast-gf):
	use it in generated lambda declarations instead of (COMPILE)

2008-02-15  Sam Steingold  <sds@gnu.org>

	* lightning.c (jit_run): use !fpointerp instead of nullp
	to test cclosure_jitc
	(jit_compile_) [DEBUG_BYTECODE]: declare byteptr_bad_jump

2008-02-22  Sam Steingold  <sds@gnu.org>

	* io.d (pr_cclosure_lang): fix printing of lalist & docstring

2008-02-22  Sam Steingold  <sds@gnu.org>

	make sure that CREATE-FUN-OBJ uses the correct OPTIMIZE settings
	* compiler.lisp (fnode): add DENV slot
	(c-LAMBDABODY): (SETF (FNODE-DENV *FUNC*) *DENV*)
	(create-fun-obj): pass (FNODE-DENV FNODE) to DECLARED-OPTIMIZE
	(make-trampoline): revert last patch: do not bind *DENV*; instead,
	pass :DENV '((OPTIMIZE (SPACE 3) (SPEED 0))) to MAKE-FNODE

2008-02-19  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: all *.d are non-executable

2008-02-19  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (make-trampoline): use backquote for readability;
	bind *DENV* for DECLARED-OPTIMIZE in CREATE-FUN-OBJ
	(create-fun-obj): compute (DECLARED-OPTIMIZE 'SPACE) just once,
	not 3 times
	(c-REQUIRE): do not suppress load libfile message completely

2008-02-19  Sam Steingold  <sds@gnu.org>

	* macros3.lisp (compile-time-value): new exported user macro
	* init.lisp (compile-time-value): export from EXT
	* compiler.lisp (c-COMPILE-TIME-VALUE): compile it
	(c-form-table): use c-COMPILE-TIME-VALUE for COMPILE-TIME-VALUE
	* foreign1.lisp (compile-time-value): remove broken definition

2008-02-15  Sam Steingold  <sds@gnu.org>

	* spvw.d, _clisp.c: remove the last vestiges of the -s command
	line option, removed on 2004-08-31

2008-02-14  Sam Steingold  <sds@gnu.org>

	* record.d (make_code_vector): converted from MAKE-CODE-VECTOR
	(make_closure): accept 7 keywords instead of 6 positional arguments;
	call make_code_vector on :CODE
	(make_constant_initfunction): update
	* subr.d, constsym.d (make_code_vector): remove
	* constsym.d (make_closure): rename from %MAKE-CLOSURE to MAKE-CLOSURE
	(Kcode, Kconstants, Kseclass, Klambda_list, Kdocumentation, Kjitc_p):
	add
	* subrkw.d (make_closure): add
	* eval.d (FUNTAB): remove make_code_vector
	* io.d (CLOSURE-READER): update the C_make_closure() call
	* compiler.lisp (make-closure): remove defun
	(create-fun-obj): update make-closure call

2008-02-14  Sam Steingold  <sds@gnu.org>

	* constobj.d (version): bump
	* constsym.d, subr.d, foreign.d (lookup_foreign_variable)
	(lookup_foreign_function, foreign_library_variable): remove legacy ABI
	* constsym.d, subr.d, foreign.d (open_foreign_library): rename
	from foreign_library
	* foreign.d (open_library, update_library, check_library):
	remove legacy version argument
	* eval.d (FUNTAB): add cs_string_eq, cs_string_noteq, cs_string_less,
	cs_string_greater, cs_string_ltequal, cs_string_gtequal, cs_string,
	fdefinition, whitespacep, elastic_newline, cs_intern, cs_find_symbol,
	cs_shadow, cs_make_package, cs_find_all_symbols, cs_symbol_name,
	map_into, xgcd
	* foreign1.lisp (open-foreign-library): export
	* macros2.lisp (check-not-special-variable-p): remove legacy ABI
	* record.d, subr.d (MAKE-MACRO): both arguments are required

2008-02-13  Sam Steingold  <sds@gnu.org>

	first stab at keeping JITC code in the closure
	* compiler.lisp (make-closure): accept :jitc-p and pass it on to
	%make-closure in a cons cell together with seclass
	* eval.d (interpret_bytecode) [USE_JITC]: check cclosure_jitc_p
	and use jit_run instead of jit_compile_
	* io.d (CLOSURE-READER): pass jitc_p to make_closure
	(pr_cclosure_lang): write jitc_p
	* lightning.c (jitc_object): new struct
	(all_jitc_objects): new static
	(gc_mark_jitc_object): mark jitc_object
	(gc_scan_jitc_objects): scan all_jitc_objects
	(jit_compile_): save jitc_object in cclosure_jitc(closure)
	(jit_run): add
	* lispbibl.d (Codevec.ccv_flags): use bit(5) for jitc_p
	(ccv_flags_jitc_p, cclosure_jitc, cclosure_jitc_p): define
	(gc_mark_jitc_object, gc_scan_jitc_objects) [USE_JITC]: declare
	* record.d (%MAKE-CLOSURE): accept jitc_p in a cons cell with seclass
	(MAKE-CONSTANT-INITFUNCTION): pass (seclass . jitc_p)
	(CLOSURE-DOCUMENTATION, (SETF CLOSURE-DOCUMENTATION))
	(CLOSURE-LAMBDA-LIST): update for jitc_p
	* spvw_garcol.d (gar_col_normal) [USE_JITC]: call gc_scan_jitc_objects
	* spvw_gcmark.d (down_cclosure): define

2008-02-11  Sam Steingold  <sds@gnu.org>

	* io.d (pr_symbol_part): use pr_fasl_special only on fasl_streams

2008-02-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-sources): grep ${SRCDIR}*.d, not *.d
	* subrkw.d (make_thread): fix a typo

2008-02-11  Sam Steingold  <sds@gnu.org>

	fix bug#1890854: read-preserving-whitespace eats whitespace
	after quoted object
	* io.d (list2_reader): bind *READ-RECURSIVE-P* around
	read_recursive_no_dot() to avoid *READ-PRESERVE-WHITESPACE* being
	re-bound to NIL in read_recursive()

2008-02-10  Sam Steingold  <sds@gnu.org>

	* clos-genfun2b.lisp (finalize-fast-gf): avoid calling
	prototype-factory twice on the same argument
	* record.d (%COPY-GENERIC-FUNCTION): use clos_venv instead of
	clos_consts[0]

2008-02-07  Sam Steingold  <sds@gnu.org>

	finally fix def-c-const
	* foreign1.lisp (compile-time-value): new macro
	(def-c-const): use it; do not use def-call-out for the constant
	function to avoid clutter
	(finalize-coutput-file): keep cftype in *constant-table*

2008-02-07  Sam Steingold  <sds@gnu.org>

	prepare for keeping jitc code in cclosure by not assuming that
	cclosure constants start at position 2 inside the record
	* constsym.d, subr.d (closure_const, set_closure_const): declare
	* record.d (CLOSURE-CONST, SET-CLOSURE-CONST): implement
	* pleces.lisp ((SETF CLOSURE-CONST)): define
	* compiler.lisp (pass3): use CLOSURE-CONST instead of SYS::%RECORD-REF
	(make-trampoline): use CLOSURE-CODEVEC instead of SYS::%RECORD-REF
	* defs2.lisp (dispatch-reader): use CLOSURE-CONST instead of %RECORD-REF
	and return constant number instead of record position in VECTOR-INDEX
	* io.d (SET-MACRO-CHARACTER, GET-MACRO-CHARACTER):
	O(dispatch_reader_index) contains position in
	TheCclosure(newclos)->clos_consts, not in
	((Srecord)TheCclosure(newclos))->recdata
	* trace.lisp (subclosure-pos, %local-get, %local-set): use
	CLOSURE-CONST instead of %RECORD-REF & %RECORD-STORE

2008-02-06  Sam Steingold  <sds@gnu.org>

	* .gdbinit (run_test, run_all_tests, ansi_tests, ansi_tests_compiled):
	pass -E utf-8 because all our files are in unicode

2008-02-06  Sam Steingold  <sds@gnu.org>

	accept "-lp" to add to *LOAD-PATHS*
	(and fix mingw separate directory build, see
	http://article.gmane.org/gmane.lisp.clisp.devel/17375
	http://article.gmane.org/gmane.lisp.clisp.devel/17388)
	* init.lisp (*load-paths*): do not reset
	* constsym.d (*load-paths*): add
	* spvw.d (init_symbol_values): init *LOAD-PATHS*
	(struct argv_actions): add argv_load_paths_count & argv_load_paths
	(parse_options): init p2->argv_load_paths_count & p2->argv_load_paths;
	argv_for now has an additional value: for_load_path;
	accept "-lp" and set argv_for to for_load_path for adding the
	argument o p2->argv_load_paths
	(main_actions): push -lp arguments to *LOAD-PATHS*
	* makemake.in: use -lp instead of setting *LOAD-PATHS* in -x

2008-02-06  Sam Steingold  <sds@gnu.org>

	the final fix for bug#1578179: Compile-file: non-similarity of
	strings with cr/lf (also treated on 2006-11-17 & 2008-02-04)
	* io.d (read_token_1): when reading from a FASL stream,
	read \r & \n as #\Return and #\Newline respectively
	(pr_symbol_part): when printing to a FASL stream,
	print #\Newline & #\Return as \r and \n respectively

2008-02-06  Sam Steingold  <sds@gnu.org>

	fix bug#1887934: make clean removes Lisp source files
	* makemake.in (clean5): do not remove LISPFILES, they are not
	linked over since 2007-12-10

2008-02-04  Sam Steingold  <sds@gnu.org>

	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: for consistency
	with UNIX, do NOT call MERGE-PATHNAMES on directories

2008-02-04  Sam Steingold  <sds@gnu.org>

	extend the meaning of the REVAL stream flag to mean a FASL stream:
	in addition to ignoring *READ-EVAL*, use \n for #\Newline and #\r
	for #\Return inside strings (replaces the 2006-11-17 patch #0Y"")
	* compiler.lisp (set-output-stream-fasl): extract from compile-file
	(compile-file): use it to mark *fasoutput-stream* & *liboutput-stream*
	as FASL streams with UTF-8 encoding
	* constsym.d, subr.d, stream.d (ALLOW-READ-EVAL): -> STREAM-FASL-P
	* constsym.d, gray.lisp, stream.d ($REVAL): rename to $FASL
	* init.lisp (load): do not mark input-stream as a FASL stream: a
	FAS file is marked as such with #0Y_; a lisp file is just a text file
	* lispbibl.d (strmflags_fasl_bit_B): rename from strmflags_reval_bit_B
	* lispbibl.d, stream.d (stream_get_read_eval): rename to stream_get_fasl
	(stream_set_read_eval): rename to stream_set_fasl
	* io.d (STRING-READER): when reading from a FASL stream, recognize \n\r
	(CLOSURE-READER): accept #0Y_ to set FASL flag, #0Y^ to clear it,
	do not accept #0Y""
	(pr_fasl_special): new function
	(pr_sstring_ab): use it; do not print #0Y to FASL streams
	(pr_instance, pr_orecord): use FASL stream flag instead of *COMPILING*

2008-02-04  Sam Steingold  <sds@gnu.org>

	* makemake.in: fix distrib on win32 when building in src

2008-02-04  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-CONST): use get-assoc & note-c-const
	(note-c-const): new ABI function; make the requirement that
	def-c-const must be compiled to C explicit for better error reporting

2008-02-03  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>

	* lightning.c: new file, implements JITC via GNU lightning

2008-02-03  Sam Steingold  <sds@gnu.org>

	add JITC harness
	* configure: accept --with-jitc=FLAVOR
	* eval.d (interpret_bytecode) [USE_JITC]: use jit_run
	[USE_JITC]: load the appropriate jit implementation
	* configure.in: call CL_LIGHTNING
	* m4/lightning.m4: implement CL_LIGHTNING
	* lispbibl.d [USE_JITC]: disable registers when using JITC
	* makemake.in: accept --with-jitc=FLAVOR
	(XCFLAGS) [--with-jitc=FLAVOR]: add -DUSE_JITC -D${with_jitc}
	link over ${with_jitc}.c into the build directory
	(eval.o): depend on ${with_jitc}.c
	(clean5): remove ${with_jitc}.c

2008-01-30  Sam Steingold  <sds@gnu.org>

	* pprint.lisp (copy-pprint-dispatch): distinguish the 3 cases:
	no argument, NIL argument, table argument
	Reported by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>

2008-01-30  Sam Steingold  <sds@gnu.org>

	* makemake.in: libsvm requires FFI
	* modules/fastcgi/configure.in, modules/oracle/configure.in:
	* modules/pari/configure.in, modules/postgresql/configure.in:
	* modules/wildcard/configure.in, modules/zlib/configure.in:
	fail if ffcall is not present

2008-01-29  Sam Steingold  <sds@gnu.org>

	* po/Makefile.devel (LISPSOURCES): remove affi1
	(DSOURCES): remove affi, add funarg

2008-01-29  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.44 (2008-02-02)

2008-01-27  Sam Steingold  <sds@gnu.org>

	* comptran.d (C_rationalp): new macro
	(N_N_log_N, N_N_expt_N): use it

2008-01-27  Reini Urban  <rurban@x-ray.at>

	<35_trans4>
	* places.lisp, comptran.d, realrand.d, realtran.d:
	Translate comments to English. Convert # to /* */.

2008-01-27  Sam Steingold  <sds@gnu.org>

	* pathname.d (get_time_size) [WIN32_NATIVE]: strip trailing
	backslash from resolved_asciz and close search_handle.
	This actually fixes 2007-12-31 & 2008-01-25 patches.
	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.

2008-01-25  Sam Steingold  <sds@gnu.org>

	* pathname.d (get_time_size) [WIN32_NATIVE]: accept directories;
	this should fix the 2007-12-31 patch for woe32
	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.

2008-01-24  Sam Steingold  <sds@gnu.org>

	* lndir: do not link over CVS directories

2008-01-23  Sam Steingold  <sds@gnu.org>

	fix bug#1781476: signal handling examples in glibc fail
	* modules/bindings/glibc/linux.lisp (sigaction): sa_restorer is
	now a generic pointer, not a pointer to a function, because...
	  The sa_restorer element is obsolete and should not be used.
	  POSIX does not specify a sa_restorer element.
	On Linux 2.6.22.7-57.fc6, sigaction(SIGINT) returns invalid
	pointers as sa_restorer

2008-01-23  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (finalize-coutput-file): constants
	*CONSTANT-TABLE* are now (const . guard)
	(DEF-C-CONST): accept :GUARD

2008-01-22  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (SIGSET_NWORDS): compute using
	ffi:ulong, as specified in <bits/sigset.h>
	(sigset_t): array of ulong, as specified in <bits/sigset.h>

2008-01-22  Sam Steingold  <sds@gnu.org>

	fix bug#1407486: FFI revalidates too many library functions
	in new session
	* foreign.d (check_faddress_valid): check that validate_fpointer()
	actually did make the pointer valid
	(update_library): make sure that the non-validatable object
	remains marked as invalid

2008-01-22  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): print INVALID for invalid foreign
	functions and foreign addresses

2008-01-22  Sam Steingold  <sds@gnu.org>

	* control.d (APPLY, specdecled_): avoid GCC "warning: value
	computed is not used"

2008-01-22  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (*saveinitmem-verbose*): add defvar
	(saveinitmem): :verbose defaults to *saveinitmem-verbose*
	* spvw.d (init_symbol_values): define *SAVEINITMEM-VERBOSE*
	(main_actions): set it to NIL when argv_verbose < 1
	* init.lisp (*saveinitmem-verbose*): export from CUSTOM
	(loading-message): permit more than 1 format argument
	* constsym.d (*saveinitmem-verbose*): add symbol

2008-01-22  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (savemem): return file length
	* lispbibl.d (savemem): update prototype
	* pathname.d (SAVEMEM): return file length

2008-01-21  Sam Steingold  <sds@gnu.org>

	* spvw.d (run_hooks): establish a DRIVER frame around the loop to
	enable reset() on errors in user code
	(main_actions): ditto around loading RC file, init files,
	compiling files, executing scripts (but not expression, they go
	through SYS::DRIVER)

2008-01-22  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (with-abort-restart): new macro: establish the
	DEBUG catcher and the ABORT restart with a useful report function
	(main-loop, break-loop, step-hook-fn): use it

2008-01-22  Sam Steingold  <sds@gnu.org>

	fix bug#1877497: the set of restarts grows with each image save
	and bug#1714737: bad restarts when .clisprc signals errors.
	* savemem.lisp (saveinitmem): bind *ACTIVE-RESTARTS* &
	*CONDITION-RESTARTS* to NIL around SAVEMEM instead of setting them
	to NIL in the *DRIVER* to avoid multiple ABORT restarts in saved images

2008-01-21  Sam Steingold  <sds@gnu.org>

	* eval.d (reset): set unwind_protect_to_save.upto_frame;
	print a useful(?) error message on abort
	(CHECK_STACK, CHECK_STACK_S, CHECK_STACK_C): new macros
	(eval_fsubr, eval_subr, apply_subr, funcall_subr): use CHECK_STACK_S
	(eval_closure, apply_closure, funcall_closure): use CHECK_STACK_C
	(find_keyword_value, match_subr_key, match_cclosure_key): avoid
	GCC "warning: value computed is not used"

2008-01-19  Sam Steingold  <sds@gnu.org>

	* control.d (THE): raise TYPE-ERROR on failure

2008-01-18  Sam Steingold  <sds@gnu.org>

	* debug.d (print_back_trace, print_stackitem):
	also print FRAME offset from STACK_start
	(show_stack): use STACK_start instead of nullobj to check for stack end;
	print bt & FRAME _before_ testing for loop termination

2008-01-17  Sam Steingold  <sds@gnu.org>

	fix bug#1506316: segfault in framep() debug.d:644
	* debug.d (stack_upend_p): use "STACK_start cmpSTACKop FRAME"
	instead of "eq(FRAME_(0),nullobj)" to check for STACK start
	(stack_downend_p): use "FRAME cmpSTACKop STACK" to check for STACK end

2008-01-17  Sam Steingold  <sds@gnu.org>

	* pathname.d (open_file): fix a gc-safety bug in (open
	... :direction :output :if-exists :rename-and-delete)
	by keeping namestring on the STACK all along

2008-01-16  Sam Steingold  <sds@gnu.org>

	* pathname.d (open_file): fix g++ compilation
	* charstrg.d (uc_width): remove the global inline declaration of
	the gnulib function to avoid a g++ warning

2008-01-16  Sam Steingold  <sds@gnu.org>

	* ariarm.d, lispbibl.d: convert comments from "# " to "/**/"

2008-01-16  Sam Steingold  <sds@gnu.org>

	* foreign.d (convert_function_to_foreign, convert_from_foreign)
	(convert_from_foreign_array_fill, convert_to_foreign, %ELEMENT):
	use while instead of dotimes and do/while instead of dotimesp
	(%ELEMENT): avoid GCC "warning: value computed is not used"

2008-01-16  Sam Steingold  <sds@gnu.org>

	* list.d (make_list, NTHCDR, listof, LIST*, APPEND, NCONC, NBUTLAST):
	use while instead of dotimes and do/while instead of dotimesp

2008-01-16  Sam Steingold  <sds@gnu.org>

	* sequence.d (REDUCE): use missingp
	(CONCATENATE, seq_boolop, MAP, MAP-INTO, delete_help, substitute_help):
	use while instead of dotimes and do/while instead of dotimesp
	(verify_return_value, VERIFY_RETURN_VALUE): add function & macro
	(MAKE-SEQUENCE, coerce_sequence, COERCED-SUBSEQ, CONCATENATE, MAP)
	(MERGE): use them
	(CONCATENATE, seq_boolop, MAP): avoid GCC
	"warning: value computed is not used"

2008-01-16  Reini Urban  <rurban@x-ray.at>

	<34_trans3>
	* sequence.d, list.d: translate all comments and convert them to /**/

2008-01-15  Sam Steingold  <sds@gnu.org>

	* debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack
	(FRAME-UP-1, FRAME-DOWN-1): remove
	(FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument
	* reploop.lisp (frame-limit-down, frame-limit-up, debug-up)
	(debug-top, debug-down, debug-bottom, frame-up-down):
	use (frame-up 1 ...) instead of (frame-up-1 ...)
	and (frame-down 1 ...) instead of (frame-down-1 ...)
	and (frame-up t ...) instead of (frame-up ...)
	and (frame-down t ...) instead of (frame-down ...)
	(print-backtrace): use ~:P in message
	* constsym.d, subr.d (frame_up_1, frame_down_1): remove

2008-01-15  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (quit): Note the meaning of a negative final_exitcode.
	* spvw.d (quit_instantly): Likewise.
	(main): If exitcode is negative, quit the program through a signal
	rather than through exit().
	* spvw_sigterm.d (quit_on_signal): Set final_exitcode.

2008-01-14  Bruno Haible  <bruno@clisp.org>

	* spvw_sigterm.d (set_sigterm_handler): New function.
	(uninstall_sigterm_handler, install_sigterm_handler): Use it.
	(quit_on_signal): After raising the signal, return from the function.

2008-01-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel: Use CONFIGURES instead of CLISP_CONFIGURES. Fixes
	problem introduced on 2008-01-05.

2008-01-14  Sam Steingold  <sds@gnu.org>

	fix bug#1871205: how to quit upon SIGTERM, SIGKILL, or SIGQUIT
	* spvw_sigterm.d (quit_on_signal_in_progress): new static boolean
	(uninstall_sigterm_handler): undo the effects of install_sigterm_handler
	(quit_on_signal): call uninstall_sigterm_handler first thing so
	that the repeated signals bypass the handler and kill CLISP instantly

2008-01-13  Bruno Haible  <bruno@clisp.org>

	Make it work on OpenBSD 4.0 x86 with address space randomization.
	* lispbibl.d (ADDRESS_RANGE_RANDOMIZED): New macro.
	(LINUX_NOEXEC_HEAPCODES/STANDARD_HEAPCODES, TRIVIALMAP_MEMORY): Depend
	on it.

2008-01-13  Bruno Haible  <bruno@clisp.org>

	* spvw_memfile.d (loadmem_from_handle) [SPVW_MIXED_BLOCKS_OPPOSITE]:
	Fix the test whether there's enough room.

2008-01-13  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Don't use $(MAKE) -C.

2008-01-13  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (STACK_start): declare new per_thread
	* spvw.d (STACK_start): create and ...
	(init_memory): init to the initial value of STACK
	* spvw_debug.d (nobject_out1): use STACK_start to print
	framepointers and framepointerp to check for them
	* io.d (pr_framepointer_1): new function: print frame offset from
	STACK_start instead of its address
	(pr_framepointer): use it instead of pr_hex6

2008-01-13  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (per_thread): per-thread storage class
	* spvw.d, lispbibl.d (STACK, callback_saved_registers)
	(saved_mv_count, saved_value1, saved_back_trace, saved_STACK)
	(SP_bound, STACK_bound, mv_count, mv_space, temp_mv_count)
	(temp_value1, back_trace, aktenv, unwind_protect_to_save)
	(handler_args, inactive_handlers): use per-thread instead of
	current_thread() fields

2008-01-12  Sam Steingold  <sds@gnu.org>

	* makemake.in: use add traling #\/ to gllib in "find" so that
	gllib can be a symlink

2008-01-12  Sam Steingold  <sds@gnu.org>

	* xthread.d: disable spin locks (gcc barfs)
	* constsym.d, subr.d, subrkw.d, threads.lisp, zthread.d:
	rename thread functions from PROCESS to THREAD
	* lispbibl.d (Rectype_Thread, Rectype_Mutex, Rectype_Exemption)
	[MULTITHREAD]: add Rectypes
	(Thread, Mutex, Exemption) [MULTITHREAD]: add types
	(TheThread, TheMutex, TheExemption) [MULTITHREAD]: add macros
	(allocate_thread, allocate_mutex, allocate_exemption)
	[MULTITHREAD]: add declarations
	* spvw_typealloc.d (allocate_thread, allocate_mutex)
	(allocate_exemption) [MULTITHREAD]: add
	* io.d (pr_orecord) [MULTITHREAD]: handle Rectype_Thread,
	Rectype_Mutex, and Rectype_Exemption
	* constobj.d (printstring_thread, printstring_mutex)
	(printstring_exemption) [MULTITHREAD]: add strings

2008-01-10  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (frame-up-down): add
	(print-backtrace, break-loop, step-hook-fn): use it
	(*frame-limit1*): rename to *frame-limit-down*
	(frame-limit1): rename to frame-limit-down
	(*frame-limit2*): rename to *frame-limit-up*
	(frame-limit2): rename to frame-limit-up
	* debug.d (test_framepointer_arg): report a TYPE-ERROR
	(climb_stack_once, climb_stack_repeat): add
	(FRAME-UP-1, FRAME-DOWN-1): use climb_stack_once
	(FRAME-UP, FRAME-DOWN): use climb_stack_repeat
	(stack_upend_p): use frame_limit_up instead of frame_limit2
	(stack_downend_p): use frame_limit_down instead of frame_limit1
	* constsym.d (frame_limit1): rename to frame_limit_down
	(frame_limit2): rename to frame_limit_up

2008-01-09  Sam Steingold  <sds@gnu.org>

	* eval.d (reset): replace NOTREACHED with abort

2008-01-09  Sam Steingold  <sds@gnu.org>

	* debug.d (print_back_trace): index is uintL, not int
	(print_bt_to_frame): add
	(DESCRIBE-FRAME, show_stack): use it

2008-01-07  Sam Steingold  <sds@gnu.org>

	* eval.d (interpret_bytecode_): translated labels:
	svref_kein_svector --> svref_not_a_svector
	svref_kein_index --> svref_not_an_index
	* init.lisp (load): translated label: weiter --> proceed
	* condition.lisp (check-type-failed, assert-failed)
	(simple-assert-failed, eval-loaded-form, ctypecase-failed):
	format RESTART-CASE clauses in a more traditional way (lalist
	first)
	* spvw_garcol.d (gc_unmarkcheck): better error reporting
	* spvw.d (init_memory) [DEBUG_SPVW]: print STACK bounds too

2008-01-07  Sam Steingold  <sds@gnu.org>

	fix bug#1448744: :q debugger command does not reset program stack
	* eval.d (reset): save last driver frame and use it instead of
	starting a new driver when the STACK is exhausted

2008-01-06  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (break-loop): remove #\. from the end of a message
	(safe-wr-st): new function, use instead of WRITE-STRING whenever
	it is used with TEXT in this file to
	fix bug#1865636: infinite recursive error reporting

2008-01-06  Sam Steingold  <sds@gnu.org>

	fix bug#1865567: hangs at the end of input script
	* reploop.lisp (main-loop): revert the 2003-12-18 patch: exit on
	EOF on all streams to avoid CLISP hanging at the end of script on
	"clisp < script" and "cat script | clisp"

2008-01-05  Sam Steingold  <sds@gnu.org>

	* Makefile.devel: remove all ffcall-related targets (libffcall is
	now hosted on savannah)
	* ffcall/: remove the tree

2008-01-03  Sam Steingold  <sds@gnu.org>

	* spvw.d (size_arg): turn into a function from macro SIZE_ARG;
	accept Tera and Peta on 64-bit platforms
	(parse_options): fix limit_low argument to size_arg()

2008-01-03  Sam Steingold  <sds@gnu.org>

	* makemake.in: pass "-o ./" to "clisp -c" uniformly
	(MEMOPT): new variable: -m 2MW for compilation

2007-12-31  Sam Steingold  <sds@gnu.org>

	* pathname.d, win32aux.d: use true/false instead of TRUE/FALSE
	* pathname.d (error_delete_open, error_rename_open): print subr name
	(check_rename_open): add
	(rename_file, create_backup_file): use it

2007-12-31  Sam Steingold  <sds@gnu.org>

	Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to
	EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY,
	respectively, for consistency with EXT:PROBE-DIRECTORY,
	EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY.
	* constsym.d, eval.d, init.lisp, pathname.d, subr.d: do the renaming
	* deprecated.lisp (delete-dir, make-dir, rename-dir): deprecate
	* modules/syscalls/calls.c (COPY-FILE): use L(make_directory)

2007-12-31  Sam Steingold  <sds@gnu.org>

	fix bug#1860677: DIRECTORY of dirs ignores :FULL
	* pathname.d (pack_full_info, with_stat_info_computed): add
	(get_time_size) [WIN32_NATIVE]: add
	(with_stat_info_arg) [UNIX]: add
	(directory_search_scandir) [WIN32_NATIVE]: use get_time_size()
	and pack_full_info()
	(directory_search): use with_stat_info_computed() for directories

2007-12-31  Sam Steingold  <sds@gnu.org>

	* pathname.d (push, PUSH_ON_STACK): add inline & macro wrapper
	(copy_pathname_and_add_subdir, directory_search_scandir)
	(directory_search): use it
	(pathname_add_subdir): do not pass arguments on the STACK

2007-12-30  Sam Steingold  <sds@gnu.org>

	avoid goto and return from inside with_string_0
	* pathname.d (delete_file_if_exists_obj, realpath_obj, stat_obj)
	(open_output_file_obj, create_backup_file_obj): add
	(assure_dir_exists): use realpath_obj()
	(directory_exists, directory_search_hash): use stat_obj()
	(DELETE-FILE): use delete_file_if_exists_obj()
	(open_file): use open_output_file_obj() & create_backup_file_obj()

2007-12-30  Sam Steingold  <sds@gnu.org>

	fix bug#1860489: deletion of symlinks into non-existent dirs fails
	* pathname.d (DELETE-FILE): when the directory does not exist,
	still remove the link, just skip check_delete_open()

2007-12-30  Sam Steingold  <sds@gnu.org>

	additional 5% speedup in simple sequence tests: switch instead of if
	* lispbibl.d (fastcmp_t): new type
	(subr_t): split uintW seclass into uintB seclass and uintB fastcmp
	* funarg.d (check_test_args): use fastcmp subr field in switch
	instead of a sequence of if statements
	* subr.d (SECFC_BITS, SECFC_MASK, SECFC, SECFC_SEC, SECFC_FC):
	macros to allow passing both seclass and fastcmp in one LISPFUN
	macro argument
	(LISPFUN_D, LISPFUN_F, LISPFUN_G): set fastcmp
	(eq, eql, equal, equalp): set fastcmp
	* predtype.d (eq, eql, equal, equalp): ditto
	* genclisph.d (LISPFUN_F): set fastcmp to 0

2007-12-27  Sam Steingold  <sds@gnu.org>

	* funarg.d: new file, extracted from list.d, sequence.d, weak.d
	* list.d, sequence.d, weak.d: use funarg.d
	replace up_function_t and up2_function_t with funarg_t
	extend the 2001-06-16 patch (do not go through FUNCALL for simple tests)
	by selecting the test function once, not testing on each comparison
	* makemake.in (CPARTS): add funarg
	* lispbibl.d (check_key_arg, funcall_key, check_test_args): add
	(error_both_tests): remove

2007-12-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, spvw_gcstat.d, time.d (TIME_1, TIME_2): replace with
	TIME_METHOD which takes values 1 or 2 which ensures that one and
	only one code path is always taken

2007-12-26  Sam Steingold  <sds@gnu.org>

	* symbol.d (GENSYM): use check_pos_integer & error_string_integer

2007-12-26  Reini Urban  <rurban@x-ray.at>

	<33_trans2>
	* misc.d, sort.d, symbol.d, time.d, weak.d, win32.d:
	translate comments and convert them from "# " to "/**/"

2007-12-20  Sam Steingold  <sds@gnu.org>

	* type.lisp (SIGNED-BYTE, UNSIGNED-BYTE): unify error messages

2007-12-20  Sam Steingold  <sds@gnu.org>

	fix bug#1779490: linux:dirent definition error
	* modules/bindings/glibc/linux.lisp (clisp_dirent_ino_t)
	(clisp_dirent_off_t): define depending on __USE_FILE_OFFSET64

2007-12-20  Sam Steingold  <sds@gnu.org>

	fix bug#1854698: BYTE is a type, but is unacceptable input to TYPEP
	* type.lisp (BYTE): add atomic type
	* predtype.d (bytep): implement
	* subr.d, constsym.d (bytep): add

2007-12-19  Sam Steingold  <sds@gnu.org>

	* io.d (pr_stream) [0]: print contents of a STRING-INPUT-STREAM
	for bootstrap debugging only

2007-12-18  Sam Steingold  <sds@gnu.org>

	DESCRIBE shows contents of STRING-STREAMs
	* stream.d (error_string_stream): add
	(STRING-INPUT-STREAM-INDEX, GET-OUTPUT-STREAM-STRING): use it
	(STRING-STREAM-STRING): add
	* constsym.d, subr.d (string_stream_string): add
	* describe.lisp (*squeeze-string-max*, *squeeze-string-section*)
	(squeeze-string): add
	(describe-object): use squeeze-string and string-stream-string to
	describe string streams

2007-12-18  Sam Steingold  <sds@gnu.org>

	* record.d (error_closure): add
	(SYS::CLOSURE-NAME, (SETF SYS::CLOSURE-NAME)): use it
	(slot_in_arglist, SYS::%MAKE-INSTANCE): add a cast to avoid
	the "value computed is not used" warning

2007-12-17  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, pathname.d, spvw_memfile.d, time.d (decoded_time_t):
	translate field name from German to English

2007-12-16  Sam Steingold  <sds@gnu.org>

	* spvw.d, spvw_memfile.d (quit_instantly): rename from quit_sofort
	* io.d (spaces): rename argument anzahl to scount
	(paren_open): rename from klammer_auf
	(paren_close): rename from klammer_zu
	* intelem.d (set_max32_Dptr): use if instead of (?:) to avoid three
	"value computed is not used" warnings
	* makemake.in (LIBS): do not add FFCALL_LIBS, it is done by configure

2007-12-08  Reini Urban  <rurban@x-ray.at>

	* makemake.in: rename --list-modules to --help-modules,
	add gtk2 to the list of suggested modules in the comments
	<32_trans1>
	* aridecl.d, compelem.d, flo_konv.d, realelem.d: translate comments

2007-12-15  Sam Steingold  <sds@gnu.org>

	* foreign.d: #include <avcall.h> & <callback.h> as "<>" and not '""'
	and wrap then in extern "C" to restore C++ compilation

2007-12-15  Sam Steingold  <sds@gnu.org>

	* error.d (MAKE_CHECK_REPLACEMENT): new macro
	(check_list_replacement, check_array_replacement)
	(check_vector_replacement, check_posfixnum_replacement)
	(check_integer_replacement, check_char_replacement)
	(check_string_replacement, check_stream_replacement)
	(check_uint_replacement, check_sint_replacement)
	(check_ulong_replacement, check_slong_replacement)
	(check_ffloat_replacement, check_dfloat_replacement): use it
	(error_uint8, error_sint8, error_uint16, error_sint16, error_uint32)
	(error_sint32, error_uint64, error_sint64): remove
	(error_c_integer): add
	(check_uint8_replacement, check_sint8_replacement)
	(check_uint16_replacement, check_sint16_replacement)
	(check_uint32_replacement, check_sint32_replacement)
	(check_uint64_replacement, check_sint64_replacement): remove
	(check_c_integer_replacement): add
	* lispbibl.d (error_uint8, error_sint8, error_uint16, error_sint16)
	(error_uint32, error_sint32, error_uint64, error_sint64): define
	as macros, expanding to error_c_integer()
	(check_uint8_replacement, check_sint8_replacement)
	(check_uint16_replacement, check_sint16_replacement)
	(check_uint32_replacement, check_sint32_replacement)
	(check_uint64_replacement, check_sint64_replacement): define
	as macros, expanding to check_c_integer_replacement()

2007-12-14  Sam Steingold  <sds@gnu.org>

	* avl.d, control.d, debug.d, eval.d, hashtabl.d, intprint.d, io.d:
	* lispbibl.d, pathname.d, predtype.d: rename label fertig to done;
	convert comments from "# " to "/**/"

2007-12-13  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (elif, loop, until): drop; update all D files
	* compelem.d, realelem.d (I_I_equal, R_R_equal): rename from *_gleich
	* compelem.d (N_N_equal): rewrite as a single return
	* spvw_circ.d (abort_context, abort_STACK): rename from abbruch_*

2007-12-12  Sam Steingold  <sds@gnu.org>

	* spvw_typealloc.d (NIL_FILL): add
	(allocate_vector, allocate_lrecord, allocate_lrecord_)
	(allocate_srecord_): use it
	* spvw*.d: convert comments from "# " to "/**/"

2007-12-12  Sam Steingold  <sds@gnu.org>

	expect FFCALL to be installed externally
	* configure: accept --with-ffcall and --with-libffcall-prefix
	* Makefile.devel (SOURCES): remove ffcall (not distributed with CLISP)
	* m4/ffcall.m4: add
	* configure.in: call CL_FFCALL
	* makemake.in (FFCALL_LIBS): init from '@LIBAVCALL@ @LIBCALLBACK@'
	(LIBS): add FFCALL_LIBS when --with-dynamic-ffi was supplied
	(avcall, callback): remove targets
	* glm4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): split into
	AC_LIB_LINKFLAGS_ADD and AC_LIB_LINKFLAGS_SEARCH (used by CL_FFCALL)

2007-12-11  Sam Steingold  <sds@gnu.org>

	* stream.d: convert comments from "# " to "/**/"
	(ELTYPE_FLAFS): new macro
	(make_unbuffered_stream, make_buffered_stream): use it
	(NON_WHOLE_BYTE_P): new macro
	(check_unbuffered_eltype, make_buffered_stream): use it

2007-12-06  Sam Steingold  <sds@gnu.org>

	* configure (--localedir, --docdir, --htmldir, --dvidir, --psdir)
	(--pdfdir, --elispdir, --vimdir): enable (autoconf-2.60 is here)

2007-12-10  Sam Steingold  <sds@gnu.org>

	do not link over LISP files into the build directory
	* makemake.in (LPARTS): remove config
	(LISPFILES): prefix with ${SRCDIR}
	(alllisp): remove target
	(*.fas): pass "-o" to clisp
	(images): set *load-paths* before load init
	(TESTLISPFILES): remove make variable
	(check-recompile): do not link lisp sources over to stage
	* init.lisp (*load-paths*): reset only is not yet set
	(search-file): respect it even in the first definition

2007-12-10  Sam Steingold  <sds@gnu.org>

	do not link over D files into the build directory
	* makemake.in (DFILES): remove modules; remove Makefile variable;
	(init): do not depend on DFILES
	(LINKKIT): remove modules.d
	(clean5): do not delete DFILES
	* modules.d: rename to modules.c
	* clisp-link.in: do not require modules.d for linkkitdir

2007-12-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (UTILS): treat gctrigger & varbrace just like the
	other C utilities
	* gctrigger.d, varbrace.d: convert to ANSI C and rename to *.c

2007-12-05  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_CC_WORKS): use "return 0" instead of "exit(0)"
	because C++ fails on an undefined function

2007-12-05  Sam Steingold  <sds@gnu.org>

	Assume that "mkdir -p" is POSIX-compliant
	* makemake.in (echotab_mkdir_maybe): remove,
	use plain "mkdir -p" instead
	* ffcall/callback/Makefile.in, ffcall/callback/trampoline_r/Makefile.in:
	* ffcall/callback/vacall_r/Makefile.in, ffcall/trampoline/Makefile.in:
	* ffcall/vacall/Makefile.in, ffcall/avcall/Makefile.in:
	use "mkdir -p" instead of "if [ ! -d % ]; then mkdir %; fi"
	because the latter breaks down with non-trivial DESTDIR

2007-12-05  Sam Steingold  <sds@gnu.org>

	remove AFFI
	* affi.d, affi1.lisp: remove
	* charstrg.d (unpack_string_rw): unused now, surround with #if 0
	* lispbibl.d (unpack_string_rw): remove prototype
	* encoding.d, constobj.d: remove AFFI CPP conditions
	* clhs.lisp: do not set AFFI package documentation
	* defs1.lisp (*system-package-list*): remove "AFFI"
	* foreign1.lisp, exporting.lisp (def-lib-call-out): remove
	* constsym.d, subr.d: remove AFFI functions
	* type.lisp (foreign-pointer): remove affi read conditional

2007-12-04  Reini Urban  <rurban@x-ray.at>

	<31_ergebnis>
	* arilev0.d, arisparc.d, arisparc64.d, charstrg.d, encoding.d:
	* eval.d, ffloat.d, int2adic.d, intdiv.d, intgcd.d, intprint.d:
	* intread.d, intsqrt.d, io.d, list.d, package.d, pathname.d:
	* rational.d, realrand.d, record.d, sequence.d, sfloat.d:
	* spvw_allocate.d, spvw_memfile.d, stream.d, time.d, unixaux.d:
	* weak.d: ergebnis -> result
	<30_wert>
	* intelem.d: rename local var and arg wert,_wert,wert_*
	to value,_value,value_*
	* arilev0.d: rename macro arg wert,__wert to
	tvalue,__value
	* array.d (storagevector_store): rename local var wert to value
	* intlog.d (I_to_DS_n): rename local var wert to value
	* intserial.d (LESbvector_to_UI): rename local var wert to value
	* io.d (get_base): rename local var wert to intvalue,
	(test_number_syntax): rename local var wert to value,
	(feature): rename arg sollwert to demandvalue
	* lispbibl.d: rename local var wert to val (analog to the other
	intconv argnames)
	<29_zuweisung>
	* aridecl.d, arilev0.d, arilev1.d, dfloat.d, eval.d, ffloat.d:
	* intbyte.d, intelem.d, intlog.d, intmal.d, intsqrt.d, lfloat.d:
	* rational.d, sfloat.d: rename macro args *_zuweisung to *_assignment
	<28_more_anz>
	* io.d (print_vars_anz): rename to print_vars_count
	* lispbibl.d, spvw.d (thread_objects_anz): -> thread_objects_count
	* spvw.d (package_anz): rename to package_count
	* spvw_memfile.d (offset_subrs_anz): rename to offset_subrs_count
	<27_error_anzahl>
	* eval.d (funcall_subr, funcall_closure): rename label
	error_anzahl to error_count
	<26_spvw_anz>
	* spvw.d, spvw_space.d, spvw_memfile.d:
	(symbol_anz): rename to symbol_count
	(pseudocode_anz): rename to pseudocode_count
	(pseudodata_anz): rename to pseudodata_count
	(pseudofun_anz): rename to pseudofun_count
	(object_anz): rename to object_count
	* spvw_memfile.d (loadmem_from_handle): rename local var
	old_object_anz to old_object_count
	* spvw_memfile.d (struct memdump_header_t): rename members
	_pseudofun_anz to _pseudofun_count; _symbol_anz to _symbol_count

2007-12-05  Sam Steingold  <sds@gnu.org>

	* foreign.d (dlerror_string): use safe_to_string

2007-12-03  Reini Urban	 <rurban@x-ray.at>

	<24_more_anz>
	* control.d, lispbibl.d (specdecled_, make_variable_frame): rename
	arg and local spec_anz to spec_count
	* control.d (make_variable_frame): rename local var_anz to var_count
	* eval.d, lispbibl.d (frame_anz): rename to frame_count
	<23_clos_reqoptkey_anz>
	* eval.d, lispbibl.d: rename global members
	(clos_spec_anz): -> clos_spec_count
	(clos_req_anz): -> clos_req_count
	(clos_opt_anz): -> clos_opt_count
	(clos_key_anz): -> clos_key_count
	(clos_aux_anz): -> clos_aux_count
	<22_reqoptkey_anz>
	* debug.d, eval.d, fsubr.d, genclisph.d, lispbibl.d, spvw.d:
	* spvw_memfile.d, subr.d: rename global members and macro args
	(req_anz): -> req_count
	(opt_anz): -> opt_count
	(key_anz): -> key_count
	* clos-genfun2b.lisp (COMPUTE-DISPATCH): remove REQ-ANZ
	* compiler.lisp (struct fnode): rename
	(REQ-ANZ): -> REQ-NUM
	(OPT-ANZ): -> OPT-NUM
	* subr.d: rename macro args req_anz_, opt_anz_, key_anz_ to *_count_
	<21-xcharin-fehler>
	* xcharin.lisp (FEHLER-CHAR-ARG): rename to ERROR-CHAR-ARG
	<20_subr_anz>
	* affi.d, spvw.d, spvw_memfile.d, spvw_space.d:
	translate local variables *subr_anz => *subr_count:
	(subr_anz): subr_count
	(fsubr_anz): fsubr_count
	(total_subr_anz): total_subr_count
	(old_subr_a): old_subr_count
	<19_gcmark_vars>
	* spvw_gcmark.d: translate local variables:
	(dies): curr
	(dies_): curr_
	(nachf): succ
	(vorg): pred
	(vorvorg): prepred
	<18_test_index_macro>
	* charstrg.d (test_index): translate the macro arguments:
	(woher): from
	(wohin_zuweisung): to_setter
	(grenze): upper_limit
	(vergleich): uplimit_cmp
	<17_liststern>
	* bytecode.d, constsym.d, eval.d, foreign.d, list.d, stream.d, subr.d:
	(liststern): rename to liststar
	* bytecode.d, eval.d (cod_unliststern): rename to cod_unliststar
	(cod_liststern_push): rename bytecode to cod_liststar_push (LIST*&PUSH)
	* eval.d: rename label unliststern_unbound to unliststar_unbound

2007-12-03  Sam Steingold  <sds@gnu.org>

	* configure, makemake.in: support spaces in the build directory name

2007-12-02  Reini Urban  <rurban@x-ray.at>

	<16_strcmp3>
	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
	(string_grgleich): rename to string_gtequal
	(cs_string_grgleich): rename to cs_string_gtequal
	* charstrg.d, constsym.d, eval.d, sequence.d, subr.d, subrkw.d:
	(search_string_gleich): rename to search_string_eq
	<15_strcmp2>
	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
	(string_groesser): rename to string_greater
	(cs_string_groesser): rename to cs_string_greater
	(string_klgleich): rename to string_ltequal
	(cs_string_klgleich): rename to cs_string_ltequal
	<14_strcmp1>
	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
	(string_ungleich): rename to string_noteq
	(cs_string_ungleich): rename to cs_string_noteq
	(string_kleiner): rename to string_less
	(cs_string_kleiner): rename to cs_string_less

2007-12-01  Reini Urban	 <rurban@x-ray.at>

	<13_charcmp2>
	* constsym.d, eval.d, charstrg.d, subr.d:
	(char_groesser): rename to char_greater
	(char_klgleich): rename to char_ltequal
	(char_grgleich): rename to char_gtequal
	<12_charcmp1>
	* constsym.d, eval.d, charstrg.d, subr.d, sequence.d:
	(char_gleich): rename to char_eq
	* constsym.d, eval.d, charstrg.d, subr.d:
	(char_ungleich): rename to char_noteq
	(char_kleiner): rename to char_less
	<11_aritcmp2>
	* compelem.d, lisparit.d (N_N_gleich): rename to N_N_equal
	* constsym.d, eval.d, subr.d (klgleich): rename to ltequal
	(grgleich): rename to gtequal
	<10_aritcmp>
	* constsym.d, eval.d, lisparit.d, subr.d (ungleich): -> numunequal
	* constsym.d, eval.d, lisparit.d, subr.d, modules/clx/new-clx/clx.f:
	(kleiner): rename to smaller
	* constsym.d, eval.d, lisparit.d, subr.d, hashtabl.d:
	(groesser): rename to greater
	<09_einsplus_minus>
	* array.d, constsym.d, eval.d, hashtabl.d, lisparit.d, subr.d:
	(einsplus, einsminus): rename to plus_one, minus_one
	<08_morearit>
	* constsym.d, debug.d, spvw.d (driverstern): rename to driverstar
	* constsym.d, eval.d, lisparit.d, subr.d (fakultaet): -> factorial

2007-11-30  Reini Urban  <rurban@x-ray.at>

	<07_mal_durch>
	* eval.d, lisparit.d, subr.d, hashtabl.d, time.d, affi.d:
	* constsym.d, debug.d, predtype.d, sequence.d, spvw.d:
	* modules/clx/new-clx/clx.f (mal): rename to star
	(durch): rename to slash
	* constsym.d, debug.d, spvw.d (mal2): rename to star2
	(mal3): rename to star3
	(durch2): rename to slash2
	(durch3): rename to slash3
	* int2adic.d, intsqrt.d (D_D_mal2adic_D) rename to D_D_mult2adic_D
	(D_D_durch2adic_D, UDS_UDS_durch2adic_UDS): rename to *_div2adic_*

2007-11-29  Reini Urban <rurban@x-ray.at>

	<06_gleich2>
	* charstrg.d, lispbibl.d, package.d (string_gleich_inverted):
	rename to string_eq_inverted
	* lisparit.d, lispbibl.d, predtype.d (number_gleich):
	rename to number_equal

2007-11-29  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f, modules/clx/new-clx/clx.lisp:
	rename DISPLAY-NOOP to the standard NO-OPERATION

2007-11-28  Reini Urban  <rurban@x-ray.at>

	<05_gleich>
	* constsym.d, eval.d, lisparit.d, subr.d, modules/clx/new-clx/clx.f:
	(gleich): rename to numequal
	* charstrg.d, constsym.d, eval.d, lispbibl.d, package.d, io.d:
	* subr.d, subrkw.d (string_gleich): rename to string_eq
	* charstrg.d, constsym.d, subr.d, subrkw.d (cs_string_gleich):
	rename to cs_string_eq

2007-11-28  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_display): add
	(find_display, get_font, SET-GCONTEXT-DISPLAY, CLOSE-DISPLAY)
	(SET-DISPLAY-AFTER-FUNCTION, DISPLAY-DEFAULT-SCREEN)
	(SET-DISPLAY-DEFAULT-SCREEN, VISUAL-INFO, OPEN-FONT, FONT-PATH)
	(SET-FONT-PATH, LIST-FONT-NAMES, LIST-FONTS, FIND-ATOM)
	(INTERN-ATOM, SELECTION-OWNER, SET-SELECTION-OWNER)
	(disassemble_event_on_stack, PROCESS-EVENT, GLOBAL-POINTER-POSITION)
	(INPUT-FOCUS, CHANGE-ACTIVE-POINTER-GRAB, SET-DISPLAY-XDEFAULTS)
	(POINTER-MAPPING, SET-POINTER-MAPPING, QUERY-KEYMAP)
	(CHANGE-KEYBOARD-MAPPING, KEYBOARD-MAPPING, KEYCODE->CHARACTER)
	(SET-ACCESS-CONTROL, ACCESS-HOSTS, LIST-EXTENSIONS, QUERY-EXTENSION)
	(SHAPE-VERSION): use it
	(CHANGE-PROPERTY): use get_client_message_format()
	(check_mapping_request): add DEFCHECKER
	(MAPPING-NOTIFY): use it, return no values
	(XLIB:ACCESS-HOSTS): check for FamilyServerInterpreted (bug 1840594)

007-11-27  Reini Urban  <rurban@x-ray.at>

	<04_divmult>
	* compelem.d, comptran.d, dfloat.d, ffloat.d, flo_rest.d, intdiv.d:
	* intmal.d, intgcd.d, intsqrt.d, lfloat.d, lisparit.d, rational.d:
	* realelem.d, realrand.d, realtran.d, sfloat.d:
	rename *_durch_* to *_div_*, rename *_mal_* to *_mult_*,
	rename GEN_*_op*(durch) to GEN_*_op*(div)
	* lisparit.d, lispbibl.d, io.d (mal_10_plus_x): rename to mult_10_plus_x

2007-11-26  Reini Urban  <rurban@x-ray.at>

	<03_fehler_label>
	* io.d: rename labels fehler_nur01 to error_nur01,
	fehler_dopp to error_colon,
	remove english function translations in comments
	* eval.d: rename labels fehler_zuwenig to error_toofew,
	fehler_zuviele_werte to error_toomany_values,
	fehler_zuviel to error_toomany
	* affi.d, array.d, control.d, eval.d, intmal.d, io.d, lispbibl.d:
	* list.d, pathname.d, predtype.d, record.d, stream.d:
	rename labels fehler* to error*

2007-11-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (make-xterm-io-stream): use
	*ENABLE-CLOS-WARNINGS* instead of *WARN-IF-GF-ALREADY-CALLED*

2007-11-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f, modules/clx/new-clx/clx.lisp:
	implement most of Chapter 13 Resources in C,
	but commented it out because there is no way to remove a resource

2007-11-25  Reini Urban <rurban@x-ray.at>

	<02_fehler__fun>
	* eval.d: rename fehler_(eval|closure|apply|subr)_zuviel to
	error_*_toomany
	* control.d, eval.d, foreign.d, lisparit.d, lispbibl.d:
	rename fehler_mv_zuviel to error_mv_toomany
	* array.d: rename fehler_subscript_anz to error_subscript_count
	* io.d: rename fehler_dispatch_zahl to error_dispatch_number,
	fehler_eof_aussen to error_eof_outside,
	fehler_eof_innen to error_eof_inside
	* spvw_allocate.d: fehler_speicher_voll to error_memory_full
	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
	* modules/syscalls/calls.c, utils/modprep.lisp:
	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
	* dfloat.d, encoding.d, error.d, eval.d, ffloat.d, flo_konv.d:
	* flo_rest.d, foreign.d, intbyte.d, intdiv.d, io.d, lfloat.d:
	* lisparit.d, lispbibl.d, list.d, pathname.d, predtype.d:
	* realtran.d, record.d, sequence.d, sfloat.d, socket.d, spvw.d:
	* spvw_allocate.d, stream.d, symbol.d, time.d, weak.d:
	rename fehler_ to error_
	* .gdbinit: rename fehler to error
	* CodingStyle: add Reini Urban for the upcoming translations

2007-11-24  Reini Urban  <rurban@x-ray.at>

	<01_fehler_fun>
	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
	* modules/dirkey/dirkey.c, modules/pari/cpari.c, modules/pcre/cpcre.c:
	* modules/rawsock/rawsock.c, modules/syscalls/calls.c:
	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
	* encoding.d, error.d, eval.d, flo_konv.d, foreign.d, hashtabl.d:
	* i18n.d, intbyte.d, intdiv.d, intelem.d, intlog.d, intmal.d, io.d:
	* lfloat.d, lisparit.d, lispbibl.d, list.d, misc.d, package.d:
	* pathname.d, predtype.d, record.d, sequence.d, socket.d, spvw.d:
	* spvw_allocate.d, spvw_memfile.d, spvw_sigint.d, stream.d, symbol.d:
	* time.d, weak.d, utils/modprep.lisp: rename fehler() to error()
	* modules/berkeley-db/bdb.c, modules/dirkey/dirkey.c:
	* modules/pari/cpari.c, modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
	* modules/regexp/regexi.c, modules/syscalls/calls.c:
	* affi.d, array.d, charstrg.d, control.d, debug.d, encoding.d, error.d:
	* eval.d, foreign.d, i18n.d, io.d, lispbibl.d, list.d, misc.d:
	* package.d, pathname.d, predtype.d, record.d, sequence.d, spvw.d:
	* stream.d, symbol.d: rename error (enum condition_t) to error_condition

2007-11-23  Sam Steingold  <sds@gnu.org>

	Implement RFE#1834184: handle CLOS warnings in a CLOSy way
	* init.lisp (clos-warning, gf-already-called-warning)
	(gf-replacing-method-warning): export from CLOS
	* clos-package.lisp: ditto
	* condition.lisp (clos-warning, simple-clos-warning)
	(gf-replacing-method-warning, simple-gf-replacing-method-warning)
	(gf-already-called-warning, simple-gf-already-called-warning): define
	(warn-of-type): extract from WARN, accept warning class
	(warn): use WARN-OF-TYPE
	(set-global-handler): bind CLOS::*ENABLE-CLOS-WARNINGS* instead of
	individial variables
	* clos.lisp (*enable-clos-warnings*): set to T when everything is loaded
	* clos-print.lisp (print-object-method-warning): use the new
	framework (still commented out)
	* clos-genfun2b.lisp (*gf-warn-on-replacing-method*): remove
	(std-add-method, std-remove-method): use CLOS-WARN
	(*warn-if-gf-already-called*): remove
	(gf-already-called-warning): add
	(warn-if-gf-already-called): use it
	* clos-class6.lisp (class-not-yet-defined): add
	(class-direct-superclasses, class-direct-slots)
	(class-direct-default-initargs): use it
	* clos-class3.lisp (defclass, ensure-class-using-class-<t>)
	(reinitialize-instance-<defined-class>, std-compute-cpl)
	(compute-slots-<slotted-class>-around)
	(make-instances-obsolete-<semi-standard-class>): use CLOS-WARNING
	* clos-class0.lisp (*enable-clos-warnings*): declare
	(clos-warn, clos-warning): add

2007-11-21  Sam Steingold  <sds@gnu.org>

	fix bug#1835520: PPRINT-LOGICAL-BLOCK ignores
	*PRINT-PPRINT-DISPATCH-TABLE*
	* io.d (prin_object_dispatch_pretty): do not check *PRIN-PPRINTER*

2007-11-21  Jack Unrue  <jdunrue@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* makemake.in (install.nsi): copy from win32msvc/nsis and
	substitute @NAME@, @VERSION@, @BASE_MODULES@, and @MODULES@
	(add_to_path.nsh, is_user_admin.nsh): copy from win32msvc/nsis
	(COPYRIGHT.rtf): create from COPYRIGHT using text_to_rtf.lisp
	(distrib) [win32]: invoke makensis to build woe32 installer
	(clean1): remove COPYRIGHT.rtf and install.nsi

2007-11-20  Sam Steingold  <sds@podval.org>

	* modules/libsvm: upgraded to upstream 2.85

2007-11-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (trampoline/trampoline.h): remove an unused target

2007-11-18  Bruno Haible  <bruno@clisp.org>

	Fix bug#1834193: fresh-line at the end of a line containing
	only tabs.
	* stream.d (wr_ss_lpos): Add special handling of TAB characters.
	(write_char): Likewise.

2007-11-19  Sam Steingold  <sds@gnu.org>

	* gllib/config.charset, glm4/gettext.m4, glm4/gnulib-comp.m4:
	* glm4/iconv.m4, glm4/intdiv0.m4, glm4/intl.m4, glm4/intlmacosx.m4:
	* glm4/lib-link.m4, glm4/link-follow.m4, glm4/lock.m4:
	* glm4/longlong.m4, glm4/po.m4, glm4/printf-posix.m4:
	* glm4/wint_t.m4, glm4/ulonglong.m4: sync with gnulib

2007-11-18  Sam Steingold  <sds@gnu.org>

	* version.h: tag and push out 2.43

2007-11-18  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (all): remove src/uninames.h
	(uninames.h): remove (it comes from gnulib now)

2007-11-16  Sam Steingold  <sds@gnu.org>

	* lispbibl.d [UNIX || __MINGW32__]: do not undef malloc, instead ...
	* makemake.in: when HAVE_MALLOC_POSIX=0, link lisp.run, clisp.exe
	and utils with gllib/malloc (as EXTRAOBJ)
	* modules/regexp/configure.in, modules/regexp/link.sh.in:
	malloc.o, when needed, is already in lisp.a

2007-11-14  Sam Steingold  <sds@gnu.org>

	* win32msvc/nsis/text_to_rtf.lisp: rewrote:
	use \uNNNN to output Unicode characters;
	use "Courier New" (fixed width) font to preserve formatting
	use bold for the headers
	do not use regexp

2007-11-14  Elliott Slaughter  <elliottslaughter@gmail.com>

	* win32msvc/nsis/text_to_rtf.lisp: ASCII text to RTF converter

2007-11-13  Sam Steingold  <sds@gnu.org>

	fix bug#1831367: with-standard-io-syntax/*print-pprint-dispatch*
	* pprint.lisp (make-pprint-dispatch): add
	(*print-pprint-dispatch*, copy-pprint-dispatch): use it
	* defs2.lisp (with-standard-io-syntax): bind
	*PRINT-PPRINT-DISPATCH* to (COPY-PPRINT-DISPATCH NIL)

2007-11-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (CFLAGS): add -Igllib
	(MODULE_CFLAGS): do not add -Igllib
	this is necessary for the systems that require stdint from gllib,
	e.g., solaris

2007-11-10  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:DISPLAY-NOOP): new function
	* modules/clx/new-clx/clx.lisp (DISPLAY-NOOP): export it

2007-11-07  Elliott Slaughter  <elliottslaughter@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* win32msvc/nsis/add_to_path.nsh, win32msvc/nsis/install.nsi:
	* win32msvc/nsis/is_user_admin.nsh: NullSoft Install System scripts

2007-11-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (--help): use @PACKAGE_STRING@ (@PACKAGE_BUGREPORT@)

2007-11-07  Ralf-P. Weinmann  <weinmann@cdc.informatik.tu-darmstadt.de>
	Sam Steingold  <sds@gnu.org>

	fix bug#1827572: macosx: clisp|tee error
	* stream.d (finish_tty_output, force_tty_output, clear_tty_output)
	[UNIX_DARWIN]: treat ENOTSUP like EOPNOTSUPP

2007-11-06  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (SOURCES5): remove $T/nextapp
	* nextapp: remove obsolete directory
	* unix.d (nxterminal_*): remove
	* stream.d, spvw.d, pseudofun.d, lispbibl.d, constsym.d, constobj.d:
	remove all NEXTAPP code

2007-11-06  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/configure.in: fnmatch.h is in the build
	directory, not the source directory

2007-11-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_CREATESHARED): treat mingw just like all the
	other free OS (gnu/linux/bsd/cygwin)

2007-11-06  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/configure.in: use ac_cv_func_fnmatch_gnu
	instead of FNMATCH_H

2007-11-05  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (run): fix for --with-dynamic-modules

2007-11-05  Sam Steingold  <sds@gnu.org>

	for better dynamic module support:
	* modules/berkeley-db/dbi.lisp: (provide "berkeley-db")
	* modules/dirkey/dirkey1.lisp: (provide "dirkey")
	* modules/fastcgi/fastcgi.lisp: (provide "fastcgi")
	* modules/gdbm/gdbm.lisp: (provide "gdbm")
	* modules/i18n/i18n.lisp: (provide "i18n")
	* modules/oracle/oracle.lisp: (provide "oracle")
	* modules/pari/pari.lisp: (provide "pari")
	* modules/pcre/pcre.lisp: (provide "pcre")
	* modules/rawsock/sock.lisp: (provide "rawsock")
	* modules/regexp/regexp.lisp: (provide "regexp")
	* modules/syscalls/posix.lisp: (provide "syscalls")
	* modules/wildcard/wildcard.lisp: (provide "wildcard")

2007-11-05  Sam Steingold  <sds@gnu.org>

	fix --with-dynamic-modules build
	* makemake.in: pass XCC_PICFLAG to "make -C gllib"
	* clisp-link.in: run prepare_dynamic_module in $destinationdir

2007-11-04  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (check_pattern): pat argument is modified,
	so it has to be a pointer
	(PATTERN-INFO, PCRE-NAME-TO-INDEX, PCRE-EXEC): update callers
	* modules/rawsock/rawsock.c (check_struct_data): arg is modified,
	so it has to be a pointer
	(SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT)
	(GETNAMEINFO, fill_msghdr, SENDTO): update callers
	* modules/syscalls/calls.c (check_utmpx): add
	(GETUTXENT, GETUTXLINE, PUTUTXLINE): use it

2007-11-04  Sam Steingold  <sds@gnu.org>

	* modules/pari/configure.in: check for init_opts
	* modules/pari/cpari.c (init_for_clisp) [HAVE_INIT_OPTS]:
	set init_opts to 0

2007-11-02  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (ffcall-aux): split out from all
	(ffcall/avcall/avcall.h.mingw32, ffcall/vacall/vacall.h.mingw32)
	(ffcall/callback/vacall_r/vacall_r.h.mingw32): add targets
	(check-configures): depend on configures
	(tp-mail): CC to clisp-devel

2007-11-02  Sam Steingold  <sds@gnu.org>

	* ffcall: switch from gl_AC_TYPE_LONG_LONG to AC_TYPE_LONG_LONG_INT
	* m4/intparam.m4 (CL_INTPARAM_CROSS): ditto

2007-11-02  Sam Steingold  <sds@gnu.org>

	* version.sh: 2.43 (2007-11-18)

2007-11-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (boot): ensure that FILES in makevars are all local
	* clisp-link.in (normalize): new function
	(link, link_some): use it
	(add-module-set, run): avoid "crazy doubly nested lists"
	* modules/wildcard/link.sh.in, modules/regexp/link.sh.in:
	NEW_FILES are paths to gllib while
	NEW_LIBS are library names without directory

2007-11-01  Sam Steingold  <sds@gnu.org>

	* modules/pari/configure.in: check for freeall pari_init
	killallfiles pari_init_opts
	* modules/pari/cpari.c: #include "config.h"
	(init_for_clisp): drop unused variables
	(init_for_clisp, fini_for_clisp): check functions before calling them

2007-10-31  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in: ac_use_included_regex is NOT cached,
	so we have to duplicate the logic of src/glm4/regex.m4

2007-10-30  Sam Steingold  <sds@gnu.org>

	* charstrg.d: do not include "width.c" & "uniname.c"
	* makemake.in (FILES, OBJECTS): add uniname & width
	(UNICODE_EXTRA): remove uniname & width
	(boot): cannot assume that an element of $FILES does not contain slashes
	* clisp-link.in (link): use dirname and basename instead of sed
	(link_some): do not assume that file does not contain slashes

2007-10-31  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in (MALLOC_O) [gl_cv_func_malloc_posix=yes]:
	set to "malloc.o"
	* modules/regexp/link.sh.in (file_list): add @MALLOC_O@

2007-10-30  Sam Steingold  <sds@gnu.org>

	* makemake.in, modules/regexp/link.sh.in, modules/wildcard/link.sh.in:
	work around the 'unexpected token `;' in  for h in  ; do' bug
	http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_09_04_03

2007-10-30  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (HAVE_LONG_LONG_INT) [long_bitsize==64]: define only
	if not already defined (avoid a redefinition warning)
	(_GNU_SOURCE): do not define here, it comes from AC_GNU_SOURCE
	* configure.in: do not call AC_AIX, AC_GNU_SOURCE, CL_PROG_RANLIB
	AC_USE_SYSTEM_EXTENSIONS, they are covered in gl_EARLY
	use AC_HEADER_STDC instead of CL_STDC_HEADERS: it is already used
	in all modules and the reasons for not checking some standard
	headers are no longer applicable
	* m4/ranlib.m4, m4/stdc-headers.m4: remove obsoleted files
	* ffcall/Makefile.devel: drop ranlib.m4 & stdc-headers.m4
	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
	* ffcall/callback/trampoline_r/configure.in:
	* ffcall/callback/vacall_r/configure.in:
	* ffcall/trampoline/configure.in, ffcall/vacall/configure.in:
	use AC_PROG_RANLIB instead of CL_PROG_RANLIB
	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): use AC_HEADER_STDC
	instead of CL_STDC_HEADERS

2007-10-29  Sam Steingold  <sds@gnu.org>

	* m4/ldap.m4, m4/netdb.m4, m4/getcwd.m4: remove trivial files
	* m4/signed.m4: remove unused file
	* configure.in: do not call CL_GETWD, CL_LDAP & CL_NETDB
	* modules/dirkey/configure.in: check for headers explicitly
	* m4/gethostbyname.m4 (CL_GETHOSTBYNAME): check for <netdb.h> here
	* unix.d (MAXPATHLEN): use PATH_MAX (when defined)
	or else 4096 (instead of 1024 previously)
	(getwd, getcwd): drop prototypes

2007-10-29  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_COPYRIGHT): update year
	(AC_PREREQ): require 2.61 (datarootdir et al, see below 2007-10-27)

2007-10-29  Sam Steingold  <sds@gnu.org>

	* configure.in: use AC_TYPE_LONG_LONG_INT instead of the obsolescent
	gl_AC_TYPE_LONG_LONG
	* lispbibl.d, foreign.d, affi.d, aridecl.d, arilev0.d, arilev1.d:
	* foreign.d, genclisph.d, intelem.d, intparam.c, time.d:
	use HAVE_LONG_LONG_INT instead of HAVE_LONGLONG

2007-10-29  Sam Steingold  <sds@gnu.org>

	Work around the wildcard build error reported in
	<http://article.gmane.org/gmane.lisp.clisp.devel/16815>
	and <http://article.gmane.org/gmane.lisp.clisp.devel/16824>.
	The problem is that all gnulib autoconf macros are called from
	src/glm4/gnulib-comp.m4:gl_INIT, so they should not be called from
	module configures; we can rely on sourcing config.cache.
	* configure.in: do not call gl_STDBOOL_H & gl_STDINT_H since they
	are already called from gl_INIT
	* modules/regexp/configure.in: do not call gl_FUNC_ALLOCA &
	gl_REGEX: they are already called from the top-level configure.in
	* modules/wildcard/configure.in: do not call gl_FUNC_FNMATCH_POSIX,
	rely on gl_INIT in top-level configure.in

2007-10-29  Vadim Konovalov  <vkonovalov@alcatel-lucent.com>
	Sam Steingold  <sds@gnu.org>

	* makemake.in [win32msvc]: drop support for msvc4 & msvc5, thus
	drop gcc-cccp and use deema instead
	* Makefile.devel: do not generate makefiles for msvc[45] and debug
	* utils/gcc-cccp: remove

2007-10-29  Sam Steingold  <sds@gnu.org>

	* utils/deema.c: extend to fully support the makemake equivalent
	sed -e 's/, *)/,_EMA_)/g' -e 's/, *,/,_EMA_,/g'
	Reported by Vadim Konovalov <vkonovalov@alcatel-lucent.com>

2007-10-28  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-docbook-utils): remove from all because
	it downloads 23MB data
	* doc/Makefile (docbook-dtd, docbook-xsl): replaces update-docbook-utils

2007-10-27  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: all Makefile* are non-executable

2007-10-27  Sam Steingold  <sds@gnu.org>

	* makemake.in, configure, po/Makefile.in.in: use datarootdir
	instead of datadir, as per autoconf 2.60

2007-10-27  Sam Steingold  <sds@gnu.org>

	* modules/oracle/configure.in, modules/fastcgi/configure.in: use
	CL_MODULE_COMMON_CHECKS to avoid errors when generating aclocal.m4

2007-10-27  Sam Steingold  <sds@gnu.org>

	Berkeley-DB 4.5.20 now works
	* modules/berkeley-db/configure.in (DB_READ_UNCOMMITTED)
	(DB_READ_COMMITTED): do not check, they are #defined
	* modules/berkeley-db/bdb.c: ditto
	(dbe_get_tas_spins) [HAVE_DB_ENV_MUTEX_GET_TAS_SPINS]: define
	(dbe_set_tas_spins) [HAVE_DB_ENV_MUTEX_SET_TAS_SPINS]: define

2007-10-26  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c: do not include <alloca.h>: it is
	defined, if necessary, in <clisp.h>; include "regex.h", not <>
	* modules/regexp/configure.in [ac_use_included_regex=yes]: link
	src/gllib/regex.h into the build directory
	* modules/wildcard/wildcard.lisp: include the local "config.h",
	not the global <> one
	* modules/wildcard/configure.in [FNMATCH_H]: link
	src/gllib/fnmatch.h into the build directory
	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>

2007-10-26  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (win32msvc/makefile.msvc*): generate from src to
	enable search in gllib
	* clisp.spec (modules): add libsvm

2007-10-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (hln): use utils/hln.lisp instead of utils/hln/
	* utils/hln/: remove
	* utils/hln.lisp: add
	* Makefile.devel (CONFIGURES): drop hln

2007-10-26  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-update): also get link-follow
	* glm4/link-follow.m4: add
	* modules/syscalls/configure.in: call gl_AC_FUNC_LINK_FOLLOWS_SYMLINK
	* modules/syscalls/calls.c (my_link)
	[!LINK_FOLLOWS_SYMLINKS && HAVE_REALPATH]: work around link(2) bug
	(hardlink_file) [UNIX]: use my_link()

2007-10-25  Sam Steingold  <sds@gnu.org>

	* init.lisp: all foreign messages require UNICODE because they use
	non-ASCII characters (including german too!)

2007-10-24  Sam Steingold  <sds@gnu.org>

	support post-4.4.20 berkeley-db; more uniform option handling
	* modules/berkeley-db/configure.in (DB_LOCK_READ_UNCOMMITTED)
	(DB_READ_UNCOMMITTED, DB_READ_COMMITTED): check for declarations
	* modules/berkeley-db/bdb.c (DB_LOCK_READ_UNCOMMITTED)
	[!HAVE_DECL_DB_LOCK_READ_UNCOMMITTED]: define to DB_LOCK_DIRTY
	(DB_READ_UNCOMMITTED) [!HAVE_DECL_DB_READ_UNCOMMITTED]:
	define to DB_DIRTY_READ
	(DB_READ_COMMITTED) [!HAVE_DECL_DB_READ_COMMITTED]:
	define to DB_DEGREE_2
	(DB-GET, DB-OPEN, MAKE-DBC, DBC-GET, LOCK-GET, TXN-BEGIN): accept
	only :READ-UNCOMMITTED and READ-COMMITTED, not :DEGREE-2 & DIRTY-READ
	Reported by Reini Urban <rurban@x-ray.at>

2007-10-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (build-aux-update): new .PHONY target, extracted
	from gnulib-update; also updates ltmain.sh and compile
	(gnulib-update): depend on build-aux-update

2007-10-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-update): also get
	uniwidth/width streq uniname/uniname unitypes
	* cjk.h, streq.h, uniname.c, uniname.h, uninames.h, unitypes.h,
	* uniwidth.h, width.c: remove; get them from gnulib
	* makemake.in: find these files in gllib

2007-10-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (AUTOCONF_FILES): src/aclocal.m4
	(autoconf/aclocal.m4): move to aclocal.m4
	(autoconf/autoconf.m4): remove
	this move is necessary for automake which expects aclocal.m4 in
	the current directory, just like configure.in

2007-10-24  Sam Steingold  <sds@gnu.org>

	* m4/gethostname.m4, m4/readlink.m4: remove trivial files
	* configure.in: use AC_CHECK_FUNCS instead of
	CL_GETHOSTNAME & CL_READLINK

2007-10-23  Sam Steingold  <sds@gnu.org>

	* error.d (begin_error): check *RECURSIVE-ERROR-COUNT* before
	accessing it, not after

2007-10-22  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (upload): split into
	upload-ssh upload-sf upload-sunsite upload-gnu

2007-10-22  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (xlib_error_handler): fix converter types:
	NextRequest and serial are unsigned long, while minor_code is uint8
	(XLIB:GET-PROPERTY): fix type of r (int->Status)

2007-10-22  Sam Steingold  <sds@gnu.org>

	remove libcharset; use gnulib/localcharset
	* Makefile.devel (CONFIGURES): remove libcharset/configure
	(libcharset/configure): remove target
	(gnulib-update): add localcharset
	(SOURCES4): drop libcharset
	* configure: do not configure libcharset
	* encoding.d: include "localcharset.h" instead of "libcharset.h"
	* makemake.in: use gnulib/localcharset instead of libcharset

2007-10-22  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-update): cvs up gnulib;
	check for duplicate m4 files
	declare phony targets as such
	(multibuild-linux-x86, multibuild-darwin-powerpc): use descriptive
	directory names

2007-10-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (LIBOBJS): undo the 2007-10-19 patch; completely remove
	(XCFLAGS): do not add -Igllib
	(MODULE_CFLAGS): add -Igllib

2007-10-22  Sam Steingold  <sds@gnu.org>

	* m4/glibc2.m4, m4/lcmessage.m4, m4/progtest.m4, m4/uintmax_t.m4:
	* m4/wchar_t.m4, m4/xsize.m4: remove files, they are now in glm4

2007-10-22  Sam Steingold  <sds@gnu.org>

	* configure: disable "exit on error" (set +x) around 'test -z
	"$stacksizelimit"' to access exit status instead of exiting configure

2007-10-22  Sam Steingold  <sds@gnu.org>

	* makemake.in [CC_CPLUSPLUS]: build gnulib with gcc because of
	http://sources.redhat.com/bugzilla/show_bug.cgi?id=5200
	(version.h): always use ${SPVW_VERSION}
	* version.h: regenerated

2007-10-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (malloc) [UNIX | __MINGW32__]: undef after
	#include "config.h" because it could be defined as rpl_malloc by gnulib

2007-10-20  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (OPEN-FONT, LIST-FONTS, LIST-FONT-NAMES):
	use check_string & check_uint_defaulted
	(make_font_with_info): rename to make_font; do not accept info
	(LIST-FONTS): do not fill XFontStruct (FONT-INFO) because it
	introduces a memory leak
	(CLOSE-FONT): call DISCARD-FONT-INFO

2007-10-20  Sam Steingold  <sds@gnu.org>

	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
	* ffcall/callback/trampoline_r/configure.in:
	* ffcall/callback/vacall_r/configure.in:
	* ffcall/trampoline/configure.in, ffcall/vacall/configure.in:
	call AC_CONFIG_AUX_DIR before AC_PROG_INSTALL

2007-10-19  Sam Steingold  <sds@gnu.org>

	* modules/regexp/configure.in (REGEX_H, ALLOCA): drop unused variables
	* modules/regexp/link.sh.in (ALLOCA): drop useless variable
	* modules/regexp/regexi.c [HAVE_ALLOCA_H]: include <alloca.h>

2007-10-19  Sam Steingold  <sds@gnu.org>

	* ffcall/Makefile.devel (build-aux/config.guess, build-aux/config.sub)
	(build-aux/ltmain.sh, build-aux/install-sh): new targets (copy
	from CLISP which copies from gnulib)
	(ffcall/build-aux/install-sh): add
	(ffcall/build-aux/config.guess, ffcall/build-aux/config.sub)
	(ffcall/build-aux/ltmain.sh): update

2007-10-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (GL_LIBOBJS): init from @gl_LIBOBJS@
	(LIBOBJS): link utils using it

2007-10-19  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): add
	* modules/berkeley-db/configure.in, modules/dirkey/configure.in:
	* modules/gdbm/configure.in, modules/gtk2/configure.in:
	* modules/i18n/configure.in, modules/pari/configure.in:
	* modules/pcre/configure.in, modules/postgresql/configure.in:
	* modules/rawsock/configure.in, modules/readline/configure.in
	* modules/regexp/configure.in, modules/syscalls/configure.in
	* modules/wildcard/configure.in, modules/zlib/configure.in: use it
	* m4/general.m4 (CL_FFCALL_COMMON_LIBTOOL)
	(CL_FFCALL_COMMON_TRAMPOLINE): add
	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
	* ffcall/callback/vacall_r/configure.in: use CL_FFCALL_COMMON_LIBTOOL
	* ffcall/callback/trampoline_r/configure.in:
	* ffcall/trampoline/configure.in: use CL_FFCALL_COMMON_LIBTOOL
	and CL_FFCALL_COMMON_TRAMPOLINE

2007-10-19  Sam Steingold  <sds@gnu.org>

	autoconf cleanup
	* ffcall/Makefile.devel (m4/install.m4): drop
	(m4/libtool.m4): do not generate from clisp
	* ffcall/m4/libtool.m4: use AC_CANONICAL_HOST
	instead of CL_CANONICAL_HOST
	* ffcall/autoconf/aclocal.m4 (m4/install.m4): drop
	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
	* ffcall/callback/trampoline_r/configure.in:
	* ffcall/callback/vacall_r/configure.in:
	use AC_PROG_INSTALL instead of CL_PROG_INSTALL and
	AC_CONFIG_AUX_DIR instead of CL_CANONICAL_HOST
	* m4/general.m4: drop CL_CANONICAL_HOST, use AC_CANONICAL_HOST
	instead; we have build-aux/install-sh anyway, so no need for the trick
	* m4/install.m4, m4/lib-ld.m4, m4/libtool.m4: drop unused
	* configure.in: use AC_CANONICAL_HOST & CL_CANONICAL_HOST_CPU
	instead of CL_CANONICAL_HOST;
	and AC_PROG_INSTALL instead of CL_PROG_INSTALL

2007-10-18  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (check_gdbm, open_gdbm): fix g++ compilation

2007-10-18  Sam Steingold  <sds@gnu.org>

	* gettext.m4, iconv.m4, intdiv0.m4, intmax.m4, inttypes-pri.m4:
	* inttypes.m4, inttypes_h.m4, nls.m4, po.m4, size_max.m4:
	* printf-posix.m4, stdint_h.m4, lib-link.m4, lib-prefix.m4:
	* onceonly.m4: import from gnulib, so move from src/m4 to src/glm4
	* Makefile.devel (gnulib-update): also get havelib & gettext
	* ffcall/Makefile.devel (m4/longlong.m4): get from $(CLISP_DIR)/src/glm4

2007-10-18  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-DELETE, CHECK_RUN):
	tighten error checking: any non-0 status is an error

2007-10-18  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (view-html): use BROWSERS

2007-10-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (EVERY_INCLUDES_H): stdbool.h & stdint.h are in gllib
	* configure: accept --vimdir and pass it on to makemake
	always run makemake, it is no longer a user-level command
	this fixes bug#1467976: clisp configure does not follow GNU
	conventions

2007-10-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (SUBDIRS): pass depfiles to config.status to
	re-create gllib/.deps/
	* configure.in: use gl_STDBOOL_H instead of gt_STDBOOL_H
	* modules/regexp/Makefile.in: drop REGEX_O
	* modules/regexp/link.sh.in (file_list): fix adding @ALLOCA@ & @REGEX_O@
	* modules/wildcard/Makefile.in: drop FNMATCH_O
	* modules/wildcard/link.sh.in (file_list): fix adding @FNMATCH_O@
	* Makefile.devel (src/gllib/Makefile.in): do not force;
	do not create src/configure.ac
	(src/autoconf/aclocal.m4): simplify (use src/configure.in as is)
	* clisp-link.in (link_some): new function; use it to avoid
	accidental creation of circular links because now some module
	files may reside in ../gllib instead of the module directory

2007-10-16  Sam Steingold  <sds@gnu.org>

	use gnulib-tool to synchronize with gnulib
	* unixconf.h.in: rename to config.h.in
	* Makefile.devel (CONFIG_H_IN): update
	(gnulib-update): new target
	* configure.in: generate gllib/Makefile; call gl_EARLY, gl_INIT
	* makemake.in: unixconf.h -> config.h
	(MAKE): use @SET_MAKE@
	(SUBDIRS): add, start with building gllib
	(am--refresh): new target, required by automake
	* lispbibl.d, win32.d: unixconf.h -> config.h
	* stdbool.h.in, stdint_.h: remove gnulib files
	* gllib, glm4: add directories (created by gnulib-update)
	* m4/alloca.m4, m4/codeset.m4, m4/extensions.m4, m4/fnmatch.m4:
	* m4/glibc21.m4, m4/longlong.m4, m4/mbstate_t.m4, m4/regex.m4:
	* m4/stdbool.m4, m4/stdint.m4, m4/ulonglong.m4, m4/wint_t.m4:
	remove files, they are now in glm4
	* modules/regexp/: remove gnulib files
	* modules/regexp/link.sh.in, modules/regexp/Makefile.in: update
	* modules/wildcard/: remove gnulib files
	* modules/wildcard/link.sh.in, modules/wildcard/Makefile.in: update

2007-10-16  Masayuki Onjo  <masayuki.onjo@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-DELETE): signal an error
	on failure instead of returning a boolean

2007-10-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (GPG): use gpg, not gpg2
	(tag-release): pass "." to cvs

2007-10-16  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.42 release

2007-10-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/qix.lisp (qix): use uniform UI
	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): greynetic &
	bball are broken

2007-10-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (TP_EMAIL): coordinator@translationproject.org

2007-10-15  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [debug & cpu=x86_64]: omit -DDEBUG_SPVW to
	work around bug#1413016: amd64 debug build broken (gc aborts)

2007-10-13  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (check_gdbm): gdbm arg is a gcv_object_t*
	(GDBM-OPEN, GDBM-DEFAULT-KEY-TYPE, GDBM-DEFAULT-VALUE-TYPE, GDBM-CLOSE)
	(GDBM-FILE-SIZE, GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY)
	(GDBM-NEXTKEY, GDBM-REORGANIZE, GDBM-SYNC, GDBM-EXISTS, GDBM-SETOPT):
	update all callers

2007-10-12  Sam Steingold  <sds@gnu.org>

	* version.sh, spvw.d: pretest 2.41.1 (2007-10-12)
	* Makefile.devel: coalesce TOPNAME & TOPDIR; fix tp-mail

2007-10-12  Sam Steingold  <sds@gnu.org>

	modify the last patch to be more general and less cluttered by default
	* trace.lisp (tracer): replace GLOBAL-CALL-COUNTER and
	LOCAL-CALL-COUNTER with BINDINGS
	(trace1): use BINDINGS in the trace body
	(trace-output, trace-pre-output, trace-post-output): do not accept
	LOCAL-CALL-COUNT
	(untrace2): remove the PROCLAIM call

2007-10-11  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (open_gdbm): extract from GDBM-OPEN
	(GDBM-OPEN): accept GDBM structures to re-open them if necessary

2007-10-10  Sam Steingold  <sds@gnu.org>

	drop sub-byte bit vectors because we need to keep vector length
	together with the data (similar to binary stream i/o)
	* modules/gdbm/gdbm.c (gdbm_data_t, check_data_type, with_datum)
	(datum_to_object): drop GDBM_DATA_BIT_VECTOR, add
	GDBM_DATA_32BIT_VECTOR & GDBM_DATA_8BIT_VECTOR

2007-10-10  Sam Steingold  <sds@gnu.org>

	closed GDBM is no longer accepted by functions requiring DB access
	* modules/gdbm/gdbm.c (check_gdbm): accept require_valid_handle arg
	(GDBM-FILE-SIZE, GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY)
	(GDBM-NEXTKEY, GDBM-REORGANIZE, GDBM-SYNC, GDBM-EXISTS, GDBM-SETOPT):
	require an open GDBM

2007-10-10  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (gdbm_data_t): replace GDBM_DATA_BINARY with
	GDBM_DATA_VECTOR and GDBM_DATA_BIT_VECTOR; and GDBM_DATA_FIXNUM
	with GDBM_DATA_INTEGER
	(check_data_type): use CL symbols for types
	(gdbm_open_read_write, gdbm_open_option, gdbm_store_flag):
	use the "default=" DEFCHECKER option
	(GDBM-OPEN): accept :DEFAULT-KEY-TYPE and :DEFAULT-VALUE-TYPE
	(check_gdbm): also extract the default types
	(GDBM-DEFAULT-KEY-TYPE, GDBM-DEFAULT-VALUE-TYPE): add
	(error_bad_type): add
	(with_datum): use it; replace fixnum with integer, using I_to_LEbytes
	(datum_to_object): use switch; signal an error on GDBM_DATA_NOTYPE,
	handle integers (with LEbytes_to_I) and bit vectors
	(gdbm_setopt_option): accept :DEFAULT-VALUE-TYPE and :DEFAULT-KEY-TYPE
	(GDBM-SETOPT): set the default types
	make available even without HAVE_GDBM_SETOPT
	* modules/gdbm/gdbm.lisp (gdbm): add slots PATH, KEY-TYPE, VALUE-TYPE
	(gdbm-path, gdbm-default-key-type, gdbm-default-value-type): export
	(gdbm-open-p): add

2007-10-09  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (to-C-name): drop package prefix to support
	non-keyword symbols in DEFCHECKER which are not followed by "="

2007-10-09  Masayuki Onjo  <masayuki.onjo@gmail.com>

	change keyword argument :binary -> :type
	* modules/gdbm/gdbm.c (gdbm_data_t, check_data_type): add
	(with_datum, datum_to_object): also handle fixnums and floats
	(GDBM-FETCH, GDBM-FIRSTKEY, GDBM-NEXTKEY): take :TYPE instead of :BINARY

2007-10-09  Sam Steingold  <sds@gnu.org>

	implement RFE#1808029: trace with call counters
	* trace.lisp (make-local-call-counter): add
	(tracer): add GLOBAL-CALL-COUNTER & LOCAL-CALL-COUNTER slots
	(trace1): incf GLOBAL-CALL-COUNTER & bind LOCAL-CALL-COUNTER
	(trace-output): abstracted from ...
	(trace-pre-output, trace-post-output): accept LOCAL-CALL-COUNTER
	(untrace2): make LOCAL-CALL-COUNTER notspecial

2007-10-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS):
	handle FamilyServerInterpreted
	(make_xatom): check XGetAtomName return value
	(DISPLAY-VENDOR): check ServerVendor return value
	(KEYSYM-NAME): check XKeysymToString return value
	(XLIB::DISPLAY-EXTENDED-MAX-REQUEST-LENGTH)
	(XLIB::DISPLAY-RESOURCE-MANAGER-STRING)
	(XLIB::SCREEN-RESOURCE-STRING): add, but do not export
	(DISPLAY-RESOURCE-ID-BASE, DISPLAY-RESOURCE-ID-MASK): implement
	using <X11/Xlibint.h>
	(XScreenNo): return -1 on failure
	(XLIB::SET-DISPLAY-DEFAULT-SCREEN): use it
	* modules/clx/new-clx/clx.lisp (CHANGE-KEYBOARD-MAPPING)
	(KEYBOARD-MAPPING, DISPLAY-RESOURCE-ID-BASE)
	(DISPLAY-RESOURCE-ID-MASK): do not mark as UNDEFINED

2007-10-07  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:SET-DISPLAY-DEFAULT-SCREEN): add
	(XLIB:LIST-FONTS): use XLoadFont instead of passing NULL font
	* modules/clx/new-clx/clx.lisp (DISPLAY-DEFAULT-SCREEN): add a DEFSETF
	(get-default-display, open-default-display): add from clx
	(cut-buffer, (setf cut-buffer), rotate-cut-buffers):
	use DISPLAY-DEFAULT-SCREEN instead of (FIRST DISPLAY-ROOTS)
	* modules/clx/new-clx/demos/clx-demos.lisp (x-host-display)
	(x-open-display): drop
	* modules/clx/new-clx/demos/bball.lisp:
	* modules/clx/new-clx/demos/bwindow.lisp:
	* modules/clx/new-clx/demos/greynetic.lisp:
	* modules/clx/new-clx/demos/hanoi.lisp:
	* modules/clx/new-clx/demos/koch.lisp:
	* modules/clx/new-clx/demos/petal.lisp:
	* modules/clx/new-clx/demos/plaid.lisp:
	* modules/clx/new-clx/demos/recurrence.lisp:
	* modules/clx/new-clx/demos/sokoban.lisp:
	use XLIB:DISPLAY-DEFAULT-SCREEN instead of CLX-DEMOS:X-OPEN-DISPLAY
	* modules/clx/new-clx/demos/clclock.lisp:
	new demo based on http://common-lisp.net/~crhodes/clx
	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): add clclock

2007-09-30  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/image.lisp (image-pixmap): pass the required
	arguments :width & :height to put-image

2007-10-06  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: use safe_to_string when appropriate

2007-10-06  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c: use *misc-encoding* for string conversion
	(error_gdbm): accept fatal_message
	(GDBM-OPEN): pass it as the 5th arg to gdbm_open()
	* modules/gdbm/gdbm.lisp (gdbm-error): add :CODE slot

2007-10-06  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (switchu): remove: was used 3 times for strmtype in ...
	* predtype.d (TYPE-OF, CLASS-OF, heap_statistics_mapper):
	use switch instead of switchu.
	switch is already used with strmtype in stream.d and spvw_circ.d

2007-10-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (vimdir): install in ${datadir}/vim/vimfiles/after/syntax
	* clisp.spec: add %{prefix}/share/vim/vimfiles/after/syntax/lisp.vim

2007-10-02  Sam Steingold  <sds@gnu.org>

	* error.d (OS_filestream_error): check that the stream argument is
	actually a stream object (this is needed because OS_filestream_error
	is called by handle_lseek which is called by handle_length which
	is used by the gdbm module which does not have Lisp streams)
	* genclisph.d (emit_to_I): add and use it for size, ssize and off
	* lispbibl.d (handle_length): add declaration
	(off_to_I): define using sint??_to_I instead of [QL]_to_I because
	Q_to_I may not be defined on a 32-bit platform
	(uint64_to_I, sint64_to_I): always define
	* stream.d (handle_length): implement
	(fd_lseek): extract from handle_lseek
	(handle_lseek): use it
	(FILE-LENGTH): use it to handle unbuffered streams
	(FILE-POSITION): use handle_lseek on unbuffered streams
	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): use handle_length

2007-10-02  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): implement
	* modules/gdbm/gdbm.lisp (GDBM:GDBM-FILE-SIZE): export
	(gdbm-p, gdbm-error, gdbm-error-message): export
	* modules/gdbm/configure.in: check for all functions
	* modules/gdbm/gdbm.c: use the configure checks

2007-10-01  Sam Steingold  <sds@gnu.org>

	* genclisph.d: emit size_to_I & ssize_to_I
	* modules/rawsock/rawsock.c (size_to_I, ssize_to_I): remove
	* modules/rawsock/configure.in: do not check for sizeof(size_t)
	* modules/pcre/cpcre.c (fullinfo_size): use size_to_I

2007-10-01  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE-VERSION, PCRE-COMPILE): use
	safe_to_string()
	(fullinfo_size): accept option argument;
	use size_t instead of unsigned long int
	(fullinfo_nametable): fix combining 2 bytes into an int
	(PATTERN-INFO): do not report PCRE_INFO_BACKREFMAX twice;
	use fullinfo_size instead of fullinfo_int for PCRE_INFO_STUDYSIZE

2007-09-30  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: report what is been done;
	make link.sh not executable

2007-09-30  Sam Steingold  <sds@gnu.org>

	* makemake.in: accept --vimdir and install the new file lisp.vim
	there (defaults to ${datadir}/vim/vimfiles/after)

2007-09-30  Sam Steingold  <sds@gnu.org>

	* .gdbinit (full): also break in xlib_error_handler
	* modules/clx/new-clx/demos/bball.lisp:
	* modules/clx/new-clx/demos/bwindow.lisp:
	* modules/clx/new-clx/demos/greynetic.lisp:
	* modules/clx/new-clx/demos/hanoi.lisp:
	* modules/clx/new-clx/demos/petal.lisp:
	* modules/clx/new-clx/demos/plaid.lisp:
	* modules/clx/new-clx/demos/recurrence.lisp: adapted from
	http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/gui/clx/clx_demo.cl
	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): new variable
	which lists all demos
	(run-all-demos): new function
	* modules/clx/new-clx/demos/qix.lisp (qix): use
	XLIB:DISPLAY-DEFAULT-SCREEN instead of (FIRST XLIB:DISPLAY-ROOTS)
	* modules/clx/new-clx/demos/koch.lisp (koch): ditto

2007-09-29  Sam Steingold  <sds@gnu.org>

	* complete.lisp (completion): when no symbols are found and no package
	separator #\: has been entered, search for completion among packages
	* init.lisp: load complete after macros3 because of WITH-COLLECT

2007-09-26  Sam Steingold  <sds@gnu.org>

	wrap all library calls in begin_system_call/end_system_call
	* modules/gdbm/gdbm.c (SYSCALL): add
	(GDBM-OPEN, GDBM-CLOSE, with_datum, GDBM-SYNC): use it
	(GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY, GDBM-NEXTKEY)
	(GDBM-EXISTS): set values outside of with_datum()
	(CHECK_RUN): add a convenience wrapper
	(GDBM-REORGANIZE, GDBM-SETOPT): use it

2007-09-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:MOTION-EVENTS): XFree(events)
	(XLIB:MODIFIER-MAPPING): use STACK_to_mv, return no values on failure
	(XLIB:SET-MODIFIER-MAPPING): clean-up stack on failure
	(make_fill_bit_vector): add
	(make_key_vector, XLIB:%SAVE-GCONTEXT-COMPONENTS)
	(XLIB:KEYBOARD-CONTROL): use it
	(XLIB:SET-MODIFIER-MAPPING): fix memory corruption in xmk construction
	(XLIB:CHANGE-KEYBOARD-MAPPING): fix memory corruption in
	XChangeKeyboardMapping call (num_codes = #keysyms, not #keycodes)

2007-09-26  Sam Steingold  <sds@gnu.org>

	fix bug#1797132: assertion failure in new-clx
	support 64-bit KeySym in KEYBOARD-MAPPING using an extra dimension
	* modules/clx/new-clx/configure.in : AC_CHECK_SIZEOF(KeySym)
	* modules/clx/new-clx/clx.f (KBD_MAP_RANK, check_dim)
	(KBD_MAP_TYPE, extra_dim_push): define based on SIZEOF_KEYSYM
	(check_kbdmap_mx): replaces check_uint32_mx
	(XLIB:CHANGE-KEYBOARD-MAPPING, XLIB:KEYBOARD-MAPPING): use them

2007-09-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (check_error_code): add DEFCHECKER
	(xlib_error_handler): use check_error_code_reverse instead of a
	literal vector lookup for robustness and readability

2007-09-26  Sam Steingold  <sds@gnu.org>

	support non-keyword symbols in DEFCHECKER
	* utils/modprep.lisp (maybe-prepend-colon): add
	(new-checker): use it
	(print-tables-1): separate objects with spaces

2007-09-26  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (xlib_a_cons): use allocate_cons()
	instead of `(NIL . NIL)` for initialization

2007-09-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (make_key_vector): do not clobber value1
	(check_bitvec_256): new macro
	(get_key_vector): implement
	(XLIB:OPEN-DISPLAY): call disable_sigpipe() not here, but ...
	(module__clx__init_function_2): ... here
	(XLIB::SET-GCONTEXT-DASHES, handle_image_z, XLIB:PUT-IMAGE)
	(XLIB:CHANGE-PROPERTY, XLIB:GLOBAL-POINTER-POSITION)
	(XLIB:KEYBOARD-MAPPING, XLIB:OPEN-DISPLAY): remove unused variable
	(font_char_info): simplify to avoid a gcc warning
	(XLIB:INPUT-FOCUS): fix STACK handling
	(XLIB:GRAB-KEY): fix XGrabKey call
	(XLIB:QUERY-KEYMAP): use check_bitvec_256
	(XLIB:KEYCODE->CHARACTER): fix KEYSYM-INDEX-FUNCTION handling
	(X11/Xauth.h): #include
	(my_xau_get_auth_by_name): add (fixme?)
	(XLIB:DISPLAY-AUTHORIZATION-DATA, XLIB:DISPLAY-AUTHORIZATION-NAME):
	use it or return constant ""
	(XLIB:DISPLAY-AUTHORIZATION): add
	* modules/clx/new-clx/clx.lisp (XLIB:DISPLAY-AUTHORIZATION): export

2007-09-23  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (with_datum): replacement for with_gdbm_key
	* modules/gdbm/gdbm.lisp (define-condition):
	do not terminate the message with "."

2007-09-23  Masayuki Onjo  <masayuki.onjo@gmail.com>

	* modules/gdbm/gdbm.lisp (GDBM:WITH-OPEN-DB): add macro
	* modules/gdbm/gdbm.c (with_gdbm_key): add macro
	(GDBM-FETCH, GDBM-DELETE, GDBM-EXISTS): add vector support
	(GDBM-FIRSTKEY, GDBM-NEXTKEY): new keyword argument :BINARY

2007-09-22  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/dirkey.c (fehler_ldap): rename to error_ldap
	* modules/pcre/cpcre.c (pcre_error): rename to error_pcre
	* modules/clx/new-clx/clf.x (closed_display_error): rename to
	error_closed_display
	* .gdbinit (full): break in error_gdbm

2007-09-21  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (CHECK_SOCKADDR): new macro
	(SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT)
	(GETNAMEINFO, fill_msghdr, SENDTO): use it

2007-09-21  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (dbe_get_data_dirs): declare a variable
	in the block where it is actually used
	(record_length): use default: to avoid a compiler warning about
	enumeration values not handled in switch and control reaching end
	of non-void function

2007-09-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c [HAVE_SIGNALS]: use writing_to_subprocess
	to avoid being killed by SIGPIPE
	(begin_sock_call, end_sock_call): define
	(SYSCALL, GET_SOCK_OPT, SET_SOCK_OPT): use them instead of
	begin_system_call/end_system_call

2007-09-20  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-FETCH, GDBM-DELETE)
	(GDBM-NEXTKEY, GDBM-EXISTS): use a variable from with_string_0
	instead of calling asciz_length()
	(GDBM:GDBM-SETOPT): convert :CACHESIZE argument properly

2007-09-20  Masayuki Onjo  <masayuki.onjo@gmail.com>

	* modules/gdbm/gdbm.c (GDBM:GDBM-VERSION): add
	* modules/gdbm/gdbm.lisp (GDBM-VERSION): export

2007-09-18  Sam Steingold  <sds@gnu.org>

	bug fix: pwd struct fields can be NULL which caused segfault
	* misc.d, lispbibl.d (push_string_array, safe_to_string): add
	* modules/syscalls/calls.c (ARR_TO_LIST): remove
	(hostent_to_lisp, servent_to_lisp, grp_to_lisp):
	use push_string_array instead of ARR_TO_LIST
	(utmpx_to_lisp, UNAME, servent_to_lisp, passwd_to_lisp, FILE-OWNER)
	(VERSION, PropVariantToLisp, FILE-PROPERTIES): use safe_to_string
	* modules/rawsock/rawsock.c (GETADDRINFO): use safe_to_string
	(protoent_to_protocol, netent_to_network): use push_string_array

2007-09-17  Sam Steingold  <sds@gnu.org>

	* modules/gdbm/gdbm.lisp (GDBM:DO-DB): new macro
	* modules/gdbm/configure.in (<gdbm/gdbm.h>): check
	* modules/gdbm/gdbm.c: #include <gdbm/gdbm.h> when it is available
	(GDBM::GDBM-OPEN): finalize GDBM object
	(datum_to_object): new function
	(GDBM:GDBM-FIRSTKEY, GDBM:GDBM-NEXTKEY): use it
	(GDBM:GDBM-SETOPT): simplify code
	(check_gdbm): return GDBM_FILE; update all callers; fix some GC-safety

2007-09-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:LOADAVG): implement
	* modules/syscalls/posix.lisp (POSIX:LOADAVG): export
	* modules/syscalls/configure.in (getloadavg): check

2007-09-17  Masayuki Onjo  <masayuki.onjo@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* Makefile.devel (MODULES): add gdbm
	* modules/gdbm: new module

2007-08-26  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (finalize-coutput-file): write
	register_foreign_inttype forms into init_function_2 ("init once")
	instead of init_function_1 ("init-always")

2007-08-24  Sam Steingold  <sds@gnu.org>

	implement RFE#1779938: RENAME-DIRECTORY
	* pathname.d (RENAME-DIR): implement
	* constsym.d, subr.d (rename_dir): add
	* init.lisp (rename-dir): exoirt

2007-08-24  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: fix some error_bdb calls;
	use db->get_env instead of a direct dbenv slot access;
	avoid "DB->get_cachesize: method not permitted when environment
	specified" error log messages
	(BDB:DBE-SET-OPTIONS): accept :NCACHE :CACHESIZE :CACHE
	(BDB:DBE-GET-OPTIONS): report :CACHE
	(cache2lisp): extract from db_get_cache
	(dbe_get_cache): add
	(db_get_cache): call it when db is based on a dbe
	(db_get_type): new function
	fix bug#1779416: Berkeley-DB module outputs spurious errors
	(record_length): do not call get_re_len on DB_BTREE & DB_HASH
	(BDB:DB-GET-OPTIONS): do not call methods inappropriate for a DB
	type, avoiding "call implies an access method which is
	inconsistent with previous calls" error log messages

2007-08-23  Sam Steingold  <sds@gnu.org>

	* constobj.d (foreign_inttype_table): add
	* lispbibl.d (register_foreign_inttype): declare and export to clisp.h
	(mallocing, nomalloc): declare to avoid warnings
	* exporting.lisp (def-c-type): only one argument is required
	* foreign.d (parse_foreign_inttype, register_foreign_inttype): add
	(foreign_layout, convert_from_foreign, convert_to_foreign, do_av_start)
	(do_av_arg, do_va_start, do_va_arg, do_va_return): use
	foreign_inttype_table for system int types
	(init_ffi): register a couple of int types for the test suite
	* foreign1.lisp (def-c-type): when typespec is missing, assume int
	type and get size and sign at compile time
	(finalize-coutput-file): output int types
	* modules/bindings/glibc/linux.lisp: define most int types using
	the new one argument def-c-type call
	(dirent64, readdir64, readdir64_r, scandir64, alphasort64)
	(versionsort, versionsort64): add
	(seekdir, telldir): for some reason position is "long", not
	"off_t", in my <dirent.h> (glibc-headers-2.4-11)

2007-07-24  Sam Steingold  <sds@gnu.org>

	merge some netbsd/pkgsrc patches
	* makemake.in (XCC_CREATESHARED): treat DragonFly like all the
	other BSDs
	* ffcall/avcall/asmi386.h, ffcall/callback/vacall_r/asmi386.h:
	* ffcall/vacall/asmi386.h, asmi386.h, asmi386.hh:
	DragonFly defines __DragonFly__, not __DragonFly

2007-07-08  Sam Steingold  <sds@gnu.org>

	fix bug#1607416: back_trace is not initialized when it is a
	register
	* spvw.d (back_trace): do not init to NULL at the declaration,
	instead...
	(init_memory): init back_trace to NULL here

2007-06-28  Sam Steingold  <sds@gnu.org>

	* pathname.d (make_launch_pipe): do not access STACK, accept
	pointers into it instead
	(init_launch_streamarg): accept a pointer into STACK instead of an index

2007-06-25  Jack Unrue  <jdunrue@gmail.com>

	* modules/syscalls/calls.c (FMTID_SummaryInformation)
	(FMTID_UserDefinedProperties): provide local definitions
	to support build using MinGW w32api 3.9

2007-06-25  Sam Steingold  <sds@gnu.org>

	* pathname.d (interpret_launch_priority): do not access STACK,
	accept an argument instead

2007-06-22  Sam Steingold  <sds@gnu.org>

	fix last patch
	* init.lisp (sys::get-doc-entity-caller): add
	(get-file-doc, set-file-doc): use it

2007-06-21  Sam Steingold  <sds@gnu.org>

	Keep separate file information for each caller (DEFUN, DEFSTRUCT &c)
	* init.lisp (sys::get-file-doc, sys::set-file-doc): add
	(sys::check-redefinition): use them

2007-06-20  Sam Steingold  <sds@gnu.org>

	* m4/proto.m4 (CL_PROTO_MISSING, CONST_VARIANTS, SIZE_VARIANTS):
	new macros
	* m4/connect.m4, m4/ioctl.m4, m4/select.m4, m4/tcpconn.m4: use them

2007-06-20  Sam Steingold  <sds@gnu.org>

	* malloc/getpagesize.h, malloc/gmalloc.c: update from Emacs:
	LGPL->GPL; Pthreads; a prototype fix from CLISP bug#1607416

2007-06-19  Sam Steingold  <sds@gnu.org>

	* m4/ioctl.m4 (CL_IOCTL): "request" is an "unsigned int" on arm-wince-pe
	* m4/tcpconn.m4 (CL_TCPCONN): "len" is a "socklen_t" in setsockopt()
	Reported by Kamil Shakirov <kamils80@gmail.com>

2007-06-09  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in, modules/postgresql/postgresql.lisp:
	search for PostgreSQL headers also in pgsql (for Mandriva)
	Suggested by Frederik Himpe <fhimpe@telenet.be>

2007-06-08  Jörg Höhle  <hoehle@users.sourceforge.net>

	* macros3.lisp (expand-LETF, expand-LETF*): use lexical environment
	(EXT:LETF): always return nil with empty body
	(LETF): fix a case with wrong order of parameters for (VALUES ...)

2007-06-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1731462: EXT:LETF with more than one place
	* macros3.lisp (expand-LETF): accumulate intermediates

2007-06-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	* loop.lisp (max-if, min-if): mark as ABI

2007-06-05  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/fastcgi.lisp (hex-value): use DIGIT-CHAR-P
	* modules/oracle/oracle.lisp (hex-value): ditto
	Suggested by Jörg Höhle.
	(if-null): remove (use OR instead)
	(curconn, connect, to-sqlval, hash-to-sqlparam-array, check-connection)
	(pairs-to-hash, array-to-hash): use AND & UNLESS instead
	(cat): use EXT:STRING-CONCAT

2007-06-03  Jörg Höhle  <hoehle@users.sourceforge.net>

	Use (gensym "NAME-") to enhance readability of CL macros.
	* condition.lisp (IGNORE-ERRORS, HANDLER-CASE, ASSERT, CHECK-TYPE)
	(ECASE, ETYPECASE, CCASE, CTYPECASE)
	(WITH-SIMPLE-RESTART, expand-restart-case): Use (gensym "NAME").
	* defs1.lisp (DO-SYMBOLS, DO-EXTERNAL-SYMBOLS)
	(EXT:DOSEQ, EXT:DOHASH): ditto
	* defs2.lisp (WITH-HASH-TABLE-ITERATOR): ditto
	* macros1.lisp (PROG1, PROG2, do/do*-expand, DOLIST, DOTIMES)
	(PSETQ, MULTIPLE-VALUE-BIND, MULTIPLE-VALUE-SETQ, COND): ditto
	* macros2.lisp (TYPECASE, NTH-VALUE, EXT:TIMES)
	(WITH-OUTPUT-TO-STRING): ditto
	* macros3.lisp (EXT:ETHE): ditto
	* loop.lisp (LOOP, expand-loop): ditto

2007-05-23  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1721583: *terminal-encoding* readline segfault
	* encoding.d (sys::set-terminal-encoding): return normalized value.

2007-05-20  Bruno Haible  <bruno@clisp.org>

	* unix.d [UNIX_LINUX && UNIX_GNU]: Don't include <asm/page.h>.
	* lispbibl.d (UNIX_GNU): Move definition down.
	Reported by Ulrich Müller <ulm@gentoo.org>.

2007-05-13  Sam Steingold  <sds@gnu.org>

	* clos-class3.lisp (check-method-redefinition): extract from
	ANALYZE-METHOD-DESCRIPTION
	(install-class-direct-accessors): use it
	* clos-method2.lisp (analyze-method-description): ditto

2007-05-13  Shawn Betts  <sabetts@vcn.bc.ca>
	Sam Steingold  <sds@gnu.org>

	* clx.f: as per the CLX manual,
	(:EXPOSURE, :GRAPHICS-EXPOSURE): :X, :Y, :WIDTH, :HEIGHT are uint16
	(:CONFIGURE-NOTIFY, :CREATE-NOTIFY, :GRAVITY-NOTIFY)
	(:REPARENT-NOTIFY, :CONFIGURE-REQUEST): :X, :Y are sint16

2007-05-09  Shawn Betts  <sabetts@vcn.bc.ca>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:GET-PROPERTY): check
	XGetWindowProperty return value

2007-05-06  Sam Steingold  <sds@gnu.org>

	ensure that (DEFGENERIC IF) and (DEFUN IF) signal PROGRAM-ERROR
	* init.lisp (check-special-operator): extract from
	REMOVE-OLD-DEFINITIONS
	(check-redefinition): call it
	(remove-old-definitions): call either CHECK-REDEFINITION or
	CHECK-SPECIAL-OPERATOR

2007-05-06  Sam Steingold  <sds@gnu.org>

	fix bug#1713130: some CL symbols are not locked
	* clos-genfun3.lisp (defgeneric): call SYS::CHECK-REDEFINITION
	(defmethod, defgeneric): use SYS::GET-FUNNAME-SYMBOL
	(ensure-generic-function-using-class): use PREDEFUN instead of DEFUN
	* clos-class3.lisp (finalize-inheritance, make-instances-obsolete)
	(class-name, validate-superclass, add-direct-subclass)
	(ensure-class-using-class, reader-method-class, writer-method-class)
	(remove-direct-subclass, class-direct-subclasses, compute-slots)
	(compute-class-precedence-list, compute-effective-slot-definition)
	(compute-effective-slot-definition-initargs, compute-default-initargs):
	use PREDEFUN instead of DEFUN
	* clos-genfun1.lisp (print-object, generic-function-methods)
	(generic-function-method-class, generic-function-signature)
	(generic-function-undeterminedp, generic-function-method-combination)
	(generic-function-argorder, generic-function-declarations): ditto
	* clos-genfun2a.lisp (compute-applicable-methods)
	(compute-applicable-methods-using-classes): ditto
	* clos-genfun2b.lisp (compute-discriminating-function)
	(add-method, remove-method): ditto
	* clos-methcomb2.lisp (compute-effective-method)
	(find-method-combination): ditto
	* clos-method1.lisp (method-function, method-qualifiers)
	(method-lambda-list, method-signature, method-specializers)
	(method-generic-function, (setf method-generic-function)): ditto
	* defs1.lisp (expand-form): moved here from init.lisp
	* defs2.lisp (default-directory, date-format, date-string, dir):
	moved here from init.lisp
	* init.lisp (in-package, the-environment, load, defmacro, defun):
	call SYS::CHECK-REDEFINITION explicitly at top-level
	(expand-form, default-directory, date-format, date-string, dir):
	move to defs*.lisp so that they are defined with full DEFUN

2007-05-04  Sam Steingold  <sds@gnu.org>

	* init.lisp (sys::check-redefinition): WHAT is a string,
	so use CALLER instead
	* places.lisp (define-setf-expander, defsetf):
	pass a string as WHAT to CHECK-REDEFINITION
	* clos-class2.lisp ((setf find-class)):
	call TEXT on WHAT in the CHECK-REDEFINITION call
	* clos-methcomb2.lisp (define-method-combination): ditto
	* clos-method2.lisp (analyze-method-description): ditto
	* cmacros.lisp (define-compiler-macro): ditto
	* trace.lisp (check-traceable): ditto

2007-04-28 Shawn Betts  <sabetts@vcn.bc.ca>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (encode_event): because some slots point
	to the same C structure slot (:WINDOW and :EVENT-WINDOW mostly),
	the way encode_event is written :EVENT-WINDOW will overwrite :WINDOW.
	If :WINDOW is supplied and :EVENT-WINDOW is not, then the xevent
	slot will be set to 0, instead of the proper value.
	This patch memsets the whole structure to 0 and gets rid of the
	else clauses.

2007-04-28  Sam Steingold  <sds@gnu.org>

	* spvw.d (fehler_notreached): refer to
	http://clisp.cons.org/impnotes/faq.html#faq-bugs
	instead of asking for private e-mail

2007-04-23  Sam Steingold  <sds@podval.org>

	* modules/libsvm: upgraded to upstream 2.84

2007-04-04  Vadim Konovalov  <vadim@vkonovalov.ru>
	Sam Steingold  <sds@gnu.org>

	* lispbibl.d (unspecified) [MICROSOFT]: define to 0, like for GCC

2007-03-07  Sam Steingold  <sds@gnu.org>

	fix bug#1666851: [AIX 5.3] Problem finding connect
	* m4/socklen_t.m4, configure.in, socket.d, stream.d, win32.d:
	* modules/rawsock/rawsock.c: replace SOCKLEN_T with CLISP_SOCKLEN_T
	because AIX defines SOCKLEN_T internally
	Reported by Laurent Vaucher <laurentvaucher@users.sourceforge.net>.

2007-02-27  Shawn Betts  <sabetts@vcn.bc.ca>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f:
	use enum instead of #define for slot_DISPLAY_*
	(slot_DISPLAY_DISPLAY, display_structure_size): add
	(make_display): accept display_number
	(OPEN-DISPLAY): pass it to make_display()
	(DISPLAY-DISPLAY): return the new display slot
	* modules/clx/new-clx/clx.lisp (display): add DISPLAY slot

2007-02-22  Sam Steingold  <sds@gnu.org>

	fix bug#1666470: EXT::LAUNCH crash
	again: cannot do pushSTACK(foo()) if foo() manipulates STACK
	* stream.d (make_pipe): new function
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
	(mkops_from_handles, mkips_from_handles): use it
	(mkops_from_handles, mkips_from_handles): return value without STACK
	* lispbibl.d (mkops_from_handles, mkips_from_handles): update prototypes
	* pathname.d (make_launch_pipe): pass stack location instead of
	index as the first argument
	(LAUNCH): use L_to_I() for PID, not fixnum()

2007-02-22  Sam Steingold  <sds@gnu.org>

	fix new-clx "--with-debug" compilation
	* modules/clx/new-clx/clx.f (get_client_message_data): declare void
	(encode_event): use skipSTACK instead of popSTACK to avoid a warning
	(xlib_error_handler): make_bool() accept an int, not an object

2007-02-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/dependent.lisp (buffer-input-wait-default):
	SOCKET-STATUS accepts non-integer timeout

2007-02-15  Mattias Nilsson  <mattiasn@bredband.net>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/dependent.lisp (buffer-input-wait-default):
	only check the :input direction

2007-01-05  Evgeny Zubok  <zubok@users.sourceforge.net>
	Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/display.lisp (read-xauth-entry): fix for McCLIM
	See patch#1628499: McCLIM/mit-clx: fail to connect to X server

2007-02-05  Sam Steingold  <sds@gnu.org>

	* modules/oracle/oracle.lisp, modules/fastcgi/fastcgi.lisp:
	(hex-value): better error reporting
	(hex-byte-value): accept 2 arguments
	(hex-to-byte-array): optimized (less consing, 60% faster)

2007-02-05  Sam Steingold  <sds@gnu.org>

	fix NO_UNICODE + WIN32_NATIVE (mingw) compilation
	* encoding.d (fehler_incomplete) [!UNICODE]: made available for
	CONVERT-STRING-FROM-BYTES
	* stream.d (rd_ch_keyboard, wr_ch_array_window) [WIN32_NATIVE]:
	fix cint/chart conversion
	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.

2007-02-03  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/fastcgi.lisp (byte-array-to-string): optimized

2007-01-22  John Hinsdale <hin@alma.com>

	Allow binary file uploads via FastCGI
	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c: handle binary
	data via STDIN on POST request.  Reported by Mike.Halloran@gmail.com

2007-01-22  Shawn Betts  <sabetts@vcn.bc.ca>
	Sam Steingold  <sds@gnu.org>

	New-CLX supports stumpwm
	* modules/clx/new-clx/clx.f (SET-SELECTION-OWNER): fix argument order
	(encode_event): set the event type; fix STACK handling
	:EVENT-WINDOW is sometimes just a synonym for :WINDOW, sometimes
	not; correctly map :EVENT-WINDOW to the corresponding XEvent slot
	(:REPARENT-NOTIFY): add :OVERRIDE-REDIRECT-P
	(ungrab_X): fix STACK handling
	(xlib_error_handler): pass :ASYNCHRONOUS up
	(XLIB:MAPPING-NOTIFY): implement
	(travel_queque): used to peek the event and called the event
	handler which meant calling PROCESS-EVENTS inside that event
	handler got the same event (this doesn't happen in mit-clx or
	portable-clx). So travel_queque now just calls XNextEvent()
	* modules/clx/new-clx/clx.lisp (SET-SELECTION-OWNER): export
	implement error conditions (copied from mit-clx)

2007-01-01  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (TheLfloat_) [DEBUG_SPVW]: add

2007-01-10  Sam Steingold  <sds@gnu.org>

	* encoding.d (fehler_buffer_parity): rename to fehler_incomplete()
	(handle_incomplete): new function
	(uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs)
	(uni32le_mbstowcs): use it

2007-01-10  Sam Steingold  <sds@podval.org>

	fix bug#1632718: CONVERT-STRING-FROM-BYTES does not check
	incomplete byte sequences
	* encoding.d (CONVERT-STRING-FROM-BYTES): signal an error when the
	vector is not used completely

2007-01-10  Sam Steingold  <sds@podval.org>

	fix bug#1631760: unicode-16 et al cannot be used
	with unbuffered streams
	* encoding.d (uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs)
	(uni32le_mbstowcs): signal an error only when at least one char
	was found to enable single byte increments in rd_ch_unbuffered()

2007-01-08  Mike McMahon  <mmcm@users.sourceforge.net>
	Sam Steingold  <sds@podval.org>

	fix bug#1564818: CRLF handling does not work for UNICODE-16
	* stream.d (strm_channel_extrafields_t): move ignore_next_LF from ...
	(strm_unbuffered_extrafields_t): ... here
	(ChannelStream_ignore_next_LF): add
	(UnbufferedStream_ignore_next_LF): remove
	(low_clear_input_unbuffered_handle, rd_ch_unbuffered)
	(listen_char_unbuffered, rd_ch_array_unbuffered)
	(make_unbuffered_stream, stream_reset_eltype)
	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): use
	ChannelStream_ignore_next_LF instead of UnbufferedStream_ignore_next_LF
	(rd_ch_buffered, rd_ch_array_buffered):
	set and test ChannelStream_ignore_next_LF

2007-01-04  Sam Steingold  <sds@podval.org>

	* stream.d (STREAM-EXTERNAL-FORMAT): compare encodings using EQUALP

2007-01-04  Sam Steingold  <sds@podval.org>

	* stream.d (SET-STREAM-EXTERNAL-FORMAT): use check_encoding()
	instead of test_external_format_arg() because the encoding
	is NOT an :EXTERNAL-FORMAT keyword argument

2007-01-03  Sam Steingold  <sds@podval.org>

	* constobj.d (ansi_user_package_name, base10_radixnil)
	(common_lisp_string): remove unused objects
	(modern_user_package): add
	* package.d (init_packages): set it to CS-COMMON-LISP-USER
	* spvw.d (main_actions): use it for *PACKAGE* in -modern

2007-01-02  Sam Steingold  <sds@podval.org>

	* configure (STACK_LIMIT): set to 16384 because of power5, see
	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=166347

2006-12-24  Bruno Haible  <bruno@clisp.org>

	Make it work with gcc-4.3 snapshots.
	* intparam.c (main1): Rename get_integer_bitsize to
	get_unsigned_integer_bitsize. New macro get_signed_integer_bitsize.
	* lispbibl.d (bit, bitm): Change return type to 'unsigned long' instead
	of 'long'.

2007-01-02  Sam Steingold  <sds@podval.org>

	* hashtabl.d (hashcode_tree_rec): rename from hashcode_tree
	(hashcode_tree): use it
	(gcinvariant_hashcode_tree_p_rec): rename from
	gcinvariant_hashcode_tree_p
	(gcinvariant_hashcode_tree_p): use it
	(HASHCODE_TREE_MAX_LEVEL, HASHCODE_TREE_NEED_LEAVES):
	undef after they are no longer used
	(hashcode3, hashcode3stable, hashcode4, sxhash)
	(gcinvariant_hashcode3_p, gcinvariant_hashcode3stable_p)
	(gcinvariant_hashcode4_p): simplify

2006-12-29  Sam Steingold  <sds@podval.org>

	discard macro lambda list when (OPTIMIZE SPACE) is 3
	* init.lisp (sys::maybe-arglist): add
	(defmacro): use it
	* compiler.lisp (compile): ditto
	* record.d (MACRO-LAMBDA-LIST): signal an error when the lambda
	list is not available due to the compiler optimization settings
	* describe.lisp (describe-object@MACRO): call DESCRIBE-ARGLIST
	(describe-arglist): handle possible errors in ARGLIST

2006-12-29  Sam Steingold  <sds@podval.org>

	* backquote.lisp (BACKQUOTE): pass a 2nd argument to MAKE-MACRO
	* compiler.lisp (compile): ditto
	* places.lisp ((setf MACRO-FUNCTION)): ditto
	* trace.lisp (trace1): ditto

2006-12-28  Sam Steingold  <sds@podval.org>

	fix bug#948868: hashcode[34]_cons weakness
	* hashtabl.d (hashcode_tree, gcinvariant_hashcode_tree_p): add
	(hashcode3_cons0, hashcode3_cons1, hashcode3_cons2, hashcode3_cons3)
	(gcinvariant_hashcode3_cons0_p, gcinvariant_hashcode3_cons1_p)
	(gcinvariant_hashcode3_cons2_p, gcinvariant_hashcode3_cons3_p)
	(hashcode3stable_cons0, hashcode3stable_cons1, hashcode3stable_cons2)
	(hashcode3stable_cons3, gcinvariant_hashcode3stable_cons0_p)
	(gcinvariant_hashcode3stable_cons1_p, hashcode4_cons0)
	(gcinvariant_hashcode3stable_cons2_p, hashcode4_cons1)
	(gcinvariant_hashcode3stable_cons3_p, hashcode4_cons2)
	(hashcode4_cons3, gcinvariant_hashcode4_cons0_p)
	(gcinvariant_hashcode4_cons1_p, gcinvariant_hashcode4_cons2_p)
	(gcinvariant_hashcode4_cons3_p, sxhash_cons0, sxhash_cons1)
	(sxhash_cons2, sxhash_cons3): remove
	(hashcode3, hashcode3stable, hashcode4, sxhash): use hashcode_tree()
	(gcinvariant_hashcode3_p, gcinvariant_hashcode3stable_p)
	(gcinvariant_hashcode4_p): use gcinvariant_hashcode_tree_p()

2006-12-28  Sam Steingold  <sds@podval.org>

	fix bug#1208124: hashcode_bignum weakness
	* hashtabl.d (hashcode_bignum): use all digits

2006-12-27  Sam Steingold  <sds@podval.org>

	ARGLIST now works for macros too
	* constsym.d (macro_lambda_list): add
	* defmacro.lisp (make-macro-expander, make-funmacro-expander):
	pass lambdalist to MAKE-MACRO
	* init.lisp (defun, in-package, the-environment, do, dotimes)
	(defmacro): ditto
	* describe.lisp (describe-object@macro): suggest SYS::MACRO-LAMBDA-LIST
	(arglist): handle macros
	* lispbibl.d (Macro): add slot macro_lambda_list
	* record.d (MAKE-MACRO): accept second argument
	(check_macro): new function
	(MACRO-EXPANDER): use it
	(MACRO-LAMBDA-LIST): add
	* subr.d (make_macro): update
	(macro_lambda_list): add

2006-12-27  Sam Steingold  <sds@podval.org>

	fix bug#1483762: socket's stream-external-format always :default
	* stream.d (STREAM-EXTERNAL-FORMAT): return :DEFAULT for two-way
	and echo streams only if the external formats of the constituent
	streams are different

2006-12-27  Sam Steingold  <sds@podval.org>

	fix bug#1623179:
	broken (setf (stream-external-format stream direction) enc)
	* places.lisp (stream-external-format): fix argument handling

2006-12-27  Sam Steingold  <sds@podval.org>

	fix bug#1412454: format/*print-pretty* interaction: extra newlines
	* io.d (pr_enter_1): respect *PPRINT-FIRST-NEWLINE* in all cases

2006-12-27  Sam Steingold  <sds@podval.org>

	fix bug#1482465: confusing format error report, cause fill-stream
	* format.lisp (format-error): use ~T for indentation and ~S to
	print format string so that the spacing is preserved
	* constsym.d (stream_start_s_expression, stream_end_s_expression): add
	* io.d (write_spaces): use check_posfixnum
	(FORMAT-TABULATE): use check_posfixnum
	call STREAM-START-S-EXPRESSION and STREAM-END-S-EXPRESSION around
	spaces() to ensure that the spaces are preserved

2006-12-26  Sam Steingold  <sds@podval.org>

	fix bug#1622642: DESCRIBE: confusing spacing
	* fill-out.lisp (with-stream-s-expression): new macro
	* describe.lisp (describe1): use it

2006-12-19  Sam Steingold  <sds@podval.org>

	fix bug#1618724: broken compiler warning for invalid
	optimize quality
	* compiler.lisp (parse-optimize-quality): fix the c-warn call

2006-12-18  Sam Steingold  <sds@podval.org>

	fix bug#1612313: DEFPACKAGE code executed during non
	top-level compilation
	* defpackage.lisp (defpackage): use ANSI situations for EVAL-WHEN

2006-12-17  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-SYMBOL-MACROLET): uniform message syntax:
	"declare SPECIAL"

2006-12-17  Sam Steingold  <sds@gnu.org>

	* init.lisp (date-string): add
	* dribble.lisp (dribble-toggle): use it
	* compiler.lisp (compile-file): ditto

2006-12-17  Sam Steingold  <sds@gnu.org>

	* dribble.lisp (dribble-toggle): open the target file with the
	:EXTERNAL-FORMAT of the source stream
	Reported by Pascal Bourguignon <pjb@informatimago.com>

2006-12-11  Sam Steingold  <sds@podval.org>

	fix bug#1613300: extra space in unreadable output
	* io.d (pr_unreadably): do not print a space after string when the
	printer is pr_record_ab_00

2006-12-10  Sam Steingold  <sds@gnu.org>

	fix bug#1612859: IMPORT into the KEYWORD package does not
	make a symbol a constant variable
	* error.d (check_symbol_not_symbol_macro)
	(check_symbol_not_global_special): implement
	* lispbibl.d (check_symbol_not_symbol_macro)
	(check_symbol_not_global_special): declared
	* control.d (PROCLAIM): use check_symbol_not_symbol_macro()
	* macros2.lisp (define-symbol-macro): call
	SYSTEM::%PROCLAIM-SYMBOL-MACRO before SYSTEM::%PUT,
	do not call CHECK-NOT-SPECIAL-VARIABLE-P at all
	(check-not-special-variable-p): obsolete
	* symbol.d (SYS::%PROCLAIM-SYMBOL-MACRO): use
	check_symbol_not_global_special()
	(SYS::%PROCLAIM-CONSTANT): use check_symbol_not_symbol_macro()
	* package.d (make_present): use check_symbol_not_symbol_macro(),
	do not make symbol a constant unless it was uninterned

2006-12-04  Sam Steingold  <sds@podval.org>

	* modules/libsvm: upgraded to upstream 2.83

2006-12-03  Anton Vodonosov  <avodonosov@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	fix bug#1607666: LISTEN does not call STREAM-LISTEN
	* io.d (LISTEN): call STREAM-LISTEN
	* constsym.d (STREAM-LISTEN): add

2006-11-28  Sam Steingold  <sds@gnu.org>

	fix bug#1604579: (SETF DOCUMENTATION) and COMPILE
	* record.d (CLOSURE-SET-DOCUMENTATION): allow NIL argument
	* compiler.lisp (compile): reset the documentation in the compiled
	closure because it might have been reset by (setf documentation)
	and is now different from the literal in the lambdabody

2006-11-28  Sam Steingold  <sds@gnu.org>

	* comptran.d (R_R_atanh_R_R): fix IMAGPART sign for real arguments

2006-11-27  Sam Steingold  <sds@podval.org>

	fix bug#1603260: Loading a compiled file does not reset the
	first value of FUNCTION-LAMBDA-EXPRESSION
	* init.lisp (sys::remove-old-definitions): discard function lambda
	expression too because loading a compiled file does not set it

2006-11-21  Sam Steingold  <sds@podval.org>

	export structure MOP
	* defstruct.lisp (structure-keyword-constructor): rename from
	structure-kconstructor
	* init.lisp (structure-slots, structure-direct-slots)
	(structure-keyword-constructor, structure-boa-constructors)
	(structure-copier, structure-predicate): export
	* exporting.lisp (export-structure-accessories): the above are now
	external in EXT, not internal in SYS

2006-11-20  Sam Steingold  <sds@podval.org>

	fix bug#1436987: atanh branch cut strangeness
	* comptran.d (R_R_atanh_R_R): fix branch cuts logic

2006-11-20  Sam Steingold  <sds@podval.org>

	fix bug#1469663: clisp-link run does not work w/o dynamic modules
	* clisp-link.in (run): remove $destinationdir before add-module-sets

2006-11-17  Bruno Haible  <bruno@clisp.org>

	fix bug#1578179: print-read-consistency of strings
	containing #\Return characters
	* io.d (closure_reader): Recognize #0Y"..." syntax.
	(pr_sstring_ab): Write using #0Y"..." syntax if *print-readably* is
	true and the string contains #\Return characters.

2006-11-17  Sam Steingold  <sds@gnu.org>

	fix bug#1483768: automatic pretty-printing of symbols in conses
	fix bug#1598053: PPRINT dispatch not honored for nested objects
	* io.d (pretty_print_call): remove
	(pr_enter_1): call pr_xxx directly
	(prin_object_ki): abstract from prin_object and pprin_object
	(prin_object, pprin_object): use prin_object_ki
	(prin_object_dispatch_low): rename from prin_object_dispatch
	(prin_object_dispatch_pretty): convert from pretty_print_call
	(prin_object_dispatch): call either of the above

2006-11-13  Magnus Henoch  <mange@freemail.hu>
	    Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/clx.lisp (*protocol-families*): Add :internet6.
	* modules/clx/mit-clx/display.lisp (read-xauth-entry): Likewise.

2006-11-13  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/fastcgi.h: remove unused file

2006-11-13  Sam Steingold  <sds@gnu.org>

	fix bug#1595700: bad base64 error report
	* encoding.d (base64_wcstombs): do not access invalid memory

2006-11-11  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1575569: utf-8 conversion error
	* encoding.d (utf8_wcslen): support up to 4 bytes/character.

2006-11-12  Sam Steingold  <sds@gnu.org>

	* io.d (pr_unreadably): new function (similar to old pr_other_obj)
	(pr_unreadably_2, pr_record_ab_00): add
	(pr_hex6_obj, pr_other_obj): remove
	(pr_machine, pr_system): use pr_unreadably instead of pr_hex6_obj
	(pr_orecord) [Rectype_Readtable]: use pr_unreadably instead of
	pr_hex6_obj
	[Rectype_Byte, Rectype_Symbolmacro, Rectype_GlobalSymbolmacro]:
	[Rectype_Macro, Rectype_FunctionMacro, Rectype_Weakpointer]:
	[Rectype_WeakAnd, Rectype_WeakOr]:
	use pr_unreadably instead of inline code
	[Rectype_Weakmapping, Rectype_WeakAndMapping, Rectype_WeakOrMapping]:
	use pr_unreadably_2 instead of inline code
	(pr_subr, pr_fsubr, pr_cclosure): use pr_unreadably instead of
	pr_other_obj

2006-11-09  Bruno Haible  <bruno@clisp.org>

	fix bug#1591671: typep and subtypep fail ...
	* subtypep.lisp (indefinite-subclassp): New function.
	(STANDARD-OBJECT): Use it.

2006-11-09  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (finish_tty_output) [UNIX]: try fsync(), tcdrain() or
	ioctl() until success, not all of them.

2006-11-08  Sam Steingold  <sds@gnu.org>

	* spvw.d (print_banner): print version and instructions on getting help
	* reploop.lisp (commands0): tweak help message

2006-11-08  Sam Steingold  <sds@podval.org>

	fix bug#1589311: ROUND is broken for long floats [even+1/2]
	* lfloat.d (LF_fround_LF): adjust mask when rounding to match comments

2006-11-06  Sam Steingold  <sds@podval.org>

	* io.d (read_vector_length_check): extract the common part of
	BIT-VECTOR-READER and VECTOR-READER
	(BIT-VECTOR-READER, VECTOR-READER): use it

2006-11-04  José H. Espinosa  <jose.h.espinosa@gmail.com>
	    Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_CREATESHARED) [darwin]: define

2006-11-01  Sam Steingold  <sds@gnu.org>

	* modules/gtk2/gtk.lisp (glade-load): add
	(run-glade-file, gui-from-file): use it

2006-10-26  Sam Steingold  <sds@gnu.org>

	* modules/gtk2/gtk.lisp (GladeXMLConnectFunc, GladeNewFunc)
	(GladeXMLCustomWidgetHandler, GladeBuildChildrenFunc)
	(GladeFindInternalChildFunc, GladeApplyCustomPropFunc):
	no need for C-POINTER indirection
	(gui-from-file): call glade_xml_signal_autoconnect_full

2006-10-22  Sam Steingold  <sds@gnu.org>

	* threads.lisp (process-unlock): fix TEXT call
	(yes-or-no-p-timeout): add
	* xthread.d: "extern inline" --> "static inline"

2006-10-21  "José H. Espinosa"  <jose.h.espinosa@gmail.com>
	    Sam Steingold  <sds@gnu.org>

	* makemake.in (MODULE_CPPFLAGS) [with_dynamic_modules]:
	remove a spurious space that caused
	"error: `CPPFLAGS' has changed since the previous run"

2006-10-19  Sam Steingold  <sds@podval.org>

	* makemake.in (docdir) [redhat]: replaced CLISP_VERSION with TOPDIR
	(VERSION, VERSION_SUFFIX, TOPDIR): moved up to the configurable section
	(lisplibdir): append TOPDIR to enable multiple CLISP version
	installed on the same system simultaneously
	Suggested by Nelson H. F. Beebe <beebe@math.utah.edu>

2006-10-18  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/fastcgi/fastcgi.lisp (FASTCGI:GETENV): can be called
	outside server loop.

2006-10-17  Sam Steingold  <sds@gnu.org>

	* configure (--install): when ${prefix} or ${exec_prefix} are not
	writable, run "make install" using su

2006-10-16  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp: use default-foreign-library

2006-10-16  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (finalize-model): accept an optional
	pointer arg
	(train): make model depend on problem so that problem cannot be
	GCed unless the model is GCed
	(make-problem): finalize the problem with destroy-problem

2006-10-16  Jörg Höhle  <hoehle@users.sourceforge.net>

	* eval.d (get_closure): regularize nearly duplicate gettext message
	* po/de.po, po/fr.po: fix several tilde format errors and
	translations.  Many translations still erroneous or missing.

2006-10-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src--distrib, doc--distrib): remove
	(tp-mail): add target to send a note to translation@IRO.UMontreal.CA

2006-10-16  Sam Steingold  <sds@gnu.org>

	module doc&interface unification
	* modules/i18n/i18n.lisp: do not lock
	CUSTOM:*SYSTEM-PACKAGE-LIST*, it is done by EXT:SAVEINITMEM
	* modules/matlab/matlab.lisp: add :MATLAB to *FEATURES*,
	add "MATLAB" to CUSTOM:*SYSTEM-PACKAGE-LIST*
	* modules/netica/netica.lisp: add :NETICA to *FEATURES*,
	add "NETICA" to CUSTOM:*SYSTEM-PACKAGE-LIST*
	* modules/zlib/zlib.lisp: do not lock "ZLIB",
	it is done by EXT:SAVEINITMEM

2006-10-15  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (MODULES): add gtk2
	* modules/gtk2: new module based on http://dgym.homeunix.net/clisp-gtk2/

2006-10-13  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.41 release (Friday the 13th!)

2006-10-13  Sam Steingold  <sds@gnu.org>

	* init.lisp, compiler.lisp: replaced
	FFI::*DEFAULT-FOREIGN-LIBRARY* with FFI::*FOREIGN-LIBRARY*
	* foreign1.lisp (DEFAULT-FOREIGN-LIBRARY): new macro, set
	FFI::*FOREIGN-LIBRARY* inside EVAL-WHEN

2006-10-13  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (fullinfo_firsttable): avoid a gcc warning

2006-10-13  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): call NOTE-C-VAR and
	NOTE-C-FUN depending on the value of library at run time, not
	macroexpansion time

2006-10-13  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/Makefile (svm.so): pass -fPIC to $(CXX)

2006-10-12  Sam Steingold  <sds@podval.org>

	fix bug#1575946: broken COMPILE of APPLY in LABELS
	* compiler.lisp (c-APPLY): handle not-yet compiled local functions

2006-10-12  Sam Steingold  <sds@podval.org>

	* foreign1.lisp (*default-foreign-library*): defvar and export
	(get-assoc): new helper
	(DEF-C-VAR, DEF-CALL-OUT): use *DEFAULT-FOREIGN-LIBRARY* as the
	default :LIBRARY argument
	* compiler.lisp (with-compilation-unit): bind *DEFAULT-FOREIGN-LIBRARY*
	* init.lisp (*default-foreign-library*): init & proclaim special
	(load): bind *DEFAULT-FOREIGN-LIBRARY*
	* modules/libsvm/libsvm.lisp: set *DEFAULT-FOREIGN-LIBRARY* at top-level
	instead of passing (:LIBRARY ...) to each DEF-CALL-OUT

2006-10-12  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c (fcgi_env):
	Fix memory leak via :malloc-free allocation, check malloc(),
	untabify, reindent, small Lisp and C tweaks.

2006-10-12  Sam Steingold  <sds@gnu.org>

	* configure.in: call AC_CONFIG_AUX_DIR, AC_PROG_LIBTOOL,
	AC_LIBTOOL_WIN32_DLL

2006-10-12  Sam Steingold  <sds@gnu.org>

	* libcharset/build-aux/config.guess, libcharset/build-aux/config.sub:
	* libcharset/build-aux/install-sh, libcharset/build-aux/ltmain.sh:
	* ffcall/build-aux/config.guess, ffcall/build-aux/config.sub:
	* ffcall/build-aux/ltmain.sh, m4/libtool.m4: update
	* build-aux/config.dynamic: replace with ...
	* build-aux/ltmain.sh: add

2006-10-11  Sam Steingold  <sds@podval.org>

	fix FFI callbacks, broken since the 2005-10-02 patch
	* lispbibl.d (mallocing, nomalloc): declare for clisp.h
	* foreign.d (mallocing, nomalloc): declare global
	(converter_malloc_t): remove one level of indirection
	* foreign1.lisp (convert-to-foreign-C, note-c-call-in): output
	convert_to_foreign() with the appropriate 4th argument

2006-10-10  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (predict-probability): prob_estimates
	is a DOUBLE-FLOAT vector, not an INT one

2006-10-10  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main): fix handling of "--" option terminator
	Reported by François-René ÐVB Rideau <fahree@gmail.com>

2006-10-10  Sam Steingold  <sds@podval.org>

	* clhs.lisp (start-mesasge): helper extracted from read-from-file
	(read-from-file): use it
	* modules/libsvm/libsvm.lisp (load-problem, save-problem): ditto

2006-10-09  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (problem-y-n, problem-x-n): add
	(problem-list, problem-slots): remove
	(cross-validation): call `check-parameter'

2006-10-09  John Hinsdale  <hin@alma.com>

	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c, fastcgi.h:
	New function FASTCGI:ENV to return the entire environment
	Useful enhancement, suggested by Don Cohen

	* modules/fastcgi/fastcgi.lisp:
	Compatible behavior to EXT:GETENV, behaving appropriately
	based on "true CGI" vs. "FastCGI" mode.

2006-10-08  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp (problem-slots, problem-list): add
	(problem-l, problem-y, problem-x): use `problem-slots'
	(save-problem): use `problem-list'

2006-10-05  Sam Steingold  <sds@gnu.org>

	* modules/libsvm/libsvm.lisp: use C-POINTER instead of C-PTR to
	avoid needless conversions between Lisp and C
	(destroy-parameter, destroy-problem): pass :FULL T to FOREIGN-FREE
	to match ALLOCATE-DEEP
	(finalize-model): new function, use SET-FOREIGN-POINTER to avoid
	the "invalidating session pointer" error
	Suggested by Jörg Höhle

2006-10-05  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnu-distrib): use basename to strip off
	../archives/<VER>/
	(GPG): --yes, not -yes

2006-10-05  Sam Steingold  <sds@podval.org>

	merged LOOKUP-FOREIGN-FUNCTION & FOREIGN-LIBRARY-FUNCTION into
	FIND-FOREIGN-FUNCTION; LOOKUP-FOREIGN-VARIABLE &
	FOREIGN-LIBRARY-VARIABLE into FIND-FOREIGN-VARIABLE
	* foreign.d (check_foreign_function_type): new function
	(FOREIGN-FUNCTION): use it
	(lookup_foreign_variable): extract from LOOKUP-FOREIGN-VARIABLE
	(LOOKUP-FOREIGN-VARIABLE): use it (kept as legacy to avoid
	changing O(version))
	(FIND-FOREIGN-VARIABLE): new function, calls either
	lookup_foreign_variable or foreign_library_variable
	(lookup_foreign_function): extract from LOOKUP-FOREIGN-FUNCTION
	(LOOKUP-FOREIGN-FUNCTION): use it (kept as legacy to avoid
	changing O(version))
	(FIND-FOREIGN-FUNCTION): new function, calls either
	lookup_foreign_function or foreign_library_function
	(find_library_by_name): rename from find_library
	(find_library_by_address): new function
	(check_library): rewrote to absorb most of FOREIGN-LIBRARY
	(FOREIGN-LIBRARY): use it
	(foreign_library_check, push_foreign_library_object): new helpers
	(foreign_library_variable): extract from FOREIGN-LIBRARY-VARIABLE,
	signal an error on platforms without dlsym
	(FOREIGN-LIBRARY-VARIABLE): use it (kept as legacy to avoid
	changing O(version))
	(foreign_library_function): extract from FOREIGN-LIBRARY-FUNCTION,
	signal an error on platforms without dlsym
	(FOREIGN-LIBRARY-FUNCTION): use it (kept as legacy to avoid
	changing O(version))
	* foreign1.lisp (DEF-C-VAR): use FIND-FOREIGN-VARIABLE instead of
	FOREIGN-LIBRARY-VARIABLE and LOOKUP-FOREIGN-VARIABLE
	(DEF-CALL-OUT, DEF-LIB-CALL-OUT): use FIND-FOREIGN-FUNCTION
	instead of FOREIGN-LIBRARY-FUNCTION and LOOKUP-FOREIGN-FUNCTION
	* constsym.d, subr.d (find_foreign_variable)
	(find_foreign_function): add

2006-10-03  Sam Steingold  <sds@gnu.org>

	* modules/libsvm: new module to interface to LibSVM
	http://www.csie.ntu.edu.tw/~cjlin/libsvm

2006-10-03  Sam Steingold  <sds@gnu.org>

	fix bug#1569234: on some platforms SUBR is not a record
	* documentation.lisp (function-documentation)
	(set-function-documentation): do not fallthrough on subr

2006-10-01  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (release): new target
	(gnu-distrib): pass --use-agent -yes to gpg

2006-09-23  Sam Steingold  <sds@podval.org>

	* version.sh: clisp 2.40 release

2006-10-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (hln): do NOT use $(SHELL) and
	--cache-file=../config.cache to avoid error "`CFLAGS' has changed
	since the previous run" (this reverts the 2006-07-17 patch)

2006-10-01  Sam Steingold  <sds@gnu.org>

	* documentation.lisp (function-documentation)
	(set-function-documentation): handle FSUBR

2006-09-29  Sam Steingold  <sds@podval.org>

	* sequence.d (end_minus_start): new function
	(seq_filterop, remove_op, delete_op, seq_duplicates)
	(substitute_op): use it

2006-09-28  Sam Steingold  <sds@podval.org>

	fix bug#1567186: set-difference ... :test 'equalp
	* defs1.lisp (list-to-ht): there is no separate fasthash &
	stablehash for EQUALP

2006-09-27  Sam Steingold  <sds@podval.org>

	fix bug#1566466: assoc error when combining compiled and
	interpreted code
	* compiler.lisp (declared-optimize): do not use ASSOC because a
	combination of interpreted and compiled code - e.g., via
	the (COMPILE) declaration - will break since the declarations in
	the interpreted code are not canonicalized

2006-09-26  Sam Steingold  <sds@podval.org>

	* spvw.d (init_symbol_functions): fix g++ compilation
	* record.d (CLOSURE-DOCUMENTATION, CLOSURE-LAMBDA-LIST): ditto
	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): ditto
	* lispbibl.d (chart, as_chart): ditto, as recommended by
	http://groups.google.com/group/comp.lang.c++/msg/a81d13be2aa78176

2006-09-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (publish_host_data): do-not-resolve-p in
	SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL behaves again as
	documented, like prior to inversion introduced 2005-12-14.

2006-09-19  Sam Steingold  <sds@podval.org>

	* foreign.d (convert_from_foreign, convert_to_foreign):
	check data==NULL and issue an error instead of a segfault

2006-09-15  Sam Steingold  <sds@podval.org>

	more meaningful error message on top-level READ with a non-NIL
	recursive-p argument
	* io.d (check_read_reference_table): new function
	(make_references, lookup_label): use it

2006-09-10  Sam Steingold  <sds@podval.org>

	* modules/rawsock/configure.in (net/if.h): need <sys/types.h> on *BSD
	* modules/rawsock/rawsock.c (RAWSOCK:IFADDRS): also require <net/if.h>
	(check_iff): add *BSD macros

2006-09-10  Sam Steingold  <sds@podval.org>

	fix bug#1555096: cannot create pathnames with :wild-inferiors
	* pathname.d (PARSE-NAMESTRING) [WIN32_NATIVE]: when converting
	/cygdrive/c to C: check that the first directory component is a string
	Thanks to Yaroslav Kavenchuk <kavenchuk@tut.by> for debugging.

2006-09-09  Sam Steingold  <sds@podval.org>

	* modules/rawsock/rawsock.c (sockaddr_to_lisp): add
	(RAWSOCK:IFADDRS): implement
	* modules/rawsock/sock.lisp (ifaddrs): add defstruct

2006-09-09  Sam Steingold  <sds@podval.org>

	* io.d (fehler_invalid_value): new function
	(make_references, lookup_label, circle_p): use it

2006-09-07  Sam Steingold  <sds@podval.org>

	* modules/rawsock/sock.lisp (open-unix-socket, open-unix-socket-stream):
	export; fix socket calls (:AF_UNIX -> :UNIX, :SOCK_STREAM -> :STREAM)

2006-09-07  Sam Steingold  <sds@podval.org>

	* foreign.d (FOREIGN-LIBRARY-FUNCTION): fix last patch
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2006-09-05  Sam Steingold  <sds@podval.org>

	* modules/rawsock/rawsock.c (RAWSOCK:IF-NAME-INDEX): new function

2006-09-03  Sam Steingold  <sds@podval.org>

	When the OPTIMIZE SPACE level is low enough, keep function
	documentation and lambda list.
	* compiler.lisp (make-closure): accept documentation and pass it
	on to SYS::%MAKE-CLOSURE
	(parse-optimize-quality): do not support interpreted code (reverses
	the 2005-02-11 patch)
	(fnode): add slots LAMBDA-LIST and DOCUMENTATION
	(c-LAMBDABODY): fill them
	(create-fun-obj): pass them to MAKE-CLOSURE when the OPTIMIZE
	SPACE level is right, using...
	(non-user-symbol-p, generatedp): new functions
	... to avoid wasting space for gensyms and lambdas
	* constobj.d (version): bump
	* constsym.d (closure_documentation, closure_set_documentation)
	(closure_lambda_list): add
	* describe.lisp (describe-object@FUNCTION): use
	DESCRIBE-ARGLIST and DESCRIBE-DOCUMENTATION
	(arglist): use SYS::CLOSURE-LAMBDA-LIST
	(describe-arglist, describe-documentation): add
	(describe-signature): remove
	* documentation.lisp (function-documentation): use
	SYS::CLOSURE-DOCUMENTATION and Foreign-Function properties
	(documentation@symbol): use it
	(set-function-documentation): use SYS::CLOSURE-SET-DOCUMENTATION
	and Foreign-Function properties
	((setf documentation)@symbol): use it
	* eval.d (parse_dd): do not call NOTE-OPTIMIZE (reverses the
	2005-02-11 patch) because local DECLARE should not change the
	global OPTIMIZE settings
	* foreign.d (LOOKUP-FOREIGN-FUNCTION, FOREIGN-LIBRARY-FUNCTION):
	accept an additional PROPERTIES argument
	* foreign1.lisp (DEF-CALL-OUT): pass PROPERTIES to
	LOOKUP-FOREIGN-FUNCTION and FOREIGN-LIBRARY-FUNCTION,
	do not call (SETF DOCUMENTATION)
	* init.lisp (defmacro, defun): do not call SYSTEM::%SET-DOCUMENTATION
	* io.d (CLOSURE-READER): consts is a list, expect optional
	LAMBDA-LIST and DOCUMENTATION
	(pr_cclosure_lang): print consts as a list,
	also print LAMBDA-LIST and DOCUMENTATION, if any
	* lispbibl.d (Ffunction): add ff_properties slot
	(Cclosure_last_const, ccv_flags_lambda_list_p)
	(ccv_flags_documentation_p): new CPP macros: use bit(2) as an
	indicator for DOCUMENTATION and bit(1) for LAMBDA-LIST
	* record.d (CLOSURE-CONSTS): use them to keep DOCUMENTATION
	and LAMBDA-LIST separate from consts
	(%MAKE-CLOSURE): accept LAMBDA-LIST and DOCUMENTATION
	(MAKE-CONSTANT-INITFUNCTION): pass 6 arguments to %MAKE-CLOSURE
	(CLOSURE-DOCUMENTATION, CLOSURE-SET-DOCUMENTATION)
	(CLOSURE-LAMBDA-LIST): implement
	* spvw_debug.d (TheCclosure_, Cclosure_length_): add
	* subr.d (make_closure, lookup_foreign_function)
	(foreign_library_function): update
	(closure_documentation, closure_set_documentation)
	(closure_lambda_list): add

2006-09-03  Sam Steingold  <sds@podval.org>

	* configure: accept FOO=BAR argument to set the shell variable

2006-09-03  Stephen Compall  <s11001001@users.sourceforge.net>
	Sam Steingold  <sds@podval.org>

	fix bug#1550803: make-pathname ignores explicit :DIRECTORY NIL
	* pathname.d (merge_dirs, MERGE-PATHNAMES): :DIRECTORY NIL
	overrides :DEFAULTS

2006-09-03  Magnus Henoch  <mange@freemail.hu>
	Sam Steingold  <sds@podval.org>

	* ffcall/callback/trampoline_r/proto.c,
	* ffcall/callback/vacall_r/vacall-powerpc.c (env) [__NetBSD__]:
	use r13 instead of r11
	* ffcall/callback/vacall_r/Makefile.in (vacall-powerpc.lo): depend
	on vacall-powerpc-netbsd.s
	* ffcall/callback/vacall_r/vacall-powerpc-netbsd.s: add

2006-08-24  Sam Steingold  <sds@podval.org>

	* clhs.lisp (*browsers*): add :FIREFOX, :FIREFOX-WINDOW, :FIREFOX-TAB,
	:NETSCAPE-TAB, :MOZILLA-TAB; rename :NETSCAPE-REMOTE and
	:MOZILLA-REMOTE to :NETSCAPE-WINDOW and :MOZILLA-WINDOW respectively

2006-08-15  Sam Steingold  <sds@podval.org>

	* Makefile.devel (update-docbook-utils): delegate to doc/Makefile

2006-08-15  Sam Steingold  <sds@podval.org>

	support case-sensitive packages
	* modprep.lisp (*package-properties*): new parameter
	(defmodule-p): accept module properties as the 3rd argument
	(case-sensitive-package-p): new function
	(string-upcase-verbose): use it

2006-08-10  Sam Steingold  <sds@podval.org>

	fix bug#1538333: ADJUST-ARRAY on non-adjustable vectors
	without a fill pointer
	* array.d (fehler_no_fillp): new function
	(get_fill_pointer): use it
	(ADJUST-ARRAY): use it to signal an error instead of creating a new
	array with fill pointer from an array without one

2006-08-10  Sam Steingold  <sds@podval.org>

	support PCREv6 pcre_dfa_exec()
	* modules/pcre/cpcre.c (pcre_error): handle DFA errors
	(pcre_exec_flags): handle DFA flags
	(PCRE-EXEC): accept :WORK-SPACE :DFA :PARTIAL :DFA-SHORTEST :DFA-RESTART
	when pcre_exec returns 0, retry with doubled ovector_size
	* modules/pcre/configure.in: check for pcre_dfa_exec

2006-08-01  Sam Steingold  <sds@podval.org>

	* makemake.in (XCFLAGS) [ia64]: no special treatment is necessary
	anymore, according to Dr. Werner Fink <werner@suse.de> in
	<http://article.gmane.org/gmane.lisp.clisp.general:11358>

2006-08-01  Sam Steingold  <sds@podval.org>

	* spvw_memfile.d (loadmem_from_handle): avoid a GCC warning

2006-08-01  John Hinsdale  <hin@alma.com>

	* modules/oracle/oracle.lisp:  Fix incorrect loop termination and
	premature advancing of database cursor in ORACLE:FETCH-ALL
	Thanks to Feng Hou <houfen@gmail.com> for report, test case and fix.

2006-07-31  Sam Steingold  <sds@podval.org>

	* modules/berkeley-db/bdb.c (asciz_to_string0): turn into a CPP macro
	this fixes the NO_UNICODE build (the encoding argument is not evaluated)
	Reported by Reini Urban <rurban@x-ray.at>

2006-07-31  Sam Steingold  <sds@podval.org>

	* spvw.d (find_name): reorder conditionals for WIN32_NATIVE
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2006-07-27  Sam Steingold  <sds@podval.org>

	fix bug#1482533: print-object built-in object: no-applicable-method
	* clos-print.lisp (print-object): add a method for built-in objects

2006-07-27  Sam Steingold  <sds@podval.org>

	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): made restartable

2006-07-26  Sam Steingold  <sds@podval.org>

	fix bug#1529244: rawsock is broken on big-endian
	* socket.d (resolve_host): use UI_to_LEbytes() instead of I_to_uint32()
	for uint32 argument so that it will work on big-endian machines
	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): ditto

2006-07-26  Sam Steingold  <sds@podval.org>

	* configure, makemake.in: accept --elispdir and install emacs
	files there (datadir/emacs/site-lisp/ by default)

2006-07-25  Sam Steingold  <sds@podval.org>

	* configure: when CONFIG_SHELL is bash and /bin/sh is not, re-exec the
	configure script with CONFIG_SHELL to enable sourcing of config.cache

2006-07-25  Dr. Werner Fink  <werner@suse.de>
	Sam Steingold  <sds@podval.org>

	fix executable images on ia64
	* spvw_memfile.d (loadmem_from_handle): when mem_searched, call
	set_file_offset(mem_start), not set_file_offset(0)

2006-07-25  Sam Steingold  <sds@podval.org>

	fix bug#1526448: Reinitialization of class does not call
	finalize-inheritance
	* clos-class3.lisp (reinitialize-instance-<defined-class>): call
	FINALIZE-INHERITANCE
	* gray.lisp (fundamental-stream): bind CLOS::*ALLOW-MIXING-METACLASSES*
	also with EXT:COMPILER-LET; remove EVAL-WHEN

2006-07-25  Sam Steingold  <sds@podval.org>

	fix bug#1528201: sigsegv: make-instance of named anonymous class
	* clos-package.lisp: import sys::check-symbol
	* clos-class1.lisp (shared-initialize-<potential-class>): use it

2006-07-24  Sam Steingold  <sds@podval.org>

	* spvw.d (find_name) [!RTLD_DEFAULT]: emulate RTLD_DEFAULT
	whenever it is not defined (e.g., on AIX in addition to FreeBSD)
	(libc_handle): defined at static inside find_name()
	Reported by Nirendra Maharaj <nirendram@fastmail.fm>

2006-07-23  Sam Steingold  <sds@podval.org>

	* modules/syscalls/calls.c (POSIX::USER-INFO):
	use S(Kdefault) instead of `:DEFAULT`

2006-07-21  Sam Steingold  <sds@podval.org>

	* modules/syscalls/calls.c (POSIX::STAT-VFS): require
	HAVE_SYS_STATVFS_H in addition to HAVE_STATVFS

2006-07-20  Sam Steingold  <sds@podval.org>

	fix bug#1516684: initially not executed in loop
	* loop.lisp (loop-initialization): new slot preamble
	(revadd): new macro
	(expand-loop): merge INITIALLY-CODE and STARTUP-CODE into a single
	annotated list PREAMBLE (elements are marked on whether they come
	from :INITIALLY or :START) - this ensures that the initialization
	and :INITIALLY forms are evaluated in the right order

2006-07-19  Sam Steingold  <sds@podval.org>

	* makemake.in (encflags): make -E 1:1 the first argument to ensure
	that no encoding variable is ever left as ASCII (the default for
	the C locale)

2006-07-19  Sam Steingold  <sds@podval.org>

	fix bug#1494059: open-url fails to recognize file:/// (unix)
	* clhs.lisp (open-url): restore the leading #\/ on unix
	[win32|cygwin]: try the version without the leading #\/ first

2006-07-17  Sam Steingold  <sds@podval.org>

	* makemake.in (hln): use $(SHELL) and --cache-file=../config.cache

2006-07-17  Sam Steingold  <sds@podval.org>

	* Makefile.devel (REL, GNU_SYM): new variables
	(upload): also upload symlink directive
	(gnu-distrib): also create symlink directive
	(tag-release): new target

2006-07-16  Sam Steingold  <sds@podval.org>

	* version.sh: clisp 2.39 release

2006-07-14  Thiemo Seufer  <ica2_ts@csv.ica.uni-stuttgart.de>
	Sam Steingold  <sds@podval.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL):
	re-enable FFI for mips/mipsel
	http://article.gmane.org/gmane.lisp.cl-debian/1493

2006-07-14  Peter Van Eynde  <pvaneynd@debian.org>
	Sam Steingold  <sds@podval.org>

	fix bug#1506857: build fails with gcc-4.1 on ia64
	* makemake.in (XCFLAGS) [ia64]: -O0, not -O2

2006-06-30  Sam Steingold  <sds@podval.org>

	* modules/syscalls/posix.lisp (ffs): add a Lisp implementation of
	http://www.opengroup.org/onlinepubs/009695399/functions/ffs.html

2006-06-30  Sam Steingold  <sds@podval.org>

	* configure, makemake.in: accept --with-gmalloc
	* configure.in: do not call CL_GMALLOC
	* m4/gmalloc.m4: remove
	* malloc/getpagesize.h, malloc/gmalloc.c: update from Emacs

2006-06-30  Sam Steingold  <sds@podval.org>

	* makemake.in (anymodule): use $(SHELL) to run sub-configure scripts

2006-06-29  Sam Steingold  <sds@podval.org>

	use symbolic error codes when possible
	* modules/berkeley-db/bdb.c (bdb_errno): new checker
	* modules/berkeley-db/dbi.lisp (bdb-error): rename "number" to "code"

2006-06-29  Sam Steingold  <sds@podval.org>

	* modules/rawsock/sock.lisp: import EXPORTING:DEFINE-CONDITION

2006-06-29  Sam Steingold  <sds@podval.org>

	* modules/berkeley-db/bdb.c (BDB:DBC-GET): fix last patch -
	accept :READ-COMMITTED and :READ-UNCOMMITTED

2006-06-29  Sam Steingold  <sds@podval.org>

	use gai_strerror() to signal errors in getaddrinfo() and getnameinfo()
	* modules/rawsock/rawsock.c (error_eai): new function
	(RAWSOCK::GETNAMEINFO, RAWSOCK::GETADDRINFO): use it
	* modules/rawsock/sock.lisp (eai): new condition type
	* modules/rawsock/configure.in: check for gai_strerror()

2006-06-29  Sam Steingold  <sds@podval.org>

	* modules/syscalls/calls.c (POSIX::GROUP-INFO, POSIX::USER-INFO):
	set errno to 0 before system calls to separate errors from "not found"

2006-06-27  Sam Steingold  <sds@podval.org>

	* m4/test.m4: use sub-shell "()" instead of "eval" (needed on Solaris)

2006-06-27  Sam Steingold  <sds@podval.org>

	* m4/bold.m4: from libsigsegv
	* configure.in, modules/berkeley-db/configure.in:
	* modules/clx/new-clx/configure.in, modules/dirkey/configure.in:
	* modules/i18n/configure.in, modules/pari/configure.in:
	* modules/pcre/configure.in, modules/postgresql/configure.in:
	* modules/rawsock/configure.in, modules/readline/configure.in:
	* modules/regexp/configure.in, modules/syscalls/configure.in:
	* modules/wildcard/configure.in, modules/zlib/configure.in:
	use BOLD_MSG instead of AC_MSG_NOTICE

2006-06-23  Sam Steingold  <sds@podval.org>

	* modules/syscalls/calls.c (POSIX::PATHCONF): new function

2006-06-21  Sam Steingold  <sds@podval.org>

	fix bug#1426388: rawsock :end vs. :size confusion
	* charstrg.d (test_vector_limits): no return value, remove just 2
	STACK elements: :START and :END (not vector)
	(test_string_limits_ro): adjusted the call to test_vector_limits()
	* encoding.d (CONVERT-STRING-TO-BYTES): ditto
	* lispbibl.d (test_vector_limits): update prototype
	(stringarg, test_vector_limits): export to clisp.h
	* modules/rawsock/rawsock.c (parse_buffer_arg, check_iovec_arg):
	use test_vector_limits()
	update their callers because now parse_buffer_arg() and
	check_iovec_arg() remove :START and :END from STACK

2006-06-20  Sam Steingold  <sds@podval.org>

	fix bug#1491252: i18n does not build on cf:alpha
	* utils/modprep.lisp (*tag-length-limit*): new variable
	(init-to-tag): use it to limit the size of C identifiers

2006-06-19  Sam Steingold  <sds@podval.org>

	* makemake.in (CLISP_VERSION): remove, use TOPDIR instead
	(VERSION_SUFFIX): new user variable for custom distributions

2006-06-19  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c: call OCILogoff so as to not leak connections
	Thanks to Feng Hou <houfen@gmail.com> for report and patch.

2006-06-18  Peter Van Eynde  <pvaneynd@debian.org>
	Sam Steingold  <sds@podval.org>

	fix bug#1507628: #define unused (void) breaks clisp 2.38 on arm
	* modules/syscalls/calls.c (unused): undefine before #include <signal.h>

2006-06-15  Sam Steingold  <sds@podval.org>

	* m4/test.m4: redirect test output to log, not /dev/null

2006-06-15  Sam Steingold  <sds@podval.org>

	fix bug#1407763: (disassemble 'car) hangs on openpower-linux1
	* spvw.d (init_symbol_values) [UNIX_LINUX & POWERPC]: set
	SYS::*DISASSEMBLE-USE-LIVE-PROCESS* to NIL

2006-06-14  Sam Steingold  <sds@podval.org>

	fix bug#1497226: clisp/src/m4/x11.m4 fails to detect x11 on FC5
	* m4/x11.m4: remove
	* configure.in, makemake.in, modules/clx/new-clx/Makefile.in:
	* modules/clx/new-clx/configure.in, modules/clx/new-clx/link.sh.in:
	use AC_PATH_XTRA instead of CL_FIND_X
	This reverts parts of the 2005-09-16 patch

2006-06-14  Sam Steingold  <sds@podval.org>

	* foreign1.lisp (ffi-module@constant-table): fix :value declaration
	(DEF-CALL-OUT): fix a typo in the 2006-01-30 patch, this fixes
	bug#1483902: build error in ffi modules

2006-06-14  Sam Steingold  <sds@podval.org>

	* modules/bindings/win32/win32.lisp: add clipboard access functions

2006-05-30  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c: Support for Oracle 10g date/time types

2006-05-29  Sam Steingold  <sds@podval.org>

	* modules/pari/pari.lisp (pari-nil): remove, gnil not found in pari CVS

2006-05-29  Sam Steingold  <sds@podval.org>

	* modules/syscalls/configure.in: remove CL_LSTAT

2006-05-23  Bruno Haible  <bruno@clisp.org>

	* unix.d (gettimeofday): Remove workaround for Cygwin bug. It was
	fix on 1997-05-27.

2006-05-20  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Treat DragonFly BSD like FreeBSD.
	* asmi386.hh (DECLARE_FUNCTION): Likewise.

2006-05-19  Sam Steingold  <sds@podval.org>

	* list.d (LIST-LENGTH-IN-BOUNDS-P): fix last fix

2006-05-18  Sam Steingold  <sds@podval.org>

	* stream.d (TERMINAL-RAW) [!KEYBOARD]: fix compilation

2006-05-17  Sam Steingold  <sds@podval.org>

	* list.d (LIST-LENGTH-IN-BOUNDS-P): fix g++ compilation,
	error was "jump to label 'no' crosses initialization of uintV m"

2006-05-17  Jörg Höhle  <hoehle@users.sourceforge.net>

	Readline completion now works with UTF-8 terminal encoding.
	* stream.d (lisp_completion) [UNICODE]: Convert byte index to
	string index.
	(make_keyboard_stream) [WIN32_NATIVE]: add missing begin_system_call()

2006-05-05  Jörg Höhle  <hoehle@users.sourceforge.net>

	* keyboard.lisp (exec-with-keyboard): Do not rely
	on *terminal-io*, call (terminal-raw *keyboard-input*)
	* stream.d (terminal-raw): Recognize *keyboard-input*.
	Reported by Dave Roberts <dave@vyatta.com>

2006-05-16  Bruno Haible  <bruno@clisp.org>

	* stream.d (finish_tty_output, force_tty_output) [UNIX_CYGWIN]:
	Ignore error EBADRQC.
	Fixes: clisp -norc -x '(sys::exit nil)' > /dev/null

2006-05-16  Bruno Haible  <bruno@clisp.org>

	* unix.d [UNIX_CYGWIN]: Undefine WIN32 after including <windows.h>.
	* lispbibl.d [UNIX_CYGWIN]: Likewise.

2006-05-10  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Respect the value of the environment variable CFLAGS
	given at configure time.

2006-05-07  Bruno Haible  <bruno@clisp.org>

	* spvwtabf.d (subr_tab_data): Align correctly also when using the
	SunPRO C compiler.
	* spvwtabs.d (symbol_tab_data): Likewise.

2006-05-15  Petr Salinger  <Petr.Salinger@t-systems.cz>
	    Jörg Höhle  <hoehle@users.sourceforge.net>

	* makemake.in (XCC_CREATESHARED): Recognize k*bsd* OS type.

2006-05-07  Bruno Haible  <bruno@clisp.org>

	* stream.d (FILE-POSITION): Fix handling of non-empty broadcast-streams
	(bug introduced on 2004-02-15).

2006-05-05  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/calls.c: do not use IPropertyStorage related
	constants not declared by modern mingw win32 headers.
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2006-05-03  Jörg Höhle  <hoehle@users.sourceforge.net>

	* spvw.d (quit): do not duplicate call to done_win32(), leave it
	to fini_lowest_level() alone.

2006-05-02  Jörg Höhle  <hoehle@users.sourceforge.net>

	Must use #if STACKCHECKxyz, not #if defined(STACKCHECKxyz)
	* eval.d (interpret_bytecode_): fix
	* lispbibl.d (with_saved_backtrace): fix
	* record.d (update_instance): fix

2006-04-29  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCFLAGS): Add -falign-functions=4 not only when
	debugging. But add it only for i386 CPUs.

2006-04-29  Bruno Haible  <bruno@clisp.org>

	* makemake.in (check-doc): Use lynx or curl as fallback when wget
	doesn't exist.

2006-04-29  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	GREAT socket speedup on win32
	* win32aux.d (interruptible_call_event, interruptible_return_event)
	(interruptible_routine, interruptible_arg)
	(interruptible_result): new static variables.
	(DoInterruptible): do not start new thread each time DoInterruptible
	is called. Use events to signal thread started once. Abort thread
	only when Ctrl-C or Ctrl-Break is pressed.
	(temp_interrupt_handler): close event handles as well as thread ones.
	(standbythreadf): "stand-by thread" function.
	(done_win32): terminate thread, close events.

2006-04-28  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/configure.in, modules/pari/configure.in:
	* modules/pcre/configure.in, modules/postgresql/configure.in:
	* modules/zlib/configure.in: add $LIB<mod> to $LIB (not $LTLIB<mod>)
	Reported by Albert Chin <clisp-devel@mlists.thewrittenword.com>
	in message <http://article.gmane.org/gmane.lisp.clisp.devel:15576>

2006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>

	* spvw_sigsegv.d (stackoverflow_handler) [UNIX]: libsigsegv doc
	says to restore normal signal mask prior to leaving handler.

2006-04-25  Jörg Höhle  <hoehle@users.sourceforge.net>

	Increase memory sizes for builds/tests with fix memory size.
	* spvw.d (parse_options): default -m 3MB
	* makemake.in (interpreted.mem, halfcompiled.mem): Grant 1800 KW.
	(stage/*.fas): Grant 1000 KW.

2006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>

	(code-char #\Rubout) has value 127 since at least 1998.
	* constobj.d (charname_127) [WIN32_PATHNAMES]: rename from
	charname_8bis, value unchanged.

2006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>

	* charstrg.d (charname_table_codes) [WIN32_PATHNAMES]: Add #\Esc
	as synonym to #\Escape for interoperability.
	* constobj.d (charname_27bis) [WIN32_PATHNAMES]: add
	Suggested by Frank Buss <fb@frank-buss.de>

2006-04-26  Sam Steingold  <sds@gnu.org>

	* modules/pcre/configure.in: fix a typo
	Reported by Albert Chin <clisp-devel@mlists.thewrittenword.com>

2006-04-26  Bruno Haible  <bruno@clisp.org>

	* build-aux/config.guess, build-aux/config.sub: Update to GNU version
	2006-04-26.

2006-04-21  Jörg Höhle  <hoehle@users.sourceforge.net>

	* spvw_garcol.d (gar_col_normal): delay close_some_files()
	until within gar_col_done().

2006-04-22  Bruno Haible  <bruno@clisp.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Recognize powerpc64 / powerpc
	and x86_64 / i386 depending on the compiler.
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Likewise.

2006-04-21  Bruno Haible  <bruno@clisp.org>

	* clos-class6.lisp ((setf class-valid-initargs-from-slots)): Clear
	caches when the value actually changes.
	Fixes bug#1470929, reported by Kim-Minh Kaplan.

2006-04-19  Bruno Haible  <bruno@clisp.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Map rs6000 -> powerpc,
	not vice versa.
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Likewise.
	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Update.

2006-04-16  Jörg Höhle  <hoehle@users.sourceforge.net>

	* describe.lisp (describe-object@global-symbol-macro):
	complete 2005-01-05.  When adding internal types, please
	update DESCRIBE for it uses ECASE (TYPE-OF x).

2006-03-31  Jörg Höhle  <hoehle@users.sourceforge.net>

	* debug.d (EXT:GC): use uintM_to_I(free_space()), not UL_to_I().

2006-03-19  Jörg Höhle  <hoehle@users.sourceforge.net>

	* xcharin.lisp (fehler-char-arg): fix format string.

2006-04-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (POWERPC): Rename from RS6000.
	* intlog.d: Update.

2006-04-15  Bruno Haible  <bruno@clisp.org>

	Report circular and dotted lists in macro forms and type specifiers.
	Allow circular and dotted lists in DESTRUCTURING-BIND.
	* list.d (sys::list-length-in-bounds-p)
	(sys::proper-list-length-in-bounds-p): New functions.
	* defmacro.lisp (macro-call-error): Provide different error messages
	for the case of a circular or dotted list.
	(%proper-list-p): New special variable.
	(make-length-test): Remove accept-dotted optional argument. Use
	%proper-list-p instead. If %proper-list-p is true, also emit a check
	whether the form is a proper list. If %proper-list-p is false, emit
	code that doesn't traverse the entire list.
	(make-macro-expansion): Bind %proper-list-p to t.
	* macros2.lisp (deftype): Bind %proper-list-p to t.
	* places.lisp (define-setf-expander): Bind %proper-list-p to t.
	* defs2.lisp (destructuring-bind): Bind %proper-list-p to nil.
	(destructing-error): Provide different error message for the case of a
	circular list.

2006-04-14  Bruno Haible  <bruno@clisp.org>

	Fix compiler macro handling.
	* cmacros.lisp (compiler-macro-function, (setf compiler-macro-function)):
	Simplify by use of get-funname-symbol.
	* compiler.lisp (expand-compiler-macro): Call the compiler-macro
	function directly, not through *macroexpand-hook*. Recognize special
	return value NIL.
	(c-form): If expand-compiler-macro did something, just recurse. Fixes
	bug#1420585.

2006-04-10  Bruno Haible  <bruno@clisp.org>

	Implement RFE#1415783.
	* clos-genfun3.lisp (make-generic-function): Add method-combination-p
	argument. If false, move the :method-combination keyword argument to
	the end.
	(analyze-defgeneric): Return method-combination-p as 5th value.
	(defgeneric): When :method-combination was not specified, move the
	:method-combination keyword argument to the end.
	(make-generic-function-form): Update.

2006-04-10  Bruno Haible  <bruno@clisp.org>

	Complete Sam's 2005-11-21 patch.
	* clos-class3.lisp (defclass): Verify that a slot's :ALLOCATION value
	is a symbol. Don't treat the symbol NIL specially.

2006-04-10  Bruno Haible  <bruno@clisp.org>

	* clos-class1.lisp: Undo read-macro hacks by Sam 2005-11-28.
	* clos-class3.lisp: Likewise.
	* clos-genfun2b.lisp: Likewise.
	* clos-genfun3.lisp: Likewise.
	Maintainability is more important than a few bytes of source code.
	The right place for unifying immutable strings across a file is io.d.

2006-04-10  Bruno Haible  <bruno@clisp.org>

	* clos-genfun3.lisp: Undo a de-internationalization by Sam 2005-11-28.
	Needed for French.

2006-04-10  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (ANSITESTS_CVS_ROOT): Update after savannah reorg.

2006-03-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* array.d (ADJUST-ARRAY) [HAVE_SMALL_SSTRING]: Fix bug#1445842
	ADJUST-ARRAY of 0-length adjustable string failed.
	Reported by David Tolpin

2006-03-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* misc.d (registry) [WIN32_NATIVE]: refix 2000-12-04,
	do not goto outside `with_string_0'.

2006-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>

	* spvw.d (init_memory) [DEBUG_SPVW]: fix stack depth reporting.

2006-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>

	* clhs.lisp: add #+ for documentation of optional packages.

2006-03-06  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-append): Don't optimize if form1 has the
	shape (QUOTE (SYS::UNQUOTE ...)). Fixes bug#1308444.
	Based on proposed fix by Matthew Cross <mcross@irobot.com>.

2006-03-03  Jörg Höhle  <hoehle@users.sourceforge.net>

	gcc-3.3.3 on Sparc64 barfs on ({ var x=y; {var z...; value;}})
	* intlog.d (I_logcount_I): remove superfluous second {} block.
	* arilev0.d (mulu32_64) [SPARC]: ditto.
	Reported by Magnus Henoch <mange@freemail.hu>

2006-03-01  Jörg Höhle  <hoehle@users.sourceforge.net>

	* defs2.lisp (destructuring-bind): Forgotten by 2004-05-23
	patch to allow () to match NIL in destructuring lambda lists.
	%ignored is no more, %null-tests is there.
	Reported by Rob Warnock <rpw3@rpw3.org> and
	Kaz Kylheku <kkylheku@gmail.com>

2006-02-28  Jörg Höhle  <hoehle@users.sourceforge.net>

	* time.d (%%TIME): complete 2004-11-27, use uintM with used_space().
	Reported by Don Cohen that TIME fails when allocated memory
	crosses the 4GB boundary.

2006-02-23  Sam Steingold  <sds@gnu.org>

	fix bug#1399376: Failure of socket tests on Mac OS X
	* socket.d (FILL0): new macro
	(with_host_port, connect_to_x_server, socket_getlocalname_aux)
	(socket_getpeername, create_server_socket_by_socket)
	(accept_connection): use it to zero-out sockaddr before use

2006-02-23  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (listen_byte_ia8_buffered): use persev_immediate as in
	listen_char_buffered() to avoid hanging on sockets.
	Reported by Don Cohen

2006-02-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (SOCKET-SERVER): revisit 2006-01-25, avoid calling
	create_server_socket_by_string() twice when interface is supplied.
	Reported by Don Cohen

2006-02-21  Jörg Höhle  <hoehle@users.sourceforge.net>

	Check compilation with MSVC6
	* win32aux.d (with_file_id): fix a typo from 2005-12-18.
	* makemake.in [win32msvc]: for MS shell quoting, use template
	echotab '$(RUN) -x "(print \"hi\")"'
	(libcharset.h) [win32msvc]: complete 2005-07-01 copying
	localcharset.h together with libcharset.h (no new dependency)

2006-02-05  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1388897: FFI:uint64 maps to long long when supported
	* foreign.d [HAVE_LONG_LONG]: use av_start_longlong,
	va_return_longlong etc.  Otherwise, continue to pass a struct of
	two uint32: this is compatible with MSVC's __int64 handling.

2006-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1421652: CPP macros using "do{}while(0)" do not
	work with statement arguments containing break or continue
	* lisparit.d (check_real_replacement, check_rational_replacement):
	remove break from calls to if_realp(), if_rationalp()

2006-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (foreign-address-unsigned): revisit last patch. Do not
	yet introduce uintP_to_I abstraction, use ulong_to_I() for now.

2006-02-03  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (foreign-address-unsigned, unsigned-foreign-address)
	[WIDE]: uintP does not fit into 32 bits, use I_to_UQ/UQ_to_I().
	Reported by James Bielman <jamesjb@jamesjb.com>

2006-02-02  Jörg Höhle  <hoehle@users.sourceforge.net>

	* ffcall/avcall, ffcall/vacall [HAVE_LONG_LONG]: complete switch
	from HAVE_LONGLONG to HAVE_LONG_LONG, bug#1385013
	* foreign.d [_MSC_VER]: Incidentally, this prevents
	#undef HAVE_LONGLONG in avcall.h with MSVC, so the FFI now
	provides FFI:UINT64/SINT64 conversions.

2006-01-30  Jörg Höhle  <hoehle@users.sourceforge.net>

	fix bug#1211847: preserve object identity of FFI types
	* foreign1.lisp (def-call-out): no side effects during macro-
	expansion, minimize number of calls to parse-c-type (from Sam
	Steingold's wishlist) and do not inline the value of
	parse-c-function, to preserve EQ tests (cf. foreign.d:equal_fvd).
	* foreign1.lisp (note-c-fun): change API, but I argue not ABI
	* foreign1.lisp (argvector-to-signature): remove

2006-01-26  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (saveinitmem): accept :DOCUMENTATION
	* constsym.d (image_doc): add
	* spvw.d (init_symbol_values): init it
	(usage): document -help-image
	(argv_actions): add argv_help_image
	(parse_options): handle -help-image
	(main_actions): ditto: print *IMAGE-DOC* and *SCRIPT*

2006-01-26  Sam Steingold  <sds@gnu.org>

	* spvw.d (main_actions): for "-x": use SYS::MAIN-LOOP instead of
	SYS::*DRIVER* so that even user images offer full CLISP functionality
	* constsym.d (main_loop): add

2006-01-26  Sam Steingold  <sds@gnu.org>

	SAVEINITMEM now accepts :SCRIPT argument that disables
	interpreting the first positional argument as the script name.
	* savemem.lisp (saveinitmem): accept :SCRIPT
	* constsym.d (*script*): add
	* spvw.d (init_symbol_values): init it
	(main_actions): when it is NIL, push the script argument onto
	*ARGS* to be processed by the image's init function

2006-01-26  Sam Steingold  <sds@gnu.org>

	* build-aux/config.sub, build-aux/config.guess: upgrade to 2006-01-02

2006-01-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (install) [cygwin]: clisp-<ver>.README goes to
	/usr/share/doc/Cygwin/, not to /usr/share/doc/clisp-<ver>/Cygwin/

2006-01-25  Sam Steingold  <sds@gnu.org>

	* stream.d (SOCKET-SERVER): avoid calling
	create_server_socket_by_string() twice when interface is supplied;
	restore the default interface to "0.0.0.0" for backwards compatibility

2006-01-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (EVERY_INCLUDES_H) [unix|win32gcc]: add unixconf.h

2006-01-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnu-distrib): new target
	(distrib): depend on gnu-distrib
	(upload): also upload to gnu.org

2006-01-24  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.38 release

2006-01-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean0): also remove *.core and *.stackdump

2006-01-23  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (find_memdump): when 'image size' fails,
	reset mem_start to -1

2006-01-22  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c, modules/berkeley-db/configure.in:
	support Berkeley DB 4.4

2006-01-22  Sam Steingold  <sds@gnu.org>

	fix bug#1412268: buffer overflow in stream handling code
	* w32shell.c (real_path): check length of namein

2006-01-22  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (find_memdump) [!LOADMEM_TRY_SEARCH]: disable
	find_marker()

2006-01-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (distrib): also depend on doc-distrib
	(SRC_DIST, SRC_DIST1): go to $(ARCHIVE)
	(doc-distrib, doc--distrib): new targets
	(upload): also upload $(DOC_DIST)
	(src-distrib): do not depend on potfiles because they are already
	created by "all" and thus should not be re-created by "src-distrib"

2006-01-20  Sam Steingold  <sds@gnu.org>

	* built.d (built_flags): report readline version

2006-01-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-exec-image): new target
	(CHECK_DEPS): add check-exec-image

2006-01-19  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (find_memdump): reduce the portion of
	memdump_header_t used as marker to comply with loadmem_from_handle();
	use an intermediate variable to ensure that the second argument to
	lseek(SEEK_END) is indeed negative

2006-01-18  Sam Steingold  <sds@gnu.org>

	speed-up image-in-executable loading
	* spvw_memfile.d (savemem_with_runtime): set mem_start if it was -1
	(savemem): append mem_start to the image
	(loadmem_from_handle): assume that the image end with mem_start
	use ABORT_SYS, ABORT_INI, ABORT_MEM instead of abort[123]
	(find_memdump): try to find mem_start at the end of the image first;
	use the time-consuming (~1sec) find_marker() as a last resort

2006-01-18  Sam Steingold  <sds@gnu.org>

	* execname.c (find_executable) [UNIX_CYGWIN32]: cygwin's
	realpath() does not append ".exe", so we have to do it here

2006-01-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (setup.hint) [cygwin]: depend on SUMMARY
	remove duplicate entries in the "require:" line

2006-01-18  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem_from_executable): check the return value
	of open_filename(), just in case cygwin breaks find_executable again

2006-01-18  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (bool_char_lconv): WARN instead of
	NOTREACHED when the value is invalid
	(CHAR_MAX): defined in <limits.h>, do not redefine it here

2006-01-16  Sam Steingold  <sds@gnu.org>

	* win32.d (HAVE_ICONV): Yaroslav Kavenchuk reports no problems
	with clisp/libiconv/mingw, so do not unconditionally disable ICONV
	here (reverts a part of the 2005-05-28 patch)

2006-01-16  Sam Steingold  <sds@gnu.org>

	* constsym.d, init.lisp (*eq-hashfunction*, *eql-hashfunction*)
	(*equal-hashfunction*): export from CUSTOM
	Reported by Tomas Zellerin <zellerin@gmail.com>

2006-01-13  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (saveinitmem): accept :norc
	* constsym.d (*norc*): add
	* spvw.d (init_symbol_values): init *norc*
	(main_actions): do not load RC-file if *norc* is non-NIL

2006-01-13  Sam Steingold  <sds@gnu.org>

	* spvw.d: executable image should load RC-file by default
	(parse_options): do not reset argv_norc when argv_memfile is NULL
	(init_memory): set argv_memfile to executable_name, not "self"
	(main_actions): check argv_memfile in addition to argv_norc when
	loading the RC-file

2006-01-13  Sam Steingold  <sds@gnu.org>

	Ensure that the executable image contains just one memdump
	* spvw_memfile.d (find_memdump): new function
	(mem_searched): new variable
	(savemem_with_runtime): call find_memdump if it has not been
	called already so that an image saved by an executable image
	called with -M does not include 2 images
	(loadmem_from_executable): call find_memdump(); close the handle

2006-01-12  Sam Steingold  <sds@gnu.org>

	use memdump_header as the marker instead of runtime_size
	for creating executable images
	* spvw.d (init_memory): remove marker and runtime_size
	* spvw_memfile.d (mem_start): new static, replaces runtime_size
	(savemem_with_runtime): when mem_start is 0, copy the whole executable
	(fill_memdump_header): extract from savemem()
	(savemem): use it
	(find_marker): moved here from utils/filesize.c
	(loadmem_from_executable): use it instead of runtime_size
	* makemake.in, _distmakefile: remove filesize
	* utils/filesize.c: remove

2006-01-12  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: look for
	<postgresql/postgres_ext.h> in addition to <postgres_ext.h>
	* modules/postgresql/postgresql.lisp: include either
	Reported by Jeff Bowman <wolfjb@bigfoot.com> that debian unstable
	installs all of the postgres include files in /usr/include/postgresql/

2006-01-12  Sam Steingold  <sds@gnu.org>

	fix bug#1399709: cannot append to a file
	the 2005-12-13 patch that fix bug#1379620 introduced this one
	* pathname.d (open_output_file): open handle WRONLY only on UNIX
	and only if the underlying file exists and is special; this allows
	buffer filling for regular files (there are no special files on WIN32)
	* stream.d (low_fill_buffered_handle): assume that a non-readable
	stream with a regular handle has a readable handle
	(position_file_buffered): reverse last patch

2006-01-11  Sam Steingold  <sds@gnu.org>

	fix bug#1402338: socket-status ignores microseconds in timeout
	* stream.d (sec_usec): fix a typo in TV_SEC

2006-01-07  Sam Steingold  <sds@gnu.org>

	make utils/filesize idempotent
	* utils/filesize.c: append file size to marker instead of
	overwriting it, write file size in hex
	* spvw.d (init_memory): use stroul() instead of atol()

2006-01-07  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (encode-universal-time): handle correctly early
	1900-01-01 GMT (which is 1899-12-31 EST)

2006-01-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [disable-mmap]: add -DNO_MULTIMAP_SHM
	-DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP

2006-01-05  Sam Steingold  <sds@gnu.org>

	fix bug#1395894: bad read from make-xterm-io-stream
	* modules/syscalls/posix.lisp (make-xterm-io-stream): fix bitrot

2005-12-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/syscalls/calls.c (POSIX:SYSLOG): use
	syslog(priority,"%s",string) to disable % processing and avoid crashes

2006-01-05  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp, modules/syscalls/posix.lisp: do not define
	impnotes documentation in lisp, do it in libdir/Symbol-Table.text

2006-01-04  Sam Steingold  <sds@gnu.org>

	* makemake.in: strip runtime on no-debug woe32
	because woe32 users do not have gdb anyway

2006-01-03  Sam Steingold  <sds@gnu.org>

	* utils/filesize.c (main): check that the marker is found just once

2006-01-03  Sam Steingold  <sds@gnu.org>

	* misc.d (clisp_setenv) [WIN32_NATIVE]: use setenv_via_environ()
	when value is "" because putenv("NAME=") unsets NAME instead of
	setting it to ""

2006-01-03  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language): pass NULL as the second
	argument to clisp_setenv() to unset a variable

2006-01-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (make-xterm-io-stream): accept :title

2006-01-03  Sam Steingold  <sds@gnu.org>

	* utils/filesize.c (find_marker): fread() returns size_t, not ssize_t

2006-01-03  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem_from_executable): use fd_read() instead
	of read() to fix woe32

2006-01-03  Sam Steingold  <sds@gnu.org>

	SAVEINITMEM can create standalone executables
	* spvw.d (runtime_size): new static
	(init_memory): when runtime_size is non-0, try to load image from
	the end of the executable, and set argv_memfile to "self"
	* spvw_memfile.d (savemem): accept exec_p, call savemem_with_runtime
	(savemem_with_runtime, loadmem_from_executable): new functions
	(CLOSE_HANDLE): new macro
	(loadmem, loadmem_from_handle): use it
	* configure.in: check for fchmod
	* execname.c (get_executable_name): new function,
	returns executable_name
	* lispbibl.d (savemem): update the prototype
	* makemake.in (UTILS): add filesize
	(lisp.run): call filesize
	(distrib) [!BINARY_DISTRIB]: distribute filesize.c
	* _distmakefile [!UNIX_BINARY_DISTRIB]: call filesize on executables
	* pathname.d, subr.d (SAVEMEM): accept EXEC-P
	* savemem.lisp (%saveinitmem): pass NIL as EXEC-P to SAVEMEM
	(saveinitmem): accept :EXECUTABLE
	* utils/filesize.c: new file, replace "my magic marker"
	with the file size in decimal

2006-01-02  Jörg Höhle  <hoehle@users.sourceforge.net>

	* spvw.d (parse_options): have lisp.run --version print information
	even without image file (no -M lispinit.mem).

2006-01-02  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (make_lisprun): new shortcut

2006-01-02  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.37 release

2006-01-02  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (documentation@symbol): handle uninterned symbols

2006-01-01  Sam Steingold  <sds@gnu.org>

	* constsym.d, execname.c, lispbibl.d, misc.d, pathname.d, spvw.d:
	* subr.d: remove HAVE_DISASSEMBLER

2006-01-01  Sam Steingold  <sds@gnu.org>

	better handle numbers that are exactly the midpoint between their
	possible binary approximations, like 1d23 (bug#1389060)
	* format.lisp (format-scale-exponent): use exact values as
	arguments to FORMAT-SCALE-EXPONENT-AUX

2006-01-01  Sam Steingold  <sds@gnu.org>

	* time.d (DEFAULT-TIME-ZONE) [WIN32]: decrease time_max by 24 so that
	the second call to seconds_west() will receive an acceptable argument

2006-01-01  Sam Steingold  <sds@gnu.org>

	* configure: replaced --list-modules with --help-modules
	and print more information

2005-12-27  Sam Steingold  <sds@gnu.org>

	* m4/make.m4 (cl_cv_gnu_make): send make error output to 5

2005-12-23  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (RLIMIT): never signal an error when
	"what" is missing and the alist is returned

2005-12-22  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, socket.d, stream.d: "interface" is a win32 keyword

2005-12-21  Jörg Höhle  <hoehle@users.sourceforge.net>

	* clhs.lisp (http-proxy): downcase environment variable http_proxy

2005-12-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-doc): explicitly check for the internet connection

2005-12-21  Sam Steingold  <sds@gnu.org>

	* m4/test.m4: use eval to avoid errors

2005-12-21  Sam Steingold  <sds@gnu.org>

	* configure.in: call CL_PROG_MAKE
	* m4/make.m4: add
	* makemake.in: benchmarks & --enable-maintainer-mode require GNU make

2005-12-21  Dr. Werner Fink  <werner@suse.de>

	fix bug#1376646: factorial broken on 64bit cpu
	* intmal.d (FN_fak_I): uintL is not uintV on 64-bit platforms

2005-12-19  Tomas Zellerin  <zellerin@gmail.com>

	* constsym.d: new keywords :INTERFACE, :BACKLOG
	* lispbibl.d, socket.d: create_server_socket split to
	create_server_socket_by_string and create_server_socket_by_socket
	* socket.d (bindlisten_via_ip): accept pointer to backlog
	* stream.d (SOCKET-SERVER): accept keywords :INTERFACE :BACKLOG
	* subr.d, subrkw.d (SOCKET-SERVER): changed signature

2005-12-19  Sam Steingold  <sds@gnu.org>

	* stream.d (find_open_file): fix compilation with gcc4

2005-12-18  Sam Steingold  <sds@gnu.org>

	base check_file_re_open() on unique file ID, not truenames that
	can be fooled by hard links
	* win32.d, unix.d (file_id, with_file_id, errno_t, handle_file_id)
	(file_id_eq): declare
	* win32aux.d, unixaux.d (with_file_id, handle_file_id)
	(file_id_eq): implement
	* pathname.d (check_file_re_open): use with_file_id & &find_open_file
	* stream.d (strm_channel_extrafields_t): add fid field
	(ChannelStream_file_id): new macro
	(find_open_file): implement
	(make_file_stream): fill ChannelStream_file_id

2005-12-16  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::FILE-STAT): use SIZEOF_INO_T to
	determine how to convert inode number to Lisp
	* configure.in: use CL_STAT instead of explicit checks
	* modules/syscalls/configure.in: ditto
	* m4/stat.m4 (CL_STAT): rename from CL_LSTAT;
	concentrate all sys/stat.h and sys/statvfs.h checks here

2005-12-16  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object@funcallable-standard-object):
	add the method
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-12-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (clisp.dvi, clisp.ps, clisp.pdf): I am sick of telling
	people to ignore clisp.dvi errors, so now these errors are ignored

2005-12-16  Dr. Werner Fink  <werner@suse.de>
	    Sam Steingold  <sds@gnu.org>

	* foreign.d (check_faddress_valid): do not declare inline, g++ 4
	cannot link global inline on linux
	* lispbibl.d (check_faddress_valid): ditto

2005-12-15  Sam Steingold  <sds@gnu.org>

	* stream.d (position_file_buffered): when the file is not
	readable, do not call buffered_nextbyte()

2005-12-15  Sam Steingold  <sds@gnu.org>

	* pathname.d (direction_symbol, check_file_re_open): add
	(open_file): use check_file_re_open() to ensure that we are not
	opening a file twice
	* constsym.d (file_error): add

2005-12-15  Sam Steingold  <sds@gnu.org>

	* socket.d (socket_getlocalname_aux, socket_getpeername): assume
	that unknown sa_family means local connection (AF_UNIX, AF_LOCAL)

2005-12-15  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (with-handle): fix

2005-12-15  Sam Steingold  <sds@gnu.org>

	* stream.d (publish_host_data): do not invoke test_socket_stream twice

2005-12-14  Sam Steingold  <sds@gnu.org>

	* stream.d (publish_host_data): fix STACK handling
	Reported by Lennart Staflin <lenst@lysator.liu.se>

2005-12-14  Sam Steingold  <sds@gnu.org>

	* spvw_objsize.d (objsize_iarray, objsize_s8string, objsize_s16string)
	(objsize_s32string, objsize_sstring): return uintM instead of uintL
	Reported by Dr. Werner Fink <werner@suse.de> on IA64 with g++

2005-12-13  Sam Steingold  <sds@gnu.org>

	fix bug#1379620: OPEN :DIRECTION :OUTPUT now creates
	write-only handles and handles named pipes correctly
	* stream.d (low_fill_buffered_handle): when the stream is not
	readable, do not try to read from it
	* pathname.d (open_output_file): accept wronly argument
	(open_file): pass wronly to open_output_file()

2005-12-12  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (defined_class_length): cast address to aint instead
	of ULONG to avoid the g++ warning "cast from pointer to integer of
	different size" on amd64

2005-12-12  Sam Steingold  <sds@gnu.org>

	* spvw.d: use while instead of dotimes and do/while instead of
	dotimesp to simplify debugging with gdb

2005-12-11  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (I_to_uint64, I_to_sint64) [!HAVE_FFI]: define for STREAM
	Reported by Lennart Staflin <lenst@lysator.liu.se> on MacOS X 10.3.9

2005-12-09  Sam Steingold  <sds@gnu.org>

	* constobj.d (type_hashtable_size): use ASH instead of FLOOR,
	use upper case uniformly

2005-12-09  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab): handle "." specially to save time

2005-12-09  Sam Steingold  <sds@gnu.org>

	* encoding.d (base64_range): declare "signed char" because we
	store -1 (triggers a bug on PowerPC where "char" = "unsigned char")
	Reported by Magnus Henoch <mange@freemail.hu>

2005-12-09  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4 (CL_READLINE): check for <readline/readline.h>

2005-12-09  Sam Steingold  <sds@gnu.org>

	* encoding.d (CHARSET-TYPEP): use Sstring_length instead of
	Svector_length for the range string because Svector_length returns
	non-0 value for "" on AMD64-Linux

2005-12-08  Sam Steingold  <sds@gnu.org>

	* misc.d (clisp_setenv): add a cast for C++ compilation

2005-12-08  Sam Steingold  <sds@gnu.org>

	* encoding.d (base64_range): do not use a literal string for
	initialization because it allocates an extra element for 0

2005-12-07  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (documentation@package): prepend (impnotes-root) to the doc

2005-12-07  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (*system-package-list*): use "COMMON-LISP"
	instead of "LISP"

2005-12-06  Sam Steingold  <sds@gnu.org>

	* m4/termcap.m4 (CL_TERMCAP): avoid "case x in (..) ;; esac"
	1-line syntax as it is not understood by the Solaris /bin/sh

2005-12-06  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (open-url): new function
	(ensure-clhs-map, ensure-impnotes-map): use it

2005-12-05  Sam Steingold  <sds@gnu.org>

	* m4/putenv.m4 (CL_PUTENV): check unsetenv() declared return value
	* misc.d (cat_env_var): value must be non-NULL
	(setenv_via_environ): extract from clisp_setenv()
	(clisp_setenv): use it to unset the variable

2005-12-05  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4 (CL_READLINE): pass filename_completion_function
	to CL_PROTO to avoid ugly messages

2005-12-05  Sam Steingold  <sds@gnu.org>

	* m4/x11.m4: fix overlapping messages, do not use broken CL_SILENT
	* m4/general.m4 (CL_SILENT): remove broken macro

2005-12-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (HSDEFAULT): drop trailing slash
	(clisp-1.html): substitute @PLATFORM@

2005-12-05  Sam Steingold  <sds@gnu.org>

	* inspect.lisp (inspect-frontend@:http): use UNWIND-PROTECT to
	ensure that SOCK and SERVER are closed
	Suggested by Tomas Zellerin <zellerin@gmail.com>

2005-12-05  Sam Steingold  <sds@gnu.org>

	* misc.d (clisp_setenv) [HAVE_UNSETENV]: use unsetenv

2005-12-04  Sam Steingold  <sds@gnu.org>

	* spvw.d (main_actions): remove the legacy warning about RC file
	name (_clisprc -> .clisprc) transition

2005-12-04  Sam Steingold  <sds@gnu.org>

	* m4/putenv.m4 (CL_PUTENV): check for unsetenv

2005-12-04  Sam Steingold  <sds@gnu.org>

	* makemake.in (UNAME_R): strip everything after [^A-Za-z0-9.]

2005-12-04  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4: fix last patch that was totally broken

2005-12-04  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.36 release

2005-12-04  Sam Steingold  <sds@gnu.org>

	* spvw_circ.d (get_circ_mark, get_circ_unmark):
	use the appropriate flavor of dotimes
	Reported by Peter Van Eynde <pvaneynd@debian.org> [on m68k]

2005-12-03  Sam Steingold  <sds@gnu.org>

	* pseudofun.d (base64_mblen, base64_mbstowcs, base64_wcslen)
	(base64_wcstombs, base64_range): declare

2005-12-03  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): print encodings

2005-12-03  Sam Steingold  <sds@gnu.org>

	* encoding.d (base64_range): fix for "-1" in table_base64

2005-12-02  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (encode-universal-time): revert part of the 2005-11-30
	patch: no need to adjust the return value of DEFAULT-TIME-ZONE
	* time.d (seconds_west): fix a bug in the last patch:
	now_gm and now_local must be structures, not pointers, because
	gmtime and localtime return pointers to the same memory ares.
	also note that seconds_west is NOT the same as (mktime(&now_gm) -
	mktime(&now_local)) during DST

2005-12-01  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): output more information for streams

2005-11-30  Sam Steingold  <sds@gnu.org>

	Fix a bug in ENCODE-UNIVERSAL-TIME that made it an imperfect
	inverse for DECODE-UNIVERSAL-TIME because it passed non-UT hours
	to DEFAULT-TIME-ZONE which required UT hours
	* time.d (seconds_west): new function, extracted from...
	(DEFAULT-TIME-ZONE): require 2 arguments: time in hours and UT-P
	call seconds_west() and then again if UT-P is false
	* subr.d (default_time_zone): requires 2 arguments
	* defs1.lisp (decode-universal-time, encode-universal-time):
	pass 2 arguments to DEFAULT-TIME-ZONE

2005-11-30  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c: include <limits.h> to define CHAR_MAX
	Reported by Magnus Henoch <mange@freemail.hu>

2005-11-30  Sam Steingold  <sds@gnu.org>

	fix bug#1369668: invalid slot :ALLOCATION causes segfault
	* record.d (ptr_to_slot): do not assume that slotinfo is valid,
	signal an error if it is not, accept slotname for error reporting
	(slot_using_class_up, SLOT-VALUE, SET-SLOT-VALUE, SLOT-BOUNDP)
	(SLOT-MAKUNBOUND, %SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
	(do_initialize_instance): pass slot to ptr_to_slot

2005-11-29  Sam Steingold  <sds@gnu.org>

	* misc.d (cat_env_var) [woe32]: putenv("FOO=") removes FOO,
	[posix]: putenv("FOO") removes FOO
	(clisp_setenv) [WIN32_NATIVE]: ignore ERROR_ENVVAR_NOT_FOUND when
	passing NULL value to SetEnvironmentVariableA()

2005-11-28  Sam Steingold  <sds@gnu.org>

	* init.lisp (loading-message): new function
	(load): use it
	* defs1.lisp (load-lpt-many, load-lpt-one): ditto
	(load-logical-pathname-translations): use search-file exclusively

2005-11-28  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (convert-to-foreign-C): add
	(note-c-call-in): use it

2005-11-28  Sam Steingold  <sds@gnu.org>

	* makemake.in (lispbibl.h): depend on unixconf.h

2005-11-28  Sam Steingold  <sds@gnu.org>

	* clhs.lisp, clos-class1.lisp, clos-class3.lisp, clos-genfun2b.lisp:
	* clos-genfun3.lisp, clos-methcomb2.lisp, compiler.lisp, defmacro.lisp:
	* defs1.lisp, describe.lisp, format.lisp, type.lisp, condition.lisp:
	read-macro micro-optimizations

2005-11-26  Sam Steingold  <sds@gnu.org>

	* stream.d (error_eof_p): new function; on woe32, WSAESHUTDOWN is
	signaled when the other end is shutdown, so take it to mean EOF
	(low_read_array_unbuffered_handle, low_fill_buffered_handle)
	(low_read_unbuffered_socket, low_listen_unbuffered_socket)
	(low_read_array_unbuffered_socket, low_fill_buffered_socket): use it
	Reported by Vasilis M. <vasilism@hotmail.com>

2005-11-26  Sam Steingold  <sds@gnu.org>

	* .gdbinit: ensure that all invocations get -E 1:1

2005-11-26  Sam Steingold  <sds@gnu.org>

	New charset BASE64
	* encoding.d (base64_mblen, base64_mbstowcs, base64_wcslen)
	(base64_wcstombs, base64_range, base64_table, table_base64)
	(base64_to_bytes, base64_to_chars): add
	(init_encodings_1): unit BASE64
	* constsym.d (BASE64): add
	* clhs.lisp (*base64-table*, base64-encode, *table-base64*)
	(base64-decode): remove
	(open-http): use CHARSET:BASE64 instead of BASE64-ENCODE

2005-11-26  Sam Steingold  <sds@gnu.org>

	* .gdbinit (run_test, run_all_tests): suite --> tests (typo)

2005-11-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (LN_HARD): set from @LN@, also set a Makefile variable
	with the same name so that the AFS users can change it at run time

2005-11-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (Snstring): export to clisp.h to make module i18n
	build --without-unicode

2005-11-25  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp: set documentation sys::process-id
	to point to impnotes#process-id

2005-11-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-doc): new target to check Symbol-Table.text

2005-11-23  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (base64-encode, base64-decode): stolen from CLLIB
	(http-proxy): do not separate username with password
	(open-http): send "Authorization" when proxy user:pass is specified

2005-11-22  Sam Steingold  <sds@gnu.org>

	fix bug#1364177: infinite loop in regexp-split
	* modules/regexp/regexp.lisp (regexp-split): avoid an infinite loop
	by signaling an error when the pattern matches an empty string

2005-11-22  Sam Steingold  <sds@gnu.org>

	* init.lisp (*http-proxy*): export
	* clhs.lisp (*http-proxy*): new variable
	(http-proxy): new function
	(open-http): use it
	(ensure-impnotes-map): handle errors in Symbol-Table.text

2005-11-22  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (SOCKET-SERVICE-PORT):
	avoid package lock warnings

2005-11-22  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp (i18n:locale-conv, i18n:set-locale)
	(i18n:language-information): add impnotes documentation

2005-11-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (.SHELL): add on all *bsd* systems

2005-11-21  Sam Steingold  <sds@gnu.org>

	fix bug#1359066: :ALLOCATION kind not extensible
	* clos-class3.lisp (defclass): permit user-defined :allocation
	(checked-compute-slots): require non-NIL location only from slots
	with standard :ALLOCATION (:CLASS or :INSTANCE)

2005-11-21  Sam Steingold  <sds@gnu.org>

	* configure: suggest setting CC when printing libsigsegv building
	recommendations

2005-11-21  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4 (CL_READLINE): fail when --with-readline was
	specified, but a modern readline cannot be found

2005-11-21  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-CONST): rewrote
	(note-c-const): remove
	(c-const-value): add

2005-11-20  Sam Steingold  <sds@gnu.org>

	* clhs.lisp: set package/impnotes documentation for packages
	EXT, CLOS, AFFI

2005-11-19  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (ensure-clhs-map, ensure-impnotes-map): use a separate
	variable to record whether the map is good

2005-11-19  Sam Steingold  <sds@gnu.org>

	* describe.lisp (launch-doc): launch the browser only on top-level

2005-11-19  Sam Steingold  <sds@gnu.org>

	* clhs.lisp, exporting.lisp: document package EXPORTING in
	exporting.lisp, not in clhs.lisp

2005-11-19  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (impnotes-map-source) [woe32]: #\\ is also a path separator

2005-11-19  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-CONST): call PREPARE-MODULE before the
	first reference to *name*; do not evaluate NOTE-C-CONST at
	macroexpansion time
	(note-c-const): do not call PREPARE-MODULE here

2005-11-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:STRING-TIME): implement
	* modules/syscalls/posix.lisp (STRING-TIME) [unix]: exported
	* modules/syscalls/configure.in (strptime, strftime, mktime): check

2005-11-18  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (with-handle): declare the
	HANDLE variable READ-ONLY
	(MessageBoxA): new function

2005-11-18  Sam Steingold  <sds@gnu.org>

	* condition.lisp (find-subclasses-of-type): add
	(make-condition): use it to enable TYPE arguments that do not
	name a specific class
	* utils/clispload.lsp (*expected-failures*): remove
	MAKE-CONDITION.3 and MAKE-CONDITION.4

2005-11-17  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (*system-package-list*): remove "CUSTOM": the
	variables and functions in this package are for the users to change

2005-11-17  Sam Steingold  <sds@gnu.org>

	DESCRIBE can now point the browser to impnotes
	* package.d ((SETF PACKAGE-DOCUMENTATION)): package documentation
	is either a doc-string or a list (doc-string impnotes-id)
	* documentation.lisp (documentation): ditto
	* makemake.in (DATA_FILES): add Symbol-Table.text
	* init.lisp (clhs-root): moved from EXT to CUSTOM to avoid locking
	(*impnotes-root-default*, impnotes-root): export from CUSTOM
	* describe.lisp (launch-doc): new function
	(describe): use it for symbols and packages for CLHS and impnotes
	* clhs.lisp (open-http): catch connection errors when
	:IF-DOES-NOT-EXIST is not :ERROR
	(ensure-clhs-map): reset clhs-map-source early to avoid re-running
	again and again after a failure
	(get-string-map, ensure-impnotes-map): add
	(documentation@symbol/clhs): call ENSURE-CLHS-MAP only for symbols
	in the COMMON-LISP package
	(documentation@symbol/impnotes, documentation@package/impnotes): add
	set package/impnotes documentation for packages GRAY, CL-USER, CS-CL,
	CS-CL-USER, SCREEN, SOCKET, GSTREAM, I18N, FFI, CHARSET, EXPORTING
	* cfgunix.lisp, cfgsunux.lisp, cfgwin32.lisp
	(*impnotes-root-default*): defvar
	(impnotes-root): defun
	* modules/berkeley-db/dbi.lisp: add impnotes doc for package BDB
	* modules/dirkey/dirkey1.lisp: add impnotes doc for package LDAP
	* modules/fastcgi/fastcgi.lisp: add impnotes doc for package FASTCGI
	* modules/matlab/matlab.lisp: add impnotes doc for package MATLAB
	* modules/netica/netica.lisp: add impnotes doc for package NETICA
	* modules/oracle/oracle.lisp: add impnotes doc for package ORACLE
	* modules/pari/pari.lisp: add impnotes doc for package PARI
	* modules/pcre/pcre.lisp: add impnotes doc for package PCRE
	* modules/postgresql/postgresql.lisp: add impnotes doc for package SQL
	* modules/rawsock/sock.lisp: add impnotes doc for package RAWSOCK
	* modules/readline/readline.lisp: add impnotes doc for package
	READLINE
	* modules/regexp/regexp.lisp: add impnotes doc for package REGEXP
	* modules/syscalls/posix.lisp: add impnotes doc for package POSIX
	* modules/wildcard/wildcard.lisp: add impnotes doc for package
	WILDCARD
	* modules/zlib/zlib.lisp: add impnotes doc for package ZLIB

2005-11-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (.SHELL) [netbsd]: new target to ensure make uses $(SHELL)

2005-11-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: check for <netinet/in.h>
	* modules/syscalls/calls.c: include <netinet/in.h> before
	<arpa/inet.h> to avoid warnings on FreeBSD

2005-11-17  Sam Steingold  <sds@gnu.org>

	New declaration EXT:NOTSPECIAL undoes the effects of DEFVAR et al
	* compiler.lisp (c-PROCLAIM): handle NOTSPECIAL declarations
	* control.d (PROCLAIM): ditto
	* constsym.d (EXT:NOTSPECIAL): add
	* init.lisp (EXT:NOTSPECIAL): export

2005-11-16  Sam Steingold  <sds@gnu.org>

	New function EXT:OPEN-HTTP and macro EXT:WITH-HTTP-INPUT.
	Function EXT:CLHS is now deprecated in favor of DESCRIBE.
	* clhs.lisp (*browsers*) [cygwin macos]: add :DEFAULT browser
	(*clhs-table*): remove
	(browse-url): do not handle NIL browser specially; still need to
	special-case :DEFAULT on woe32
	(with-http-input): new macro
	(open-http, get-clhs-map, ensure-clhs-map): new functions
	(documentation@symbol/clhs): new method
	(clhs): use them, deprecate
	* describe.lisp (describe-object@symbol): when CLHS doc is
	available, print it or launch the browser (depending on *browser*)
	* makemake.in (DATA_FILES, DATA_FILES_TOP_PATH): remove clhs.txt

2005-11-16  Sam Steingold  <sds@gnu.org>

	* macros2.lisp (with-open-stream): close VAR only when it is not NIL

2005-11-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:CHANGE-KEYBOARD-MAPPING)
	(XLIB:KEYCODE->CHARACTER): fix C++ compilation

2005-11-15  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_socket_domain)
	(check_socket_protocol): add some woe32 constants

2005-11-14  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (traverse-anode): use make-array/dotimes instead
	of coerce/mapcap/list/coerce (avoids some consing)

2005-11-14  Sam Steingold  <sds@gnu.org>

	* subtypep.lisp (STANDARD-OBJECT): fix handling of (AND ...)

2005-11-14  Sam Steingold  <sds@gnu.org>

	* array.d (fill_initial_element): extract from make_storagevector()
	(ADJUST-ARRAY): call if for strings when the data vector is not
	created using make_storagevector() to ensure that the
	:INITIAL-ELEMENT argument is not ignored

2005-11-14  Sam Steingold  <sds@gnu.org>

	fix bug#1356695: read labels are not resolved in #2A
	* io.d (ARRAY-READER): disentangle references in generic arrays
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-11-12  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: include <sys/types.h> before
	<sys/uio.h> when checking for struct iovec so that size_t is defined

2005-11-11  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (GETNAMEINFO, GETADDRINFO): support woe32:
	(error_missing): new function
	(getnameinfo_t, getaddrinfo_t, freeaddrinfo_t): new types
	(my_getnameinfo, my_getaddrinfo, my_freeaddrinfo): new functions
	(getnameinfo_f, getaddrinfo_f, freeaddrinfo_f): new variables
	(module__rawsock__init_function_2): init them

2005-11-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (module__syscalls__init_function_2):
	moved ole32 and kernel32 here (not static anymore)

2005-11-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (service): do not check type of PROTOCOL

2005-11-10  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c [win32]: include <ws2tcpip.h> for
	getaddrinfo, freeaddrinfo, getnameinfo
	(SETSOCKOPT_ARG_T) [win32]: define to char* (unix: from CL_TCPCONN)
	* modules/rawsock/configure.in, modules/syscalls/configure.in:
	use CL_SOCKET for solaris

2005-11-09  Sam Steingold  <sds@gnu.org>

	SOCKET:SOCKET-SERVICE-PORT is now deprecated in favor of OS:SERVICE
	* modules/syscalls/calls.c (POSIX:SERVICE): implement
	* modules/syscalls/posix.lisp (service): new structure
	* beossock.lisp: remove
	* constsym.d, subr.d (socket_service_port): remove
	* init.lisp (socket-service-port): remove; do not load beossock
	* socket.d (socket-service-port): remove
	* makemake.in (LPARTS): remove beossock

2005-11-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (group-info): new structure
	* modules/syscalls/calls.c (group-info): implement
	(user-info): rename from user-data

2005-11-09  Sam Steingold  <sds@gnu.org>

	* makemake.in (encflags): add -Emisc 1:1 to avoid encoding errors

2005-11-08  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (passwd_to_lisp): replaces PASSWD_TO_STACK
	(USER-DATA): use passwd_to_lisp() instead of PASSWD_TO_STACK()
	user argument is now optional, as documented

2005-11-08  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): :SHADOWING-IMPORT-FROM, :USE,
	:IMPORT-FROM accept package designators, not just package names

2005-11-08  Sam Steingold  <sds@gnu.org>

	* m4/test.m4 (CL_TEST_NT): TEST_NT defaults to "no"

2005-11-07  Sam Steingold  <sds@gnu.org>

	* makemake.in (SACLA_CLISP): run in ANSI mode

2005-11-07  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop/compatible-p): handle "ing" keyword variants

2005-11-07  Sam Steingold  <sds@gnu.org>

	* stream.d (parse_sock_list): handle socket servers as documented
	Reported by Johan Liseborn <johan@liseborn.se>

2005-11-01  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4 (CL_READLINE): check for rl_gnu_readline_p and
	refuse to use readline if it is not defined - this should take
	care of the OSX broken readline (see unix/PLATFORMS)
	* modules/readline/configure.in: do not check rl_gnu_readline_p here

2005-11-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (CHECK_DEPS): add check-script
	(check-script): new target

2005-11-01  Sam Steingold  <sds@gnu.org>

	* m4/test.m4: stricter test to catch *BSD sh/test breakage

2005-10-31  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): handle Foreign-Address only when
	DYNAMIC_FFI is defined

2005-10-31  Sam Steingold  <sds@gnu.org>

	* spvw.d (main_actions): when argv_execute_file=="-", use the
	value of *STANDARD-INPUT*, not the symbol itself (bug#1344222)

2005-10-30  Sam Steingold  <sds@gnu.org>

	ensure that make uses the same shell that configure tests
	* configure.in: write CONFIG_SHELL into makemake
	* makemake.in: set SHELL to CONFIG_SHELL

2005-10-29  Sam Steingold  <sds@gnu.org>

	* package.d (get_current_package): issue a CERROR when resetting
	the package
	* lispbibl.d (get_current_package): declare maygc
	* io.d (write_sstring_case, pr_symbol, pr_like_symbol):
	save objects around get_current_package()

2005-10-28  Sam Steingold  <sds@gnu.org>

	* stream.d (publish_host_data): accept raw sockets
	(STREAM-HANDLES): replaces SOCKET-STREAM-HANDLES, returns both
	input and output handles as two values
	* subr.d, constsym.d (stream_handles): ditto
	* init.lisp (stream-handles): always export it

2005-10-27  Sam Steingold  <sds@gnu.org>

	* spvw_typealloc.d (reallocate_small_string) [DEBUG_SPVW]: use
	varobject_bytelength() instead of objsize() to compile with SPVW_PURE
	* spvw_page.d (oint_addr_relevant_len): define to 32 by default
	* lispbibl.d (oint_type_* &c) [AMD64]: define the same way on all
	platforms: works on BSD* with -DNO_TRIVIALMAP -DNO_MULTIMAP_SHM
	-DNO_MULTIMAP_FILE -DNO_SINGLEMAP

2005-10-25  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
	    Sam Steingold  <sds@gnu.org>

	* makemake.in (NEED_RECONFIGURE) [!TEST_NT]: fix a typo

2005-10-25  Sam Steingold  <sds@gnu.org>

	* .gdbinit (OS_error, OS_file_error, OS_filestream_error): break

2005-10-25  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check "struct iovec"
	* modules/rawsock/rawsock.c (struct iovec) [!HAVE_STRUCT_IOVEC]: define
	(read, write) [win32]: use recv/send instead
	(readv) [!HAVE_READV]: implement
	(writev) [!HAVE_WRITEV]: implement
	(SOCKETPAIR) [!HAVE_SOCKETPAIR]: implement
	(SOCK-READ, SOCK-WRITE): use readv and writev even when the OS
	does not offer them
	* modules/rawsock/sock.lisp (describe-object@sockaddr): new
	method, calls getnameinfo

2005-10-24  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_socket_protocol): add
	IPPROTO-RSVP IPPROTO-GRE IPPROTO-PIM IPPROTO-COMP

2005-10-24  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp, modules/readline/readline.lisp:
	do not #include <clisp.h> - it is done automatically

2005-10-23  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:CHANGE-KEYBOARD-MAPPING)
	(XLIB:SHAPE-EXTENTS, XLIB:SHAPE-RECTANGLES, XLIB:DEFAULT-KEYSYM-INDEX)
	(XLIB:KEYBOARD-MAPPING, XLIB:KEYSYM-NAME, XLIB:KEYCODE->CHARACTER):
	implement
	* modules/clx/new-clx/clx.lisp (gcontext): add a %timestamp slot
	for the sake of clue/clio

2005-10-22  Sam Steingold  <sds@gnu.org>

	* screen.lisp (*new-window*, read-keyboard-char): remove
	undocumented and unused symbols

2005-10-22  Sam Steingold  <sds@gnu.org>

	avoid configure errors on woe32
	* m4/eloop.m4: check that conftest exists before running it
	* m4/poll.m4: if AC_CHECK_FUNC does not find poll,
	cl_cv_func_poll will not be set

2005-10-21  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (SOCK-LISTEN): backlog is optional
	and defaults to SOMAXCONN

2005-10-21  Sam Steingold  <sds@gnu.org>

	fix user-defined HT tests
	* lispbibl.d (hashtable_length): fix the wrong value
	* hashtabl.d (rehash): fix user-defined ht-test handling
	(hash_prepare_store): fix `cacheable' logic

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: avoid void* pointer arithmetics

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (RAWSOCK:SENDMSG): call fill_msghdr()
	(NETWORK, SOCK-READ, SOCK-WRITE): add casts to pacify G++
	(RAWSOCK:GETADDRINFO): fix argument order and stack cleanup

2005-10-20  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (hash_store): user-defined hash tables do not have to
	be rehashed due to GC
	(hash_prepare_store): fix a GC-safety bug: hashcode_raw() may
	trigger GC for user-defined hash tables
	* spvw_debug (TheHashtable_) [DEBUG_SPVW]: add

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_socket_type):
	default=0 for the sake of getaddrinfo()
	(RAWSOCK:GETADDRINFO): ai_canonname may be NULL
	(RAWSOCK:RECVMSG, RAWSOCK:SENDMSG): fix typo in the conditionals,
	fix some typos;
	accept :START and :END to conform with other SEND/RECV functions

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp: remove "RL_" prefix from the
	Lisp names of the STATE-* constants

2005-10-20  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (to-c-name): downcase all-upper-case names only in
	case-insensitive packages so that (def-c-const ENOENT) will work
	in modules/bindings/glibc/linux.lisp
	(def-c-const): simplified :DOCUMENTATION handling, fix :TYPE
	handling, issue a warning when the constant cannot be defined,
	tweak f-name case

2005-10-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (WIDE_HARD): define oint_data_* to oint_addr_* when
	they are the same, for clarity

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (parse_buffer): start is uintL, not uintV
	(parse_buffer_arg, check_struct_data, fill_iovec, fill_msghdr):
	avoid void* pointer arithmetics
	(check_addrinfo_flags): bitmasks=both
	(GETADDRINFO): typo: value1, not values1

2005-10-20  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS, lisp_to_XHostAddress):
	check FamilyInternet6 in addition to HAVE_IPV6

2005-10-20  Sam Steingold  <sds@gnu.org>

	* exporting.lisp (def-c-const): add
	* foreign1.lisp (def-c-const, note-c-const): add
	(ffi-module): add slot CONSTANT-TABLE
	(finalize-coutput-file): output constant map functions
	* modules/bindings/glibc/linux.lisp, modules/readline/readline.lisp:
	* modules/wildcard/wildcard.lisp, modules/pari/pari.lisp:
	use DEF-C-CONST instead of DEFCONSTANT with explicit values

2005-10-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (oint_type_len): #error when undefined

2005-10-19  Sam Steingold  <sds@gnu.org>

	* execname.c (MAXPATHLEN): define when it is not defined
	Reported by Soeren D. Schulze <soeren.d.schulze@gmx.de>

2005-10-19  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in (getnameinfo, getaddrinfo)
	(freeaddrinfo): check
	* modules/rawsock/sock.lisp (msghdr): remove
	(getnameinfo, getaddrinfo): export
	(message, addrinfo): add
	(defstruct): import from EXPORTING
	* modules/rawsock/rawsock.c (GETNAMEINFO, GETADDRINFO): implement
	(RECVMSG, SENDMSG): use MESSAGE instead of MSGHDR

2005-10-19  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (undefined): do not use package prefix

2005-10-19  Sam Steingold  <sds@gnu.org>

	* foreign.d: uniform use of articles in messages

2005-10-19  Sam Steingold  <sds@gnu.org>

	* m4/test.m4 (CL_TEST_NT): check that test(1) can serve as make(1)
	* configure.in: call CL_TEST_NT
	* makemake.in (anymodule): use "test -nt" only when supported

2005-10-17  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp (DRAW-GLYPH): undefined;
	use MACROLET instead of EVAL-WHEN+DEFMACRO

2005-10-17  Sam Steingold  <sds@gnu.org>

	* modules/readline/readline.lisp (readline-reader): return NIL on EOF
	(resize-terminal, set-screen-size, get-screen-size): add
	(readline-state): new variable together with its constants
	* modules/readline/configure.in: check everything forgotten by Tom

2005-10-17  Sam Steingold  <sds@gnu.org>

	* complete.lisp (completion): define even when not on UNIX

2005-10-11  Tomas Zellerin  <zellerin@gmail.com>

	* modules/readline/readline.lisp: more ffi functions and variables;
	package, some functions and variables documented;
	(*readline-input-stream*): new stream
	* modules/readline/configure.in: all declared functions tested
	* modules/readline/test.tst: add functionality tests

2005-10-17  Sam Steingold  <sds@gnu.org>

	* spvw_sigterm.d (install_sigterm_handler): ignore SIGTTOU to avoid
	being stopped on a terminating signal when running in the background

2005-10-17  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check for msghdr.msg_flags when
	sys/socket.h is present
	* modules/rawsock/rawsock.c (RECVMSG, SENDMSG): implement only
	when the system implementation is POSIX, i.e., has msg_flags

2005-10-17  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (STACK_to_mv): export to clisp.h
	* modules/syscalls/calls.c (hostent_to_lisp): new public function
	converted from hostent_to_stack()
	(RESOLVE-HOST-IPADDR): update to use hostent_to_lisp()
	* modules/clx/new-clx/configure.in: check for socket headers
	* modules/clx/new-clx/clx.lisp (ACCESS-CONTROL): new defsetf
	mark non-implemented functions with compiler macros
	* modules/clx/new-clx/clx.f (POINTER-CONTROL): fix STACK cleanup
	(check_on_off): YES->ON
	(MODIFIER-MAPPING): C arrays are base 0, not base 1
	(SET-MODIFIER-MAPPING, KEYSYM->KEYCODES, ACCESS-HOSTS)
	(ADD-ACCESS-HOST, REMOVE-ACCESS-HOST): implement
	(SET-ACCESS-CONTROL): fix argument order
	* modules/clx/new-clx/test.tst: add

2005-10-16  Sam Steingold  <sds@gnu.org>

	* spvw_sigwinch.d: rl_resize_terminal() should be called only if
	readline has been already initialized
	(sigwinch_handler) [HAVE_READLINE]: call rl_resize_terminal()
	(update_linelength) [HAVE_READLINE]: do not call rl_resize_terminal()

2005-10-16  Sam Steingold  <sds@gnu.org>

	* configure (--version): call src/configure instead of sourcing
	version.sh which is not included in the source distribution
	Reported by T. Kurt Bond <tkb@tkb.mpl.com>

2005-10-14  Sam Steingold  <sds@gnu.org>

	* spvw_sigwinch.d (update_linelength) [HAVE_READLINE]:
	call rl_resize_terminal()

2005-10-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (CHANGE-KEYBOARD-CONTROL): implement

2005-10-14  Sam Steingold  <sds@gnu.org>

	fix bug#1310753: Gray streams ==> stack overflow and segfault
	* stream.d (read_char): fix recursion: cannot assume that the
	constituent streams of constructed streams are built-in

2005-10-14  Sam Steingold  <sds@gnu.org>

	C-level CLOSE functions accept abort argument to ensure that
	auto-close (in GC and quit) cannot fail
	* lispbibl.d (builtin_stream_close): accept abort
	* stream.d (close_synonym, close_str_in, close_buff_in, close_buff_out)
	(close_generic, strm_channel_extrafields_t.low_close, low_close_handle)
	(close_ichannel, close_ochannel, close_buffered, low_close_console)
	(close_window, term_nlunraw, end_term, low_close_socket)
	(low_close_socket_nop, builtin_stream_close): ditto
	(close_some_files): pass abort=1 to builtin_stream_close()
	(BUILT-IN-STREAM-CLOSE): pass :ABORT to builtin_stream_close()
	(low_flush_buffered_handle, make_buffered_stream, make_file_stream):
	pass abort=0 to builtin_stream_close()
	* debug.d (LOAD): ditto
	* misc.d (MACHINE-TYPE, MACHINE-VERSION): ditto
	* pathname.d (DELETE-FILE): ditto
	* spvw_memfile.d (WRITE, savemem): ditto
	* modules/syscalls/calls.c (copy_attributes_and_close, copy_file_low)
	(copy_one_file): ditto

2005-10-10  Sam Steingold  <sds@gnu.org>

	* m4/termcap.m4 (CL_TERMCAP): accept --with-termcap-prefix
	* makemake.in (INCTERMCAP, LIBTERMCAP): add to XCFLAGS & XLDFLAGS
	allow readline on mingw

2005-10-14  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
	    Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (GetConsoleScreenBufferInfo)
	(GetConsoleWindow): add

2005-10-12  T. Kurt Bond  <tkb@tkb.mpl.com>

	* lispbibl.d (PC386): also define on FreeBSD, NetBSD, and OpenBSD

2005-10-12  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_socket_protocol): no prefix,
	accept IPPROTO-* in addition to ETH-P-*
	(get_socket_protocol): new function, use getprotobyname() when it
	is available in addition to check_socket_protocol()
	(SOCKET, SOCKETPAIR): use get_socket_protocol()

2005-10-12  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (Atype_T): export to clisp.h
	* modules/rawsock/configure.in: check <sys/uio.h>, readv, writev,
	sizeof ssize_t and size_t
	* modules/rawsock/rawsock.c (SOCK-READ, SOCK-WRITE) [HAVE_SYS_UIO_H]:
	call readv/writev when buffer is a vector of vectors
	(check_iovec_arg, fill_iovec) [HAVE_SYS_UIO_H]: new functions

2005-10-11  Sam Steingold  <sds@gnu.org>

	* error.d (check_vector_replacement): new function
	* encoding.d (CONVERT-STRING-FROM-BYTES):
	use it instead of fehler_vector()
	* array.d (VECTOR-ENDTEST, VECTOR-FE-INIT, VECTOR-LENGTH)
	(VECTOR-INIT-START, VECTOR-FE-INIT-END): ditto
	* lispbibl.d (check_vector_replacement, check_vector): export

2005-10-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): call configure not just when config.status
	is not present, but also when configure is newer than config.status
	* modules/dirkey/Makefile.in, modules/i18n/Makefile.in:
	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in, modules/berkeley-db/Makefile.in:
	(config.status, config.h, Makefile): remove targets:
	config.status failed with
	error: `CFLAGS' was not set in the previous run
	This is a partial reversal of the 2005-10-07 patch (dependency of
	C files on config.h are kept).

2005-10-11  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check getnetent*
	* modules/rawsock/rawsock.c (netent_to_network, NETWORK): add
	* modules/rawsock/sock.lisp (network): new defstruct

2005-10-11  Sam Steingold  <sds@gnu.org>

	fix bug#1323941: when killed, clisp does not execute cleanup forms
	* spvw.d (main): call install_sigterm_handler(), include spvw_sigterm.c
	* spvw_sigterm.c: new file
	* makemake.in (SPVW_INCLUDES): add spvw_sigterm
	* po/Makefile.devel (DSOURCES): ditto

2005-10-11  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check <netdb.h> and getproto*
	do not check poll() and select(), we already have SOCKET-STATUS
	* modules/rawsock/rawsock.c (protoent_to_protocol, PROTOCOL): add
	* modules/rawsock/sock.lisp (protocol): new defstruct

2005-10-10  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (FILE-PROPERTIES): use my_malloc()
	instead of malloc() and add begin_system_call()/end_system_call()

2005-10-10  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (handle_fault_range, PROT_READ_WRITE, PROT_READ):
	exported to clisp.h
	* modules/berkeley-db/bdb.c (fill_dbt, dbt_to_object): call it
	before memcpy() on lisp object data
	* modules/pcre/cpcre.c (fullinfo_firsttable): ditto
	* modules/rawsock/rawsock.c (parse_buffer_arg, check_struct_data): ditto

2005-10-10  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_set): do not call stream_isbuffered on non-streams

2005-10-09  Sam Steingold  <sds@gnu.org>

	* modules/netica/wrap.lisp (*verbose*): init to NIL to avoid
	saving a closed terminal stream into the image (like with *sql-log*)
	(net-info, node-info): accept :OUT

2005-10-09  Sam Steingold  <sds@gnu.org>

	make sure that SOCKET-STATUS handles buffered streams properly
	* stream.d (handle_set): accept non_empty_buffers_p
	(handle_isset): call listen_char() and listen_byte() on buffered
	input streams even when FD_ISSET is false
	(SOCKET-STATUS): pass non_empty_buffers_p to handle_set() and
	reset timeout to 0 when non_empty_buffers_p is true
	(stream_isbuffered_low): derived from stream_isbuffered() to
	return the amount of data available in the input buffer
	(stream_isbuffered): call stream_isbuffered_low()

2005-10-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:SET-DISPLAY-ERROR-HANDLER):
	fix argument order
	Reported by Magnus Henoch <mange@freemail.hu>

2005-10-07  Sam Steingold  <sds@gnu.org>

	* modules/dirkey/Makefile.in, modules/i18n/Makefile.in:
	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
	* modules/zlib/Makefile.in, modules/berkeley-db/Makefile.in:
	(config.status, config.h, Makefile): new targets:
	no need to "rm -rf" module dir when configure changes

2005-10-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (my_utime): use convert_time_to_universal()
	(my_utime) [WIN32_NATIVE]: a separate implementation to avoid the
	woe32 DST bugs (http://www.codeproject.com/datetime/dstbugs.asp)
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
	(find_first_file, get_file_time) [WIN32_NATIVE]: new functions
	(SET-FILE-STAT): use get_file_time() and convert_time_to_universal()
	(FILE-INFO): accept an optional argument ALL-P, use find_first_file()

2005-10-06  Sam Steingold  <sds@gnu.org>

	* foreign.d (object_handle, object_address): name is an object
	(update_library, validate_fpointer): rework to avoid GC safety issues

2005-10-06  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: check all functions interfaced to
	do not abort when PQserverVersion() is not found
	* modules/postgresql/postgresql.lisp: include <clisp.h> & <config.h>

2005-10-06  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (SET-TEXTDOMAINDIR): fix a GC-safety bug
	(LOCALE-CONV): p_sep_by_space, n_sep_by_space, p_sign_posn,
	n_sign_posn, int_p_sep_by_space, int_n_sep_by_space,
	int_p_sign_posn, int_n_sign_posn are integers, not booleans

2005-10-06  Sam Steingold  <sds@gnu.org>

	* foreign.d (update_library): fix a GC-safety bug

2005-10-06  Sam Steingold  <sds@gnu.org>

	* misc.d (MODULE-INFO): fix a GC-safety bug
	* modules/berkeley-db/test.tst, modules/i18n/test.tst:
	* modules/pcre/test.tst, modules/rawsock/test.tst:
	* modules/regexp/test.tst, modules/syscalls/test.tst: call MODULE-INFO

2005-10-06  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (SOCK-LISTEN): rename from LISTEN
	* modules/rawsock/sock.lisp (LISTEN): do not shadow the CL symbol
	(SOCK-LISTEN): export

2005-10-05  Sam Steingold  <sds@gnu.org>

	* modules/readline/configure.in: abort when readline is not used
	test for all functions and variables interfaced to
	* modules/readline/test.tst: new file
	* modules/readline/readline.lisp: include config.h
	(*foreign-guard*) [compilation]: set to T
	(add-defun): fix "name" argument allocation
	(readline-name): fix :ALLOC
	* modules/postgresql/configure.in: check for PQinitSSL()
	* modules/postgresql/postgresql.lisp: interface to PQinitSSL()
	(*foreign-guard*) [compilation]: set to T
	* modules/bindings/win32/win32.lisp: interface to longhorn
	functions GetProcessId(), GetProcessIdOfThread(), GetThreadId()
	(*foreign-guard*) [compilation]: set to T
	* modules/bindings/win32/test.tst: enabled tests for longhorn functions

2005-10-05  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp (locale-conv-p): export
	* modules/i18n/test.tst: new file

2005-10-05  Sam Steingold  <sds@gnu.org>

	* stream.d (init_streamvars) [HAVE_DECL_RL_READLINE_NAME]:
	init rl_readline_name
	* m4/readline.m4 (CL_READLINE): fix the rl_readline_name test

2005-10-05  Sam Steingold  <sds@gnu.org>

	FFI modules can now take advantage of autoconf feature detection.
	* foreign.d (LOOKUP-FOREIGN-VARIABLE, LOOKUP-FOREIGN-FUNCTION)
	(object_handle): signal a continuable error when the foreign
	object cannot be found
	(update_library, object_address): update for the changes in
	object_handle()
	(FOREIGN-LIBRARY-VARIABLE, FOREIGN-LIBRARY-FUNCTION): return NIL when
	the foreign object cannot be found and the CONTINUE restart was invoked
	* foreign1.lisp (*foreign-guard*): new variable
	(finalize-coutput-file): when it is non-NIL, guard the forms with
	CPP #if conditionals
	(def-c-var, def-call-out): do nothing when the foreign object
	cannot be found and the CONTINUE restart was invoked

2005-10-03  Sam Steingold  <sds@gnu.org>

	functions that take a BUFFER, also take :START and :END
	* modules/rawsock/rawsock.c (parse_buffer_arg):
	check STACK_0, STACK_1: START & END
	(RECV, RECVFROM, SOCK-READ, SEND, SENDTO, SOCK-WRITE)
	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): accept :START & :END

2005-10-03  Sam Steingold  <sds@gnu.org>

	* configure.in: $ac_cv_use_readline is tested in CL_READLINE
	already, do not test it here too
	* m4/readline.m4 (CL_READLINE): check for rl_readline_name

2005-10-02  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_isset): do not call listen_byte() on raw sockets
	Reported by Don Cohen

2005-10-02  Sam Steingold  <sds@gnu.org>

	foreign.d data walkers is now reentrant (no static data)
	* lispbibl.d (converter_malloc_t): typedef & export to clisp.h
	(convert_to_foreign_mallocing, convert_to_foreign_nomalloc):
	remove prototypes
	(convert_to_foreign): prototype
	* foreign.d (foreign_layout): new structure type
	(data_size, data_alignment, data_splittable): remove statics
	(foreign_layout, convert_to_foreign_needs):
	accept a pointer to struct foreign_layout
	(foreign_size): new inline
	(%SIZEOF, %BITSIZEOF, convert_from_foreign, LOOKUP-FOREIGN-VARIABLE)
	(FOREIGN-VARIABLE, SET-FOREIGN-VALUE, SLOT, DEREF, CAST, OFFSET)
	(EXEC-ON-STACK, FOREIGN-ALLOCATE, FOREIGN-CALL-OUT, do_va_arg, callback)
	(FOREIGN-LIBRARY-VARIABLE): update for the new foreign_layout()
	(walk_foreign): new structure type
	(walk_foreign_null_terminates, walk_foreign_pre_hook)
	(walk_foreign_post_hook, walk_foreign_function_hook): remove statics
	(walk_foreign_pointers, free_walk_pre, free_walk_post)
	(free_walk_function): accept a pointer to struct walk_foreign
	(free_foreign): update for the new walk_foreign_pointers()
	(walk_lisp): new structure type
	(walk_lisp_nil_terminates, walk_lisp_pre_hook, walk_lisp_post_hook)
	(walk_lisp_function_hook, walk_counter, walk_alignment): remove statics
	(walk_lisp_pointers, count_walk_pre, count_walk_post):
	accept a pointer to struct walk_lisp
	(converter_malloc): remove a static
	(convert_to_foreign): accept a converter_malloc_t
	(convert_to_foreign_allocaing, convert_to_foreign_mallocing)
	(convert_to_foreign_nomalloc): remove
	(libc_handle): remove old unused junk

2005-10-02  Sam Steingold  <sds@gnu.org>

	* pathname.d (PARSE-NAMESTRING) [cygwin]: fix GC-safety bug

2005-10-01  Sam Steingold  <sds@gnu.org>

	GC-safety bug: validate fpointers lazily, not eagerly
	* foreign.d (foreign_address): fix GCTRIGGER_IF statement
	(free_foreign_callin): call free_callback() only on valid pointers
	(check_faddress_valid): new function
	(SET-FOREIGN-POINTER, FOREIGN-FUNCTION, convert_to_foreign)
	(LOOKUP-FOREIGN-VARIABLE, FOREIGN-VARIABLE, FOREIGN-VALUE)
	(SET-FOREIGN-VALUE, DEREF, READ-MEMORY-AS, WRITE-MEMORY-AS)
	(FOREIGN-FREE, FOREIGN-CALL-OUT): call it
	(validate_fpointer): local, maygc
	* io.d (pr_orecord): use Faddress_value, not Fpointer_value_no_check
	* lispbibl.d (Fpointer_value, Faddress_value):
	do not validate the argument
	(check_faddress_valid): declare
	* misc.d (CODE-ADDRESS-OF): explicitly validate faddress

2005-10-02  Sam Steingold  <sds@gnu.org>

	* stream.d (SOCKET-STREAM-SHUTDOWN): handle is uint, not uint32
	(SOCKET-CONNECT, sock_opt_int, SOCKET-OPTIONS):
	use check_uint() instead of fehler_uint()

2005-09-30  Sam Steingold  <sds@gnu.org>

	clisp -v -v sets *LOAD-ECHO* to T
	* constsym.d (load_echo): add
	* spvw.d (init_symbol_values): init *load-echo* to NIL
	(main_actions): when argv_verbose > 3, set *load-echo* to T

2005-09-30  Sam Steingold  <sds@gnu.org>

	* foreign.d (open_library): quite a few platforms do not define
	RTLD_DEFAULT, but accept NULL as a library handle to mean the
	same (e.g., WIN32, FreeBSD, MacOSX), so we always accept :DEFAULT

2005-09-29  Sam Steingold  <sds@gnu.org>

	enable saving callbacks into memory images
	* foreign.d (convert_function_to_foreign): when the Ffunction
	found in O(foreign_callin_table) is invalid, renew it
	Reported by Tomas Zellerin <zellerin@gmail.com>

2005-09-30  Sam Steingold  <sds@gnu.org>

	* makemake.in (BASE_MODULES): fix last patch:
	add "readline" only when libreadline is actually available

2005-09-29  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (MODULES): add readline
	* makemake.in (BASE_MODULES): add readline
	when both readline and FFI are present
	* modules/readline: new module directory

2005-09-29  Sam Steingold  <sds@gnu.org>

	* stream.d (get_standard_output_file_stream)
	(get_standard_error_file_stream): return a synonym stream instead
	of a terminal stream for the benefit of dribble

2005-09-29  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): handle Foreign-Address

2005-09-28  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/sokoban.lisp (sokoban-usage): rename
	from USAGE to avoid a conflict with POSIX
	* modules/clx/new-clx/clx.f (travel_queque): timeout is struct timeval
	(get_timeout): remove
	(PROCESS-EVENT, EVENT-LISTEN): use sec_usec() instead of get_timeout()
	* modules/clx/new-clx/demos/clx-demos.lisp: load "koch"
	* modules/clx/new-clx/demos/koch.lisp: new demo
	* modules/clx/new-clx/clx.lisp (*keyword-package*): remove
	(kintern): do not use it
	(EVENT-COND): remove some gunk

2005-09-27  Sam Steingold  <sds@gnu.org>

	use map_sequence() instead of ELT
	* modules/clx/new-clx/clx.f (get_seq_len, set_seq): new functions
	(struct seq_rectangle, coerce_into_rectangle): MAP infrastructure
	(SET-GCONTEXT-CLIP-MASK, DRAW-RECTANGLES, SHAPE-COMBINE): use it
	(struct seq_point, coerce_into_point): MAP infrastructure
	(DRAW-POINTS): use it
	(struct seq_segment, coerce_into_segment): MAP infrastructure
	(DRAW-SEGMENTS): use it
	(struct seq_arc, coerce_into_arc): MAP infrastructure
	(DRAW-ARCS): use it
	(struct seq_path, coerce_into_path): MAP infrastructure
	(SET-FONT-PATH): use it
	(struct seq_pixel, coerce_into_pixel): MAP infrastructure
	(FREE-COLORS): use it
	(struct seq_color, coerce_into_color): MAP infrastructure
	(QUERY-COLORS): use it
	(struct seq_pixel_color, coerce_into_pixel_color): MAP infrastructure
	(STORE-COLORS): use it
	(struct seq_map, coerce_into_map): MAP infrastructure
	(CHANGE-PROPERTY): use it
	(struct seq_xatom, coerce_into_xatom): MAP infrastructure
	(ROTATE-PROPERTIES): use it
	(struct seq_uint8, coerce_into_uint8): MAP infrastructure
	(SET-POINTER-MAPPING): use it
	* modules/clx/new-clx/demos/sokoban.lisp (find-outers): pass a
	flat list to SHAPE-COMBINE instead of a list of lists

2005-09-27  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (map_sequence_function_t): do not use
	emit_typedef_f() because g++ complains:
	error: invalid application of `sizeof' to a function type

2005-09-27  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): DATA is optional and
	can be an integer specifying the data size (0 content)

2005-09-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (map_sequence_function_t, map_sequence): export to clisp.h
	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): use them to accept
	arbitrary sequences as DATA instead of requiring a byte vector

2005-09-26  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_buffer_arg): remove
	(parse_buffer_arg): accept arbitrary vectors
	(BUFFER, RESIZE-BUFFER): remove
	(MAKE-SOCKADDR, RECVFROM, SENDTO): modified for the
	parse_buffer_arg() change
	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): buffer argument is now required
	* modules/rawsock/sock.lisp (sockaddr-data): return a vector
	displaced to the underlying data structure

2005-09-26  Sam Steingold  <sds@gnu.org>

	* socket.d (resolve_host): init offset before array_displace_check()
	* modules/berkeley-db/bdb.c (check_gid): ditto

2005-09-26  Sam Steingold  <sds@gnu.org>

	* error.d (check_byte_vector_replacement): add
	* lispbibl.d (MAKE_CHECK_LOW): tweak to be more general
	(check_byte_vector_replacement): prototype and export to clisp.h
	* stream.d (test_n_bytes_args): use check_uint32() and
	check_byte_vector()
	* modules/berkeley-db/bdb.c (check_byte_vector): replaced with
	check_byte_vector_len(), use check_byte_vector()

2005-09-25  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (GETUID, %SETUID, GETGID, %SETGID)
	(GETEUID, %SETEUID, GETEGID, %SETEGID): implement
	* modules/syscalls/posix.lisp (getuid, getgid, geteuid, getegid):
	exported and DEFSETFed
	* modules/syscalls/configure.in (gid_t, uid_t): AC_CHECK_SIZEOF
	(getegid, geteuid, getgid, getuid, setegid, seteuid, setgid, setuid):
	AC_CHECK_FUNCS

2005-09-25  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp (resize-buffer): export
	* modules/rawsock/rawsock.c (SENDTO): fix STACK cleanup
	(RECV, RECVFROM, RECVMSG, SEND, SENDMSG, SENDTO): remove "MSG_"
	prefix from the &key arguments

2005-09-23  Sam Steingold  <sds@gnu.org>

	* array.d (VECTOR-PUSH-EXTEND): set extension to inc when it is
	not supplied (for error reporting)

2005-09-21  Sam Steingold  <sds@gnu.org>

	* foreign.d (foreign_address): use GCTRIGGER_IF(allocate_p)
	instead of a blanket maygc, as appropriate
	(open_library): always restart on error
	(update_library): mark as maygc

2005-09-21  Sam Steingold  <sds@gnu.org>

	* functions.lisp (function-lambda-expression):
	handle compiled (SETF FOO)
	Reported by Pascal Bourguignon <pjb@informatimago.com>

2005-09-21  Sam Steingold  <sds@gnu.org>

	* misc.d (map_lisp_to_c, map_c_to_lisp): fix EXPECTED-TYPE

2005-09-20  Sam Steingold  <sds@gnu.org>

	instead of DEFCHECKER creating a bunch of undebuggable identical
	functions, it now creates a data structure that is passed to a few
	standard built-in functions
	* misc.d (map_to_alist, map_lisp_to_c, map_c_to_lisp, map_c_to_list)
	(map_list_to_c): implement
	* lispbibl.d (c_lisp_pair_t, c_lisp_map_t): add, export to clisp.h
	* utils/modprep.lisp (print-tables-1): instead of checker
	functions, output #defines using map_* functions
	* modules/berkeley-db/bdb.c, modules/i18n/gettext.c:
	* modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
	* modules/syscalls/calls.c: update to use the map_* functions

2005-09-20  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp: do (ext:re-export "POSIX" "EXT") at
	the end of the file to re-export all POSIX symbols

2005-09-19  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (GetProcessVersion)
	(GetThreadPriority, GetThreadPriorityBoost, GetProcessPriorityBoost)
	(with-handle): add

2005-09-19  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): do not make
	unwarranted assumptions about struct sockaddr structure
	(SENDTO): pass size to sendto()

2005-09-17  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): do not use NOTREACHED,
	issue a TYPE-ERROR instead

2005-09-16  Sam Steingold  <sds@gnu.org>

	remove the implicit assumption that struct sockaddr consists
	of 2 slots sa_family and sa_data with no padding - fixes BSD
	* modules/rawsock/rawsock.c (my_check_argument): use GETTEXT
	(SOCKADDR-FAMILY-SIZE): remove
	(SOCKADDR-SLOT): new function, replaces SOCKADDR-FAMILY-SIZE;
	not exported
	* modules/rawsock/sock.lisp (sockaddr-data): use SOCKADDR-SLOT;
	use EXPORTING:DEFUN, export SOCKADDR-P and MSGHDR-P

2005-09-16  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_ut_type):
	add RUN-LVL and ACCOUNTING

2005-09-16  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/configure.in (XGetAtomNames): fix the test
	use CL_FIND_X instead of AC_PATH_XTRA
	* modules/clx/new-clx/link.sh, modules/clx/new-clx/Makefile.in:
	update to use CL_FIND_X instead of AC_PATH_XTRA

2005-09-15  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: use puts() instead of printf() when possible
	(MAKE_CHECK_LOW, MAKE_CHECK, MAKE_CHECK_): new macros
	(with_string_0_help_, with_sstring_0_help_): take both "A" for
	cstombs_help_() and "NR" for unpack_sstring_alloca_help_()
	* genclisph.d (export_literal): add

2005-09-15  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (GetCurrentThreadId): add
	* modules/bindings/win32/test.tst: new file

2005-09-15  Sam Steingold  <sds@gnu.org>

	* configure: document --enable-maintainer-mode
	* makemake.in: handle --enable-maintainer-mode
	the only developer target (affected by --enable-maintainer-mode)
	is remaking src/configure using autoconf

2005-09-15  Sam Steingold  <sds@gnu.org>

	(clisp.h): ensure that __FILE__ and __LINE__ are expanded
	after the file is included, not when it is generated
	* lispbibl.d (NOTREACHED, ASSERT, OBJECT_OUT): do not use
	export_def() to avoid putting string "lispbibl.d" into clisp.h
	(cstombs, unpack_sstring_alloca): define using *_help_()
	for the same reason
	(with_string_0_help_, with_sstring_0_help_): ditto
	* makemake.in (clisp.h): check that the string "lispbibl.d" is not there

2005-09-14  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (GCself, varobject_type): fix export conditional

2005-09-14  Sam Steingold  <sds@gnu.org>

	* stream.d (sec_usec): support 64-bit struct timeval
	(sec_usec_number): new function
	* lispbibl.d (sec_usec_number): export
	* configure.in (struct timeval): check sizeof
	* modules/rawsock/rawsock.c (timeval_to_number): remove
	(get_sock_opt): use sec_usec_number() instead of timeval_to_number()
	* modules/syscalls/calls.c (utmpx_to_lisp): use sec_usec_number()
	* modules/syscalls/test.tst: add a GETUTXENT test
	* modules/syscalls/configure.in: remove unused sizeof tests

2005-09-14  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (GETTEXT): properly define in clisp.h on woe32

2005-09-14  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (BDB:DB-VERSION): fix a GC-safety bug

2005-09-14  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/sql.lisp (*sql-login*, *sql-password*):
	new variables
	(sql-connect): default login and password to them instead of a literal

2005-09-13  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/sql.lisp (*sql-log*): init to NIL to avoid
	saving a closed terminal stream into the image
	(with-sql-connection): accept :LOG and bind *sql-log*
	* modules/postgresql/postgresql.lisp ("SQL"): make DEFVAR exporting
	Reported by Richard Ray <rray@mstc.state.ms.us>
	* modules/postgresql/sql.lisp: moved tests into ...
	* modules/postgresql/test.tst: new file

2005-09-13  "Dr. Werner Fink"  <werner@suse.de>

	* modules/clx/new-clx/demos/sokoban.lisp (find-outers):
	call DISPLAY-FORCE-OUTPUT
	* modules/clx/new-clx/clx.f (PUT-IMAGE): do not call XSync()
	(x_open_display): install error handlers here before
	XOpenDisplay() to catch errors there too
	(OPEN-DISPLAY): do not install error handlers

2005-09-12  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/test.tst: SHOW the results for FILE-OWNER
	physical-memory: guard against broken unixes, like FreeBSD 4.10-BETA
	stat-vfs: FreeBSD lacks this too

2005-09-12  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (%DISPLAY-XID): wrap XAllocID in X_CALL
	(image_put_and_destroy): wrapper for XPutImage & XDestroyImage
	(handle_image_z, PUT-IMAGE): use it
	(foreign_slot): wrapper for SLOT-VALUE & check_fpointer
	(get_ptr_object_and_display, get_font_info_and_display)
	(DISCARD-FONT-INFO): use it
	(create_image): wrapper for XCreateImage
	(handle_image_z, PUT-IMAGE): use it

2005-09-12  Sam Steingold  <sds@gnu.org>

	* genclisph.d (export_def): add
	(emit_define1): remove
	* lispbibl.d: use export_def() instead of emit_define() and
	emit_define1() most of the time.
	BENFIT: reliably correct definitions are exported
	COST: the definitions are not always readable
	TODO: use "gcc -E -dM" -- like with lispbibl.h -- instead

2005-09-12  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (FORCE-GCONTEXT-CHANGES): clean-up STACK
	(SHAPE-COMBINE): accept :SOURCE-KIND

2005-09-12  "Dr. Werner Fink"  <werner@suse.de>

	* modules/clx/new-clx/clx.f (GCONTEXT-ID, FORCE-GCONTEXT-CHANGES)
	(PUT-IMAGE, ALLOC-COLOR-PLANES, ensure_shape_extension)
	(SHAPE-VERSION, SHAPE-COMBINE, SHAPE-OFFSET, ICONIFY-WINDOW)
	(WITHDRAW-WINDOW): wrap X calls in X_CALL

2005-09-08  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB:CHANGE-POINTER-CONTROL): use
	Fixnum_minus1 instead of fixnum(-1) which is actually illegal

2005-09-08  Sam Steingold  <sds@gnu.org>

	* genclisph.d (emit_define_test, emit_define): new functions
	(emit_define1): new macro
	(define_count): new static variable
	(main): use it in stat output
	* lispbibl.d: use emit_define and emit_define1 in _some_ places
	cannot use it for fixnum() and The[Type] yet

2005-09-08  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/test.tst: check that OPEN :IF-EXISTS
	:RENAME-AND-DELETE produces a file with a new INODE (bug#1239523)

2005-09-08  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (record_) [TYPECODES]: rectype and recflags should
	come in the same order in lispbibl.d and clisp.h
	same for SRECORD_HEADER and XRECORD_HEADER
	Reported by Dr. Werner Fink <werner@suse.de>

2005-09-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/test.tst: test file locking by starting and
	controlling via pipes two sub-processes
	(flush-stream, proc-send): new functions

2005-09-07  Sam Steingold  <sds@gnu.org>

	* genclisph.d (emit_typedef_f): increment typedef_count, not test_count

2005-09-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::STREAM-LOCK) [!WIN32_NATIVE]:
	when LOCK-P is NIL, actually do unlock
	[WIN32_NATIVE]: fix :BLOCK handling
	always use OS to get file size instead of calling FILE-LENGTH
	because on win32 FILE-LENGTH will fail with ERROR_LOCK_VIOLATION
	when the underlying file is locked

2005-09-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (DISTFILE): use ${host} as discovered by configure

2005-09-04  Sam Steingold  <sds@gnu.org>

	* configure: when libsigsegv is not found, print instructions on
	getting/building libsigsegv and bail out;
	override with --ignore-absence-of-libsigsegv

2005-09-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (LISPBIBL_INCLUDES): remove, modules use clisp.h now

2005-09-05  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::STREAM-LOCK) [!WIN32_NATIVE]:
	SHARED defaults to NIL

2005-09-05  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/configure.in: bail out when X is not found

2005-09-04  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: add AC_CHECK_SIZEOF(off_t)
	* modules/syscalls/calls.c (I_to_offset): define
	(STREAM-LOCK): use it

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* makemake.in (MODULES): Don't use with_module_* variables any more.

2005-09-01  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (set_sock_opt_many): new function
	(SET-SOCKET-OPTION): use it; also use endp() and
	fehler_plist_odd() to report argument errors

2005-09-01  Sam Steingold  <sds@gnu.org>

	capture failed test output into the log file
	* tests/tests.lisp (*eval-out*, *eval-err*): new variables
	(my-eval): reset their streams before evaluating the form
	(do-test, do-errcheck): write them to log on test failure
	(run-test): bind *EVAL-OUT* and *EVAL-ERR* to string streams
	and *ERROR-OUTPUT* and  *STANDARD-OUTPUT* to broadcast streams

2005-09-01  Sam Steingold  <sds@gnu.org>

	* error.d (fehler_plist_odd): moved here from symbol.d,
	do not accept caller argument, use subr_self instead
	* symbol.d (fehler_plist_odd): moved to error.d
	(GETF, PUTF, REMF, GET-PROPERTIES): update calls to fehler_plist_odd()
	* lispbibl.d (fehler_plist_odd): add the prototype

2005-08-30  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1, print-tables-2):
	name all types (even those used just once) to avoid the GCC 4 warning
	"non-local variable '<anonymous struct> ...' uses anonymous type"
	(modprep): use "~&" to avoid an extra blank line
	* modules.d (MODULE): avoid the GCC 4 warning
	"non-local variable '<anonymous struct> ...' uses anonymous type"

2005-08-30  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (HAVE_SIGNALS): pass on to clisp.h for clx/new-clx
	* modules/clx/new-clx/clx.f (writing_to_subprocess):
	define as "extern" without checking for SIGPIPE

2005-08-30  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (fail, check_dir, make_dest, check_linkset)
	(check_module): new functions; use them throughout the file
	(verbose): call exit (using fail) if the command fails
	avoid sub-shells to exit on the first failure

2005-08-30  Sam Steingold  <sds@gnu.org>

	* configure: when --with-dynamic-ffi is supplied, but the FFI
	fails to build, issue an error message and fail

2005-08-30  Sam Steingold  <sds@gnu.org>

	* makemake.in (LDFLAGS): fix handling (were effectively ignored)

2005-08-30  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (PACK, PACKOPT, PACKEXT): remove,
	assume tar/bzip2/gzip are present on the developer's machine
	(linux-distrib, linux--distrib): remove (unused)
	(distrib): do not depend on linux-distrib

2005-08-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (PWDCMD): remove
	(distrib) [cygwin]: fix tar.bz2 location

2005-08-29  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.35 release

2005-08-29  Sam Steingold  <sds@gnu.org>

	* m4/floatparam.m4: require gt_TYPE_LONGDOUBLE instead of CL_LONGDOUBLE
	use $gt_cv_c_long_double instead of $cl_cv_c_longdouble
	* m4/intparam.m4: require gl_AC_TYPE_LONG_LONG and gt_TYPE_LONGDOUBLE
	instead of CL_LONGLONG and CL_LONGDOUBLE
	use $ac_cv_type_long_long and $gt_cv_c_long_double
	instead of $cl_cv_c_longlong and $cl_cv_c_longdouble

2005-08-27  Bruno Haible  <bruno@clisp.org>

	Make the long-float overflow check work on 64-bit platforms.
	* aridecl.d (LF_exp_mid, LF_exp_high): Define as 'unsigned int',
	not 'unsigned long'.

2005-08-27  Bruno Haible  <bruno@clisp.org>

	More cross-compilation support.
	* m4/intparam.m4: New file.
	* m4/floatparam.m4: New file.
	* m4/param.m4: Rename from m4/intparam.m4.
	(CL_MACHINE): Add an additional CROSS_MACRO parameter.
	* configure.in (CL_MACHINE): When cross-compiling, use
	CL_INTPARAM_CROSS and CL_FLOATPARAM_CROSS.

2005-08-27  Bruno Haible  <bruno@clisp.org>

	* m4/rusage.m4 (CL_RUSAGE): Fix error when cross-compiling.

2005-08-29  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/configure): depend on version.sh

2005-08-28  Sam Steingold  <sds@gnu.org>

	* noreadline.d: add prototypes to avoid warnings

2005-08-28  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
	* modules/regexp/test.tst: fix the tests whose behavior changed
	during the transition from uni-byte to the multi-byte version

2005-08-28  Sam Steingold  <sds@gnu.org>

	Danish messages from Dennis Decker Jensen <dennisdjensen@tiscali.dk>
	* configure.in (ALL_LINGUAS): add `da'
	* constsym.d (danish): add
	* init.lisp (danish.lisp) [GETTEXT UNICODE]: load
	* danish.lisp: new file
	* spvw_language.d (language_danish): add
	(current_language_o, init_language): handle it
	(init_language_from): check for Danish
	* makemake.in (LPARTS) [$with_unicode]: add danish

2005-08-28  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object): use "~:p" instead of "~:*~[~;~:;s~]"

2005-08-28  Sam Steingold  <sds@gnu.org>

	moved PARI i/o from Lisp to C to enable C++ compilation ("const" issues)
	* modules/pari/cpari.c (clispPutc, clispPuts, clispFlush)
	(clispErrPutc, clispErrPuts, clispErrFlush, clispErrDie): add
	* modules/pari/pari.lisp (pari-putc, pari-puts, pari-flush)
	(pari-err-putc, pari-err-puts, pari-err-flush, pari-err-die): remove

2005-08-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (Handle) [UNIX]: use emit_typedef and define to int

2005-08-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, errunix.d, errwin32.d (errno_out_low):
	rename from errno_out(), accept __FILE__ and __LINE__
	* error.d: do not #undef errno_out
	* lispbibl.d (errno_out): define always,
	passing __FILE__ and __LINE__ to errno_out_low()

2005-08-26  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (makemake): substitute @PACKAGE_VERSION@

2005-08-26  Sam Steingold  <sds@gnu.org>

	* makemake.in: avoid putting ${} into Makefile, use $() instead

2005-08-26  John Hinsdale <hin@alma.com>

	* modules/oracle/oracle.lisp, orafns.c: Handle Oracle BLOB data
	on output as array of (UNSIGNED-BYTE 8) and allow embedded NUL bytes.
	Reported by Tomas Hlavaty <kvietaag@seznam.cz>

2005-08-25  Sam Steingold  <sds@gnu.org>

	* makemake.in: instead of having the user edit Makefile and select
	the packer, check for gzip/compress and assume that tar is present
	* configure.in: check for gzip/compress

2005-08-25  Sam Steingold  <sds@gnu.org>

	* m4/regex.m4, modules/regexp/regcomp.c, modules/regexp/regex.h:
	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
	G++ finally can compile regex!

2005-08-25  Sam Steingold  <sds@gnu.org>

	* errunix.d, errwin32.d (errno_out): print newline beforehand
	* lispbibl.d (errno_out) [DEBUG_OS_ERROR]: print file:line
	* error.d: #undef errno_out
	* spvw_memfile.d (loadmem): do not print newline before errno_out()
	* spvw_mmap.d (mmap_zeromap): ditto
	* spvw_multimap.d (fdmap): ditto

2005-08-25  Sam Steingold  <sds@gnu.org>

	* makemake.in: do note create rules for development targets
	unless the user is working from the CVS

2005-08-25  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in, modules/syscalls/calls.c:
	assume <sys/types.h> exists, just like in unix.d

2005-08-25  Sam Steingold  <sds@gnu.org>

	* unixaux.d (close_all_fd): also try getrlimit() before OPEN_MAX
	* unix.d: include <time.h> and <sys/time.h> as recommended by the
	autoconf manual (see AC_HEADER_TIME); include <sys/resource.h>
	* configure.in: call AC_CHECK_FUNCS and AC_CHECK_HEADERS just once;
	use AC_HEADER_TIME to check for <time.h> and <sys/time.h>

2005-08-25  Sam Steingold  <sds@gnu.org>

	* m4/regex.m4, modules/regexp/regcomp.c, modules/regexp/regex.h:
	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
	* modules/regexp/configure.in: add AC_GNU_SOURCE,
	use gl_REGEX instead of gl_INCLUDED_REGEX

2005-08-25  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/autoconf/aclocal.m4): prepend AC_GNU_SOURCE
	to configure.ac and strip it from configures
	Suggested by Stepan Kasal <kasal@ucw.cz> in
	http://article.gmane.org/gmane.comp.lib.gnulib.bugs:4165

2005-08-24  Sam Steingold  <sds@gnu.org>

	explicitly close all file descriptors before exec()
	* socket.d (connect_to_x_server): do not set FD_CLOEXEC
	* configure.in: check for sysconf and
	* unixaux.d (close_all_fd): new function
	* unix.d (close_all_fd): declare it
	* stream.d (create_input_pipe, create_output_pipe, create_io_pipe):
	call it before execl()
	* pathname.d (EXECUTE, LAUNCH): call it before execv() and execvp()

2005-08-23  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::STREAM-OPTIONS): implement
	* modules/syscalls/posix.lisp (POSIX::STREAM-OPTIONS): export

2005-08-22  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): *_to_list():
	when c_const is 0, do not put l_const into the list

2005-08-22  Sam Steingold  <sds@gnu.org>

	* makemake.in: issue a warning on --with-module=base-module

2005-08-22  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regcomp.c, modules/regexp/regex.h:
	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
	* modules/regexp/regexec.c, m4/regex.m4: sync with gnulib

2005-08-19  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_lend_handle): propagate up the possible change
	in the first argument coming from check_value()
	* lispbibl.d (stream_lend_handle): update the declaration
	* pathname.d (init_launch_streamarg):
	update the call to stream_lend_handle()
	* modules/syscalls/calls.c (stream_get_handle): propagate up the
	possible change in the first argument coming from stream_lend_handle()
	(error_OS_stream): new function
	(STREAM-LOCK): use it
	(SYNC): use stream_get_handle()
	(FILE-STAT): update call to stream_get_handle()
	(copy_attributes_and_close, copy_file_low):
	update call to stream_lend_handle()

2005-08-18  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (attribute_aligned_object): use "#define" instead of
	a constant variable declaration "const char*" for gen.lispbibl.c

2005-08-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (PROC): handle OpenBSD 3.4 where `uname -p` prints
	"Intel Pentium III (Coppermine) ("GenuineIntel" 686-class)"

2005-08-18  Sam Steingold  <sds@gnu.org>

	* spvw.d (libopen) [!WIN32_NATIVE]: pass RTLD_GLOBAL to dlopen()

2005-08-18  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c, oracle.lisp: handle floats as double
	precision by default; allow multiple connects to the same
	server via connection IDs

2005-08-18  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: call AC_HEADER_TIME
	* modules/rawsock/rawsock.c: include <time.h>
	so that "struct timeval" will be available on OSX too
	(optional_sockaddr_argument): declare static to avoid a warning

2005-08-16  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regex.h: sync with gnulib (support G++)

2005-08-15  Sam Steingold  <sds@gnu.org>

	* documentation.lisp (documentation, (setf documentation)): specialize
	on CONS, not on NIL, to ensure that NIL is treated as a SYMBOL

2005-08-13  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* utils/comment5.c (main): init outfilenamebuffer so it
	won't contain trash when piping to exiting program occurs.
	Close infile before exit.

2005-08-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* w32shell.c (real_path): fix a bug with root directory
	checking on Win32 (bug#1252861).

2005-08-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (DEVPREFIX): simplified

2005-08-10  Sam Steingold  <sds@gnu.org>

	* m4/onceonly.m4: use gnulib/m4/onceonly_2_57.m4

2005-08-10  Sam Steingold  <sds@gnu.org>

	* init.lisp (char-invertcase, string-invertcase)
	(nstring-invertcase): export
	* charstrg.d (STRING-INVERTCASE): accept :START and :END
	(NSTRING-INVERTCASE): implement
	* constsym.d (NSTRING-INVERTCASE): add
	(char-invertcase, string-invertcase): moved from SYS to EXT
	* subr.d (string-invertcase): accept :START and :END
	(nstring-invertcase): add
	* subrkw.d (string-invertcase, nstring-invertcase): add

2005-08-05  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file): put source line number into the
	name of the compiled top-level form
	* init.lisp (*current-source-line-1*, *current-source-line-2*): add
	(sys::check-redefinition): FILE doc is now (file start-line end-line)
	(eval-loaded-form-low): set *CURRENT-SOURCE-LINE-[12]* from the
	compiled top-level form
	(load): bind and set *CURRENT-SOURCE-LINE-[12]*

2005-08-05  Sam Steingold  <sds@gnu.org>

	* macros3.lisp (compiled-file-p): implement CLRFI-2
	<http://clrfi.alu.org/clrfi/clrfi-2-compiled-file-p>

2005-08-04  Sam Steingold  <sds@gnu.org>

	make configure creation process more robust
	* Makefile.devel (MODULES, MOD_CONFIGURES, MOD_CONFIG_H_IN)
	(CLISP_CONFIGURES, FFCALL, FFCALL_CONFIGURES): new variables
	(CONFIGURES, CONFIG_H_IN): use them
	(autoconf/aclocal.m4): depend only on CLISP_CONFIGURES

2005-08-04  Sam Steingold  <sds@gnu.org>

	update bundled regex to the latest gnulib version
	* configure.in: call gl_USE_SYSTEM_EXTENSIONS
	* modules/regexp/configure.in: use gl_INCLUDED_REGEX instead of
	CL_REGEXP; do not call AC_AIX (done by toplevel)
	* modules/wildcard/configure.in: do not call AC_AIX (done by toplevel)
	* modules/regexp/regex.c, modules/regexp/regex.h: update
	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
	* modules/regexp/regexec.c, modules/regexp/regcomp.c:
	* m4/extensions.m4, m4/onceonly.m4, m4/regex.m4: add
	* m4/regexp.m4: remove
	* modules/regexp/link.sh.in: remove all gnulib regex files when
	using the system-wide regex implementation
	* modules/syscalls/calls.c: do not define __EXTENSIONS__, this is
	taken care of by gl_USE_SYSTEM_EXTENSIONS

2005-08-04  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/configure.in, modules/oracle/configure.in:
	generate config.h

2005-08-03  Sam Steingold  <sds@gnu.org>

	* makemake.in (check): fix the test for sacla-tests and ansi-tests

2005-08-03  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem): add a cast for C++ compilation

2005-08-03  Sam Steingold  <sds@gnu.org>

	* documentation.lisp (function-documentation):
	pass NAME, not X, to SYS::GET-FUNNAME-SYMBOL

2005-08-03  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (decode-universal-time) [!(UNIX|WIN32)]:
	call FLOOR just once instead of twice

2005-08-02  Sam Steingold  <sds@gnu.org>

	* encoding.d (init_dependent_encodings, SET-FOREIGN-ENCODING):
	partially reversed the 2005-07-30 patch: O(foreign_8bit_encoding)
	must agree with O(foreign_encoding) and only ASCII agrees with
	_all_ encodings, so use ASCII instead of DEFAULT_1_1_ENCODING

2005-08-02  Sam Steingold  <sds@gnu.org>

	use symbol property lists instead of the global *DOCUMENTATION*
	hash table: the table is not weak, so it is not cleaned up
	this also reduced the size of lispinit.mem by almost 10% (15k)
	* init.lisp (get-funname-symbol): moved up
	(get-doc-entity-symbol): new function
	(%set-documentation, check-redefinition):
	use it with GET instead of GETHASH
	* describe.lisp (describe1): do not use *DOCUMENTATION*
	* documentation.lisp (documentation, (setf documentation)): ditto
	also, CHECK-FUNCTION-NAME may return a symbol when given a list
	(function-documentation, set-function-documentation): new functions

2005-08-02  Sam Steingold  <sds@gnu.org>

	* package.d (cerror_package_locked): PACKAGE-ERROR slot PACKAGE
	must be a PACKAGE, not a list thereof (coming from CHECK-REDEFINITION)

2005-08-02  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/test.tst (show): moved to tests/tests.lisp
	* modules/rawsock/test.tst, modules/zlib/test.tst:
	use SHOW instead of PRINT

2005-08-01  Sam Steingold  <sds@gnu.org>

	when the specified memory image does not exist, try appending ".mem"
	* spvw_memfile.d (open_filename): new function (extracted from loadmem)
	(loadmem): use it, and retry with filename".mem" on failure

2005-08-01  Sam Steingold  <sds@gnu.org>

	* spvw_global.d (check_pack_consistency): made static to avoid warning

2005-08-01  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (saveinitmem): ensure that *PACKAGE*
	is bound to a package

2005-08-01  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_trivial_p): check whether (CAR DIR) is a CONS
	This caused a crash on Sparc/Solaris 10.
	Reported by Nelson H. F. Beebe <beebe@math.utah.edu>

2005-07-30  Sam Steingold  <sds@gnu.org>

	* encoding.d (DEFAULT_1_1_ENCODING): iso-8859-1 (corresponds to
	the CLISP CODE-CHAR/CHAR-CODE conversion on the first 255 bytes)
	(encoding_from_name): when `name' does not name a known encoding,
	use the locale default instead of ASCII/UTF-8 (for CLISP contexts)
	and DEFAULT_1_1_ENCODING when context=locale (e.g., name=ISO8859-1)
	-E "1:1" and "8bit" now mean DEFAULT_1_1_ENCODING
	(init_dependent_encodings, SET-FOREIGN-ENCODING):
	O(foreign_8bit_encoding) defaults to DEFAULT_1_1_ENCODING, not to ASCII

2005-07-29  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS):
	dbe->set_verbose() does not accept bit flag combinations

2005-07-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (gen.lispbibl.c): fix the sed(1) expression to work on
	solaris, darwin, openbsd, msys (gnu sed 3), cygwin&linux (gnu sed 4)
	Suggested by rouben@pc18.math.umbc.edu (Rouben Rostamian)

2005-07-27  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (TheCons_): a new debugging prop

2005-07-26  Sam Steingold  <sds@gnu.org>

	* stream.d (SOCKET-STREAM-SHUTDOWN): never call close(2), just
	shutdown(2) in the appropriate direction; accept raw sockets
	(builtin_stream_close): decide on which stream channel to close
	based on the channel value and not on strmflags
	* modules/rawsock/rawsock.c (SHUTDOWN): remove
	* modules/rawsock/sock.lisp (shutdown): remove

2005-07-27  Sam Steingold  <sds@gnu.org>

	* condition.lisp (eval-loaded-form): accept a FILE argument and
	make the :REPORTs more informative
	* init.lisp (eval-loaded-form) [preliminary]: accept and ignore FILE
	(load): pass *LOAD-TRUENAME* to EVAL-LOADED-FORM as FILE

2005-07-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (ensure_living_display): avoid
	"Unprintable error message" by always returning when the argument
	is a DISPLAY

2005-07-25  Sam Steingold  <sds@gnu.org>

	* modules/queens/link.sh (INCLUDES): no need for '-I'
	Reported by Dr. Werner Fink <werner@suse.de>

2005-07-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (check): ansi-tests and sacla-tests are for
	developers only and are not included in the source distribution,
	so check should not depend on them;
	for developers, it should also depend on benchmarks

2005-07-22  Sam Steingold  <sds@gnu.org>

	Fix win32 bug: when "foo" is a file, (directory "foo/") returned
	non-NIL and this prevented loading ~/.clisprc
	* pathname.d (check_stat_directory): remove
	(copy_pathname_and_add_subdir): extract from
	directory_search_1subdir()
	(check_sub_directory): replaces check_stat_directory()
	(directory_search_1subdir): call it

2005-07-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (clisp.1, clisp.html): substitute ${host} (on unix)
	or ${TSYS} (on win32) for @PLATFORM@
	* doc/Makefile (FILLIN): do not substitute @PLATFORM@ here

2005-07-21  Sam Steingold  <sds@gnu.org>

	* win32.d (HAVE_STRERROR): define to 1 to avoid a warning

2005-07-21  Sam Steingold  <sds@gnu.org>

	* subtypep.lisp (get-charset-range): do not fill the cache here

2005-07-21  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: follow symlinks and also "-x" HTML and PNG

2005-07-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [cygwin]: fix CLISP_VR; use /tmp for DEST_TMP
	do not put curr/prev/test into setup.hint - normally they are not needed

2005-07-21  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/link.sh (TO_LOAD): remove split-sequence
	* modules/clx/mit-clx/Makefile (ALLLISP, ALLFAS): ditto

2005-07-20  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.34 release

2005-07-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (VERSION): remove

2005-07-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: do not put "var" into clisp.h

2005-07-20  Sam Steingold  <sds@gnu.org>

	* m4/libtool.m4: upgrade to libtool-1.5.18 + clisp 2005-07-08 patch

2005-07-20  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (var): do not put into clisp.h
	(elif, loop, until): deprecated

2005-07-20  Sam Steingold  <sds@gnu.org>

	* Makefile.devel: remove the last vestiges of DOS support
	update release procedure
	* clisp.spec: ditto

2005-07-20  Sam Steingold  <sds@gnu.org>

	* utils/fix-perms.sh: make configure files executable

2005-07-18  Sam Steingold  <sds@gnu.org>

	* spvw.d (usage): made the message more consistent

2005-07-15  Sam Steingold  <sds@gnu.org>

	* utils/varbrace.d (convert): declare static to avoid a warning

2005-07-15  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: use msgcall and msgfile (Berkeley-DB 4.3)
	(struct messages): new type
	(make_messages, free_messages, close_messages, extract_messages)
	(add_message): operate on the messages
	(message_callback): callback for msgcall
	(DBE-CREATE): init msgcall
	(close_msgfile, reset_msgfile, dbe_get_msgfile): add
	(BDB:DBE-MESSAGES): new function
	(DBE-SET-OPTIONS, DB-SET-OPTIONS, DBE-GET-OPTIONS, DB-GET-OPTIONS):
	accept :MSGFILE
	* modules/berkeley-db/dbi.lisp (BDB:DBE-MESSAGES): export

2005-07-15  Sam Steingold  <sds@gnu.org>

	support Berkeley-DB 4.3
	* modules/berkeley-db/bdb.c (BDB:DB-VERSION): also return
	LOGVERSION, TXNVERSION, SEQUENCE_VERSION
	(DBE-SET-OPTIONS): also accept DSYNC-LOG LOG-AUTOREMOVE LOG-INMEMORY
	(DB-GET, MAKE-DBC, TXN-BEGIN): also accept DEGREE-2
	(DB-STAT): also accept TRANSACTION
	(DB-SET-OPTIONS): also accept INORDER
	* modules/berkeley-db/configure.in: check for DB_ENV.set_msgcall,
	DB->stat/TXN, DB_ENV->set_errcall/DBE, get_transactional

2005-07-15  Sam Steingold  <sds@gnu.org>

	* configure (--list-modules): new option

2005-07-15  Sam Steingold  <sds@gnu.org>

	* makemake.in (DEVPREFIX): "cd c:" --> "cd c:/" to avoid a cygwin error
	./makemake: line 724: cd: c:: No such file or directory

2005-07-15  Devon Sean McCullough  <Lisp-Hacker@Jovi.Net>

	* makemake.in (gen.lispbibl.c): fix the sed(1) expression to
	work on macos-10.4-darwin-8.2.0

2005-07-13  Sam Steingold  <sds@gnu.org>

	* makemake.in (setup.hint) [cygwin]: fix curr/test output

2005-07-12  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp: update obsolete names

2005-07-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (MSVCDIR): output sample values for all versions
	Reported by Ury Marshak <urym@two-bytes.com>

2005-07-11  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (SetStdHandle): add

2005-07-11  Sam Steingold  <sds@gnu.org>

	* spvw.d (parse_options): print (EXT:MODULE-INFO) for --version

2005-07-11  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp (*features*): add :I18N

2005-07-11  Sam Steingold  <sds@gnu.org>

	* modules/pcre/pcre.lisp, modules/zlib/zlib.lisp:
	* modules/syscalls/posix.lisp, modules/rawsock/sock.lisp:
	* modules/berkeley-db/dbi.lisp, modules/dirkey/dirkey1.lisp:
	*SYSTEM-PACKAGE-LIST* is in CUSTOM

2005-07-10  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (DestroyIcon): new function

2005-07-08  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp: do NOT use full paths for
	:LIBRARY arguments (reverses the 2005-06-06 patch) for portability
	of binary distributions [it now works on cygwin, go figure...]
	(GetStdHandle, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE)
	(ReadFile, WriteFile, ReadConsoleA, WriteConsoleA): add i/o interface

2005-07-08  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/bindings/win32/win32.lisp: WINAPI means :stdc-stdcall

2005-07-08  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4 (postinstall_cmds) [cygwin,mingw,pw32]: Make DLL
	executable after installing it.

2005-07-07  Sam Steingold  <sds@gnu.org>

	* places.lisp (get-setf-expansion): do not return CLISP-specific
	form ((SETF ...) ...) to avoid confusing 3rd party code walkers

2005-07-07  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): add MAKE-CONDITION.[34]

2005-07-07  Sam Steingold  <sds@gnu.org>

	* places.lisp (get-setf-expansion): user may pass env=NIL to mean
	null lexical environment

2005-07-07  Sam Steingold  <sds@gnu.org>

	* makemake.in [win32msvc]: use rc+cvtres to add the icon to clisp.exe
	(anymodule): use {MODULESDIR_} for ./configure --srcdir
	(needs): fix quoting

2005-07-07  Jörg Höhle  <hoehle@users.sourceforge.net>

	* execname.c (default_executable_name) [WIN32_NATIVE]: default to
	lisp.exe, not lisp.run
	* _clisp.c [!UNIX]: do not #include files specific to UNIX

2005-07-06  Sam Steingold  <sds@gnu.org>

	fix "./configure --build foo/bar/baz"
	* configure (maybe_mkdir): pass "-p" to mkdir
	(makemake_args): pass subdir_srcdir_args down to makemake
	* makemake.in (anymodule): pass srcdir to module configure
	Reported by Will Newton

2005-07-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (OUT): new variable
	(clisp): fix msvc rule
	Reported by Jörg Höhle

2005-07-06  Sam Steingold  <sds@gnu.org>

	* makemake.in: remove the last(?) vestiges of DOS support

2005-07-06  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (binomial-coefficient): commented out
	because `binomial' is not found in libpari-2.2.dll at link time

2005-07-06  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (error_callback, error_message_reset):
	declare static to avoid warnings
	(module__bdb__init_function_2): add a prototype
	* modules/pcre/cpcre.c (module__pcre__init_function_2): ditto

2005-07-06  Sam Steingold  <sds@gnu.org>

	* version.sh: bumped because of many bug fixes

2005-07-05  Sam Steingold  <sds@gnu.org>

	* foreign.d (MEMORY-AS): fix a cast for g++ compilation

2005-07-01  Sam Steingold  <sds@gnu.org>

	* makemake.in: copy localcharset.h to the build directory on msvc too
	Reported by Jörg Höhle <hoehle@users.sourceforge.net>

2005-07-01  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp (c-ident-p): accept @ in foreign names,
	useful for some libraries using :STDC-STDCALL.
	* errunix.d (strerror) [!HAVE_STRERROR]: fix typo.
	* win32.d (HAVE_STRERROR): #define (errunix.d needs it)

2005-06-28  Sam Steingold  <sds@gnu.org>

	* init.lisp (%return-p): quoted constants cannot contain
	RETURN-FROM forms (this fixes a bug whereby quoted circular list
	hang the evaluator)
	Reported by Devon Sean McCullough <Lisp-Hacker@Jovi.Net>

2005-06-26  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-OR): handle empty codelist
	Reported by Dan Corkill <dancorkill@comcast.net> & bug#1227764

2005-06-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (config.status): does not depend on version.sh

2005-06-24  Sam Steingold  <sds@gnu.org>

	RFE#1226120: configure shall report essential findings
	* configure: report configure findings

2005-06-24  Sam Steingold  <sds@gnu.org>

	* foreign.d (CALL-WITH-FOREIGN-STRING): use check_posfixnum()

2005-06-22  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (exec-with-foreign-string): ENCODING-ZEROES is
	defined both with and without UNICODE

2005-06-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (read_memory_as, write_memory_as): low-level accessors
	* subr.d, constsym.d (read_memory_as, write_memory_as): add
	* foreign1.lisp (MEMORY-AS): export and define (SETF MEMORY-AS)

2005-06-21  Sam Steingold  <sds@gnu.org>

	* charstrg.d (coerce_char): no INPUT-CHARACTER without KEYBOARD
	Reported by Roland Averkamp <roland.averkamp@gmx.de>

2005-06-21  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (logical-pathname-translations "SYS"): update
	for the 2005-05-06 #p"" ==> :DIRECTORY NIL patch

2005-06-21  Sam Steingold  <sds@gnu.org>

	* documentation.lisp ((setf documentation), documentation):
	remove the unnecessary (ignore doc-type) declarations (avoids warnings)

2005-06-20  Sam Steingold  <sds@gnu.org>

	* pathname.d (FullName): declare static to avoid a warning
	(handle_dup): fix local variable type
	* w32shell.c (resolve_shell_shortcut, resolve_shell_shortcut_more)
	(resolve_shell_symlink): declare static to avoid warnings
	* _clisp.c (shell_quote, real_path, find_executable): add
	prototypes to avoid warnings
	* utils/ccmp2c.c (new_statement): declare main%d static
	to avoid warnings
	* modules/clx/new-clx/clx.f (get_font_info_and_display, get_font_name)
	(make_visual_info, x_open_display, general_draw_text, font_char_info)
	(module__clx__init_function_2): declare static to avoid warnings
	(xlib_error_handler, xlib_io_error_handler, xlib_after_function):
	global prototypes to avoid warnings

2005-06-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (UTILCC): new makefile variable: simplifies the hack
	necessary to make some utilities (comment5 and txt2c) that must
	understand symbolic links to permit building in a separate
	directory on woe32/cygwin/mingw

2005-06-20  Sam Steingold  <sds@gnu.org>

	* socket.d (resolve_host) [HAVE_IPV6]: handle numeric IPv6 addresses

2005-06-20  Sam Steingold  <sds@gnu.org>

	* error.d (check_uint32_replacement, check_sint32_replacement)
	(check_uint64_replacement, check_sint64_replacement):
	fix the message: use the correct article

2005-06-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (oint_data_len, oint_data_mask): On 64-bit platforms,
	always set oint_data_len to 48, not 40 or 32.
	(oint_type_*) [MIPS64]: Use only 16 bits for the type.

2005-06-15  Bruno Haible  <bruno@clisp.org>

	* socket.d (string_to_addr): Mark as maygc.

2005-06-15  Jörg Höhle  <hoehle@users.sourceforge.net>

	* defs1.lisp (memoized): export it from EXT.

2005-06-14  Sam Steingold  <sds@gnu.org>

	make executables built on NT run on w95
	* modules/syscalls/calls.c (LockFileExFuncType, UnlockFileExFuncType):
	new typedefs
	(LockFileExFunc, UnlockFileExFunc): new statis variables
	(STREAM-LOCK): use them instead of the NT functions
	(module__syscalls__init_function_2): init them

2005-06-12  Bruno Haible  <bruno@clisp.org>

	Avoid "gcc -missing-declarations" warnings.
	* modules/syscalls/calls.c (module__syscalls__init_function_2): Declare.

2005-06-12  Bruno Haible  <bruno@clisp.org>

	Make PROVIDE, REQUIRE work as expected in case-inverted packages.
	* defs1.lisp (module-name): New function.
	(provide, require): Use it instead of #'string.
	* compiler.lisp (c-PROVIDE, c-REQUIRE): Likewise.

2005-06-12  Bruno Haible  <bruno@clisp.org>

	* constobj.d: Rename O(type_designator_function_name) to
	O(type_function_name).
	* error.d: Update.

2005-06-12  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
	Change calling convention, to avoid use of sys::%unbound.
	(backquote-reader): Update.

2005-06-10  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp: update for pari 2.2.11
	(ell-local-reduction): use elllocalred
	(ell-global-reduction): use ellglobalred
	(ell-modular-parametrization): use elltaniyama

2005-06-10  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (note-c-call-in): emit prototypes
	* modules/pari/pari.lisp (clisp_get_prec, clisp_set_prec)
	(get_entry_doc, subres0): ditto

2005-06-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [CC_CPLUSPLUS=true]: do not add
	-Wmissing-declarations: 'cc1plus: warning: command line option
	"-Wmissing-declarations" is valid for C/ObjC but not for C++'

2005-06-10  Sam Steingold  <sds@gnu.org>

	avoid -Wstrict-prototypes warnings in modules
	* foreign1.lisp (finalize-coutput-file): emit init/fini prototypes
	* utils/modprep.lisp (print-tables-2): ditto
	* genclisph.d (LISPFUN_B): emit subr prototype

2005-06-08  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/bindings/glibc/linux.lisp (errno): Remove dependency on
	__errno_location().

2005-06-07  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (print_printf_arg, printf_with_args, print_file)
	(emit_typedef_test, emit_typedef, emit_typedef_f): Declare as local.

2005-06-07  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (EXCLUDE): Exclude also the 'queued' directory.

2005-06-07  Bruno Haible  <bruno@clisp.org>

	* win32.d [MINGW]: Include <io.h> before redefining lseek, isatty.

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* modules/berkeley-db/bdb.c (fill_dbt): Call I_to_LEbytes
	differently, avoiding a prior memset().

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Ignore --with-module=... options for modules that are
	already contained in BASE_MODULES.
	Reported by <bsd1628@bwphotog.net>.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c: Assume stdlib.h exists.
	(POSIX::STREAM-LOCK): Use a 64-bit variable for the length on
	systems with 64-bit off_t and on Woe32. Fix wrong assigment from
	GetLastError() to 'bool'.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* modules/regexp/regex.c: Undo 2005-03-18 patch.
	* modules/regexp/alloca_.h: New file, from gnulib.
	* modules/regexp/alloca.c: New file, from gnulib.
	* m4/alloca.m4: New file, from gnulib.
	* m4/restrict.m4: New file, from gnulib.
	* modules/regexp/configure.in: Invoke 'restrict' and 'alloca'
	requisites. Set ALLOCA to empty if we don't need it.
	* modules/regexp/Makefile.in (ALLOCA_H): New variable.
	(DISTRIBFILES): Add alloca.o if needed.
	(all): Depend on alloca.o if needed.
	(regex.o): Depend on $(ALLOCA_H).
	(alloca.o, alloca.h): New rules.
	(clean): Also remove alloca.h.
	* modules/regexp/link.sh.in (NEW_FILES, NEW_LIBS): Add alloca.o if
	needed.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* modules/rawsock/rawsock.c (RAWSOCK:HTONL): Make it work also if the
	system doesn't have the htonl() function.
	(RAWSOCK:NTOHL): Likewise for ntohl().
	(RAWSOCK:HTONS): Likewise for htons().
	(RAWSOCK:NTOHS): Likewise for ntohs().

2005-06-04  Bruno Haible  <bruno@clisp.org>

	Emulate Unix APIs on Woe32, not vice versa.
	* lispbibl.d (handle_dup): Remove declaration.
	(INVALID_HANDLE_VALUE, HNULLP): Remove macro.
	(handle_dup1): Remove macro.
	(handle_dup): New declaration, replaces handle_dup1.
	(handle_dup2): New declaration, replaces a case of handle_dup.
	* unix.d (Handle): Change to 'int'.
	(INVALID_HANDLE): New macro.
	* win32.d (INVALID_HANDLE): New macro.
	* pathname.d (handle_dup, handle_dup2): Replace old function
	handle_dup.
	(nullfile): Remove unused initializer.
	(mkpipe, init_launch_streamarg, make_launch_pipe, LAUNCH): Update.
	(LAUNCH) [UNIX]: Call dup2, not handle_dup2, since handle_dup2 does
	unwanted error handling.
	* stream.d (handle_to_stream): Update.
	* modules/syscalls/calls.c (POSIX::DUPLICATE-HANDLE): Update.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	Compile with gcc -Wmissing-declarations.
	* makemake.in (XCFLAGS): Add -Wmissing-declarations.
	* lispbibl.d: Include pseudofun.c with PSEUDO_C.
	(fehler_unencodable, mkops_from_handles, mkips_from_handles)
	(hashcode_lfloat, sigsegv_handler_failed, ext_show_stack): New
	declarations.
	* io.d (print): Make local.
	* pathname.d (fehler_pathname_designator): Make local.
	(mkops_from_handles, mkips_from_handles): Remove declarations.
	* stream.d (lisp_completion): Make local.
	Move pseudofun.c include with PSEUDO_C to lispbibl.d.
	* foreign.d (convert_to_foreign_allocaing): Make local.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	Remove warnings emitted by gcc -Wstrict-prototypes.
	* unix.d (errno): Don't declare. Assume <errno.h> does it.
	* spvw.d (print_banner): Define with void argument list.
	* stream.d (get_col): Likewise.
	* pathname.d (fix_parse_namestring_dot_file, nullfile)
	(interpret_launch_priority): Likewise.
	* hashtabl.d (get_eq_hashfunction, get_eql_hashfunction)
	(get_equal_hashfunction): Likewise.
	* debug.d (ext_show_stack): Likewise.
	* realtran.d (sin_stack, cos_stack): Likewise.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Encoding, Encoding_wcslen, Encoding_wcstombs, cslen)
	(cstombs, TheEncoding, TheMachineCode, ThePseudofun, Pseudofun):
	Emit to clisp.h.
	(with_string_0, with_sstring_0): Use cslen instead of cslen_f,
	cstombs instead of cstombs_f.
	* encoding.d (cslen_f, cslen_ff, cstombs_f, cstombs_ff): Remove
	functions.
	* genclisph.d (main): Don't emit cslen_f, cslen_ff, cstombs_f,
	cstombs_ff.
	* modules/syscalls/calls.c (LispToPropVariant, PropSpecSetStr)
	(with_string_0w): Use cslen instead of cslen_f, cstombs instead of
	cstombs_f.
	* modules/clx/new-clx/clx.f (to_XChar2b): Use cstombs instead of
	cstombs_f.

2005-06-06  Sam Steingold  <sds@gnu.org>

	* socket.d (MACHINE-INSTANCE, socket_getlocalname_aux)
	(socket_getpeername): avoid a GCC warning "value computed is not used"

2005-06-06  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp: use full paths for :LIBRARY
	arguments (needed on cygwin)

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* spvw_language.d (init_language): When argv_localedir is NULL, don't
	use any message catalogs, not even those in the default location
	/usr/share/locale.

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* clispload.lsp (*expected-failures*): Add DECLARATION.[4-11].

2005-06-06  Sam Steingold  <sds@gnu.org>

	* compelem.d (N_imagpart): use the normal Rational/Float contagion
	rules for reals
	* clispload.lsp (*expected-failures*): remove MISC.598

2005-06-06  Bruno Haible  <bruno@clisp.org>

	* win32.d (_UWIN): Remove macro.
	(lseek, isatty) [MINGW]: Define to clisp-private names.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Include the C code for generating clisp.h, with %%.
	* genclisph.d (main): Remove most statements. Include gen.lispbibl.c.
	Emit convert_time_to_universal_w32, convert_time_from_universal_w32 as
	inline functions.
	* makemake.in (CFILES): Add gen.lispbibl.
	(lispbibl.c): Blank out the %% lines.
	(gen.lispbibl.c): New rule.
	(genclisph.[oi]): Depend on gen.lispbibl.c.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* unix.d (time_t_from_filetime, time_t_to_filetime) [UNIX_CYGWIN32]:
	New declarations.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (convert_time_from_universal): New declaration.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (my_realloc): New declaration.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (stream_handles): New declaration.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (open_file_stream_handle, file_stream_truename): New
	declarations.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (addr_to_string, nonintr_connect, string_to_addr)
	(resolve_host, connect_to_x_server, socket_getlocalname)
	(socket_getpeername, create_server_socket, accept_connection)
	(create_client_socket): New declarations.
	* socket.d: Improve documentation.
	(create_server_socket, create_client_socket): Remove redundant
	declarations.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (check_classname): New declaration.
	* error.d (check_classname): Fix documentation.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (to_double, to_int): New declarations.
	* lisparit.d (to_double, to_int): Fix missing documentation.
	(to_double): Simplify.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (physical_namestring): New declaration.
	* pathname.d (physical_namestring): Improve documentation.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* pathname.d (MAKE-PATHNAME): Remove useless code introduced on
	2005-05-16.

2005-06-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (if_does_not_exist_symbol, if_exists_symbol): New
	declarations.

2005-06-05  Sam Steingold  <sds@gnu.org>

	* clispload.lsp (*expected-failures*): add MISC.598 (assumes
	that complex numbers have the same Re & Im types)

2005-06-03  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main_actions): Don't increase argv_verbose.
	Reported by David Tolpin <dvd@davidashen.net>.

2005-06-03  Bruno Haible  <bruno@clisp.org>

	* utils/fix-perms.sh: New file.
	* Makefile.devel (fixperms): New target.
	(all, distrib): Depend on it.

2005-06-02  Bruno Haible  <bruno@clisp.org>

	* win32.d: Include <errno.h>.

2005-06-01  Bruno Haible  <bruno@clisp.org>

	* spvw_language.d (init_language): Fix syntax error in last patch.

2005-06-01  Bruno Haible  <bruno@clisp.org>

	* m4/poll.m4 (CL_POLL): Check against MacOS X 10.4.0 poll() bug.

2005-05-30  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (SXHASH): Fix compilation error on platforms where
	24 < oint_data_len < 32, introduced on 2005-05-24.

2005-05-30  Bruno Haible  <bruno@clisp.org>

	Restore portability to Windows 95/98/ME/NT/2000.
	* win32.d (lseek): Declare as a function.
	* win32aux.d (lseek): New function.
	* spvw_memfile.d (loadmem_from_handle): Undo 2005-05-12 patch. Use the
	extended form of GetFileSize() instead.
	* stream.d (handle_lseek) [WIN32_NATIVE]: Use lseek.

2005-05-30  Bruno Haible  <bruno@clisp.org>

	* win32aux.d (lowlevel_fd_read, fd_write): Remove useless assignment.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	Store the documentation string of interpreted functions in the
	function object. Make DOCUMENTATION work for traced functions.
	* init.lisp (sys::%set-documentation): Undo last patch.
	(defun): Add the doc string back to the function's lambdabody.
	* functions.lisp (unwrapped-fdefinition): New function.
	* documentation.lisp (documentation): Undo last patch. Use
	unwrapped-fdefinition instead of fdefinition. Look for the docstring
	of a function first in the function object.
	((setf documentation)): Use unwrapped-fdefinition instead of
	fdefinition. Store the docstring also in the function object.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (*compile-file-resolved-pathname*): New variable.
	(compile-file): Bind it.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-OR): Rearrange 2005-05-20 patch for better
	maintainability.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	Fix a bug of DEBUG_GCSAFETY with modules.
	* genclisph.d (main): In nonimmprobe, don't optimize away inside_gc.
	Needed because gcv_object_t::gcv_object_t uses nonimmprobe, and all
	definitions of gcv_object_t::gcv_object_t must be equivalent, because
	the linker picks one of them at random.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	Fix omission in 2004-06-20 patch.
	* spvw_garcol.d (gc_sweep1_instance_forward)
	(gc_sweep1_instance_target) [TYPECODES]: Make it work for
	closure_type as well.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	Optimize the caching of the expansion of FUNCTION-MACRO-LET
	macroexpanders.
	* defmacro.lisp (make-macro-expansion): Return an additional second
	value, the expansion's lambdabody.
	(make-funmacro-full-lambdabody, make-funmacro-expander): New functions.
	* clos-methcomb2.lisp (add-next-method-local-functions): Insert the
	macroexpander's full lambdabody instead of the unprocessed lambdabody.
	* control.d (SYSTEM::FUNCTION-MACRO-LET): Call make-funmacro-expander
	instead of make-macro-expander.
	* compiler.lisp (c-FUNCTION-MACRO-LET): Likewise.
	* init.lisp (%expand-funmacdefs-2): Expand the macroexpander in the
	null lexical environment.
	(defmacro): Update.
	* macros1.lisp (defmacro-special): Update.
	* cmacros.lisp (define-compiler-macro): Update.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	Speedup creation of interpreted.mem and halfcompiled.mem.
	* init.lisp (%expand-lexical-variables, %expand-special-declarations):
	Declare inner lambdas as being already expanded.

2005-05-29  Bruno Haible  <bruno@clisp.org>

	* pathname.d (PARSE-NAMESTRING): Fix three GC-safety bugs introduced on
	2005-05-06.

2005-05-14  Bruno Haible  <bruno@clisp.org>

	* makemake.in (ansi-tests): Undo 2005-05-05 patch.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Fix unmaintainable hack introduced on 2005-05-16.
	* defmacro.lisp (make-macro-expansion): Add valid-name-p argument.
	* cmacros.lisp (define-compiler-macro): Pass valid-name-p argument.
	(strip-funcall-form): Mark as ABI.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Supplement to 2005-05-23 patch.
	* makemake.in (clisp): Remove COMPILE_STANDALONE from the compilation
	flags.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	* .gdbinit: Add comments reflecting 2005-05-17 change.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCFLAGS): Don't force HEAPCODES when DEBUG_GCSAFETY is
	used.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Fix a bug introduced on 2002-02-22.
	* spvw_language.d (init_language): Don't set O(current_language).
	Fixes a crash in TYPECODES && MAP_MEMORY && DEBUG_GCSAFETY builds.
	It is forbidden to work with 'object's before init_memory().

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with TYPECODES.
	* lispbibl.d (pointable, type_pointable, types_pointable): Move up.
	(pointable_unchecked): Rename from pointable. Use
	pointable_address_unchecked.
	(pointable_address_unchecked): New macro.
	(pointable): Rename from gcsafety_pointable.
	(nonimmprobe): Use pointable_address_unchecked.
	(hfintsize, hfint): Use a full word if DEBUG_GCSAFETY. When using a
	full word, use an uintP, not an uintL.
	(VAROBJECT_HEADER) [TYPECODES]: If DEBUG_GCSAFETY, don't wrap _GCself
	in a union.
	(GCself, header_flags) [TYPECODES]: Define differently if
	DEBUG_GCSAFETY.
	(cgci_pointable, pgci_pointable, ngci_pointable): Define also if
	TYPECODES.
	(cgci_types_pointable, pgci_types_pointable, ngci_types_pointable): New
	macros.
	(TheCons, TheRatio, TheComplex, TheSymbol, TheSymbolflagged, TheBignum)
	(TheFfloat, TheDfloat, TheLfloat, TheSarray, TheSbvector, TheCodevec)
	(TheS8string, TheS16string, TheS32string, TheSnstring, TheSistring)
	(TheSstring, TheSvector, TheIarray, TheRecord, TheLrecord, TheSrecord)
	(TheXrecord, ThePackage, TheHashtable, TheReadtable, ThePathname)
	(TheLogpathname, The_Random_state, TheByte, TheFsubr, TheLoadtimeeval)
	(TheSymbolmacro, TheGlobalSymbolmacro, TheMacro, TheFunctionMacro)
	(TheBigReadLabel, TheEncoding, TheFpointer, TheFaddress, TheFvariable)
	(TheFfunction, TheWeakpointer, TheMutableWeakList, TheWeakList)
	(TheWeakAnd, TheWeakOr, TheWeakmapping, TheWeakAndMapping)
	(TheWeakOrMapping, TheMutableWeakAlist, TheWeakAlist)
	(TheWeakHashedAlist, TheFinalizer, TheSocketServer, TheYetanother)
	(TheStream, TheStructure, TheClosure, TheIclosure, TheCclosure)
	(TheInstance, TheVarobject): Define using ngci_types_pointable.
	(TheSubr, TheFramepointer, TheMachine): Define using
	cgci_types_pointable.
	(ThePointer): Define using pgci_types_pointable.
	* subr.d (LISPFUN_F, LISPFUN_G) [TYPECODES]: Provide different
	definition if DEBUG_GCSAFETY.
	* constsym.d (LISPSYM_B) [TYPECODES]: Provide different definition
	if DEBUG_GCSAFETY.
	* genclisph.d (main): Update. Provide definitions for
	pointable_unchecked, pointable_address_unchecked, symbol_tab.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Fix compilation with g++ 3.3/3.4 if TYPECODES && OBJECT_STRUCT
	&& !DEBUG_GCSAFETY.
	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB):
	Don't define if OBJECT_STRUCT and g++ 3.3/3.4.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	* intserial.d (LEbytes_to_UI, LEbytes_to_I) [TYPECODES]: Fix
	compilation error in C++ mode with g++ 3.3 and 3.4.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (MAKE-HASH-TABLE) [TYPECODES]: Fix a compilation error
	in C++ mode.

2005-05-28  Bruno Haible  <bruno@clisp.org>

	Make it possible to use iconv() on platforms other than Unix. Fixes
	2005-03-01 patch.
	* lispbibl.d (ANSIC_error): New declaration.
	* errunix.d [!UNIX]: Define only OS_error.
	* error.d [!UNIX]: Include errunix.c, to define ANSIC_error.
	* stream.d (open_iconv, check_charset, iconv_mblen, iconv_mbstowcs)
	(iconv_wcslen, iconv_wcstombs, iconv_range, ChannelStream_fini):
	Undo 2005-03-01 patch. Call ANSIC_error instead of OS_error.
	* makemake.in (ERROR_INCLUDES): Add errunix unconditionally.

	* win32.d: Undefine HAVE_ICONV, in case it's set by unixconf.h (on
	mingw).

2005-05-27  Sam Steingold  <sds@gnu.org>

	* spvw_language.d (init_language) [WIN32_NATIVE]: avoid a mingw
	crash by setting argv_localedir to "" when it is NULL

2005-05-26  Sam Steingold  <sds@gnu.org>

	* _clisp.c [WIN32_NATIVE]: include <windows.h>

2005-05-26  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (MKDTEMP): new function
	* modules/syscalls/posix.lisp (MKDTEMP): export
	* modules/syscalls/configure.in (mkdtemp): check

2005-05-25  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-OR): fix last patch

2005-05-25  Sam Steingold  <sds@gnu.org>

	* defseq.lisp (LIST): use LIST-LENGTH-PROPER instead of LIST-LLENGTH
	* list.d, constsym.d, subr.d (list_llength): remove

2005-05-25  Sam Steingold  <sds@gnu.org>

	* control.d (PROCLAIM): forbid dotted declaration-specifier lists

2005-05-25  Sam Steingold  <sds@gnu.org>

	* documentation.lisp (documentation): return NIL for NIL
	because NIL = (FUNCTION-NAME (COMPILE NIL (LAMBDA () ...)))
	* init.lisp (%set-documentation): ditto

2005-05-24  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (SXHASH): when fixnums are large enough, do not fold
	the value to fit into 24 bits: consider (SXHASH (1- (ASH 1 32))):
	On 32-bit platforms, hashcode_bignum() is used (returns 3 ==> 3).
	On 64-bit platforms, hashcode_fixnum() is used (4294967175 ==> 135).
	Therefore, limiting ourselves to 24 bits on all platforms
	does not buy us anything anyway.

2005-05-24  Sam Steingold  <sds@gnu.org>

	pcre 3 lacks pcre_config()
	* modules/pcre/configure.in: check for pcre_config()
	* modules/pcre/cpcre.c (pcre-config) [HAVE_PCRE_CONFIG]: add condition

2005-05-24  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler): Treat WIN32_NATIVE like
	UNIX_CYGWIN.
	Based on a patch by Doug Currie <e@flavors.com>.

2005-05-23  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [!BINARY_DISTRIB]: do not expect gnu tr
	* _clisp.c: do not include lispbibl.c because it is not included
	with a binary distribution; include execname.c textually
	* execname.c (maybe_executable): do not use boolean constants
	(find_executable): use "unsigned long" instead of "uintL"

2005-05-22  Bruno Haible  <bruno@clisp.org>

	* stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs.
	(INT64_MIN): Fix definition.
	Suggested by Paul Eggert <eggert@cs.ucla.edu>.

	* stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Rename from
	NEED_SIGNED_INT_TYPES.

	* stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Rename from
	HAVE_SYSTEM_INTTYPES.

2005-05-22  Bruno Haible  <bruno@clisp.org>

	* m4/ffcall-smallstruct.m4 (CL_SMALL_STRUCT_RETURN): Use 'long'
	instead of 'int'. Needed because on sparc64, 'int' has 32 bits,
	a function returning a 'struct { int x; }' returns the result in the
	32 _high_ bits of %o0, whereas a function returning 'int' returns the
	result in the 32 _low_ bits of %o0 (sign-extended to 64 bits).
	Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.

2005-05-22  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (make_display): when fixnum size is less
	than 29, use STABLEHASH-EQUAL hash table, otherwize STABLEHASH-EQ
	(xlib_a_cons): not needed when fixnum can hold XID
	(XID_to_object_old, XID_to_object_new): define differently depending on
	whether fixnum can hold XID or not
	(lookup_xid, delete_resource_id): use XID_to_object_old
	(set_resource_id): use XID_to_object_new

2005-05-20  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_symbol_values): UNIX_CYGWIN -> UNIX_CYGWIN32

2005-05-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp (SOCKET-OPTION): simplified DEFSETF
	* modules/syscalls/calls.c (SET-PRIORITY): made value the first
	argument, it is easier to return it this way
	* modules/syscalls/posix.lisp (PRIORITY): update DEFSETF

2005-05-20  Bruno Haible  <bruno@clisp.org>

	* spvw.d (print_license): Update FSF postal address.

2005-05-20  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file): as per the ANSI CL spec,
	bind *COMPILE-FILE-PATHNAME* to (merge-pathnames file)

2005-05-20  Sam Steingold  <sds@gnu.org>

	* makemake.in: remove duplicated link options only needed for early
	versions of Solaris

2005-05-20  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-OR): (or ... (foo) nil) ==> (or ... (values (foo)))
	this permits a better optimization of (COND ((...))),
	i.e., when a clause consists of just the test form.
	This adds 71 bytes to compiler.fas (0.01%) and removes 91 bytes
	total from all the other files, for a net change of 20 bytes (0.0005%)

2005-05-20  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (SHUT_RD, SHUT_WR, SHUT_RDWR)
	[WIN32_NATIVE]: defined
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-05-19  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_handles): made global for modules;
	respect check_open for streams
	* genclisph.d (SOCKET) [UNIX]: emit typedef
	[WIN32_NATIVE]: include winsock2.h for SOCKET
	(stream_handles): export
	* modules/rawsock/rawsock.c (RAWSOCK:SOCKET-OPTION)
	(RAWSOCK::SET-SOCKET-OPTION): use stream_handles()

2005-05-19  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (RAWSOCK:SOCKET-OPTION)
	(RAWSOCK::SET-SOCKET-OPTION): new functions
	* modules/rawsock/sock.lisp (RAWSOCK:SOCKET-OPTION): new defsetf

2005-05-19  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp (open-unix-socket): add the package
	prefix for EXT:ABSOLUTE-PATHNAME
	(open-unix-socket-stream): ditto for EXT:FINALIZE

2005-05-18  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (split-option): remove an absurd check
	(split-command): do not call SPLIT-OPTION on all ARGS
	(def-something-p): call SPLIT-OPTION just on the options
	(split-command, extract-argument-string, check-signature, new-checker):
	standardized error message

2005-05-18  Sam Steingold  <sds@gnu.org>

	* genclisph.d (sec_usec): export

2005-05-18  Sam Steingold  <sds@gnu.org>

	* m4/tcpconn.m4 (CL_TCPCONN): check for getsockopt() here
	* configure.in: do not check for getsockopt() here
	* modules/rawsock/configure.in: use CL_TCPCONN

2005-05-17  Sam Steingold  <sds@gnu.org>

	* .gdbinit (ansi_tests_compiled): new command
	(SIGSEGV, SIGBUS): do not handle (commented out): gdb 6+ does not
	stop .gdbinit processing after a failed command, so SIGSEGV
	remained handled even on platforms without GENERATIONAL_GC

2005-05-16  Sam Steingold  <sds@gnu.org>

	* init.lisp (open-for-load): return FILENAME as is only if it is
	an open input stream, symmetric to COMPILE-FILE-PATHNAME-HELPER

2005-05-16  Sam Steingold  <sds@gnu.org>

	* pathname.d (MAKE-PATHNAME): accept :DEVICE :UNSPECIFIC to mean
	NIL because of COMPILE-FILE-PATHNAME with logical :OUTPUT-FILE

2005-05-16  Sam Steingold  <sds@gnu.org>

	* defmacro.lisp (make-macro-expansion): when PRE-PROCESS is supplied,
	this is a DEFINE-COMPILER-MACRO call, so name could be a (SETF symbol)

2005-05-16  Sam Steingold  <sds@gnu.org>

	* documentation.lisp (documentation): return NIL for KEYWORDs
	because :LAMBDA = (FUNCTION-NAME (LAMBDA () ...)) for all LAMBDAs
	* init.lisp (%set-documentation): ditto

2005-05-16  Sam Steingold  <sds@gnu.org>

	* pathname.d (ENOUGH-NAMESTRING): check consp() before taking Car()

2005-05-16  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file): return the FAS file truename as per ANSI

2005-05-14  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/Makefile.in (bdb.o): depend on clisp.h
	* modules/clx/new-clx/Makefile.in (clx.o): ditto
	* modules/dirkey/Makefile.in (dirkey.o): ditto
	* modules/i18n/Makefile.in (gettext.o): ditto
	* modules/queens/Makefile.in (callqueens.o): ditto
	* modules/rawsock/Makefile.in (rawsock.o): ditto
	* modules/regexp/Makefile.in (regexi.o): ditto
	* modules/syscalls/Makefile.in (calls.o): ditto
	* modules/postgresql/Makefile.in (.o): ditto
	* modules/bindings/glibc/Makefile.in (linux.o): ditto
	* modules/bindings/win32/Makefile.in (win32.o): ditto
	* modules/matlab/Makefile.in (matlab.o): ditto
	* modules/netica/Makefile.in (netica.o): ditto
	* modules/pari/Makefile.in (pari.o): ditto
	* modules/wildcard/Makefile.in (wildcard.o): ditto
	* modules/zlib/Makefile.in (zlib.o): ditto
	* modules/regexp/regexi.c: include "clisp.h", not <clisp.h>

2005-05-14  Sam Steingold  <sds@gnu.org>

	when lndir copies or hard links, "cvs up" required "rm -rf module-dir"
	* makemake.in (anymodule): always call lndir, even when
	destination exists
	* lndir: when destination exists, update it

2005-05-13  Bruno Haible  <bruno@clisp.org>

	* makemake.in (clisp): Set COMPILE_STANDALONE. Fixes link error
	introduced on 2005-03-10.

2005-05-13  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Make VAROBJECT_HEADER definition consistent with
	lispbibl.d. Undo LISPFUN_F modification from 2005-03-29.

2005-05-13  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main) [UNIX_DARWIN && TYPECODES && TRIVIALMAP_MEMORY]:
	Provide a good location of heaps.

2005-05-13  Bruno Haible  <bruno@clisp.org>

	Make it possible to use 64-bit integer types with MSVC.
	* stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t)
	(int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX)
	(UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX)
	(INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN)
	(INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C):
	Add support for 64-bit integers in the MSVC compiler.
	* lispbibl.d (LL, ULL): New macros.
	(oint_type_mask, oint_addr_mask) [WIDE_SOFT]: Use ULL macro.
	(vbit, vbitm, minus_vbit, wbit, wbitm, minus_wbit): Use ULL macro.
	* genclisph.d (main): Emit definitions for LL, ULL. Update vbit,
	vbitm, minus_vbit, wbit, wbitm, minus_wbit.
	* unixaux.d (FACTOR, NSPERSEC): Use LL macro.
	* arilev0.d (divu_6464_6464): Use cast instead of ULL.
	* aridecl.d (wbitc): Define also if MICROSOFT. Use ULL macro.
	* intlog.d (logcount_64): Use ULL macro.
	* intmal.d (FN_fak_I): Use ULL macro.

2005-05-11  Bruno Haible  <bruno@clisp.org>

	Support for 48-bit wide fixnums.
	* lispbibl.d (WIDE_SOFT): Set if WIDE_SOFT_LARGEFIXNUM is set.
	(dotimesV, dotimespV): New macros.
	(WIDE_STRUCT): Don't define if WIDE_SOFT_LARGEFIXNUM.
	(oint_data_len): Increase from 32 to 40 or 48 where possible.
	(oint_data_mask): Update accordingly.
	(oint_type_len, oint_addr_len) [WIDE_SOFT]: Define differently if
	WIDE_SOFT_LARGEFIXNUM is set.
	(intVsize): New macro.
	(uintV, sintV): New types.
	(GENERATIONAL_GC): Don't define if WIDE_SOFT_LARGEFIXNUM is set.
	(vbit, vbitm, vbit_test, minus_vbit): New macros.
	(Fixnum_minus1): Use vbit* macros.
	(posfixnum_to_V): Rename from posfixnum_to_L. Return an uintV value.
	(negfixnum_to_V): Rename from negfixnum_to_L. Return an uintV value.
	(negfixnum_abs_V): Rename from negfixnum_abs_L. Return an uintV value.
	(fixnum_to_V): Rename from fixnum_to_L. Return a sintV value.
	(fixnum_to_Q): Cast to sintQ.
	(make_small_read_label, small_read_label_integer_p)
	(small_read_label_value): Use uintV type and vbit* macros.
	(make_system): Likewise.
	(TheHandle): Use posfixnum_to_V instead of posfixnum_to_L.
	(arraysize_limit_1): Define as 2^32-1 if oint_data_len > 32.
	(array_displace_check): Change second argument type to uintV.
	(map_hashtable, map_hashtable_nogc): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(fehler_stringsize): Change argument type to uintV.
	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64): New
	declarations.
	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong): New macros.
	(L2_to_I, UL2_to_I): Define as macros if intVsize>32.
	(Q_to_I, UQ_to_I): Declare also if intVsize>32.
	(V_to_I, UV_to_I): New macros.
	(uint64_to_I, sint64_to_I): Define also if intVsize>32.
	(I_to_uint, I_to_sint): Define always.
	* genclisph.d (main): Emit definitions of uintV, sintV. Update for
	Fixnum_minus1. Emit posfixnum_to_V, negfixnum_to_V, fixnum_to_V
	instead of posfixnum_to_L, negfixnum_to_L, fixnum_to_L. Update for
	make_system, array_displace_check. Emit declarations for
	fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16,
	fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64,
	fehler_uint, fehler_sint, fehler_ulong, fehler_slong, L2_to_I, UL2_to_I,
	Q_to_I, UQ_to_I. Emit definitions for V_to_I, UV_to_I. Update for
	uint64_to_I, sint64_to_I.
	Emit check_uint_defaulted instead of posfixnum_default2.
	Emit check_uint_default0 instead of posfixnum_default.
	* error.d (begin_error): Use posfixnum_to_V instead of posfixnum_to_L.
	(fehler_stringsize): Change argument type to uintV.
	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64): New
	functions.
	* arilev0.d (high32, low32, highlow64, highlow64_0): New macros.
	(mulu32_64): New macro.
	(divu_6432_6432, divu_6464_6464): New macros.
	* intelem.d (get_maxV_Dptr): New macro.
	(FN_to_V): Rename from FN_to_L.
	(FN_V_zerop): Rename from FN_L_zerop.
	(FN_V_minusp): Rename from FN_L_minusp.
	(I_to_UL): When intVsize>32, reject values >= 2^32.
	(I_to_L): When intVsize>32, reject values >= 2^31 or < -2^31.
	(I_to_UQ): Use posfixnum_to_V instead of posfixnum_to_L.
	(I_to_Q): Likewise. Use negfixnum_to_V instead of negfixnum_to_L.
	(L2_to_I, UL2_to_I): Comment out if intVsize>32.
	(Q_to_I): Enable if intVsize>32. Use wbitc macro.
	(UQ_to_I): Enable if intVsize>32.
	(NDS_to_I): If intVsize>32, use 64-bit variables.
	(pFN_maxlength_digits_at): Return a value of type uintV instead of
	uint32.
	* intlog.d (I_to_DS_n_): Use uintV instead of uint32.
	(I_I_logand_I, I_I_lognand_I, I_I_logandc2_I, I_I_logtest, I_I_logbitp)
	(I_I_ash_I): Use uintV instead of uint32. Use vbit* macros.
	(logcount_64): New macro.
	(I_logcount_I): Use uintV instead of uint32. Use logcount_64 if
	intVsize>32.
	(integerlength64): New macro.
	(I_integer_length, I_integer_length_I): Use uintV instead of uint32.
	Use integerlength64 if intVsize>32.
	(ord2_64): New macro.
	(I_ord2): Use uintV instead of uint32. Use ord2_64 if intVsize>32.
	(I_power2p): Use uintV instead of uint32. Use integerlength64 if
	intVsize>32.
	* intplus.d (I_I_plus_I, I_minus_I, I_I_minus_I): Use FN_to_V/V_to_I
	instead of FN_to_L/L_to_I. Use sintV instead of sint32.
	* intbyte.d (Byte_to_V_V): Rename from Byte_to_L_L. Use posfixnum_to_V
	instead of posfixnum_to_L.
	(fullbyte_I): Change argument types to uintV.
	(I_Byte_ldb_I, I_Byte_ldb_test, I_Byte_mask_field_I): Use uintV instead
	of uintL.
	* intmal.d (I_square_I, I_I_mal_I): Use sintV instead of sint32.
	(prod_ungerade): Change argument types to uintV.
	(FN_fak_I): Extend table. Use uintV instead of uintL.
	* intdiv.d (I_I_divide_I_I): Handle case intVsize>32 when dividing
	fixnums.
	* intgcd.d (UV_UV_gcd_UV): Rename from UL_UL_gcd_UL. Change argument
	types to uintV.
	(I_I_gcd_I): Update.
	* intserial.d (LESbvector_to_UI, LESbvector_to_I): Use uintV instead of
	uintL.
	(UI_to_LEbytes, I_to_LEbytes): Likewise.
	* sfloat.d (RA_to_SF): Use posfixnum_to_V instead of posfixnum_to_L.
	* ffloat.d (RA_to_FF): Use posfixnum_to_V instead of posfixnum_to_L.
	* flo_rest.d (SF_I_scale_float_SF, FF_I_scale_float_FF)
	(DF_I_scale_float_DF, LF_I_scale_float_LF): Use uintV instead of uintL.
	* realtran.d (R_sin_R, R_cos_R, R_cos_sin_R_R): Use posfixnum_to_V
	instead of posfixnum_to_L.
	* comptran.d (N_N_expt_N): Use uintV instead of uintL.
	* lisparit.d (FLOAT-DIGITS): Use uintV instead of uintL.
	(SYS::RANDOM-POSFIXNUM): When oint_data_len>32, call random_L twice.
	((SETF LONG-FLOAT-DIGITS), log_digits): Use uintV instead of uintL.
	* affi.d (affi_callit, affi_call_argsa): Use fixnum_to_V instead of
	fixnum_to_L.
	(SYSTEM::MEM-READ, SYSTEM::MEM-WRITE): Use posfixnum_to_V instead of
	posfixnum_to_L. Use negfixnum_to_V instead of negfixnum_to_L.
	* array.d (array_displace_check): Change second argument type to uintV.
	(test_subscripts, test_index): Use uintV instead of uintL.
	(storagevector_store): Likewise.
	(ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE): Likewise.
	(ARRAY-DIMENSION, ARRAY-IN-BOUNDS-P): Likewise.
	(SET-FILL-POINTER, VECTOR-PUSH-EXTEND): Likewise.
	(test_dims): Verify that each dimension is < 2^32.
	(test_displaced, test_fillpointer): Use uintV instead of uintL.
	(MAKE-ARRAY, reshape, ADJUST-ARRAY): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(SYS::VECTOR-INIT-START, SYS::VECTOR-FE-INIT-END): Likewise.
	(SYS::MAKE-BIT-VECTOR): Verify that the argument is < 2^32.
	* charstrg.d (coerce_char): Use uintV instead of uintL.
	(test_radix_arg): Likewise.
	(CODE-CHAR, DIGIT-CHAR, INT-CHAR): Likewise.
	(test_index): Expect an assignment to an uintV. Use posfixnum_to_V
	instead of posfixnum_to_L.
	(test_index_arg, test_vector_limits, test_1_stringsym_limits)
	(test_2_stringsym_limits): Use uintV instead of uintL.
	(MAKE-STRING, SUBSTRING): Likewise.
	* debug.d (read_form): Use posfixnum_to_V instead of posfixnum_to_L.
	(test_mode_arg): Use uintV instead of uintL.
	(top_of_back_trace_frame): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(SHOW-STACK): Use uint32_p/I_to_uint32 instead of
	posfixnump/posfixnum_to_L.
	* control.d (SYSTEM::%EXIT): Use uint_p/I_to_uint instead of
	posfixnump/posfixnum_to_L.
	(SYS::UNWIND-TO-DRIVER): Use uint32_p/I_to_uint32 instead of
	posfixnump/posfixnum_to_L.
	* encoding.d (SYSTEM::CHARSET-RANGE): Use uint32_p/I_to_uint32 instead
	of posfixnump/posfixnum_to_L.
	* eval.d (SYS::%FUNTABREF): Use uintV instead of uintL.
	(invoke_handlers): Use posfixnum_to_V instead of posfixnum_to_L.
	(get_closure, funcall_iclosure, eval_fsubr): Likewise.
	(interpret_bytecode_): Use fixnum_to_V instead of fixnum_to_L. Use
	posfixnum_to_V instead of posfixnum_to_L. Use uintV instead of uintL.
	Use vbit* macros.
	* foreign.d (convert_function_to_foreign): Use uintV instead of uintL.
	(FFI::LOOKUP-FOREIGN-VARIABLE): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(FFI::%ELEMENT, FFI::CALL-WITH-FOREIGN-STRING): Use uintV instead of
	uintL.
	(FFI::FOREIGN-CALL-OUT, callback): Use posfixnum_to_V instead of
	posfixnum_to_L.
	* hashtabl.d (hashcode1stable): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(rehash, hash_lookup_builtin, hash_lookup_user, hash_store): Likewise.
	(prepare_resize): Use uintV instead of uintL.
	(resize, clrhash, MAKE-HASH-TABLE, REMHASH, MAPHASH)
	(SYSTEM::HASH-TABLE-ITERATE, (SETF HASH-TABLE-WEAK-P))
	(CLOS::CLASS-GETHASH, hashcode_tuple, CLOS::CLASS-TUPLE-GETHASH):
	Use posfixnum_to_V instead of posfixnum_to_L.
	* io.d (syntax_table_get_notinline): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(SET-MACRO-CHARACTER, GET-MACRO-CHARACTER, RTCase): Likewise.
	(get_base): Use uintV instead of uintL.
	(bit_vector_reader, vector_reader): Use uintV instead of uintL.
	Signal error if n >= 2^32.
	(lookup_label): Use posfixnum_to_V instead of posfixnum_to_L.
	(closure_reader): Use uintV instead of uintL. Signal error if n >= 2^32.
	(PARSE-INTEGER): Use uintV instead of uintL.
	(spaces): Use uintV instead of uintL.
	(format_tab): Use posfixnum_to_V instead of posfixnum_to_L.
	(pprint_prefix): Change return type to uintV.
	(right_margin, klammer_zu): Use uintV instead of uintL.
	(justify_end_fill): Use posfixnum_to_V instead of posfixnum_to_L.
	(justify_end_linear): Use uintV instead of uintL.
	(indent_start): Change argument type to uintV.
	(indentprep_end): Change return type to uintV.
	(level_check): Use posfixnum_to_V instead of posfixnum_to_L.
	(get_print_length): Likewise.
	(check_lines_limit, circle_p, pr_circle, space_available): Use uintV
	instead of uintL.
	(string_fit_line_p): Use posfixnum_to_V instead of posfixnum_to_L.
	(pr_enter_1): Use uintV instead of uintL.
	(get_indent_lists): Change return type to uintV.
	(pr_array): Use uintV instead of uintL.
	(pr_orecord): Use posfixnum_to_V instead of posfixnum_to_L.
	(pr_cclosure_codevector): Use uintV instead of uintL.
	(PPRINT-INDENT): Use sintV instead of int. Verify range when using
	fixnum_to_V. Use uintV instead of uintL.
	* list.d (get_integer_truncate): If intVsize>32, check whether the
	argument is >= 2^32.
	* package.d (rehash_symtab, symtab_lookup, symtab_find, symtab_insert)
	(symtab_delete, map_symtab, map_symtab_c, SYSTEM::PACKAGE-ITERATE):
	Use posfixnum_to_V instead of posfixnum_to_L.
	* predtype.d (hash_table_equalp): Use posfixnum_to_V instead of
	posfixnum_to_L.
	(expand_deftype): Use uintV instead of uintL.
	(init_hs_locals, with_gc_statistics): Use posfixnum_to_V instead of
	posfixnum_to_L.
	* record.d (record_up): Use uintV instead of uintL.
	(test_record_length): Expect an uintV variable.
	(structure_up, SYS::%MAKE-STRUCTURE, SYS::MAKE-CODE-VECTOR)
	(CLOS::ALLOCATE-METAOBJECT-INSTANCE, CLOS::ALLOCATE-STD-INSTANCE)
	(CLOS::ALLOCATE-FUNCALLABLE-INSTANCE): Use uintV instead of uintL.
	(ptr_to_slot): Use posfixnum_to_V instead of posfixnum_to_L.
	(slot_access_up, update_instance): Use uintV instead of uintL.
	(CLOS::%CHANGE-CLASS): Use posfixnum_to_V instead of posfixnum_to_L.
	* sequence.d (copy_seqpart_into): Use uintV instead of uintL.
	(seq_check_index): Use posfixnum_to_V instead of posfixnum_to_L.
	(REVERSE, NREVERSE): Use uintV instead of uintL.
	(MAKE-SEQUENCE): Use elt_fill only if the size is < 2^32.
	(MAP-INTO): Use posfixnum_to_V instead of posfixnum_to_L.
	(FILL): Use uintV instead of uintL.
	(help_function): Change argument types to uintV.
	(seq_filterop): Use uintV instead of uintL.
	(remove_help, delete_help): Change argument types to uintV.
	(remove_op, delete_op): Use uintV instead of uintL.
	(remove_duplicates_list_from_start, delete_duplicates_list_from_start)
	(delete_duplicates_list_from_end):
	Change argument type to uintV.
	(seq_duplicates): Use uintV instead of uintL.
	(substitute_help): Change argument types to uintV.
	(substitute_op): Use uintV instead of uintL.
	(nsubstitute_fe_help): Change argument types to uintV.
	(READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE)
	(WRITE-BYTE-SEQUENCE): Use uintV instead of uintL.
	* spvw.d (define_constant_UL1): Use UV_to_I instead of UL_to_I.
	(print_banner): Use posfixnum_to_V instead of posfixnum_to_L.
	(main): Use vbit* macros.
	* spvw_debug.d (nobject_out1): Use posfixnum_to_V instead of
	posfixnum_to_L.
	* spvw_garcol.d (uintVLA): Rename from uintV.
	(move_aligned_p1_p2): Update.
	* spvw_weak.d (weak_hashed_alist_update_one): Use posfixnum_to_V
	instead of posfixnum_to_L.
	* stream.d (wr_ss_lpos): Use uintV instead of uintL.
	(stream_get_lastchar, stream_set_lastchar): Use posfixnum_to_V instead
	of posfixnum_to_L.
	(read_byte_array, write_byte_array, read_char_array): Use uintV instead
	of uintL.
	(write_char, write_char_array, harden_elastic_newline): Use
	posfixnum_to_V instead of posfixnum_to_L.
	(rd_ch_str_in, rd_ch_array_str_in, listen_char_str_in, rd_ch_buff_in)
	(listen_char_buff_in, test_eltype_arg): Use uintV instead of uintL.
	(wr_by_iau8_unbuffered, wr_by_iau8_buffered): Use posfixnum_to_V
	instead of posfixnum_to_L.
	(make_file_stream): Use uintV instead of uintL.
	(rd_ch_terminal2): Likewise.
	(listen_char_terminal2): Use posfixnum_to_V instead of posfixnum_to_L.
	(rd_ch_terminal3): Use uintV instead of uintL.
	(listen_char_terminal3): Use posfixnum_to_V instead of posfixnum_to_L.
	(SCREEN::SET-WINDOW-CURSOR-POSITION): Likewise.
	(SYS::MAKE-SOCKET-STREAM): Use uint16_p/I_to_uint16 instead of
	posfixnump/posfixnum_to_L.
	(test_n_bytes_args): Use uint32_p/fehler_uint32 instead of
	posfixnump/fehler_posfixnum.
	(create_server_socket): Use uint16_p/I_to_uint16 instead of
	posfixnump/posfixnum_to_L.
	(sec_usec): Use uint32_p/fehler_uint32 instead of
	posfixnump/fehler_posfixnum.
	(SOCKET-CONNECT): Use uint16_p/I_to_uint16 instead of
	posfixnump/posfixnum_to_L.
	(stream_handles): Use uint_p/I_to_uint instead of
	posfixnump/posfixnum_to_L.
	(sock_opt_int): Mark as maygc. Use uint_to_I instead of posfixnum.
	Use uint_p/I_to_uint instead of posfixnump/posfixnum_to_L.
	(SOCKET-OPTIONS): Use uint_p/I_to_uint/fehler_uint instead of
	posfixnump/posfixnum_to_L/fehler_posfixnum.
	(MAKE-STREAM): Use uint_p/I_to_uint instead of
	posfixnump/posfixnum_to_L.
	(get_line_position): Use uintV instead of uintL.
	(elastic_newline_pending_p, elastic_newline, stream_get_read_eval)
	(stream_set_read_eval): Use posfixnum_to_V instead of posfixnum_to_L.
	* time.d (SYS::DEFAULT-TIME-ZONE, SYSTEM::%SLEEP): Use posfixnum_to_V
	instead of posfixnum_to_L.
	(SYS::DELTA4): Use uintV instead of uintL.
	* weak.d (WEAK-LIST-LIST, WEAK-ALIST-CONTENTS, (SETF WEAK-ALIST-VALUE)):
	Use posfixnum_to_V instead of posfixnum_to_L.
	* modules/berkeley-db/bdb.c (BDB:DBE-CREATE): Use uint_p/I_to_uint
	instead of posfixnump/posfixnum_to_L.
	(BDB:DBE-OPEN): Update.
	(BDB:DBE-SET-OPTIONS): Use check_uint/I_to_uint instead of
	check_posfixnum/posfixnum_to_L.
	(BDB:DB-OPEN): Update.
	(BDB:DB-JOIN): Use posfixnum_to_V instead of posfixnum_to_L.
	(BDB:DB-SET-OPTIONS): Use check_uint/I_to_uint instead of
	check_posfixnum/posfixnum_to_L.
	(BDB:TXN-CHECKPOINT): Update.
	* modules/clx/new-clx/clx.f (get_fixnum): Use fixnum_to_V instead of
	fixnum_to_L.
	* modules/dirkey/dirkey.c (state_next_key, LDAP::DKEY-SEARCH-NEXT-ATT):
	Use posfixnum_to_V instead of posfixnum_to_L.
	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): Update.
	* modules/i18n/gettext.c (I18N:NGETTEXT): Use uint32_p/I_to_uint32
	instead of posfixnump/posfixnum_to_L.
	* modules/queens/callqueens.c (USER::QUEENS): Use check_uint/I_to_uint
	instead of check_posfixnum/posfixnum_to_L. Change result type from
	uint32 to 'unsigned int'.
	* modules/rawsock/rawsock.c (RAWSOCK:SOCKATMARK, RAWSOCK:ACCEPT)
	(RAWSOCK:BIND, RAWSOCK:CONNECT, RAWSOCK:GETPEERNAME)
	(RAWSOCK:GETSOCKNAME, RAWSOCK:LISTEN, RAWSOCK:RECV, RAWSOCK:RECVFROM)
	(RAWSOCK:RECVMSG, RAWSOCK:SOCK-READ, RAWSOCK:SEND, RAWSOCK:SENDMSG)
	(RAWSOCK:SENDTO, RAWSOCK:SOCK-WRITE, RAWSOCK:SOCK-CLOSE)
	(RAWSOCK:SHUTDOWN, RAWSOCK:CONFIGDEV): Use check_uint/I_to_uint
	instead of check_posfixnum/posfixnum_to_L.
	* modules/regexp/regexi.c (REGEXP::REGEXP-EXEC): Update.
	* modules/syscalls/calls.c (POSIX::STREAM-LOCK): Use uint_p/I_to_uint
	instead of posfixnump/posfixnum_to_L.
	(POSIX:GETSID, POSIX:GETPGRP, POSIX:SETPGID, POSIX:KILL, OS:PRIORITY)
	(OS:SET-PRIORITY): Use check_uint32/I_to_uint32 instead of
	check_posfixnum/posfixnum_to_L.
	(POSIX::USER-DATA, POSIX::SET-FILE-STAT, POSIX::CONVERT-MODE): Use
	check_uint32/I_to_uint32 instead of check_posfixnum/posfixnum_to_L.
	(POSIX::CONVERT-MODE): Use integerp instead of posfixnump, uint32_to_I
	instead of fixnum.
	(POSIX::DUPLICATE-HANDLE): Use check_uint/I_to_uint instead of
	check_posfixnum/posfixnum_to_L.
	(POSIX::CONVERT-ATTRIBUTES, POSIX::MAKE-SHORTCUT): Use
	check_uint32/I_to_uint32 instead of check_posfixnum/posfixnum_to_L.

2005-05-11  Bruno Haible  <bruno@clisp.org>

	* intelem.d (FN_MSD): Define in a way that doesn't require the sintDD
	type.

2005-05-11  Bruno Haible  <bruno@clisp.org>

	Fix bug introduced on 2005-01-27.
	* lispbibl.d (defined_class_length): New macro.
	(built_in_class_length): Define based on defined_class_length.

2005-05-13  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c: update for PCRE5

2005-05-13  Sam Steingold  <sds@gnu.org>

	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
	avoid bootstrapping problems by not using LOAD-TIME-EVAL

2005-05-12  Sam Steingold  <sds@gnu.org>

	support 4GB+ files on woe32
	* lispbibl.d (off_to_I): new macro
	* win32.d (off_t): define to sint64
	(SIZEOF_OFF_T): define to 8
	* pathname.d (READDIR_entry_size): return a 64-bit number
	(directory_search_scandir) [WIN32_NATIVE]:
	entry_size is off_t, not uintL
	(loadmem_from_handle) [WIN32_NATIVE]:
	use GetFileSizeEx() instead of GetFileSize()
	* stream.d (handle_lseek) [WIN32_NATIVE]: use SetFilePointerEx()
	instead of SetFilePointer()

2005-05-12  Sam Steingold  <sds@gnu.org>

	* io.d (signal_reader_error): expect STREAM in sp
	(read_internal): pass stream_ in sp

2005-05-11  Bruno Haible  <bruno@clisp.org>

	Make it possible to use 'aint' = 'uint64' on 32-bit machines.
	* lispbibl.d (type_pointer_object) [TYPECODES]: If WIDE_SOFT, cast
	the address to uintP first, to force zero-extend instead of sign-extend.
	* genclisph.d (main): Likewise.

2005-05-11  Bruno Haible  <bruno@clisp.org>

	Fix bug in handling of reallocated simple-strings with TYPECODES,
	introduced on 2004-02-18.
	* lispbibl.d (sstring_flags) [TYPECODES]: Include the forwarded_B bit.

2005-05-12  Sam Steingold  <sds@gnu.org>

	* stream.d (finish_tty_output) [UNIX_DARWIN]:
	ignore EOPNOTSUPP and ENODEV, just like in clear_tty_output()
	Reported by Pascal Costanza <pc@p-cos.net>

2005-05-12  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file-pathname-helper): return OUTPUT-FILE
	as is only if it is an open output stream

2005-05-12  Sam Steingold  <sds@gnu.org>

	* io.d (pr_orecord): enable saving pathnames into *.fas files even
	when *PRINT-PATHNAMES-ANSI* is non-NIL

2005-05-11  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): add DISASSEMBLE.ERROR.3:
	CLISP extends DISASSEMBLE to accept STRINGs, METHODs, and forms

2005-05-11  Sam Steingold  <sds@gnu.org>

	* error.d (end_error): READER-ERROR also accepts :STREAM
	* backquote.lisp (backquote-reader, comma-reader)
	(bq-non-list-splice-error, bq-dotted-splice-error): ditto

2005-05-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (utmpx_to_lisp):
	add casts to avoid C++ warnings
	* modules/syscalls/configure.in (time_t, suseconds_t): AC_CHECK_SIZEOF
	(utmpx.ut_host): check only when <utmpx.h> is present

2005-05-10  Sam Steingold  <sds@gnu.org>

	* places.lisp (define-setf-expander, defsetf): pass
	SETF-EXPANDER instead of "SETF expander" to CHECK-REDEFINITION
	* init.lisp (check-redefinition): when WHAT is SETF-EXPANDER,
	avoid unnecessary warnings for SUBRs

2005-05-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (PATH) [win32gcc]: add /mingw/bin

2005-05-10  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, intelem.d (I_to_Q, I_to_UQ) [HAVE_LONGLONG]: always define

2005-05-10  Sam Steingold  <sds@gnu.org>

	better error checking for UNION at al
	* list.d (LIST-LENGTH-PROPER): new function
	* constsym.d, subr.d (list_length_proper): add
	* init.lisp (list-length-proper): export
	* error.d (fehler_proper_list_dotted): EXPECTED-TYPE = PROPER-LIST
	* defs1.lisp (list-to-ht): use LIST-LENGTH-PROPER instead of LENGTH

2005-05-10  Sam Steingold  <sds@gnu.org>

	fix EXPECTED-TYPE in function-name errors
	* constobj.d (type_designator_function_name): add
	* error.d (check_funname_replacement):
	use it instead of type_designator_function

2005-05-10  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (encode-universal-time): time zone is specified by
	ANSI in [-24;24], not [-13;12]; use ISO date format for error reporting

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c [WIN32_NATIVE]: fix C++ compilation
	(BUF_TYPE_T): new CPP define
	(RECV, RECVFROM, SEND, SENDTO): cast buffer

2005-05-09  Sam Steingold  <sds@gnu.org>

	* pathname.d (ENOUGH-NAMESTRING): fix for possible NIL directory

2005-05-09  Sam Steingold  <sds@gnu.org>

	* init.lisp (load): bind *LOAD-PATHNAME* to the result of
	MERGE-PATHNAMES as per ANSI CL spec
	Found by Paul Dietz's ansi-tests test suite.

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (STREAM-LOCK, MKSTEMP, FILE-STAT, MKNOD)
	(sid_cache_put) [WIN32_NATIVE]: fix C++ compilation

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (get_locale_info, DECLARE_RES):
	add casts for C++ compilation

2005-05-09  Pascal J.Bourguignon  <pjb@informatimago.com>

	* modules/syscalls/calls.c (OPENLOG): allocate ident and keep it
	in a static variable
	(CLOSELOG): release it

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/dependent.lisp (host-address): use
	READ-FROM-STRING instead of SLIT-SEQUENCE
	* modules/clx/mit-clx/defsystem.lisp (dependent, load-clx):
	remove split-sequence
	* modules/clx/mit-clx/split-sequence.lisp: remove

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/dependent.lisp (host-address): use
	POSIX::HOSTENT-ADDRTYPE instead of POSIX::HOSTENT-ADDR-TYPE
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2005-05-09  Sam Steingold  <sds@gnu.org>

	* pathname.d (use_default_dir) [PATHNAME_WIN32]: fix a GC-safety bug

2005-05-09  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, intelem.d (I_to_UQ): define on WIN32_NATIVE
	for convert_time_from_universal()
	* time.d (convert_time_from_universal): use I_to_UQ() instead of
	its alias I_to_uint64()

2005-05-09  Sam Steingold  <sds@gnu.org>

	* execname.c (find_executable): add a cast for C++ compilation
	* pathname.d (use_default_dir): ditto
	* socket.d (resolve_host1): ditto

2005-05-09  Sam Steingold  <sds@gnu.org>

	* pathname.d (merge_dirs): fix logic for NIL defaults

2005-05-09  Sam Steingold  <sds@gnu.org>

	* places.lisp (*ansi*): fix the doc string: mention all 13 variables
	and avoid non-ASCII characters to ensure non-UTF8 terminal compatibility

2005-05-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/image.lisp, modules/clx/new-clx/resource.lisp:
	pass a string to REQUIRE to avoid case conversion issues
	* modules/clx/new-clx/clx.lisp: PROVIDE whatever was REQUIREd

2005-05-06  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp: keep direct slot information
	(*defstruct-description-direct-slots-location*): new constant
	(make-load-form-slot-list): new function
	(defstruct): use it; save direct slot information
	(structure-direct-slots): new function
	(structure-undefine-accessories): use it to remove slot accessors
	* exporting.lisp (export-structure-accessories): use
	STRUCTURE-DIRECT-SLOTS instead of CLASS-ACCESSOR-SYMBOLS
	* io.d (STRUCTURE-READER): DEFSTRUCT-DESCRIPTION has length 8
	* clos-class3.lisp (define-structure-class):
	pass DEFCLASS-FORM 'DEFSTRUCT to MAKE-INSTANCE
	(initialize-instance-<structure-class>): do not call
	INSTALL-CLASS-DIRECT-ACCESSORS to avoid slot accessor redefinitions
	* clos-class6.lisp (initialize-instance@structure-class): new method,
	uses the DEFCLASS-FORM argument to avoid slot accessor redefinitions
	* constobj.d (version): bumped

2005-05-06  Sam Steingold  <sds@gnu.org>

	* condition.lisp (without-global-handlers): new macro

2005-05-06  Sam Steingold  <sds@gnu.org>

	* eval.d (SUBR-INFO): add a cast for C++ compilation
	* pathname.d (use_default_dir): ditto

2005-05-06  Sam Steingold  <sds@gnu.org>

	* pathname.d (PARSE-NAMESTRING): "" ==> :DIRECTORY NIL
	(directory_namestring_parts): :DIRECTORY (:RELATIVE) => "./"
	(merge_dirs, MERGE-PATHNAMES, directory_match, directory_diff)
	(translate_directory, use_default_dir):
	treat NIL directory just like (:RELATIVE)
	(SAMPLE_UNBOUND_CHECK): remove
	(MAKE-PATHNAME): :DIRECTORY defaults to NIL
	(has_directory_wildcards): :DIRECTORY may be NIL
	* constobj.d (directory_default): remove
	* utils/clispload.lsp (*expected-failures*): update

2005-05-05  Sam Steingold  <sds@gnu.org>

	* stream.d (force_tty_output) [UNIX_DARWIN]:
	ignore EOPNOTSUPP and ENODEV, just like in clear_tty_output()
	Reported by Pascal Costanza <pc@p-cos.net>

2005-05-05  Sam Steingold  <sds@gnu.org>

	* makemake.in (ANSITESTSDIR): do update-ansi-tests first

2005-05-04  Sam Steingold  <sds@gnu.org>

	* modules/zlib/configure.in: use AC_LIB_LINKFLAGS([z])

2005-05-04  Sam Steingold  <sds@gnu.org>

	* install.lisp (clisp-cmd): quote *CLISP-DRIVER* when it contains spaces

2005-05-03  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file-pathname-helper): use read-time
	instead of run-time to produce a constant pathname

2005-05-03  Sam Steingold  <sds@gnu.org>

	* eval.d (funcall): pass args_on_stack to with_saved_back_trace_subr

2005-05-02  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-PROVIDE, c-REQUIRE):
	use STRING instead of MODULE-NAME
	* defs1.lisp (provide, require): ditto
	(module-name): remove
	This partly reverts the 2002-07-15 patch. This is necessary
	because case converting module names is not permitted by ANSI.

2005-05-02  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (require): avoid duplication in *LOAD-PATHS*
	to minimize disk access on recursive REQUIREs

2005-05-02  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (module-name): reverted the 2002-07-21 patch:
	STRING already accepts only strings, symbols, and characters

2005-05-02  Sam Steingold  <sds@gnu.org>

	* type.lisp (PLIST): use LIST-LENGTH-DOTTED instead of LISTP+LENGTH

2005-05-02  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp, modules/syscalls/posix.lisp:
	use EXPORTING to export structure slot accessors

2005-05-02  Sam Steingold  <sds@gnu.org>

	* exporting.lisp (define-condition): use MOP

2005-04-30  Sam Steingold  <sds@gnu.org>

	* init.lisp (open-for-load): do not append "/" to a logical pathname
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2005-05-01  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): save accessor names in :READER and
	:WRITER slots of the DIRECT-SLOT-DEFINITION: we cannot recover
	accessor names later because of the :CONC-NAME option
	* exporting.lisp (export-structure-accessories):
	use CLASS-ACCESSOR-SYMBOLS

2005-04-28  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (stat_obj): new function
	(my_chmod) [WIN32_NATIVE]: call SetFileAttributes()
	(SET-FILE-STAT) [WIN32_NATIVE]: use check_file_attributes_parse()
	and stat_obj()
	(copy_attributes_and_close): ported to WIN32_NATIVE
	close streams before utime() (it modifies atime&mtime)
	wrap system calls with begin_system_call()/end_system_call()

2005-04-28  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2b.lisp (reinitialize-instance-<generic-function>): When
	removing old defgeneric-originated methods, also call
	remove-direct-method on the specializers.
	Reported by Paul F. Dietz <dietz@dls.net>.

2005-04-27  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (string-rest): check POS

2005-04-27  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): add slot DELIM
	(to-C-name, new-checker): accept DELIM
	* modules/syscalls/calls.c (check_chmod_mode, mknod_type_check):
	prefix=S_I, void delim
	(mknod): use :FIFO instead of :IFIFO &c
	* modules/syscalls/posix.lisp (make-xterm-io-stream): ditto

2005-04-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::MKNOD): when mknod() is not
	present, use mkfifo(), mkdir(), and creat()
	* modules/syscalls/configure.in (mkfifo, mkdir, creat): check

2005-04-27  Sam Steingold  <sds@gnu.org>

	fix bug#1190843: no mknod p on OS/X
	* reploop.lisp (make-xterm-io-stream): moved to syscalls module
	* modules/syscalls/posix.lisp (make-xterm-io-stream): use
	POSIX:MKNOD and POSIX:MKSTEMP instead of the shell commands

2005-04-25  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c, modules/berkeley-db/dbi.lisp:
	use dash instead of underscore for all keywords

2005-04-25  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (fill_dbt): re_len==-1 ==> integer object
	(db_key_type): accept second action argument
	(DB-GET, DBC-GET): handle :SET-RECNO and :GET-RECNO actions
	(DB-PUT, DB-KEY-RANGE, DBC-PUT):
	pass 0 as the second argument to db_key_type()

2005-04-25  Sam Steingold  <sds@gnu.org>

	* utils/clispload.lsp (*expected-failures*): update

2005-04-24  Sam Steingold  <sds@gnu.org>

	* init.lisp (search-file): use MAKE-PRELIMINARY to avoid a warning

2005-04-22  Sam Steingold  <sds@gnu.org>

	prevent accidental EXT:! redefinition by users
	* eval.d (SUBR-INFO): pass false to coerce_sequence() to avoid
	bootstrap problems
	* init.lisp (sys::check-redefinition): use SUBR-INFO to check
	whether the function has been already defined in C

2005-04-24  Sam Steingold  <sds@gnu.org>

	* sequence.d (coerce_sequence): fix STACK clean-up on !error_p

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2a.lisp (safe-gf-methods): Avoid endless recursion also
	for #'compute-discriminating-function and
	#'compute-applicable-methods-using-classes.
	* clos-genfun2b.lisp (add-method, remove-method): New preliminary
	functions.
	(initialize-instance-<generic-function>): Call add-method instead of
	std-add-method.
	(reinitialize-instance-<generic-function>): Likewise.
	* clos-genfun3.lisp (make-generic-function, do-defmethod): Likewise.
	* clos-genfun4.lisp (add-method, remove-method): Allow erasing
	preliminary definition.
	Reported by Pascal Costanza <pc@p-cos.net>.

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Emit check_array etc. conditionally, not if
	COMPILE_STANDALONE is defined. Needed to avoid link errors with
	compilers that don't eliminate inline functions.

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* foreign.d (dlerror_string): Use 'const char*' instead of 'char*'.
	Avoids a gcc warning on MacOS X.

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (divu_3232_3232_): Use 'unused'. Avoids a gcc warning
	"statement without effect".

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (nonreturning_function, SP_register): Test for
	__APPLE_CC__ > 1.
	* eval.d (FAST_DISPATCH, FAST_DISPATCH_THREADED): Likewise.
	* genclisph.d (main): For nonreturning_function, test for
	__APPLE_CC__ > 1.
	Needed because gcc-4.0 supports all the GCC features but defines
	__APPLE_CC__ to 1.

2005-04-21  Bruno Haible  <bruno@clisp.org>

	* noreadline.d (NULL): Define as void*, not char*. Avoids gcc warning.

2005-04-21  Sam Steingold  <sds@gnu.org>

	clean-up the LEbytes_to_I breakage
	* modules/berkeley-db/bdb.c (db_recno_p, db_recno_to_I, I_to_db_recno):
	define depending on SIZEOF_DB_RECNO_T
	(fill_dbt): re_len==-1 means this is a key and thus db_recno_t
	must be handled specially; fix the bitsize argument to I_to_LEbytes()
	(dbt_to_object): add the key_type argument, symmetric to re_len==-1
	(db_key_type): new function
	(DB-DEL, DB-GET, DB-PUT, DB-KEY-RANGE, DBC-GET, DBC-PUT): pass
	db_key_type() to fill_dbt(key) and dbt_to_object()
	(fill_or_init): re_len is int, not u_int32_t
	* modules/berkeley-db/configure.in (db_recno_t): check SIZEOF

2005-04-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (base-mod-check, mod-check):
	handle the case when there are no test files

2005-04-21  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (check_dbe_open_flags): new DEFCHECKER
	(DBE-OPEN): accept :FLAGS
	(dbe_get_open_flags): use check_dbe_open_flags_to_list()
	(check_db_open_flags): new DEFCHECKER
	(DB-OPEN): accept :FLAGS
	(db_get_open_flags): new function (uses check_db_open_flags_to_list())
	(DB-GET-OPTIONS): accept :OPEN
	(bdb_ac_flags): replaces db_put_flags()
	(DBE-DBREMOVE, DBE-DBRENAME, DB-DEL, DB-TRUNCATE, DB-PUT): use it
	(DBE-REMOVE): invalidate the handle

2005-04-21  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): output C-NAME_parse()
	* modules/syscalls/calls.c (parse_mode): remove
	(SET-FILE-STAT, UMASK, MKNOD): use check_chmod_mode_parse instead

2005-04-20  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (asciz_to_string0): new inline
	(dbe_get_errpfx, get_lg_dir, get_tmp_dir, get_re_source): use it
	(txn_check_sync): restore default=0
	(db_get_dbname, db_get_transactional): new functions
	(DB-GET-OPTIONS): accept :DBNAME and :TRANSACTIONAL
	* modules/berkeley-db/test.tst (show): new function,
	use instead of PRINT for better spacing
	collect bad items instead of using ASSERT

2005-04-19  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (with-dbe): new exported macro
	(with-db): accept :CREATE :OPTIONS :OPEN and pass them to
	DB-CREATE, DB-SET-OPTIONS, DB-OPEN respectively

2005-04-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: include <utmpx.h> and <signal.h> in
	the preamble because they define CPP constants used by DEFCHECKERs

2005-04-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (base-mod-check): new target
	(mod-check): rename from full-check; fix RUN-SOME-TESTS call
	targets fail when RUN-SOME-TESTS return non-0

2005-04-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (echo_dist_modules): end directory name with a slash
	(distrib) [win32]: remove $distdir before populating it
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-04-18  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (utmpx_to_lisp): GLIBC 2.3.2 uses
	32-bit slots for the utmpx->ut_tv even on 64-bit platforms, so
	SIZEOF_STRUCT_TIMEVAL is useless here; resort to run-time sizeof()
	and hope that the compiler will optimize that away

2005-04-18  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE:PCRE-NAME-TO-INDEX): older PCRE
	versions did dot have pcre_get_stringnumber()
	* modules/pcre/configure.in: check for pcre_get_stringnumber()

2005-04-18  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (SET-GCONTEXT-DISPLAY): use foreign
	pointers instead of 32-bit integers to accommodate 64-bit platforms
	(general_draw_text, TEXT-EXTENTS, TEXT-WIDTH):
	fix 2nd and 3rd arguments to unpack_string_ro()

2005-04-18  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (fill_dbt, check_gid):
	fix the 3rd argument to array_displace_check()
	* modules/berkeley-db/configure.in: check for Berkeley-DB 4.2+
	* modules/postgresql/configure.in: fix check for PostgreSQL 8.0+
	* modules/zlib/configure.in: check for ZLIB 1.2+

2005-04-15  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (statvfs) [WIN32_NATIVE]: fix last patch
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-04-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (utmpx-p, rlimit-p)
	(shortcut-info-p): export

2005-04-13  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in (sys/statfs.h, sys/vfs.h):
	do not check unused headers
	(HAVE_SCALAR_FSID): do not check without <sys/statvfs.h>
	(fsblkcnt_t, fsfilcnt_t): check SIZEOF
	(struct stat): do not check whithout <sys/stat.h>
	* modules/syscalls/calls.c (STAT-VFS): convert
	f_blocks/f_bfree/f_bavail according to SIZEOF_FSBLKCNT_T and
	f_files/f_ffree/f_favail according to SIZEOF_FSBLKCNT_T
	(vfs_flags): add FILE_SUPPORTS_ENCRYPTION

2005-04-13  Sam Steingold  <sds@gnu.org>

	* makemake.in [win32gcc]: distribute module sources
	(echo_dist_modules): new function
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-04-13  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (STAT-VFS) [WIN32_NATIVE]: implement
	using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation
	* modules/syscalls/posix.lisp (STAT-VFS): export always
	add vol-name and fs-type slots

2005-04-12  Bruno Haible  <bruno@clisp.org>

	* weak.d (MAKE-WEAK-ALIST, WEAK-ALIST-TYPE): Use :key-and-value instead
	of :either, :key-or-value instead of :both.
	* hashtabl.d (hash_table_weak_type): Return :key-and-value instead
	of :either, :key-or-value instead of :both.
	(allocate_kvt, prepare_resize, check_weak): Accept :key-and-value
	instead of :either, :key-or-value instead of :both.
	* describe.lisp (describe-object@t): Update for change :either ->
	:key-and-value, :both -> :key-or-value.

2005-04-12  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:SYNC): implement
	* modules/syscalls/posix.lisp (SYNC): export
	* modules/syscalls/configure.in (sync, fsync): check

2005-04-10  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (db-stat): add slot TYPE
	(mkdbstat-hash, mkdbstat-btree, mkdbstat-queue): accept TYPE
	* modules/berkeley-db/bdb.c (check_dbt_type, check_dbtype):
	define with DEFCHECKER
	(DB-STAT): use check_dbtype_reverse() for TYPE

2005-04-10  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): do not wrap DEFAULT
	with #ifdef when the return type is an enum

2005-04-10  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (dbe_set_encryption, db_get_action)
	(db_put_action): restored 0 defaults, as per the spec
	(my_fopen): check fopen() return value

2005-04-09  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (check_lk_detect): add DB_LOCK_NORUN
	(reset_errpfx): use my_malloc() instead of just malloc()
	(error_callback): insert ": " between error prefix and message
	allocate an extra byte for NULL

2005-04-09  Sam Steingold  <sds@gnu.org>

	* genclisph.d (srecord_): recdata is gcv_object_t, not object

2005-04-09  Sam Steingold  <sds@gnu.org>

	* condition.lisp (set-global-handler): use load-time value (#,)
	instead of read-time value (#.) to avoid an error on check-recompile

2005-04-09  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (REGEXP-COMPILE): fix a GC-safety bug

2005-04-08  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (file-info): 1 slot size instead of hi&lo
	(file-info) [UNIX && !UNIX_CYGWIN32]: implement
	* modules/syscalls/calls.c (wfd_to_file_info): rename from
	wfd_to_stack; 1 slot size instead of hi&lo

2005-04-08  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (convert-attributes): export
	* modules/syscalls/calls.c (FILE-STAT) [WIN32_NATIVE]: use
	GetFileInformationByHandle() instead of fstat() because woe32 fstat()
	does not accept a file handle, only an integer of an unknown nature;
	return a list as :MODE, not a number
	(check_file_attributes) [WIN32_NATIVE||UNIX_CYGWIN32]: new DEFCHECKER
	(CONVERT-ATTRIBUTES) [WIN32_NATIVE||UNIX_CYGWIN32]: new DEFUN

2005-04-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (stream_get_handle, FILE-STAT, STAT-VFS):
	fix GC-safety bugs

2005-04-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: ported MKSTEMP to win32
	(temp_name) [!HAVE_MKSTEMP && (HAVE_TEMPNAM || WIN32_NATIVE)]: add
	(MKSTEMP)[!HAVE_MKSTEMP && (HAVE_TEMPNAM || WIN32_NATIVE)]: use it
	* modules/syscalls/configure.in: check for tempnam()

2005-04-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_chmod_mode): fix symbol names
	(parse_mode): new function
	(SET-FILE-STAT, UMASK, MKNOD): use it

2005-04-07  Sam Steingold  <sds@gnu.org>

	* genclisph.d (allocate_handle, make_file_stream): export
	* modules/syscalls/calls.c (MKSTEMP): implement
	* modules/syscalls/configure.in: check for <stdlib.h> and mkstemp()
	* modules/syscalls/posix.lisp (mkstemp, hostent-p, user-data-p)
	(file-stat-p, stat-vfs-p, uname-p, system-info-p, version-p)
	(memory-status-p): export

2005-04-07  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): add casts for C++ compilation
	* modules/berkeley-db/bdb.c: ditto
	* modules/pcre/cpcre.c: ditto

2005-04-07  Bruno Haible  <bruno@clisp.org>

	* .gdbinit (boot, base, full, interpreted, run_test, run_all_tests)
	(ansi_tests): Add -N locale option.

2005-04-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (SETPGRP) [!HAVE_SETPGRP_POSIX]:
	call setpgrp(0,0) BSD-style
	(SETPGID): new function
	* modules/syscalls/posix.lisp (setpgid): export
	* modules/syscalls/configure.in: check whether setpgrp() is POSIX
	Reported by Lars Rosengreen <lars@margay.org>

2005-04-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/resource.lisp: add (from mit-clx with
	minor adaptations)

2005-04-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (set_resource_id, delete_resource_id): add
	(make_xid_obj_2): use set_resource_id()
	(XLIB::SAVE-ID, XLIB::DEALLOCATE-RESOURCE-ID, XLIB:KEYSYM)
	(XLIB::SET-GCONTEXT-DISPLAY): for CLUE
	(XLIB:KEYSYM->CHARACTER): use int_char()
	* modules/clx/new-clx/clx.lisp (GCONTEXT-DISPLAY): defsetf for CLUE

2005-04-06  Sam Steingold  <sds@gnu.org>

	* .gdbinit (full): add commented-out module debugging infrastructure

2005-04-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XLIB::%DISPLAY-XID): new function
	(XLIB:DISPLAY-XID): return it
	(display_hash_table): pass the arguments the usual way, not via STACK
	(lookup_xid): new function (mostly extracted from make_xid_obj_2)
	(make_xid_obj_2): use make_xid_obj_2()
	(XLIB::LOOKUP-RESOURCE-ID): implement using lookup_xid()

2005-04-05  Sam Steingold  <sds@gnu.org>

	* case-sensitive.lisp: add CS-COMMON-LISP to *SYSTEM-PACKAGE-LIST*
	* exporting.lisp: add EXPORTING to *SYSTEM-PACKAGE-LIST*
	* modules/bindings/win32/win32.lisp: add WIN32 to *SYSTEM-PACKAGE-LIST*
	* modules/clx/mit-clx/package.lisp: add XLIB to *SYSTEM-PACKAGE-LIST*
	* modules/clx/new-clx/clx.lisp: add XLIB & XPM to *SYSTEM-PACKAGE-LIST*
	* modules/pari/pari.lisp: add PARI to *SYSTEM-PACKAGE-LIST*

2005-04-05  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/link.sh.in (TO_LOAD): add sql
	* modules/postgresql/sql.lisp: rewrite to export
	higher-level functionality

2005-04-05  Sam Steingold  <sds@gnu.org>

	* modules/matlab/Makefile (DISTRIBFILES): add test.tst

2005-04-04  Sam Steingold  <sds@gnu.org>

	* modules/matlab/wrap.lisp (copy-lisp-to-mxArray):
	rename from copy-lisp-to-matlab
	(copy-mxArray-to-lisp): rename from copy-matlab-to-lisp
	check that mxArrays have data
	(copy-lisp-to-matlab, copy-matlab-to-lisp): call them to copy variables
	(invert-matrix): reuse the engine
	* modules/matlab/matlab.lisp (engGetVisible, engSetVisible)
	(engOpenSingleUse): win32-only
	(mx_aref, set_mx_aref): fix 2dim<->1dim conversion
	(mx-aref-i): access the imaginary part

2005-04-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (utmpx): new defstruct
	* modules/syscalls/calls.c (endutxent, getutxent, getutxid)
	(getutxline, pututxline, setutxent): implement
	* modules/syscalls/configure.in (endutxent, getutxent, getutxid)
	(getutxline, pututxline, setutxent): check

2005-04-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (physical-memory) [unix]: fix
	SYSCONF arguments

2005-04-01  Sam Steingold  <sds@gnu.org>

	* modules/matlab/matlab.lisp ("MATLAB"): exporting DEFVAR too
	(mx-aref): fix DEFSETF
	* modules/matlab/wrap.lisp (*command*, *engine*): new variables
	(with-engine, with-MATfile): new macros
	(engine, copy-lisp-to-matlab, copy-matlab-to-lisp, invert-matrix):
	new functions
	* modules/matlab/link.sh (PATH): set

2005-04-01  Sam Steingold  <sds@gnu.org>

	* package.d (intern): when STRING comes from READ, it points to a
	re-usable buffer that will be overwritten during the CERROR i/o
	therefore we must copy and save it before CERROR

2005-04-01  Sam Steingold  <sds@gnu.org>

	implement global error handlers
	* eval.d (invoke_handlers): call GLOBAL-HANDLER at the end
	* constsym.d (APPEASE-CERRORS, BATCHMODE-ERRORS, ABORT-ERRORS, LOOP):
	remove
	(APPEASE-CERROR, EXITUNCONDITIONALLY, EXITONERROR, ABORTONERROR)
	(INTERRUPT-CONDITION, SERIOUS-CONDITION, SET-GLOBAL-HANDLER)
	(GLOBAL-HANDLER): add
	* condition.lisp (set-global-handler): new exported function
	(batchmode-errors, abort-errors): remove
	* savemem.lisp (saveinitmem): accept :KEEP-GLOBAL-HANDLERS
	* spvw.d (appease_form): replaced with ...
	(install_global_handlers): new function
	(main_actions): call it just once; do not wrap anything

2005-04-01  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:SET-FILE-STAT):
	use I_to_UL() instead for I_to_L() for time conversion
	Reported by Aurelio Bignoli <clisp@bignoli.it>

2005-03-29  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (getpgid, setpgrp, getsid, setsid, kill):
	export
	* modules/syscalls/calls.c (getpgid, setpgrp, getsid, setsid, kill):
	implement
	* modules/syscalls/configure.in: check for the above

2005-03-29  Sam Steingold  <sds@gnu.org>

	* m4/alloca.m4: remove
	* configure.in: use AC_FUNC_ALLOCA instead of CL_ALLOCA

2005-03-29  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (RAWSOCK:SOCKATMARK): add
	* modules/rawsock/configure.in: check for sockatmark()
	* modules/rawsock/sock.lisp (sockatmark): export

2005-03-29  Sam Steingold  <sds@gnu.org>

	* genclisph.d (LISPFUN_F) [TYPECODES]: do no wrap gcv_nullobj
	with {} to avoid a gcc warning

2005-03-28  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (xlib_error_handler): use switch, not if
	(DEFINE_INTEGER_GETTER): also define get_##type_0 (default to 0)
	(get_ordering): default=Unsorted
	(get_modifier_mask): unbound -> 0
	(XLIB:SET-GCONTEXT-CLIP-MASK): rely on get_ordering() default
	(XLIB:CLEAR-AREA, XLIB:PUT-IMAGE, XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH)
	(XLIB:ALLOC-COLOR-CELLS, XLIB:ALLOC-COLOR-PLANES, XLIB:GET-PROPERTY)
	(XLIB:WARP-POINTER-IF-INSIDE, XLIB:WARP-POINTER-RELATIVE-IF-INSIDE)
	(XLIB:BELL): use get_##type_0
	(XLIB:GRAB-BUTTON, XLIB:UNGRAB-BUTTON, XLIB:GRAB-KEY, XLIB:UNGRAB-KEY):
	rely on get_modifier_mask() default
	(get_shape_kind): default=ShapeBounding
	(get_shape_operation): default=ShapeSet
	(XLIB:SHAPE-COMBINE): rely on these defaults
	(general_draw_text, XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH):
	remove the SIMPLE-STRING limitation

2005-03-28  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): accept :DOCUMENTATION
	Suggested by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-26  Sam Steingold  <sds@gnu.org>

	replaced -interactive-debug with -on-error <action>
	* spvw.d (usage): update
	(init_symbol_values): define_variable(report_error_print_backtrace)
	(on_error_t): new enum type
	(appease_form): first argument is an on_error_t
	(argv_actions): replaced argv_interactive_debug with argv_on_error
	(parse_options): parse -on-error
	(main_actions): wrap the REPL according to argv_on_error
	* constsym.d (report_error_print_backtrace, abort_errors, lloop): add
	* condition.lisp (*report-error-print-backtrace*): add
	(report-error): new function
	(exitunconditionally): use it
	(abort-on-error, abort-errors): add
	* reploop.lisp (*debug-mode*): init in defvar
	(print-backtrace): extract from DEBUG-BACKTRACE
	(debug-backtrace): use it
	(break-loop, step-hook-fn): bind *DEBUG-MODE* to self

2005-03-27  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: use CL_RLIMIT instead of
	checking for getrlimit() and setrlimit() explicitly
	* modules/syscalls/calls.c (I_to_rlim, rlim_to_I): new functions
	(POSIX::RLIMIT, POSIX::SET-RLIMIT, check_rlimit): use them

2005-03-25  Sam Steingold  <sds@gnu.org>

	* m4/rlimit.m4 (CL_RLIMIT): pre-compute sizeof(rlim_t)

2005-03-25  Bruno Haible  <bruno@clisp.org>

	Fix clisp.c on Unix.
	* makemake.in (clisp): Set ENABLE_RELOCATABLE.
	* _clisp.c: Use ENABLE_RELOCATABLE to determine whether to call
	find_executable.
	(room_from_lisplibdir, room_for_localedir): Don't define when
	ENABLE_RELOCATABLE is given.
	(main): If find_executable fails, exit with code 1, not -1. Don't
	pollute Unix code with backslash handling. Perform a single memory
	allocation instead of two.

2005-03-25  Bruno Haible  <bruno@clisp.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Set host_cpu_instructionset
	instead of modifying host_cpu.
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Set host_cpu_abi instead of
	modifying host_cpu.
	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Use host_cpu_abi instead of
	host_cpu.

2005-03-16  Bruno Haible  <bruno@clisp.org>

	* m4/stdint.m4: Update from gnulib.
	* stdint_.h: New file, from gnulib.
	* stdint.h.in: Remove file.
	* makemake.in (stdint.h): Generate from stdint_.h instead of stdint.h.
	Substitute HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT.
	* configure.in: Call gl_STDINT_H instead of gt_STDINT_H.

2005-03-24  Sam Steingold  <sds@gnu.org>

	* pathname.d (parse_logical_pathnamestring): when version is blank,
	parse_logical_word() returns NIL, but all_digits() assumes a string
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2005-03-22  Sam Steingold  <sds@gnu.org>

	fix bug#1167991: Compiler bug, Occurred in SP-DEPTH at <0.
	* compiler.lisp (optimize-short): do not short the same refindex twice

2005-03-22  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp, modules/bindings/glibc/wrap.lisp:
	* modules/dirkey/dirkey1.lisp, modules/matlab/wrap.lisp:
	* modules/netica/wrap.lisp, modules/rawsock/sock.lisp:
	* modules/regexp/regexp.lisp, modules/syscalls/posix.lisp:
	* modules/zlib/zlib.lisp: use PUSHNEW, not PUSH
	when adding to CUSTOM:*SYSTEM-PACKAGE-LIST*

2005-03-22  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/wildcard.lisp (*features*): add :WILDCARD
	Suggested by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-22  Bruno Haible  <bruno@clisp.org>

	* build-aux: New directory, taking most files from autoconf/.
	* configure.in (CL_CANONICAL_HOST): Update.
	* modules/berkeley-db/configure.in (AC_CONFIG_AUX_DIR): Update.
	* modules/pcre/configure.in (AC_CONFIG_AUX_DIR): Update.
	* modules/postgresql/configure.in (AC_CONFIG_AUX_DIR): Update.
	* modules/pari/configure.in (AC_CONFIG_AUX_DIR): Update.
	* modules/regexp/configure.in (AC_CONFIG_AUX_DIR): Update.

2005-03-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [win32]: fix 2005-03-10 patch: missing "; \\"
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/queens/queens.c, modules/queens/callqueens.c:
	use "modern" tools and formatting

2005-03-21  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_module_2): do not allow redefinition of symbols in
	locked packages
	this should prevent bugs like the LISTEN bug also fixed today

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/wildcard/wildcard.lisp: include <config.h>
	because it defines fnmatch as an alias to posix_fnmatch
	when the included fnmatch implementation is used
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (HTONL, NTOHL, HTONS, NTOHS): define
	even when the OS lacks the C functions; in that case, return the
	argument on the assumption that the host order is the same as the
	network order

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp: shadow LISTEN
	* modules/rawsock/preload.lisp: ditto
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQinitSSL):
	commented out: not found in libpq 8.0

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/pcre/configure.in: use AC_LIB_LINKFLAGS([pcre])
	* modules/pcre/Makefile.in: use PCRECPPFLAGS instead of
	CPPFLAGS to pass the result of --with-pcre-prefix to CC

2005-03-21  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (with-stream-lock): new macro

2005-03-20  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::DUPLICATE-HANDLE):
	fix STACK handling

2005-03-20  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:FILE-INFO):
	wrap FindClose() in begin_system_call()/end_system_call()

2005-03-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c (OS:PRIORITY): fix compilation
	on cygwin without HAVE_GETPRIORITY.

2005-03-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (EMACS_FILES): add clhs.el and clisp-ffi.el

2005-03-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (DEEMA): permit spaces in empty macro arguments

2005-03-18  Sam Steingold  <sds@gnu.org>

	* execname.c (find_executable): avoid declaring variables in the
	middle of a block (OSX portability)

2005-03-18  Sam Steingold  <sds@gnu.org>

	* spvw.d: DYNAMIC_FFI does not imply that dlopen() is present,
	need to check for HAVE_DLOPEN or WIN32_NATIVE

2005-03-18  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regex.c: check HAVE_ALLOCA_H before #include <alloca.h>

2005-03-18  Bruno Haible  <bruno@clisp.org>

	* configure.in (AC_INIT): Use esyscmd to retrieve the version number.
	Suggested by Alexandre Duret-Lutz and Sam Steingold.

2005-03-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib) [cygwin]: remove the target before ln

2005-03-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (SET-FILE-STAT): add a cast to avoid
	a woe32 and MacOS X warning (and fix a bug)

2005-03-17  Sam Steingold  <sds@gnu.org>

	* version.sh: bumped for yet another woe32/cygwin pre-test

2005-03-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (cygwin_check): fix the logic

2005-03-17  Sam Steingold  <sds@gnu.org>

	* execname.c (find_executable) [LINUX|CYGWIN]: use
	"/proc/self/exe" instead of sprintf()+getpid()

2005-03-17  Sam Steingold  <sds@gnu.org>

	* configure.in: test for realpath()
	* pathname.d (realpath): use the OS-supplied realpath()
	implementation when it is available (we can add a workability test
	when/if necessary)

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* debug.d (read_form): Don't delete input until EOL if the last char
	read from the stream was a newline. This fixes a multiline paste
	problem on MacOS X.

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (stream_get_lastchar): New declaration.
	* stream.d (stream_get_lastchar, stream_set_lastchar): New functions.
	(read_char): Update $lastchar after calling STREAM-READ-CHAR.
	(unread_char): Update $lastchar after calling STREAM-UNREAD-CHAR.
	(read_char_array): Update $lastchar after calling
	STREAM-READ-CHAR-SEQUENCE.
	(read_line): Update $lastchar after calling STREAM-READ-LINE.
	* gray.lisp (fundamental-character-input-stream): Add slot $lastchar.

2005-03-16  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (STREAM-LOCK): fix STACK handling

2005-03-16  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQgetCancel, PQfreeCancel)
	(PQcancel, PQserverVersion, PQgetssl, PQinitSSL, PQdsplen):
	add v8 functions
	* modules/postgresql/configure.in: check for v8
	do not check for crypt

2005-03-16  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (make_key_vector, XLIB:KEYBOARD-CONTROL)
	(XLIB:%RESTORE-GCONTEXT-COMPONENTS): wrap memcpy() with X_CALL

2005-03-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_enum, enum_error, DEF_ENUM_MAKER)
	(DEF_ENUM_GETTER, DEF_ENUM): remove
	use DEFCHECKER instead throughout the file
	(get_gcontext_key): replaced with a DEFCHECKER
	(check_modifier, check_event_mask): new DEFCHECKERs
	(get_modifier_mask, get_event_mask): use them
	(XLIB:MAKE-EVENT-KEYS): use check_event_mask_to_list()
	(XLIB:MAKE-EVENT-MASK): avoid consing
	(XLIB:MAKE-STATE-KEYS): use check_modifier_to_list()
	(XLIB:MAKE-STATE-MASK): use check_modifier()
	(check_propmode): new DEFCHECKER
	(XLIB:CHANGE-PROPERTY): use it
	(check_revert_focus): new DEFCHECKER
	(XLIB:SET-INPUT-FOCUS, XLIB:INPUT-FOCUS): use it
	(check_allow_events): new DEFCHECKER
	(XLIB:ALLOW-EVENTS): use it
	(check_yes_no): new DEFCHECKER
	(XLIB:SCREEN-SAVER, XLIB:SET-SCREEN-SAVER): use it

2005-03-14  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): new slot bitmasks
	(new-checker): accept bitmasks
	(print-tables-1): when bitmasks is supplied,
	output *_to_list() and *_from_list()
	* modules/syscalls/calls.c (check_chmod_mode): bitmasks=both
	(CONVERT-MODE): use check_chmod_mode_to_list()
	and check_chmod_mode_from_list()

2005-03-16  Sam Steingold  <sds@gnu.org>

	* modules/regexp/Makefile.in (regex.o): remove -Dclisp

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c (POSIX::STREAM-LOCK): Make it compile
	with g++ 3.3 and 3.4.

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_module_2): Fix GC-safety bug.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with modules.
	* lispbibl.d (gcv_nullobj): New macro.
	* subr.d (LISPFUN_F): Use gcv_nullobj instead of nullobj.
	* genclisph.d (main): Add definitions of gcinvariant_oint_p,
	gcinvariant_type_p, gcinvariant_type_sum, gcinvariant_type_aux,
	gcinvariant_object_p, nonimmsubrp, gcv_nullobj. Update definitions of
	gcv_object_t::operator object, gcv_object_t::gcv_object_t,
	pgci_pointable, ngci_pointable, LISPFUN_F.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Reorder, to match the order of lispbibl.d.

2005-03-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (XPM:READ-FILE-TO-PIXMAP): use
	physical_namestring() instead of TRUENAME+NAMESTRING
	(xlib_rgb): new DEFFLAGSET
	(XLIB:STORE-COLOR, XLIB:STORE-COLORS): use it

2005-03-15  Bruno Haible  <bruno@clisp.org>

	* makemake.in (pathname): Depend on execname.c also on Unix.

2005-03-15  Bruno Haible  <bruno@clisp.org>

	* modules/regexp/regex.c: Upgrade from gnulib.

2005-03-14  Sam Steingold  <sds@gnu.org>

	* condition.lisp (exitunconditionally): use PRETTY-PRINT-CONDITION
	instead of PRINT-CONDITION, like in reploop.lisp:BREAK-LOOP

2005-03-14  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (string-upcase-verbose): do not upcase strings

2005-03-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (SET-FILE-STAT): available when at
	least one of chmod(), chown() and utime() is available
	(my_chmod, my_chown, my_utime): auxiliaries

2005-03-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (rlimit): add DEFSETF
	* modules/syscalls/calls.c (SET-RLIMIT): implement

2005-03-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (cygwin_check): make sure that no cygwin
	dependencies creep into the mingw builds

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* modules/regexp/configure.in: Add AC_CONFIG_AUX_DIR invocation.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* modules/regexp/configure.in: Invoke AM_GNU_GETTEXT.
	* modules/regexp/regex.c: Don't include clisp.h.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* m4/codeset.m4, m4/gettext.m4, m4/glibc2.m4, m4/glibc21.m4:
	* m4/iconv.m4, m4/intdiv0.m4, m4/intmax.m4, m4/inttypes.m4:
	* m4/inttypes_h.m4, m4/inttypes-pri.m4, m4/isc-posix.m4:
	* m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4:
	* m4/longdouble.m4, m4/longlong.m4, m4/nls.m4, m4/po.m4:
	* m4/printf-posix.m4, m4/progtest.m4, m4/signed.m4, m4/size_max.m4:
	* m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, m4/wchar_t.m4:
	* m4/wint_t.m4, m4/xsize.m4:
	Upgrade to gettext-0.14.3.
	* configure.in: Use gt_LC_MESSAGES instead of AM_LC_MESSAGES.
	Invoke gl_AC_TYPE_LONG_LONG instead of CL_LONGLONG.
	* m4/fenv_default.m4: Update for changed m4/longdouble.m4.
	* floatparam.c: Test HAVE_LONG_DOUBLE instead of HAVE_LONGDOUBLE.

2005-03-14  Sam Steingold  <sds@gnu.org>

	* genclisph.d (endp): export

2005-03-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in (stat): check for struct members
	st_rdev, st_blksize and st_blocks
	* modules/syscalls/posix.lisp (file-stat): not just on Unix
	* modules/syscalls/calls.c (file-stat): when lstat() is not
	available, use stat() instead
	(check_chmod_mode): use DEFCHECKER
	(CONVERT-MODE): use check_chmod_mode_table

2005-03-14  Doug Currie  <e@flavors.com>
	    Sam Steingold  <sds@gnu.org>

	* makemake.in: work around the woe32 stat(".../") bug: make sure
	that the -I argument does not end with a slash
	* berkeley-db/Makefile.in, bindings/win32/Makefile, dirkey/Makefile.in:
	* i18n/Makefile.in, matlab/Makefile, netica/Makefile, pcre/Makefile.in:
	* postgresql/Makefile.in, rawsock/Makefile.in, regexp/Makefile.in:
	* syscalls/Makefile.in, wildcard/Makefile.in, zlib/Makefile.in:
	(INCLUDES): remove the trailing slash

2005-03-14  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (NZERO) [!NZERO]: define in the
	preamble so that it is defined before DEFCHECKER output

2005-03-14  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/configure.in: add AC_LIB_LINKFLAGS([db])
	* modules/berkeley-db/Makefile.in: pass DBCPPFLAGS to CC
	when building bdb.o

2005-03-12  Bruno Haible  <bruno@clisp.org>

	* makemake.in (SHREXT): Rename from DLL.
	* clisp-link.in: Use @SHREXT@ instead of @DLL@.

2005-03-12  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c: Assume limits.h exists.
	* modules/syscalls/configure.in: Don't test whether limits.h exists.

2005-03-12  Bruno Haible  <bruno@clisp.org>

	* clisp-link.in (prepare_dynamic_module): Indentation.

2005-03-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* makemake.in (ARGQ1, QQUOT): new variables.
	(clisp.1): fix for MSVC.
	(clisp.html): use the new vars to remove conditional.

2005-03-10  Sam Steingold  <sds@gnu.org>

	relocatable driver on win32
	* pathname.d (find_executable): extract to ...
	* execname.c: new file
	* _clisp.c: include it
	* install.lisp, install.bat: use driver instead of batch file
	and runtime
	* makemake.in (pathname, clisp): depend on execname.c
	(clisp): build relocatable
	(distrib) [win32]: distribute clisp.exe, locale (when USE_GETTEXT)
	* version.sh: bumped

2005-03-10  Sam Steingold  <sds@gnu.org>

	* m4/readline.m4 (CL_READLINE): add AC_ARG_WITH([readline])
	* configure.in: remove AC_ARG_WITH([readline])

2005-03-10  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): moved PACKAGE_NAME, PACKAGE_TARNAME and
	PACKAGE_BUGREPORT here

2005-03-08  Sam Steingold  <sds@gnu.org>

	* lisparit.d (RANDOM): do not accept RATIOs

2005-03-08  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: restore the second argument
	to AC_SEARCH_LIBS

2005-03-07  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regex.c [clisp]: include "clisp.h"
	* modules/regexp/gettext.h: add
	* modules/regexp/Makefile.in (regex.o): pass -I$(INCLUDES) -Dclisp

2005-03-07  Sam Steingold  <sds@gnu.org>

	* m4/regexp.m4 (CL_REGEXP): add AC_ARG_WITH and some more tests
	* modules/regexp/configure.in: AC_ARG_WITH is in CL_REGEXP now
	the option is rename to included-regexp from sysre

2005-03-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: use AC_FUNC_CHOWN

2005-03-07  Sam Steingold  <sds@gnu.org>

	* m4/alloca.m4 (CL_ALLOCA): define HAVE_ALLOCA_H to 1 for
	compatibility with AC_FUNC_ALLOCA

2005-03-07  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regex.c, modules/regexp/regex.h:
	upgraded to gnulib CVS head

2005-03-07  Sam Steingold  <sds@gnu.org>

	* debug.d, subr.d, constsym.d (CRASH): rename from DEBUG for
	better separation from CL
	* init.lisp: do not shadow SYS::DEBUG
	* compiler.lisp (parse-optimize-quality): no need for package
	prefix for DEBUG

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (UL_to_I) [DEBUG_GCSAFETY]: Define as a function, not as
	a macro.
	* intelem.d (UL_to_I): Update.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* intelem.d (Q_to_I): Use minus_bit instead of -bit, to avoid a gcc
	warning.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* stream.d (iconv_wcstombs): Fix 2005-03-01 patch that broke
	compilation when CC=g++.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (mulu32_, mulu32_unchecked, divu_3232_3232_)
	(divu_6432_3232_): Use ANSI C function declaration. Needed when CC=g++.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	Make HEAPCODES work on 64-bit platforms.
	* lispbibl.d (oint_type_shift, oint_type_len, oint_type_mask)
	(oint_data_shift, oint_data_len, oint_data_mask, garcol_bit_o)
	[HEAPCODES && WIDE_HARD]: Define appropriately.
	* misc.d (SYS::ADDRESS-OF): Make it work if HEAPCODES && WIDE.
	* intlog.d (I_ord2): Fix bug on 64-bit platforms.

2005-03-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (OPENLOG, SETLOGMASK, %SYSLOG, CLOSELOG):
	implement a <syslog.h> interface
	* modules/syscalls/posix.lisp (openlog, setlogmask, syslog, closelog):
	export
	(syslog): thin wrapper over %SYSLOG, calling FORMAT
	* modules/syscalls/configure.in: check for the syslog facilities

2005-03-06  Sam Steingold  <sds@gnu.org>

	fix bug#1157691: (optimize (debug 3)) fails
	* compiler.lisp (parse-optimize-quality): extract code from
	PROCESS-DECLARATIONS; use CL:DEBUG instead of DEBUG
	(process-declarations): use parse-optimize-quality

2005-03-03  Sam Steingold  <sds@gnu.org>

	* built.d (built_flags): add libiconv version

2005-03-03  Sam Steingold  <sds@gnu.org>

	ported DYNAMIC_MODULES to WIN32_NATIVE
	* spvw.d (libopen, find_name): moved here from foreign.d
	(get_module_symbol): new function
	(dynload_modules): use them (instead of dlopen and dlsym)
	* lispbibl.d (libopen, find_name): declare
	* foreign.d (libopen, find_name): moved to spvw.d
	(object_handle): surround find_name() with
	begin_system_call()/end_system_call()

2005-03-03  Sam Steingold  <sds@gnu.org>

	* stream.d (oconv_unshift_output_unbuffered_)
	(oconv_unshift_output_buffered_): use OS_errno instead of errno

2005-03-02  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQprepare, PQsendPrepare): add
	* modules/postgresql/sql.lisp: GETENV is in EXT, not SYS

2005-03-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_priority_value): define
	separately on WIN32_NATIVE and UNIX: the former has a strict
	symbol-number map and pre-defined constants, while the latter has
	a lax reverse map and symbolic values are defined in-place

2005-03-02  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (split-option): split only if #\= is unique
	(split-command): search for the final #\) :FROM-END
	(to-C-name, new-checker): cpp-name can be (:KEYWORD EXPRESSION)
	(word-list): call SPLIT-OPTION
	(print-tables-1): (:KEYWORD EXPRESSION) does not need #ifdef

2005-03-02  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_priority_value): reverse=sint_to_I
	(OS:PRIORITY): use check_priority_value_reverse() as the return value

2005-03-02  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): add slot reverse
	(new-checker): accept reverse
	(print-tables-1): use reverse

2005-03-01  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): add slot suffix
	(to-C-name, new-checker): accept suffix
	(print-tables-1): use suffix

2005-03-01  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: check for limits.h,
	getpriority and setpriority
	* modules/syscalls/posix.lisp (priority, process-id): export
	(priority): defsetf
	* modules/syscalls/calls.c (priority, set-priority): implement

2005-03-01  Sam Steingold  <sds@gnu.org>

	* pathname.d (find_executable) [UNIX_CYGWIN32]: try to use
	/proc/<pid>/exe like on Linux

2005-03-01  Sam Steingold  <sds@gnu.org>

	* misc.d (PROCESS-ID): rename from PROGRAM-ID for semantic
	compatibility with getpid and GetCurrentProcessId
	* constsym.d, subr.d: ditto
	* disassem.lisp (disassemble): ditto

2005-03-01  Sam Steingold  <sds@gnu.org>

	* lispbibl.d [__MINGW32__]: include unixconf.h

2005-03-01  Sam Steingold  <sds@gnu.org>

	* makemake.in: handle gettext identically on unix and windows
	(LIB) [win32gcc]: add $LIBICONV
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-03-01  Sam Steingold  <sds@gnu.org>

	* stream.d (open_iconv, iconv_mblen, iconv_mbstowcs, iconv_wcslen)
	(iconv_wcstombs, iconv_range): do not assume that errno is
	present, use OS_errno instead
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>

2005-02-28  Sam Steingold  <sds@gnu.org>

	* comptran.d (N_N_expt_N): fix a GC-safety bug

2005-02-28  Sam Steingold  <sds@gnu.org>

	fix c++ compilation
	* comptran.d (maybe_rebind): new macro, used throughout

2005-02-28  Bruno Haible  <bruno@clisp.org>

	* pathname.d (find_executable) [WIN32]: Fix malloc usage bug introduced
	on 2005-02-24.

2005-02-28  Sam Steingold  <sds@gnu.org>

	* win32.d (STDC_HEADERS): define to 1 explicitly for compatibility
	with autoconf

2005-02-28  Sam Steingold  <sds@gnu.org>

	* autoconf/install-sh: add (from autoconf 2.59);
	required by AC_LIB_LINKFLAGS

2005-02-28  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/configure.in: use AC_LIB_LINKFLAGS([pq])
	* modules/postgresql/Makefile.in: use PQCPPFLAGS instead of
	CPPFLAGS to pass the result of --with-pq-prefix to CC
	* modules/pari/configure.in: use AC_LIB_LINKFLAGS instead of
	AC_LIB_LINKFLAGS_BODY
	* modules/pari/Makefile.in: use PARICPPFLAGS instead of CPPFLAGS
	to pass the result of --with-pari-prefix to CC

2005-02-28  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (SET-LOCALE, LOCALE-CONV, res_to_obj)
	(locale_string_to_STACK): use *MISC-ENCODING* instead of UTF-8
	(get_locale_info) [WIN32_NATIVE]: do not use LOCALE_USE_CP_ACP

2005-02-27  Sam Steingold  <sds@gnu.org>

	* clisp-link.in (link): rm $2 to avoid an error on Solaris
	this fixes one of the problems reported in bug#1124425

2005-02-20  Bruno Haible  <bruno@clisp.org>

	* realtran.d (R_cosh_sinh_R_R): Remove start_p argument.
	(R_tanh_R): Update.
	* comptran.d (N_sin_N, N_cos_N, N_tan_N, N_sinh_N, N_cosh_N, N_tanh_N):
	Update.

2005-02-20  Bruno Haible  <bruno@clisp.org>

	* realtran.d (R_ln_R): Remove start_p argument.
	(R_R_log_R): Update.
	* comptran.d (N_log_N, N_N_log_N, R_R_atanh_R_R, R_R_asinh_R_R)
	(N_acos_N, N_acosh_N): Update.
	* lisparit.d (log_digits): Update.

2005-02-20  Bruno Haible  <bruno@clisp.org>

	* comptran.d (N_log_N): Remove start_p argument.
	(N_N_log_N, N_N_expt_N): Update.
	* lisparit.d (LOG): Update.

2005-02-24  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (HAVE_DISASSEMBLER): define always
	* misc.d (PROGRAM-ID): add a WIN32_NATIVE implementation
	* pathname.d (maybe_executable): only on UNIX
	(find_executable) [WIN32_NATIVE]: use GetModuleFileName()
	instead of GetCommandLine()
	* spvw.d (init_lowest_level): predicate find_executable() on
	HAVE_DISASSEMBLER, not on UNIX

2005-02-24  Bruno Haible  <bruno@clisp.org>

	* makemake.in (ALL_LINGUAS): Look for configure.in in the right
	directory. Update default value. Don't enclose default value in
	double-quotes.

2005-02-22  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (pari-1): gen_1 instead of gone
	(pari-2): gen_2 instead of gtwo
	(pari--1): gen_m1 instead of gminusone

2005-02-22  Sam Steingold  <sds@gnu.org>

	* makemake.in (config.status): remove config.cache
	* configure: do not remove config.cache (this undoes the
	2002-07-21 change)

2005-02-22  Bruno Haible  <bruno@clisp.org>

	* m4/mprotect.m4 (CL_MPROTECT): Actually invoke GL_NOCRASH.

2005-02-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCC_CREATESHARED): treat cygwin like linux and gnu

2005-02-21  Sam Steingold  <sds@gnu.org>

	* modules/pari/configure.in, modules/pari/Makefile.in:
	AC_LIB_LINKFLAGS_BODY should work since 2005-02-16

2005-02-21  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): use SYS::%FIND-PACKAGE instead of
	FIND-PACKAGE to give a meaningful error for non-existent packages

2005-02-20  Bruno Haible  <bruno@clisp.org>

	Fix wrong intermediate precision used in many transcendental function
	computations since 2002-09-11. Avoid unjustified contagion warnings.
	* realelem.d (R_float_digits): New function.
	* realtran.d (R_tan_R): New function, extracted from N_tan_N.
	(R_ln_R): Avoid computing 0*ln(2).
	(R_cosh_sinh_R_R): Small optim.
	(R_tanh_R): New function, extracted from N_tanh_N.
	* comptran.d (N_exp_N): Don't use F_extend2_F to extend b's precision;
	instead let R_cos_sin_R_R do it. Let R_exp_R increase the precision
	always. Avoid unjustified contagion warnings.
	(N_log_N): Don't use F_extend2_F to extend the precision; instead use
	F_extend_F. Small optim.
	(N_N_expt_N): Compute the needed precision correctly. Fix bug
	introduced on 2002-09-11: Don't waste time if x is a very long float
	and y is a short float.
	(N_sin_N): Fix bug introduced on 2002-09-11: If (realpart x) is the
	exact 0, return a complex number with realpart exact 0. Avoid
	unjustified contagion warnings.
	(N_cos_N): Handle the case of (realpart x) = 0 separately. Avoid
	unjustified contagion warnings.
	(N_tan_N): Use R_tan_R. Fix bug introduced on 2002-09-11: If
	(realpart x) is the exact 0, return a complex number with realpart
	exact 0. Avoid unjustified contagion warnings.
	(N_cis_N): Handle the case of (realpart x) = 0 separately. Fix bug
	introduced on 2002-09-11: (exp (- b)) was computed with too small
	precision. Avoid unjustified contagion warnings.
	(N_sinh_N): Fix bug introduced on 2002-09-11: If (realpart x) is the
	exact 0, return a complex number with realpart exact 0. Avoid
	unjustified contagion warnings.
	(N_cosh_N): Handle the case of (realpart x) = 0 separately. Avoid
	unjustified contagion warnings.
	(N_tanh_N): Use R_tanh_R. Fix bug introduced on 2002-09-11: If
	(realpart x) is the exact 0, return a complex number with realpart
	exact 0. Avoid unjustified contagion warnings.
	(R_R_atanh_R_R): Use F_extend_F instead of F_extend2_F.

2005-02-20  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe-object@package): Print information about
	case-sensitive or case-inverted packages.
	Suggested by Duane Rettig <duane@franz.com>.

2005-02-20  Bruno Haible  <bruno@clisp.org>

	* package.d (init_packages): Add nickname "CS-USER" to package
	CS-COMMON-LISP-USER. Add nickname "CS-LISP" to package CS-COMMON-LISP.
	Suggested by Duane Rettig <duane@franz.com>.

2005-02-18  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp (new-checker): Don't make the first enum element
	the default.
	* i18n/gettext.c (check_locale_category): Use LC_MESSAGES as default.
	* berkeley-db/bdb.c: Make all DEFCHECKER defaults explicit.
	* rawsock/rawsock.c: Likewise.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-MULTIPLE-VALUE-SETQ): Eliminate assignments to
	symbols that occur later again in the symbol list.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-17  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): do not assume bash, just sh, when
	exporting a variable (fixed 2005-02-11 patch)

2005-02-17  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (__EXTENSIONS__) [__sun]: define to
	enable confstr() prototype and avoid a gcc warning

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (test-argument-syntax): When NIL is passed instead
	of a keyword, to a function expecting keyword arguments, signal it
	and return NIL instead of STATIC-KEYS.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-17  Bruno Haible  <bruno@clisp.org>

	* makemake.in (VERSION, CLISP_VERSION, BASE_MODULES): Move out of the
	customizable section.

2005-02-16  Bruno Haible  <bruno@clisp.org>

	* configure: Accept --enable and --disable options and pass them down.
	* makemake.in: Accept --enable and --disable options.
	(module_configure_flags): New variable.
	(MODULE_CONFIGURE_FLAGS): New variable.
	(anymodule): Pass MODULE_CONFIGURE_FLAGS to subordinate configure.

2005-02-16  Bruno Haible  <bruno@clisp.org>

	Make it possible again to use Makefile.devel without having clisp
	installed.
	* Makefile.devel (GCC_INSTALL_DIR): Define as a macro, not as a
	variable.
	(install-gcc): Use it once only.
	Reported by Duane Rettig <duane@franz.com>.

2005-02-16  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Use the config.cache in the main build dir only if it
	exists. Fixes bug introduced on 2005-02-11.

2005-02-17  Bruno Haible  <bruno@clisp.org>

	Simplify the version handling.
	* version.sh: New file.
	* configure.in: Source the version.sh file. Call AC_INIT without
	arguments. Set PACKAGE_NAME, PACKAGE_TARNAME, PACKAGE_VERSION,
	PACKAGE_STRING, PACKAGE_BUGREPORT ourselves.
	* makemake.in (version): Remove variable.
	(VERSION): Define using the PACKAGE_VERSION, not the src/VERSION file.
	(Makefile): Don't depend on VERSION.
	(config.status): Depend on version.sh.
	(VERSION): Remove rule.
	(clisp.html, clisp.1, clisp-1.html): Don't depend on VERSION.
	(install-doc): Use the VERSION variable from this Makefile.
	(TOPDIR): Define using the PACKAGE_VERSION, not the src/VERSION file.
	(distrib): Use the VERSION variable from this Makefile.
	(clean7): Don't remove VERSION.
	* configure: Use version.sh, not VERSION. Don't symlink VERSION.
	* Makefile.devel (all): Remove src/VERSION.
	(src/VERSION): Remove rule.
	(src/version.h): Generate from version.sh, not using src/configure.
	(VER): Define using version.sh.
	(src-distrib): Don't depend on src/VERSION.
	(src--distrib): Don't touch src/VERSION.
	* po/po_header: Use version.sh, not VERSION.
	* po/Makefile.devel (clisp.pot, en.po, clisplow.pot): Depend on
	version.sh, not VERSION.

2005-02-16  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c: use SOCKLEN_T instead of socklen_t
	and uint.. instead of uint.._t

2005-02-16  Sam Steingold  <sds@gnu.org>

	DEFCHECKER now accepts option-like arguments foo=bar
	* utils/modprep.lisp (split-option): new function
	(split-command): use it
	(new-flag-set): do not accept :TYPE and :PREFIX
	(checker): new slots ENUM-P and DEFAULT
	(new-checker): accept :DEFAULT and :ENUM
	(def-something-p): simplified
	(formatln): new macro
	(print-tables-1): reinstated defaults
	(check-signature): generated errors call GETTEXT
	and use ~S instead of ~
	* modules/berkeley-db/bdb.c, modules/i18n/gettext.c:
	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: update

2005-02-16  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (regexp_exec_flags): new DEFFLAGSET
	(REGEXP-EXEC): use it and posfixnum_default2()

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-DEPOSIT-FIELD): Fix bug introduced on 2004-04-04.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-16  Bruno Haible  <bruno@clisp.org>

	* clos-package.lisp: Add "MOP" as nickname of package "CLOS".

2005-02-15  Bruno Haible  <bruno@clisp.org>

	* autoconf/config.dynamic: New file, based on libtool-1.5.10.

2005-02-15  Sam Steingold  <sds@gnu.org>

	* init.lisp (open-for-load): use DIRECTORY instead of PROBE-DIRECTORY

2005-02-15  Bruno Haible  <bruno@clisp.org>

	* error.d (write_errorstring): Undo 2004-12-24 change: Don't call
	elastic_newline here.
	(end_error): Call elastic_newline here.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-error): Fix bug introduced on 2005-01-13.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-14  Sam Steingold  <sds@gnu.org>

	* init.lisp (open-for-load): open the file only if there is no
	directory with this name

2005-02-14  Sam Steingold  <sds@gnu.org>

	* modules/pcre/Makefile.in, modules/regexp/Makefile.in:
	* modules/rawsock/Makefile.in (DISTRIBFILES): add preload.lisp

2005-02-14  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (require): search in *LIB-DIRECTORY*/dynmod too
	* makemake.in (install): install dynmod
	(distrib): distribute dynmod
	* clisp-link.in (prepare_dynamic_module): new function: prepare
	the loading infrastructure for the current dynamic module
	(add-module-set, add-module-sets): call it

2005-02-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (DLL): new platform-dependent variable
	(clisp-link): substitute it
	* clisp-link.in: use @DLL@ instead of the literal `.so'

2005-02-14  Sam Steingold  <sds@gnu.org>

	* eval.d (parse_dd): declaration processing should not modify code

2005-02-13  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp (print-tables-1): For DEFCHECKER, don't do a
	unbound to 0 conversion and a 0 to NIL conversion.

2005-02-13  Bruno Haible  <bruno@clisp.org>

	* i18n/gettext.c (I18N:GETTEXT): Let the category argument default
	to LC_MESSAGES.
	(I18N:NGETTEXT): Likewise. Small optimizations.

2005-02-13  Bruno Haible  <bruno@clisp.org>

	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Assume that only AIX on RS6000
	have non-executable malloc'ed memory, not other operating systems.
	For MacOS X.

2005-02-13  Bruno Haible  <bruno@clisp.org>

	Avoid core dumps during autoconfiguration.
	* m4/nocrash.m4: New file.
	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Use GL_NOCRASH.
	* m4/ffcall-ireg.m4 (CL_IREG_FLOAT_RETURN): Use GL_NOCRASH.
	* m4/ffcall-pccstruct.m4 (CL_PCC_STRUCT_RETURN): Use GL_NOCRASH.
	* m4/ffcall-smallstruct.m4 (CL_SMALL_STRUCT_RETURN): Use GL_NOCRASH.
	* m4/mmap.m4 (CL_MMAP): Use GL_NOCRASH.
	* m4/mprotect.m4 (CL_MPROTECT): Use GL_NOCRASH.

2005-02-13  Bruno Haible  <bruno@clisp.org>

	* stream.d (finish_tty_output, clear_tty_output): On MacOS X, ignore
	ENODEV as well. It occurs for a handle pointing to /dev/null.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* .gdbinit (ansi_tests): Remove unneeded *disassemble-use-live-process*
	setting.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (process-declarations): Add syntax check for most other
	declaration types.

2005-02-13  Sam Steingold  <sds@gnu.org>

	* stream.d (error_unless_invalid) [WIN32_NATIVE]: new function:
	ignore ERROR_INVALID_PARAMETER in addition to ERROR_INVALID_HANDLE
	and ERROR_INVALID_FUNCTION
	(clear_tty_input, clear_tty_output) [WIN32_NATIVE]: use it
	Found by Paul Dietz's ansi-tests test suite.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Generate references to CAR,
	CDR, SVREF with *denv*.
	(c-VAR, c-FUNCTION): Update.
	(simplify): Don't drop (CAR), (CDR), (SVREF) in non-for-value position
	if SAFETY = 3.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-11  Sam Steingold  <sds@gnu.org>

	* stream.d (get_standard_output_file_stream): in batch mode on
	win32 terminal_stream may be _closed_, so restore my 2005-01-31
	fix which was remove on 2005-02-04

2005-02-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): pass CC to configure only if it was
	actually set (fixed the 2004-03-15 patch)

2005-02-11  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (parse-optimize-quality): work in interpreter too
	* eval.d (parse_dd): call NOTE-OPTIMIZE

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Generate a SYMBOL-FUNCTION
	instruction with reference to *denv*.
	(c-FUNCTION): Likewise with null environment.
	(simplify): Don't drop (SYMBOL-FUNCTION) in non-for-value position if
	SAFETY = 3.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-10  Sam Steingold  <sds@gnu.org>

	handle OPTIMIZE PROCLAIMations
	* control.d (PROCLAIM): handle OPTIMIZE declarations
	* constsym.d (note_optimize): add for PROCLAIM
	* compiler.lisp (*optimize*): new: keep OPTIMIZE PROCLAIMations here
	(parse-optimize-quality): new: check OPTIMIZE declaration
	(declared-optimize): use *OPTIMIZE* for global settings;
	use ASSOC because PROCESS-DECLARATIONS calls PARSE-OPTIMIZE-QUALITY
	(process-declarations): use CASE instead of COND
	use PARSE-OPTIMIZE-QUALITY to canonicalize OPTIMIZE declarations
	(note-optimize): new: record global OPTIMIZE declarations in *OPTIMIZE*
	(c-PROCLAIM): handle OPTIMIZE PROCLAIMations using NOTE-OPTIMIZE

2005-02-10  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (declared-declaration): New function.
	(process-declarations): Use it.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Fix bug introduced on
	2003-12-30.

2005-02-09  Bruno Haible  <bruno@clisp.org>

	* type.lisp (%the): Add comments about the (VALUES ...) type specifier.

2005-02-10  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (declared-optimize): Revert last patch: Don't use POP.

2005-02-09  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (declared-optimize): use POP
	(c-GLOBAL-FUNCTION-CALL): simplified control flow

2005-02-09  Sam Steingold  <sds@gnu.org>

	* charstrg.d (coerce_char): accept SYS::INPUT-CHARACTER
	* constsym.d (input_character, input_character_char): add
	* init.lisp (char-key): export
	* xcharin.lisp (char-key): implement

2005-02-08  Bruno Haible  <bruno@clisp.org>

	* type.lisp (safe-typep): Accept an env argument and return a second
	value, like SUBTYPEP does.
	* subtypep.lisp (STANDARD-OBJECT): Handle (FUNCTION ...) types.
	(canonicalize-type): Accept (FUNCTION ...) and (VALUES ...) type
	specifiers.
	(canonicalized-types-equal-p): Accept (FUNCTION ...) and (VALUES ...)
	type specifiers.
	(subtypep, subtypep-logic): Call safe-typep instead of typep and
	handle the possibility of unknown subresults.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp: Fix comments that confused the seclass of an anode
	with the seclass of a function.
	(declared-optimize): New function.
	(f-side-effect): If SAFETY = 3, assume the worst.
	(c-GLOBAL-FUNCTION-CALL): Likewise.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-TEST/TEST-NOT): Rewrite. Fixes multiple invalid
	optimizations.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-08  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Upgrade to libtool-1.5.12.

2005-02-07  Sam Steingold  <sds@gnu.org>

	* spvw.d (parse_options): fix "--help" and "-help"

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* built.d (built_flags): Use DYNAMIC_ARRAY instead of alloca().

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* foreign.d (FFI:CLOSE-FOREIGN-LIBRARY): Assign value1 only after
	calling close_library().

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* foreign.d (object_handle): Fix the GCTRIGGER statement.

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (print_mem_stats): Fix fprintf statements for 64-bit
	platforms.

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* spvw.d (INVALID_ARG): Rename from ILLEGAL_ARG.
	(parse_options): Use term "invalid" instead of "illegal".

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_module_2, usage, arg_error): Use symmetric quotes,
	instead of `...'.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-DIRECT-FUNCTION-CALL): Fix error and wrong warning
	when a call is compiled that has :ALLOW-OTHER-KEYS T and other keyword
	arguments.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-06  Sam Steingold  <sds@gnu.org>

	* configure: accept --with-dynamic-modules

2005-02-05  Sam Steingold  <sds@gnu.org>

	* control.d (SYMBOL-MACROLET, LET*, MULTIPLE-VALUE-BIND):
	always activate all SPECIAL declarations
	* eval.d (funcall_iclosure): ditto

2005-02-05  Sam Steingold  <sds@gnu.org>

	* cfgwin32.lisp (*load-paths*): use the common "**" instead of
	the CLISP-specific "..." for :WILD-INFERIORS

2005-02-05  Sam Steingold  <sds@gnu.org>

	free the mallocs!
	* built.d (built_flags): return an object,
	use alloca() instead of malloc()
	* lispbibl.d (built_flags): update the prototype
	* spvw.d (init_object_tab): update the built_flags() invocation

2005-02-04  Bruno Haible  <bruno@clisp.org>

	* built.d (built_flags): Append libsigsegv version if known.

2005-02-04  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export clos:standard-accessor-method.
	* clos-package.lisp: Likewise.
	Reported by Pascal Costanza <pc@p-cos.net>.

2005-01-27  Bruno Haible  <bruno@clisp.org>

	* clos-class1.lisp (built-in-class): Add slot $prototype.
	(*<built-in-class>-prototype-location*): New constant.
	(*<built-in-class>-instance-size*): Increment.
	(structure-class): Add slot $prototype.
	(*<structure-class>-prototype-location*): New constant.
	(*<structure-class>-instance-size*): Increment.
	* clos-class3.lisp (shared-initialize-<built-in-class>): Add prototype
	argument. Initialize the $prototype slot with it.
	(shared-initialize-<structure-class>): Initialize the $prototype slot
	to nil.
	(<t>, <character>, <function>, ...): Initialize with a prototype.
	* clos-class4.lisp (shared-initialize@built-in-class): Add prototype
	argument.
	* clos-class6.lisp (class-prototype): Accept also built-in-class and
	structure-class instances.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (compile): If there were errors, return an error-
	signaling closure, not NIL.
	(compiled-with-errors): New function.
	Found by Paul Dietz's ansi-tests test suite.

2005-02-04  Bruno Haible  <bruno@clisp.org>

	* stream.d (get_standard_output_file_stream): Reuse terminal stream
	only if it allows character output.

2005-02-02  Sam Steingold  <sds@gnu.org>

	* pathname.d: reverted some of the 2005-01-31 patch
	(substitute_resolved_path): remove
	(assure_dir_exists) [WIN32_NATIVE]: use MERGE-PATHNAMES instead
	[UNIX]: reverted

2005-02-02  Sam Steingold  <sds@gnu.org>

	* genclisph.d (perseverance_t): ensure the constants have the
	right values (like with all the other enums)

2005-02-01  Sam Steingold  <sds@gnu.org>

	* foreign.d (close_library): new function
	(exit_ffi): use it
	(FFI:CLOSE-FOREIGN-LIBRARY): implement
	* constsym.d, subr.d (close_foreign_library): add
	* foreign1.lisp (FFI:CLOSE-FOREIGN-LIBRARY): export

2005-02-01  Sam Steingold  <sds@gnu.org>

	* foreign.d (find_library): extract from FFI::FOREIGN-LIBRARY
	(FFI::FOREIGN-LIBRARY): use it; fix a GC-safety bug
	(object_handle): maygc only if retry_p is true

2005-02-01  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::LGAMMA): finished the
	2005-01-24 patch: HAVE_DECL_* is always defined to either 0 or 1

2005-02-01  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (get_locale_info) [WIN32_NATIVE]: define
	for I18N:LANGUAGE-INFORMATION even when HAVE_LOCALECONV is defined
	which can happen on mingw which has localeconv() but not
	nl_langinfo(); do not require begin_system_call()/end_system_call()
	wrap and use my_realloc() and my_malloc()
	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
	(my_atoi) [WIN32_NATIVE]: new function
	(thousands_sep_to_STACK, locale_int_to_STACK)
	(locale_bool_to_STACK): use it

2005-02-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (my_realloc): new function for modules
	* genclisph.d (my_realloc): export

2005-02-01  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (getrlimit_arg): do not define unless
	HAVE_GETRLIMIT is defined

2005-01-31  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f: use skipSTACK() instead of popSTACK()
	to avoid a gcc warning

2005-01-31  Sam Steingold  <sds@gnu.org>

	* exporting.lisp (export-structure-accessories): reverted the
	2005-01-27 patch: export accessors for direct slots, not effective
	slots: first, the indirect slots may be "private" - defined
	elsewhere and not under exporting.lisp; second, there is no way to
	get accessors names from an EFFECTIVE-SLOT-DEFINITION

2005-01-31  Sam Steingold  <sds@gnu.org>

	* stream.d (rd_ch_keyboard) [WIN32_NATIVE]: recognize many more keys

2005-01-31  Sam Steingold  <sds@gnu.org>

	* spvw_sigsegv.d (print_mem_stats): new function
	(sigsegv_handler_failed, stackoverflow_handler): call it

2005-01-31  Sam Steingold  <sds@gnu.org>

	fix TRUENAME on WIN32: it used to lose :VERSION :NEWEST
	* pathname.d (substitute_resolved_path): new function, extracted
	from assure_dir_exists/unix
	(assure_dir_exists): use it on both UNIX and WIN32

2005-01-31  Sam Steingold  <sds@gnu.org>

	* stream.d (get_standard_output_file_stream): reuse
	terminal_stream only if it is still open

2005-01-31  Sam Steingold  <sds@gnu.org>

	print diagnostics instead of usage on argument error
	* spvw.d (arg_error, ILLEGAL_ARG): add
	(parse_options): call them instead of usage()

2005-01-30  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (activate_specdecl, specdecled_p): moved here from
	* control.d: here
	(specdecled_): global
	* eval.d (funcall_iclosure): activate SPECDECL bindings together
	with the variable bindings

2005-01-30  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (SET_BIT, CLR_BIT): moved here from ...
	* control.d: here
	* eval.d: use SET_BIT & CLR_BIT

2005-01-30  Sam Steingold  <sds@gnu.org>

	activate SPECDECL bindings
	* control.d (specdecled_): extract from make_variable_frame()
	(specdecled_p, activate_specdecl): new macros
	(make_variable_frame): also return SPECDECL bindings pointer and count
	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND):
	also activate SPECDECL bindings

2005-01-29  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (fill_dbt): use I_to_LEbytes()
	(dbt_to_object): use LEbytes_to_I()

2005-01-29  Sam Steingold  <sds@gnu.org>

	* genclisph.d (I_integer_length): export

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* foreign1.lisp (with-defining-c-type): Put the declarations from
	the body at the right place, so they can affect the c-type binding.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* macros2.lisp (with-output-to-string): Evaluate the element-type
	form outside, not inside, the scope of the declarations.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	Improved error checking for the handling of references from local macro
	definitions to bindings and declarations in the outer lexical
	environment.
	* control.d (macrolet): Add a marker to the venv and fenv being
	passed to make-macro-expander.
	* defmacro.lisp (make-macro-expander): Add a marker to the venv and
	fenv being constructed.
	* eval.d (symbol_env_search, sym_function): Respect the MACROLET
	markers. Signal an error if an invalid reference from inside a
	macroexpander is seen.
	* init.lisp (fenv-assoc, venv-assoc): Likewise.
	* compiler.lisp (fenv-search, venv-search): Likewise.

2005-01-27  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (checked-compute-slots): Tweak an error message.

2005-01-28  Bruno Haible  <bruno@clisp.org>

	* socket.d (host_fn_t, with_host, string_to_addr1, string_to_addr)
	(resolve_host1): Use const where appropriate.
	* genclisph.d (main): Update.

2005-01-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (udigits_to_I): Remove declaration.
	* intelem.d (udigits_to_I): Remove function.
	* socket.d (string_to_addr1): Call LEbytes_to_UI instead of
	udigits_to_I.
	* genclisph.d (main): Don't emit udigits_to_I declaration.

2005-01-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (FAKE_8BIT_VECTOR): New macro.
	(LEbytes_to_UI, LESbvector_to_UI, LEbytes_to_I, LESbvector_to_I)
	(UI_to_LEbytes, I_to_LEbytes): New declarations.
	* intserial.d: New file, mostly extracted from stream.d.
	* lisparit.d: Include intserial.c.
	* stream.d (bitbuff_iu_I): Use LESbvector_to_UI.
	(bitbuff_is_I): Use LESbvector_to_I.
	(bitbuff_ixu_sub): Remove bytesize argument. Use UI_to_LEbytes.
	Don't call ASSERT_wr_int here.
	(wr_by_ixu_sub): Call ASSERT_wr_int here. Update.
	(bitbuff_ixs_sub): Remove bytesize argument. Use I_to_LEbytes.
	Don't call ASSERT_wr_int here.
	(wr_by_ixs_sub): Call ASSERT_wr_int here. Update.
	(WRITE-INTEGER): Update.
	* genclisph.d (main): Emit declarations for LEbytes_to_UI,
	LEbytes_to_I, UI_to_LEbytes, I_to_LEbytes.
	* makemake.in (LISPARIT_SUBFILES): Add intserial.
	* po/Makefile.devel (DSOURCES): Add intserial.

2005-01-28  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_readlabel): Fix C++ compilation.

2005-01-28  Bruno Haible  <bruno@clisp.org>

	* makemake.in (check-fresh-line): Reduce the scope of the test on
	Woe32.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (build-effective-method-function-form): Don't
	use the single method's fast-function as effective-method if the
	effective-method must also do keyword argument checking or if the
	method occurs among the duplicates set of the method-combination.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	Make it possible to macroexpand a TRACE form referring to functions
	that are not yet defined.
	* trace.lisp (trace): Move the check-traceable to execution time.
	Remove the check-traceable call.
	(trace1): Perform the check-traceable call here.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	New condition type ARGUMENT-LIST-DOTTED.
	* lispbibl.d (argument_list_dotted): New enum value.
	* error.d (end_error): For type argument-list-dotted, expect the
	:datum argument on the stack.
	* eval.d (fehler_apply_zuwenig): Add 'tail' argument.
	(fehler_subr_zuwenig, fehler_closure_zuwenig): Likewise.
	(apply_subr, apply_closure): Pass the remaining args atom as tail.
	(funcall_subr, funcall_closure): Pass NIL as tail.
	(interpret_bytecode_): For UNLIST, UNLIST*, pass the tail.
	* condition.lisp (argument-list-dotted, simple-argument-list-dotted):
	New condition classes.
	(%defclcs call): Update.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* format.lisp (formatter-main-1): Implement handling of ~^ inside
	~<...~>.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	Make the handling of references from local macro definitions to
	SPECIAL declarations in the outer lexical environment ANSI CL
	compliant.
	* compiler.lisp (venv-search): Verify that only non-special VAR structs
	occur in *venv*.
	(push-*venv*): For special variable bindings or SPECIAL declarations,
	push #<SPECDECL>, not a VAR struct.

2005-01-27  Bruno Haible  <bruno@clisp.org>

	* pathname.d (parse_logical_host_prefix): Fix STACK corruption bug
	introduced on 2002-12-20.

2005-01-27  Bruno Haible  <bruno@clisp.org>

	* makemake.in (interpreted.mem, halfcompiled.mem, lispinit.mem)
	(lispinit2.mem): Exit with error code if an error occurs.

2005-01-27  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (structure-undefine-accessories): Remove function,
	moved to defstruct.lisp.
	* defstruct.lisp (structure-undefine-accessories): Remove preliminary
	definition.
	(defstruct): Update.
	(structure-slots, structure-instance-size, structure-kconstructor)
	(structure-boa-constructors, structure-copier, structure-predicate):
	New functions.
	(structure-undefine-accessories): Moved here from clos-class3.lisp.
	Do nothing if name is not currently defined as a structure type.
	* clos-class6.lisp (class-direct-slots@symbol): Remove method.
	((setf class-direct-slots)): Back to a plain function expecting a
	<defined-class> instance.
	(class-instance-size, (setf class-instance-size)): Likewise.
	(class-kconstructor, (setf class-kconstructor)): Turn into a plain
	function expecting a <structure-class> instance.
	(class-boa-constructors, (setf class-boa-constructors)): Likewise.
	(class-copier, (setf class-copier)): Likewise.
	(class-predicate, (setf class-predicate)): Likewise.
	* exporting.lisp (export-structure-accessories): Rename from
	export-accessories. Use the list of effective slot names, not the
	list of direct slot names.
	(defstruct, def-c-struct): Update.

2005-01-27  Sam Steingold  <sds@gnu.org>

	* stream.d (check_endianness_arg): rename from test_endianness_arg()
	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT): call
	check_endianness_arg() before check_stream() for GC-safety

2005-01-26  Sam Steingold  <sds@gnu.org>

	* stream.d (same_handle_p): add debugging infrastructure

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* init.lisp (in-package): Execute at compile-time only if it occurs
	as a top-level form.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* makemake.in (check-ansi-tests-debug): Make more similar to the
	check-ansi-tests target.
	(check-ansi-tests-compiled, check-ansi-tests-compiled-debug): New
	targets.
	(check): Depend on check-ansi-tests-compiled.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-FUNCALL-INLINE): Fix long-standing bug in the
	handling of SPECIAL-declared optional variables: If the initforms
	of these variables come from the lambdalist, use sequential calls to
	c-bind-movable-var-anode instead of c-parallel-bind-movable-var-anode.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	Allow bignums as read-label values.
	* lispbibl.d (Rectype_BigReadLabel): New enum item.
	(BigReadLabel): New type.
	(bigreadlabel_length): New macro.
	(small_read_label_value): New macro.
	(TheBigReadLabel): New macro.
	(big_read_label_p, allocate_big_read_label): New macros.
	* spvw_circ.d (subst, subst_circ_mark): Support BigReadLabel.
	(subst_circ_unmark): Update.
	* io.d (lookup_label): Support big integers as well. Can trigger GC
	now.
	(label_definition_reader): Update.
	(pr_readlabel): Use small_read_label_value. Add support for
	BigReadLabel.
	(pr_orecord): Support BigReadLabel.
	* predtype.d (TYPE-OF, CLASS-OF): Add support for BigReadLabel.
	(enum_hs_big_read_label): New enum value.
	(heap_statistics_mapper): Add support for BigReadLabel.
	Found by Paul Dietz's ansi-tests test suite.

2005-01-26  Bruno Haible  <bruno@clisp.org>

	* places.lisp (setf): Handle (SETF (VALUES-LIST ...) ...) correctly,
	although there can be no SETF expander for VALUES-LIST.

2005-01-25  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-STREAM): handle_to_stream() already duplicates
	the handle, do not do it here

2005-01-25  Sam Steingold  <sds@gnu.org>

	* install.lisp: use EXT:STRING-CONCAT instead of CONCATENATE 'STRING
	(*clisp-linkset*): new variable
	(*clisp-runtime*, *clisp-args*): use it

2005-01-25  Bruno Haible  <bruno@clisp.org>

	* i18n/configure.in: Don't test for locale.h and setlocale.
	* i18n/gettext.c: Assume <string.h>, <locale.h>, setlocale() exist.

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* stream.d (read_byte, wr_ch_unbuffered_unix)
	(wr_ch_array_unbuffered_unix, wr_ch_unbuffered_mac)
	(wr_ch_array_unbuffered_mac, wr_ch_unbuffered_dos)
	(wr_ch_array_unbuffered_dos, wr_ch_buffered_unix)
	(wr_ch_array_buffered_unix, wr_ch_buffered_mac)
	(wr_ch_array_buffered_mac, wr_ch_buffered_dos)
	(wr_ch_array_buffered_dos): Don't assume that when the input of
	Encoding_wcstombs is nonempty, the output is nonempty as well.
	For example, glibc converts #\U000E0000 to an empty multibyte
	sequence for most encodings.
	Reported by Pascal Bourguignon.

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* intelem.d (udigits_to_I): Use 'var'.
	* utils/gctrigger.d (convert): Likewise.

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* configure.in: Add check for dvipdf.
	* makemake.in: Generate and install clisp.pdf only if DVIPDF is
	nonempty.

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* syscalls/configure.in: Check whether lgamma_r is declared, assuming
	that it is defined in this case.
	* syscalls/calls.c (POSIX:LGAMMA): Use lgamma_r only if it's declared.
	Needed for FreeBSD 4.0, which has lgamma and lgamma_r, but declares
	lgamma_r only if _REENTRANT is defined.

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* i18n/gettext.c (do_gettext, do_ngettext): Don't define if
	GNU_GETTEXT is not defined. Needed for platforms without gettext().
	* makemake.in (BASE_MODULES): Add i18n always.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (small_read_label_type): Rename from read_label_type.
	(make_small_read_label): Rename from make_read_label.
	(small_read_label_integer_p): Rename from read_label_integer_p.
	(small_read_label_p): Rename from read_label_p.
	* spvw_circ.d (subst_circ_mark, subst_circ_unmark, subst): Update.
	* io.d (lookup_label, prin_object_dispatch): Update.
	* hashtabl.d (sxhash_atom): Update.
	* predtype.d (TYPE-OF, CLASS-OF): Update.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	Implement the scope of other free declarations as ANSI CL 3.3.4
	specifies it. ANSI CL issue <DECLARATION-SCOPE:NO-HOISTING>.
	* compiler.lisp (process-declarations): Return the other declspecs as a
	fifth value.
	(push-*denv*): New function.
	(c-LAMBDABODY, c-LET/LET*, c-LOCALLY, c-MULTIPLE-VALUE-BIND)
	(c-SYMBOL-MACROLET, c-FUNCALL-INLINE): Call push-*denv* immediately
	before compiling the body-forms.

2005-01-21  Bruno Haible  <bruno@clisp.org>

	Implement the scope of free SPECIAL declarations as ANSI CL 3.3.4
	specifies it. ANSI CL issue <DECLARATION-SCOPE:NO-HOISTING>.
	* compiler.lisp (c-LAMBDABODY,c-LET/LET*, c-MULTIPLE-VALUE-BIND)
	(c-FUNCALL-INLINE): Call push-specials immediately before
	compiling the body-forms, not at the beginning.

2005-01-24  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): duplicate USE-PACKAGE is OK

2005-01-24  Bruno Haible  <bruno@clisp.org>

	* defpackage.lisp (defpackage): Let :case-sensitive and :case-inverted
	options override the default provided by :modern.

2005-01-24  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp, modules/bindings/win32/win32.lisp:
	* modules/matlab/matlab.lisp, modules/netica/netica.lisp:
	* modules/pari/pari.lisp, modules/postgresql/postgresql.lisp:
	* modules/wildcard/wildcard.lisp: use :MODERN in DEFPACKAGE

2005-01-24  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): accept :MODERN argument

2005-01-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (BASE_MODULES): add i18n only when USE_GETTEXT is true

2005-01-24  Sam Steingold  <sds@gnu.org>

	* makemake.in (clisp.rc) [win32]: depend on clisp.ico

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lisp (*expected-failures*): Update.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	Move long strings out of macroexpansions.
	* pprint.lisp (pprint-logical-block-both-error)
	(pprint-logical-block-prefix-not-string-error)
	(pprint-logical-block-suffix-not-string-error): New functions,
	extracted from pprint-logical-block.
	(pprint-logical-block): Use them.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* fill-out.lisp (with-fill-stream): Simplify a no-op.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (*declaration-types*): Add cs-cl:string.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* stream.d (streamp): Change seclass from seclass-foldable to
	seclass-read.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export the type ext:global-symbol-macro.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_readlabel): Use oint_data_shift, not oint_addr_shift.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp: Indentation fixes.

2005-01-22  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (*toplevel-name*): New variable.
	(compile-toplevel-form): Drop (declare (special *toplevel-name*)).

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* exporting.lisp (export-accessories): Also export the copier's name.
	Fixes bug introduced on 2005-01-04.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (apropos): Terminate the output with an elastic-newline,
	not a fresh-line. But output nothing if the symbol list is empty.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* foreign1.lisp (do-c-lines): Fully check the first argument already
	in the first etypecase. Allow format-control functions instead of a
	format string.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* spvw.d (print_license, print_banner): Optimize: Use fresh_line as C
	function.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* io.d (interpret_feature, FEATUREP): Optimize 2005-01-12 patch:
	Use boundp instead of streamp. Also fix comment.

2005-01-23  Bruno Haible  <bruno@clisp.org>

	* io.d (SYS::SET-READTABLE-CASE): Optimize after 2004-12-18 patch.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (appease-cerror): Don't convert the error message
	to a string before signaling it, as this leads to ugly output.
	Example: (appease-cerrors
	           (cerror "foo" "bar ~S"
	             (make-sequence 'list 30 :initial-element 0 :update #'1+)))

2005-01-21  Sam Steingold  <sds@gnu.org>

	* spvw_fault.d (handle_read_fault): fix the mingw build by using
	OS_set_errno(0) instead of errno=0

2005-01-21  Sam Steingold  <sds@gnu.org>

	* control.d (make_variable_frame): fix the check whether the
	variable is special

2005-01-21  Sam Steingold  <sds@gnu.org>

	* control.d (SET_BIT): new macro
	(make_variable_frame, activate_bindings, LET*, SYMBOL-MACROLET):
	(MULTIPLE-VALUE-BIND): use it

2005-01-21  Sam Steingold  <sds@gnu.org>

	* condition.lisp (handler-bind): use the function syntax for
	%HANDLER-BIND
	* compiler.lisp (quote-p): new function
	(l-constantp, c-constantp): use it
	(c-form-table): do not handle HANDLER-BIND specially
	(c-HANDLER-BIND): handle HANDLER-BIND in function syntax
	* init.lisp (%expand-form): do not handle %HANDLER-BIND specially
	* clos-class3.lisp (reinitialize-instance-<defined-class>):
	use the function syntax for %HANDLER-BIND
	* clos-genfun4.lisp (generic-function-undeterminedp): ditto
	* clos-methcomb2.lisp (any-method-combination-check-options): ditto

2005-01-21  Sam Steingold  <sds@gnu.org>

	fix bug#1106735: strange soft links in subdirectory full
	* clisp-link.in (CDPATH): unset

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* stream.d (get_standard_output_file_stream)
	(get_standard_error_file_stream): Return *terminal-io* if this is
	needed to avoid a FRESH-LINE bug.
	* makemake.in (check-fresh-line): New rule.
	(check): Depend on it.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* init.lisp (symbol-to-keyword): Rename from symbol-keyword.
	* defmacro.lisp (analyze-key): Update.
	* lambdalist.lisp (analyze-lambdalist)
	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist):
	Update.
	* type.lisp (%the): Update.
	* defstruct.lisp (defstruct): Update.
	* foreign1.lisp (c-struct-constructor): Update.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* stream.d (terminal_stream_p): Avoid crash when the stream is a
	Gray stream.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* format.lisp (format-character): Fix bug introduced on 2004-12-21.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* clx/mit-clx/dependent.lisp (open-x-stream): Fix when display /= 0.

2005-01-15  Bruno Haible  <bruno@clisp.org>

	* clos-class1.lisp (print-object-<potential-class>): Improve
	output when *package* is a case-sensitive package.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (maybe-continue): Remove function.
	(muffle-cerror, appease-cerror): Inline maybe-continue.

2005-01-20  Sam Steingold  <sds@gnu.org>

	* control.d (activate_bindings): new function (extracted from LET)
	(LET, LOCALLY): use it

2005-01-20  Sam Steingold  <sds@gnu.org>

	* control.d (LET, LET*, MULTIPLE-VALUE-BIND): simplified control flow

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* eval.d (symbol_env_search): Fix definition of binds_sym_p.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* stream.d (listen_handle): Use 'var'.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* makemake.in (cflags.h.stamp): Use $(MV), not $(CP).

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* io.d (structure_reader): Accept also strings and characters as slot
	names, and use test_stringsymchar_arg for converting them to a string.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (test_stringsymchar_arg): Remove redundant code.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Update.

2005-01-20  Bruno Haible  <bruno@clisp.org>

	* io.d (list2_reader): If *read-suppress* is true, return NIL.

2005-01-19  Sam Steingold  <sds@gnu.org>

	* control.d (make_variable_frame): the initial special binding is
	inactive

2005-01-19  Sam Steingold  <sds@gnu.org>

	* eval.d (funcall_iclosure): when reserving space for variable
	bindings, the actual size depends on varframe_binding_size

2005-01-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	Fix MSVC build
	* makemake.in (cflags.h.stamp): simplified for nmake.
	* win32.d: ssize_t defined for MICROSOFT.
	* stream.d (listen_handle): do not declare a variable in the
	middle of a code block.
	* utils/gctrigger.d (convert): the same.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (find-noninteractively-invokable-continue-restart):
	New function.
	(maybe-continue, exitonerror): Use it.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (maybe-continue): For a restart that requires user
	interaction, don't duplicate the break-loop's functionality; let the
	break-loop do it.

2005-01-17  John Hinsdale  <hin@alma.com>

	* modules/oracle/orafns.c, oracle.lisp: Support RowId data type

2005-01-17  Sam Steingold  <sds@gnu.org>

	DEFCHECKER now accepts new "PREFIX" argument
	* utils/modprep.lisp (prev-non-blank): made more robust
	(*commands*, split-command, argument-string)
	(ensure-argument-string): add
	(defmodule-p): use SPLIT-COMMAND
	(checker): new slot PREFIX
	(to-C-name): new function
	(new-flag-set, new-checker): :CONDITION is now a &KEY argument;
	also accept :TYPE & :PREFIX
	(word-list): rewrote; return the un-reversed list
	(def-something-p): accept a NAME->CONSTRUCTOR alist; pass TYPE and
	PREFIX to constructor
	(parse): call DEF-SOMETHING-P just once
	(print-tables-1): respect PREFIX when printing checkers
	* modules/i18n/gettext.c (check_locale_category): use prefix "LC"
	* modules/rawsock/rawsock.c (check_socket_domain): use prefix "AF"
	(check_socket_type): use prefix "SOCK"
	(check_socket_protocol): use prefix "ETH_P"
	* modules/syscalls/calls.c (sysconf_arg): use prefix "_SC"
	(confstr_arg): use prefix "_CS"
	(getrlimit_arg): use prefix "RLIMIT"
	(mknod_type_check): use prefix "S"
	* modules/berkeley-db/bdb.c (txn_check_sync): use prefix "DB_TXN"
	(check_lk_detect, check_lockmode): use prefix "DB_LOCK"
	(dbe_encryption_check, db_get_action, db_put_action, dbc_get_action)
	(dbc_put_flag, logc_get_action): use prefix "DB"
	(txn_timeout_check): use prefix "DB_SET"

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (exitonerror): Treat non-meaningful or interactive
	CONTINUE restarts like absent.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (maybe-continue): Ignore the CONTINUE restart if it
	is not meaningful: In a handler, it's better to decline than to call
	invoke-debugger.

2005-01-13  Sam Steingold  <sds@gnu.org>

	* compiler.lisp: use STRING-CONCAT instead of (CONCATENATE 'STRING)

2005-01-13  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-comment): call FRESH-LINE & ELASTIC-NEWLINE here
	(c-warn, c-error, match-known-unknown-functions, c-report-problems):
	do not prepend "~&" nor append "~." to the format string
	This fixes a bug when C-WARN did not terminate with an ELASTIC-NEWLINE.

2005-01-13  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_handles): handle SYNONYM-STREAMs
	Reported by <ayan@ayan.net>

2005-01-13  Sam Steingold  <sds@gnu.org>

	* inspect.lisp (inspect-frontend): use (FORMAT "~&~S~%") instead
	of PRIN1 for :M & :E; print conditions with ~A

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Make APPEASE-CERRORS and MUFFLE-CERRORS treat conditions with a
	nontrivial :interactive function the same as assert-restart-prompt.
	* condition.lisp (assert-failed): Drop explicit name for interactive
	function.
	(maybe-continue): Test the restart-interactive function against the
	trivial one. Generalize the special case for assert-restart-prompt.

2005-01-12  Sam Steingold  <sds@gnu.org>

	* .gdbinit (boot): new command (formerly known as "base")
	(base): new command (similar to full)

2005-01-12  Sam Steingold  <sds@gnu.org>

	add FEATUREP (http://clrfi.alu.org/clrfi/clrfi-1-featurep)
	* io.d (interpret_feature): STACK_1 may not be a stream
	(FEATUREP): implement
	* constsym.d, subr.d (featurep): add
	* init.lisp (featurep): export

2005-01-12  Sam Steingold  <sds@gnu.org>

	* makemake.in (BASE_MODULES): add syscalls and regexp

2005-01-09  Bruno Haible  <bruno@clisp.org>

	Put the i18n module into the 'base' linking set. Needed for all kinds
	of internationalized programs and the GNU gettext test suite.
	* makemake.in (BASE_MODULES): New variable.
	(all): Depend on both 'boot' and 'base'.
	(boot): New target, like old 'base'.
	(base): New target, similar to 'full'.
	(distmakefile): Don't replace BASE_LIBS and BASE_FILES.
	(distrib): Treat 'base' like 'full'. Replace BASE_LIBS and BASE_FILES
	in distmakefile here.
	(clean1): Remove boot.
	(clean3): Clean BASE_MODULES as well.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (maybe-continue): Don't call exitunconditionally.
	Instead, decline the condition. Fixes bug introduced on 2002-04-22.

2005-01-11  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: check for <wchar.h>
	* modules/syscalls/calls.c: include it when present

2005-01-11  Sam Steingold  <sds@gnu.org>

	* socket.d (host_fn_t): new typedef
	(with_host, string_to_addr1t): new functions
	(string_to_addr): re-written using them
	(resolve_host1): simplified
	(resolve_host): use with_host()
	(with_host_port): rename from with_hostname()

2005-01-11  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (array_atype): declare

2005-01-11  Sam Steingold  <sds@gnu.org>

	* intelem.d (udigits_to_I): new helper function for modules
	* lispbibl.d, genclisph.d (udigits_to_I): export
	* modules/berkeley-db/bdb.c (dbt_to_object): use it

2005-01-11  Sam Steingold  <sds@gnu.org>

	unified cygwin/woe32 time conversion
	* unixaux.d (time_t_to_filetime) [UNIX_CYGWIN32]: new function
	(time_t_from_filetime) [UNIX_CYGWIN32]: rename from to_time_t_()
	* genclisph.d (time_t_to_filetime) [UNIX_CYGWIN32]: export
	(time_t_from_filetime) [UNIX_CYGWIN32]: rename from to_time_t_()
	(convert_time_to_universal_w32, convert_time_from_universal_w32)
	[UNIX_CYGWIN32]: new inline functions
	[WIN32_NATIVE]: new aliases
	* modules/dirkey/dirkey.c (LDAP::DKEY-INFO):
	use convert_time_to_universal_w32()
	* modules/syscalls/calls.c (wfd_to_stack, PropVariantToLisp):
	use convert_time_to_universal_w32()
	(LispToPropVariant): use convert_time_from_universal_w32()

2005-01-11  Sam Steingold  <sds@gnu.org>

	* modules/matlab/matlab.lisp (mxIsLogicalScalar): remove
	* modules/matlab/wrap.lisp (matfile-content): remove unnecessary
	package prefixes

2005-01-11  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main): Init O(argv) only after locale_encoding is initialized.
	Fix a GC-safety bug. Fixes bugs introduced on 2004-02-09.
	Reported by Juliusz Chroboczek <jch@pps.jussieu.fr> and
	Mike Fabian <mfabian@suse.de>.

2005-01-10  Bruno Haible  <bruno@clisp.org>

	* foreign1.lisp (to-c-name): For symbols from a case-sensitive package,
	use function cs-cl:string.

2005-01-10  Bruno Haible  <bruno@clisp.org>

	* stream.d (fresh_line): Add special code to care for the case that
	*standard-output* and *error-output* are aliased.

2005-01-09  Bruno Haible  <bruno@clisp.org>

	* configure: Document and implement options --bindir, --libdir,
	--includedir, --datadir, --localedir, --docdir, --mandir, --htmldir,
	--dvidir, --psdir, --pdfdir, for consistency with other GNU programs.
	* makemake.in: Likewise.
	(PREFIX): On Unix, don't ignore @prefix@.
	(EXEC_PREFIX): On Unix, don't ignore @exec_prefix@.
	(bindir, BINDIR): New variables. On Unix, don't ignore @bindir@.
	(libdir, LIBDIR): New variables. On Unix, don't ignore @libdir@.
	(includedir, INCLUDEDIR): New variables. On Unix, don't ignore
	@includedir@.
	(datadir, DATADIR, localedir, LOCALEDIR): New variables. On Unix,
	don't ignore @datadir@.
	(docdir): Remove variable.
	(docdir): New variable, rename from lispdocdir.
	(SRCDOCDIR): Rename from DOCDIR.
	(SRCDOCDIR_): Rename from DOCDIR_.
	(SRCDOCDIR_M): Rename from DOCDIR_M.
	(DOCDIR): New variable.
	(mandir, MANDIR, htmldir, HTMLDIR, dvidir, DVIDIR, psdir, PSDIR)
	(pdfdir, PDFDIR): New variables.
	(brace_to_paren): New variable.
	(datadir): Rename from shared.
	* _distmakefile (datadir): Rename from shared.
	(docdir): Remove variable.
	(docdir): New variable, rename from lispdocdir.
	(install-doc, uninstall): Update.

2005-01-09  Bruno Haible  <bruno@clisp.org>

	* po/Makefile.in.in (datadir): Use @datadir@.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (maybe-continue): Remove useless code.

2005-01-10  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (GCC_VERSION, GCC_SOURCE_FILE, GCC_SOURCE_URL): New
	variable.
	(GCC_INSTALL_DIR): New computed variable.
	(install-gcc): New target.

2005-01-09  Bruno Haible  <bruno@clisp.org>

	Distribute the manual page also in PDF format.
	* makemake.in (pdfdir): New variable.
	(manual_dvi): Add clisp.pdf.
	(clisp.pdf): New rule.
	(installdirs): Create $(pdfdir).
	(install-man): Install also clisp.pdf.
	(uninstall-man): Uninstall also clisp.pdf.
	(clean1): Remove clisp.pdf.
	* _distmakefile (pdfdir): New variable.
	(install-man): Install also clisp.pdf.
	(uninstall): Uninstall clisp.pdf.

2005-01-09  Bruno Haible  <bruno@clisp.org>

	* clisp-link.in (func_tmpdir): New function.
	(run): Use it for all temporary files and directories.

2005-01-03  Bruno Haible  <bruno@clisp.org>

	* spvw.d (SP_ueber, STACK_ueber): Output a newline before reset(1).
	* spvw_alloca.d (malloca): Likewise.
	* spvw_allocate.d (error_speicher_voll): Likewise.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* debug.d (SYS::DESCRIBE-FRAME): Call print_stack_trace with the same
	logic as show_stack() does.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* debug.d (show_stack): Call print_stack_trace with the same logic
	in the frame_up_x != NULL case as in the frame_up_x == NULL case.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* spvw_debug.d (bt_out): Fix an invalid use of STACK_item_count.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Generalize the assert-restart-no-prompts hack.
	* condition.lisp (restart): Add slot 'meaningfulp'.
	(make-restart-form): Take an additional meaningfulp argument.
	(restart-bind, expand-restart-case): Accept MEANINGFULP restart option.
	(assert-restart-no-prompts): Remove function.
	(simple-assert-failed): Mark continue restart as not meaningful.
	(check-value, retry-function-call): Remove useless option from RETRY
	restart - useless since 2004-06-03.
	(maybe-continue): Test meaningfulp instead of comparing the interactive
	function against assert-restart-no-prompts.
	* reploop.lisp (break-loop): Likewise.

2005-01-10  Arseny Slobodyuk  <ampy@users.sourceforge.net>

	* modules/syscalls/calls.c (CRYPT, ENCRYPT, SETKEY):
	do not define on WIN32_NATIVE because it makes mingw
	version depending on cygcrypt-0.dll and cygwin1.dll.

2005-01-10  Bruno Haible  <bruno@clisp.org>
	    Arseny Slobodyuk  <ampy@ich.dvo.ru>

	* modules/syscalls/calls.c (get_owner): new local functions on
	UNIX and WIN32_NATIVE.
	(GetSecurityInfoFunc, LookupAccountSidFunc, GetLengthSidFunc)
	(CopySidFunc, EqualSidFunc, ConvertSidToStringSidFunc)
	(initialized_sid_apis, sid_cache_entry, sid_cache_count)
	(sid_cache_allocated) [WIN32_NATIVE]: new variables to support
	get_owner on Win32.
	(sid_cache_entry) [WIN32_NATIVE]: new stuct.
	(sid_cache_get, sid_cache_put) [WIN32_NATIVE]: new local functions.
	(OS::FILE-OWNER): new DEFUN.
	* modules/syscalls/posix.lisp: export FILE-OWNER.
	* modules/syscalls/preload.lisp: set a nickname ("OS") in make-package.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Fix check-type, assert, ctypecase, ccase when used on locally defined
	places.
	* condition.lisp (prompt-for-new-value): Add new argument
	place-numvalues.
	(check-type): Pass number of value to check-type-failed.
	(check-type-failed): Add new argument place-numvalues.
	(assert): Pass number of values to prompt-for-new-value. Pass
	environment to get-setf-expansion.
	(check-value, retry-function-call): Update.
	(ctypecase, ccase): Pass number of value to ctypecase-failed.
	(ctypecase-failed): Add new argument place-numvalues.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (constant_bit_t, special_bit_t): Remove macros.
	(var_bit0_t, var_bit1_t): New macros.
	(constant_bit_f, special_bit_f): Remove macros.
	(var_bit0_f, var_bit1_f): New macros.
	(constant_bit_hf, special_bit_hf): Remove macros.
	(var_bit0_hf, var_bit1_hf): New macros.
	(Rectype_GlobalSymbolmacro): New enum value.
	(constant_var_p): Rename from constantp. Change to use var_bit0,
	var_bit1.
	(special_var_p): Change to use var_bit0, var_bit1.
	(symmacro_var_p): New macro.
	(set_const_flag, clear_const_flag): Change to use var_bit0, var_bit1.
	(set_special_flag, clear_special_flag): Likewise.
	(set_symmacro_flag, clear_symmacro_flag): New macros.
	(GlobalSymbolmacro): New type.
	(globalsymbolmacro_length): New macro.
	(TheGlobalSymbolmacro): New macro.
	(globalsymbolmacrop, allocate_globalsymbolmacro): New macros.
	(check_symbol_non_constant): Update.
	* spvw_objsize.d (case_symbolwithflags): Update.
	* eval.d (SYS::SPECIAL-VARIABLE-P): constant_var_p now implies
	special_var_p.
	(sym_value_place): Remove function.
	(sym_value): Turned into a function again. Add a symbolmacro_ argument.
	Handle symbol-macros in more detail.
	(check_local_symbol_value): Remove function.
	(sym_macrop, setq, macroexp0): Change symbol-macro handling.
	(eval1): Inline old check_local_symbol_value function. Change
	symbol-macro handling.
	(interpret_bytecode_): Update.
	* control.d (SYS::%SYMBOL-VALUE): Remove function.
	(SYMBOL-VALUE, SET): Don't test for symbol-macro. Access the value cell
	always.
	(make_variable_frame): constant_var_p now implies special_var_p.
	Update.
	(PROCLAIM): Signal an error when a symbol-macro is being proclaimed
	special.
	(form_constant_p): Update.
	(SYS::GLOBAL-SYMBOL-MACRO-P): New function.
	* symbol.d (SYS::%PROCLAIM-CONSTANT): Signal an error when a
	symbol-macro is being proclaimed constant.
	(SYS::%PROCLAIM-SYMBOL-MACRO): New function.
	* package.d (make_present): Signal an error when a symbol-macro is
	being imported into the KEYWORD package. Use set_const_flag.
	* record.d (SYMBOL-MACRO-EXPAND): Look for the symbol-macro definition
	on the property list.
	(SYS::MAKE-GLOBAL-SYMBOL-MACRO): New function.
	(SYS::GLOBAL-SYMBOL-MACRO-DEFINITION): New function.
	* io.d (pr_orecord): Handle GlobalSymbolmacro.
	* predtype.d (TYPE-OF, CLASS-OF): Handle GlobalSymbolmacro.
	(enum_hs_global_symbol_macro): New enum item.
	(heap_statistics_mapper): Handle GlobalSymbolmacro.
	* error.d (check_symbol_non_constant_replacement, check_encoding):
	Update.
	* encoding.d (MAKE-ENCODING): Update.
	* init.lisp (venv-assoc): Use symbol-macro-expand and
	global-symbol-macro-definition instead of %symbol-value.
	* macros2.lisp (define-symbol-macro): Put the definition on the
	property-list, not in the value cell. Call %proclaim-symbol-macro.
	* defs1.lisp (copy-symbol): Use symbol-value instead of %symbol-value.
	* describe.lisp (apropos, describe-object@symbol): Symbol-macros are
	now orthogonal to the contents of the value cell. Update.

2005-01-06  Sam Steingold  <sds@gnu.org>

	* time.d (convert_time_from_universal): new function
	* genclisph.d (convert_time_from_universal): declare
	* modules/syscalls/calls.c (LispToPropVariant): use it
	(PropVariantToLisp): use convert_time_to_universal()
	(kwtopropid, PropSpecSetStr, propspeclistp, PropSpecSet):
	do not change STACK

2005-01-06  Sam Steingold  <sds@gnu.org>

	* socket.d (string_to_addr): new function
	* genclisph.d (string_to_addr): declare
	* modules/rawsock/rawsock.c (CONVERT-ADDRESS): implement
	* modules/rawsock/sock.lisp (CONVERT-ADDRESS): export

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* debug.d (print_back_trace, print_stackitem): Don't print a newline at
	the beginning.
	(SYS::DESCRIBE-FRAME, show_stack): Print the newlines here instead.
	Use fresh-line at the beginning and elastic-newline at the end.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe1): Add a fresh-line call after the
	describe-object call, and a blank line before the documentation.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (disassemble-closure): Start with fresh-line, end with
	elastic-newline.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-warn, c-error): Use ~& at the beginning and ~. at
	the end of the output.
	(match-known-unknown-functions): Likewise.
	(c-report-problems): Likewise. Remove blank line at the end.
	(compile-file): Use fresh-line before and elastic-newline after the
	output. Remove blank lines.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	Remove a redundant blank line at the beginning of DIR's output.
	* init.lisp (dir): Use fresh-line at the beginning and an elastic
	newline after each filename.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	Remove an extra blank line at the beginning of trace output, and
	also after trace output if the program is using newline convention A.
	* trace.lisp (trace-pre-output): Use fresh-line instead of terpri at
	the beginning, and elastic-newline at the end.
	(trace-post-output): Use fresh-line instead of terpri at the beginning,
	and rely on trace-print for the final elastic newline.
	(trace-print): Use fresh-line instead of terpri at the beginning, and
	emit an elastic newline at the end.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	Remove redundant blank lines in stepper output when a program uses
	newline convention A.
	* reploop.lisp (step-values): Use fresh-line before and elastic-newline
	after the output.

2004-11-05  Bruno Haible  <bruno@clisp.org>

	* query.lisp (y-or-n-p, yes-or-no-p): Remove extra blank line between
	wrong answer and complaint.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* debug.d (read_form): Use fresh-line instead of terpri before the
	prompt.
	(SYS::READ-EVAL-PRINT): Add an elastic newline after printing the
	values.
	* reploop.lisp (get-frame-limit): Use fresh-line before and
	elastic-newline after the output.
	(print-error): Likewise.
	(break-loop): Likewise. Remove extra newline after all helpstrings.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* error.d (begin_error): Use fresh-line, not terpri.
	(write_errorstring): Output an elastic newline at the end.
	(ERROR, SYS::ERROR-OF-TYPE): Output an elastic newline after the error
	message.
	(tast_break): Use fresh-line, not terpri.
	* init.lisp (cerror, warn): Use fresh-line before and elastic-newline
	after the output.
	* macros2.lisp (prompt-for-new-value-string): Start with ~& instead of
	~%.
	* condition.lisp (prompt-for-new-value): Start with fresh-line instead
	of terpri.
	(break, cerror, warn, maybe-continue, exitunconditionally): Use
	fresh-line before and elastic-newline after the output.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* defs1.lisp (%time): Avoid printing a blank line before the statistics
	in some cases. Print an elastic newline afterwards.

2004-11-04  Bruno Haible  <bruno@clisp.org>

	* inspect.lisp (inspect-frontend@inspection@:tty): Don't print a
	blank line before the output of the :e and :m commands.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* edit.lisp (ed): Don't start the file with a blank line. Don't
	print a blank line; instead print a newline after each function name.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* init.lisp (load): Print an elastic newline after each line.

2005-01-05  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/test.tst (host->sa): call RAWSOCK:HTONS on PORT
	do not call RAWSOCK:BIND when local host is resolved to 127.0.0.1
	now the test passes on Linux too, in addition to Cygwin and Solaris

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* autoconf/config.rpath: Upgrade to current copy from GNU gettext.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Upgrade to libtool-1.5.10.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* configure: Unset CDPATH in a more robust way.

2004-01-05  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Update.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* io.d (read_internal): Signal an error when an attribute a_illg is
	present.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* format.lisp (next-arg): Signal a TYPE-ERROR when the argument list is
	dotted.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	Fix SHOW-STACK to show invocation activation at the right place, not
	randomly interspersed in the stack.
	* lispbibl.d (top_of_back_trace_frame): New declaration.
	(bt_beyond_stack_p): Use it instead of bt_stack.
	(with_saved_back_trace): Add stack argument.
	(with_saved_back_trace_fsubr, with_saved_back_trace_subr)
	(with_saved_back_trace_cclosure, with_saved_back_trace_iclosure): New
	macros.
	* debug.d (driver): Correct bt_stack value.
	(break_driver): Correct bt_stack and bt_function values.
	(top_of_back_trace_frame): New function.
	(SYS::DESCRIBE-FRAME): Use top_of_back_trace_frame instead of bt_stack.
	* spvw.d (main): Correct bt_stack value.
	* eval.d (interpret_bytecode): Use with_saved_back_trace_cclosure.
	(eval_fsubr): Use with_saved_back_trace_fsubr.
	(eval_subr): Use with_saved_back_trace_subr. Fix the argument count
	in the &rest case.
	(eval_closure): Use with_saved_back_trace_iclosure.
	(apply_subr): Use with_saved_back_trace_subr. Fix the argument count
	in the &rest case.
	(apply_closure): Use with_saved_back_trace_iclosure.
	(funcall_subr): Use with_saved_back_trace_subr. Fix the argument count
	in the &rest case.
	(funcall_closure): Use with_saved_back_trace_iclosure.
	(interpret_bytecode_): In JSR, use with_saved_back_trace_cclosure.
	In CALLS1, CALLS2, CALLSR, use with_saved_back_trace_subr. In CAR,
	CDR, CHECK_FDEF, INC, DEC, use with_saved_back_trace_subr.
	* pathname.d (ENOUGH-NAMESTRING, assume_dir_exists): Use
	with_saved_back_trace_subr.
	* sequence.d (copy_seqpart_into, FILL): Likewise.
	* stream.d (read_line): Likewise.
	* foreign.d (convert_function_to_foreign): Likewise.
	* spvw_debug.d (bt_out): Use top_of_back_trace_frame instead of
	bt_stack.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Reduce code size of some macro expansions.
	* condition.lisp (check-type-failed): New function.
	(check-type): Use it in the macroexpansion.
	(assert-failed, simple-assert-failed): New functions, extracted from
	assert.
	(assert): Use them in the macroexpansion.
	(etypecase-failed, ctypecase-failed): New functions.
	(etypecase, ctypecase, ecase, ccase): Use them in the macroexpansion.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	New format directive "~.".
	* format.lisp (format-parse-cs): Add support for ~..
	(format-elastic-newline): New function.
	(formatter-main-1): Add support for ~..

2005-01-04  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp: import SYS:SYMBOL-KEYWORD
	* defstruct.lisp (*defstruct-description-type-location*): fix value
	(defstruct): set PREDICATE-OPTION to NIL before saving it into
	DEFSTRUCT-DESCRIPTION; fix the creation of DEFSTRUCT-DESCRIPTION
	(*defstruct-description-type-location*)
	(*defstruct-description-size-location*)
	(*defstruct-description-kconstructor-location*)
	(*defstruct-description-slots-location*)
	(*defstruct-description-boa-constructors-location*)
	(*defstruct-description-copier-location*)
	(*defstruct-description-predicate-location*): PROCLAIM
	CONSTANT-INLINE to pass "make check-recompile"

2005-01-04  Sam Steingold  <sds@gnu.org>

	* exporting.lisp (export-accessories): new function
	(defstruct, def-c-struct): use it

2005-01-04  Sam Steingold  <sds@gnu.org>

	carry predicate with the structure metaobject
	* clos-class1.lisp (*<structure-class>-defclass*): new slot:
	$predicate
	(*<structure-class>-predicate-location*): new constant
	(class-predicate, (setf class-predicate)): new predefuns
	(*<structure-class>-instance-size*): increased by 1
	* clos-class3.lisp (make-instance-<structure-class>):
	accept and ignore 'predicate argument
	(shared-initialize-<structure-class>): accept and use
	'predicate argument
	(define-structure-class): accept and use predicate argument
	* clos-class4.lisp (shared-initialize@structure-class):
	accept and ignore 'predicate argument
	* clos-class6.lisp (class-predicate, (setf class-predicate)): add
	(class-direct-slots): handle structures too
	((setf class-direct-slots)): turn into a defgeneric
	* constobj.d (version): bumped
	* defstruct.lisp (*defstruct-description-predicate-location*): add
	(defstruct): pass predicate to DEFINE-STRUCTURE-CLASS
	* io.d (STRUCTURE-READER): structure descriptors have length 7

2005-01-04  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): avoid unnecessary warnings on
	predicate-accessor conflict

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Improve prompt after assert failure.
	* macros2.lisp (report-new-values-string): Change to a format string
	that accepts more than 1 argument.
	(assert): Pass the places individually to the format string, not as
	a list of places.
	* condition.lisp (assert): Likewise.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (assert): Simplify macroexpansion by use of wrap-let*.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (assert): Simplify.
	(check-value): Comments.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* foreign.d (convert_to_foreign): When converting to
	(C-ARRAY CHARACTER ...), (C-ARRAY-MAX CHARACTER ...),
	(C-ARRAY-PTR CHARACTER), accept a non-string array of ASCII characters.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	New function EXT:ELASTIC-NEWLINE.
	* lispbibl.d (Stream): Add fields strm_wr_ch_npnl,
	strm_wr_ch_array_npnl.
	(fresh_line, elastic_newline): New declarations.
	* stream.d (wr_ch_pending_newline): New function.
	(write_char): When writing to a Gray stream, output pending newline.
	(wr_ch_array_pending_newline): New function.
	(write_char_array): When writing to a Gray stream, output pending
	newline.
	(harden_elastic_newline): New functions.
	(stream_dummy_fill, make_synonym_stream, make_broadcast_stream)
	(make_twoway_stream, make_echo_stream, make_string_output_stream)
	(MAKE-STRING-OUTPUT-STREAM, SYSTEM::MAKE-STRING-PUSH-STREAM)
	(make_pphelp_stream, MAKE-BUFFERED-OUTPUT-STREAM, MAKE-GENERIC-STREAM)
	(fill_pseudofuns_unbuffered, fill_pseudofuns_buffered)
	(make_terminal_stream_, MAKE-WINDOW, make_socket_stream): Fill the
	strm_wr_ch_npnl, strm_wr_ch_array_npnl fields as well.
	(get_output_stream_string, builtin_stream_close, finish_output)
	(force_output): Call harden_elastic_newline().
	(get_line_position): On a Gray stream, look at the $penl slot.
	(elastic_newline_pending_p, fresh_line, elastic_newline): New
	functions.
	* io.d (FRESH-LINE): Use fresh_line.
	(EXT:ELASTIC-NEWLINE): New function.
	* debug.d (SYS::READ-EVAL-PRINT): Use fresh_line().
	* pseudofun.d: Update.
	* init.lisp: Export ext:elastic-newline.
	* gray.lisp (fundamental-stream): Add $penl slot.
	(close@fundamental-stream): Output pending newline.

2005-01-04  Sam Steingold  <sds@gnu.org>

	carry BOA-constructors and copier with the structure metaobject
	* clos-class1.lisp (*<structure-class>-defclass*): new slots:
	$boa-constructors and $copier
	(*<structure-class>-boa-constructors-location*)
	(*<structure-class>-copier-location*): new constants
	(class-boa-constructors, (setf class-boa-constructors))
	(class-copier, (setf class-copier)): new predefuns
	(*<structure-class>-instance-size*): increased by 2
	* clos-class3.lisp (make-instance-<structure-class>):
	accept and ignore 'boa-constructors and 'copier arguments
	(shared-initialize-<structure-class>): accept and use
	'boa-constructors and 'copier arguments
	(define-structure-class): accept and use
	boa-constructors and copier arguments
	(structure-undefine-accessories): new ABI function
	* clos-class4.lisp (shared-initialize@structure-class):
	accept and ignore 'boa-constructors and 'copier arguments
	* clos-class6.lisp (class-instance-size, (setf class-instance-size)):
	(class-kconstructor, (setf class-kconstructor)):
	turned into generic functions
	(class-boa-constructors, (setf class-boa-constructors))
	(class-copier, (setf class-copier)): add
	* constobj.d (version): bumped
	* defstruct.lisp (*defstruct-description-type-location*)
	(*defstruct-description-size-location*)
	(*defstruct-description-kconstructor-location*)
	(*defstruct-description-slots-location*)
	(*defstruct-description-boa-constructors-location*)
	(*defstruct-description-copier-location*): add constants
	(ds-typep, ds-typep-expansion, ds-canonicalize-type)
	(find-structure-slot-initfunction): use them
	(clos::structure-undefine-accessories): add a predefun
	(defstruct): call it; pass copier and boa-constructors to
	DEFINE-STRUCTURE-CLASS
	* io.d (STRUCTURE-READER): structure descriptors have length 6

2005-01-03  Sam Steingold  <sds@gnu.org>

	* init.lisp (symbol-keyword): new function
	* defmacro.lisp (analyze-key): use it
	* defstruct.lisp (defstruct): ditto
	* foreign1.lisp (c-struct-constructor): ditto
	* lambdalist.lisp (analyze-lambdalist, analyze-defsetf-lambdalist)
	(analyze-generic-function-lambdalist): ditto
	* type.lisp (%the): ditto
	* clos-package.lisp ("CLOS"): do not import SYS::*KEYWORD-PACKAGE*

2005-01-03  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): more grammatical error message

2005-01-03  Sam Steingold  <sds@gnu.org>

	* clos-package.lisp (*features*): add :MOP

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (backtrace_t): Rename field bt_caller to bt_function.
	(with_saved_back_trace, subr_self): Update.
	* spvw.d (main): Update.
	* spvw_update.d (update_back_traces): Update.
	* spvw_garcol.d (gc_markphase): Update.
	* spvw_debug.d (bt_out): Update.
	* debug.d (driver, break_driver, print_back_trace): Update.
	* genclisph.d (main): Update.

2005-01-02  Bruno Haible  <bruno@clisp.org>

	* lisparit.d (init_arith): Change initial value of
	*WARN-ON-FLOATING-POINT-CONTAGION* and
	*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* to NIL.
	* utils/clispload.lsp: Remove setting of
	*WARN-ON-FLOATING-POINT-CONTAGION* and
	*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION*.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* init.lisp (cerror): Internationalize.
	* condition.lisp (cerror, maybe-continue): Likewise.
	(break-loop): Likewise.
	* reploop.lisp (break-loop): Likewise.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	Avoid a possible collision with SP in libncurses.
	* lispbibl.d (SP): Alias to getSP in all cases.
	(NEED_OWN_GETSP): New macro.
	* spvw.d (getSP): Rename from SP. Define if NEED_OWN_GETSP.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* spvw_language.d (init_language): Invalidate the gettext internal
	caches.

2005-01-01  Bruno Haible  <bruno@clisp.org>

	* spvw.d (print_banner): Extend copyright years.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	* foreign1.lisp: Indentation fixes.

2004-12-24  Bruno Haible  <bruno@clisp.org>

	Support multibyte encodings in FFI:*FOREIGN-ENCODING*.
	* encoding.d (init_dependent_encodings): Remove warning if
	*FOREIGN-ENCODING* is not 1:1. Initialize O(foreign_8bit_encoding).
	(SYSTEM::SET-FOREIGN-ENCODING): Update O(foreign_8bit_encoding).
	* foreign.d (convert_from_foreign_array_fill): For characters, use
	O(foreign_8bit_encoding).
	(convert_from_foreign): Likewise. Add special conversion routines for
	(C-ARRAY CHARACTER dim1), (C-ARRAY-MAX CHARACTER maxdim),
	(C-ARRAY-PTR CHARACTER).
	(count_walk_pre): For C-STRING and (C-ARRAY-PTR CHARACTER ...), compute
	the amount of needed memory.
	(convert_to_foreign): For characters, use O(foreign_8bit_encoding).
	Add special conversion routines for (C-ARRAY CHARACTER dim1),
	(C-ARRAY-MAX CHARACTER maxdim), (C-ARRAY-PTR CHARACTER).

2004-12-23  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (stream_get_read_eval, stream_set_read_eval): Mark as
	"can trigger GC".
	* stream.d (stream_get_read_eval, stream_set_read_eval): Likewise.
	* io.d (read_eval_reader, load_eval_reader, pr_orecord, pr_subr): Fix
	GC-safety bug introduced on 2004-04-12.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	More powerful optimizations on places.
	* places.lisp (occurs-in-p, commuting-forms-p)
	(simple-occurrence-in-basic-block-p, optimized-wrap-let*)
	(optimized-wrap-multiple-value-bind): New functions.
	(push): Don't use simple-assignment-p, subst-in-form, sublis-in-form.
	Instead use optimized-wrap-let*.
	(pop): Likewise.
	(pushnew): Likewise.
	(remf): Don't use simple-assignment-p, subst-in-form. Instead simplify
	differently in all cases.
	(define-modify-macro): Don't use simple-assignment-p, subst-in-form.
	Instead use optimized-wrap-let*.
	(setf): Fix condition leading to error message. Don't use subst-in-form.
	Instead use optimized-wrap-let*.

2004-12-23  Sam Steingold  <sds@gnu.org>

	* modules/matlab/matlab.lisp: add many mx functions

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* places.lisp (remove-plist): Use more built-in functions.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* places.lisp (simple-assignment-p): Add env argument. Recognize
	assignments to symbol-macros.
	(push, pop, pushnew, remf, define-modify-macro, setf): Pass environment
	to simple-assignment-p.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	Optimize away empty LET* in place macro expansions.
	* places.lisp (wrap-let*): New function.
	(push, pop, psetf, pushnew, remf, define-modify-macro, setf)
	(multiple-value-setf): Use it.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	get-setf-method must reject dotted lists.
	* defmacro.lisp (make-length-test): Add optional argument accept-dotted.
	Use LIST-LENGTH if dotted lists must be rejected.
	* places.lisp (get-setf-expansion): Use endp instead of atom.
	(define-setf-expander): Pass accept-dotted = nil to make-length-test.
	(setf-VALUES-aux): Use endp instead of atom.

2004-12-18  Bruno Haible  <bruno@clisp.org>

	* places.lisp (subst-in-form, sublis-in-form): New functions.
	(push, pop, pushnew, remf, define-modify-macro, setf, the, if): Use
	them instead of subst, sublis.
	* macros3.lisp (expand-LETF*, expand-LETF): Likewise.

2004-12-21  Bruno Haible  <bruno@clisp.org>

	* predtype.d (COERCE): Accept cs-cl:string as equivalent to cl:string.
	* sequence.d (valid_type1): Likewise.
	* subtypep.lisp (canonicalize-type): Likewise.

2004-12-21  Bruno Haible  <bruno@clisp.org>

	* format.lisp (format-error): Take additional arguments specifying
	the error type and initargs.
	(format-parse-cs, next-arg, format-old-roman, format-new-roman)
	(format-cardinal, format-radix, format-character)
	(format-indirection-cserror, format-indirection-lerror)
	(format-conditional, format-conditional-error, format-iteration)
	(format-logical-block, format-logical-block-parse, formatter-main-1):
	Pass error type and initargs to format-error.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* modules/wildcard/wildcard.lisp: Define package as case-inverted.

	* modules/regexp/regexp.lisp: Modernize package declaration. Improve
	indentation.

2004-12-18  Bruno Haible  <bruno@clisp.org>

	* places.lisp (get-setf-method, push, pop, psetf, pushnew, remf)
	(rotatef, define-modify-macro, setf, shiftf, getf, char-bit, ldb)
	(mask-field, the, apply, progn, locally, if, values, setf-VALUES-aux)
	(multiple-value-setf): Use reasonable variable names.
	* condition.lisp (assert): Likewise.
	* macros3.lisp (expand-LETF*, expand-LETF): Likewise.

2004-12-20  Sam Steingold  <sds@gnu.org>

	* exporting.lisp ("EXPORTING"): remove XP nickname because it is
	already used for a portable pretty-printer

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* exporting.lisp: New file.
	* init.lisp: Load it.
	* makemake.in (LPARTS): Add exporting.
	(exporting.fas): Remove target.
	(LINKKIT, anymodule): Remove special handling of exporting.lisp.
	* po/Makefile.devel (LISPSOURCES): Add exporting.
	* modules/exporting.lisp: Remove file.

	* modules/bindings/glibc/linux.lisp: Define package as case-inverted.
	Use some symbols from package EXPORTING; drop old exporting code.
	* modules/bindings/glibc/wrap.lisp: Remove contradictory defpackage
	declaration. Use in-package instead. Remove many useless package
	prefixes.

	* modules/bindings/win32/win32.lisp: Define package as case-inverted.
	Use some symbols from package EXPORTING; drop old exporting code.

	* modules/matlab/matlab.lisp: Define package as case-inverted.
	Use some symbols from package EXPORTING; drop old exporting code.
	* modules/matlab/wrap.lisp: Remove contradictory defpackage
	declaration. Use in-package instead. Remove package-lock hacking.

	* modules/netica/netica.lisp: Define package as case-inverted.
	Use some symbols from package EXPORTING; drop old exporting code.
	* modules/netica/wrap.lisp: Remove contradictory defpackage
	declaration. Use in-package instead. Remove many useless package
	prefixes. Remove package-lock hacking.

	* modules/postgresql/postgresql.lisp: Define package as case-inverted.
	Use some symbols from package EXPORTING; drop old exporting code.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Revisited.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* format.lisp (formatter-main-1): In ~{, when the max-n-iterations
	prefix is not known to be a number, test it against nil before
	comparing it.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* format.lisp (format-goto-arg): If the argument is nil, use 0 or 1
	instead.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	Make calls to EXT:SPECIAL-VARIABLE-P compilable and usable in macro-
	expanders.
	* eval.d (EXT:SPECIAL-VARIABLE-P): Don't accept T and venv vectors as
	environment. Instead, accept macroexpansion environments.
	* compiler.lisp (ext:special-variable-p): Remove compiler macro.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* defs2.lisp (nth-value): Move macro from here...
	* macros2.lisp (nth-value): ... to here.

2004-12-19  Bruno Haible  <bruno@clisp.org>

	* disassem.lisp (disassemble@symbol): Use ext: package prefix.
	* macros3.lisp (expand-LETF*, expand-LETF): Add env argument. Handle
	locally defined symbol-macros correctly.
	(LETF*, LETF): Pass environment to expand-LETF*, expand-LETF.

2004-12-18  Bruno Haible  <bruno@clisp.org>

	* places.lisp (define-modify-macro): Implement the evaluation order
	according to ANSI CL 5.1.3.

2004-12-19  Sam Steingold  <sds@gnu.org>

	* describe.lisp (apropos): finish with FRESH-LINE instead of
	TERPRI to avoid extra vertical space when nothing is found

2004-12-19  Sam Steingold  <sds@gnu.org>

	* pathname.d (test_optional_host): :UNSPECIFIC means NIL because
	USER-HOMEDIR-PATHNAME is required to accept :UNSPECIFIC as argument

2004-12-18  Sam Steingold  <sds@gnu.org>

	* io.d (SET-SYNTAX-FROM-CHAR): fix a GC-safety bug (from sacla-tests)

2004-12-18  Sam Steingold  <sds@gnu.org>

	* package.d (%IN-PACKAGE): fix yet another GC-safety bug

2004-12-18  Sam Steingold  <sds@gnu.org>

	* io.d (SET-READTABLE-CASE): fix a GC-safety bug (from sacla-tests)

2004-12-18  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): always use pack_shortest_name for symbols

2004-12-18  Bruno Haible  <bruno@clisp.org>

	* modules/clx/mit-clx/dependent.lisp (current-process): Return nil.
	(get-host-name): Don't always signal an error.

2004-12-18  Bruno Haible  <bruno@clisp.org>

	* stream.d (stream_handles): Support also the X11-socket streams.

2004-12-17  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp (entree): fix declaration

2004-12-17  Bruno Haible  <bruno@clisp.org>

	* _clisp.c (main): Fix handling of option -E.
	Reported by John K. Hinsdale <hin@alma.com>.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	Allocate narrow strings by default, instead of wide UCS-4 strings.
	* charstrg.d (MAKE-STRING): Call allocate_s8string instead of
	allocate_string.

2004-12-16  John Hinsdale  <hin@alma.com>

	* modules/oracle/orafns.c: Better error reporting of parse errors

2004-12-16  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem_from_handle): clarified an error message

2004-12-15  Sam Steingold  <sds@gnu.org>

	* modules/pari/pari.lisp: major re-write (use "modern" package)

2004-12-15  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): always pass :CASE-SENSITIVE
	and :CASE-INVERTED to %IN-PACKAGE

2004-12-15  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (do-c-lines): fix last patch
	* package.d (%IN-PACKAGE): fix last patch

2004-12-12  Bruno Haible  <bruno@clisp.org>

	Avoid warnings on glibc systems.
	* intparam.c: Don't include stdlib.h.
	(main): Provide the exit code through return, not exit.
	* floatparam.c: Don't include stdlib.h.
	(main): Provide the exit code through return, not exit.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	More invariant checking for generational GC.
	* lispbibl.d (SP_anchor): New declaration.
	* spvw.d (SP_anchor): New variable.
	(main): Initialize it.
	* spvw_debug.d (DEBUG_SPVW_ASSERT): New macro.
	* spvw_global.d (is_valid_varobject_address, is_valid_cons_address)
	(is_valid_heap_object_address, is_valid_stack_address): New macros.
	* spvw_garcol.d (update) [DEBUG_SPVW]: Check that the pointers being
	written to memory are valid.
	* spvw_genera1.d (rebuild_old_generation_cache) [DEBUG_SPVW]: Check
	that the pointers being put into the physpage cache are valid.
	* spvw_genera2.d (gc_mark_old_generation) [DEBUG_SPVW]: Check that the
	pointers taken from the physpage cache are valid.
	* spvw_genera3.d (update_old_generation) [DEBUG_SPVW]: Check that the
	pointers in the physpage cache are valid and not pointing into the
	wrong heap.
	* spvw_fault.d (handle_read_fault): [DEBUG_SPVW]: Check that the
	pointers in the physpage cache are valid and not pointing into the
	wrong heap.

2004-12-14  Sam Steingold  <sds@gnu.org>

	case-sensitive/case-inverted package properties are now mutable
	* lispbibl.d (mark_pack_caseinsensitive, mark_pack_casepreserved): add
	* package.d ((SETF EXT:PACKAGE-CASE-SENSITIVE-P))
	((SETF EXT:PACKAGE-CASE-INVERTED-P)): implement
	(SYSTEM::%IN-PACKAGE): reset case-sensitive/case-inverted
	properties and issue a warning
	* constsym.d, subr.d (set_package_case_sensitive_p)
	(set_package_case_inverted_p): add
	* places.lisp (package-case-inverted-p, package-case-sensitive-p): add

2004-12-12  Bruno Haible  <bruno@clisp.org>

	Command-line option -modern.
	* spvw.d (usage): Mention option -modern.
	(struct argv_actions): Add argv_modern field.
	(parse_options): Initialize it. Recognize -modern.
	(main_actions): Handle argv_modern option.

2004-12-12  Bruno Haible  <bruno@clisp.org>

	Support for :case-inverted packages and package CS-COMMON-LISP.
	* lispbibl.d (mark_pack_caseinverted, pack_caseinvertedp): New macros.
	(mark_pack_locked, mark_pack_unlocked, pack_locked_p): Use bit 2.
	(invert_case, string_gleich_inverted, string_invertcase): New
	declarations.
	(test_stringsymchar_arg, find_external_symbol, intern): Add invert
	argument.
	* package.d (string_hashcode): Add invert argument.
	(newinsert): Update.
	(symtab_lookup): Add invert argument.
	(symtab_find, symtab_insert, symtab_delete): Update.
	(package_lookup_ext, package_lookup_int): Add invert argument.
	(inherited_lookup): Likewise.
	(make_package): Likewise.
	(shadowing_lookup, shadowing_delete): Likewise.
	(accessiblep): Update.
	(find_external_symbol, find_symbol, intern): Add invert argument.
	(intern_keyword): Update.
	(package_lookup): Add invert argument.
	(shadowing_import): Update.
	(do_shadow): Rename from shadow. Add invert argument.
	(shadow, cs_shadow): New functions.
	(unintern, import, export, use_package_aux, test_package_arg): Update.
	(FIND-PACKAGE): Update.
	(test_names_args, RENAME-PACKAGE): Update.
	(EXT:PACKAGE-CASE-INVERTED-P): New function.
	(do_intern): New function, extracted from INTERN.
	(INTERN): Call it.
	(CS-COMMON-LISP:INTERN): New function.
	(do_find_symbol): New function, extracted from FIND-SYMBOL.
	(FIND-SYMBOL): Call it.
	(CS-COMMON-LISP:FIND-SYMBOL): New function.
	(apply_symbols): Update.
	(CS-COMMON-LISP:SHADOW): New function.
	(correct_packname): Update.
	(in_make_package): Add case_inverted argument.
	(MAKE-PACKAGE): Add :CASE-INVERTED argument.
	(CS-COMMON-LISP:MAKE-PACKAGE): New function.
	(SYSTEM::%IN-PACKAGE): Add :CASE-INVERTED argument.
	(do_find_all_symbols): New function, extracted from FIND-ALL-SYMBOLS.
	(FIND-ALL-SYMBOLS): Call it.
	(CS-COMMON-LISP:FIND-ALL-SYMBOLS): New function.
	(map_symbols_aux): Update.
	(SYSTEM::PACKAGE-ITERATE): Update.
	(init_packages): Reorganize. Creates packages CS-COMMON-LISP and
	CS-COMMON-LISP-USER too.
	* charstrg.d (invert_case): New function.
	(SYS::CHAR-INVERTCASE): New function.
	(string_eqcomp_inverted, string_gleich_inverted): New functions.
	(nstring_invertcase, string_invertcase): New functions.
	(SYS::STRING-INVERTCASE): New function.
	(test_stringsymchar_arg): Add invert argument.
	(test_1_stringsym_limits, test_2_stringsym_limits): Likewise.
	(STRING=): Update.
	(CS-COMMON-LISP:STRING=): New function.
	(STRING/=): Update.
	(CS-COMMON-LISP:STRING/=): New function.
	(STRING<): Update.
	(CS-COMMON-LISP:STRING<): New function.
	(STRING>): Update.
	(CS-COMMON-LISP:STRING>): New function.
	(STRING<=): Update.
	(CS-COMMON-LISP:STRING<=): New function.
	(STRING>=): Update.
	(CS-COMMON-LISP:STRING>=): New function.
	(STRING-EQUAL): Update.
	(CS-COMMON-LISP:STRING-EQUAL): New function.
	(STRING-NOT-EQUAL): Update.
	(CS-COMMON-LISP:STRING-NOT-EQUAL): New function.
	(STRING-LESSP): Update.
	(CS-COMMON-LISP:STRING-LESSP): New function.
	(STRING-GREATERP): Update.
	(CS-COMMON-LISP:STRING-GREATERP): New function.
	(STRING-NOT-GREATERP): Update.
	(CS-COMMON-LISP:STRING-NOT-GREATERP): New function.
	(STRING-NOT-LESSP): Update.
	(CS-COMMON-LISP:STRING-NOT-LESSP): New function.
	(SYS::SEARCH-STRING=): Update.
	(SYS::SEARCH-STRING-EQUAL): Update.
	(SYS::STRING-BOTH-TRIM): Add an invertp argument.
	(STRING-UPCASE, STRING-DOWNCASE, STRING-CAPITALIZE): Update.
	(STRING): Update.
	(CS-COMMON-LISP:STRING): New function.
	(NAME-CHAR): Update.
	(SUBSTRING): Update.
	* io.d (read_internal): Use the package's case-inverted bit.
	(write_sstring_invert): New function.
	(write_sstring_case_ext): New function, extracted from
	write_sstring_case, with an add case_inverted argument.
	(write_sstring_case): Call it.
	(pr_symbol): Use the package's case-inverted bit.
	(pr_symbol_part): Add case_inverted argument.
	(pr_like_symbol): Use the package's case-inverted bit.
	* symbol.d (CS-COMMON-LISP:SYMBOL-NAME): New function.
	* spvw.d (init_symbol_tab_2): Support packages CS-COMMON-LISP and
	CS-COMMON-LISP-USER too.
	* constpack.d (LISPPACK): Update.
	* encoding.d (MAKE-ENCODING): Update.
	* defs1.lisp (string-trim): Update.
	(cs-cl::string-trim): New function.
	(string-left-trim): Update.
	(cs-cl::string-left-trim): New function.
	(string-right-trim): Update.
	(cs-cl::string-right-trim): New function.
	* defpackage.lisp (defpackage): Support case-inverted option.
	(find-symbol-cerror): Add invert argument.
	(shadowing-import-cerror, import-cerror, intern-export): Likewise.
	* case-sensitive.lisp: New file.
	* init.lisp: Export package-case-inverted-p.
	Load case-sensitive.lisp.
	* runprog.lisp (xstring): Handle symbols according to *PRINT-CASE*
	and its package.
	* complete.lisp (completion): Reorganize. Support case-inverted
	packages.
	* makemake.in (LPARTS): Add case-sensitive.
	* po/Makefile.devel (LISPSOURCES): Add case-sensitive.

2004-07-14  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (X3J13_161): Undefine.
	* package.d (shadow, apply_symbols): Assume X3J13_161 to be true.

2004-12-14  Bruno Haible  <bruno@clisp.org>

	* configure: Unset CDPATH.
	Reported by Robert Olney <rolney@pcug.org.au>.

2004-12-13  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp: Call disable-note.
	(*expected-failures*): Update.

2004-12-13  Bruno Haible  <bruno@clisp.org>

	* places.lisp (remf): Reorder bindings according to ANSI CL 5.1.3.

2004-12-13  Bruno Haible  <bruno@clisp.org>

	* format.lisp (format-iteration): In the cases without colon, a
	*FORMAT-UP-AND-OUT* = :TERMINATE terminates the entire construct.

2004-11-28  Bruno Haible  <bruno@clisp.org>

	Don't recursively compile-file modules that have already been loaded.
	* compiler.lisp (c-REQUIRE): Look for the module in both *modules* and
	*compiled-modules*, not just *compiled-modules*.

2004-12-12  Bruno Haible  <bruno@clisp.org>

	* win32.d: Move include of <sys/types.h>.

2004-12-12  Bruno Haible  <bruno@clisp.org>

	Fix the error checking of stdout. When writing to a full disk over an
	NFS or CODA file system, write() writes into a operating system's
	buffer, fflush() succeeds, and only fclose() fails.
	* intparam.c (main): Check the error status of fclose(stdout).
	* floatparam.c (main): Likewise.
	* utils/ccmp2c.c (main): Check the error status of fclose(stdout)
	instead of fflush(stdout).
	* utils/ccpaux.c (main): Likewise.
	* utils/deema.c (main): Likewise.
	* utils/txt2c.c (main): Likewise.
	* utils/comment5.c (main): Likewise. No need to fclose(stdin).
	* utils/varbrace.d (main): Likewise.
	* utils/gctrigger.d (main): No need to call fflush(stdout) before
	fclose(stdout).
	Reported by Jim Meyering.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with GENERATIONAL_GC && MORRIS_GC.
	* lispbibl.d (inside_gc): New declaration.
	(nonimmprobe, nonimmsubrp): Don't access memory if inside_gc.
	* spvw_global.d (inside_gc): New variable.
	* spvw_garcol.d (gar_col_normal, gar_col_compact): Set and reset
	inside_gc.
	* spvw_fault.d (handle_read_fault): Verify that this isn't called
	inside_gc.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (ASM_get_SP_register, SP) [SPARC64]: Respect the bias of
	2048 bytes.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_SPVW work in g++ && GENERATIONAL_GC mode.
	* spvw_genera1.d (gc_check_ptr_at): New function.
	(gc_overall_check): Use it instead of gc_check_at.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_SPVW work in HEAPCODES && GENERATIONAL_GC mode.
	* spvw_genera1.d (gc_check_at): Add support for HEAPCODES mode.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_object_tab): Make the :CLISP-DEBUG feature depend on
	DEBUG_COMPILER, not DEBUG_SPVW.

2004-12-13  Sam Steingold  <sds@gnu.org>

	* stream.d (clear_output_terminal3): fix a GC-safety bug

2004-12-13  Sam Steingold  <sds@gnu.org>

	* spvw.d (print_license, print_banner): (FRESH-LINE *STANDARD-OUTPUT*)
	to clean up after *INIT-HOOKS*

2004-12-13  Sam Steingold  <sds@gnu.org>

	* .gdbinit (ansi_tests): wrap setting of an internal variable in
	WITHOUT-PACKAGE-LOCK

2004-12-13  Sam Steingold  <sds@gnu.org>

	* io.d (space_available): mark as "maygc"
	(string_fit_line_p): ditto + fix a GC-safety bug
	(pr_enter_1): update for string_fit_line_p() changes

2004-12-13  Sam Steingold  <sds@gnu.org>

	* eval.d (progv): fix a GC-safety bug

2004-12-12  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main_actions): Fix GC-safety bug in argv_package handling.

2004-12-11  Bruno Haible  <bruno@clisp.org>

	* control.d (parse_doc_decl): Fix GC-safety bug introduced on
	2004-05-27.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (symbol_length): New macro.
	* constsym.d (LISPSYM_B): Use it. Fixes bug introduced on 2004-05-15.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (init_ffi): Mark as "can trigger GC".
	* foreign.d (init_ffi): Likewise.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* stream.d (FILE-POSITION): Avoid a false GC-safety bug alert: Call
	SET-FILL-POINTER directly, without going through funcall.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* stream.d (make_buffered_stream): Avoid a false GC-safety bug alert.
	(It's not worth exploiting the fact that builtin_stream_close doesn't
	cons for a file/pipe/socket stream.)

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (shifthash): Add allowgc argument.
	* hashtabl.d (shifthash): Add allowgc argument.
	* io.d (perchar_table_put, copy_perchar_table)
	(syntax_table_put_notinline, copy_readtable_contents): Pass allowgc =
	true.
	* sequence.d (seq_duplicates): Likewise.
	* pathname.d (TRANSLATE-LOGICAL-PATHNAME, directory_search): Likewise.
	* foreign.d (register_foreign_variable, register_foreign_function)
	(convert_function_to_foreign): Pass allowgc = true.
	(free_foreign_callin): Pass allowgc = false.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* realelem.d (R_I_expt_R): Avoid a false GC-safety bug alert.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* encoding.d (CONVERT-STRING-FROM-BYTES): Avoid a false GC-safety bug
	alert.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* array.d (elt_copy_T_Char, elt_copy_Char_Char): Avoid calling
	sstring_store when the character already fits into dv2.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* control.d (form_constant_p): Inline the useful part of
	funname_to_symbol. Handle the case of an undefined function (setf foo).
	Call check_SP.
	(FUNCTION-SIDE-EFFECT): Inline the useful part of funname_to_symbol.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* stream.d (stream_get_read_eval, stream_set_read_eval): Use the
	forwarded instance for the access. Fixes bug introduced on 2004-04-12.

2004-12-12  Sam Steingold  <sds@gnu.org>

	new module PARI for interface to <http://pari.math.u-bordeaux.fr/>
	* modules/pari: new directory

2004-12-12  Sam Steingold  <sds@gnu.org>

	* spvw.d (parse_options): no longer accept "-a": 3.5 years is enough

2004-12-11  Bruno Haible  <bruno@clisp.org>

	* macros3.lisp (expand-LETF*, expand-LETF): Handle symbol-macros
	correctly.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* utils/gctrigger.d: New file.
	* makemake.in (GCTRIGGER): New variable.
	(XDECL_FILTER, XDECL_DEPENDENCIES): Invoke gctrigger.
	(UTILS): Add gctrigger.
	* lispbibl.d (maygc): New macro.
	(inc_allocstamp): New overloaded function.
	(GCTRIGGER, GCTRIGGER1, GCTRIGGER2, GCTRIGGER3, GCTRIGGER4, GCTRIGGER5)
	(GCTRIGGER6, GCTRIGGER_IF): New macros.
	* lispbibl.d: Use maygc declaration where possible.
	* spvw.d: Likewise.
	* spvw_circ.d: Likewise.
	* spvw_debug.d: Likewise.
	* spvw_language.d: Likewise.
	* spvw_garcol.d: Likewise.
	* spvw_memfile.d: Likewise.
	* spvw_module.d: Likewise.
	* spvw_typealloc.d: Likewise.
	* array.d: Likewise.
	* charstrg.d: Likewise.
	* control.d: Likewise.
	* debug.d: Likewise.
	* encoding.d: Likewise.
	* error.d: Likewise.
	* eval.d: Likewise.
	* foreign.d: Likewise.
	* hashtabl.d: Likewise.
	* io.d: Likewise.
	* list.d: Likewise.
	* misc.d: Likewise.
	* package.d: Likewise.
	* pathname.d: Likewise.
	* predtype.d: Likewise.
	* record.d: Likewise.
	* sequence.d: Likewise.
	* socket.d: Likewise.
	* stream.d: Likewise.
	* time.d: Likewise.
	* weak.d: Likewise.
	* zthread.d: Likewise.
	* lisparit.d: Likewise.
	* compelem.d: Likewise.
	* comptran.d: Likewise.
	* dfloat.d: Likewise.
	* ffloat.d: Likewise.
	* flo_konv.d: Likewise.
	* flo_rest.d: Likewise.
	* intbyte.d: Likewise.
	* intdiv.d: Likewise.
	* intelem.d: Likewise.
	* intgcd.d: Likewise.
	* intlog.d: Likewise.
	* intmal.d: Likewise.
	* intplus.d: Likewise.
	* intread.d: Likewise.
	* intsqrt.d: Likewise.
	* lfloat.d: Likewise.
	* rational.d: Likewise.
	* realelem.d: Likewise.
	* realrand.d: Likewise.
	* realtran.d: Likewise.
	* sfloat.d: Likewise.
	* lispbibl.d (subsstring): Mark as "can trigger GC".
	* io.d (syntax_table_get, syntax_table_put): Turn into inline
	functions.
	* hashtabl.d (sxhash): Cannot trigger GC.

2004-12-10  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (maygc): expand to nothing

2004-12-07  Bruno Haible  <bruno@clisp.org>

	Delay warn_forced_gc_rehash call if needed.
	* lispbibl.d (ht_test_code): Remove a bit.
	(ht_test_code_user_p): New macro.
	* hashtabl.d (htflags_test_builtin_B): New macro.
	(htflags_test_eq_B, htflags_test_eql_B, htflags_test_equal_B)
	(htflags_test_equalp_B): Define using fewer bits.
	(htflags_test_user_B): New macro.
	(htflags_stablehash_B): Update.
	(htflags_pending_warn_forced_gc_rehash): New macro.
	(hashcode_raw, hashcode_builtin, rehash): Update.
	(hash_lookup_builtin): Delay warn_forced_gc_rehash call if needed.
	Execute pending warn_forced_gc_rehash call if possible.
	(hash_lookup_builtin_with_rehash): Delay warn_forced_gc_rehash call if
	needed.
	(hash_prepare_store, MAKE-HASH-TABLE, hash_table_test): Update.
	* predtype.d (hash_table_equalp): Update.
	* spvw_debug.d (nobject_out1): Update.
	* pseudofun.d: Update.

2004-12-07  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (gethash): Add allowgc argument.
	(if_potential_class_p, if_defined_class_p): Pass allowgc = false.
	(instanceof): Likewise.
	* hashtabl.d (lookup_Pseudofun): Add allowgc argument.
	(hash_lookup_builtin, hash_lookup_builtin_with_rehash)
	(hash_lookup_user, hash_lookup): Likewise.
	(MAKE-HASH-TABLE): Pass allowgc = true.
	(gethash): Add allowgc argument.
	(GETHASH, SYSTEM::PUTHASH, shifthash, REMHASH): Pass allowgc = true.
	* predtype.d (hash_table_equalp): Return false if either hash table
	has a user-defined test. Pass allowgc = false.
	(typep_class, typep_classname): Pass allowgc = false.
	* eval.d (interpret_bytecode_): Pass allowgc = false.
	* io.d (perchar_table_get, syntax_table_get_notinline): Likewise.
	* stream.d (stream_get_read_eval, stream_set_read_eval): Likewise.
	* pathname.d (logical_host_p, TRANSLATE-LOGICAL-PATHNAME): Likewise.
	* record.d (CLOS:SLOT-VALUE, CLOS::SET-SLOT-VALUE, CLOS:SLOT-BOUNDP)
	(CLOS:SLOT-MAKUNBOUND, CLOS:SLOT-EXISTS-P): Pass allowgc = false.
	(CLOS::%REINITIALIZE-INSTANCE): Likewise.
	(CLOS::%INITIALIZE-INSTANCE): Pass allowgc = true.
	(CLOS::%MAKE-INSTANCE): Pass allowgc = false.
	* foreign.d (register_foreign_variable, register_foreign_function)
	(convert_function_to_foreign, free_foreign_callin)
	(FFI::LOOKUP-FOREIGN-VARIABLE, FFI::LOOKUP-FOREIGN-FUNCTION): Pass
	allowgc = false.
	* genclisph.d (main): Update gethash declaration.
	* modules/clx/new-clx/clx.f (make_xid_obj_2): Update.

2004-12-07  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (SYSTEM::PUTHASH, REMHASH): If the argument was not a
	hash-table and check_hashtable provided a replacement, use the
	replacement, not the original argument. Fixes bug introduced on
	2003-05-13.

2004-12-07  Bruno Haible  <bruno@clisp.org>

	* array.d (storagevector_store): Rename local variable 'maygc'.

2004-11-29  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe-stream): New class.
	(describe): Use it instead of fill-stream.

2004-12-07  Bruno Haible  <bruno@clisp.org>

	* stream.d (same_handle_p): Parenthesize the TIME_EQ arguments.

2004-12-09  Bruno Haible  <bruno@clisp.org>

	* stream.d (rd_ch_array_str_in): Fix GC-safety bug introduced on
	2002-05-22.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* lisparit.d (LOG): Fix GC-safety bug introduced on 2002-10-06.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* foreign.d (object_address): Fix GC-safety bug introduced on 2003-08-07.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* foreign.d (convert_function_to_foreign): Fix long-standing GC-safety
	bug.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* foreign.d (SET-FOREIGN-POINTER): Fix GC-safety bug introduced on
	2003-03-14.

2004-12-10  Sam Steingold  <sds@gnu.org>

	New user variable CUSTOM:*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
	allows using the shortest package (nick)name as the symbol prefix
	* lispbibl.d, genclisph.d (Package): new slot pack_shortest_name
	* package.d (ensure_pack_shortest_name): new function
	(make_package, RENAME-PACKAGE): call it
	(EXT:PACKAGE-SHORTEST-NAME): new function
	* constsym.d, subr.d (package_shortest_name): add
	* constsym.d (*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*): add
	* spvw.d (init_symbol_values): initialize it
	* reploop.lisp (package-short-name): remove
	(*prompt-body*): use PACKAGE-SHORTEST-NAME
	* io.d (pr_symbol): when *PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
	and not *PRINT-READABLY*, use pack_shortest_name instead of pack_name
	* init.lisp (EXT:PACKAGE-SHORTEST-NAME): export

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (list_length): Mark as "can trigger GC".
	* list.d (list_length): Likewise. Fix GC-safety bug introduced on
	2004-02-17.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* array.d (SYS::STORE): Fix GC-safety bug introduced on 2002-05-22.
	(SYS::ROW-MAJOR-STORE): Put the array into STACK_0, for error messages;
	fixes a long-standing bug. Fix GC-safety bug introduced on 2002-05-22.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* predtype.d (heap_statistics_record): New function.
	(heap_statistics_result): Use it. Fixes GC-safety bug when the heap
	size is big.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* sequence.d (MAKE-SEQUENCE): Avoid potential GC-safety bug: since now
	elt_fill can trigger GC.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* comptran.d (N_N_expt_N): Fix GC-safety bug introduced on 2002-09-11.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix possible
	GC-safety bug.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Use the encoding
	provided by test_external_format_arg, not the original argument; fixes
	bug introduced on 2003-05-07.

	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix GC-safety bug
	introduced on 2002-01-17.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (MAKE-HASH-TABLE): Fix GC-safety bug when using
	:INITIAL-CONTENTS with user-defined test, introduced on 2003-05-13.

2004-12-08  Bruno Haible  <bruno@clisp.org>

	* pathname.d (use_default_dir): Fix GC-safety bug introduced on
	2002-01-09.

2004-12-10  Arseny Slobodyuk  <ampy@ich.dvo.ru>

	* win32.d: fix mingw build - include sys/types.h before using of
	ssize_t.

2004-12-09  Sam Steingold  <sds@gnu.org>

	* genclisph.d (TESTOUT): check some constants (nullobj, unbound &c)

2004-12-09  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_struct_data, SOCKADDR-FAMILY)
	(optional_sockaddr_argument, BIND, CONNECT, RECVMSG, SENDMSG, SENDTO):
	avoid warnings on AMD64 by using socklen_t instead of size_t

2004-12-09  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (htonl, htons, ntohl, ntohs): implement
	* modules/rawsock/sock.lisp (htonl, htons, ntohl, ntohs): export

2004-12-07  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile): always return 3 values as specified by ANSI
	Reported by Michael Kappert <michael.kappert@gmx.net>

2004-12-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX::SET-FILE-STAT): also set ATIME
	and MTIME using utime(2)
	(copy_attributes_and_close): use utime(2) instead of the
	deprecated utimes(2)

2004-12-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (OS:FILE-PROPERTIES): support cygwin
	* modules/syscalls/posix.lisp (FILE-PROPERTIES) [win32|cygwin]: export
	* modules/syscalls/configure.in (LIBS) [win32|cygwin]: add oleaut32

2004-12-06  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (check_chmod_mode): new function
	(POSIX::CONVERT-MODE): use it, permit symbol arguments

2004-12-06  Sam Steingold  <sds@gnu.org>

	* eval.d (progv): do not modify the source code:
	when symlist contains bad symbols, copy it

2004-12-06  Arseny Slobodyuk  <ampy@ich.dvo.ru>

	IPropertyStorage interface on WIN32_NATIVE.
	* makemake.in: add liboleaut32 to libraries on cygwin.
	* modules/syscalls/calls.c (StgOpenStorageExFuncType): new type.
	(StgOpenStorageExFunc, ole32): new global static variables.
	(module__syscalls__init_function_2): load ole32.dll and
	  get the StgOpenStorageEx address.
	(PropVariantToLisp, LispToPropVariant, kwtopropid, PropSpecSetStr)
	(propspeclistp, PropSpecSet, DecodeHRESULT): new static
	helper functions.
	(with_string_0w, MyPropVariantInit) new defines.
	Add a number of IPropertyStorage API defines missing in
	cygwin headers.
	(POSIX::FILE-PROPERTIES): new DEFUN.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	Sequence constructing functions must check whether the result belongs
	to the given type.
	* sequence.d (valid_type1): Expect the type on the stack. Write back
	the expanded type.
	(valid_type): Likewise.
	(MAKE-SEQUENCE, coerce_sequence, SYSTEM::COERCED-SUBSEQ, CONCATENATE)
	(MAP, MERGE): Update. Invoke SEQTYPE_LENGTH_MATCH only if the
	type-length is an integer. At the end, verify using TYPEP.
	* predtype.d (COERCE): Try coerce_sequence also for non-atom types.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (execute): Remove declaration (leftover from Atari ST).

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (DYNAMIC_8BIT_VECTOR, DYNAMIC_STRING): Use 'var'.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (check_weak): DON'T USE LOCAL VARIABLES OF TYPE
	gcv_object_t.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (mv_to_list, implicit_progn): Cosmetics.
	* io.d (LINES_INC): Likewise.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (init_packages, unread_char, write_byte_array)
	(write_char_array): Mark as "can trigger GC".
	(convert_to_foreign_mallocing, convert_to_foreign_nomalloc): Likewise.
	* spvw_language.d (CLSTEXT, CLOTEXT): Likewise.
	* charstrg.d (subsstring): Mark as "can trigger GC".
	* stream.d (write_byte_array, unread_char, write_char_array): Likewise.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* realelem.d (R_R_comp): Fix GC-safety bug introduced on 2004-09-18.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* stream.d (FILE-POSITION): Fix GC-safety bug introduced on 2004-02-15.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (test_string_limits_rw): Mark as "can trigger GC". Fixes
	leftover from 2003-05-01.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* foreign.d (convert_to_foreign_*): Mark as "can trigger GC".
	(FFI::EXEC-ON-STACK): Fix GC-safety bug introduced on 2002-04-23.
	(FFI::FOREIGN-CALL-OUT): Fix several long-standing GC-safety bugs.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* foreign.d (FFI::%OFFSET): Fix GC-safety bug introduced on 2003-05-12.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* debug.d (read_form): Fix GC-safety bug introduced on 2003-01-21.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* io.d (pretty_print_call): Fix GC-safety bug introduced on 2001-08-17.
	Avoid goto.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* io.d (test_disp_sub_char): Expect readtable on the STACK. Fix
	GC-safety bug introduced on 2004-06-02.
	(SET-DISPATCH-MACRO-CHARACTER, GET-DISPATCH-MACRO-CHARACTER): Update.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix GC-safety bug
	introduced on 2003-05-07.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* stream.d (test_input_stream_args, test_output_stream_args): Fix
	GC-safety bug introduced on 2004-06-02.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* eval.d (interpret_bytecode_ PROGV): Fix GC-safety bug introduced on
	2003-05-20.

2004-12-05  Bruno Haible  <bruno@clisp.org>

	* stream.d (SYS::MAKE-SOCKET-STREAM, SOCKET-ACCEPT, SOCKET-CONNECT):
	Don't declare variables earlier than needed. (Deprecated BSD style.)

2004-12-04  Bruno Haible  <bruno@clisp.org>

	Prepare for using DEBUG_GCSAFETY with modules.
	* genclisph.d (main): Fix VAROBJECT_HEADER definition.
	* utils/modprep.lisp (print-tables-1): Change element type of the
	object-tab to gcv_object_t.
	* modules/clx/new-clx/clx.f (with_stringable_0_tc): Add casts in
	conditional expression.
	(XLIB:CREATE-PIXMAP): Likewise.

2004-12-04  Bruno Haible  <bruno@clisp.org>

	Make it possible to use CC=g++ with modules.
	* genclisph.d (main): Fix the declaration of fd_read, fd_write on Unix.
	* utils/modprep.lisp (print-tables-1): Use "extern" in the forward
	declaration on the subr-tab.
	* modules/clx/new-clx/clx.f (pop_display): Add a cast.
	(get_font_info_and_display): Likewise.
	(make_visual_info): Use field name 'c_class' in C++ mode.
	(XLIB:SCREEN-DEPTHS): Don't use 'template' as an identifier.
	(XLIB:CREATE-WINDOW): Don't use 'class' as an identifier.
	(XLIB:WINDOW-CLASS): Use field name 'c_class' in C++ mode.
	(handle_image_z, XLIB:PUT-IMAGE): Add a cast.
	(XLIB:DISCARD-FONT-INFO, XLIB:SET-FONT-PATH): Likewise.
	(XLIB:GET-PROPERTY): Don't use 'delete' as an identifier.
	(DEF_EVENT COLORMAP-NOTIFY): Use field name 'c_new' in C++ mode.
	(XLIB:PROCESS-EVENT): Add a cast.
	(grasp): New function, extracted out of encode_event.
	(encode_event): Update.
	(XLIB:QUERY-KEYMAP): Add casts.
	(XVisualIDToVisual): Don't use 'template' as an identifier.
	* modules/queens/queens.c (queens): Use ANSI C declaration syntax.
	Don't use 'try' as an identifier.
	* modules/rawsock/rawsock.c (RAWSOCK:MAKE-SOCKADDR): Add a cast.
	* modules/syscalls/calls.c (POSIX::CONFSTR): Add a cast.
	(POSIX::CONVERT-MODE): Move error-signaling code out of inner block.

2004-12-02  Bruno Haible  <bruno@clisp.org>

	Fix compilation errors with DEBUG_GCSAFETY.
	* foreign.d (FFI:FOREIGN-VARIABLE): Add cast in conditional expression.
	(open_library): Expect the name argument to be on the STACK.
	(update_library): Fix GC-safety bugs.

2004-12-02  Bruno Haible  <bruno@clisp.org>

	Make it possible again to do "make install" with a different user id
	even when Makefile is newer than cflags.h.
	* makemake.in (cflags.h.stamp): Rename from cflags.h.
	(cflags.h): New rule.
	(clean4): Remove also cflags.h.stamp.

2004-12-01  Sam Steingold  <sds@gnu.org>

	* describe.lisp (arglist): COERCE the argument to FUNCTION
	so that (ARGLIST 'PRINT-OBJECT) returns meaningful variable names

2004-11-29  Sam Steingold  <sds@gnu.org>

	* stream.d (low_read_array_unbuffered_handle)
	(low_read_unbuffered_handle, low_read_unbuffered_handle)
	(low_fill_buffered_handle, low_read_unbuffered_socket)
	(low_listen_unbuffered_socket, low_read_array_unbuffered_socket)
	(low_fill_buffered_socket): fd_read() returns ssize_t, not sintL
	(low_write_array_unbuffered_handle, low_flush_buffered_handle)
	(low_flush_buffered_pipe, low_write_array_unbuffered_pipe)
	(low_write_array_unbuffered_socket, low_flush_buffered_socket)
	(low_write_unbuffered_socket, low_write_unbuffered_handle):
	fd_write() returns ssize_t, not sintL

2004-11-29  Bruno Haible  <bruno@clisp.org>

	* spvw_memfile.d (loadmem_from_handle): More uses of sintM and ssize_t
	instead of sintL.

2004-11-29  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem_from_handle): full_read() returns
	ssize_t, not sintL

2004-11-27  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (c-init-once, c-init-always, c-fini, do-c-init-once)
	(do-c-init-always, do-c-fini): remove
	(do-c-lines): when FORMAT-STRING is a symbol, add the code to the
	appropriate init/fini function

2004-11-27  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (uintM, sintM): Fix conditional.
	(static_space, used_space, free_space): Change return value type to
	uintM.

2004-11-26  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (try-eval): extracted from c-DIRECT-FUNCTION-CALL
	(c-DIRECT-FUNCTION-CALL): use it
	(c-PLUS, c-STAR, c-MINUS, c-SLASH): use it to avoid turning run-time
	errors into compile-time errors: issue a warning instead

2004-11-20  Bruno Haible  <bruno@clisp.org>

	* clos-genfun4.lisp (add-extended-method-check): Ignore the values of
	:after/:before methods.

2004-11-20  Bruno Haible  <bruno@clisp.org>

	Don't bypass the finalize-inheritance generic function.
	* clos-class2.lisp (class-pretty): New function.
	* clos-class3.lisp (shared-initialize-<semi-standard-class>): Call
	finalizable-p and finalize-inheritance instead of finalize-class.
	(finalize-class): Remove function.
	(finalizable-p): New function.
	(finalize-inheritance): Call finalize-inheritance-<semi-standard-class>
	instead of finalize-class.
	(finalize-inheritance-<semi-standard-class>): New function.
	* clos-class6.lisp (finalize-inheritance@semi-standard-class): Call
	finalize-inheritance-<semi-standard-class> instead of finalize-class.

2004-11-20  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (defclass): Warn about a syntax error that beginners
	often do.

2004-11-24  Bruno Haible  <bruno@clisp.org>

	Support heaps > 4 GB.
	* lispbibl.d (intMsize): New macro.
	(uintM, sintM): New types.
	(map_heap_function_t): Use uintM.
	(varobject_bytelength): Return uintM.
	(uintM_to_I, sintM_to_I): New macros.
	* spvw.d (argv_initparams): Change type of argv_memneed to uintM.
	(parse_options): Produce an uintM for argv_memneed. Accept GB as
	denoting "Giga".
	(init_memory): Use uintM.
	(dynload_modules): Likewise.
	* spvw_mmap.d (mmap_zeromap, mmap_filemap): Take an uintM.
	(mmap_prepare): Use uintM.
	* spvw_multimap.d (mmap_interval_t): Change the type of mm_len to
	uintM.
	(remember_mmap_interval, fdmap, zeromap, open_temp_fd, fdsave)
	(open_shmid, shmsave): Take an uintM.
	(multimap): Update.
	* spvw_singlemap.d (filemap): Take an uintM.
	* spvw_page.d (_Page): Change type of gcpriv.l to uintM.
	(spvw AVL_ELEMENT): Use uintM.
	* spvw_heap.d (Heap): Change the type of misaligned to uintM.
	* spvw_global.d (mem): Change the type of total_room,
	last_gcend_space0, last_gcend_space1, total_space, used_space,
	last_gcend_space, gctrigger_space to uintM.
	(check_gc_consistency, check_gc_consistency_2): Update.
	* spvw_gcstat.d (inc_gc_space): Take an uintM.
	* spvw_space.d (static_space, used_space, free_space): Return uintM.
	(recalc_space): Update.
	* spvw_objsize.d (varobject_bytelength): Return uintM.
	(size_svector): Likewise.
	(objsize, objsize_symbol, objsize_sbvector, objsize_sb2vector)
	(objsize_sb4vector, objsize_sb8vector, objsize_sb16vector)
	(objsize_sb32vector, objsize_svector, objsize_sxrecord, objsize_lrecord)
	(objsize_bignum, objsize_ffloat, objsize_dfloat, objsize_lfloat)
	(objsize_func_t): Likewise.
	* spvw_update.d (update_varobject, update_svector): Use uintM.
	* spvw_fault.d (xmprotect, xmmprotect): Take an uintM.
	* spvw_garcol.d (gc_sweep1_varobject_page): Update.
	(move_aligned_p1_p2): Take an uintM.
	(gc_sweep2_varobject_page, free_some_unused_pages): Update.
	(gar_col_normal): Update.
	(spvw SORT_KEY): Use uintM.
	(gc_compact_from_varobject_page, gc_compact_from_cons_page): Update.
	(gar_col_compact): Update.
	(move_conses): Take a sintM.
	* spvw_weak.d (markwatchset_allocated, markwatchset_size): Change type
	to uintM.
	(activate_weak): Update.
	* spvw_allocate.d (relax_reserve, mymalloc): Take an uintM.
	(not_enough_room_p, make_space, make_space_gc, make_space_true)
	(make_space_false, make_space_using_malloc): Likewise.
	* spvw_typealloc.d (allocate_vector): Use uintM.
	* spvw_walk.d (map_heap_objects): Update.
	* spvw_memfile.d (savemem, loadmem_from_handle): Use uintM.
	* predtype.d (hs_record_t): Change type of n_bytes to sintM.
	(heap_statistics_mapper, heap_statistics_result): Update.
	* debug.d (SYSTEM::%ROOM): Use uintM and uintM_to_I.

2004-11-24  Sam Steingold  <sds@gnu.org>

	* stream.d (listen_handle) [WIN32_NATIVE]: use full_read() instead
	of read() to avoid a gcc warning

2004-11-19  Bruno Haible  <bruno@clisp.org>

	Repair the rest of the forward-referenced-class misdesign.
	* clos-class1.lisp (super-class): New class.
	(*<super-class>-defclass*): New variable.
	(potential-class): Inherit all slots from super-class.
	(class-direct-subclasses-table): Make it work also for objects
	that are not of type <potential-class>.
	(forward-referenced-class): Remove class.
	(*<forward-referenced-class>-defclass*): Remove variable.
	(forward-reference-to-class): New class.
	(*<forward-reference-to-class>-defclass*): New variable.
	(misdesigned-forward-referenced-class): New class.
	(*<misdesigned-forward-referenced-class>-defclass*): New variable.
	(shared-initialize-<defined-class>): Test for defined-class or
	forward-reference-to-class, instead of for potential-class.
	(forward-reference-to-class-p): New function.
	(print-object-<forward-reference-to-class>): New function.
	* clos-class2.lisp (<forward-referenced-class>): Remove variable.
	(<forward-reference-to-class>, <misdesigned-forward-referenced-class>):
	New variables.
	((setf find-class)): Use forward-reference-to-class-p instead of typep.
	* clos-class3.lisp (ensure-class-using-class-<t>): Test for
	defined-class or forward-reference-to-class, instead of for
	potential-class.
	(reinitialize-instance-<defined-class>): Likewise.
	(finalize-class): Likewise.
	Define <super-class>.
	Define <forward-reference-to-class>,
	<misdesigned-forward-referenced-class> instead of
	<forward-referenced-class>.
	* clos-class6.lisp (class-name@forward-reference-to-class): Rename
	from class-name@forward-referenced-class. Don't use class-classname.
	(class-direct-subclasses-table): Make it work also for objects that are
	not of type <potential-class>.
	(class-direct-subclasses@forward-reference-to-class): Rename from
	class-direct-subclasses@forward-referenced-class.
	(class-direct-superclasses@forward-reference-to-class): Rename from
	class-direct-superclasses@forward-referenced-class. Don't use
	class-classname.
	(class-direct-slots@forward-reference-to-class): Rename from
	class-direct-slots@forward-referenced-class. Don't use class-classname.
	(class-direct-default-initargs@forward-reference-to-class): Rename
	from class-direct-default-initargs@forward-referenced-class. Don't use
	class-classname.
	(class-finalized-p@forward-reference-to-class): Rename from
	class-finalized-p@forward-referenced-class.
	(add-direct-subclass@super-class@potential-class): Rename from
	add-direct-subclass@potential-class@potential-class.
	(remove-direct-subclass@super-class@potential-class): Rename from
	remove-direct-subclass@potential-class@potential-class.
	* clos-print.lisp (print-object@forward-reference-to-class): New
	method.
	* clos-custom.lisp ((setf <forward-referenced-class>-under-<class>)):
	Call also set-<forward-referenced-class>-...
	(set-<class>-<potential-class>, set-<class>-<defined-class>): Disable
	package lock.
	(set-<forward-referenced-class>-<misdesigned-forward-referenced-class>)
	(set-<forward-referenced-class>-<forward-reference-to-class>): New
	functions.

2004-11-18  Bruno Haible  <bruno@clisp.org>

	Repair part of the forward-referenced-class misdesign.
	* lispbibl.d (if_potential_class_p): Rename from if_class_p.
	* predtype.d (CLOS::%DEFCLOS): Update.
	(CLOS::POTENTIAL-CLASS-P): Rename from CLOS::CLASS-P.
	* clos-class1.lisp (potential-class): Rename from class.
	(*<potential-class>-defclass*): Rename from *<class>-defclass*.
	(*<potential-class>-...-location*): Rename from *<class>-...-location*.
	(class-classname, class-direct-subclasses-table): Update.
	(shared-initialize-<potential-class>): Rename from
	shared-initialize-<class>.
	(forward-referenced-class, defined-class): Update.
	(shared-initialize-<defined-class>): Update. Use potential-class-p
	instead of class-p.
	(potential-class type): Rename from class.
	(print-object-<potential-class>): Rename from print-object-<class>.
	(print-object): Use potential-class-p instead of class-p.
	* clos-class2.lisp (<potential-class>): Rename from <class>.
	* clos-class3.lisp (ensure-class-using-class-<t>): Use defined-class
	instead of class, potential-class-p instead of class-p.
	(reinitialize-instance-<defined-class>): Use potential-class-p instead
	of class-p.
	(std-compute-superclasses): Update.
	(finalize-class): Use potential-class-p instead of class-p.
	(list-all-finalized-subclasses): Update.
	Define <potential-class> instead of <class>.
	Update %defclos call.
	* clos-genfun1.lisp (print-object): Use potential-class-p instead of
	class-p.
	* clos-genfun2a.lisp
	(compute-applicable-methods-using-classes-<generic-function>): Use
	defined-class-p instead of class-p.
	(compute-applicable-methods-for-set): Likewise.
	* clos-slots2.lisp (invalidate-slot-value-info): Use defined-class-p
	instead of class-p.
	* clos-class4.lisp (shared-initialize@potential-class): Rename from
	shared-initialize@class.
	* clos-class5.lisp (*make-instance-table*)
	(*reinitialize-instance-table*)
	(*update-instance-for-redefined-class-table*): Update.
	(note-ai-change): Use defined-class-p instead of class-p.
	(update-instance-for-different-class@potential-class@standard-object):
	Rename from update-instance-for-different-class@class@standard-object.
	* clos-class6.lisp (class-classname): Update.
	((setf class-name)@potential-class): Rename from
	(setf class-name)@potential-class.
	(class-direct-subclasses-table): Update.
	(ensure-class-using-class@potential-class): Rename from
	ensure-class-using-class@class.
	(validate-superclass@potential-class@potential-class): Rename from
	validate-superclass@class@class.
	(add-direct-subclass@potential-class@potential-class): Rename from
	add-direct-subclass@class@class.
	(remove-direct-subclass@potential-class@potential-class): Rename from
	remove-direct-subclass@class@class.
	* clos-print.lisp (print-object@potential-class): Rename from
	print-object@class.
	* clos-custom.lisp: New file.
	* documentation.lisp (documentation, (setf documentation)): Use
	defined-class instead of class.
	* loadform.lisp (make-load-form@defined-class): Rename from
	make-load-form@class.
	* clos.lisp: Load clos-custom.
	* makemake.in (LPARTS): Add clos-custom.
	* po/Makefile.devel (LISPSOURCES): Add clos-custom.

2004-11-23  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (PC386) [AMD64]: define

2004-11-23  Sam Steingold  <sds@gnu.org>

	revert the 2003-10-10 patch and fix the problem differently:
	since the problem is that COMPILE/LOAD-TIME-VALUE must work even
	inside COMPILE-FILE, *FASOUTPUT-STREAM* should be bound there
	* compiler.lisp (compile): bind *FASOUTPUT-STREAM* to NIL
	(c-EVAL-WHEN): do not bind *FASOUTPUT-STREAM*
	* reploop.lisp (break-loop): ditto
	Suggested by Don Cohen in
	<http://article.gmane.org/gmane.lisp.clisp.devel/13127>

2004-11-23  Bruno Haible  <bruno@clisp.org>

	* package.d (rehash_symtab): If the vector length supports 32 bits, use
	2^32-1 as maximum size, not 2^24-1.

2004-11-23  Bruno Haible  <bruno@clisp.org>

	* clhs.lisp (browse-url): On MacOS X, use the system's browser by
	default.
	Suggested by Pascal Costanza <pc@p-cos.net>.

2004-11-23  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_object_tab): Add :MACOS to *FEATURES* on MacOS X.

2004-11-17  Bruno Haible  <bruno@clisp.org>

	Use forward-referenced-class instances instead of symbols in the
	direct-superclasses list.
	* clos-class1.lisp (shared-initialize-<defined-class>): Don't accept
	symbols in the direct-superclasses list any more.
	* clos-class2.lisp (<forward-referenced-class>): New variable.
	((setf find-class)): When replacing a forward-referenced class, move
	the list of subclasses from the old class object to the new one.
	* clos-class3.lisp (ensure-class-using-class-<t>): Convert symbols in
	the direct-superclasses list to forward-referenced-class instances.
	(reinitialize-instance-<defined-class>): Likewise. Handle the change
	from a forward-referenced-class to a defined-class.
	(update-subclasses-sets): Treat the forward-referenced-class the same
	way.
	(finalize-class): Handle the case where the argument is a
	forward-referenced-class. Handle the change from a
	forward-referenced-class to a defined-class.
	(<forward-referenced-class>): Initialize.

2004-11-22  Bruno Haible  <bruno@clisp.org>

	* stream.d (low_read_unbuffered_handle): Use full_read instead of read.
	Don't interpret EINTR on Unix as being a consequence of SIGINT.
	(low_write_unbuffered_handle): Use full_write instead of write. Don't
	interpret EINTR on Unix as being a consequence of SIGINT.

2004-11-22  Sam Steingold  <sds@gnu.org>

	* stream.d (same_handle_p) [WIN32_NATIVE]: use TIME_EQ to compare
	FILETIME; fix a syntax(!) error in the last patch

2004-11-22  Sam Steingold  <sds@gnu.org>

	* m4/regexp.m4 (CL_REGEXP): check for regoff_t and treat rm_so &
	rm_eo as regoff_t (which may be 64-bit!)

2004-11-21  Bruno Haible  <bruno@clisp.org>

	Make FRESH-LINE work correctly in batch-mode when stdout and stderr
	point to the same target.
	* spvw_memfile.d (loadmem_from_handle): Reset
	O(standard_{input,output,error}_file_stream) to NIL.
	* stream.d (same_handle_p): New function.
	(make_standard_input_file_stream): Rename from make_standard_input.
	Turn into a function.
	(make_standard_output_file_stream): Rename from make_standard_output.
	Turn into a function.
	(make_standard_error_file_stream): New function.
	(get_standard_input_file_stream, get_standard_output_file_stream)
	(get_standard_error_file_stream): New functions.
	(make_terminal_io): Use get_standard_{input,output}_file_stream instead
	of make_standard_{input,output}.
	(terminal_io_input_stream): New function, replaces init_standard_input.
	(terminal_io_output_stream): New function, replaces
	init_standard_output.
	(init_standard_input, init_standard_output): Remove functions.
	(init_standard_io): Remove macro.
	(init_streamvars): Update.
	(fehler_value_stream): Update.

2004-11-16  Bruno Haible  <bruno@clisp.org>

	Implement forward-referenced-class.
	* lispbibl.d (Class): Move direct_subclasses field to front.
	(if_class_p): Rename from if_classp.
	(if_defined_class_p): New macro.
	* io.d (structure_reader, pr_structure_default): Use if_defined_class_p
	instead of if_classp.
	* sequence.d (valid_type1): Use if_defined_class_p instead of
	if_classp.
	* predtype.d (%defclos): Accept one more argument, <defined-class>.
	(CLOS::CLASS-P): Update.
	(CLOS::DEFINED-CLASS-P): New function.
	(CLASS-OF): Use if_defined_class_p instead of if_classp.
	(CLOS:FIND-CLASS): Likewise.
	(CLOS::TYPEP-CLASS, COERCE): Likewise.
	* record.d (CLOS::ALLOCATE-FUNCALLABLE-INSTANCE)
	(CLOS::ALLOCATE-STD-INSTANCE): Use if_defined_class_p instead
	of if_classp.
	* init.lisp: Export forward-referenced-class.
	* clos-package.lisp: Export forward-referenced-class.
	* clos-macros.lisp (error-accessor-typecheck): Use defined-class-p
	instead of class-p.
	* clos-class0.lisp (*dummy-class*): Update.
	* clos-class1.lisp (defined-class): New class.
	(class): Move most slots down to defined-class.
	(forward-referenced-class): New class.
	(*<forward-referenced-class>-defclass*): New variable.
	(*<defined-class>-defclass*): New variable.
	(*<defined-class>-...-location*): Rename from *<class>-...-location*.
	(class-direct-superclasses, class-all-superclasses)
	(class-precedence-list, class-direct-slots, class-slots)
	(class-slot-location-table, class-direct-default-initargs)
	(class-default-initargs, class-documentation, class-listeners)
	(class-initialized): Update.
	(shared-initialize-<class>): New function.
	(shared-initialize-<defined-class>): Rename from
	shared-initialize-<class>.
	(built-in-class, slotted-class): Inherit from defined-class instead of
	class.
	(shared-initialize-<slotted-class>): Call
	shared-initialize-<defined-class> instead of shared-initialize-<class>.
	(defined-class): New atomic type.
	(print-object-<class>): Use defined-class-p.
	* clos-class2.lisp (<defined-class>): New variable.
	((setf find-class)): Use defined-class-p instead of class-p.
	* clos-class3.lisp (%defclos): Pass defined-class as well.
	(ensure-class-using-class-<t>): Use defined-class-p instead of class-p.
	(ensure-class): Likewise.
	(reinitialize-instance-<defined-class>): Rename from
	reinitialize-instance-<class>. Use defined-class-p instead of class-p.
	(map-dependents-<defined-class>): Rename from map-dependents-<class>.
	(checked-class-direct-subclasses): Use defined-class-p instead of
	class-p.
	(compute-class-precedence-list-<defined-class>): Rename from
	compute-class-precedence-list-<class>.
	(compute-class-precedence-list): Update.
	(checked-compute-class-precedence-list): Use defined-class-p instead of
	class-p.
	(compute-effective-slot-definition-initargs-<defined-class>): Rename
	from compute-effective-slot-definition-initargs-<class>.
	(compute-effective-slot-definition-initargs): Update.
	(compute-effective-slot-definition-<defined-class>): Rename from
	compute-effective-slot-definition-<class>. Use defined-class-p instead
	of class-p.
	(compute-effective-slot-definition): Update.
	(compute-slots-<defined-class>-primary): Rename from
	compute-slots-<class>-primary.
	(compute-slots): Update.
	(compute-default-initargs-<defined-class>): Rename from
	compute-default-initargs-<class>.
	(compute-default-initargs): Update.
	(install-class-direct-accessors): Use defined-class-p instead of
	class-p.
	(shared-initialize-<built-in-class>): Call
	shared-initialize-<defined-class> instead of shared-initialize-<class>.
	(shared-initialize-<structure-class>): Update.
	(finalize-class): Use defined-class-p instead of class-p.
	(<defined-class>, forward-referenced-class): Define classes.
	* clos-slotdef1.lisp (convert-direct-slots): Use defined-class-p
	instead of class-p.
	* type.lisp (clos-class): Use defined-class-p instead of class-p.
	(typep, subtype-integer, subtype-sequence): Likewise.
	(type-expand): Likewise.
	* subtypep.lisp (type-category, canonicalize-type): Use defined-class-p
	instead of class-p.
	* defstruct.lisp (find-structure-slot-initfunction, defstruct): Test
	whether the closclass property is really a defined-class.
	* clos-class4.lisp (shared-initialize@class): New method.
	(shared-initialize@defined-class): Rename from
	shared-initialize@class.
	(reinitialize-instance@defined-class): Rename from
	reinitialize-instance@class.
	* clos-class6.lisp (initialize-instance@defined-class): Rename from
	initialize-instance@class.
	(class-name@defined-class): Rename from class-name@class.
	(class-name@forward-referenced-class): New method.
	(class-direct-subclasses@defined-class): Rename from
	class-direct-subclasses@class.
	(class-direct-subclasses@forward-referenced-class): New method.
	(class-direct-superclasses@defined-class): Rename from
	class-direct-superclasses@class.
	(class-direct-superclasses@forward-referenced-class): New method.
	(class-all-superclasses): Update.
	(class-precedence-list@defined-class): Rename from
	class-precedence-list@class.
	(class-direct-slots@defined-class): Rename from
	class-direct-slots@class.
	(class-direct-slots@forward-referenced-class): New method.
	(class-slots@defined-class): Rename from class-slots@class.
	(class-slot-location-table): Update.
	(class-direct-default-initargs@defined-class): Rename from
	class-direct-default-initargs@class.
	(class-direct-default-initargs@forward-referenced-class): New method.
	(class-default-initargs@defined-class): Rename from
	class-default-initargs@class.
	(class-documentation, class-listeners, class-initialized): Update.
	(compute-direct-slot-definition-initargs@defined-class): Rename from
	compute-direct-slot-definition-initargs@class.
	(class-finalized-p@defined-class): Rename from
	class-finalized-p@class.
	(class-finalized-p@forward-referenced-class): New method.
	(finalize-inheritance@defined-class): Rename from
	finalize-inheritance@class.
	(compute-class-precedence-list@defined-class): Rename from
	compute-class-precedence-list@class.
	(compute-effective-slot-definition-initargs@defined-class): Rename
	from compute-effective-slot-definition-initargs@class.
	(compute-effective-slot-definition@defined-class): Rename from
	compute-effective-slot-definition@class.
	(compute-slots): Update.
	(compute-default-initargs@defined-class): Rename from
	compute-default-initargs@class.
	(reader-method-class@defined-class): Rename from
	reader-method-class@class.
	(writer-method-class@defined-class): Rename from
	writer-method-class@class.
	* clos-method1.lisp (initialize-instance-<standard-method>): Reject
	specializers which are not defined classes.
	* clos-genfun2a.lisp
	(compute-applicable-methods-using-classes-<generic-function>): Use
	defined-class-p instead of class-p.
	(check-method-only-standard-specializers): Likewise.
	* clos-genfun2b.lisp (shared-initialize-<standard-generic-function>):
	Use defined-class-p instead of class-p.
	* clos-method2.lisp (analyze-method-description): Use defined-class-p
	instead of class-p.
	* clos-genfun3.lisp (ensure-generic-function-using-class-<t>): Use
	defined-class-p instead of class-p.
	* clos-genfun4.lisp (mop-standardized-p): Use defined-class-p instead
	of class-p.
	* clos-dependent.lisp (add-dependent@defined-class): Rename from
	add-dependent@class.
	(remove-dependent@defined-class): Rename from remove-dependent@class.
	(map-dependents@defined-class): Rename from map-dependents@class.
	* compiler.lisp (c-TYPEP): Use defined-class-p instead of class-p.
	* describe.lisp (describe-object@symbol): Test whether the closclass
	property is really a defined-class.
	(describe-object@generic-function): Use defined-class-p instead of
	class-p.

2004-11-21  Sam Steingold  <sds@gnu.org>

	* places.lisp (get-setf-method): fix the error message: the
	number of store variables may be 0, e.g., (PROGN (VALUES))
	(defsetf): permit missing store variables as specified by ANSI
	CL: (defsetf access-fn lambda-list (store-variable*) ...)
	Reported by Kalle Olavi Niemitalo <kon@iki.fi>

2004-11-20  Sam Steingold  <sds@gnu.org>

	* m4/regexp.m4: new file
	* modules/regexp/configure.in: use CL_REGEXP

2004-11-19  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexi.c (REGEXP-FREE): invalidate the fpointer

2004-11-13  Bruno Haible  <bruno@clisp.org>

	* clos-genfun3.lisp (make-generic-function): Add method-class-p,
	declspecs-p, documentation-p arguments. Put the defaults for
	:method-class, :declarations, :documentation after the user-defined
	args, not before.
	(analyze-defgeneric): Produce additional values method-class-p,
	declspecs-p, docstring-p.
	(defgeneric): Put the default key/argument pairs for :method-class,
	:documentation, :declarations after the default initargs from the
	generic-function-class, not before.
	(make-generic-function-form): Update.
	Reported by Pascal Costanza.

2004-11-13  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (defclass): Put the default key/argument pairs
	for :direct-default-initargs, :documentation, :generic-accessors
	after the default initargs from the metaclass, not before.

2004-11-08  Bruno Haible  <bruno@clisp.org>

	Don't call initialize-instance for dummy generic-function instances.
	* clos-genfun2b.lisp (allocate-generic-function-instance)
	(make-generic-function-prototype): New functions.
	* clos-genfun3.lisp (analyze-defgeneric): Use
	make-generic-function-prototype instead of
	make-generic-function-instance.
	* clos-genfun5.lisp (allocate-generic-function-instance): New function.
	Reported by Pascal Costanza <costanza@web.de>.

2004-11-17  John Hinsdale  <hin@alma.com>

	* oracle.lisp: fix default for truncation parameter
	* orafns.c: handle truncation cases correctly

2004-11-09  Bruno Haible  <bruno@clisp.org>

	Implement notification from class redefinition to generic functions,
	part 2.
	* clos-class3.lisp (update-subclass-cpl-specializer-generic-functions):
	New function.
	(reinitialize-instance-<class>): Call it.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	Implement notification from class redefinition to generic functions,
	part 1.
	* lispbibl.d (Class): Add direct_instance_specializers field.
	* clos-specializer1.lisp (add-direct-method-<specializer>-<method>):
	New function.
	(add-direct-method): Use it.
	* clos-class1.lisp (semi-standard-class): Add
	direct-instance-specializers slot.
	(*<semi-standard-class>-direct-instance-specializers-location*): New
	constant.
	(class-direct-instance-specializers-table): New accessor.
	(*<standard-class>-instance-size*): Increment.
	* clos-class3.lisp (reinitialize-instance-<class>): Call
	update-subclass-instance-specializer-generic-functions when the CPL
	changed.
	(shared-initialize-<semi-standard-class>): Initialize the
	direct-instance-specializers slot to empty.
	(update-subclass-instance-specializer-generic-functions): New function.
	(add-direct-instance-specializer, remove-direct-instance-specializer)
	(list-direct-instance-specializers): New functions.
	* clos-genfun1.lisp (<funcallable-standard-class>-instance-size*):
	Increment.
	* clos-class5.lisp (do-change-class): Update the old class' and the new
	class's direct-instance-specializer set.
	* clos-specializer3.lisp (add-direct-method): Use
	add-direct-method-<specializer>-<method>.
	* clos-class6.lisp (class-direct-instance-specializers-table): New
	accessor.

2004-11-12  Bruno Haible  <bruno@clisp.org>

	* clos-genfun3.lisp (defmethod, defgeneric): Simplify the macro-
	expansion in the frequent case that the funname is a symbol.
	(Problem introduced on 2004-10-18 and 2004-10-19.)

2004-11-07  Bruno Haible  <bruno@clisp.org>

	Implement notification from change-class to generic functions.
	* clos-specializer1.lisp (existing-eql-specializer): New function.
	* clos-class5.lisp (do-change-class): Notify all generic functions
	which use an EQL specializer on the given object.

2004-11-12  Sam Steingold  <sds@gnu.org>

	* m4/connect.m4 (CL_CONNECT): check whether connect() exists
	before attempting to determine its prototype - needed for mingw32
	* m4/tcpconn.m4 (CL_TCPCONN): check inet_addr() and setsockopt()
	before prototype checks - for mingw32

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp (update-instance-for-different-class@generic-function):
	Update the generic function.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp (update-instance-for-different-class@method):
	Update the generic function to which the method belongs.

2004-11-11  Bruno Haible  <bruno@clisp.org>

	* m4/ioctl.m4 (CL_IOCTL): Test whether ioctl exists at all before
	attempting to determine its prototype. Needed for mingw32.
	* unix.d (ioctl): Declare only if HAVE_IOCTL.

2004-11-11  Sam Steingold  <sds@gnu.org>

	* spvw.d (main_actions) [PATHNAME_WIN32]: always try to load
	~/.clisprc first, and try ~/_clisprc only when the former does not
	exist; issue a warning when the latter is found.
	This code is to be remove after the next release.

2004-11-01  Bruno Haible  <bruno@clisp.org>

	Change the meaning of :BUFFERED :DEFAULT to mean T on the input side.
	* lispbibl.d (stream_isbuffered): Change return type to uintB.
	* stream.d (MAKE-PIPE-INPUT-STREAM): Treat buffered = 0 like
	buffered > 0.
	(MAKE-PIPE-OUTPUT-STREAM): Nop.
	(mkips_from_handles): Treat buffered = 0 like buffered > 0.
	(MAKE-PIPE-IO-STREAM): On the input side, treat buffered = 0 like
	buffered > 0.
	(make_socket_stream): If buffered = 0, combine a buffered input stream
	with an unbuffered output stream.
	(stream_isbuffered): Change return value to be the combination of
	two bits.
	* io.d (pr_stream): Print "INPUT-BUFFERED" if the stream combines a
	buffered input stream with an unbuffered output stream.

2004-10-27  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-direct-slot-definition-initargs.
	* clos-package.lisp: Likewise.
	* clos-slotdef1.lisp (compute-direct-slot-definition-initargs): New
	preliminary function.
	(convert-direct-slots): Use compute-direct-slot-definition-initargs.
	* clos-class6.lisp (compute-direct-slot-definition-initargs): New
	generic function.
	* clos-genfun2b.lisp (*dynamically-modifiable-generic-function-names*):
	Add it.

2004-11-10  Bruno Haible  <bruno@clisp.org>

	* clos-print.lisp (*print-object-method-warning*): Comment out.
	(print-object-method-warning): Comment out.
	(compute-effective-method@(eql #'print-object)): Comment out.
	Suggested by Jörg Höhle.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	Avoid poll(), select() and non-blocking I/O on regular files.
	* stream.d (struct strm_channel_extrafields_t): Add 'regular' field.
	(ChannelStream_regular): New macro.
	(low_read_array_unbuffered_handle): For regular file handles, use
	persev_partial instead of persev_immediate or persev_bonus.
	(low_write_array_unbuffered_handle): Likewise.
	(make_unbuffered_stream): Add handle_regular argument.
	(struct strm_buffered_extrafields_t): Remove 'regular' field.
	(BufferedStream_regular): Remove macro.
	(low_fill_buffered_handle): For regular file handles, use
	persev_partial instead of persev_immediate or persev_bonus.
	(make_buffered_stream, make_file_stream, finish_output_buffered)
	(make_keyboard_stream, make_terminal_stream_, SCREEN:MAKE-WINDOW)
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, mkops_from_handles)
	(mkips_from_handles, MAKE-PIPE-IO-STREAM, SYS::MAKE-SOCKET-STREAM)
	(make_socket_stream): Update.

2004-10-24  Bruno Haible  <bruno@clisp.org>

	Merge method allocation and initialization into a single step again.
	* clos-class3.lisp (install-class-direct-accessors): Pass the
	method-class, not the method, to method-function-initargs. Call
	make-instance instead of allocate-instance and initialize-instance.
	* clos-method1.lisp (initialize-instance-<method>): Add backpointer
	argument.
	(initialize-instance-<standard-method>): Likewise.
	(allocate-method-instance, initialize-method-instance): Remove
	functions.
	(make-method-instance): New function.
	* clos-methcomb2.lisp (method-function-initargs): Take the method's
	class as argument, not the method.
	(add-next-method-local-functions): Rename argument self to backpointer.
	(effective-method-code-bricks): Emit code to use make-method-instance
	instead of allocate-method-instance, initialize-method-instance, and
	pass the method-class, not the method, to method-function-initargs.
	* clos-method2.lisp (analyze-method-description): Rename self to
	backpointer.
	* clos-genfun3.lisp (%call-next-method): Take the backpointer, not the
	method, as first argument.
	(do-defmethod, analyze-defgeneric): Use make-method-instance instead of
	allocate-method-instance, initialize-method-instance. Pass the
	method-class, not the method, to method-function-initargs.
	* clos-genfun4.lisp (%no-next-method): Take the backpointer, not the
	method, as first argument.
	* clos-method3.lisp (initialize-instance@method)
	(initialize-instance@standard-method): Add backpointer argument.
	* clos-method4.lisp (allocate-method-instance)
	(initialize-method-instance): Remove functions.
	(make-method-instance): New function.

2004-11-03  Bruno Haible  <bruno@clisp.org>

	Provide explanations in deprecation warnings.
	* compiler.lisp (*deprecated-functions-alist*): New variable, replaces
	*deprecated-functions-list*.
	(note-function-used, c-report-problems): Update.
	* deprecated.lisp (deprecate, ffi::foreign-address-null): Provide
	textual explanation.
	* describe.lisp (describe-object@symbol): Update.

2004-11-02  Bruno Haible  <bruno@clisp.org>

	* gray.lisp: Use class-name instead of clos::class-classname.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* stream.d (low_fill_buffered_handle): Don't call listen_handle;
	fd_read cares about the perseverance. Don't set
	BufferedStream_have_eof_p twice.
	(buffered_nextbyte): Simplify.

2004-10-24  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-effective-method-as-function.
	* clos-package.lisp: Likewise.
	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
	Add an argument and bind *method-combination-arguments* here.
	* clos-genfun2b.lisp (compute-applicable-methods-effective-method)
	(compute-applicable-methods-effective-method-for-set): Don't check
	against empty method list. Don't bind *method-combination-arguments*.
	Instead, pass the arguments to compute-effective-method-as-function.
	(compute-effective-method-as-function): Add args argument, pass it
	to compute-effective-method-as-function-form. Remove method-combination
	argument. Check against empty method list.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* unixaux.d (fd_read, fd_write, sock_write): Save errno around
	END_NO_BLOCK.
	* stream.d (listen_handle): Likewise.

2004-10-23  Bruno Haible  <bruno@clisp.org>

	New generic function compute-effective-slot-definition-initargs.
	* init.lisp: Export compute-effective-slot-definition-initargs.
	* clos-package.lisp: Likewise.
	* clos-slotdef1.lisp (<direct-slot-definition>): New variable.
	(direct-slot-definition-p): New function.
	* clos-class3.lisp (compute-effective-slot-definition-initargs-<class>):
	New function.
	(compute-effective-slot-definition-initargs): New preliminary function.
	(compute-effective-slot-definition-<class>): Call it.
	(<direct-slot-definition>): Initialize.
	* clos-genfun2b.lisp (*dynamically-modifiable-generic-function-names*):
	Add compute-effective-slot-definition-initargs.
	* clos-class6.lisp (compute-effective-slot-definition-initargs): New
	generic function.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* clos-class6.lisp (class-funcallablep): Fix function name in error
	message.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Fpointer_value): Cast the conditional expression to void.
	Avoids a warning with g++-3.4.3.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (p_backtrace_t): Define as a struct only if
	DEBUG_BACKTRACE. Remove operator bool, because it leads to warnings
	when comparing a p_backtrace_t with NULL. Tweak operator=.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* m4/putenv.m4 (CL_PUTENV): Include stdlib.h before attempting to
	call putenv. Needed in C++ mode.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* m4/putenv.m4 (CL_PUTENV): Require AC_GNU_SOURCE. Needed for the
	declaration of 'environ' on glibc systems.
	* configure.in: Invoke AC_GNU_SOURCE.

2004-11-07  Bruno Haible  <bruno@clisp.org>

	* stream.d (unread_char): Fix GC-safety bug and gcc warning introduced
	on 2004-07-28.

2004-11-06  Bruno Haible  <bruno@clisp.org>

	Eliminate warnings during bootstrapping.
	* init.lisp (fbound-string): For a preliminary macro, return nil,
	not "function".
	(eval-loaded-form, cerror): Define as preliminary.
	* type.lisp (clos::builtin-class-p): Define as preliminary.
	* defs2.lisp (dispatch-reader): Refer to #'dispatch-reader outside
	the compiled block, not inside.

2004-11-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (clean3): also remove FAS files in modules

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* stream.d (low_read_array_unbuffered_handle): Don't call
	low_listen_unbuffered_handle; the perseverance is now completely
	handled by fd_read.
	(low_read_array_unbuffered_socket): Don't call
	low_listen_unbuffered_socket; the perseverance is now completely
	handled by sock_read.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* init.lisp (custom:*suppress-check-redefinition*): Initialize to nil.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	Notion of preliminary function and macro definitions.
	* record.d ((setf sys::closure-name)): New function.
	* init.lisp: Export ext:preliminary.
	(sys::make-preliminary): New function.
	(format, cerror): Define as preliminary.
	(sys::preliminary-p): New function.
	(sys::fbound-string): Return nil for preliminary functions and for
	preliminary macros.
	(sys::remove-old-definitions): Accept an optional argument. Don't call
	sys::check-redefinition when defining a preliminary entity.
	(global-in-fenv-p, warn, eval-when-compile): Define as preliminary.
	(sys::predefmacro, sys::predefun): New macros.
	* macros1.lisp (loop): Define using predefmacro.
	* macros2.lisp (check-type, assert, etypecase, ctypecase, ecase)
	(ccase): Define using predefmacro.
	* places.lisp (system::closure-name): Add setf definition.
	* clos-package.lisp: Import sys::predefun.
	* clos-class0.lisp (print-object): Define using predefun.
	* clos-slotdef1.lisp (slot-definition-*)
	(structure-effective-slot-definition-readonly)
	(direct-slot-definition-class, equal-direct-slot)
	(effective-slot-definition-class): Define using predefun.
	* clos-specializer1.lisp (specializer-direct-methods-table)
	(eql-specializer-singleton, specializer-direct-generic-functions)
	(add-direct-method, remove-direct-method, specializer-direct-methods):
	Define using predefun.
	* clos-class1.lisp (class-*, print-object): Define using predefun.
	* defstruct.lisp (clos::defstruct-remove-print-object-method): Define
	using predefun.
	* compiler.lisp (closure-name): Remove setf definition.
	(finalize-coutput-file): Define using predefun.
	* edit.lisp (editor-name, editor-tempfile, edit-file): Define using
	predefun.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* unixaux.d (fd_read, fd_write, sock_read, sock_write): When returning
	0, set errno to indicate whether EOF or EOFW is reached.
	* win32.d (WSAEAGAIN, WSAENOENT): New macros.
	* win32aux.d (lowlevel_fd_read): When returning 0, set errno to
	indicate whether EOF is reached.
	(do_fd_read, fd_read): Transmit the error code also when result==0.
	(fd_write): When returning 0, set errno to indicate whether EOWF is
	reached.
	(lowlevel_sock_read): When returning 0, set errno to indicate whether
	EOF is reached.
	(do_sock_read, sock_read): Transmit the error code also when result==0.
	(lowlevel_sock_write): When returning 0, set errno to indicate whether
	EOWF is reached.
	(do_sock_write, sock_write): Transmit the error code also when
	result==0.
	* stream.d (low_read_array_unbuffered_handle): When EOF has been seen,
	store this information in the stream.
	(low_fill_buffered_handle): Likewise.
	(low_read_unbuffered_socket, low_listen_unbuffered_socket): Verify
	that EOF has really been seen.
	(low_read_array_unbuffered_socket): When EOF has been seen, store this
	information in the stream.
	(low_fill_buffered_socket): Likewise.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (defstruct): Set the readers and writers slot of the
	structure-direct-slot-definition instances to empty.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (install-class-direct-accessors): Optimize the
	accessors also in the case of structure-class.

2004-11-04  Sam Steingold  <sds@gnu.org>

	* genclisph.d [WIN32_NATIVE]: #include <windows.h> before the
	first use of HANDLE

2004-11-04  Sam Steingold  <sds@gnu.org>

	* win32aux.d (fd_read, fd_write): fix the definition
	to conform with the declaration

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* unixaux.d (fd_read_will_hang_p): New function, extracted from
	fd_read.
	(fd_read): Use it. Handle persev_bonus correctly.
	(fd_write_will_hang_p): New function, extracted from fd_write.
	(fd_write): Use it. Handle persev_bonus correctly.
	(sock_read_will_hang_p): New function, extracted from sock_read.
	(sock_read): Use it.
	(sock_write_will_hang_p): New function, extracted from sock_write.
	(sock_write): Use it. Handle persev_bonus correctly.
	* win32.d (fd_read_wont_hang_p): New declaration.
	* win32aux.d (fd_read_wont_hang_p): New function, extracted from
	listen_handle.
	(lowlevel_fd_read): Use it. Handle persev_immediate, persev_bonus
	correctly.
	(fd_write_will_hang_p): New function.
	(fd_write): Use it. Handle persev_immediate, persev_bonus correctly.
	(sock_read_will_hang_p): New function, extracted from
	lowlevel_sock_read.
	(lowlevel_sock_read): Use it.
	(sock_write_will_hang_p): New function, extracted from
	lowlevel_sock_write.
	(lowlevel_sock_write): Use it. Handle persev_bonus correctly.
	* stream.d (listen_handle) [WIN32_NATIVE]: Use fd_read_will_hang_p.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	Remove initff slot from structure-effective-slot-definition.
	* clos-slotdef1.lisp (structure-effective-slot-definition): Remove slot
	initff.
	(structure-effective-slot-definition-initff): Remove accessor.
	(structure-effective-slot-definition-readonly): Update.
	(initialize-instance-<structure-effective-slot-definition>): Remove
	initff argument.
	(make-instance-<structure-effective-slot-definition>): Update.
	(make-load-form-<structure-effective-slot-definition>): Use
	optional argument always.
	* clos-slotdef2.lisp (structure-effective-slot-definition-initff):
	Remove accessor.
	* defstruct.lisp (make-ds-slot): Remove initff argument.
	(copy-<structure-effective-slot-definition>): Update.
	(defstruct): Change slotlist and slotdefaultslots to contain the
	initff separately.  Always pass a form to
	make-load-form-<structure-effective-slot-definition>
	(ds-make-pred, ds-arg-default, ds-make-constructor-body)
	(ds-arg-with-default, ds-make-boa-constructor)
	(ds-make-keyword-constructor, ds-make-readers, ds-make-writers): Update.

2004-11-03  Sam Steingold  <sds@gnu.org>

	* init.lisp (load): do not call COMPILER::C-REPORT-PROBLEMS
	unless *LOAD-VERBOSE* and *COMPILE-VERBOSE* are true:
	this fixes a "clisp -q -q -C -i foo" error

2004-11-03  Sam Steingold  <sds@gnu.org>

	* clos-slotdef3.lisp (slot-equal-using-class):
	avoid a compilation warning

2004-11-03  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp, lispbibl.d, genclisph.d, spvw.d, utils/modprep.lisp:
	* modules.d: rename exitfunction to finifunction for consistency

2004-11-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (copy_file_low): use fd_read() and
	fd_write() instead of read_helper() and write_helper()
	* modules/bindings/glibc/linux.lisp: ditto

2004-11-03  Sam Steingold  <sds@gnu.org>

	* constsym.d (*FINI-HOOKS*): new symbol
	* spvw.d (init_symbol_values): init it
	(run_hooks): new function
	(main, quit): use it

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* unix.d (fd_read): Rename from read_helper.
	(fd_write): Rename from write_helper.
	* win32.d (fd_read): Rename from read_helper.
	(fd_write): Rename from write_helper.
	* genclisph.d: Declare fd_read, fd_write instead of read_helper,
	write_helper.
	* unixaux.d (fd_read): Rename from read_helper.
	(fd_write): Rename from write_helper.
	* win32aux.d (lowlevel_fd_read): Rename from low_read_helper.
	(fd_read_params): Rename from full_read_params.
	(do_fd_read): Rename from do_read_helper.
	(fd_read): Rename from read_helper.
	(fd_write): Rename from write_helper.
	* stream.d (low_read_array_unbuffered_handle)
	(low_write_array_unbuffered_handle, low_fill_buffered_handle)
	(low_write_array_unbuffered_pipe): Update.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* unixaux.d (read_helper, write_helper, sock_read, sock_write):
	Prefer poll or select over O_NONBLOCK. Don't call fcntl F_GETFL if
	persev != persev_immediate && persev != persev_bonus.
	Do nothing if nbyte==0.
	* win32aux.d (read_helper_low, write_helper): Do nothing if nbyte==0.
	(lowlevel_sock_read, lowlevel_sock_write): Implement persev_immediate
	and persev_bonus behaviour. Do nothing if nbyte==0.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	Remove initff slot from structure-direct-slot-definition.
	* clos-slotdef1.lisp (structure-direct-slot-definition): Remove initff
	slot.
	(structure-direct-slot-definition-initff): Remove accessor.
	(initialize-instance-<structure-direct-slot-definition>): Remove initff
	argument.
	(make-instance-<structure-direct-slot-definition>): Update.
	(make-load-form-<structure-direct-slot-definition>): Use optional
	argument always.
	* defstruct.lisp (defstruct): Change directslotlist and
	slotdefaultdirectslots to contain the initff separately. Always pass
	a form to make-load-form-<structure-direct-slot-definition>.

2004-11-02  Sam Steingold  <sds@gnu.org>

	allow the user to define his own init-once function
	* utils/modprep.lisp (*init-1-name*): new variable
	(defmodule-p): initialize it
	(parse): check for it
	(print-tables-2): use it with writing init-once function

2004-11-02  Sam Steingold  <sds@gnu.org>

	* spvw.d (quit): when running as a script, *STANDARD-OUTPUT*,
	*ERROR-OUTPUT* and *TERMINAL-IO* must be finished separately

2004-11-02  Sam Steingold  <sds@gnu.org>

	Modules now have an exit function.
	* foreign1.lisp (ffi-module): new slot FINALIZE
	(*c-finalize*): new symbol macro
	(finalize-coutput-file): write its contents into exitfunction
	(C-FINALIZE): new public macro
	(do-c-finalize): new aux function
	* lispbibl.d, genclisph.d (module_t): add slot exitfunction
	* modules.d (MODULE, modules): ditto
	* spvw.d (quit): call exitfunction() for all modules
	(dynload_modules): init the exitfunction slot
	* utils/modprep.lisp (*exit-name*): new variable
	(defmodule-p): initialize it
	(parse): check for it
	(print-tables-2): write a dummy exitfunction

2004-11-02  Sam Steingold  <sds@gnu.org>

	New FFI macros C-INIT-ONCE and C-INIT-ALWAYS.
	* foreign1.lisp (ffi-module): new slots INIT-ONCE and INIT-ALWAYS
	(*init-once*, *init-always*): new symbol macros
	(finalize-coutput-file): write their contents into initfunction[12]
	(C-INIT-ONCE, C-INIT-ALWAYS): new public macros
	(do-c-init-once, do-c-init-always): new aux functions

2004-10-31  Bruno Haible  <bruno@clisp.org>

	Portability to BeOS.
	* m4/select.m4 (CL_SELECT): Fix detection test for BeOS, where fd_set
	is defined in <sys/socket.h>, not <sys/time.h>.

2004-10-30  Bruno Haible  <bruno@clisp.org>

	A third way of reading input.
	* lispbibl.d (perseverance_t): New type.
	(read_byte_array, write_byte_array): Take a perseverance argument
	instead of a no_hang argument.
	* unix.d (read_helper, write_helper): Take a perseverance argument
	instead of a no_hang argument.
	(full_read, full_write): Update.
	(safe_read, safe_write): Pass persev_partial, not no_hang=true.
	(sock_read): Add a perseverance argument.
	(sock_write): Take a perseverance argument instead of a no_hang
	argument.
	* win32.d (read_helper, write_helper): Take a perseverance argument
	instead of a no_hang argument. Change type of nbyte argument.
	(full_read, full_write): Update.
	(safe_read, safe_write): Pass persev_partial, not no_hang=true.
	(sock_read): Add a perseverance argument.
	(sock_write): Take a perseverance argument instead of a no_hang
	argument.
	* unixaux.d (read_helper): Take a perseverance argument instead of a
	no_hang argument. Bug fixes: Handle EWOULDBLOCK like EAGAIN. Don't
	forget to call END_NO_BLOCK in case of an error.
	(write_helper): Take a perseverance argument instead of a no_hang
	argument. Bug fixes: Handle EWOULDBLOCK like EAGAIN. Don't cast a
	negative int to a size_t.
	(sock_read): Add a perseverance argument.
	(sock_write): Take a perseverance argument instead of a no_hang
	argument.
	* win32aux.d (read_helper_low): Take a perseverance argument instead of
	a no_hang argument. Change type of nbyte argument. When no blocking
	is required, call GetOverlappedResult with wait=false. Continue the
	loop when limited_nbyte == MAX_IO.
	(full_read_params): Replace no_hang with perseverance. Change type of
	nbyte field.
	(do_read_helper): Update.
	(read_helper): Take a perseverance argument instead of a no_hang
	argument. Change type of nbyte argument.
	(write_helper): Take a perseverance argument instead of a no_hang
	argument. Change type of nbyte argument. When no blocking is required,
	call GetOverlappedResult with wait=false, instead of skipping it.
	Continue the loop when limited_nbyte == MAX_IO.
	(lowlevel_sock_read): Add a perseverance argument. Change type of nbyte
	argument. Continue the loop when limited_nbyte == MAX_IO.
	(sock_read_params): Add perseverance. Change type of nbyte field.
	(do_sock_read): Update.
	(sock_read): Add a perseverance argument. Change type of nbyte
	argument.
	(lowlevel_sock_write): Take a perseverance argument instead of a
	no_hang argument. Change type of nbyte argument. Continue the loop when
	limited_nbyte == MAX_IO.
	(sock_write_params): Replace no_hang with perseverance. Change type of
	nbyte field.
	(do_sock_write): Update.
	(sock_write): Take a perseverance argument instead of a no_hang
	argument. Change type of nbyte argument.
	* stream.d (rd_by_array_Pseudofun, wr_by_array_Pseudofun): Take a
	perseverance argument instead of a no_hang argument.
	(rd_by_array_error): Update.
	(rd_by_array_dummy): Update. Implement persev_partial too.
	(wr_by_array_error): Update.
	(wr_by_array_dummy): Update.
	(read_byte_array): Update. Pass a 6th argument to
	GRAY:STREAM-READ-BYTE-SEQUENCE.
	(write_byte_array): Update. Pass a 6th argument to
	GRAY:STREAM-WRITE-BYTE-SEQUENCE.
	(rd_by_array_synonym, wr_by_array_synonym): Update.
	(wr_by_array_broad): Update.
	(rd_by_array_concat): Update.
	(wr_by_array_twoway): Update.
	(rd_by_array_twoway): Update.
	(rd_by_array_echo): Update.
	(struct strm_unbuffered_extrafields_t): Change low_read_array,
	low_write_array methods to take a perseverance argument instead of a
	no_hang argument.
	(low_read_array_unbuffered_handle): Update.
	(rd_by_aux_iax_unbuffered, rd_by_array_iau8_unbuffered): Update.
	(rd_ch_array_unbuffered): Update.
	(low_write_array_unbuffered_handle): Update.
	(wr_by_aux_ia_unbuffered, wr_by_array_iau8_unbuffered): Update.
	(wr_ch_unbuffered_unix, wr_ch_array_unbuffered_unix): Update.
	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac): Update.
	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos): Update.
	(oconv_unshift_output_unbuffered_): Update.
	(struct strm_buffered_extrafields_t): Change low_fill method to take
	a perseverance argument instead of a no_hang argument.
	(low_fill_buffered_handle): Update. When a byte has already been read,
	use persev_immediate also if no_hang=false.
	(buffered_nextbyte): Take a restricted perseverance argument instead of
	a no_hang argument.
	(buffered_writebyte, position_file_buffered): Update.
	(read_byte_array_buffered, write_byte_array_buffered): Take a
	perseverance argument instead of a no_hang argument.
	(rd_ch_buffered, listen_char_buffered, rd_ch_array_buffered): Update.
	(wr_ch_buffered_unix, wr_ch_array_buffered_unix): Update.
	(wr_ch_buffered_mac, wr_ch_array_buffered_mac): Update.
	(wr_ch_buffered_dos, wr_ch_array_buffered_dos): Update.
	(oconv_unshift_output_buffered_): Update.
	(position_file_i_buffered, rd_by_aux_iax_buffered)
	(rd_by_aux_ibx_buffered, rd_by_aux_icx_buffered, rd_by_iau8_buffered)
	(rd_by_array_iau8_buffered, listen_byte_ia8_buffered): Update.
	(wr_by_aux_ia_buffered, WRITE_LAST_BYTE, wr_by_aux_ib_buffered)
	(wr_by_aux_ic_buffered, wr_by_array_iau8_buffered): Update.
	(logical_position_file_end): Update.
	(make_file_stream): Update.
	(low_write_array_unbuffered_pipe): Update.
	(low_read_unbuffered_socket, low_listen_unbuffered_socket): Update.
	(low_read_array_unbuffered_socket): Update.
	(low_write_unbuffered_socket): Update.
	(low_write_array_unbuffered_socket): Update. Fix the safety check.
	(SYS::READ-N-BYTES, SYS::WRITE-N-BYTES): Update.
	(low_fill_buffered_socket): Take a perseverance argument instead of a
	no_hang argument.
	(low_flush_buffered_socket): Update.
	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT): Update.
	* sequence.d (READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Add
	:interactive argument.
	* genclisph.d (main): Emit perseverance_t. Emit include of sys/types.h.
	Fix declations of read_helper, write_helper to be consistent with those
	in unix.d. Update declarations of read_byte_array, write_byte_array.
	* gray.lisp (stream-read-byte-sequence): Add interactive argument.
	(stream-write-byte-sequence): Likewise.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (defstruct): Simplify directslotlist iteration.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (ds-initfunction-fetcher): New function.
	(defstruct): Use it.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	Remove redundant data from a defstruct-description.
	* io.d (structure_reader): Expect a vector of size = 4.
	* defstruct.lisp (find-structure-slot-initfunction): New function.
	(defstruct): Use it to recover the initfunctions, not svref on the
	defstruct-description. Don't put the initfunctions into the
	defstruct-description.

2004-11-01  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check for select() with CL_SELECT;
	check for poll() with CL_POLL instead of AC_CHECK_FUNCS()

2004-10-31  Bruno Haible  <bruno@clisp.org>

	Portability to BeOS.
	* configure.in: Add test for getsockopt.
	* stream.d (sock_opt_bool): Define also when only SO_DEBUG exists.
	When getsockopt doesn't exist, push no values.
	(sock_opt_int, sock_opt_time): When getsockopt doesn't exist, push no
	values.
	(SOCKET-OPTIONS): Likewise. Check against stack overflow.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	Portability to FreeBSD 4.0.
	* foreign.d (open_library): Handle FreeBSD as well. Improved error
	messages.
	(libc_handle) [UNIX_FREEBSD]: New variable.
	(find_name): On UNIX_FREEBSD, emulate RTLD_DEFAULT.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* init.lisp (load): Don't "return-from load" because defun doesn't
	establish a block when init.lisp is loaded interpreted.

2004-10-31  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_symbol_values): Initialize
	*disassemble-use-live-process* with support for FreeBSD.
	* disassem.lisp (*disassemble-use-live-process*): Remove variable.

2004-10-30  Bruno Haible  <bruno@clisp.org>

	* stream.d (SYSCALL): Use the first argument, not the variable that
	happens to be called 'result'.

2004-10-30  Bruno Haible  <bruno@clisp.org>

	Prefer poll() over select() when both exist and poll() is not worse.
	* m4/select.m4 (CL_SELECT): Test whether select() works on regular
	files. Don't test for poll here conditionally.
	* m4/poll.m4: New file.
	* configure.in: Invoke CL_POLL.
	* unixconf.h.in: Regenerated.
	* unix.d (poll): Comment out declaration.
	* stream.d (listen_handle): Use poll() when available and is not
	worse on files than select().
	(rd_ch_keyboard): Use poll() when available.

2004-10-30  Bruno Haible  <bruno@clisp.org>

	* unixaux.d (select): Fix wrong argument order passed to poll().

2004-10-30  Bruno Haible  <bruno@clisp.org>

	* stream.d (listen_handle, rd_ch_keyboard)
	(low_listen_unbuffered_socket): Rename local variable handle_menge
	to handle_set.

2004-10-29  Bruno Haible  <bruno@clisp.org>

	Allow handlers to override outer handlers.
	* error.d (SIGNAL): Establish a catch frame around invoke_handlers()
	invocation.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* inspect.lisp (inspect-backend@structure-object): Protect against
	unbound slots. (Can occur in objects created through make-instance.)

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (shared-initialize-<structure-class>): Don't use
	the superclass' slots unmodified, since the initform may be different
	in the class being defined than in the superclass.
	* defstruct.lisp (defstruct): Create direct-slot-definitions also for
	the slot descriptions in the :include option. Create the
	direct-slot-definitions with the right initff. Reverse the list of
	direct-slot-definitions finally.

2004-10-31  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (list-to-ht): use a heuristic to decide whether
	HASH-TABLEs are better than LISTs in a particular case
	(sys::member1): remove
	(sys::member2): replaced with MEMBER? which does not cons

2004-10-30  Sam Steingold  <sds@gnu.org>

	fix bug#1056862: socket:socket-status modifies stream
	* stream.d (listen_char_unbuffered): when ignore_next_LF is set,
	discard NL from buf

2004-10-29  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop): since RESULTS can contain forms,
	search the alist with :TEST #'EQUAL

2004-10-29  Sam Steingold  <sds@gnu.org>

	use HASH-TABLEs when possible to speed-up SET functions
	* defs1.lisp (list-to-ht): new function
	(union, nunion, intersection, nintersection, set-difference)
	(nset-difference, subsetp): use it

2004-10-29  Bruno Haible  <bruno@clisp.org>

	fix bug#1027441: run-time broken when it does not fit in 32bit
	* aridecl.d (wbitc): New macro.
	* intelem.d (UQ_to_I): Use it instead of bitc.

2004-10-29  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (sys::member1): do not call IDENTITY

2004-10-29  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop): check that the accumulation variables
	are re-used compatibly, as described in
	<http://www.lisp.org/HyperSpec/Body/sec_6-1-3.html>;
	give a better message for ambiguous results

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (ds-arg-default): Handle the case of a slot
	without initializer.
	(defstruct): Likewise. Set the initff values of the inherited slots.

2004-10-28  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out1): handle instances

2004-10-28  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (SBCL_VERSION, SBCL_SOURCE_FILE, SBCL_SOURCE_URL):
	New variables.
	(check-sbcl): New target.

2004-10-27  Bruno Haible  <bruno@clisp.org>

	* reploop.lisp (break-loop): Change Ctrl-D's behaviour when the
	CONTINUE restart comes from ASSERT with no places.

2004-10-26  Bruno Haible  <bruno@clisp.org>

	Fix two long-standing bugs whose combination leads to curious effects.
	* eval.d (interpret_bytecode_): Respect the inhibition flag in the
	FUNCALL&SKIP&RETGF instruction.
	* clos-genfun3.lisp (%call-next-method): Ensure the dispatch function
	is a real one before calling twice. Add safety check.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (define-structure-class): Remove redundant code.
	* defstruct.lisp (ds-make-constructor-body, ds-make-boa-constructor)
	(ds-make-keyword-constructor, ds-make-readers, ds-make-writers)
	(defstruct): For type = T, all slots are "real"; don't call
	ds-real-slot-p in this case.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp: Simplify package prefixes.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (ds-typep, ds-typep-expansion, ds-canonicalize-type):
	Drop the case type = T.
	* compiler.lisp (c-TYPEP): For structure classes, emit a call to
	%STRUCTURE-TYPE-P.

2004-10-27  Sam Steingold  <sds@gnu.org>

	* clisp.spec (modules): add i18n and zlib

2004-10-27  Sam Steingold  <sds@gnu.org>

	* control.d (MULTIPLE-VALUE-SETQ): fix G++ compilation

2004-10-27  Bruno Haible  <bruno@clisp.org>

	* spvw_debug.d (nobject_out1): Use %lx to print addresses.
	* spvw.d (fehler_code_alignment, init_memory): Likewise.
	* spvw_fault.d (handle_fault, xmprotect): Likewise.
	* spvw_garcol.d (gc_mark_stack): Likewise.
	* spvw_mmap.d (mmap_zeromap, mmap_prepare): Likewise.
	* spvw_multimap.d (msync_mmap_intervals, fdmap, idmap): Likewise.
	* spvw_sigsegv.d (sigsegv_handler_failed): Likewise.
	* avl.d (out): Likewise.

2004-10-27  Sam Steingold  <sds@gnu.org>

	* makemake.in: the correct redirection order is ">/dev/null 2>&1"

2004-10-27  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (DOCBOOK_XML_DOWNLOAD): New variable.
	(update-docbook-utils): New target.
	(all): Depend on it.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* format.lisp: Remove obsolete removal of defstruct-description.
	* compiler.lisp: Likewise.
	* loop.lisp: Likewise.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	Stop creating a defstruct-description property for structure classes.
	* defstruct.lisp (defstruct): When creating a structure class, remove
	the DEFSTRUCT-DESCRIPTION property.
	* clos-class3.lisp: Likewise for structure-object itself.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (find-structure-class-slot-initfunction): New
	function.
	(defstruct): Change the initfunctionform to refer to the class instead
	of the defstruct-description, if defining a class.

2004-10-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (cflags.h): do not touch cflags.h when the changes
	to Makefile do not modify it.
	Cost: maybe a few extra "echo"s on each make
	Benefit: lispinit.mem is not re-dumped when we add something to MODULES

2004-10-25  Sam Steingold  <sds@gnu.org>

	* modules/i18n/i18n.lisp (locale-conv): new defstruct
	* modules/i18n/gettext.c (locale-conv): new function

2004-10-18  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-WITHOUT-PACKAGE-LOCK): Call macroexpand-1 instead
	of macroexpand.

2004-10-17  Bruno Haible  <bruno@clisp.org>

	* defs1.lisp (with-no-package-lock-internal, without-package-lock):
	Use *system-package-list* if the non-evaluated package list is empty,
	not when the evaluated package list is empty. For consistency with
	c-WITHOUT-PACKAGE-LOCK.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (defstruct): Use gensym'ed variable to hold the
	initfunctions of all non-constant inherited slots, not just of those
	for which a new initform is declared.

2004-10-24  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (LANGUAGE-INFORMATION): new function

2004-10-23  Sam Steingold  <sds@gnu.org>

	new module I18N for user program internationalization
	* modules/i18n: new directory
	* subr.d, constsym.d (i18n_gettext, i18n_ngettext, i18n_textdomain)
	(i18n_set_textdomain, i18n_textdomaindir, i18n_set_textdomaindir):
	remove
	* constsym.d (Klc_messages, Klc_ctype, Klc_time, Klc_collate)
	(Klc_monetary): remove
	* constobj.d (type_category): remove
	* genclisph.d (R_minusp, check_pos_integer, pathname_to_OSdir)
	(OSdir_to_pathname): export
	include <libintl.h>
	* i18n.d: remove "General internationalization, for Lisp programs too"
	* international.d: remove "Interface to GNU gettext"

2004-10-22  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (write-helper, read-helper):
	fix argument lists (they were swapped)

2004-10-22  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (new-fundef): fix the package name case check

2004-10-22  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-STREAM): really duplicate the handle, as per the spec
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2004-10-15  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (defstruct): Take the slots list and instance size
	from the included class if possible.

2004-10-13  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2b.lisp
	(compute-discriminating-function-<generic-function>):
	Rename from compute-discriminating-function-<standard-generic-function>.
	* clos-genfun4.lisp (compute-discriminating-function): Generalize
	method from <standard-generic-function> to <generic-function>.

2004-10-13  Bruno Haible  <bruno@clisp.org>

	Reorganize some CLOS code.
	* clos-genfun1.lisp (|#'compute-discriminating-function| etc.)
	(safe-gf-*): Move to clos-genfun2a.lisp.
	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
	Move to clos-genfun2a.lisp.
	* clos-genfun2a.lisp, clos-genfun2b.lisp: New files, from
	clos-genfun2.lisp.
	* clos-genfun2.lisp: Remove file.
	* clos.lisp: Load clos-genfun2{a,b}.lisp instead of clos-genfun2.lisp.
	* makemake.in (LPARTS): Add clos-genfun2{a,b}, remove clos-genfun2.
	* po/Makefile.devel (LISPSOURCES): Likewise.

2004-10-13  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-applicable-methods-<generic-function>):
	Rename from compute-applicable-methods-<standard-generic-function>.
	(compute-applicable-methods-using-classes-<generic-function>):
	Rename from
	compute-applicable-methods-using-classes-<standard-generic-function>.
	* clos-genfun4.lisp (compute-applicable-methods)
	(compute-applicable-methods-using-classes): Generalize the method from
	<standard-generic-function> to <generic-function>.

2004-10-12  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (compute-effective-method-<generic-function>):
	Rename from compute-effective-method-<standard-generic-function>.
	* clos-genfun4.lisp (compute-effective-method): Generalize method from
	<standard-generic-function> to <generic-function>.

2004-10-16  Bruno Haible  <bruno@clisp.org>

	Mark functions that are part of the .fas file ABI.

2004-10-20  Sam Steingold  <sds@gnu.org>

	* _distmakefile (all): also make the clisp driver

2004-10-19  Sam Steingold  <sds@gnu.org>

	FILL-STREAM now indents S-expressions too
	* fill-out.lisp (*fill-indent-sexp*): new user variable
	(fill-stream): new slot SEXP-INDENT,
	changed INDENT-VAR :INITARG to :TEXT-INDENT
	(fill-stream-sexp-indent): new function
	(fill-stream-flush-buffer): respect SEXP-INDENT
	(stream-write-char-sequence): enlarge buffer once
	(stream-start-s-expression): return the new binding
	for *PRINT-RIGHT-MARGIN*
	(with-fill-stream): update for the FILL-STREAM slot change
	* describe.lisp (describe): ditto
	* reploop.lisp (print-error, break-loop): ditto
	* condition.lisp (pretty-print-condition): rename INDENT to TEXT-INDENT
	(warn, maybe-continue): update the call to PRETTY-PRINT-CONDITION
	* format.lisp (format-s-expression, formatter-main-1): bind
	*PRINT-RIGHT-MARGIN* to the return value of STREAM-START-S-EXPRESSION

2004-10-15  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp: Remove names and directslotlist from the defstruct-
	description.
	(ds-typep, ds-typep-expansion, ds-canonicalize-type): Update.
	(defstruct): Cons up a new names list only when type = T. Take the
	names list from the class, not from the defstruct-description.
	* io.d (structure_reader): Update.
	* clos-class3.lisp (structure-object): Update.

2004-10-12  Bruno Haible  <bruno@clisp.org>

	Respect user-defined methods on generic-function-lambda-list.
	* clos-genfun1.lisp (std-gf-undeterminedp): New function.
	(generic-function-undeterminedp): New preliminary function.
	(|#'generic-function-undeterminedp|): New variable.
	(safe-gf-undeterminedp): New function.
	* clos-genfun2.lisp (std-add-method, std-find-method, finalize-fast-gf)
	(gf-never-called-p, compute-dispatch)
	(compute-applicable-methods-effective-method)
	(compute-applicable-methods-<standard-generic-function>)
	(compute-applicable-methods-using-classes-<standard-generic-function>)
	(compute-applicable-methods-effective-method-for-set)
	(compute-applicable-methods-for-set): Call safe-gf-undeterminedp
	instead of std-gf-signature.
	(shared-initialize-<standard-generic-function>): Call
	safe-gf-undeterminedp to protect safe-gf-signature call.
	* clos-method2.lisp (analyze-method-description): Likewise.
	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
	(no-primary-method): Likewise.
	(generic-function-undeterminedp): New generic function.
	* describe.lisp (describe-object@generic-function): Call
	safe-gf-undeterminedp instead of std-gf-signature.

	Respect user-defined methods on generic-function-declarations.
	* clos-genfun1.lisp (generic-function-declarations): New preliminary
	function.
	(|#'generic-function-declarations|): New variable.
	(safe-gf-declspecs): New function.
	* clos-genfun2.lisp
	(compute-discriminating-function-<standard-generic-function>):
	Call safe-gf-declspecs instead of std-gf-declspecs.
	* clos-genfun4.lisp (generic-function-declarations): Redefine smoothly.
	Initialize |#'generic-function-declarations|.

	Respect user-defined methods on
	generic-function-argument-precedence-order.
	* clos-genfun1.lisp (generic-function-argorder): New preliminary
	function.
	(|#'generic-function-argorder|): New variable.
	(safe-gf-argorder): New function.
	* clos-genfun2.lisp
	(generic-function-argument-precedence-order-to-argorder): New
	function, extracted from check-gf-lambdalist+argorder.
	(check-gf-lambdalist+argorder): Use it.
	(compute-dispatch, compute-applicable-methods)
	(compute-applicable-methods-using-classes-<standard-generic-function>)
	(compute-applicable-methods-for-set): Call safe-gf-argorder instead of
	std-gf-argorder.
	* clos-genfun4.lisp (generic-function-argorder): New generic function.
	Initialize |#'generic-function-argorder|.

	Respect user-defined methods on generic-function-method-combination.
	* clos-genfun1.lisp (generic-function-method-combination): New
	preliminary function.
	(|#'generic-function-method-combination|): New variable.
	(safe-gf-method-combination): New function.
	* clos-methcomb2.lisp (call-method-duplicates-error): Call
	safe-gf-method-combination instead of std-gf-method-combination.
	* clos-genfun2.lisp (check-method-qualifiers)
	(invalid-method-qualifiers-error)
	(shared-initialize-<standard-generic-function>)
	(compute-applicable-methods-effective-method)
	(compute-applicable-methods-effective-method-for-set): Call
	safe-gf-method-combination instead of std-gf-method-combination.
	* clos-genfun4.lisp (no-next-method): Likewise.
	(generic-function-method-combination): Redefine smoothly. Initialize
	|#'generic-function-method-combination|.
	* describe.lisp (describe-object@generic-function): Call
	generic-function-method-combination instead of
	std-gf-method-combination.

	Respect user-defined methods on generic-function-lambda-list.
	* clos-genfun1.lisp (generic-function-signature): New preliminary
	function.
	(|#'generic-function-signature|): New variable.
	(safe-gf-signature): New function.
	* clos-methcomb2.lisp (effective-method-code-bricks)
	(build-effective-method-function-form): Call safe-gf-signature instead
	of std-gf-signature.
	* clos-genfun2.lisp (generic-function-lambda-list-to-signature): New
	function, extracted from check-gf-lambdalist+argorder.
	(check-gf-lambdalist+argorder): Use it.
	(check-signature-congruence)
	(shared-initialize-<standard-generic-function>, std-find-method)
	(finalize-fast-gf, gf-never-called-p, compute-dispatch)
	(compute-applicable-methods-effective-method)
	(compute-applicable-methods-<standard-generic-function>)
	(compute-applicable-methods-using-classes-<standard-generic-function>)
	(compute-applicable-methods-effective-method-for-set)
	(compute-applicable-methods-for-set): Call safe-gf-signature
	instead of std-gf-signature.
	* clos-method2.lisp (analyze-method-description): Likewise.
	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
	(no-next-method): Likewise.
	(generic-function-signature): New generic function. Initialize
	|#'generic-function-signature|.

2004-10-11  Bruno Haible  <bruno@clisp.org>

	* clos-genfun4.lisp (generic-function-lambda-list)
	(generic-function-argument-precedence-order): Signal an error if
	the lambda-list is not yet initialized.

2004-10-11  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe-object@generic-function, arglist): For
	generic functions, use the lambda-list stored in it, instead of a
	list with artificially constructed variable names.

2004-10-11  Bruno Haible  <bruno@clisp.org>

	Respect user-defined methods on generic-function-method-class.
	* clos-genfun1.lisp (generic-function-method-class): New preliminary
	function.
	(|#'generic-function-method-class|): New variable.
	(safe-gf-default-method-class): New function.
	* clos-methcomb2.lisp (effective-method-code-bricks): Call
	safe-gf-default-method-class instead of std-gf-default-method-class.
	* clos-genfun3.lisp (do-defmethod): Likewise.
	* clos-genfun4.lisp (generic-function-method-class): Redefine smoothly.
	Initialize |#'generic-function-method-class|.

	Respect user-defined methods on generic-function-methods.
	* clos-genfun1.lisp (generic-function-methods): New preliminary
	function.
	(|#'generic-function-methods|): New variable.
	(safe-gf-methods): New function.
	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>)
	(std-add-method, std-remove-method, std-find-method)
	(reinitialize-instance-<generic-function>, compute-dispatch)
	(compute-applicable-methods-<standard-generic-function>)
	(compute-applicable-methods-using-classes-<standard-generic-function>)
	(compute-applicable-methods-for-set): Call safe-gf-methods instead
	of std-gf-methods.
	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
	(no-primary-method): Likewise.
	(generic-function-methods): Redefine smoothly. Initialize
	|#'generic-function-methods|.
	* clos-class5.lisp (valid-make-instance-keywords)
	(valid-reinitialize-instance-keywords)
	(valid-update-instance-for-redefined-class-keywords)
	(valid-update-instance-for-different-class-keywords): Call
	generic-function-methods instead of std-gf-methods.
	* describe.lisp (describe-object@generic-function): Likewise.

2004-10-19  Sam Steingold  <sds@gnu.org>

	* init.lisp (eval-loaded-form-low): do not try to inline it:
	when condition.lisp is compiled, this function is not necessarily
	already compiled due to our bootstrapping process,
	so it will not be inlined there (in eval-loaded-form),
	therefore the "test" target (self-recompilation) will fail

2004-10-19  Sam Steingold  <sds@gnu.org>

	* clos-genfun3.lisp (defmethod): when the function is being
	TRACEd, UNTRACE it to avoid an error
	(defgeneric): use UNTRACE1, not UNTRACE

2004-10-14  Bruno Haible  <bruno@clisp.org>

	Access the structure type's keyword-constructor from the class.
	* io.