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-16  Sam Steingold  <sds@gnu.org>

	* version.sh: clisp 2.42 release

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): extracted 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): implemented
	(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): added 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, src/asmi386.h, src/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: updated 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>

	fixed 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>

	fixed 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): extracted 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>

	fixed 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
	Thanks to 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): added
	(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): added 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): fixed 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>

	fixed 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]:
	fixed 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): implemented
	(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]: added

2007-01-10  Sam Steingold  <sds@gnu.org>

	* encoding.d (fehler_buffer_parity): renamed 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>

	fixed 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>

	fixed 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>

	fixed bug #[ 1564818 ]: CRLF handling does not work for UNICODE-16
	* stream.d (strm_channel_extrafields_t): moved ignore_next_LF from ...
	(strm_unbuffered_extrafields_t): ... here
	(ChannelStream_ignore_next_LF): added
	(UnbufferedStream_ignore_next_LF): removed
	(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): removed unused objects
	(modern_user_package): added
	* 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): renamed from hashcode_tree
	(hashcode_tree): use it
	(gcinvariant_hashcode_tree_p_rec): renamed 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): simplified

2006-12-29  Sam Steingold  <sds@podval.org>

	discard macro lambda list when (OPTIMIZE SPACE) is 3
	* init.lisp (sys::maybe-arglist): added
	(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>

	fixed bug #[ 948868 ]: hashcode[34]_cons weakness
	* hashtabl.d (hashcode_tree, gcinvariant_hashcode_tree_p): added
	(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): removed
	(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
	* src/constsym.d (macro_lambda_list): added
	* src/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): added slot macro_lambda_list
	* record.d (MAKE-MACRO): accept second argument
	(check_macro): new function
	(MACRO-EXPANDER): use it
	(MACRO-LAMBDA-LIST): added
	* subr.d (make_macro): updated
	(macro_lambda_list): added

2006-12-27  Sam Steingold  <sds@podval.org>

	fixed 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>

	fixed bug [ 1623179 ]:
	broken (setf (stream-external-format stream direction) enc)
	* places.lisp (stream-external-format): fixed 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 thhat the spacing is preserved
	* constsym.d (stream_start_s_expression, stream_end_s_expression): added
	* 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>

	fixed bug #[ 1618724 ]: broken compiler warning for invalid
	optimize quality
	* compiler.lisp (parse-optimize-quality): fixed the c-warn call

2006-12-18  Sam Steingold  <sds@podval.org>

	fixed 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): added
	* 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>

	fixed 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>

	fixed 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): implemented
	* 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>

	fixed bug #[ 1607666 ]: LISTEN does not call STREAM-LISTEN
	* io.d (LISTEN): call STREAM-LISTEN
	* constsym.d (STREAM-LISTEN): added

2006-11-28  Sam Steingold  <sds@gnu.org>

	fixed 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>

	fixed 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): renamed 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>

	fixed bug #[ 1436987 ]: atanh branch cut strangeness
	* comptran.d (R_R_atanh_R_R): fixed branch cuts logic

2006-11-20  Sam Steingold  <sds@podval.org>

	fixed 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>

	fixed 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>

	fixed bug #[ 1483768 ]: automatic pretty-printing of symbols in conses
	fixed bug #[ 1598053 ]: PPRINT dispatch not honored for nested objects
	* io.d (pretty_print_call): removed
	(pr_enter_1): call pr_xxx directly
	(prin_object_ki): abstracted from prin_object and pprin_object
	(prin_object, pprin_object): use prin_object_ki
	(prin_object_dispatch_low): renamed from prin_object_dispatch
	(prin_object_dispatch_pretty): converted 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: removed unused file

2006-11-13  Sam Steingold  <sds@gnu.org>

	fixed 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>

	fixed 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): added
	(pr_hex6_obj, pr_other_obj): removed
	(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>

	fixed 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>

	fixed 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): extracted 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): added
	(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): fixed TEXT call
	(yes-or-no-p-timeout): added
	* 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: fixed 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): removed
	(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): added 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>

	fixed 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, src/m4/libtool.m4: updated
	* src/build-aux/config.dynamic: replaced with ...
	* src/build-aux/ltmain.sh: added

2006-10-11  Sam Steingold  <sds@podval.org>

	fixed 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): fixed 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): added
	(problem-list, problem-slots): removed
	(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): added
	(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): extracted 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): extracted 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): renamed 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): extracted 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): extracted 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): added

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>

	fixed 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>

	fixed 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>

	fixed 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): added *BSD macros

2006-09-10  Sam Steingold  <sds@podval.org>

	fixed 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): added
	(RAWSOCK:IFADDRS): implemented
	* modules/rawsock/sock.lisp (ifaddrs): added 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; fixed socket calls (:AF_UNIX -> :UNIX, :SOCK_STREAM -> :STREAM)

2006-09-07  Sam Steingold  <sds@podval.org>

	* foreign.d (FOREIGN-LIBRARY-FUNCTION): fixed 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): added 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): added
	* describe.lisp (describe-object@FUNCTION): use
	DESCRIBE-ARGLIST and DESCRIBE-DOCUMENTATION
	(arglist): use SYS::CLOSURE-LAMBDA-LIST
	(describe-arglist, describe-documentation): added
	(describe-signature): removed
	* 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): added 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): implemented
	* spvw_debug.d (TheCclosure_, Cclosure_length_): added
	* subr.d (make_closure, lookup_foreign_function)
	(foreign_library_function): updated
	(closure_documentation, closure_set_documentation)
	(closure_lambda_list): added

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>

	fixed 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: added

2006-08-24  Sam Steingold  <sds@podval.org>

	* clhs.lisp (*browsers*): added :FIREFOX, :FIREFOX-WINDOW, :FIREFOX-TAB,
	:NETSCAPE-TAB, :MOZILLA-TAB; renamed :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>

	fixed 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): added 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>

	fixed 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>

	fixed 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>

	fixed 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>

	fixed 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://permalink.gmane.org/gmane.lisp.cl-debian/1493

2006-07-14  Peter Van Eynde  <pvaneynd@debian.org>
	Sam Steingold  <sds@podval.org>

	fixed 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): added 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: removed
	* malloc/getpagesize.h, malloc/gmalloc.c: updated 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): renamed "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): fixed 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>

	fixed 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): updated prototype
	(stringarg, test_vector_limits): export to clisp.h
	* modules/rawsock/rawsock.c (parse_buffer_arg, check_iovec_arg):
	use test_vector_limits()
	updated 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>

	fixed 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): removed, TOPDIR is used 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>

	fixed 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>

	fixed 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>

	fixed bug #[ 1497226 ]: clisp/src/m4/x11.m4 fails to detect x11 on FC5
	* m4/x11.m4: removed
	* 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): fixed :value declaration
	(DEF-CALL-OUT): fixed 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: added 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): removed, gnil not found in pari CVS

2006-05-29  Sam Steingold  <sds@podval.org>

	* modules/syscalls/configure.in: removed CL_LSTAT

2006-05-23  Bruno Haible  <bruno@clisp.org>

	* unix.d (gettimeofday): Remove workaround for Cygwin bug. It was
	fixed 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): fixed last fix

2006-05-18  Sam Steingold  <sds@podval.org>

	* stream.d (TERMINAL-RAW) [!KEYBOARD]: fixed 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 fixed 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]: renamed 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]: added
	Suggested by Frank Buss <fb@frank-buss.de>

2006-04-26  Sam Steingold  <sds@gnu.org>

	* modules/pcre/configure.in: fixed 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): Renamed 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 feature request #[ 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>

	fixed 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): fixed 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>

	fixed 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>

	fixed 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>

	fixed 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): changed API, but I argue it's not ABI
	* foreign1.lisp (argvector-to-signature): removed

2006-01-26  Sam Steingold  <sds@gnu.org>

	* savemem.lisp (saveinitmem): accept :DOCUMENTATION
	* constsym.d (image_doc): added
	* 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): added

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*): added
	* 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>

	fixed 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): added 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*): added
	* 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): extracted 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: removed filesize
	* utils/filesize.c: removed

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>

	fixed bug #[ 1399709 ]: cannot append to a file
	the 2005-12-13 patch that fixed 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>

	fixed bug #[ 1402338 ]: socket-status ignores microseconds in timeout
	* stream.d (sec_usec): fixed 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>

	fixed 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): updated the prototype
	* makemake.in (UTILS): added 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: removed 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: added
	* makemake.in: benchmarks & --enable-maintainer-mode require GNU make

2005-12-21  Dr. Werner Fink  <werner@suse.de>

	fixed 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): implemented
	* pathname.d (check_file_re_open): use with_file_id & &find_open_file
	* stream.d (strm_channel_extrafields_t): added fid field
	(ChannelStream_file_id): new macro
	(find_open_file): implemented
	(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): renamed 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):
	added 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): added
	(open_file): use check_file_re_open() to ensure that we are not
	opening a file twice
	* constsym.d (file_error): added

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): fixed

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): fixed 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>

	fixed 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): added 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): extracted 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): removed 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: fixed 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): fixed for "-1" in table_base64

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

	* defs1.lisp (encode-universal-time): reverted part of the 2005-11-30
	patch: no need to adjust the return value of DEFAULT-TIME-ZONE
	* time.d (seconds_west): fixed 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>

	Fixed 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): added
	(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): added
	(init_encodings_1): unit BASE64
	* constsym.d (BASE64): added
	* clhs.lisp (*base64-table*, base64-encode, *table-base64*)
	(base64-decode): removed
	(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): added 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): removed
	(c-const-value): added

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): implemented
	* 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): added
	(make-condition): use it to enable TYPE arguments that do not
	name a specific class
	* utils/clispload.lsp (*expected-failures*): removed
	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): added 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): added
	(documentation@symbol/clhs): call ENSURE-CLHS-MAP only for symbols
	in the COMMON-LISP package
	(documentation@symbol/impnotes, documentation@package/impnotes): added
	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: added impnotes doc for package BDB
	* modules/dirkey/dirkey1.lisp: added impnotes doc for package LDAP
	* modules/fastcgi/fastcgi.lisp: added impnotes doc for package FASTCGI
	* modules/matlab/matlab.lisp: added impnotes doc for package MATLAB
	* modules/netica/netica.lisp: added impnotes doc for package NETICA
	* modules/oracle/oracle.lisp: added impnotes doc for package ORACLE
	* modules/pari/pari.lisp: added impnotes doc for package PARI
	* modules/pcre/pcre.lisp: added impnotes doc for package PCRE
	* modules/postgresql/postgresql.lisp: added impnotes doc for package SQL
	* modules/rawsock/sock.lisp: added impnotes doc for package RAWSOCK
	* modules/readline/readline.lisp: added impnotes doc for package
	READLINE
	* modules/regexp/regexp.lisp: added impnotes doc for package REGEXP
	* modules/syscalls/posix.lisp: added impnotes doc for package POSIX
	* modules/wildcard/wildcard.lisp: added impnotes doc for package
	WILDCARD
	* modules/zlib/zlib.lisp: added 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): added
	* init.lisp (EXT:NOTSPECIAL): exported

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]: added :DEFAULT browser
	(*clhs-table*): removed
	(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): removed 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): fixed C++ compilation

2005-11-15  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c (check_socket_domain)
	(check_socket_protocol): added 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): fixed handling of (AND ...)

2005-11-14  Sam Steingold  <sds@gnu.org>

	* array.d (fill_initial_element): extracted 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>

	fixed 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): implemented
	* modules/syscalls/posix.lisp (service): new structure
	* beossock.lisp: removed
	* constsym.d, subr.d (socket_service_port): removed
	* init.lisp (socket-service-port): removed; do not load beossock
	* socket.d (socket-service-port): removed
	* makemake.in (LPARTS): removed beossock

2005-11-09  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp (group-info): new structure
	* modules/syscalls/calls.c (group-info): implemented
	(user-info): renamed 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]: fixed 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]: implemented
	(writev) [!HAVE_WRITEV]: implemented
	(SOCKETPAIR) [!HAVE_SOCKETPAIR]: implemented
	(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): added
	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):
	implemented
	* modules/clx/new-clx/clx.lisp (gcontext): added a %timestamp slot
	for the sake of clue/clio

2005-10-22  Sam Steingold  <sds@gnu.org>

	* screen.lisp (*new-window*, read-keyboard-char): removed
	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>

	fixed user-defined HT tests
	* lispbibl.d (hashtable_length): fixed the wrong value
	* hashtabl.d (rehash): fixed user-defined ht-test handling
	(hash_prepare_store): fixed `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): added casts to pacify G++
	(RAWSOCK:GETADDRINFO): fixed 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): fixed a GC-safety bug: hashcode_raw() may
	trigger GC for user-defined hash tables
	* spvw_debug (TheHashtable_) [DEBUG_SPVW]: added

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): fixed typo in the conditionals,
	fixed 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: removed "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, fixed :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): added
	* foreign1.lisp (def-c-const, note-c-const): added
	(ffi-module): added 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): removed
	(getnameinfo, getaddrinfo): export
	(message, addrinfo): added
	(defstruct): import from EXPORTING
	* modules/rawsock/rawsock.c (GETNAMEINFO, GETADDRINFO): implemented
	(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): added
	(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: added 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): updated 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): fixed 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): implemented
	(SET-ACCESS-CONTROL): fixed argument order
	* modules/clx/new-clx/test.tst: added

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): implemented

2005-10-14  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 1310753 ]: Gray streams ==> stack overflow and segfault
	* stream.d (read_char): fixed 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): added

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): removed 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 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): added
	* modules/rawsock/sock.lisp (network): new defstruct

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

	fixed 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): added 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): added
	* 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):
	fixed 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): reworked 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): fixed 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): fixed a GC-safety bug

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

	* misc.d (MODULE-INFO): fixed 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): renamed 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): fixed "name" argument allocation
	(readline-name): fixed :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): fixed 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): updated 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):
	removed prototypes
	(convert_to_foreign): prototype
	* foreign.d (foreign_layout): new structure type
	(data_size, data_alignment, data_splittable): removed 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): updated 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): removed statics
	(walk_foreign_pointers, free_walk_pre, free_walk_post)
	(free_walk_function): accept a pointer to struct walk_foreign
	(free_foreign): updated 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): removed statics
	(walk_lisp_pointers, count_walk_pre, count_walk_post):
	accept a pointer to struct walk_lisp
	(converter_malloc): removed a static
	(convert_to_foreign): accept a converter_malloc_t
	(convert_to_foreign_allocaing, convert_to_foreign_mallocing)
	(convert_to_foreign_nomalloc): removed
	(libc_handle): removed old unused junk

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

	* pathname.d (PARSE-NAMESTRING) [cygwin]: fixed GC-safety bug

2005-10-01  Sam Steingold  <sds@gnu.org>

	GC-safety bug: validate fpointers lazily, not eagerly
	* foreign.d (foreign_address): fixed 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): added
	* 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): fixed last patch:
	add "readline" only when libreadline is actually available

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

	* Makefile.devel (MODULES): added 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): renamed
	from USAGE to avoid a conflict with POSIX
	* modules/clx/new-clx/clx.f (travel_queque): timeout is struct timeval
	(get_timeout): removed
	(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*): removed
	(kintern): do not use it
	(EVENT-COND): removed 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): removed
	(parse_buffer_arg): accept arbitrary vectors
	(BUFFER, RESIZE-BUFFER): removed
	(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): added
	* 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): implemented
	* 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): fixed STACK cleanup
	(RECV, RECVFROM, RECVMSG, SEND, SENDMSG, SENDTO): removed "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): fixed 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): implemented
	* lispbibl.d (c_lisp_pair_t, c_lisp_map_t): added, 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: updated 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): added

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>

	removed 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): removed
	(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):
	added RUN-LVL and ACCOUNTING

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

	* modules/clx/new-clx/configure.in (XGetAtomNames): fixed the test
	use CL_FIND_X instead of AC_PATH_XTRA
	* modules/clx/new-clx/link.sh, modules/clx/new-clx/Makefile.in:
	updated 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): added

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

	* modules/bindings/win32/win32.lisp (GetCurrentThreadId): added
	* 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): fixed 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): removed
	(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: added a GETUTXENT test
	* modules/syscalls/configure.in: removed 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): fixed 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): added
	(emit_define1): removed
	* 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]: fixed :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): removed, 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: added 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): updated calls to fehler_plist_odd()
	* lispbibl.d (fehler_plist_odd): added 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): fixed 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): removed
	(distrib) [cygwin]: fixed 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: Renamed 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: fixed 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): added `da'
	* constsym.d (danish): added
	* init.lisp (danish.lisp) [GETTEXT UNICODE]: load
	* danish.lisp: new file
	* spvw_language.d (language_danish): added
	(current_language_o, init_language): handle it
	(init_language_from): check for Danish
	* makemake.in (LPARTS) [$with_unicode]: added 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): added
	* modules/pari/pari.lisp (pari-putc, pari-puts, pari-flush)
	(pari-err-putc, pari-err-puts, pari-err-flush, pari-err-die): removed

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):
	renamed 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): implemented
	* 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): updated the declaration
	* pathname.d (init_launch_streamarg):
	updated 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): updated call to stream_get_handle()
	(copy_attributes_and_close, copy_file_low):
	updated 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>

	* src/w32shell.c (real_path): fixed 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): implemented
	* constsym.d (NSTRING-INVERTCASE): added
	(char-invertcase, string-invertcase): moved from SYS to EXT
	* subr.d (string-invertcase): accept :START and :END
	(nstring-invertcase): added
	* subrkw.d (string-invertcase, nstring-invertcase): added

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*): added
	(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): implemented 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
	(src/autoconf/aclocal.m4): depend only on CLISP_CONFIGURES

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

	updated 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: updated
	* 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: added
	* m4/regexp.m4: removed
	* 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): fixed 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): fixed 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): removed
	* modules/rawsock/sock.lisp (shutdown): removed

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>

	Fixed win32 bug: when "foo" is a file, (directory "foo/") returned
	non-NIL and this prevented loading ~/.clisprc
	* pathname.d (check_stat_directory): removed
	(copy_pathname_and_add_subdir): extracted 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]: fixed 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): removed 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): removed

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
	updated 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): added
	(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): fixed 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]: fixed curr/test output

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

	* modules/pari/pari.lisp: updated 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): added

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): added 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*): added 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): fixed 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>

	fixed "./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): fixed 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): added 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): fixed 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): added
	* 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"): updated
	for the 2005-05-06 #p"" ==> :DIRECTORY NIL patch

2005-06-21  Sam Steingold  <sds@gnu.org>

	* documentation.lisp ((setf documentation), documentation):
	removed 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): fixed 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): added
	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):
	fixed 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: updated 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.
	* src/m4/alloca.m4: New file, from gnulib.
	* src/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*): removed 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*): added 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): Renamed from pointable. Use
	pointable_address_unchecked.
	(pointable_address_unchecked): New macro.
	(pointable): Renamed 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): fixed 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): removed

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): Renamed from
	NEED_SIGNED_INT_TYPES.

	* stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Renamed 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): updated 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: removed 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): added 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): removed 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): Renamed from posfixnum_to_L. Return an uintV value.
	(negfixnum_to_V): Renamed from negfixnum_to_L. Return an uintV value.
	(negfixnum_abs_V): Renamed from negfixnum_abs_L. Return an uintV value.
	(fixnum_to_V): Renamed 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): Renamed from FN_to_L.
	(FN_V_zerop): Renamed from FN_L_zerop.
	(FN_V_minusp): Renamed 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): Renamed 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): Renamed 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): Renamed 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: updated 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*): added 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):
	added 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]: added /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): added
	* 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>

	fixed EXPECTED-TYPE in function-name errors
	* constobj.d (type_designator_function_name): added
	* 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]: fixed 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): fixed 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]: fixed C++ compilation

2005-05-09  Sam Steingold  <sds@gnu.org>

	* modules/i18n/gettext.c (get_locale_info, DECLARE_RES):
	added 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):
	removed split-sequence
	* modules/clx/mit-clx/split-sequence.lisp: removed

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]: fixed 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): added 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): fixed logic for NIL defaults

2005-05-09  Sam Steingold  <sds@gnu.org>

	* places.lisp (*ansi*): fixed 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): added 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): removed
	(MAKE-PATHNAME): :DIRECTORY defaults to NIL
	(has_directory_wildcards): :DIRECTORY may be NIL
	* constobj.d (directory_default): removed
	* utils/clispload.lsp (*expected-failures*): updated

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): removed
	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): added 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>

	fixed 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): fixed 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): added 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): removed
	(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): renamed from full-check; fixed 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):
	fixed 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):
	fixed the 3rd argument to array_displace_check()
	* modules/berkeley-db/configure.in: check for Berkeley-DB 4.2+
	* modules/postgresql/configure.in: fixed 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]: fixed 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): added 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]: implemented
	using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation
	* modules/syscalls/posix.lisp (STAT-VFS): export always
	added 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): implemented
	* 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): added 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): added 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): fixed 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]: implemented
	* modules/syscalls/calls.c (wfd_to_file_info): renamed 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):
	fixed 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)]: added
	(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): fixed 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): implemented
	* 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): added 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: added (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): added
	(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): added 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): implemented 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): added sql
	* modules/postgresql/sql.lisp: rewrote to export
	higher-level functionality

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

	* modules/matlab/Makefile (DISTRIBFILES): added test.tst

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

	* modules/matlab/wrap.lisp (copy-lisp-to-mxArray):
	renamed from copy-lisp-to-matlab
	(copy-mxArray-to-lisp): renamed 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): fixed 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): implemented
	* 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]: fixed
	SYSCONF arguments

2005-04-01  Sam Steingold  <sds@gnu.org>

	* modules/matlab/matlab.lisp ("MATLAB"): exporting DEFVAR too
	(mx-aref): fixed 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>

	implemented global error handlers
	* eval.d (invoke_handlers): call GLOBAL-HANDLER at the end
	* constsym.d (APPEASE-CERRORS, BATCHMODE-ERRORS, ABORT-ERRORS, LOOP):
	removed
	(APPEASE-CERROR, EXITUNCONDITIONALLY, EXITONERROR, ABORTONERROR)
	(INTERRUPT-CONDITION, SERIOUS-CONDITION, SET-GLOBAL-HANDLER)
	(GLOBAL-HANDLER): added
	* condition.lisp (set-global-handler): new exported function
	(batchmode-errors, abort-errors): removed
	* 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):
	implemented
	* modules/syscalls/configure.in: check for the above

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

	* src/m4/alloca.m4: removed
	* configure.in: use AC_FUNC_ALLOCA instead of CL_ALLOCA

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

	* modules/rawsock/rawsock.c (RAWSOCK:SOCKATMARK): added
	* 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):
	removed 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): updated
	(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): added
	* condition.lisp (*report-error-print-backtrace*): added
	(report-error): new function
	(exitunconditionally): use it
	(abort-on-error, abort-errors): added
	* reploop.lisp (*debug-mode*): init in defvar
	(print-backtrace): extracted 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>

	fixed 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]: fixed 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):
	fixed 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): fixed compilation
	on cygwin without HAVE_GETPRIORITY.

2005-03-18  Sam Steingold  <sds@gnu.org>

	* makemake.in (EMACS_FILES): added 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): added 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): fixed 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): fixed STACK handling

2005-03-16  Sam Steingold  <sds@gnu.org>

	* modules/postgresql/postgresql.lisp (PQgetCancel, PQfreeCancel)
	(PQcancel, PQserverVersion, PQgetssl, PQinitSSL, PQdsplen):
	added 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): removed
	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): removed -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): added DEFSETF
	* modules/syscalls/calls.c (SET-RLIMIT): implemented

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): removed 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: added 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): Renamed 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): fixed 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): extracted 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): added AC_ARG_WITH([readline])
	* configure.in: removed 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: added
	* modules/regexp/Makefile.in (regex.o): pass -I$(INCLUDES) -Dclisp

2005-03-07  Sam Steingold  <sds@gnu.org>

	* m4/regexp.m4 (CL_REGEXP): added AC_ARG_WITH and some more tests
	* modules/regexp/configure.in: AC_ARG_WITH is in CL_REGEXP now
	the option is renamed 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): renamed 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):
	implemented 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>

	fixed bug #[ 1157691 ]: (optimize (debug 3)) fails
	* compiler.lisp (parse-optimize-quality): extracted 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): added 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): added
	* 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): added slot reverse
	(new-checker): accept reverse
	(print-tables-1): use reverse

2005-03-01  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (checker): added 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): implemented

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): renamed 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): fixed a GC-safety bug

2005-02-28  Sam Steingold  <sds@gnu.org>

	fixed 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: added (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): added 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: updated

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): added 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 removed 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): added 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): added
	* init.lisp (char-key): export
	* xcharin.lisp (char-key): implemented

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): fixed "--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): Renamed 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): updated the prototype
	* spvw.d (init_object_tab): updated 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): removed
	(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): implemented
	* constsym.d, subr.d (close_foreign_library): added
	* foreign1.lisp (FFI:CLOSE-FOREIGN-LIBRARY): exported

2005-02-01  Sam Steingold  <sds@gnu.org>

	* foreign.d (find_library): extracted from FFI::FOREIGN-LIBRARY
	(FFI::FOREIGN-LIBRARY): use it; fixed 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>

	fixed 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): added
	(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_): extracted 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): Renamed 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): renamed 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): added 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): Renamed from read_label_type.
	(make_small_read_label): Renamed from make_read_label.
	(small_read_label_integer_p): Renamed from read_label_integer_p.
	(small_read_label_p): Renamed 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): fixed 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): fixed 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 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>

	fixed 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): Renamed 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>

	Fixed 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): added
	(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>

	added FEATUREP (http://clrfi.alu.org/clrfi/clrfi-1-featurep)
	* io.d (interpret_feature): STACK_1 may not be a stream
	(FEATUREP): implemented
	* constsym.d, subr.d (featurep): added
	* init.lisp (featurep): export

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

	* makemake.in (BASE_MODULES): added 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): renamed 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]: renamed from to_time_t_()
	* genclisph.d (time_t_to_filetime) [UNIX_CYGWIN32]: export
	(time_t_from_filetime) [UNIX_CYGWIN32]: renamed 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): removed
	* modules/matlab/wrap.lisp (matfile-content): removed 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, renamed from lispdocdir.
	(SRCDOCDIR): Renamed from DOCDIR.
	(SRCDOCDIR_): Renamed from DOCDIR_.
	(SRCDOCDIR_M): Renamed from DOCDIR_M.
	(DOCDIR): New variable.
	(mandir, MANDIR, htmldir, HTMLDIR, dvidir, DVIDIR, psdir, PSDIR)
	(pdfdir, PDFDIR): New variables.
	(brace_to_paren): New variable.
	(datadir): Renamed from shared.
	* _distmakefile (datadir): Renamed from shared.
	(docdir): Remove variable.
	(docdir): New variable, renamed 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): Renamed 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*): fixed value
	(defstruct): set PREDICATE-OPTION to NIL before saving it into
	DEFSTRUCT-DESCRIPTION; fixed 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)): added
	(class-direct-slots): handle structures too
	((setf class-direct-slots)): turn into a defgeneric
	* constobj.d (version): bumped
	* defstruct.lisp (*defstruct-description-predicate-location*): added
	(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)): added
	* 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*): added constants
	(ds-typep, ds-typep-expansion, ds-canonicalize-type)
	(find-structure-slot-initfunction): use them
	(clos::structure-undefine-accessories): added 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): Renamed 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: added 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"): removed 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): fixed 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): fixed last patch
	* package.d (%IN-PACKAGE): fixed 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): added
	* package.d ((SETF EXT:PACKAGE-CASE-SENSITIVE-P))
	((SETF EXT:PACKAGE-CASE-INVERTED-P)): implemented
	(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): added
	* places.lisp (package-case-inverted-p, package-case-sensitive-p): added

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): Renamed 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 added 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): updated 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): added
	* constsym.d (*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*): added
	* spvw.d (init_symbol_values): initialize it
	* reploop.lisp (package-short-name): removed
	(*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: fixed 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): implemented
	* modules/rawsock/sock.lisp (htonl, htons, ntohl, ntohs): exported

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]: added 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.
	Added 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): Renamed 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): removed
	(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): Renamed
	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): Renamed from
	class-direct-subclasses@forward-referenced-class.
	(class-direct-superclasses@forward-reference-to-class): Renamed from
	class-direct-superclasses@forward-referenced-class. Don't use
	class-classname.
	(class-direct-slots@forward-reference-to-class): Renamed from
	class-direct-slots@forward-referenced-class. Don't use class-classname.
	(class-direct-default-initargs@forward-reference-to-class): Renamed
	from class-direct-default-initargs@forward-referenced-class. Don't use
	class-classname.
	(class-finalized-p@forward-reference-to-class): Renamed from
	class-finalized-p@forward-referenced-class.
	(add-direct-subclass@super-class@potential-class): Renamed from
	add-direct-subclass@potential-class@potential-class.
	(remove-direct-subclass@super-class@potential-class): Renamed 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): Renamed from if_class_p.
	* predtype.d (CLOS::%DEFCLOS): Update.
	(CLOS::POTENTIAL-CLASS-P): Renamed from CLOS::CLASS-P.
	* clos-class1.lisp (potential-class): Renamed from class.
	(*<potential-class>-defclass*): Renamed from *<class>-defclass*.
	(*<potential-class>-...-location*): Renamed from *<class>-...-location*.
	(class-classname, class-direct-subclasses-table): Update.
	(shared-initialize-<potential-class>): Renamed 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): Renamed from class.
	(print-object-<potential-class>): Renamed from print-object-<class>.
	(print-object): Use potential-class-p instead of class-p.
	* clos-class2.lisp (<potential-class>): Renamed 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): Renamed 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):
	Renamed from update-instance-for-different-class@class@standard-object.
	* clos-class6.lisp (class-classname): Update.
	((setf class-name)@potential-class): Renamed from
	(setf class-name)@potential-class.
	(class-direct-subclasses-table): Update.
	(ensure-class-using-class@potential-class): Renamed from
	ensure-class-using-class@class.
	(validate-superclass@potential-class@potential-class): Renamed from
	validate-superclass@class@class.
	(add-direct-subclass@potential-class@potential-class): Renamed from
	add-direct-subclass@class@class.
	(remove-direct-subclass@potential-class@potential-class): Renamed from
	remove-direct-subclass@class@class.
	* clos-print.lisp (print-object@potential-class): Renamed 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): Renamed 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>

	reverted the 2003-10-10 patch and fixed 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; fixed 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): Renamed from make_standard_input.
	Turn into a function.
	(make_standard_output_file_stream): Renamed 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): Renamed 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*): Renamed 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>): Renamed 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>): Renamed from
	reinitialize-instance-<class>. Use defined-class-p instead of class-p.
	(map-dependents-<defined-class>): Renamed from map-dependents-<class>.
	(checked-class-direct-subclasses): Use defined-class-p instead of
	class-p.
	(compute-class-precedence-list-<defined-class>): Renamed 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>): Renamed
	from compute-effective-slot-definition-initargs-<class>.
	(compute-effective-slot-definition-initargs): Update.
	(compute-effective-slot-definition-<defined-class>): Renamed from
	compute-effective-slot-definition-<class>. Use defined-class-p instead
	of class-p.
	(compute-effective-slot-definition): Update.
	(compute-slots-<defined-class>-primary): Renamed from
	compute-slots-<class>-primary.
	(compute-slots): Update.
	(compute-default-initargs-<defined-class>): Renamed 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): Renamed from
	shared-initialize@class.
	(reinitialize-instance@defined-class): Renamed from
	reinitialize-instance@class.
	* clos-class6.lisp (initialize-instance@defined-class): Renamed from
	initialize-instance@class.
	(class-name@defined-class): Renamed from class-name@class.
	(class-name@forward-referenced-class): New method.
	(class-direct-subclasses@defined-class): Renamed from
	class-direct-subclasses@class.
	(class-direct-subclasses@forward-referenced-class): New method.
	(class-direct-superclasses@defined-class): Renamed from
	class-direct-superclasses@class.
	(class-direct-superclasses@forward-referenced-class): New method.
	(class-all-superclasses): Update.
	(class-precedence-list@defined-class): Renamed from
	class-precedence-list@class.
	(class-direct-slots@defined-class): Renamed from
	class-direct-slots@class.
	(class-direct-slots@forward-referenced-class): New method.
	(class-slots@defined-class): Renamed from class-slots@class.
	(class-slot-location-table): Update.
	(class-direct-default-initargs@defined-class): Renamed from
	class-direct-default-initargs@class.
	(class-direct-default-initargs@forward-referenced-class): New method.
	(class-default-initargs@defined-class): Renamed from
	class-default-initargs@class.
	(class-documentation, class-listeners, class-initialized): Update.
	(compute-direct-slot-definition-initargs@defined-class): Renamed from
	compute-direct-slot-definition-initargs@class.
	(class-finalized-p@defined-class): Renamed from
	class-finalized-p@class.
	(class-finalized-p@forward-referenced-class): New method.
	(finalize-inheritance@defined-class): Renamed from
	finalize-inheritance@class.
	(compute-class-precedence-list@defined-class): Renamed from
	compute-class-precedence-list@class.
	(compute-effective-slot-definition-initargs@defined-class): Renamed
	from compute-effective-slot-definition-initargs@class.
	(compute-effective-slot-definition@defined-class): Renamed from
	compute-effective-slot-definition@class.
	(compute-slots): Update.
	(compute-default-initargs@defined-class): Renamed from
	compute-default-initargs@class.
	(reader-method-class@defined-class): Renamed from
	reader-method-class@class.
	(writer-method-class@defined-class): Renamed 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): Renamed from
	add-dependent@class.
	(remove-dependent@defined-class): Renamed from remove-dependent@class.
	(map-dependents@defined-class): Renamed 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): fixed 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 removed 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): fixed 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: renamed 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): Renamed from read_helper.
	(fd_write): Renamed from write_helper.
	* win32.d (fd_read): Renamed from read_helper.
	(fd_write): Renamed from write_helper.
	* genclisph.d: Declare fd_read, fd_write instead of read_helper,
	write_helper.
	* unixaux.d (fd_read): Renamed from read_helper.
	(fd_write): Renamed from write_helper.
	* win32aux.d (lowlevel_fd_read): Renamed from low_read_helper.
	(fd_read_params): Renamed from full_read_params.
	(do_fd_read): Renamed from do_read_helper.
	(fd_read): Renamed from read_helper.
	(fd_write): Renamed 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): added 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): removed
	(sys::member2): replaced with MEMBER? which does not cons

2004-10-30  Sam Steingold  <sds@gnu.org>

	fixed 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>

	fixed 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): added i18n and zlib

2004-10-27  Sam Steingold  <sds@gnu.org>

	* control.d (MULTIPLE-VALUE-SETQ): fixed 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):
	removed
	* constsym.d (Klc_messages, Klc_ctype, Klc_time, Klc_collate)
	(Klc_monetary): removed
	* constobj.d (type_category): removed
	* genclisph.d (R_minusp, check_pos_integer, pathname_to_OSdir)
	(OSdir_to_pathname): export
	include <libintl.h>
	* i18n.d: removed "General internationalization, for Lisp programs too"
	* international.d: removed "Interface to GNU gettext"

2004-10-22  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/linux.lisp (write-helper, read-helper):
	fixed argument lists (they were swapped)

2004-10-22  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (new-fundef): fixed 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>):
	Renamed 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>):
	Renamed from compute-applicable-methods-<standard-generic-function>.
	(compute-applicable-methods-using-classes-<generic-function>):
	Renamed 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>):
	Renamed 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): updated for the FILL-STREAM slot change
	* describe.lisp (describe): ditto
	* reploop.lisp (print-error, break-loop): ditto
	* condition.lisp (pretty-print-condition): renamed INDENT to TEXT-INDENT
	(warn, maybe-continue): updated 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.d (structure_reader): Lookup the keyword-constructor both in
	the class and in the defstruct-description.
	(some_printable_slots): Remove function.
	(pr_structure_default): Lookup the keyword-constructor in the class.
	No need to skip slots without initargs.
	* foreign1.lisp (c-struct-constructor): Lookup the keyword-constructor
	in the class.

	* clos-class1.lisp (structure-class): Add slot kconstructor.
	(*<structure-class>-kconstructor-location*): New constant.
	(class-kconstructor, (setf class-kconstructor)): New functions.
	(*<structure-class>-instance-size*): Increment.
	* clos-class3.lisp (make-instance-<structure-class>)
	(shared-initialize-<structure-class>): Add kconstructor argument.
	(define-structure-class): Accept four more arguments. Don't access the
	defstruct-description.
	* clos-class4.lisp (shared-initialize@structure-class): Add
	kconstructor argument.
	* clos-class6.lisp (class-kconstructor, (setf class-kconstructor)): New
	functions.
	* defstruct.lisp (defstruct): Pass four more arguments to
	define-structure-class.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (initialize-instance-<standard-method>): Ignore
	fast-function if :function was specified.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Support for custom method classes not inheriting from STANDARD-METHOD.
	* clos-class3.lisp (install-class-direct-accessors): Create method
	in two steps. Pass fast-function instead of initfunction initarg,
	using method-function-initargs.
	* clos-method1.lisp (initialize-instance-<standard-method>): Drop
	initfunction argument.
	* clos-methcomb2.lisp (method-function-substitute)
	(method-function-initargs): New functions.
	(effective-method-code-bricks): Emit code to create method in two
	steps, and pass fast-function instead of initfunction initarg, using
	method-function-initargs.
	* clos-method2.lisp (analyze-method-description): Return the
	function lambda as a separate value. Don't produce an initfunction
	initarg.
	* clos-genfun3.lisp (defmethod): Pass three arguments to do-defmethod.
	(do-defmethod): Accept three arguments. Create method in two steps.
	Pass fast-function instead of initfunction initarg, using
	method-function-initargs.
	(declaim-method): Update.
	(analyze-defgeneric): Emit code to create method in two steps, and
	pass fast-function instead of initfunction initarg, using
	method-function-initargs.
	* clos-genfun4.lisp (no-next-method, add-method, remove-method):
	Generalize method from <standard-method> to <method>.
	* clos-method3.lisp (initialize-instance@standard-method): Drop
	initfunction argument.
	* clos-slots2.lisp (slot-value-using-class)
	((setf slot-value-using-class), slot-boundp-using-class)
	(slot-makunbound-using-class): Pass fast-function instead of
	initfunction initarg.
	* clos-class5.lisp (shared-initialize, reinitialize-instance)
	(initialize-instance, allocate-instance, make-instance): Pass
	fast-function instead of initfunction initarg.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Split method creation into separate allocation and initialization.
	* clos-method1.lisp (make-method-instance): Remove function.
	(allocate-method-instance, initialize-method-instance): New functions.
	* clos-methcomb2.lisp (effective-method-code-bricks): Emit code to use
	allocate-method-instance, initialize-method-instance instead of
	make-method-instance.
	* clos-genfun3.lisp (do-defmethod, analyze-defgeneric): Use
	allocate-method-instance, initialize-method-instance instead of
	make-method-instance.
	* clos-method4.lisp (make-method-instance): Remove function.
	(allocate-method-instance, initialize-method-instance): New functions.

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

	* io.d (pr_system): permit readable output for #<UNBOUND>
	* constobj.d (printstring_unbound_readably): added

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

	* clos-genfun3.lisp (defgeneric): when the function is being
	TRACEd, UNTRACE it to avoid an error

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

	* clos-print.lisp (compute-effective-method@(eql #'print-object)):
	avoid a compiler warning

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

	* fill-out.lisp (right-margin, fill-stream-text-indent): new functions
	(fill-stream, fill-stream-flush-buffer): use them
	(fill-stream-line-position): renamed from LINE-POS

2004-10-16  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (defclass): Remove a level of quoting for the slot
	initforms.

2004-10-14  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe-object@t): Handle the weak-list,
	weak-and-relation, weak-or-relation, weak-mapping, weak-and-mapping,
	weak-or-mapping, weak-alist types.

2004-10-14  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (shared-initialize-<structure-class>): Don't make
	side-effects on empty-ht and on all other structure-class instances.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (*dynamically-modifiable-generic-function-names*):
	Add many MOP generic function names.
	(need-gf-already-called-warning-p): Test membership with equal, not eq.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Remove initfunction slot.
	(initialize-instance-<standard-method>): Update.
	* clos-genfun4.lisp (initialize-extended-method-check): Update.
	* disassem.lisp (disassemble@standard-method): Update.

	Now that methods are never copied, move the initfunction invocation
	to the initializer.
	* clos-method1.lisp (initialize-instance-<standard-method>): Invoke
	the initfunction here.
	* clos-genfun2.lisp (std-add-method): ... not here.
	(std-remove-method): Use normal identity for comparing methods.

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

	LOAD can now restart when it encounters errors
	* init.lisp (eval-loaded-form-low): new function
	(eval-loaded-form): dummy definition
	(load): use EVAL-LOADED-FORM
	* condition.lisp (eval-loaded-form): redefine with two restarts:
	SKIP and STOP

2004-10-10  Bruno Haible  <bruno@clisp.org>

	New generic function (setf method-generic-function).
	* clos-method1.lisp ((setf method-generic-function)): New preliminary
	function.
	* clos-genfun2.lisp (std-add-method, std-remove-method)
	(reinitialize-instance-<generic-function>): Use it instead of
	(setf std-method-generic-function).
	* clos-method3.lisp ((setf method-generic-function)): New generic
	function.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Move the from-defgeneric slot from <standard-method> up to <method>.
	* clos-method1.lisp (method): Add from-defgeneric slot.
	(initialize-instance-<method>): New function.
	(standard-method): Remove from-defgeneric slot.
	(initialize-instance-<standard-method>): Refer to
	initialize-instance-<method>. Don't initialize from-defgeneric.
	* clos-genfun2.lisp (std-remove-method)
	(reinitialize-instance-<generic-function>): Update.
	* clos-method3.lisp (initialize-instance@method): New method.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Prepare for non-standard methods.
	* clos-methcomb2.lisp (method-list-to-continuation): Use
	method-function instead of std-method-function.
	* disassem.lisp (disassemble@method): New method.

	Prepare for non-standard methods.
	* clos-genfun2.lisp (std-remove-method): Protect call to
	std-method-initfunction with a type check for <standard-method>.

	Prepare for non-standard methods.
	* clos-methcomb2.lisp (method-list-to-continuation)
	(effective-method-code-bricks, build-effective-method-function-form):
	Protect all calls to std-method-fast-function,
	std-method-wants-next-method-p with a type check for <standard-method>.
	* clos-genfun2.lisp (std-add-method): Likewise.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Optimize type checks.
	* clos-class3.lisp (compute-slots-<slotted-class>-around): Use
	typep-class instead of typep.
	* clos-methcomb2.lisp (check-em-duplicates-option)
	(callable-method-form-p, effective-method-code-bricks)
	(build-effective-method-function-form): Likewise.
	* clos-genfun3.lisp (analyze-defgeneric): Likewise.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Respect user-defined methods on method-generic-function.
	* clos-genfun2.lisp (std-add-method): Call method-generic-function
	instead of std-method-generic-function.
	* clos-genfun3.lisp (%call-next-method): Likewise.
	* clos-genfun4.lisp (%no-next-method): Likewise.
	* clos-method3.lisp (method-generic-function): Redefine without
	fmakunbound.

	Respect user-defined methods on method-lambda-list.
	* clos-genfun2.lisp (check-signature-congruence, std-add-method)
	(gf-keyword-arguments): Call method-signature instead of
	std-gf-signature.
	* clos-genfun3.lisp (defmethod): Likewise.
	* clos-method3.lisp (method-signature): Redefine without fmakunbound.
	(function-keywords): Call method-signature instead of std-gf-signature.
	* clos-class5.lisp (valid-initarg-keywords): Likewise.

	Respect user-defined methods on method-lambda-list.
	* clos-genfun2.lisp (std-add-method): Call method-lambda-list instead
	of std-method-lambda-list.
	* clos-genfun3.lisp (do-defmethod): Likewise.

	Respect user-defined methods on method-qualifiers.
	* clos-genfun1.lisp (|#'method-qualifiers|): New variable.
	(safe-method-qualifiers): New function.
	* clos-methcomb2.lisp (partition-method-list): Add gf argument. Call
	safe-method-qualifiers instead of std-method-qualifiers.
	(standard-method-combination-expander): Update.
	(standard-method-combination-check-method-qualifiers)
	(standard-method-combination-call-next-method-allowed)
	(short-form-method-combination-expander)
	(short-form-method-combination-check-method-qualifiers)
	(short-form-method-combination-call-next-method-allowed): Call
	method-qualifiers instead of std-method-qualifiers.
	* clos-genfun2.lisp (invalid-method-qualifiers-error, methods-agree-p)
	(std-find-method): Call method-qualifiers instead of
	std-method-qualifiers.
	* clos-genfun4.lisp (no-primary-method, no-next-method): Call
	method-qualifiers instead of std-method-qualifiers.
	* clos-method3.lisp (method-qualifiers): Redefine without fmakunbound.
	Initialize |#'method-qualifiers|.
	* describe.lisp (describe-object@generic-function): Call
	method-qualifiers instead of std-method-qualifiers.

	Respect user-defined methods on method-specializers.
	* clos-genfun1.lisp (|#'method-specializers|): New variable.
	(safe-method-specializers): New function.
	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
	Add gf argument. Call safe-method-specializers instead of
	std-method-specializers.
	(long-form-method-combination-collect-duplicates): Call
	method-specializers instead of std-method-specializers.
	* clos-genfun2.lisp (methods-agree-p, std-add-method)
	(std-remove-method, std-find-method): Call method-specializers
	instead of std-method-specializers.
	(compute-dispatch): Call safe-method-specializers instead of
	std-method-specializers.
	(compute-applicable-methods-<standard-generic-function>): Update.
	(compute-applicable-methods-using-classes-<standard-generic-function>)
	(compute-applicable-methods-for-set)
	(check-method-only-standard-specializers): Call
	safe-method-specializers instead of std-method-specializers.
	* clos-genfun4.lisp (dispatching-arg-p, dispatching-arg-type): Call
	method-specializers instead of std-method-specializers.
	* clos-method3.lisp (method-specializers): Redefine without fmakunbound.
	Initialize |#'method-specializers|.
	* clos-class5.lisp (note-ai-change, note-ii-change, note-ri-change)
	(note-uirc-change, note-uidc-change, note-si-change)
	(valid-make-instance-keywords, valid-reinitialize-instance-keywords)
	(valid-update-instance-for-redefined-class-keywords)
	(valid-update-instance-for-different-class-keywords): Call
	method-specializers instead of std-method-specializers.
	* describe.lisp (describe-object@generic-function): Likewise.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (method-lambda-list-to-signature): New function,
	extracted from initialize-instance-<standard-method>.
	(initialize-instance-<standard-method>): Use it.
	(method-function, method-qualifiers, method-lambda-list)
	(method-signature, method-specializers, method-generic-function): New
	preliminary functions.
	* clos-method3.lisp (method-function, method-qualifiers)
	(method-lambda-list, method-specializers, method-generic-function):
	Fmakunbound before defgeneric.
	(method-signature): New generic function.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Respect user-defined methods on finalize-inheritance.
	* clos-class3.lisp (finalize-inheritance): New preliminary function.
	(subclassp, update-subclasses-for-redefined-class)
	(update-subclasses-for-redefined-class-nonrecursive): Use it
	instead of finalize-class.

2004-10-13  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (unwind_back_trace): Remove unneeded #ifdef.
	* spvw_update.d (update_back_traces): Write if (bt != NULL), not just
	if (bt). Needed for Solaris C++.
	* spvw_garcol.d (gc_markphase): Likewise.

2004-10-13  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCFLAGS): Don't add -fsingle when using a C++ compiler.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Check that user-defined methods on many MOP generic functions behave
	correctly.
	* clos-genfun4.lisp (extended-method-check): New function.
	(*mop-standardized-packages*): New variable.
	(mop-standardized-p, add-extended-method-check): New functions.
	(*extended-method-check-method*): New variable.
	(initialize-extended-method-check): New function.
	(generic-function-*): Enable extended method check.
	* clos-method3.lisp (method-*): Likewise.
	* clos-slotdef3.lisp (slot-definition-*): Likewise.
	* clos-class6.lisp (class-*, finalize-inheritance): Likewise.
	* clos-methcomb4.lisp (find-method-combination): Likewise.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Allow tracing of compute-applicable-methods et al.
	* clos-genfun1.lisp (|#'compute-discriminating-function|)
	(|#'compute-applicable-methods|)
	(|#'compute-applicable-methods-using-classes|)
	(|#'compute-effective-method|): New variables.
	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
	Use them.
	* clos-genfun2.lisp (install-dispatch)
	(compute-applicable-methods-effective-method): Likewise.
	* clos-genfun4.lisp: Initialize |#'compute-discriminating-function|,
	|#'compute-applicable-methods|,
	|#'compute-applicable-methods-using-classes|,
	|#'compute-effective-method|.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Allow the user to override class-direct-subclasses.
	* clos-class3.lisp (class-direct-subclasses): New preliminary function.
	(checked-class-direct-subclasses): New function.
	(list-all-finalized-subclasses): Use it instead of
	list-direct-subclasses.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Improved bootstrapping.
	* clos-class3.lisp (defclass): Hardwire the
	CLASS-VALID-INITIALIZATION-KEYWORDS result if the metaclass is
	STANDARD-CLASS or FUNCALLABLE-STANDARD-CLASS.
	(ensure-class-using-class-<t>): Test for subclass of
	<semi-standard-class>, not of <standard-class>.
	* clos-genfun1.lisp
	(*<funcallable-standard-class>-valid-initialization-keywords*): New
	constant.
	(funcallable-standard-object, generic-function)
	(standard-generic-function): Define through defclass instead of
	ensure-class.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (reinitialize-instance-<class>): After restoring
	the backup copy, also restore the direct-subclasses pointers and the
	finalized-direct-subclasses pointers of any possible direct superclass.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Warn about invalid print-object methods.
	* clos-print.lisp (*print-object-method-warning*): New variable.
	(print-object-method-warning): New function.
	(compute-effective-method@(eql #'print-object)): New method.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	* clos-print.lisp (print-object): Return the object as value of all
	methods, as required by ANSI CL.
	* condition.lisp (print-object@simple-condition, print-object@restart):
	Return the object after printing it.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef1.lisp (print-object-<slot-definition>): New function,
	taken from clos-print.lisp.
	* clos-specializer1.lisp (print-object-<eql-specializer>): Likewise.
	* clos-class1.lisp (print-object-<class>): Likewise.
	* clos-print.lisp (print-object): Use print-object-<slot-definition>,
	print-object-<eql-specializer>, print-object-<class>.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Move code.
	* init.lisp (print-unreadable-object): Export it here.
	* macros2.lisp (print-unreadable-object): Moved to here.
	* defs2.lisp (print-unreadable-object): Remove from here.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	Forbid change-class for <class>, <slot-definition>.
	* clos-class5.lisp (update-instance-for-different-class): Add error
	signaling methods for <class>, <slot-definition>.

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

	* misc.d (MODULE-INFO): return the DLL information for :FFI
	argument (instead of 0); all info when VERBOSE, names only otherwise
	* constsym (:FFI) [DYNAMIC_FFI & (WIN32_NATIVE | HAVE_DLOPEN)]: added
	Suggested by Jörg Höhle

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* control.d (parse_doc_decl): Fix GC-safety bug introduced on
	2004-05-27.
	* hashtabl.d (warn_forced_gc_rehash): Fix GC-safety bug introduced on
	2004-05-15.
	(warn_key_forces_gc_rehash): Fix GC-safety bug introduced on
	2004-05-12.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	* .gdbinit: Don't always execute the "base" command. It made it
	impossible to attach to an already running lisp.run process.

2004-10-10  Bruno Haible  <bruno@clisp.org>

	Fix GC crash after a GC was triggered while a break loop was active.
	* lispbibl.d (bt_beyond_stack_p, with_saved_back_trace): Correctly
	parenthesize argument expressions.
	* debug.d (driver, break_driver): Initialize bt_next to back_trace,
	not NULL. Otherwise the bt_caller fields are not updated during GCs,
	and after the function is left the next GC crashes. Fixes bug
	introduced on 2002-11-15.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (reinitialize-instance-<class>): Don't force a
	class to be unfinalized if finalization already succeeded.

2004-10-09  Bruno Haible  <bruno@clisp.org>

	* clos-slots2.lisp (slot-unbound): Restore the error message that was
	thrown away on 2003-05-01.

2004-10-08  Jörg Höhle  <hoehle@users.sourceforge.net>

	Usable control of sharing of FFI pointer validity (aka extent)
	* foreign.d (set_foreign_pointer): fix GC-safety bug; allow both
	entities to be foreign objects other than just foreign-pointer;
	return initial (modified) entity, which is incompatible with SETF
	requirements, but very handy.
	* foreign1.lisp (SETF FOREIGN-POINTER): remove
	(SET-FOREIGN-POINTER): export

2004-10-07  Bruno Haible  <bruno@clisp.org>

	* clos-class1.lisp (shared-initialize-<class>): A clos::direct-slots
	argument overrides the :direct-slots argument.

2004-10-07  Bruno Haible  <bruno@clisp.org>

	* debug.d (read_form): Don't use ls_avail_p to test whether the
	input stream is interactive, since the clear_input call has been
	removed on 2003-01-21.

2004-10-07  Bruno Haible  <bruno@clisp.org>

	Fix crash after check_array() is used, introduced on 2004-05-12.
	* array.d (test_subscripts): Fix invocations of fehler_subscript_type,
	fehler_subscript_range.
	(fehler_index_type, fehler_index_range, test_index): Pass the array
	as argument, not on the STACK.
	(subscripts_to_index): Fix invalid STACK accesses.
	(SYS::STORE): Store the checked array in the STACK, for
	storagevector_store.
	(SVREF, SYS::SVSTORE, SYS::%SVSTORE, ROW-MAJOR-AREF)
	(SYS::ROW-MAJOR-STORE): Update.
	(ARRAY-IN-BOUNDS-P): Update. Fix invocation of fehler_subscript_type.
	(ARRAY-ROW-MAJOR-INDEX): Fix invalid STACK accesses.
	(fehler_bit_array): Pass the array as argument, not on the STACK.
	(BIT, SBIT, SYS::SET-FILL-POINTER): Update.
	* lispbibl.d (fehler_index_range): Pass the array as argument, not on
	the STACK.
	* stream.d (FILE-POSITION): Update.
	* sequence.d (fehler_vector_index_range, seq_check_index): Update.

2004-10-06  Bruno Haible  <bruno@clisp.org>

	* time.d (SYS::DELTA4): Fix error message's argument. Signal an error
	if the shift is >= 32. Fix 64-bit computations.
	* defs1.lisp (%time): Use more verbose variable names.

2004-10-06  Bruno Haible  <bruno@clisp.org>

	* control.d (MULTIPLE-VALUE-SETQ): Rewritten, to fix three bugs
	introduced since 2003-05-20: GC-safety bug when assigning Car(STACK_0),
	side effect on variable list given in the original form, GC-safety bug
	on return value.

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

	* modules/rawsock/sock.lisp (open-unix-socket-stream): add
	&ALLOW-OTHER-KEYS to the lambda list; REMOVE-PLIST is non-destructive
	Reported by Jörg Höhle

2004-10-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp (parse-c-type compiler-macro): leave
	(parse-c-type `(c-array ,foo ,len)) unchanged

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

	The user commands can now be extended using CUSTOM:*USER-COMMANDS*
	* reploop.lisp (*user-commands*): new user variable
	(wrap-user-commands): new function
	(commands0, commands): activate user commands

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

	* constobj.d (type_foreign_variable, type_foreign_function):
	new constants
	* foreign.d (FOREIGN-VARIABLE, FOREIGN-FUNCTION): use them instead
	of the illegal form pushSTACK(listof(3))
	(FOREIGN-FUNCTION): made argument type check restartable

2004-10-05  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (FOREIGN-VARIABLE, FOREIGN-FUNCTION):
	new constructor functions.
	* subr.d, subrkw.d: add them

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

	* lispbibl.d (unused): do not redefine (win32.d already defines it)

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

	* pathname.d (LAUNCH): exit_code is unsigned,
	so use fixnum() instead of sfixnum() and avoid a GCC warning

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

	* init.lisp: export ABSOLUTE-PATHNAME

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

	* pathname.d (ABSOLUTE-PATHNAME, physical_namestring):
	do not call check_no_wildcards()
	(use_default_dir) [PATHNAME_WIN32]: check that the :DEVICE is not :WILD

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

	* encoding.d (CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES):
	check_encoding() can trigger GC
	Reported by Jörg Höhle

2004-10-05  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (fehler_foreign_variable, fehler_foreign_function):
	raise error of type type-error

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

	* modules/rawsock/sock.lisp (open-unix-socket): use ABSOLUTE-PATHNAME
	(open-unix-socket-stream): new function, returns a STREAM

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

	* modules/syscalls/calls.c (POSIX::CONFSTR): use my_malloc()
	instead of malloc() because of error handling

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* pathname.d (ABSOLUTE-PATHNAME): New function.
	(physical_namestring): Call check_no_wildcards.
	* edit.lisp (edit-file): Use absolute-pathname instead of
	translate-pathname.
	* cfgwin32.lisp (edit-file): Likewise.
	* runprog.lisp (xstring): Likewise.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c (POSIX::MKNOD): Don't use two popSTACK()s
	in the same expression, as it has undefined behaviour.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c (POSIX::SET-LIMITS): Give a meaningful
	error message.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c (POSIX::CONFSTR): Don't use alloca.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/calls.c: Include sys/resource.h early enough, so
	that getrlimit_arg can use it. Also include sys/types.h before
	sys/stat.h, not after it.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* syscalls/calls.c: Don't set Solaris specific flags just temporarily
	for a few includes. We don't control their effect.
	* syscalls/Makefile.in (CPPFLAGS): Add Solaris specific flags here.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp: Don't print modprep's timings.
	(modprep): Print a filename using ~A, not ~S.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp (print-tables-1): Don't export the ..._table_size
	variables.

2004-10-03  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp (print-tables-1): Declare 'index' as
	'unsigned int', not 'int'. Avoids gcc warnings.
	* modules/syscalls/calls.c (POSIX::LIMITS): Declare pos as
	'unsigned int', not 'int'.

2004-09-30  Bruno Haible  <bruno@clisp.org>

	* type.lisp (subtype-integer): Signal an error if the argument is a
	circular or dotted list.

2004-09-30  Bruno Haible  <bruno@clisp.org>

	* sequence.d (valid_type1): Call SYS::SUBTYPE-SEQUENCE as a last
	chance to determine the sequence type.
	* type.lisp (subtype-sequence, type-of-sequence, sequence-type-union)
	(sequence-type-intersection): New functions.

2004-09-30  Bruno Haible  <bruno@clisp.org>

	* sequence.d (valid_type1, get_seq_type): Use sequence type 1 instead
	of BIT-VECTOR.
	(delete_help): Simplify accordingly.
	* defseq.lisp (BIT-VECTOR): Remove. Replaced by sequence type 1.

2004-09-29  Bruno Haible  <bruno@clisp.org>

	* defmacro.lisp (macro-nonnull-element-error): New function.
	(empty-pattern): Use it in the macroexpansion.

2004-09-29  Bruno Haible  <bruno@clisp.org>

	* fill-out.lisp (stream-start-s-expression, stream-end-s-expression):
	No need for EVAL-WHEN (COMPILE).
	* format.lisp (formatter-main-1): Don't call STREAM-START-S-EXPRESSION
	and STREAM-END-S-EXPRESSION twice when the ~S code dispatches to
	DO-FORMAT-S-EXPRESSION.

2004-09-20  Bruno Haible  <bruno@clisp.org>

	* documentation.lisp (documentation, (setf documentation)): Define
	with reversed argument-precedence-order.

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

	* format.lisp (formatter-main-1): call STREAM-START-S-EXPRESSION
	and STREAM-END-S-EXPRESSION for ~S

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

	package locking should not interfere with SETQ return value
	* control.d (SETQ): restore value1 after setq()
	* eval.d (setq): return value
	* lispbibl.d (setq): updated the declaration
	Reported by Jörg Höhle

2004-09-28  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Remove DIRECTORY.[67],
	which are fixed. Remove NAMESTRING.[34], which is commented out.

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

	* fill-out.lisp (fill-stream-flush-buffer): even when BUFFER is
	empty, NEWLINE-P still has to be respected

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

	* loop.lisp (loop): as per 6.1.1.1.1 and 6.1.1.1.2, LOOP is
	extended when it contains ATOMs, not just loop keywords
	Reported by Kalle Olavi Niemitalo <kon@iki.fi>
	* compiler.lisp (simplify): use TAGBODY instead of simple LOOP
	* subtypep.lisp (intervals-union): ditto

2004-09-28  Bruno Haible  <bruno@clisp.org>

	Make (MAKE-SEQUENCE (FIND-CLASS 'LIST) n) work.
	* sequence.d (valid_type1): Recognize also built-in class objects.
	* clos-class3.lisp: Pass <list> to %defclos as well.

2004-09-28  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/bindings/glibc/linux.lisp:
	(seed48): provide exact definition now that prototyes are not
	written to the C output file anymore (see *output-c-functions*).
	The limitation in ffi::to-c-typedecl still exists: it produces
	uint16 (* (seed48) (uint16 (* arg2163)[3]))[3] as prototype...
	(execl,execlp): use DEFUN-based interface, call execv/p.

2004-09-19  Bruno Haible  <bruno@clisp.org>

	Support for user-defined DEFGENERIC options.
	* clos-genfun3.lisp (make-generic-function): Add caller, whole-form,
	user-defined-args arguments. Perform checking of generic-function
	options.
	(analyze-defgeneric): Accept generic-function options that depend on
	the generic-function class. Remove the generic-function option checking
	from here. Return an additional value user-defined-args.
	(defgeneric): Perform checking of generic-function options at
	execution time.
	(make-generic-function-form): Update.
	* clos-genfun4.lisp (initialize-instance@generic-function): Remove
	&allow-other-keys.

2004-09-19  Bruno Haible  <bruno@clisp.org>

	Support for user-defined DEFCLASS slot options.
	* clos-slotdef1.lisp (initialize-instance-<slot-definition>): Call
	%initialize-instance, to initialize user-defined slots.
	(initialize-instance-<direct-slot-definition>): Accept defclass-form
	argument.
	(convert-direct-slots): Do slot option checking here.
	* clos-slotdef2.lisp (initialize-instance@direct-slot-definition):
	Accept defclass-form argument.
	* clos-slotdef3.lisp (slot-equal-using-class): Don't constrain the
	direct-slot-definition subclass.
	* clos-class3.lisp (defclass): Accept slot options that depend on the
	direct-slot-definition class. Remove the slot option checking from
	here.

2004-09-27  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (%deref): may be useful with (c-pointer <c-type>)
	(foreign_allocate): bind *print-circle* iff fvd shown.

2004-09-26  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp, modules/bindings/glibc/linux.lisp:
	* modules/postgresql/postgresql.lisp, modules/netica/netica.lisp:
	reverted the broken 2004-09-09 patch

2004-09-26  Sam Steingold  <sds@gnu.org>

	FILL-STREAM no longer flattens all space inside S-expressions
	* fill-out.lisp (fill-stream): new slot INSIDE-SEXP
	(fill-stream-flush-buffer, stream-write-char): when INSIDE-SEXP,
	do not indent
	(stream-start-s-expression, stream-end-s-expression): new generic
	functions with methods for FILL-STREAM
	* format.lisp (format-s-expression): call them

2004-09-23  Sam Steingold  <sds@gnu.org>

	* pathname.d (DEFAULT_VERSION): since all pathnames returned by
	DIRECTORY must be truenames, DEFAULT_VERSION must be :NEWEST

2004-09-23  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object): fixed bignum/fixnum classification
	Reported by Jörg Höhle

2004-09-23  Bruno Haible  <bruno@clisp.org>

	* sequence.d (REVERSE): Fix wrong index check when the argument is a
	displaced vector. Fixes bug introduced on 1999-11-08.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* pathname.d (signal_type_error): New function.
	(LOGICAL-PATHNAME): Signal an error of type TYPE-ERROR if the parsing
	leads to a PARSE-ERROR.
	* condition.lisp (valid-logical-pathname-string-p): New function.

2004-09-20  Bruno Haible  <bruno@clisp.org>

	Treat the DEFCLASS :fixed-slot-locations option like user-defined
	options.
	* clos-class1.lisp (semi-standard-class): Provide an initarg and a
	default-initarg for the fixed-slot-locations slot.
	(*<standard-class>-valid-initialization-keywords*)
	(*<standard-class>-default-initargs*): New constants.
	* clos-class3.lisp (defclass): Don't special-case :fixed-slot-locations
	option. Use *<standard-class>-valid-initialization-keywords*,
	*<standard-class>-default-initargs*.

2004-09-20  Bruno Haible  <bruno@clisp.org>

	Change syntax of DEFCLASS :fixed-slot-locations option.
	* clos-slotdef1.lisp (slot-definition, direct-slot-definition)
	(effective-slot-definition, standard-slot-definition)
	(standard-direct-slot-definition, standard-effective-slot-definition)
	(structure-direct-slot-definition, structure-effective-slot-definition):
	Provide a boolean argument to the :fixed-slot-locations option.
	* clos-stablehash1.lisp (standard-stablehash): Likewise.
	* clos-specializer1.lisp (specializer, eql-specializer): Likewise.
	* clos-class1.lisp (class, built-in-class, slotted-class)
	(structure-class, semi-standard-class, standard-class): Likewise.
	* clos-class3.lisp (reinitialize-instance-<class>)
	(shared-initialize-<semi-standard-class>): Convert the option, a list,
	to a boolean.
	* clos-method1.lisp (standard-method, standard-accessor-method)
	(standard-reader-method, standard-writer-method): Provide a boolean
	argument to the :fixed-slot-locations option.
	* clos-methcomb1.lisp (method-combination): Likewise.
	* clos-genfun1.lisp (funcallable-standard-class)
	(funcallable-standard-object, generic-function)
	(standard-generic-function): Likewise.

2004-09-22  Sam Steingold  <sds@gnu.org>

	* fill-out.lisp (stream-write-char-sequence): use COUNT-IF to
	support all sequences, not just lists and vectors, avoid consing
	and quadraticity; return the sequence as prescribed by the ANSI

2004-09-18  Bruno Haible  <bruno@clisp.org>

	Support for user-defined DEFCLASS options.
	* clos-class5.lisp (class-valid-initialization-keywords): New function.
	* clos-class3.lisp (defclass): Accept class options that depend on
	the metaclass. Move the verification of the class option checking from
	macroexpansion time to execution time.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* clos-genfun4.lisp (shared-initialize@generic-function)
	(shared-initialize@standard-generic-function): Remove &allow-other-keys.
	* clos-specializer2.lisp (shared-initialize@eql-specializer): Likewise.
	* clos-class4.lisp (shared-initialize@class)
	(shared-initialize@built-in-class, shared-initialize@structure-class)
	(shared-initialize@standard-class)
	(shared-initialize@funcallable-standard-class): Likewise.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* pathname.d (parse_as_logical): Fix incorrect comments.
	(LOGICAL-PATHNAME): Signal an error if the argument refers to a stream
	opened with a physical pathname.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	Avoid floating-point overflow in comparison of floats with rational
	numbers.
	* sfloat.d (I_to_SF, RA_to_SF): Add signal_overflow argument.
	* ffloat.d (I_to_FF, RA_to_FF): Add signal_overflow argument.
	* dfloat.d (I_to_DF, RA_to_DF): Add signal_overflow argument.
	* lfloat.d (I_to_LF, RA_to_LF): Add signal_overflow argument.
	* realelem.d (I_F_float_F): Update.
	(RA_F_float_F): Add signal_overflow argument.
	(R_F_float_F, R_to_SF, R_to_FF, R_to_DF, R_to_LF)
	(RA_F_exact_contagion_R, I_float_F, RA_float_F, RA_R_float_F)
	(GEN_R_op21): Update.
	(R_R_comp): Avoid floating-point overflow when comparing float with
	rational number.
	* realtran.d (pi_F_float_F, ln2_F_float_F, R_R_log_R): Update.
	* compelem.d (N_durch_N, R_R_hypot_R): Update.
	* comptran.d (N_N_log_N, R_R_atanh_R_R): Update.
	* lisparit.d (read_float, to_double, log_digits): Update.

2004-09-21  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d, foreign1.lisp, ffi.tst: Implement c-type
	'(c-pointer <c-type>) which does not convert data structures
	to/from Lisp and manipulates FOREIGN-VARIABLE objects instead.
	* modules/bindings/glibc/linux.lisp (errno): Use it.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Rename field valid_initargs to
	valid_initargs_from_slots.
	* clos-class1.lisp (class): Rename slot valid-initargs to
	valid-initargs-from-slots.
	(*<slotted-class>-valid-initargs-from-slots-location*): Renamed from
	*<slotted-class>-valid-initargs-location*.
	(class-valid-initargs-from-slots): Renamed from class-valid-initargs.
	* clos-class3.lisp (shared-initialize-<structure-class>)
	(finalize-instance-semi-standard-class): Update.
	* clos-class5.lisp (valid-initarg-keywords): Update.
	* clos-class6.lisp (class-valid-initargs-from-slots): Renamed from
	class-valid-initargs.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* format.lisp (format-character): Don't string-capitalize the
	character name.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* io.d (SYS::WRITE-UNREADABLE): Emit leading or trailing space if
	*PRINT-UNREADABLE-ANSI* is true.
	* misc.d (SYS::SET-ANSI): Set *PRINT-UNREADABLE-ANSI* too.
	* spvw.d (init_symbol_values): Initialize *PRINT-UNREADABLE-ANSI*.
	* places.lisp (*ansi*): Mention *PRINT-UNREADABLE-ANSI*.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_array): If *PRINT-READABLY* is true, ignore
	*PRINT-EMPTY-ARRAYS-ANSI*.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* pathname.d (LOGICAL-PATHNAME): Signal an error if the argument is
	a string without host specification.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* aridecl.d (SF_exp_mid, SF_exp_high): Use the IEEE single-float
	values.
	Fixes problem introduced on 1999-08-07.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* clos-genfun4.lisp (shared-initialize@generic-function): New method.
	(shared-initialize@standard-generic-function): Accept :declare too.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (define-structure-class): No need to fmakunbound.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	Treat (FUNCTION NIL) correctly.
	* cmacros.lisp (function-form-funform): Remove function.
	(function-form-p): New function.
	(simple-function-form-p): Update.
	* compiler.lisp (inline-callable-function-lambda-p)
	(inline-callable-function-p): Update.
	* loop.lisp (expand-loop): Update. Optimize #'(setf foo) the same way
	as #'foo.

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

	* pathname.d (PARSE-NAMESTRING): fix second return value for
	displaced arguments

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

	* describe.lisp (describe-object): print pathname components as
	is, not as pathnames with only this component, because :VERSION is
	never printed for non-logical pathnames and :NEWEST is thus
	printed as an empty string, which is confusing

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Revisit many failures.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* clx/mit-clx/dependent.lisp (get-host-name): Implement correctly
	for clisp.

	* clx/mit-clx/dependent.lisp (conditional-store): Rewrite to avoid
	multiple evaluation of subforms.

	* clx/mit-clx/depdefs.lisp: Ensure that :CLX-LITTLE-ENDIAN is
	declared in *features* on little-endian platforms.

2004-09-18  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (compute-slots-<slotted-class>-around)
	(create-shared-slots-vector): Fix bug in 2004-09-12 patch.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (print-object@condition): Fix typo in 2004-09-14
	patch.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (define-condition, handler-case, restart-bind): Pass
	both :FORM and :DETAIL when signaling a source-program-error.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* constsym.d (CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*)
	(SYS::SPECIALIZED-LAMBDA-LIST-TO-ORDINARY): Align C names.
	* spvw.d (init_symbol_values): Update.
	* eval.d (get_closure): Update.
	* misc.d (SYS::SET-ANSI): Update.

2004-09-17  Bruno Haible  <bruno@clisp.org>

	* init.lisp (remove-old-definitions, open-for-load)
	(specialized-lambda-list-to-ordinary, defun): Fix indentation. Use
	'when' instead of 'if' without else-branch.

2004-09-16  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export metaobject, specializer, eql-specializer,
	compute-effective-method.
	* clos-package.lisp: Likewise.

2004-09-16  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Many new failures to be
	revisited.

2004-09-16  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef1.lisp (structure-effective-slot-definition): Provide
	different initforms for efm-svuc etc.
	(initialize-instance-<structure-effective-slot-definition>): Initialize
	the slots efm-svuc etc.
	* clos-class3.lisp (compute-slot-location-table-entry): Make it work
	for STRUCTURE-CLASS classes.

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

	* modules/bindings/win32/win32.lisp (SE_ERROR, SHOW_COMMAND): new enums
	(ShellExecuteA): new function

2004-09-15  Bruno Haible  <bruno@clisp.org>

	Fix "make distclean".
	* makemake.in (OBSOLETE): Add Makefile~, clisp-test.c.
	(clean4): Also remove cflags.h, localcharset.h.
	(clean5): Also remove spvw_calendar.c, w32shell.c, exporting.lisp,
	modprep.lisp.
	(clean7): Also remove version.h.

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

	* genclisph.d (main): define NULL differently for C & C++
	depending on include environment, not file generation environment
	Reported by Goffioul Michael <goffioul@imec.be>

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

	* record.d (check_initialization_argument_list): Internationalize
	error message.

2004-09-15  Bruno Haible  <bruno@clisp.org>

	* constobj.d (version): Bump because of changes to CLOS macro
	expansions.

2004-09-12  Bruno Haible  <bruno@clisp.org>

	Implement SLOT-VALUE-USING-CLASS and friends.
	* lispbibl.d (SlotDefinition): Add fields slotdef_efm_svuc,
	slotdef_efm_ssvuc, slotdef_efm_sbuc, slotdef_efm_smuc.
	* record.d (slot_using_class_up): New function.
	(CLOS::%SLOT-VALUE-USING-CLASS, CLOS::%SET-SLOT-VALUE-USING-CLASS)
	(CLOS::%SLOT-BOUNDP-USING-CLASS, CLOS::%SLOT-MAKUNBOUND-USING-CLASS):
	New functions.
	(slot_up): Remove function.
	(CLOS:SLOT-VALUE): Inline slot_up. Handle the general case slotinfo:
	call CLOS:SLOT-VALUE-USING-CLASS effective method if necessary.
	((SETF CLOS:SLOT-VALUE)): Handle the general case slotinfo:
	call (SETF CLOS:SLOT-VALUE-USING-CLASS) effective method if necessary.
	(CLOS:SLOT-BOUNDP): Inline slot_up. Handle the general case slotinfo.
	(CLOS:SLOT-MAKUNBOUND): Likewise.
	(CLOS::%SHARED-INITIALIZE): Handle the general case slotinfo.
	(CLOS::%REINITIALIZE-INSTANCE, do_initialize_instance): Likewise.
	* init.lisp: Export slot-value-using-class,
	slot-boundp-using-class, slot-makunbound-using-class.
	* clos-package.lisp: Likewise.
	* clos-slotdef1.lisp (effective-slot-definition): Add slots efm-svuc,
	efm-ssvuc, efm-sbuc, efm-smuc.
	(*<effective-slot-definition>-efm-...-location*): New constants.
	(slot-definition-efm-svuc, slot-definition-efm-ssvuc)
	(slot-definition-efm-sbuc, slot-definition-efm-smuc): New accessors.
	(make-instance-<standard-effective-slot-definition>)
	(structure-effective-slot-definition-initff)
	(structure-effective-slot-definition-readonly)
	(make-instance-<structure-effective-slot-definition>): Update.
	* clos-slotdef3.lisp (slot-definition-efm-svuc)
	(slot-definition-efm-ssvuc, slot-definition-efm-sbuc)
	(slot-definition-efm-smuc): New accessors.
	* clos-class3.lisp (compute-slots-<slotted-class>-around): Properly
	extract the location from the slot-location-table entry.
	(create-shared-slots-vector): Likewise.
	(compute-slot-location-table-entry): New function.
	(compute-slot-location-table): Use it.
	(list-all-finalized-subclasses): Make it work also for class <t>.
	* clos-genfun2.lisp (|#'slot-value-using-class|)
	(|#'(setf slot-value-using-class)|, |#'slot-boundp-using-class|)
	(|#'slot-makunbound-using-class|): New variables.
	(std-add-method, std-remove-method): Notify when one of these generic
	functions changes.
	* clos-slots2.lisp (invalidate-slot-value-info, note-svuc-change)
	(note-ssvuc-change, note-sbuc-change, note-smuc-change): New functions.
	(slot-value-using-class, (setf slot-value-using-class),
	slot-boundp-using-class, slot-makunbound-using-class): New generic
	functions.

2004-09-12  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-applicable-methods-for-set)
	(compute-applicable-methods-effective-method-for-set): New functions.

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

	* foreign.d (object_handle): check that the new name is a string

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

	support libsigsegv-2.1 on cygwin,
	which includes <windows.h> from <sigsegv.h>
	* lispbibl.d [UNIX_CYGWIN32]: undefine WIN32 and
	INVALID_HANDLE_VALUE after including <sigsegv.h>
	define unused after including <sigsegv.h> because it is used by woe32
	* pathname.d [UNIX_CYGWIN32]: do not redefine *_PRIORITY_CLASS
	* spvw_sigsegv.d (stackoverflow_handler) [UNIX_CYGWIN32]: use Ebx

2004-09-14  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-report-problems): When reporting unknown functions,
	compare function names with EQUAL, not EQL.

2004-09-14  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (print-condition): Change from generic function to
	plain function. Call print-object.
	(print-object@condition): Don't call print-condition. Instead inline
	its earlier definition.
	(define-condition): Change the macroexpansion to define a method on
	print-object, not on print-condition.
	(print-condition@simple-condition): Remove.
	(print-object@simple-condition): New method.

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

	Make it possible to call class-precedence-list during compute-slots
	and compute-default-initargs.
	* record.d (do_allocate_instance, update_instance)
	(CLOS::%MAKE-INSTANCE): Test for finalized class by using the
	'initialized' field, not the 'precedence_list' field.
	* clos-class1.lisp (class): Change type of initialized slot to integer.
	(%class-precedence-list): Remove function.
	(shared-initialize-<class>): Set the initialized flag to 0 or 2,
	instead of nil and t.
	* clos-class3.lisp (subclassp): Test for finalized class by using the
	'initialized' slot, not the 'precedence-list' slot.
	(reinitialize-instance-<class>): Likewise.
	(std-compute-subclass-of-stablehash-p, compute-slots-<class>-primary)
	(compute-slots-<slotted-class>-around)
	(compute-default-initargs-<class>):
	Use class-precedence-list instead of %class-precedence-list.
	(shared-initialize-<built-in-class>)
	(shared-initialize-<structure-class>): Likewise. Set the
	initialized flag to 6.
	(shared-initialize-<semi-standard-class>): Set initialized flag to 2.
	(finalize-class): Test for finalized class by using the 'initialized'
	slot, not the 'precedence-list' slot.
	(finalize-instance-semi-standard-class): Use class-precedence-list
	instead of %class-precedence-list. Set the initialized flag to 6.
	(make-instances-obsolete-<semi-standard-class>)
	(make-instances-obsolete-<semi-standard-class>-nonrecursive):
	Test for finalized class by using the 'initialized' slot, not the
	'precedence-list' slot.
	(update-subclasses-for-redefined-class): Set initialized flag to 2.
	(update-subclasses-for-redefined-class-nonrecursive): Likewise. Test
	for finalized class by using the 'initialized' slot, not the
	'precedence-list' slot.
	* clos-class6.lisp (check-class-initialized): Add a level argument.
	(check-class-finalized): Add a level argument. Test for finalized class
	by using the 'initialized' slot, not the 'precedence-list' slot.
	(%class-precedence-list): Remove function.
	(class-precedence-list, class-slots, class-default-initargs)
	(class-prototype): Update.
	(class-finalized-p@class): Test for finalized class by using the
	'initialized' slot, not the 'precedence-list' slot.
	* clos-print.lisp (print-object@class): Likewise.

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

	comply with <http://www.lisp.org/HyperSpec/Body/fun_compile-file.html>:
	 If verbose is true, compile-file prints a message in the form of
	 a comment (i.e., with a leading semicolon) to standard output
	 indicating what file is being compiled and other useful
	 information. If verbose is false, compile-file does not print
	 this information.
	* compiler.lisp (compile-file): prefix verbose output with ";; "
	 and send it to *STANDARD-OUTPUT*

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

	* runprog.lisp (run-shell-command) [win32]: :INDIRECTP defaults to T
	Reported by Jörg Höhle

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

	* makemake.in (cross/LPARS, full-check):
	make sure that ${someflags} is expanded
	Reported by Jörg Höhle

2004-09-13  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (defclass): Pass the metaclass' default-initargs to
	ensure-class.
	* clos-genfun3.lisp (defgeneric): Pass the generic-function class'
	default-initargs to ensure-generic-function.
	Reported by Pascal Costanza.

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

	* clos-slotdef1.lisp (<effective-slot-definition>): New variable.
	(effective-slot-definition-p): New function.
	* clos-class3.lisp (compute-slots-<class>-primary): Check the return
	value of compute-effective-slot-definition.

2004-07-30  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-applicable-methods-effective-method):
	Check the return value from compute-applicable-methods-using-classes or
	compute-applicable-methods.

2004-07-30  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>):
	Clear the cache also when unknown user-defined arguments are passed.
	(install-dispatch): Check the return value from
	compute-discriminating-function.

2004-07-29  Bruno Haible  <bruno@clisp.org>

	Implement the dependents protocol.
	* lispbibl.d (Class): Add field 'listeners'.
	* init.lisp: Export add-dependent, remove-dependent, map-dependents,
	update-dependent.
	* clos-package.lisp: Export add-dependent, remove-dependent,
	map-dependents, update-dependent.
	* clos-class1.lisp (class): Add slot 'listeners'.
	(*<...class>-...-location*): Update.
	(*<...class>-instance-size*): Increment.
	(class-listeners, (setf class-listeners)): New functions.
	(shared-initialize-<class>): Initialize the listeners.
	* clos-class3.lisp (reinitialize-instance-<class>): Invoke
	map-dependents.
	(map-dependents-<class>): New function.
	* clos-class6.lisp (class-listeners, (setf class-listeners)): New
	functions.
	* clos-genfun1.lisp (*<funcallable-standard-class>-instance-size*):
	Increment.
	(generic-function): Add slot 'listeners'.
	(shared-initialize-<generic-function>): Initialize the listeners.
	* clos-genfun2.lisp (map-dependents-<generic-function>): New function.
	(std-add-method, std-remove-method)
	(reinitialize-instance-<generic-function>): Invoke map-dependents.
	* clos-dependent.lisp: New file.
	* clos.lisp: Load it.
	* makemake.in (LPARTS): Add clos-dependent.
	* po/Makefile.devel (LISPSOURCES): Add clos-dependent.

2004-09-09  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp, modules/bindings/glibc/linux.lisp:
	* modules/postgresql/postgresql.lisp, modules/netica/netica.lisp:
	no need to wrap defconstant in eval-when: this prevents
	the symbols from being exported

2004-09-09  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Accept msvc6 and handle it like msvc5.
	* Makefile.devel (win32msvc/makefile.msvc6, win32msvc/makefile.msvc6d):
	New targets.
	(makefiles): Depend on them.
	Suggested by Jörg Höhle.

2004-07-12  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Remove direct_generic_functions field.
	* clos-specializer1.lisp (specializer): Remove direct-generic-functions
	slot.
	(*<specializer>-direct-generic-functions-location*): Remove constant.
	(*<specializer>-direct-methods-location*): Update.
	(specializer-direct-generic-functions-table): Remove accessor.
	(shared-initialize-<specializer>): Update.
	(*<eql-specializer>-...-location*): Decrement by 1.
	(*<eql-specializer>-instance-size*): New constant.
	(make-instance-<eql-specializer>): Use it.
	(specializer-direct-generic-functions-table): Remove accessor.
	* clos-class1.lisp (*<class>-...-location*): Decrement by 1.
	(*<built-in-class>-instance-size*): Likewise.
	(*<slotted-class>-...-location*): Likewise.
	(*<structure-class>-...-location*): Likewise.
	(*<structure-class>-instance-size*): Likewise.
	(*<semi-standard-class>-...-location*): Likewise.
	(*<standard-class>-instance-size*): Likewise.
	* clos-genfun1.lisp (*<funcallable-standard-class>-instance-size*):
	Likewise.

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

	* foreign.d (open_library): since name may be modified by
	check_string(), it must be passed by reference
	(update_library, FOREIGN-LIBRARY): pass name to open_library()
	by reference
	Reported by Jörg Höhle

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

	* modules/exporting.lisp: PROVIDE "exporting"
	* modules/bindings/glibc/linux.lisp, modules/bindings/win32/win32.lisp:
	* modules/matlab/matlab.lisp, modules/netica/netica.lisp:
	* modules/postgresql/postgresql.lisp: REQUIRE "exporting" instead
	of an explicit LOAD to permit stand-alone loading

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

	fixed bug #[ 1024332 ]: file system traversing problems
	* makemake.in (someflags): new variable: encflags + -norc
	use it uniformly everywhere

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

	* init.lisp (load): use the input-stream as the unique EOF object

2004-07-12  Bruno Haible  <bruno@clisp.org>

	* clos-specializer1.lisp (add-direct-generic-function-internal)
	(remove-direct-generic-function-internal)
	(list-direct-generic-functions): Remove functions.
	(forget-direct-generic-functions, add-direct-generic-function):
	Remove functions.
	(compute-direct-generic-functions): Return just a plain list.
	(update-list-direct-generic-functions): Remove function.
	(specializer-direct-generic-functions): Use
	compute-direct-generic-functions.
	(add-direct-method-generic-function): Remove function.
	(add-direct-method, remove-direct-method): Undo last change.
	* clos-specializer3.lisp (specializer-direct-generic-functions): Use
	compute-direct-generic-functions.
	(add-direct-method, remove-direct-method): Undo last change.
	* clos-method1.lisp (method-generic-function): Remove function.
	* clos-method3.lisp (method-generic-function): Undo last change.

2004-07-12  Bruno Haible  <bruno@clisp.org>

	Implement specializer-direct-generic-functions.
	* clos-specializer1.lisp (add-direct-generic-function-internal):
	Renamed from add-direct-generic-function.
	(remove-direct-generic-function-internal): Renamed from
	remove-direct-generic-function.
	(forget-direct-generic-functions, add-direct-generic-function)
	(compute-direct-generic-functions)
	(update-list-direct-generic-functions): New functions.
	(specializer-direct-generic-functions): Use
	update-list-direct-generic-functions.
	(add-direct-method-generic-function): New function.
	(add-direct-method, remove-direct-method): Also update the
	direct-generic-functions set.
	* clos-specializer3.lisp (specializer-direct-generic-functions): Use
	update-list-direct-generic-functions.
	(add-direct-method, remove-direct-method): Also update the
	direct-generic-functions set.
	* clos-method1.lisp (method-generic-function): New function.
	* clos-method3.lisp (method-generic-function): Use
	allow-making-generic.

2004-07-11  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export add-direct-method, remove-direct-method.
	* clos-package.lisp: Likewise.
	* clos-specializer1.lisp (add-direct-method-internal): Renamed from
	add-direct-method.
	(remove-direct-method-internal): Renamed from remove-direct-method.
	(add-direct-method, remove-direct-method): New functions.
	* clos-specializer3.lisp (add-direct-method, remove-direct-method):
	New generic functions.
	* clos-method1.lisp (method): Inherit from standard-stablehash.
	(initialize-instance-<standard-method>): Invoke
	shared-initialize-<standard-stablehash>.
	* clos-genfun2.lisp (std-add-method): Use remove-method, as specified
	by the MOP. Call add-direct-method for each specializer.
	(std-remove-method): Call remove-direct-method for each specializer.

2004-09-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	* win32.d, win32aux.d (abort) [WIN32_NATIVE]: use nonreturning
	function declaration. BTW, win32aux.d redefines abort()

2004-09-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (find_name) [WIN32_NATIVE]: ensure end_system_call()
	takes place in all execution paths.

2004-08-31  Bruno Haible  <bruno@clisp.org>

	* spvw.d (parse_options): Don't do destructive side effects on argv[].
	(main_actions): Update.

2004-08-31  Bruno Haible <bruno@clisp.org>

	* spvw.d (struct argv_actions): Remove argv_selection_array, add
	argv_init_files and argv_exprs.
	(parse_options, free_argv_actions): Update.
	(main_actions): New function, extracted from main().
	(main): Call main_actions.

2004-08-31  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_memory): New function, extracted from main().
	(main): Call init_memory.

2004-08-31  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (install_stackoverflow_handler): Define as a no-op
	when NOCOST_SP_CHECK is not defined.
	* spvw.d (main): Call install_stackoverflow_handler a little later.

2004-08-31  Bruno Haible  <bruno@clisp.org>

	Assume the OS manages the C stack sufficiently well.
	* lispbibl.d (NO_SP_MALLOC): Remove macro.
	* spvw.d (usage): Remove documentation of option -s.
	(struct argv_initparams): Remove argv_stackneed.
	(parse_options): Drop support for option -s.
	(main): Don't reserve space for SP. Don't call setSP.

2004-08-31  Bruno Haible  <bruno@clisp.org>

	Remove support for MiNT.
	* lispbibl.d (UNIX_MINT): Remove macro.
	* pathname.d (realpath): Remove MiNT support.
	* stream.d (clear_tty_input): Assume FREAD is defined when TIOCFLUSH is
	defined.
	(clear_tty_output): Assume FWRITE is defined when TIOCFLUSH is defined.

2004-08-30  Bruno Haible  <bruno@clisp.org>

	* spvw.d (program_name): Change type to 'const char *'.
	(usage): Remove quit_sofort() call at the end.
	(init_lowest_level, fini_lowest_level): New functions.
	(struct argv_init_c): New type.
	(struct argv_initparams): New type.
	(struct argv_actions): New type.
	(argv_verbose, argv_wait_keypress, argv_license): Remove variables.
	(parse_options): New function, extracted from main(). Signal an error
	when an invalid option beginning with "-r" is seen.
	(free_argv_initparams, free_argv_actions): New functions.
	(argv1, argv2): New variables.
	(main): Use parse_options.

2004-07-11  Bruno Haible  <bruno@clisp.org>

	* clos.lisp: Set *allow-making-generic* to t while bootstrapping.
	* clos-slotdef3.lisp: No need to use fmakunbound here.
	* clos-specializer3.lisp: Likewise.
	* clos-class6.lisp: No need to bind *allow-making-generic* or use
	fmakunbound here.
	* clos-methcomb4.lisp: No need to bind *allow-making-generic* here.
	* clos-genfun5.lisp: Likewise.
	* clos-print.lisp: No need to use fmakunbound here.

2004-07-11  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (|#'allocate-instance|, |#'initialize-instance|)
	(|#'reinitialize-instance|, |#'update-instance-for-redefined-class|)
	(|#'update-instance-for-different-class|, |#'shared-initialize|)
	(*gf-warn-on-replacing-method*): New variables, moved here from
	clos-genfun3.lisp.
	(methods-agree-p, gf-lambdalist-from-first-method, std-add-method)
	(std-remove-method, std-find-method): New functions, moved here
	from clos-genfun3.lisp.
	(initialize-instance-<standard-generic-function>): Remove function.
	(initialize-instance-<generic-function>): New function, extracted from
	ensure-generic-function-using-class-<t>.
	(reinitialize-instance-<generic-function>): New function, extracted
	from ensure-generic-function-using-class-<t>.
	(make-instance-<standard-generic-function>): Update.
	* clos-genfun3.lisp (|#'allocate-instance|, |#'initialize-instance|)
	(|#'reinitialize-instance|, |#'update-instance-for-redefined-class|)
	(|#'update-instance-for-different-class|, |#'shared-initialize|)
	(*gf-warn-on-replacing-method*): Move to clos-genfun2.lisp.
	(methods-agree-p, gf-lambdalist-from-first-method, std-add-method)
	(std-remove-method, std-find-method): Move to clos-genfun2.lisp.
	(ensure-generic-function-using-class-<t>): For redefinition, use
	reinitialize-instance. For first definition, rely on
	initialize-instance to install the initial methods.
	* clos-genfun4.lisp (initialize-instance@generic-function)
	(reinitialize-instance@generic-function): New methods.
	* clos-genfun5.lisp (initialize-instance-<standard-generic-function>):
	Remove function.

2004-09-03  Sam Steingold  <sds@gnu.org>

	restored support for older versions of woe32
	* foreign.d (find_name): find EnumProcessModules dynamically
	(fEnumProcessModules): new global static
	* makemake.in (LIBS) [win32]: do NOT link against psapi
	Reported by Jörg Höhle.

2004-09-02  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (StablehashStructure): Rename field structure_types
	to _structure_types.
	Reported by Jörg Höhle.

2004-09-03  Jörg Höhle  <hoehle@users.sourceforge.net>

	* lispbibl.d (if_classp): varbrace does not work inside macros,
	so must surround { var declarations with braces } by hand.

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

	new module for interface to ZLIB http://www.zlib.org
	* modules/zlib: new directory

2004-07-10  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (method-combination-with-options): New function.
	(find-method-combination-<generic-function>-<symbol>): Use it.
	(coerce-to-method-combination): Remove function.
	* clos-genfun3.lisp (make-generic-function): Accept a
	method-combination object instead of a method-combination designator.
	(analyze-defgeneric): Return a lambda expression for producing the
	method-combination, instead of the method-combination designator.
	Improve checking of :method-combination option.
	(defgeneric, make-generic-function-form): Emit code to convert the
	method-combination designator to a method-combination object.
	* clos-methcomb4.lisp (find-method-combination): Define using
	allow-making-generic.

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

	* foreign1.lisp (DEF-CALL-OUT, DEF-C-VAR):
	evaluate the :LIBRARY argument

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

	* init.lisp (search-file): pathname.d:simplify_directory()
	replaces ".." in pathname-directory with :up, so we need to check
	for :up instead of ".."
	Reported by Jörg Höhle  <hoehle@users.sourceforge.net>

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

	* foreign.d (find_name) [WIN32_NATIVE]: check the return values of
	both EnumProcessModules() calls

2004-07-10  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (make-fast-gf): Remove function.
	* clos-genfun3.lisp (make-generic-function, do-defmethod): Use
	make-generic-function-instance instead of make-fast-gf.

2004-07-10  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (%make-gf): Remove function.
	(make-fast-gf): Inline its previous definition.

2004-07-10  Bruno Haible  <bruno@clisp.org>

	* clos-genfun3.lisp (do-defgeneric): Remove function.
	(defgeneric): Expand into a call to ensure-generic-function instead of
	do-defgeneric.
	* clos-genfun5.lisp (ensure-generic-function-using-class): Define using
	allow-making-generic.

2004-09-02  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp (parse-c-type, with-c-var, with-foreign-object):
	Perform both optimizations in parse-c-type, so that all forms,
	e.g. cast and offset, benefit.

2004-09-01  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp (parse-c-type): add define-compiler-macro
	to inline primitive types.
	* foreign1.lisp (with-c-var, with-foreign-object): optimize
	c-type `(c-array[-max] type ,foo) (typical variable-length array)

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

	* describe.lisp (describe-object@integer): do not use TYPE-OF to
	print representation (fixnum vs bignum) because TYPE-OF returns a
	range like (INTEGER 0 16777215)

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

	support (:library :default) on win32
	* foreign.d [WIN32_NATIVE]: include <psapi.h>
	(open_library) [WIN32_NATIVE]: accept :DEFAULT
	(find_name) [WIN32_NATIVE]: when handle is NULL, use
	EnumProcessModules() to search all loaded libraries
	* makemake.in (LIBS) [win32]: link against psapi
	(makevars): depend on Makefile

2004-06-24  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export ensure-generic-function-using-class.
	* clos-package.lisp: Likewise.
	* clos-genfun2.lisp (check-signature-congruence)
	(check-method-qualifiers, invalid-method-qualifiers-error): New
	functions, moved here from clos-genfun3.lisp.
	(shared-initialize-<standard-generic-function>): During redefinition,
	check the new signature and the new method-combination against the
	existing methods. At the end, call finalize-fast-gf.
	(make-fast-gf): Don't call finalize-fast-gf here.
	* clos-genfun3.lisp (check-signature-congruence)
	(check-method-qualifiers, invalid-method-qualifiers-error): Moved to
	clos-genfun2.lisp.
	(ensure-generic-function-using-class-<t>): New function.
	(ensure-generic-function-using-class): New function.
	(ensure-generic-function): Completely rewritten.
	* clos-genfun5.lisp (ensure-generic-function-using-class): New generic
	function.

2004-08-30  Stefan Kain  <stefan.kain@freenet.de>

	* debug.d: translated all comments

2004-08-30  Sam Steingold  <sds@gnu.org>

	* modules/bindings/amigaos: removed

2004-08-30  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: check for <winsock2.h> only when
	<sys/socket.h> is not found to avoid confusion on cygwin
	* modules/rawsock/test.tst [win32]: do not test socketpair()

2004-08-30  Sam Steingold  <sds@gnu.org>

	* foreign.d (open_library): accept :DEFAULT and :NEXT when
	RTLD_DEFAULT and RTLD_NEXT are defined
	(FOREIGN-LIBRARY): do not check that the library name is a string:
	this is done in open_library() anyway
	(exit_ffi): do not try to close RTLD_DEFAULT and RTLD_NEXT
	* constsym.d (:NEXT): added

2004-08-30  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Tweak for portability: make it work with Solaris sed.
	Reported by Michael Livshin <clisp@cmm.kakpryg.net>.

2004-08-30  Sam Steingold  <sds@gnu.org>

	* foreign.d (dlerror_string): fixed a segfault:
	dlerror() may return NULL

2004-08-30  Sam Steingold  <sds@gnu.org>

	check array dimensions at compile time
	* type.lisp (ensure-dim, ensure-rank): new macros
	(ARRAY, SIMPLE-ARRAY, VECTOR, SIMPLE-VECTOR, STRING, SIMPLE-STRING)
	(BASE-STRING, SIMPLE-BASE-STRING, BIT-VECTOR, SIMPLE-BIT-VECTOR):
	add CHECK-FORM using ENSURE-DIM and ENSURE-RANK

2004-08-24  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (build-linux-x86-[1-10]): New targets.
	(multibuild-linux-x86): Depend on them.
	(multibuild-darwin-powerpc, build-darwin-powerpc-[1-10]): New targets.

2004-08-28  Bruno Haible  <bruno@clisp.org>

	* stream.d (rd_by_aux_icx_buffered): Fill exactly the required number
	of bytes in the bitbuffer; don't clobber the header word of the next
	object in memory. Fixes a bug introduced on 2001-06-27. Also introduce
	a more efficient loop for the case that doesn't require shifting.
	Found by the ansi-tests on MacOS X.

2004-08-24  Bruno Haible  <bruno@clisp.org>

	* stream.d (finish_tty_output, clear_tty_output) [UNIX_DARWIN]: Treat
	EOPNOTSUPP like EINVAL. Needed on Darwin 7.5.0 (MacOS X 10.3.5).

2004-08-27  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main): Change the SIZE_ARG macro such that too high values
	generate a warning, not an error.

2004-08-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Support TYPECODES_1 on Darwin/PowerPC.

2004-08-26  Bruno Haible  <bruno@clisp.org>

	* init.lisp (format): Allow the control-string to be a function. Needed
	for bootstrapping halfcompiled.mem: when the .fas files are loaded, the
	compiler has already transformed control-strings to functions.

2004-08-26  Bruno Haible  <bruno@clisp.org>

	Avoid a crash when using a hash-table as hash-table key in TYPECODES
	mode.
	* hashtabl.d (hashcode4_atom): Handle case_machine, case_subr,
	case_system.
	Found by the sacla-tests on MacOS X.

2004-08-26  Bruno Haible  <bruno@clisp.org>

	Avoid link error when compiling without optimization.
	* makemake.in (clisp.h): Define COMPILE_STANDALONE also when using
	<clisp.h>.
	* genclisph.d (main): Wrap check_list and posfixnum_default2 in #ifndef
	COMPILE_STANDALONE.

2004-08-25  Bruno Haible  <bruno@clisp.org>

	* clos-class6.lisp (initialize-instance@class): Avoid compiler warning.
	* clos-methcomb2.lisp (make-method): Avoid compiler warning.

2004-08-26  Bruno Haible  <bruno@clisp.org>

	Make instance_of_stablehash_p work during bootstrapping.
	* clos-class0.lisp (*dummy-class*): New variable.
	(make-class-version): Use it as default.

2004-08-24  Bruno Haible  <bruno@clisp.org>

	Update ISO-8859-7 converter to version 2003.
	* nls_iso8859_7.c (charset2uni, page03, page20): Add new mappings for
	0xA4, 0xA5, 0xAA.

2004-06-24  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (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>):
	Handle the case that the generic-function's lambda-list is not yet
	initialized.
	* clos-genfun3.lisp (gf-lambdalist-from-first-method): New function.
	(std-add-method, std-find-method): Handle the case that the
	generic-function's lambda-list is not yet initialized.
	(do-defmethod): Use gf-lambdalist-from-first-method.
	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
	(no-primary-method): Handle the case that the generic-function's
	lambda-list is not yet initialized.
	* clos-method2.lisp (analyze-method-description): Likewise.
	* describe.lisp (describe-object@generic-function): Likewise.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (finalize-fast-gf, gf-never-called-p): Use a
	prototype-factory-table instead of just a prototype-table. Use
	set-funcallable-instance-function.

2004-08-27  Sam Steingold  <sds@gnu.org>

	* makemake.in (full-check): pass "-E utf-8" to clisp;
	find tests.lisp in ${TESTSDIR}

2004-06-24  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (defclass): Check that the :READER and :ACCESSOR
	argument is a really a non-nil symbol.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	* clos-genfun3.lisp: Add the contents of clos-genfun4.lisp.
	* clos-genfun4.lisp: Move into clos-genfun3.lisp.
	* clos-genfun4.lisp: Renamed from clos-genfun5.lisp.
	* clos-genfun5.lisp: Renamed from clos-genfun6.lisp.
	* clos.lisp: Update.
	* makemake.in (LPARTS): Remove clos-genfun6.
	* po/Makefile.devel (LISPSOURCES): Likewise.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	Simplify handling of generic-function docstring.
	* clos-genfun2.lisp (%make-gf): Add documentation argument.
	(make-fast-gf): Likewise.
	* clos-genfun3.lisp (do-defmethod): Update.
	(defgeneric): Pass documentation string to do-defgeneric, instead of
	calling SYSTEM::%SET-DOCUMENTATION.
	(ensure-generic): Update.
	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Accept
	documentation argument.
	(make-generic-function-form): Pass the docstring to
	make-generic-function.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	Implement the :declarations, :declare option.
	* clos-genfun2.lisp (check-gf-declspecs): New function.
	(shared-initialize-<standard-generic-function>): Accept option :declare
	as well.
	(initialize-instance-<standard-generic-function>): Likewise.
	(make-instance-<standard-generic-function>): Likewise.
	(%make-gf, make-fast-gf): Add declspecs argument.
	(compute-discriminating-function-<standard-generic-function>): Use the
	generic-function's declspecs for optimizing the dispatch code.
	* clos-genfun3.lisp (do-defmethod): Update.
	(analyze-defgeneric): Check the DECLARE option using check-gf-declspecs
	and return the declspecs as an additional value.
	(defgeneric): Pass the declspecs to do-defgeneric.
	(ensure-generic-function): Superficially fix completely broken code.
	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Accept
	additional declspecs argument.
	(make-generic-function-form): Update.
	* clos-genfun5.lisp (shared-initialize@standard-generic-function):
	Accept option :declare as well.

2004-08-25  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Upgrade to libtool-1.5.6.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* spvw_garcol.d (gc_sweep1_varobject_page): Reallocate also
	funcallable-standard-object instances.
	* spvw_update.d (do_update_sxrecord): Clear the forward-pointers bits
	also of funcallable-standard-object instances.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-discriminating-function.
	* clos-package.lisp: Likewise.
	* clos-genfun2.lisp (compute-discriminating-function)
	(compute-discriminating-function-<standard-generic-function>): New
	functions.
	(install-dispatch): Call compute-discriminating-function.
	* clos-genfun5.lisp (compute-discriminating-function): New generic
	function.
	* clos-methcomb2.lisp (compute-effective-method-as-function-form): Make
	an exception for #'compute-discriminating-function.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (install-dispatch): Use
	set-funcallable-instance-function.

2004-08-24  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Many new failures to be
	revisited.

2004-08-24  Bruno Haible  <bruno@clisp.org>

	* constobj.d (printstring_closure, printstring_compiled_closure): Use
	the term FUNCTION instead of CLOSURE.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	Implement the :generic-function-class option.
	* clos-genfun2.lisp (make-generic-function-instance): New function.
	(%make-gf, make-fast-gf): Accept a generic-function-class argument.
	* clos-genfun3.lisp (do-defmethod): Update.
	(analyze-defgeneric): Return also a generic-function-class-form value.
	(defgeneric): Pass the generic-function-class to do-defgeneric.
	(ensure-generic-function): Likewise.
	* clos-genfun4.lisp (make-generic-function): Accept a
	generic-function-class argument.
	(do-defgeneric): Likewise. Call change-class if the old generic
	function's class is different.
	(make-generic-function-form): Update.
	* clos-genfun6.lisp (make-generic-function-instance): Replace with
	make-instance.

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

	* modules/pcre/cpcre.c (PCRE-EXEC): allocate ovector of proper size

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* record.d (CLOS:STANDARD-INSTANCE-ACCESS)
	((SETF CLOS:STANDARD-INSTANCE-ACCESS)): New functions.
	* init.lisp: Export standard-instance-access.
	* clos-package.lisp: Likewise.
	* places.lisp (clos:standard-instance-access): Define setf function.
	* clos-stablehash1.lisp (shared-initialize-<standard-stablehash>):
	Use standard-instance-access instead of sys::%record-ref.
	* clos-class3.lisp (install-class-direct-accessors): Likewise.
	* clos-slots1.lisp (funcallable-standard-instance-access): New
	function.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (make-method-instance): New function.
	* clos-method4.lisp (make-method-instance): Replace with make-instance.
	* clos-methcomb2.lisp (effective-method-code-bricks): Use
	make-method-instance instead of make-instance-<standard-method>.
	* clos-genfun3.lisp (do-defmethod, analyze-defgeneric): Likewise.

2004-08-22  Bruno Haible  <bruno@clisp.org>

	* constobj.d: Make O(terminal_encoding) also available if !UNICODE.
	* encoding.d (init_dependent_encodings): Initialize it.
	* stream.d (make_keyboard_stream, make_terminal_stream_)
	(SCREEN:MAKE-WINDOW): Install O(terminal_encoding) as the stream's
	encoding also if !UNICODE.
	Fixes a bug introduced on 2004-05-21.
	Reported by Michael Livshin <clisp@cmm.kakpryg.net>.

2004-08-22  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Change the handling of --with and --without options to
	be like in GNU autoconf. Put the default of each with_* flag in one
	place, not at each use of the variable.
	* clisp-link.in: Update.

2004-08-21  Bruno Haible  <bruno@clisp.org>

	Add a slot to the SOURCE-PROGRAM-ERROR condition.
	* control.d (MACROLET, SYSTEM::FUNCTION-MACRO-LET): Pass one more
	argument to sys::make-macro-expander.
	* error.d (end_error): Pass :DETAIL instead of :FORM.
	* init.lisp: Export ext:source-program-error-detail.
	(%uncompilable): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	(%whole-form): Proclaim special.
	(%expand-form): Bind %whole-form. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(%expand-list, %expand-lambda, %expand-lambdalist, %expand-varspez)
	(%expand-varspez*, %expand-fundefs-1, %expand-funmacdefs-1): Pass both
	:FORM and :DETAIL when signaling a source-program-error.
	(defun, do): Likewise.
	(defmacro): Pass whole form to sys::make-macro-expansion.
	* defmacro.lisp (macro-call-error): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(%whole-form): Proclaim special.
	(analyze-aux, get-supplied-p, analyze-rest): Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(empty-pattern): Add 'wholevar' argument. Pass both :FORM and :DETAIL
	when signaling a source-program-error.
	(analyze1, remove-env-arg): Expect %whole-var to be bound. Pass both
	:FORM and :DETAIL when signaling a source-program-error.
	(make-macro-expansion): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(make-macro-expander): Add 'whole' argument.
	* macros1.lisp (defmacro-special): Pass whole form to
	make-macro-expansion.
	(defvar, defparameter, defconstant): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(do/do*-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(do, do*): Update.
	(psetq): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	(case-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(fcase, case): Update.
	(cond): Pass whole form to ifify.
	(ifify): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	* macros2.lisp (typecase): Pass both :FORM and :DETAIL when signaling
	a source-program-error.
	(deftype): Likewise. Bind %whole-form for analyze1.
	(define-symbol-macro): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	* defs1.lisp (with-package-iterator): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	* places.lisp (get-setf-expansion, get-setf-method): Pass both :FORM
	and :DETAIL when signaling a source-program-error.
	(check-accessor-name): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(define-setf-expander): Pass whole form to check-accessor-name. Bind
	%whole-form, for remove-env-arg.
	(defsetf): Pass whole form to check-accessor-name. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(psetf, define-modify-macro, setf, shiftf, apply, funcall, if): Pass
	both :FORM and :DETAIL when signaling a source-program-error.
	* defpackage.lisp (defpackage): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	* clos-class3.lisp (defclass): Likewise.
	(finalize-class): Signal a program-error, not a source-program-error.
	* defstruct.lisp (ds-make-boa-constructor): Add 'whole' argument. Pass
	both :FORM and :DETAIL when signaling a source-program-error.
	(defstruct): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	* cmacros.lisp (define-compiler-macro): Pass whole form to
	sys::make-macro-expansion.
	* compiler.lisp (c-FUNCTION-MACRO-LET): Pass whole form to
	make-macro-expander.
	(c-GENERIC-FLET, c-GENERIC-LABELS): Pass whole form to
	defgeneric-lambdalist-callinfo and make-generic-function-form.
	(c-MACROLET): Pass whole form to make-macro-expander.
	(compile-lambda-helper): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	* defs2.lisp (destructuring-bind): Bind %whole-var for analyze1.
	* loop.lisp (loop-syntax-error, expand-loop): Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	* clos-slots1.lisp (with-slots, with-accessors): Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	* clos-method1.lisp (initialize-instance-<standard-method>): Update.
	* clos-method2.lisp (program-error-reporter): Signal a program-error,
	not a source-program-error.
	(analyze-method-description): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	* clos-methcomb2.lisp (invalid-sort-order-error): Signal a
	program-error, not a source-program-error.
	(any-method-combination-check-options): Likewise.
	(check-em-arguments-option, check-em-generic-function-option): Add
	'whole' argument. Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	(call-method, make-method, make-method-error,): Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(call-method-arg1-error, call-method-arg2-error)
	(call-method-arg2elements-error): Likewise.
	(build-effective-method-function-form): Update for changed errfunc
	signature.
	(compute-effective-method-as-function-form): Update.
	(standard-method-combination-check-options): Signal a program-error,
	not a source-program-error.
	(standard-method-combination-check-method-qualifiers): Likewise.
	(short-form-method-combination-check-method-qualifiers): Likewise.
	(parse-method-groups): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(define-method-combination): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	* clos-genfun3.lisp (invalid-method-qualifiers-error): Likewise.
	(defmethod, declaim-method): Pass the whole form to
	analyze-method-description.
	(analyze-defgeneric): Add 'whole' argument. Pass both :FORM and :DETAIL
	when signaling a source-program-error.
	(analyze-defgeneric-lambdalist): Likewise.
	(defgeneric-lambdalist-callinfo): Likewise.
	(defgeneric): Pass the whole form to analyze-defgeneric.
	(ensure-generic-function): Update.
	* clos-genfun4.lisp (make-generic-function-form): Add 'whole' argument.
	(analyze-generic-fundefs): Likewise. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(generic-flet): Pass the whole form to analyze-generic-fundefs.
	(generic-labels): Likewise.
	* condition.lisp: Export ext:source-program-error-detail.
	(source-program-error): Slot $detail replaces $form. New slot $form.
	(expand-restart-case): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signaling a source-program-error.
	(restart-case, with-restarts): Update.
	* foreign1.lisp (DEF-C-VAR): Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(element, deref, slot, cast, offset, c-var-object, c-var-address)
	(typeof): Likewise.
	* affi1.lisp (mlibcall): Pass both :FORM and :DETAIL when signaling a
	source-program-error.
	* macros3.lisp (LETF*): Pass whole form to expand-LETF*.
	(expand-LETF*): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signaling a source-program-error.
	(LETF): Pass whole form to expand-LETF.
	(expand-LETF): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signaling a source-program-error.

2004-08-21  Bruno Haible  <bruno@clisp.org>

	* constsym.d (sys::check-symbol): Renamed from sys::%check-symbol.
	(sys::check-function-name): Renamed from sys::%check-function-name.
	* control.d: Likewise.
	* init.lisp (check-symbol, check-function-name): Remove macros.
	(defun): Use an explicit assignment instead of a macro with implicit
	side-effect.
	* defstruct.lisp (defstruct): Likewise.
	* compiler.lisp (compile): Likewise.
	* cmacros.lisp (compiler-macro-function, (setf compiler-macro-function)):
	Likewise.
	* trace.lisp (check-traceable): Likewise.
	* clos-genfun3.lisp (defmethod, declaim-method, analyze-defgeneric):
	Likewise.
	* documentation.lisp (documentation, (setf documentation)): Likewise.
	* foreign1.lisp (DEF-C-TYPE, DEF-C-VAR, DEF-CALL-OUT, DEF-LIB-CALL-OUT)
	(DEF-CALL-IN, def-c-enum): Likewise.

2004-08-21  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (insert-combined-LAPs): Use assert instead of
	check-type.

2004-06-20  Bruno Haible  <bruno@clisp.org>

	Implement the :method-class option.
	* clos-methcomb2.lisp (effective-method-code-bricks): Create
	auxiliary methods of the class given by the generic function.
	* clos-genfun2.lisp (%make-gf): Accept a method-class argument.
	(make-fast-gf): Likewise.
	* clos-genfun3.lisp (do-defmethod): Update.
	(analyze-defgeneric): As 4th value, return a form producing the
	method-class. Create methods of the class given by the :method-class
	option.
	(defgeneric): Pass the method-class to do-defgeneric.
	(ensure-generic-function): Likewise.
	* clos-genfun4.lisp (make-generic-function): Accept a method-class
	argument.
	(do-defgeneric): Likewise.
	(make-generic-function-form): Update.

2004-08-21  Bruno Haible  <bruno@clisp.org>

	* m4/connect.m4 (CL_CONNECT): Bail out if the connect() declaration
	could not be found.
	* m4/ioctl.m4 (CL_IOCTL): Bail out if the ioctl() declaration could not
	be found. Undo last patch.
	* m4/select.m4 (CL_SELECT): Bail out if the select() declaration could
	not be found.
	* m4/tcpconn.m4 (CL_TCPCONN): Bail out if the inet_addr() or
	setsockopt() declaration could not be found.

2004-08-20  Sam Steingold  <sds@gnu.org>

	* control.d (%CHECK-FUNCTION-NAME, %CHECK-SYMBOL): change the
	order of arguments to match that of CHECK-TYPE
	* init.lisp (CHECK-FUNCTION-NAME, CHECK-SYMBOL): ditto
	* clos-genfun3.lisp, cmacros.lisp, compiler.lisp, defstruct.lisp:
	* documentation.lisp, foreign1.lisp, trace.lisp: update callers

2004-08-20  Sam Steingold  <sds@gnu.org>

	* configure.in: added "sysre" option to optionally disable
	the use of system-wide regexp library

2004-08-20  Sam Steingold  <sds@gnu.org>

	ported RAWSOCK to win32
	* modules/rawsock/configure.in: check for <winsock2.h>,
	<ws2tcpip.h> and ws2_32
	* modules/rawsock/rawsock.c (rawsock_t): new typedef
	(socketpair, recvmsg, sendmsg, ifreq): not present on win32

2004-08-20  Sam Steingold  <sds@gnu.org>

	* m4/ioctl.m4 (IOCTL_REQUEST_T): quote shell variable to avoid a
	bash warning

2004-08-20  Sam Steingold  <sds@gnu.org>

	* control.d (make_variable_frame): clarified and unified messages

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

	* init.lisp (source-program-error, source-program-error-form): export
	(%uncompilable, %expand-form, %expand-list, %expand-lambda)
	(%expand-lambdalist, %expand-varspez, %expand-varspez*)
	(%expand-fundefs-1, %expand-funmacdefs-1, defun, do):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* affi.lisp (mlibcall): ditto
	* clos-class3.lisp (defclass, finalize-class): ditto
	* clos-genfun2.lisp (check-gf-lambdalist+argorder)
	(shared-initialize-<standard-generic-function>):
	errfunc accepts FORM as the first argument
	* clos-genfun3.lisp (invalid-method-qualifiers-error)
	(analyze-defgeneric, analyze-defgeneric-lambdalist):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
	errfunc accepts FORM as the first argument
	* clos-genfun4.lisp (analyze-generic-fundefs):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* clos-methcomb2.lisp (invalid-sort-order-error)
	(any-method-combination-check-options, check-em-arguments-option)
	(check-em-generic-function-option, call-method, make-method)
	(make-method-error, call-method-arg1-error, call-method-arg2-error)
	(call-method-arg2elements-error, parse-method-groups)
	(standard-method-combination-check-options)
	(standard-method-combination-check-method-qualifiers)
	(short-form-method-combination-check-method-qualifiers)
	(define-method-combination):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
	errfunc accepts FORM as the first argument
	* clos-method1.lisp (initialize-instance-<standard-method>):
	errfunc accepts FORM as the first argument
	* clos-method2.lisp (decompose-specialized-lambda-list)
	(program-error-reporter, analyze-method-description):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
	errfunc accepts FORM as the first argument
	* clos-slots1.lisp (with-slots, with-accessors):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* compiler.lisp (c-analyze-lambdalist):
	errfunc accepts FORM as the first argument
	(compile-lambda-helper): pass :FORM to ERROR-OF-TYPE
	SOURCE-PROGRAM-ERROR
	* condition.lisp (define-condition, handler-case, restart-bind)
	(expand-restart-case): pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	(source-program-error): added $FORM slot
	* constsym.d (:FORM): MAKE-CONDITION argument for SOURCE-PROGRAM-ERROR
	* control.d (FUNCTION, check_setq_body, check_varspec)
	(make_variable_frame, fehler_funspec, MACROLET, FUNCTION-MACRO-LET)
	(CASE, RETURN-FROM, TAGBODY, GO, DECLARE, %CHECK-SYMBOL):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* defmacro.lisp (macro-call-error, analyze-aux, get-supplied-p)
	(analyze-rest, empty-pattern, analyze1, remove-env-arg)
	(make-macro-expansion): ditto
	* defpackage.lisp (defpackage): ditto
	* defs1.lisp (with-package-iterator): ditto
	* defstruct.lisp (ds-make-boa-constructor, defstruct):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
	errfunc accepts FORM as the first argument
	* error.d (end_error, check_symbol_non_constant_replacement)
	(check_symbol_special, check_funname_replacement):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* eval.d (parse_dd, get_closure, eval1, fehler_eval_zuwenig)
	(fehler_eval_dotted, fehler_eval_zuviel): ditto
	* foreign1.lisp (DEF-C-VAR, flet/err): ditto
	* lambdalist.lisp (err-misplaced, err-invalid, analyze-lambdalist)
	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist)
	(analyze-modify-macro-lambdalist)
	(analyze-method-combination-lambdalist):
	errfunc accepts FORM as the first argument;
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* loop.lisp (loop-syntax-error, expand-loop):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
	* macros1.lisp (defvar, defparameter, defconstant, do/do*-expand)
	(psetq, case-expand, ifify, cond): ditto
	* macros2.lisp (typecase, deftype, define-symbol-macro): ditto
	* macros3.lisp (expand-LETF*, expand-LETF): ditto
	* places.lisp (get-setf-expansion, get-setf-method, defsetf)
	(check-accessor-name, psetf, define-modify-macro, setf, shiftf)
	(apply, funcall, if):
	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
	errfunc accepts FORM as the first argument

2004-08-20  Bruno Haible  <bruno@clisp.org>

	* error.d (check_funname_replacement): Improve error message.

2004-06-19  Bruno Haible  <bruno@clisp.org>

	* clos-genfun1.lisp (standard-generic-function): New slot
	effective-method-cache.
	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>):
	Initialize it.
	(compute-applicable-methods-effective-method): Cache the effective
	method in the effective-method-cache alist.
	* clos-genfun3.lisp (std-add-method, std-remove-method): Clear the
	effective-method-cache.

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

	recoverable FUNCTION-NAME and SYMBOL source checks
	* constsym.d, subr.d (check_function_name, check_symbol): added
	* control.d (%CHECK-FUNCTION-NAME, %CHECK-SYMBOL): implemented
	* init.lisp (check-symbol, check-function-name): new macros
	* clos-genfun3.lisp (defmethod, declaim-method, analyze-defgeneric):
	use CHECK-FUNCTION-NAME
	* compiler.lisp (compile): ditto
	* cmacros.lisp (compiler-macro-function)
	((setf compiler-macro-function)): CHECK-FUNCTION-NAME is now a macro
	* documentation.lisp (documentation): ditto
	* trace.lisp (check-traceable): ditto
	* functions.lisp (check-function-name): removed

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

	* clos-class5.lisp (change-class): avoid a compilation warning

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

	* clos-genfun3.lisp (analyze-defgeneric): fixed a typo in error
	message: DEFSTRUCT -> DEFGENERIC

2004-08-19  Bruno Haible  <bruno@clisp.org>

	* configure.in: Test for sys/inttypes.h, not sys/int_types.h.
	* stdint.h.in: Fix the reversed SKIP_LOCAL_DEFINITIONS logic.
	Rename SKIP_LOCAL_DEFINITIONS to HAVE_SYSTEM_INTTYPES. On Solaris,
	use <sys/inttypes.h>, not <sys/int_types.h>.

2004-08-19  Bruno Haible  <bruno@clisp.org>

	* sequence.d (get_seq_type): Update the code for user-defined sequence
	types.
	Reported by Jörg Höhle.

2004-06-19  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-applicable-methods-using-classes.
	* clos-package.lisp: Likewise.
	* clos-methcomb2.lisp (sort-applicable-methods): Accept the classes of
	the required arguments, not the required arguments themselves.
	(compute-effective-method-as-function-form): Bootstrapping hack for
	compute-applicable-methods-using-classes.
	* clos-genfun2.lisp (compute-applicable-methods-using-classes)
	(compute-applicable-methods-using-classes-<standard-generic-function>):
	New functions.
	(check-method-only-standard-specializers): Add caller argument.
	(compute-applicable-methods-effective-method): Call
	compute-applicable-methods-using-classes before calling
	compute-applicable-methods.
	(compute-applicable-methods-<standard-generic-function>): Update.
	* clos-genfun5.lisp (compute-applicable-methods-using-classes): New
	generic function.

2004-08-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (PC386): Define also on Cygwin.

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

	* Makefile.devel (SSHUP): replaced gnudist and cons with podval
	(src/autoconf/aclocal.m4): use egrep instead of grep and filter
	out also _CANONICAL_ and AC_PREREQ; also pass full path to aclocal
	to create a stand-alone aclocal.m4 instead of the one full of
	include statements

2004-06-19  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-applicable-methods.
	* clos-package.lisp: Likewise.
	* clos-genfun2.lisp (compute-applicable-methods)
	(compute-applicable-methods-<standard-generic-function>)
	(check-method-only-standard-specializers): New functions.
	(compute-applicable-methods-effective-method): Use
	compute-applicable-methods.
	* clos-genfun5.lisp (compute-applicable-methods@standard-generic-function):
	Use compute-applicable-methods-<standard-generic-function>.

2004-08-18  Bruno Haible  <bruno@clisp.org>

	Make it work with automake-1.9.
	* Makefile.devel (src/autoconf/aclocal.m4): Also filter out the
	AC_CONFIG_HEADER and AC_CONFIG_FILES lines.
	($(CONFIGURES)): Pass a second --include option to autoconf.

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

	* eval.d (eval1): do not ignore the return value of check_fdefinition()
	Reported by Владимир Слепнев (Vladimir Slepnev) <slepnev_v@rambler.ru>

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

	* install.lisp (*clisp-runtime*): always enclose pathname in quotes
	(*clisp-args*): fixed slashes
	Reported by Владимир Слепнев (Vladimir Slepnev) <slepnev_v@rambler.ru>

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

	* modules/postgresql/postgresql.lisp: updated for PostgreSQL 7.4

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

	* configure.in: check for <sys/int_types.h>
	* stdint.h.in [__sun]: include <sys/int_types.h> only when present
	Reported by Michael Livshin <clisp@cmm.kakpryg.net>

2004-08-12  Sam Steingold  <sds@gnu.org>

	standard I/O streams are handle streams in batch mode
	* stream.d (init_standard_input, init_standard_output): accept
	second argument batch_p which ensures that the result is not a
	terminal stream and therefore can be made binary
	(init_streamvars): pass batch_p to init_standard_i/o
	* lispbibl.d (init_streamvars): updated comments

2004-08-12  Sam Steingold  <sds@gnu.org>

	* modules/bindings/glibc/Makefile, modules/bindings/win32/Makefile:
	* modules/fastcgi/Makefile.in, modules/matlab/Makefile:
	* modules/netica/Makefile, modules/oracle/Makefile.in:
	* modules/postgresql/Makefile.in: init CLISP and other make variables
	Reported by Steve Eichblatt <steve@eichblatt.us>

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

	* reploop.lisp (make-xterm-io-stream): use :DIRECTION :IO
	instead of a TWO-WAY-STREAM

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

	finished the *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* patch
	* init.lisp (specialized-lambda-list-to-ordinary): new function
	(*defun-accept-specialized-lambda-list*): enable just before the end
	(defun): use it when *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* is non-NIL
	* compiler.lisp (c-LAMBDABODY, c-LABELS, c-FUNCALL-INLINE): ditto
	* eval.d (get_closure): ditto
	* constsym.d (spelalist_to_ordinary): added
	* clos-method2.lisp (program-error-reporter): new helper macro
	(extract-lambda-list, extract-specializer-names): use it

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

	ANSI compliance <http://www.lisp.org/HyperSpec/Body/sec_19-2-3.html>:
	"for functions that manipulate or inquire about files in the file
	 system, the pathname argument to such a function is merged with
	 *DEFAULT-PATHNAME-DEFAULTS* before accessing the file system"
	* pathname.d (merge_defaults): new function
	(TRUENAME, PROBE-FILE, PROBE-DIRECTORY, DELETE-FILE, RENAME-FILE)
	(OPEN, DIRECTORY, CD, shorter_directory, ENSURE-DIRECTORIES-EXIST)
	(FILE-WRITE-DATE, FILE-AUTHOR): call it

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

	* record.d (SET-FUNCALLABLE-INSTANCE-FUNCTION): fixed G++ compilation

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

	* makemake.in: fixed and completely unified -with-* processing
	* configure (with-debug): pass "--verbose=yes" to makemake

2004-06-20  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export extract-lambda-list, extract-specializer-names.
	* clos-package.lisp: Likewise.
	* clos-method2.lisp (lambda-list-keyword-p): Remove function.
	(decompose-specialized-lambda-list): New function.
	(extract-lambda-list, extract-specializer-names): New functions.
	(analyze-method-description): Return a list of initargs forms instead
	of a method-producing form. Use decompose-specialized-lambda-list.
	Pass on the documentation string instead of dropping it.
	* clos-genfun3.lisp (defmethod): Update.
	(do-defmethod): Accept either a method or a list of initargs. In the
	latter case, create the method here.
	(declaim-method): Update.
	(analyze-defgeneric): Update.

2004-08-11  Bruno Haible  <bruno@clisp.org>

	* makemake.in (*.fas): Grant more memory: 800KW instead of 750KW.

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

	* stream.d (MAKE-STREAM): use an intelligent DIRECTION default

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

	* configure.in: avoid identical repeated messages

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

	* pathname.d (fehler_delete_open, fehler_rename_open): fixed messages

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

	* constsym.d (*loop-ansi*): new variable
	* spvw.d (init_symbol_values): initialize *LOOP-ANSI* to NIL
	* misc.d (SYS::SET-ANSI): reset *LOOP-ANSI*
	* loop.lisp (expand-loop): given CLtL2 syntax removed by ANSI,
	either warn or signal an error, depending on *LOOP-ANSI*

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

	* init.lisp (*suppress-check-redefinition*): initialize to T

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

	* modules/clx/new-clx/clx.f (get_event_mask): use
	fehler_proper_list_dotted() instead of fehler_proper_list()

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (list_length): New declarations.
	(fehler_proper_list_dotted): Renamed from fehler_proper_list.
	(fehler_proper_list_circular): New declaration.
	(list_to_mv): Update.
	* genclisph.d (main): Emit fehler_proper_list_dotted instead of
	fehler_proper_list.
	* error.d (fehler_proper_list_dotted): Renamed from fehler_proper_list.
	(fehler_proper_list_circular): New function.
	* list.d (endp, LIST-LENGTH, memq): Update.
	(list_length): Export.
	(SYS::LIST-LLENGTH): Instead of llength1, use list_length. Signal an
	error when the argument is a circular list.
	* sequence.d (LENGTH): Likewise.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (gf-keyword-arguments): Enable keyword checking
	also when the generic function mentions &key but no method mentions it.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* debug.d (GC): Use UL_to_I for representing the result.

2004-08-08  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Many new failures to be
	revisited.

2004-08-08  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_symbol_values): Initialize
	*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* to NIL.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_array_recursion): Check *PRINT-LEVEL* before calling
	pr_array_recursion recursively.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* io.d (read_delimited_list): If *read-suppress* is true, return NIL.

2004-08-08  Bruno Haible  <bruno@clisp.org>

	* io.d (read_token_1, read_macro, read_internal, make_references)
	(read_delimited_list_recursive, rpar_reader, fehler_dispatch_zahl)
	(char_reader, radix_2, radix_reader, complex_reader, uninterned_reader)
	(vector_reader, array_reader, lookup_label, label_definition_reader)
	(label_reference_reader, interpret_feature, structure_reader)
	(fehler_closure_badchar, closure_reader, ansi_pathname_reader): Signal
	READER-ERROR instead of STREAM-ERROR in all cases.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* io.d (read_macro, read_internal, fehler_dot, bit_vector_reader)
	(fehler_read_eval_forbidden, not_readable_reader, syntax_error_reader):
	Signal READER-ERROR instead of STREAM-ERROR in some cases.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	Fix crash of (COPY-READTABLE NIL some-readtable).
	* io.d (COPY-READTABLE): Store from_readtable in the STACK. Fixes bug
	introduced on 2003-06-08.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	For invalid condition designators, signal a TYPE-ERROR.
	* condition.lisp (try-coerce-to-condition): Renamed from
	coerce-to-condition.
	(valid-condition-designator-p): New function.
	(coerce-to-condition): New function.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* package.d (apply_symbols): Interpret an argument of nil as an empty
	list, not as a single symbol.
	* defpackage.lisp (shadowing-import-cerror, import-cerror): Handle
	the NIL symbol accordingly.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* places.lisp (setf-VALUES-aux): Use only the first store variable
	for each subform. Bind the others to nil.

2004-08-07  Bruno Haible  <bruno@clisp.org>

	* sacla-tests: New directory.
	* makemake.in (SACLATESTSDIR): New variable.
	(check-sacla-tests, ${SACLATESTSDIR}): New targets.
	(check): Depend on sacla-tests.
	(clean1): Remove also the sacla-tests files.

2004-08-06  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (make-trampoline): Make it work with #+CLISP-DEBUG too.

2004-06-16  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export the generic-function-* accessors.
	* clos-package.lisp: Likewise.

2004-06-16  Bruno Haible  <bruno@clisp.org>

	* documentation.lisp (documentation): For generic functions, take
	the doc string from the generic function object, not its name.
	((setf documentation)): For generic functions, store the doc string
	in the generic function object, not in *documentation*.

2004-06-16  Bruno Haible  <bruno@clisp.org>

	* clos-genfun5.lisp ((setf generic-function-name)): New function.

2004-07-29  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (genericlambda_function_p): Renamed from genericfunctionp.
	* record.d (check_genericlambda_function_replacement): Renamed from
	check_generic_function_replacement.
	(check_genericlambda_function): Renamed from check_generic_function.
	(SYS::%COPY-GENERIC-FUNCTION)
	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): Update.
	* predtype.d (GENERIC-FUNCTION-P): Remove function.
	* eval.d (FUNTAB): Remove generic-function-p.
	* savemem.lisp (%saveinitmem): Use typep instead of generic-function-p.
	* type.lisp (GENERIC-FUNCTION, STANDARD-GENERIC-FUNCTION): No longer
	atomic types.
	* clos-genfun2.lisp (compute-dispatch): Don't declare
	GENERIC-FUNCTION-P inline.
	* clos-method2.lisp (analyze-method-description): Use typep-class
	instead of generic-function-p.
	* clos-genfun3.lisp (do-defmethod): Likewise.
	* clos-genfun4.lisp (do-defgeneric): Likewise.

2004-06-16  Bruno Haible  <bruno@clisp.org>

	* clos-genfun1.lisp (print-object-<funcallable-standard-object>): New
	function.
	(print-object): New preliminary function.
	* clos-print.lisp (print-object@funcallable-standard-object): New
	method.

2004-06-19  Bruno Haible  <bruno@clisp.org>

	* record.d (SYS::CLOSURE-CODEVEC): Return the code vector itself,
	don't convert it to a list.
	* compiler.lisp (signature): Convert the code vector to a list here.

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

	* modules/syscalls/configure.in: check
	for <sys/utsname.h> with CL_UTSNAME,
	for getrusage() with CL_RUSAGE, and
	for lstat() with CL_LSTAT
	this avoids compile warnings by defining the corresponding
	constants identically in syscalls/config.h and unixconf.h

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

	* modules/berkeley-db/bdb.c: use DB.dbenv when practical
	(close_errfile, reset_errfile): functions, not macros
	(close_errpfx): new function
	(BDB:DBE-CLOSE, BDB:DB-CLOSE): call it
	(dbe_get_errfile, dbe_get_errpfx): new functions
	(BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS, BDB:DB-SET-OPTIONS)
	(BDB:DB-GET-OPTIONS): accept :ERRPFX

2004-06-13  Bruno Haible  <bruno@clisp.org>

	Make GENERIC-FUNCTION a subclass of FUNCALLABLE-STANDARD-OBJECT.
	* spvw_debug.d (nobject_out1): Print FUNCALLABLE-STANDARD-OBJECTs
	specially, instead of the old GENERIC-FUNCTIONs.
	* io.d (pr_cclosure): Remove special case of old generic-functions.
	* predtype.d (COMPILED-FUNCTION-P): Exclude all
	FUNCALLABLE-STANDARD-OBJECTs instead of the old GENERIC-FUNCTIONs.
	(TYPE-OF, CLOS:CLASS-OF): Remove special case of old generic-functions.
	(enum_hs_standard_generic_function): Remove enumeration item.
	(heap_statistics_mapper): Remove special case of old generic-functions.
	* subtypep.lisp (STANDARD-OBJECT, type-category): Remove special casing
	of GENERIC-FUNCTION and STANDARD-GENERIC-FUNCTION.
	(canonicalize-type): Convert FUNCTION to a class.
	* clos-class3.lisp: Don't pass <standard-generic-function> to %defclos.
	(<generic-function>, <standard-generic-function>): Don't initialize as
	built-in classes.
	* clos-genfun1.lisp (generic-function): New class.
	(<generic-function>): New variable.
	(shared-initialize-<generic-function>): New function.
	(standard-generic-function): New class.
	(<standard-generic-function>): New variable.
	(std-gf-signature): Renamed from gf-signature.
	(std-gf-argorder): Renamed from gf-argorder.
	(std-gf-methods): Renamed from gf-methods.
	(std-gf-method-combination): Renamed from gf-method-combination.
	(std-gf-default-method-class, std-gf-lambda-list, std-gf-documentation)
	(std-gf-declspecs, std-gf-initialized): New accessors.
	* clos-methcomb2.lisp (call-method-duplicates-error)
	(effective-method-code-bricks, build-effective-method-function-form):
	Update.
	* clos-genfun2.lisp (countup): New function, moved here from
	clos-genfun3.lisp.
	(check-gf-lambdalist+argorder): New function, partially extracted from
	analyze-defgeneric.
	(shared-initialize-<standard-generic-function>): New function.
	(initialize-instance-<standard-generic-function>): New function.
	(make-instance-<standard-generic-function>): New function.
	(%make-gf): Use make-instance-<standard-generic-function>.
	(make-fast-gf): Take a lambda-list and argument-precedence-order as
	arguments.
	(finalize-fast-gf, gf-never-called-p, compute-dispatch)
	(compute-applicable-methods-effective-method): Update.
	* clos-method2.lisp (analyze-method-description): Update.
	* clos-genfun3.lisp (check-signature-congruence)
	(check-method-qualifiers, std-add-method, std-remove-method)
	(std-find-method): Update.
	(do-defmethod): Create a GF lambda-list, not just a GF signature,
	from the initial method.
	(countup): Moved to clos-genfun2.lisp.
	(analyze-defgeneric): Change the second return value from argorder to
	an argument-precendence-order list. Use check-gf-lambdalist+argorder.
	(defgeneric): Update. Pass the argument-precendence-order and also the
	lambda-list to do-defgeneric.
	(ensure-generic-function): Likewise.
	* clos-genfun4.lisp (make-generic-function): Take a lambda-list and
	argument-precedence-order as arguments.
	(do-defgeneric): Likewise. Use
	shared-initialize-<standard-generic-function> to change an existing
	generic function.
	(make-generic-function-form): Update. Pass a lambda-list and
	argument-precedence-order to make-generic-function.
	* clos-genfun5.lisp (shared-initialize@generic-function)
	(shared-initialize@standard-generic-function): New functions.
	(no-applicable-method, missing-required-method, no-primary-method)
	(no-next-method): Update.
	(check-generic-function-initialized): New function.
	(generic-function-name, generic-function-methods)
	(generic-function-method-class, generic-function-lambda-list)
	(generic-function-method-combination)
	(generic-function-argument-precedence-order)
	(generic-function-declarations): New generic functions.
	(compute-applicable-methods): Update.
	* 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): Update.
	* clos-genfun6.lisp: New file.
	* clos.lisp: Load it.
	* describe.lisp (describe-object@generic-function): Update.
	* makemake.in (LPARTS): Add clos-genfun6.
	* po/Makefile.devel (LISPSOURCES): Likewise.

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

	* modules/berkeley-db/bdb.c: include <time.h> and/or <sys/time.h>
	(time_stamp): new function
	(CLOSE_ERRFILE): call time_stamp() before fclose()
	(my_fopen): call time_stamp() after fopen()
	(BDB:DB-CLOSE): do not close errfile when DB has a parent
	* modules/berkeley-db/test.tst (finish-file): always return NIL
	* modules/berkeley-db/configure.in: check for gettimeofday(),
	localtime() and strftime(); also check for <sys/time.h> and <time.h>

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

	* modules/rawsock/rawsock.c (parse_buffer_arg): new function
	(RECV, SOCK-READ, SEND, SOCK-WRITE): use it to correct STACK handling
	* modules/rawsock/test.tst: new file

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

	* utils/modprep.lisp (print-tables-1): fixed <checker>_table_size

2004-08-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (built_in_class_length): New macro.
	* predtype.d (typep_class, typep_classname): Handle the case of
	built-in-class correctly.
	Reported by Sam Steingold.

2004-06-12  Bruno Haible  <bruno@clisp.org>

	Implement funcallable instances.
	* lispbibl.d (Class): New field funcallablep.
	(closure_flags): Renamed from cclosure_flags.
	(Closure_flags): Renamed from Cclosure_flags.
	(Cclosure_seclass): Shift by 4 bits.
	(Cclosure_set_seclass): Likewise. Don't replace the entire
	record_flags.
	(closflags_instance_B, closure_instancep, Closure_instancep): New
	macros.
	(Closure_name): Add a conditional for the case of funcallable
	instances.
	(TheInstance): Can be closure_type as well.
	(regular_instance_p): Renamed from instancep.
	(instancep, funcallable_instance_p): New macros.
	(allocate_cclosure_copy): Update.
	* genclisph.d (main): Emit definitions for closure_flags,
	closure_instancep, Closure_instancep, TheClosure. Update TheInstance,
	instancep.
	* eval.d (get_closure): Update.
	(init_cclosures): Construct O(endless_loop_code).
	* io.d (pr_closure): Treat the case of funcallable instances.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat the case of funcallable
	instances.
	(heap_statistics_mapper): Likewise.
	* hashtabl.d (sxhash_atom): Likewise.
	* record.d (SYS::%MAKE-CLOSURE): Update.
	(CLOS:SET-FUNCALLABLE-INSTANCE-FUNCTION): New function.
	(CLOS::FUNCALLABLE-INSTANCE-P): New function.
	(CLOS::ALLOCATE-FUNCALLABLE-INSTANCE): New function.
	(do_allocate_instance, update_instance): Use
	ALLOCATE-FUNCALLABLE-INSTANCE if the instances have to be funcallable.
	* init.lisp: Export funcallable-standard-class,
	funcallable-standard-object, set-funcallable-instance-function.
	* clos-package.lisp: Likewise.
	* clos-class1.lisp (semi-standard-class): New class.
	(<semi-standard-class>, *<semi-standard-class>-defclass*): New
	variables.
	(standard-class): Inherit from semi-standard-class.
	(class-current-version, class-fixed-slot-locations, class-instantiated)
	(class-finalized-direct-subclasses-table, class-prototype): Generalize
	to work on semi-standard-class.
	(class-funcallablep): New accessor.
	(*<standard-class>-instance-size*): Update.
	(<funcallable-standard-class>)
	(*<funcallable-standard-class>-class-version*)
	(<funcallable-standard-object>): New variables.
	(semi-standard-class-p): New function.
	* clos-class2.lisp (<funcallable-standard-class>)
	(<funcallable-standard-object>): New variables.
	* clos-class3.lisp (ensure-class-using-class-<t>): Add a special case
	for <funcallable-standard-class>.
	(default-direct-superclasses): Special case for
	<funcallable-standard-class>.
	(validate-superclass): Add special support for
	<funcallable-standard-object>.
	(compute-effective-slot-definition-<class>): Use semi-standard-class-p
	instead of standard-class-p.
	(compute-slots-<slotted-class>-around): Likewise.
	(install-class-direct-accessors): Likewise.
	(shared-initialize-<semi-standard-class>): Renamed from
	shared-initialize-<standard-class>.
	(shared-initialize-<standard-class>): New function.
	(finalize-instance-semi-standard-class): Renamed from
	finalize-instance-standard-class. Use semi-standard-class-p instead of
	standard-class-p. Initialize the funcallablep slot. Initialize the
	instance-size differently for funcallable objects.
	(make-instances-obsolete-<semi-standard-class>): Renamed from
	make-instances-obsolete-standard-class.
	(make-instances-obsolete-<semi-standard-class>-nonrecursive): Renamed
	from make-instances-obsolete-standard-class-nonrecursive.
	(update-subclasses-for-redefined-class): Use semi-standard-class-p
	instead of standard-class-p.
	(update-subclasses-for-redefined-class-nonrecursive): Likewise.
	Initialize <semi-standard-class>.
	* clos-class4.lisp (shared-initialize@funcallable-standard-class):
	New method.
	* clos-class5.lisp (allocate-instance, make-instance): Generalize
	the fallback method to class semi-standard-class.
	(do-change-class): New function.
	(change-class): Add more methods.
	(make-instances-obsolete): Update.
	* clos-class6.lisp (initialize-instance-<funcallable-standard-class>)
	(make-instance-<funcallable-standard-class>): Replace.
	(class-funcallablep, (setf class-funcallablep)): New functions.
	(class-current-version, class-fixed-slot-locations, class-instantiated)
	(class-finalized-direct-subclasses-table, class-prototype): Generalize
	to class semi-standard-class.
	(finalize-inheritance, compute-slots): Likewise.
	(validate-superclass): Add special support for
	<funcallable-standard-object>.
	* compiler.lisp (make-trampoline): New function.
	* clos-genfun1.lisp (funcallable-standard-class): New class.
	(<funcallable-standard-class>)
	(*<funcallable-standard-class>-class-version*)
	(*<funcallable-standard-class>-instance-size*): New variables.
	(make-instance-<funcallable-standard-class>)
	(initialize-instance-<funcallable-standard-class>)
	(shared-initialize-<funcallable-standard-class>): New functions.
	(funcallable-standard-object): New class.
	(<funcallable-standard-object>): New variable.
	* clos-slotdef1.lisp (convert-direct-slots): Use semi-standard-class-p
	instead of standard-class-p.
	* clos-slotdef3.lisp (direct-slot-definition-class)
	(effective-slot-definition-class): Generalize to class
	semi-standard-class.
	* clos-print.lisp (print-object@class): Use semi-standard-class-p
	instead of standard-class-p.

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

	* modules/berkeley-db/bdb.c (CLOSE_ERRFILE): new macro
	(RESET_ERRFILE): use it
	(BDB:DBE-CLOSE, BDB:DB-CLOSE): close errfile

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

	* genclisph.d (number_immediatep): export
	(positivep): use it

2004-06-12  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Closure, Cclosure): Rename field clos_name to
	clos_name_or_class_version.
	(Closure_name): New macro.
	* spvw_circ.d (get_circ_mark, get_circ_unmark): Use it.
	* spvw_debug.d (nobject_out1): Likewise.
	* eval.d (trace_call, match_cclosure_key, eval_closure): Likewise.
	(interpret_bytecode_): Likewise.
	* io.d (pr_cclosure, pr_cclosure_lang): Likewise.
	* record.d (SYS::CLOSURE-NAME): Likewise.
	(SYS::%MAKE-CLOSURE, SYS::CONSTANT-INITFUNCTION-P)
	(CLOS::%SHARED-INITIALIZE, do_initialize_instance)
	(CLOS::%MAKE-INSTANCE): Likewise.
	* control.d (FUNCTION-SIDE-EFFECT): Likewise. Check that Cdr(fdef) is
	a cons before accessing its Car.
	* functions.lisp (function-lambda-expression, function-name): Use
	sys::closure-name.
	* clos-genfun2.lisp (need-gf-already-called-warning-p): Likewise.
	* disassem.lisp (disassemble): Likewise.
	* edit.lisp (ed, uncompile): Likewise.

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

	* modules/berkeley-db/bdb.c (object_handle): renamed to ...
	(bdb_handle): ... to avoid a non-existent conflict with foreign.d

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* clos.lisp: Load clos-methcomb3, clos-methcomb4.
	* clos-methcomb1.lisp (method-combination): Define using defclass,
	as subclass of metaobject.
	(<method-combination>): New variable.
	(initialize-instance-<method-combination>)
	(make-instance-<method-combination>, copy-method-combination): New
	functions.
	* clos-methcomb2.lisp: Use make-instance-<method-combination> instead
	of make-method-combination.
	* clos-methcomb3.lisp: New file.
	* clos-methcomb4.lisp: New file.
	* clos-genfun3.lisp (analyze-defgeneric): Use typep instead of
	method-combination-p.
	* clos-genfun5.lisp (find-method-combination): Moved to
	clos-methcomb4.lisp.
	* makemake.in (LPARTS): Add clos-methcomb3, clos-methcomb4.
	* po/Makefile.devel (LISPSOURCES): Likewise.

2004-07-31  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (BDB:LOG-FILE): use BUFSIZ instead of
	non-existent MAX_PATH
	(BDB:DB-PUT): do not discard db->put() return value

2004-07-30  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (POSIX:SYSCONF, POSIX:CONFSTR)
	(POSIX:LIMITS): accept an optional `what' argument
	(POSIX:MEMORY-STATUS) [win32]: new function
	* modules/syscalls/posix.lisp (physical-memory): new function
	(sysconf, confstr, limits) [unix]: removed structures
	(memory-status) [win32]: new structure
	* modules/syscalls/configure.in: check for GlobalMemoryStatusEx()
	and setrlimit()

2004-07-30  Sam Steingold  <sds@gnu.org>

	* utils/modprep.lisp (print-tables-1): print the definition
	of "struct c_lisp_pair" outside of WITH-CONDITIONAL

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export method, standard-method, method-function,
	method-generic-function, method-lambda-list, method-specializers,
	method-qualifiers, accessor-method-slot-definition.
	* clos-package.lisp: Likewise.

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Renamed function slot to
	fast-function. Add function slot.
	(initialize-instance-<standard-method>): Accept either :function or
	fast-function argument. Rename :wants-next-method-p keyword to
	clos::wants-next-method-p.
	* clos-methcomb2.lisp (method-list-to-continuation)
	(std-method-function-or-substitute): New functions.
	(callable-method-form-p, call-method-arg2elements-error): New
	functions.
	(effective-method-code-bricks): Use callable-method-form-p. Generate
	different code for CALL-METHOD on methods with slow calling convention.
	(build-effective-method-function-form): Don't optimize CALL-METHOD
	on methods with slow calling convention.
	* clos-genfun3.lisp (std-add-method): Store the initfunction's
	result in the fast-function. Don't use the initfunction if there is
	a slow function.
	* clos-class3.lisp (install-class-direct-accessors): Update.
	* clos-class5.lisp (shared-initialize, reinitialize-instance)
	(initialize-instance, allocate-instance, make-instance): Update.
	* clos-method2.lisp (analyze-method-description): Update.
	* clos-method3.lisp (initialize-instance@standard-method): Update.
	(method-function): New generic function.
	* disassem.lisp (disassemble@standard-method): Show the fast-function
	if available.

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

	* modules/syscalls/calls.c (POSIX::USAGE):
	return all 16 slots of struct rusage
	(POSIX::LIMITS): return 11 slots
	* modules/syscalls/posix.lisp (POSIX::USAGE): slots SHARED-MEMORY,
	DATA-MEMORY, and STACK-MEMORY replace slot INT-RSS
	(POSIX::LIMITS): fixed slots to comply with SUS

2004-07-29  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef1.lisp (slot-definition, direct-slot-definition)
	(effective-slot-definition, structure-direct-slot-definition)
	(structure-effective-slot-definition): Prefix all slot names with $.
	* clos-stablehash1.lisp (standard-stablehash): Likewise.
	* clos-specializer1.lisp (specializer, eql-specializer): Likewise.
	* clos-class1.lisp (class, slotted-class, structure-class)
	(standard-class): Likewise.
	* clos-method1.lisp (standard-method): Likewise.
	* clos-slotdef2.lisp (structure-effective-slot-definition-initff)
	(structure-effective-slot-definition-readonly): Update.
	* clos-slotdef3.lisp (equal-direct-slot): Update.
	* clos-print.lisp (print-object@class): Update.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Rename slot origin to
	from-defgeneric.
	(std-method-from-defgeneric): Renamed from std-method-origin.
	(initialize-instance-<standard-method>): Accept keyword
	clos::from-defgeneric instead of :origin.
	* clos-method2.lisp (analyze-method-description): Update.
	* clos-genfun3.lisp (std-remove-method): Set the from-generic flag
	of the old method to nil.
	* clos-genfun4.lisp (do-defgeneric): Update.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (std-method-generic-function): Renamed from
	std-method-gf.
	(initialize-instance-<standard-method>): Accept keyword clos::gf
	instead of :gf.
	* clos-method3.lisp (method-generic-function): New function.
	* clos-genfun3.lisp (%call-next-method, std-add-method)
	(std-remove-method): Update.
	* clos-genfun4.lisp (do-defgeneric): Update.
	* clos-genfun5.lisp (%no-next-method): Update.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (initialize-instance-<standard-accessor-method>):
	Check the slot-definition argument.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Add documentation slot.
	(initialize-instance-<standard-method>): Accept :documentation
	argument.
	* documentation.lisp (documentation@<standard-method>@t): Access the
	doc string in the standard-method object, not in the hash table.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (print-object-<standard-method>): Don't signal an
	error if the method is not yet initialized.

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

	composite streams operate on their constituent streams, not themselves
	* stream.d (unread_char): recursively unread for composite streams
	(read_char): recursively clear unread_B for composite streams
	This fixes the REPL bug whereby "1 ," signals an error
	while "1," does not.
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2004-07-28  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Rename slot 'function' to
	$function.
	(standard-accessor-method): Rename slot 'slot-definition' to
	$slot-definition.

	* clos-slotdef1.lisp (slot-definition): Rename slot 'type' to $type.
	Reported by Christophe Rhodes.

2004-07-28  Bruno Haible  <bruno@clisp.org>

	* clos-method2.lisp (analyze-method-description): Complete the test
	whether a lambda-list entry is invalid.

2004-06-04  Bruno Haible  <bruno@clisp.org>

	Use specializers in methods.
	* clos-specializer1.lisp (eql-specializer-p, specializer-pretty): New
	functions.
	* clos-method1.lisp (standard-method): Renamed slot
	parameter-specializers to specializers.
	(std-method-specializers): Renamed from
	std-method-parameter-specializers.
	(initialize-instance-<standard-method>): Accept :specializers argument,
	instead of :parameter-specializers argument.
	(print-object-<standard-method>): Update.
	* clos-method2.lisp (analyze-method-description): Generate calls to
	INTERN-EQL-SPECIALIZER. Pass :specializers argument, instead of
	:parameter-specializers argument.
	* clos-method3.lisp (method-specializers): New function.
	* clos-class3.lisp (install-class-direct-accessors): Pass :specializers
	argument, instead of :parameter-specializers argument.
	* clos-class5.lisp (note-ai-change, note-ii-change, note-ri-change)
	(note-uirc-change, note-uidc-change, note-si-change): Update.
	(valid-make-instance-keywords)
	(valid-update-instance-for-redefined-class-keywords)
	(valid-update-instance-for-different-class-keywords): Update.
	(shared-initialize, reinitialize-instance, initialize-instance)
	(allocate-instance, make-instance): Pass :specializers argument,
	instead of :parameter-specializers argument.
	* clos-class6.lisp (class-name): Don't undefine temporarily.
	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
	Update.
	(same-specializers-p): Just compare with EQ.
	* clos-genfun2.lisp (compute-dispatch): Update. Use eql-specializer-p,
	eql-specializer-object.
	* clos-genfun3.lisp (methods-agree-p): Update.
	(std-find-method): Update. Convert (EQL object) lists to specializers.
	* clos-genfun4.lisp (*allow-making-generic*): New variable.
	(do-defgeneric): Don't signal an error if *allow-making-generic* is
	true.
	* clos-genfun5.lisp (dispatching-arg-p): Update.
	(dispatching-arg-type): Update.
	* describe.lisp (describe-object@generic-function): Update. Show a
	name instead of a class only if the class has a proper name.

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

	* control.d (FUNCTION-SIDE-EFFECT): fixed G++ compilation
	* record.d (update_instance): avoid a G++ warning

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

	interface to the LOG subsystem
	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS):
	handle log options
	(dbe_get_tmp_dir, dbe_get_tx_max, dbe_get_tx_timestamp): define
	with DEFINE_DBE_GETTER1
	(dbe_get_lg_bsize, dbe_get_lg_dir, dbe_get_lg_max)
	(dbe_get_lg_regionmax, check_lsn, make_lsn): new functions
	(BDB:DB-STAT, BDB:LOCK-STAT, BDB:TXN-STAT): guard free()
	with begin_system_call()/end_system_call()
	(BDB:LOG-ARCHIVE, BDB:LOG-FILE, BDB:LOG-FLUSH, BDB:LOG-PUT)
	(BDB:LOG-STAT, BDB:LOG-CURSOR, BDB:LOGC-CLOSE, BDB:LOGC-GET)
	(BDB:LOG-COMPARE): implemented
	(BDB:TXN-STAT): use make_lsn() and uint32_to_I()
	* modules/berkeley-db/dbi.lisp: export LOG symbols
	(db-lock-stat): removed the prefixes from slot names
	(db-log-stat): new struct
	(close): added a method for LOGC

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

	* clos-method2.lisp (analyze-method-description): signal an error
	when a lambda-list entry is invalid

2004-06-04  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (standard-method): Add lambda-list slot.
	(initialize-instance-<standard-method>): Accept :lambda-list argument.
	Check it. Compute the signature from it.
	* clos-method2.lisp (analyze-method-description): Add a :LAMBDA-LIST
	initializer to the generated form.
	* clos-method3.lisp (method-lambda-list): New function.
	* clos-class3.lisp (install-class-direct-accessors): Provide
	:lambda-list arguments for all methods.
	* clos-class5.lisp (shared-initialize, reinitialize-instance)
	(initialize-instance, allocate-instance, make-instance): Likewise.

2004-06-03  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (initialize-instance-<standard-method>): Check the
	qualifiers argument.

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

	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS): finish the
	set_lk_conflicts() interface
	* genclisph.d (main): export array_atype()
	* array.d (array_atype): global, not local
	* genclisph.d (main): export array_rank() and get_array_dimensions()

2004-07-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (array_rank, get_array_dimensions): New declarations.
	* array.d (array_rank, get_array_dimensions): New functions.

2004-06-02  Bruno Haible  <bruno@clisp.org>

	Make METHOD objects CLOS STANDARD-OBJECT instances.
	* clos.lisp: Include clos-method4.
	* clos-method1.lisp (method): Define through defclass.
	(<method>): New variable.
	(standard-method): Define through defclass.
	(<standard-method>): New variable.
	(initialize-instance-<standard-method>): New function.
	(make-instance-<standard-method>): New function.
	(print-object-<standard-method>): Renamed from print-std-method.
	(standard-accessor-method): Define through defclass.
	(<standard-accessor-method>): New variable.
	(initialize-instance-<standard-accessor-method>): New function.
	(standard-reader-method): Define through defclass.
	(<standard-reader-method>): New variable.
	(make-instance-<standard-reader-method>): New function.
	(standard-writer-method): Define through defclass.
	(<standard-writer-method>): New variable.
	(make-instance-<standard-writer-method>): New function.
	* clos-methcomb2.lisp (compute-effective-method-function): Use
	make-instance-<standard-method> instead of make-standard-method.
	* clos-method2.lisp (analyze-method-description): Likewise.
	* clos-method3.lisp (initialize-instance@standard-method): New method.
	(initialize-instance@standard-accessor-method): New method.
	(reinitialize-instance@method): New method.
	* clos-class5.lisp (shared-initialize, reinitialize-instance)
	(initialize-instance, allocate-instance, make-instance): Use
	make-instance-<standard-method> instead of make-standard-method.
	* clos-method4.lisp: New file.
	* clos-print.lisp (print-object): Update.
	* makemake.in (LPARTS): Add clos-method4.
	* po/Makefile.devel (LISPSOURCES): Add clos-method4.
	* utils/clispload.lsp (*expected-failures*): Remove TYPES.3,
	STANDARD-METHOD-CPL.

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

	interface to the LOCK subsystem
	* modules/berkeley-db/bdb.c (OH_INVALID_IS_NULL): new object_handle_t
	(object_handle): handle it
	(BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS): handle lock options
	(fill_dbt): use return instead of pointers to return type
	(BDB:LOCK-DETECT, BDB:LOCK-GET, BDB:LOCK-ID, BDB:LOCK-ID-FREE)
	(BDB:LOCK-PUT, BDB:LOCK-CLOSE, BDB:LOCK-STAT): implemented
	* modules/berkeley-db/dbi.lisp (dblock, db-lock-stat): new structs
	(close): define a method for dblock

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

	* utils/modprep.lisp: DEFCHECKER can now handle constants that
	come from "enum" and therefore not available to CPP

2004-07-22  Sam Steingold  <sds@gnu.org>

	* genclisph.d (main): export CLSTEXT

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp: Define <slot-definition> and its subclasses and
	<eql-specializer> here.
	* clos-slotdef2.lisp: Move the class definition forms to
	clos-class3.lisp.
	* clos-specializer2.lisp: Likewise.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	All specializers must be types.
	* type.lisp (typep, subtype-integer): Treat EQL-specializers like
	EQL forms.
	* subtypep.lisp (canonicalize-type): Likewise.
	* compiler.lisp (c-TYPEP): Likewise.

2004-06-04  Bruno Haible  <bruno@clisp.org>

	* defs1.lisp (memoized): New macro.
	* clos-class3.lisp (install-class-direct-accessors): Use it.

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

	* clos-class3.lisp (install-class-direct-accessors): For slots at
	fixed slot locations, generate more efficient accessors that use
	SYS::%RECORD-REF instead of SLOT-VALUE.

2004-07-22  Sam Steingold  <sds@gnu.org>

	* stream.d (bitbuff_ixs_sub): fixed bitbufferptr initialization
	Reported by Randolph Udodenko <udodenko@users.sourceforge.net>

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

	Thinner type checks.
	* clos-macros.lisp (accessor-typecheck): New macro.
	(error-accessor-typecheck): New function, moved here from
	clos-class3.lisp.
	* clos-class3.lisp (error-accessor-typecheck): Move function away.
	* clos-slotdef3.lisp: Use error-accessor-typecheck instead of assert.
	* clos-specializer3.lisp: Likewise.
	* clos-class6.lisp: Likewise.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export standard-slot-definition.
	* clos-package.lisp: Likewise.
	* clos-slotdef1.lisp (*<standard-slot-definition>-defclass*): New
	variable.
	(standard-direct-slot-definition, standard-effective-slot-definition):
	Inherit from standard-slot-definition.
	* clos-slotdef2.lisp: Define class <standard-slot-definition>.

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

	CLOSE recursively closes all dependents
	* modules/berkeley-db/bdb.c (wrap_finalize): call MKHANDLE
	* modules/berkeley-db/dbi.lisp (dbe, db, dbc, txn, logc, mpoolfile):
	inherit from BDB-HANDLE
	* genclisph.d (main): export copy_list()

2004-07-21  John Hinsdale <hin@alma.com>

	* modules/oracle/oracle.lisp: Handle FLOAT type properly

2004-05-31  Bruno Haible  <bruno@clisp.org>

	Implement (SETF CLASS-NAME) as the MOP says.
	* clos-class3.lisp (ensure-class-using-class-<t>): Don't pass :name
	initializer to reinitialize-instance.
	(reinitialize-instance-<class>): Accept :name argument. Don't call
	install-class-direct-accessors when not needed.
	* clos-class6.lisp ((setf class-name)): Call reinitialize-instance.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	Let class redefinition go through REINITIALIZE-INSTANCE.
	* clos-class3.lisp (ensure-class-using-class-<t>): Call
	reinitialize-instance.
	(reinitialize-instance-<class>): New function, extracted from
	ensure-class-using-class-<t>.
	* clos-class4.lisp (reinitialize-instance@class): New method.

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

	* modules/rawsock/rawsock.c (configdev): fixed STACK references

2004-05-31  Bruno Haible  <bruno@clisp.org>

	Move install-class-direct-accessors call to initialize-instance.
	* clos-class3.lisp (ensure-class-using-class-<t>): Don't call
	install-class-direct-accessors after making a new class.
	(initialize-instance-<built-in-class>)
	(initialize-instance-<structure-class>)
	(initialize-instance-<standard-class>): Call
	install-class-direct-accessors here.
	* clos-class6.lisp (initialize-instance@class): New method.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	Make it possible to choose between methods and functions as accessors.
	* lispbibl.d (Class): Add generic_accessors field.
	* clos-class1.lisp (slotted-class): Add generic-accessors slot.
	(class-generic-accessors, (setf class-generic-accessors)): New
	functions.
	(shared-initialize-<slotted-class>): Initialize generic-accessors slot.
	* clos-class3.lisp (DEFCLASS): Accept :GENERIC-ACCESSORS option. If
	nil, generate function declarations instead of method declarations.
	(*compile-accessor-functions*): New variable.
	(install-class-direct-accessors): If generic-accessors is nil, create
	normal functions instead of methods.
	(error-accessor-typecheck): New function.
	(shared-initialize-<structure-class>): Accept :generic-accessors
	argument.
	(define-structure-class): Pass :generic-accessors nil.
	(shared-initialize-<standard-class>): Accept :generic-accessors
	argument.
	* clos-class4.lisp (shared-initialize@structure-class): Accept
	:generic-accessors argument.
	(shared-initialize@standard-class): Likewise.
	* clos-class6.lisp (class-generic-accessors)
	((setf class-generic-accessors)): New generic functions.
	* compiler.lisp: Set *compile-accessor-functions* to nil temporarily.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Move the direct_accessors field.
	* clos-class1.lisp (slotted-class): Add direct-accessors slot.
	(standard-class): Remove direct-accessors slot.
	(class-direct-accessors): Now belongs to slotted-class.
	(shared-initialize-<slotted-class>): Initialize direct-accessors slot.
	* clos-class3.lisp (shared-initialize-<standard-class>): Don't
	initialize direct-accessors slot here.
	* clos-class6.lisp (class-direct-accessors): Now belongs to
	slotted-class.

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

	* spvw_language.d (init_language): save the whales, free the mallocs!

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

	* modules/berkeley-db/bdb.c (fill_dbt): do not allocate data on
	stack when DBT size is divisible by sizeof(uintD)
	(BDB:CURSOR-GET, BDB:CURSOR-PUT): pass DBC->dbp to record_length()
	(BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS): handle BT_MINKEY,
	H_FFACTOR, H_NELEM and Q_EXTENTSIZE

2004-05-30  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp (install-class-direct-accessors)
	(remove-accessor-methods, add-accessor-methods): New functions,
	extracted from ensure-class-using-class-<t>.
	(ensure-class-using-class-<t>): Use them.

2004-06-13  Bruno Haible  <bruno@clisp.org>

	* lambdalist.lisp (analyze-generic-function-lambdalist): New function.
	* clos-genfun3.lisp (analyze-defgeneric-lambdalist): Use it.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	Use SHARED-INITIALIZE instead of INITIALIZE-INSTANCE for the class
	initialization behaviour.
	* clos-stablehash1.lisp (shared-initialize-<standard-stablehash>):
	Replaces initialize-instance-<standard-stablehash>.
	* clos-stablehash2.lisp (shared-initialize@standard-stablehash):
	Replaces initialize-instance@standard-stablehash.
	* clos-specializer1.lisp (shared-initialize-<specializer>): Replaces
	initialize-instance-<specializer>.
	(shared-initialize-<eql-specializer>): Replaces
	initialize-instance-<eql-specializer>.
	(initialize-instance-<eql-specializer>): New function.
	* clos-specializer2.lisp (shared-initialize@specializer): Replaces
	initialize-instance@specializer.
	(shared-initialize@eql-specializer): Replaces
	initialize-instance@eql-specializer.
	* clos-specializer3.lisp (initialize-instance-<eql-specializer>):
	Set to #'initialize-instance.
	* clos-class1.lisp (shared-initialize-<class>): Replaces
	initialize-instance-<class>.
	(shared-initialize-<slotted-class>): Replaces
	initialize-instance-<slotted-class>.
	* clos-class3.lisp (DEFCLASS): Always pass :DEFAULT-INITARGS,
	:DOCUMENTATION, :FIXED-SLOT-LOCATIONS arguments.
	(ensure-class-using-class-<t>): In the redefinition case, call
	shared-initialize instead of initialize-instance.
	(shared-initialize-<built-in-class>): Replaces
	initialize-instance-<built-in-class>.
	(initialize-instance-<built-in-class>): New function.
	(shared-initialize-<structure-class>): Replaces
	initialize-instance-<structure-class>.
	(initialize-instance-<structure-class>): New function.
	(shared-initialize-<standard-class>): Replaces
	initialize-instance-<standard-class>.
	(initialize-instance-<standard-class>): New function.
	* clos-class4.lisp (shared-initialize@class): Replaces
	initialize-instance@class.
	(shared-initialize@built-in-class): Replaces
	initialize-instance@built-in-class.
	(shared-initialize@structure-class): Replaces
	initialize-instance@structure-class.
	(shared-initialize@standard-class): Replaces
	initialize-instance@standard-class.
	* clos-class6.lisp (initialize-instance-<built-in-class>)
	(initialize-instance-<structure-class>)
	(initialize-instance-<standard-class>): Set to #'initialize-instance.

2004-07-18  Sam Steingold  <sds@gnu.org>

	invalidate Fpointer instead of making it NULL on close
	* modules/berkeley-db/bdb.c(object_handle_t): renamed OH_ADDRESS
	to OH_INVALIDATE
	(object_handle): invalidate Fpointer on OH_INVALIDATE;
	(BDB:DB-CLOSE, BDB:CURSOR-CLOSE, BDB:TXN-ABORT, BDB:TXN-COMMIT)
	(BDB:TXN-DISCARD): use OH_INVALIDATE instead of OH_ADDRESS

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (build-effective-method-function-form): Add
	generic-function-variable argument.
	(compute-effective-method-as-function-form): Handle :GENERIC-FUNCTION
	effective-method option.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	Make class definition and redefinition customizable.
	* init.lisp: Export ensure-class, ensure-class-using-class.
	* clos-package.lisp: Likewise.
	* clos-class3.lisp (ensure-class-using-class-<t>): New function,
	extracted from ensure-class.
	(ensure-class-using-class): New function.
	(ensure-class): Just call ensure-class-using-class.
	* clos-class6.lisp (ensure-class-using-class): New generic function.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp (finalize-inheritance): Move to ...
	* clos-class6.lisp (finalize-inheritance): ... here. Add method for
	CLASS.

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

	* modules/berkeley-db/bdb.c (BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS):
	accept :RE_SOURCE

2004-06-13  Bruno Haible  <bruno@clisp.org>

	* lambdalist.lisp (analyze-method-combination-lambdalist): New function.
	* clos-methcomb2.lisp (check-em-arguments-option): Use it instead of
	analyze-lambdalist.
	(build-effective-method-function-form): Likewise.

2004-06-10  Bruno Haible  <bruno@clisp.org>

	Add error checking for effective-method options.
	* clos-methcomb2.lisp (check-em-arguments-option)
	(check-em-generic-function-option): New functions, extracted from
	define-method-combination.
	(check-em-duplicates-option): New function.
	(compute-effective-method-as-function-form): Call
	check-em-arguments-option and check-em-duplicates-option.
	(define-method-combination): Use check-em-arguments-option and
	check-em-generic-function-option.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	* clos-print.lisp (print-object): Add methods for slot-definition and
	eql-specializer.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	Make the reader/writer method classes customizable.
	* init.lisp: Export standard-reader-method, standard-writer-method,
	reader-method-class, writer-method-class.
	* clos-package.lisp: Likewise.
	* clos-class2.lisp (<standard-reader-method>, <standard-writer-method>):
	New variables.
	* clos-class3.lisp (ensure-class): Call reader-method-class to
	determine the class of reader methods, and writer-method-class to
	determine the class of writer methods. Add :slot-definition to the
	accessor method's initargs.
	(reader-method-class, writer-method-class): New functions.
	* clos-method1.lisp: Initialize <standard-reader-method>,
	<standard-writer-method>.
	* clos-class6.lisp (reader-method-class, writer-method-class): New
	generic functions.

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

	support binary i/o for fixed-record-length databases
	* modules/berkeley-db/bdb.c (fill_dbt): accept r_len argument for
	writing numbers to fixed record length databases
	(record_length): new function
	(BDB:DB-PUT): fixed for :QUEUE and :RECNO databases
	(gb_size): removed
	(giga_byte): new DEFVAR
	(size_to_giga_bytes): new function
	(BDB:DB-SET-OPTIONS): accept :CACHE for compatibility with
	BDB:DB-GET-OPTIONS and :RE_DELIM + :RE_PAD
	(DEFINE_DB_GETTER): renamed to DEFINE_DB_GETTER1
	(DEFINE_DB_GETTER2): new macro
	(get_re_delim, get_re_len, get_re_pad): define with it
	(BDB:DB-GET-OPTIONS): accept :RE_DELIM + :RE_PAD

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

	* makemake.in (distrib) [win32gcc]: distribute linkkit because
	the user may have mingw installed

2004-06-10  Bruno Haible  <bruno@clisp.org>

	More DEFINE-METHOD-COMBINATION error checking.
	* clos-methcomb2.lisp (specializers-agree-p, same-specializers-p):
	New functions, from clos-genfun3.lisp.
	(call-method-duplicates-error): New function.
	(effective-method-code-bricks): Add a duplicates argument.
	(build-effective-method-function-form): Likewise.
	(compute-effective-method-as-function-form): Support a :DUPLICATES
	effective-method option.
	(long-form-method-combination-expander): Convert the long-expander's
	second value into a :DUPLICATES effective-method option.
	(long-form-method-combination-collect-duplicates): New function.
	(compute-method-partition-lambdas): Generate code to check for
	duplicates.
	* clos-genfun3.lisp (specializers-agree-p, same-specializers-p): Moved
	to clos-methcomb2.lisp.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	Move the definition of accessor methods from DEFCLASS to ENSURE-CLASS.
	* clos-class3.lisp (defclass): Don't generate accessor-def-forms.
	(ensure-class): Generate accessors here, for all direct slots.

2004-07-14  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c: On SQL error, truncate echoed bind
	parameters for readability and to avoid buffer overflows.
	Also grab parse error offset into a ub2, not ub4 (misread docs).

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

	* genclisph.d (main): export mark_fp_invalid() & record_flags_set()
	* modules/pcre/cpcre.c (PCRE:PCRE-FREE): use it

2004-07-14  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c: Handle obscure Oracle requirement that
	implicit describes fetch column precision in two-byte destination.
	Allows Oracle module to work under Solaris (Oracle 8.1.7).

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

	* genclisph.d (main): renamed floor() to ifloor() to avoid
	conflict with POSIX <math.h> floor()
	Reported by John Hinsdale <hin@alma.com>

2004-07-13  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c: Fix bugs in error reporting; use better
	supported calls in OCI to initialize; report initialization errors
	better

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* defs2.lisp (simple-destructuring-bind): New macro.
	* clos-methcomb2.lisp (short-form-method-combination-expander): Inline
	compute-short-form-effective-method-form. Remove redundant qualifiers
	check. Use simple-destructuring-bind.
	(compute-short-form-effective-method-form): Remove function.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	Make the class-default-initargs computation customizable.
	* init.lisp: Export compute-default-initargs.
	* clos-package.lisp: Likewise.
	* clos-class3.lisp (compute-default-initargs-<class>): New function.
	(compute-default-initargs): New function.
	(checked-compute-default-initargs): New function.
	(initialize-instance-<structure-class>)
	(finalize-instance-standard-class): Call it.
	* clos-class6.lisp (compute-default-initargs): New generic function.

2004-07-13  Bruno Haible  <bruno@clisp.org>

	* intelem.d (UDS_to_I, DS_to_I): Make global.
	* lispbibl.d (UDS_to_I, DS_to_I): New declarations,
	* genclisph.d (main): Declare UDS_to_I, DS_to_I. Don't declare
	allocate_bignum.

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

	* modules/berkeley-db/bdb.c (wrap_finalize): third argument is an
	object, not gcv_object_t, because "&``" does not work with -O
	(BDB:ENV-SET-OPTIONS): accept :TIMEOUT for compatibility
	with BDB:ENV-GET-OPTIONS
	* genclisph.d (check_list): export

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

	* init.lisp (defun): when *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*
	is non-nil, convert specialized lambda lists to type declarations
	* misc.d (SYS::SET-ANSI): set *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*
	* spvw.d (init_symbol_values): initialize it
	* constsym.d (defun_accept_spelalist): added

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (method-combination): New slot long-expander.
	* clos-methcomb2.lisp (long-form-method-combination-expander): Remove
	last argument. Fetch it from the method-combination instead.
	(define-method-combination): Simplify long-form expansion.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	Make the class-slots computation customizable.
	* init.lisp: Export compute-slots.
	* clos-package.lisp: Likewise.
	* clos-slotdef1.lisp (slot-definition): Restrict type of allocation
	slot.
	(initialize-instance-<slot-definition>): Check the allocation argument
	here.
	(initialize-instance-<direct-slot-definition>)
	(initialize-instance-<effective-slot-definition>): ... not here.
	(standard-effective-slot-definition-p): New function.
	* clos-class3.lisp (compute-slots-<class>-primary): New function,
	extracted from std-compute-slots.
	(compute-slots-<slotted-class>-around): New function, based on
	std-compute-slots and std-layout-slots.
	(compute-slots, checked-compute-slots): New functions.
	(std-compute-slots, std-layout-slots): Remove functions.
	(compute-instance-size, compute-shared-size)
	(create-shared-slots-vector, compute-slot-location-table):
	New functions.
	(initialize-instance-<structure-class>)
	(finalize-instance-standard-class): Use the compute-slots functions
	instead of std-compute-slots, std-layout-slots.
	* clos-class6.lisp (compute-slots): New generic function.

2004-06-09  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (compute-effective-method-<standard-generic-function>):
	New function, extracted from compute-effective-method-as-function-form.
	(compute-effective-method): New function.
	(compute-effective-method-as-function-form): Call
	compute-effective-method.
	* clos-genfun5.lisp (compute-effective-method): New generic function.

2004-06-09  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-effective-method-as-function): Small
	optimization.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export compute-effective-slot-definition.
	* clos-package.lisp: Likewise.
	* clos-class3.lisp (compute-effective-slot-definition-<class>): New
	function, extracted from std-compute-slots.
	(compute-effective-slot-definition): New function.
	(std-compute-slots): Use it.
	* clos-class6.lisp (compute-effective-slot-definition): New generic
	function.

2004-07-01  Sam Steingold  <sds@gnu.org>

	keys and values can also be STRING and (INTEGER 0)
	* modules/berkeley-db/bdb.c (SYSCALL1): new macro (with clean-up)
	(BDB:ENV-CLOSE, BDB:DB-CLOSE, BDB:DB-DEL, BDB:DB-PUT)
	(BDB:DB-KEY-RANGE, BDB:CURSOR-CLOSE, BDB:CURSOR-PUT): use it
	(BDB:ENV-SET-OPTIONS): DATA_DIR can be a list
	(BDB:ENV-GET-OPTIONS, BDB:DB-GET-OPTIONS): return all as a plist,
	not as multiple values
	(dbt_o_t): new typedef
	(check_dbt_type, check_dbt_object, free_dbt): new functions
	(fill_dbt): also return the type of the object
	(dbt_to_object): accept the object type as the second argument
	(BDB:DB-GET): accept :TYPE keyword argument
	(BDB:DB-OPEN): do not call physical_namestring() on strings
	because then it is resolved by Berkeley-DB relative to data_dirs
	(BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS): accept :RE_LEN
	(DEFINE_DB_GETTER): new macro
	(db_get_lorder, db_get_pagesize): use it
	(db_get_re_len): new function
	(BDB:CURSOR-GET): return KEY and VAL with specified type
	(BDB:TXN-BEGIN): finalize TXN with BDB::TXN-DISCARD
	(BDB:TXN-COMMIT, BDB:TXN-DISCARD, BDB:TXN-ABORT): invalidate TXN
	* modules/berkeley-db/dbi.lisp (with-cursor): new macro
	(with-open-db): must use BDB:DB-CREATE and then BDB:DB-OPEN
	(close): added a TXN method
	* genclisph.d (ceiling, wbit): enabled
	(allocate_bignum): added

2004-06-30  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): reset `argv_for' to `for_exec' after processing
	the non-option argument so that "-i" will not disable scripting
	Reported by VAUCHER L Ext SIRES <lvaucher.ext@francetelecom.com>
	* clisp-link.in: properly intersperse "-i" in TO_LOAD and TO_PRELOAD

2004-06-28  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (object_handle_t): new typedef
	(object_handle): third argument is an object_handle_t, not bool
	(object_handle_): removed
	updated all calls to object_handle_() and object_handle()
	(env_get_home_dir, env_get_open_flags, db_get_cache):
	accept second argument errorp
	(BDB:DB-STAT): added missing slot bt_over_pg
	(BDB:CURSOR-CLOSE): fixed STACK handling
	(BDB:CURSOR-GET): fixed keyword list
	* modules/berkeley-db/test.tst: new file
	* modules/berkeley-db/dbi.lisp (db-stat-btree): fixed slot names

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

	* modules/berkeley-db/dbi.lisp (bdb-error): new condition
	* modules/berkeley-db/bdb.c (error_message): new static variable
	(error_callback, error_message_reset): new functions
	(error_bdb): signal BDB-ERROR, not ERROR; use error_message
	(BDB:ENV-CREATE, BDB:DB-CREATE): set error callback to error_callback()
	(BDB:ENV-SET-OPTIONS): fixed STACK access
	(env_get_home_dir, env_get_open_flags, BDB:DB-GET, BDB:CURSOR-GET):
	call error_message_reset()

2004-06-26  Arseny Slobodjuk  <ampy@ich.dvo.ru>

	Fixed handling of relative shortcuts on mingw.
	* w32shell.c (augment_relative_pathname): new function.
	(resolve_shell_shortcut_more): recurrent resolution of
	shortcuts to symbolic names. Handling of relative shortcuts.
	(real_path): fixed sharename handling (not tested).
	* pathname.d (FullName): rewritten to process ".." and ".".

2004-06-09  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (method-combination): Change calling convention
	of expander.
	* clos-methcomb2.lisp (build-effective-method-function-form): Renamed
	from compute-effective-method-function. Take arguments-lambda-list as
	additional argument.
	(compute-effective-method-as-function-form): After calling the
	expander, call build-effective-method-function-form.
	(standard-method-combination-expander): Return two values now, instead
	of the entire function-form.
	(compute-short-form-effective-method-form): Likewise. Simplify.
	(short-form-method-combination-expander): Don't call
	compute-effective-method-function on the result.
	(long-form-method-combination-expander): Likewise.
	(define-method-combination): Update.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	Make the class-precedence-list computation customizable.
	* init.lisp: Export compute-class-precedence-list.
	* clos-package.lisp: Likewise.
	* clos-class3.lisp (compute-class-precedence-list-<class>)
	(compute-class-precedence-list, checked-compute-class-precedence-list):
	New functions.
	(initialize-instance-<built-in-class>)
	(initialize-instance-<structure-class>)
	(finalize-instance-standard-class): Use
	checked-compute-class-precedence-list instead of std-compute-cpl.
	* clos-class6.lisp (compute-class-precedence-list): New generic
	function.

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

	* lispbibl.d, spvw.d, xthread.d, zthread.d (thread_t):
	renamed to clisp_thread_t to avoid conflict with Darwin
	Reported by Denis Bueno <dbueno@stygian.net>

2004-06-09  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
	New function.
	* clos-genfun2.lisp (compute-effective-method-as-function): Use it.

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export find-method-combination.
	* clos-package.lisp: Likewise.
	* clos-methcomb2.lisp (find-method-combination-<generic-function>-<symbol>):
	New function.
	(find-method-combination): New function.
	* clos-genfun5.lisp (find-method-combination): New generic function.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Export add-direct-subclass, remove-direct-subclass.
	* clos-package.lisp: Likewise.
	* clos-class3.lisp (add-direct-superclass-internal): Renamed from
	add-direct-superclass.
	(remove-direct-superclass-internal): Renamed from
	remove-direct-superclass.
	(add-direct-superclass, remove-direct-superclass): New functions.
	* clos-class6.lisp (add-direct-superclass, remove-direct-superclass):
	New generic functions.

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

	* modules/berkeley-db/bdb.c (DB-GET-OPTIONS, DB-SET-OPTIONS): added
	* modules/berkeley-db/dbi.lisp: export them

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

	* utils/modprep.lisp (parse-signature): check that END is non-NIL

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

	* modules/berkeley-db/bdb.c (BDB:DB-GET, BDB:CURSOR-GET):
	separate options and actions

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

	* pathname.d (physical_namestring): new function, for modules
	* genclisph.d (physical_namestring): export it
	* modules/berkeley-db/bdb.c, modules/syscalls/calls.c: use it

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

	* modules/berkeley-db/bdb.c (ENV-GET-OPTIONS, ENV-SET-OPTIONS):
	get and set tas_spins, shm_key, timeouts and encryption
	(BDB:DB-JOIN, BDB:DB-KEY-RANGE, BDB:DB-VERIFY): new functions

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (get-method-combination): Renamed from
	find-method-combination. Make argument required. i18n.
	((setf get-method-combination)): Renamed from
	(setf find-method-combination).
	* clos-methcomb2.lisp (define-method-combination)
	(coerce-to-method-combination): Update.
	* clos-genfun2.lisp (%make-gf): Update.
	* documentation.lisp (documentation, (setf documentation)): Update.

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (print-object-<method-combination>): Renamed from
	print-method-combination.
	* clos-print.lisp (print-object): Update.

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (method-combination): Reorder slots.
	* clos-methcomb2.lisp (define-method-combination): Don't set
	:identity-with-one-argument with long-form method-combination.

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (short-form-method-combination-expander):
	Remove useless typecase.
	(long-form-method-combination-expander): Likewise. The user-defined
	DEFINE-METHOD-COMBINATION body must return a form.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	Change the metaclass of CLASS from STRUCTURE-CLASS to STANDARD-CLASS.
	* lispbibl.d (Class): Change to an extension of Instance. Remove
	metaclass field. Add direct_generic_functions, direct_methods,
	initialized fields.
	(TheClass): Define using TheInstance.
	(if_classp): Use instancep and test for the three most frequent
	metaclasses directly.
	* predtype.d (CLOS::%DEFCLOS): Accept 3 class-versions and <class>.
	* hashtabl.d (sxhash_atom): For CLOS instances, use the class name,
	not the class itself.
	* init.lisp: Export the symbols CLASS, BUILT-IN-CLASS, STRUCTURE-CLASS,
	STANDARD-CLASS, CLASS-NAME, CLASS-DIRECT-SUPERCLASSES,
	CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SUBCLASSES, CLASS-DIRECT-SLOTS,
	CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS,
	VALIDATE-SUPERCLASS.
	Load clos-metaobject1, clos-class1, clos-class2, clos-class3.
	* type.lisp (def-atomic-type): Don't remove the macro after use.
	* clos-package.lisp: Export the symbols CLASS, BUILT-IN-CLASS,
	STRUCTURE-CLASS, STANDARD-CLASS, CLASS-NAME, CLASS-DIRECT-SUPERCLASSES,
	CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SUBCLASSES, CLASS-DIRECT-SLOTS,
	CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS,
	VALIDATE-SUPERCLASS.
	* clos-metaobject1.lisp: New file.
	* clos-slotdef1.lisp (slot-definition): Inherit from metaobject.
	* clos-specializer1.lisp (specializer): Inherit from metaobject.
	* clos-class1.lisp: New file.
	* clos-class2.lisp: Update comments.
	* clos-class3.lisp (empty-ht): Moved to clos-class1.lisp.
	(structure-stablehash): Moved to clos-stablehash2.lisp.
	(class, built-in-class, slotted-class, structure-class, standard-class):
	Moved to clos-class1.lisp.
	(%defclos): Pass 3 class-versions and <class>.
	(ensure-class): Tweaks for bootstrapping. When redefining a metaobject
	class, warn but don't obsolete the instances. Before changing a member
	of the class-precedence-list from symbol to class, call
	check-allowed-superclass. Update defaulting of direct-superclasses.
	(add-default-superclass): Remove function.
	(class-name, default-direct-superclasses): New functions.
	(validate-superclass, check-allowed-superclass): New functions.
	(std-compute-slots): Remove second argument. Use class-direct-slots
	for all kinds of superclasses.
	(make-instance-<built-in-class>): Renamed from
	make-instance-built-in-class. Don't call check-metaclass-mix here.
	Use allocate-metaobject-instance.
	(initialize-instance-<built-in-class>): Renamed from
	initialize-instance-built-in-class. Call check-metaclass-mix here.
	Call superclass initializer.
	(make-instance-<structure-class>): Renamed from
	make-instance-structure-class. Use allocate-metaobject-instance.
	(initialize-instance-<structure-class>): Renamed from
	initialize-instance-structure-class. Call superclass initializer.
	Lots of changes.
	(define-structure-class): Update.
	(make-instance-<standard-class>): Renamed from
	make-instance-standard-class. Use allocate-metaobject-instance.
	(initialize-instance-<standard-class>): Renamed from
	initialize-instance-standard-class. Call superclass initializer.
	Lots of changes.
	(finalize-class): Before changing a member of the class-precedence-list
	from symbol to class, call check-allowed-superclass.
	(def-unbound): Remove function.
	(finalize-inheritance-standard-class): Use sys::%unbound.
	(make-instances-obsolete-standard-class-nonrecursive): For metaobject
	classes, just warn.
	(update-subclasses-for-redefined-class): Don't call
	add-default-superclass.
	(update-subclasses-for-redefined-class-nonrecursive): Likewise.
	(list-all-finalized-subclasses): Likewise.
	Completely revamped bootstrapping.
	(%defclos): Pass 3 class-versions and <class>.
	* defstruct.lisp (clos::define-structure-class)
	(clos::undefine-structure-class): Remove preliminary functions.
	(structure-object): Remove definition, now done in clos-class3.lisp.
	* clos.lisp: Load clos-class[456] instead of clos-class[235].
	* clos-slotdef2.lisp: Don't use #'make-instance here.
	* clos-stablehash2.lisp (<standard-stablehash>): Move definition to
	clos-class3.lisp.
	(structure-stablehash): Moved to here.
	* clos-specializer2.lisp: Don't use #'make-instance here.
	* clos-class4.lisp: New file.
	* clos-class5.lisp (class-name, (setf class-name)): Move to
	clos-class6.lisp.
	(initialize-instance@standard-class)
	(initialize-instance@structure-class): Move to clos-class3.lisp.
	(class-prototype, class-finalized-p): Move to clos-class6.lisp.
	* clos-genfun2.lisp (*dynamically-modifiable-generic-function-names*):
	Add validate-superclass.
	* clos-slotdef3.lisp: Use #'make-instance here.
	* clos-specializer3.lisp: Likewise.
	* clos-class6.lisp: New file.
	* clos-print.lisp: Update.
	* compiler.lisp (block, tagbody): Remove the corresponding classes.
	* gray.lisp: Customize validate-superclasses.
	* condition.lisp (define-condition): Update handling of default
	direct-superclasses.
	* makemake.in (LPARTS): Add clos-metaobject1, clos-class[123] and
	clos-class[456].
	* po/Makefile.devel (LISPSOURCES): Likewise.
	* utils/clispload.lisp (*expected-failures*): Remove
	BUILT-IN-CLASS-CPL and STANDARD-CLASS-CPL.

2004-06-23  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp: export TXN functions
	(lsn, db-txn-active, db-txn-stat): new structures
	* modules/berkeley-db/bdb.c (BDB:ENV-CLOSE): clean-up the STACK
	(set_verbose): new function
	(BDB:ENV-SET-OPTIONS): use it to fix verbosity handling
	(env_get_verbose): renamed from env_verbose()
	(env_get_tmp_dir): renamed from env_tmp_dir()
	(env_get_data_dirs): renamed from env_data_dirs()
	(env_get_tx_max): renamed from env_tx_max()
	(env_get_tx_timestamp): renamed from env_tx_timestamp()
	(env_get_home_dir, env_get_open_flags, env_get_flags): added
	(BDB:ENV-GET-OPTIONS): also return home dir and open flags
	(BDB:DB-OPEN): use posfixnum_default2()
	(check_gid): new function
	(BDB:TXN-PREPARE): use it
	(gid_to_vector): new function
	(BDB:TXN-RECOVER): use it
	(BDB:TXN-STAT): new function
	(BDB:DB-STAT): fixed memory management

2004-06-23  Sam Steingold  <sds@gnu.org>

	* genclisph.d (posfixnum_default2): new function
	(posfixnum_default): defined in terms of posfixnum_default2()

2004-06-23  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (ENV-GET-OPTIONS): accept :DB_XIDDATASIZE
	(check_byte_vector): new function
	(fill_dbt): use it
	(TXN-CHECKPOINT, TXN-PREPARE, TXN-RECOVER, TXN-SET-TIMEOUT):
	new functions

2004-06-23  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): signal an error
	instead of crashing on a pcre library bug

2004-06-23  Sam Steingold  <sds@gnu.org>

	* time.d (convert_time_from_universal): new function
	* genclisph.d (main): export it
	* modules/berkeley-db/bdb.c (ENV-SET-OPTIONS, ENV-GET-OPTIONS):
	accept :TX_TIMESTAMP and :TX_MAX
	(BDB:TXN-ID): new function

2004-06-23  Sam Steingold  <sds@gnu.org>

	* genclisph.d (main): undef PACKAGE_* to avoid some warnings
	* modules/rawsock/rawsock.c: include "config.h" after "clisp.h"
	to avoid some warnings
	* modules/syscalls/calls.c: ditto
	* modules/pcre/cpcre.c: ditto

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-method2.lisp (compute-effective-method-as-function): Convert
	result from a form to a function.
	* clos-methcomb2.lisp (compute-effective-method-function)
	(standard-method-combination-expander): Don't do the conversion here.

2004-06-08  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (define-method-combination): Provide bindings
	also for the supplied-p variables of optional and keyword arguments
	in the :arguments lambda-list.

2004-05-27  Bruno Haible  <bruno@clisp.org>

	* clos-class3.lisp: Reorder.
	(plist-to-alist, alist-to-plist): Remove functions.

2004-05-26  Bruno Haible  <bruno@clisp.org>

	Let accessors belong to specific classes.
	* init.lisp: Export accessor-method-slot-definition.
	* clos-package.lisp: Likewise.
	* clos-method1.lisp (standard-accessor-method): New class.
	(standard-reader-method, standard-writer-method): New classes.
	* clos-method3.lisp (accessor-method-slot-definition): New generic
	function.
	* clos-genfun3.lisp (declaim-method): New macro.
	* clos-class3.lisp (defclass): Generate explicit calls to
	make-standard-reader-method and make-standard-writer-method.

2004-05-25  Bruno Haible  <bruno@clisp.org>

	Move the direct-default-initargs and default-initargs slots up to
	class CLASS.
	* lispbibl.d (Class): Move direct_default_initargs, default_initargs
	fields.
	* clos-class3.lisp (class): Add direct-default-initargs,
	default-initargs slots.
	(slotted-class): Remove default-initargs slot.
	(standard-class): Remove direct-default-initargs slot.
	(finalize-instance-standard-class, initialize-instance-structure-class):
	Use the default-initargs of all superclasses, regardless of the
	metaclass.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d ((SETF HASH-TABLE-WEAK-P)): Fix GC-safety bug introduced
	in last patch. Check the hash table argument before the new-value
	argument.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	* places.lisp (def-setf-alias): New macro.

2004-06-23  Bruno Haible  <bruno@clisp.org>

	* defpackage.lisp (defpackage): Use (SETF PACKAGE-DOCUMENTATION).

2004-06-22  Sam Steingold  <sds@gnu.org>

	* constsym.d (set_hash_table_weak_p, set_package_lock, setelt)
	(set_hash_table_warn_if_needs_rehash_after_gc, set_long_float_digits):
	use "(SETF FOO)" instead of "%SET-FOO"
	* hashtabl.d ((SETF HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC))
	((SETF HASH-TABLE-WEAK-P)): updated calling conventions
	* package.d ((SETF EXT:PACKAGE-LOCK)): ditto
	* sequence.d ((SETF ELT)): ditto
	* places.lisp (package-lock, hash-table-weak-p, elt, long-float-digits)
	(hash-table-warn-if-needs-rehash-after-gc): use SETF-FUNCTION
	instead of DEFSETF

2004-06-22  Sam Steingold  <sds@gnu.org>

	* defpackage.lisp (defpackage): use (SETF PACKAGE-DOCUMENTATION)
	* documentation.lisp (documentation): use PACKAGE-DOCUMENTATION
	((setf documentation)): use (SETF PACKAGE-DOCUMENTATION)
	* clos-package.lisp, screen.lisp: use the :DOCUMENTATION
	option in DEFPACKAGE

2004-06-22  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (fehler_string): removed again
	* error.d (fehler_string): ditto
	* package.d ((SETF PACKAGE-DOCUMENTATION)): use check_string()

2004-06-22  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Package): Add pack_docstring field.
	* genclisph.d (main): Update.
	* package.d (make_package): Initialize pack_docstring to NIL.
	(SYS::PACKAGE-DOCUMENTATION, (SETF PACKAGE-DOCUMENTATION)): New
	functions.
	* error.d (fehler_string): Revived function.
	* places.lisp (PACKAGE-DOCUMENTATION): New setter definition.

2004-06-22  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (<method>): New variable.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (add-next-method-local-functions): New function,
	extracted from analyze-method-description.
	(call-method, make-method): New macros.
	(make-method-error, call-method-arg1-error, call-method-arg2-error):
	New functions.
	(effective-method-code-bricks): New function.
	(compute-effective-method-function): Simplify a lot through the use of
	effective-method-code-bricks. Use an inline lambda to handle the
	:arguments lambda list, instead of clobbering the effective method's
	lambda list. Correctly handle the cases when the section lengths in the
	two lambda lists differ.
	(standard-method-combination-expander): Simplify a lot through the use
	of effective-method-code-bricks.
	* clos-method2.lisp (analyze-method-description): Use
	add-next-method-local-functions.

2004-05-25  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp: Include contents of clos-class3.lisp.
	* clos-class3.lisp: Renamed from clos-class2.lisp. Old contents moved
	to clos-class5.lisp.
	* clos-class2.lisp: Renamed from clos-class1.lisp. Old contents moved
	to clos-class3.lisp.
	* clos.lisp: Update.

2004-06-21  Sam Steingold  <sds@gnu.org>

	* clisp.spec (debug_package): set to %{nil} to prevent CLISP
	binaries from being stripped
	(modules): added rawsock

2004-06-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (unixconf.h): make sure that it is indeed changed

2004-06-21  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (CLOSE):
	define methods for ENV, DB and CURSOR
	* modules/berkeley-db/bdb.c (BDB:ENV-CLOSE, BDB:CURSOR-CLOSE)
	(BDB:DB-CLOSE): reset the Fpointer value and return a value,
	do not crash on repeated calls
	(wrap_finalize): new function
	(BDB:ENV-CREATE, BDB:DB-CREATE, BDB:MAKE-CURSOR, BDB:CURSOR-DUP):
	use it to close ENV, DB & CURSOR objects on GC

2004-06-21  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (BDB:MAKE-CURSOR, BDB:CURSOR-CLOSE)
	(BDB:CURSOR-COUNT, BDB:CURSOR-DEL, BDB:CURSOR-DUP)
	(BDB:CURSOR-GET, BDB:CURSOR-PUT): implemented
	the "Database Cursor" subsystem
	* modules/berkeley-db/dbi.lisp: export the above

2004-06-21  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c (BDB:ENV-GET-OPTIONS): new Lisp DEFUN
	(env_verbose, env_tmp_dir, env_data_dirs): new functions
	(BDB:DB-CREATE): permit NIL environment, call MKDB correctly
	(BDB:DB-FD): fixed STACK handling
	(BDB:DB-OPEN): default mode to 0644
	(BDB:DB-PUT): fixed flag handling

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-applicable-methods-effective-method): Do
	the method selection here.
	(compute-effective-method-as-function): New function.
	* clos-methcomb2.lisp (standard-method-combination-expander)
	(short-form-method-combination-expander)
	(long-form-method-combination-expander): Add methods argument, remove
	args argument. Don't do the method selection here.
	(define-method-combination): Update.

2004-05-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Add direct_subclasses field.
	* clos-class2.lisp (class): Add slot direct-subclasses-table.
	(ensure-class): Call add-direct-subclass when a member of the
	direct-subclasses list changes from symbol to class.
	(add-direct-subclass, remove-direct-subclass, list-direct-subclasses):
	New functions.
	(update-subclasses-sets): New function.
	(initialize-instance-standard-class): Initialize
	direct-subclasses-table. Call update-subclasses-sets.
	(finalize-class): Call add-direct-subclass when a member of the
	direct-subclasses list changes from symbol to class.
	(initialize-instance-built-in-class): Initialize
	direct-subclasses-table. Call update-subclasses-sets.
	(initialize-instance-structure-class): Initialize
	direct-subclasses-table. Call update-subclasses-sets.

2004-06-19  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC): new accessor
	(%SET-HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC): new setter
	* places.lisp (hash-table-warn-if-needs-rehash-after-gc): defsetf
	* init.lisp (hash-table-warn-if-needs-rehash-after-gc): export
	* constsym.d, subr.d (hash_table_warn_if_needs_rehash_after_gc)
	(set_hash_table_warn_if_needs_rehash_after_gc): added

2004-06-19  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/dbi.lisp (with-open-db): simplified

2004-06-19  Sam Steingold  <sds@gnu.org>

	* genclisph.d (symbol_): fixed the definition

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

	* macros1.lisp (do/do*-expand): do not bind DOC: it is ignored anyway

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (compute-applicable-methods-effective-method):
	Renamed from compute-effective-method.
	(compute-dispatch): Update.
	* clos-class5.lisp (make-instance-table-entry1)
	(make-instance-table-entry2, initial-reinitialize-instance): Update.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (coerce-to-method-combination): Don't need to
	clone the method-combination if there are no options.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	Check the method-combination options at defgeneric execution time.
	* clos-methcomb1.lisp (method-combination): New slot check-options.
	* clos-methcomb2.lisp (invalid-sort-order-error)
	(any-method-combination-check-options): New functions.
	(standard-method-combination-check-options): New function.
	(standard-method-combination-expander): Remove options check from here.
	(standard): Update.
	(short-form-method-combination-check-options): New function.
	(+, and, append, list, max, min, nconc, or, progn): Update.
	(compute-method-partition-lambdas): Return also a lambda for
	check-options.
	(define-method-combination): Emit :check-options initargs.
	(coerce-to-method-combination): Add gf-name argument. Call the
	check-options function.
	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Update.

2004-05-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Renamed field direct_subclasses to
	finalized_direct_subclasses.
	* clos-class2.lisp (standard-class): Rename slot direct-subclasses to
	finalized-direct-subclasses-table.
	(add-finalized-direct-subclass): Renamed from add-direct-subclass.
	(remove-finalized-direct-subclass): Renamed from
	remove-direct-subclass.
	(list-finalized-direct-subclasses): Renamed from
	list-direct-subclasses.
	(list-all-finalized-subclasses): Renamed from list-all-subclasses.
	All callers updated.

2004-06-13  Bruno Haible  <bruno@clisp.org>

	* lambdalist.lisp (analyze-modify-macro-lambdalist): New function.
	* places.lisp (define-modify-macro): Use it.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (define-method-combination): Check the :arguments
	lambda-list.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb1.lisp (method-combination): Remove order slot.
	* clos-methcomb2.lisp (compute-short-form-effective-method-form):
	Take the order from the options, not from the method-combination.
	Improve error checking.

2004-06-06  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp (qualifiers-match-p): Remove function.
	(compute-method-partition-lambdas): Use LDIFF and EQUAL to match the
	qualifiers list against the pattern.

2004-05-16  Bruno Haible  <bruno@clisp.org>

	Move slots, direct-slots up to CLASS.
	* lispbibl.d (Class): Move the slots and direct_slots fields.
	* clos-class2.lisp (class): Add slots, direct-slots.
	(slotted-class): Remove slots.
	(standard-class): Remove direct-slots.
	(initialize-instance-built-in-class): Initialize direct-slots and
	slots to empty.
	(make-instance-structure-class, initialize-instance-structure-class):
	Accept a direct-slots-as-metaobjects argument.
	(define-structure-class): Pass the already computed direct-slots to
	make-instance-structure-class.
	* clos-class5.lisp (initialize-instance@structure-class): Accept
	precomputed direct-slots argument.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* clos-specializer1.lisp: New file.
	* clos-specializer2.lisp: New file.
	* clos-specializer3.lisp: New file.
	* clos-package.lisp: Export specializer related symbols from CLOS
	package.
	* init.lisp: Likewise. Load clos-specializer1.
	* clos.lisp: Load clos-specializer2, clos-specializer3.
	* makemake.in (LPARTS): Add clos-specializer{1,2,3}.
	* po/Makefile.devel (LISPSOURCES): Add clos-specializer{1,2,3}.

2004-06-13  Bruno Haible  <bruno@clisp.org>

	* lambdalist.lisp (analyze-lambdalist, analyze-defsetf-lambdalist):
	Improved error messages.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-genfun5.lisp (missing-required-method): New function.
	* clos-methcomb1.lisp (method-combination): Reorder the slots.
	* clos-methcomb2.lisp (invalid-method-error, method-combination-error):
	Signal an error of type ERROR, not SOURCE-PROGRAM-ERROR. Tweak error
	message.
	(invalid-method-sort-order-error): New function.
	(compute-effective-method-function, qualifiers-match-p):
	Internationalize.
	(parse-method-groups): New function, extracted from
	compute-method-partition-lambdas. Improved syntax checking. Improved
	error messages.
	(compute-method-partition-lambdas): Accept a body argument. Remove
	*-group-variable and its associated unjustified error. Remove code that
	can never be executed. Generate code that operates directly on
	variables instead of on a property list. Emit code to call
	MISSING-REQUIRED-METHOD and INVALID-METHOD-SORT-ORDER-ERROR.
	(define-method-combination): Improved syntax checking. Improved error
	messages. Use sys::parse-body. In the long-form combination, don't pass
	:qualifiers. Keep gf-variable and user-gf-variable distinct, so that
	the user cannot accidentally change the value of the gf-variable.
	(do-define-method-combination): Renamed from %define-method-combination.
	Remove dynamic-extent declaration.
	* format.lisp (format-quote): New function.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* clos-macros.lisp: New file.
	* clos-class2.lisp (add-direct-subclass, remove-direct-subclass)
	(list-direct-subclasses): Define through def-weak-set-accessors.
	* init.lisp: Load clos-macros.
	* makemake.in (LPARTS): Add clos-macros.
	* po/Makefile.devel (LISPSOURCES): Add clos-macros.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Load clos-stablehash1.
	* clos.lisp: Load clos-stablehash2.
	* clos-stablehash1.lisp: New file.
	* clos-stablehash2.lisp: New file.
	* clos-class5.lisp (standard-stablehash): Moved to clos-stablehash1.
	* makemake.in (LPARTS): Add clos-stablehash1, clos-stablehash2.
	* po/Makefile.devel (LISPSOURCES): Add clos-stablehash1,
	clos-stablehash2.

2004-06-13  Bruno Haible  <bruno@clisp.org>

	Fixed DEFSETF lambda-list handling.
	* init.lisp: Load lambdalist.lisp before places.lisp.
	* lambdalist.lisp: Define PUSH locally.
	(analyze-defsetf-lambdalist): New function.
	* places.lisp (get-setf-expansion): Pass environment to defsetf long
	expander.
	(defsetf): Use analyze-defsetf-lambdalist and handle &environment.

2004-06-05  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp: Reorder.

2004-05-15  Bruno Haible   <bruno@clisp.org>

	* init.lisp (*documentation*): Change the hash table test to
	STABLEHASH-EQUAL, since some of the keys are lists, not symbols.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	Use STABLEHASH-EQ as test for hash tables indexed by symbols.
	* init.lisp (*documentation*): Use hash table test STABLEHASH-EQ.
	* type.lisp (encoding-zeroes): Use hash table test STABLEHASH-EQUAL.
	* subtypep.lisp (get-charset-range): Likewise.
	* compiler.lisp (instruction-codes, function-codes, c-form-table): Use
	hash table test STABLEHASH-EQ.
	(c-CASE): More accurate determination of the hash table test depending
	on the keys.
	(EQL=EQ): Return true for short-floats also.
	(one-value-ops, for-value-table): Use hash table test STABLEHASH-EQ.
	* clos-class2.lisp (finalize-instance-standard-class): For the slot
	location table, use test STABLEHASH-EQ.
	(std-compute-slots): Use test STABLEHASH-EQL instead of EQL.
	(initialize-instance-structure-class): For the slot location table
	use test STABLEHASH-EQ.
	* clos-genfun2.lisp (prototype-table): Use hash table test
	STABLEHASH-EQUAL.
	* foreign1.lisp (*c-type-table*): Use hash table test STABLEHASH-EQ.
	(*object-table*): Use hash table test STABLEHASH-EQUAL.
	(*type-table*): Use hash table test STABLEHASH-EQ.
	* affi1.lisp (*library-functions*): Use hash table test STABLEHASH-EQ.

2004-06-04  Bruno Haible  <bruno@clisp.org>

	Fix LOAD-TIME-VALUE.
	* compiler.lisp (const): Add ltv-form slot.
	(fnode): Add consts-ltv-forms slot.
	(c-LOAD-TIME-VALUE): Store the entire *form* in the const.
	(value-form-index): Add a ltv-form argument.
	(constvalue-index): Update.
	(kvalue-form-index): Add a ltv-form argument.
	(const-index): Update.

2004-06-03  Bruno Haible  <bruno@clisp.org>

	Improved lambda list checking in DEFSTRUCT and DEFMETHOD.
	* lambdalist.lisp: New file, extracted from compiler.lisp.
	* init.lisp: Load it.
	* compiler.lisp (analyze-lambdalist, lambdalist-error): Moved to
	lambdalist.lisp.
	(c-analyze-lambdalist): New function.
	(lambda-list-to-signature, c-LAMBDABODY, c-LABELS, c-FUNCALL-INLINE):
	Use it instead of analyze-lambdalist.
	* defstruct.lisp (ds-make-boa-constructor): Use analyze-lambdalist.
	* clos-method2.lisp (analyze-method-description): Likewise.
	* clos-methcomb2.lisp (compute-effective-method-function): Update.
	* clos-package.lisp: Update.
	* makemake.in (LPARTS): Add lambdalist.
	* po/Makefile.devel (LISPSOURCES): Add lambdalist.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_symbol_values): Initialize
	*WARN-ON-HASHTABLE-NEEDING-REHASH-AFTER-GC* to NIL.
	* hashtabl.d (warn_forced_gc_rehash): New function.
	(hash_lookup_builtin, hash_lookup_builtin_with_rehash): Call it when
	*WARN-ON-HASHTABLE-NEEDING-REHASH-AFTER-GC* is true.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (clrhash): Reorganize the hash table immediately,
	instead of delaying the reorganization.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* io.d (structure_reader): Accept both the new syntax with :TEST and
	the old syntax.
	(pr_orecord): For hash tables, make the output in the three possible
	cases more consistent.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	Add a hash code to symbols.
	* lispbibl.d (symbol_): Add hashcode field. Disable filler for
	LINUX_NOEXEC_HEAPCODES.
	* spvw.d (init_symbol_tab_1): Pre-initialize the symbol's hash code.
	* spvw_update.d (update_symbol_tab): Update the hashcode as well.
	* spvw_garcol.d (gc_markphase): Mark the hashcode as well.
	* spvw_typealloc.d (make_symbol): Pre-initialize the hash code.
	* constsym.d (LISPSYM_B): Pre-initialize the symbol's hash code.
	Disable filler for LINUX_NOEXEC_HEAPCODES.
	* hashtabl.d (hashcode1stable): Handle symbols specially.
	(gcinvariant_hashcode1stable_p): Return true also for symbols.
	(gcinvariant_hashcode2stable_p): Likewise.
	(gcinvariant_hashcode3stable_atom_p): Likewise.
	* genclisph.d (main): Update symbol_ definition.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* clos-method1.lisp (lambda-list-keyword-p): Move to clos-method2.lisp.
	* clos-method2.lisp (lambda-list-keyword-p): New function, from
	clos-method1.lisp.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* clos-genfun2.lisp (callinfo, gf-signature, gf-argorder, gf-methods)
	(gf-method-combination): Move to clos-genfun1.lisp.
	* clos-genfun1.lisp (callinfo, gf-signature, gf-argorder, gf-methods)
	(gf-method-combination): New functions, from clos-genfun2.lisp.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* clos-methcomb2.lisp: Merge all of clos-genfun1, clos-methcomb2,
	clos-methcomb3, clos-methcomb4, clos-methcomb5.
	* clos-genfun1.lisp (method-applicable-p, sort-applicable-methods):
	Moved to clos-methcomb2.lisp.
	* clos-methcomb3.lisp: Remove file.
	* clos-methcomb4.lisp: Remove file.
	* clos-methcomb5.lisp: Remove file.
	* clos.lisp: Don't load them any more.
	* makemake.in (LPARTS): Remove clos-methcomb3, clos-methcomb4,
	clos-methcomb5.
	* po/Makefile.devel (LISPSOURCES): Likewise.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* clos-genfun1.lisp (methods-agree-p, specializers-agree-p)
	(same-specializers-p): Move to clos-genfun3.lisp.
	* clos-genfun3.lisp (methods-agree-p, specializers-agree-p)
	(same-specializers-p): New functions, from clos-genfun1.lisp.

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* clos.lisp: Reorder method and method combination includes.

2004-06-10  Bruno Haible  <bruno@clisp.org>

	* trace.lisp (tracer): Add max-depth slot.
	(trace1): Implement :max-depth option.

2004-05-13  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (empty-ht): Warn if this hash table ever gets used
	nontrivially.

2004-05-13  Bruno Haible  <bruno@clisp.org>

	* sequence.d (seq_duplicates): Use a hash table test FASTHASH-EQ
	instead of EQ, FASTHASH-EQL instead of EQL, FASTHASH-EQUAL instead of
	EQUAL.
	* compiler.lisp (c-CASE): Likewise.
	* room.lisp (%space): Likewise.

2004-05-14  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (hashcode_tuple): Use inlined hashcode3stable_atom.
	* clos-genfun2.lisp (compute-dispatch): When the number of dispatching
	arguments is > 1, use a hash table with test STABLEHASH-EQUAL.
	* clos-class5.lisp (*update-instance-for-different-class-table*):
	Use hash table test FASTHASH-EQUAL.

	* loop.lisp (loop-keywordp): Use hash table test FASTHASH-EQUAL.

2004-05-13  Bruno Haible  <bruno@clisp.org>

	Make the hashcode of classes GC-invariant.
	* lispbibl.d (Class): New field 'hashcode'.
	* hashtabl.d (CLOS::CLASS-GETHASH): Inline hash_lookup and
	hashcode1stable. Use the class' hashcode directly.
	* clos-class2.lisp (class): Inherit from structure-stablehash.
	(std-compute-superclasses, add-direct-subclass, list-all-subclasses):
	Use a hash table with test STABLEHASH-EQ.
	* clos-class5.lisp (*make-instance-table*)
	(*reinitialize-instance-table*)
	(*update-instance-for-redefined-class-table*): Likewise.
	* clos-genfun2.lisp (compute-dispatch): When the number of dispatching
	arguments is 1, use a hash table with test STABLEHASH-EQ.

2004-05-13  Bruno Haible  <bruno@clisp.org>

	Use FASTHASH-EQ as test for hash tables indexed by characters.
	* io.d (allocate_perchar_table, copy_perchar_table)
	(allocate_syntax_table, copy_readtable_contents): Use FASTHASH-EQ as
	test for MAKE-HASH-TABLE.

2004-05-14  Bruno Haible  <bruno@clisp.org>

	New hash-table tests FASTHASH-EQL/EQUAL and STABLEHASH-EQL/EQUAL.
	* lispbibl.d (Hashtable): Add ht_gcinvariantfn field.
	* spvw.d (init_symbol_values): Initialize *EQL-HASHFUNCTION*,
	*EQUAL-HASHFUNCTION*.
	* hashtabl.d (gcinvariant_hashcode1_p): New function.
	(gcinvariant_hashcode1stable_p): New function.
	(gcinvariant_hashcode2_p): New function.
	(hashcode2stable): New function.
	(gcinvariant_hashcode2stable_p): New function.
	(hashcode3_cons0, hashcode3_cons1, hashcode3_cons2, hashcode3_cons3):
	Mark as inline.
	(gcinvariant_hashcode3_cons0_p, gcinvariant_hashcode3_cons1_p)
	(gcinvariant_hashcode3_cons2_p, gcinvariant_hashcode3_cons3_p)
	(gcinvariant_hashcode3_p): New functions.
	(hashcode3stable_atom, hashcode3stable_cons0, hashcode3stable_cons1)
	(hashcode3stable_cons2, hashcode3stable_cons3, hashcode3stable): New
	functions.
	(gcinvariant_hashcode3stable_atom_p)
	(gcinvariant_hashcode3stable_cons0_p)
	(gcinvariant_hashcode3stable_cons1_p)
	(gcinvariant_hashcode3stable_cons2_p)
	(gcinvariant_hashcode3stable_cons3_p, gcinvariant_hashcode3stable_p):
	New functions.
	(gcinvariant_hashcode4_cons0_p, gcinvariant_hashcode4_cons1_p)
	(gcinvariant_hashcode4_cons2_p, gcinvariant_hashcode4_cons3_p)
	(gcinvariant_hashcode4_p): New functions.
	(gcinvariant_Pseudofun): New type.
	(gcinvariantfn): New macro.
	(hashcode_gc_invariant_p): Use an indirection through gcinvariantfn.
	(get_eql_hashfunction, get_equal_hashfunction): New functions.
	(MAKE-HASH-TABLE): Recognize the tests {FAST,STABLE}HASH-{EQL,EQUAL}.
	Store the gcinvariant pseudofunction in the hash table.
	(hash_table_test): Return FASTHASH-EQL or STABLEHASH-EQL instead of
	EQL, FASTHASH-EQUAL or STABLEHASH-EQUAL instead of EQUAL.
	(SYSTEM::FASTHASH-STABLE-P, SYSTEM::STABLEHASH-STABLE-P): Use
	gcinvariant_hashcode1_p and gcinvariant_hashcode1stable_p, resp.
	* pseudofun.d: Add hashcode2stable, hashcode3stable, and all
	gcinvariant_hashcode* functions.
	* init.lisp: Export fasthash-eql, stablehash-eql, fasthash-equal,
	stablehash-equal from EXT.
	* defs1.lisp (ext:fasthash-eql, ext:stablehash-eql, ext:fasthash-equal)
	(ext:stablehash-equal): New function aliases.

2004-05-12  Bruno Haible  <bruno@clisp.org>

	New hash-table tests FASTHASH-EQ and STABLEHASH-EQ.
	* lispbibl.d (htflags_invalid_B, htflags_gc_rehash_B): New macros.
	(mark_ht_invalid, mark_ht_valid, ht_validp): No need to rehash a
	table if all its objects have a GC-invariant hash code.
	(set_ht_invalid_if_needed): New macro.
	(htflags_warn_gc_rehash_B): New macro.
	(ht_test_code): Update.
	(Class): Add field subclass_of_stablehash_p.
	(StablehashStructure, StablehashInstance): New types.
	* spvw.d (init_symbol_values): Initialize *EQ-HASHFUNCTION*.
	* spvw_update.d: Provide customization through
	update_hashtable_invalid.
	* spvw_garcol.d (gar_col_normal, gar_col_compact, move_conses)
	[GENERATIONAL_GC]: Set update_hashtable_invalid to false.
	* spvw_memfile.d: Update.
	* hashtabl.d (hashcode1stable): New function.
	(htflags_test_eq_B, htflags_test_eql_B, htflags_test_equal_B)
	(htflags_test_equalp_B, htflags_stablehash_B): New macros.
	(hashcode_raw): Use hashcode1 only for FASTHASH-EQ.
	(hashcode_builtin): Likewise.
	(hash_lookup_builtin): Update.
	(instance_of_stablehash_p, hashcode_gc_invariant_p): New functions.
	(warn_key_forces_gc_rehash): New function.
	(hash_store): Update the htflags_gc_rehash_B bit. Optionally warn
	when it is being set.
	(hash_prepare_store): Update.
	(clrhash): Update the htflags_gc_rehash_B bit.
	(get_eq_hashfunction): New function.
	(MAKE-HASH-TABLE): Add :warn-if-needs-rehash-after-gc argument.
	Accept the tests FASTHASH-EQ and STABLEHASH-EQ.
	(hash_table_test): Return FASTHASH-EQ or STABLEHASH-EQ instead of EQ.
	(SYSTEM::FASTHASH-STABLE-P, SYSTEM::STABLEHASH-STABLE-P): New
	functions.
	* io.d (pr_orecord): Improve printing of hash tables.
	* init.lisp: Export fasthash-eq, stablehash-eq from EXT.
	Export standard-stablehash, structure-stablehash from CLOS and EXT.
	* clos-package.lisp: Export standard-stablehash, structure-stablehash.
	* defs1.lisp (ext:fasthash-eq, ext:stablehash-eq): New function
	aliases.
	* clos-class2.lisp (structure-stablehash): New class.
	(slotted-class): Add slot subclass-of-stablehash-p.
	(finalize-instance-standard-class): Initialize it.
	(std-compute-subclass-of-stablehash-p): New function.
	(initialize-instance-structure-class): Initialize it here too.
	* clos-class5.lisp (standard-stablehash): New class.
	* utils/clispload.lsp (*expected-failures*): Add HASH-TABLE-TEST.[1-4].

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

	* modules/regexp/regexi.c (REGEXP-EXEC): check
	that the pattern is not NULL

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* lisparit.d (SYS::RANDOM-POSFIXNUM): New function.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* init.lisp, type.lisp, subtypep.lisp, compiler.lisp, loop.lisp:
	* clos-class2.lisp, clos-closs5.lisp, clos-genfun2.lisp, room.lisp:
	* foreign1.lisp, affi1.lisp: Annotate all make-hash-table calls
	with :key-type and :value-type.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (MAKE-HASH-TABLE): Add arguments :KEY-TYPE, :VALUE-TYPE.

2004-05-10  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (hashcode_raw_user): Renamed from hashcode5.
	(hashcode_raw, hashcode_raw_user): Update.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (hashcode_builtin, hashcode_user): New functions.
	(hash_lookup_builtin): Use hashcode_builtin instead of hashcode.
	(hash_lookup_user): Use hashcode_user instead of hashcode.

2004-06-08  Arseny Slobodjuk  <ampy@ich.dvo.ru>

	* makemake.in (ARGQ): new variable, shell command
	argument separator apostrophes. Is empty for command.com.
	(cflags.h): use it to fix MSVC build.
	(stdbool.h, stdint.h): use it to shorten the code.
	(all): make lisp.bsc (source code browser database)
	when msvc & debug.
	(lisp.bsc): new target when msvc & debug.
	(clisp.html): apostrophe problem again.

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

	* .gdbinit (full): do not load NCLX demos

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

	* modules/regexp/test.tst: commented out non-POSIX regexps

2004-06-07  Bruno Haible  <bruno@clisp.org>

	* init.lisp (open-for-load): Use uppercase ~S in format strings so that
	the warnings can be shown during bootstrap. Use ~A, not ~S, to display
	pathnames.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* hashtabl.d (hash_prepare_store): Fix bug introduced on 2003-05-13:
	EQUAL and EQUALP hash codes must not be cached across a GC.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	Unify the two hash table counts.
	* lispbibl.d (Hashtable): Remove ht_count field.
	(hashtable_length): Decrement.
	* hashtabl.d (HT_GOOD_P): Remove check of ht_count.
	(rehash): Store the count in the kvtable.
	(hash_store): Increment the count in the kvtable.
	(resize, clrhash): Store the count in the kvtable.
	(REMHASH): Decrement the count in the kvtable.
	(HASH-TABLE-COUNT): Return the count in the kvtable.
	(SYS::%SET-HASH-TABLE-WEAK-P): Copy also the count, in all cases.
	* io.d (pr_orecord): Update.
	* predtype.d (hash_table_equalp): Update.
	(typep_class, typep_classname): Use ht_size instead of ht_count.
	* spvw_debug.d (nobject_out1): Update.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	Let the GC clean up weak hash tables.
	* spvw_weak.d (weak_hashed_alist_update_one, weak_hashed_alist_update):
	New functions.
	(weak_clean_dead): Call weak_hashed_alist_update when appropriate.
	* hashtabl.d (hash_lookup_builtin, hash_lookup_user): Don't test
	whether the key/value pair has been garbage-collected.

2004-06-06  Sam Steingold  <sds@gnu.org>

	* pathname.d (TRANSLATE-LOGICAL-PATHNAME): accept :ABSOLUTE
	* subr.d, subrkw.d (translate_logical_pathname): updated

2004-06-06  Arseny Slobodjuk  <ampy@ich.dvo.ru>

	* lispbibl.d (offsetofa): Define without brackets for MSVC
	to make subr_xlength a constant.

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

	fixed bug #[ 956755 ]: NAMESTRING's second arg is non-compliant
	* pathname.d (TRANSLATE-PATHNAME): accept :ABSOLUTE argument to
	merge in the OS default pathname
	(NAMESTRING): do not accept a second optional argument, as per ANSI
	(DYNLOAD-MODULES): do not call NAMESTRING with 2 arguments
	* cfgwin32.lisp, edit.lisp (edit-file): call TRANSLATE-PATHNAME
	:ABSOLUTE T instead of NAMESTRING with 2 arguments
	* runprog.lisp (xstring): ditto
	* constobj.d (version): bump because of NAMESTRING signature change
	* subr.d, subrkw.d (namestring, translate_pathname): updated

2004-05-30  Bruno Haible  <bruno@clisp.org>

	* record.d (do_allocate_instance): Call FINALIZE-INHERITANCE instead
	of FINALIZE-CLASS. Fix GC-safety bug.
	(CLOS::%MAKE-INSTANCE): Call FINALIZE-INHERITANCE instead of
	FINALIZE-CLASS.

2004-05-30  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef1.lisp (convert-direct-slots): Check the return value
	from direct-slot-definition-class.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	Move the ht_itable and ht_freelist into ht_kvtable.
	* lispbibl.d (Hashtable): Remove ht_itable, ht_freelist fields.
	(hashtable_length): Decrement by 2.
	(HashedAlist): New type.
	(TheHashedAlist): New macro.
	(kvtable_data, ht_kvt_data): Remove macros.
	(map_hashtable, map_hashtable_nogc): Update.
	* hashtabl.d (HT_GOOD_P): Remove ht_itable check.
	(rehash, hash_lookup_builtin, hash_lookup_user, hash_store): Update.
	(allocate_kvt): Update the allocation size. Initialize the freelist
	field.
	(resize): Store the new itable in the kvtable. No need to initialize
	the freelist here.
	(hash_prepare_store, clrhash): Update.
	(MAKE-HASH-TABLE): Store the new itable in the kvtable. No need to
	initialize the freelist here. Fix GC-safety bug before an error
	message.
	(REMHASH, MAPHASH, SYS::HASH-TABLE-ITERATE): Update.
	(SYS::%SET-HASH-TABLE-WEAK-P): Copy also the itable and freelist from
	the old to the new kvtable.
	(CLOS::CLASS-TUPLE-GETHASH): Update.
	* io.d (pr_kvtable): Update. Optimize a loop invariant.
	* predtype.d (hash_table_equalp): Update. Don't pass nullobj to equalp.
	* spvw_debug.d (nobject_out1): Update.
	* spvw_weak.d (weak_clean_dead): For WeakHashedAlist, return true.

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

	* comptran.d (R_R_atanh_R_R): fixed ATANH on complex numbers

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

	* list.d (replace_circular_list): new function
	(LAST): check the list argument for circularity, do not accept ATOMs
	(check_list_length): use replace_circular_list()

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

	* clos-class2.lisp (list-direct-subclasses): avoid a compiler warning

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

	* condition.lisp (retry-function-call): new function
	* clos-genfun5.lisp (no-applicable-method, no-primary-method):
	use RETRY-FUNCTION-CALL to make recoverable
	(no-next-method): use CERROR to make recoverable

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

	* condition.lisp (check-value): use RETRY restart instead of CONTINUE
	(retry): new function, invokes RETRY restart (similar to CONTINUE,
	but is not triggered by EOF/Ctr-D)
	(check-value, correctable-error): associate the new restarts with
	the condition

2004-05-29  Bruno Haible  <bruno@clisp.org>

	* clos-package.lisp: Import ext:proper-list-p.
	* clos-slotdef1.lisp (initialize-instance-<slot-definition>): Use it.
	Improve error messages.
	(initialize-instance-<direct-slot-definition>): Likewise.
	(initialize-instance-<effective-slot-definition>): Likewise.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	Many improvements to BACKQUOTE.
	* backquote.lisp (BQ-NCONCABLE): Remove macro. Now cleaned up by the
	macroexpander.
	(bq-expand): Don't test *backquote-optimize* any more. Call
	bq-append-multiple.
	(bq-transform): Call bq-list.
	(*backquote-optimize-cons*, *backquote-optimize-list*)
	(*backquote-optimize-append*, *backquote-optimize-nconc*)
	(*backquote-optimize-vector*): New variables replace
	*BACKQUOTE-OPTIMIZE*.
	(bq-splicing-p, bq-non-splicing): New functions.
	(bq-cons, bq-list, bq-append, bq-nconc): New functions.
	(bq-append-multiple): New function.
	(bq-optimize-for-list): Remove function.
	(bq-optimize-for-vector): Take the optimized list as arguments. Several
	fixes.
	(bq-optimize-append, bq-optimize-list*, bq-optimize-list, bq-eval)
	(bq-constant-p, eval-self-p, maybe-quote, maybe-unquote)
	(quoted-bq-operator-p, bq-reduce-nesting): Remove functions.
	(backquote-cons): Call bq-cons.
	(backquote-append): Call bq-append.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (hash_lookup_builtin, hash_lookup_builtin_with_rehash):
	Remove Nptr_ argument.
	* hashtabl.d (lookup_Pseudofun): Remove Nptr_ argument.
	(hash_lookup_builtin, hash_lookup_builtin_with_rehash)
	(hash_lookup_user, hash_lookup): Likewise.
	(MAKE-HASH-TABLE, gethash, GETHASH, SYSTEM::PUTHASH, REMHASH)
	(CLOS::CLASS-GETHASH): Update.
	* pseudofun.d: Update.

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

	more consistent macro/function naming, more error recovery
	* stream.d (check_stream, check_streamtype, check_wr_int): removed
	(get_streamtype_replacement): new function
	(CHECK_streamtype, CHECK_builtin_stream, ASSERT_wr_int): new macros
	(test_stream_args): remove, replace with ...
	(check_stream_args): new function
	(SYNONYM-STREAM-SYMBOL, BROADCAST-STREAM-STREAMS)
	(CONCATENATED-STREAM-STREAMS, GENERIC-STREAM-CONTROLLER)
	(TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM)
	(ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM)
	(test_n_bytes_args): use CHECK_streamtype
	(stream_handles): fixed a bug: missing `return' in fixnum case
	(MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM): use check_stream_args()
	(GENERIC-STREAM-P, TERMINAL-RAW, INPUT-STREAM-P, OUTPUT-STREAM-P)
	(STREAM-EXTERNAL-FORMAT, INTERACTIVE-STREAM-P, READ-BYTE-LOOKAHEAD)
	(READ-BYTE-WILL-HANG-P, WRITE-BYTE, LINE-NUMBER, ALLOW-READ-EVAL):
	updated for the check_stream() changes
	(BUILT-IN-STREAM-ELEMENT-TYPE): use CHECK_builtin_stream()
	(bitbuff_ixu_sub, bitbuff_ixs_sub, wr_by_iau8_unbuffered)
	(wr_by_iau8_buffered, WRITE-BYTE, WRITE-INTEGER): use CHECK_wr_int()
	* io.d (test_disp_sub_char): completely recoverable, shift STACK args
	(SET-DISPATCH-MACRO-CHARACTER, GET-DISPATCH-MACRO-CHARACTER): update
	(test_stream_arg): remove, replace with ...
	(check_stream_arg): new function
	(RPAR-READER, STRING-READER, QUOTE-READER, LINE-COMMENT-READER)
	(test_no_infix, CHAR-READER, radix_1, RADIX-READER, UNINTERNED-READER)
	(BIT-VECTOR-READER, VECTOR-READER, ARRAY-READER, READ-EVAL-READER)
	(LOAD-EVAL-READER, LABEL-DEFINITION-READER, NOT-READABLE-READER)
	(SYNTAX-ERROR-READER, CLOSURE-READER, PPRINT-NEWLINE, %CIRCLEP)
	(%PPRINT-LOGICAL-BLOCK, FORMAT-TABULATE, WRITE, PRIN1, PRINT, PPRINT)
	(PRINC, WRITE-CHAR, write_string_up, TERPRI, FRESH-LINE, FINISH-OUTPUT)
	(FORCE-OUTPUT, CLEAR-OUTPUT, WRITE-UNREADABLE, LINE-POSITION): use it
	(test_istream, test_ostream): remove, replace with ..
	(check_istream, check_ostream): new functions
	(read_w, READ-DELIMITED-LIST, READ-LINE, READ-CHAR, UNREAD-CHAR)
	(PEEK-CHAR, LISTEN, READ-CHAR-WILL-HANG-P, READ-CHAR-NO-HANG)
	(CLEAR-INPUT): use check_istream()
	(PARSE-INTEGER): recover from bad radix
	(PRINT-STRUCTURE): use check_stream()
	(WRITE-SPACES, PPRINT-INDENT, ): use check_ostream()
	* error.d, lispbibl.d (check_stream_replacement): added
	(fehler_stream, fehler_streamtype): removed
	* debug.d (DESCRIBE-FRAME): use check_stream()
	instead of fehler_stream()
	* sequence.d (READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE)
	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): ditto
	* constsym.d (x11_socket_stream, generic_stream): added

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

	* list.d (up2_test, up2_test_not, up_test, up_test_not, up_if)
	(up_if_not): simplify return statement

2004-06-02  Bruno Haible  <bruno@clisp.org>

	* list.d (check_cons): Remove macro.
	(check_cons): New function.
	(RPLACA, SYS::%RPLACA, RPLACD, SYS::%RPLACD): Use it.
	(SYS::LIST-ACCESS, SYS::LIST-ACCESS-SET): Likewise.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-expand-list): Use iteration instead of recursion.

2004-05-16  Bruno Haible  <bruno@clisp.org>

	Generate direct slots for DEFSTRUCT.
	* clos-slotdef1.lisp (*<structure-direct-slot-definition>-defclass*):
	Add an initff slot.
	(structure-direct-slot-definition-initff): New accessor.
	(initialize-instance-<structure-direct-slot-definition>): Accept
	initff argument.
	(make-instance-<structure-direct-slot-definition>): Update.
	(make-load-form-<structure-direct-slot-definition>): New function.
	* defstruct.lisp (defstruct): Generate a list of direct slots as part
	of the defstruct-description.
	* io.d (structure_reader, pr_structure_default): Update.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	Merge ht_kvtable and ht_ntable. For weak hash tables, use
	WeakHashedAlist instead of WeakAlist.
	* lispbibl.d (Rectype_WeakHashedAlist_Key)
	(Rectype_WeakHashedAlist_Value, Rectype_WeakHashedAlist_Either)
	(Rectype_WeakHashedAlist_Both): New enum items.
	(Hashtable): Remove ht_ntable field.
	(hashtable_length): Decrement.
	(kvtable_data): Update.
	(WeakHashedAlist): New type.
	(TheWeakHashedAlist): New macro.
	(Lrecord_nonweak_length): Update.
	(map_hashtable, map_hashtable_nogc): Update.
	* spvw_gcmark.d (gc_mark): Handle Rectype_WeakHashedAlist_*.
	* spvw_weak.d (max_watchset_count, get_watchset)
	(propagate_through_weak, weak_clean_dead, weak_must_activate): Handle
	Rectype_WeakHashedAlist_*.
	* spvw_circ.d (get_circ_mark, get_circ_unmark): Handle
	Rectype_WeakHashedAlist_*.
	* spvw_debug.d (nobject_out1): Update.
	* hashtabl.d (HT_GOOD_P): Remove ht_ntable check.
	(rehash, hash_lookup_builtin, hash_lookup_user): Use KVptr+2 instead of
	Nptr.
	(hash_store): Likewise.
	(hash_table_weak_type): ht_kvtable is now a Rectype_WeakHashedAlist_*.
	(allocate_kvt): Allocate a vector with 3*maxcount entries, or a
	WeakHashedAlist.
	(prepare_resize): Don't allocate an ntable any more.
	(resize): Fill extended kvtable instead of ntable.
	(clrhash, MAPHASH, HASH-TABLE-COUNT): Update.
	(SYS::HASH-TABLE-ITERATE): Update.
	(SYS::%SET-HASH-TABLE-WEAK-P): Update.
	(CLASS-TUPLE-GETHASH): Use KVptr+2 instead of the ntable.
	* io.d (pr_kvtable): Update.
	(pr_orecord): Update hashtable handling. Add Rectype_WeakHashedAlist_*
	handling.
	* predtype.d (hash_table_equalp): Update.
	(TYPE-OF, CLASS-OF): Handle Rectype_WeakHashedAlist_*.
	(enum_hs_internal_weak_hashed_alist): New enum item.
	(heap_statistics_mapper): Handle Rectype_WeakHashedAlist_*.

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

	more errors are recoverable
	* list.d (COPY-LIST, NRECONC): use check_list() instead of fehler_list()
	(fehler_cons): replaced with check_cons_replacement() and check_cons()
	(RPLACA, %RPLACA, RPLACD, %RPLACD, LIST-ACCESS, LIST-ACCESS-SET):
	use check_cons()

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

	* list.d (check_list_length): check that the argument is a
	non-circular list and compute its length
	(BUTLAST, NBUTLAST): use it

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

	* hashtabl.d (hashcode4) [PATHNAME_WIN32]: declare global

2004-05-31  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-TYPEP): Generate CLOS::TYPEP-CLASS call also when
	the class has no proper name.

2004-05-29  Bruno Haible  <bruno@clisp.org>

	* record.d (SYS::%UNBOUND): New function.

2004-05-27  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (proper_list_p): New declaration.
	* list.d (proper_list_p): New function.
	* predtype.d (EXT:PROPER-LIST-P): New function.
	* error.d (fehler_proper_list): Tweak error message.
	* init.lisp: Export ext:proper-list-p.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-nconcable): Renamed from bq-nconc.

2004-05-10  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (add-direct-subclass): Use a weak hash-table when
	the list has more than 10 elements.
	(remove-direct-subclass, list-direct-subclasses): Recognize the
	possibility that direct-subclasses is a hash-table.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (hash_lookup_builtin, hash_lookup_builtin_with_rehash):
	New declarations.
	(set_ht_invalid, set_ht_valid): New macros.
	* spvw_garcol.d (gar_col_normal, gar_col_compact, move_conses): Use
	set_ht_invalid instead of mark_ht_invalid.
	* spvw_memfile.d (loadmem_from_handle): Likewise.
	* spvw_circ.d (subst_circ_mark): Likewise.
	* hashtabl.d (rehash): Use set_ht_valid instead of mark_ht_valid.
	(hash_lookup_builtin): Assume table is valid.
	(hash_lookup_builtin_with_rehash): New function.
	(resize, clrhash): Use set_ht_invalid instead of mark_ht_invalid.
	* pseudofun.d: Add hash_lookup_builtin_with_rehash.

2004-05-30  Sam Steingold  <sds@gnu.org>

	* _distmakefile (clisp) [UNIX_BINARY_DISTRIB]: do not depend on
	src/clisp.c, use '"' for quoting

2004-05-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (symbol_): Check the size only if LINUX_NOEXEC_HEAPCODES.

2004-05-28  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Treat GCC 4 like GCC 3.4.

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

	* init.lisp (open-for-load) [compiler]: recompile the bad file
	when *LOAD-OBSOLETE-ACTION* is :COMPILE

2004-05-21  Bruno Haible  <bruno@clisp.org>

	Remove SELFMADE_MMAP.
	* lispbibl.d: Remove SELFMADE_MMAP functionality.
	* spvw.d: Likewise.
	* spvw_heap.d: Likewise.
	* spvw_global.d: Likewise.
	* spvw_fault.d: Likewise.
	* spvw_sigsegv.d: Likewise.
	* spvw_garcol.d: Likewise.
	* spvw_genera1.d: Likewise.
	* spvw_memfile.d: Likewise.
	* unixaux.d: Likewise.
	* win32aux.d: Likewise.
	* pathname.d: Likewise.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-expand): Use APPEND, not NCONC, to concatenate
	the parts of a vector. (Think of `#(,@(f1) ,@(f2)).)

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Hashtable): New field ht_lookupfn.
	(hashtable_length): Increment.
	* hashtabl.d (lookup_Pseudofun): New type.
	(lookupfn): New macro.
	(hash_lookup_builtin, hash_lookup_user): New functions.
	(hash_lookup): Turn into a macro.
	(MAKE-HASH-TABLE): Initialize ht_lookupfn.
	* pseudofun.d: Add hash_lookup_builtin, hash_lookup_user.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Hashtable): Add fields ht_hashcodefn, ht_testfn.
	(hashtable_length): Increment by 2.
	* hashtabl.d (hashcode2, hashcode3, hashcode4): Make global.
	(hashcode_Pseudofun, test_Pseudofun): New types.
	(hashcodefn, testfn): New macros.
	(hashcode_raw, hash_lookup): Use the pseudofuns.
	(MAKE-HASH-TABLE): Initialize ht_hashcodefn and ht_testfn.
	* pseudofun.d: Declare pseudofuns eql, equal, equalp, hashcode[234].

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

	an improper docstring does not warrant an error
	* control.d (parse_doc_decl): replaces fehler_docstring()
	(fehler_docstring): Remove function.
	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND, PARSE-BODY):
	use it instead of fehler_docstring()

2004-05-25  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY test sharper.
	* lispbibl.d (gcinvariant_oint_p, nonimmprobe): New macros.
	(gcv_object_t::operator object, gcv_object_t::gcv_object_t)
	(pgci_pointable, ngci_pointable): Use nonimmprobe.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (backquote-reader, bq-expand): Treat vectors of
	element types other than T like strings and bit-vectors.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (multibuild-linux-x86): Add builds with both
	HEAPCODES variants, and build with spvw_mixed_blocks-staggered
	and -fixedmemsize.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	Make it possible to combine GENERATIONAL_GC, HEAPCODES, NO_MORRIS_GC.
	* spvw_garcol.d (update): Provide a definition for the case
	GENERATIONAL_GC && HEAPCODES && !MORRIS_GC.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	Make it possible to test both SPVW_MIXED_BLOCKS_OPPOSITE and
	SPVW_MIXED_BLOCKS_STAGGERED.
	* spvw.d (SPVW_MIXED_BLOCKS_OPPOSITE): Define if CONS_HEAP_GROWS_DOWN.
	(SPVW_MIXED_BLOCKS_STAGGERED): Define if CONS_HEAP_GROWS_UP.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	Make it possible to simulate microcomputer memory management on Unix.
	* lispbibl.d (VIRTUAL_MEMORY): Don't define if NO_VIRTUAL_MEMORY is
	defined.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (BT_CHECK, unwind_back_trace): Depend on DEBUG_BACKTRACE,
	not DEBUG_SPVW.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	Let DEFSTRUCT generate regular (SETF FOO-BAR) functions instead of
	DEFSETF expanders.
	* defstruct.lisp (ds-make-readers): Renamed from ds-make-accessors.
	(ds-make-writers): Renamed from ds-make-defsetfs. Generate a DEFUN
	instead of a DEFSETF. Remove EVAL-WHEN hack.
	(defstruct): Update.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef3.lisp: Redefine the accessor functions with added
	type-checking.

2004-05-09  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Hashtable): Change type of ht_size to uintL.
	(hashtable_length): Update.
	(hashtable_xlength): New macro.
	(allocate_hash_table): Use hashtable_xlength.
	* hashtabl.d (HT_GOOD_P, hashcode_cook, hashcode, rehash, hash_lookup)
	(CLASS-TUPLE-GETHASH): Use an unboxed ht_size.
	(resize, MAKE-HASH-TABLE): Update.
	* spvw_debug.d (nobject_out1): Update.

2004-05-26  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main): Change effect of varobjects_misaligned on heap_limit.
	* spvw_garcol.d (gar_col_normal): Likewise.

2004-05-20  Bruno Haible  <bruno@clisp.org>

	Increase memory sizes for builds with fixed memory size.
	* makemake.in (interpreted.mem, halfcompiled.mem): Grant 1400 KW.
	(*.fas): Grant 1800 KW.
	(stage/*.fas): Grant 750 KW.
	(check-ansi-tests, check-ansi-tests-debug): Grant 30000 KW.

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

	* pathname.d (MAKE-LOGICAL-PATHNAME): accept :DEVICE :UNSPECIFIC
	because PATHNAME-DEVICE for LOGICAL-PATHNAME returns :UNSPECIFIC

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

	* Makefile.devel (src--distrib): touch src/VERSION to avoid the
	common problem of autoconf calls on user machine

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

	* makemake.in (distrib) [win32]: remove quotes that confuse find(1)

2004-05-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (oint_type_mask, oint_data_shift, oint_data_mask)
	[LINUX_NOEXEC_HEAPCODES]: Move down by one bit, so we need only 1/8th
	of the address space for the immediate objects.
	(immediate_object_p, machinep): Update.
	* spvw.d (main) [LINUX_NOEXEC_HEAPCODES]: Attempt to reserve the range
	0xC0000000..0xDFFFFFFF.

2004-05-25  Bruno Haible  <bruno@clisp.org>

	* eval.d (nest_var): Use fake_gcv_object. Needed for DEBUG_GCSAFETY.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp (bq-expand): Inline bq-expand-cons, bq-expand-vector.
	(bq-expand-cons, bq-expand-vector): Remove functions.
	(bq-expand-list): Simplify.

2004-05-20  Bruno Haible  <bruno@clisp.org>

	Speed up the FILL-STREAMs.
	* fill-out.lisp (stream-write-char-sequence@fill-stream): New method.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (ds-accessor-name): New function.
	(ds-make-accessors, ds-make-defsetfs): Use it.

2004-04-15  Bruno Haible  <bruno@clisp.org>

	* clos-slotdef1.lisp (*<slot-definition>-...-location*): New constants.
	(slot-definition-...): Use them.
	* clos-slotdef3.lisp (slot-definition-...): Likewise.

2004-05-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Rectype_WeakKVT): Remove enum value.
	(weakkvt_t, WeakKVT): Remove types.
	(weakkvt_length, Weakkvt_length, TheWeakKVT): Remove macros.
	(Lrecord_nonweak_length): Update.
	(if_recordp): Remove handling of Rectype_WeakKVT.
	(weakkvtp): Remove macro.
	(allocate_weakkvt): Remove declaration.
	* spvw.d (main): Don't initialize O(all_weakkvtables).
	* spvw_garcol.d (gar_col_normal): Remove obsolete and broken handling
	of weakkvt objects.
	* spvw_gcmark.d (gc_mark): Remove handling of Rectype_WeakKVT.
	* spvw_typealloc.d (allocate_weakkvt_low, allocate_weakkvt): Remove
	functions.
	* io.d (pr_weakkvt): Remove function.
	(pr_orecord): Remove handling of Rectype_WeakKVT.
	* predtype.d (TYPE-OF, CLASS-OF): Remove handling of Rectype_WeakKVT.
	(enum_hs_weakkvt): Remove enum value.
	(heap_statistics_mapper): Remove handling of Rectype_WeakKVT.

2004-05-08  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (map-direct-subclasses): Remove function.
	(add-direct-subclass, remove-direct-subclass, list-direct-subclasses):
	Use a weak-list instead of a list of weak-pointers.

2004-05-26  Bruno Haible  <bruno@clisp.org>

	* functions.lisp (function-lambda-expression): Moved to here from
	defs2.lisp.
	(function-name): Likewise. Make more efficient.
	* defs2.lisp (function-lambda-expression, function-name): Move to
	functions.lisp.

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

	fixed bug #[ 959549 ]: Win32 bug: LISTEN eats the first character
	* stream.d (listen_handle): always place the byte read() into *byte
	(low_fill_buffered_handle): do not lose the byte read by listen_handle()

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

	* clos-class2.lisp (make-instance-structure-class)
	(define-structure-class): avoid some compilation warnings
	* clos-class5.lisp (update-instance-for-redefined-class): ditto

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

	do not use the side-effect class of functions that might change,
	as per <http://www.lisp.org/HyperSpec/Body/sec_3-2-2-3.html>
	* control.d (FUNCTION-SIDE-EFFECT): also return FDEFINITION and NAME
	* eval.d (FUNTAB): also inline FUNCTION-SIDE-EFFECT and FUNCTION-NAME-P
	* constobj.d (version): bump
	* compiler.lisp (proclaimed-inline-p): new function
	(f-side-effect): use the side-effect class only for functions
	in the same compilation unit, proclaimed INLINE, residing in
	locked packages, or anonymous

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

	* defs2.lisp (function-name): new inline function
	* compiler.lisp (function-signature): use it
	* documentation.lisp (documentation): ditto

2004-05-24  Bruno Haible  <bruno@clisp.org>

	* built.d: New file.
	* lispbibl.d (built_flags): New declaration.
	* spvw.d (init_object_tab): Call it.
	* makemake.in (CPARTS): Add built. Let built.o, not spvw.o, depend on
	cflags.h.
	* po/Makefile.devel (DSOURCES): Add built.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* backquote.lisp: Reorder.
	(backquote, bq-nconc): Moved to here from init.lisp.
	(*unquote-occurred*): Renamed from *unquote-occured*.
	(bq-expand-vector): Renamed from bq-vec-expand.
	(bq-optimize-for-list): Renamed from bq-optimize.
	(bq-optimize-for-vector): Renamed from bq-optimize-vec.
	* init.lisp (backquote, bq-nconc): Moved to backquote.lisp.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	Make SPVW_MIXED_BLOCKS_STAGGERED work with LINUX_NOEXEC_HEAPCODES.
	* lispbibl.d (nonimmediate_heapnr) [HEAPCODES]: New macro.
	* spvw_genera1.d (rebuild_old_generation_cache): Use it.

2004-05-22  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with LINUX_NOEXEC_HEAPCODES.
	* lispbibl.d (nonimmsubrp): New function/macro.
	(gcv_object_t::gcv_object_t, pgci_pointable, ngci_pointable): Use it.

2004-05-23  Bruno Haible  <bruno@clisp.org>

	* spvw_allocate.d (make_space_gc) [SPVW_BLOCKS]: Take
	varobjects_misaligned into account.
	* spvw_memfile.d (loadmem_from_handle): Take varobjects_misaligned into
	account.

2004-05-08  Bruno Haible  <bruno@clisp.org>

	Make weak hash tables work.
	* lispbibl.d (ht_weak_p): Simplify.
	(ht_weak): Remove macro.
	(kvtable_data): Simplify. Use WeakAlist.
	(hash_table_weak_type): New declaration.
	* hashtabl.d (hash_lookup): When the key is unbound, no need to test
	the value for unbound as well.
	(hash_store): Increment the count in the weak-alist vector as well.
	(hash_table_weak_type, allocate_kvt): New functions.
	(prepare_resize): Use allocate_kvt.
	(resize): Update. Initialize the count in the weak-alist vector too.
	(HASH-TABLE-COUNT): Take the count from the weak-alist vector.
	(EXT:HASH-TABLE-WEAK-P): Update.
	(SYS::%SET-HASH-TABLE-WEAK-P): Mostly rewritten.
	* io.d (pr_orecord): Use hash_table_weak_type instead of ht_weak.
	* predtype.d (hash_table_equalp): Likewise.

2004-04-26  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (std-compute-cpl): Use "the list" declaration,
	to enable compiler optimization.
	* 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): Likewise.
	* clos-genfun2.lisp (compute-dispatch): Likewise.
	* clos-genfun5.lisp (compute-applicable-methods): Likewise.
	* clos-methcomb3.lisp (standard-method-combination-expander): Likewise.

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

	allow () to match NIL in destructuring lambda lists
	* utils/clispload.lsp (regression-test::*expected-failures*):
	removed MACROLET.39
	* defmacro.lisp (%null-tests): proclaim SPECIAL
	(empty-pattern): new function
	(analyze1): treat () as an empty pattern, not symbol NIL
	(make-macro-expansion): bind %NULL-TESTS and call them
	* places.lisp (define-setf-expander, defsetf): ditto
	* macros2.lisp (deftype): ditto

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

	* clos-class0.lisp (print-object): avoid a compilation warning

2004-05-22  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab): init O(system_type) here...
	* constobj.d (system_type): ...not here
	* makemake.in: only spvw.d depends on cflags.h, not everything

2004-05-22  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): avoid a compiler warning

2004-05-22  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab): fixed a typo in features_initstring

2004-05-22  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (regression-test::*expected-failures*):
	Add PRINT.ARRAY.2.12, PRINT.ARRAY.2.14, PRINT.ARRAY.2.16,
	PRINT.ARRAY.2.18, PRINT.ARRAY.2.19.

2004-05-22  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (regression-test::*expected-failures*):
	Remove MAKE-INSTANCES-OBSOLETE.2, PRINT.SYMBOL.PREFIX.3. Paul fixed
	them.

2004-05-22  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (symbol_): Add a filler for LINUX_NOEXEC_HEAPCODES. Check
	that the size is a multiple of varobject_alignment.
	* genclisph.d (main): Update.
	* constsym.d (LISPSYM_B): Add initializer for filler.

2004-05-22  Bruno Haible  <bruno@clisp.org>

	* spvw_weak.d (MARK): Use canon() instead of canonaddr().

2004-05-21  Bruno Haible  <bruno@clisp.org>

	New heapcodes scheme for Linux/x86 systems.
	* lispbibl.d: Recognize CFLAGS macros STANDARD_HEAPCODES,
	LINUX_NOEXEC_HEAPCODES.
	(STANDARD_HEAPCODES, LINUX_NOEXEC_HEAPCODES): New macros.
	(LINUX_NOEXEC_HEAPCODES): Use garcol_bit_o = 0.
	(machine_bias, varobject_bias, cons_bias, immediate_bias, subr_bias)
	(imm_type_shift, fixnum_type, sfloat_type, char_type, read_label_type)
	(system_type, sign_bit_t, sign_bit_o, bignum_bit_o, number_immediatep)
	(varobjects_misaligned, nonimmediate_bias_mask)
	(nonimmediate_heapcode_mask, type_data_object, type_zero_oint)
	(immediate_object_p, gcinvariant_object_p, gcinvariant_bias_p)
	[LINUX_NOEXEC_HEAPCODES]: New definitions for LINUX_NOEXEC_HEAPCODES.
	(varobject_alignment): Define to 8 for LINUX_NOEXEC_HEAPCODES.
	(consp, varobjectp): Generalize for LINUX_NOEXEC_HEAPCODES.
	(subrp) [LINUX_NOEXEC_HEAPCODES]: New definition for
	LINUX_NOEXEC_HEAPCODES.
	(immsubrp) [HEAPCODES]: New macro.
	(machinep) [LINUX_NOEXEC_HEAPCODES]: New definition for
	LINUX_NOEXEC_HEAPCODES.
	(case_Rectype_Subr_above): New macro.
	(FB5, FB4, FB3, FB2, FB1): New definitions for
	LINUX_NOEXEC_HEAPCODES.
	(makebottomword, framesize): New macros.
	(framecode) [LINUX_NOEXEC_HEAPCODES]: New definition for
	LINUX_NOEXEC_HEAPCODES.
	(topofframe, framebottomword): Simplify by using framesize,
	makebottomword.
	* genclisph.d (main): Update. Emit definitions of HEAPCODES,
	makebottomword.
	* spvw.d (main): If TRIVIALMAP_MEMORY & SPVW_MIXED_BLOCKS_STAGGERED
	& LINUX_NOEXEC_HEAPCODES, use 0xBF000000 as upper bound for all heaps.
	* spvw_garcol.d (alive) [HEAPCODES]: Make it work for
	LINUX_NOEXEC_HEAPCODES too.
	* spvw_gcmark.d (gc_mark) [HEAPCODES]: Make it work for
	LINUX_NOEXEC_HEAPCODES too.
	* spvw_memfile.d (loadmem_update) [HEAPCODES]: Make it work for
	LINUX_NOEXEC_HEAPCODES too; SUBRs are indistiguishable from Records
	here.
	* eval.d (eval1) [HEAPCODES]: Update for changed representation of
	subrs.
	* io.d (prin_object_dispatch) [HEAPCODES]: Update for changed
	representation of subrs.
	* hashtabl.d (sxhash_atom) [HEAPCODES]: Update for changed
	representation of subrs.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF, heap_statistics_mapper)
	[HEAPCODES]: Update for changed representation of subrs.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (char_int): Make it work when some heapcode bits are
	in the high bits, not only in the low bits.
	* genclisph.d (main): Update.

2004-05-21  Bruno Haible  <bruno@clisp.org>

	Make it possible to enforce an alignment == 4 mod 8 of all varobjects
	in HEAPCODES mode.
	* lispbibl.d (varobjects_misaligned, VAROBJECTS_ALIGNMENT_DUMMY_DECL):
	New macros.
	(conses_misaligned): New macro.
	(subr_t): Check that the size is a multiple of varobject_alignment.
	(DYNAMIC_8BIT_VECTOR, DYNAMIC_STRING): Enforce varobjects_misaligned.
	(subr_tab_, symbol_tab_): Add a varobjects_misaligned dummy decl.
	* genclisph.d (main): Emit varobjects_misaligned,
	VAROBJECTS_ALIGNMENT_DUMMY_DECL, varobject_alignment definitions.
	Update subr_tab_, symbol_tab_ definitions.
	* spvw.d (subr_anz, symbol_anz): Take varobjects_misaligned into
	account.
	(for_all_subrs, for_all_constsyms): Likewise.
	(init_subr_tab_1, init_symbol_tab_1, init_symbol_tab_2): Likewise.
	(init_symbol_functions): Likewise.
	(main): Likewise. Let heap_start point past the misaligned bytes.
	If SINGLEMAP_MEMORY || TRIVIALMAP_MEMORY, preallocate the first heap
	page. If SPVW_PAGES, initialize heap->misaligned.
	(dynload_modules): Take varobjects_misaligned into account.
	* spvw_heap.d (Heap) [SPVW_PAGES]: Add misaligned field.
	* spvw_global.d (check_gc_consistency): Take varobjects_misaligned into
	account.
	* spvw_garcol.d (gar_col_normal): If GENERATIONAL_GC, let generation 1
	respect varobjects_misaligned.
	(gc_compact_heap): Don't set a page's page_start and page_end before
	it is moved to the free_pages pool.
	* spvw_genera1.d (build_old_generation_cache): Allow for the
	possibility that heap_gen0_start has varobjects_misaligned.
	* spvw_allocate.d (make_space_gc_true): Take varobjects_misaligned into
	account.
	(make_space_gc_false): Assume map_pagesize is a power of 2.
	(make_space_gc) [SPVW_PAGES]: Take a Heap* as argument, not a Pages*.
	Take varobjects_misaligned into account. Set a page's page_start and
	page_end when taking it from the free_pages pool.
	(make_space) [SPVW_PAGES]: Update.
	* spvw_memfile.d (WRITE_page_alignment, READ_page_alignment): Add
	parens where needed.
	(savemem): Write out zero-bytes to enforce the varobjects_misaligned.
	(loadmem_from_handle): Take varobjects_misaligned into account.
	If SINGLEMAP_MEMORY || TRIVIALMAP_MEMORY, mmap also the zero-bytes
	that enforce the varobjects_misaligned.
	* spvwtabf.d (subr_tab_data): Enforce varobject_alignment. Add
	varobjects_misaligned dummy bytes at the beginning.
	(subr_tab_data_size): Take varobjects_misaligned into account.
	* spvwtabs.d (symbol_tab_data): Enforce varobject_alignment. Add
	varobjects_misaligned dummy bytes at the beginning.
	* modules.d (MODULE, modules): Add the varobjects_misaligned bytes at
	the beginning of the module's subr_tab.
	* affi.d (module__affi__subr_tab): Likewise.
	* utils/modprep.lisp (print-tables-1, print-tables-2): Likewise.
	* utils/modpreptest.out: Update.

2004-05-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (number_immediatep): New macro.
	(positivep, _R_sign) [!TYPECODES]: Use it.
	* flo_rest.d (floatcase): Likewise.

2004-05-18  Bruno Haible  <bruno@clisp.org>

	Make the Subr objects look like XRecords, to simplify gc_mark.
	* lispbibl.d (Rectype_Subr): New enumeration item.
	(subr_t): Add XRECORD_HEADER and move the lispfunction after the
	GC-visible fields.
	(subr_const_offset, subr_const_anz): Remove macros.
	(subr_length, subr_xlength): New macros.
	* genclisph.d (main): Update definitions of subr_t and LISPFUN_F.
	* subr.d (LISPFUN_D, LISPFUN_F, LISPFUN_G): Also initialize the subrs'
	GCself and type, flags and length.
	* spvw.d (init_subr_tab_1, init_other_modules_1, init_module_2)
	(dynload_modules): Also initialize the subrs' GCself.
	* spvw_update.d (update_subr_tab): Don't use subr_const_offset.
	* spvw_garcol.d (gc_markphase): Treat subrs like constsyms.
	(alive): The mark bit is now at the beginning of the Subr.
	(unmark_fixed_varobjects): Unmark the constsyms and subrs, even if
	GENERATIONAL_GC.
	* spvw_gcmark.d (down_subr, up_subr): Only needed if HEAPCODES.
	(gc_mark): Treat subrs like other SXRecords.

	* lispbibl.d (subr_tab_ptr_as_object): Make more portable.
	* genclisph.d (main): Update.

2004-05-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Rename NO_TYPECODES to HEAPCODES.
	* spvw.d: Likewise.
	* encoding.d: Likewise.
	* genclisph.d: Likewise.
	* makemake.in: Likewise.

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

	* io.d (pr_array): respect CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
	* constsym.d (print_empty_arrays_ansi): added
	* misc.d (SYS::SET-ANSI): set CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
	* spvw.d (init_symbol_values): defvar CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
	* places.lisp (*ansi*): mention in documentation

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

	* stream.d (SOCKET-STREAM-SHUTDOWN): avoid a GCC warning

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

	* stream.d (wr_ch_terminal3, wr_ch_array_terminal3): respect
	the terminal stream encoding EOL slot

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

	* spvw.d (init_object_tab): added memory model information to
	*FEATURES*
	* constobj.d (software_type): use "cflags.h"
	* makemake.in (cflags.h): new target

2004-05-08  Bruno Haible  <bruno@clisp.org>

	New data types containing weak references.
	* lispbibl.d (Rectype_MutableWeakList, Rectype_MutableWeakAlist)
	(Rectype_Weakmapping, Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr)
	(Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_Key)
	(Rectype_WeakAlist_Value, Rectype_WeakAlist_Either)
	(Rectype_WeakAlist_Both): New enum values.
	(WeakList, MutableWeakList, WeakAnd, WeakOr, Weakmapping)
	(WeakAndMapping, WeakOrMapping, WeakAlist, MutableWeakAlist): New types.
	(mutableweaklist_length, weakmapping_length, mutableweakalist_length):
	New macros.
	(TheMutableWeakList, TheWeakList, TheWeakAnd, TheWeakOr)
	(TheWeakmapping, TheWeakAndMapping, TheWeakOrMapping)
	(TheMutableWeakAlist, TheWeakAlist): New macros.
	(SXrecord_nonweak_length, Lrecord_nonweak_length): Return 0 also for
	the new weak data types.
	(activate_weak): New declaration.
	* spvw_gcmark.d: New file, extracted from spvw_garcol.d.
	(gc_mark): Handle Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr,
	Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_* as
	Lrecords.
	* spvw_weak.d: New file.
	* spvw_garcol.d (gc_mark): Move away to spvw_gcmark.d. Include
	spvw_gcmark.c, spvw_weak.c.
	(gar_col_normal): Invoke gc_mark_weakpointers and clean_weakpointers.
	Remove old handling of O(all_weakpointers).
	* spvw_circ.d (get_circ_mark, get_circ_unmark): Handle
	Rectype_MutableWeakList, Rectype_MutableWeakAlist, Rectype_Weakmapping,
	Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr,
	Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_*.
	* spvw.d (main): Initialize markwatchset.
	* spvw_memfile.d (loadmem_from_handle): Likewise.
	* weak.d: New file.
	* record.d (mk_weakpointer, MAKE-WEAK-POINTER, WEAK-POINTER-P)
	(check_weakpointer_replacement, check_weakpointer, WEAK-POINTER-VALUE)
	(SETF WEAK-POINTER-VALUE): Move to weak.d.
	* io.d (pr_orecord): Handle Rectype_MutableWeakList,
	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
	* predtype.d (TYPE-OF, CLASS-OF): Handle Rectype_MutableWeakList,
	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
	(enum_hs_weak_list, enum_hs_weak_alist, enum_hs_weakmapping)
	(enum_hs_internal_weak_list, enum_hs_weak_and_relation)
	(enum_hs_weak_or_relation, enum_hs_weak_and_mapping)
	(enum_hs_weak_or_mapping, enum_hs_internal_weak_alist): New enum values.
	(heap_statistics_mapper): Handle Rectype_MutableWeakList,
	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
	* init.lisp: Export symbols relating to weak-list, weak-and-relation,
	weak-or-relation, weak-mapping, weak-and-mapping, weak-or-mapping,
	weak-alist from EXT.
	* places.lisp (setf weak-pointer-value): Define as a function alias.
	(setf weak-list-list, setf weak-mapping-value)
	(setf weak-and-mapping-value, setf weak-or-mapping-value)
	(setf weak-alist-contents, setf weak-alist-value): New aliases.
	* makemake.in (CPARTS): Add weak.
	(SPVW_INCLUDES): Add spvw_gcmark, spvw_weak.
	* po/Makefile.devel (DSOURCES): Add spvw_gcmark, spvw_weak, weak.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	Make it possible to attach a documentation string to classes without
	a proper name.
	* lispbibl.d (Class): Add documentation field.
	* clos-class2.lisp (class): Add documentation slot.
	(ensure-class): Don't call sys::%set-documentation.
	(initialize-instance-standard-class, initialize-instance-built-in-class)
	(initialize-instance-structure-class): Initialize the documentation
	slot.
	* documentation.lisp (documentation, (setf documentation)): For
	classes, use the documentation string in the class. For symbols and
	'type, look in the class first.

2004-05-15  Bruno Haible  <bruno@clisp.org>

	Fix bug that prevents functions named (SETF FOO) from being inlined
	(bug introduced in clisp-2.26).
	* compiler.lisp (c-GLOBAL-FUNCTION-CALL, c-APPLY): Compare function
	names with EQUAL, not EQ.

2004-05-05  Bruno Haible  <bruno@clisp.org>

	* type.lisp (upgraded-complex-part-type): Change result to be as
	precise as possible. Add environment argument.
	* subtypep.lisp (COMPLEX): Call upgraded-complex-part-type where
	appropriate.

2004-05-05  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_pair): New function.
	(pr_kvtable): Use it.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	Change the default-initargs representation to match the MOP.
	* record.d (CLOS::%MAKE-INSTANCE): Assume each default initarg is
	in the form (symbol form func) instead of (symbol . initer).
	* clos-class2.lisp (defclass): Produce :DIRECT-DEFAULT-INITARGS
	as a list of (symbol form func).
	(ensure-class, equal-default-initargs)
	(finalize-instance-standard-class, initialize-instance-structure-class):
	Update.

2004-05-17  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Rewrite a preprocessor expression, to avoid a gcc
	warning.

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

	* condition.lisp: add package prefix in the WITHOUT-PACKAGE-LOCK form

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

	* spvw.d (main): do not print memory model information here
	* misc.d (SOFTWARE-TYPE): return O(software_type)
	instead of "ANSI C program"
	* constobj.d (software_type): memory model information

2004-05-16  Bruno Haible  <bruno@clisp.org>

	Fix (SIGNUM negative-single-float) on 64-bit machines.
	* aridecl.d (make_FF) [IMMEDIATE_FFLOAT]: Cast the data to 32 bits,
	otherwise a negative sign overflows into the type bits.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp (change-class): Don't copy the values of slots that
	are shared in the new class.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* record.d (check_initialization_argument_list): Change error type
	to PROGRAM-ERROR.
	* clos-class5.lisp (check-initialization-argument-list): Likewise.

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

	* modules/berkeley-db/bdb.c (BDB:ENV-CREATE): 4.2 uses
	DB_RPCCLIENT while 4.1 used DB_CLIENT

2004-05-16  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main) [TYPECODES && HAVE_SMALL_SSTRING]: Fix the
	definition of TheS8string, TheS16string, TheS32string.

2004-05-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (NO_ARI_ASM): Define if SAFETY==3.
	(begin_arith_call, end_arith_call): Don't test SAFETY any more.
	* arilev1.d (LOOP_INLINE_ASM, LOOP_EXTERN_ASM): Likewise.

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

	* unix/malloc.c (printf_address): align output
	(test_malloc): new function
	(main): when no arguments give, try the whole range

2004-05-16  Bruno Haible  <bruno@clisp.org>

	* spvw_garcol.d (gc_mark) [TYPECODES]: Fix bug in handling of
	reallocated simple-string (2004-02-18 patch).

2004-05-15  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (with-no-package-lock-internal): new macro:
	evaluates the package list
	(without-package-lock): use WITH-NO-PACKAGE-LOCK-INTERNAL
	* compiler.lisp (c-WITHOUT-PACKAGE-LOCK): wrap c-FORM call in
	WITH-NO-PACKAGE-LOCK-INTERNAL so that it works during
	macroexpansion too (e.g., with DEFMETHOD)

2004-05-15  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/sock.lisp (open-unix-socket): pass second
	argument to NAMESTRING (CLISP extension, to be removed)
	(close): define a method which calls SOCK-CLOSE

2004-05-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/defsystem.lisp (compile-clx, load-clx):
	compile and load "shape"

2004-05-14  Sam Steingold  <sds@gnu.org>

	* init.lisp (*documentation*): still non-weak: although works on
	cygwin, might still break on other platforms

2004-05-14  Sam Steingold  <sds@gnu.org>

	new macro DEFCHECKER for modules
	* utils/modprep.lisp: OBJDEF-INIT can now be a list
	(write-string-c-style): new function
	(init-to-tag): use it
	(string-upcase-verbose): new function
	(new-objdef): use it
	(cpp-helper): new defstruct
	(flag-set): include it
	(checker): new defstruct for DEFCHECKER
	(*checkers*, new-checker): added
	(def-something-p): replaces DEF-FLAG-SET-P
	(parse): call it for both DEFFLAGSET and DEFCHECKER
	(print-tables-1): print OBJDEF-INIT with possible conditions,
	print *CHECKERS*
	* modules/rawsock/rawsock.c (check_socket_domain, check_socket_type)
	(check_socket_protocol): use DEFCHECKER
	* modules/syscalls/calls.c (mknod_type_check): ditto

2004-05-14  Sam Steingold  <sds@gnu.org>

	* init.lisp (*documentation*): weak hash table now

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

	new macro DEFFLAGSET for modules
	* utils/modprep.lisp (parse-name): new function
	(defun-p): use it
	(flag-set, *flag-sets*, new-flag-set, def-flag-set-p): added
	(parse): call DEF-FLAG-SET-P
	(print-tables-1): output flag sets
	* modules/berkeley-db/bdb.c, modules/pcre/cpcre.c:
	* modules/rawsock/rawsock.c, modules/regexp/regexi.c: use DEFFLAGSET
	* genclisph.d (posfixnum_default): new inline function

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

	* modules/rawsock/rawsock.c (my_check_argument):
	pushSTACK(NIL) for PLACE

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

	* modules/syscalls/calls.c [__sun__]: make sure that we do get
	prototypes for confstr() and lgamma_r()

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

	* dribble.lisp (dribble-toggle): FRESH-LINE before the final message

2004-05-13  Bruno Haible  <bruno@clisp.org>

	* error.d (check_array_replacement): Use a more factual, less arrogant
	error message.

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

	* utils/clispload.lsp (regression-test::*expected-failures*):
	Paul fixed ENSURE-DIRECTORIES-EXIST.8

2004-05-02  Bruno Haible  <bruno@clisp.org>

	New type of records, LRECORD: no flags but max. 2^24 elements.
	* lispbibl.d (weakkvt_type): Remove macro.
	(mdarray_type): Choose highest values less than the other array type
	codes.
	(lrecord_type): New macro.
	(case_weakkvt): Remove macro.
	(case_lrecord): New macro.
	(case_array): Remove weakkvt_type.
	(case_sxrecord): New macro.
	(case_record): Add lrecord_type.
	(lrecord_tfl): New macro.
	(record_): Move the rectype to be the first field after GCself.
	(LRECORD_HEADER): New macro.
	(lrecord_, Lrecord): New types.
	(lrecord_length, Lrecord_length): New macros.
	(SRECORD_HEADER, XRECORD_HEADER): Update.
	(rectype_longlimit): New enumeration value.
	(Rectype_WeakKVT): Change so it is >= rectype_longlimit.
	(Stream): Move the strmtype to be the first field here as well.
	(TheSarray): Remove weakkvt_type.
	(TheWeakKVT, TheRecord): Update.
	(TheLrecord): New macro.
	(TheVarobject, ThePointer): Add instance_type, lrecord_type.
	(SXrecord_length): Renamed from Record_length.
	(SXrecord_nonweak_length): Renamed from Record_nonweak_length.
	(Lrecord_nonweak_length, Record_length, Record_nonweak_length): New
	macros.
	(lrecordp): New macro.
	(weakkvtp): Use lrecordp.
	(case_Rectype_WeakKVT_above): Remove macro.
	(case_Rectype_array_above): Remove Rectype_WeakKVT.
	(allocate_lrecord): New declaration.
	(allocate_srecord, allocate_xrecord): Update.
	* spvw_multimap.d (MM_TYPECASES): Handle lrecords as well.
	* spvw_global.d (init_mem_heaptypes): Don't handle weakkvt specially.
	* spvw_objsize.d (size_lrecord): New macro.
	(objsize): Handle lrecords as well. Don't handle weakkvt specially.
	(objsize_sxrecord): Renamed from objsize_record.
	(objsize_lrecord): New function.
	(init_objsize_table): Handle lrecords as well. Don't handle weakkvt
	specially.
	* spvw_update.d (do_update_sxrecord): Renamed from do_update_record.
	(do_update_lrecord): New macro.
	(update_sxrecord): Renamed from update_record.
	(update_lrecord): New macro.
	(update_varobject): Treat sxrecords and lrecords separately.
	* spvw_garcol.d (down_weakkvt, up_weakkvt): Remove macros.
	(down_lrecord, up_lrecord): New macros.
	(down_sxrecord): Renamed from down_record.
	(up_sxrecord): Renamed from up_record.
	(gc_mark): Handle lrecords as well. Don't handle weakkvt specially.
	* spvw_genera1.d (walk_area_record): Handle lrecords as well.
	(walk_area): Don't handle weakkvt specially.
	(build_old_generation_cache): Likewise. Handle lrecords as well.
	* spvw_typealloc.d (allocate_weakkvt_low): Use lrecord_type
	instead of lrecord_type.
	(allocate_lrecord, allocate_lrecord_): New functions.
	(allocate_srecord_, allocate_xrecord_, make_ratio, make_complex):
	Update.
	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark, subst)
	(subst_circ_unmark): Handle lrecords as well.
	* io.d (prin_object_dispatch): Handle lrecords as well.
	* predtype.d (equalp): Compare lrecords like with EQ.
	(TYPE-OF): Handle lrecords as well. For weakkvt, return a symbol, not
	a list.
	(CLOS:CLASS-OF): Handle lrecords as well.
	(heap_statistics_mapper): Handle lrecords as well.
	* hashtabl.d (hashcode4_atom, sxhash_atom): Handle lrecords as well.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp (*expected-failures*): Add IMAGPART.4,
	MAKE-INSTANCES-OBSOLETE.2, TYPES.7B, TYPES.7C, USER-CLASS-DISJOINTNESS,
	USER-CLASS-DISJOINTNESS-2, TAC-3.16. Remove SHARED-INITIALIZE.ERROR.4.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	Add keyword argument checking to UPDATE-INSTANCE-FOR-REDEFINED-CLASS
	and UPDATE-INSTANCE-FOR-DIFFERENT-CLASS.
	* clos-class5.lisp (*update-instance-for-redefined-class-table*)
	(*update-instance-for-different-class-table*): New variables.
	(note-uirc-change, note-uidc-change): New functions.
	(defun note-si-change): Update also
	*update-instance-for-redefined-class-table* and
	*update-instance-for-different-class-table*.
	(valid-reinitialize-instance-keywords): New function, extracted from
	initial-reinitialize-instance.
	(valid-update-instance-for-redefined-class-keywords)
	(valid-update-instance-for-different-class-keywords)
	(check-initialization-argument-list): New functions.
	(initial-reinitialize-instance): Call
	valid-reinitialize-instance-keywords.
	(update-instance-for-different-class): Call
	valid-update-instance-for-different-class-keywords and check the
	initargs.
	(update-instance-for-redefined-class): Call
	valid-update-instance-for-redefined-class-keywords and check the
	initargs.
	* clos-genfun3.lisp (|#'update-instance-for-redefined-class|)
	(|#'update-instance-for-different-class|): New variables.
	(std-add-method, std-remove-method): Conditionally call
	note-uirc-change, note-uidc-change.

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

	* array.d (fehler_array, test_array): removed
	(subscripts_to_index): do not call test_array()
	(AREF, SYS::STORE, SBIT, BIT): use check_array()
	instead of relying on subscripts_to_index()
	(ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE, ARRAY-RANK)
	(ARRAY-DIMENSION, ARRAY-DIMENSIONS, ARRAY-TOTAL-SIZE)
	(ARRAY-IN-BOUNDS-P, ARRAY-ROW-MAJOR-INDEX, ADJUSTABLE-ARRAY-P)
	(ARRAY-HAS-FILL-POINTER-P, ADJUST-ARRAY):
	use check_array() instead of test_array()
	* error.d (check_array_replacement): implemented
	* lispbibl.d (check_array) [!COMPILE_STANDALONE]: implemented
	(check_array_replacement): declared
	* genclisph.d: ditto

2004-05-12  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCFLAGS) [SPARC64]: Use only -O, not -O2.

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

	Rename LRECORD to VRECORD.
	* lispbibl.d (vrecord_tfl): Renamed from lrecord_tfl.
	(VRECORD_HEADER): Renamed from LRECORD_HEADER.
	(vrecord_): Renamed from lrecord_.
	(Vrecord): Renamed from Lrecord.
	(vrecord_length): Renamed from lrecord_length.
	(sarray_, sarray_length, sbvector_, svector_, weakkvt_t, ClassVersion)
	(Codevec, DYNAMIC_8BIT_VECTOR): Update.
	* spvw_typealloc.d (allocate_vector, allocate_weakkvt_low)
	(allocate_bit_vector): Update.
	* genclisph.d (main): Update.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (divu_3232_3232_) [SPARC64]: Define also for SPARC64.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* lfloat.d (LF_shorten_LF, LF_LF_plus_LF, LF_square_LF, LF_LF_mal_LF)
	(LF_LF_durch_LF, I_to_LF): Cast LF_exp_high+1 down to 32 bits.
	Needed for 64-bit platforms.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (bit_test): Make it work on SPARC64.
	* genclisph.d (main): Update accordingly.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* arisparc64.d: Add register declaration for %g2.
	(copy_loop_down): Fix wrong register.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (mulu32) [SPARC64]: Fix asm syntax.

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

	* lispbibl.d [SPARC64]: use Bits 63..48 for type code, bits 47..0
	for address always, not just when defined(NO_SINGLEMAP).
	Needed for Solaris.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	Optimize constants a little better.
	* compiler.lisp (c-NIL): Use *seclass-foldable* instead of
	*seclass-pure*.
	(c-CONST): Use *seclass-foldable* instead of *seclass-pure*, if
	appropriate.
	(c-PROGN, c-AND, c-OR, c-QUOTE, c-SETQ, c-PSETQ, c-MULTIPLE-VALUE-SETQ)
	(c-TAGBODY): Use *seclass-foldable* instead of *seclass-pure*.

2004-05-11  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (divu_3216_1616) [SPARC64]: Add missing newline in asm
	statement.
	(divu_3216_3216, divu_3232_3232, divu_6432_3232) [SPARC64]: Likewise.

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

	* compiler.lisp (c-form-table): treat =,/=,>,>=,<,<= specially
	(c-COMPARE-NUMBERS): try to convert = and other numeric
	comparisons to ZEROP &c

2004-05-08  Bruno Haible  <bruno@clisp.org>

	* control.d (check_setq_body): Fix GC-safety bug introduced on
	2003-05-20.
	* eval.d (progv): Likewise.
	* i18n.d (SYS::SET-CURRENT-LANGUAGE): Fix GC-safety bug introduced on
	2003-05-01.
	* misc.d (push_envar): Fix GC-safety bug introduced on 2003-07-28.
	* pathname.d (PARSE-NAMESTRING): Fix GC-safety bug introduced on
	2002-08-01.

2004-05-03  Bruno Haible  <bruno@clisp.org>

	* subrkw.d: Reorder, to match the order in subr.d.

2004-04-30  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (MULTIBUILD_OPTIONS): New variable.
	(multibuild-linux-x86): New target.

2004-04-30  Bruno Haible  <bruno@clisp.org>

	Fixes for the TYPECODES model on 32-bit platforms.
	* intlog.d (I_I_logand_I, I_I_lognand_I, I_I_logandc2_I): Fix bug
	when combining a fixnum with a bignum.

	* utils/clispload.lsp: Skip memory intensive test on 32-bit
	SPVW_PURE_BLOCKS platforms.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (check-value): Fix bug in the CONTINUE restart.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* record.d (CLOS::%CHANGE-CLASS): Remove third argument. Simplify.
	* clos-class5.lisp (change-class): Nop.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* defstruct.lisp (ds-slot-name, ds-slot-initargs, ds-slot-offset)
	(ds-slot-initer, ds-slot-initfunctionform, ds-slot-type)
	(ds-slot-readonly): Remove macros. Use clos::slot-definition-*
	accessors everywhere.
	(copy-<structure-effective-slot-definition>): Renamed from copy-ds-slot.
	* clos-class2.lisp: Update callers here as well.

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

	* subr.d, hashtabl.d (GETHASH): seclass_default because
	user-defined HASH-TABLE-TEST can do anything

2004-04-24  Bruno Haible  <bruno@clisp.org>

	Metaobject protocol for slot definitions.
	* lispbibl.d (classversion_length): New macro.
	(SlotDefinition): New type.
	(TheSlotDefinition): New macro.
	* record.d (SYS::%STRUCTURE-REF): Use new slot-definition-* accessors.
	(CLOS::ALLOCATE-METAOBJECT-INSTANCE): New function.
	(slot_in_arglist): Use new SlotDefinition accessors.
	(CLOS::%SHARED-INITIALIZE): Use new slot-definition-* accessors.
	Update for new initer layout: Avoid funcalling the initfunction by
	looking whether it's a constant_initfunction.
	(CLOS::%REINITIALIZE-INSTANCE): Use new SlotDefinition accessors.
	(do_initialize_instance): Use new slot-definition-* accessors.
	Update for new initer layout: Avoid funcalling the initfunction by
	looking whether it's a constant_initfunction.
	(CLOS::%MAKE-INSTANCE): Update for new initer layout: Avoid funcalling
	the initfunction by looking whether it's a constant_initfunction.
	* io.d (some_printable_slots, pr_structure_default): Use new
	SlotDefinition accessors.
	* clos-slotdef1.lisp: New file.
	* clos-slotdef2.lisp: New file.
	* clos-slotdef3.lisp: New file.
	* init.lisp: Export symbols of the slot-definition MOP.
	Load clos-slotdef1.
	* clos-package.lisp: Export symbols of the slot-definition MOP.
	* clos.lisp: Load clos-slotdef2 and clos-slotdef3.
	* defstruct.lisp (make-ds-slot, ds-slot-name, ds-slot-initargs)
	(ds-slot-offset, ds-slot-initer, ds-slot-default, ds-slot-type)
	(ds-slot-readonly, copy-ds-slot): Rewrite using slot-definition.
	(ds-slot-initfunctionform, ds-pseudo-slot-default): New macros.
	(ds-typep, ds-typep-expansion, ds-canonicalize-type): Use
	ds-pseudo-slot-default.
	(ds-arg-default): Rewritten using new initer semantics.
	(ds-make-pred, ds-make-constructor-body): Use ds-pseudo-slot-default.
	(defstruct): New initer semantics. Old initer semantics was completely
	unintelligible. Avoid add-backquote and add-unquote. Use new
	slot-definition-* accessors.
	* clos-class2.lisp (replace-class-version): New function.
	(defclass): Don't put :ACCESSORS into the slot specifiers for
	ensure-class. Use make-initfunction-form and put :INITFORM instead of
	:INITER into the slot-specifiers. Use make-initfunction-form also for
	the :DIRECT-DEFAULT-INITARGS argument.
	(make-initer): Remove function.
	(slot-definition, standard-slot-definition): Remove. Replaced by
	clos-slotdef1.lisp.
	(make-slotdef): Remove function.
	(ensure-class): Invoke convert-direct-slots. Invoke equal-direct-slots
	instead of equal-slots. In case of class redefinition, update
	slot-definition instances instead of lists.
	(equal-direct-slots): Renamed from equal-slots.
	(equal-slot): Remove function. Moved to clos-slotdef1.lisp.
	(initialize-instance-standard-class): Accept te direct-slots list in two
	different forms.
	(finalize-instance-standard-class): Use new slot-definition-* accessors.
	Use only the initfunction instead of the initer.
	(std-compute-slots): Works on direct-slot-definition instances now,
	instead of plists. Create effective-slot-definition instances, instead
	of slotdef instances. Don't lose the type and documentation of each
	slot. Rework the initform/initfunction handling. Call the MOP function
	effective-slot-definition-class.
	(std-layout-slots): Use new slot-definition-* accessors.
	(class-version-compute-slotlists): Likewise.
	(initialize-instance-structure-class): Likewise. Invoke
	convert-direct-slots.
	(define-structure-class): Use new slot-definition-* accessors.
	* clos-class5.lisp (change-class, update-instance-for-different-class):
	Use new slot-definition-* accessors.
	(slot-names): Likewise.
	* loadform.lisp (make-load-form-saving-slots): Use new
	slot-definition-* accessors.
	* documentation.lisp (documentation, (setf documentation)): Add a
	method for slot-definition.
	* makemake.in (LPARTS): Add clos-slotdef1, clos-slotdef2,
	clos-slotdef3.
	* po/Makefile.devel (LISPSOURCES): Add clos-slotdef1, clos-slotdef2,
	clos-slotdef3.

2004-05-07  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (unix) [__OpenBSD__]: define

2004-05-07  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/configure.in: <netinet/if_ether.h> requires
	<net/if.h> to be included before it, which, in turn, requires
	<sys/socket.h> to be included before it (on Solaris)

2004-05-07  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/configure.in: check for the library where erf()
	is implemented
	* modules/syscalls/link.sh.in (NEW_LIBS): "-m" will be in @LIBS@
	becausd of the above check

2004-05-07  Bruno Haible  <bruno@clisp.org>

	* makemake.in (CC_CPLUSPLUS): New variable.
	(XCFLAGS): When using g++ >= 3.4, add -Wno-invalid-offsetof.

2004-05-07  Bruno Haible  <bruno@clisp.org>

	* clos-package.lisp: Trivially import a few symbols not yet defined.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	Add ability to fix slot locations for all subclasses.
	* lispbibl.d (Class): Add fixed_slot_locations field.
	* clos-class2.lisp (standard-class): Add fixed-slot-locations field.
	(defclass): Pass the :fixed-slot-locations option to ensure-class.
	(ensure-class): Compare also the fixed-slot-locations value.
	(initialize-instance-standard-class): Handle a fixed-slot-locations
	argument.
	(std-compute-slots): Create a slotdef with location, if the slot is
	inherited from a superclass with fixed-slot-locations.
	(std-layout-slots): Respect constraints for slot locations already
	specified by a superclass.

2004-05-06  Sam Steingold  <sds@gnu.org>

	* modules/rawsock/rawsock.c: Solaris compilation fixes:
	include <string.h> for memcpy() &Co
	include <net/if.h> before <netinet/if_ether.h>
	declare check_socket_domain() before it is first used

2004-05-06  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 948784 ]: crash in pcre_free
	* modules/pcre/cpcre.c (module__pcre__init_function_2): reset
	pcre_malloc to malloc() and pcre_free to free() to avoid
	the FINALIZE crash

2004-04-24  Bruno Haible  <bruno@clisp.org>

	Fix problematic initialization protocol of standard-class and
	structure-class.
	* clos-class2.lisp (initialize-instance-standard-class): Call
	%initialize-instance. Initialize a few slots to nil.
	(initialize-instance-structure-class): Call %initialize-instance.
	* clos-class5.lisp (initialize-instance@standard-class)
	(initialize-instance@structure-class): Remove (call-next-method) that
	doesn't belong here.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* clos-print.lisp: Renamed from clos-class4.lisp.
	* clos.lisp: Update.
	* makemake.in (LPARTS): Add clos-print, remove clos-class4.
	* po/Makefile.devel (LISPSOURCES): Add clos-print, remove clos-class4.

2004-05-05  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (hashcode_string): use all string elements

2004-05-05  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (SET-FILE-STAT, CONVERT-MODE, UMASK, MKNOD):
	implemented
	* modules/syscalls/posix.lisp: exported them

2004-05-05  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE-FREE): set fp_pointer to NULL
	* modules/regexp/regexi.c (REGEXP-FREE): ditto

2004-05-05  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Use "sed -n -e '$p'" instead of "tail -n 1".
	Needed for Solaris.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	Make very early CLOS available before DEFSTRUCT.
	* clos-class0.lisp: New file.
	* init.lisp: Load it.
	* clos-class2.lisp (class-version): Move away to clos-class0.lisp.
	* clos-class4.lisp (print-object): Undefine first. Don't use TYPEP
	on class-version.
	* clos.lisp: After clos-class5.lisp, set *classes-finished* and then
	only load clos-class4.lisp.
	* makemake.in (LPARTS): Add clos-class0.
	* po/Makefile.devel (LISPSOURCES): Add clos-class0.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* clos-package.lisp: Tweak.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* clos-package.lisp: New file, extracted from clos.lisp.
	* clos.lisp: Move the package setup away.
	* init.lisp: Load clos-package before defstruct.lisp.
	* makemake.in (LPARTS): Add clos-package.
	* po/Makefile.devel (LISPSOURCES): Add clos-package.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* places.lisp: Add defsetf for %record-ref and %structure-ref here.
	* compiler.lisp: Remove defsetf for %record-ref.
	* defstruct.lisp: Remove defsetf for %structure-ref.

2004-04-18  Bruno Haible  <bruno@clisp.org>

	* clos-class5.lisp (class-prototype): Don't mark the class as being
	instantiated.

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

	* disassem.lisp (disassemble): return when cannot disassemble

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

	* package.d (in_make_package): fixed a GC-safety bug which
	DEBUG_GCSAFETY cannot detect: object slots addresses, even though
	they are declared gcv_object_t, are _NOT_ valid gcv_object_t*!!

2004-04-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (SstringCase) [!UNICODE]: Add 5th argument.
	* subtypep.lisp (subtypep-CHARACTER-pre-simplify): Make it work when
	#-UNICODE.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* record.d (check_generic_function_replacement): New function,
	extracted from check_generic_function.
	(check_generic_function): Turn into an inline function.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	Appendix to 2004-03-15 patch.
	* record.d (check_initialization_argument_list): ~ -> ~S.
	* sequence.d (remove_op, delete_op, substitute_op): Likewise.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* init.lisp: Remove vestiges of syscalls.

2004-04-18  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (ensure-class): Handle errors that might occur
	during class redefinition.
	(update-subclasses-for-redefined-class): Take a 4th argument.

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

	fixed bug #[ 946645 ]: rename-package does not accept
	package-designators
	* package.d (RENAME-PACKAGE): second argument can be a package
	designator

2004-05-02  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Use "tail -n 1" instead of "tail -1".
	Suggested by SuSE.

2004-04-18  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Add direct_accessors field.
	* clos-class2.lisp (standard-class): Add direct-accessors field.
	(defclass): Store DEFMETHOD results in the class' direct-accessors.
	(ensure-class): Remove accessor methods installed by previous version
	of the class.

2004-04-22  Bruno Haible  <bruno@clisp.org>

	Special representation of slot initfunctions for constants.
	* lispbibl.d (init_cclosures): New declaration.
	* eval.d (bytecode_enum_t): Define unconditionally.
	(init_cclosures): New function.
	* spvw.d (init_object_tab): Call it.
	* record.d (SYS::MAKE-CONSTANT-INITFUNCTION)
	(SYS::CONSTANT-INITFUNCTION-P): New functions.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	* record.d (check_weakpointer_replacement, check_weakpointer): New
	functions.
	(check_weak_pointer): Remove function.
	(WEAK-POINTER-VALUE, SET-WEAK-POINTER-VALUE): Update.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* functions.lisp: New file, extracted from trace.lisp, compiler.lisp.
	* init.lisp: Load it.
	* trace.lisp (check-function-name): Moved to functions.lisp.
	* compiler.lisp (signature): Moved to functions.lisp.
	* clos.lisp: Update.
	* makemake.in (LPARTS): Add functions.
	* po/Makefile.devel (LISPSOURCES): Add functions.

2004-04-15  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (ensure-class): Pass the old finalized and
	direct-superclasses status to update-subclasses-for-redefined-class.
	(update-subclasses-for-redefined-class)
	(update-subclasses-for-redefined-class-nonrecursive): Update the
	direct-subclasses lists of the superclasses correctly.

2004-04-29  Bruno Haible  <bruno@clisp.org>

	* disassem.lisp (*disassemble-use-live-process*): New variable.
	(disassemble-machine-code): Use it.
	* .gdbinit (ansi_tests): Set it to nil.

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* reploop.lisp (main-loop, break-loop, step-hook-fn): Install a ABORT
	restart.

2004-04-23  Bruno Haible  <bruno@clisp.org>

	Make DEFPACKAGE available earlier during bootstrap.
	* defpackage.lisp: New file, extracted from defs2.lisp.
	* defs2.lisp (defpackage): Remove macro.
	* init.lisp: Load defpackage.
	* makemake.in (LPARTS): Add defpackage.
	* po/Makefile.devel (LISPSOURCES): Add defpackage.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main) [TYPECODES]: Emit consp, atomp, mconsp, matomp
	correctly.

2004-04-13  Bruno Haible  <bruno@clisp.org>

	Make the pointers to the direct subclasses weak.
	* clos-class2.lisp (finalize-instance-standard-class): Use
	add-direct-subclass.
	(map-direct-subclasses, add-direct-subclass, remove-direct-subclass):
	New functions.
	(list-direct-subclasses): Use map-direct-subclasses.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	Simplify handling of weak pointers.
	* lispbibl.d (weakpointer_length): Set to the total length.
	(weakpointer_xlength): Remove macro.
	(weakkvt_non_data): Remove macro.
	(weakkvt_length): New macro.
	(Weakkvt_length): Use it.
	(Record_nonweak_length): New macro.
	* spvw_update.d (do_update_record): Don't use update_weak_pointers
	any more.
	(update_weakpointer, update_weakpointers, update_weakpointers_mod):
	Remove macros.
	(update_weakkvtable, update_weakkvtables, update_weakkvtables_mod):
	Remove macros.
	* spvw_garcol.d (down_record): Use Record_nonweak_length.
	(gar_col_normal): Remove calls to update_weakpointers_mod,
	update_weakkvtables_mod.
	(move_conses): Likewise.
	* spvw_memfile.d: Update.
	* spvw_typealloc.d (allocate_weakkvt_low): Update.
	* spvw_circ.d (subst_circ_mark, subst, subst_circ_unmark): Likewise.
	* record.d (mk_weakpointer): Declare inline. Use 0 instead of
	weakpointer_xlength.
	* hashtabl.d (hashcode4_atom): Use Record_nonweak_length.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	Make weak-pointers work also on SPVW_PAGES platforms.
	* spvw_update.d (do_update_record): Depending on update_weak_pointers,
	update also the hidden pointers of Weakpointer and WeakKVT objects.
	* spvw_garcol.d (gar_col_normal): Define update_weak_pointers to false.
	(gar_col_compact): Don't call update_weakpointers_mod,
	update_weakkvtables_mod. Instead, define update_weak_pointers to true.
	(move_conses): Call update_weakpointers instead of
	update_weakpointers_mod, update_weakkvtables instead of
	update_weakkvtables_mod. Define update_weak_pointers to false.
	* spvw_memfile.d (savemem): Don't call update_weakpointers,
	update_weakkvtables. Instead, define update_weak_pointers to true.
	(loadmem_from_handle): Likewise.

2004-04-29  Sam Steingold  <sds@gnu.org>

	* pathname.d (PARSE-NAMESTRING): Fix a GC-safety bug.

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

	* comptran.d (N_cosh_N): Fix a GC-safety bug.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (stringof): Fix a GC-safety bug.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with g++ 3.4.0.
	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB): Treat
	g++ 3.4 like g++ 3.3.
	* spvw_garcol.d (gc_sweep1_sstring_target, gc_sweep1_instance_target):
	Use assignment instead of initialization. Works around GCC bug #15180,
	that will be fixed in GCC 3.5.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* loadform.lisp (mlf-init-function): Return a FUNCTION form with a
	suitable name. Add (DECLARE (COMPILE)) when appropriate.
	(make-init-form): Use EVAL instead of COMPILE.

2004-04-24  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (write-to-short-string): Move to ...
	* defs1.lisp (write-to-short-string): ... here.

2004-04-23  Bruno Haible  <bruno@clisp.org>

	Restore debuggability during loading of init.lisp.
	* debug.d (ext_show_stack): New function.

2004-04-22  Bruno Haible  <bruno@clisp.org>

	Restore debuggability during loading of init.lisp.
	* debug.d (SYS::INITIAL-BREAK-DRIVER): New function.
	* init.lisp (cerror): Invoke INITIAL-BREAK-DRIVER instead of
	*BREAK-DRIVER*.

2004-04-22  Bruno Haible  <bruno@clisp.org>

	* macros2.lisp (assert): Fix macro broken on 2003-05-01.

2004-04-13  Bruno Haible  <bruno@clisp.org>

	Fix MAKE-INSTANCES-OBSOLETE's warning message.
	* clos-class2.lisp (*make-instances-obsolete-caller*): New variable.
	(ensure-class): Bind it.
	(make-instances-obsolete-standard-class-nonrecursive): Use it in the
	warning message.

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

	* modules/syscalls/calls.c (CRYPT, ENCRYPT, SETKEY): implemented
	(get_block, set_block): helpers for ENCRYPT and SETKEY
	* modules/syscalls/posix.lisp (crypt, encrypt, setkey) [UNIX]: export

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

	* loop.lisp (expand-loop): fixed last patch: pattern may be NIL

2004-04-27  Kaz Kylheku  <kaz@ashi.footprints.net>

	* backquote.lisp (quoted-bq-operator-p, bq-constant-p, bq-eval):
	New functions.
	(bq-optimize-list): Use special rules to determine what is a
	constant expression, and how to evaluate it.
	E.g instance (LIST 1 (QUOTE (UNQUOTE (+ 2 2)))) is reduced
	to (QUOTE (1 4)) because (QUOTE (UNQUOTE (+ 2 2))) is considered a
	BQ-CONSTANT-P expression, with the rule that it evaluates to 4
	under BQ-EVAL.
	(bq-optimize-list*): If the last element is (QUOTE ...), do not
	break it up into individual elements if it is a quoted backquote
	operator.  E.g. (LIST* 1 (QUOTE (UNQUOTE X))) must not turn
	into (LIST 1 'UNQUOTE 'X).

2004-04-13  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (finalize-instance-standard-class): Register this
	class also as subclass of <standard-object>, even if <standard-object>
	is not explicitly listed among the direct subclasses. Needed so
	that (make-instances-obsolete 'standard-object) works.

2004-04-26  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop): use FUNCTION-FORM-FUNFORM instead of
	ad hoc inline code; avoid creating an unnecessary auxiliary
	variable (shortens the byte code)

2004-04-26  Sam Steingold  <sds@gnu.org>

	* makemake.in (init): do not treat "bindings" modules
	subdirectory specially

2004-04-26  Sam Steingold  <sds@gnu.org>

	* error.d (check_classname): new function for modules
	* genclisph.d (main): declare check_classname()
	* rawsock/rawsock.c, pcre/cpcre.c, berkeley-db/bdb.c, dirkey/dirkey.c:
	use check_classname() and typep_classname() instead of ad hoc checks

2004-04-25  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (fehler_class): New declaration.
	(typep_class, typep_classname): New declarations.
	* error.d (fehler_class): New function, moved here from record.d.
	* record.d (fehler_keine_klasse): Remove function.
	(CLOS::ALLOCATE-STD-INSTANCE): Use fehler_class instead.
	* predtype.d (typep_class, CLOS::TYPEP-CLASS, typep_classname): New
	functions.
	* genclisph.d (main): Emit typep_class, typep_classname declarations.
	* type.lisp (clos::subclassp): Remove preliminary definition.
	(typep): Use clos::typep-class instead of clos::subclassp.
	(c-TYPEP): Emit call to clos::typep-class instead of clos::subclassp.
	* clos-class5.lisp (note-i-meta-change, valid-make-instance-keywords):
	Use clos::typep-class instead of clos::subclassp.
	* modules/clx/new-clx/clx.f (isa_instance_of_p, isa_struct_p): Remove
	functions. Use typep_classname instead.

2004-04-13  Bruno Haible  <bruno@clisp.org>

	Let make-instances-obsolete recurse into each subclass only once, even
	in case of multiple inheritance.
	* clos-class2.lisp (make-instances-obsolete-standard-class): Apply
	make-instances-obsolete-standard-class-nonrecursive to all subclasses.
	(make-instances-obsolete-standard-class-nonrecursive): New function.
	(update-subclasses-for-redefined-class): Apply
	update-subclasses-for-redefined-class-nonrecursive to all subclasses.
	(update-subclasses-for-redefined-class-nonrecursive): New function.
	(list-direct-subclasses, list-all-subclasses): New functions.

2004-04-25  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object): since 2004-02-19,
	PATHNAME-DEVICE of a LOGICAL-PATHNAME can be :UNSPECIFIC

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

	* rawsock/rawsock.c, rawsock/sock.lisp: renamed CLOSESOCK to
	SOCK-CLOSE for consistency with SOCK-READ and SOCK-WRITE
	(sockaddr-family-size, sockaddr-data): added

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

	* clx/mit-clx/dependent.lisp (make-process-lock, process-wakeup):
	do not signal an error
	(holding-lock): no warning

2004-04-13  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Class): Move the direct_subclasses slot.
	* clos-class2.lisp (class): Remove the direct-subclasses slot.
	(standard-class): Add it here instead.
	(finalize-instance-standard-class): Access class-direct-subclasses only
	if the superclass is a standard-class.
	(initialize-instance-built-in-class): Don't add this class to the
	class-direct-subclasses of the superclaass.
	(initialize-instance-structure-class): Likewise.

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

	* rawsock/sock.lisp (open-unix-socket): new function
	(cmsghdr, linger): removed
	* rawsock/rawsock.c (MAKE-SOCKADDR, SOCKETPAIR, ACCEPT, BIND)
	(CONNECT, GETPEERNAME, GETSOCKNAME, LISTEN, RECV, RECVMSG)
	(SOCK-READ, SEND, SENDMSG, SOCK-WRITE): added
	* rawsock/link.sh.in: fixed TO_PRELOAD
	* rawsock/configure.in: check for stropts.h, poll.h and sys/un.h

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

	SOCKET-OPTIONS now handles all 16 POSIX options
	* stream.d (SOCKET-OPTIONS): accept SO_DEBUG, SO_ACCEPTCONN,
	SO_BROADCAST, SO_REUSEADDR, SO_DONTROUTE
	* constobj.d (type_socket_option): added the above 5 options
	* constsym.d: ditto

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

	* stream.d (stream_handles): accept fixnums as pointing to
	themselves as FDs, this allows RAWSOCK sockets to be used with
	SOCKET-STATUS and SOCKET-OPTIONS

2004-04-22  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (direction_t): Work around a g++ 3.4.0 bug.

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

	* pathname.d (namestring_correctly_parseable_p): fixed the last patch

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

	* utils/clispload.lsp: _really_ set
	custom:*warn-on-floating-point...contagion* to nil

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

	Rely on FILL-STREAM to format warnings and error messages.
	* realelem.d (warn_floating_point_rational_contagion): removed
	manual newlines from the message
	* flo_rest.d (warn_floating_point_contagion): ditto

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

	* pathname.d (pathname_version_maybe): define
	(file_namestring_parts, namestring_correctly_parseable_p): use it

2004-04-22  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Enable the use of global register variables for
	gcc >= 3.4.

2004-04-22  Bruno Haible  <bruno@clisp.org>

	Make it compile with g++ 3.4.
	* lispbibl.d (offsetofa): Define differently for C++.
	(restartf_t): Define without nonreturning for C++.

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

	rawsock now compiles on cygwin
	* rawsock/rawsock.c (my_check_type): replaces my_type_error()
	(my_check_argument, check_struct, check_struct_data): new function
	(check_buffer_arg): return object
	(RESIZE-BUFFER, SOCKADDR-FAMILY): new lisp functions
	(SOCKET, RECVFROM, SENDTO): accept all POSIX arguments
	* rawsock/sock.lisp (sockaddr, msghdr, cmsghdr, linger): new structs

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

	* genclisph.d (check_fpointer, check_fpointer_replacement): moved
	to a later place so that clisp.h will be compilable

2004-04-22  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Emit definitions for check_fpointer,
	check_posfixnum, check_string.

2004-04-22  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Use "#if notused" instead of C comments to mark
	definitions not yet used.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: Handle class redefinition as specified.
	* lispbibl.d (Class): Remove class_id field. Remove shared_slots,
	previous_definition slots. Add current_version, instantiated slot.
	Rename prototype slot.
	(ClassVersion): New type.
	(Instance): Remove class and cl_id fields. Add class_version field.
	(instflags_beingupdated_B): New macro.
	(TheClassVersion): New macro.
	(instance_un_realloc): Use a single test instead of a loop.
	(update_instance): Take a second argument.
	(instance_valid_p): Look at class-version instead of id field.
	(instance_update): Take a second argument.
	(instanceof): Don't call instance_update. Update.
	* spvw_garcol.d (gc_sweep1_instance_forward): Use the class_version
	field for the forward pointer.
	* record.d (class_of): Don't call instance_update if the instance is
	already being updated.
	(CLOS::ALLOCATE-STD-INSTANCE): Set the class-version field instead of
	class and id fields.
	(do_allocate_instance): Update.
	(ptr_to_slot): Update shared slot access: The location's CAR is now a
	class-version.
	(slot_up): Invoke the local class_of instead of CLASS-OF.
	(CLOS::SET-SLOT-VALUE, CLOS:SLOT-EXISTS-P): Likewise.
	(CLOS::%CHANGE-CLASS): Turn the user visible object into a forward
	pointer, instead of creating a chain of forward pointers.
	(update_instance): Take a second argument. Completely rewritten.
	(CLOS::%MAKE-INSTANCE): Invoke the local class_of instead of CLASS-OF.
	* hashtabl.d (sxhash_atom): Don't call instance_update. Update.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Likewise.
	(heap_statistics_mapper): Update.
	* stream.d (stream_get_read_eval, stream_set_read_eval): Call
	instance_update. Update.
	* genclisph.d (main): Update definition of Instance.
	* clos-class2.lisp (class): Remove id slot.
	(standard-class): Remove shared-slots, previous-definition slots.
	Add current-version, instantiated slots.
	(class-version): New structure.
	(slot-difference): Remove function.
	(ensure-class): Call make-instances-obsolete before re-initializing
	the class. Move the versioning stuff to make-instances-obsolete.
	Remove the computation of added/discarded slot lists. Update the
	subclasses after redefining a class.
	(initialize-instance-standard-class): Initialize the current-version
	slot. When clearing the precedence-list, clear the all-superclasses
	table as well.
	(finalize-instance-standard-class): Default instance-size is now 1,
	not 2. The shared-slots are now stored in the class-version. Don't
	erase the values of shared slots that remain shared.
	(std-layout-slots): Let the cons point to the class-version, not to
	the class.
	(make-instances-obsolete): New preliminary function.
	(make-instances-obsolete-standard-class): New function.
	(update-subclasses-for-redefined-class): New function.
	(class-version-compute-slotlists): New function.
	(<standard-object>): Update instance-size. Install a class-version.
	(unbound): Update.
	* clos-class4.lisp (PRINT-OBJECT on CLASS): When the class is not
	properly initialized, print UNINITIALIZED instead of giving an error.
	* clos-class5.lisp (update-instance-for-different-class): Compute
	list of added slots as specified in ANSI CL.
	(make-instances-obsolete on STANDARD-CLASS): Just invoke
	make-instances-obsolete-standard-class.

2004-04-21  Bruno Haible  <bruno@clisp.org>

	* pathname.d (file_namestring_parts, namestring_correctly_parseable_p):
	Don't lose support for platforms which have versions in the filesystem.

	* stream.d (handle_to_stream): Fix begin/end_system_call() calls.

2004-04-21  Don & Fred Cohens  <fc@all.net, don-sourceforge@isis.cs3-inc.com>
	    Sam Steingold  <sds@gnu.org>

	new module for low-level socket access
	* modules/rawsock: new directory

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

	* disassem.lisp (disassemble): do not signal an error when cannot
	disassemble a built-in C function
	* utils/clispload.lsp [WIN32]: do not mark DISASSEMBLE.* as
	expected failures

2004-04-21  Bruno Haible  <bruno@clisp.org>

	* stream.d (STREAM-EXTERNAL-FORMAT): For terminal_stream, return the
	terminal stream's strm_encoding on those platforms where it is used.

2004-04-21  Bruno Haible  <bruno@clisp.org>

	* disassem.lisp (disassemble-machine-code): Add the function object as
	argument. Give a nice message when gdb is not found.

2004-04-21  Bruno Haible  <bruno@clisp.org>

	* utils/clispload.lsp: Set *warn-on-floating-point...contagion* to nil.

2004-04-21  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCC_GCC_VERSION): Invoke gcc -v in the C locale.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (restartf_t): Define as nonreturning. Avoids gcc warnings.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (popSP, finish_entry_frame): Rename macro parameter.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	Make the WIDE_SOFT model work again.
	* genclisph.d (main): Emit definition for one_o.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (check-value): Fix typo. Avoid compiler warning.

2004-04-12  Bruno Haible  <bruno@clisp.org>

	* intlog.d (I_I_ash_I): Fix bug when y = most-negative-fixnum = -2^32.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: Optionally return floating-point results when
	ANSI CL says so.
	* realelem.d (warn_floating_point_rational_contagion): New function.
	(RA_F_exact_contagion_R): New function.
	(R_R_mal_R, R_R_durch_R, R_I_expt_R): Use RA_F_exact_contagion_R.
	* realtran.d (R_R_atan_R, R_R_log_R): Likewise.
	* comptran.d (N_phase_R): Add argument want_exact. Use
	RA_F_exact_contagion_R.
	(N_log_N, N_N_log_N): Update.
	(N_I_expt_N, N_N_expt_N): Use R_R_contagion_R and RA_F_exact_contagion_R.
	* lisparit.d (PHASE): Pass want_exact=false.
	(init_arith): Initialize *FLOATING-POINT-RATIONAL-CONTAGION-ANSI* and
	*PHASE-ANSI* to NIL, and *WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* to
	T.
	* misc.d (SYS::SET-ANSI): Set *FLOATING-POINT-RATIONAL-CONTAGION-ANSI*
	and *PHASE-ANSI* as well.
	* places.lisp (*ansi*): Update documentation.
	* utils/clispload.lsp (*expected-failures*): Remove ATAN.4,
	EXPT.{3,4,5,6}, EXPT.{8,9,10,11}, PHASE.{1,2,3,4,5,6,7}.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	* package.d (correct_packname): Fix typo in restart description.

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

	* utils/clispload.lsp (disassemble-machine-code) [win32, cygwin]: do
	not redefine

2004-04-20  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_symbol): Follow CLHS also in the "pathological case that
	the symbol has no home package but is nevertheless somehow accessible
	in the current package".

2004-04-20  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_symbol): Print keywords that are accessible in the current
	package with a colon. Required by CLHS 22.1.3.3.1.

2004-04-20  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_string): When *print-readably* = NIL, print nil-vectors
	of length 0 like strings. Required by CLHS 22.1.3.4.

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

	* utils/clispload.lsp (*expected-failures*): updated

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

	pathnames always have VERSION slot, even though it is not printed
	* lispbibl.d (HAS_VERSION): removed
	(Pathname): always has the version slot
	* spvw_debug.d (nobject_out1): ditto
	* constobj.d (type_version): always full-blown
	(semicolon_string): always present
	(zero_string): removed
	* pathname.d (pathname_version_maybe, test_optional_version_): removed
	(xpathname_version): updated for that
	(PATHNAME-VERSION, has_version_wildcards): just use xpathname_version()
	(nametype_namestring_parts_): removed
	(file_namestring_parts): pass NIL as the version argument to
	nametype_namestring_parts() because physical pathname version are
	not printed
	(MERGE-PATHNAMES): fixed version defaulting logic
	(namestring_correctly_parseable_p): non-NIL version means
	unprintable readably
	(DEFAULT_VERSION): new CPP macro for DIRECTORY
	(directory_search_scandir, directory_search): set pathname_version
	to DEFAULT_VERSION to ensure that DIRECTORY does not return wild
	pathnames

2004-04-20  Bruno Haible  <bruno@clisp.org>

	* po/de.po: Update translations.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	Nicer bootstrapping.
	* init.lisp (format, cerror, warn): Provide some more capable
	preliminary definitions.
	(sys::check-redefinition): Change the format string so that it works
	with the preliminary FORMAT.
	(load): Use FORMAT instead of emulating it.
	* savemem.lisp (saveinitmem): Likewise.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	Speed up the argument type checks.
	* lispbibl.d (check_fpointer): Turn into an inline function.
	(check_fpointer_replacement): New declaration.
	(check_list): Turn into an inline function.
	(check_list_replacement): New declaration.
	(check_symbol): Turn into an inline function.
	(check_symbol_replacement): New declaration.
	(check_symbol_non_constant): Turn into an inline function.
	(check_symbol_non_constant_replacement): New declaration.
	(check_posfixnum): Turn into an inline function.
	(check_posfixnum_replacement): New declaration.
	(check_integer): Turn into an inline function.
	(check_integer_replacement): New declaration.
	(check_pos_integer): Turn into an inline function.
	(check_pos_integer_replacement): New declaration.
	(check_char): Turn into an inline function.
	(check_char_replacement): New declaration.
	(check_string): Turn into an inline function.
	(check_string_replacement): New declaration.
	(check_function): Turn into an inline function.
	(check_function_replacement): New declaration.
	(check_funname): Turn into an inline function.
	(check_funname_replacement): New declaration.
	(check_uint8): Turn into an inline function.
	(check_uint8_replacement): New declaration.
	(check_sint8): Turn into an inline function.
	(check_sint8_replacement): New declaration.
	(check_uint16): Turn into an inline function.
	(check_uint16_replacement): New declaration.
	(check_sint16): Turn into an inline function.
	(check_sint16_replacement): New declaration.
	(check_uint32): Turn into an inline function.
	(check_uint32_replacement): New declaration.
	(check_sint32): Turn into an inline function.
	(check_sint32_replacement): New declaration.
	(check_uint64): Turn into an inline function.
	(check_uint64_replacement): New declaration.
	(check_sint64): Turn into an inline function.
	(check_sint64_replacement): New declaration.
	(check_uint): Turn into an inline function.
	(check_uint_replacement): New declaration.
	(check_sint): Turn into an inline function.
	(check_sint_replacement): New declaration.
	(check_ulong): Turn into an inline function.
	(check_ulong_replacement): New declaration.
	(check_slong): Turn into an inline function.
	(check_slong_replacement): New declaration.
	(check_ffloat): Turn into an inline function.
	(check_ffloat_replacement): New declaration.
	(check_dfloat): Turn into an inline function.
	(check_dfloat_replacement): New declaration.
	(check_structure): Turn into an inline function.
	(check_structure_replacement): New declaration.
	(check_real): Turn into an inline function.
	(check_real_replacement): New declaration.
	* error.d (check_fpointer_replacement): Renamed from check_fpointer.
	(check_list_replacement): Renamed from check_list. Assume the argument
	already failed the type check.
	(check_symbol_replacement): Renamed from check_symbol. Assume the
	argument already failed the type check.
	(check_symbol_non_constant_replacement): Renamed from
	check_symbol_non_constant.
	(check_posfixnum_replacement): Renamed from check_posfixnum. Assume the
	argument already failed the type check.
	(check_integer_replacement): Renamed from check_integer. Assume the
	argument already failed the type check.
	(check_pos_integer_replacement): Renamed from check_pos_integer. Assume
	the argument already failed the type check.
	(check_char_replacement): Renamed from check_char. Assume the argument
	already failed the type check.
	(check_string_replacement): Renamed from check_string. Assume the
	argument already failed the type check.
	(check_function_replacement): Renamed from check_function. Assume the
	argument already failed the type check.
	(check_funname_replacement): Renamed from check_funname. Assume the
	argument already failed the type check.
	(check_uint8_replacement): Renamed from check_uint8. Assume the
	argument already failed the type check.
	(check_sint8_replacement): Renamed from check_sint8. Assume the
	argument already failed the type check.
	(check_uint16_replacement): Renamed from check_uint16. Assume the
	argument already failed the type check.
	(check_sint16_replacement): Renamed from check_sint16. Assume the
	argument already failed the type check.
	(check_uint32_replacement): Renamed from check_uint32. Assume the
	argument already failed the type check.
	(check_sint32_replacement): Renamed from check_sint32. Assume the
	argument already failed the type check.
	(check_uint64_replacement): Renamed from check_uint64. Assume the
	argument already failed the type check.
	(check_sint64_replacement): Renamed from check_sint64. Assume the
	argument already failed the type check.
	(check_uint_replacement): Renamed from check_uint. Assume the
	argument already failed the type check.
	(check_sint_replacement): Renamed from check_sint. Assume the
	argument already failed the type check.
	(check_ulong_replacement): Renamed from check_ulong. Assume the
	argument already failed the type check.
	(check_slong_replacement): Renamed from check_slong. Assume the
	argument already failed the type check.
	(check_ffloat_replacement): Renamed from check_ffloat. Assume the
	argument already failed the type check.
	(check_dfloat_replacement): Renamed from check_dfloat. Assume the
	argument already failed the type check.
	* record.d (check_structure_replacement): Renamed from check_structure.
	Assume the argument already failed the type check.
	* lisparit.d (check_number): Turn into an inline function.
	(check_number_replacement): New function.
	(check_real_replacement): Renamed from check_real. Assume the argument
	already failed the type check.
	(check_float): Turn into an inline function.
	(check_float_replacement): New function.
	(check_rational): Turn into an inline function.
	(check_rational_replacement): New function.
	* eval.d (eval1, apply, funcall): Use check_funname_replacement instead
	of check_funname.
	* control.d (funname_to_symbol, FLET, LABELS): Likewise.
	* genclisph.d (main): Update. Emit definitions for inline,
	single_float_p, double_float_p, uint_p, sint_p, ulong_p, slong_p.

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

	* pathname.d (simplify_directory): signal an error on (:ABSOLUTE :UP)
	as per <http://www.lisp.org/HyperSpec/Body/sec_19-2-2-4-3.html>

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

	* spvw.d (quit): do (FRESH-LINE *ERROR-OUTPUT*) before (WRITE-LINE
	"Bye") because in batch mode *ERROR-OUTPUT* and *STANDARD-OUTPUT*
	are separate

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

	* eval.d (CHECK_FDEF): use the return value of
	check_fdefinition() instead of Symbol_function(symbol)

2004-04-11  Bruno Haible  <bruno@clisp.org>

	* stream.d (lisp_completion): Ensure that local variables are not
	clobbered through longjmp.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (correctable_error): Document.
	* error.d (correctable_error): Expand and correct documentation.

2004-04-11  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Disable the use of global register variables for
	gcc >= 3.0.

2004-04-19  Bruno Haible  <bruno@clisp.org>

	Fix the return value of NSTRING-UPCASE/DOWNCASE/CAPITALIZE,
	WRITE-STRING, WRITE-LINE, when the argument is a displaced string.
	* lispbibl.d (test_vector_limits): Clarify specification.
	* charstrg.d (test_vector_limits): Likewise. Return the original
	string, not the data vector.
	(EXT:STRING-WIDTH): Use the data vector instead of the original string.
	* encoding.d (CONVERT-STRING-FROM-BYTES): Likewise.
	(CONVERT-STRING-TO-BYTES): Likewise.
	* foreign.d (FFI::CALL-WITH-FOREIGN-STRING): Likewise.
	* stream.d (MAKE-STRING-INPUT-STREAM, FILE-POSITION): Ignore
	arg.offset.
	* io.d (write_string_up): Undo last patch.

2004-04-10  Bruno Haible  <bruno@clisp.org>

	* type.lisp (BASE-STRING, SIMPLE-BASE-STRING): Change the type test
	so that it excludes vectors of element type NIL.

2004-04-10  Bruno Haible  <bruno@clisp.org>

	* condition.lisp (warn): Let the indentation depend on the width of the
	translation of "WARNING: ".

	* fill-out.lisp (line-pos): Use EXT:STRING-WIDTH instead of LENGTH.

2004-04-10  Bruno Haible  <bruno@clisp.org>

	* describe.lisp (describe-object of GENERIC-FUNCTION): Move newline out
	of TEXT.

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

	* makemake.in (check-ansi-tests): call do-tests here.
	(check-ansi-tests-debug): new target
	* utils/clispload.lsp: do not call DO-TESTS,
	leave this to the command line

2004-04-16  Bruno Haible  <bruno@clisp.org>

	* disassem.lisp (disassemble-machine-code): On Cygwin, don't use the
	live process.

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

	* io.d (write_string_up): (WRITE-STRING #A(nil (0))) must return
	its argument, not NIL

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

	* io.d (test_ostream): accept a gcv_object_t* argument instead of
	using STACK_0; updated all callers, including...
	(FORMAT-TABULATE): do not juggle STACK to ensure that the stream
	is in STACK_0

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

	* utils/clispload.lsp (disassemble-machine-code) [CYGWIN, WIN32]:
	redefine because debugging kills the process on woe32

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

	* comptran.d (R_R_asinh_R_R): fixed the floating point type of the
	return value
	* utils/clispload.lsp: ASINH.5 is now fixed

2004-04-09  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (c-constant-number, c-FORMAT): Use c-warn instead of
	c-error.

2004-04-09  Bruno Haible  <bruno@clisp.org>

	Make REMOVE-DUPLICATES, DELETE-DUPLICATES cons less.
	* sequence.d (remove_duplicates_list_from_start)
	(delete_duplicates_list_from_start, delete_duplicates_list_from_end):
	New functions.
	(seq_duplicates): Use these functions instead of the bit-vector
	approach when not using a hash-table and the sequence is a list.

2004-04-04  Bruno Haible  <bruno@clisp.org>

	Reduce the amount of consing of SUBTYPEP.
	* subtypep.lisp (intervals-mapto): Make the local functions autonomous.
	(intervals-intersection, intervals-union, intervals-subtypep): Use
	macrolet instead of flet.
	(intervals-remove-one): Use a combination of an autonomous local
	function and macrolet.
	(canonicalize-type): Make the local function autonomous.
	(*subtypep-type1parts*, *subtypep-type2parts*)
	(*subtypep-type2eqlparts*): New variables.
	(subtypep-flatten-AND, subtypep-flatten-OR): New functions.
	(subtypep-logic): Use them. Use declarations to convince the compiler
	to expand EVERY, REMOVE-IF, REMOVE-IF-NOT calls inline.

2004-03-28  Bruno Haible  <bruno@clisp.org>

	Integrate the ansi-tests from Paul Dietz.
	* utils/clispload.lsp: New file.
	* makemake.in (RECOMPILEDIR): Renamed from TESTDIR.
	(TESTSDIR): Change to 'tests'.
	(ANSITESTSDIR): New variable.
	(check-recompile): Renamed from test.
	(check-tests): Renamed from testsuite.
	(check-ansi-tests): New target.
	(check): Depend on it.
	(clean1): Remove also ANSITESTSDIR.

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

	new module for interface to MATLAB
	http://www.mathworks.com/products/matlab/
	* modules/matlab: new directory

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

	* clos-methcomb5.lisp (compute-method-partition-lambdas):
	removed unused variable
	(compute-effective-method-function): do not call
	GF-KEYWORD-ARGUMENTS since the values are not used

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

	* Makefile.devel (update-ansi-tests): do not pass "-d" to "cvs
	update" becase "ansi-tests" could be a symlink to a writable sandbox

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

	make EXT:FILL-STREAM a user-visible extension
	* fill-out.lisp (fill-stream, with-fill-stream): export symbol from EXT
	(fill-stream): new slot PENDING-SPACE to avoid trailing spaces
	and compress multiple blanks into one
	(line-pos): new helper
	(stream-line-column, stream-start-line-p): use it
	(fill-stream-flush-buffer): write a #\Space when PENDING-SPACE is
	non-NIL and we are not at the beginning of a line;
	do not multiply indent by *PRINT-INDENT-LISTS*
	(stream-write-char): set PENDING-SPACE instead of writing #\Space
	(stream-clear-output): reset PENDING-SPACE

2004-04-08  Bruno Haible  <bruno@clisp.org>

	Make REMOVE[-IF[-NOT]], DELETE[-IF[-NOT]], SUBSTITUTE[-IF[-NOT]] on
	lists cons less.
	* sequence.d (seq_prepare_filterop): New function, extracted from
	seq_filterop.
	(seq_filterop): Remove the argument checking.
	(remove_op, delete_op): New functions.
	(REMOVE, REMOVE-IF, REMOVE-IF-NOT): Use remove_op instead of
	seq_filterop.
	(DELETE, DELETE-IF, DELETE-IF-NOT): Use delete_op instead of
	seq_filterop.
	(substitute_op): New function.
	(SUBSTITUTE, SUBSTITUTE-IF, SUBSTITUTE-IF-NOT): Use substitute_op
	instead of seq_filterop.
	(nsubstitute_op): Update.

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

	New SUBTYPEP implementation.
	* subtypep.lisp: New file.
	* type.lisp (type-class): Remove function.
	(valid-interval-designator-p): Move to subtypep.lisp.
	(with-interval-designators): Remove macro.
	(interval-mix, interval-mix-not, simplify-and-or): Remove functions.
	(*canonicalize-type-prefer-clos*): Remove variable.
	(canonicalize-type): Simplify. Add error checking. Remove optional
	argument. Move to subtypep.lisp.
	(subtypep): Mostly rewritten. Move to subtypep.lisp.
	(get-charset-range, charset-subtypep): Move to subtypep.lisp.
	(subtype-integer): Small fixes. Handle the INTERVALS typespec that
	canonicalize-type now produces.
	* defstruct.lisp (ds-canonicalize-type): New function.
	* clos-class2.lisp (class-and): Remove function.
	* makemake.in (LPARTS): Add subtypep.
	* po/Makefile.devel (LISPSOURCES): Add subtypep.

2004-04-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (ANSITESTS_CVS_ROOT, ANSITESTS_CVS_REPOSITORY): New
	variables.
	(update-ansi-tests): New target.
	(all): Invoke it.

2004-04-09  Bruno Haible  <bruno@clisp.org>

	Make REMOVE[-IF[-NOT]], REMOVE-DUPLICATES on lists cons less.
	* sequence.d (remove_help): For lists, share the tail of the result
	list with the input list.

2004-03-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (expand_deftype): Mark as GC-trigger.

2004-04-04  Bruno Haible  <bruno@clisp.org>

	Make TYPEP work on structure types with user-defined :TYPE.
	* defstruct.lisp (ds-typep, ds-typep-expansion): New functions.
	* type.lisp (typep): Implement test for structure types with
	user-defined :TYPE by calling ds-typep.
	* compiler.lisp (c-TYPEP): Implement test for structure types with
	user-defined :TYPE by calling ds-typep-expansion.

2004-04-13  Sam Steingold  <sds@gnu.org>

	sync modules/clx/mit-clx/ with CLOCC/GUI/CLX
	* modules/clx/mit-clx/link.sh (TO_LOAD): added shape and split-sequence
	* modules/clx/mit-clx/Makefile (ALLLISP, ALLFAS): ditto
	* modules/clx/mit-clx/Makefile.clisp, modules/clx/mit-clx/Makefile.gcl:
	* modules/clx/mit-clx/README.GCL, modules/clx/mit-clx/akcl_dep.lisp:
	* modules/clx/mit-clx/build-clx.lisp, modules/clx/mit-clx/exclcmac.lisp:
	* modules/clx/mit-clx/excldefsys.lisp, modules/clx/mit-clx/excldep.c:
	* modules/clx/mit-clx/excldep.lisp, modules/clx/mit-clx/exclMakefile:
	* modules/clx/mit-clx/exclREADME, modules/clx/mit-clx/fix-socket.c:
	* modules/clx/mit-clx/generalock.lisp, modules/clx/mit-clx/sysdef.lisp:
	* modules/clx/mit-clx/kcl-compiler-patches.lisp:
	* modules/clx/mit-clx/kcl-patches.lisp:
	* modules/clx/mit-clx/kcl-system-patches.lisp:
	* modules/clx/mit-clx/makefile.akcl:
	* modules/clx/mit-clx/ms-patch.uu, modules/clx/mit-clx/provide.lisp:
	* modules/clx/mit-clx/sockcl.lisp, modules/clx/mit-clx/socket.c:
	* modules/clx/mit-clx/sys-package.lisp:
	* modules/clx/mit-clx/sys-proclaim.lisp: Remove files.
	* modules/clx/mit-clx/doc.lisp: Renamed from doc.lisp-doc.
	* modules/clx/mit-clx/shape.lisp:
	* modules/clx/mit-clx/split-sequence.lisp: New files.
	* modules/clx/mit-clx/attributes.lisp, modules/clx/mit-clx/buffer.lisp:
	* modules/clx/mit-clx/bufmac.lisp, modules/clx/mit-clx/clx.lisp:
	* modules/clx/mit-clx/defsystem.lisp, modules/clx/mit-clx/depdefs.lisp:
	* modules/clx/mit-clx/dependent.lisp, modules/clx/mit-clx/describe.lisp:
	* modules/clx/mit-clx/display.lisp, modules/clx/mit-clx/fonts.lisp:
	* modules/clx/mit-clx/gcontext.lisp, modules/clx/mit-clx/graphics.lisp:
	* modules/clx/mit-clx/image.lisp, modules/clx/mit-clx/input.lisp:
	* modules/clx/mit-clx/keysyms.lisp, modules/clx/mit-clx/macros.lisp:
	* modules/clx/mit-clx/manager.lisp, modules/clx/mit-clx/package.lisp:
	* modules/clx/mit-clx/requests.lisp, modules/clx/mit-clx/resource.lisp:
	* modules/clx/mit-clx/text.lisp, modules/clx/mit-clx/trace.lisp:
	* modules/clx/mit-clx/translate.lisp: sync with CLOCC

2004-04-13  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (view-man, view-html): man pages are in doc

2004-04-04  Bruno Haible  <bruno@clisp.org>

	Compile things like (remove-if #'(lambda ...) (the list ...)) inline.
	* compiler.lisp (c-form-table): Add entries for MAP, MAP-INTO, SOME,
	EVERY, NOTANY, NOTEVERY.
	(c-MAP-on-CARs-inner): Add endp-value argument.
	(c-MAP-on-CARs, c-MAPC): Update.
	(c-NTH, c-SETNTH): Use c-GLOBAL-FUNCTION-CALL-form instead of
	c-GLOBAL-FUNCTION-CALL, to reuse the already macroexpanded subforms.
	(declared-list-form-p, c-MAP, c-MAP-INTO, c-SOME, c-EVERY, c-NOTANY)
	(c-NOTEVERY): New functions.
	(c-REMOVE-IF, c-DELETE-IF, c-SUBSTITUTE-IF, c-NSUBSTITUTE-IF)
	(c-FIND-IF, c-POSITION-IF, c-COUNT-IF): Expand inline if the sequence
	argument is declared as list. Handle the inverted case as well.
	(c-REMOVE-IF-NOT, c-DELETE-IF-NOT, c-SUBSTITUTE-IF-NOT)
	(c-NSUBSTITUTE-IF-NOT, c-FIND-IF-NOT, c-POSITION-IF-NOT)
	(c-COUNT-IF-NOT): Invoke the corresponding -IF function.
	(c-seqop, c-LDB, c-LDB-TEST, c-MASK-FIELD, c-DPB, c-DEPOSIT-FIELD): Use
	c-GLOBAL-FUNCTION-CALL-form instead of c-GLOBAL-FUNCTION-CALL, to reuse
	the already macroexpanded subforms.

2004-04-04  Bruno Haible  <bruno@clisp.org>

	Make DEFSTRUCT :INITIAL-OFFSET option work correctly even in structure
	types with no slots.
	* defstruct.lisp (ds-make-constructor-body): Don't use the optimized
	simple case if there are trailing NILs, due to :initial-offset.
	(ds-make-pred): Replace name-offset argument with slotlist and size
	arguments. Check the names of the :INCLUDEd structures as well. Use
	SYS::CONSES-P, so that the test can cope with dotted lists and
	circular lists.

2004-04-04  Bruno Haible  <bruno@clisp.org>

	* list.d (SYS::CONSES-P): New function.

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

	* sequence.d (valid_type1): Call eltype_code only if the element-type
	is not *.

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

	* defstruct.lisp (defstruct): When defining a structure with :TYPE
	option, remove any previously defined class of the same name.
	* clos-class2.lisp (undefine-structure-class): New function.

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

	Store a structure's size in the DEFSTRUCT-DESCRIPTION.
	* defstruct.lisp (defstruct): Add the instance size as third slot of
	the DEFSTRUCT-DESCRIPTION.
	* io.d (structure_reader, pr_structure_default): Update.
	* clos-class2.lisp (define-structure-class): Update.
	* foreign1.lisp (c-struct-constructor): Update.

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

	* init.lisp: export ABORT here to avoid conflict with gray.lisp

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

	fill/indent warnings and error messages
	* fill-out.lisp: extracted from describe.lisp
	* describe.lisp (describe-stream): moved to fill-out.lisp
	(describe): DESCRIBE-STREAM is now called FILL-STREAM
	* condition.lisp (pretty-print-condition): new function
	(warn, maybe-continue): use it
	* reploop.lisp (print-error, break-loop): ditto
	* makemake.in (LPARTS): added fill-out
	* po/Makefile.devel (LISPSOURCES): ditto

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

	* spvw.d (main): use UNIXy i/o (*ERROR-OUTPUT* = stderr) in batch
	mode under the same conditions as *DEBUG-IO* being non-interactive

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

	* Makefile.devel (src/autoconf/aclocal.m4): aclocal 1.8 forbids
	duplicate AC_CONFIG_HEADERS

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

	* modules/pcre/cpcre.c: better support for older PCRE versions

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

	* defstruct.lisp (defstruct): write STRUCT DOCUMENTATION to the
	TYPE slot to match DOCUMENTATION in documentation.lisp

2004-03-22  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (define-structure-class): Use sys::ds-slot-initargs,
	not sys::ds-slot-name, to detect whether a structure slot is real.

2004-03-21  Bruno Haible  <bruno@clisp.org>

	* clos-class2.lisp (finalize-class): Renamed from class-finalize.
	(initialize-instance-standard-class): Update.
	* clos-class5.lisp (finalize-inheritance): Update.
	* record.d (do_allocate_instance, CLOS::%MAKE-INSTANCE): Update.

	* clos-class2.lisp (ensure-class): Treat metaclasses that are
	subclasses of <standard-class> like <standard-class> itself. For
	other metaclasses, invoke FIND-CLASS with force-p = t.

	* clos-class2.lisp (subclassp): Finalize the class before accessing
	its superclasses table.

2004-03-21  Bruno Haible  <bruno@clisp.org>

	* clos-slots2.lisp (slot-unbound): Quote the slot-name in the place.

	* clos-class2.lisp (DEFCLASS): Don't emit code to FIND-CLASS the
	direct superclasses.
	(ensure-class): Call FIND-CLASS on the direct superclasses here.
	Call FIND-CLASS also on the old direct superclasses. Don't create a
	new class object if the class exists but has not yet been finalized.

	* clos-class2.lisp (*finalizing-now*): Remove variable.
	(class-finalize): Pass the finalizing-now stack as optional argument.

	* clos-class5.lisp (make-instances-obsolete): Don't do anything if the
	class is not yet finalized. Return the argument unmodified, even if
	it's a symbol.

	* documentation.lisp (documentation, setf documentation): Add a method
	for (SYMBOL (EQL METHOD-COMBINATION)).

2004-03-21  Bruno Haible  <bruno@clisp.org>

	Remove redundant information from the DEFSTRUCT-DESCRIPTION.
	* defstruct.lisp (make-ds-slot): Remove 8th argument.
	(ds-slot-var): Remove function.
	(ds-slot-initargs): New function.
	(ds-real-slot-p): Use ds-slot-initargs.
	(ds-arg-default): Simplify.
	(ds-make-constructor-body): Take a varlist instead of a get-var
	argument.
	(ds-make-boa-constructor, ds-make-keyword-constructor): Update.
	(defstruct): Update.
	* io.d (pr_structure_default): Update.

2004-02-29  Bruno Haible  <bruno@clisp.org>

	Split clos.lisp.
	* clos.lisp: Split into pieces.
	* clos-class1.lisp, clos-class2.lisp, clos-class3.lisp:
	* clos-class4.lisp, clos-class5.lisp, clos-genfun1.lisp:
	* clos-genfun2.lisp, clos-genfun3.lisp, clos-genfun4.lisp:
	* clos-genfun5.lisp, clos-methcomb1.lisp, clos-methcomb2.lisp:
	* clos-methcomb3.lisp, clos-methcomb4.lisp, clos-methcomb5.lisp:
	* clos-method1.lisp, clos-method2.lisp, clos-method3.lisp:
	* clos-slots1.lisp, clos-slots2.lisp, documentation.lisp: New files,
	extracted from clos.lisp.
	* makemake.in (LPARTS): Add the new files.
	* po/Makefile.devel (LISPSOURCES): Likewise.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	* floatprint.lisp (decode-float-decimal): Add argument
	fixed-point-adjust.
	(write-float): Pass fixed-point-adjust = t.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_symbol_part): Add |...| markers also when *print-readably*
	is true.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (arraysize_limit_1): Reduce value by 1.
	* spvw.d (init_symbol_values): Initialize array-total-size-limit,
	array-dimension-limit and array-rank-limit as fixnums.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance.
	* clos.lisp (std-find-method): Check the specializers argument.
	(analyze-method-description): Update.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: Fix the short-form method combination.
	* clos.lisp (standard-method-combination-check-method-qualifiers):
	Renamed from short-form-method-combination-check-method-qualifiers.
	(define-method-combination): The qualifier of primary methods is the
	name of the method combination, not the operator.
	(short-form-method-combination-check-method-qualifiers): New function.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: DEFGENERIC must remove methods defined in the
	previous DEFGENERIC form.
	* clos.lisp (standard-method): Add slot 'origin'.
	(analyze-method-description): Add value for :ORIGIN.
	(do-defgeneric): Remove old methods that came from a DEFGENERIC form.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: Improved argument list checking.
	* record.d (check_keywords): Remove macro.
	(check_initialization_argument_list): New function.
	(CLOS::%ALLOCATE-INSTANCE, CLOS::%SHARED-INITIALIZE)
	(CLOS::%REINITIALIZE-INSTANCE, CLOS::%INITIALIZE-INSTANCE)
	(CLOS::%MAKE-INSTANCE): Use check_initialization_argument_list
	instead of check_keywords.

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance.
	* clos.lisp (ensure-class): Don't modify the old class if it doesn't
	have a "proper name".

2004-03-27  Bruno Haible  <bruno@clisp.org>

	ANSI CL compliance: Remove nickname of the keyword package.
	* package.d (init_packages): Drop nickname "" of the KEYWORD package.
	* complete.lisp (complete): Map prefix "" to "KEYWORD". Handle
	readtable-case values different from :UPCASE correctly.

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

	* list.d (get_integer_truncate): Portability tweak.

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

	* macros2.lisp (with-output-to-string): Declare the variable as
	read-only in both cases.

2004-03-15  Bruno Haible  <bruno@clisp.org>

	Change the format of internal error message strings:
	'~' -> '~S', '$' -> '~C'.
	* error.d (write_errorstring): Expect ~S and ~C instead of ~ and $.
	Signal an error if a stray ~ is seen.
	(check_value): Update comments.
	* lispbibl.d (fehler, check_value): Update comments.
	* affi.d, array.d, charstrg.d, control.d, debug.d, encoding.d, error.d,
	* eval.d, foreign.d, hashtabl.d, i18n.d, intbyte.d, intdiv.d,
	* intelem.d, intlog.d, io.d, lisparit.d, list.d, misc.d, package.d,
	* pathname.d, predtype.d, record.d, sequence.d, spvw.d, stream.d,
	* symbol.d, time.d: Update all error messages.
	* modules/berkeley-db/bdb.c: Likewise.
	* modules/clx/new-clx/clx.f: Likewise.
	* modules/dirkey/dirkey.c: Likewise.
	* modules/regexp/regexi.c: Likewise.
	* modules/pcre/cpcre.c: Likewise.
	* modules/syscalls/calls.c: Likewise.
	* po/clisp-xgettext (main): Heuristic: Mark string as lisp-format if it
	contains ~S or ~C.

2004-03-15  Bruno Haible  <bruno@clisp.org>

	* po/clisp-xgettext (main): Remove support for scanning Lisp files.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	Remove special casing of germanic plural in messages.
	* compiler.lisp (test-argument-syntax): Test the list length against 1
	inside the English format string, not outside.
	* describe.lisp (describe-object): Likewise.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* control.d: Use "\n" instead of NLstring.
	* error.d: Likewise.
	* errwin32.d: Likewise.
	* flo_rest.d: Likewise.
	* io.d: Likewise.
	* pathname.d: Likewise.
	* realelem.d: Likewise.
	* spvw_memfile.d: Likewise.
	* stream.d: Likewise.
	* win32aux.d: Likewise.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	Remove all leading and trailing formatting commands from
	internationalized strings, to make it easier for translators.
	* debug.d (print_stackitem): Move newline out of CLSTEXT.
	* encoding.d (encoding_from_name, init_dependent_encodings): Move
	newline out of GETTEXT.
	* spvw.d (SP_ueber, STACK_ueber): Move newline out of GETTEXTL.
	(main): Likewise, also out of CLSTEXT.
	* spvw_alloca.d (malloca): Move newline out of GETTEXTL.
	* spvw_allocate.d (error_speicher_voll, make_space_gc_true)
	(make_space_gc_false, make_space_gc): Likewise.
	* spvw_memfile.d (loadmem, loadmem_from_handle): Likewise.
	* spvw_mmap.d (mmap_zeromap): Likewise.
	* spvw_multimap.d (fdmap, open_temp_fd, initmap): Likewise.
	* spvw_sigsegv.d (sigsegv_handler_failed, stackoverflow_handler):
	Likewise.
	* affi1.lisp (defflibfun): Move newline and freshline out of TEXT.
	* compiler.lisp (c-warn, c-error, match-known-unknown-functions)
	(c-report-problems, compile-file, disassemble-closure): Likewise.
	* condition.lisp (prompt-for-new-value): Likewise.
	* describe.lisp (describe-slotted-object, describe-object, describe1):
	Likewise.
	* format.lisp (format-error): Likewise.
	* macros2.lisp (prompt-for-new-value-string): Likewise.
	* reploop.lisp (debug-reset-io, get-frame-limit, debug-backtrace)
	(print-error): Likewise.
	* room.lisp (room): Likewise.
	* trace.lisp (trace1): Likewise.

2004-03-30  Bruno Haible  <bruno@clisp.org>

	* po/de.po: Update translations.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	Make use of GNU gettext >= 0.13 features.
	* po/Makefile.devel (GMSGFMT): Add option --check.
	(DSOURCES_POT, LISPSOURCES_POT): New variables.
	(SOURCES_POT): Apply clisp-xgettext only to *.d files.
	(SOURCES_POT2): Remove the *.lisp contributions.
	(SOURCES_EN): Remove variable and rule.
	(XGETTEXT, XGETTEXT_OPTIONS): New variables.
	(LISPSOURCES_POT): New rule.
	(MSGEN): New variable.
	(en.po): Use msgen.
	* clisp-xgettext (main): Don't write a *.en file.

	Modernize PO file header.
	* po/po_header.txt: Add license clause and Report-Msgid-Bugs-To field.
	* po/po_header: Likewise. Use the official format for the timezone in
	the header. Make it work with newer versions of GNU ls.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	Internationalization fixes:
	- Use entire sentences instead of pieces of sentences.
	- Let the translator translate terms like STRING, SYMBOL, INTEGER,
	  CHARACTER, VECTOR, PACKAGE, STREAM, CLASS. On the other hand, type
	  names like RANDOM-STATE can remain uninternationalized.
	- Prefixes like "READ: " must be internationalized as well, because in
	  French, a space is put before the colon.
	* charstrg.d (MAKE-STRING): Improve error message.
	* encoding.d (encoding_from_name): Call GETTEXT for warning message.
	(init_dependent_encodings): Likewise.
	* error.d (fehler_list, check_list): Make error message localizable.
	(check_symbol): Likewise.
	(fehler_vector): Likewise.
	(check_integer, check_pos_integer): Likewise.
	(fehler_char, check_char): Likewise.
	(check_string): Likewise.
	(fehler_stream): Likewise.
	(fehler_key_notkw): Likewise.
	(check_function): Likewise.
	* hashtabl.d (check_hashtable): Likewise.
	* lisparit.d (check_number, check_real, check_float): Likewise.
	(check_rational): Likewise.
	* record.d (fehler_record_length): Likewise.
	(fehler_keine_klasse): Likewise.
	* stream.d (MAKE-SYNONYM-STREAM): Likewise.
	(SYSTEM::STRING-INPUT-STREAM-INDEX): Likewise.
	(GET-OUTPUT-STREAM-STRING): Likewise.
	(lisp_completion): Likewise.
	(stream_handles): Likewise.
	(SOCKET-OPTIONS): Improve error message.
	(handle_to_stream): Fix order of arguments passed to error message.
	(MAKE-STREAM): Improve error message.
	(read_line): Make error message localizable.
	(check_open_file_stream): Likewise.
	* spvw.d (usage): Split message into two.
	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
	Make error message more understandable. Make the prefix localizable.
	* clos.lisp (make-instances-obsolete): Improve error message.
	(invalid-method-error): Fix error message: "~:%" is undefined.
	(method-combination-error): Pass the right arguments to the error
	message.
	* compiler.lisp (set-check-lock): Fix error message.
	(disassemble-closure): Make message localizable. Print the variable
	lists without surrounding parentheses.
	* defs1.lisp (load-lpt-many, load-lpt-one): Make the verbose message
	localizable.
	* defs2.lisp (define-hash-table-test): Make error message localizable.
	* describe.lisp (describe-object): Make string description localizable.
	(describe-signature): Assume stream argument is non-NIL. Make message
	localizable.
	* init.lisp (open-for-load): Change error message to reflect the user's
	point of view, not the implementor's.
	(load): Make the verbose message localizable.
	* pprint.lisp (set-pprint-dispatch, pprint-logical-block): Make error
	message localizable.
	* savemem.lisp (saveinitmem): Make the verbose message localizable.
	* trace.lisp (force-cclosure): Improve error message.
	(%local-set): Pass the right arguments to the error message.

2004-03-26  Will Newton  <will@misconception.org.uk>

	* eval.d (interpret_bytecode_): avoid a compiler warning by
	declaring `byteptr' `register'

2004-03-26  Bruno Haible  <bruno@clisp.org>

	* init.lisp (%expand-form EVAL-WHEN): Don't look whether COMPILE is
	among the situations. Ignore the forms if EVAL/:EXECUTE is not among
	the situations.

2004-03-26  Bruno Haible  <bruno@clisp.org>

	* stream.d (wr_ch_array_str_out, wr_ch_array_pphelp): Use TheSnstring
	instead of a cast to chart*.

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

	* spvw_debug.d (nobject_out1): handle PPHELP-STREAMs
	(TheStream, Car, Cdr): new trivial accessors
	* io.d: removed the debugging infrastructure,
	nobject_out() is now quite sufficient

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

	* eval.d (DEBUG_CHECK_BYTEPTR): do not compare pointers with ints
	(interpret_bytecode_): fixed initialization of byteptr_min &
	byteptr_max, fixed error messages for fehler_byteptr and
	fehler_STACK_putt

2004-03-25  Bruno Haible  <bruno@clisp.org>

	* eval.d (interpret_bytecode_): Fix initialization of byteptr_min.

2004-03-15  Bruno Haible  <bruno@clisp.org>

	* list.d (NTHCDR): Drop out of the loop when the end of the list is
	reached.

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* dribble.lisp: Use variable names 'source' and 'target' instead of
	'so' and 'ta'.

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* package.d (SYS::SYMBOL-VALUE-LOCK): Check the argument.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* spvw.d (init_symbol_values): Initialize *PRINT-SPACE-CHAR-ANSI*.
	* misc.d (SYS::SET-ANSI): Set *PRINT-SPACE-CHAR-ANSI* as well.
	* io.d (pr_character): Print #\Space as "#\ " if *PRINT-SPACE-CHAR-ANSI*
	is true.
	* places.lisp (*ansi*): Update documentation.

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (back_trace_check): Change argument type to 'const char*'.
	* spvw_debug.d (back_trace_check): Likewise.
	* spvw_garcol.d (gc_markphase): Mark the backtraces here...
	(gar_col_normal): ... not here.
	* spvw_update.d (update_back_traces): Remove unneeded cast.

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

	* stream.d (rd_ch_terminal2, rd_ch_terminal3, wr_ch_array_terminal3)
	[CHART_STRUCT]: fixed compilation

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

	* eval.d (GOTO_ERROR): depend on DEBUG_BYTECODE, not DEBUG_SPVW
	(DEBUG_CHECK_BYTEPTR) [DEBUG_BYTECODE]: new macro
	(interpret_bytecode_): use it before a jump
	* makemake.in (XCFLAGS) [DEBUGGING]: added DEBUG_BYTECODE
	* lispbibl.d: documented debugging options

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

	* genclisph.d (Array_type_simple_bit_vector) [TYPECODES]: enabled,
	removed a trailing semicolon
	Reported by Will Newton <will@misconception.org.uk>

2004-03-23  Bruno Haible  <bruno@clisp.org>

	Drop *print-symbols-long*.
	* spvw.d (init_symbol_values): Don't initialize *print-symbols-long*.
	* io.d (pr_symbol): Look at *print-readably*, not *print-symbols-long*.
	* defs2.lisp (with-standard-io-syntax): Don't bind *print-symbols-long*.
	* compiler.lisp (c-write-lib, compile-toplevel-form): Likewise.

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

	* clhs.lisp (read-from-file): accept :REPEAT keyword argument

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Don't require CL_MALLOC. Don't
	declare malloc().
	* m4/malloc.m4: Remove file.
	* m4/free.m4: Remove file.
	* m4/shmget.m4: Remove file.
	* m4/shmdt.m4: Remove file.
	* m4/shmctl.m4: Remove file.
	* m4/open.m4: Remove file.
	* m4/setsid.m4: Remove file.
	* m4/sh-args.m4: Remove file.
	* m4/sigaltstack.m4: Remove file.

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

	* io.d (pr_symbol): If *print-readably* is true, assume
	*print-symbols-long* to be true as well.
	Suggested by Paul Dietz <paul.f.dietz@motorola.com>.

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

	* compiler.lisp (signed-operand-length): New function.
	(assemble-LAP): Instead of working around the "zero jump of length 2"
	bug, more generally guarantee that the jump lengths only ever grow and
	never need to shrink.

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

	* compiler.lisp (seclass): Update comments.
	(c-THROW): Reduce the seclass' uses-binding value.

2004-03-22  Bruno Haible  <bruno@clisp.org>

	* stream.d (MAKE-STRING-OUTPUT-STREAM): For element type NIL, create
	an nil-vector of length 0, not 50.
	(get_output_stream_string): Don't use stringp to test for nil-vector.
	(SYS::BUILT-IN-STREAM-ELEMENT-TYPE): Likewise.

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

	* clisp.spec: removed anti-RPM comments
	(Source): updated
	(version): do not use absolute path
	(mysrc): do not hard-code `current'

2004-03-22  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (test_2_stringsym_limits): Move the test for nil-vector to
	the right place.

2004-02-29  Bruno Haible  <bruno@clisp.org>

	* format.lisp: In error messages, talk about "format directives", not
	only "directives".
	Suggested by Jörg Höhle <Joerg-Cyril.Hoehle@t-systems.com>.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	Due to the rule 1 in
	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
	for all "built-in types" Y as listed in table 4-2 in
	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
	Apply this to X = #'compile and Y = COMPILED-FUNCTION
	or to X = #'print-object and Y = STANDARD-GENERIC-FUNCTION.
	* predtype.d (TYPE-OF): For compiled closures, return COMPILED-FUNCTION.
	For generic functions, return STANDARD-GENERIC-FUNCTION.
	* describe.lisp (describe-object): Add a case for GENERIC-FUNCTION.
	Update to match the changed behaviour of TYPE-OF.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	Exclude generic functions from the type COMPILED-FUNCTION.
	So that (defgeneric foo (x) (:method ((x t)) x))
	        (typep #'foo 'COMPILED-FUNCTION) ==> NIL.
	Rationale: Due to the rule 1 in
	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
	for all "built-in types" Y as listed in table 4-2 in
	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
	Apply this to X = #'foo and Y = COMPILED-FUNCTION.
	* predtype.d (COMPILED-FUNCTION-P): Exclude generic functions.
	(SYS::%COMPILED-FUNCTION-P): New function, with the old semantics of
	COMPILED-FUNCTION-P.
	* compiler.lisp (function-signature, compile, disassemble-closures):
	Use sys::%compiled-function-p instead of compiled-function-p.
	* defs2.lisp (function-lambda-expression): Likewise.
	* describe.lisp (describe-object): Likewise.
	* disassem.lisp (disassemble): Likewise.
	* edit.lisp (ed): Likewise.
	* trace.lisp (sys::%local-set): Likewise.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	Due to the rule 1 in
	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
	for all "built-in types" Y as listed in table 4-2 in
	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
	Apply this to X = #\a and Y = STANDARD-CHAR.
	* lispbibl.d (standard_cint_p): New macro.
	* charstrg.d (STANDARD-CHAR-P): Use it.
	* predtype.d (TYPE-OF): For standard-char elements, return
	STANDARD-CHAR instead of BASE-CHAR.

2004-03-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (installcheck): pass "-E utf-8 -norc" to CLISP
	Reported by Pascal J.Bourguignon <pjb@informatimago.com>

2004-03-21  Bruno Haible  <bruno@clisp.org>

	* error.d (check_string): Remove special handling of nil-vectors.

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

	Make the vectors of element type NIL be strings.
	* lispbibl.d (general_vector_p): Undo last change.
	(simple_nilarray_p): New macro.
	(fehler_nilarray_retrieve): Renamed from fehler_retrieve. Remove
	argument.
	(fehler_nilarray_store): New declaration.
	(fehler_nilarray_access): New declaration.
	(SstringCase): Add a fifth argument.
	(SstringDispatch): Signal an error when the string has element type
	NIL.
	(unpack_sstring_alloca): Handle strings of element type NIL.
	(schar): Likewise.
	(unpack_string_rw, unpack_string_ro): Can return NIL now.
	* genclisph.d (main): Undo last change to general_vector_p. Emit
	declarations of simple_nilarray_p, fehler_nilarray_retrieve. Update
	unpack_sstring_alloca.
	* array.d (iarray_displace, iarray_displace_check)
	(array_displace_check): Use simple_nilarray_p instead of nullp.
	(fehler_nilarray_retrieve): Renamed from fehler_retrieve. Remove
	argument.
	(fehler_nilarray_store): New function.
	(fehler_nilarray_access): New function.
	(storagevector_aref): Update.
	(fehler_store): Use simple_nilarray_p instead of nullp.
	(array_atype): Handle strings of element type NIL. Array_type_vector
	now implies Atype_T again.
	(elt_copy_T_Char): Signal an error when dv2 has element type NIL.
	(elt_copy_Char_Char): Signal an error when dv1 or dv2 has element type
	NIL.
	(elt_copy): Update.
	(elt_move_Char): Signal an error when dv2 has element type NIL.
	(elt_reverse): Signal an error when dv1 or dv2 has element type NIL.
	(elt_nreverse): Update.
	(ssstring_append_extend): Update.
	(MAKE-ARRAY): Use simple_nilarray_p instead of nullp. Map Atype_NIL to
	Array_type_string instead of Array_type_vector.
	(ADJUST-ARRAY): Update.
	* charstrg.d (unpack_string_ro): Can return NIL now.
	(unpack_string_rw): Likewise. Signal an error when the string has
	element type NIL and the length is > 0.
	(copy_string_normal): Signal an error when the string has element type
	NIL and the length is > 0.
	(copy_string): Handle strings of element type NIL.
	(coerce_imm_ss): Likewise.
	(coerce_imm_normal_ss): Signal an error when the string has element
	type NIL and the length is > 0.
	(SYS::STRING-INFO): Handle strings of element type NIL.
	(SCHAR): Update the error message for strings of element type NIL.
	(SYSTEM::STORE-CHAR): Signal an error when the string has element type
	NIL.
	(SYSTEM::STORE-SCHAR): Update the error message for strings of element
	type NIL.
	(test_vector_limits): Signal an error when the string has element type
	NIL and the length is > 0.
	(test_string_limits_rw): Likewise.
	(test_2_stringsym_limits): Likewise.
	(string_comp, string_comp_ci): Handle strings of element type NIL.
	(nstring_upcase, nstring_downcase, nstring_capitalize): Signal an error
	when the string has element type NIL and length > 0.
	(subsstring, SUBSTRING, string_concat): Signal an error when a string
	has element type NIL and length > 0.
	* predtype.d (equal): Handle strings of element type NIL.
	(elt_compare): Update.
	(SIMPLE-STRING-P): Include simple strings of element type NIL.
	(TYPE-OF): For strings of element type NIL, return (VECTOR NIL dim0)
	or (SIMPLE-ARRAY NIL (dim0)). Objects of type vector_type have element
	type T again.
	(heap_statistics_mapper): Handle strings of element type NIL. Objects
	of type vector_type have element type T again.
	* sequence.d (get_seq_type): Handle strings of element type NIL.
	Objects of type vector_type have element type T again.
	(READ-CHAR-SEQUENCE): Signal an error when the string has element type
	NIL.
	(WRITE-CHAR-SEQUENCE): Likewise.
	* hashtabl.d (hashcode_string): Handle strings of element type NIL.
	(hashcode4_vector): Likewise.
	* io.d (string_printf): Handle strings of element type NIL.
	(write_string): Signal an error when the string has element type NIL.
	(pr_symbol_part): Don't SstringDispatch if the string's length is 0.
	(pr_sstring_ab): Likewise.
	(pr_string): Handle strings of element type NIL.
	(UNREADABLE_START, UNREADABLE_END): Nop.
	(pr_vector): Remove code for printing vectors of element type NIL.
	(pr_nilvector): New function.
	* stream.d (wr_ch_array_terminal3): Update.
	(read_line): Handle strings of element type NIL.
	* pathname.d (split_name_type): Don't SstringDispatch if the string's
	length is 0.
	(PARSE-NAMESTRING): Likewise. Update.
	* spvw_typealloc.d (reallocate_small_string): Update.
	* spvw_debug.d (string_out): Handle strings of element type NIL.
	* encoding.d (string_to_asciz_): Handle strings of element type NIL.
	* package.d (string_hashcode): Don't SstringDispatch if the string's
	length is 0.
	* type.lisp (canonicalize-type): In STRING and SIMPLE-STRING, the
	element-type can be CHARACTER, BASE-CHAR or NIL, not just CHARACTER.
	* describe.lisp (describe-object): Don't show string details for
	strings of element type NIL.

2004-03-19  Sam Steingold  <sds@gnu.org>

	* clos.lisp (defgeneric): added (DECLARE IN-DEFUN) to avoid a
	compiler warning on recursive generic functions

2004-03-06  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (smallest_string_flavour8): New macro.
	(smallest_string_flavour16, smallest_string_flavour32): New
	declarations.
	(smallest_string_flavour): New function.
	(copy_string_normal): Renamed from copy_string.
	(copy_string): New declaration.
	* charstrg.d (smallest_string_flavour16 smallest_string_flavour32): New
	functions.
	(stringof): Produce a small string if possible.
	(copy_string_normal): Renamed from copy_string.
	(copy_string): New function.
	(coerce_normal_ss, string_upcase, string_downcase): Update.

2004-02-20  Bruno Haible  <bruno@clisp.org>

	* spvw_garcol.d (UNREALLOC, GC_UNREALLOC): Remove macros.
	(GC_MARK): Remove macro; use gc_mark instead.
	(update): Drop wrapper macro. Instead use the definition from update1.
	(update1): Remove macro; renamed to update.
	* spvw_genera2.d (gc_mark_at, gc_mark_old_generation): Use gc_mark
	instead of GC_MARK.

2004-02-20  Bruno Haible  <bruno@clisp.org>

	Clean up simple-string forward pointers during garbage collection.
	* lispbibl.d (sstring_flags_clr, sstring_flags_set): New macros.
	(mark_sstring_clean): New macro.
	* spvw_update.d: Use update_unrealloc instead of
	update_instance_unrealloc.
	(update_varobject, update_sstring): Obey also update_unrealloc.
	* spvw_garcol.d (gc_sweep1_sstring_forward, gc_sweep1_sstring_target):
	New functions.
	(gc_sweep1_varobject_page): Use them for simple-strings.
	(gar_col_normal): Set update_unrealloc to true while updating.
	(gar_col_compact, move_conses): Set update_unrealloc to false while
	updating.
	* spvw_memfile.d (savemem, loadmem_from_handle): Use update_unrealloc
	instead of update_instance_unrealloc.
	* predtype.d (enum_hs_realloc_simple_string): New enum value.
	(heap_statistics_mapper): Map forwarded instances to
	EXT::FORWARD-POINTER-SIMPLE-STRING.

2004-02-19  Bruno Haible  <bruno@clisp.org>

	Make the small-sstrings more robust.
	* lispbibl.d (stringsize_limit_1): New macro.
	(DYNAMIC_STRING): Check the string size.
	(DBGREALLOC): New macro.
	(fehler_stringsize): New declaration.
	(check_stringsize): New macro.
	* spvw.d (init_symbol_values): Initialize SYS::STRING-DIMENTION-LIMIT.
	* constobj.d (O(type_stringsize)): New object.
	* error.d (fehler_stringsize): New function.
	* io.d (write_sstring, write_sstring_case, pr_symbol_part): Handle
	reallocated strings correctly.
	* charstrg.d (string_gleich, string_equal): Handle reallocated strings
	correctly.
	(stringof, MAKE-STRING, string_concat): Check the string size before
	allocating the string.
	* array.d (VECTOR-PUSH-EXTEND, make_ssstring, ssstring_extend_low)
	(make_storagevector, ADJUST-ARRAY): Likewise.
	* encoding.d (n_char_to_string, ascii_to_string)
	(CONVERT-STRING-FROM-BYTES): Likewise.
	* lisparit.d (decimal_string): Likewise.

2004-02-18  Bruno Haible  <bruno@clisp.org>

	Make HAVE_SMALL_SSTRING work also in TYPECODES mode.
	* lispbibl.d (HAVE_SMALL_SSTRING): Define also if TYPECODES or
	SPVW_PURE is defined.
	(if_HAVE_SMALL_SSTRING): New macro.
	(SSTRING_HEADER): New macro.
	(sstring_, Sstring): Define using SSTRING_HEADER, without 'data' field.
	(STRUCT_SSTRING): Use SSTRING_HEADER instead of LRECORD_HEADER.
	(snstring_): New type, renamed from sstring_.
	(Snstring): New type, renamed from Sstring.
	(sstring_length): Change definition.
	(sstringrecord_tfl, sstring_tfl): New macros.
	(sstringflags_forwarded_B, sstring_reallocatedp): New macros.
	(sstring_eltype): New macro.
	(Sstringtype_8Bit, Sstringtype_16Bit, Sstringtype_32Bit): New macros.
	(sstring_immutable, sstring_flags): New macros.
	(sstringflags_backpointer_B, sstringflags_relocated_B): New macros.
	(sistring_): Renamed from siarray_. Use SSTRING_HEADER instead of
	VAROBJECT_HEADER.
	(Sistring): Renamed from Siarray.
	(sistring_data_offset): New macro.
	(TheSnstring, TheSistring): New macros.
	(TheSiarray): Remove macro.
	(allocate_imm_s8string, allocate_imm_s32string): Also declare if
	TYPECODES.
	(DYNAMIC_STRING): Update.
	(allocate_imm_string): Also declare if TYPECODES.
	(reallocate_small_string): Change meaning of newtype argument.
	(with_sstring_0, with_sstring): Update.
	(sstring_un_realloc): Renamed from simple_array_to_storage. Make it
	work if TYPECODES.
	(sstring_un_realloc1): Renamed from simple_array_to_storage1. Make it
	work if TYPECODES.
	(array_total_size, SstringCase, sstring_normal_p): Update.
	(unpack_sstring_alloca): Update.
	(coerce_imm_ss): Declare also if TYPECODES.
	(check_sstring_mutable): Make it work if TYPECODES.
	* genclisph.d (main): Emit SSTRING_HEADER. Update sstring_. Emit
	snstring_. Update sstring_length. Emit sstring_eltype. Update
	with_sstring_0, STRUCT_SSTRING, unpack_sstring_alloca.
	* spvw_debug.d (string_out): Update.
	* spvw_global.d (init_mem_heaptypes): Change type of sstring_type heap.
	* spvw_objsize.d (size_sistring): Renamed from size_siarray. Define
	also for TYPECODES.
	(objsize_s8string, objsize_s16string, objsize_s32string): New
	functions.
	(objsize_sstring, objsize): Support all simple-string variants.
	* spvw_update.d (do_update_sistring, update_sstring): New macros.
	(update_varobject, update_varobjects): Handle simple-string as well.
	* spvw_garcol.d (UNREALLOC): Update.
	(down_sistring, up_sistring): New macros.
	(gc_mark): Use them.
	* spvw_genera1.d (walk_area_sistring, walk_area_sstring): New macros.
	(walk_area, build_old_generation_cache): Walk through the indirect
	pointer of reallocated simple strings.
	* spvw_typealloc.d (allocate_s8string): Update.
	(allocate_imm_s8string): Define also if TYPECODES. Update.
	(allocate_s16string, allocate_imm_s16string, allocate_s32string):
	Update.
	(allocate_imm_s32string): Define also if TYPECODES. Update.
	(reallocate_small_string): Update.
	* charstrg.d (unpack_string_ro, sstring_store, sstring_store_array)
	(stringof, copy_string, coerce_ss): Update.
	(coerce_imm_ss): Define also if TYPECODES.
	(coerce_normal_ss, coerce_imm_normal_ss, SYS::STRING-INFO, char_name)
	(CHAR, SCHAR, SYSTEM::STORE-CHAR, SYSTEM::STORE-SCHAR): Update.
	(test_string_limits_rw): Define as a function also for TYPECODES.
	(test_stringsymchar_arg, MAKE-STRING, nstring_upcase, string_upcase)
	(STRING-UPCASE, nstring_downcase, string_downcase, STRING-DOWNCASE)
	(nstring_capitalize, STRING-CAPITALIZE, subsstring, SUBSTRING)
	(string_concat): Update.
	* array.d (vector_length, iarray_displace, iarray_displace_check)
	(array_displace_check, test_index, subscripts_to_index)
	(storagevector_store, ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE)
	(ARRAY-DIMENSION, array_dimensions, ARRAY-IN-BOUNDS-P)
	(ARRAY-ROW-MAJOR-INDEX, elt_copy_T_Char, elt_copy_Char_Char, elt_fill)
	(elt_reverse, VECTOR-PUSH-EXTEND, ssstring_push_extend)
	(ssstring_append_extend, make_storagevector, initial_contents_aux)
	(ADJUST-ARRAY): Update.
	* encoding.d (n_char_to_string, n_char_to_string_, string_to_asciz_)
	(CONVERT-STRING-FROM-BYTES): Update.
	* pathname.d (common_case, test_optional_host, copy_upcase, all_digits)
	(PARSE-NAMESTRING, MAKE-PATHNAME, wildcard_match, use_default_dir):
	Update.
	* stream.d (read_char_array, rd_ch_array_str_in, wr_ch_array_str_out)
	(wr_ch_array_pphelp, rd_ch_array_buffered, lisp_completion)
	(rd_ch_terminal2, rd_ch_terminal3, wr_ch_array_terminal3): Update.
	* io.d (sstring_printf, test_potential_number_syntax, upcase_token)
	(case_convert_token, char_reader, radix_2, bit_vector_reader)
	(write_string, pphelp_string_width, klammer_zu, pr_enter_1): Update.
	* package.d (test_package_arg, DELETE-PACKAGE): Update.
	* debug.d (read_form): Update.
	* error.d (fehler_sstring_immutable): Define also if TYPECODES.
	* lisparit.d (read_rational, read_float, print_integer): Update.
	* foreign.d (convert_from_foreign_array_fill): Update.

2004-02-16  Bruno Haible  <bruno@clisp.org>

	Clean up instance forward pointers during garbage collection.
	* lispbibl.d (instflags_backpointer_B, instflags_relocated_B)
	(mark_inst_clean): New macros.
	* spvw_update.d (do_update_record): Obey also update_instance_unrealloc
	and update_in_unrealloc.
	* spvw_garcol.d (make_GCself): New macro.
	(set_GCself): Use it.
	(gc_sweep1_instance_forward, gc_sweep1_instance_target): New functions.
	(gc_sweep1_varobject_page): Use them for Instance objects.
	(gar_col_normal): Set update_instance_unrealloc to true while updating.
	(gar_col_compact, move_conses): Set update_instance_unrealloc to false
	while updating.
	* spvw_memfile.d (savemem, loadmem_from_handle): Set
	update_instance_unrealloc to false while updating.
	* predtype.d (enum_hs_realloc_instance): New enum value.
	(heap_statistics_mapper): Map forwarded instances to
	EXT::FORWARD-POINTER-INSTANCE.

2004-03-18  Sam Steingold  <sds@gnu.org>

	* io.d (circle_p): when SYS::*PRINT-CIRCLE-TABLE* is NIL, assume
	that the the object has no circularities and print it normally
	(pr_enter_2): bind SYS::*PRINT-CIRCLE-TABLE* to NIL when there
	are no circularities but *PRINT-READABLY* is non-NIL

2004-02-19  Sam Steingold  <sds@gnu.org>

	make package errors automatically recoverable
	* error.d (prepare_error): new function
	(fehler, check_value): use it
	(correctable_error): new function
	* lispbibl.d (correctable_error): prototype
	* constobj.d (query_string_*): removed
	* constsym.d (correctable_error, prompt_for_new_value, continue): added
	* package.d (query_user, prepare_query_user): removed
	(unintern, query_intern_conflict, export, use_package):
	use correctable_error() instead of query_user()
	(correct_packname): use correctable_error(): for NAME, CONTINUE
	means reuse existing package, for NICKNAME - discard the nickname
	(in_make_package): delete duplicate and NIL nicknames
	* condition.lisp (correctable-error): new function
	(check-value): bind *active-restarts* directly

2004-03-17  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): release 2.33

2004-03-17  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (src/autoconf/aclocal.m4): get all configure
	files together before running aclocal

2004-03-16  Sam Steingold  <sds@gnu.org>

	* makemake.in (full-check): fixed quoting

2004-03-16  Sam Steingold  <sds@gnu.org>

	* m4/ldap.m4, m4/tcpconn.m4: removed extra quotes ([[]] -> [])

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Treat alloca() the same way as lispbibl.d.
	Needed for OSF/1 5.1.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* stdint.h.in: Make it work with AIX 5 xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* m4/tcpconn.m4 (CL_TCPCONN): Include <netinet/in.h> before
	<netinet/tcp.h>. Needed for AIX 4.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* m4/stdbool.m4 (gt_STDBOOL_H): Also check whether 'bool' can be used
	in declarations. Needed for HP-UX 11.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* m4/install.m4 (CL_PROG_INSTALL): Don't use installbsd at all.
	Needed on AIX 4 and AIX 5.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* utils/modprep.lisp (print-tables-2): Use sizeof, not pointer
	subtraction, to compute the size of the subr table.
	* utils/modpreptest.out: Update.
	Needed on AIX with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Remove trailing comma in definition of
	condition_t. Needed on AIX with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* arilev0.d (divu_3216_1616_, divu_3216_3216_): Change from K&R C to
	ANSI C style function definition. Needed on AIX with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* stream.d (strm_unbuffered_extrafields_t, strm_buffered_extrafields_t):
	Change type of bitfields from 'bool' to 'int', because 'bool' can now
	be equivalent to 'long'. Needed on AIX 4 with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (NULL): Don't define on AIX.
	Needed on AIX with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* intparam.c (boolean_t): Define as a macro, not a typedef.
	* utils/ccmp2c.c (boolean_t): Likewise.
	Needed for AIX with xlc.

2004-03-16  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCC_UNUSABLE_CPP): Don't use gcc-cccp on AIX != 4.2.

2004-01-20  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler) [UNIX_LINUX ARM]: Update for
	Linux 2.4.x.

2004-03-15  Bruno Haible  <bruno@clisp.org>

	* po/Makefile.devel (MSGATTRIB): New variable.
	(clisplow_%.po): Use it instead of a sed command to remove the obsolete
	entries.

2004-03-15  Sam Steingold  <sds@gnu.org>

	* makemake.in (anymodule): pass CC to configure

2004-03-15  Bruno Haible  <bruno@clisp.org>

	* control.d (make_variable_frame): Make 2003-05-20 change work on
	platforms with symbolflags too.

2004-03-15  Bruno Haible  <bruno@clisp.org>

	* po/de.po: Fix 3 format strings that had the wrong number of ~.
	* po/fr.po: Fix 1 such format string.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* makemake.in (LIBICONV, LIBINTL, LIBSIGSEGV, LIBTERMCAP): On OSF/1,
	remove any -lc options. Needed for OSF/1 4.0d.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* makemake.in (distmakefile): Escape commas in $libs for use on the
	right-hand side of a sed expression.
	(distrib): Likewise for $full_libs.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* m4/ioctl.m4 (CL_IOCTL): Set the bytes_ready variable to 0 before
	calling ioctl FIONREAD.
	* stream.d (listen_handle): Likewise.
	Needed for Linux/ia64.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* makemake.in: For ia64 with gcc, reduce the optimization flags to -O
	in general and -O0 for eval.d. Needed on Linux/ia64.

2004-03-14  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): pre-release 2.32.94

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* po/de.po: Update translations.

2004-03-13  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* po/ru.po: Update translations.

2004-03-14  Bruno Haible  <bruno@clisp.org>

	* po/Makefile.devel (LISPSOURCES): Add loadform.

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* spvw_memfile.d (savemem, loadmem_from_handle): Remove calls to
	update_back_traces().

2004-03-13  Bruno Haible  <bruno@clisp.org>

	* pathname.d (DELETE-FILE): Fix stack layout when the function returns
	NIL.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* makemake.in (DRIVERFLAGS): New variable.
	(clisp, install-bin): Use it.
	Needed for HP-UX 10.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* makemake.in (testsuite, testsuite-all): Pass the SHELL variable to
	the suite/Makefile. Needed for HP-UX 10.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* modules/pcre/cpcre.c: Remove semicolon after DEFMODULE declaration.
	* modules/regexp/regexi.c: Likewise.
	* modules/dirkey/dirkey.c: Likewise.
	* modules/syscalls/calls.c: Likewise.
	* modules/berkeley-db/bdb.c: Likewise.

2004-03-12  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): pre-release 2.32.93

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* m4/ioctl.m4 (CL_IOCTL): Define IOCTL_ARGUMENT_T through
	AC_DEFINE_UNQUOTED, not AC_DEFINE. Fixes bug introduced on 2003-08-03
	(no ChangeLog entry). Needed on OSF/1 and AIX.

2004-03-12  Sam Steingold  <sds@gnu.org>

	* po/ru.po, po/clisplow_ru.po: Update translations.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (<libintl.h>, array_total_size, instanceof, schar)
	(seclass_object): Omit these when COMPILE_STANDALONE is defined.
	* makemake.in (txt, genclisph.o, clisp-test-lispbibl): Define
	COMPILE_STANDALONE.
	Needed to avoid dependencies to fehler_notreached() etc. with C
	compilers that don't have 'inline' (such as Solaris cc), and on
	NetBSD, BeOS, Woe32 with gettext >= 0.13 because <libintl.h> can
	remap printf() to libintl_printf().

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* modules/wildcard/Makefile.in (FNMATCH_H): New variable.
	(wildcard.o): Depend on it.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* stdbool.h.in: Define bool as 'long' in the normal case.
	Needed on BeOS and on Solaris with cc.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* makemake.in (LN_HARD): New variable.
	(locale): Use it.
	Needed for BeOS 5.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* unix.d (sock_write): Declare with 4 arguments, not 3.
	* unixaux.d (read_helper, write_helper): Coding style.
	(sock_write): Test for EWOULDBLOCK only if no_hang is true.
	Needed for BeOS 5.

2004-03-12  Bruno Haible  <bruno@clisp.org>

	* m4/install.m4 (CL_PROG_INSTALL): Use the absolute path of "cp", not
	just "cp". Needed on HP-UX 10 because autoconf does special magic to
	INSTALL at config.status time if its value is a relative pathnames.

2004-03-11  Bruno Haible  <bruno@clisp.org>

	* makemake.in (SHELL): On HP-UX, use bash instead of /bin/sh. Needed
	for HP-UX 10.

2004-03-11  Bruno Haible  <bruno@clisp.org>

	* makemake.in (cpu): Set to x86_64 if appropriate.
	(XCFLAGS): Add -O when the CPU is x86_64.

2004-03-11  Bruno Haible  <bruno@clisp.org>

	* configure: Configure libcharset with --disable-shared on all
	platforms, not only on cygwin and mingw. Needed because libtool's
	support for shared libraries is broken at least on HP-UX 10 with gcc.

2004-03-11  Bruno Haible  <bruno@clisp.org>

	* stdint.h.in: Make it work with HP-UX 10.20 cc.

2004-03-11  Bruno Haible  <bruno@clisp.org>

	* modules/syscalls/configure.in: Add a test whether f_fsid in
	'struct statvfs' is scalar.
	* modules/syscalls/calls.c (POSIX::STAT-VFS): Use HAVE_SCALAR_FSID.
	Needed for Linux/x86 with glibc <= 2.1.

2004-03-11  Sam Steingold  <sds@gnu.org>
	    Bruno Haible  <bruno@clisp.org>

	* configure.in: Check for <sys/statvfs.h> and <sys/statfs.h>.
	* unix.d: Prefer <sys/statvfs.h> over <sys/statfs.h>. Use <sys/mount.h>
	when neither of the two exists (e.g. on FreeBSD 4).
	* spvw_multimap.d (open_temp_fd): Use fstatvfs instead of fstatfs when
	possible.

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* configure: Use an if-then statement so that a "make check" failure
	in avcall or callback doesn't stop the configure file. Needed when
	using a *BSD /bin/sh.

2004-03-10  Sam Steingold  <sds@gnu.org>

	* configure.in (AC_INIT): pre-release 2.32.92

2004-03-10  Sam Steingold  <sds@gnu.org>

	* eval.d (interpret_bytecode) [__APPLE_CC__]: disabled FAST_DISPATCH
	* lispbibl.d, genclisph.d (nonreturning_function) [__APPLE_CC__]:
	disabled nonreturning_function()
	* lispbibl.d [__APPLE_CC__]: disabled STACK_register and SP_register

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* arisparc.d: Don't use the gas syntax for labels (1b, 1f). Needed
	for building with Solaris cc.

2004-03-10  Bruno Haible  <bruno@clisp.org>

	Don't use features unique to GCC. Needed for Solaris cc, HP-UX cc and
	IRIX cc.
	* stream.d (key_ascii, key_special): Use portable initializer syntax.
	(add_keybinding): Renamed from keybinding. Change argument type from
	key_event_t to 'const key_event_t *'.
	(keybinding): New macro.
	(make_keyboard_stream): Remove macros BIND_KEY, CHECK_CAP. Use macro
	keybinding instead.

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (src/autoconf/aclocal.m4): Append also mbstate_t.m4
	and fnmatch.m4, needed by modules/wildcard/configure.in.

2004-03-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS): add "-I." on all platforms

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* m4/filecharset.m4 (CL_FILECHARSET): Work around a problem with NFS
	on Solaris 7, where unlink()ed files reappear immediately under a
	different name and disappear only after 1. the process doing readdir()
	has exited and 2. waiting a second or two.

2004-03-10  Sam Steingold  <sds@gnu.org>

	* eval.d (get_closure): removed a spurious backslash which broke
	the build on Mac OS X

2004-03-10  Bruno Haible  <bruno@clisp.org>

	* modules/bindings/glibc/linux.lisp: Add a #include <signal.h>.
	Needed for building on glibc 2.1 systems.

2004-03-10  Sam Steingold  <sds@gnu.org>

	* po/Makefile.devel (LISPSOURCES): removed `threads' (mentioned
	twice), added `russian'
	* Makefile.devel (all): `check-configures', not `configures'
	* configure.in (AC_INIT): pre-release 2.32.91

2004-03-10  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c: include "clisp.h" before system
	includes because on BSDs and on glibc 2.1 the system includes
	may define (inline) functions and then we get an error "global
	register variable follows a function definition"

2004-03-09  Sam Steingold  <sds@gnu.org>

	* spvw_mmap.d, spvw_multimap.d: added a "\n" at the end of
	error messages

2004-03-09  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (EXCLUDE): exclude all doc/.cvsignore
	(CLISP): set to $(CURDIR)/build/clisp
	(src/uninames.h): use it

2004-03-09  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (potfiles): Set the CLISP environment variable for
	po/Makefile.devel.
	(src--distrib): Don't create clisp-$(VERSION)-potfiles.tar.bz2.
	* po/Makefile.devel (DSOURCES): Remove rexx.
	(LISPSOURCES): Add international, threads, deprecated. Remove rexx1.

2004-03-09  Sam Steingold  <sds@gnu.org>

	* format.lisp (format-logical-block, formatter): do not signal an
	error on unimplemented functionality

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

	* makemake.in (VERSION): compute reliably
	* configure.in (AC_INIT): pre-release 2.32.90
	(AC_COPYRIGHT): updated the year
	* Makefile.devel (htmldoc): make man pages also

2004-03-08  Bruno Haible  <bruno@clisp.org>

	* makemake.in (arimips.o): Don't use the assembler explicitly on Linux.
	Reported by Will Newton <will@misconception.org.uk>.

2004-03-08  Will Newton <will@misconception.org.uk>

	* ariarm.d (C, GLABEL, LABEL): Remove useless ## that triggers gcc 3
	warnings.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	* lfloat.d (LF_sqrt_LF): Simplify the last bug fix.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_structure_default): Change error message.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (namestring_correctly_parseable_p): Mark as GC-unsafe.
	* io.d (pr_orecord): Fix GC-safety bug.

2004-03-08  Bruno Haible  <bruno@clisp.org>

	* unix.d (NO_BLOCK_DECL, START_NO_BLOCK, END_NO_BLOCK): Prefer the
	SysV way over the old FIONBIO way. Needed for Linux/x86_64.

2004-03-08  Bruno Haible  <bruno@clisp.org>

	* lfloat.d (LF_LF_mal_LF): Fix the second underflow condition.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	* clos.lisp (find-method-combination): Renamed from
	method-combination-object.
	(method-combination): Add slots check-method-qualifiers,
	call-next-method-allowed.
	(method-combination STANDARD): Delay initialization until ready.
	Initialize the two new method-combination slots.
	(analyze-method-description): Return the qualifiers in the order they
	were given in the method description, not in reverse order. Fix bug
	introduced on 2004-02-09.
	(standard-method-combination-expander): Style improvement. Rename
	inner function apply-forms to forms-for-invoking-sequentially.
	(short-form-method-combination-check-method-qualifiers): New function.
	(standard-method-combination-call-next-method-allowed): New function.
	(check-method-qualifiers): New function.
	(invalid-method-qualifiers-error): New function.
	(std-add-method): Invoke check-method-qualifiers.
	(analyze-defgeneric): Return method combination as 3rd value, not as
	5th value. Better error message.
	(defgeneric, ensure-generic-function): Update.
	(make-generic-function): Set the method combination before adding the
	methods, not after.
	(do-defgeneric): Likewise. When changing the method combination of an
	existing generic function, check its methods' qualifiers against it.
	(make-generic-function-form): Update.
	(no-next-method): Invoke call-next-method-allowed and provide a more
	appropriate error message.
	(qualifiers-match-p): Fix typo in error message.
	(compute-method-partition-lambdas): Renamed from
	compute-method-partition-lambda. Provide a second lambda form as a
	second value. Use symbol CLOS::METHD instead of CL:METHOD.
	(define-method-combination): Initialize the two new method-combination
	slots. Don't use (COMPILE NIL ...) on code that comes partially from
	the user.
	(compute-effective-method-function): Style improvement.
	(compute-short-form-effective-method-form): Remove first argument.
	(short-form-method-combination-call-next-method-allowed): New function.
	(long-form-method-combination-call-next-method-allowed): New function.
	(method-combination AND APPEND ... PROGN +): Initialize the two new
	method-combination slots.

2004-03-08  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Use 'extern' instead of 'global'.
	(check_real): Don't declare as inline.
	* lisparit.d (check_real): Likewise.

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

	* pathname.d (use_default_dir): fixed a GC-safety bug

2004-03-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Make syscalls module available on win95/98/me (dynamic DLL loading)
	* modules/syscalls/calls.c (CreateHardLinkFuncType)
	(BackupWriteFuncType) [WIN32_NATIVE]: new types.
	(CreateHardLinkFunc, BackupWriteFunc, kernel32)	[WIN32_NATIVE]:
	new static variables.
	(OldHardLinkGuard, OldHardLink,	MkHardLink) [WIN32_NATIVE]: new
	functions.
	(module__syscalls__init_function_2): new function.
	(POSIX:STREAM-LOCK): Use GetFileSize instead of GetFileSizeEx.

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

	* makemake.in (DEVPREFIX): needed on both "win32gcc" and "cygwin"

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

	Change the maximum number of hash buckets of a symbol table
	from 2^16-1 to 2^24-1.
	* package.d (string_hashcode): Return a 24-bit integer.
	(newinsert): Take a 24-bit size as argument.
	(rehash_symtab): Bump the max to 2^24-1.
	(symtab_lookup, symtab_find, symtab_insert, symtab_delete):
	Don't cast the size to uintW.

2004-03-04  Bruno Haible  <bruno@clisp.org>
	    Sam Steingold  <sds@gnu.org>

	* package.d (string_hashcode): Don't ignore the 17th and following
	characters. Use + instead of |, to maintain statistical
	equidistribution.

2004-03-03  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (make-anode): avoid compiler warning

2004-03-02  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-NTH, c-SETNTH): when the index is not an
	integer, do not signal ERROR-OF-TYPE, use C-WARN instead

2004-03-03  Bruno Haible  <bruno@clisp.org>

	* foreign.d (ffi_identity): Pass and return an uintP, not just an
	uintL.

2004-03-02  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (function-signature): check *KNOWN-FUNCTIONS*
	before the function object
	(c-APPLY): check the local function signature before the global one

2004-03-02  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (make-anode, anodes-seclass-or, seclass-or-f)
	(seclass-or-anode): Define them also when loading the compiler.

2004-03-01  Bruno Haible  <bruno@clisp.org>

	* spvw_garcol.d (move_aligned_p1_p2): Don't use the *p++ form with
	GCC 3 any more.
	Reported by Will Newton <will@misconception.org.uk>.

2004-03-01  Bruno Haible  <bruno@clisp.org>

	* encoding.d (CONVERT-STRING-FROM-BYTES): Avoid gcc warning
	"initializer element is not computable at load time".

2004-03-01  Bruno Haible  <bruno@clisp.org>

	* stream.d: Avoid gcc warnings "ISO C does not allow extra `;' outside
	of a function".

2004-03-01  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (HAVE_SAVED_REGISTERS, struct registers): Define only if
	needed.

2004-02-29  Kaz Kylheku  <kaz@ashi.footprints.net>

	* backquote.lisp (bq-expand-list): If the backquote form is an
	improper list, treat the terminating atom as if it were
	backquoted.  (CLHS wants it to just be quoted).
	This allows for unquotes in the atom if it is a vector.

2004-02-29  Bruno Haible  <bruno@clisp.org>

	Major speedup of slot accessors generated by DEFCLASS in interpreted
	code.
	* clos.lisp (defclass): Force the accessor methods to be compiled.

2004-02-28  Bruno Haible  <bruno@clisp.org>

	* intdiv.d (I_I_I_mod_expt_I): Avoid endless loop when the exponent is
	= 0.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* error.d (check_pos_integer): Fix typo in error message.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* spvw.d (main): Combine the handling of the options -t TMPDIR and
	-traditional.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* unix.d: Include <sys/statfs.h>. Needed for MULTIMAP_MEMORY_VIA_FILE.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (_GNU_SOURCE): Define. Needed for MULTIMAP_MEMORY_VIA_SHM
	on Linux: glibc defines IPC_INFO in <sys/ipc.h> only if _GNU_SOURCE
	is defined.

2004-03-01  Bruno Haible  <bruno@clisp.org>

	* spvwtabs.d: Undefine open, truncate, ftruncate.
	* lisparit.d: Undefine truncate, ftruncate.
	Reported by Russell McManus <russell_mcmanus@yahoo.com>.

2004-02-29  Sam Steingold  <sds@gnu.org>
	    Bruno Haible  <bruno@clisp.org>

	* encoding.d (encoding_from_name): Call FIND-SYMBOL and remove most of
	the mapping table.

2004-02-29  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fixed cygwin build
	* pathname.d (LAUNCH): declared exit_code.

2004-02-27  Peter Seibel  <peter@javamonkey.com>

	* pprint.lisp (copy-pprint-dispatch): accept NIL argument

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* predtype.d (TYPE-OF): For vectors, return (SIMPLE-ARRAY NIL (n))
	or (VECTOR NIL n), depending on whether the vector is simple.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* time.d (get_real_time): Take care of the case when struct timeval is
	not the same thing as internal_time_t.

2004-02-27  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCFLAGS): Don't use -O2 with current gcc on x86_64.

2004-02-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (oint_type_*, oint_addr_*, oint_data_*) [AMD64]: Define
	appropriately for Linux/x86_64.
	(SINGLEMAP_MEMORY, MULTIMAP_MEMORY) [AMD64 Linux]: Don't define on this
	platform.
	* spvw.d (main): Limit the mmap()ed addresses to 36 bits.

2004-02-26  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Define oint and soint consistently with
	lispbibl.d.

2004-02-26  Bruno Haible  <bruno@clisp.org>

	* spvw_fault.d (xmmprotect): Fix declaration.

2004-02-26  Bruno Haible  <bruno@clisp.org>

	* flo_konv.d (DF_to_c_double): Use minus_bit instead of -bit. Avoids
	an "integer overflow" warning on 64-bit platforms.

2004-02-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (fake_gcv_object): Cast argument to oint. Avoids gcc
	warnings on 64-bit platforms when the argument is an uintL.
	* eval.d (nest_var): Cast count to oint, Avoids a gcc warning as well.

2004-02-25  Bruno Haible  <bruno@clisp.org>

	* i18n.d: Prefix some symbols with "i18n_".
	* subr.d: Update.
	* constsym.d: Update.

2004-02-25  Bruno Haible  <bruno@clisp.org>

	* stream.d: Remove syntactically invalid debugging statements.

2004-02-25  Bruno Haible  <bruno@clisp.org>

	* stdint.h.in: Test __sun, not __sun__, so that it also works with cc
	on Solaris.

2004-02-25  Bruno Haible  <bruno@clisp.org>

	* unix.d (msync, mmap, munmap): Comment out prototype. Needed to avoid
	prototype clash on Solaris 7.
	* spvw_mmap.d (munmap): Likewise.

2004-02-25  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCPPFLAGS): New variable.
	(XCFLAGS): Don't add the value of XCPPFLAGS here.
	(MODULE_CPPFLAGS_VAR): New variable.
	(all .c compilation rules): Use CPPFLAGS before CFLAGS.
	* clisp-link.in: Use CPPFLAGS variable that is read from 'makevars'.
	* modules/berkeley-db/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/berkeley-db/Makefile.in (CPPFLAGS): New variable.
	* modules/bindings/glibc/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/bindings/glibc/Makefile (CPPFLAGS): New variable.
	* modules/bindings/win32/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/bindings/win32/Makefile (CPPFLAGS): New variable.
	* modules/clx/mit-clx/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/clx/new-clx/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/clx/new-clx/Makefile.in (CPPFLAGS): New variable.
	* modules/dirkey/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/dirkey/Makefile.in (CPPFLAGS): New variable.
	* modules/fastcgi/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/fastcgi/Makefile.in (CPPFLAGS): New variable.
	* modules/netica/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/netica/Makefile (CPPFLAGS): New variable.
	* modules/oracle/link.sh: Pass CPPFLAGS to the Makefile.
	* modules/oracle/Makefile.in (CPPFLAGS): New variable.
	* modules/pcre/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/pcre/Makefile.in (CPPFLAGS): New variable.
	* modules/postgresql/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/postgresql/Makefile.in (CPPFLAGS): New variable.
	* modules/queens/Makefile (CPPFLAGS): New variable.
	* modules/regexp/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/regexp/Makefile.in (CPPFLAGS): New variable.
	* modules/syscalls/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/syscalls/Makefile.in (CPPFLAGS): New variable.
	* modules/wildcard/link.sh.in: Pass CPPFLAGS to the Makefile.
	* modules/wildcard/Makefile.in (CPPFLAGS): New variable.

2004-02-25  Sam Steingold  <sds@gnu.org>

	* m4/ldap.m4 (CL_LDAP): Solaris/cc requires <lber.h> before <ldap.h>
	* modules/dirkey/dirkey.c: ditto

2004-02-24  Sam Steingold  <sds@gnu.org>

	* modules/clx/mit-clx/input.lisp (declare-event): fixed a
	compilation error

2004-02-24  Bruno Haible  <bruno@clisp.org>

	* loadform.lisp (missing-load-form): Fix mistake in the last patch.

2004-02-24  Bruno Haible  <bruno@clisp.org>

	* m4/readline.m4 (CL_READLINE): Don't use AC_SEARCH_LIBS. Instead,
	use the value of LIBREADLINE, as determined by AC_LIB_LINKFLAGS_BODY.

2004-02-24  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (nil_vector_p): Change to match new nil-vector handling.
	(nil_vector_0_p): Remove macro.
	* charstrg.d (test_stringsymchar_arg): Use nil_vector_p.
	* predtype.d (elt_compare): Return false when comparing nil-vectors.
	(equal): Update nil-vector handling. A string and a nil-vector of the
	same length > 0 now compare as different.
	(equalp): Likewise.
	(TYPE-OF): For nil-vectors, return (VECTOR NIL n), not (ARRAY NIL (n)).
	* error.d (check_string): Update.

2004-02-24  Sam Steingold  <sds@gnu.org>

	* clos.lisp (std-remove-method): reset (STD-METHOD-GF OLD-METHOD)
	(std-add-method): signal an error when METHOD already belongs to
	a generic function

2004-02-23  Sam Steingold  <sds@gnu.org>

	* pathname.d (DIRECTORY): pathname argument is required
	* subr.d (directory): ditto
	* constobj.d (version): bumped

2004-02-20  Bruno Haible  <bruno@clisp.org>

	* time.d (encode_universal_time): Define only if TIME_RELATIVE.

2004-02-18  Bruno Haible  <bruno@clisp.org>

	* spvw_debug.d (find_pack, find_sym): Comment out unused and unportable
	functions.

2004-02-18  Bruno Haible  <bruno@clisp.org>

	* pathname.d (LAUNCH): Move declaration of exit_code so as to avoid
	gcc warning.

2004-02-18  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (main): Fix the declarations of cslen_ff, cstombs_ff.

2004-02-16  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (SYS::STRING-INFO): Make it work in TYPECODES mode too.
	* describe.lisp (describe-slotted-object for ARRAY): Describe the
	string element type as "UCS-4", not "32-bit".

2003-01-26  Bruno Haible  <bruno@clisp.org>

	Allow multibyte characters in pathnames.
	* pathname.d (legal_namebyte): New function.
	(legal_namechar): Invoke it.

2004-02-16  Bruno Haible  <bruno@clisp.org>

	* stream.d (stream_get_read_eval, stream_set_read_eval): Invoke
	instance_un_realloc.

2004-02-15  Bruno Haible  <bruno@clisp.org>

	Undo the 2001-11-27 patch, because it breaks in WIDE_SOFT mode with
	gcc-3.3.
	* array.d (SIMPLE_NREVERSE): Change to contain only the loop.
	(elt_nreverse): Handle the byte vectors correctly.

2004-02-15  Bruno Haible  <bruno@clisp.org>

	Make GENERATIONAL_GC work in WIDE mode again.
	* spvw_garcol.d (PRIoint): New macro.
	(gc_mark_stack): Pass to gc_mark the pointer without symbol flags.
	Undoes the bug introduced on 2002-08-03.

2004-02-15  Bruno Haible  <bruno@clisp.org>

	Enforce 8-byte alignment needed by GENERATIONAL_GC in WIDE_SOFT mode,
	working around a gcc-3.3 bug that is fixed in gcc-3.4.
	* lispbibl.d (INNARDS_OF_GCV_OBJECT): Add _attribute_aligned_object_.
	(_attribute_aligned_object_): Default to empty.
	(record_, srecord_, xrecord_, cons_, ratio_, complex_, symbol_)
	(svector_, siarray_, iarray_, Package, Hashtable, Readtable, Pathname)
	(Logpathname, Random_state, Byte, Fsubr, Loadtimeeval, Symbolmacro)
	(Macro, FunctionMacro, Encoding, Faddress, Fvariable, Ffunction)
	(Weakpointer, weakkvt_t, Finalizer, Socket_server, Yetanother, Stream)
	(Class, Instance, Closure, Iclosure, Cclosure, subr_t): Add
	_attribute_aligned_object_ to all fields of type gcv_object_t.
	* genclisph.d (main): Adjust accordingly.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	* lists153.tst: Reduce the memory size, so that it needs only 80 MB,
	not 160 MB, when using a WIDE memory model.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (Rectype_realloc_Instance): Remove enum value.
	(instancep, case_Rectype_Instance_above): Simplify accordingly.
	(instflags_forwarded_B): New macro.
	(instance_un_realloc, instance_valid_p): Add comments.
	(instance_update): Renamed from check_instance.
	* predtype.d: Update accordingly.
	* hashtabl.d: Likewise.
	* spvw_garcol.d (UNREALLOC): Test a recflags bit instead of testing
	for Rectype_realloc_Instance.
	* record.d (CLOS::%CHANGE-CLASS): Simplify.
	* io.d (pr_orecord): Remove handling of realloc_Instance type.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	Make arrays with element type NIL work also in the TYPECODES config.
	* lispbibl.d (Rectype_nilvector, Rectype_Snilvector): Remove enum
	items.
	(Atype_NIL, Array_type_snilvector): Define also for TYPECODES.
	(Array_type_nilvector): Remove macro.
	(general_vector_p): Exclude the vectors of element type NIL.
	(case_Rectype_Snilvector_above): Remove macro.
	(case_Rectype_nilvector_above): Remove macro.
	(if_recordp): Remove special casing of Rectype_nilvector,
	Rectype_Snilvector.
	(allocate_nilvector): Remove declaration.
	(fehler_retrieve): New declaration.
	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark, subst)
	(subst_circ_unmark): Remove handling of nilvector and snilvector types.
	* spvw_garcol.d (gc_mark): Likewise.
	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
	* spvw_objsize.d (objsize): Likewise.
	* spvw_update.d (update_varobject): Likewise.
	* spvw_typealloc.d (allocate_nilvector): Remove function.
	* array.d (eltype_code): Recognize also types equivalent to the
	NIL type, not only NIL itself.
	(iarray_displace, iarray_displace_check, array_displace_check):
	Handle the case when the storage vector is NIL.
	(fehler_retrieve): Change error message, ignore the storage vector.
	(fehler_store): Give a different error message if the storage
	vector is NIL.
	(array_atype): Recognize vectors of element type NIL. Drop
	Array_type_nilvector and Array_type_snilvector.
	(elt_reverse, elt_nreverse): Give an error for a vector of element
	type NIL.
	(make_storagevector): For eltype==Atype_NIL, just return NIL.
	(MAKE-ARRAY): For eltype==Atype_NIL, return a vector of type
	vector_type, not just the storage vector.
	* io.d (pr_vector): Don't call array_element_type if the array's
	element type is known to be NIL.
	(pr_array): Likewise.
	(pr_orecord): Remove handling of Rectype_nilvector, Rectype_Snilvector.
	* sequence.d (get_seq_type): Change recognition of arrays with
	element type NIL.
	* hashtabl.d (hashcode4_vector): Handle the case of a vector of
	element type NIL.
	* predtype.d (elt_compare): Handle the cases when dv1 or dv2 are
	storage vectors of element type NIL.
	(TYPE-OF): Handle vectors of element type NIL specially.
	(CLOS:CLASS-OF): Remove handling of nilvector and snilvector types.
	(heap_statistics_mapper): Likewise, but still distinguish general
	vectors and those of element type NIL.
	* type.lisp (upgraded-element-type): Recognize also types
	equivalent to the NIL type, not only NIL itself.
	* genclisph.d (general_vector_p): Exclude the vectors of element
	type NIL.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	* genclisph.d (make_system, vectorp): Make consistent with lispbibl.d.
	(simple_vector_p, simple_string_p, simple_bit_vector_p, bit_vector_p)
	(TheFpointer) [TYPECODES]: Fix compilation errors.
	(general_vector_p, arrayp): New exports.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (cclosure_flags) [TYPECODES]: Fix.

2004-02-14  Bruno Haible  <bruno@clisp.org>

	* loadform.lisp (simple-missing-load-form): New type.
	(signal-missing-load-form): Show the object as well.

2004-02-20  Sam Steingold  <sds@gnu.org>

	fixed file renaming on UNIX
	* pathname.d (rename_file): check that the old name exists and
	use rename_existing_file() instead of rename_file_to_nonexisting()
	(rename_file_to_nonexisting): removed

2004-02-20  Sam Steingold  <sds@gnu.org>

	* record.d (SLOT-BOUNDP): when slot is missing, return the
	boolean equivalent of the return value of SLOT-MISSING, per ANSI

2004-02-19  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 898561 ]: LOOP compilation warnings
	* loop.lisp (expand-loop): bind *helpvars* first thing (for 898561)
	When arithmetic iteration variable is NIL, use a GENSYM

2004-02-19  Sam Steingold  <sds@gnu.org>

	* pathname.d (PATHNAME-DEVICE): return :UNSPECIFIC for
	LOGICAL-PATHNAMEs per
	<http://www.lisp.org/HyperSpec/Body/sec_19-3-2-1.html>
	* constsym.d (Kunspecific): added

2004-02-19  Sam Steingold  <sds@gnu.org>

	* io.d (pr_orecord): signal PRINT-NOT-READABLE when *PRINT-READABLY*
	and *PRINT-PATHNAMES-ANSI* are non-NIL, but the namestring will
	not be parsed in to a similar pathname
	* pathname.d (fix_parse_namestring_dot_file): extracted from
	split_name_type
	(split_name_type): use fix_parse_namestring_dot_file()
	(namestring_correctly_parseable_p): check whether this pathname's
	namestring will be parsed into a similar pathname
	* lispbibl.d (namestring_correctly_parseable_p): prototype

2004-02-19  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (MAKE-HASH-TABLE): :REHASH-THRESHOLD is a (REAL 0 1)
	:REHASH-SIZE is a (OR (INTEGER 1 *) (FLOAT (1.0) *))
	* constobj.d (type_hashtable_rehash_threshold)
	(type_hashtable_rehash_size): ditto

2004-02-18  Sam Steingold  <sds@gnu.org>

	* array.d (ADJUST-ARRAY): :FILL-POINTER NIL means keep it as it was;
	use DIMENSION, not FILL-POINTER when copying data to the new vector

2004-02-18  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (read-from-file): FIND-PACKAGE is idempotent

2004-02-18  Sam Steingold  <sds@gnu.org>

	* pathname.d (DELETE-FILE): in ANSI mode, return T, as per ANSI spec

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

	permit lists of uint32 length, the old limit was FIXNUM
	* sequence.d (LENGTH): llength1() can return a BIGNUM
	* list.d (list_length): use UL_to_I() instead of fixnum()
	(MAKE-LIST): use I_to_UL(check_uint32())
	instead of posfixnum_to_L(check_posfixnum())
	(get_integer_truncate): new function
	(NTH, NTHCDR, LAST, MAKE-LIST, BUTLAST, NBUTLAST): use it
	instead of posfixnum_to_L(check_posfixnum())
	* error.d, lisparit.d (check_integer, check_pos_integer):
	moved from LISPARIT to ERROR
	* lispbibl.d (check_integer, check_pos_integer): prototype

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

	* pathname.d (version_diff): use version object (OR NULL
	INTEGER (MEMBER :WILD :NEWEST)) without converting it to string
	(translate_version): expect version to be a version object

2004-02-16  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (write-sequence): make sure to return only one value
	when writing bytes - for consistency and ANSI compliance

2004-02-16  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (nil_vector_p, nil_vector_0_p): new macros
	* error.d (check_string): use them
	* predtype.d (equal, equalp): handle nilvector properly:
	since NIL is a subtype of CHARACTER, (VECTOR NIL) is a STRING

2004-02-16  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-STRING-OUTPUT-STREAM): :ELEMENT-TYPE NIL means
	make a stream based on (VECTOR NIL)
	(get_output_stream_string): check that string is not (VECTOR NIL)
	(BUILT-IN-STREAM-ELEMENT-TYPE): return NIL
	for (MAKE-STRING-OUTPUT-STREAM :ELEMENT-TYPE NIL)
	(fehler_write): replaces fehler_wr_char() & fehler_wr_integer()
	(wr_ch_forbidden, wr_ch_array_forbidden): for STREAM-ELEMENT-TYPE NIL
	* macros2.lisp (with-output-to-string):
	default :ELEMENT-TYPE to CHARACTER

2004-02-16  Sam Steingold  <sds@gnu.org>

	* stream.d (combine_stream_element_types): new function
	(BUILT-IN-STREAM-ELEMENT-TYPE): use it to handle 2way/echo & concat

2004-02-15  Sam Steingold  <sds@gnu.org>

	FILE-POSITION does not require its 1st argument to be a FILE-STREAM
	* stream.d (String-Input-Stream): new slot strm_str_in_begindex
	(MAKE-STRING-INPUT-STREAM): init it (and allocate space for it!)
	(logical_position_file_start, logical_position_file)
	(logical_position_file_end): return the new offset
	(FILE-POSITION): handle i/o STRING-STREAMs and STRING-PUSH-STREAM
	call GRAY:STREAM-POSITION for all other objects
	* gray.lisp (stream-position): new generic function
	* constsym.d (stream_position): added

2004-02-15  Sam Steingold  <sds@gnu.org>

	* stream.d (GET-OUTPUT-STREAM-STRING, STRING-INPUT-STREAM-INDEX):
	signal TYPE-ERROR instead of ERROR

2004-02-13  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): allow slots named NIL by using
	DS-SLOT-VAR to check that the slot does not refer to the
	structure name
	* io.d (pr_structure_default): ditto

2004-02-13  Sam Steingold  <sds@gnu.org>

	due to the rule 1 in
	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
	for all "built-in types" Y as listed in table 4-2 in
	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
	if X is a FIXNUM or a BIGNUM and Y is UNSIGNED-BYTE, this means
	that TYPE-OF must distinguish between positive and negative integers
	* constobj.d (type_negfixnum, type_posbignum, type_negbignum): added
	* predtype.d (TYPE-OF): return them for FIXNUMs and BIGNUMs

2004-02-13  Sam Steingold  <sds@gnu.org>

	* stream.d (check_open_file_stream): handle BROADCAST-STREAMs
	(FILE-POSITION, FILE-LENGTH, FILE-STRING-LENGTH): ditto

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

	ensure that DEFMETHOD returns what is actually saved into GF
	* clos.lisp (standard-method): do not create a copier
	(std-add-method): do not copy the method

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

	ANSI compliance issues
	* charstrg.d (test_stringsymchar_arg): (VECTOR NIL) is a string,
	so #A(NIL (0)) is acceptable instead of ""
	* error.d (check_string): ditto
	* stream.d (input_stream_p, output_stream_p): for
	SYNONYM-STREAMs, return the value for the underlying stream
	(STREAM-EXTERNAL-FORMAT): handle empty BROADCAST-STREAMs
	(make_buffered_stream): :PROBE streams are closed right away
	* macros2.lisp (with-output-to-string): wrap declarations properly

2004-02-11  Sam Steingold  <sds@gnu.org>

	* makemake.in: fixed cygwin package creation
	(VERSION, CLISP_VERSION, CLISP_RELEASE): new make variables
	(setup.hint): mention $(MODULES) and allow testing releases

2004-02-11  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c: <pcre.h> may be actually <pcre/pcre.h>
	* modules/berkeley-db/dbi.lisp (with-open-db):
	do not pass environment to PARSE-BODY

2004-02-11  Sam Steingold  <sds@gnu.org>

	* predtype.d (TYPE-OF): handle (VECTOR NIL)

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

	* lfloat.d (LF_sqrt_LF): fixed a bug with large uexp whereby SQRT
	of MOST-POSITIVE-LONG-FLOAT was less than 1

2004-02-09  James Anderson  <james.anderson@setf.de>
	    Sam Steingold  <sds@gnu.org>

	* clos.lisp (analyze-method-description): always set
	:WANTS-NEXT-METHOD-P to T because here there is no way to figure
	out whether it will be actually needed because of METHOD-COMBINATION,
	and STD-ADD-METHOD will reset it if necessary anyway
	(standard-method-combination-expander): check for
	WANTS-NEXT-METHOD-P also in BEFORE-METHODS (EF-2) and
	AFTER-METHODS (EF-3)

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

	* misc.d (ARGV): return the vector of command-line args to runtime
	* constsym.d, subr.d, constobj.d (argv): added
	* spvw.d (main): init O(argv)
	* init.lisp (ARGV): export

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

	fixed bug #[ 890138 ]: 0 distance jump as 2 bytes => segfault
	* compiler.lisp (assemble-LAP): make sure that a jump of 0
	distance is not encoded with 2 bytes (otherwise 128 0 is
	treated as a 6 byte label)

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

	allow current directory to be on a remote host
	* pathname.d (default_drive): return 0 when GetCurrentDirectory()
	returns a network (UNC) path
	(default_directory_of): allow drive=0 (return GetCurrentDirectory())
	(use_default_dir): allow UNC default path
	(CD): allow network argument
	(init_pathnames): set O(default_drive) to NIL when running drive=0

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

	* charstrg.d (string_concat): do not modify argptr when arg is
	not a string

2004-02-03  Bruno Haible  <bruno@clisp.org>

	* io.d (JUSTIFY_END_FILL): Renamed from JUSTIFY_END_ENG.
	(JUSTIFY_END_LINEAR): Renamed from JUSTIFY_END_WEIT.
	(justify_end_fill): Renamed from justify_end_eng.
	(justify_end_linear): Renamed from justify_end_weit.
	All callers changed.

2004-02-03  James Anderson  <james.anderson@setf.de>

	* clos.lisp: some fixes for DEFINE-METHOD-COMBINATION

2004-02-02  Bruno Haible  <bruno@clisp.org>

	* io.d (pr_array_recursion): Add an rdepth argument. Use dense output
	if rdepth==1.
	(pr_array): Pass the rank as initial rdepth.

2004-02-02  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (%/configure.in, %/config.h.in): Restrict the rule
	to not match files in ffcall and libcharset.
	(ffcall/vacall/config.h.in, ffcall/trampoline/config.h.in)
	(ffcall/callback/vacall_r/vacall_r.h.in)
	(ffcall/callback/trampoline_r/config.h.in): Remove empty rules.

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

	fixed bug #[ 889037 ]: Incorrect value returned by compiled function
	* compiler.lisp (traverse-anode): UNWIND-PROTECT-OPEN discards
	*CURRENT-VALUE* and *CURRENT-VARS*, just like UNWIND-PROTECT-CLOSE

2004-02-01  James Anderson  <james.anderson@setf.de>
	    Sam Steingold  <sds@gnu.org>

	DEFINE-METHOD-COMBINATION is now implemented
	* clos.lisp: merged in James' patch
	* init.lisp: export the symbols
	* constobj.d (version): bumped because of changed
	signature of DO-DEFMETHOD
	* record.d (parse_seclass): removed legacy code

2004-02-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (my_malloc): malloc() with error check
	* lispbibl.d, genclisph.d (my_malloc): export
	* foreign.d (xmalloc): removed, use my_malloc() instead
	* modules/clx/new-clx/clx.f, modules/regexp/regexi.c: ditto

2004-01-31  Sam Steingold  <sds@gnu.org>

	* pathname.d (looks_logical_p): return true only if all the
	characters in the string are legal logical path elements

2004-01-29  Sam Steingold  <sds@gnu.org>

	some fixes for Garnet
	* modules/clx/new-clx/clx.f (get_font_info_and_display): fixed
	arguments passed to SLOT-VALUE
	(general_plist_writer, SET-GCONTEXT-DASHES): fixed arguments
	passed to SET-SLOT-VALUE
	(SET-GCONTEXT-DASHES): use REPLACE instead of an explicit loop
	(BELL): the second argument is optional

2004-01-29  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 874859 ]: incorrect stack cleanup
	* compiler.lisp (simplify): fixed a typo in SKIPSP+SKIPI=>SKIPI

2004-01-27  Sam Steingold  <sds@gnu.org>

	* modules/fastcgi/fastcgi.lisp: add :FASTCGI to *FEATURES*
	* modules/oracle/oracle.lisp: add :ORACLE to *FEATURES*
	* modules/pcre/pcre.lisp: add :PCRE to *FEATURES*
	* modules/postgresql/postgresql.lisp: add :POSTGRESQL to *FEATURES*
	* modules/regexp/regexp.lisp: add :REGEXP to *FEATURES*

2004-01-25  Sam Steingold  <sds@gnu.org>

	new function (MOD-EXPT x y z) = (MOD (EXPT x y) z)
	* lisparit.d (check_pos_integer): new function
	(ISQRT): use it instead of check_integer()
	(MOD-EXPT): call I_I_I_mod_expt_I()
	* intsqrt.d (I_isqrt_I): assume non-negative argument
	* intdiv.d (I_I_I_mod_expt_I): implemented
	* init.lisp (MOD-EXPT): exported
	* constsym.d, subr.d (mod_expt): added

2004-01-25  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_ptr_object_and_display)
	(get_font_info_and_display, DISCARD-FONT-INFO): use check_fpointer()
	(OPEN-DISPLAY): use fehler_key_odd()
	(SCREEN-BACKING-STORES): use VALUES1
	(error_required_keywords, my_malloc, error_no_such_color):
	new functions
	(CREATE-WINDOW, CREATE-CURSOR, CREATE-GLYPH-CURSOR):
	use error_required_keywords()
	(handle_image_z, PUT-IMAGE, SET-FONT-PATH): use my_malloc()
	(ALLOC-COLOR, LOOKUP-COLOR): use error_no_such_color()
	(READ-FILE-TO-PIXMAP): signal an error on failure instead of
	returning error code
	* modules/clx/new-clx/demos/clx-demos.lisp: supply pathname to REQUIRE
	do not SHADOW USAGE

2004-01-25  Bruno Haible  <bruno@clisp.org>

	* m4/mprotect.m4: Add back the getpagesize() prototype.
	It is determined by getpagesize.m4.

2004-01-23  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_font_info_and_display):
	canonicalize encoding by inserting "-" after "ISO" when necessary
	Suggested by Pascal J.Bourguignon <pjb@informatimago.com>

2004-01-20  Bruno Haible  <bruno@clisp.org>

	* po/clisp-xgettext (d-parse-string): Recognize \n as newline
	inside a C string.

2004-01-20  Bruno Haible  <bruno@clisp.org>

	Remove support for MSDOS and OS/2, using EMX.
	* os2: Remove directory.
	* msdos.d: Remove file.
	* cfgdos.lisp: Remove file.
	* lispbibl.d, constobj.d, constsym.d, subr.d, pseudofun.d:
	* genclisph.d, spvw.d, spvw_language.d, spvw_memfile.d:
	* spvw_sigint.d, io.d, stream.d, pathname.d, predtype.d:
	* charstrg.d, hashtabl.d, error.d, errunix.d, encoding.d, time.d:
	* lisparit.d, unixaux.d, init.lisp, defs1.lisp, format.lisp:
	* macros2.lisp, complete.lisp, xcharin.lisp, keyboard.lisp:
	* edit.lisp, runprog.lisp, makemake.in, Makefile.devel:
	* po/Makefile.devel: Remove MSDOS and OS/2 support.

2004-01-19  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/posix.lisp, modules/syscalls/calls.c (confstr):
	new exported system call

2004-01-18  Bruno Haible  <bruno@clisp.org>

	* loadform.lisp (missing-load-form): New type.
	(signal-missing-load-form): New function.
	(make-load-form): Add the methods that must exist according to CLHS.
	(make-init-form): Ignore only errors coming from make-load-form,
	not just any method-call-error. Don't warn for other errors, instead
	pass them on to the caller.

2004-01-18  Bruno Haible  <bruno@clisp.org>

	Remove support for Borland C compiler on Woe32.
	* win32bc: Remove directory.
	* Makefile.devel, makemake.in: Remove Borland C support.

2004-01-16  Sam Steingold  <sds@gnu.org>

	* defmacro.lisp (kwd-arg-form, analyze-key): do not evaluate the key
	Reported by Frode Vatvedt Fjeld <frodef@cs.uit.no>

2004-01-16  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE-COMPILE): do not allocate a foreign
	pointer for NULL study
	(PCRE-EXEC): pass subject_bytelen instead of subject_len

2004-01-15  Bruno Haible  <bruno@clisp.org>

	Remove support for Amiga running AmigaOS.
	* amiga: Remove directory.
	* amiga.d: Remove file.
	* amiga2.d: Remove file.
	* amigaaux.d: Remove file.
	* erramiga.d: Remove file.
	* rexx.d: Remove file.
	* rexx1.lisp: Remove file.
	* cfgamiga.lisp: Remove file.
	* lispbibl.d, genclisph.d, constobj.d, constsym.d, subr.d:
	* pseudofun.d, spvw.d, spvw_allocate.d, spvw_garcol.d:
	* spvw_language.d, spvw_memfile.d, stream.d, pathname.d, charstrg.d:
	* hashtabl.d, debug.d, error.d, time.d, misc.d, predtype.d:
	* lisparit.d, foreign.d, affi.d, init.lisp, defs1.lisp:
	* describe.lisp, edit.lisp, type.lisp, keyboard.lisp, xcharin.lisp:
	* screen.lisp, foreign1.lisp, affi1.lisp, makemake.in:
	* Makefile.devel, po/Makefile.devel, modules/syscalls/calls.c:
	* os2/delx.cmd: Remove AmigaOS support.

2004-01-15  Sam Steingold  <sds@gnu.org>

	* modules/pcre/cpcre.c (PCRE-COMPILE, PCRE-EXEC):
	do not accept :UTF8 & :NO-UTF8-CHECK, always do Unicode

2004-01-15  Sam Steingold  <sds@gnu.org>

	* encoding.d (encoding_from_name): issue a warning (using libc
	stdio because Lisp i/o is not yet available) if the requested
	encoding cannot be found
	default to ASCII for *FOREIGN-ENCODING* and UTF-8 for others
	(init_dependent_encodings): pass `context' to encoding_from_name()
	(canonicalize_encoding): uppercase the encoding name

2004-01-15  Bruno Haible  <bruno@clisp.org>

	* encoding.d (uni16_wcslen, nls_wcslen, nls_asciiext_wcslen): Signal
	an error when seeing an unencodable character and errors should be
	signalled.

2004-01-15  Bruno Haible  <bruno@clisp.org>

	Remove support for Convex.
	* lispbibl.d, eval.d, aridecl.d, unix.d, unixaux.d, genclisph.d: Remove
	Convex support.

2004-01-12  Bruno Haible  <bruno@clisp.org>

	Remove support for Acorn RISCOS.
	* acorn: Remove directory.
	* acorn.d: Remove file.
	* acornaux.d: Remove file.
	* acornsig.d: Remove file.
	* cfgacorn.lisp: Remove file.
	* lispbibl.d, constobj.d, constsym.d, subr.d, subrkw.d:
	* pseudofun.d, spvw.d, spvw_garcol.d, spvw_memfile.d:
	* spvw_sigint.d, io.d, stream.d, pathname.d, record.d, time.d:
	* lisparit.d, aridecl.d, error.d, unixaux.d, genclisph.d:
	* init.lisp, defs1.lisp, edit.lisp, keyboard.lisp, makemake.in:
	* po/Makefile.devel, Makefile.devel, modules/syscalls/calls.c:
	Remove RISCOS support.

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

	* describe.lisp (*apropos-matcher*): new user variable
	(*apropos-do-more*): exported
	(apropos-list): use it
	* modules/wildcard/wildcard.lisp (wildcard-matcher): new function
	* modules/regexp/regexp.lisp (regexp-matcher): new function
	* modules/regexp/regexi.c (regexp-exec): new option :BOOLEAN
	* modules/pcre/pcre.lisp (pcre-matcher): new function
	* modules/pcre/cpcre.c (pcre-exec): new option :BOOLEAN

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

	* eval.d (TRACE_CALL, ERROR): new debugging macros
	(funcall_iclosure, apply_subr, apply_closure, funcall_subr)
	(funcall_closure): use TRACE_CALL() instead of trace_call()
	(interpret_bytecode_): ditto
	use ERROR instead of goto to find out where the error originated from

2004-01-11  Bruno Haible  <bruno@clisp.org>

	* modules/wildcard/fnmatch.h: Remove file.
	* modules/wildcard/fnmatch_.h: New file, from gnulib.
	* modules/wildcard/fnmatch.c: Update from gnulib.
	* modules/wildcard/fnmatch_loop.c: New file, from gnulib.
	* modules/wildcard/configure.in: Use the macro from gnulib.
	* modules/wildcard/Makefile.in (REGEX_O, REGEX_H): Remove variables.
	(FNMATCH_O): New variable.
	(fnmatch.o): Update.
	(fnmatch.h): New rule.
	(clean): Update.
	* m4/fnmatch.m4: New file, from gnulib.
	* m4/mbstate_t.m4: New file, from gnulib.

	* eval.d (parse_dd): Simplify code.
	(interpret_bytecode_): Restore the protection against
	-fomit-frame-pointer.

	* _clisp.1: Remove mention of option -verbose.

	* _clisp.html: Resynchronize with _clisp.1.

	* _distmakefile (uninstall): Make it work on non-Linux systems as well.

	* amiga.d (read_helper, write_helper): Fix arg name.
	* amigaaux.d (read_helper): Likewise.
	* acorn.d (read_helper): Likewise.

	* lispbibl.d (read_byte_array, write_byte_array): Fix description of
	no_hang argument.
	* stream.d (read_byte_array, write_byte_array): Likewise.
	(wr_by_array_synonym, wr_by_array_broad, wr_by_array_twoway): Use uintL
	instead of int.

	* makemake.in: Remove useless trailing semicolons.

	* clos.lisp (analyze-method-description, analyze-defgeneric)
	(make-generic-function-form, analyze-generic-fundefs): Remove
	environment argument.
	(defmethod, defgeneric, generic-flet, generic-labels): Update.
	* compiler.lisp: Update clos::make-generic-function-form calls.

2004-01-11  Sam Steingold  <sds@gnu.org>

	* record.d (parse_seclass): be backward compatible (wrt 2004-01-09
	SECLASS change)
	* constobj.d (version): do not change now!
	remember to remove the backward compatibility code above
	when `version' changes!

2004-01-10  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (check_structure): added a prototype
	(allocate_weakpointer): removed unused function
	* record.d (allocate_weakpointer): ditto
	(check_structure): new function
	(COPY-STRUCTURE): use it
	(check_generic_function): new function
	(%COPY-GENERIC-FUNCTION, GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION):
	use it
	(MACRO-EXPANDER): recoverable type error
	(check_function_macro): new function
	(FUNCTION-MACRO-FUNCTION, FUNCTION-MACRO-EXPANDER): use it
	* sequence.d (fehler_sequence): new function
	(get_valid_seq_type, LENGTH): use it
	* io.d (PRINT-STRUCTURE): use check_structure()
	* stream.d (test_socket_server): error message unification

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

	* compiler.lisp (c-form-table): NTH & SYSTEM::%SETNTH
	are now handled by c-NTH & c-SETNTH, respectively,
	for the sake of (defstruct (foo (:type list))) accessors
	(c-NTH, c-SETNTH): optimise NTH & (SETF NTH) to FIRST...TENTH

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

	fixed bug #[ 866282 ]: progv binding not handled properly in compiler
	* compiler.lisp (seclass): a structure of type LIST
	(*seclass-dirty*, *seclass-read*): new constant
	(*seclass-foldable*): renamed from *FOLDABLE-SECLASS*
	(seclass-or, seclass-without): updated for new SECLASS
	(anode-side-effect-free-p): new function
	(c-form, unmodify-unused-var, checking-movable-var-list)
	(c-bind-with-svars, c-UNWIND-PROTECT, c-MULTIPLE-VALUE-PROG1): use it
	(c-VARSET): set SECLASS-USES-BINDING for SPECIAL variables
	(c-PROGV, c-parallel-bind-movable-var-anode):
	check both both USES and USES-BINDING
	(c-FUNCTION, c-HANDLER-BIND): use *SECLASS-READ* instead of a literal
	(f-side-effect, c-unlist, c-DEFUN, c-RETURN-FROM, c-GO):
	use *SECLASS-DIRTY* instead of a literal
	* clos.lisp (%make-gf): ditto
	* record.d (parse_seclass): updated
	* constobj.d (seclass_no_se, seclass_read, seclass_write)
	(seclass_default): updated

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

	* list.d (fehler_nth, fehler_butlast): removed
	(NTH, NTHCDR, LAST, MAKE-LIST, BUTLAST, NBUTLAST):
	use check_posfixnum() instead

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

	fixed bug #[ 873204 ]: infinite recursion with pprint-logical-block
	* io.d (pretty_print_call): avoid an infinite recursion by
	cheking *PRIN-PPRINTER* before calling PPRINT-DISPATCH

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

	moved *LOAD-FORMS* to C to speed up instance output
	* constsym.d (*LOAD-FORMS*): added
	* io.d (pr_instance): check *LOAD-FORMS* before calling MAKE-INIT-FORM
	* spvw.d (init_symbol_values): init *LOAD-FORMS*

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

	made MAKE-INIT-FORM more robust
	* condition.lisp (method-call-error, method-call-type-error):
	new conditions
	* clos.lisp (no-applicable-method, no-primary-method)
	(no-next-method): signal METHOD-CALL-ERROR or METHOD-CALL-TYPE-ERROR
	* init.lisp (method-call-error, method-call-type-error)
	(method-call-error-generic-function, method-call-error-method)
	(method-call-error-argument-list): export new CLOS extras
	* loadform.lisp (make-init-form): use METHOD-CALL-ERROR to
	determine that the error comes from MAKE-LOAD-FORM
	Reported by Kaz Kylheku <kaz@ashi.footprints.net>

2004-01-08  Stanislav Tsekhmistroh  <tcss@kometa.dp.ua>
	    Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Support (run-program ... :wait nil) on win32 by means of "start"
	* runprog.lisp (run-shell-command) [WIN32]: support :wait.

2004-01-07  Bruno Haible  <bruno@clisp.org>

	* misc.d (clisp_setenv) [WIN32_NATIVE]: Call SetEnvironmentVariable.

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

	* modules/regexp/regexi.c (REGEXP): use alloca() instead of calloc();
	return NIL for non-existent matches (instead of an invalid MATCH)
	Reported by Wolfgang Jenkner <wjenkner@inode.at>

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

	* defs2.lisp (with-standard-io-syntax): bind *PRINT-SYMBOLS-LONG*
	and COMPILER::*LOAD-FORMS*

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

	Assume that <sys/mman.h> declares mmap() in a POSIX compliant way.
	* m4/mmap.m4 (CL_MMAP): Don't define RETMMAPTYPE, MMAP_ADDR_T,
	MMAP_SIZE_T.
	* unix.d (MMAP_ADDR_T, MMAP_SIZE_T, RETMMAPTYPE): Remove macros. Use
	void* and size_t instead.
	* win32.d (MMAP_ADDR_T, MMAP_SIZE_T, RETMMAPTYPE): Remove macros.
	* unixaux.d (fixed_mmap, mprotect): Use void* and size_t instead of
	MMAP_ADDR_T and MMAP_SIZE_T.
	* spvw_fault.d (handle_read_fault, handle_readwrite_fault)
	(handle_fault, handle_fault_range, xmprotect): Likewise.
	* spvw_garcol.d (gar_col_normal): Likewise.
	* spvw_mmap.d (munmap, mprotect, mmap_zeromap, mmap_filemap): Likewise.
	* spvw_multimap.d (msync_mmap_intervals, fdmap): Likewise.

2004-01-04  Sam Steingold  <sds@gnu.org>

	* makemake.in (full-check): new target: call RUN-SOME-TESTS in
	tests/tests.lisp on $(MODULES)/*.tst

2004-01-02  Sam Steingold  <sds@gnu.org>

	* makemake.in (cygwin-src) [cygwin]: cygwin source package

2004-01-02  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 869187 ]: change-class problems
	* record.d (%CHANGE-CLASS): un-realloc instance & new-class

2004-01-01  Sam Steingold  <sds@gnu.org>

	* modules/berkeley-db/bdb.c: include windows.h only on windows
	Reported by Aurelio Bignoli <a.bignoli@computer.org>

2004-01-01  Sam Steingold  <sds@gnu.org>

	* install.bat: fixed bug #[ 868881 ]: replaced `|' with `I'
	and `/' with `\' for the sake of Windows XP

2003-12-31  Sam Steingold  <sds@gnu.org>

	* makemake.in (uninstall-bin) [CYGWIN]: remove clisp.README & clisp.exe
	(testsuite-all): `clean complete compare', not just `complete'

2003-12-29  Sam Steingold  <sds@gnu.org>

	* version.h: 2.32 is released

2003-12-30  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (seclass-foldable-p, seclass-uses, seclass-modifies):
	New functions.
	(*foldable-seclass*, *pure-seclass*): New variables.
	(make-seclass): New function.
	Use them throughout the compiler instead of null, car, cdr, cons.

2003-12-27  Bruno Haible  <bruno@clisp.org>

	* spvw_calendar.c: New file.
	* spvw.d: Include spvw_calendar.c.
	(print_banner): Light the candles.
	* makemake.in: Emit rule for spvw_calendar.c.

2003-12-27  Bruno Haible  <bruno@clisp.org>

	* m4/mmap.m4: Treat i786 CPUs like i686.
	* asmi386.hh: Likewise.
	* makemake.in: Likewise.

2003-12-26  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 864479 ]: GO from deep nesting does not work
	* compiler.lisp (note-far-used-tagbody): propagate tagbody+tag
	along the stack, just link in the 2002-05-03 patch (bug #[ 550864 ]),
	and use PUSHNEW instead of PUSH to avoid duplication
	(c-TAGBODY): check that the index in tagbody+tag is valid

2003-12-23  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 864845 ]: pathname parsing error: "//"
	* pathname.d (simplify_directory): remove "", i.e., treat "//" as "/"

2003-12-22  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-MULTIPLE-VALUE-BIND): use REVAPPEND
	instead of APPEND+REVERSE
	(c-WITHOUT-PACKAGE-LOCK): use NCONC instead of APPEND
	on a fresh list produced by MAPCAR

2003-12-21  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 864220 ]: integer tags cannot be compiled
	* compiler.lisp (c-TAGBODY): put integer tags into Car(tagbody_cons);
	replace GENSYMs with NILs so that *.FAS will not contain GENSYMs

2003-12-21  Sam Steingold  <sds@gnu.org>

	* spvw.d (--version): print SOFTWARE-TYPE, SOFTWARE-VERSION,
	MACHINE-TYPE, MACHINE-VERSION, MACHINE-INSTANCE
	(print_license): removed dead link
	do not use NLstring

2003-12-21  Sam Steingold  <sds@gnu.org>

	* genclisph.d (test): include <stdio.h> before <clisp.h> because
	the latter declares a global register variable and the former may
	define a function (e.g., on FreeBSD)
	* modules/regexp/regexi.c: ditto

2003-12-20  Sam Steingold  <sds@gnu.org>

	Dropped -fomit-frame-pointer: it buys nothing on today's x86
	processors, and it buys nothing anyway on processors which are not
	as register-starved as the x86 (Bruno)
	* eval.d (interpret_bytecode_) [GNU/FAST_SP]: no need for alloca()
	* makemake.in (XCFLAGS): never use -fomit-frame-pointer

2003-12-20  Sam Steingold  <sds@gnu.org>

	the initial verbosity level is controlled by the pair
	of mutually cancelling options -q/-v - see manual
	* spvw.d (argv_quiet): replaced with argv_verbose

2003-12-19  Bruno Haible  <bruno@clisp.org>

	* spvw_mmap.d (mprotect): Remove declaration. Needed for FreeBSD 5.

2003-12-19  Bruno Haible  <bruno@clisp.org>

	* clisp-link.in: Make 2001-10-23 patch more portable: Avoid repeated
	backslashes inside backquotes.

2003-12-19  Sam Steingold  <sds@gnu.org>

	* trace.lisp (trace1): evaluate :STEP-IF at run time, not at
	compile time, so that STEP is invoked when :STEP-IF evaluates to
	non-NIL, not just when it is present

2003-12-19  Sam Steingold  <sds@gnu.org>

	repeated "-q" sets *LOAD-VERBOSE* and *COMPILE-VERBOSE* to NIL
	* constsym.d (*COMPILE-VERBOSE*): added
	* spvw.d (argv_quiet): integer, not boolean
	(main): repeated "-q" means argv_quiet++

2003-12-19  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 842910 ]: Compiler bug in OPTIMIZE-LABEL
	* compiler.lisp (optimize-label): ignore unused labels
	(optimize-short): do not LABEL-SUBST to unused labels
	(optimize-value): do not discard references to an impossible
	label when it is the same as the definite label

2003-12-18  Sam Steingold  <sds@gnu.org>

	* spvw.d (appease_form): new function
	(main): use it
	(-repl): do not concatenate the string input stream from -x with
	the stdin - this causes a missing prompt problem; bind
	*standard-input* to the string input stream instead and run two
	separate REPLs for -x and for the user interaction via stdio
	* reploop.lisp (main-loop): exit only when EOF happened on an
	interactive stream; otherwise (e.g., the -x string input stream),
	just return for the next REPL to take over

2003-12-18  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 842913 ]: Compiler bug involving optional parameters
	* compiler.lisp (note-references, remove-references):
	handle JMPIFBOUNDP properly (label is 3rd, not 2nd!)

2003-12-17  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (coalesce): fixed bug #[ 842912 ]:
	do not coalesce unless NEW-CODE is non-NIL

2003-12-17  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (insert-combined-LAPs): fix bug #[ 860052 ]: (RET)
	and (RETGF) can be preceded by a SKIPI instruction instead of a SKIP

2003-12-16  Sam Steingold  <sds@gnu.org>

	use system-wide wildcard(fnmatch) implementation when it is available
	* modules/wildcard/link.sh.in: renamed from link.sh
	* modules/wildcard/configure.in: AC_SUBST FNMATCH_O&FNMATCH_H
	* modules/wildcard/Makefile.in: use FNMATCH_O&FNMATCH_H
	do not define _LIBC - forbidden in user (application) code

2003-12-17  Sam Steingold  <sds@gnu.org>

	new module: Perl Compatible Regular Expressions <http://www.pcre.org/>
	* modules/pcre: new directory

2003-12-15  Bruno Haible  <bruno@clisp.org>

	* init.lisp (sys::%expand-form): Call %expand-form on the result of a
	symbol-macro expansion, instead of returning the expansion directly.
	Reported by Conrad Barski.

2003-12-12  Sam Steingold  <sds@gnu.org>

	prompt is now fully customizable by the user
	* reploop.lisp (prompt-to-string): new macro
	(*prompt-start*, *prompt-step*, *prompt-break*, *prompt-body*)
	(*prompt-finish*): new custom variables
	(*prompt*, prompt-string1, prompt-string2, prompt-string3): removed
	(break-level, step-level): new exported functions
	(prompt-start, prompt-body, prompt-finish, prompt-step)
	(prompt-break): new functions
	(main-loop, break-loop, step-hook-fn): use them

2003-12-11  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 858011 ]: RETURN-FROM not working in compiled FLET/LABELS
	* compiler.lisp (c-FLET, c-LABELS): fixed ADD-IMPLICIT-BLOCK call
	* init.lisp (%expand-lambdabody): ditto
	* eval.lisp (ADD-IMPLICIT-BLOCK): before 2003-12-05,
	ADD-IMPLICIT-BLOCK and add_implicit_block() accepted different
	arguments and returned different values!
	this is now fixed and they are truly identical.

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

	* compiler.lisp (c-UNWIND-PROTECT): discard side-effect free
	cleanup forms

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

	* modules/bindings/win32/win32.lisp (word): new type
	(EXTENDED_NAME_FORMAT, COMPUTER_NAME_FORMAT): new enum types
	(UNLEN, MAX_COMPUTERNAME_LENGTH): new constants
	(GetSystemDirectoryA, GetWindowsDirectoryA, GetCurrentDirectoryA)
	(GetVersion, GetUserNameA, GetUserNameExA, GetComputerObjectNameA)
	(GetComputerNameExA): new functions
	* modules/syscalls/calls.c, modules/syscalls/posix.lisp
	(VERSION, SYSTEM-INFO) [WIN32, CYGWIN]: new exports

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

	code re-arrangement and streamlining
	* init.lisp, eval.d (ADD-IMPLICIT-BLOCK, FUNCTION-BLOCK-NAME):
	moved to eval.d from init.lisp (already implemented in C anyway!)
	* constsym.d, subr.d (add_implicit_block, function_block_name): added
	* control.d (PARSE-BODY): do not macroexpand anything as per ANSI
	CL (see also patch 2003-02-14); use parse_dd() for all the work;
	do not accept ENV argument
	* subr.d (parse_body): ditto
	* clos.lisp, compiler.lisp, defmacro.lisp, defs1.lisp:
	* defs2.lisp, format.lisp, init.lisp, macros1.lisp, macros2.lisp:
	* macros3.lisp, places.lisp: do not pass ENV to PARSE-BODY
	* eval.d (parse_dd): do not accept ENV args (not used since 2003-02-14)
	(get_closure): do not pass ENV to parse_dd()
	* control.d (LET, LET*, LOCALLY, SYMBOL-MACROLET)
	(MULTIPLE-VALUE-BIND): ditto
	* lispbibl.d (parse_dd): updated the prototype

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

	* hashtabl.d (hash_prepare_store): fixed a bug introduced in the
	2003-05-13 DEFINE-HASH-TABLE-TEST patch: EQ and EQL hash codes
	depend on the object address, so they cannot be cached between GCs
	Reported by Matt Cross <mcross@irobot.com>

2003-12-03  Sam Steingold  <sds@gnu.org>

	* modules/syscalls/calls.c (STAT-VFS): interface to (f)statvfs(2)
	* modules/syscalls/posix.lisp (STAT-VFS): export the structure

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

	* makemake.in (distrib) [win32]: depend on clisp.man and
	clisp.html instead of repeating the rules for them
	* _distmakefile (uninstall): new target

2003-11-17  Sam Steingold  <sds@gnu.org>

	new module for interface to Berkley DB
	<http://www.sleepycat.com/docs/api_c/dbt_class.html>
	* modules/berkeley-db: new directory

2003-11-14  Sam Steingold  <sds@gnu.org>

	* io.d (FORMAT-TABULATE): do not lose the top empty string

2003-11-07  John Tang Boyland  <boyland@users.sf.net>
	    Sam Steingold  <sds@gnu.org>

	fixed bug #[ 831387 ]: ~<...~:> format directive not implemented
	for compiled code (using FORMATTER)
	* format.lisp (format-parse-cs): ~:> ==> FORMAT-LOGICAL-BLOCK
	(format-logical-block): added a stub
	(format-logical-block-parse, formatter-bind-block-1)
	(formatter-whole-args*): new functions
	(formatter-bind-block): new macro
	(formatter-main-1): handle FORMAT-LOGICAL-BLOCK
	(formatter-main-1): fixed FORMAT-PPRINT-INDENT

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

	* modules/syscalls/calls.c (FILE-STAT): compilation fix
	(copy_file_low): pass no_block=false to read_helper()
	(copy_one_file): fixed :SYMLINK/:HARDLINK

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

	* spvw_memfile.d: do not shadow local variables
	* encoding.d (java_wcstombs): do not shadow hex_table
	* foreign.d: do not shadow global index(3) and many local variables

2003-11-04  Bruno Haible  <bruno@clisp.org>

	* arilev1i.d: Use ANSI C prototypes.

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

	* makemake.in: uniform --with* processing (still different from
	autoconf scripts, see the comment in the code)

2003-10-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (CHART_STRUCT): Don't define when using g++ 3.3.x.

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

	* stdbool.h.in: Better support for BeOS.

2003-10-26  Bruno Haible  <bruno@clisp.org>

	* time.d (SYS::DELTA4): Avoid gcc warning.

2003-10-26  Bruno Haible  <bruno@clisp.org>

	* utils/ansidecl.d: Remove file.
	* makemake.in: Remove all uses of ansidecl and ANSIDECL.

2003-10-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Drop &!.
	* spvw.d: Drop &!.
	* spvw_module.d (module_names_to_stack): Use 'global'.
	* spvw_alloca.d: Use ANSI C prototypes.
	* spvw_mmap.d: Use ANSI C prototypes.
	* spvw_multimap.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_global.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_gcstat.d: Whitespace changes.
	* spvw_update.d: Indentation & braces.
	* spvw_fault.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_sigcld.d: Use ANSI C prototypes.
	* spvw_sigwinch.d: Drop &!.
	* spvw_garcol.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_genera1.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_allocate.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_circ.d: Use ANSI C prototypes. Indentation & braces.
	* spvw_memfile.d: Indentation & braces.
	* sort.d: Use ANSI C prototypes. Indentation & braces.
	* eval.d: ANSI C prototypes. Drop &!. Indentation & braces.
	* control.d: Drop &!.
	* pathname.d: Whitespace changes.
	* stream.d: Use ANSI C prototypes. Indentation & braces.
	* socket.d: Drop &!.
	* io.d: Whitespace changes.
	* array.d: Whitespace changes.
	* hashtabl.d: Whitespace changes.
	* package.d: Whitespace changes.
	* sequence.d: Use ANSI C prototypes. Indentation & braces.
	* charstrg.d: Whitespace changes.
	* debug.d: Use ANSI C prototypes. Drop &!. Indentation & braces.
	* errunix.d: Use ANSI C prototypes.
	* errwin32.d: Use ANSI C prototypes.
	* misc.d: Drop &!.
	* time.d: Whitespace changes.
	* predtype.d: Whitespace changes.
	* intplus.d: Use ANSI C prototypes.
	* intcomp.d: Use ANSI C prototypes.
	* intbyte.d: Use ANSI C prototypes.
	* intmal.d: Use ANSI C prototypes.
	* intdiv.d: Use ANSI C prototypes.
	* intgcd.d: Use ANSI C prototypes. Indentation & braces.
	* int2adic.d: Use ANSI C prototypes.
	* intsqrt.d: Use ANSI C prototypes.
	* intprint.d: Use ANSI C prototypes.
	* intread.d: Use ANSI C prototypes.
	* rational.d: Use ANSI C prototypes. Indentation & braces.
	* sfloat.d: Use ANSI C prototypes.
	* ffloat.d: Use ANSI C prototypes.
	* flo_konv.d: Use ANSI C prototypes.
	* flo_rest.d: Nop.
	* realelem.d: Nop.
	* realrand.d: Use ANSI C prototypes.
	* realtran.d: Use ANSI C prototypes. Indentation & braces.
	* compelem.d: Use ANSI C prototypes. Indentation & braces.
	* comptran.d: Use ANSI C prototypes. Indentation & braces.
	* foreign.d: Drop &!.
	* unixaux.d: Use ANSI C prototypes.

2003-10-26  Bruno Haible  <bruno@clisp.org>

	Make DEBUG_GCSAFETY work with generational GC.
	* spvw_heap.d (old_new_pointer_t): Change type of field 'o' to
	gcv_object_t.

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

	Make DEBUG_GCSAFETY work with g++ 3.3.x.
	* utils/varbrace.d (SPLIT_OBJECT_INITIALIZATIONS): New macro.
	(next_token): Split 'object' and 'chart' initializations inside macro
	definitions.
	(convert): Split 'object' and 'chart' initializations outside macro
	definitions.
	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB): Don't
	define when using g++ 3.3 with DEBUG_GCSAFETY.
	* intmal.d (FN_fak_I): Convert fakul_table to a table of uintL.

2003-10-25  Bruno Haible  <bruno@clisp.org>

	Followup to 2003-08-28 patch.
	* subr.d (LISPFUN_D): Pass additional argument to subr_argtype().

2003-10-25  Bruno Haible  <bruno@clisp.org>

	Portability to Solaris cc. Don't assume more than ANSI C.
	* lispbibl.d (with_saved_back_trace): Use ANSI C syntax for
	initializing a 'struct backtrace_t' on the stack.
	* spvw.d (main): Likewise.
	* debug.d (driver, break_driver): Likewise.

2003-10-25  Bruno Haible  <bruno@clisp.org>

	Restore the behaviour of "make init" and "make allc".
	* makemake.in (init): Don't depend on modprep.fas.
	(clean3): Clean modprep.fas here...
	(clean5): ... not here.

2003-10-24  Bruno Haible  <bruno@clisp.org>

	* spvw_debug.d (nobject_out1): Make it compile when TYPECODES are used.

2003-10-24  Bruno Haible  <bruno@clisp.org>

	* stdbool.h.in: Update from gnulib.
	2003-08-11  Bruno Haible  <bruno@clisp.org>
		* stdbool_.h (_Bool): Undo last change; instead use a negative
		enum value to ensure that _Bool promotes to int. Use #define
		for _Bool when using the Solaris C compiler. Adds comments
		suggested by Paul Eggert.
	2003-08-03  Paul Eggert  <eggert@twinsun.com>
		* stdbool_.h (_Bool): Make it signed char, instead of
		an enum type, so that it's guaranteed to promote to int.  See:
		<http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>

2003-10-23  Bruno Haible  <bruno@clisp.org>

	BeOS portability.
	* configure: Gracefully recover if "ulimit -s" does not work. (On BeOS
	this command returns an empty string and exits with return code 2.)
	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time): Enclose in
	#ifdef. Avoids link error due to missing getsockopt() on BeOS.
	(SOCKET-OPTIONS): Enclose each comparison in #ifdef.

2003-10-22  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 826792 ]: unbound WITH-DIR-KEY-OPEN params
	* install.lisp: use-package "LDAP"

2003-10-22  Christophe Rhodes  <csr21@cam.ac.uk>
	    Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (ds-make-defsetfs): put DEFSTRUCT-WRITER
	property whenever we do DEFSETF (i.e., COMPILE EVAL LOAD)

2003-10-19  Sam Steingold  <sds@gnu.org>

	* w32shell.c (real-path): avoid gcc -Wall warnings

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

	* complete.lisp (completion): when completing in a case-sensitive
	package, do not fold case
	* constsym.d, subr.d (package_case_sensitive_p): added
	* init.lisp (package-case-sensitive-p): export
	* package.d (package-case-sensitive-p): implemented

2003-10-16  Sam Steingold  <sds@gnu.org>

	* modules/bindings/win32/win32.lisp (MAX_PATH): new constant
	(GetModuleFileNameA, GetModuleHandleA): new functions
	(RIGHTS, PROCESS, EWX, GR_OBJECTS): new enum types
	(handle, dword): new types
	(GetCurrentProcess, GetCurrentThread, GetCurrentProcessId)
	(CloseHandle, OpenProcess, ExitWindowsEx, GetGuiResources)
	(GetConsoleTitleA, SetConsoleTitleA): new functions

2003-10-14  Sam Steingold  <sds@gnu.org>

	* stream.d (buffered_nextbyte): return -1 only when no_hang
	(listen_char_buffered): pass no_hang=true to buffered_nextbyte()
	(low_fill_buffered_handle): listen_status defaults to ls_eof

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

	* stream.d (low_fill_buffered_handle): set
	BufferedStream_have_eof_p to true when result is 0
	(buffered_nextbyte): use BufferedStream_have_eof_p instead of
	errno to determine whether the i/o is blocked
	[this is better than what was before - at least it builds on both
	unix and win32 - but I am still not sure that it DTRT]

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

	* win32aux.d, win32.d (sock_write): accept no_hang

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

	fixed a bug in READ-BYTE-SEQUENCE :NO-HANG T on unbuffered
	streams whereby the first byte is eaten and returned last
	* stream.d (UnbufferedStream_pop_all): new function
	(low_read_array_unbuffered_handle): use it after
	low_listen_unbuffered_handle() which can add to bytebuf
	Reported by Basim Al-Shaikhli <bacilo@gmx.net>
	<http://article.gmane.org/gmane.lisp.clisp.general/7619>

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

	* makemake.in (clisp.h): check that the typedef sizes in clisp.h
	and lispbibl.d are the same
	* genclisph.d: when supplied an argument, create a test file to
	check that the typedef sizes in clisp.h and lispbibl.d are the same

2003-10-10  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (break-loop): bind *FASOUTPUT-STREAM* to NIL
	* compiler.lisp (c-EVAL-WHEN): bind *FASOUTPUT-STREAM* to NIL
	around evaluation of COMPILE-P FORM
	This ensures that when the compiler is called from the break loop
	or from the EVAL-WHEN/COMPILE, it does not assume that a LOAD
	will happen before the code it generates is executed.
	Reported by Don Cohen <don-sourceforge@isis.cs3-inc.com>
	<http://article.gmane.org/gmane.lisp.clisp.devel/10566>

2003-10-09  Sam Steingold  <sds@gnu.org>

	* amiga.d, amigaaux.d, win32.d, win32aux.d (full_write):
	use write_helper()
	(write_helper): accept no-hang

2003-10-09  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (const-value-safe): enforce that CONST-VALUE is
	invalid when CONST-HORIZON is :FORM
	(anode-constant-value, c-FUNCTION, traverse-anode)
	(traverse-anode): use it instead of CONST-VALUE
	(const-index, make-const-code, traverse-anode):
	keep using CONST-VALUE where appropriate!
	(in-same-function-p): remove unused function

2003-10-07  Sam Steingold  <sds@gnu.org>

	* genclisph.d (sarray_, sbvector_, sstring_): fixed (no uintL length)

2003-10-07  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (funcall1): new shortcut function
	(get_angle, SET-DISPLAY-AFTER-FUNCTION, DISPLAY-DEFAULT-SCREEN)
	(VISUAL-INFO, SET-GCONTEXT-DASHES, SET-GCONTEXT-CLIP-MASK)
	(GCONTEXT-CLIP-MASK, DRAW-POINTS, DRAW-LINES, DRAW-SEGMENTS)
	(DRAW-RECTANGLES, DRAW-ARCS, PUT-IMAGE, OPEN-FONT, FONT-PATH)
	(SET-FONT-PATH, FREE-COLORS, QUERY-COLORS, STORE-COLORS, ATOM-NAME)
	(CHANGE-PROPERTY, ROTATE-PROPERTIES, PROCESS-EVENT, EVENT-LISTEN)
	(GLOBAL-POINTER-POSITION, INPUT-FOCUS, POINTER-MAPPING)
	(QUERY-KEYMAP, SET-SCREEN-SAVER, LIST-EXTENSIONS, QUERY-EXTENSION)
	(SHAPE-VERSION, SHAPE-COMBINE, READ-FILE-TO-PIXMAP): use it;
	also, try to initialize Display when declaring it

2003-10-05  Bruno Haible  <bruno@clisp.org>

	* utils/ccmp2c.c: Reorder.

	* utils/ccmp2c.c: Use GNU coding style. Emit code in GNU coding style.
	Assume <stdlib.h> correctly declares exit().

	Enhance ccmp2c with ability to emit line numbers.
	* utils/ccmp2c.c (line_number): New variable.
	(get_line): Increment line_number.
	(emit_literal): Add argument lineno. Emit lineno as second argument
	of TEXT_addstring if the argument string represents a complete line
	from input source file. Otherwise use 0 as second argument.
	(emit_expansion): Add argument lineno.
	(main): Emit code to parse command line arguments, recognizing -l,
	-i INFILENAME, -o OUTFILENAME. Emit code to generate #line information
	if desired. Initialize line_number.
	* modules/clx/new-clx/Makefile.in (clx.e): Generate with line number
	information.
	(clx.c): Drop bogus #line 1 "clx.f".

2003-10-01  Don Cohen  <don-sourceforge@isis.cs3-inc.com>
	    Sam Steingold  <sds@gnu.org>

	WRITE-BYTE-SEQUENCE now accepts :NO-HANG keyword argument
	* genclisph.d (write_byte_array): updated the prototype
	(write_helper): replaces full_write()
	* lispbibl.d (write_byte_array): ditto
	* gray.lisp (stream-write-byte-sequence): accept :NO-HANG
	* subr.d, subrkw.d (write_byte_sequence): ditto
	* sequence.d (WRITE-BYTE-SEQUENCE): ditto [FIXME: need
	write_byte_will_hang_p()!]
	* stream.d (wr_by_array_Pseudofun, wr_by_array_*)
	(strm_unbuffered_extrafields_t/low_write_array): accept no_hang
	* unix.d (write_helper): prototype
	(full_write, safe_write): define using write_helper()
	* unixaux.d (write_helper): implemented
	(sock_write): accept no_hang
	* modules/syscalls/calls.c (copy_file_low): use write_helper()
	instead of full_write()
	* modules/bindings/glibc/linux.lisp (write-helper): new
	(write): macro calling write-helper, just like with read

2003-10-02  Bruno Haible  <bruno@clisp.org>

	* utils/comment5.c: Use '
CCL: Invalid command 1f (ccl_code = 4c03f) at 195.
CCL: Invalid command 1f (ccl_code = 4c03f) at 195.
