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

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-
	signalling 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 signalling 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-signalling 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
	signalling 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 (:FII) [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 signalling 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 signalling a
	source-program-error.
	(%whole-form): Proclaim special.
	(%expand-form): Bind %whole-form. Pass both :FORM and :DETAIL when
	signalling 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 signalling 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
	signalling a source-program-error.
	(%whole-form): Proclaim special.
	(analyze-aux, get-supplied-p, analyze-rest): Pass both :FORM and
	:DETAIL when signalling a source-program-error.
	(empty-pattern): Add 'wholevar' argument. Pass both :FORM and :DETAIL
	when signalling a source-program-error.
	(analyze1, remove-env-arg): Expect %whole-var to be bound. Pass both
	:FORM and :DETAIL when signalling a source-program-error.
	(make-macro-expansion): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signalling 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
	signalling a source-program-error.
	(do/do*-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signalling a source-program-error.
	(do, do*): Update.
	(psetq): Pass both :FORM and :DETAIL when signalling a
	source-program-error.
	(case-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signalling a source-program-error.
	(fcase, case): Update.
	(cond): Pass whole form to ifify.
	(ifify): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signalling a source-program-error.
	* macros2.lisp (typecase): Pass both :FORM and :DETAIL when signalling
	a source-program-error.
	(deftype): Likewise. Bind %whole-form for analyze1.
	(define-symbol-macro): Pass both :FORM and :DETAIL when signalling a
	source-program-error.
	* defs1.lisp (with-package-iterator): Pass both :FORM and :DETAIL when
	signalling a source-program-error.
	* places.lisp (get-setf-expansion, get-setf-method): Pass both :FORM
	and :DETAIL when signalling a source-program-error.
	(check-accessor-name): Add 'whole' argument. Pass both :FORM and
	:DETAIL when signalling 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 signalling a source-program-error.
	(psetf, define-modify-macro, setf, shiftf, apply, funcall, if): Pass
	both :FORM and :DETAIL when signalling a source-program-error.
	* defpackage.lisp (defpackage): Pass both :FORM and :DETAIL when
	signalling 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 signalling a source-program-error.
	(defstruct): Pass both :FORM and :DETAIL when signalling 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 signalling 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 signalling a source-program-error.
	* clos-slots1.lisp (with-slots, with-accessors): Pass both :FORM and
	:DETAIL when signalling 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 signalling 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 signalling a
	source-program-error.
	(call-method, make-method, make-method-error,): Pass both :FORM and
	:DETAIL when signalling 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 signalling a source-program-error.
	(define-method-combination): Pass both :FORM and :DETAIL when
	signalling 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 signalling 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
	signalling 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 signalling a source-program-error.
	(restart-case, with-restarts): Update.
	* foreign1.lisp (DEF-C-VAR): Pass both :FORM and :DETAIL when
	signalling 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 signalling a
	source-program-error.
	* macros3.lisp (LETF*): Pass whole form to expand-LETF*.
	(expand-LETF*): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signalling a source-program-error.
	(LETF): Pass whole form to expand-LETF.
	(expand-LETF): Add 'whole' argument. Pass both :FORM and :DETAIL when
	signalling 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 (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 (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 '／＊' instead of '/*' inside comments,
	to avoid gcc warning “"/*" within comment”.

2003-10-02  Bruno Haible  <bruno@clisp.org>

	* utils/ansidecl.d (main): Don't miss to return an error code if the
	last write on stdout fails.
	* utils/ccmp2c.c (main): Likewise.
	* utils/comment5.c (main): Don't miss to return an error code if the
	last write to outfile fails.
	* utils/varbrace.d (main): Likewise.

2003-10-01  Bruno Haible  <bruno@clisp.org>

	Assume some more POSIX functions are properly declared.
	* m4/gethostname.m4 (CL_GETHOSTNAME): Remove prototype check.
	* m4/mprotect.m4 (CL_MPROTECT): Remove prototype check.
	* m4/readlink.m4 (CL_READLINK): Remove prototype check.
	* m4/read-write.m4: Remove file.
	* m4/shmat.m4: Remove file.
	* m4/shm-rmid.m4 (CL_SHM_RMID): Use void* instead of RETSHMATTYPE.
	* m4/shm.m4 (CL_SHM): Don't require CL_SHMAT.
	* m4/signal.m4 (CL_SIGPROCMASK): Remove macro.
	* m4/stat.m4 (CL_FSTAT, CL_STAT): Remove macros.
	(CL_LSTAT): Remove prototype check.
	* m4/termios.m4 (CL_TERM): Remove tcsetattr prototype check.
	* configure.in: Remove invocations of CL_SIGPROCMASK, CL_FSTAT,
	CL_STAT, CL_READ_WRITE, CL_WRITE.
	* unix.d: Comment out declarations of mprotect(), sigprocmask(),
	sigemptyset(), sigaddset(), readlink(), stat(), lstat(), fstat(),
	read(), write(), tcgetattr(), tcsetattr(), tcdrain(), tcflush(),
	gethostname().
	(read_helper): Use ssize_t instead of RETRWTYPE. Use void* instead
	of RW_BUF_T. Use size_t instead of RW_SIZE_T.
	(full_write): Likewise. Use const instead of WRITE_CONST.
	* amiga.d (RW_BUF_T): Remove definition. Use void* instead.
	* amigaaux.d: Use void* instead of RW_BUF_T.
	* acorn.d (RETRWTYPE): Remove definition. Use ssize_t instead.
	(RW_BUF_T): Remove definition. Use void* instead.
	(RW_SIZE_T): Remove definition. Use size_t instead.
	(WRITE_CONST): Remove definition.
	* msdos.d (RW_BUF_T): Remove definition. Use void* instead.
	(RETRWTYPE): Remove definition. Use ssize_t instead.
	(RW_SIZE_T): Remove definition. Use size_t instead.
	(WRITE_CONST): Remove definition.
	* win32.d (RW_BUF_T, GETHOSTNAME_SIZE_T, MPROTECT_CONST): Remove
	macros.
	* unixaux.d (read_helper): Use ssize_t instead of RETRWTYPE.
	Use void* instead of RW_BUF_T. Use size_t instead of RW_SIZE_T.
	(full_write): Likewise. Use const instead of WRITE_CONST.
	(sock_write): Use const instead of WRITE_CONST.
	* socket.d: Comment out declaration of gethostname().
	* spvw_memfile.d: Use void* instead of RW_BUF_T.
	* spvw_mmap.d (mprotect): Drop MPROTECT_CONST.

2003-10-01  Bruno Haible  <bruno@clisp.org>

	Improve support for large off_t and large ino_t.
	* configure.in: Check size of 'ino_t'.
	* lispbibl.d (UQ_to_I): Declare also if sizeof(ino_t) > 4.
	* intelem.d (UQ_to_I): Define also if sizeof(ino_t) > 4.
	* pathname.d (with_stat_info): Use UQ_to_I to convert st_size to a
	Lisp object if sizeof(off_t) > 4.
	(directory_search_hashcode): Use UQ_to_I to convert st_ino to a Lisp
	object if sizeof(ino_t) > 4.
	* spvw_memfile.d (loadmem_from_handle): Don't cast down st_size to
	32 bits.

2003-09-30  John Hinsdale  <hin@alma.com>

	* modules/oracle/oracle.lisp: Fix bug that leaks connections

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

	Support for files larger than 2 GB or 4 GB on platforms with LFS.
	* configure.in: Invoke AC_SYS_LARGEFILE. Check size of 'off_t'.
	* lispbibl.d (UQ_to_I, I_to_UQ): Declare also if sizeof(off_t) > 4.
	* intelem.d (UQ_to_I, I_to_UQ): Define also if sizeof(off_t) > 4.
	(UQ_to_I): Fix to make it work when sizeof(oint) < sizeof(uint64).
	* stream.d (uoff_t): New type.
	(uoff_t_to_I, I_to_uoff_t, uoff_t_p): New macros.
	(strm_buffered_extrafields_t): Change type of buffstart and
	position to uoff_t.
	(strm_i_buffered_extrafields_t): Change type of eofposition to uoff_t.
	(handle_lseek): Change the result to off_t.
	(position_file_buffered): Change argument type to uoff_t.
	(sync_file_buffered): Use uoff_t where appropriate.
	(position_file_i_buffered): Change argument type to uoff_t.
	(logical_position_file): Likewise.
	(logical_position_file_end, make_file_stream)
	(buffered_flush_everything, finish_output_buffered):
	Use uoff_t where appropriate.
	(FILE-POSITION): Use uoff_t_to_I and I_to_uoff_t.
	(FILE-LENGTH): Use uoff_t_to_I.
	* spvw_memfile.d (memflags): Add a bit to denote whether file
	streams store a 64-bit or 32-bit file position.

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

	* spvw_heap.d (Heap): Change type of memfile_offset to off_t.
	* spvw_memfile.d (savemem, loadmem_from_handle): Use off_t where
	appropriate.
	* spvw_fault.d (handle_mmap_fault, selfmade_mmap): Change type of
	'offset' argument to off_t.

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

	* stream.d (SOCKET-OPTIONS): Avoid warnings from ansidecl.

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

	* foreign.d (update_library): avoid an infinite loop
	Reported by Roland Averkamp <roland.averkamp@gmx.de>

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

	* encoding.d (init_dependent_encodings): use ASCII for
	*FOREIGN-ENCODING* when argv_encoding_foreign is not 1:1
	Reported by Douglas Philips <dgou@mac.com>

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

	fixed bug #[ 813119 ]: "Occurred in SIMPLIFY at AT-END"
	* compiler.lisp (simplify): handle empty codelist

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

	* configure.in: added AC_COPYRIGHT and AC_REVISION (sugar)
	check for --with-readline and --without-readline and run
	CL_READLINE only if readline was not disabled by the user

2003-09-25  Sam Steingold  <sds@gnu.org>

	* unix.d (NO_BLOCK_DECL): new macro
	(START_NO_BLOCK, END_NO_BLOCK): do not open/close block {}
	* stream.d (listen_handle): updated
	Suggested by Don Cohen <don-sourceforge@isis.cs3-inc.com>

2003-09-24  John Hinsdale  <hin@alma.com>

	* modules/oracle/oracle.lisp: connection retry logic
	* src/makemake.in: syntax error in variable definition

2003-09-24  Sam Steingold  <sds@gnu.org>

	readline is now used on Cygwin/X11
	* stream.d (stdio_same_tty_p): extracted from make_terminal_stream_()
	use ttyname(stdin)=ttyname(stdout) on cygwin
	(make_terminal_stream_): use it

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

	* init.lisp (load) [:COMPILING]: bind *ERROR-COUNT* *WARNING-COUNT*
	*STYLE-WARNING-COUNT* like in WITH-COMPILATION-UNIT
	* compiler.lisp (match-known-unknown-functions): do not try to
	print source location when it is not available

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

	* unix.d (SHUT_RD, SHUT_WR, SHUT_RDWR): define when not defined
	* makemake.in (encflags) [!UNICODE]: void
	* utils/modprep.lisp (modprep) [!UNICODE]: no :external-format
	Reported by Don Cohen <don-sourceforge@isis.cs3-inc.com>

2003-09-19  Sam Steingold  <sds@gnu.org>

	* unix.d (START_NO_BLOCK, END_NO_BLOCK): new macros
	* stream.d (listen_handle): use them

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

	* compiler.lisp (f-side-effect): NOTINLINE ==> seclass (t . t)
	* clos.lisp (%make-gf): seclass is (t . t) because a generic
	function can always signal a NO-APPLICABLE-METHOD error
	(std-add-method, std-remove-method): since seclass is (t . t),
	disable the CLOSURE-SET-SECLASS call

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

	* makemake.in: respect LDFLAGS
	Mac OS X (Darwin) is a BINARY_DISTRIB system

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

	* genclisph.d (string_to_asciz, TheAsciz): enabled
	for Dan Stanger's gdi module

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

	* modules/clx/new-clx/clx.f (grab_to_object): new function
	(GRAB-POINTER, GRAB-KEYBOARD): use it
	(xlib_error_handler): ise ELT for sequences, not AREF
	include <string.h> to avoid some warnings

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

	* stream.d (SOCKET-OPTIONS): old systems might not have
	SO_RCVLOWAT, SO_SNDLOWAT, SO_RCVTIMEO, SO_SNDTIMEO

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

	* makemake.in (setup.hint, cygwin.README) [cygwin]: new targets

2003-09-13  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fix msvc distrib
	* makemake.in: don't incude rules unexecutable by msvc nmake
	(makemake, unixconf.h, Makefile, config.status, VERSION)
	Don't create base and full directories for msvc distrib
	Call it differently (clisp-x.xx-msvc-win32.zip)
	Use find -exec for chmod to avoid problems in cygwin
	Call rm -rf directly (RMRF=-del, inappropriate)

2003-09-12  Sam Steingold  <sds@gnu.org>

	* version.h: reinstated for the sake of non-autoconf platforms

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

	* modules/bindings/glibc/linux.lisp (scalb, scalbf): commented out
	because they do not compile on either RedHat or Debian

2003-09-10  Sam Steingold  <sds@gnu.org>

	* debug.d (print_back_trace): do not confuse backtrace with prompts

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

	* genclisph.d (constobj): include at compile time (like subr &
	constsym), not at "run time" (clisp.h does not include constobj)
	Reported by Fred Cohen <fc@all.net>

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

	* unix.d (nonintr_open): Add const to first argument.
	* unixaux.d (nonintr_open): Likewise.

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

	* makemake.in (distrib) [cygwin]: create cygwin package

2003-09-05  Wolfgang Jenkner  <wjenkner@inode.at>
	    Sam Steingold  <sds@gnu.org>

	* m4/address.m4, m4/closedir.m4, m4/filecharset.m4, m4/ioctl.m4:
	* m4/mprotect.m4, m4/shm-rmid.m4, m4/shm.m4, m4/shmat.m4:
	eliminated prototypes for better portability

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

	* spvw.d: do not include version.h
	(usage, main/--version, version_string/AMIGA):
	use PACKAGE_NAME & PACKAGE_BUGREPORT
	* misc.d (LISP-IMPLEMENTATION-VERSION): use
	O(lisp_implementation_package_version) instead of
	O(lisp_implementation_version_number_string) and
	O(lisp_implementation_version_date_string)
	* makemake.in: removed version.h
	* constobj.d (lisp_implementation_package_version):
	init to PACKAGE_VERSION
	(lisp_implementation_version_date_string)
	(lisp_implementation_version_number_string): removed
	* configure.in (AC_INIT): the master version is now here,
	not in version.h
	* version.h: removed
	* FILES.1: updated
	* Makefile.devel (src/VERSION): depend on configure, not version.h

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

	* describe.lisp (describe-object) [SOCKETS]: handle SOCKET-SERVER
	Reported by John K. Hinsdale <hin@alma.com>
	* genclisph.d (Atype_32Bit): export for gdi (Dan Stanger)

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

	* makemake.in (distrib) [win32]: distribute both base and full
	(uninstall): RMRF lispdocdir & lisplibdir
	(linkkit): added exporting.lisp & modprep.lisp

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

	* version.h: 2.31 is released

2003-09-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (init_launch_streamarg, make_launch_pipe):
	now defined on UNIX || RISCOS || WIN32_NATIVE.
	(interpret_launch_priority): new local helper function.
	(LAUNCH): UNIX and Windows versions merged.
	* constobj.d (type_priority): now keyword or fixnum.
	* constsym.d: define LAUNCH keywords on systems where it builds.

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

	* error.d (check_fpointer) [FOREIGN]: moved here from foreign.d
	* foreign.d (check_fpointer): moved to error.d
	* lispbibl.d (check_fpointer) [FOREIGN]: prototype
	* genclisph.d (check_fpointer): conditionalize on FOREIGN
	* modules/regexp/regexi.c [!FOREIGN]: error (FOREIGN is required)
	Reported by Douglas Philips <dgou@mac.com>

2003-08-31  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* lispbibl.d (INVALID_HANDLE_VALUE) [!WIN32_NATIVE]: new macro.
	(HNULLP):new macro.
	* pathname.d (handle_dup): use new macros.
	(init_launch_streamarg, make_launch_pipe) [UNIX || RISCOS]:
	new helper functions.
	(LAUNCH) [UNIX || RISCOS]: use all of it, don't do HANDLE=NULL
	according to Sam's suggestion.

2003-08-30  John Hinsdale  <hin@alma.com>

	* intelem.d: Fix bug #726433: Floating point numbers
	printed incorrectly - gcc -O/-g bug?

2003-08-30  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* stream.d (wr_ch_window) [WIN32_NATIVE]: explicit typecast.
	(stream_lend_handle): allow pipe-streams.

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

	* modules/syscalls/posix.lisp (make-file-stat):
	fixed the typo in the signature
	* modules/syscalls/configure.in: check for <shlobj.h>
	* modules/syscalls/link.sh.in (NEW_LIBS): add win32-specific
	libraries only when needed
	Reported by Douglas Philips <dgou@mac.com>

2003-08-29  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* subr.d, subrkw.d (LAUNCH): added kw arguments element-type,
	external-format, buffered.
	* constsym.d (PIPE): new keyword. LAUNCH keywords moved out of
	HAVE_SHELL.
	* stream.d (mkops_from_handles, mkips_from_handles): new global
	functions to make pipe-streams.
	* pathname.d (mkpipe): new local functions.
	(LAUNCH) [WIN32_NATIVE, UNIX || RISCOS]: use new functions to
	create pipe - streams.

2003-08-28  Sam Steingold  <sds@gnu.org>

	* spvw.d (subr_argtype): accept additional argument for better
	error reporting
	(init_subr_tab_1): when initializing modules, pass subr_initdata
	to subr_argtype()
	still no error reporting for FSUBRs and main CLISP SUBRs because
	we cannot print symbols before encodings have been initialized.

2003-08-28  Sam Steingold  <sds@gnu.org>

	* time.d (get_run_time) [TIME_UNIX]: when HZ is not defined, use
	CLK_TCK or CLOCKS_PER_SECOND.
	Reported by Prut Flut <prutflut@m-net.arbornet.org> (NetBSD)

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

	* utils/modprep.lisp: merged in signature emulation from e2d.c
	* Makefile.devel (CONFIG_H_IN): added clx/new-clx/config.h.in
	* modules/clx/new-clx/config.h.in: new file
	* modules/clx/new-clx/Makefile.in: use modprep instead of e2d.c
	* modules/clx/new-clx/e2d.c: removed
	* modules/clx/new-clx/configure.in: check for XGetAtomNames()
	* modules/clx/new-clx/clx.f: converted to standard C and modprep.lisp
	* genclisph.d: export much stuff necessary for new-clx
	* spvw_sigpipe.d (disable_sigpipe): new function for new-clx

2003-08-27  John Hinsdale <hin@alma.com>
	* modules/oracle/README, oracle.lisp - More documentation

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

	* control.d (MACROLET): fixed a GC-safety bug
	* condition.lisp (define-condition): return name, as per ANSI

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

	* makemake.in (modular): do not depend on exporting, modprep, clisp.h
	(anymodule): depend on exporting, modprep, clisp.h

2003-08-25  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* utils/comment5.c (main): handle '# ' in traditional comments.
	* makemake.in : do not treat pathname.d specially.

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

	* makemake.in (MODULESDIR, MODULESDIR_, MODULESDIR_M): new vars
	(exporting.fas): depend on ${MODULESDIR_M}exporting.lisp, not the link
	(modular): depend on clisp.h
	* configure: do not link plain files in modules (exporting will
	picked up from here); link modules/* directories even when
	building without FFI because many modules (regexp, syscalls,
	dirkey, clx/new-clx) do not require FFI

2003-08-22  Sam Steingold  <sds@gnu.org>

	* init.lisp (defun): reverted the 2003-08-12 patch: cannot parse
	the signature at macroexpand time, FUNCTION should see it first
	for proper error reporting

2003-08-21  Sam Steingold  <sds@gnu.org>

	* utils/modprep.c: rewrote in lisp
	* modules/regexp/regexi.c (REGEXP-COMPILE): pass a subr instead
	of a symbol to FINALIZE (supported by modprep.lisp)

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

	* compiler.lisp (create-fun-obj, c-LOAD-TIME-VALUE): use
	*fasoutput-stream* instead of *compiling-from-file* to check
	whether the constant will be read before being evaluated
	- necessary for the recent COMPILE-FORM-IN-TOPLEVEL-ENVIRONMENT change
	Reported by Douglas Philips <dgou@mac.com>
	<http://article.gmane.org/gmane.lisp.clisp.general/7393>

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

	* defs1.lisp (set-logical-pathname-translations): missing slots
	default to :WILD, as per ANSI CL
	* pathname.d (MAKE-LOGICAL-PATHNAME): upcase host
	(host_match, nametype_match_aux, subdir_match, version_match)
	(version_diff, translate_subdir, translate_version):
	merge identical LOGICAL and PHYSICAL code
	(translate_nametype_aux): do not replace NIL with ""

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

	* makemake.in (XCFLAGS) [darwin]: removed `--traditional-cpp'
	Reported by Douglas Philips <dgou@mac.com>
	<http://article.gmane.org/gmane.lisp.clisp.devel/10282>

2003-08-15  Sam Steingold  <sds@gnu.org>

	MATCH structure is now printable readably
	* modules/regexp/regexi.c (REGEXP-EXEC): use MAKE-MATCH-BOA
	* modules/regexp/regexp.lisp (match): define a keyword
	constructor too

2003-08-15  Sam Steingold  <sds@gnu.org>

	* modules/netica/wrap.lisp (make-node): specify placement
	(node-info): show parents and children
	(with-open-dne-file): new macro
	(read-net): new function
	* modules/netica/netica.lisp (GetNodeExpectedValue_bn)
	(GetNodeVisPosition_bn): fixed declarations
	* modules/netica/demo.lisp: specify placement

2003-08-15  Sam Steingold  <sds@gnu.org>

	* io.d (pr_orecord): print logical pathnames as namestrings (when
	printing un-readably and ANSI "host:path" is enabled)

2003-08-14  Sam Steingold  <sds@gnu.org>

	* defmacro.lisp (analyze1): match lambda-list to argument strictly

2003-08-14  Sam Steingold  <sds@gnu.org>

	ANSI compliance: macro definitions respects the lexical environment
	* defmacro.lisp (make-macro-expander): accept the second argument
	- the current lexical environment
	* compiler.lisp (insert-combined-LAPs): avoid ANSI-"undefined" code
	* control.d (aktenv_to_stack): new function, extracted from ...
	(compile_eval_form): call aktenv_to_stack()
	(MACROLET): pass aktev as the second argument to MAKE-MACRO-EXPANDER

2003-08-14  Sam Steingold  <sds@gnu.org>

	* modules/netica/wrap.lisp (adjust-number-of-states): new function
	(GetNodeLevels): new wrapper
	(error-message, node-info): use ENUM-FROM-VALUE
	(net-info): call GetNetNodes and print all nodes
	(make-node): allow setting levels and creating continuous nodes
	(save-net): call TRANSLATE-LOGICAL-PATHNAME before NAMESTRING
	* modules/netica/demo.lisp: call net-info
	* modules/netica/netica.lisp: fixed some declarations

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

	You can now map between numeric and symbolic C enum values using
	functions FFI:ENUM-FROM-VALUE and FFI:ENUM-TO-VALUE
	* foreign1.lisp (enum-from-value, enum-to-value): new functions
	(def-c-enum): save the value -> constant name map in a hash-table

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

	do FUNCTION-CODES lookup at load time: a change in FUNCTION-CODES
	means a change in FUNTAB, i.e., all FAS recompilation anyway
	* compiler.lisp (CALLS-code-fun): new macro
	(c-FNODE-FUNCTION, c-FUNCTION, insert-combined-LAPs): use it

2003-08-13  Bruno Haible  <bruno@clisp.org>

	* arilev1e.d (and_test_loop_up, test_loop_up): Change return type from
	'bool' to 'int', for compatibility with the existing assembly code.
	* arilev1c.d (and_test_loop_up, test_loop_up): Likewise.
	* arilev1i.d (and_test_loop_up, test_loop_up): Likewise.
	Reported by Russ Ross <rgr22@cl.cam.ac.uk>.

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

	* modules/dirkey/dirkey.c, modules/syscalls/calls.c:
	* modules/regexp/regexi.c (misc_encoding, pathname_encoding):
	use GLO to pick the user changes to *MISC-ENCODING*
	and *PATHNAME-ENCODING* at run time
	* genclisph.d (object_tab): enabled

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

	* compiler.lisp (c-write-lib): do not write constants; unwrap PROGN
	* init.lisp (LAMBDA-LIST-TO-SIGNATURE) [!COMPILER]: dummy definition
	(defun): call LAMBDA-LIST-TO-SIGNATURE at macroexpand time
	(%expand-macro): new function
	(%expand-form): use it

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

	* modules/netica/wrap.lisp (*license*): new variable
	(start-netica): license is a keyword parameter
	(*features*): push :netica

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

	* calls.c (STREAM-LOCK): added begin_system_call()/end_system_call()

2003-08-10  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (nullfile): new local function.
	(LAUNCH): take NIL stream as /dev/nul.

2003-08-07  John Hinsdale <hin@alma.com>
	* oracle.lisp, fastcgi.lisp, fastcgi.h, linux.lisp
	Take "C" prototypes from standard headers, not FFI

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

	LOAD :COMPILING T: handle errors just like with COMPILE-FILE
	* init.lisp (load): bind compiler::*c-error-output*;
	when *load-compiling*, call compiler::c-reset-globals before loading
	and compiler::c-report-problems after loading
	* compiler.lisp (compile-lambda-helper): extracted from compile-lambda
	(compile-lambda, compile-form-in-toplevel-environment): call it

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

	track the current source file consistently
	* init.lisp (*current-source-file*): new variable
	(load): bind it
	(check-redefinition): use it instead of a complicated combination
	of *load-truename* & *compile-file-truename*
	* compiler.lisp (compile-file): bind it

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

	* foreign.d (FOREIGN-FREE): make the freed function invalid

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

	properly update pointers to dynamic objects
	* foreign.d (object_handle): extracted from object address()
	(foreign_libraries): keep the objects imported from the library
	(update_library, push_foreign_object): new functions
	(FOREIGN-LIBRARY, validate_fpointer): call update_library()
	(FOREIGN-LIBRARY-VARIABLE, FOREIGN-LIBRARY-FUNCTION):
	call push_foreign_object()

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

	regexp module does not use FFI - 25% speedup
	* modules/regexp/preload.lisp: new file
	* modules/regexp/link.sh.in: preload it, don't look for regexp.c
	* modules/regexp/regexp.lisp: removed FFI forms
	* modules/regexp/regexi.c (REGEXP-COMPILE, REGEXP-EXEC)
	(REGEXP-FREE): implemented here
	* foreign.d (check_fpointer): replaces fehler_fpointer_invalid()
	* genclisph.d (posfixnum, negfixnum, sfixnum, fp_validp)
	(check_fpointer): export

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

	added a bindings/win32 module with a couple of rudimentary functions

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

	* configure: link all modules/* files, not just directories
	* modules/exporting.lisp: new files, abstracted from linux.lisp
	* makemake.in: compile exporting.lisp
	* modules/bindings/glibc/linux.lisp, modules/netica/netica.lisp:
	* modules/postgresql/postgresql.lisp: load exporting.lisp

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

	removed obsolete module linuxlibc5 and renamed linuxlibc6 to glibc

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

	Unified modules postgresql632 and postgresql642 into postgresql
	* Makefile.devel: use implicit rules for configure and config.h.in
	(CONFIGURES, CONFIG_H_IN): added postgresql

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

	the demo now works just fine
	* modules/netica/demo.lisp: use DEFPARAMETER
	* modules/netica/wrap.lisp (null-pointer): removed (use NIL instead)
	(check-errors): use CERROR
	(make-net): set comment and title
	(net-info, node-info): new functions
	(make-node): fixed the SetNodeProbs_bn call
	(make-node-wrapper): new build-time macro
	(GetNodeBeliefs, GetNodeExpectedUtils, GetNodeLikelihood)
	(GetNodeProbs): new low-level wrappers defined with it
	(save-net): fixed file type merging
	* modules/netica/netica.lisp (MAX_PARENT, MAX_STATE): removed
	(GetNodeBeliefs_bn, GetNodeExpectedUtils_bn, SetNodeProbs_bn)
	(GetNodeLevels_bn, GetNodeProbs_bn): fixed declarations

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

	* modules/regexp/regexi.c (mregexec): new function
	* modules/regexp/regexp.lisp (num-matches, regexec): removed
	(mregexec): replaces regexec
	(regexp-exec): return an arbitrary number of matches, not limited
	by num-matches

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

	* foreign.d (convert_from_foreign): treat NULL as NIL
	(convert_to_foreign): treat NIL as NULL
	* foreign1.lisp (foreign-address-null): removed
	* deprecated.lisp (deprecate): export from the home package
	(foreign-address-null): deprecated

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

	* misc.d (MODULE-INFO): argument `O' returns a copy of
	O(foreign_libraries)
	(environ) [!HAVE_DECL_ENVIRON]: declare
	* m4/putenv.m4 (CL_PUTENV): check for environ

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

	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): do not call NOTE-C-VAR
	and NOTE-C-FUN for dynamic objects

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

	extended dynamic object loading from AMIGAOS to WIN32_NATIVE & POSIX
	* m4/dynload.m4 (CL_DYNLOAD): use AC_SEARCH_LIBS
	* constobj.d (foreign_libraries): define
	* constsym.d, subr.d (foreign_library, foreign_library_variable)
	(foreign_library_function): added
	* foreign.d (FOREIGN-LIBRARY, FOREIGN-LIBRARY-VARIABLE):
	(FOREIGN-LIBRARY-FUNCTION): extended to win32 & posix
	* foreign1.lisp (def-c-var, def-call-out): added :LIBRARY option
	* makemake.in (LIBDL): absorbed into LIBS
	* unix.d (dlopen, dlsym, dlclose, dlerror): removed prototypes

2003-08-02  Wolfgang Jenkner <wjenkner@inode.at>
	    Sam Steingold  <sds@gnu.org>

	* condition.lisp (assert): fixed bug a whereby two adjacent
	ASSERTs would redefine ASSERT-RESTART-PROMPT and thus use the
	same closure when in fact they are prompting for different places

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

	use system-wide regex implementation when it is available
	* modules/regexp/regexi.c: include <regex.h>, not "regex.h"
	* modules/regexp/link.sh.in: renamed from link.sh
	* modules/regexp/configure.in: AC_SUBST REGEX_O&REGEX_H
	* modules/regexp/Makefile.in: use REGEX_O&REGEX_H

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

	* modules/wildcard/wildcard.lisp: #include <fnmatch.h>
	* modules/regexp/regexp.lisp (*output-c-functions*)
	(*output-c-variables*): set to T

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

	* unixconf.h.in: generated by autoheader now
	* c++-bool.m4, cc-char-unsigned.m4, cc-elif.m4, cc-error.m4:
	* cc-mergestrings.m4, chdir.m4, chmod.m4, endian.m4, execl.m4:
	* execv.m4, fcntl.m4, fsync.m4, ftime.m4, getenv.m4, getpwnam.m4:
	* getpwuid.m4, localtime.m4, memset.m4, mkdir.m4, opendir.m4:
	* rename.m4, rmdir.m4, setitimer.m4, setlocale.m4, strerror.m4:
	* strlen.m4, structtm.m4, sys_errlist.m4, ualarm.m4, unistd.m4:
	* unlink.m4, usleep.m4, vfork.m4: removed files that only define
	*_CONST or something similar
	* unix.d: removed some duplicate prototypes

2003-08-02  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c, oracle.lisp, oiface.h:
	support access to Oracle's BLOB/CLOB data types

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

	new module for interface to netica <http://norsys.com/netica_c_api.htm>
	* modules/netica: new directory

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

	* calls.c (FILE-LOCK): ported to win32;
	use fcntl(2) instead of flock(2) on UNIX;
	allow locking section of the file

2003-08-01  Stefan Kain  <stefan.kain@freenet.de>

	* realelem.d: translated all comments

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

	* stream.d (open_file_stream_handle): use ChannelStream_ihandle()
	* genclisph.d (OS_filestream_error): export

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

	these days *.h files contain good prototypes - do not duplicate them
	* foreign1.lisp (*output-c-functions*, *output-c-variables*):
	new variables, default to NIL
	(finalize-coutput-file): do not write *FUNCTION-LIST* (resp.
	*VARIABLE-LIST*) to *COUTPUT-STREAM* when
	*OUTPUT-C-FUNCTIONS* (resp. *OUTPUT-C-VARIABLES*) is NIL

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

	* misc.d (GETENV, clisp_setenv): use `environ', not win32-specific
	API, but declare `environ' outside the function scope for mingw/g++

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

	* modules/syscalls/calls.c: all *-INTERNAL functions
	call structure BOA constructors (thus they are not INTERNAL)
	* modules/syscalls/posix.lisp: all structures have BOA
	constructors, removed the wrappers

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

	* genclisph.d (charp): enabled
	* modules/syscalls/calls.c (FILE-INFO, MAKE-SHORTCUT)
	(SHORTCUT-INFO) [WIN32_NATIVE, UNIX_CYGWIN32]: new functions
	* modules/syscalls/posix.lisp (file-info, shortcut-info)
	[WIN32_NATIVE, UNIX_CYGWIN32]: new structures
	* install.bat: run the full linking set
	* install.lisp: create a shortcut

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

	* genclisph.d (to_time_t_) [UNIX_CYGWIN32]: export
	* modules/dirkey/dirkey.c (to_time_t_) [UNIX_CYGWIN32]: moved to...
	* unixaux.d (to_time_t_) [UNIX_CYGWIN32]: here

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

	* spvw.d (main): when non-interactive, guard LOAD for "-i" with
	SYS::BATCHMODE-ERRORS to avoid infinite loop on error

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

	pushSTACK(listof()) and STACK_1=listof() are illegal because
	listof() (and vectorof() &c) modify the STACK,
	so the whole expression becomes undefined!
	* control.d (SET): avoid undefined expressions
	* array.d (test_displaced, ADJUST-ARRAY): ditto
	* eval.d (interpret_bytecode_): ditto
	* pathname.d (directory_search_scandir): ditto
	* socket.d (SOCKET-SERVICE-PORT): ditto

2003-07-28  Stefan Kain  <stefan.kain@freenet.de>

	* flo_rest.d: translated all comments

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

	* pathname.d (directory_search) [WIN32_NATIVE]: save some consing
	(directory_search_scandir) [WIN32_NATIVE]: fixed a GC-safety bug:
	use O(lnk_string) instead of allocating a new string each time
	* constobj.d (lnk_string) [WIN32_NATIVE]: new string

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

	* misc.d (clisp_setenv) [WIN32_NATIVE]: use SetEnvironmentVariable()
	(GETENV) [WIN32_NATIVE]: use GetEnvironmentStrings() and
	FreeEnvironmentStrings() instead of the fictitious `environ' global
	(push_envar): new function, extracted from GETENV

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

	* encoding.d, stream.d, socket.d, misc.d, win32aux.d:
	fixed g++/mingw compilation

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

	* genclisph.d, encoding.d (cstombs_f, cslen_f) [!UNICODE]: macros
	* modules/dirkey/dirkey.c: undef UNICODE before including clisp.h;
	no need for *_encoding without CLISP_UNICODE
	* modules/syscalls/calls.c: define WINVER before including clisp.h;
	no need for *_encoding without CLISP_UNICODE

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

	* modules/syscalls/configure.in: check for signgam
	* modules/syscalls/calls.c (LGAMMA): use the check

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

	* modules/syscalls/calls.c, pathname.d (hardlink_file, symlink_file):
	moved from pathname.d to calls.c
	* genclisph.d (Symbol_name, builtin_stream_p): enabled
	fixed the HANDLE problems

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

	* Makefile.devel (CONFIGURES): added config.h.in in wildcard,
	regexp, dirkey and syscall, use autoheader to generate them
	* m4/cc-void.m4 (RL_VOID): fixed the AC_DEFINE call

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

	Converted syscall to a module
	* Makefile.devel (CONFIGURES): added syscalls
	* configure, makemake.in (--with-dir-key): removed option
	* modules/syscalls: new directory
	* genclisph.d: added some stuff to support syscalls
	* constobj.d, constpack.d, constsym.d, pathname.d, socket.d:
	* spvw.d, stream.d, subr.d, subrkw.d: removed syscall-specific stuff
	* pathname.d (if_does_not_exist_symbol, if_exists_symbol): added
	* socket.d (addr_to_string, resolve_host1, resolve_host): added
	* stream.d (file_stream_truename, open_file_stream_handle): added
	* posix.lisp, posixmath.d, posixmisc.d: removed

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

	* utils/modprep.c: DEFUN can specify side-effect-class

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

	* error.d (check_posfixnum): new function
	* io.d (PPRINT-INDENT): use check_real()
	* lisparit.d (fehler_not_N): replaced with check_number()
	(fehler_not_R): replaced with check_real()
	(fehler_not_F): replaced with check_float()
	(fehler_not_RA): replaced with check_rational()
	(fehler_not_I): replaced with check_integer()
	(to_double, to_int): new functions for modules
	made these changes pervasive in the whole file
	* lispbib.d (fehler_not_R): replaced with check_real()
	(check_posfixnum): declared

2003-07-24  Sam Steingold  <sds@gnu.org>

	* genclisph.d (SAFETY): export
	(type_data_object): fixed (now fixnum() works)
	(svector_): fixed (now TheSvector()->data works)
	(symbolp): uncommented
	(stringp): fixed
	(array_displace_check): replaces iarray_displace_check()
	* dirkey.c (SET-DKEY-VALUE): use array_displace_check() instead
	of iarray_displace_check(); many cosmetic tweaks
	* spvw_debug.d (nobject_out1): handle structures and fpointers

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

	Converted dirkey to a module
	* constobj.d, constpack.d, constsym.d, defs1.lisp, describe.lisp:
	* init.lisp, io.d, lispbibl.d, predtype.d, spvw.d, subr.d:
	* subrkw.d, type.lisp: removed dirkey-specific stuff
	* Makefile.devel (CONFIGURES): added dirkey, oracle, fastcgi
	* configure, makemake.in (--with-dir-key): removed option
	* encoding.d (cslen_f, cstombs_f): new functions that enable
	with_string_0() in modules
	* genclisph.d: enabled a LOT of stuff to support dirkey
	* modules/dirkey: new directory
	* dirkey.d, dirkey1.lisp: removed

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

	* lispbibl.d (reset): updated the prototype
	* eval.d (reset): accept count arg
	* control.d (UNWIND-TO-DRIVER): use reset() for everything
	* spvw_alloca.d (memfile): updated reset() call
	* spvw_allocate (error_speicher_voll): ditto
	* spvw.d (SP_ueber, STACK_ueber): ditto
	* error.d (INVOKE-DEBUGGER): ditto
	* debug.d (break_driver): ditto

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

	* record.d (fehler_record_length): fixed stack

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

	* _clisp.c (main): use shell_quote() and real_path()
	for CreateProcess()
	* w32shell.c: new file (extracted from pathname.d)
	* makemake.in (clisp) [WIN32_NATIVE]: put the icon into the
	executable; depend on w32shell.c
	(pathname.o) [WIN32_NATIVE]: depend on w32shell.c
	* pathname.d, spvw_memfile.d [WIN32_NATIVE]:
	renamed TrueName() to real_path()

2003-07-18  Sam Steingold  <sds@gnu.org>

	* condition.lisp (check-value): CONTINUE :INTERACTIVE
	ASSERT-RESTART-NO-PROMPTS to avoid infinite loops

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

	* makemake.in (.gdbinit): substitute ${LEXE} for .run on w32
	(lisp.a): do not use lisp.o on w32 because it leads to a crash on
	the first statement in main() (when built --with-debug)

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

	* spvw.d (SP_ueber, STACK_ueber): flush stderr and guard fputs()
	and fflush() with begin_system_call()/end_system_call()

2003-07-15  John Hinsdale <hin@alma.com>

	* modules/oracle/orafns.c,oracle.lisp: support access to
	Oracle's LONG, RAW and LONG RAW data types

2003-07-10  Sam Steingold  <sds@gnu.org>

	* comptran.d (N_sin_N, N_cos_N): fixed GC-safety bugs

2003-07-10  Sam Steingold  <sds@gnu.org>

	* error.d (check_fdefinition): handle :CONTINUE restart from
	check_value()
	* condition.lisp (check-value): permit :CONTINUE restart when the
	place is (FDEFINITION ...)

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

	* errwin32.d (OS_error, OS_file_error, SOCK_error):
	avoid a warning by calling NOTREACHED at the end

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

	* configure: pass --win32gcc to makemake instead of ${target}
	* makemake.in: rely on autoconf for win32gcc

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

	* predtype.d (equalp): fixed a crash in (EQUALP '(0 1) '(#P""))

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

	* m4/filecharset.m4: avloid ":" on __MINGW32__
	just like we do with __CYGWIN32__

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

	* compiler.lisp (c-MAP-on-CARs, c-MAP-on-LISTs): fixed the
	2003-02-09 patch: avoid bytecode duplication

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

	* makemake.in (testsuite): pass LEXE to make in suite

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

	* control.d (PROCLAIM): fixed STACK indexing for CONSTANT-(NOT)INLINE

2003-07-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (directory_namestring_parts) [WIN32_NATIVE,
	PATHNAME_UNIX]: include host parts.
	(whole_namestring): do not call host_namestring_parts when
	directory_namestring_parts includes it.
	(assure_dir_exists) [WIN32_NATIVE]: fixed bugs.
	(assure_dir_exists) [PATHNAME_UNIX]: do not insert host parts.

2003-07-01  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe1): better whitespace for documentation

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

	* spvw_debug.d (nobject_out1): accept third argument `level'
	(nobject_out): pass 5 as the level to avoid circularity problems

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

	* spvw_circ.d (get_circ_unmark, get_circ_mark): handle
	Rectype_Weakpointer separately

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

	* spvw_debug.d (nobject_out1): new function, extracted from
	nobject_out() to do all the recursive work
	(nobject_out): call it; now nobject_out() does fflush() and
	begin_system_call()/end_system_call() just once

2003-06-23  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (alloca) [UNIX_CYGWIN32]: use __builtin_alloca()

2003-06-19  Sam Steingold  <sds@gnu.org>

	* type.lisp (canonicalize-type): canonicalize (VECTOR NIL) correctly
	* predtype.d (CLASS-OF): handle (ARRAY NIL) correctly
	* describe.lisp (describe-object): report (ARRAY NIL)
	as having no storage
	* io.d (pr_array): print (ARRAY NIL NIL) properly

2003-06-19  Sam Steingold  <sds@gnu.org>

	added (SETF WEAK-POINTER-VALUE)
	* spvw_garcol.d (gar_col_normal): when the value of the weak
	pointer is GC-invariant, remove it from O(all_weakpointers)
	* lispbibl.d (weakpointer_broken_p): depend on wp_value (not wp_cdr)
	* record.d (mk_weakpointer): wp_cdr for GC-invariant values is unbound
	(MAKE-WEAK-POINTER, WEAK-POINTER-P, WEAK-POINTER-VALUE): fixed seclass
	(check_weak_pointer): new function
	(WEAK-POINTER-VALUE): use it
	(%SET-WEAK-POINTER-VALUE): implemented
	* constsym.d, subr.d (set_weak_pointer_value): added
	* places.lisp (WEAK-POINTER-VALUE): added defsetf

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

	* spvw.d (main) [WIN32_NATIVE]: permit `-K'
	clisp-link.sh now works on mingw

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

	* stream.d (make_file_stream): do not push :PROBE streams onto
	O(open_files) because that would prevent deleting this file and
	:PROBE streams do not have to be closed anyway

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

	* makemake.in [win32gcc]: build lisp.a on mingw and do stage
	comparison (make check) unix-style, not dos-style
	* configure [cygwin/mingw]: work around the _WinMain@16 libcharset
	problem with --enable-shared=no;  this is a FIXME for Bruno

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

	* pathname.d (TrueName) [WIN32_NATIVE]: return bool; made global;
	fixed a bug with overwriting "nameout" string with "resolved"
	(cpslashp): new macro, used throughout the file
	* spvw_memfile.d (loadmem) [WIN32_NATIVE]: use TrueName() to
	resolve possible symbolic links
	* lispbibl.d (TrueName): added a prototype

2003-06-12  Sam Steingold  <sds@gnu.org>

	* makemake.in: on win32gcc, translate /cygdrive/ prefixes to the
	normal win32 pathnames (so that clisp.exe would work properly)
	(stage): use the same check for defining ${LN_S} to copy and
	for using it as a copier (as opposed to symbolic linker)

2003-06-12  Sam Steingold  <sds@gnu.org>

	* pathname.d (simplify_directory): fold "*" into :WILD
	and "**" into :WILD-INFERIORS
	(subdir_diff): ignore logical
	(directory_list_valid_p): accept :WILD

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

	* io.d (check_readtable): new function, replaces function
	fehler_readtable() and macro check_readtable()
	(COPY-READTABLE): modified accordingly
	(SET-SYNTAX-FROM-CHAR): ditto, also
	use check_char() instead of fehler_char()
	(test_readtable_arg, test_readtable_null_arg, test_nontermp_arg):
	accept an argument instead of using popSTACK()
	(SET-MACRO-CHARACTER, GET-MACRO-CHARACTER, SET-READTABLE-CASE)
	(MAKE-DISPATCH-MACRO-CHARACTER, SET-DISPATCH-MACRO-CHARACTER)
	(GET-DISPATCH-MACRO-CHARACTER, READTABLE-CASE):
	modified accordingly, use check_char() instead of fehler_char()

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

	* init.lisp (*suppress-check-redefinition*): new user variable
	(check-redefinition): respect it

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

	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgwin32.lisp:
	no need to prefix GETENV with "SYS::"
	* cfgsunux.lisp, cfgunix.lisp: ditto
	(short-site-name): read from uname(1) -n
	(long-site-name): read from uname(1) -a

2003-06-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.f (get_screen_and_display): fixed a typo
	use listof() instead of funcall(L(list)) throughout the file
	(coerce_result_type): new function, used by all functions that
	take a :RESULT-TYPE argument
	(coerce_it): removed (it was used inconsistently and
	coerce_result_type() is more efficient anyway)
	(SCREEN-DEPTHS): fixed a crash due to not pushing the visual info
	lists on the stack (they were just discarded!)

2003-06-06  Sam Steingold  <sds@gnu.org>

	* encoding.d (CONVERT-STRING-FROM-BYTES): fixed a bug in handling
	of indirect byte vectors
	Reported by Adam Warner <lists@consulting.net.nz>

2003-06-06  Will Newton  <will@misconception.org.uk>

	* modules/clx/new-clx/clx.f: fix the build with gcc 3.3,
	which has some changes with respect to multi-line strings

2003-06-06  Bruno Haible  <bruno@clisp.org>

	* clos.lisp (analyze-method-description): Call %call-next-method
	even if there is no next method.
	(%call-next-method): When there is no next method, call
	%no-next-method here.

2003-06-05  Sam Steingold  <sds@gnu.org>

	* predtype.d (TYPE-OF): return KEYWORD for keyword symbols
	and BIT for 0 and 1

2003-06-05  Sam Steingold  <sds@gnu.org>

	* pathname.d (LAUNCH) [WIN32_NATIVE]: fixed GC-safety

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

	* pathname.d (LAUNCH): :WAIT defaults to T,
	return child PID when the :WAIT is NIL

2003-05-29  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 738107 ]: line number of output streams
	* io.d (pr_stream): do not print lineno for output streams
	Should we keep both lineno and ch_lpos for all streams?!

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

	* constobj.d (type_packname): include CHARACTER, as per ANSI spec
	* charstrg.d (test_radix_arg, test_char_args)
	(test_char_args_upcase, test_stringsymchar_arg): recoverable
	avoid dotimes*() macro throughout the file
	* package.d (test_package_arg): recoverable

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

	* hashtabl.d (HASH-TABLE-COUNT): rehash the argument when it is
	weak and invalid because GC could reduce the count

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

	* spvw_debug.d (nobject_out): handle hash tables

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

	* hashtabl.d (rehash): fixed an "off by one" bug in user-defined HTs
	(hash_lookup): fixed a GC-safety bug in user-defined HTs

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

	* pathname.d (stringlist_to_asciizlist): always defined;
	fixed GC-safety errors
	(LAUNCH): return NIL when :WAIT was NIL
	[UNIX/RISCOS]: fixed GC-safety errors; handle :PRIORITY argument
	* unixconf.h.in (HAVE_NICE): added
	* configure.in: check for nice(2)

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

	* error.d (check_list): new function
	* lispbibl.d (check_list): declare

2003-05-24  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Concerning the CLHS/Win32 issue.
	* pathname.d (shell_quote): removed source_end parameter.
	(stringlist_to_asciizlist) [WIN32_NATIVE]: new function.
	(LAUNCH) [WIN32_NATIVE,UNIX/RISCOS]: use it.
	(SHELL-EXECUTE): new function - a wrapper for ShellExecute.
	Shell means GUI shell, not the command.com.
	* constsym.d: declared SHELL-EXECUTE in EXT.
	* subr.d: ditto.
	* win32.d: include <shellapi.h>
	* makemake.in: link against shell32.lib
	* clhs.lisp (browse-url) [WIN32]: start default browser by default.

2003-05-24  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* spvw_sigsegv.d (stackoverflow_handler): fixed MSVC compilation.

2003-05-22  Bruno Haible  <bruno@clisp.org>

	* spvw_sigsegv.d (stackoverflow_handler): Add support for restoring
	STACK on hppa-hpux, alpha-freebsd, i386-openbsd, alpha-netbsd.

2003-05-22  Bruno Haible  <bruno@clisp.org>

	Preliminary support for x86_64 CPU.
	* lispbibl.d (AMD64): New macro.
	* spvw_page.d: Treat AMD64 like IA64.

2003-05-22  Sam Steingold  <sds@gnu.org>

	* loadform.lisp (make-load-form): do not define a method
	specialized to STANDARD-OBJECT - ANS requires an error there

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

	* clos.lisp (no-method-caller): new function
	(compute-dispatch): use it instead of calling NO-APPLICABLE-METHOD
	directly to avoid funcalling the return value of NO-APPLICABLE-METHOD
	(compute-effective-method): ditto for NO-APPLICABLE-METHOD and
	NO-PRIMARY-METHOD; removed the loop

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

	* error.d (check_fdefinition): fixed stack handling
	(check_function): get(sym,ind) may not be a symbol
	* eval.d (eval1): do not use apply() after check_fdefinition()

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

	* disassem.lisp (disassemble, disassemble-machine-code): return
	NIL, as per ANSI CL spec

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

	MAKE-INSTANCES-OBSOLETE now does nothing except for issuing a
	warning: there is no point in obsoleting instances if the class
	has not been redefined
	* clos.lisp (ensure-class): incf CLASS-ID here
	(make-instances-obsolete): do not incf CLASS-ID here

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

	even more errors are now recoverable
	* control.d (FUNCTION): use check_funname() and
	check_fdefinition() instead of signalling errors
	(fehler_undef_function): removed
	(SYMBOL-FUNCTION, FDEFINITION): use check_fdefinition()
	instead of fehler_undef_function()
	(check_setq_body): GC-unsafe due to using
	check_symbol_non_constant() instead of test_symbol_non_constant()
	(SET, MAKUNBOUND, MULTIPLE-VALUE-SETQ): use
	check_symbol_non_constant() instead of test_symbol_non_constant()
	(check_varspec): new function
	(make_variable_frame, COMPILER-LET): use it, also use
	check_symbol_non_constant() instead of test_symbol_non_constant()
	(PROGV): progv() is GC-unsafe now
	(PROCLAIM): use check_funname() instead of fehler_kein_symbol()
	* error.d (fehler_kein_symbol): removed
	(check_symbol_non_constant): replaces test_symbol_non_constant()
	(check_symbol_special, check_fdefinition): new functions
	(check_function): replaces fehler_function()
	* eval.d (progv): GC-unsafe due to using
	check_symbol_non_constant() instead of test_symbol_non_constant()
	(get_closure): use check_symbol_non_constant()
	instead of test_symbol_non_constant()
	(fehler_undefined): removed
	(coerce_function, eval1, apply, funcall): use check_fdefinition()
	instead of fehler_undefined()
	(interpret_bytecode_) [cod_symbol_function]:
	[cod_const_symbol_function, cod_const_symbol_function_push]:
	[cod_const_symbol_function_store]:
	use check_symbol() and check_fdefinition()
	instead of fehler_kein_symbol() and fehler_undefined()
	(funcall_iclosure): push arguments on STACK
	before calling fehler_key_odd()
	* foreign.d (EXEC-ON-STACK, CALL-WITH-FOREIGN-STRING):
	use check_function() instead of fehler_function()
	* lispbibl.d (progv): documented as GC-unsafe
	(fehler_undef_function, fehler_kein_symbol, fehler_function)
	(test_symbol_non_constant): removed
	(check_symbol_non_constant, check_fdefinition, check_function): added
	(COERCE): use use check_fdefinition()
	instead of fehler_undef_function()
	* record.d (MAKE-MACRO, MAKE-FUNCTION-MACRO): use check_function()
	instead of fehler_function()
	* sequence.d (seq_boolop): ditto
	* symbol.d (%PUTD): ditto

2003-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Solve problems with CLHS and INSPECT on win32
	* clhs.lisp (BROWSE-URL): use EXT::LAUNCH on win32.
	* runprog.lisp (run-shell-command): don't try to use #\&
	on win32.

2003-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (LAUNCH) [WIN32_NATIVE]: small fixes.
	(LAUNCH) [UNIX || RISCOS]: implemented for these
	systems (like EXECUTE). Moved out of HAVE_SHELL.
	* subr.d (LAUNCH): changed conditionals for declaration.
	* subrkw.d: ditto.
	* constsym.d: ditto.

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

	* dribble.lisp (check-dribble-stream): new function
	(dribble-stream-source, dribble-stream-target): use it

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

	fixed bug #[ 737541 ]: describe on unnamed function and on macro
	* describe.lisp (describe-object): MACRO:
	suggest (DISASSEMBLE (MACRO-FUNCTION ...))
	FUNCTION: do not suggest disassembling anonymous function

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

	DEFINE-HASH-TABLE-TEST: user-defined hash table tests
	* lispbibl.d (Hashtable): added slots ht_test and ht_hash
	(hashtable_test): removed
	(ht_test_code): added
	(hash_table_test): declare
	* hashtabl.d (hashcode5): new function - for user-defined ht_test
	(hashcode_raw, hashcode_cook): split out from hashcode()
	(hashcode): use them; may trigger GC for user-defined ht_test
	(rehash, hash_lookup): may trigger GC for user-defined ht_test
	(prepare_resize, check_weak): the error is now recoverable
	(hash_prepare_store): use hashcode_raw() and hashcode_cook() to
	call the user hash function just once
	(MAKE-HASH-TABLE): accept user-defined ht_test
	all errors are now recoverable
	(fehler_hashtable): replaced with check_hashtable()
	(shifthash): modified for the GC unsafe hash_lookup()
	(hash_table_test): new function
	(PUTHASH, REMHASH, MAPHASH, CLRHASH, HASH-TABLE-COUNT)
	(HASH-TABLE-REHASH-SIZE, HASH-TABLE-REHASH-THRESHOLD)
	(HASH-TABLE-SIZE, HASH-TABLE-TEST, HASH-TABLE-ITERATOR)
	(HASH-TABLE-WEAK-P, %SET-HASH-TABLE-WEAK-P, CLASS-TUPLE-GETHASH):
	use check_hashtable() instead of fehler_hashtable()
	* defs2.lisp (define-hash-table-test): define
	* init.lisp (define-hash-table-test): export
	* io.d (pr_orecord): use hash_table_test()
	* predtype.d (hash_table_equalp): use ht_test_code()

2003-05-15  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_lend_handle): handletype may be NULL
	(stream_fd): removed
	* lispbibl.d (stream_fd): removed
	* pathname.d (FILE-STAT-INTERNAL, copy_attributes_and_close):
	use stream_lend_handle() instead of stream_fd()

2003-05-15  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-STREAM): implemented
	* constsym.d, subr.d, subrkw.d (make_stream): added
	* init.lisp (MAKE-STREAM): export
	* lispbibl.d (stream_lend_handle): declared

2003-05-15  Jörg Höhle  <hoehle@users.sourceforge.net>

	* modules/bindings/linuxlibc6/linux.lisp [LINUX]: several fixes
	(errno, putpwent, c-struct group): fixed
	(getpwent, fgetpwent, getpwuid, getpwnam): return c-ptr-null
	(getgrent, fgetgrent, getgrgid, getgrnam): return c-ptr-null
	(readdir): return c-ptr-null
	(seed48): fixed arg, but extern prototyping is still broken

2003-05-14  Sam Steingold  <sds@gnu.org>

	stdio handles are now duped before being inserted into LISP
	streams, so they are never closed on user request
	* stream.d (handle_to_stream): new function
	(make_standard_input, make_standard_output): new macro
	(make_terminal_io, init_standard_io): use them
	(init_streamvars): use handle_to_stream()

2003-05-14  Sam Steingold  <sds@gnu.org>

	* pathname.d (handle_dup): new global function
	(LAUNCH, DUPLICATE-HANDLE): use it
	* lispbibl.d (handle_dup1): new macro

2003-05-14  Sam Steingold  <sds@gnu.org>

	* constobj.d (type_priority) [WIN32_NATIVE]: added
	* pathname.d (LAUNCH) [WIN32_NATIVE]: use it (GC-safety bug fix!)
	(allocate_cons_v): removed
	* error.d (fehler_key_odd): fixed a GC-safety bug

2003-05-14  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp: BLOCK-OPEN and TAGBODY-OPEN not only have
	undefined values, but invalidate value1 due to consing!
	(traverse-anode): clear the current known value (*current-value*
	and *current-vars*) when encountering BLOCK-OPEN or TAGBODY-OPEN

2003-05-13  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (FOREIGN-SIZE): remove unreferenced function

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

	* lispbibl.d (check_uint8, check_sint8, check_uint16, check_sint16)
	(check_uint32, check_sint32, check_uint64, check_sint64, check_uint)
	(check_sint, check_ulong, check_slong, check_ffloat, check_dfloat):
	functions returning the correct argument
	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64)
	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong)
	(fehler_ffloat, fehler_dfloat): removed
	* error.d (fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64)
	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong)
	(fehler_ffloat, fehler_dfloat): replaced with check_*()
	* genclisph.d (...): ditto
	* stream.d (rd_by_array_dummy): use check_uint8()
	instead of fehler_uint8()
	* foreign.d (OFFSET, FOREIGN-LIBRARY, FOREIGN-LIBRARY-VARIABLE):
	use check_sint32() correctly
	(check_library): replaces test_library()

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

	* type.lisp (built-in-class-p): eval only when loading source
	* clos.lisp (built-in-class-p): do not proclaim notinline

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

	* pathname.d (MERGE-PATHNAMES): fixed a crash: the address
	of the LHS may be computed before a GC in merge_dirs()
	[this is a GC-safety bug not detected by DEBUG_GCSAFETY]

2003-05-12  Jörg Höhle  <hoehle@users.sourceforge.net>

	* pathname.d (DYNLOAD-MODULES): more error checking

2003-05-12  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp (exec-with-foreign-string): new internal function
	to let FFI:WITH-FOREIGN-STRING to expand the same with or without
	unicode.
	* foreign.d (call_with_foreign_string): fixed --without-unicode

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

	function-name error can now be recovered from
	* error.d (fehler_funname_source, fehler_funname_type): merged
	into check_funname()
	(fehler_key_odd, fehler_key_notkw, fehler_key_badkw): added
	* lispbibl.d (fehler_funname_source, fehler_funname_type):
	replaced with check_funname()
	(fehler_key_odd, fehler_key_notkw, fehler_key_badkw): declare
	* control.d (FUNCTION, FLET, LABELS): use check_funname()
	instead of fehler_funname_source()
	(funname_to_symbol): use check_funname()
	instead of fehler_funname_type()
	* eval.d (eval1): use check_funname()
	instead of fehler_funname_source()
	(apply, funcall): use check_funname()
	instead of fehler_funname_type()
	(fehler_key_unpaarig, fehler_key_notkw, fehler_key_badkw): removed
	(check_for_illegal_keywords): accept an additional caller arg
	* record.d (fehler_key_odd): removed
	(keyword_test): use fehler_key_notkw() and fehler_key_badkw()
	* trace.lisp (check-function-name): replaces error-function-name
	(check-traceable): modified to use check-function-name
	* clos.lisp (documentation): ditto
	* cmacros.lisp (compiler-macro-function): ditto

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

	* type.lisp (%the): ANSI compliance: following issue 348, ignore
	discrepancies between the number of values and types

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

	* compiler.lisp (compile-toplevel-form): do not write the result
	of (COMPILE ... NIL) into the FAS files (e.g., (eval-when (eval))
	should not produce any test in the FAS file)

2003-05-09  Jörg Höhle  <hoehle@users.sourceforge.net>

	* inspect.lisp (with-http-output): fixed --without-unicode
	to send Content-type: text/html without charset.

2003-05-07  Sam Steingold  <sds@gnu.org>

	* encoding.d (ENCODING-LINE-TERMINATOR): new function
	* init.lisp (ENCODING-LINE-TERMINATOR): exported from EXT
	* constsym.d, subr.d (encoding_line_terminator): added

2003-05-07  Sam Steingold  <sds@gnu.org>

	replaced fehler_encoding() with check_encoding()
	* error.d (check_encoding): new function, based on
	test_external_format_arg() in stream.d
	(fehler_encoding): removed
	* lispbibl.d (check_encoding, fehler_encoding): ditto
	* foreign.d (CALL-WITH-FOREIGN-STRING): use check_encoding()
	instead of fehler_encoding()
	* encoding.d (CHARSET-TYPEP, ENCODING-CHARSET, CHARSET-RANGE)
	(SET-DEFAULT-FILE-ENCODING, SET-PATHNAME-ENCODING)
	(SET-TERMINAL-ENCODING, SET-FOREIGN-ENCODING, SET-MISC-ENCODING)
	(CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES): ditto
	* stream.d (test_external_format_arg): turned in to a macro that
	calls check_encoding()

2003-05-06  Jörg Höhle  <hoehle@users.sourceforge.net>

	* ffcall/avcall/avcall.h.in (av_overflown): added this macro to
	check when buffer[AV_ALIST_WORDS] is too small for av_call()
	* foreign.d (FOREIGN-CALL-OUT): use it (bug #[ 654718 ])

2003-05-05  Sam Steingold  <sds@gnu.org>

	* backquote.lisp (bq-vec-expand): fixed the unoptimized case
	* compiler.lisp (compile-file): finish listing-stream with a newline
	(compile) [CLISP-DEBUG]: bind *FORM* for TRACE (bug #[ 731248 ])
	* control.d (UNWIND-TO-DRIVER): call unwind_upto() before
	driver() (bug #[ 731251 ])

2003-05-05  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 732767 ]: STRING-INFO does not work with displaced strings
	* charstrg.d (STRING-INFO): handle displaced strings

2003-05-05  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 732656 ]: (proclaim '(notinline ...)) ignored
	* control.d (PROCLAIM): fixed STACK indexing for (NOT)INLINE

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

	* spvw_debug.d (bt_out): extracted from back_trace_out()
	(back_trace_out): use it
	(back_trace_depth, back_trace_out): fully check for circularities

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

	* stream.d (var_stream): check whether the stream is open
	[broken since 2002-04-01]

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

	* acorn.d, amiga.d, unix.d (stderr_handle): added
	* amigaaux.d (init_amiga): initialize it

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

	* lispbibl.d (STACK_register) [__GNUC__ >= 3]: disable.
	This is a workaround for a GCC3 bug(s?) which manifest itself
	in CLISP bugs #[ 710737 ]: CLISP+readline = core dump
	and #[ 723097 ]: cast to char array crashes.

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

	* foreign.d (EXEC-ON-STACK): use UNWIND-PROTECT to always clean up

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

	fixed bug #[ 729524 ]: ffi:c-struct corrupt
	* foreign1.lisp (with-name/options): new macro
	(parse-components, c-struct-constructor, parse-c-type)
	(deparse-c-type, def-c-struct): C-STRUCT typespec is
	short again: (C-STRUCT name+opt slots ....)

2003-05-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	* pathname.d (LAUNCH): deobfuscated according to General Line.
	Supported -1 as return value.
	use check_string() instead of fehler_string()

2003-05-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fixed msvc (and amiga ?) build.
	* errwin32.d: added second argument start_driver_p = true
	to calls.
	* erramiga.d: same.
	* win32.d (MyCreateProcess): changed declaration command is
	LPTSTR, not LPCTSTR.
	* win32aux.d (MyCreateProcess): same + fixed an error in
	old style declaration (introduced 2003-04-27).

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

	* clos.lisp (allocate-instance, shared-initialize)
	(reinitialize-instance, make-instance):
	add &key &allow-other-keys to the signature
	(initial-reinitialize-instance): collect keywords from methods
	for REINITIALIZE-INSTANCE (in addition to SHARED-INITIALIZE)

2003-05-01  Sam Steingold  <sds@gnu.org>

	make some errors recoverable
	* condition.lisp (report-new-value, report-no-new-value)
	(report-new-values): removed
	(prompt-for-new-value): take an optional INSTEAD-P argument
	(check-type, assert, retry-loop): must cons up the reporter
	at macroexpansion time
	(check-value): install restarts and signal the condition
	* constsym.d (check_value): added
	* error.d (end_error): may return when the new argument,
	start_driver_p, is false
	(fehler): pass true as start_driver_p to end_error()
	(check_value): new function, calls CHECK-VALUE
	(fehler_symbol, fehler_string): removed
	(check_symbol, check_char, check_string): added
	* errunix.d (OS_error, OS_file_error): pass true as
	start_driver_p to end_error()
	* init.lisp (make-condition): pre-draw for clos.lisp
	* lispbibl.d (check_string, check_symbol, check_char): declare
	(fehler_symbol, test_symbol, fehler_string): removed
	* macros2.lisp (report-one-new-value-string)
	(report-new-values-string): return a format string with 1 argument
	(report-one-new-value-string-instead): new function
	(assert): call FORMAT on REPORT-*NEW-VALUE?-STRING
	* charstrg.d (coerce_ss, coerce_imm_ss, coerce_imm_normal_ss)
	(string_concat): use check_string() instead of fehler_string()
	(test_string_limits_ro): ditto - it is now GC-unsafe!
	(test_char_arg): superseded by check_char()
	(STANDARD-CHAR-P, GRAPHIC-CHAR-P, CHAR-WIDTH, STRING-CHAR-P)
	(BASE-CHAR-P, ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P)
	(BOTH-CASE-P, DIGIT-CHAR-P, ALPHANUMERICP, CHAR-CODE, CHAR-UPCASE)
	(CHAR-DOWNCASE, CHAR-INT, CHAR-NAME): use check_char()
	instead of test_char_arg()
	(CHAR, STORE-CHAR, SCHAR, STORE-SCHAR): use check_char() instead
	of test_char_arg() and check_string() instead of fehler_string()
	* clos.lisp (slot-unbound): use CHECK-VALUE
	* control.d (fehler_no_value): superseded by ...
	(check_global_symbol_value): new function
	(%SYMBOL-VALUE, SYMBOL-VALUE): use check_symbol() instead of
	test_symbol() and check_global_symbol_value() instead of
	fehler_no_value()
	(SYMBOL-FUNCTION, BOUNDP, SPECIAL-OPERATOR-P, BLOCK)
	(MACRO-FUNCTION, PROCLAIM, RETURN-FROM): use check_symbol()
	instead of test_symbol()
	(test_env): use check_value - it is now GC-unsafe!
	* dirkey.d (test_dir_key): ditto
	(DIR-KEY-OPEN, DKEY-SEARCH-ITERATOR, init_iteration_node)
	(DIR-KEY-VALUE, SET-DKEY-VALUE, REG_KEY_DEL):
	use check_string() instead of fehler_string()
	* eval.d (SPECIAL-VARIABLE-P): use use check_symbol()
	instead of test_symbol()
	(sym_value_place, check_local_symbol_value): new functions
	(sym_value): now a macro that calls sym_value_place()
	(eval1): use check_local_symbol_value()
	* foreign.d (FOREIGN-LIBRARY): use check_string() instead of
	fehler_string()
	(FOREIGN-LIBRARY-FUNCTION): coerce_ss() makes the stringp()
	check unnecessary
	* genclisph.d (fehler_symbol, check_char, fehler_string): removed
	* i18n.d (SET-CURRENT-LANGUAGE): use check_symbol() instead of
	test_symbol() and check_string() instead of fehler_string()
	(GETTEXT, NGETTEXT): use check_string() instead of fehler_string()
	* misc.d (GETENV, SETENV, REGISTRY, MODULE-INFO): ditto
	* package.d (MAKE-SYMBOL, test_intern_args): ditto
	(UNINTERN): use check_symbol() instead of fehler_symbol()
	* pathname.d (SHELL): treat nil as unbound
	(SHELL, LAUNCH, DYNLOAD-MODULES) use check_string()
	instead of fehler_string()
	* predtype.d (FIND-CLASS): use check_symbol()
	instead of fehler_symbol()
	* record.d (SYMBOL-MACRO-EXPAND): use check_symbol()
	instead of test_symbol()
	* socket.d (SOCKET-SERVICE-PORT) use check_string()
	instead of fehler_string()
	* stream.d (SOCKET-CONNECT): ditto
	(SYMBOL-STREAM): use check_symbol() instead of test_symbol()
	* symbol.d (%PUTD, %FIND-SUBR, %PROCLAIM-CONSTANT, GET, %PUTPLIST)
	(%PUT, REMPROP, SYMBOL-PACKAGE, SYMBOL-PLIST, SYMBOL-NAME): ditto
	(Symbol_function_checked): removed

2003-05-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	improved LAUNCH for win32
	* pathname.d (LAUNCH) [WIN32_NATIVE]: added new arguments:
	:ARGUMENTS, :PRIORITY, changed return value.
	No longer use MyCreateProcess.
	(shell_quote, allocate_cons_v) [WIN32_NATIVE && HAVE_SHELL]: new
	functions.
	* constsym.d (:ARGUMENTS, :PRIORITY, :HIGH, :NORMAL, :LOW)
	[HAVE_SHELL]: added new keywords.
	(:WAIT, :TERMINAL): define only when HAVE_SHELL.
	* subr.d (LAUNCH): changed declaration.
	* subrkw.d (LAUNCH): ditto.

2003-05-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* stream.d (create_output_pipe): Fixed a cut-and-paste type typo.

2003-04-30  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-lambda): accept one more argument -
	error-when-failed-p - and signal an error when it is T
	and the compilation failed
	(compile-form): pass error-when-failed-p NIL to compile-lambda
	* eval.d (get_closure): pass ewfp T to compile-lambda, thus
	(:LAMBDA () (DECLARE (COMPILE)) (LET ((:Z T)) :Z))
	now errors out instead of returning a weird function object
	* disassem.lisp (disassemble): pass ewfp NIL to compile-lambda

2003-04-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (full): no longer require "rm -rf full"
	for full to be remade

2003-04-29  Sam Steingold  <sds@gnu.org>

	fixed --without-unicode build
	* spvw_debug.d (string_out) [!UNICODE]: implemented
	* stream.d (rd_ch_array_unbuffered, wr_ch_array_unbuffered_unix)
	(wr_ch_array_unbuffered_mac, wr_ch_array_unbuffered_dos)
	(wr_ch_array_buffered_unix) [!UNICODE]: added a cast
	* inspect.lisp (*http-encoding*) [-UNICODE]: do not
	pass :CHARSET to MAKE-ENCODING
	* foreign1.lisp (with-foreign-string) [-UNICODE]: no
	CUSTOM:*FOREIGN-ENCODING* without UNICODE
	* foreign.d (CALL-WITH-FOREIGN-STRING) [!UNICODE]:
	* encoding.d (MAKE-ENCODING) [!UNICODE]: NIL charset is passed
	when initializing O(default_file_encoding); handle that

2003-04-29  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 729456 ]: --with-readline is silently ignored
	* makemake.in: fail when --with-readline is supplied but
	configure does not find a working readline

2003-04-29  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign1.lisp: added FFI:WITH-C-PLACE, FFI:C-VAR-OBJECT

2003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>

	partially restored support for --without-unicode
	* encoding.d (EXT:ENCODING-CHARSET): only with #+UNICODE
	* subr.d, constsym.d: likewise
	* stream.d (rd_ch_array_unbuffered): typo

2003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (SETF FFI:VALIDP): prevent from invalidating unique
	session FFI pointer

2003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (stream_lend_handle): strm_keyboard_handle only
	present when #define KEYBOARD

2003-04-27  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Implemented extended program launcher in win32.
	* constsym.d (LAUNCH, :terminal): added.
	* win32.d (MyCreateProcess): added error-stream to declaration.
	* win32aux.d (MyCreateProcess): implemented this addition.
	* pathname.d (SHELL) [WIN32_NATIVE]: usage of MyCreateProcess
	corrected.
	(MyDupHandle) [WIN32_NATIVE]: new helper function.
	(LAUNCH) [WIN32_NATIVE]: the launcher.
	* stream.d (sync_file_buffered): new function.
	(create_input_pipe, create_output_pipe, create_io_pipe):
	usage of MyCreateProcess corrected.
	(stream_lend_handle): new function to lend the handles.
	* subr.d (LAUNCH) [WIN32_NATIVE]: added.
	* subrkw.d (LAUNCH) [WIN32_NATIVE]: added.

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

	* clos.lisp (finalize-instance-standard-class): use DOLIST
	instead of MAPC
	(def-unbound): fixed the call (broken by the CLASS-ID patch)

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

	* array.d (ADJUST-ARRAY): fixed a GC-safety bug
	* eval.d (funcall_iclosure): fixed 2 GC-safety bugs
	* record.d (update_instance): fixed 3 GC-safety bugs
	(keyword_test): fixed last patch
	* control.d (KEYWORD-TEST): ditto

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

	* clos.lisp (ensure-class): when either the old definition or the
	new one is a DEFSTRUCT, just discard the old definition altogether

2003-04-26  Stefan Kain  <stefan.kain@freenet.de>

	* floatprint.lisp: translated all comments

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

	fixed bug #[ 726286 ]: (load :compiling t) redefinition warnings
	* clos.lisp (setf find-class): always call CHECK-REDEFINITION
	* init.lisp (check-redefinition): handle LOAD :COMPILING T;
	always reset SYS::FILE indicator to the new value
	* places.lisp (define-setf-expander, defsetf): call
	CHECK-REDEFINITION at definition time, not macroexpansion time

2003-04-25  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 726282 ]: read_form() botches STACK
	* debug.d (read_form): make sure to unbind *TERMINAL-READ-STREAM*

2003-04-25  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (STACKCHECKB): when non-0, check that we are
	unwinding a binding frame for the correct symbol
	(dynamic_unbind): accept a symbol argument
	(dynamic_unbind_g): same as old dynamic_unbind()
	* debug.d, error.d, eval.d, io.d, predtype.d, spvw_language.d:
	pass the symbol argument to dynamic_unbind() whenever possible

2003-04-25  Jörg Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (convert_to_foreign): accept FOREIGN-VARIABLE object
	for C-POINTER c-type declaration and move often used cases up in
	the long if-then-else chain

	* foreign1.lisp (allocate-shallow): fix typo,
	and export FOREIGN-POINTER

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

	* _distmakefile, makemake.in: distribute clisp.ps and put it into
	lispdocdir together with clisp.html and clisp.dvi

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

	implemented adjusting of non-adjustable arrays (Issue 5)
	* lispbibl.d (X3J13_003): removed undef
	* array.d (array_atype): new function
	(array_element_type, test_displaced): use it
	(ADJUST-ARRAY): when the argument is not adjustable,
	return a fresh array

2003-04-22  Jörg Höhle  <hoehle@users.sourceforge.net>

	* stream.d (lisp_completion): fixed misplaced end_callback()

	* encoding.d (init_encodings_2), constsym.d: complete patch
	for CHARSET:WINDOWS-1255 and -1258

	* ChangeLog: use users.sourceforge e-mail (hide other)

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

	* io.d (ANSI-PATHNAME-READER): understand Allegro CL #P(...)
	syntax which is equivalent to our #S(PATHNAME ...) syntax

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

	EQUALP on HASH-TABLEs now correctly descends the structure
	* predtype.d (hash_table_equalp): new function
	(equalp): use it to compare hash-tables

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

	* spvw_fault.d, spvw_genera1.d, spvw_genera2.d, spvw_genera3.d:
	* spvw_heap.d, spvw_memfile.d (memdump_header, memdump_page)
	(memdump_physpage_state, memdump_reloc_header, old_new_pointer)
	(physpage_state, walkstep_fun, gc_data_list): appended "_t" to
	type names; use MALLOC
	* lispbibl.d (MALLOC): new macro

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

	* control.d (KEYWORD-TEST): treat :ALLOW-OTHER-KEYS NIL correctly
	* record.d (keyword_test): ditto
	* eval.d (fehler_key_badkw): sync the message with the above

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

	* defmacro.lisp (analyze1): &WHOLE argument may be a pattern too
	(analyze-key): permit patterns as &KEY arguments (broken on 2003-03-25)

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

	* defmacro.lisp (make-macro-expansion): the environment argument
	in MACRO-FUNCTION is not optional but required
	* init.lisp (backquote, bq-nconc, defmacro): ditto

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

	* m4/rusage.m4 (CL_RUSAGE): use time(2) instead of a constant
	loop: the Moore's law has caught up with this constant already
	* m4/rlimit.m4 (CL_RLIMIT): check getrlimit() too
	* posixmisc.d (RESOURCE-USAGE-LIMITS-INTERNAL): respect
	HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE and HAVE_GETRLIMIT

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

	* package.d (make_present): if symbol is homeless, set its home
	this takes care of the Issue 194
	* clos.lisp (setf find-class): allow nil as the new-value
	this takes care of the Issue 304

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

	* spvw.d (main): when loading clisprc, use MAKE-PATHNAME
	:DEFAULTS instead of MAKE-PATHNAME + MERGE-PATHNAMES

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

	* defmacro.lisp (kwd-arg-form): new function
	(analyze-key): use it, this fixes the 2003-03-25 patch which
	treated NIL keyword arguments as unsupplied

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

	* condition.lisp (expand-restart-case): associate when ERROR-OF-TYPE
	this takes care of the item (6) in Issue 76
	(break): bind *DEBUGGER-HOOK* to NIL
	this takes care of the Issue 91
	* clos.lisp (DOCUMENTATION): accept STRUCTURE-OBJECTs and
	STANDARD-OBJECTs - this takes care of the Issue 135
	* compiler.lisp (compile-file): accept :EXTERNAL-FORMAT argument,
	as per Issue 155

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

	* stream.d (broadcast_stream_last): new function
	(BUILT-IN-STREAM-ELEMENT-TYPE): fixed a crash with SYNONYM-STREAM
	pointing to a non-built-in stream;
	handle BROADCAST-STREAM as per Issue 21
	(STREAM-EXTERNAL-FORMAT): ditto

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

	* loadform.lisp (mlf-unquote): removed
	(mlf-init-function): use SUBLIS instead of MLF-UNQUOTE
	Reported by Christophe Rhodes <csr21@cam.ac.uk>

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

	* backquote.lisp (eval-self-p): T evaluates to itself too
	(maybe-unquote): new function - the dual for MAYBE-QUOTE
	(bq-optimize-append): avoid consing up BUTLAST twice;
	do not destructively modify input lists (suggested by Kaz)
	(bq-optimize-list*): call MAYBE-UNQUOTE instead of the
	obsolete BQ-DROP-SUPERFLUOUS-QUOTES
	(bq-drop-superfluous-quotes): removed

2003-04-10  Kaz Kylheku  <kaz@ashi.footprints.net>

	* backquote.lisp (bq-optimize-vec): New function.
	(bq-vec-expand): Use it if optimization is turned on.

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

	* encoding.d (init_encodings_2): unintern CHARSET:WINDOWS-1255 and
	CHARSET:WINDOWS-1258 when CHARSET:CP1255 and CHARSET:CP1258 are void
	Reported by Jörg Höhle <hoehle@users.sourceforge.net>

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

	* reploop.lisp (make-xterm-io-stream) [UNIX]: new function
	* clos.lisp (need-gf-already-called-warning-p): new function
	(warn-if-gf-already-called): use it
	(std-remove-method): use it and not warn on removing methods when
	*WARN-IF-GF-ALREADY-CALLED* is NIL

2003-04-17  Sam Steingold  <sds@gnu.org>

	implemented feature request #[ 723360 ]: restart keyword
	commands in debugger
	* reploop.lisp (break-loop): use restart name as the command and
	:Rnum as the abbreviation; re-align help messages

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

	* constobj.d: added hs_simple_nilvector and hs_nilvector
	* predtype.d: added enum_hs_simple_nilvector and enum_hs_nilvector
	(heap_statistics_mapper): count (VECTOR NIL) objects separately

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

	implemented ANSI CLOS class forward definition
	* clos.lisp (defclass): do not require that the parents exist
	(*finalizing-now*): new variable
	(class-finalize): new function
	(ensure-class): consider the class to exist already only if it
	has been finalized
	(finalize-instance-standard-class): move all finalizations here
	(initialize-instance-standard-class): call it
	(print-object): when printing a class object, print its
	finalization status and the number of redefinitions
	(class-finalized-p, finalize-inheritance): new MOP generics
	* constsym.d (CLASS-FINALIZE): added
	* inist.lisp (class-prototype, class-finalized-p)
	(finalize-inheritance): re-export from EXT
	* record.d (do_allocate_instance, %MAKE-INSTANCE): call
	CLASS-FINALIZE when the CLASS-PRECEDENCE-LIST is void

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

	Implemented ANSI CL ENSURE-GENERIC-FUNCTION
	* clos.lisp (ensure-generic-function): new generic function
	(*gf-warn-on-removing-all-methods*): removed
	(do-defgeneric): do not remove the existing methods;
	check signature congruence instead
	(make-instance-standard-class, make-instance-structure-class):
	use (SETF FDEFINITON) instead of DEFUN: this avoids 2 warnings,
	and should speed things up a tiny little bit
	* init.lisp (ensure-generic-function): export

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

	* pprint.lisp (pprint-logical-block): avoid a package-lock cerror
	Reported by Christophe Rhodes <csr21@cam.ac.uk>

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

	* compiler.lisp (c-EVAL-WHEN): use FCASE; correctly handle
	:EXECUTE/non-top-level; :EXECUTE is now _NOT_ the same as EVAL

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

	* macros1.lisp (fcase): DEFMACRO, not DEFMACRO-SPECIAL
	so that it will also work in interpreted code

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

	implemented MAKE-INSTANCES-OBSOLETE and
	UPDATE-INSTANCE-FOR-REDEFINED-CLASS
	* clos.lisp (class): added slot ID - the number of class redefinitions
	(standard-class): added slot PREVIOUS-DEFINITION
	(obsolete-class): removed function
	(slot-difference): new function
	(ensure-class): call MAKE-INSTANCES-OBSOLETE instead of
	OBSOLETE-CLASS and allow non-trivial class redefinitions
	(initialize-instance-standard-class, <standard-object>):
	INSTANCE-SIZE now starts with 2 because of ID
	(initialize-instance-built-in-class): new function
	(make-instance-built-in-class): use it
	(*dynamically-modifiable-generic-function-names*): added
	UPDATE-INSTANCE-FOR-REDEFINED-CLASS
	(update-instance-for-different-class): use SLOT-DIFFERENCE
	(make-instances-obsolete, update-instance-for-redefined-class):
	new generic functions
	(change-class): pass T as the third argument of %CHANGE-CLASS
	* lispbibl.d (Class): added slots class_id and previous_definition
	(Instance): added slot inst_cl_id
	(instance_valid_p, check_instance): new macros
	(instanceof): call check_instance()
	* constsym.d (UPDATE-INSTANCE-FOR-REDEFINED-CLASS): added
	* hashtabl.d (sxhash_atom): call check_instance()
	(SXHASH): seclass_default bacause of that
	* init.lisp (update-instance-for-redefined-class)
	(make-instances-obsolete): export
	* predtype.d (TYPE-OF, CLASS-OF): call check_instance()
	* record.d (class_of): ditto
	(ALLOCATE-STD-INSTANCE): INSTANCE-SIZE now starts with 2 because of ID
	(%CHANGE-CLASS): accept 3rd argument do-copy-t
	(update_instance): new function
	* subr.d (SXHASH): seclass_default
	(%CHANGE-CLASS): 3 arguments

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

	* lispbibl.d, dfloat.d, ffloat.d: check DOUBLE_DIV0_EXCEPTION &c
	with defined(), not the value itself, since, as per unixconf.h,
	they are either defined to 1 or not defined at all

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

	New generic function CLOS:CLASS-PROTOTYPE from MOP
	* clos.lisp (class-prototype): implemented, exported from CLOS -
	but _not_ from COMMON-LISP
	(standard-class): added slot PROTO
	* lispbibl.d (Class): ditto

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

	implemented arrays with ARRAY-ELEMENT-TYPE NIL
	* array.d (eltype_code): return Atype_NIL for NIL argument
	(fehler_retrieve): new function
	(storagevector_aref, storagevector_store, elt_fill)
	(VECTOR-PUSH-EXTEND): barf on (VECTOR NIL)
	(fehler_store): use less stack
	(array_element_type): return NIL for Array_type_(s)nilvector
	(elt_copy, elt_move, test_displaced, MAKE-ARRAY): handle (VECTOR NIL)
	* defseq.lisp: added (VECTOR NIL), named "0"
	* io.d (ARRAY-READER): read #A(NIL dims)
	(pr_vector): print (ARRAY NIL) as #A(NIL dims)
	(pr_orecord): print Rectype_(S)nilvector with pr_vector()
	* lispbibl.d (Rectype_nilvector): new type, replaces rectype_unused1
	(Rectype_Snilvector): new record type
	(arrayflags_atype_mask): 15 now
	(Atype_NIL): new type
	(Array_type_nilvector, Array_type_snilvector): new array types
	(vectorp, simplep, array_simplep, simple_string_p, stringp)
	(arrayp): adjusted to use symbolic Rectype_*
	(if_recordp): added Rectype_(S)nilvector
	(case_Rectype_Snilvector_above, case_Rectype_nilvector_above): added
	(case_Rectype_array_above): added Rectype_(S)nilvector
	(allocate_nilvector): declare
	* sequence.d (valid_type1, get_seq_type): handle (VECTOR NIL)
	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark)
	(subst_circ_unmark): handle (VECTOR NIL) together with other
	component-less objects
	* spvw_garcol.d (gc_mark): handle Rectype_Snilvector with
	down_nopointers() and Rectype_nilvector with down_iarray()
	* spvw_genera1.d (walk_area, build_old_generation_cache): handle
	Rectype_Snilvector with bitvectors and numbers and
	Rectype_nilvector with iarrays
	* spvw_objsize.d (objsize): handle Rectype_(S)nilvector
	* spvw_typealloc.d (allocate_nilvector): implemented
	* spvw_update.d (update_varobject): handle Rectype_(S)nilvector
	* type.lisp (upgraded-array-element-type): return NIL for NIL arg

2003-04-01  Kaz Kylheku  <kaz@ashi.footprints.net>
	    Sam Steingold  <sds@gnu.org>

	Brand new, from-scratch backquote implementation.
	* constsym.d (reading_array): New variable, corresponds to
	system::*reading-array*.
	(reading_struct): New variable, corresponds to
	system::*reading-struct*.
	(backquote_reader, comma_reader): Associate these objects with the
	symbol names of the new backquote reader functions.
	* init.lisp: Load new-backquote module rather than backquote.
	(bq-conc): New macro in SYSTEM package.
	(backquote): Macro rewritten to call the new backquote
	expander, rather than regurgitate the second argument.
	* io.d (init_reader): Define the variables *reading-array*
	and *reading-struct*.
	(read_top): Bind *reading-struct* and *reading-aray* to NIL.
	(structure_reader): Bind *reading-struct* to T.  Do not
	bind *backquote-level* to NIL.
	(array_reader): Bind *reading-array* to T. Do not
	bind *backquote-level* to NIL.
	(pr_list_bothsplice): Adjust pretty-printer to new, simplified
	syntax for SPLICE and NSPLICE.
	* backquote.lisp: Rewrote from scratch.

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

	Export struct slot accessors
	* modules/bindings/linuxlibc6/linux.lisp (exporting-slots):
	new local macro, used for def-c-struct
	Suggested by Pascal Bourguignon <pjb@informatimago.com>
	(stdin, stdout, stderr): simple foreign variables (def-c-var)
	Reported by Jörg Höhle

2003-03-31  Bruno Haible  <bruno@clisp.org>

	* runprog.lisp (shell-quote) [UNIX]: Handle empty argument correctly.
	(shell-quote) [WIN32]: Handle argument containing spaces and ending in
	a backslash correctly.

2003-03-30  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_symbol_values): define_variable's
	*LOAD-COMPILING*, *LOAD-VERBOSE*, *LOAD-PRINT*, *COMPILE-PRINT*.
	(usage): mention `-v'
	(main): accept -v(erbose).
	* constsym.d (*LOAD-PRINT*, *COMPILE-PRINT*): added
	* _clisp.c: accept -v

2003-03-30  Sam Steingold  <sds@gnu.org>

	* regexp.lisp (cflags, eflags): new macros
	(cflags-max): new constant
	(regexp-compile): accept extended/case-sensitive/newline/nosub/cflags
	&key arguments instead of an &optional argument case-sensitive;
	added a compiler macro to pre-compute cflags when possible
	(regexp-exec): accept notbol/noteol/eflags &key arguments
	added a compiler macro to pre-compute eflags when possible
	(optimize-flags): new function, pre-compute cflags & eflags for
	compiler macros for the following functions:
	(match-once, %match, regexp-split): accept both notbol/noteol/eflags
	and extended/case-sensitive/newline/nosub/cflags &key arguments;
	added compiler macros to pre-compute cflags & eflags when possible
	(with-loop-split): accept both notbol/noteol/eflags and
	extended/case-sensitive/newline/nosub/cflags &key arguments
	(regexp-quote): accept an &optional extended argument
	Suggested by Pascal Bourguignon <pjb@informatimago.com>
	(*system-package-list*): push "REGEXP", i.e., REGEXP is now locked

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

	solidified updating back_trace callers [cygwin build fix]
	* spvw.d (for_all_back_traces): new macro
	* spvw_update.d (update_back_traces): new macro
	* spvw_garcol.d, spvw_memfile.d: use it for all updating

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

	* condition.lisp (restart-case, with-restarts): macroexpand
	`restartable-form' to associate the restarts with this condition

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

	do not print system structure definitions
	do print full prototype for built-in functions
	* foreign.d (C_STRUCT_SLOTS): define to 3
	* foreign1.lisp (parse-components, c-struct-constructor): C-STRUCT
	now has options, so slots start at CDDDR
	(parse-c-type): init name and options for C-STRUCT
	(deparse-c-type): extract name and options for C-STRUCT
	(to-c-typedecl): structures may be :EXTERNAL and :TYPEDEF
	(finalize-coutput-file): print full prototype for :BUILT-IN functions
	(def-call-out): recognize :BUILT-IN keyword
	(note-c-fun): save :BUILT-IN status
	* modules/bindings/linuxlibc6/linux.lisp (exporting): struct name
	maybe a list of name and options
	(div_t, ldiv_t): :TYPEDEF
	(cosf, sinf, sqrtf, fabsf): BUILT-IN
	(passwd): :EXTERNAL after "#include <pwd.h>"
	(group): :EXTERNAL after #include <grp.h>"
	Based on a patch by Dan Knapp

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

	* stream.d (history_last): new function
	(rd_ch_terminal3): use it instead of
	where_history()/previous_history() &c &c

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

	* condition.lisp (restart): use CLOS:PRINT-OBJECT
	(print-restart): removed
	(applicable-restart-p): CONDITION may be NIL
	(compute-restarts, find-restart): even when CONDITION is NIL,
	APPLICABLE-RESTART-P has to be called
	(with-simple-restart): fixed the optimized case

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

	* defmacro.lisp (get-supplied-p): new function
	(analyze-key, analyze1): use it
	(analyze-key): do not evaluate the init form when the argument
	has been supplied
	Reported by Christophe Rhodes <csr21@cam.ac.uk>

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

	* package.d (SYMBOL-VALUE-LOCK): return T only when the package
	is locked (helps SBCL bootstrap)

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

	* configure (--edit-config): new option (for --build & --install)

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

	* spvw.d (main): allow multiple -x options
	-repl forces REPL after -c/-x/exec
	option "--" terminates option processing; set *ARGS* earlier
	* _clisp.c (main): "-r" for "-repl"

2003-03-14  Sam Steingold  <sds@gnu.org>

	function (SETF FFI:VALIDP) invalidates foreign objects
	* foreign.d (SET-VALIDP): implemented
	* foreign1.lisp (validp): added a defsetf
	* subr.d, constsym.d (set_validp): added

2003-03-14  Sam Steingold  <sds@gnu.org>

	extract and modify the FOREIGN-POINTER anchor
	* foreign.d (foreign_pointer_strict): new function
	(FOREIGN-POINTER, SET-FOREIGN-POINTER): implemented
	(foreign_address): barf on non-foreign and possibly on FOREIGN-POINTER
	* foreign1.lisp (foreign-pointer): added a defsetf
	* lispbibl.d (Faddress): fa_offset is signed
	* subr.d, constsym.d (foreign_pointer, set_foreign_pointer): added

2003-03-12  Sam Steingold  <sds@gnu.org>

	* makemake.in: win32msvc mean either msvc4 or msvc5 or msvc7 (.NET)
	* Makefile.devel (makefiles): added win32msvc/makefile.msvc7
	(win32msvc/makefile.msvc7): new target
	* win32.d: undef `unused' around `#include <windows.h>' for MSVC
	Suggested by Jay Kint <jkint@icosahedron.org>

2003-01-31  Jörg Höhle  <hoehle@users.sourceforge.net>

	patch #[ 678216 ]: FFI:WITH-FOREIGN-STRING
	* foreign.lisp (with-foreign-string): store string on C stack
	using any encoding
	* foreign.d (call_with_foreign_string): ditto
	* subr.d, constsym.d (call_with_foreign_string): added
	* type.lisp (encoding-zeroes): how many terminating \0 bytes does
	one expect when working with character of encoding X?
	4 for UTF-32, 2 for UTF-16, 1 for UTF-8 or ISO-8859-1 etc.
	* encoding.d (fehler_encoding): moved to error.d
	* lispbibl.d (fehler_encoding): prototype

2003-03-11  Sam Steingold  <sds@gnu.org>

	added EXT:MODULE-INFO for module information extraction
	* spvw_module.d (find_module, modules_names_to_stack): implemented
	* lispbibl.d (find_module, modules_names_to_stack): declared
	* misc.d (MODULE-INFO): implemented
	* constsym.d, subr.d (module_info): added
	* init.lisp (MODULE-INFO): export
	* modules.d (MODULE): cannot use STRING() because module_name may
	be a CPP macro, e.g., for the "linux" module, module name was "1"

2003-03-12  Jörg Höhle  <hoehle@users.sourceforge.net>

	* time.d (get_real_time) [TIME_WIN32]: use
	GetSystemTimeAsFileTime(), not ftime()

2003-03-11  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 543072 ]: make-encoding :input-action on bad input (again)
	* encoding.d (fehler_buffer_parity): new function
	(uni16_mblen): check that the input buffer has even length
	(uni16be_mbstowcs, uni16le_mbstowcs): barf when the input has an
	odd number of bytes (use fehler_buffer_parity)
	(uni32be_mblen, uni32le_mblen): check that the input buffer
	length is divisible by 4
	(uni32be_mbstowcs, uni32le_mbstowcs): barf when the input length
	is not divisible by 4 (use fehler_buffer_parity)

2003-03-11  Sam Steingold  <sds@gnu.org>

	* foreign.d (fehler_foreign_object, foreign_address)
	(foreign_pointer): new functions
	(VALIDP): use foreign_pointer()
	(FOREIGN-ADDRESS): new function (suggested by Joerg)
	(FOREIGN-FREE): use fehler_foreign_object()
	* foreign1.lisp (foreign-value, foreign-address)
	(foreign-address-unsigned, unsigned-foreign-address): export
	* subr.d (foreign_address): added
	(validp, unsigned_foreign_address, foreign_address_unsigned):
	seclass_read
	* describe.lisp (describe-object): DEPARSE-C-TYPE is in FFI

2003-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	FFI heap allocation interface
	* foreign.d (FOREIGN-ALLOCATE, FOREIGN-FREE): heap memory (de)alloc
	* subr.d, subrkw.d, constsym.d (foreign_allocate, foreign_free): added
	* foreign1.lisp (allocate-deep, allocate-shallow): new macros

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

	* list.d (cons_from_stack): new function
	(CONS, copy_tree, subst, sublis, ACONS): use it
	(LIST): use listof
	(APPEND, reverse, nreverse, nreconc, COPY-ALIST, REVAPPEND)
	(NRECONC, sublis_assoc, memq, PAIRLIS, assoc, rassoc):
	barf on dotted lists, as per ANSI
	(memq1): removed
	* list.d, subr.d (MEMQ): seclass_read
	* constsym.d (PLIST): added
	* type.lisp (PLIST): new type
	* symbol.d (fehler_sym_plist_odd, fehler_plist_odd): type_error
	(get, GETF, %PUTF, %REMF, GET-PROPERTIES, PUT, REMPROP):
	barf on dotted plists, as per ANSI

2003-03-07  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* spvw.d (main) [WIN32_NATIVE]: init SYS::*PRIN-LINELENGTH* to
	console width - 1.

2003-03-07  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: bug fixed:
	should raise an error when part of directory is an existing
	file.

2003-03-03  Peter Seibel  <peter@javamonkey.com>
	    Sam Steingold  <sds@gnu.org>

	* charstrg.d, compelem.d, comptran.d, control.d, dfloat.d, eval.d:
	* ffloat.d, foreign.d, intdiv.d, intlog.d, intplus.d, intsqrt.d:
	* io.d, package.d, pathname.d, sfloat.d, socket.d, stream.d:
	phase-0 of d2c conversion: put braces where C99 requires them

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

	* makemake.in: fixed the 1.269 (2002-07-19) patch: check
	LIBTERMCAP and --with-termcap-ncurses after XCFLAGS is set,
	so that -DNO_TERMCAP_NCURSES is not overridden

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

	ANSI CL compliance issues
	* clos.lisp (generic-function): commented out the macro definition:
	GENERIC-FUNCTION is a TYPE (and a COMMON-LISP symbol) in ANSI CL,
	but not a macro, so this definition violates the standard
	* type.lisp (canonicalize-type): canonicalize MOD, SIGNED-BYTE,
	and UNSIGNED-BYTE to an inclusive interval
	* macros2.lisp (times): renamed from SPACE because SPACE is an
	ANSI Common Lisp symbol without a macro definition
	* init.lisp (times): export from EXT

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

	* io.d (PARSE-INTEGER): seclass_read
	print the error index on badsyntax
	* subr.d (parse_integer): seclass_read

2003-02-27  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-object): print additional information
	for strings (using STRING-INFO)

2003-02-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (*.mem): do not dump images if LOAD "init" failed

2003-02-27  Sam Steingold  <sds@gnu.org>

	detect side-effect class of some compiled closures
	* lispbibl.d (cclosure_flags, Cclosure_flags, Cclosure_seclass)
	(Cclosure_set_seclass): new macros
	(seclass_t): new enum class (instead of sclass_* bits)
	(allocate_closure): accept flags argument
	(allocate_cclosure_copy): ditto
	(seclass_object): map seclass_t to seclass_* objects
	* record.d (parse_seclass): new function
	(%make-closure): accept 4th argument - seclass
	(CLOSURE-SET-SECLASS): new function for updating the side-effect
	class of generic functions
	* constsym.d, subr.d (closure_set_seclass): added
	* clos.lisp (%make-gf): pass seclass to %MAKE-CLOSURE
	(std-add-method, std-remove-method): update the side-effect class
	of the generic function
	* compiler.lisp (make-closure): pass seclass to %MAKE-CLOSURE
	(seclass-or): removed
	(seclass-or-2): renamed to SECLASS-OR, handle NIL
	(seclass-without): handle NIL
	(anodes-seclass-or, anodelist-seclass-or): reduce consing
	(f-side-effect): new function: look at *known-functions*
	before fdefiniton
	(c-DIRECT-FUNCTION-CALL): updated FUNCTION-SIDE-EFFECT call
	(c-GLOBAL-FUNCTION-CALL): use FUNCTION-SIDE-EFFECT instead of a table
	(c-NORMAL-FUNCTION-CALL, c-LAMBDABODY, c-MULTIPLE-VALUE-CALL)
	(c-FUNCALL-NOTINLINE, c-APPLY): check the side-effect class
	(c-DEFUN, compile-lambdabody, match-known-unknown-functions):
	keep seclass in *known-functions*
	(create-fun-obj): pass seclass to MAKE-CLOSURE
	* type.lisp (class-name): added a temporary definition
	* control.d (form_constant_p): handle cclosures
	(FUNCTION-SIDE-EFFECT): return seclass object instead of 3 values;
	never signal an error, just return (T . T)
	* eval.d (get_closure): pass the extra arg to allocate_closure()
	* io.d (CLOSURE-READER): expect seclass before constants
	(pr_cclosure_lang): print seclass before constants
	* VERSION, version.h: bump
	* constobj.d (version): bump (because of %MAKE-CLOSURE)
	(seclass_no_se, seclass_read, seclass_write, seclass_default): added

2003-02-24  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-DIRECT-FUNCTION-CALL): use
	FUNCTION-SIDE-EFFECT instead of an explicit table
	* control.d (form_constant_p): new function
	(CONSTANTP): use it; all self-eval forms are constants (ANSI)
	(FUNCTION-SIDE-EFFECT): implemented
	* constsym.d, subr.d (function_side_effect): added
	* lispbibl.d (subr_t): new slot `seclass' (instead of the
	dummy padding)
	(seclass_foldable, seclass_read, seclass_write, seclass_default)
	(seclass_no_se): new macros
	* subr.d (LISPFUN): accept 8 arguments (added seclass);
	updated all declarations
	* genclisph.d (LISPFUN): ditto
	* affi.d, array.d, charstrg.d, control.d, debug.d, dirkey.d,
	* encoding.d, error.d, eval.d, foreign.d, i18n.d, io.d,
	* lisparit.d, list.d, misc.d, package.d, pathname.d, posixmath.d,
	* predtype.d, record.d, rexx.d, sequence.d, socket.d, stream.d,
	* symbol.d, time.d, zthread.d: updated all LISPFUN headers

2003-02-23  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp (get-lisp-def): return the name of the form
	as well as the arguments as two values
	(*const-decls*): new variable
	(get-lisp-defs): take all LISP* forms
	(check-lisp-defs): exclude *const-decls* files
	(write-subrs): new function

2003-02-20  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (destructuring-error): as per CLHS 3.5.1.7, signal
	a PROGRAM-ERROR, not an ERROR

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

	* charstrg.d (hex_table): const
	* spvw_debug.d (hex_table): const
	* spvw_memfile.d (memflags): const
	* stream.d (vktable, attr_table): const
	* encoding.d, utils/unicode/nls_table.c:
	renamed nls_table to nls_table_t
	* spvw_alloca.d: renamed malloca_header to malloca_header_t
	* spvw_multimap.d: renamed mmap_interval to mmap_interval_t

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

	* type.lisp (encoding-charset): removed (this completes the
	2002-05-21 patch)

2003-02-16  Sam Steingold  <sds@gnu.org>

	* type.lisp (with-interval-designators): new macro
	(interval-mix, interval-mix-not, canonicalize-type, subtypep): use it

2003-02-16  Sam Steingold  <sds@gnu.org>

	* cmacros.lisp (define-compiler-macro): pass non-NIL as the 3rd
	argument of SYS::CHECK-REDEFINITION only when actually redefining
	* clos.lisp (analyze-method-description): ditto

2003-02-15  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (defstruct): permit keywords as structure names

2003-02-15  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* src/makemake.in (CFLAGS) [win32msvc]: do not use optimization
	when debugging. Use enviroinment variable MSVCDIR to avoid manual
	editing.
	* win32msvc/makefile.msvc5d - new file - MSVC debug makefile.
	* Makefile.devel (win32msvc/makefile.msvc5d): new target.

2003-02-14  Sam Steingold  <sds@gnu.org>

	never compare types using EQUAL!
	* type.lisp (interval-mix): handle integers better by making AND
	intervals inclusive and OR intervals exclusive
	(interval-mix-not, simplify-and-or): new functions
	(canonicalize-type): (MEMBER 1 2 3) --> (INTEGER 1 3)
	(subtypep): types staring with AND, OR &c are undecidable

2003-02-14  Sam Steingold  <sds@gnu.org>

	* macros2.lisp (typecase): OTHERWISE must be the last clause to
	be considered an "otherwise clause"

2003-02-14  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 678194 ]: symbol-macrolet not always expanded
	* eval.d (parse_dd): do not macroexpand the potential
	declarations and docstrings (as per ANSI CL)

2003-02-13  Sam Steingold  <sds@gnu.org>

	* stream.d (create_input_pipe, create_output_pipe, create_io_pipe):
	wrap child creation in begin_want_sigcld()/end_want_sigcld(),
	just like it is done in EXECUTE
	Reported by Kaz Kylheku <kaz@ashi.footprints.net>
	(MAKE-STRING-PUSH-STREAM): fixed error message arguments

2003-02-13  Sam Steingold  <sds@gnu.org>

	* io.d (PARSE-INTEGER): signal a PARSE-ERROR on bad syntax and
	report only the substring being parsed, not the whole string
	Reported by Jörg Höhle

2003-02-13  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 685855 ]: ext:string-width ignores :start
	* charstrg.d (STRING-WIDTH): start with :START, not 0
	* stream.d (MAKE-STRING-INPUT-STREAM): respect both index and offset

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

	Do not treat #\/ in logical pathnames as #\;
	* pathname.d (lslashp): reintroduced
	(slashp): removed
	(parse_logical_word, parse_logical_pathnamestring):
	use lslashp() instead of slashp()
	(PARSE-NAMESTRING): use pslashp() instead of slashp()
	(ensure_last_slash): check both pslashp() and lslashp()

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

	* debug.d (break_driver): unbind *TERMINAL-READ-OPEN-OBJECT*,
	just like *TERMINAL-READ-STREAM*
	* reploop.lisp (break-loop): ditto

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

	* modules/bindings/linuxlibc6/linux.lisp (__ctype_get_mb_cur_max):
	returns size_t
	(errno): commented out (neither method works)
	(initstate, setstate): statebuf is a C-STRING, not a C-POINTER
	(seed48): seed16v is a C-ARRAY, not a (C-PTR (C-ARRAY ...))
	(unsetenv): return int
	(realpath): return C-STRING
	(execv, execve, execvp): added
	Thanks to Dan Knapp, John K. Hinsdale, and Jörg Höhle

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

	fixed EXT:MAPLAP, EXT:MAPCAP, MAPCAN and MAPCON in compiled code
	* compiler.lisp (copy-list-lax): new inline function
	(c-MAP-on-CARs, c-MAP-on-LISTs): use forward consing for
	EXT:MAPLAP, EXT:MAPCAP, MAPCAN and MAPCON

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

	brought EXT:MAPLAP and EXT:MAPCAP in line with MAPCAN and MAPCON
	* control.d (set_last_inplace, set_last_copy): new functions
	(MAPCAN_MAPCON_BODY): accept `append_function' arg
	(MAPCAN, MAPCON): pass it
	(MAPCAP, MAPLAP): implemented using MAPCAN_MAPCON_BODY()
	* constsym.d, subr.d (mapcan, mapcon): added
	* init.lisp (MAPCAP, MAPLAP): export
	* macros1.lisp (MAPCAP, MAPLAP): removed

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

	MAPCAN and MAPCON now correctly handle functions returning ATOMs
	* control.d (MAPCAR_MAPLIST_BODY) [!MAP_REVERSES]: do not create
	an extra cons; this is now the default method
	(MAPCAN_MAPCON_BODY) [MAP_REVERSES]: removed (cannot handle ATOMs)
	[!MAP_REVERSES]: do not create an extra cons
	see also the 2002-11-28 loop.lisp patch

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

	* list.d (endp): made global
	* lispbibl.d (endp): added the prototype
	* control.d (ENDP): removed
	(MAPCAR_MAPLIST_BODY, MAPC_MAPL_BODY, MAPCAN_MAPCON_BODY):
	use endp() instead of ENDP

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

	* spvw_debug.d (nobject_out): return the object argument
	(back_trace_out): use STACK_item_count() instead of STACK_diff()
	* spvw.d (main): ditto
	* lispbibl.d (nobject_out): updated the prototype
	(STACK_diff): removed

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

	turned FCASE into a special form, just like CASE
	* macros1.lisp (fcase): defmacro-special
	* compiler.lisp (c-form-table): FCASE --> c-CASE
	(c-CASE): handle FCASE

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

	* clos.lisp (class): new slot DIRECT-SUBCLASSES
	(obsolete-class): new function
	(ensure-class): use it
	(initialize-instance-standard-class, make-instance-built-in-class)
	(initialize-instance-structure-class): update DIRECT-SUBCLASSES of
	the DIRECT-SUPERCLASSES of this class
	* lispbibl.d (Class): new slot direct_subclasses
	* clos.lisp (class-and): new function
	* type.lisp (canonicalize-type): use it

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

	* type.lisp (type-class, %standard-char-p)
	(valid-interval-designator-p, interval-mix): new functions
	(STANDARD-CHAR): use %STANDARD-CHAR-P to define
	(canonicalize-type): STANDARD-CHAR -> use %STANDARD-CHAR-P
	to avoid errors
	AND/OR -> more rigorous attempts to simplify
	REALs -> check interval designators
	CONS -> check components

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

	* array.d (bit_up): fixed a GC-safety bug: allocation invalidates
	dimptr (a pointer inside an Iarray structure) [this bug have
	never triggered before because, as the 2003-01-31 indicates, this
	code has never been used since it was written!]

2003-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	fixed bug #[ 679661 ]: FFI segfault passing struct arrays
	* foreign.d (count_walk_pre): C-ARRAY-PTR should reserve room
	for the array argument

2003-02-03  Sam Steingold  <sds@gnu.org>

	EXT:XOR checks that exactly one of its arguments is non-NIL
	* control.d (XOR): implemented
	* init.lisp (XOR): exported
	* constsym.d, subr.d (xor): added

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

	* spvw_debug.d (nobject_out): handle pathnames and some special
	objects, like `nullobj' and `unbound'; fflush out; do not print
	package prefix for keywords

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

	* io.d (read_delimited_list): fixed a crash introduced by the
	2003-01-21 "multiple forms on one line" patch: need to unbind
	*TERMINAL-READ-OPEN-OBJECT* even if *TERMINAL-READ-STREAM* changed

2003-01-31  Sam Steingold  <sds@gnu.org>

	* type.lisp (typep, subtypep): accept &optional environment,
	as per ANSI CL spec
	* compiler.lisp (c-TYPEP): ditto

2003-01-31  Sam Steingold  <sds@gnu.org>

	* array.d (bit_up): fixed multi-dimensional array handling

2003-01-31  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 678105 ]: unchecked :start/end in
	ext:convert-string-from/to-bytes
	* encoding.d (CONVERT-STRING-FROM-BYTES): use test_vector_limits()
	to check :START/:END arguments
	(CONVERT-STRING-TO-BYTES): use test_string_limits_ro()
	to check :START/:END arguments
	* charstrg.d (test_vector_limits): extracted from
	test_string_limits_ro()
	(test_string_limits_ro): use it
	* lispbibl.d (test_vector_limits): declare

2003-01-29  Sam Steingold  <sds@gnu.org>

	SOCKET-STATUS on lists does not have to cons
	* stream.d (parse_sock_list): new function
	(handle_set, handle_isset): use it
	(SOCKET-STATUS): do not cons if the list provides places for the STATUS
	return the number of actionable streams as the second values

2003-01-29  Sam Steingold  <sds@gnu.org>

	upgraded to autoconf-2.57
	* Makefile.devel, ffcall/Makefile.devel (AUTOCONF_VERSION): removed
	(AUTOCONF, AUTOCONF_CACHE): do not depend on it

2003-01-25  Sam Steingold  <sds@gnu.org>

	* stream.d (handle_isset): increased granularity of
	SOCKET-STATUS: distinguish between EOF and INPUT for READ

2003-01-28  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* src/m4/as-underscore.m4, ffcall/m4/as-underscore.m4
	(CL_AS_UNDERSCORE) [__cplusplus]: declare test function
	as extern "C".

2003-01-24  Sam Steingold  <sds@gnu.org>

	READ-BYTE-SEQUENCE now accepts :NO-HANG keyword argument
	* stream.d (rd_by_array_Pseudofun, rd_by_array_error)
	(rd_by_array_dummy, read_byte_array, rd_by_array_synonym)
	(rd_by_array_concat, rd_by_array_twoway, rd_by_array_echo)
	(strm_unbuffered_extrafields_t/low_read_array)
	(low_read_array_unbuffered_handle, rd_by_array_iau8_unbuffered)
	(strm_buffered_extrafields_t/low_fill, low_fill_buffered_handle)
	(buffered_nextbyte, read_byte_array_buffered)
	(rd_by_array_iau8_buffered, low_read_array_unbuffered_socket)
	(low_fill_buffered_socket): accept no_hang
	(listen_handle): extracted from low_listen_unbuffered_handle()
	(low_listen_unbuffered_handle): use listen_handle()
	(rd_by_aux_iax_unbuffered, rd_ch_array_unbuffered): pass
	no_hang=false to UnbufferedStreamLow_read_array()()
	(buffered_writebyte, position_file_buffered)
	(write_byte_array_buffered, rd_ch_buffered, listen_char_buffered)
	(rd_ch_array_buffered, position_file_i_buffered)
	(rd_by_aux_iax_buffered, rd_by_aux_ibx_buffered)
	(rd_by_aux_icx_buffered, rd_by_iau8_buffered)
	(listen_byte_ia8_buffered, WRITE_LAST_BYTE, wr_by_aux_ib_buffered)
	(wr_by_aux_ic_buffered, logical_position_file_end)
	(make_file_stream): pass no_hang=false to buffered_nextbyte()
	(READ-N-BYTES, READ-INTEGER, READ-FLOAT): pass no_hang=false
	to read_byte_array()
	* pathname.d (copy_file_low): ditto
	* sequence.d (READ-BYTE-SEQUENCE): accept :NO-HANG
	* subr.d, subrkw.d (READ-BYTE-SEQUENCE): ditto
	* gray.lisp (STREAM-READ-BYTE-SEQUENCE): ditto
	* constsym.d (:NO-HANG): added
	* unix.d (sock_read): define to read_helper(,,,true)

2003-01-23  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (arrayrank_limit_1): set to lp_limit_1 because
	array_dimensions() pushes the dimensions on the STACK

2003-01-23  Sam Steingold  <sds@gnu.org>

	* type.lisp (upgraded-array-element-type): accept an &optional
	environment argument, as per ANSI CL
	(subtypep): fixed a typo (quote '(and))

2003-01-23  Sam Steingold  <sds@gnu.org>

	* _clisp.c (main): -B specifies where -K is looked for
	* spvw.d (main): --help prints *CURRENT-LANGUAGE* and *LIB-DIRECTORY*

2003-01-21  Sam Steingold  <sds@gnu.org>

	permit multiple forms in one line of interactive input
	* reploop.lisp (break-loop): makunbound *TERMINAL-READ-STREAM*
	when clearing *DEBUG-IO*
	* debug.d (break_driver): ditto
	(read_form): do not discard unprocessed input after the first form
	in the first line (in *TERMINAL-READ-STREAM*)

2003-01-21  Mirian Crzig Lennox  <mirian@cosmic.com>

	* backquote.lisp, defmacro.lisp: translated all comments

2003-01-19  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Make clisp compiling on cygwin with g++
	* avl.d (AVL(AVLID,delete1)): legalize goto for CC=g++
	* spvw_garcol.d (free_some_unused_pages): explicit typecast
	* spvw_allocate.d (make_space_gc): modern definition, explicit typecast
	* lispbibl.d: don't define setjmp, longjmp as  _setjmp, _longjmp
	* spvw_memfile (offset_pages_t): new type
	(loadmem_from handle): use it in explicit typecast

2003-01-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (allocate_weakkvt): DON'T USE LOCAL VARIABLES OF TYPE
	gcv_object_t.
	* hashtabl.d (prepare_resize): Likewise.
	* spvw_typealloc.d (allocate_weakkvt_low, allocate_weakkvt): Likewise.

2003-01-16  Sam Steingold  <sds@gnu.org>

	do not bind slot names (which may be special variables) in keyword
	constructors
	* defstruct.lisp: DS-SLOT vector now has a new slot - VAR
	(make-ds-slot): init VAR
	(ds-slot-var): new function
	(ds-make-constructor-body): accept a GET-VAR argument
	(ds-make-boa-constructor): pass #'DS-SLOT-NAME to
	ds-make-constructor-body
	(ds-make-keyword-constructor): pass #'DS-SLOT-VAR to
	ds-make-constructor-body

2003-01-14  Stefan Kain  <stefan.kain@freenet.de>

	* defstruct.lisp: translated all comments

2003-01-14  Sam Steingold  <sds@gnu.org>

	* defstruct.lisp (ds-make-constructor-body): optimize LIST
	structures just like the VECTOR ones

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

	* spvw_typealloc.d (reallocate_small_string): do not create the
	hole (and do not plug it) because both this object and the
	possible hole/plug will be collected during the next GC

2003-01-09  John  Hinsdale <hin@alma.com>

	* modules/fastcgi/*: new add-in module for FastCGI interface

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

	implemented CHANGE-CLASS and UPDATE-INSTANCE-FOR-DIFFERENT-CLASS
	* clos.lisp (change-class, update-instance-for-different-class):
	implemented
	* init.lisp (change-class, update-instance-for-different-class):
	export
	* constsym.d, subr.d (pchange_class): added
	* lispbibl.d (Rectype_realloc_Instance): new record type
	(instance_un_realloc): new macro
	(instancep): handle Rectype_realloc_Instance
	(instanceof): make into a function and call instance_un_realloc()
	(case_Rectype_Instance_above): include Rectype_realloc_Instance
	* hashtabl.d (sxhash_atom): un_realloc instances
	* predtype.d (TYPE-OF, CLASS-OF): ditto
	* spvw_garcol.d (GC_MARK, down_record): ditto
	* io.d (pr_orecord): handle Rectype_realloc_Instance
	* record.d (class_of, ptr_to_slot): make into a function and call
	instance_un_realloc()
	(%CHANGE-CLASS): implemented

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

	* stream.d (GENERIC-STREAM-P, BUILT-IN-STREAM-OPEN-P)
	(INPUT-STREAM-P, OUTPUT-STREAM-P, STREAM-ELEMENT-TYPE-EQ):
	use VALUES_IF

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

	some more work on MT: added stubs for functions,
	WITH-TIMEOUT almost works
	* zthread.d: new file - for the actual functions implementations
	(CALL-WITH-TIMEOUT): almost works
	* thread.lisp: renamed threads to processes to comply with CMUCL &c
	(WITH-TIMEOUT): use CALL-WITH-TIMEOUT
	* subr.d, constsym.d [MULTITHREAD]: added thread functions
	* makemake.in: added zthread.d
	* stream.d (sec_usec): made global for use in zthread.d
	* lispbibl.d (current_thread): made static (compiles with -g now)
	* xthread.d (xcondition_timedwait, xthread_cancel): added

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

	* hashtabl.d (%SET-HASH-TABLE-WEAK-P): a variable cannot have
	type gcv_object_t
	* makemake.in (check-sources): the target fails iff egrep succeeds

2003-01-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Get rid of some scary warnings
	* stream.d (wr_ch_array_window) [WIN32_NATIVE]: use uintB, not char
	* win32.d: undef SEEK_SET, SEEK_CUR, SEEK_END before redefining

2003-01-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fix mingw compilation
	* pathname.d (resolve_shell_shortcut) [WIN32_NATIVE]: use number
	instead of missing SLGP_RAWPATH, cast to void - avoid a warning.
	(TrueName) [WIN32_NATIVE]: inline isalpha.
	* win32aux.d (MyCreateProcess): fix declaration.
	(abort): call exit to avoid a warning.

2003-01-03  Stefan Kain  <stefan.kain@freenet.de>

	* lisparit.d, intelem.d, dfloat.d, lfloat.d: translated all comments

2003-01-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* src/makemake.in (init): do not include floatparam.h and
	intparam.h in the init rule for win32.

2003-01-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fix MSVC compilation without libsigsegv
	* spvw.d (main) [WIN32_NATIVE]: do not init SP_bound when
	NO_SP_CHECK - SP_bount is not declared.

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

	* lispbibl.d [WIDE_HARD]: treat UNIX_NETBSD on DECALPHA just like
	UNIX_OSF, UNIX_LINUX and UNIX_FREEBSD
	From Indrayana Rustandi <i_rustandi@yahoo.com>

2002-12-24  Sam Steingold  <sds@gnu.org>

	added VALUE, EITHER and BOTH weak hash tables
	* hashtabl.d (prepare_resize): weak argument is now an object
	(check_weak): new function
	(MAKE-HASH-TABLE, %SET-HASH-TABLE-WEAK-P): use it
	(hash_lookup): value may be obsoleted too
	* constobj.d (type_weak_ht): added
	* constsym.d (Kboth, Keither, Kvalue): added
	* io.d (pr_orecord): print ht_weak() for weak hash tables
	(pr_weakkvt): print wkvt_type
	* lispbibl.d (ht_weak): new macro
	(weakkvt_t): added wkvt_type slot
	* spvw_garcol.d (gar_col_normal): handle the new types of weak
	hash tables
	* spvw_typealloc.d (allocate_weakkvt, allocate_weakkvt_low):
	accept a second argument - the wkvt_type

2002-12-24  Sam Steingold  <sds@gnu.org>

	* foreign.d (FOREIGN-CALL-OUT): fixed argument order in the call
	to fehler_too_few_args()

2002-12-23  Sam Steingold  <sds@gnu.org>

	DOCUMENTATION is now a generic function
	* clos.lisp (ensure-class): use SYS::%SET-DOCUMENTATION explicitly
	(analyze-method-description): pass the method object to
	CHECK-REDEFINITION when possible
	(documentation, (setf documentation)): new generic functions
	* defs2.lisp (defpackage): remember documentation string
	* defstruct.lisp (defstruct): use SYS::%SET-DOCUMENTATION explicitly
	* macros2.lisp (deftype): ditto
	* describe.lisp (describe1): print all documentation
	* places.lisp (documentation, %SET-DOCUMENTATION): removed
	* init.lisp (*documentation*): new variable
	(%set-documentation): implemented
	(check-redefinition): save and check the SYS::FILE docstring

2002-12-22  Sam Steingold  <sds@gnu.org>

	* symbol.d (%PUTF): when the place is a cons, modify it in-place

2002-12-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (LIBSIGSEGV): init to @LTLIBSIGSEGV@ (-L/... -lsigsegv)
	instead of @LIBSIGSEGV@ (/.../libsigsegv.a) because this value
	gets into LIBS and from there into distmakefile and breaks that

2002-12-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (--without*): escape "(|)" in sed RE with #\\
	now handles --with-noreadline correctly
	(my_eval): new function

2002-12-20  James Chacon  <jmc@netbsd.org>
	    Sam Steingold  <sds@gnu.org>

	applied NetBSD patches: do not assume r11 is free on PowerPC
	<http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/clisp/patches/>
	* lispbibl.d (RS6000) [__powerpc__]: define
	* ffcall/avcall/Makefile.in: use linux syntax for netbsd
	* ffcall/vacall/Makefile.in: ditto
	* ffcall/callback/vacall_r/Makefile.in: use netbsd syntax for netbsd
	* ffcall/callback/trampoline_r/test1.c: do not assume r11 is free
	* ffcall/callback/trampoline_r/trampoline.c: provide a trampoline
	implementation that does not presume r11 is free (it is not in
	dynamically linked programs and the ELF ABI says as much but
	somehow linux managed to avoid this it seems). Use r13 for the
	time being since while gcc will allocate it, it is the last
	"local" one allocated so none of the clisp code hits that (nothing
	needed 17+ local registers in use ever). Update the vacall
	implementation to match the trampoline calls but otherwise for any
	assembly use the linux code.

2002-12-30  Sam Steingold  <sds@gnu.org>

	reversed the 2002-12-12 patch, reinstating the 2001-11-27 patch:
	elt_nreverse() can now be used because bitbuffer is 8bit now
	* stream.d (byte_swap): removed
	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
	use elt_nreverse() instead of byte_swap()

2002-12-20  Sam Steingold  <sds@gnu.org>

	* realtran.d (R_sin_R, R_cos_R, R_sinh_R, R_cosh_R):
	fixed GC-safety bugs triggered by the regression test
	* comptran.d (N_tan_N, N_sinh_N, N_cosh_N, N_tanh_N)
	(R_R_atanh_R_R): ditto
	* pathname.d (parse_logical_host_prefix): ditto
	* array.d (elt_nreverse): elements in Array_type_svector
	are type `gcv_object_t', not `object'

2002-12-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [CC=g++]: add DEBUG_GCSAFETY
	* pathname.d, socket.d, spvw.d, stream.d:
	compilable with DEBUG_GCSAFETY
	* arilev1i.d (sub_loop_down, subx_loop_down, subfrom_loop_down):
	(dec_loop_down, neg_loop_down): avoid some C++ warnings

2002-12-04  Bruno Haible  <bruno@clisp.org>

	GC-safety checker.
	* lispbibl.d: Recognize DEBUG_GCSAFETY.
	(INNARDS_OF_GCV_OBJECT): New macro.
	(TYPEDEF_OBJECT): Remove.
	(gcv_object_t): Define instead of object.
	(as_object): Fix for OBJECT_STRUCT case. Add optional allocstamp
	initializer.
	(gcv_object_t) [DEBUG_GCSAFETY]: Define as a C++ class.
	(object): Define after gcv_object_t.
	(alloccount): New declaration.
	(INIT_ALLOCSTAMP): New macro.
	(fake_gcv_object) [DEBUG_GCSAFETY]: Define as a C++ class.
	(gcunsafe_object_t): Likewise.
	(type_untype_object, type_data_object): Add optional allocstamp
	initializer.
	(gcinvariant_bias_p): New macro.
	(pointable) [DEBUG_GCSAFETY]: Verify pointer integrity.
	(type_pointable): Update.
	(cgci_pointable, pgci_pointable, ngci_pointable) [DEBUG_GCSAFETY]:
	Verify pointer integrity when the argument is an object.
	(eq) [DEBUG_GCSAFETY]: Verify pointer integrity.
	(gcinvariant_symbol_p): New function.
	* genclisph.d (main): Update.
	* spvw_allocate.d (alloccount): New variable.
	(inc_alloccount): New macro.
	(make_space, make_space_true, make_space_false): Call inc_alloccount.
	* spvw_page.d (_Page): In DEBUG_GCSAFETY mode, use 'struct' instead
	of 'union', to avoid compilation erro.

2002-12-19  Sam Steingold  <sds@gnu.org>

	* charstrg.d (DIGIT-CHAR-P): correctly identify MATHEMATICAL_*
	digits (* = SANS-SERIF/BOLD DOUBLE-STRUCK MONOSPACE)

2002-12-19  Bruno Haible  <bruno@clisp.org>

	* uni_attribute.c: Regenerated for Unicode 3.2.0 by gen-ctype.c.
	* uni_upcase.c: Likewise.
	* uni_downcase.c: Likewise.

	* utils/gen-uninames: Update for Unicode 3.2.0.
	* uninames.h: Regenerated for Unicode 3.2.0 by gen-uninames.
	* uniname.c: Assume ANSI C.
	(unicode_character_name, unicode_name_character): Update for Unicode
	3.2.0.

	* utils/unicode/UnicodeDataFull.txt: Upgrade to Unicode 3.2.
	* describe.lisp (unicode-attributes-line): Lines in
	UnicodeDataFull.txt may start with up to 6 hex digits now.

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* io.d (%PPRINT-LOGICAL-BLOCK): Make GC-safe.
	* lispbibl.d (gcunsafe_object_t): New type.
	* package.d (shadow, use_package): Prepare for DEBUG_GCSAFETY.
	* sequence.d (delete_help): Likewise.

	Fix some GC-safety bugs.
	* package.d (safe_check_pack_lock): Use the first argument.
	(unuse_1package): Mark as "can trigger GC".
	(unuse_package): Likewise. Make GC-safe.
	(SYSTEM::%IN-PACKAGE): Make GC-safe.
	(DELETE-PACKAGE): Make GC-safe.
	* pathname.d (copy_upcase): Change return type to void.
	(parse_logical_word): Make GC-safe.
	(simplify_directory): Make GC-safe. Avoid bug when dir list contains
	"." followed by a non-string.
	* realelem.d (R_R_contagion_R): Make GC-safe.
	(N_N_contagion_R): Simplify and make GC-safe.
	(C_R_float_C): Make GC-safe.
	(N_N_float_N): Make GC-safe.
	* comptran.d (N_exp_N): Make GC-safe.
	(N_log_N): Make GC-safe.

2002-12-18  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (bt_beyond_stack_p): fixed the back_trace circularity
	bug: unwind until back_trace is strictly within STACK
	* eval.d (unwind_upto): no need to unwind_back_trace() in the beginning

2002-12-18  Sam Steingold  <sds@gnu.org>

	* spvw_debug.d (nobject_out): handle uninterned symbols and
	special forms (Fsubrs) correctly

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (alignof): With g++, use the builtin __alignof__. This
	avoids an error in alignof(jmp_buf) on FreeBSD that occurred because
	jmp_buf is defined using an anonymous struct type which makes jmp_buf
	not suitable as a template argument.

	* spvw_garcol.d (gc_mark): Add DEBUG_GC_MARK debugging facility.

	* lispbibl.d (simple_array_to_storage, simple_array_to_storage1):
	Change to avoid gcc warning.

	* lispbibl.d: Add inference TYPECODES => TRY_TYPECODES_1 on
	FreeBSD/x86.

2002-12-17  Sam Steingold  <sds@gnu.org>

	* describe.lisp (unicode-attributes-line): lines in
	UnicodeDataFull.txt may start with up to 6 hex digits now

2002-12-17  Sam Steingold  <sds@gnu.org>

	* charstrg.d (DIGIT-CHAR-P): correctly identify MYANMAR,
	ETHIOPIC, KHMER, and MONGOLIAN digits
	* uni_upcase.c, uni_downcase.c, uni_attribute.c: regenerated

2002-12-17  Bruno Haible  <bruno@clisp.org>

	* utils/unicode/UnicodeDataFull.txt: Renamed from
	utils/unicode/ftp.unicode.org/UnicodeData.txt.
	* Makefile.devel (src/uninames.h): Update.
	* src/makemake.in: Use UnicodeDataFull.txt instead of UnicodeData.txt.
	* src/describe.lisp (unicode-attributes-line): Likewise.
	* src/_README.en: Update.

2002-12-17  Sam Steingold  <sds@gnu.org>

	when :CONC-NAME is NIL, use the slot name as accessor and setter
	* defstruct.lisp (ds-make-accessors, ds-make-defsetfs): when
	concname is NIL, use slot-name without concatenation
	(defstruct): do not reset NIL conc-name-option to ""

2002-12-04  Bruno Haible  <bruno@clisp.org>

	New memory model WIDE_AUXI.
	* lispbibl.d (WIDE): Define if WIDE_AUXI.
	(value1_register, back_trace_register): Update.
	(TYPECODES): Update.
	(NO_ASYNC_INTERRUPTS): Update.
	(object, oint, soint): Define differently if WIDE_AUXI.
	(as_oint, as_object): Likewise.
	(as_object_with_auxi): New macro.
	(_attribute_aligned_object_): Update.
	(objectplus, wbit, wbitm, wbit_test, type_untype_object): Update.
	(IMMEDIATE_FFLOAT): New macro.
	(gcinvariant_type_p): Depend on IMMEDIATE_FFLOAT. Make it work also if
	tint_avoid is nonzero.
	(ffloat_): Depend on IMMEDIATE_FFLOAT.
	(Stream): Add more fillers if WIDE && !TYPECODES.
	(make_machine): Update.
	(TheFfloat): Depend on IMMEDIATE_FFLOAT.
	(cgci_pointable, pgci_pointable, ngci_pointable): New macros.
	(TheCons, TheRatio, TheComplex, TheSymbol, TheBignum, TheFfloat)
	(TheDfloat, TheLfloat, TheSarray, TheSbvector, TheS8string)
	(TheS16string, TheS32string, TheSstring, TheSvector, TheWeakKVT)
	(TheSiarray, TheIarray, TheRecord, TheSrecord, TheXrecord, ThePackage)
	(TheHashtable, TheReadtable, ThePathname, TheLogpathname)
	(The_Random_state, TheByte, TheFsubr, TheLoadtimeeval, TheSymbolmacro)
	(TheMacro, TheFunctionMacro, TheEncoding, TheFpointer, TheFaddress)
	(TheFvariable, TheFfunction, TheWeakpointer, TheFinalizer)
	(TheSocketServer, TheDirKey, TheYetanother, TheStream, TheStructure)
	(TheClass, TheClosure, TheIclosure, TheCclosure, TheInstance, TheSubr)
	(TheFramepointer, TheMachine, TheVarobject, ThePointer): Use them.
	(eq): Update.
	(bias_type_pointer_object): Update.
	(subr_tab_ptr_as_object, S_help_): Update.
	(topofframe): Add one more cast, to avoid warnings.
	* spvw.d (symbol_tab_ptr_as_object): Update.
	* spvw_allocate.d (pointable_usable_test): Update.
	* spvw_circ.d (get_circ_mark, get_circ_unmark): Depend on
	IMMEDIATE_FFLOAT.
	* spvw_garcol.d (gc_mark, alive): Depend on IMMEDIATE_FFLOAT.
	(pointer_as_object, pointer_was_object): Update.
	* spvw_global.d (init_mem_heaptypes): Depend on IMMEDIATE_FFLOAT.
	* spvw_mark.d (mark, unmark, marked): Update.
	* spvw_memfile.d (loadmem_update): Depend on IMMEDIATE_FFLOAT.
	* spvw_objsize.d (size_ffloat, objsize, objsize_ffloat)
	(init_objsize_table): Depend on IMMEDIATE_FFLOAT.
	* spvw_typealloc.d (allocate_ffloat): Depend on IMMEDIATE_FFLOAT.
	* constobj.d (hs_single_float, FF_zero, FF_one, FF_minusone): Depend
	on IMMEDIATE_FFLOAT.
	* aridecl.d (make_FF, FF_0, FF_1, FF_minus1): Depend on
	IMMEDIATE_FFLOAT.
	* ffloat.d (FF_to_float): Depend on IMMEDIATE_FFLOAT.
	* hashtabl.d (hashcode1): Use untype() only if WIDE && TYPECODES.
	* intelem.d (FN_MSD): Use typecode() only if WIDE && TYPECODES.
	* lisparit.d (init_arith): Depend on IMMEDIATE_FFLOAT.
	* predtype.d (eql): Depend on IMMEDIATE_FFLOAT.
	(enum_hs_single_float, heap_statistics_mapper): Likewise.
	* eval.d (closure_register): Don't undefine if WIDE_AUXI.
	* genclisph.d (main): Update.

2002-12-16  Sam Steingold  <sds@gnu.org>

	* predtype.d (COERCE): accept CLOS class object as a type-spec
	when cannot coerce, signal a TYPE-ERROR
	when coercing FLOAT to COMPLEX, return (complex x (float 0 x))
	* compelem.d (F_complex_C): new function
	* lispbibl.d (F_complex_C): declare it

2002-12-16  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (disassemble-closure): print the list of special
	variables read and written

2002-12-16  Sam Steingold  <sds@gnu.org>

	* type.lisp (*canonicalize-type-prefer-clos*): new variable
	(canonicalize-type): depending on *canonicalize-type-prefer-clos*,
	return a CLOS class (e.g., NUMBER) or a list (e.g., (OR REAL COMPLEX))
	(subtypep): try CLOS before playing with lists

2002-12-16  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (DYNAMIC_8BIT_VECTOR): Renamed from DYNAMIC_BIT_VECTOR.
	Expect the length in bytes, not bits.
	(FREE_DYNAMIC_8BIT_VECTOR): Renamed from FREE_DYNAMIC_BIT_VECTOR.
	* stream.d: Update callers.
	* pathname.d: Update callers.

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d: Reorder some definitions, so that 'object' and
	'gcv_object_t' get defined earlier.

	* hashtabl.d (sxhash_atom): Really mask out all non-type bits.

	* io.d (fehler_read_eval_forbidden): Use const.

	* package.d (import): Remove unused macros CONFLICT1, CONFLICT2.

	* pathname.d (directory_diff_ab): Remove extra declaration.

	* amigaaux.d: Use WIDE_SOFT instead of WIDE.
	* spvw_allocate.d (mymalloc): Likewise.

	* lispbibl.d (fake_gcv_object): New macro.
	(SAVE_REGISTERS, finish_entry_frame, make_HANDLER_frame): Use it.
	* eval.d (funcall_iclosure, interpret_bytecode_): Likewise.
	* control.d (make_variable_frame, finish_flet): Likewise.

2002-12-15  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_handles): handle KEYBOARD-STREAMs

2002-12-15  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (DYNAMIC_BIT_VECTOR): make an 8bit vector, not 1bit
	vector, because READ-FLOAT, WRITE-FLOAT, WRITE-INTEGER and
	WRITE-FLOAT will pass this bit vector to STREAM-READ-BYTE-SEQUENCE
	and STREAM-WRITE-BYTE-SEQUENCE

2002-12-13  Sam Steingold  <sds@gnu.org>

	CLUE and CLIO now compile with MIT-CLX
	* modules/clx/mit-clx/dependent.lisp (radians->int16)
	(int16->radians): avoid floating contagion warnings
	* modules/clx/mit-clx/depdefs.lisp
	(*def-clx-class-use-defclass*): set to '(window drawable pixmap)
	* modules/clx/mit-clx/clx.lisp: (provide :clx)

2002-12-13  Sam Steingold  <sds@gnu.org>

	* stream.d (kbd_last_buf): new function
	(rd_ch_keyboard): use it to flush UnbufferedStream_bytebuf before
	checking strm_keyboard_buffer: this fixes a bug in
	LISTEN/READ-CHAR interaction: listen would consume the char and
	READ-CHAR will never see it, while LISTEN will now always return T
	Reported by Jamison Masse <jamison@redwood.snu.ac.kr>

2002-12-12  Sam Steingold  <sds@gnu.org>

	* stream.d (key_event): renamed to key_event_t
	(add_keybinding): renamed to keybinding();
	second argument is a struct, not a pointer now
	(keybinding): removed the macro
	(make_keyboard_stream): use new macros BIND_KEY() and CHECK_CAP()

2002-12-12  Sam Steingold  <sds@gnu.org>

	reversed the 2001-11-27 patch: elt_nreverse() reverses
	_bits_ in the bitvector, while we need to swap _bytes_
	* stream.d (byte_swap): new function
	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
	use it instead of elt_nreverse()
	Reported by Bernard Urban <Bernard.Urban@meteo.fr>

2002-12-12  Sam Steingold  <sds@gnu.org>

	* init.lisp (expand-form): export the code walker

2002-12-12  Sam Steingold  <sds@gnu.org>

	* unixconf.h.in (ENABLE_NLS): added (this fixes
	the 2002-07-19 lispbibl.d patch)

2002-12-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* pathname.d (TrueName) [WIN32_NATIVE]: fixed a bug -
	assure_dir_exists returned false on D:\ (D - any drive).

2002-12-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fix MSVC compilation
	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
	(socket_options): use SOCKLEN_T instead of socklen_t.
	* spvw_mmap.d (mmap_zeromap) [HAVE_WIN32_VM]: fix declaration.

2002-12-11  Sam Steingold  <sds@gnu.org>

	* reploop.lisp (debug-inspect-error): new function
	(commands1): bind it to Inspect/:i
	(break-loop): handle inspect-error catch'ed return

2002-12-11  Sam Steingold  <sds@gnu.org>

	* debug.d (break_driver): restore back_trace before
	unwind()/reset() when the error is not continuable;
	use const and p_backtrace_t as appropriate

2002-12-11  Sam Steingold  <sds@gnu.org>

	DRIBBLE now works by redefining *TERMINAL-IO* instead of a host
	of i/o variables; new type DRIBBLE-STREAM
	* dribble.lisp: full rewrite
	* savemem.lisp (saveinitmem): DRIBBLE-RESET is no longer needed

2002-12-04  Bruno Haible  <bruno@clisp.org>

	Avoid conditional expressions of the form
	 (bool ? object : gcv_object_t) or (bool ? gcv_object_t : object).
	* aridecl.d (FF_0, FF_1, FF_minus1, DF_0, DF_1, DF_minus1): Cast
	to object.
	* array.d (bit_up): Cast conditional expression branch to object.
	* compelem.d (N_realpart_R, N_imagpart_R): Likewise.
	* debug.d (read_form): Likewise.
	* encoding.d (SYSTEM::CHARSET-RANGE, init_dependent_encodings):
	Likewise.
	* eval.d (interpret_bytecode_): Likewise.
	* foreign.d (convert_from_foreign, foreign_with_pointers_p)
	(convert_to_foreign): Likewise.
	* i18n.d (SYS::TEXT): Likewise.
	* io.d (klammer_auf, FORMAT-TABULATE): Likewise.
	* lisparit.d (NUMERATOR, DENOMINATOR): Likewise.
	* package.d (PACKAGE-ITERATE): Likewise.
	* pathname.d (pathname_host_maybe, pathname_device_maybe)
	(pathname_version_maybe): Add cast to object.
	(xpathname_host, xpathname_directory, xpathname_name, xpathname_type)
	(xpathname_version): Cast conditional expression branch to object.
	(string2wild, wild2string): Likewise.
	(NAMETYPE_MATCH): Likewise.
	(MAKE-LOGICAL-PATHNAME): Likewise.
	(version_diff, translate_nametype_aux): Likewise.
	* predtype.d (COERCE): Likewise.
	* record.d (class_of): Likewise.
	* spvw_circ.d (subst_circ_mark): Likewise.
	* stream.d (check_stream, check_wr_int): Likewise.
	(get_synonym_stream): Likewise.
	(Truename_or_Self): Likewise.
	(handle_set, handle_isset): Likewise.
	(init_standard_io): Likewise.

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (object) [WIDE_STRUCT]: Wrap the union in struct.
	(as_object, typecode, mtypecode, untype, type_pointable): Update.
	* genclisph.d (main): Update.

2002-12-09  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (p_backtrace_t): new type, mostly useful for
	debugging back_trace issues in C++ mode
	(back_trace_check): declared
	(BT_CHECK, BT_CHECK1): new CPP macros
	(saved_back_trace, back_trace, _back_trace, _saved_back_trace):
	type p_backtrace_t
	* genclisph.d, spvw.d, spvw_garcol.d: ditto
	* spvw_debug.d (back_trace_check): implemented
	(back_trace_depth, back_trace_out): handle circular back_trace

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

	* arilev1i.d (add_loop_down, addto_loop_down, sub_loop_down)
	(subx_loop_down, subfrom_loop_down): Limit variable scope to make
	it compile in C++ mode.

2002-12-09  Sam Steingold  <sds@gnu.org>

	* spvw_garcol.d (gar_col_normal): gc_mark() bt_caller's even
	though we are certain they have already been marked, since Bruno
	said: "Better safe than sorry"

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (gcv_environment_t): New type.
	(aktenv): Change type to gcv_environment_t.
	(make_STACK_env): Use gcv_environment_t.
	(nest_env): Change argument and return type to gcv_environment_t*.
	(get_closure): Change argument type to gcv_environment_t*.
	* spvw.d (aktenv): Change type to gcv_environment_t.
	* eval.d (nest_env): Change argument and return type to
	gcv_environment_t*.
	(get_closure): Change argument type to gcv_environment_t*.
	Don't mix environment_t and gcv_environment_t.
	(eval, eval_applyhook): Update.
	* control.d (compile_eval_form): Don't mix environment_t and
	gcv_environment_t.
	(EVALHOOK, APPLYHOOK): Likewise.
	* debug.d (same_env_as): Likewise.
	* predtype.d (COERCE): Update.

	* array.d, control.d, eval.d, lispbibl.d, predtype.d, sequence.d:
	* spvw.d, spvw_circ.d, spvw_garcol.d, spvw_genera1.d, spvw_memfile.d:
	* spvw_objsize.d, spvw_update.d, spvwtabo.d: Use sizeof(gcv_object_t)
	where appropriate.

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

	* lispbibl.d (backtrace_t): bt_caller is also a gcv_object_t(!)
	prefix all slots of backtrace_t with `bt_'
	(unwind_back_trace) [DEBUG_SPVW]: do circularity checking
	* debug.d, genclisph.d, spvw_debug.d, spvw_garcol.d: updated

2002-12-06  Sam Steingold  <sds@gnu.org>

	* makemake.in (check-sources): check that there are no variables
	of type gcv_object_t - only pointers to it (see lispbibl.d)

2002-12-06  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/demos/sokoban.lisp: provide "sokoban"
	(sokoban): check that *display* is alive
	* modules/clx/new-clx/demos/qix.lisp: provide "qix"
	* modules/clx/new-clx/demos/clx-demos.lisp (CLX-DEMOS): use XLIB
	and EXT and shadow some symbols to avoid conflicts
	(getenv): removed (there is one in EXT)
	replaced the EVAL-WHEN kludge with REQUIRE
	* modules/clx/new-clx/clx.lisp (closed-display-p, x-error): export
	use PRINT-OBJECT, not :PRINT-FUNCTION DEFSTRUCT option
	use (DEFSETF foo set-foo) instead of (SETF (FDEFINITION '(SETF
	foo)) #'set-foo) for all setters
	(make-gcontext): new function (for clue)
	(x-error, closed-display): new conditions (complete)
	(request-error, resource-error, request-error, resource-error)
	(access-error, alloc-error, atom-error, colormap-error)
	(connection-failure, cursor-error, device-busy, drawable-error)
	(font-error, gcontext-error, id-choice-error, implementation-error)
	(length-error, lookup-error, match-error, missing-parameter)
	(name-error, pixmap-error, reply-length-error, reply-timeout)
	(sequence-error, server-disconnect, unexpected-reply)
	(unknown-error, value-error, window-error): new conditions (just
	the stubs)
	* modules/clx/new-clx/clx.f (closed_display_error): new function
	(isa_struct_p): use memq() instead of an explicit loop
	(ensure_living_display): return Bool indicator of whether the
	display has been closed
	(CLOSED-DISPLAY-P): new public function
	(CLOSE-DISPLAY): mark the display as closed
	by setting fp_pointer to NULL
	(display_hash_table, pop_display, general_lookup): signal a
	CLOSED-DISPLAY error when ensure_living_display() returns false
	(get_ptr_object_and_display, get_xid_object_and_display): use
	pop_display() instead of ensure_living_display()
	(SET-DISPLAY-AFTER-FUNCTION): do not call
	ensure_living_display() twice
	(xlib_after_function): no need to call ensure_living_display()
	converted *-SETTER --> SET-*
	* modules/clx/new-clx/e2d.c (do_defun): terminate name on '('

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (gcv_object_t): New type.
	(kvtable_data): Don't confuse object and void*.
	(copy_mem_b, copy_mem_o): Use const.
	* genclisph.d (main): Emit gcv_object_t type.
	* affi.d, array.d, charstrg.d, comptran.d, constobj.d, control.d:
	* debug.d, encoding.d, error.d, eval.d, foreign.d, hashtabl.d, io.d:
	* lisparit.d, list.d, modules.d, package.d, pathname.d, predtype.d:
	* realtran.d, record.d, rexx.d, sequence.d, spvw.d, spvw_circ.d:
	* spvw_garcol.d, spvw_genera1.d, spvw_genera2.d, spvw_genera3.d:
	* spvw_heap.d, spvw_mark.d, spvw_memfile.d, spvw_page.d:
	* spvw_sigsegv.d, spvw_typealloc.d, spvw_update.d, stream.d:
	* subr.d, symbol.d: Use gcv_object_t instead of object where
	appropriate.
	* charstrg.d (char_name, name_char): Use const.
	* hashtabl.d (hashcode3_atom): Likewise.

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

	* lispbibl.d (lp_limit_1, ca_limit_1): set to 2^12-1
	* spvw.d (main) [DEBUG_SPVW]: check that the STACK depth is more
	that CALL-ARGUMENTS-LIMIT

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

	* modules/clx/new-clx/clx.f (get_event_mask): fixed error handling
	removed saving/restoring subr_self throughout
	applied the macrology patch (boundp, missingp, VALUES1 &c)
	(display_hash_table): replace STACK_0 instead of returning a value
	(make_xid_obj_2): reflect this change
	* modules/clx/new-clx/clx.lisp (*GCONTEXT-COMPONENTS*):
	define the constant (required by CLUE)
	* modules/clx/new-clx/demos/sokoban.lisp (*xpm-directory*)
	(*screen-directory*): use *LOAD-TRUENAME*, not *LOAD-PATHNAME*,
	and make sure that :NAME and :TYPE are NIL
	(save-state, load-state): use WITH-STANDARD-IO-SYNTAX
	(*sokoban-debug*): new variable; `d' - new command

2002-12-04  Bruno Haible  <bruno@clisp.org>

	* foreign.d (convert_function_to_foreign, init_ffi): Add casts to make
	it compile in C++ mode.

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

	* loop.lisp (expand-loop): removed the `initializations2'
	optimization which bound some iteration variables right around
	the main-code: this allows accessing iteration variables in the
	finally clauses (this also shortens the bytecode)

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

	* defmacro.lisp (make-length-test): use EXT:LIST-LENGTH-DOTTED
	instead if LENGTH because the argument may be dotted when it comes
	from a destructuring lambda list

2002-12-03  Sam Steingold  <sds@gnu.org>

	* stream.d (MAKE-WINDOW): do not assume that *TERMINAL-IO* is a
	terminal-stream
	(FILE-POSITION): decrement the position if a character has been
	unread (so that PEEK-CHAR does not modify FILE-POSITION)

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

	* spvw_debug.d (nobject_out): handle characters

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

	* foreign1.lisp (finalize-coutput-file): produce ANSI C,
	compilable with a C++ compiler such as g++

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

	fixed bug #[ 647015 ]: ffi:def-c-enum broken from .fas file
	* foreign1.lisp (def-c-enum): use DEF-C-TYPE to define the enum
	type to C `int'

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

	* int2adic.d (D_D_mal2adic_D, UDS_UDS_durch2adic_UDS):
	avoid "warning: statement with no effect"
	* hashtabl.d (hashcode, CLASS-TUPLE-GETHASH): ditto

2002-12-01  Bruno Haible  <bruno@clisp.org>

	* spvw_debug.d (nobject_out): Fix compilation error when !DYNAMIC_FFI.

2002-12-01  Bruno Haible  <bruno@clisp.org>

	Make it buildable with CC=g++.

	* m4/proto.m4 (CL_PROTO_RET): Add an argument, the ANSI-DECL.
	* m4/abort.m4 (CL_ABORT): Update.
	* m4/closedir.m4 (CL_CLOSEDIR): Update.
	* m4/free.m4 (CL_FREE): Make it work better with CC=g++.
	* m4/getpagesize.m4 (CL_GETPAGESIZE): Update.
	* m4/putenv.m4 (CL_PUTENV): Avoid buggy AC_CHECK_FUNCS(putenv).
	* m4/select.m4 (RL_SELECT): Avoid buggy AC_CHECK_FUNCS(select).
	(CL_SELECT): Likewise.
	* m4/shmat.m4 (CL_SHMAT): Make it work better with CC=g++.
	* m4/signal.m4 (RL_RETSIGTYPE): Make it work better with CC=g++.
	* m4/strlen.m4 (CL_STRLEN): Make it work better with CC=g++.

	* cjk.h (is_cjk_encoding): Convert declaration to ANSI C.
	* uniname.c (unicode_name_word, unicode_name_word_lookup)
	(unicode_character_name, unicode_name_character): Convert declaration
	to ANSI C.
	* uniname.h (unicode_character_name, unicode_name_character): Convert
	declaration to ANSI C.
	* width.c (uc_width): Likewise.

	* utils/ccmp2c.c (token_type_t): Renamed from enum token_t.

	* debug.d (read_form): Limit variable scope because of 'goto'.
	(SHOW-STACK): Add a cast.
	* eval.d (sym_value): Limit variable scope because of 'goto'.
	(setq): Likewise.
	(nest_env): Move variable declaration because of 'goto'.
	(eval_closure): Bug fix: Avoid setting the STACK to an uninitialized
	value in case of error.
	(apply): Move error code because of 'goto'.
	(apply_closure): Likewise.
	(funcall): Likewise.
	* io.d (write_sstring_case): Move some code because of 'goto'.
	(pr_enter_1): Limit variable scope because of 'goto'.
	* realelem.d (defaultfloatcase): Move variable declaration because of
	'goto'.
	* spvw.d (main): Limit variable scope because of 'goto'.
	* spvw_debug.d (string_out): Fix element type of buffer.
	* spvw_memfile.d (loadmem_update_fsubr): Add cast.
	* stream.d (lisp_completion): Limit variable scope because of 'goto'.
	(rd_ch_terminal3): Add some casts.
	(sock_opt_bool, sock_opt_int, sock_opt_time, SOCKET-OPTIONS): Use
	socklen_t instead of 'int'.
	(read_line): Bug fix: Avoid using uninitialized variable in error
	message.
	* unix.d (ioctl): Move declaration after <sys/ioctl.h> has been
	included.

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

	* stream.d (check_wr_char): new macro (used in 18 places)

2002-11-30  Sam Steingold  <sds@gnu.org>

	* places.lisp (remove-plist): new function
	* inspect.lisp (with-http-output): use it instead of REMF

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

	* loop.lisp (expand-loop): APPEND/NCONC do not allow backward
	consing because REVAPPEND/NRECONC drop the last atom in dotted lists

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

	* pprint.lisp (with-gensyms): append the variable name
	to GENSYM prefix

2002-11-27  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 644353 ]: Segfault when overriding stdin
	* stream.d (read_line): call ssstring_append_extend() only when len>0

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

	* list.d (list_length): new function
	(LIST-LENGTH, LIST-LENGTH-DOTTED): use it
	* subr.d, constsym.d (LIST-LENGTH-DOTTED): added
	* init.d (LIST-LENGTH-DOTTED): exported
	* describe.lisp (LIST-LENGTH-DOTTED): defined in list.d now

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

	* loop.lisp (expand-loop): when IT keyword is not appropriate,
	treat it as a variable and hope it is bound somewhere
	- THEREIS clause adds NIL to RESULTS to
	prevent ambiguity in the return values
	- when summing (or counting &c) into a variable for which the type has
	been declared, make sure it is initialized to that particular type

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

	* loop.lisp (loop-syntax-error, expand-loop): macro-expansion-time
	errors have type SOURCE-PROGRAM-ERROR

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

	use C standard I/O <stdio.h> instead of asciz_out() and friends
	* acorn.d, encoding.d, error.d, genclisph.d, io.d, misc.d:
	* msdos.d, pathname.d, socket.d, spvw.d, stream.d:
	do not include <stdio.h> here
	* lispbibl.d: include <stdio.h>
	(asciz_out, asciz_out_s, asciz_out_ss, asciz_out_1, asciz_out_2)
	(asciz_out_3, asciz_out_1_, asciz_out_2_, asciz_out_3_, dez_out)
	(dez_out_, hex_out, hex_out_, mem_hex_out): removed
	(STACK_diff): new macro
	(bt_beyond_stack_p): use it
	(OS_error, OBJECT_OUT, OS_file_error, OS_filestream_error):
	use fprintf(), fputs() &c instead of asciz_out() and friends
	(nobject_out): declare
	* affi.d (reg_call): ditto
	* amigaaux.d (abort, init_amiga): ditto
	* avl.d (AVL/out): ditto
	* erramiga.d, errunix.d, errwin32.d (errno_out): ditto
	* predtype.d (with_gc_statistics): ditto
	* rexx.d (debug_asciz_out, debug_out_1): ditto
	* spvw.d (SP_ueber, STACK_ueber, fsubr_argtype, subr_argtype)
	(fehler_code_alignment, init_subr_tab_1, init_module_2)
	(usage, main): ditto
	* spvw_alloca.d (malloca): ditto
	* spvw_allocate.d (error_speicher_voll, make_space_gc_true)
	(make_space_gc_false, make_space_gc): ditto
	* spvw_fault.d (handle_mmap_fault, handle_fault, xmprotect): ditto
	* spvw_garcol.d (gc_unmarkcheck, gar_col_normal): ditto
	* spvw_global.d (check_gc_consistency, check_gc_consistency_2): ditto
	* spvw_memfile.d (loadmem, loadmem_from_handle): ditto
	* spvw_mmap.d (mmap_zeromap, mmap_prepare, mmap_filemap)
	(mprotect, mmap_init): ditto
	* spvw_multimap.d (initmap, msync_mmap_intervals, fdmap, idmap)
	(open_temp_fd, fdsave, close_temp_fd, exitmap, open_shmid)
	(shmsave, close_shmid): ditto
	* spvw_sigsegv.d (sigsegv_handler_failed): ditto
	* stream.d (rd_ch_keyboard) [WIN32_NATIVE]: ditto
	* win32aux.d (DumpProcessMemoryMap): ditto
	* pathname.d (string_concat): ditto
	(debug_output, debug_printf): removed
	(DOUT, SDOUT): use object_out() and nobject_out()
	* debug.d (back_trace_out): moved to spvw_debug.d
	* spvw_debug.d (asciz_out, asciz_out_s, asciz_out_ss, asciz_out_1)
	(asciz_out_2, asciz_out_3, asciz_out_1_, asciz_out_2_, asciz_out_3_)
	(dez_out, dez_out_, hex_out, hex_out_): removed
	(mem_hex_out): turned into local, use fputs(), not asciz_out()
	(string_out, nobject_out): non-consing, STACK non-modifying output
	(back_trace_depth): new function
	(back_trace_out): moved here, use nobject_out() and STACK_diff()

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

	* eval.d (interpret_bytecode, eval_closure, apply_closure)
	(funcall_closure, interpret_bytecode_): wrap calls to
	funcall_iclosure() and interpret_bytecode_() with a
	with_saved_back_trace()
	(interpret_bytecode_): do not augment back_trace

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

	* spvw_garcol.d (gar_col_normal) [DEBUG_SPVW]: check that all
	callers in back_trace have been already marked

2002-11-16  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop): fixed a bug: check that accumulation
	variables have not been bound yet (by iteration or WITH clauses)

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

	* loop.lisp (expand-loop): fixed a bug: package argument for
	symbol iteration is not required and defaults to *PACKAGE*

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

	replaced subr_self with back_trace
	* lispbibl.d, genclisph.d, spvw.d (backtrace_t): new struct
	(*back_trace_reg*): renamed from *subr_self_reg*
	(HAVE_SAVED_back_trace): renamed from HAVE_SAVED_subr_self
	(saved_back_trace): renamed from saved_subr_self
	(bt_beyond_stack_p, unwind_back_trace, with_saved_back_trace):
	new macros
	(enter_frame_at_STACK): call unwind_back_trace()
	* array.d (eltype_code, initial_contents): do not save subr_self
	(initial_contents_aux): do not set subr_self
	* charstrg.d, control.d, error.d, foreign.d, hashtabl.d:
	* lisparit.d, package.d, record.d, rexx.d: do not mention subr_self
	as an argument in the comments
	* debug.d (driver, break_driver): bind back_trace
	(print_back_trace, back_trace_out): new functions
	(DESCRIBE-FRAME): call print_back_trace()
	(show_stack): new function
	(SHOW-STACK): call show_stack() and accept 3 arguments
	* subr.d (SHOW-STACK): reflect this change
	* reploop.lisp (debug-backtrace): use SHOW-STACK instead of a loop
	* encoding.d (CONVERT-STRING-FROM-BYTES): do not save subr_self
	* eval.d (unwind_upto): call unwind_back_trace() explicitly at
	the beginning, even though it is called by enter_frame_at_STACK()
	(eval_fsubr, apply_subr, funcall_subr, interpret_bytecode_):
	use with_saved_back_trace() instead of setting subr_self
	* io.d (SET-DISPATCH-MACRO-CHARACTER): no need to restore subr_self
	* list.d (member, MEMBER-IF, MEMBER-IF-NOT, ADJOIN):
	no need to save subr_self
	* pathname.d (coerce_xpathname, parse_as_logical, coerce_pathname)
	(defaults_pathname, assure_dir_exists, prepare_create)
	(directory_search, DYNLOAD-MODULES): ditto
	(ENOUGH-NAMESTRING, assume_dir_exists): use
	with_saved_back_trace() instead of setting subr_self
	(NAMESTRING, copy_one_file): no need to set subr_self
	* predtype.d (COERCE): no need to set subr_self
	* sequence.d (fehler_seqtype_length): use subr_self in error
	reporting (we now know that it is correct)
	(end_default_len, SUBSEQ, COERCED-SUBSEQ, seq_filterop)
	(seq_duplicates, find_op, position_op, count_op):
	no need to save and restore subr_self
	(copy_seqpart_into, FILL): use with_saved_back_trace()
	instead of setting subr_self
	(MISMATCH, SEARCH): no need to set subr_self
	* spvw_garcol.d (gar_col_normal): update callers in back_trace,
	they are all on the stack so we do not need to mark them
	(gar_col_simple, gar_col): no need to save and restore subr_self
	* stream.d (test_eltype_arg, sec_usec, check_float_eltype): ditto
	(read_line): use with_saved_back_trace() instead of setting subr_self

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

	* m4/libtool.m4: upgraded to libtool-1.4.3

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

	moved %REMF and %PUTF to C to unify all plist handling in one place
	* symbol.d (fehler_sym_plist_odd): renamed from fehler_plist_odd()
	(fehler_plist_odd): new function for property lists (not
	associated with any symbol)
	(plist_find): generic property list search
	(get, GETF, %PUT, REMPROP): use plist_find()
	(%PUTF, %REMF): new functions (use plist_find())
	* subr.d, constsym.d (%PUTF, %REMF): new functions
	* places.lisp (remf): use the built-in SYS::%REMF
	(%putf): removed

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

	* spvw.d (SP_ueber, STACK_ueber): quit when CLISP is non-interactive

2002-11-06  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-FORMAT): when destination is T, pass
	*STANDARD-OUTPUT* to the value of the FORMATTER call, not NIL;
	also treat destination NIL specially

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

	* clos.lisp (documentation): implemented
	(ensure-class): use SYS::%SET-DOCUMENTATION instead
	of (SETF DOCUMENTATION)
	* defstruct.lisp (defstruct): ditto
	* defs2.lisp (defpackage): do not discard the documentation string

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

	* macros1.lisp (declare): added a defmacro-special that expands to
	NIL: since DECLARE is not enumerated in the Figure 3-2, and it is
	a special operator in CLISP, a macro expander have to be provided

2002-11-03  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (defpackage): accept characters as symbol and
	package designators
	* init.lisp (in-package): accept characters as package designators

2002-11-02  Sam Steingold  <sds@gnu.org>

	* package.d (unintern): do not put the same symbol into the
	options list twice

2002-11-02  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_search_scandir): when returning from
	inside with_sstring_0, call FREE_DYNAMIC_ARRAY

2002-11-02  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (set-exclusive-or, nset-exclusive-or): call TEST and
	TEST-NOT with the arguments in the correct order, i.e., the first
	arg from the first list and the second arg from the second list

2002-11-01  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (do-symbols, do-external-symbols, do-all-symbols):
	wrap BODY-REST in TAGBODY

2002-11-01  Sam Steingold  <sds@gnu.org>

	* package.d (shadow): accept characters too
	(test_stringsym_arg): removed
	(FIND-PACKAGE, test_names_args, %IN-PACKAGE, FIND-ALL-SYMBOLS):
	use test_stringsymchar_arg() instead of test_stringsym_arg()
	(apply_symbols) [X3J13_161]: pass characters to shadow()
	* constobj.d (type_stringsym): removed
	* charstrg.d, lispbibl.d (test_stringsymchar_arg): declare global

2002-11-01  Sam Steingold  <sds@gnu.org>

	* package.d (FIND-PACKAGE): package object is a package designator too

2002-11-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): process argument `-p' _after_ all `-i' arguments
	so that the `-p' package can be created in one of the init files;
	this is backward compatible as long as all the files have an
	IN-PACKAGE statement, which they all certainly should have!

2002-11-01  Sam Steingold  <sds@gnu.org>

	* condition.lisp, macros2.lisp (etypecase, ctypecase): when
	KEYCLAUSELIST contains T, expand to TYPECASE

2002-11-01  Sam Steingold  <sds@gnu.org>

	* sequence.d (valid_type1): NULL --> (LIST 0); CONS --> (LIST (0) *)
	(fehler_seqtype_length): adjusted accordingly
	(SEQTYPE_LENGTH_MATCH): new macro
	(MAKE-SEQUENCE, coerce_sequence, COERCED-SUBSEQ, CONCATENATE, MAP)
	(MERGE): use it

2002-11-01  Sam Steingold  <sds@gnu.org>

	* loop.lisp (li-vars): new inline function
	(expand-loop): check for duplicate iteration variables;
	use ATOM for ON iteration, as per ANSI CL spec

2002-10-31  Sam Steingold  <sds@gnu.org>

	* error.d, lispbibl.d (fehler_lambda_expression):
	accept `caller' argument
	* symbol.d (%PUTD): pass caller to fehler_lambda_expression()
	* eval.d (coerce_function, apply, funcall): ditto

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

	* error.d (fehler_proper_list): accept `caller' argument
	* control.d (ENDP): pass caller to fehler_proper_list()
	* lispbibl.d (list_to_mv): ditto
	* list.d (endp, memq1, LIST-LLENGTH): ditto
	* sequence.d (LENGTH): ditto

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

	* lispbibl.d (restart): renamed the typedef to restartf_t
	* control.d (UNWIND-PROTECT): ditto
	* eval.d (reset, invoke_handlers, interpret_bytecode_): ditto
	* spvw.d (quit): ditto

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

	* compiler.lisp (signature): make it (:TYPE VECTOR) to avoid
	going through PRINT-OBJECT and MAKE-LOAD-FORM when compiling
	(function-signature): return function _name_ as the first value
	- this restores inline compilation
	(test-argument-syntax): with APPLY forms, one have to be more
	permissive wrt keyword arguments (a key may be explicitly in the
	list and the value maybe in the rest arguments)
	* init.lisp (nth-value, function-lambda-expression): export here
	for FUNCTION-SIGNATURE in compiler.lisp

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

	* defs2.lisp (function-lambda-expression): always return a name,
	return the lambda expression for some compiled functions too

2002-10-25  Sam Steingold  <sds@gnu.org>

	* eval.d (coerce_function): use fehler_function()
	* sequence.d (seq_boolop): ditto
	* symbol.d (%PUTD): ditto

2002-10-23  Sam Steingold  <sds@gnu.org>

	* loop.lisp (expand-loop): separated `startup-code' from
	`initially-code' so that INITIALLY clauses can access variables

2002-10-23  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Bugfixing directory shortcuts on win32.
	* pathname.d (assure_dir_exists) [WIN32_NATIVE]:
	handle situation when dir exists but filename does not.
	(directory_search_scandir) [WIN32_NATIVE]: return symbolic
	name for nonexistent targets.

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

	* complete.lisp (completion): call DESCRIBE only if there was
	something typed and it is in the completions

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

	Make sure COMPILE-FILE-PATHNAME does not barf in SEARCH-FILE
	* init.lisp (search-file): pass :IF-DOES-NOT-EXIST :IGNORE to DIRECTORY
	* pathname.d (dir_search_if_none_t): added DIR_IF_NONE_IGNORE
	(directory_search_hashcode): never signal error, just return nullobj
	(directory_search_scandir): do not barf when DIR_IF_NONE_IGNORE,
	otherwise treat DIR_IF_NONE_IGNORE just like DIR_IF_NONE_DISCARD
	(directory_search): be more careful with subdirectories when
	DIR_IF_NONE_IGNORE
	(DIRECTORY): accept :IF-DOES-NOT-EXIST :IGNORE
	* constobj.d (type_directory_not_exist): added :IGNORE

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

	* compiler.lisp (c-LABELS, c-GENERIC-LABELS): new macro ADD-FENV
	in their common MACROLET

2002-10-17  Sam Steingold  <sds@gnu.org>

	* debug.d (read_form): do not nreverse STACK_2 before binding
	SYS::*KEY-BINDINGS*, since this destructively modifies commandsr
	in reploop.lisp
	* reploop.lisp (help): avoid much consing by not calling REVERSE +
	REMOVE-IF-NOT, this also simplifies the logic everywhere and makes
	the help message appear in the same order for different invocations
	(break-loop): push the restart announcement onto commandsr
	(break-loop, step-hook-fn): compute the command list just once,
	instead of for each READ-EVAL-PRINT invocation

2002-10-16  Sam Steingold  <sds@gnu.org>

	* complete.lisp (completion): respect (readtable-case *readtable*)
	when printing and searching completions; do not close the
	parenthesis when quoting since readline will add a close quote
	after the closing parenthesis

2002-10-16  Sam Steingold  <sds@gnu.org>

	* realtran.d (F_pi_round_I_F): removed
	(F_pi2_round_I_F): the second (integer) value is taken mod 4
	(cos_stack, sin_stack): new functions
	(R_sin_R, R_cos_R): rewrote to use them

2002-10-16  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Directory shortcuts on win32.
	* pathname.d (FullName): save final slash, respect it.
	(resolve_shell_shortcut): don't call IShellLink->Resolve
	don't need to substitute missing target with any other file.
	Try to use description field on missing symlinks.
	(shell_shortcut_target_t): resolve result enumeration.
	(resolve_shell_shortcut_more): new function - resolve links
	to links, returns target attributes.
	(TrueName): similar to FullName, but tries to resolve every
	pathname component up to filename.
	(resolve_shell_symlink): changed result type, input parameters.
	(assure_dir_exists): split MSDOS and WIN32_NATIVE, the latter
	is rewritten.
	(directory_search_1subdir) [WIN32_NATIVE]: separated from others.
	Uses TrueName to handle links.
	(directory_search_hashcode) [WIN32_NATIVE]: new for win32.
	(directory_search_scandir) [WIN32_NATIVE]: reworked.
	(directory_search) [WIN32_NATIVE]: handle :CIRCLE flag.

2002-10-16  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Fix build for MSVC.
	* win32.d (MyCreateProcess): declare 1st parameter as const
	* win32aux.d (MyCreateProcess): same.
	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
	(SOCKET-OPTIONS): change length parameter of [g|s]etsockopt
	to type int (uint is absent). Cast option to (char *) - as
	declared in winsock (won't hurt (void *) unix declaration).

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

	* complete.lisp (completion): print help when nothing useful was
	entered (just some whitespace)

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

	fixed bug #[ 598128 ]: values / multiple-value-list crash
	* lispbibl.d (list_to_mv): fixed the check for mv_space overrun
	(mv_to_STACK): check space on STACK beforehand, not post-factum

2002-10-13  Sam Steingold  <sds@gnu.org>

	* places.lisp (psetf): handle the empty form (PSETF) properly

2002-10-13  Sam Steingold  <sds@gnu.org>

	* list.d (llength1): new global function, returning the last atom
	in addition to the list length
	(LIST-ENDTEST): use llength1: sequence functions expect proper sequences
	* lispbibl.d (llength1): declare
	(llength): define as a macro expanding to llength1()
	* sequence.d (LENGTH): use llength1 for lists and check for
	proper list termination

2002-10-13  Sam Steingold  <sds@gnu.org>

	a character is a package designator too
	* package.d (test_package_arg, test_stringsym_arg)
	(DELETE-PACKAGE): convert characters to singleton strings
	(%SET-PACKAGE-LOCK): adapt to now triggering GC test_package_arg()

2002-10-13  Sam Steingold  <sds@gnu.org>

	* sequence.d (MAKE-SEQUENCE): do not init strings with #\Space,
	keep the #\Null's from MAKE-STRING

2002-10-13  Sam Steingold  <sds@gnu.org>

	MAPC[AR|ON|AN]/MAPL[IST] require proper lists
	* compiler.lisp (c-MAP-on-CARs-inner, c-MAP-on-LISTs, c-MAPL):
	use ENDP, not ATOM to check for the list end
	* control.d (MAPCAR_MAPLIST_BODY, MAPC_MAPL_BODY)
	(MAPCAN_MAPCON_BODY): ditto
	(ENDP): new macro

2002-10-13  Sam Steingold  <sds@gnu.org>

	* list.d (TAILP): use EQL to compare the sublist, not EQ

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

	* type.lisp (canonicalize-type): recognize typed structures;
	barf on symbols that do not name types
	(subtypep): handle ATOM properly

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

	As per <http://www.lisp.org/HyperSpec/Body/sec_11-1-2-1-1.html>,
	external symbols in COMMON-LISP cannot have properties accessible
	in COMMON-LISP-USER, so we have to move EXT:MACRO to SYS::MACRO
	* init.lisp: do not export MACRO from EXT
	* lispbibl.d: fixed comments
	* describe.lisp (describe-object): EXT:MACRO --> SYS::MACRO
	* constsym.d (macro): EXT --> SYS
	* constobj.d (hs_macro): EXT --> SYS

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

	* pathname.d (DELETE-FILE): delete the argument, not its TRUENAME

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

	* pathname.d (DIRECTORY): accept new :IF-DOES-NOT-EXIST argument
	(dir_search_if_none_t, dir_search_param_t): new typedefs
	(directory_search): accept a second dir_search_param_t argument
	(directory_search_scandir): accept a third dir_search_param_t argument
	* subr.d, subrkw.d (DIRECTORY): added :IF-DOES-NOT-EXIST
	* constobj.d (version): bumped (DIRECTORY is in FUNTAB)
	(type_directory_not_exist): new type
	* constsym.d (Kkeep, Kdiscard): new keywords

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

	fixed PEEK-CHAR for ECHO-STREAMs and non-NIL peek-type
	* io.d (wpeek_char_eof, PEEK-CHAR): use peek_char()+read_char(),
	not read_char()+unread_char() - for the sake of echo streams

2002-10-10  Sam Steingold  <sds@gnu.org>

	* makemake.in (PARAMS): for the sake of a same-dir build, renamed
	the temporary C file to tmp.c (instead of the actual name ${parf}.c)
	(XCFLAGS) [GCC-3 DEBUG]: add -falign-functions=4

2002-10-09  Sam Steingold  <sds@gnu.org>

	* spvw_memfile.d (loadmem_from_handle): accept a second argument
	'filename' for better error reporting

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

	* realelem.d (F_R_float_F, RA_R_float_F): use Lfloat_length(y)
	instead of O(LF_digits), when y is actually a long float
	(C_R_float_C, N_N_float_N): do not modify the first argument
	* realtran.d (R_cosh_sinh_R_R): handle start_p/end_p for x=0 too
	* comptran.d (N_N_log_N): fixed a typo in the last patch
	(N_cis_N): (sin a) may be 0
	(N_exp_N): handle contagion properly
	(N_log_N): do not modify the complex argument
	(N_N_expt_N, N_tan_N, N_tanh_N): fixed C_R_float_C/N_N_float_N calls
	* lisparit.d (EXP): pass a real as the 3rd arg of N_exp_N
	(LOG): pass a real as the 3rd arg of N_log_N

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

	fixed bug #[ 618428 ]: LOOP: local variables shadowing globals
	* loop.lisp (expand-loop): initialize accumulation variables
	after iteration variables

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

	* spvw.d (init_object_tab) [DEBUG_SPVW]: add :CLISP-DEBUG to features
	* compiler.lisp: COMPILER-DEBUG --> CLISP-DEBUG
	(make-anode) [CLISP-DEBUG]: define when LOAD
	[CLISP-DEBUG]: do not remprop SYS::DEFSTRUCT-DESCRIPTION,

2002-10-04  John Hinsdale <hin@alma.com>

	* modules/oracle/oracle.lisp: More error checking throughout

2002-10-03  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (read-sequence, write-sequence): when deciding
	between byte and char i/o, check the sequence element type too

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

	* lispbibl.d (test_symbol): moved here from symbol.d
	(test_symbol_non_constant): declare new function
	* error.d (test_symbol_non_constant): new function
	* control.d (funname_to_symbol): new function
	(FDEFINITION, FBOUNDP, FMAKUNBOUND): use it
	(fehler_funsymbol, fehler_symbol_constant): removed
	(FUNCTION, FLET, LABELS): use fehler_funname_source() instead of
	fehler_funsymbol()
	(check_setq_body, SET, MAKUNBOUND, COMPILER-LET)
	(MULTIPLE-VALUE-SETQ): use test_symbol_non_constant()
	(%SYMBOL-VALUE, SYMBOL-VALUE, SYMBOL-FUNCTION, BOUNDP)
	(SPECIAL-OPERATOR-P, BLOCK, RETURN-FROM)
	(MACRO-FUNCTION, PROCLAIM): use test_symbol()
	* eval.d (SPECIAL-VARIABLE-P): ditto
	(progv, get_closure): use test_symbol_non_constant()
	* i18n.d (SET-CURRENT-LANGUAGE): ditto
	* record.d (SYMBOL-MACRO-EXPAND): ditto
	* stream.d (SYMBOL-STREAM): ditto
	* symbol.d (test_symbol): moved to lispbibl.d

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

	removed SYS::%FUNCALL
	* compiler.lisp (c-form-table): removed SYS::%FUNCALL
	(c-form, c-HANDLER-BIND, c-FUNCTION-CALL, c-MAP-on-CARs)
	(c-MAP-on-LISTs, c-MAPC, c-MAPL): use FUNCALL instead of SYS::%FUNCALL
	* defstruct.lisp (ds-arg-default): ditto
	* trace.lisp (get-traced-definition, trace-step-apply)
	(trace-pre-output, trace-post-output, trace-print): do not use
	SYS::%FUNCALL - call the inlined functions directly
	(trace-level-inc): removed
	* constsym.d, subr.d, control.d (pfuncall): removed
	* spvw.d (*MACROEXPAND-HOOK*): init to FUNCALL, not SYS::%FUNCALL
	* eval.d (macroexp0): use FUNCALL, not SYS::%FUNCALL
	(FUNTABR): removed _(pfuncall)
	* constobj.d (version): bumped (because of FUNTABR)

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

	* stream.d (BUILT-IN-STREAM-ELEMENT-TYPE): resolve synonym streams

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

	fixed bug #[ 617221 ]: distmakefile on cygwin uses `run', not `exe'
	* _distmakefile (lexe): new variable, init to @@LEXE@@
	* makemake.in (distmakefile): substitute ${LEXE} for @@LEXE@@

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

	* m4/readline.m4: check for `rl_already_prompted' after
	AC_SEARCH_LIBS and define HAVE_READLINE on success
	* lispbibl.d, unixconf.h.in: use HAVE_READLINE instead of
	HAVE_READLINE_READLINE_H

2002-09-30  Sam Steingold  <sds@gnu.org>

	* init.lisp (get-funname-symbol): moved here
	(defun): use GET-FUNNAME-SYMBOL instead of GET-SETF-SYMBOL
	* trace.lisp (check-traceable): ditto
	* places.lisp (get-setf-symbol): moved to init.lisp

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

	* makemake.in: fixed regeneration of intparam.h and floatparam.h

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

	* m4/readline.m4 (CL_READLINE): check for `rl_already_prompted'
	and reject readline versions that lack it

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

	* intparam.c: include <stdlib.h> for exit(3) to avoid a warning

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

	SOCKET:SOCKET-OPTIONS - an interface to getsockopt/setsockopt
	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
	(SOCKET-OPTIONS): new functions
	* constsym.d (SOCKET-OPTIONS, :SO-*): added
	* subr.d (socket_options): added
	* constobj.d (type_socket_option): added
	* init.lisp (SOCKET-OPTIONS): export

2002-09-25  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (special-variable-p): added a COMPILER-MACRO
	* init.lisp (%the-environment-error): renamed to %UNCOMPILABLE

2002-09-25  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-form): fixed the same bug again:
	EXPAND-COMPILER-MACRO may return an atom.
	This bug has already been fixed on 2002-02-28,
	but it was re-introduced on 2002-04-22.  Yuk.

2002-09-25  Sam Steingold  <sds@gnu.org>

	* compiler.lisp: removed the cross-compilation infrastructure,
	which was not used for over 10 years!

2002-09-25  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp (check-lisp-defs): do not need explicit
	APPEASE-CERRORS

2002-09-25  Sam Steingold  <sds@gnu.org>

	* eval.d (symbol_env_search): new function
	(sym_value, setq): use it
	(SPECIAL-VARIABLE-P): accept an optional second argument
	- the environment (NIL for global, T for local, VENV, or ENV5)
	moved here from symbol.d because it uses symbol_env_search()
	* subr.d (SPECIAL-VARIABLE-P): changed the signature
	* constobj.d (version): bumped because SPECIAL-VARIABLE-P is in FUNTAB
	* symbol.d (SPECIAL-VARIABLE-P): moved to eval.d
	* compiler.lisp (subr-info) [CROSS]: updated the signature
	* error.d (fehler_environment): new function
	* lispbibl.d (fehler_environment): prototype it
	* control.d (test_optional_env_arg): use it

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

	some code clean-up
	* describe.lisp (unicode-attributes): avoid a warning in LOOP
	* charstrg.d (eqcomp_fun_t): renamed from `eqcomp_fun'
	* array.d (ADJUSTABLE-ARRAY-P): use VALUES_IF
	(uint_bitpack_t): renamed from `uint_bitpack'
	(uint_2bitpack_t): renamed from `uint_2bitpack'
	(initial_contents_locals_t): renamed from `initial_contents_locals'
	(reshape_data): renamed from `reshape_data'
	(test_array): turned into a function
	(ADJUST-ARRAY): use it
	* symbol.d (test_symbol): new function
	(%PUTD, %FIND-SUBR, GET, %PUTPLIST, %PUT, REMPROP, SYMBOL-PACKAGE)
	(SYMBOL-PLIST, SYMBOL-NAME, SPECIAL-VARIABLE-P): use it
	* debug.d (climb_fun_t): renamed from `kletterfun'

2002-09-22  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Bring (directory) to compliance with new win32 shortcut handling.
	* pathname.d [WIN32_NATIVE]:
	(resolve_shell_shortcut): changed parameters and semantics to
	lower level (symlink is based on shortcuts which is
	an implementation method).
	(resolve_shell_symlink): use it, work as old
	resolve_shell_shortcut did.
	(assure_dir_exists): renamed a call to it.
	(directory_search_scandir): now handles shortcuts specially.

2002-09-21  John Hinsdale <hin@alma.com>

	* module/oracle/Makefile.in: better Oracle -I path for v8.0.5

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

	* control.d (UNWIND-TO-DRIVER): accept a TOP-P argument
	(UNWIND-TO-TOP): removed
	* subr.d, constsym.d (UNWIND-TO-TOP): removed
	* subr.d, compiler.lisp (UNWIND-TO-DRIVER): changed the signature
	* eval.d (FUNTAB): added MEMQ
	* constobj.d (version): bumped because of UNWIND-TO-DRIVER and MEMQ
	* reploop.lisp (break-loop, step-hook-fn): do not use
	UNWIND-TO-TOP but pass an argument to UNWIND-TO-DRIVER

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

	fix the OBSOLETE-ACTION patch
	* init.lisp (warn): the preliminary definition must return NIL
	(open-for-load): use SYS::BUILT-IN-STREAM-CLOSE instead of CLOSE

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

	error reporting clean-up
	* charstrg.d (coerce_ss, coerce_imm_ss, coerce_normal_ss)
	(coerce_imm_normal_ss): use fehler_string() instead of explicit
	fehler(type_error,...)
	(test_char_arg): renamed from test_newchar_arg(), use fehler_char()
	(STANDARD-CHAR-P, GRAPHIC-CHAR-P, CHAR-WIDTH, STRING-CHAR-P)
	(BASE-CHAR-P, ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P)
	(BOTH-CASE-P, DIGIT-CHAR-P, ALPHANUMERICP, CHAR-CODE)
	(CHAR-UPCASE, CHAR-DOWNCASE, CHAR-INT, CHAR-NAME, STORE-CHAR)
	(STORE-SCHAR): use test_char_arg()

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

	LOAD now takes an additional :OBSOLETE-ACTION keyword
	* init.lisp (open-for-load): new function
	(load): use it to open the file
	(*load-obsolete-action*): new user variable

2002-09-20  Stefan Kain  <stefan.kain@freenet.de>

	* constsym.d, subr.d, encoding.d, predtype.d, intlog.d, control.d:
	* charstrg.d, arihppa.d, array.d: translated all comments

2002-09-20  John Hinsdale <hin@alma.com>

	* modules/oracle: Fix Makefile format and vars to work
	on more systems; take ORACLE_HOME from environment.

2002-09-20  Will Newton  <will@misconception.org.uk>

	* ariarm.d: ARM assembler code updated to the newer gas syntax

2002-09-19  Sam Steingold  <sds@gnu.org>

	* lispbibl.d [SPARC GCC3]: disable global register declarations
	Suggested by Will Newton <will@misconception.org.uk>

2002-09-19  Sam Steingold  <sds@gnu.org>

	* lisparit.d (log_digits): fixed last patch: make sure
	that the saved value is not more precise than it is accurate

2002-09-18  Sam Steingold  <sds@gnu.org>

	* makemake.in: treat floatparam.[ch] just like intparam.[ch]

2002-09-18  Sam Steingold  <sds@gnu.org>

	* m4/fenv_default.m4: fixed AC_DEFINE macro calls

2002-09-18  Sam Steingold  <sds@gnu.org>

	* modules/bindings/linuxlibc6/linux.lisp (NGROUPS_MAX): do not
	redefine the constant based on _POSIX_NGROUPS_MAX

2002-09-18  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (default-foreign-language): avoid a compile-time
	warning by wrapping SETQ *FOREIGN-LANGUAGE* inside a
	WITHOUT-PACKAGE-LOCK macro
	* compiler.lisp (c-form-table, compile-toplevel-form): handle
	WITHOUT-PACKAGE-LOCK specially
	(*compiler-unlocked-packages*): new variable
	(set-check-lock): use it
	(c-WITHOUT-PACKAGE-LOCK): new function, binds
	*COMPILER-UNLOCKED-PACKAGES*

2002-09-18  Will Newton  <will@misconception.org.uk>

	* arihppa.d: syntactic changes to make the GNU assembler happy

2002-09-18  Sam Steingold  <sds@gnu.org>

	do not print QUOTE and FUNCTION specially when that results
	in a dotted list representation
	* io.d (special_list_p): new `dotted_p' argument
	(pr_cons): pass `dotted_p' to special_list_p()

2002-09-17  John  Hinsdale <hin@alma.com>

	* modules/oracle/oracle.lisp: use new FFI calls; many performance
	improvements in low-level functions and macros

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

	* lisparit.d (log_digits): fixed the 2002-09-11 patch:
	give NULL as end_p to R_ln_R() and shorten the result

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

	* loop.lisp (expand-loop): Warn if a sequence of forms is empty -
	allowed by CLtL2, but invalid according to ANSI CL.

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

	* compiler.lisp (c-APPLY): check whether FUN is locally defined
	to check signature in (flet ((foo (...) ...)) (apply #'foo ...))
	this also kills a spurious warning about undefined functions

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

	* Makefile.devel (SOURCES): removed SOURCES3
	(SOURCES2): simplified
	(SOURCES3): removed
	* makemake.in (clisp.html): VERSION --> `cat VERSION`
	* _clisp.html: report the CLISP version too

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

	* version.h: 2.30 is released

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

	* intparam.d: removed
	* Makefile.devel: do not regenerate comment5.c and intparam.c

2002-09-12  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (form-name): removed
	(compile-file): folded FORM-NAME; pass :PRETTY NIL to WRITE-TO-STRING

2002-09-11  Stefan Kain  <stefan.kain@freenet.de>

	* error.d, socket.d: translated all comments

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

	improved accuracy of some transcendental functions
	* realtran.d (pi): return long float of the same format as the arg
	(R_cos_sin_R_R, R_ln_R, R_exp_R, R_cosh_sinh_R_R): accept two
	additional arguments: start_p (whether to increase the precision
	in the beginning) and end_p (whether to lower the precision back
	at the end of computation)
	(R_R_log_R): handle these changes
	* realelem.d (N_N_contagion_R, F_R_float_F, RA_R_float_F)
	(R_R_float_F, C_R_float_C, N_N_float_N): new functions
	* lisparit.d (EXP, EXPT, log_digits): accommodate the changes in
	signatures of the basic transcendental functions
	* comptran.d (N_exp_N, N_log_N): accept start_p and end_p
	(N_N_log_N, N_N_expt_N, N_sin_N, N_cos_N, N_tan_N, N_cis_N)
	(N_sinh_N, N_cosh_N, N_tanh_N, R_R_atanh_R_R, N_atanh_N, N_atan_N)
	(R_R_asinh_R_R, N_acosh_N, N_acos_N): handle these changes

2002-09-11  John  Hinsdale <hin@alma.com>

	* modules/oracle/*: new add-in module for Oracle interface
	* src/Makefile.devel: build autoconf script for modules/oracle

2002-09-11  Marco Baringer  <empb@bese.it>
	    Sam Steingold  <sds@gnu.org>

	* lispbibl.d (VALUES_IF, VALUES0, VALUES1, VALUES2, VALUES3)
	(boundp, nullpSv, missingp): new macros
	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
	* dirkey.d, encoding.d, error.d, eval.d, flo_rest.d, foreign.d:
	* hashtabl.d, i18n.d, io.d, lisparit.d, lispbibl.d, list.d, misc.d:
	* package.d, pathname.d, predtype.d, realelem.d, record.d, rexx.d:
	* sequence.d, socket.d, spvw.d, spvw_garcol.d, stream.d, symbol.d:
	* time.d: use them

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

	* acorn.d, msdos.d, unix.d, unixaux.d, m4/signal.m4, unix/sigsegv.c:
	renamed signal_handler type to signal_handler_t

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

	* defmacro.lisp (analyze-key): fixed the bug with
	  (destructuring-bind (&key (x x)) ...)

2002-09-05  Stefan Kain  <stefan.kain@freenet.de>

	* avl.d: translated all comments

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

	* makemake.in (LN_S) [win32gcc]: do not redefine: Arseny made
	CLISP understand symlinks!
	(CPP) [win32gcc]: make sure it contains -mno-cygwin
	(comment5) [win32gcc]: avoid -mno-cygwin so that comment5.exe
	understands symbolic links

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

	* realtran.d (R_cos_sin_R_R): avoid one sqrt() and use
	sin(r)=r when r=0

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

	* compiler.lisp (disassemble-closure): print the number of instructions

2002-09-04  Bruno Haible  <bruno@clisp.org>

	* m4/sigsegv.m4 (CL_SIGSEGV): Do not define NO_SIGSEGV.
	* makemake.in (XCFLAGS): Add -DNO_SIGSEGV if there is no libsigsegv.

2002-09-03  Bruno Haible  <bruno@clisp.org>

	* sigsegv: Remove directory.
	* unix/INSTALL: Recommend installation of GNU libiconv, GNU libsigsegv.
	* win32msvc/INSTALL: Likewise.
	* m4/sigsegv.m4: New file.
	* configure.in: Call CL_SIGSEGV.
	* makemake.in (LIBSIGSEGV): New variable.
	(USE_SIGSEGV, XCL_SIGSEGVLIB): Remove variables.
	(FILES, LIBS): Remove libsigsegv.a.
	(EVERY_INCLUDES_H): Remove sigsegv.h.
	(sigsegv.h, libsigsegv.a): Remove rules.
	(clean1, clean4): Don't remove libsigsegv.a, sigsegv.h, sigsegv.
	* lispbibl.d: Don't include sigsegv.h if NO_SIGSEGV is defined.
	* Makefile.devel (SOURCES4): Remove sigsegv.
	(CONFIGURES): Remove sigsegv/configure.
	(configures): Remove dependency on sigsegv/autoconf/aclocal.m4.
	(sigsegv/autoconf/aclocal.m4, sigsegv/configure): Remove rules.

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

	* win32.d (HAVE_UNISTD_H): do not define (revert the 2002-08-19
	patch) since <unistd.h> is needed only for exec() which is not
	used on WIN32_NATIVE

2002-09-02  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Fixing makemake.in for mingw.
	* makemake.in: fixed 2002-08-10 patch: double quotes now
	used on TSYS=win32msvc.
	(LIBS) [win32gcc]: added libuuid to library list (need it on mingw
	to handle shell objects)

2002-09-02  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Implemented shorcut symlink ersatz on win32 (read-only,
	for CYGWIN compatibility).
	* win32aux.d (com_initialized): new global variable.
	(init_win32): initialize COM library.
	(done_win32): deinitialize COM library.
	* win32.d: include shell object headers.
	* pathname.d [WIN32_NATIVE] (FullName): new function,
	translates short name to long one.
	(resolve_shell_shortcut): new function handles shortcuts.
	(assure_dir_exists): now trying to resolve ersatzsymlinkshortcuts.

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

	* list.d (sublis_assoc): moved saving/restoring alist (to/from
	STACK) outside the loop because otherwise this function is
	mis-compiled by gcc-3.2 on linux (go figure!)
	Reported by James Mcclain <jmccla3@gl.umbc.edu>

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

	more win32gcc tweaks
	* unix.d (ualarm) [UNIX_CYGWIN32]: declaration tweak
	* win32.d (STDC_HEADERS, HAVE_UNISTD_H, HAVE_PERROR_DECL):
	declare for _clisp.c
	* acorn.d, amiga.d, msdos.d, unix.d, win32.d (OS_set_errno): new macro
	* socket.d (connect_to_x_server): use it
	* makemake.in (LN_S) [win32gcc]: set to "cp -p"
	* _clisp.c [WIN32_NATIVE]: ported to win32

2002-08-23  Marco Baringer <empb@bese.it>
	    Sam Steingold  <sds@gnu.org>

	* pathname.d (DUPLICATE-HANDLE): dup/dup2 calls were reversed

2002-08-14  Sam Steingold  <sds@gnu.org>

	* io.d (multi_line_sub_block_out): fixed a crash when block
	contains several indentations
	Reported by Glauber Ribeiro <glauber.ribeiro@experian.com>

2002-08-14  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (form-name): use WRITE-TO-STRING instead of
	SYS::WRITE-TO-SHORT-STRING (reversed a major compilation
	performance hit introduced on 2002-03-11)

2002-08-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (makemake): no need for a separate second
	config.status invocation to get the additional commands
	* configure.in (po/Makefile.in): use AC_CONFIG_FILES, not AC_OUTPUT
	(makemake): use AC_CONFIG_FILES, not AC_CONFIG_COMMANDS

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

	* makemake.in (encflags): new variable: -Efile and -Eterminal
	instead of the general -E (see patch 2002-06-10): need to keep
	*MISC-ENCODING* set to the user localization
	Reported by Arseny Slobodjuck.

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

	fixed the EXEEXT inconsistencies
	* _clisp.c (main): execname may be lisp.exe
	* clisp-link (LISPRUN): new variable, used throughout
	* makemake.in (clisp-link): replace EXEEXT
	use ${LEXE} more consistently

2002-08-10  Arseny Slobodjuck <ampy@ich.dvo.ru>

	* makemake.in [win32]: do not use apostrophes as shell screening
	characters on win32.

2002-08-10  Arseny Slobodjuck <ampy@ich.dvo.ru>

	* makemake.in: lisp executable depends on libcharset.

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

	fixed makemake creation: additional commands were not executed
	* configure.in (makemake): AC_OUTPUT with arguments is
	deprecated, use AC_CONFIG_COMMANDS instead
	* makemake.in (makemake): separate config.status invocation for
	variable substitution and the additional commands in configure.in

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

	* _clisp.c (main): accept `-d' (now that .clisp is gone, the
	developers are expected to use the driver)

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

	* makemake.in (TEXE, LEXE) [cygwin32]: exe/exe, because some
	win32 programs (e.g. Emacs) cannot start lisp.run (cygwin bash has
	no problems, of course)

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

	added Gabriel's benchmarks
	* makemake.in (bench): new target

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

	avoid compiler warning in (defun z () #'(lambda () (z)))
	* compiler.lisp (defining-p): new function
	(in-defun-p): use it
	(note-function-used): use it instead of IN-DEFUN-P

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

	* charstrg.d (MAKE-STRING) [HAVE_SMALL_SSTRING]: create a string
	of minimal element size for the given initial element

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

	* m4/ln.m4 (CL_PROG_HLN): this time, fixed the link test for real

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

	* pathname.d (COPY-FILE): instead of returning file count and
	byte count, return a list of (source dest byte-count) for each
	copy operation performed
	(copy_one_file, copy_file_low): updated for that

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

	rewrote the last patch to accept wildcards
	* pathname.d (check_copy_method, hardlink_file, symlink_file)
	(true_namestring): new functions
	(copy_method_t): new typedef
	(TRUENAME, PROBE-FILE, DELETE-FILE, rename_file, open_file, CD)
	(FILE-WRITE-DATE, FILE-AUTHOR, EXECUTE): use true_namestring()
	(NAMESTRING2, FILENAME_ACTION): removed
	(copy_attributes_and_close): converted from copy_attributes()
	(copy_file_low): do NOT do pathname merging and resolving
	(copy_one_file): do it here
	(COPY-FILE): return 2 values: file count and byte count

2002-08-05  Marco Baringer <empb@bese.it>
	    Sam Steingold  <sds@gnu.org>

	POSIX:COPY-FILE - copying/renaming/linking files
	* pathname.d (COPY-FILE, copy_file_low, copy_attributes): new functions
	* constobj.d (type_link_arg): new object
	* constsym.d, subr.d, subrkw.d (copy_file): added
	* posix.lisp (copy-file): exported
	* lispbibl.d (strm_buffered_bufflen): moved here from stream.d
	* stream.d (strm_buffered_bufflen): commented out

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

	* install.lisp: add a URL shortcut to CLISP home to the desktop
	* makemake.in (TXT_FILES): make clisp.c on all systems
	(needs): drop .clisp and .clisp-full in favor of clisp.c
	(IMPNOTES_FILES) [win32]: added clisp.ico
	(clisp): new target

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

	* m4/dynload.m4 (CL_DYNLOAD): check for <dlfcn.h> before doing
	anything else and drop out if the header is not there

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

	* spvw_garcol.d (GC_MARK): new macro
	(gc_mark_stack): use it
	(gc_mark): unroll Rectype_reallocstring
	* spvw_genera2.d (gc_mark_at, gc_mark_old_generation): use GC_MARK

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

	* compiler.lisp (c-DIRECT-FUNCTION-CALL): fixed repeated key
	handling: ignore the value of the argument and issue a warning

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

	* stream.d (make_terminal_stream_) [UNIX_CYGWIN32]: check
	ttyname() instead of inodes for stdin/out_handle
	(finish_tty_output, force_tty_output) [UNIX_CYGWIN32]:
	ignore EACCES (in addition to EBADF) for xterm/rxvt
	Suggested by David Young and Matthias Linder

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

	* m4/ln.m4 (CL_PROG_HLN): fixed the "hard links to symlinks" check
	* makemake.in (TEXE, LEXE) [cygwin32]: exe/run
	(distrib): rmrf TOPDIR before making the distribution

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

	* type.lisp (COMPLEX): use UPGRADED-COMPLEX-PART-TYPE,
	just like VECTOR uses UPGRADED-ARRAY-ELEMENT-TYPE

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

	* makemake.in (DISTFILE): strip parens from OS version for cygwin

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

	* defs1.lisp (load-lpt-many): simplified messages
	* init.lisp (load): likewise

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

	cygwin: understand win32 "c:" pathnames
	* pathname.d (PARSE-NAMESTRING) [UNIX_CYGWIN32]: use
	*DEVICE-PREFIX* to parse "c:/gnu/" --> "/cygdrive/c/gnu/"
	* constsym.d (*DEVICE-PREFIX*) [UNIX_CYGWIN32]: added
	* spvw.d (init_symbol_values) [UNIX_CYGWIN32]: defvar *DEVICE-PREFIX*
	* makemake.in [UNIX_CYGWIN32]: better cygwin32 canonicalization;
	less special treatment; add SETQ *DEVICE-PREFIX* to config.lisp

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

	* utils/ccmp2c.c, utils/modprep.c: added
	* utils/ccmp2c.d, utils/modprep.d: removed
	* utils/txt2c.c: no pre-processing is needed
	* makemake.in: do not pre-process ccmp2c.c, modprep.c, txt2c.c

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

	mingw port moving along - in-place only for now
	* configure: handle --with-mingw and pass 'win32gcc gcc' to makemake
	* makemake.in [win32gcc]: no special treatment for libcharset,
	sigsegv, and ffcall
	* Makefile.devel: removed win32gcc
	* win32gcc: removed directory
	* encoding.d [__MINGW32__]: #include <stdio.h> for sprintf()
	* pathname.d (default_drive) [WIN32_NATIVE]: cast chart/cint properly
	* stream.d (rd_ch_keyboard, wr_ch_array_window, wr_ch_window)
	[WIN32_NATIVE]: ditto
	* win32.d (HAVE_LC_MESSAGES) [__MINGW32__]: define to 0
	* win32aux.d (temp_interrupt_handler) [__MINGW32__]: no
	WSACancelBlockingCall() - need a replacement!

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

	* m4/general.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL)
	(CL_CANONICAL_HOST_CPU): canonicalize alphaev[4-8] to alpha
	Suggested by Will Newton <will@misconception.org.uk>

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

	* utils/comment5.c (main): meaningful error messages
	* utils/comment5.d: removed

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

	fixed bug #[ 552171 ]: failure with clx.e
	* modules/clx/new-clx/e2d.c (do_defun): terminate with '\0' after
	inserting '}'

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

	* spvw.d (main): warp all signal handler installations in
	begin/end_system_call()
	* spvw_debug.d [DEBUG_SPVW]: added some debugging functions

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

	* stdint.h.in [__sun__]: <sys/int_types.h> defines everything

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

	* type.lisp (upgraded-complex-part-type): spec must be a
	subtype of REAL, and the return value is REAL

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

	* socket.d (RESOLVE-HOST-IPADDR-INTERNAL): fixed a GC safety bug

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

	Readline is now used properly on Cygwin
	* stream.d (make_terminal_stream_) [UNIX_CYGWIN32]: inode numbers
	do not make sense on Cygwin: they are based on filenames

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

	* version.h: 2.29 is released

2002-07-25  Sam Steingold  <sds@gnu.org>
	    Bruno Haible <bruno@clisp.org>

	fixed the (compile nil (lambda () ... #'(lambda ...))) bug
	* compiler.lisp (symbol-suffix): also work when funname is NIL,
	but suffix is not a symbol (see also the 2002-02-11 patch)

2002-07-22  Sam Steingold  <sds@gnu.org>

	* check-lispfun.lisp: new file: check LISPFUN, LISPFUNN and
	LISPSPECFORM between *.d and subr.d/subrkw.d/fsubr.d
	* makemake.in (check-sources): new target
	* array.d, charstrg.d, dirkey.d, io.d, posixmisc.d, rexx.d:
	* sequence.d, subr.d: removed backslashes from LISPFUNs

2002-07-22  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 584866 ]: inspect.lisp invalid XHTML & e-mail
	* inspect.lisp (*user-mail-address*): new user variable
	(with-html-output): use it; link/rev should be a string,
	not a symbol, like all the other attribute values;
	added a comment about overriding keep-alive

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* stdint.h.in: Add support for FreeBSD.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	Avoid using floating-point hardware where it leads to exceptions or
	wrong computations.
	* floatparam.c: New file.
	* m4/fenv_default.m4: New file.
	* configure.in: Create floatparam.h.
	Call CL_{FLOAT,DOUBLE}_{DIV0,OVERFLOW,UNDERFLOW,INEXACT}.
	* unixconf.h.in (FLOAT_DIV0_EXCEPTION, FLOAT_OVERFLOW_EXCEPTION)
	(FLOAT_UNDERFLOW_EXCEPTION, FLOAT_INEXACT_EXCEPTION)
	(DOUBLE_DIV0_EXCEPTION, DOUBLE_OVERFLOW_EXCEPTION)
	(DOUBLE_UNDERFLOW_EXCEPTION, DOUBLE_INEXACT_EXCEPTION): New macros.
	* lispbibl.d: Include floatparam.h.
	(FAST_FLOAT, FAST_DOUBLE): Define according to the
	autoconf-determined parameters.
	* ffloat.d (FF_FF_durch_FF): Choose slow path if FLOAT_DIV0_EXCEPTION.
	* dfloat.d (DF_DF_durch_DF): Choose slow path if DOUBLE_DIV0_EXCEPTION.
	* lisparit.d (init_arith): Remove wrong value of DOUBLE-FLOAT-EPSILON
	and DOUBLE-FLOAT-NEGATIVE-EPSILON on Linux/i386.
	* unixaux.d (__fpu_control): Remove definition.
	* spvw.d (main): Remove __setfpucw call.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* defs1.lisp (module-name): Do not allow numbers or pathnames as
	module names.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* m4/rusage.m4 (CL_RUSAGE): Move CL_LINK_CHECK outside of
	AC_CACHE_CHECK.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* configure: Test ulimit result against 'unlimited'.

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

	* m4/readline.m4 (CL_READLINE): fixed whitespace
	* configure: remove config.cache to avoid stale cache problems
	* stream.d: #include <stdio.h> before <readline/readline.h>
	because of FILE* references in readline.h

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

	* m4/readline.m4 (CL_READLINE): check for the name of the file
	completion function and CONST modifier of its first argument
	* unixconf.h.in (READLINE_CONST, READLINE_FILE_COMPLETE): undef
	* stream.d: use them

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

	* spvw.d (main): more begin/end_system_call

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

	* m4/termcap.m4 (CL_TERMCAP): use AC_SEARCH_LIBS
	* m4/readline.m4 (CL_READLINE): AC_REQUIRE CL_TERMCAP;
	check for the readline library, not just the header
	* configure (conf_dir): new function
	* makemake.in (LIBS): LIBTERMCAP and LIBREADLINE
	get into LIBS automagically

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

	* lispbibl.d (GNU_GETTEXT): define based on NO_GETTEXT and
	ENABLE_NLS, not complex heuristics

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

	do not distribute readline and termcap with CLISP
	* configure, makemake.in: dropped termcap and readline
	* m4/termcap.m4 (LIBTERMCAP): set to "broken" when termcap does
	not work
	* m4/readline.m4 (CL_READLINE): new test
	* configure.in (CL_READLINE): call it
	* lispbibl.d (GNU_READLINE): define based on NO_READLINE and
	HAVE_READLINE_READLINE_H, not complex heuristics
	* stream.d [GNU_READLINE]: include system headers, not local ones
	* unixconf.h.in (HAVE_READLINE_READLINE_H): undef
	* readline/*, termcap/*: removed
	* _distmakefile: removed readline docs

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

	fixed bug #[ 583751 ]: (compile-file xx :verbose NIL)
	* compiler.lisp (with-compilation-unit): bind *C-LISTING-OUTPUT*

2002-07-15  Marco Baringer  <empb@bese.it>
	    Sam Steingold  <sds@gnu.org>

	POSIX:DUPLICATE-HANDLE - interface to dup/dup2/DuplicateHandle
	* pathname.d (DUPLICATE-HANDLE): implemented
	* constsym.d, subr.d (duplicate_handle): ditto
	* posix.lisp (duplicate-handle): export

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

	* defs1.lisp (module-name): do not use ETYPECASE for
	bootstrapping reasons
	Reported by Marco Baringer <empb@bese.it>

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

	* misc.d (GETENV): return all the environment as an alist when
	the argument is NIL or omitted

2002-07-15  Bruno Haible  <bruno@clisp.org>

	* unix.d (fstatfs): Remove unused declaration.

	* makemake.in (lisp.a): Adapt to gcc-3.1; its libgcc.a contains *.oS,
	not *.o.

	* spvw_sigsegv.d (stackoverflow_handler): Add support for FreeBSD.

	* io.d (right_margin): Avoid gcc warning when compiling with -DWIDE.

	* lispbibl.d (copy_mem_o): Fix parentheses.
	(UNIX_HURD): Renamed from UNIX_GNU.
	(UNIX_GNU): New macro.
	(_REENTRANT): Use for UNIX_GNU, not only UNIX_LINUX.
	(setjmp, longjmp): Treat UNIX_GNU like UNIX_LINUX.

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

	check for OpenLDAP
	* m4/ldap.m4: new file
	* unixconf.h.in (HAVE_LDAP_H): undef
	* configure.in (CL_LDAP): call

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

	fallout of 2002-07-09 parse-namestring patch in ANSI mode
	* pathname.d (test_default_pathname): treat NIL as unbound,
	permitting (parse-namestring "foo" nil nil ...) again
	* compiler.lisp (compile-file-pathname-helper): do not pass
	NIL as the :DEFAULTS to MAKE-PATHNAME

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

	* configure: user-specified options (like --with-noreadline)
	override the default/inferred options

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

	* pathname.d (wildcard_match): handle special patterns like
	:WILD, :WILD-INFERIORS, :UP and :BACK

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

	fixed bug #[ 581646 ]: REQUIRE uses STRING-EQUAL
	since CLISP in ANSI mode does not coerce symbols to pathnames,
	this also fixes a bug introduced on 2002-07-09 which precluded
	symbols as module names
	* defs1.lisp (module-name): new function
	(provide, require): use it to convert module name to a string
	* compiler (c-PROVIDE, c-REQUIRE): ditto
	(require, c-REQUIRE): use STRING= instead of STRING-EQUAL

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

	* _distmakefile (clisp): new target for installing locally

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

	ported DIR-KEY to cygwin32
	* dirkey1.lisp (dir-key): export
	* dirkey.d (to_time_t_): stole from cygwin sources
	* constsym.d (Kwin32) [UNIX_CYGWIN32 DIR_KEY]: define

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

	fixed bug #[ 514741 ]: ldap bugs (describe, dir-key-info)
	* describe.lisp (describe-object): handle DIR-KEY

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

	reverted the last patch wrt bindings (it broke lots of stuff)
	* control.d: reverted
	* eval.d (progv): reverted
	* compiler (bind-check-lock): removed
	(set-check-lock): use SYMBOL-VALUE-LOCK
	(c-LET/LET*, c-MULTIPLE-VALUE-BIND): reverted
	* package.d (SYMBOL-VALUE-LOCK): new function
	* subr.d, constsym.d (symbol_value_lock): ditto

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

	extended package locking to assignments and bindings
	* compiler.lisp (set-check-lock, bind-check-lock): new functions
	(c-SETQ, c-PSETQ, c-MULTIPLE-VALUE-SETQ): use SET-CHECK-LOCK
	(c-LET/LET*, c-MULTIPLE-VALUE-BIND): use BIND-CHECK-LOCK
	* package.d (symbol_value_check_lock): new function
	* lispbibl.d (symbol_value_check_lock): declare
	* control.d (LET, LET*, COMPILER-LET): use it
	* eval.d (progv, setq): ditto

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

	fixed bug #[ 580090 ]: unbound SYSTEM::*COMPILING-FROM-FILE*
	error on (lambda () (defmethod ...))
	* init.lisp (%expand-form): when evaluating (EVAL-WHEN (COMPILE))
	bind COMPILER::*COMPILING-FROM-FILE* to nil

2002-07-10  Sam Steingold  <sds@gnu.org>

	* spvw.d (quit): call done_win32()

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

	* compiler.lisp (compile-file): do not clobber *.c file when
	there are no FFI forms

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

	* bindings/linuxlibc6/linux.lisp (read): added commas before
	arguments in backquote

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

	* complete.lisp (completion): consider the situation FUNCTIONALP
	when start==end, this fixes the "(finalize TAB" bug)

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

	* pathname.d (PARSE-NAMESTRING): barf on symbols when
	CUSTOM:*PARSE-NAMESTRING-ANSI* is non-NIL
	(FILE-STAT-INTERNAL): use coerce_pathname()

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

	* clos.lisp (check-metaclass-mix): new function
	(initialize-instance-standard-class, make-instance-built-in-class):
	(initialize-instance-structure-class): use it

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

	* _clisp.c [STDC_HEADERS]: #include <stdlib.h> (HAVE_STDLIB_H is
	obsolete)

2002-07-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): removed the obsolete -W option for the sake of
	the CYGWIN port getting "-M c:/gnu/clisp/lispinit.mem"
	* _clisp.c (main): ditto

2002-07-01  LaMont Jones  <lamont@smallone.fc.hp.com>

	* ffcall/callback/trampoline_r/trampoline.c (alloc_trampoline_r)
	(is_tramp): work around a bug in gcc 3.*
	* ffcall/avcall/avcall-hppa.s:
	* ffcall/callback/trampoline_r/cache-hppa.s:
	* ffcall/callback/trampoline_r/proto-hppa.s:
	* ffcall/callback/trampoline_r/tramp-hppa.s:
	* ffcall/callback/vacall_r/vacall-hppa.s:
	* ffcall/trampoline/cache-hppa.s:
	* ffcall/trampoline/proto-hppa.s:
	* ffcall/trampoline/tramp-hppa.s:
	* ffcall/vacall/vacall-hppa.s:
	support both HP-UX assembler and GAS

2002-07-01  Sam Steingold  <sds@gnu.org>

	* makemake.in (echotab_mkdir_maybe): pass `-p' to mkdir(1)
	(shared): new make var; create it before doc dirs

2002-06-29  Sam Steingold  <sds@gnu.org>

	implemented feature request #[ 575303 ]: quit to top-level in debugger
	* reploop.lisp (debug-quit): new function
	(commands1): document `Quit/:q'
	(break-loop, step-hook-fn): handle it (as `abort-to-top')
	* control.d (UNWIND-TO-TOP): new function
	* constsym.d, subr.d (unwind_to_top): ditto

2002-06-28  Sam Steingold  <sds@gnu.org>

	* configure: work around the ulimit bug in cygwin /bin/sh

2002-06-28  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (alloca) [UNIX_CYGWIN32]: already defined in <alloca.h>

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

	fixed Sparc/Linux glibc 2.2 --with-debug build
	* lispbibl.d (oint_type_*, oint_data_*) [SPARC UNIX_LINUX]:
	do special handling only for glibc 2.1 and earlier

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

	* configure: check stack limit and suggest ulimit when printing
	further recommendations and call ulimit before make

2002-06-26  Sam Steingold  <sds@gnu.org>

	* lispbibl.d: separate `chart' and `object'
	(object, as_oint, as_object) [OBJECT_STRUCT]: `one' --> `one_o'
	(chart, as_cint, as_chart) [CHART_STRUCT]: `one' --> `one_c'
	* stream.d (stream_reset_eltype): compare ch with LF properly
	* array.d (make_storagevector): use char_int(), not as_cint(), to
	convert an object to `cint'
	* spvw_mark.d (mark, unmark): object slot is `one_o'

2002-06-26  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (CL_CANONICAL_HOST_CPU)
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): handle hppa64
	the same way as hppa1 and hppa2
	Suggested by Will Newton <will@misconception.org.uk>

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

	memcpy() & begin/end_system_call() cleanup
	* lispbibl.d (copy_mem_b, copy_mem_o): new macros
	(do_cclosure_copy): use copy_mem_o()
	* hashtabl.d (%SET-HASH-TABLE-WEAK-P): use copy_mem_o()
	instead of memcpy()
	* record.d (COPY-STRUCTURE): ditto
	* stream.d (read_byte_array_buffered, write_byte_array_buffered)
	(READ-FLOAT, WRITE-FLOAT): use copy_mem_b() instead of memcpy()
	(%DEFGRAY): use copy_mem_o() instead of memcpy()
	(create_input_pipe, create_output_pipe, create_io_pipe):
	move the memcpy() call inside the begin/end_system_call()
	* encoding.d (MAKE-ENCODING): use copy_mem_b() instead of memcpy()

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

	fixed the spurious "fatal error in the fatal error handler" message:
	break_driver() lost the stack location of its `continuable' argument
	* debug.d (break_driver): accept a boolean argument instead of an
	object (save on stack manipulation, gain clarity)
	* lispbibl.d (break_driver): fixed the prototype
	* eval.d (unwind): adjusted break_driver() call
	* error.d (end_error, ERROR, ERROR-OF-TYPE, tast_break): ditto

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

	* error.d (end_error): print the abort message to stderr
	include <stdio.h> to avoid compiler warning

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

	* charstrg.d (STRING-INFO): new function
	* constsym.d, subr.d (string_info): ditto

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

	* stream.d (test_external_format_arg): fixed for the 2002-06-19
	patch (new MAKE-ENCODING keyword arg)

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

	* lispbibl.d (CHART_STRUCT): Enable for gcc >= 3.0.

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

	* lispbibl.d (sstring_): Define using chart.
	(Sstring): Likewise.
	* array.d (elt_copy_T_Char, ssstring_extend_low): Make it compile
	with CHART_STRUCT.
	* charstrg.d (copy_string, subsstring, SUBSTRING, string_concat):
	Likewise.
	* io.d (write_sstring_case): Likewise.
	* lisparit.d (decimal_string): Likewise.
	* pathname.d (Z_AT_SLASH): Fix for changed return type of schar.
	(wildcard_diff_ab): Likewise.

2002-06-20  Sam Steingold  <sds@gnu.org>

	* record.d (COPY-STRUCTURE): use memcpy() instead of dotimespC
	(call_init_fun): new function
	(%REINITIALIZE-INSTANCE, do_initialize_instance): use it

2002-06-20  Sam Steingold  <sds@gnu.org>

	* spvw_typealloc.d (reallocate_small_string) [TYPECODES]:
	fixed a typo

2002-06-19  Sam Steingold  <sds@gnu.org>

	* pathname.d (nametype_diff_aux): treat logical and physical
	pathnames the same way

2002-06-19  Sam Steingold  <sds@gnu.org>

	* encoding.d (MAKE-ENCODING): new keyword argument
	:IF-DOES-NOT-EXIST to return nil for non-existing charsets
	(init_encodings_2): when the charset does not exist,
	just unintern the symbol
	(encoding_from_name): pushSTACK() the extra keyword argument for
	C_make_encoding()
	* subr.d, subrkw.d (make_encoding): new keyword argument
	* lispbibl.d (check_charset): return bool
	* stream.d (open_iconv): do not barf when charset is nullobj
	(check_charset): return false when code is invalid and charset is
	nullobj

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

	* constsym.d (CHARSET:ARMSCII-8, CHARSET:TCVN): Disable in glibc-2.2.

2002-06-19  Sam Steingold  <sds@gnu.org>

	new built-in MEMQ == MEMBER :TEST #'EQ
	* list.d (MEMQ): new function (uses memq)
	* constsym.d, subr.d (memq): ditto
	* clos.lisp, compiler.lisp, defstruct.lisp, describe.lisp:
	* init.lisp, type.lisp: use it instead of MEMBER :TEST #'EQ

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

	abstracted some code
	* list.d (memq): new function
	* lispbibl.d (memq): declare
	* control.d (PROCLAIM, KEYWORD-TEST): use it
	* eval.d (augment_decl_env): ditto
	* io.d (interpret_feature): ditto
	* package.d (symtab_find, symtab_delete, shadowing_find)
	(use_package, %IN-PACKAGE, FIND-ALL-SYMBOLS, RE-EXPORT): ditto
	* symbol.d (GET-PROPERTIES): ditto
	* record.d (obj_in_list): removed (superseded by memq)
	(structure_up, %STRUCTURE-TYPE-P, keyword_test, slot_in_arglist)
	(%SHARED-INITIALIZE): use !null(memq()) instead of obj_in_list()

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

	* lispbibl.d [DECALPHA/UNIX_FREEBSD]: treat just like Linux
	Verified by Jeffrey Katcher <jmkatcher@yahoo.com>.

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

	* modules/clx/mit-clx/input.lisp (:configure-request): use
	`member8' instead of `member' for `data'
	From <http://ww.telent.net/cliki/eclipse>
	and <http://dept-info.labri.u-bordeaux.fr/~strandh/patch-xlib.lisp>

2002-06-15  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	more fixes for bug #[ 542902 ]: not only socket-wait is
	interruptible on windows, but also socket-accept is
	* socket.d (accept_connection) [WIN32_NATIVE]: interruptible
	check socket for readability (infinitely long) before calling
	accept.

2002-06-14  Sam Steingold  <sds@gnu.org>

	* complete.lisp (completion): when there is no word to complete,
	describe the current funcall and return 0
	* stream.d (lisp_completion): when COMPLETION returns 0,
	refresh the current line using rl_refresh_line()

2002-06-14  Sam Steingold  <sds@gnu.org>

	grand type renaming continues
	array_dim_size --> array_dim_size_t
	environment --> environment_t
	gc_function --> gc_function_t
	host_data --> host_data_t
	host_data_fetcher --> host_data_fetcher_t
	map_sequence_function --> map_sequence_function_t
	module_ --> module_t
	sockaddr_max --> sockaddr_max_t
	stack_range --> stack_range_t
	thread_ --> thread_t
	unwind_protect_caller --> unwind_protect_caller_t
	* modules/clx/new-clx/clx.f, modules/clx/new-clx/e2d.c:
	* affi.d, array.d, control.d, debug.d, eval.d, foreign1.lisp:
	* fsubr.d, genclisph.d, io.d, lispbibl.d, modules.d, predtype.d:
	* sequence.d, spvw.d, spvw_memfile.d, spvw_module.d:
	* spvw_space.d, spvw_walk.d, spvwtabf.d, subr.d:
	* utils/modprep.d, utils/modpreptest.out: replaced

2002-06-14  Sam Steingold  <sds@gnu.org>

	* spvw_genera1.d (rebuild_old_generation_cache): fixed last
	patch: FREE_DYNAMIC_ARRAY should be on the same block level as
	DYNAMIC_ARRAY

2002-06-14  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	fixed bug #[ 514805 ]: core dump using :rehash-size in 9nines
	On MSVC, also UNIX with HAVE_ALLOCA_H, RISCOS and others, where
	DYNAMIC_ARRAY implemented through _alloca(3), putting it
	into the loop is dangerous: stack is freed only when function
	returns, not by FREE_DYNAMIC_ARRAY.
	* spvw_genera1.d (rebuild_old_generation_cache): put allocation
	of fixed sized block out of loop. May allocate unneeded block,
	but that case seems rare to me.

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

	grand type renaming: * --> *_t:
	decoded_time --> decoded_time_t
	internal_time --> internal_time_t
	lisp_function --> lisp_function_t
	map_heap_function --> map_heap_function_t
	object_initdata --> object_initdata_t
	subr_initdata --> subr_initdata_t
	timescore --> timescore_t
	* modules/clx/new-clx/e2d.c, affi.d, eval.d, foreign1.lisp,
	* fsubr.d, genclisph.d, lisparit.d, lispbibl.d, modules.d,
	* pathname.d, spvw.d, spvw_gcstat.d, spvw_walk.d, subr.d, time.d,
	* utils/modprep.d, utils/modpreptest.out: replaced

2002-06-12  Sam Steingold  <sds@gnu.org>

	Russian messages are now working
	* configure.in (ALL_LINGUAS): added `ru'
	* constsym.d (russian): added
	* init.lisp (russian.lisp) [GETTEX UNICODE]: load
	* russian.lisp: new file
	* spvw_language.d (language_russian): added
	(current_language_o, init_language): handle it
	(init_language_from): check for Russian
	* makemake.in (LPARTS) [$with_unicode]: added russian

2002-06-12  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (schar): match the cast in return the the return type

2002-06-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Fixed win32 build
	* win32.d [_MSC_VER]: no LC_MESSAGES in msvc
	* socket.d (connect_via_ip): fixed bad goto

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

	* lispbibl.d (schar): Add comments! Change return type to chart.
	Make 'static inline', not 'global inline', for better inlining.
	* array.d (storagevector_aref): Update for schar change.
	* charstrg.d (schar): Remove out-of-line definition.
	(coerce_char): Update for schar change.
	(CHAR, SCHAR): Likewise.
	* debug.d (read_form): Likewise.
	* io.d (sstring_printf): Likewise.
	* pathname.d (Z_AT_SLASH, parse_logical_word)
	(parse_logical_host_prefix, parse_logical_pathnamestring)
	(PARSE-NAMESTRING): Likewise.
	(legal_logical_word): Change variable from 'cintX' to 'chart', it's
	safer.
	(legal_type, wild_p, word_wild_p): Likewise.
	(wildcard_diff_ab): Update for schar change. Simplify filling string.
	(translate_nametype_aux, ensure_last_slash): Update for schar change.
	* stream.d (read_char_array, rd_ch_str_in, wr_ch_array_pphelp)
	(rd_ch_buff_in): Likewise.

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

	* makemake.in (XCFLAGS): Put a space before --traditional-cpp.

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

	* array.d (make_storagevector): Create a string with as small
	element size as possible.

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

	* encoding.d (MAKE-ENCODING): Fix a GC safety bug. Use the
	original arg for the error message, not the upcased one.

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

	* socket.d (CLOSESOCKET): Make macro more robust.

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

	* m4/lcmessage.m4 (AM_LC_MESSAGES): Do not test
	ac_cv_header_locale_h here.
	* m4/gettext.m4 (AM_INTL_SUBDIR): Test it here.
	* configure.in: Call AM_LC_MESSAGES.
	* unixconf.h.in (HAVE_LC_MESSAGES): New macro.
	* win32.d (HAVE_LC_MESSAGES): New macro.
	* spvw_ctype.d (init_ctype): Use HAVE_LC_MESSAGES.

2002-06-12  Eduard Haritonov <hed@iis.nsk.su>
	    Arseny Slobodjuck  <ampy@ich.dvo.ru>

	Long awaited Russian translations
	* po/Makefile.devel: added ru language
	* po/Makefile.trans.ru: new translator's makefile
	* po/ru.po: new translations file

2002-06-11  Sam Steingold  <sds@gnu.org>

	* complete.lisp (completion): restored adding ")" when completing
	a function without arguments, broken since FUNCTION-SIGNATURE was
	modified to return the function name as the first value

2002-06-11  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): added an undocumented, unsupported `-d'
	developer option: not in usage(), clisp.c, clisp.html, clisp.1 &c
	for now just unlock all packages

2002-06-11  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS) [darwin]: add `--traditional-cpp'
	(--verbose): new option

2002-06-11  Sam Steingold  <sds@gnu.org>

	* spvw_ctype.d (init_ctype) [UNIX_DARWIN]: no LC_MESSAGES,
	just like on WIN32_NATIVE

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

	* charstrg.d (string_gleich): use string_eqcomp()
	(string_equal): use string_eqcomp_ci()

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

	make string element access slightly easier: use schar()
	* lispbibl.d (schar): define
	* charstrg.d (schar) [HAVE_SMALL_SSTRING]: implement
	(coerce_char, CHAR, SCHAR): use schar()
	* array.d (storagevector_aref): use schar()
	* debug.d (read_form): ditto
	* io.d (sstring_printf): ditto
	* pathname.d (schar): removed
	(parse_logical_word, parse_logical_host_prefix)
	(parse_logical_pathnamestring, translate_nametype_aux)
	(parse_logical_host_prefix, wildcard_diff_ab)
	(ensure_last_slash): use direct `==' instead of chareq(as_chart)
	* stream.d (read_char_array, rd_ch_str_in, wr_ch_array_pphelp)
	(rd_ch_buff_in): use schar()

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

	* pathname.d (common_case, test_optional_host, all_digits)
	(split_name_type, legal_logical_word, legal_type, wild_p)
	(word_wild_p, Z_AT_SLASH): adjusted for the new SIMPLE-STRING
	model by using SstringDispatch (for the 2002-05-26 UCS-4 patch)
	(schar, copy_upcase): new functions
	(parse_logical_word, translate_nametype_aux, PARSE-NAMESTRING)
	(parse_logical_host_prefix, parse_logical_pathnamestring)
	(wildcard_diff_ab): use them

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

	* makemake.in: when running CLISP, pass "-E UTF-8" instead of
	"-Efile UTF-8" for the sake of "make check" on badly localized
	machines (ascii terminals make UNICODE warnings into errors)

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

	user can now control the exit code better
	* lispbibl.d, spvw.d (final_exitcode): int, not bool (spvw.d
	and win32aux.d already assign it non-bool values)
	* control.d (%EXIT): errorp maybe a positive fixnum, in which
	case we can use its value for final_exitcode

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

	* erramiga.d: do not use /* ENGLISH */ to mark
	gettext catalog messages

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

	* modules/clx/new-clx/configure.in: work with autoconf-2.53
	(GB_CHECK): removed

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

	do not distribute autoconf with CLISP
	* Makefile.devel (EXCLUDE): exclude the po/tmp and autoconf cache
	(AUTOCONF_VERSION): new exported variable
	(AUTOCONF, AUTOCONF_CACHE): new variables
	(AUTOCONF_FILES): removed autoconf.m4f
	(*/configure): use $(AUTOCONF)
	(check-configures): remove $(AUTOCONF_CACHE)
	(potfiles): cleanup
	* ffcall/Makefile.devel (AUTOCONF_VERSION, AUTOCONF): new variables
	(AUTOCONF_FILES): removed autoconf.m4f
	(*/configure): use $(AUTOCONF)
	* libcharset/Makefile.devel, sigsegv/Makefile.devel:
	(AUTOCONF_VERSION, AUTOCONF): new variables
	(*/configure): use $(AUTOCONF)
	* ffcall/autoconf/autoconf, ffcall/autoconf/autoconf.m4f,
	* sigsegv/autoconf/autoconf, sigsegv/autoconf/autoconf.m4f,
	* src/autoconf/autoconf, src/autoconf/autoconf.m4f: removed

2002-06-06  Peter Burwood  <clisp@peterb.org.uk>

	* stdint.h.in (NEED_SIGNED_INT_TYPES): New define.
	(int8_t) [NEED_SIGNED_INT_TYPES]: Declare type only when needed.
	(int16_t, int32_t, int64_t): Likewise.

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

	* lispbibl.d (DYNAMIC_STRING) [UNICODE]: Use Rectype_S32string, not
	Rectype_S8string.

2002-06-05  Sam Steingold  <sds@gnu.org>

	tweaked the last Arseny's patch
	* socket.d (lingerize_socket) [WIN32]: removed (not used)
	(ioctl) [WIN32]: moved to win32.d
	* win32.d (ioctl): define here, just like ioctl for UNIX is
	defined in unix.d

2002-06-04  Peter Burwood  <clisp@peterb.org.uk>

	* m4/address.m4 (CL_ADDRESS_RANGE): Remove cl_cv_prog_cc_ansi test
	now that CL_CC_ANSI is not required.

2002-06-05  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Working with sockets on win32
	* win32.d (socket_wait_event): new enum typedef
	(interruptible_socket_wait): renamed from
	interruptible_wait and generalized to take event parameter,
	see socket select() function for description of	these events.
	* win32aux.d (socket_wait_params): parameter struct to pass
	in thread.
	(do_socket_wait): renamed from do_wait, takes struct
	as Joerg likes, now tests for given event, not only for read.
	(interruptible_socket_wait): parameters changed to struct.
	* socket.d (ioctl) [WIN32]: define on win32 as ioctlsocket.
	(bindlisten_via_ip): don't lingerize socket (seems working,
	need to test).
	(connect_via_ip): don't lingerize. Fixed for win32 (may affect
	UNIX behavior too).
	* stream.d (socket_server_wait): use renamed
	interruptible_socket_wait.

2002-06-04  Peter Burwood  <clisp@peterb.org.uk>

	* lispbibl.d (DYNAMIC_STRING): Replace obsolete Rectype_Sstring with
	Rectype_S8string

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

	* savemem.lisp (saveinitmem): added :START-PACKAGE argument

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

	* Makefile.devel (CONFIGURES): added libcharset/configure
	(libcharset/configure): new target

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

	* describe.lisp (describe-object): print the length of the lists
	before enumerating properties, packages, symbols &c

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

	* makemake.in (packopt): fixed the 2002-05-15 patch which broke
	giving meaningful package options (e.g. --with-threads=POSIX_THREADS)

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

	build process: tweak 2002-05-30 patch: instead of relying on
	HAVE_*_H, add "." to the include path (-I.) and #include <...>
	* makemake.in (XCFLAGS): add -I. when STDBOOL_H and STDINT_H
	are non-void
	* lispbibl.d, uniname.c, unitypes.h: #include <...>

2002-05-31  Sam Steingold  <sds@gnu.org>

	tweaked the last two win32 patches
	* socket.d (connect_via_ip): use sock_set_errno() instead of
	explicit errno= (for the benefit of win32)
	* win32.d (EINPROGRESS, ETIMEDOUT): removed
	(earlylate_asciz_error): removed declaration
	* win32aux.d (earlylate_asciz_error): local, not global
	if we need such global function in the future,
	it should probably go into <error.d>

2002-06-01  Arseny Slobodjuck <ampy@ich.dvo.ru>

	Win32 build fixes
	* win32.d: include <locale.h>
	(EINPROGRESS, ETIMEDOUT): define to use instead of WSAE*.
	* spvw_ctype (init_ctype) [WIN32_NATIVE]: LC_MESSAGES is not
	defined on win32

2002-05-31  Arseny Slobodjuck <ampy@ich.dvo.ru>

	* win32.d (stderr_handle): new global variable.
	(earlylate_asciz_error): new function.
	* win32aux.d (stderr_handle): define.
	(winsock_initialized): new static variable.
	(init_win32): initialize stderr_handle,
	set winsock_initialized, use earlylate_asciz_error
	(done_win32): use winsock_initialized flag.
	(earlylate_asciz_error): New function. Prints an
	error to stderr, optionally exits clisp (the latter
	is not recommended). Does not use clisp internals.

2002-05-30  Sam Steingold  <sds@gnu.org>

	* genclisph.d: anticipate possible future addition of stdint.h
	(print_file): new function
	(main): use it to output stdbool.h

2002-05-30  Sam Steingold  <sds@gnu.org>

	OpenBSD build fixes
	* lispbibl.d, uniname.c (stdbool.h): check HAVE_STDBOOL_H
	* unitypes.h (stdint.h): check HAVE_STDINT_H
	* unixconf.h.in (HAVE_STDINT_H): added an #undef

2002-05-29  Sam Steingold  <sds@gnu.org>

	* makemake.in (UNICODE_EXTRA): new variable (fixed the build
	broken by addition of streq.h cjk.h uniwidth.h width.c)

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

	* socket.d (connect_via_ip): when 0 timeout is given return
	immediately (do not wait at all); the next i/o operation on this
	socket might block - use SOCKET-STATUS to check that

2002-05-29  Bruno Haible  <bruno@clisp.org>

	Speed up the loading of type.lisp.
	* lispbibl.d (Encoding): Add a maxintervals argument to the enc_range
	function.
	(Encoding_range): Update.
	* stream.d (iconv_range): Add a maxintervals argument.
	* encoding.d (all_range): Likewise.
	(bmp_range): Likewise.
	(nls_range): Likewise.
	(SYSTEM::CHARSET-TYPEP): Update.
	(SYSTEM::CHARSET-RANGE): Add optional maxintervals argument.
	* pseudofun.d (all_range, nls_range, iconv_range): Add a maxintervals
	argument.
	* type.lisp (get-charset-range): Add optional maxintervals argument.

2002-05-29  Bruno Haible  <bruno@clisp.org>

	Upgrade CHAR-WIDTH and STRING-WIDTH to Unicode 3.2.
	* streq.h: New file, from libunistring-0.0.
	* cjk.h: New file, from libunistring-0.0.
	* uniwidth.h: New file, from libunistring-0.0.
	* width.c: New file, from libunistring-0.0.
	* charstrg.d (nonspacing_table_data, nonspacing_table_ind): Remove
	arrays. Instead include width.c.
	(char_width): Rewritten to use uc_width.
	* spvw.d (locale_encoding): New variable.
	* encoding.d (init_dependent_encodings): Initialize locale_encoding.

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

	* stream.d (buffered_half_flush, buffered_full_flush): removed
	(buffered_flush): always do what buffered_half_flush() used to do

2002-05-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (STACK_register): Fix #if condition.

2002-05-28  Bruno Haible  <bruno@clisp.org>

	* makemake.in (XCC_GCC_VERSION): Update for gcc 3.1.
	(XCFLAGS): With gcc 3.1, add -fno-gcse.

2002-05-28  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (setSP, FAST_SP) [I80386]: Don't define when using
	gcc-3.1.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	Assume <locale.h> exists.
	* m4/locale.m4: Remove file.
	* m4/setlocale.m4 (CL_SETLOCALE): Assume <locale.h> exists.
	* configure.in (CL_LOCALE_H): Remove call.
	* unixconf.h.in (HAVE_LOCALE_H): Remove macro.
	* unix.d: Always include <locale.h> and declare setlocale.
	* spvw_ctype.d (init_ctype): Assume HAVE_LOCALE_H is defined.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	Finish 1998-02-11 patch.
	* m4/cc-ansi.m4: Remove file.
	* m4/address.m4 (CL_ADDRESS_RANGE): Don't require CL_CC_ANSI.
	* configure.in (CL_CC_ANSI): Remove call.
	* makemake.in: Remove CC_ANSI handling.
	* Makefile.devel (acorn/makefile.cc): Pass second argument 'cc' to
	makemake.

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

	fixed last patch
	* makemake.in (NLS_INCLUDES): removed nls_cp1255 and nls_cp1258
	* charstrg.d (nstring_downcase): added cint32 case
	(nstring_upcase): removed the spurious extra case

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* utils/unicode/Makefile (ALL): Remove nls_cp1255.c, nls_cp1258.c.
	(nls_cp1255.c, nls_cp1258.c): Remove rules.
	* nls_cp1255.c: Remove file.
	* nls_cp1258.c: Remove file.
	* constsym.d (CP1255, CP1258, WINDOWS-1255, WINDOWS-1258):
	Conditionalize on GNU_LIBICONV || glibc-2.2.
	(BIG5-HKSCS): Renamed from BIG5HKSCS.
	(KOI8-RU, EUC-JP, SHIFT-JIS, CP932, ISO-2022-JP, EUC-CN, GBK, CP936)
	(GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN)
	(ISO-2022-CN-EXT, EUC-KR, CP949, ISO-2022-KR, JOHAB, ARMSCII-8)
	(GEORGIAN-ACADEMY, GEORGIAN-PS, TIS-620, CP1133, VISCII, TCVN, UTF-16)
	(UTF-7): Also enable on glibc-2.2.
	(ISO-2022-JP-2): Also enable on glibc-2.3.
	* encoding.d: Don't include nls_cp1255.c and nls_cp1258.c.
	(nls_tables): Remove nls_cp1255_table, nls_cp1258_table.
	(iconv_first_sym, iconv_last_sym, iconv_num_encodings): Also define
	on glibc-2.2.
	(init_encodings_2): Update according to changes in constsym.d.
	(encoding_from_name): Handle CP1255 in the libiconv specific part.
	Use same code on glibc-2.2 as with libiconv. Use BIG5-HKSCS, not
	BIG5HKSCS.
	* pseudofun.d (nls_cp1255_table, nls_cp1258_table): Remove entries.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* lispbibl.d (HAVE_GOOD_ICONV): Define if good iconv available.
	(HAVE_ICONV): Don't undefine this.
	* encoding.d: Test HAVE_GOOD_ICONV instead of GNU_LIBICONV ||
	HAVE_ICONV.
	* pseudofun.d: Likewise.
	* stream.d: Likewise. Assume ICONV_CONST is defined.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	Fix "make distclean".
	* makemake.in (OBSOLETE): Don't add linkkit.
	(install-bin): Use RMRF variable.
	(distrib): Likewise.
	(clean0): rm -rf linkkit.
	(clean1): rm -rf base full.
	(clean4): rm -f charset.alias.
	(clean5): If building outside srcdir, remove the UNICODE_INCLUDES,
	the NLS_INCLUDES, and unitypes.h, uniname.h, uninames.h. rm -rf data.
	(clean7): rm -rf avcall callback libcharset sigsegv. If building
	outside srcdir, rm -rf readline po termcap, and rm -f configure
	unixconf.h.in makemake.in VERSION.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	Implement UCS-4 strings.
	* lispbibl.d: Accept new flag NO_SMALL_SSTRING.
	(Rectype_S8string, Rectype_Imm_S8string, Rectype_S16string)
	(Rectype_Imm_S16string, Rectype_S32string, Rectype_Imm_S32string):
	New enumeration values.
	(Rectype_Sstring, Rectype_Imm_Sstring, Rectype_SmallSstring)
	(Rectype_Imm_SmallSstring): Remove enumeration values.
	(char_int_len): Define to 24 instead of 16.
	(char_int_limit): Define to 0x110000 instead of 0x10000.
	(HAVE_SMALL_SSTRING): Don't define if NO_SMALL_SSTRING is specified.
	(small_char_int_len, small_char_int_limit, small_char_code_limit):
	Remove macros.
	(scint): Remove type.
	(cint8, cint16, cint32): New types.
	(cint8_limit, cint16_limit, cint32_limit): New macros.
	(STRUCT_SSTRING): New macro.
	(small_sstring_, SmallSstring): Remove types.
	(s8string_, S8string, s16string_, S16string, s32string_, S32string):
	New types.
	(Array_type_sstring): Handle 3 different simple-string types.
	(TheSmallSstring): Remove macro.
	(TheS8string, TheS16string, TheS32string): New macros.
	(vectorp, simplep, array_simplep, simple_string_p, stringp)
	(arrayp): Update.
	(if_recordp): Handle 3 different simple-string types.
	(small_char_p): Remove macro.
	(case_Rectype_Sstring_above): Handle 3 different simple-string types.
	(case_Rectype_string_above): Likewise.
	(case_Rectype_array_above): Likewise.
	(allocate_s8string, allocate_imm_s8string, allocate_s16string)
	(allocate_imm_s16string, allocate_s32string)
	(allocate_imm_s32string): New declarations.
	(allocate_string): Change to a macro.
	(allocate_imm_string): Likewise.
	(allocate_small_string, allocate_imm_small_string): Remove
	declarations.
	(reallocate_small_string): Add an argument 'newtype'.
	(copy_8bit_8bit, copy_8bit_16bit, copy_8bit_32bit, copy_16bit_8bit)
	(copy_16bit_16bit, copy_16bit_32bit, copy_32bit_8bit)
	(copy_32bit_16bit, copy_32bit_32bit): New declarations.
	(chartcopy): Remove macro.
	(scintcopy): Remove declaration.
	(SstringCase): Renamed from SstringDispatch. Add one more case.
	(SstringDispatch): New macro.
	(sstring_normal_p): Update.
	(unpack_sstring_alloca): Update. Call copy_16bit_32bit or
	copy_8bit_32bit instead of scintcopy.
	(check_sstring_mutable): Handle 3 different simple-string types.
	* array.d (storagevector_aref): Update SstringDispatch invocation.
	(storagevector_store): Handle 3 different simple-string types.
	(elt_copy_Char_T): Update SstringDispatch invocation.
	(elt_copy_T_Char): Handle 3 different simple-string types.
	(elt_copy_Char_Char): Likewise.
	(elt_move_Char): Update SstringDispatch invocation. Don't inline
	elt_copy_Char_Char.
	(elt_fill): Update SstringDispatch invocation.
	(elt_reverse): Handle 3 different simple-string types.
	(elt_nreverse): Update SstringDispatch invocation.
	(ssstring_extend_low): Call copy_32bit_32bit/copy_8bit_8bit
	instead of chartcopy.
	(ssstring_append_extend): Handle 3 different simple-string types.
	(initial_contents_aux): Make it compile if TYPECODES.
	(ADJUST-ARRAY): Replace allocate_small_string call by one of
	allocate_s[8|16|32]string.
	* charstrg.d (nop_page): Change element type to uint16.
	(copy_8bit_8bit, copy_8bit_16bit, copy_8bit_32bit, copy_16bit_8bit)
	(copy_16bit_16bit, copy_16bit_32bit, copy_32bit_8bit)
	(copy_32bit_16bit, copy_32bit_32bit): New functions.
	(scintcopy): Remove function.
	(string_gleich): Update SstringDispatch invocations.
	(string_equal): Likewise.
	(sstring_store): Handle 3 different simple-string types.
	(sstring_store_array): Likewise.
	(copy_string): Likewise.
	(coerce_imm_ss): Likewise.
	(coerce_normal_ss): Likewise.
	(coerce_char): Update SstringDispatch invocation.
	(char_name): Update allocate_small_string invocation. Return a
	string of length 9 for characters with code >= 0x10000.
	(name_char): Accept names of the form "Uxxxxxxxx" of length 9.
	(CHAR): Update SstringDispatch invocation.
	(SCHAR): Likewise.
	(test_string_limits_rw): Handle 3 different simple-string types.
	(string_eqcomp): Update SstringDispatch invocations.
	(string_comp): Likewise.
	(string_eqcomp_ci): Likewise.
	(string_comp_ci): Likewise.
	(string_width): Update SstringDispatch invocation.
	(nstring_upcase): Handle 3 different simple-string types.
	(nstring_downcase): Likewise.
	(nstring_capitalize): Likewise.
	(subsstring): Likewise.
	(SUBSTRING): Likewise.
	(string_concat): Likewise.
	* debug.d (read_form): Update SstringDispatch invocation.
	* encoding.d (hex_table): Make read-only.
	(fehler_unencodable): Display character codes >= 0x10000 correctly.
	(bmp_range): New function.
	(uni16_wcslen): Handle the case of characters >= 0x10000 in the
	source string.
	(uni16be_wcstombs): Likewise.
	(uni16le_wcstombs): Likewise.
	(fehler_uni32_invalid): Update error message.
	(uni32be_mblen): Renamed from uni32_mblen.
	(uni32le_mblen): New function.
	(uni32be_mbstowcs): Correct counting in case the error action is
	:IGNORE.
	(uni32le_mbstowcs): Likewise.
	(uni32be_wcstombs): Output characters outside the BMP correctly.
	(uni32le_wcstombs): Likewise.
	(fehler_utf8_invalid4): New function.
	(utf8_mblen): Reject UTF-8 encoded surrogates. Accept 4-byte sequences.
	(utf8_mbstowcs): Likewise.
	(utf8_wcstombs): Emit 4-byte sequence for characters outside the BMP.
	(java_mblen): Accept 12-byte sequences.
	(java_mbstowcs): Likewise.
	(java_wcslen): Characters outside the BMP generate 12 bytes of output.
	(java_wcstombs): Likewise.
	(nls_wcslen): Handle characters outside the BMP.
	(nls_wcstombs): Likewise.
	(nls_asciiext_wcslen): Handle characters outside the BMP. Remove a
	piece of dead code.
	(nls_asciiext_wcstombs): Handle characters outside the BMP.
	(nls_range): Speed up the case when end >= 0x10000.
	(ascii_to_string): Simplify.
	(init_encodings_1): Use bmp_range instead of all_range for
	UNICODE-16-BIG-ENDIAN and UNICODE-16-LITTLE-ENDIAN. Use uni32le_mblen
	for UNICODE-32-LITTLE-ENDIAN. Change max_bytes_per_char of UTF-8 to 4.
	Change max_bytes_per_char of JAVA to 12.
	* hashtabl.d (hashcode_string): Update SstringDispatch invocation.
	(hashcode3_atom): Handle 3 different simple-string types.
	(hashcode4_vector_Char): Update SstringDispatch invocation.
	* io.d (sstring_printf): Update SstringDispatch invocation.
	(small_char_code_limit): New macro.
	(write_sstring_case): Update SstringDispatch invocations.
	(pr_symbol_part): Likewise.
	(pr_sstring_ab): Likewise.
	(pr_orecord): Handle 3 different simple-string types.
	* lisparit.d (decimal_string): Inline the copying loop, instead of
	calling chartcopy.
	* misc.d (MACHINE-VERSION): Use TheS8string instead of TheSmallSstring.
	* package.d (string_hashcode): Update SstringDispatch invocation.
	* pathname.d (looks_logical_p): Update SstringDispatch invocation.
	(PARSE-NAMESTRING): Use SstringCase instead of SstringDispatch.
	(legal_name): Update SstringDispatch invocation.
	(ensure_last_slash): Likewise.
	* predtype.d (elt_compare_T_Char): Update SstringDispatch invocation.
	* pseudofun.d (bmp_range, uni32be_mblen, uni32le_mblen): New entries.
	(uni32_mblen): Remove entry.
	* spvw_garcol.d (gc_mark): Handle 3 different simple-string types.
	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
	* spvw_objsize.d (size_s8string, size_s16string, size_s32string):
	New macros.
	(size_sstring): Define as alias of size_s32string or size_s8string.
	(objsize): Handle 3 different simple-string types.
	* spvw_typealloc.d (allocate_string, allocate_imm_string)
	(allocate_small_string, allocate_imm_small_string): Remove functions.
	(allocate_s8string, allocate_imm_s8string, allocate_s16string)
	(allocate_imm_s16string, allocate_s32string)
	(allocate_imm_s32string): New functions.
	(reallocate_small_string): Add 'newtype' argument.
	* spvw_update.d (update_varobject): Handle 3 different
	simple-string types.
	* stream.d (wr_ch_array_dummy): Update SstringDispatch invocation.
	(read_char_array): Likewise.
	(rd_ch_str_in): Likewise.
	(wr_ch_array_pphelp): Likewise.
	(rd_ch_buff_in): Likewise.
	(CLISP_INTERNAL_CHARSET): Change to UCS-4-INTERNAL.
	(rd_ch_array_buffered): Update SstringDispatch invocation.
	(wr_ch_array_terminal3): Likewise.
	(wr_ch_array_window): Likewise.
	(FILE-STRING-LENGTH): Likewise.

	Upgrade Unicode character data tables from 2.0.14 to 3.2.0.
	* utils/unicode/gen-ctype.c: New file.
	* utils/unicode/attribute_table.java: Remove file.
	* utils/unicode/upcase_table.java: Remove file.
	* utils/unicode/downcase_table.java: Remove file.
	* utils/unicode/uni_bothcase.java: Remove file.
	* utils/unicode/Makefile (JAVA, JAVAC): Remove variables.
	(uni_upcase.c, upcase_table.class, uni_downcase.c)
	(downcase_table.class, uni_attribute.c, attribute_table.class):
	Remove rules.
	* uni_attribute.c: Regenerated for Unicode 3.2.0 by gen-ctype.c.
	* uni_upcase.c: Likewise.
	* uni_downcase.c: Likewise.
	* charstrg.d (up_case): up_case_table is now shorter than
	char_code_limit. Sign-extend the table entry.
	(down_case): Likewise.
	(unicode_attribute): unicode_attribute_table is now shorter than
	char_code_limit.

	Upgrade Unicode name tables to 3.2.0.
	* uniname.c: New file, from libunistring-0.0.
	* uniname.h: New file, from libunistring-0.0.
	* utils/gen-uninames: Update from libunistring-0.0.
	* uninames.h: New file, from libunistring-0.0, replaces uninames.c.
	* uninames.c: Remove file.
	* unitypes.h: New file, from libunistring-0.0.
	* charstrg.d: Include uniname.h and uniname.c instead of uninames.c.
	(unicode_name_word, unicode_name_word_lookup): Remove functions, now
	contained in uniname.c.
	(jamo_initial_short_name, jamo_medial_short_name)
	(jamo_final_short_name): Remove arrays, now contained in uniname.c.
	(char_name): Use unicode_character_name function from uniname.c.
	(name_char): Use unicode_name_character function from uniname.c.
	* makemake.in (UNICODE_INCLUDES): Remove uninames, add uniname.
	Treat unitypes.h uniname.h uninames.h like the UNICODE_INCLUDES.
	charstrg depends on them only if with_unicode is enabled.

	Substitute for <stdint.h>.
	* stdint.h.in: New file, from libunistring-0.0.
	* m4/stdint.m4: New file, from libunistring-0.0.
	* configure.in: Invoke gt_STDINT_H.
	* makemake.in (EVERY_INCLUDES_H): Add stdint.h.
	(stdint.h): New rule.
	(clean4): Remove stdint.h.

2002-05-24  Bruno Haible  <bruno@clisp.org>

	* spvw.d (fehler_code_alignment): Give a useful advice for GCC 3.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* constsym.d: Avoid compilation error when compiling with
	GNU_GETTEXT but without UNICODE.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* makemake.in (FILES): List the additional .a files in the same
	order as in LIBS, not in the reverse order.
	(LIBS): Add libreadline.a in front of libcharset.a. This avoids a
	link error for 'locale_charset' when compiling without -DUNICODE.

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

	timeout on connecting, see <http://cr.yp.to/docs/connect.html>
	* socket.d (socket_connect_fn_t): accept 3rd arg `opts' (renamed
	from `socket_connect_fn')
	(with_hostname): accept 4th arg `opts' (passed to `connector')
	(connect_to_x_via_ip, bindlisten_via_ip): accept and ignore `opts'
	(connect_to_x_server, create_server_socket): pass NULL to
	`with_hostname' as `opts'
	(create_client_socket, connect_via_ip): accept 3rd `timeout' arg
	* stream.d (sec_usec): sec may also be a cons and a real
	(socket_server_wait): extracted from SOCKET-WAIT
	(SOCKET-ACCEPT, SOCKET-CONNECT): accept 4th keyword arg :TIMEOUT
	(SOCKET-WAIT): use socket_server_wait()
	* subr.d, subrkwd.d (socket_accept, socket_connect): updated
	* constsym.d (TIMEOUT): added the keyword

2002-05-25  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	fixed win32 build (broken on 2002-05-23 and 2002-05-22)
	* array.d (elt_move_Char): rename the label right after
	block beginning from `restart' to `restart_it' since 'restart'
	is used before as a type name and it confuses the compiler
	* charstrg.d (sstring_store_array): `small' renamed to `smallp'
	for a similar reason
	(coerce_normal_ss, nstring_upcase, nstring_downcase): `restart'
	renamed to `restart_it'
	* win32aux.d (read_helper_low, sock_read): fixed typos

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

	* bindings/linuxlibc6/linux.lisp (read-helper):
	new function (points to read_helper)
	(read): a macro, calls read-helper

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

	buffered sockets and pipes now work
	* acorn.d (read_helper): prototype
	(full_read, safe_read): #define
	* amiga.d, msdos.d, win32.d: ditto
	* amigaaux.d (read_helper): implemented
	(full_read): removed
	* unixaux.d: ditto
	(sock_read) [UNIX_BEOS]: partial read is okay
	* win32aux.d (lowlevel_full_read, do_full_read, full_read): removed
	(read_helper_low, do_read_helper, read_helper): added
	(lowlevel_sock_read): partial read is okay
	* stream.d (low_fill_buffered_handle): use safe_read()
	instead of full_read()
	Suggested by Todd Sabin <tsabin@optonline.net>

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

	* stream.d (strm_buffered_extrafields_t): replaced eofindex with
	have_eof_p and endvalid
	(BufferedStream_eofindex): removed
	(BufferedStream_have_eof_p, BufferedStream_endvalid): added
	(buffered_half_flush, buffered_flush, buffered_nextbyte)
	(buffered_eofbyte, position_file_buffered, read_byte_array_buffered)
	(write_byte_array_buffered, rd_ch_buffered, rd_ch_array_buffered)
	(logical_position_file_end, make_buffered_stream)
	(finish_output_buffered, closed_buffered): updated
	Suggested by Todd Sabin <tsabin@optonline.net>

2002-05-22  Sam Steingold  <sds@gnu.org>

	* pathname.d (directory_search): save subr_self before calling
	MAKE-HASH-TABLE and restore it afterwards (for error reporting)

2002-05-22  Bruno Haible  <bruno@clisp.org>

	Introduce mutable small strings. Storing characters in strings can
	now trigger GC.
	* lispbibl.d: Verify that SPVW_PURE implies TYPECODES.
	(Rectype_SmallSstring, Rectype_reallocstring): New enumeration items.
	(siarray_): New struct type.
	(Siarray): New type.
	(Array_type_sstring): Add Rectype_SmallSstring, Rectype_reallocstring.
	(TheSiarray): New macro.
	(vectorp, simplep, array_simplep, simple_string_p, stringp, arrayp):
	Update.
	(if_recordp): Handle Rectype_SmallSstring, Rectype_reallocstring.
	(case_Rectype_Sstring_above): Add Rectype_SmallSstring,
	Rectype_reallocstring.
	(case_Rectype_string_above): Likewise.
	(case_Rectype_array_above): Likewise.
	(allocate_small_string): New declaration.
	(reallocate_small_string): New declaration.
	(with_sstring_0): Follow Siarray chain before calling Sstring_length.
	(with_sstring): Likewise.
	(simple_array_to_storage, simple_array_to_storage1): New macros.
	(array_total_size): Turn into an inline function. Follow Siarray chain
	before calling Sarray_length.
	(elt_fill, elt_reverse): Can now trigger GC.
	(SstringDispatch): Handle mutable small-strings.
	(sstring_normal_p): Likewise.
	(unpack_string_rw): Return the storage vector and offset, instead of
	a chart* pointer.
	(sstring_store): New declaration.
	(sstring_store_array): New declaration.
	(nstring_upcase): Take a storage vector and an offset as arguments,
	instead of a chart* pointer. Can now trigger GC.
	(nstring_downcase): Likewise.
	(nstring_capitalize): Likewise.
	(check_sstring_mutable): Handle mutable small-strings.
	* affi.d (SYS::MEM-READ): Update for unpack_string_rw change.
	* array.d (vector_length): Follow Siarray chain before calling
	Sarray_length.
	(iarray_displace): Likewise.
	(iarray_displace_check): Likewise.
	(array_displace_check): Likewise.
	(subscripts_to_index): Follow Siarray chain before calling test_index.
	Return the real storage vector.
	(storagevector_store): Add a maygc argument. Return the storage vector.
	When storing a character in a small string, reallocate the string
	if needed.
	(SYS::STORE): Call storagevector_store with maygc=true.
	(ROW-MAJOR-AREF): Follow Siarray chain before calling
	storagevector_aref.
	(SYS::ROW-MAJOR-STORE): Follow Siarray chain before calling
	storagevector_store. Call storagevector_store with maygc=true.
	(ARRAY-DIMENSION): Follow Siarray chain before calling Sarray_length.
	(array_dimensions): Likewise.
	(ARRAY-IN-BOUNDS-P): Likewise.
	(ARRAY-ROW-MAJOR-INDEX): Follow Siarray chain before calling
	test_index.
	(elt_copy_T_Char): Handle the case of a mutable small-string.
	(elt_copy_Char_Char): Likewise.
	(elt_move_Char): Likewise.
	(elt_fill): Handle the case of a mutable small-string. Can now trigger
	GC.
	(elt_reverse): Likewise.
	(elt_nreverse): Handle the case of a mutable small-string.
	(VECTOR-PUSH): Call storagevector_store with maygc=true.
	(VECTOR-PUSH-EXTEND): Likewise.
	(initial_contents_aux): Follow Siarray chain if reallocated.
	(reshape): Call storagevector_store with maygc=false.
	(ADJUST-ARRAY): Create storage vector in the right type (small or not),
	to avoid GC later.
	* charstrg.d (unpack_string_ro): Follow Siarray chain before calling
	Sstring_length.
	(unpack_string_rw): Return the storage vector and offset, instead of
	a chart* pointer.
	(sstring_store): New function.
	(sstring_store_array): New function.
	(coerce_imm_ss): Handle mutable small-strings and reallocated strings.
	(coerce_normal_ss): Likewise.
	(coerce_imm_normal_ss): Likewise.
	(char_name): Return a small-string if possible.
	(CHAR): Follow Siarray chain before calling Sstring_length.
	(SCHAR): Likewise.
	(SYS::STORE-CHAR): Follow Siarray chain before calling
	check_sstring_mutable. Call sstring_store.
	(SYS::STORE-SCHAR): Likewise.
	(test_string_limits_rw): Handle mutable small-strings.
	(test_1_stringsym_limits): Return the storage vector and offset,
	instead of a chart* pointer.
	(nstring_upcase): Take a storage vector and an offset as arguments,
	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
	(string_upcase): Follow Siarray chain before return.
	(NSTRING-UPCASE): Update.
	(STRING-UPCASE): Update. Follow Siarray chain before return.
	(nstring_downcase): Take a storage vector and an offset as arguments,
	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
	(string_downcase): Follow Siarray chain before return.
	(NSTRING-DOWNCASE): Update.
	(STRING-DOWNCASE): Update. Follow Siarray chain before return.
	(nstring_capitalize): Take a storage vector and an offset as arguments,
	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
	(NSTRING-CAPITALIZE): Update.
	(STRING-CAPITALIZE): Update. Follow Siarray chain before return.
	* debug.d (read_form): Follow Siarray chain before calling
	Sstring_length.
	* encoding.d (ascii_to_string): Allocate a mutable small-string.
	* foreign.d (convert_from_foreign_array_fill): Return the array.
	For strings, convert into a temporary array on the stack, then call
	sstring_store_array. Follow Siarray chain before return.
	(convert_from_foreign): Follow Siarray chain before storing array.
	* hashtabl.d (hashcode3_atom): Handle mutable small-strings and
	reallocated strings.
	* io.d (sstring_printf): Follow Siarray chain before accessing
	elements.
	(write_string): Follow Siarray chain before calling write_sstring.
	(pr_orecord): Handle mutable small-strings and reallocated strings.
	* misc.d (MACHINE-VERSION): Use a small-string.
	* pathname.d (PARSE-NAMESTRING): Update for nstring_downcase,
	nstring_capitalize changes.
	(customary_case): Likewise. Follow Siarray chain before return.
	(SHELL): Call sstring_store.
	* spvw_garcol.d (gc_mark): Handle Rectype_SmallSstring,
	Rectype_reallocstring.
	* spvw_genera1.d (walk_area): Likewise.
	(build_old_generation_cache): Likewise.
	* spvw_objsize.d (size_siarray): New macro.
	(objsize): Handle Rectype_SmallSstring. Handling of
	Rectype_reallocstring is automatic.
	* spvw_typealloc.d (allocate_small_string): New function.
	(reallocate_small_string): New function.
	* spvw_update.d (update_varobject): Handle Rectype_SmallSstring,
	Rectype_reallocstring.
	* stream.d (rd_ch_array_dummy): Call sstring_store.
	(read_char_array): Likewise. Handle mutable small-strings.
	(rd_ch_array_str_in): Follow Siarray chain before calling elt_copy.
	(rd_ch_array_unbuffered): Call sstring_store.
	(rd_ch_array_buffered): Call sstring_store_array.
	(lisp_completion): Fix wrong error message code. Follow Siarray chain
	before calling Sstring_length.

2002-05-22  Bruno Haible  <bruno@clisp.org>

	* stream.d (OS_error_saving_errno): Renamed from error_saving_errno.
	All callers changed.

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

	* inspect.lisp (*http-encoding*): new variable (utf-8/dos)
	(http-command, with-http-output): use it

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

	* encoding.d (MAKE-ENCODING): when the iconv charset is already
	built-in use it instead of iconv
	(ENCODING-CHARSET): new function
	* constsym.d, subr.d: ditto
	* init.lisp: export ENCODING-CHARSET

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

	* makemake.in (XCFLAGS) [GCC]: no optimization with GCC-3.1

2002-05-20  Bruno Haible  <bruno@clisp.org>

	* stream.d (wr_ch_array_pphel_): Remove function.
	(wr_ch_array_pphelp): Inline it here.

2002-05-20  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (CHAR, SYSTEM::STORE-CHAR): Correct checking of validity
	of index. Don't use unpack_string here.
	(unpack_string): Remove function.
	(unpack_string_ro): Inline old unpack_string.
	(unpack_string_rw): Call unpack_string_ro, not unpack_string.

2002-05-20  Bruno Haible  <bruno@clisp.org>

	Remove gcc-3.0.4 warning.
	* eval.d (LD, LR): Don't use CONCAT to paste strings; juxtaposing the
	strings is sufficient.

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

	* lispbibl.d (STACK_register) [S390]: adjusted 2002-03-24 patch
	to use the register on GCC-3.1 or better

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

	* makemake.in (stdbool.h): sed RE depends on TOS: not all systems
	use autoconf [actually, it is not clear that it is legitimate to
	expect a non-UNIX system to have sed; cygwin is ubiquitous though,
	so win32 is, hopefully, covered]

2002-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	graceful disconnect and interruptible wait in win32
	* stream.d (low_close_socket) [WIN32_NATIVE]: do not shutdown
	a socket: shutdown does not respect the linger option.
	To use shutdown for graceful disconnect, one should implement
	a kind of protocol, i.e. shutdown SEND and wait for client
	acknowledgment (client should support that protocol).
	(SOCKET-WAIT) [WIN32_NATIVE]: use interruptible_wait()
	(SOCKET-STREAM-SHUTDOWN): explicitly cast handle to socket
	* socket.d (lingerize_socket) [WIN32_NATIVE]: new function: set
	SO_LINGER to 30sec, as is done in Apache (http_main.c)
	(bindlisten_via_ip, connect_via_ip) [WIN32_NATIVE]: use it
	* spvw.d (main) [WIN32_NATIVE]: call done_win32() to finalize sockets
	* win32.d (done_win32, interruptible_wait): declare new functions
	* win32aux.d (done_win32): new function: finalizes socket library
	(do_wait): new thread function for DoInterruptible
	(interruptible_wait): new global function

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

	kill src/gettext; POs are now in src/po
	* Makefile.devel (SOURCES3, CONFIGURES, configures, potfiles):
	removed gettext/*
	(src--distrib): do create a PO tar
	* configure: removed gettext, replaced gettext/po with po
	* configure.in (ALL_LINGUAS, po/Makefile.in): moved here from
	gettext/configure.in
	* makemake.in: removed gettext, replaced gettext/po with po
	(ALL_LINGUAS): get it from src/configure.in

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

	fixed bug #[ 557155 ]: inspector :http broken Content-Length
	* inspect.lisp (with-http-output): convert the string to a vector
	with CONVERT-STRING-TO-BYTES and STREAM-EXTERNAL-FORMAT of the
	socket to reliably compute the `Content-length:' header;
	then write it with WRITE-BYTE-SEQUENCE (temporarily changing
	STREAM-ELEMENT-TYPE to binary)

2002-05-17  Bruno Haible  <bruno@clisp.org>

	* stdbool.h.in: Upgrade to gettext-0.11.3.
	* m4/stdbool.m4: Upgrade to gettext-0.11.3.
	* configure.in: Use gt_STDBOOL_H instead of CL_STDBOOL_H.
	* makemake.in (stdbool.h): Create using sed.

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

	* stream.d (make_file_stream) [UNIX, RISCOS]: file streams
	for the /proc filesystem default to unbuffered (it's better
	not to mess with those files anyway!)

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

	* makemake.in (LIBS) [win32]: link with ws2_32 and not wsock32
	since we are using winwock2.h

2002-05-15  Bruno Haible  <bruno@clisp.org>

	* makemake.in: Fix handling of with-xxx options, broken on 2002-03-07.

	* configure.in: Move the AM_ICONV invocation before AM_GNU_GETTEXT.

	Don't forget that 3000 students were murdered by the government
	of the "People's Republic of China" in June 1989!

2002-05-14  Sam Steingold  <sds@gnu.org>

	* timezone.lisp (PRC): China does not observe DST since 1991.

2002-05-10  Bruno Haible  <bruno@clisp.org>

	* ../configure: Configure libcharset, not libiconv.
	* configure.in: Call AM_GNU_GETTEXT, in order to get use an external
	GNU gettext. Call AM_ICONV instead of CL_ICONV.
	* m4/iconv.m4: Update from GNU gettext 0.11.2.
	* m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/isc-posix.m4,
	* m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4,
	* m4/progtest.m4: New files, from GNU gettext 0.11.2.
	* autoconf/config.rpath: New file, from GNU gettext 0.11.2.
	* makemake.in: Pay attention to CPPFLAGS. New variable XCPPFLAGS.
	(USE_LIBICONV, XCL_ICONVLIB): Remove variables.
	(USE_LIBCHARSET, XCL_CHARSETLIB): New variables.
	(GETTEXTLIB): Remove variable.
	(USE_GETTEXT, XCL_GETTEXTLIB): Assume external libintl.
	(EVERY_INCLUDES_H): Don't include libintl.h and iconv.h, they are
	external now. Instead include libcharset.h.
	(${GETTEXTLIB}, libintl.a, libintl.h): Remove targets.
	(iconv.h, libiconv.a): Remove targets.
	(libcharset.a): New target.
	(distmakefile): No need for localesed processing.
	* lispbibl.d (GNU_LIBICONV): Define only when including <iconv.h>
	shows that GNU libiconv is used. Otherwise, if not glibc >= 2.2,
	undefine HAVE_ICONV.
	* _distmakefile: Use 'share' instead of @DATADIRNAME@.
	* Makefile.devel (SOURCES4): Use libcharset, not libiconv.
	(CONFIGURES): Remove libiconv/configure.
	(libiconv/autoconf/aclocal.m4, libiconv/configure): Remove rules.

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

	* gettext/po/Makefile.devel: use msguniq from GNU gettext 0.11
	instead of clisp-msguniq
	(clisp-msguniq): removed

2002-05-07  Bruno Haible  <bruno@clisp.org>

	* compiler.lisp (SP-depth): Insert a verification that each label
	is a symbol. Fix wrong treatment of JMPIFBOUNDP.

2002-05-07  Sam Steingold  <sds@gnu.org>

	* stream.d (ChannelStream_init): add an end_system_call() for
	each begin_system_call()

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

	* misc.d (LISP-IMPLEMENTATION-VERSION): Use casts to 'unsigned int'
	to avoid gcc-3.1 warnings.
	* utils/comment5.d: Include <stdlib.h>, for exit().

2002-05-06  Sam Steingold  <sds@gnu.org>

	do not create unusable iconv encodings
	* stream.d (fehler_iconv_invalid_charset): removed
	(open_iconv): open the iconv conversion and signal all errors
	(check_charset): check whether the charset is valid
	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
	(iconv_range, ChannelStream_init): use open_iconv()
	* lispbibl.d (check_charset): declare
	* encoding.d (MAKE-ENCODING): check the iconv charset for
	validity before making the charset

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

	fixed bug #[ 550864 ]: cannot use RETURN-FROM in deep nesting
	[this bug was introduced by the 2001-06-25 patch]
	* compiler.lisp (note-far-used-block): propagate block to
	all the enclosing functions, not just the current one

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

	* makemake.in (XCFLAGS) [debug]: add -DDEBUG_OS_ERROR on all
	platforms, do not add it on win32 when not debugging
	also add -DDEBUG_SPVW -DSAFETY=3
	also do not do any optimization when debugging: even though GCC
	supports that, the result is not convenient for debugging

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

	* io.d (read_token_1): permit input of multiply escaped illegal
	characters (bug fix)

2002-04-30  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 550528 ]: misleading error converting UTF-7
	* stream.d (saving_errno, error_saving_errno): new macros
	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
	(iconv_range, create_input_pipe, create_output_pipe)
	(create_io_pipe): use them

2002-04-28  Bruno Haible  <bruno@clisp.org>

	Split autoconf/aclocal.m4 into pieces.
	* m4/general.m4, m4/proto.m4, m4/cc-gcc.m4, m4/c++.m4,
	* m4/cc-ansi.m4, m4/cc-cppaux.m4, m4/cc-elif.m4, m4/cc-error.m4,
	* m4/cc-ema.m4, m4/cc-mergestrings.m4, m4/as-underscore.m4,
	* m4/ranlib.m4, m4/install.m4, m4/cp.m4, m4/ln.m4, m4/x11.m4,
	* m4/sys-irix.m4, m4/sys-dynix.m4, m4/socket.m4, m4/sh-args.m4,
	* m4/cc-void.m4, m4/ffcall-pccstruct.m4, m4/ffcall-smallstruct.m4,
	* m4/ffcall-ireg.m4, m4/longlong.m4, m4/longdouble.m4,
	* m4/stdc-headers.m4, m4/offsetof.m4, m4/stdbool.m4, m4/locale.m4,
	* m4/unistd.m4, m4/openflags.m4, m4/access.m4, m4/dir.m4,
	* m4/utsname.m4, m4/netdb.m4, m4/shm.m4, m4/termios.m4,
	* m4/caddr_t.m4, m4/socklen_t.m4, m4/structtm.m4, m4/strlen.m4,
	* m4/memset.m4, m4/gmalloc.m4, m4/malloc.m4, m4/free.m4,
	* m4/alloca.m4, m4/setjmp.m4, m4/signal.m4, m4/siginterrupt.m4,
	* m4/sigaltstack.m4, m4/fpu_control.m4, m4/raise.m4, m4/abort.m4,
	* m4/perror.m4, m4/strerror.m4, m4/sys_errlist.m4, m4/getenv.m4,
	* m4/putenv.m4, m4/setlocale.m4, m4/rlimit.m4, m4/vfork.m4,
	* m4/setsid.m4, m4/execv.m4, m4/execl.m4, m4/waitpid.m4,
	* m4/rusage.m4, m4/getcwd.m4, m4/chdir.m4, m4/mkdir.m4, m4/rmdir.m4,
	* m4/stat.m4, m4/readlink.m4, m4/eloop.m4, m4/opendir.m4,
	* m4/closedir.m4, m4/open.m4, m4/read-write.m4, m4/chmod.m4,
	* m4/rename.m4, m4/unlink.m4, m4/fsync.m4, m4/ioctl.m4, m4/fcntl.m4,
	* m4/select.m4, m4/ualarm.m4, m4/setitimer.m4, m4/usleep.m4,
	* m4/localtime.m4, m4/gettimeofday.m4, m4/ftime.m4, m4/times.m4,
	* m4/getpwnam.m4, m4/getpwuid.m4, m4/gethostname.m4,
	* m4/gethostbyname.m4, m4/connect.m4, m4/unixconn.m4, m4/tcpconn.m4,
	* m4/address.m4, m4/getpagesize.m4, m4/vadvise.m4, m4/mach-vm.m4,
	* m4/mmap.m4, m4/munmap.m4, m4/msync.m4, m4/mprotect.m4,
	* m4/ffcall-codeexec.m4, m4/shmget.m4, m4/shmat.m4, m4/shmdt.m4,
	* m4/shmctl.m4, m4/shm-rmid.m4, m4/dynload.m4, m4/iconv.m4,
	* m4/termcap.m4, m4/filecharset.m4, m4/c++-constructors.m4,
	* m4/builtin_strlen.m4, m4/cc-char-unsigned.m4, m4/c++-bool.m4,
	* m4/intparam.m4, m4/endian.m4: New files.
	* Makefile.devel (aclocal.m4): New rule.
	* autoconf/acselect: Remove file.
	* m4/libtool.m4: Renamed from autoconf/libtool.m4.

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

	limited support for tracing local functions (cannot use the
	lexicals, i.e., must not be real closures)
	* trace.lisp (tracer): new struct
	(tracer-set-fdef, check-traceable): new functions
	(trace, trace1): use them
	(untrace1, untrace2): handle the tracer argument

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

	* lispbibl.d (PC386) [WIN32]: define, so that *FEATURES* will
	contain :PC386 on the :WIN32 platform

2002-04-25  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 539701 ]: early initialization error -> crash
	* spvw.d (main): init_other_modules_2() after the stream
	variables are already initialized

2002-04-25  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 548368 ]: inspector help barfs (nested inspectors)
	* inspect.lisp (*inspect-all*): bind in INSPECT instead of using
	a global variable since nested INSPECT sessions can interfere
	with each other, each modifying the same *INSPECT-ALL*
	(inspect-finalize): the default method now does nothing

2002-04-24  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 548362 ]: inspector deletes wrong package on exit
	* inspect.lisp (inspect): keep the temp inspect package in a
	lexical variable in addition to *PACKAGE*

2002-04-24  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab) [UNIX_CYGWIN32]: add :CYGWIN to *FEATURES*

2002-04-24  Sam Steingold  <sds@gnu.org>

	upgraded to readline-4.2a
	* stream.d (lisp_completion_matches, lisp_completion_more):
	fixed the signature for the new readline
	(rd_ch_terminal3): wrap multi-line history handling inside
	begin_system_call()/end_system_call()
	(init_streamvars): do not use readline internals
	* noreadline.d: upgraded to the readline-4.2a API

2002-04-24  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	patch #[ 548089 ]: FOREIGN-FUNCTION+VARIABLE for everybody
	this allows CLISP FFI self-test (and dozens of hacks)
	* foreign.d (ffi_identity): new function
	(ffi_user_pointer): new variable
	(init_ffi): register them
	* foreign.lisp (ffi_identity, ffi_user_pointer) [commented]: define

2002-04-23  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	patch #[ 547541 ]: WITH-FOREIGN-OBJECT FFI stack allocation
	* foreign.d (EXEC-ON-STACK): new function
	* constsym.d, subr.d: ditto
	* foreign1.lisp (with-foreign-object): new public macro

2002-04-23  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	patch #[ 547491 ]: C-VAR-ADDRESS and OFFSET foreign-places
	* foreign1.lisp (offset, c-var-address): new public macros
	* foreign.d (%OFFSET): comment that it is used now

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

	* spvw.d (main): new option: `-interactive-debug', which
	overrides batch-mode for -c, -x and exec-file
	* constsym.d (APPEASE-CERRORS): define here for the above

2002-04-22  Jörg Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	* foreign.d (UNSIGNED-FOREIGN-ADDRESS): new function
	(FOREIGN-ADDRESS-VALUE): renamed to FOREIGN-ADDRESS-UNSIGNED
	* subr.d, constsym.d: ditto
	* foreign1.lisp (foreign-address-null): use FOREIGN-ADDRESS-UNSIGNED

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

	do not go into an endless loop on `clisp -x '(assert nil)'`
	* condition.lisp (assert): name the interactive CONTINUE restart
	functions for the benefit of APPEASE-CERRORS and MUFFLE-CERRORS
	(assert-restart-no-prompts, maybe-continue, muffle-cerror):
	new functions
	(muffle-cerrors): use MUFFLE-CERROR
	(appease-cerror): use MAYBE-CONTINUE
	(prompt-for-new-value): interact via *DEBUG-IO*, not *QUERY-IO*

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

	fixed bug #[ 547046 ]: compiler-macro -> no special-operator
	* compiler.lisp (c-form): call EXPAND-COMPILER-MACRO before
	checking C-FORM-TABLE to accommodate expanding to a special form

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

	* cmacros.lisp (define-compiler-macro): call CHECK-REDEFINITION

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

	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
	* cfgwin32.lisp, cfgacorn.lisp (*clhs-root-default*):
	restore the DEFVAR lost on 2002-04-12

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

	fixed bug #[ 543072 ]: make-encoding :input-action on bad input
	* stream.d (iconv_mblen, iconv_mbstowcs): treat EINVAL (incomplete
	input) like EILEQ (conversion error) for delimited strings

2002-04-17  Sam Steingold  <sds@gnu.org>

	* stream.d (low_close_socket) [WIN32_NATIVE]: shutdown the socket
	before closing it
	(SOCKET-STREAM-SHUTDOWN): use SOCK_error(), not OS_errno()

2002-04-16  Peter Burwood  <clisp@peterb.org.uk>

	* autoconf/aclocal.m4 (HAVE_GETRUSAGE): check whether getrusage()
	actually works, not just that it is present (it is present in
	cygwin, but works only on NT, not win98)

2002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>

	* regexp.lisp (regexp-exec): correct positions for ()-group submatches

2002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>

	* foreign.d (convert_from_foreign): fix c-array uint8/16/32 return
	broken since CVS 1999-09-13

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

	* foreign1.lisp (parse-c-function): check :OUT & :IN-OUT args for
	being pointers, just like in FOREIGN-CALL-OUT in foreign.d

2002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
	    Sam Steingold  <sds@gnu.org>

	* io.d (pr_orecord): print invalid FOREIGN-VARIABLEs and
	FOREIGN-FUNCTIONs with INVALID prefix and address with offset

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

	error reporting unification
	* record.d (fehler_key_odd): new function
	(check_keywords): new macro
	(%ALLOCATE_INSTANCE, %SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
	(%INITIALIZE-INSTANCE, %MAKE-INSTANCE): use them
	* constsym.d: define SHARED-INITIALIZE, REINITIALIZE-INSTANCE,
	INITIALIZE-INSTANCE, MAKE-INSTANCE here for error reporting
	* subr.d, constsym.d: %* should be named p*, not *

2002-04-16  Stefan Kain  <stefan.kain@freenet.de>

	* clos.lisp, record.d: translated all comments

2002-04-12  Peter Burwood  <clisp@peterb.org.uk>

	* stream.d (finish_tty_output) [UNIX_CYGWIN32]: ignore EBADF from
	fsync, just like in force_tty_output()

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

	*BROWSERS* and *BROWSER* are in CUSTOM, as advertised
	* init.lisp (*browser*, *browsers*): export from CUSTOM
	* clhs.lisp (*browser*, *browsers*): docstrings
	(*browsers*): xterm is UNIX-only
	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
	* cfgwin32.lisp, cfgacorn.lisp: suggest customizing *BROWSER*

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

	* time.d (DELTA4): work with up to 64-bit return values
	* lispbibl.d, intelem.d (UL2_to_I): define always

2002-04-11  Peter Burwood  <clisp@peterb.org.uk>

	* errunix.d (get_errormsg): prevent EILSEQ shadowing ENOENT

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

	new built-in DELTA4 for metering.lisp optimization
	* time.d (delta4): implemented
	* subr.d, constsym.d (delta4): added
	* defs1.lisp (%time): use DELTA4

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

	* configure: handle --with-no-dynamic-ffi
	* makemake.in: uniform handling of --with* arguments

2002-04-05  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>

	* modules.d (MODULE): silence the compiler warning about
	module__*__init_function_*() prototype
	* modules/regexp/regexi.c: include <stdlib.h> before "regex.h"

2002-04-04  Stefan Kain  <stefan.kain@freenet.de>

	* spvw_ctype.diff, spvw_gcstat.diff, spvw_genera2.diff:
	* spvw_genera3.diff, spvw_page.diff, spvw_sigsegv.diff:
	* spvw_sigwinch.diff, spvwtabf.diff, spvwtabo.diff:
	* spvwtabs.diff: translated all comments

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

	fixed bug #[ 538748 ]: OS_errno lost before error reporting
	* spvw_memfile.d (loadmem): use OS_errno instead of errno

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

	* clhs.lisp (*browsers*): added mozilla and links and various
	`-remote' and `-xterm' variations

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

	Rework the 2002-03-30 patch: use SOCKET-STREAM-SHUTDOWN instead
	of CLOSE :DIRECTION
	* gray.lisp, subrkw.d: reverted CLOSE
	* subr.d, constsym.d: added SOCKET-STREAM-SHUTDOWN
	* stream.d (SOCKET-STREAM-SHUTDOWN): implemented
	(builtin_stream_close_partial): removed
	(built_in_stream_close): reverted

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

	uncouple OPEN-STREAM-P from INPUT-STREAM-P/OUTPUT-STREAM-P
	* lispbibl.d (strmflags_open_bit_B): new bit (0)
	(strmflags_open_B): use it, not the top 4 bits
	(allocate_stream): add it to strmflags
	* spvw_typealloc.d (allocate_stream): ditto
	* stream.d (strmflags_rdwr_B): new mask (top 4 bits)
	(make_synonym_stream, make_twoway_stream, make_echo_stream)
	(MAKE-GENERIC-STREAM, make_socket_stream)
	(BUILT-IN-STREAM-SET-ELEMENT-TYPE): use it instead of
	strmflags_open_B
	(BUILT-IN-STREAM-ELEMENT-TYPE): do not return NIL for closed
	streams
	* io.d (pr_stream): print INPUT/OUTPUT/IO even for closed streams

2002-04-01  Stefan Kain  <stefan.kain@freenet.de>

	* spvw_heap.diff, spvw_language.diff, spvw_objsize.diff:
	* spvw_sigint.diff, spvw_space.diff, spvw_update.diff:
	* spvw_walk.diff: translated all comments

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

	* reploop.lisp (commands4): `Continue' was mentioned twice
	From Arseny Slobodjuck <ampy@ich.dvo.ru>
	(commands): new function to combine COMMANDS[1-4]; do not
	COPY-LIST the return values thereof since they are already
	freshly consed lists
	(break-loop, step-hook-fn): use it
	(main-loop): do not COPY-LIST the return value of COMMANDS0

2002-03-30  Stefan Kain  <stefan.kain@freenet.de>

	* spvw_fault.d, spvw_global.d, spvw_mmap.d, spvw_multimap.d:
	translated all comments

2002-03-30  Sam Steingold  <sds@gnu.org>

	* io.d (pr_stream): print components of TWO-WAY and ECHO streams
	* lispbibl.d (strm_twoway_input, strm_twoway_output): define here
	* stream.d (strm_twoway_input, strm_twoway_output): do not define here

2002-03-30  Sam Steingold  <sds@gnu.org>

	For the benefit of internet protocol implementors, allow closing
	streams in only one direction - an interface to shutdown(2)
	* stream.d (builtin_stream_close_partial): new function - close a
	stream in only one direction
	(BUILT-IN-STREAM-CLOSE): instead of ignored :ABORT keyword arg,
	take :DIRECTION argument and use builtin_stream_close_partial()
	* subr.d, subrkw.d (BUILT-IN-STREAM-CLOSE): kw(abort)->kw(direction)
	* pathname.d (check_direction): use subr_self for error message
	* gray.lisp (close): pass direction to BUILT-IN-STREAM-CLOSE
	* configure.in (HAVE_SHUTDOWN): check for shutdown(2)
	* unixconf.h.in (HAVE_SHUTDOWN): added an #undef
	* win32.d (HAVE_SHUTDOWN, SHUT_RD, SHUT_WR, SHUT_RDWR): define

2002-03-30  Sam Steingold  <sds@gnu.org>

	* trace.lisp (*trace-indent*): new user option
	(trace-pre-output, trace-post-output): use it
	(subclosure-pos): find traced definitions too
	(%local-set): fixed error reporting

2002-03-29  Stefan Kain  <stefan.kain@freenet.de>

	* spvw_allocate.d, spvw_genera1.d, spvw_memfile.d, spvw_typealloc.d:
	translated all comments

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

	when COMPILE-FILE with :OUTPUT-FILE arg causes REQUIRE to compile
	a file, place the compiled file in the same directory
	* compiler.lisp (*compile-file-directory*): new variable
	(compile-file): bind it when given :OUTPUT-FILE
	(c-REQUIRE): when it is non-NIL, give COMPILE-FILE :OUTPUT-FILE

2002-03-27  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	* install.bat: search for install.lisp in the current directory
	if it is not found in src/; slashes changed to backslashes
	* install.lisp (*clisp-home*): forward slashes only for -B parameter
	(*lisp-type-map*): new variables
	(top-level): registers all file extensions
	HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes is a synonym for
	HKEY_CLASSES_ROOT, do not set it
	Use Y-OR-NO-P to let the user control the setup.

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

	* defs1.lisp (%time): avoid some possible consing by computing
	the hi/lo differences before merging

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

	* spvw.d (SUBR_SET_ARGTYPE): new macro
	(init_subr_tab_1, dynload_modules): use it

2002-03-24  Stefan Kain  <stefan.kain@freenet.de>

	* spvw.d, spvw_garcol.d, spvw_circ.d: translated all comments

2002-03-24  Gerhard Tonn  <GerhardTonn@swol.de>

	FFCALL ported to IBM s/390
	* lispbibl.d (STACK_register) [S390]: do not define -
	broken due to a compiler bug
	* ffcall/avcall/Makefile.in (avcall-s390.lo): new target
	* ffcall/avcall/avcall-s390.c, ffcall/avcall/avcall-s390.s: added
	* ffcall/avcall/avcall.h.in (__s390__): handle it
	* ffcall/callback/trampoline_r/Makefile.in (tramp-s390.lo): new target
	* ffcall/callback/trampoline_r/proto-s390.s: added
	* ffcall/callback/trampoline_r/tramp-s390.s: added
	* ffcall/callback/trampoline_r/proto.c (__s390__): handle it
	* ffcall/callback/trampoline_r/test1.c (__s390__): ditto
	* ffcall/callback/trampoline_r/trampoline.c (__s390__): ditto
	* ffcall/callback/vacall_r/vacall-s390.c: added
	* ffcall/callback/vacall_r/vacall-s390.s: added
	* ffcall/callback/vacall_r/Makefile.in (vacall-s390.lo): new target
	* ffcall/callback/vacall_r/vacall_r.h.in (__s390__): handle it
	* ffcall/trampoline/Makefile.in (tramp-s390.o): new target
	* ffcall/trampoline/proto-s390.s, ffcall/trampoline/tramp-s390.s: added
	* ffcall/trampoline/trampoline.c (__s390__): handle it
	* ffcall/vacall/Makefile.in (vacall-s390.o): new target
	* ffcall/vacall/vacall-s390.c, ffcall/vacall/vacall-s390.s: added
	* ffcall/vacall/vacall.h.in (__s390__): handle it

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

	* makemake.in (mandir, htmldir, dvidir, docdir):
	architecture-independent, thus under prefix, not exec_prefix

2002-03-21  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 531879 ]: eval-when and top-forms
	* init.lisp (%expand-form): do not conflate COMPILE and
	:COMPILE-TOPLEVEL situations
	* compiler.lisp (c-EVAL-WHEN): do not conflate LOAD with
	:LOAD-TOPLEVEL and COMPILE with :COMPILE-TOPLEVEL

2002-03-21  Sam Steingold  <sds@gnu.org>

	* configure (--with-debug): new option: pass "debug" to makemake
	* clisp.spec: updated

2002-03-21  Will Newton  <will@misconception.org.uk>

	fixed bug #[ 501963 ]: FFCALL cannot be built with GCC 3.0
	When compiling with -O2 or better, the configure test for PCC
	non-reentrant struct return convention is optimized away and
	always returns true. This causes avcall to believe it can use PCC
	when it cannot - and so bad things happen.
	* autoconf/aclocal.m4 (CL_PCC_STRUCT_RETURN): reset CFLAGS

2002-03-21  Will Newton  <will@misconception.org.uk>

	* trampoline.c [linux MIPS]: cachectl.h is in asm, not linux

2002-03-21  Sam Steingold  <sds@gnu.org>

	more $host_cpu canonicalization (arm, alpha)
	* makemake.in (host_cpu): handle hppa* and arm* together
	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU)
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): canonicalize $host_cpu=arm* to
	arm and alphaev6[78] to alpha
	Suggested by Will Newton <will@misconception.org.uk>

2002-03-21  Sam Steingold  <sds@gnu.org>

	* eval.d, ffcall/avcall/avcall.h.in
	* ffcall/avcall/avcall.h.mingw32, ffcall/avcall/avcall.h.msvc
	* ffcall/callback/vacall_r/vacall_r.h.in
	* ffcall/callback/vacall_r/vacall_r.h.mingw32
	* ffcall/callback/vacall_r/vacall_r.h.msvc
	* ffcall/vacall/vacall.h.in, ffcall/vacall/vacall.h.mingw32
	* ffcall/vacall/vacall.h.msvc: Never check for __GNUC_MINOR__
	without first making sure that __GNUC__ is correct
	Reported by Will Newton <will@misconception.org.uk>

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

	* spvw.d (main): void domain for the -E command line argument
	means all 5 domains

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

	added CUSTOM:*PARSE-NAMESTRING-DOT-FILE* user option
	* init.lisp (*source-file-types*, *compiled-file-types*): list
	strings, not pathnames
	(load): modified accordingly
	(search-file): EXTENSION is a list of strings, not pathnames
	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
	* cfgwin32.lisp: set *PARSE-NAMESTRING-DOT-FILE* to :NAME
	* compiler.lisp: do not use pathname literals
	(merge-extension): new function
	(compile-file-pathname-helper, compile-file): use it
	* constsym.d (*PARSE-NAMESTRING-DOT-FILE*): added
	* spvw.d (init_symbol_values): defvar it
	* defs1.lisp (load-logical-pathname-translations): pass strings,
	not pathnames, to SEARCH-FILE
	* io.d (pr_orecord): when compiling, print pathnames as
	#s(pathname) without #p""
	* pathname.d (split_name_type): respect *PARSE-NAMESTRING-DOT-FILE*
	* savemem.lisp (saveinitmem): do not use pathname literals

2002-03-17  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-stream-flush-buffer): use
	WRITE-CHAR-SEQUENCE instead of WRITE-SEQUENCE for the benefit of
	dribbling when the output streams are reset so that it is not
	clear that they are character streams
	* dribble.lisp (dribble-reset): new function
	(dribble): reset *DRIBBLE-STREAM* to NIL after dribbling is over
	* savemem.lisp (saveinitmem): new option :verbose;
	call DRIBBLE-RESET in the temporary *DRIVER*:
	this fixes a bug in images saved after DRIBBLE
	Reported by Peter Wood <peter.wood@worldonline.dk>

2002-03-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>

	* describe.lisp (describe-object): FOREIGN-POINTER is present
	when UNIX or DIR-KEY are present too;
	handle FOREIGN-FUNCTION only under FUNCTION, not under T too, and
	print its full foreign type

2002-03-15  Sam Steingold  <sds@gnu.org>

	minor error reporting unification
	* lispbibl.d (fehler_too_many_args, fehler_too_few_args): declare
	* error.d (fehler_too_many_args, fehler_too_few_args): implement
	* foreign.d (FOREIGN-CALL-OUT): use them
	* eval.d (fehler_key_zuviel): removed
	(match_subr_key, match_cclosure_key): use fehler_too_many_args()
	(fehler_apply_[zuviel/zuwenig]): unchanged for now: it is unclear
	how to keep enough info for a good error message without taking a
	performance hit in apply_*()
	(fehler_apply_dotted): accept another argument -
	the arglist terminator

2002-03-15  Sam Steingold  <sds@gnu.org>

	Incorporated more of Joerg's suggestions
	* bindings/linuxlibc6/linux.lisp (substitution): added ffi:c-ptr-null
	(realpath, gethostname, getdomainname): using arrays of `character'
	as opposed to `char' results in strings being returned instead of
	byte arrays (char=uint8, character is a lisp CHARACTER)
	(gcvt): appears to work
	(sigaction-new): allow NULL (NIL) first arg
	(sigaction-query): removed (superseded by sigaction-new)
	* bindings/linuxlibc6/wrap.lisp (vec2string): obsolete, commented out
	(real-path, get-host-name, get-domain-name): do not use it
	(signal-valid-p): use sigaction-new

2002-03-15  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (expand-compiler-macro): do not expand compiler
	macros for functions declared NOTINLINE (3.2.2.1.3)

2002-03-14  Sam Steingold  <sds@gnu.org>

	* makemake.in (config.lisp): chmod +w before appending

2002-03-14  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (require): fixed a deadly typo in the 2002-02-28 patch
	this fixed bug #[ 580092 ]: problems with require
	which will be filed on 2002-07-11

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

	fixed bug #[ 528886 ]: (typep x (type-of x)) must => T (FFI)
	* type.lisp (foreign-function, foreign-variable, foreign-address)
	(foreign-pointer): new types
	(subtypep): FOREIGN-FUNCTION is a FUNCTION

2002-03-12  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 527380 ]: encoding :output-error-action :ignore broken
	* encoding.d (nls_wcslen): sync with nls_wcstombs() wrt
	ignoring errors (i.e., return the correct number of dest bytes)
	(nls_asciiext_wcslen): sync with nls_asciiext_wcstombs() wrt
	ignoring errors (i.e., return the correct number of dest bytes)
	(nls_wcstombs, nls_asciiext_wcstombs): handle ignored errors
	properly (and do not require the same SRC and DEST count)

2002-03-12  Sam Steingold  <sds@gnu.org>

	* configure (maybe_link): new function
	* makemake.in (config.status, configure, makemake.in)
	(unixconf.h.in, VERSION): new targets

2002-03-12  Sam Steingold  <sds@gnu.org>

	* unix.d (HAVE_DLOPEN) [UNIX_HPUX]: undef since dlopen() is
	broken on HP-UX without a patch

2002-03-11  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-warn, c-warn): CURRENT-FUNCTION does not
	necessarily return a function
	(form-name): new function - a short printed form representation
	(compile-file): use it for *COMPILE-PRINT* and form name that is
	passed to COMPILE-TOPLEVEL-FORM instead of '#:TOP-LEVEL-FORM

2002-03-10  Peter Burwood  <clisp@peterb.org.uk>

	* pathname.d (realpath) [UNIX_CYGWIN32]: neither dir nor symlink
	generate ENOTDIR

2002-03-10  Sam Steingold  <sds@gnu.org>

	The default foreign language is now ANSI C, not K&R C
	* foreign1.lisp (DEF-C-CALL-OUT, DEF-C-CALL-IN): deprecated
	(*foreign-language*): new variable
	(default-foreign-language): new exported macro (set it)
	(parse-c-function): use it
	* compiler.lisp (with-compilation-unit): bind it
	* init.lisp (load): ditto
	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp
	* postgresql632/postgresql.lisp, postgresql642/postgresql.lisp
	* regexp/regexp.lisp, wildcard/wildcard.lisp: use DEF-CALL-OUT
	instead of DEF-C-CALL-OUT and call DEFAULT-FOREIGN-LANGUAGE

2002-03-10  Sam Steingold  <sds@gnu.org>

	IPv6 portability suggested by Bruno
	* socket.d (s6_addr16): define if not defined yet
	(S6_ADDR16): accessor helper
	(ipv6_ntop): use it - a unified definition now

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

	more error unification
	* init.lisp (check-symbol): new function
	(defun): use it
	* foreign1.lisp (check-symbol): removed
	(DEF-C-TYPE, DEF-C-VAR, DEF-CALL-OUT, DEF-LIB-CALL-OUT)
	(DEF-CALL-IN, def-c-enum): use the new check-symbol
	* defstruct.lisp (defstruct): ditto
	(ds-symbol-or-error): removed

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

	autoconf tweaks for hp/ux and cygwin
	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL)
	(CL_CANONICAL_HOST_CPU): hppa2.0* --> hppa
	* configure.in (HAVE_GETHOSTENT): check for gethostent(3)
	* unixconf.h.in (HAVE_GETHOSTENT): added an #undef
	* socket.d (RESOLVE-HOST-IPADDR-INTERNAL): check HAVE_GETHOSTENT
	before calling gethostent()

2002-03-09  Peter Burwood  <clisp@peterb.org.uk>

	cygwin (u)alarm is adequate - do not re-implement it
	* unix.d (HAVE_UALARM): Remove as defined in unixconf.h.
	* unixaux.d (alarm, ualarm, sleep, usleep): Remove function as
	cygwin supplied function works.
	(do_alarm, do_sleep, interrupt_handler, DoInterruptible): Remove
	support functions.
	(alarm_thread, alarm_date, alarm_interval): Remove support variables.

2002-03-09  Peter Wood  <peter.wood@worldonline.dk>
	    Sam Steingold  <sds@gnu.org>

	added signal handling
	* linux.lisp: interface to <bits/sigset.h>, <bits/sigaction.h>
	and <signal.h>
	* wrap.lisp: many wrappers and examples

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

	* bindings/linuxlibc6/wrap.lisp (real-path): linux:realpath does
	not return an integer flag
	(vec2string): use :END arg to CONVERT-STRING-FROM-BYTES instead
	of SUBSEQ
	* bindings/linuxlibc6/linux.lisp (realpath): return a pointer to
	C-ARRAY-MAX, not C-ARRAY
	(errno): a simple DEF-C-VAR, not a SYMBOL-MACRO
	Suggested by Jörg Höhle

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

	renamed dirkey.lisp to dirkey1.lisp (like foreign1.lisp/foreign.d)
	since (compile-file "foo") clobbers foo.c (because of FFI)
	* init.lisp: "dirkey1", not "dirkey"
	* makemake.in (LPARTS): ditto
	* gettext/po/Makefile.devel (LISPSOURCES): ditto
	* dirkey1.lisp: renamed from dirkey.lisp

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

	* genclisph.d (nonreturning_function, SLONGLONG, ULONGLONG):
	fixed for MICROSOFT
	* makemake.in: create modules-related rules on non-UNIX systems
	($with_export_syscalls): do not add -lm to LIBS on win32
	Reported by <hoehle@users.sourceforge.net>

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

	POSIX:STREAM-LOCK - file stream locking interface based on flock(2)
	* stream.d (STREAM-LOCK): implemented
	* subr.d, subrkw.d (stream_lock): declared
	* constsym.d (stream_lock, Kshared): added
	* configure.in (HAVE_FLOCK): check for flock(2)
	(HAVE_SYS_WAIT_H): check for <sys/file.h> (flock(2) is declared there)
	* unixconf.h.in (HAVE_FLOCK, HAVE_SYS_WAIT_H): added the #undef's
	* posix.lisp (STREAM-LOCK) [:unix]: export

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

	infrastructure tweaks
	* makemake.in (XCFLAGS): handle --with-threads=FLAVOR by
	adding "-DMULTITHREAD -Dflavor"
	* configure (info_help): documented all options
	* Makefile.devel (upload): new target
	* autoconf/aclocal.m4 (CL_STRERROR, CL_FSYNC, CL_UALARM)
	(CL_USLEEP): removed trivial defuns
	* configure.in: call AC_CHECK_FUNCS for strerror(), fsync(),
	ualarm() and usleep() directly

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

	* foreign.d (FOREIGN-ADDRESS-VALUE): handle foreign pointers too

2002-03-04  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (to-c-typedecl): c-pointer --> void*, not char*
	* bindings/linuxlibc6/linux.lisp (flock): new call-out
	(fcntl2, fcntl3l, fcntl3f): 3 forms of fcntl()
	(ioctl-set-int, ioctl-get-int): 2 basic forms of ioctl()
	[there are many many more!]
	* bindings/linuxlibc6/wrap.lisp (check-res): new macro
	(real-path, get-host-name, get-domain-name): use it
	* modules/clx/new-clx/clx.f: NOTREACHED and thus NOTIMPLEMENTED
	and UNDEFINED require a semicolon

2002-03-03  Sam Steingold  <sds@gnu.org>

	* version.h: 2.28 is released

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

	* spvw_garcol.d (gc_mark): added down_weakkvt(), up_weakkvt(),
	and case_weakkvt statements that call them (fixes weak HTs on
	the TYPECODES platforms)

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

	* array.d (elt_nreverse): do not use SIMPLE_NREVERSE for simple
	strings since TheSstring != TheSvector (breaks NREVERSE on Alpha)

2002-03-03  Sam Steingold  <sds@gnu.org>

	Compilation on Alpha/Linux
	* dfloat.d: SAVE_NUM_STACK/RESTORE_NUM_STACK want {} around them
	* lispbibl.d (weakkvt_type): removed extra '|'
	* spvw_typealloc.d: one cannot use `obj' in allocate() portably
	(allocate_weakkvt_low): renamed from allocate_weakkvt()
	(allocate_weakkvt): call allocate_weakkvt_low()

2002-03-03  Sam Steingold  <sds@gnu.org>

	build process portability
	* makemake.in (data, clean1, ${TESTDIR}): use the appropriate slashes
	(RM) [win32]: set to 'del /q' (~ rm -f)
	(UTILDIR*, DOCDIR): define using SRCTOPDIR*+NEXT*, not sed(1)
	(PARENT_SRCTOPDIR_, PARENT_SRCTOPDIR_M): new vars
	(data, suite): use them so that `./configure /tmp/...' works
	* Makefile.devel (htmldoc): make split docs
	but do not copy impnotes.html to src/
	(SOURCES1): added clisp.lsm
	(acorn/pathname.txt): updated the regexp because of the
	src/pathname.d translation

2002-03-02  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 506098 ]: ICONV_CONST-related build problems
	* stream.d: check ICONV_CONST before using it
	* unixconf.h.in (ICONV_CONST): reverted the 2001-12-25 patch:
	use #undef, not #define; just like all other *_CONST macros

2002-03-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* spvw_language.d (current_language_o): typo: argument should be
	`uintL', not `uint'

2002-03-02  Sam Steingold  <sds@gnu.org>

	* package.d (%SET-PACKAGE-LOCK): do not barf
	when the package list is empty

2002-03-02  Sam Steingold  <sds@gnu.org>

	* bindings/linuxlibc6/linux.lisp (WEXITSTATUS, WTERMSIG, WSTOPSIG)
	(WIFEXITED, WIFSIGNALED, WIFSTOPPED, WCOREFLAG, WCOREDUMP)
	(W_EXITCODE, W_STOPCODE): added #define's from <bits/waitstatus.h>

2002-03-02  Sam Steingold  <sds@gnu.org>

	* modules/regexp/regexp.lisp (with-loop-split): fixed :START/:END

2002-02-27  Sam Steingold  <sds@gnu.org>

	* bindings/linuxlibc6/linux.lisp (wait, waitpid): new C call-outs
	(provide "linux"): for (require "linux") in wrap.lisp

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

	error reporting unification
	* trace.lisp (error-function-name): new function
	(trace1): use it
	* cmacros.lisp (compiler-macro-function): ditto
	* error.d (fehler_funname_type, fehler_funname_source): new functions
	* lispbibl.d (fehler_funname_type, fehler_funname_source): declare
	* control.d (function): use fehler_funname_source()
	* eval.d (eval1): ditto
	(apply, funcall): use fehler_funname_type()

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

	* trace.lisp (force-cclosure): take FDEFINITION when compiling
	(%local-set): COMPILE NEW-DEF and take its FDEFINITION
	when NEW-DEF is not compiled

2002-02-28  Barry Fishman  <bfishman@users.sf.net>

	* modules/clx/new-clx/clx.f (CONVERT-SELECTION): clean up the stack
	(SELECTION-NOTIFY): added window notification

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

	* defs1.lisp (require): push *load-truename* on *load-paths*
	* compiler.lisp (c-REQUIRE): push *compile-file-truename*
	on *load-paths*

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

	* compiler.lisp (c-form): fixed a bug: EXPAND-COMPILER-MACRO
	can return an atom

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

	* bindings/linuxlibc6/linux.lisp (substitution): map DEFCONSTANT

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

	* compiler.lisp (c-write-lib): bind *PRINT-SYMBOLS-LONG* when
	writing *.lib files, just like with *.fas files

2002-02-27  Sam Steingold  <sds@gnu.org>

	implemented weak hash-tables
	* hashtabl.d (MAKE-HASH-TABLE): accept :WEAK keyword argument
	(rehash, hash_store, REMHASH, MAPHASH, HASH-TABLE-ITERATE)
	(CLASS-TUPLE-GETHASH): use ht_kvtable()/kvtable_data()
	(hash_lookup): remove obsolete key/value from a weak HT
	(prepare_resize): accept third argument `weak'
	(resize): handle weak hash-tables
	(HASH-TABLE-WEAK-P, %SET-HASH-TABLE-WEAK-P): implemented
	(sxhash_atom): handle WeakKVT
	* constobj.d (all_weakkvtables, hs_weakkvt): new objects
	(version): bumped because of the MAKE-HASH-TABLE change
	* constsym.d (hash_table_weak_p, set_hash_table_weak_p, Kweak)
	(weak_kvtable): added
	* init.lisp (hash-table-weak-p, weak-key-value-table):
	export from EXT
	* io.d (pr_weakkvt): new pr_routine_t
	(prin_object_dispatch): use it to print a Weak KVT
	(pr_kvtable): handle weak KVTs
	* lispbibl.d (weakkvt_type, case_weakkvt, Rectype_WeakKVT): added
	(ht_weak_p, kvtable_data, ht_kvt_data): new macros
	(weakkvt_t): new lrecord
	(TheSarray, TheVarobject, ThePointer): added weakkvt_type
	(Weakkvt_length, TheWeakKVT, weakkvtp, case_Rectype_WeakKVT_above):
	concomitant macros
	(if_recordp): Rectype_WeakKVT is not a record
	(allocate_weakkvt): declare
	(map_hashtable, map_hashtable_nogc): accommodate weak hash-tables
	(case_array, case_Rectype_array_above): added WeakKVT
	* places.lisp (hash-table-weak-p): added defsetf
	* predtype.d (CLASS-OF, TYPE-OF, heap_statistics_mapper):
	handle Weak KVT
	(enum_hs_weakkvt): added to the enum
	* spvw.d (init_object_tab_1): init O(all_weakkvtables)
	* spvw_garcol.d (gar_col_normal): mark & update O(all_weakkvtables)
	(gar_col_compact, move_conses): update O(all_weakkvtables)
	* spvw_genera1.d (walk_area, build_old_generation_cache): added
	case_weakkvt
	* spvw_global.d (init_mem_heaptypes): handle Weak KVT
	* spvw_memfile.d (savemem, loadmem_from_handle):
	update O(all_weakkvtables)
	* spvw_objsize.d (objsize, init_objsize_table): handle case_weakkvt
	* spvw_typealloc.d (allocate_weakkvt): implemented
	* spvw_update.d (update_weakkvtables, update_weakkvtables_mod): added
	* subr.d (make_hash_table): added :WEAK
	(hash_table_weak_p, set_hash_table_weak_p): added
	* subrkw.d (make_hash_table): added :WEAK
	* version.h, VERSION: bumped to 2.27.3

2002-02-26  Sam Steingold  <sds@gnu.org>

	* error.d (signal_and_debug): avoid a GCC warning
	(end_error): abort(), not exit() -- for debugging

2002-02-26  Sam Steingold  <sds@gnu.org>

	lib dir can now be changed at run-time
	* constsym.d, subr.d (set_lib_directory): added
	* constobj.d (lib_dir): new object
	* pathname.d (LIB-DIRECTORY): use it
	(SET-LIB-DIRECTORY): set it (new function)
	* spvw.d (main): set it from argv_lisplibdir
	* _clisp.html, _clisp.1: document that
	* places.lisp (*lib-directory*): new symbol-macro
	* init.lisp (*lib-directory*): export it from CUSTOM
	* describe (clisp-data-file): new function
	(unicode-data-file): removed
	(unicode-attributes-line): use CLISP-DATA-FILE
	instead of UNICODE-DATA-FILE
	* clhs.lisp (clhs-file): removed
	(clhs): use CLISP-DATA-FILE instead of CLHS-FILE
	* makemake.in: data files, like clhs.txt and UnicodeData.txt,
	are now in $(lisplibdir)/data on all platforms

2002-02-25  Sam Steingold  <sds@gnu.org>

	Moved language-dependent constants out of constobj.d
	* constobj.d (LISPOBJ_L, LISPOBJ_LS): removed
	* lispbibl.d (CLSTEXT, CLOTEXT): added
	(OGETTEXT, OL, OLS, localized_string, localized_object): removed
	(GNU_GETTEXT): do not define unless UNICODE is defined too
	* spvw_language.d (CLSTEXT, CLOTEXT): added
	(localized_string, localized_object): removed
	* debug.d, error.d, flo_rest.d, misc.d, package.d, pathname.d
	* realelem.d, spvw.d: use CLSTEXT() instead of OLS()
	and CLOTEXT() instead of OL()
	* misc.d, spvw_memfile.d (software_version_string): removed the
	cache (language-dependent)
	* i18n.d (TEXT): use CLSTEXT() instead of localized_string()
	* gettext/po/clisp-xgettext: accommodate these changes: search for
	CLSTEXT and CLOTEXT in *.d and for TEXT in *.lisp
	* gettext/po/Makefile.devel (GMSGFMT): set to msgfmt, since GNU
	gettext does not install gmsgfmt, and require GNU gettext
	(clean): remove tmp

2002-02-25  Sam Steingold  <sds@gnu.org>

	* clhs.lisp (clhs): unlock COMMON-LISP before reading clhs-file
	(read-from-file): added PACKAGE keyword argument

2002-02-23  Sam Steingold  <sds@gnu.org>

	minor code cleanups
	* record.d (obj_in_list): new function
	(structure_up, %STRUCTURE-TYPE-P, keyword_test): use it
	(slot_in_arglist): new function
	(%SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
	(do_initialize_instance): use it

2002-02-23  Sam Steingold  <sds@gnu.org>

	* record.d (%REINITIALIZE-INSTANCE): fixed a crash in repeated
	REINITIALIZE-INSTANCE calls

2002-02-22  Sam Steingold  <sds@gnu.org>

	UI language can now be changed at run time
	* constobj.d (current_language_cache): removed
	(current_language): language-independent object now
	* constsym.d (german, french, spanish, dutch): added
	* constsym.d, subr.d (language): removed
	(set_current_language, text): added
	* encoding.d (init_encodings): split into init_encodings_1() and
	init_encodings_2() to accommodate non-ASCII symbol names
	* i18n.d (SET-CURRENT-LANGUAGE): new function
	(LANGUAGE): replaced with TEXT
	* lispbibl.d (init_encodings_1, init_encodings_2):
	replace init_encodings()
	(init_language): global now (called by SET-CURRENT-LANGUAGE)
	* spvw.d (init_symbol_tab_2): accommodate non-ASCII symbols
	(initmem): call init_encodings_1() and init_encodings_2()
	around init_symbol_tab_2()
	(main): init O(current_language)
	* spvw_language.d (current_language_o): new function:
	map language number to its symbol name
	(init_language): use it to init O(current_language)
	* spvw_memfile.d (loadmem_from_handle): removed
	O(current_language_cache)
	* places.lisp (*CURRENT-LANGUAGE*): define
	* init.lisp (*CURRENT-LANGUAGE*): export
	* clos.lisp, affi1.lisp, foreign1.lisp: import SYS::TEXT
	* french.lisp: spell FRANCAIS with a cedilla
	* makemake.in (LPARTS): include french.lisp only with_unicode
	* international.lisp: export ENGLISH here
	* affi1.lisp, amigasock.lisp, backquote.lisp, beossock.lisp:
	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp:
	* cfgunix.lisp, cfgwin32.lisp, clos.lisp, cmacros.lisp:
	* compiler.lisp, condition.lisp, defmacro.lisp, defs1.lisp:
	* defs2.lisp, defstruct.lisp, describe.lisp, dirkey.lisp:
	* disassem.lisp, dribble.lisp, edit.lisp, floatprint.lisp:
	* foreign1.lisp, format.lisp, init.lisp, international.lisp:
	* loop.lisp, macros1.lisp, macros2.lisp, macros3.lisp:
	* places.lisp, pprint.lisp, query.lisp, reploop.lisp, rexx1.lisp:
	* room.lisp, runprog.lisp, screen.lisp, trace.lisp, type.lisp:
	* xcharin.lisp: use TEXT instead of ENGLISH

2002-02-22  Sam Steingold  <sds@gnu.org>

	* install.lisp (*clisp-base-cmd*, *clisp-cmd*): surround
	pathnames with quotes to accommodate "c:/Program Files/CLISP/" &c
	(*clisp-home*): convert backslashes to forward slashes

2002-02-21  Sam Steingold  <sds@gnu.org>

	minor code cleanups
	* debug.d (read_form): use cint_white_p()
	* pathname.d (SHELL): use fehler_string()
	* package.d (MAKE-SYMBOL): ditto
	(package_lookup_ext, package_lookup_int, package_lookup): new macros
	(inherited_lookup, find_external_symbol, find_symbol)
	(shadowing_import, shadow, unintern, import, use_package_aux)
	(FIND-ALL-SYMBOLS): use them
	(prepare_query_user): new function
	(query_user, export, use_package, correct_packname): use it
	(UNINTERN): use fehler_symbol()
	* predtype.d (FIND-CLASS): ditto
	* lisparit.d (!): use fehler_posfixnum()

2002-02-21  Stefan Kain  <stefan.kain@freenet.de>

	* package.d: translated all comments
	* constobj.d: ditto

2002-02-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (distrib): include the Emacs-Lisp files in the
	binary distribution: indentation and coding are included,
	but d-mode is excluded

2002-02-20  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 515604 ]: (EVAL-WHEN (COMPILE)) no longer automatically
	writes to *.lib; you need EVAL-WHEN-COMPILE or both LOAD and COMPILE
	* compiler.lisp (c-write-lib): new function
	(c-eval-and-write-lib): renamed from c-eval-when-compile
	(compile-toplevel-form): respect the renaming
	(eval-when-compile): new macro: call C-EVAL-AND-WRITE-LIB at
	compile time
	(c-GLOBAL-FUNCTION-CALL): use it instead of (EVAL-WHEN (COMPILE))
	(c-EVAL-WHEN): write to *lib only when _both_ LOAD and COMPILE
	are specified; COMPILE-ONCE-ONLY is eliminated
	* init.lisp (eval-when-compile): added a bootstrap definition
	(defun): use EVAL-WHEN-COMPILE instead of (EVAL-WHEN (COMPILE))
	* clos.lisp (defmethod, defgeneric): ditto
	* macros1.lisp (defconstant): ditto
	* foreign1.lisp (DEF-LIB-CALL-OUT): ditto
	(DEF-CALL-OUT): use COMPILE situation instead of COMPILE-ONCE-ONLY
	and EVAL-WHEN-COMPILE instead of (EVAL-WHEN (COMPILE))
	(DEF-C-VAR, DEF-CALL-IN): use COMPILE situation
	instead of COMPILE-ONCE-ONLY

2002-02-17  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	smooth Ctrl-C, Ctrl-Break handling not depending on whether
	interrupted thread is alive when temp_interrupt_handler executes
	* win32aux.d: (interruptible_abort_code): new variable holds
	1+CtrlType after temp_interrupt_handler works, zero while
	temp_interrupt_handler is not called.
	(temp_interrupt_handler): check whether thread is alive before
	terminating it. Save result in new variable instead of use of
	thread exit code.
	(DoInterruptible): use interruptible_abort_code.

2002-02-18  Sam Steingold  <sds@gnu.org>

	* bindings/linuxlibc6/wrap.lisp: require "linux" to avoid warnings

2002-02-13  Sam Steingold  <sds@gnu.org>

	* bindings/linuxlibc6/linux.lisp (getdomainname, setdomainname)
	(gethostname, sethostname, mkstemp, realpath): uncommented and fixed
	* bindings/linuxlibc6/wrap.lisp: new file
	* bindings/linuxlibc6/Makefile, bindings/linuxlibc6/link.sh:
	added wrap.lisp

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

	* lisparit.d (init_arith): define DOUBLE-FLOAT-EPSILON and
	DOUBLE-FLOAT-NEGATIVE-EPSILON differently on linux-x86
	because of the 80-bit floating registers

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

	* package.d (%SET-PACKAGE-LOCK): call test_package_arg() on the
	single arg

2002-02-11  Sam Steingold  <sds@gnu.org>

	* stream.d (strip_white): strip only the CR, not all whitespace,
	since it breaks READ-LINE on terminals
	Reported by Peter Wood <peter.wood@worldonline.dk>

2002-02-11  Sam Steingold  <sds@gnu.org>

	ANSI CL 11.1.2.1.2 #9 forbids tracing in COMMON-LISP
	* trace.lisp (trace1, untrace1): forbid tracing in locked packages
	* init.lisp (check-redefinition): handle (SETF function-name)

2002-02-11  Sam Steingold  <sds@gnu.org>

	fixed the (compile nil (lambda () (flet (())))) bug
	* compiler.lisp (symbol-suffix): use just the suffix for NIL funname

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

	* foreign1.lisp, affi1.lisp: moved *FOREIGN-ENCODING* to the
	CUSTOM package, as described in the impnotes

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

	* makemake.in: include impnotes.css in the distribution along
	with impnotes.html

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* charstrg.d (name_char): Fix endless loop when string = "A_A".

2002-02-03  Sam Steingold  <sds@gnu.org>

	fixed a bug: (defmethod foo ((x (eql 1))) x)
	* package.d (CHECK-PACKAGE-LOCK): handle non-package third
	argument to mean "unlocked"
	* init.lisp (check-redefinition): (EQL X): when X is not a
	symbol, pass NIL as the package

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

	* spvw_update.d (update_weakpointer): new macro
	(update_weakpointers, update_weakpointers_mod): use it

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

	* io.d (pr_array_nil): print array address too
	(pr_hex6_obj): save the object
	(pr_orecord): print HASH-TABLE with TEST and COUNT
	even when *PRINT-ARRAY* is NIL
	* constobj.d (printstring_hash_table): removed

2002-01-31  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (hashtable_test): new macro
	* io.d (pr_orecord): use it
	* hashtable.d (HASH-TABLE-TEST): ditto

2002-01-31  Sam Steingold  <sds@gnu.org>

	* record.d (mk_weakpointer): new local helper function
	(allocate_weakpointer): new global function, uses mk_weakpointer()
	(MAKE-WEAK-POINTER): use mk_weakpointer()
	* lispbibl.d (allocate_weakpointer): declare as function, not macro
	(weakpointer_broken_p): new macro
	* io.d (pr_orecord): use it

2002-01-30  Sam Steingold  <sds@gnu.org>

	* io.d (pr_orecord): print EQUALP hash tables correctly
	(pr_kvtable): new function, used by pr_orecord()

2002-01-29  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (check_hashtable): new macro
	(GETHASH, PUTHASH, REMHASH, MAPHASH, CLRHASH)
	(HASH-TABLE-REHASH-THRESHOLD, HASH-TABLE-TEST, HASH-TABLE-ITERATOR)
	(CLASS-GETHASH, CLASS-TUPLE-GETHASH): use it

2002-01-29  Stefan Kain  <stefan.kain@freenet.de>

	* hashtabl.d: translated all comments

2002-01-27  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 509073 ]
	* compiler.lisp (expand-compiler-macro): pass to
	COMPILER-MACRO-FUNCTION only function names

2002-01-27  Sam Steingold  <sds@gnu.org>

	code simplifications
	* foreign.d (check_cc_match): new function
	(convert_function_to_foreign, convert_function_from_foreign): use it
	(fehler_eltype_zero_size): new function
	(convert_from_foreign, walk_foreign_pointers): use it

2002-01-27  Sam Steingold  <sds@gnu.org>

	added FFI:FOREIGN-ADDRESS-NULL to check for NULL pointers
	* foreign.d (FOREIGN-ADDRESS-VALUE): new function
	* subr.d, constsym.d (foreign_address_value): added
	* function1.lisp (foreign-address-null): new exported function

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

	* .clisp-full: new file
	* makemake.in: treat .clisp-full just like .clisp

2002-01-24  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 506105 ]: check semi-simple vectors&strings for overflow
	* array.d (fehler_extension): new function
	(VECTOR-PUSH-EXTEND): use it
	(fehler_dim_type): moved before semi-simple vectors&strings
	(make_ssstring, make_ssbvector): check len <= arraysize_limit_1
	(ssstring_push_extend, ssstring_extend, ssbvector_push_extend):
	check for overflow

2002-01-23  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (SEMI_SIMPLE_DEFAULT_SIZE): new constant
	* io.d (get_buffers, FORMAT-TABULATE): use it
	* stream.d (make_string_output_stream)
	(MAKE-BUFFERED-OUTPUT-STREAM): ditto

2002-01-23  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (OBJECT_OUT): new macro
	* spvw_debug.d (object_out): return obj

2002-01-23  Sam Steingold  <sds@gnu.org>

	* array.d (ssstring_extend_low): new function
	(ssstring_push_extend, ssstring_extend): use it

2002-01-22  Sam Steingold  <sds@gnu.org>

	* predtype.d (with_gc_statistics) [DEBUG_SPVW]: print a message
	when a GC is being done

2002-01-22  Sam Steingold  <sds@gnu.org>

	ANSI CL 11.1.2.1.2 #19 forbids methods with locked functions and
	specializers - check that too
	* package.d (CHECK-PACKAGE-LOCK): package may be a list of
	packages
	* init.lisp (check-redefinition): symbol maybe a method spec - a
	list of function name and specializers
	* clos.lisp (analyze-method-description): call CHECK-REDEFINITION

2002-01-21  Sam Steingold  <sds@gnu.org>

	SOCKET-STATUS now works on all handle streams, whose handles are
	acceptable to the underlying OS's select system call
	* stream.d (stream_handles): work on many streams and return 2
	handles (renamed from socket_handle)
	(handle_set, handle_isset, SOCKET-STATUS): modified accordingly
	(ChannelStream_ihandle, ChannelStream_ohandle): new macros

2002-01-18  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_char_p): removed (good only for "basic streams")
	(handle_isset, stream_reset_eltype): look at strm_eltype directly

2002-01-18  Sam Steingold  <sds@gnu.org>

	support #! UNIX scripts on WIN32 too
	* io.d, constsym.d, spvw.d, subr.d (UNIX-EXECUTABLE-READER):
	define on WIN32_NATIVE too

2002-01-18  Sam Steingold  <sds@gnu.org>

	* stream.d (SOCKET-STATUS): fix a GC safety bug
	(handle_isset): mark as GC-unsafe
	Reported by Todd Sabin <tas@webspan.net>

2002-01-18  Sam Steingold  <sds@gnu.org>

	* stream.d (FILE-POSITION): work on any stream, not just an open
	file stream, as per ANSI CL

2002-01-17  Sam Steingold  <sds@gnu.org>

	* stream.d (read-byte): respect the unread chars
	(stream_reset_eltype): new function - rectify the
	ignore_next_LF lossage when changing STREAM-ELEMENT-TYPE
	(BUILT-IN-STREAM-SET-ELEMENT-TYPE, SET-STREAM-EXTERNAL-FORMAT): use it
	(resolve_synonym_stream): new function
	(TERMINAL-RAW, check_open_file_stream): use it

2002-01-16  Sam Steingold  <sds@gnu.org>

	* inspect.lisp (close) [html-stream-out]: new method
	(*with-html-output-doctype*): new user variable, defaults to XHTML
	(with-html-output): use it; close the HTML stream too
	(crlf): removed (we create an :EXTERNAL-FORMAT :DOS socket)
	(with-http-output): new keyword args: RETURN-NAME and RETURN-CODE
	do not call CRLF, rely on the socket to provide proper EOL
	(http-error): new function
	(http-command): reconnect when a KEEP-ALIVE connection times out;
	handle invalid requests (e.g., for favicon.ico) and ":"->"%3a"
	[FIXME: disabled KEEP-ALIVE connections because it appears that
	 content length in WITH-HTTP-OUTPUT is computed incorrectly]
	(inspect-frontend) [http]: handle NIL ID returned by HTTP-COMMAND
	due to an invalid request

2002-01-16  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe-stream-flush-buffer, stream-line-column)
	(stream-start-line-p): check the return value of
	SYS::LINE-POSITION (it may be NIL!)

2002-01-15  Sam Steingold  <sds@gnu.org>

	* lispbibl.d (OGETTEXT): mark as GC-unsafe
	* package.d (cerror_package_locked): fixed a GC-safety bug

2002-01-15  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (with-standard-io-syntax): bind
	SYSTEM::*PRIN-LINE-PREFIX* to NIL

2002-01-15  Sam Steingold  <sds@gnu.org>

	* describe.lisp (describe): flush the pending output _before_
	increasing indentation
	(describe-object) [symbol]: handle unbound special variables too

2002-01-14  Sam Steingold  <sds@gnu.org>

	* defs1.lisp (*system-package-list*): new custom variable
	(without-package-lock): new extension macro
	* package.d (%SET-PACKAGE-LOCK): allow multiple packages
	* savemem.lisp (saveinitmem): default LOCKED-PACKAGES
	to *SYSTEM-PACKAGE-LIST*

2002-01-14  Sam Steingold  <sds@gnu.org>

	add :SCREEN to *FEATURES* when the "SCREEN" package is present
	* init.lisp: use #+SCREEN instead of (find-package "SCREEN")
	* spvw.d (*features*): add :SCREEN #ifdef SCREEN

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

	* trace.lisp (trace1): made macros traceable again (broken since
	the 2000-06-11 patch introducing MACRO type)
	(fdefinition-local): removed (replaced with LOCAL)
	(local): new macro (SETF-able)
	(local-function-name-p): new function
	* init.lisp (local): export from EXT

2002-01-11  Sam Steingold  <sds@gnu.org>

	close all inaccessible PIPE and SOCKET streams on GC, like file streams
	* stream.d (add_to_open_streams): new function
	(make_file_stream, make_terminal_stream, make_printer_stream):
	 use it instead of in-line code
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
	(SOCKET-ACCEPT, SOCKET-CONNECT, SYS::MAKE-SOCKET-STREAM):
	 call add_to_open_streams() too
	Reported by Todd Sabin <tas@webspan.net>

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

	* spvw.d (main): --version: print *FEATURES*

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

	* package.d (cerror_package_locked): error-format-string: print
	func with ~A so that "DEFUN/DEFMACRO" is printed without quotes

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

	fixed a bug in the 2001-11-09 patch
	* pathname.d (CD): slashp expects a chart, not cint

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

	fixed (format nil "~2f" 1234567.1234) => "1234567."
	* format.lisp (format-float-for-f): pass 0 as DMIN to
	FORMAT-FLOAT-TO-STRING

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

	notice function redefinitions again
	* compiler.lisp (c-DEFUN): accept optional argument TYPE, to
	distinguish between DEFUN and DEFMETHOD (CURRENT-FUNCTION for
	top-level forms does not return anything useful)
	* clos.lisp (defmethod, defgeneric): pass the 4th argument to c-DEFUN

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

	fixed bug #[ 501166 ]
	* pathname.d (SUBDIR_PUSHSTACK): check for non-string subdir
	elements, do not return
	(subdir_namestring_parts): modified accordingly
	(use_default_dir): call simplify_directory
	(directory_search_scandir, directory_search): use SUBDIR_PUSHSTACK

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

	* compiler.lisp (signature-to-list): do not intern ARG# symbols
	in SYSTEM
	(c-DEFUN): print signatures with ~A, not ~S, to avoid package prefixes

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

	* deprecated.lisp (deprecate): added optional DEF argument

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

	Implemented arbitrary package locking
	* lispbibl.d (Package): use bit(1) for package lock
	(mark_pack_locked, mark_pack_unlocked, pack_locked_p): new macros
	* package.d (cerror_package_locked): new function
	(check_pack_lock, safe_check_pack_lock): new macros
	(intern, shadowing_import, shadow, unintern, unexport, export)
	(use_package, RENAME-PACKAGE): check package lock
	(PACKAGE-LOCK, %SET-PACKAGE-LOCK, CHECK-PACKAGE-LOCK): implemented
	* subr.d, constsym.d (package_lock, set_package_lock)
	(check_package_lock): added
	* init.lisp (package-lock): export from EXT
	(exported-lisp-symbol-p): removed
	(fbound-string): do not barf on non-fbound symbols
	(check-redefinition): new function
	(remove-old-definitions): use CHECK-REDEFINITION
	* places.lisp (check-accessor-name): new function
	(define-setf-expander, defsetf): use CHECK-ACCESSOR-NAME and
	CHECK-REDEFINITION
	(package-lock): defsetf to SYSTEM::%SET-PACKAGE-LOCK
	* clos.lisp ((setf find-class)): use SYS::CHECK-REDEFINITION
	* savemem.lisp (saveinitmem): new argument: :locked-packages
	to lock the system packages when saving the final image
	* os2/lispinit.in: call saveinitmem
	* makemake.in (lispinit.mem): call lispinitmem (not %lispinitmem)

2002-01-07  Sam Steingold  <sds@gnu.org>

	* symbol.d (Symbol_function_checked): use fehler_undef_function()

2002-01-07  Sam Steingold  <sds@gnu.org>

	made problem reporting work with WITH-COMPILATION-UNIT
	* compiler.lisp (c-source-point): new structure (instead of a cons)
	(c-source-location): accept a 3rd optional argument - file,
	defaults to *compile-file-truename*
	(c-source-point): removed the function
	(c-source-point-location): pass all slots of a C-SOURCE-POINT
	to C-SOURCE-LOCATION
	(note-function-used, c-DEFUN): use MAKE-C-SOURCE-POINT
	instead of C-SOURCE-POINT
	(match-known-unknown-functions): bind *COMPILE-FILE-TRUENAME* too

2002-01-07  Sam Steingold  <sds@gnu.org>

	* trace.lisp (fdefinition-local): new function for extracting
	local (LABELS & FLET) functions

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

	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: fixed a bug
	introduced on 2001-08-29 (mind tolerantp!)

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

	* compiler.lisp (note-function-used, c-report-problems): report
	the replacements for the deprecated functions
	* deprecated.lisp (deprecate): new function - use throughout

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

	* makemake.in (RM) [win32]: prepend '-'
	* ffcall/Makefile.msvc: prepend '-' before 'del'
	* ffcall/avcall/Makefile.msvc: ditto
	* ffcall/callback/Makefile.msvc: ditto
	* ffcall/callback/trampoline_r/Makefile.msvc: ditto
	* ffcall/callback/vacall_r/Makefile.msvc: ditto
	* ffcall/trampoline/Makefile.msvc: ditto
	* ffcall/vacall/Makefile.msvc: ditto
	* libiconv/Makefile.msvc: ditto
	* libiconv/lib/Makefile.msvc: ditto
	* libiconv/libcharset/Makefile.msvc: ditto
	* libiconv/libcharset/lib/Makefile.msvc: ditto
	* libiconv/src/Makefile.msvc: ditto
	* libiconv/tests/Makefile.msvc: ditto
	* sigsegv/Makefile.msvc: ditto
	From Indrayana Rustandi <i_rustandi@yahoo.com>

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

	finished the 2001-09-24 (functionp) patch
	* control.d (FUNCTION): use the functionp() macro
	* eval.d (coerce_function): ditto
	* sequence.d (seq_boolop): ditto
	* symbol.d (%PUTD): ditto

2002-01-05  Sam Steingold  <sds@gnu.org>

	SOCKET-STREAM-PEER et al now work for buffered sockets too
	* stream.d (SocketChannel): new macro
	(SOCKET-SERVER, socket_handle, publish_host_data)
	(SOCKET-STREAM-HANDLE): use it
	Reported by Todd Sabin <tas@webspan.net>

2002-01-05  Sam Steingold  <sds@gnu.org>

	* stream.d (BufferedStream_buffer_address): new macro, use it
	along with BufferedStream_channel() and BufferedStream_buffer()

2002-01-05  Sam Steingold  <sds@gnu.org>

	some new macros for brevity
	* pathname.d (WIN32_ERROR_NOT_FOUND) [WIN32_NATIVE]: new macro
	(check_noname, check_notdir, check_delete_open): new macros

2002-01-03  Stefan Kain  <stefan.kain@freenet.de>

	* pathname.d: translated all comments

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

	* lispbibl.d (OGETTEXT): new macro
	* gettext/po/clisp-xgettext: recognize the new OGETTEXT macro

2001-12-26  Stefan Kain  <stefan.kain@freenet.de>

	* trace.lisp: translated all comments

2002-01-01  Todd Sabin  <tas@webspan.net>
	    Sam Steingold  <sds@gnu.org>

	* stream.d (BUILT-IN-STREAM-SET-ELEMENT-TYPE): fixed a crash for
	`strmtype_twoway_socket'

2002-01-01  Sam Steingold  <sds@gnu.org>

	unified some error messages
	* pathname.d (fehler_file_exists): no args: get caller from
	subr_self and pathname from STACK_0 (a la fehler_file_not_exists)
	(rename_file): modified accordingly
	(open_file): use fehler_file_not_exists() and fehler_file_exists()

2002-01-01  Sam Steingold  <sds@gnu.org>

	* init.lisp (sys::remove-old-definitions): CERROR for exported CL
	symbols even when there is no definition

2001-12-25  Sam Steingold  <sds@gnu.org>

	make DESCRIBE break long lines
	* describe.lisp (describe-stream): new slot BUFFER (word-buffered)
	(describe-stream-flush-buffer): new function to flush the BUFFER
	(stream-write-char, stream-finish-output, stream-force-output):
	use it
	(stream-line-column, stream-start-line-p, stream-clear-output):
	account for BUFFER
	(describe-object): when printing the external symbols of a
	package, do not fill: DESCRIBE-STREAM does it for us
	(describe1): FINISH-OUTPUT when done to flush the buffer
	(describe-signature): terminate with a period

2001-12-25  Sam Steingold  <sds@gnu.org>

	* makemake.in (MAKE): set from the environment variable, if any

2001-12-25  Sam Steingold  <sds@gnu.org>

	The 2001-08-25 patch (autoconf-2.52 upgrade) broke FreeBSD build.
	This patch appears to fix it.
	* unixconf.h.in (ICONV_CONST): use #define, not undef

2001-12-24  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-FLET, c-FUNCTION-MACRO-LET, traverse-anode):
	use NEW-CONST

2001-12-21  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-DIRECT-FUNCTION-CALL): added a flet
	COMMUTE-WITH-REST-P (a minor simplification)

2001-12-20  Sam Steingold  <sds@gnu.org>

	optimize away COMPLEMENT in :TEST (COMPLEMENT ...)
	* compiler.lisp (c-TEST/TEST-NOT): new function
	(c-form-table): map the functions with :TEST/:TEST-NOT keys
	listed in <http://www.lisp.org/HyperSpec/Body/sec_1-8-2.html>
	to c-TEST/TEST-NOT

2001-12-20  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-seqop): do not need to check whether the user
	rebound NOT (this optimization does not depend on it)

2001-12-20  Sam Steingold  <sds@gnu.org>

	* makemake.in (unixconf.h): a separate target
	(makemake): recreate only makemake, not the whole configuration

2001-12-20  Sam Steingold  <sds@gnu.org>

	* type.lisp (canonicalize-type): canonicalize EXTENDED-CHAR
	to (OR), not to NIL

2001-12-20  Sam Steingold  <sds@gnu.org>

	* compiler.lisp: Minor code tweaks and simplifications:
	(analyze-lambdalist): new MACROLET macro PUSH-OPT
	(closuredummy-add-stack-slot): new function
	(c-LAMBDABODY, c-LET/LET*, c-MULTIPLE-VALUE-BIND, c-FLET)
	(c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET, c-GENERIC-LABELS)
	(c-FUNCALL-INLINE): use it
	(lambda-form-p): new function
	(c-form, inline-callable-function-lambda-p, c-FUNCTION): use it
	(shift-vars): new function
	(c-MAP-on-CARs, c-MAP-on-LISTs, c-MAPC, c-MAPL): use it
	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
	(c-GENERIC-LABELS): new macro GET-ANODE in their common MACROLET
	(inlinable-function-operation-form-p): new function
	(c-FUNCTION-CALL, c-APPLY, c-seqop): use it

2001-12-20  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (version) [CROSS]: updated (19071996 --> 20010726)

2001-12-20  Arseny Slobodjuck  <ampy@ich.dvo.ru>

	* lispbibl.d (OS_error): use asciz_out_s(), not asciz_out_1(),
	to output a string

2001-12-19  Stefan Kain  <stefan.kain@freenet.de>

	* compiler.lisp: translated all comments

2001-12-17  Sam Steingold  <sds@gnu.org>

	* type.lisp (canonicalize-type): extensive treatment of AND/OR
	and NOT (with flattening and special cases)
	(subtypep): a hack for NOT added; corrected T & NIL special cases

2001-12-17  Sam Steingold  <sds@gnu.org>

	* predtype.d (expand_deftype): check that (CAR TYPE-SPEC) is a
	symbol before calling GET

2001-12-12  Sam Steingold  <sds@gnu.org>

	simplify pathname directory lists
	* pathname.d (subst_coerce_normal_ss, subst_up_dotdot): folded
	into simplify_directory()
	(simplify_directory): new function: coerce to normal simple
	strings, replace ".." with :UP and collapse "foo/../"
	(parse_logical_pathnamestring, PARSE-NAMESTRING, merge_dirs): call it
	(subdir_namestring_parts): handle :UP
	(directory_list_valid_p): extracted from MAKE-PATHNAME
	(MAKE-PATHNAME): call simplify_directory() and
	directory_list_valid_p();
	Also: reverted the 2001-08-29 change: do NOT return a logical
	pathname when defaults is logical, but `logical' is false

2001-12-11  Sam Steingold  <sds@gnu.org>

	* socket.d (socket_getlocalname): when not resolving, init
	truename to a zero-length string
	Reported by Ian Wild <ian_wild@yahoo.com>

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

	* configure (link): remove the target ($2) first
	(maybe_mkdir): new function
	* makemake.in (echotab_mkdir_maybe): new function

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

	* configure, makemake.in, lndir: the idiom `cd $path; pwd` breaks
	down when cd prints something -- redirect its output to /dev/null
	From William Harold Newman <william.newman@airmail.net>

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

	* pathname.d (wild_char_p): new macro
	(PARSE-NAMESTRING, MAKE-PATHNAME, wild_p): use it

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

	* pathname.d (MAKE-PATHNAME): revert the 2001-07-20 patch: :case
	applies only to strings, not pathnames in the :default arg
	Reported by Kent M Pitman <pitman@world.std.com>

2001-11-27  Sam Steingold  <sds@gnu.org>

	* array.d (SIMPLE_FILL, SIMPLE_REVERSE, SIMPLE_NREVERSE): new macros
	(elt_fill): use SIMPLE_FILL
	(elt_reverse): use SIMPLE_REVERSE
	(elt_nreverse): use SIMPLE_NREVERSE

2001-11-27  Sam Steingold  <sds@gnu.org>

	* stream.d (READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
	use elt_nreverse() instead of inline code

2001-11-19  Sam Steingold  <sds@gnu.org>

	more consistent floating point computations: (log -1d0) =>
	#C(0.0d0 3.141592653589793d0), not #C(0.0d0 3.1415927f0)
	* realelem.d (defaultfloatcase): accept NUM arg
	(I_float_F, RA_float_F): update accordingly
	* realtran.d (pi): accept an arg and pass it to defaultfloatcase()
	(R_R_atan_R): pass an argument to pi()
	* comptran.d (R_R_atanh_R_R, R_R_asinh_R_R, N_acos_N, N_acosh_N):
	pass an argument to pi()
	* flo_rest.d (floatcase): envelop in "do{}while(0)"
	* lisparit.d (read_float): pass Fixnum_0 to defaultfloatcase()

2001-11-19  Sam Steingold  <sds@gnu.org>

	Move all deprecated functionality to deprecated.lisp
	* compiler.lisp (*deprecated-functions-list*): took SPECIAL-FORM-P
	and GET-SETF-METHOD-MULTIPLE-VALUE out
	* init.lisp (export "EXT"): ditto
	* defs1.lisp (special-form-p): moved to deprecated.lisp
	* places.lisp (get-setf-method-multiple-value)
	(define-setf-method): ditto
	* deprecated.lisp (special-form-p, get-setf-method-multiple-value)
	(define-setf-method): added and deprecated
	* describe.lisp (describe-object): macros can be deprecated too,
	give the new name for the deprecated functionality

2001-11-11  Bruno Haible  <haible@clisp.cons.org>

	Support for Intel icc on Linux/i386.
	* autoconf/aclocal.m4 (CL_STRLEN): When checking for the return type,
	prefer size_t over int. Avoids icc warning.
	* lispbibl.d (INTEL): New macro.
	(NULL): Don't define if INTEL. Avoids icc warning.
	(ASM_get_SP_register, SP, setSP): Use same asm based statement
	expression when using Intel icc as when using gcc.
	* genclisph.d (main): Likewise.
	* arilev0.d (mulu16) [I80386]: Likewise.
	(mulu32) [I80386]: Likewise.
	(divu_3216_1616) [I80386]: Likewise.
	(divu_6432_3232) [I80386]: Likewise.
	* eval.d (LD, LR, U_operand, S_operand): Likewise.
	* int2adic.d (D_D_mal2adic_D): Likewise.
	* intlog.d (integerlength16, integerlength32, ord2_32): Likewise.
	* ari80386.d (mulu32_): Don't define when using Intel icc.
	(divu_6432_3232_): Likewise.

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

	* stream.d (init_streamvars): when stdin (resp. stdout) is not a
	terminal, set *STANDARD-INPUT* (resp. *STANDARD-OUTPUT*) to the
	actual stream, not *TERMINAL-IO* synonym stream

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

	* lispbibl.d: envelop all "{}" macros in "do{}while(0)"

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

	* pathname.d (CD): append a slash when the string does not end
	with it (compatibility with CMUCL &al); the original behavior is
	still available as (cd (pathname string))

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

	* defs1.lisp (load-lpt-many): evaluate the definition for
	AllegroCL compatibility

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

	Support CMUCL- and AllegroCL-style logical host loading
	* defs1.lisp (load-lpt-many): new function (AllegroCL-style)
	(load-lpt-one): new function (CMUCL-style)
	(*load-logical-pathname-translations-database*): new user variable
	(load-logical-pathname-translations): use them

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

	* init.lisp (search-file): handle the extension-less situations

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

	* debug.d (read_form): keep calling READ-LINE until a non-empty
	line is supplied; this fixes the C-z RET win32 problem

2001-11-04  Bruno Haible  <haible@clisp.cons.org>

	Interoperability with gcc-3.0 -fuse-cxa-atexit.
	* autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add test whether
	global destructors actually exist.

2001-11-02  Sam Steingold  <sds@gnu.org>

	* stream.d (check_stream, check_streamtype, check_builtin_stream):
	(check_wr_int, resolve_as_synonym): new macros
	(test_stream_args, test_input_stream_args, SYNONYM-STREAM-SYMBOL)
	(BROADCAST-STREAM-STREAMS, CONCATENATED-STREAM-STREAMS)
	(TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM)
	(ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM)
	(GENERIC-STREAM-P, bitbuff_ixu_sub, bitbuff_ixs_sub)
	(wr_by_iau8_unbuffered, wr_by_iau8_buffered, TERMINAL-RAW)
	(BUILT-IN-STREAM-OPEN-P, INPUT-STREAM-P, OUTPUT-STREAM-P)
	(BUILT-IN-STREAM-ELEMENT-TYPE, BUILT-IN-STREAM-SET-ELEMENT-TYPE)
	(STREAM-EXTERNAL-FORMAT, SET-STREAM-EXTERNAL-FORMAT)
	(interactive_stream_p, INTERACTIVE-STREAM-P, BUILT-IN-STREAM-CLOSE)
	(get_line_position, READ-BYTE, READ-BYTE-LOOKAHEAD)
	(READ-BYTE-WILL-HANG-P, READ-BYTE-NO-HANG, READ-INTEGER)
	(READ-FLOAT, WRITE-BYTE, WRITE-INTEGER, WRITE-FLOAT, LINE-NUMBER)
	(ALLOW-READ-EVAL): use them
	(decoded_el_t): renamed from decoded_eltype
	(strm_channel_extrafields_t): renamed from
	 strm_channel_extrafields_struct
	(strm_unbuffered_extrafields_t): renamed from
	 strm_unbuffered_extrafields_struct
	(strm_buffered_extrafields_t): renamed from
	 strm_buffered_extrafields_struct
	(win32_console_extrafields_t): renamed from
	 win32_console_extrafields_struct
	(CHECK_INTERRUPT, SYSCALL) [UNIX_BEOS WIN32_NATIVE]: new macros
	(low_read_unbuffered_socket, low_listen_unbuffered_socket)
	(low_read_array_unbuffered_socket, low_write_unbuffered_socket)
	(low_write_array_unbuffered_socket, low_fill_buffered_socket)
	(low_flush_buffered_socket) :use them

2001-11-02  Stefan Kain  <stefan.kain@freenet.de>

	* stream.d: translated the comments

2001-10-28  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	* stream.d (SCREEN) [WIN32_NATIVE]: w95/98 bug fixes
	(win32_console_extrafields_struct): add field handle_reused.
	(v_puts): fixed a coord bug becoming apparent on w95.
	(low_close_console): new function, closing console handle if it is
	not reused.
	(MAKE-WINDOW): on NT create new console handle, on w95/98 try to
	get standard handle (w95 returns stdout anyway). Set new field in
	stream data accordingly.  Removing obsolete ASSERT. Change stream
	closing procedure to new low_close_console.

2001-10-25  Sam Steingold  <sds@gnu.org>

	* pathname.d (MAKE-PATHNAME): STACK_* = listof()
	might not be what you think! -- avoid

2001-10-25  Sam Steingold  <sds@gnu.org>

	* socket.d (ipv6_ntop): make sure buffer is returned

2001-10-25  Sam Steingold  <sds@gnu.org>

	* stream.d (rd_ch_keyboard) [WIN32_NATIVE !UNICODE]: fixed the
	call to OemToCharBuff()
	Suggested by Arseny Slobodjuck <ampy@ich.dvo.ru>

2001-10-24  Sam Steingold  <sds@gnu.org>

	* charstrg.d (char_name, name_char): fixed for --without-unicode

2001-10-24  Sam Steingold  <sds@gnu.org>

	fixed --without-unicode on msvc
	* lispbibl.d (pseudodata_tab) [MS !UNICODE]: add a dummy member
	* spvw.d (pseudocode_anz) [MS !UNICODE]: define to 0
	* stream.d (pseudodata_tab) [MS !UNICODE]: init the dummy member

2001-10-24  Bruno Haible  <haible@clisp.cons.org>

	* clhs.lisp (*browsers*): Add an entry for :konqueror.

2001-10-23  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 474216 ]
	* misc.d (LISP-IMPLEMENTATION-VERSION): do not try to convert
	O(lisp_implementation_version_built_string) when month is not found

2001-10-23  Sam Steingold  <sds@gnu.org>

	* clisp-link.sh (LIBS): quote commas
	Suggested by Johannes Groedem <johs@bzzzt.fix.no>

2001-10-23  Sam Steingold  <sds@gnu.org>

	* io.d (pprin_object, pprin_object_dispatch): declare local

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

	* init.lisp (socket-stream-handle) [:WIN32]: do not export

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

	MAKE-INSTANCE returns the instance,
	not the return value of INITIALIZE-INSTANCE
	* clos.lisp (initial-make-instance): save & return instance
	* record.d (CLOS::%MAKE-INSTANCE): ditto

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

	pass *ARGS* to :INIT-FUNCTION when argv_execute_file is ""
	* spvw.d (init_symbol_values): define_variable EXT:*ARGS*
	(main): when argv_execute_file is "", do not call LOAD,
	just set EXT:*ARGS*

2001-10-05  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	Work with terminal/console encoding more directly in win32.
	Initialize terminal-encoding to OEM encoding.
	* stream.d (wr_ch_array_window, wr_ch_window, rd_ch_keyboard)
	[WIN32_NATIVE UNICODE]: do not convert to OEM (encodings do)
	* encoding.d (init_dependent_encodings) [WIN32_NATIVE]:
	init terminal encoding to OEM code page
	* win32aux.d (OEM2ANSI_table, ANSI2OEM_table) [UNICODE]: drop
	(init_win32): ditto
	(lowlevel_full_read, full_write) [UNICODE]: don't translate

2001-10-05  Arseny Slobodjuck  <ampy@ich.dvo.ru>
	    Sam Steingold  <sds@gnu.org>

	move win32 console attributes to non-GC-ed area to ensure
	absence of conflicts.
	* stream.d (strm_console_attrib, strm_console_size)
	(strm_console_cursor_pos, UnwrapCoord, WrapCoord, ConsolePosR)
	(ConsoleSizeR, ConsoleAttribR, ConsolePosS, ConsoleSizeS)
	(ConsoleAttribS, ConsoleHandleS) [WIN32_NATIVE]: removed macros
	(unwrap_coord): removed function
	(v_put): no need to move cursor
	(ConsoleData) [WIN32_NATIVE]: new console attrib accessor
	(win32_console_extrafields_struct): new structure, contains
	strm_channel_extrafields_struct and console state.
	(make_window, window_size, window_cursor_position)
	(set_window_cursor_position, clear_window, clear_window_to_eot)
	(clear_window_to_eol, delete_window_line, insert_window_line)
	(highlight_on, highlight_off, wr_ch_array_window): updated to
	get attributes from new structure.
	(wr_ch_array_window, make_window): fixed UNICODE mode

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

	* io.d (read_internal): clear EOF from the stream

2001-10-10  Sam Steingold  <sds@gnu.org>

	optimize #'* and #'/
	* compiler.lisp (c-form-table): map * to c-STAR and / to c-SLASH
	(c-constant-number, c-collect-numeric-constants): added
	(c-PLUS, c-MINUS): use them
	(c-STAR, c-SLASH): new functions

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

	fixed bug #[ 462982 ]: support ipv6 on i386 (cygwin32, mingw32, msvc)
	* win32.d (HAVE_IPV6): define
	(ws2tcpip.h, winsock2.h): include
	* socket.d (in6_addr): define to in_addr6
	(ipv6_ntop): the s6_addr array is directly in struct in6_addr

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

	* savemem.lisp (saveinitmem): default image type is .mem

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

	* io.d (pr_enter_1): set indent if not skipping a newline after a TAB

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

	make COERCE error message more consistent
	* sequence.d (coerce_sequence): added a third argument error_p to
	indicate whether to return nullobj when result_type is
	not a sequence or to signal an error
	* lispbibl.d (coerce_sequence): updated the prototype
	* rexx.d (REXX-PUT): updated for the new coerce_sequence() signature
	* eval.d (SUBR-INFO, match_subr_key): ditto
	* foreign.d (convert_from_foreign): ditto
	* predtype.d (coerce_sequence_check): new function
	(COERCE): use it

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

	special file for deprecated functions
	* deprecated.lisp: added (define type-expand-1)
	* init.lisp: load deprecated.lisp
	* makemake.in (LPARTS): added deprecated

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

	expand compiler macros in C-FORM
	* compiler.lisp (expand-compiler-macro): new function
	(c-form, macroexpand-form): use it

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

	* type.lisp (clos-class): new function
	(typep, canonicalize-type, type-expand): use it

2001-10-03  Sam Steingold  <sds@gnu.org>

	limit DEFTYPE depth
	* predtype.d (expand_deftype): do not iterate more
	than (or *DEFTYPE-DEPTH-LIMIT* MOST-POSITIVE-FIXNUM) times
	* constsym.d, spvw.d (*DEFTYPE-DEPTH-LIMIT*): added

2001-10-03  Sam Steingold  <sds@gnu.org>

	EXPAND-DEFTYPE & TYPE-EXPAND accept an optional argument
	* predtype.d (expand_deftype): take the second arg once_p
	(EXPAND-DEFTYPE): take the second optional arg once-p
	* subr.d (expand-deftype): ditto
	* lispbibl.d (expand_deftype): ditto
	* sequence.d (valid_type): changed the expand_deftype() call
	* type.lisp (type-expand): take the second optional arg once-p
	* describe.lisp (describe-object): use type-expand

2001-10-03  Sam Steingold  <sds@gnu.org>

	* io.d (pr_enter_1): do not print the initial newline with
	definite single-liners

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

	* format.lisp (formatter-main-1): fixed quoting (colon-p and
	atsign-p must be under comma)

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

	* pathname.d (make-pathname): support string and
	:wild/:wild-inferiors :directory arg
	support :UP and :BACK in the directory list
	coerce name &c to normal simple string
	(legal_name): accept non-simple strings
	(subst_up_dotdot): new function
	* constsym.d (:UP, :BACK): added

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

	added EXPAND-DEFTYPE primitive, removed TYPE-EXPAND-1
	* lispbibl.d (expand_deftype): added a prototype
	* predtype.d (expand_deftype, EXPAND-DEFTYPE): implemented
	(COERCE): use expand-deftype()
	* constsym.d, subr.d (EXPAND-DEFTYPE): added
	* sequence.d (find_seq_type): new local function
	(valid_type): split into valid_type() and valid_type1(),
	use expand_deftype() and find_seq_type()
	(get_seq_type): use find_seq_type()
	* type.lisp (typep, canonicalize-type, subtype-integer)
	(type-expand-1): use EXPAND-DEFTYPE
	(type-expand-1): folded into type-expand
	* describe.lisp (describe-object): do not use type-expand-1

2001-09-24  Sam Steingold  <sds@gnu.org>

	added functionp macro predicate
	* lispbibl.d (functionp): define
	* record.d (MAKE-FUNCTION-MACRO, MAKE-MACRO): use it
	* predtype.d (COERCE): ditto

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

	optional filling of PPHELP streams
	* stream.d (wr_ch_pphelp): when filling, handle spaces specially
	(wr_ch_array_pphelp): split on NL and (when filling) on spaces
	(wr_ch_array_pphel_): renamed from wr_ch_array_pphelp
	* constsym.d (*PRINT-PRETTY-FILL*): added
	* spvw.d (init_symbol_values): defvar *PRINT-PRETTY-FILL*

2001-09-24  Stefan Kain  <stefan.kain@freenet.de>

	* lispbibl.d: translated the rest of the comments

2001-08-12  Bruno Haible  <haible@clisp.cons.org>

	* io.d (a_letterdigit, a_expodigit): New macros.
	(test_potential_number_syntax): Swap step2 and step3. Translate into
	a_letterdigit and a_expodigit. Update step4 and step6 accordingly.
	(test_number_syntax): Drop most of step4. Update step5 accordingly.

2001-08-25  Bruno Haible  <haible@clisp.cons.org>

	Make it compile in C++ mode.
	* foreign.d (free_foreign_callin): Cast free_callback argument.
	(struct_alignment): Provide alternative definition in C++.

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

	* error.d (end_error): use exit() instead of NOTREACHED to avoid
	an infinite loop reporting fatal errors

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

	new built-ins: SYS::WHITESPACEP & SYS::WRITE-SPACES
	* constsym.d, subr.d (whitespacep, write_spaces): added
	* io.d (write_spaces, whitespacep): implemented
	* lispbibl.d (cint_white_p): new macro
	* stream.d (strip_white): use it
	* compiler.lisp (stream-tab): use write-spaces
	* describe.lisp (describe-stream): ditto
	* format.lisp (whitespacep): commented out

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

	binary i/o on True64
	* stream.d (bitbuff_is_I): subtract, not add wbitm(intLsize) to
	wert before calling negfixnum
	Suggested by Kalman Reti <reti@ai.mit.edu>

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

	some bugfixes to the Pretty-Printer
	* io.d (FORMAT-TABULATE): check the optional arguments
	* format.lisp (formatter-main-1): added FORMAT-PPRINT-NEWLINE and
	FORMAT-PPRINT-INDENT
	(format-pprint-indent): fixed COUNT default value

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

	fixed WITH-COMPILATION-UNIT
	* compiler.lisp (compile-warnings-p, compile-failure-p): new
	helper functions
	(compile, compile-file): use them
	(c-report-problems): call c-reset-globals
	(with-compilation-unit): bind *error-count* *warning-count* and
	*style-warning-count* when *c-top-call*
	(compile-file): use with-compilation-unit
	(compile): flet closure-slot

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

	handle *PRINT-LEVEL* for CLOS instances correctly
	* io.d (pr_instance, pr_structure_external): do level check
	(pr_structure): do not do level check

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

	PPRINT-LOGICAL-BLOCK supports *PRINT-CIRCLE* and *PRINT-LENGTH*
	* pprint.lisp (pprint-pop): handle *PRINT-LENGTH* & *PRINT-CIRCLE*
	* constsym.d, subr.d (pcirclep): added
	* io.d (double_dots): do not set *PRIN-LINES* to :END
	(string_fit_line_p): take a third arg offset
	(pr_enter_1): do not print TAB before NL
	(pprin_object, pprin_object_dispatch): new pr_routine_t
	(pprint_lisp): removed
	(%PPRINT-LOGICAL-BLOCK): use pprin_object instead of pprint_lisp
	(%CIRCLEP): new LISPFUNN

2001-09-19  Sam Steingold  <sds@gnu.org>

	* io.d (format_tab): ASSERT that the return value is >=0

2001-09-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (DEBUGGING): handle on win32msvc

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

	finished the Pretty-Printer
	* constsym.d, subr.d (FORMAT-TABULATE): added
	* format.lisp (format-tabulate): commented out
	* lispbibl.d (cons_ssstring): take args
	(PUSH_CONS, PPHELP_PUSH, PPHELP_NEW_STRING): removed
	* stream.d (make_pphelp_stream): call cons_ssstring() with args
	(wr_ch_pphelp): use cons_ssstring() instead of PPHELP_NEW_STRING()
	* io.d (strm_pphelp_strings): contains NL/indent/tab too
	(cons_ssstring): take 2 agrs - stream pointer and NL type
	(format_tab): new function
	(pprint_prefix): take an additional `prefix' arg
	(pphelp_newline): use cons_ssstring() instead of PPHELP_NEW_STRING()
	(klammer_zu): drop the newline / indentation / tab
	(multi_line_sub_block_out): new function
	(justify_end_eng, justify_end_weit): use it
	(space_available, pphelp_length, string_fit_line_p): new functions
	(pr_enter_1): accommodate the new strm_pphelp_strings format
	(PPRINT-NEWLINE): implemented non-mandatory newlines
	(FORMAT-TABULATE): moved here from format.lisp

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

	* io.d (syntax_readtable_get, syntax_readtable_put): new macros
	(SET-SYNTAX-FROM-CHAR, GET-MACRO-CHARACTER, read_char_syntax)
	(wpeek_char_syntax, wpeek_char_eof): use them

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

	bind *PRINT-READABLY* to NIL before reporting errors
	* error.d (write_errorobject): bind *PRINT-READABLY* to NIL
	(signal_and_debug): new function; extracted from end_error(),
	ERROR, ERROR-OF-TYPE; additionally bind *PRINT-READABLY* to NIL
	(end_error, ERROR, ERROR-OF-TYPE): use it
	* debug.d (break_driver): bind *PRINT-READABLY* to NIL

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

	* modules/regexp/regexp.lisp (with-loop-split): :case-sensitive is
	a &key, not &optional, added :start and :end
	(regexp-exec): accept negative :end

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

	more work on the Pretty-Printer
	* constsym.d (*PRIN-INDENTATION*): new var
	* format.lisp (format-tabulate): use it instead of CURRENT-INDENT
	(current-indent): removed
	* io.d (cons_ssstring, pprint_prefix): new functions
	(right_margin): use pprint_prefix()
	(pphelp_newline): use PPHELP_NEW_STRING()
	(justify_empty_1): use cons_ssstring()
	(pr_enter_1): use pprint_prefix()
	(PPRINT-INDENT): add spaces when necessary
	(pprint_lisp): do level check
	* lispbibl.d (cons_ssstring, PUSH_CONS, PPHELP_PUSH)
	(PPHELP_NEW_STRING): added (for io.d and stream.d)
	* pprint.lisp (pprint-logical-block): moved binding out of lambda;
	bind *PRIN-INDENTATION* instead of *PRIN-L1* and *PRIN-LM*
	* spvw.d (init_symbol_values): defvar *PRIN-LINE-PREFIX* (forgot
	on 2001-08-17) and *PRIN-INDENTATION*
	* stream.d (wr_ch_pphelp): when given NL, start a new string
	using PPHELP_NEW_STRING
	(make_pphelp_stream): use cons_ssstring()

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

	* modules/regexp/regexp.lisp: replaced CASE-INSENSITIVE with
	CASE-SENSITIVE throughout (preserving the defaults)

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

	* makemake.in (docdir): use `share' for all $fsstnd

2001-09-10  Sam Steingold  <sds@gnu.org>

	* debug.d (read_form): check the input_len before string_eqcomp_ci()

2001-09-10  Sam Steingold  <sds@gnu.org>

	* pprint.lisp (pprint-logical-block): unroll stream-symbol (NIL ->
	*STANDARD-OUTPUT*, T -> *TERMINAL-IO*)

2001-09-10  Sam Steingold  <sds@gnu.org>

	* io.d (pr_enter_1): a GC-safety issue

2001-09-10  Sam Steingold  <sds@gnu.org>

	* macros2.lisp (Exhaustive-Case-Analysis): added CASE-LIST flet
	(gensym-list): new function
	(time, space): use it
	* compiler.lisp (c-MAP-on-CARs, c-MAP-on-LISTs, c-MAPC, c-MAPL): ditto
	* condition.lisp (handler-bind): ditto
	* format.lisp (formatter-main-1): ditto
	* places.lisp (get-setf-expansion, push, pushnew): ditto
	* clos.lisp (analyze-method-description, prototype-table)
	(compute-dispatch, compute-effective-method, generic-flet)
	(generic-labels): ditto
	(n-gensyms): removed

2001-09-10  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 458746 ]
	* format.lisp (format-float-to-string): make sure width is at
	least 2 (when given): for a digit and for the decimal point

2001-09-09  Stefan Kain  <stefan.kain@freenet.de>

	* format.lisp: translated all comments

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

	* lispbibl.d (offsetof) [MSVC]: defined in <stddef.h>

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

	* pathname.d (host_namestring_parts): handle logical pathnames on win32

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

	* lispbibl.d, error.d, genclisph.d (conditiontype):
	renamed to `condition_t'

2001-09-07  Oliver Nee  <o.nee@t-online.de>
	    Sam Steingold  <sds@gnu.org>

	* lispbibl.d: translated half of the comments

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

	* macros1.lisp (case-expand): new function
	(case): use it
	(fcase): new macro

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

	* reploop.lisp (debug-backtrace): print the number of frames
	* debug.d (SHOW-STACK): return the number of frames examined

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

	* install.lisp (add-fas-file, add-mem-file): set the default action

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

	* lispbibl.d (nonreturning_function) [MICROSOFT]: __declspec(noreturn)

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

	* pathname.d (MERGE-PATHNAMES): when physical directories do not
	match, check for unbound directory in pathname

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

	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: signal an error
	when the path is invalid

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

	more ANSI compliance pathnames wrt HOSTS & VERSIONS
	* constobj.d (semicolon_string, zero_string): added for the
	benefit of VERSION pathname component
	* pathname.d (PARSE-NAMESTRING): fixed HOST handling
	(pathname_version_maybe, pathname_host_maybe)
	(pathname_device_maybe): new convenience macros
	(subdir_namestring_parts): take an additional logp arg
	(host_namestring_parts, directory_namestring_parts):
	handle logical pathnames
	(nametype_namestring_parts): separate version with ".", not ";"
	(directory_namestring): do not add host
	(FILE-NAMESTRING, DIRECTORY-NAMESTRING, HOST-NAMESTRING)
	(ENOUGH-NAMESTRING, NAMESTRING): handle logical pathnames
	(defaults_pathname): permit logical *DEFAULT-PATHNAME-DEFAULTS*
	(merge_dirs): new function
	(MERGE-PATHNAMES): use it; handle versions better
	(MAKE-PATHNAME): handle defaults early; pass UNBOUND instead of
	NIL to MERGE-PATHNAMES as default version

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

	* makemake.in (testsuite): add on all platforms

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

	win32gcc names libraries libFOO.a and not FOO.LIB
	* makemake.in (LIB_TYPE): new variable, used instead of $HOS
	in creating library dependencies

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

	fixed bug #[ 455559 ]
	* defstruct.lisp (ds-arg-default): when ARG is a list and default
	is NIL, return (ARG NIL) and not (ARG)
	(ds-arg-with-default): pass VAR instead of ARG to DS-ARG-DEFAULT

2001-08-25  Bruno Haible  <haible@clisp.cons.org>

	Upgrade to autoconf-2.52.
	* autoconf/autoconf: Upgrade to autoconf-2.52.
	* autoconf/acgeneral.m4: Remove file.
	* autoconf/acspecific.m4: Remove file.
	* autoconf/autoconf.m4f: New file, from autoconf-2.52.
	* autoconf/aclocal.m4: Require autoconf-2.52.
	(CL_AS_UNDERSCORE): Avoid stupid autoconf-2.52 error "possibly
	undefined macro: AS_UNDERSCORE".
	(CL_CONFIG_SUBDIRS): Rewritten.
	(CL_CANONICAL_HOST): Call AC_CANONICAL_HOST. Don't cache the result,
	AC_CANONICAL_HOST does it itself. Add $SHELL in front of
	$ac_config_guess and $ac_config_sub.
	(CL_VOID): Define return_void to empty.
	(CL_DIR_HEADER): Inline the autoconf-2.13 AC_CHECK_HEADERS_DIRENT code.
	(CL_SIGACTION_REINSTALL): Include <string.h>, for memset declaration.
	(CL_STAT): Define STAT_INLINE outside of CL_PROTO.
	(CL_LSTAT): Likewise.
	(CL_SHM): Cast the shmat return value, to avoid error in C++ mode.
	* Makefile.devel (AUTOCONF_FILES): Remove acgeneral.m4, acspecific.m4.
	Add autoconf.m4f.
	(src/gettext/configure, src/gettext/config.h.in): Likewise.
	(src/configure): Use autoconf options -A, -l instead of -m.
	(modules/wildcard/configure): Likewise.
	(modules/regexp/configure): Likewise.
	(modules/clx/new-clx/configure): Likewise.
	(utils/hln/configure): Likewise.
	* unixconf.h.in (return_void, *_CONST, CONNECT_ADDRLEN_T): Use
	#undef instead of #define, to work around an autoconf bug.
	(DIRENT, SYSNDIR, SYSDIR, NDIR): Remove comments after #undef, to
	work around an autoconf-2.52 bug.
	* configure: Pass --cache-file=config.cache to the main configure, to
	force a cache file. Needed for grepping cl_cv_prog_cc_cplusplus and
	also for speed. Don't pass --cache-file=../config.cache to gettext's
	configure because it uses different CPPFLAGS and LDFLAGS (needed so
	that gettext gets HAVE_ICONV right).

2001-08-25  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (gettext_datadirname_sedcommand): Remove.
	(datadir): Always set to $(prefix)/share.
	(localesed): Update.
	(clean5): Also remove the varbrace executable.

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

	* init.lisp (load): when checking whether FILENAME names a
	compiled file, do not call MAKE-PATHNAME since if
	*DEFAULT-PATHNAME-DEFAULTS* has a non-trivial host, the search
	will always fail

2001-08-27  Stefan Kain  <stefan.kain@freenet.de>

	* init.lisp: translated all comments

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (Z_SHIFT, Z_AT_SLASH, Z_SUB): Parenthesize argument
	expressions.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* spvw.d (main): Use GETTEXT, not GETTEXTL, in combination with
	O(internal_encoding).

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (nonreturning_function): Define in a way that works also
	for function definitions.
	* genclisph.d (main): Update accordingly.
	* affi.d: Merge nonreturning_function declarations with definition.
	* amigaaux.d: Likewise.
	* aridecl.d: Likewise.
	* array.d: Likewise.
	* charstrg.d: Likewise.
	* control.d: Likewise.
	* debug.d: Likewise.
	* encoding.d: Likewise.
	* erramiga.d: Likewise.
	* error.d: Likewise.
	* errunix.d: Likewise.
	* errwin32.d: Likewise.
	* eval.d: Likewise.
	* flo_konv.d: Likewise.
	* foreign.d: Likewise.
	* hashtabl.d: Likewise.
	* intbyte.d: Likewise.
	* intdiv.d: Likewise.
	* intelem.d: Likewise.
	* intmal.d: Likewise.
	* io.d: Likewise.
	* lfloat.d: Likewise.
	* lisparit.d: Likewise.
	* list.d: Likewise.
	* pathname.d: Likewise.
	* record.d: Likewise.
	* rexx.d: Likewise.
	* sequence.d: Likewise.
	* spvw.d: Likewise.
	* spvw_allocate.d: Likewise.
	* stream.d: Likewise.
	* symbol.d: Likewise.

2001-08-22  Sam Steingold  <sds@gnu.org>

	* pprint.lisp (pprint-logical-block): set indentation with
	PPRINT-INDENT after printing :PREFIX

2001-08-22  Sam Steingold  <sds@gnu.org>

	* io.d (PPRINT-NEWLINE): output only to PPHELP streams
	and when *PRINT-PRETTY* is non-NIL
	(%PPRINT-LOGICAL-BLOCK): bind *PRIN-PPRINTER*, not set it

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* io.d (check_readtable): Renamed from CHECK_READTABLE. Add
	documentation.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (version_diff): Fix syntax error.

2001-08-21  Sam Steingold  <sds@gnu.org>

	* lispbibl.d, stream.d (check_direction): const argument

2001-08-21  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_dummy_fill): fill the stream with error pseudofuns
	(close_dummys): a macro now, uses stream_dummy_fill()
	(make_broadcast_stream, make_concatenated_stream)
	(MAKE-STRING-INPUT-STREAM, make_string_output_stream)
	(MAKE-STRING-PUSH-STREAM, make_pphelp_stream)
	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM)
	(fill_pseudofuns_unbuffered, fill_pseudofuns_buffered)
	(make_keyboard_stream, make_terminal_stream_)
	(MAKE-WINDOW, make_printer_stream): use stream_dummy_fill()
	(ELTYPE_DISPATCH): new macro
	(canon_eltype, fill_pseudofuns_buffered): use it

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (direction_t): Explicit value assignments.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* io.d (get_readtable): Local variable zuweisung -> assignment.
	(read_char_syntax): Likewise.
	(wpeek_char_syntax): Likewise.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* eval.d (eval_fsubr): Change error message: talk about special
	operator, not special form.

2001-08-21  Sam Steingold  <sds@gnu.org>

	* makemake.in (XCFLAGS): with win32gcc, do not need
	-D_NO_OLDNAMES: there is no sleep() in stdlib.h and
	_NO_OLDNAMES_ kills struct timeb in timeb.h

2001-08-21  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 446942 ]
	* makemake.in (DISTFILE): insulate from AIX uname which does not
	have the -p option

2001-08-21  Sam Steingold  <sds@gnu.org>

	some symbols appeared in wrong packages - fix this
	* international.lisp (textdomain, textdomaindir): use package
	prefix before SET-TEXTDOMAIN and SET-TEXTDOMAINDIR
	* clos.lisp (signature): import from COMPILER

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

	* loadform.lisp (mlf-unquote, mlf-init-function): new functions
	(make-init-form): warn about errors in MLF-INIT-FUNCTION

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

	* places.lisp (setf-symbol): intern the result when the argument
	is interned

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* constsym.d: Reorder according to the definition order in the files.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* win32.d: Test __MINGW32__, not __mingw32__.

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

	* loadform.lisp (make-load-form-saving-slots): compute the slot
	list differently for STANDARD-OBJECTs and STRUCTURE-OBJECTs;
	quote slot values

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

	implemented the ANSI CL pretty-printer
	* constobj.d (version): bumped
	(type_pprint_newline, type_pprint_indent): added
	* constsym.d (PPRINT-DISPATCH, PPRINT-INDENT, PPRINT-NEWLINE)
	(%PPRINT-LOGICAL-BLOCK, :MISER-WIDTH, :PPRINT-DISPATCH, :LINEAR)
	(:FILL, :MISER, :MANDATORY, :BLOCK, :CURRENT, *PRIN-LINE-PREFIX*)
	(*PRIN-MISERP*, *PRIN-PPRINTER*): new symbols
	* defs2.lisp (with-standard-io-syntax): bind *PRINT-MISER-WIDTH*
	and *PRINT-PPRINT-DISPATCH*
	* format.lisp (format-parse-cs): added ~_ and ~I instructions
	(format-pprint-newline, format-pprint-indent, current-indent):
	new functions
	(format-tabulate): do not ignore colon-modifier
	* init.lisp: export PPRINT symbols; load pprint.lisp
	* inspect.lisp (with-gensyms): moved to pprint.lisp
	* io.d (pretty_print_call): look into *PRINT-PPRINT-DISPATCH*
	(pr_enter_1): call it, instead of calling pr_xxx directly
	respect *PRIN-LINE-PREFIX*
	(pr_external_1): bind *PRINT-MISER-WIDTH* and
	*PRINT-PPRINT-DISPATCH*
	(PPRINT-INDENT, PPRINT-NEWLINE): implemented
	(pprint_lisp): new pr_routine_t helper
	(%PPRINT-LOGICAL-BLOCK): new function
	(WRITE, WRITE-TO-STRING): accept :MISER-WIDTH and :PPRINT-DISPATCH
	* lisparit.d (fehler_not_R): made global
	* lispbibl.d (init): added the prototype
	* makemake.in (LPARTS): added pprint.lisp
	* pprint.lisp: new file
	* spvw.d (init_symbol_values): define *PRINT-MISER-WIDTH*,
	*PRIN-MISERP*, *PRIN-PPRINTER*, *PRINT-PPRINT-DISPATCH*
	* subr.d, subrkw.d (write, write_to_string): added kw(miser_width)
	and kw(pprint_dispatch)
	* subr.d (pprint_indent, pprint_newline, ppprint_logical_block): added

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

	* charstrg.d (char_name): fix the binary search to always terminate

2001-08-13  Stefan Kain  <stefan.kain@freenet.de>

	* eval.d: translated all comments

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* constsym.d (S(re_export)): Renamed from S(reexport).

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* charstrg.d (unpack_string): Rename local variable index to offset,
	to be consistent with the documentation.
	(unpack_string_ro): Add documentation.
	(SYSTEM::STORE-CHAR): Rename local variable index to offset.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* control.d (CONSTANTP): Optimize a popSTACK().

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: Update documentation of --with-[no]gettext.

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

	* loop.lisp (expand-loop): WITH vars should always be bound on top

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (Makefile): Back up Makefile before erasing it.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* spvw.d (loadmem): Take a 'const char*'.
	* spvw_memfile.d (loadmem): Take a 'const char*'. Create CYGDRIVE
	replacement using alloca. Fix oversized memmove argument.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (PARSE-NAMESTRING): Verify consp before accessing Cdr.

2001-07-31  Arseny Slobodjuck  <ampy@crosswinds.net>
	    Sam Steingold  <sds@gnu.org>

	* stream.d [WIN32_NATIVE]
	(rd_ch_keyboard): cast uAsciiChar in (*.uAsciiChar <= ' ') to
	uintB since uAsciiChar is signed in MSVC (!).
	(vktable): added 'WIN' key just to avoid 'unknown
	keyboard event' messages.
	Added keyboard OEM to local charset translation and then local
	to internal (for UNICODE). May be it will be nicer to automatically
	init *terminal-io* to OEM charset and decode input/output through
	internal encoding facility, but that should be done with care
	about other code.
	(check_window_stream): return its argument on success
	WIN32 console output:
	(console_handle, console_size, console_cursor_pos, console_needtoclose)
	(screenattr, attr) deleted global variables. 'encapsulated' them
	into window-stream. The latter changed to be channel-stream since
	iconv-based translations require channel-stream extra fields.
	(UnwrapCoord, WrapCoord, ConsolePosR, ConsoleSizeR, ConsoleAttribR)
	(ConsoleHandleR, ConsolePosS, ConsoleSizeS, ConsoleAttribS)
	(ConsoleHandleS): new macros to access new fields.
	(InitConsole) removed since two function calls left in it.
	(DoneConsole) removed since Channel stream finalization does all right.
	(unwrap_coord) new function. convert uintL to COORD.
	(move_ccp_by): new function, moves cursor position
	(v_emit_spaces): new helper function
	(v_move, v_put, v_cb, v_cs, v_ce, v_cl, v_cd, v_scroll, v_al, v_dl)
	(v_su, v_put): changed argument lists in view of absence of global
	variables.
	(v_put): processing Y overflow, subsequent output continues on
	the top of screen. It differs from DOS behavior where subsequent
	chars being written to bottom right of the screen (as far as I can
	see from code).
	(v_puts): new function, buffered console output.
	(wr_ch_array_window): new function instead of dummy which slowly
	works through v_put(). Handles newlines and bottom of screen like
	v_put does. Handles UNICODE internal format in two stages, like
	rd_ch_keyboard.
	(wr_ch_window): changed to handle UNICODE internal format
	(make_window): allocates a stream (channel stream) and sets
	strm_encoding as terminal_encoding.
	(close_window, window_size, window_cursor_position)
	(set_window_cursor_position, clear_window, clear_window_to_eot)
	(clear_window_to_eol, delete_window_line, insert_window_line)
	(highlight_on, highlight_off, window_cursor_on)
	(window_cursor_off): changed to take parameters from stream
	fields.

2001-08-16  Sam Steingold  <sds@gnu.org>
	    Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (PARSE-NAMESTRING): check CONSP before CAR & CDR

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

	* install.lisp (bat-file): use registry to get the "Common
	Desktop" location

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/acgeneral.m4 (AC_MSG_RESULTPROTO): Remove macro.
	(AC_LANG_EXTERN): Move to aclocal.m4.
	* autoconf/aclocal.m4 (AC_LANG_EXTERN): Moved here from acgeneral.m4.
	(CL_PROTO): Use AC_MSG_RESULT directly, instead of AC_MSG_RESULTPROTO.
	(CL_SILENT): No need to pushdef AC_MSG_RESULTPROTO.

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

	* disassem.lisp (disassemble): if a form is not a lambda form,
	prepend lambda before coercing to function

2001-08-15  Sam Steingold  <sds@gnu.org>

	* utils/gcc-cccp/Makefile.* (clean): new target
	* utils/gcc-cccp/Makefile (clean): new target
	adapted for CYGWIN/MINGW compilation
	* utils/gcc-cccp/cccp.c: made compilable under CYGWIN/MINGW:
	(stdlib.h, string.h, errno.h): include
	(max): define only if not yet defined
	(sys_nerr, sys_errlist): do not use on CYGWIN/MINGW, use strerror()
	code clean-up: added prototypes, fixed warnings and...
	(fancy_abort): removed (unused)
	(pipe_closed): ifndef _WIN32
	(fancy_abort): turned into a macro
	(grow_outbuf): void
	(expand_to_temp_buffer): do not return a local var
	fixed a show-stopper bug:
	(rescan): `obufp_before_macroname' is on the top level now
	(RECACHE): update `obufp_before_macroname'

2001-08-15  Sam Steingold  <sds@gnu.org>

	MT-safety: remove a static variable
	* io.d (circle_p): return a boolean and take a circle_info_t* arg
	(pr_circle): info is not a pointer now; pass it to circle_p()
	(pr_cons): pass NULL to circle_p()

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* sequence.d (seq_check_index): Remove typdescr argument. Use index,
	not STACK_0. Fix fehler_index_range argument. Add documentation.
	(ELT): Update.
	(SYSTEM::%SETELT): Update.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (legal_namechar): Treat ' ' as valid and '"' as invalid.

2001-08-14  Sam Steingold  <sds@gnu.org>

	fixed bug #[ 448817 ]
	* io.d (pr_external_1): use new macro BIND_UNLESS
	(pr_sharp_dot): new local function
	(pr_instance): use it
	do not call pr_external_[12] around a call to prin_object()
	(pr_orecord): use pr_sharp_dot() when printing Rectype_Loadtimeeval

2001-08-14  Sam Steingold  <sds@gnu.org>

	* .gdbinit: set args and define zout

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* hashtabl.d (SXHASH): Perform 32-bit -> 24-bit mapping by dividing
	through 0xFFFFFF. This does not show bad patterns mod 255.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* package.d (export_symbol_from): Fix GC safety bug.

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

	use unix file utilities and forward slashes with win32gcc
	* makemake.in (H_DOS): DOS-style filenames and file utilities

2001-08-04  Bruno Haible  <haible@clisp.cons.org>

	* eval.d (check_for_illegal_keywords): Don't signal an error for
	((LAMBDA (&KEY X) X) :X 1 :ALLOW-OTHER-KEYS NIL :ALLOW-OTHER-KEYS NIL)

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	Make it possible again to build clisp with the CFLAGS option "-x c++".
	* autoconf/acspecific.m4 (AC_C_INLINE): Add explicit return type to
	declaration.
	* lispbibl.d (export): Define.
	(strmflags_rd_by_bit_B, strmflags_wr_by_bit_B, strmflags_rd_by_B)
	(strmflags_wr_by_B, strmflags_rd_B, strmflags_wr_B): New macros,
	moved from stream.d.
	(input_stream_p, output_stream_p): Remove declarations.
	* spvwtabs.d (export): Undefine.
	* stream.d (strmflags_rd_by_bit_B, strmflags_wr_by_bit_B)
	(strmflags_rd_by_B, strmflags_wr_by_B, strmflags_rd_B, strmflags_wr_B):
	Commented out. Now in lispbibl.d.
	(input_stream_p, output_stream_p): Make local.
	(rd_by_aux_icx_buffered): Bracify so that 'goto eof' doesn't jump into
	uninitialized variables.
	(MAKE-PIPE-INPUT-STREAM): Pass a real direction_t to
	make_unbuffered_stream and make_buffered_stream.
	(MAKE-PIPE-OUTPUT-STREAM): Likewise.
	(MAKE-PIPE-IO-STREAM): Likewise.
	(SYS::MAKE-SOCKET-STREAM): Likewise.
	(make_socket_stream): Likewise.
	(sec_usec): Fix declaration so that "ansidecl" recognizes it.
	(make_terminal_io): Pass a real direction_t to make_file_stream.
	(init_streamvars): Pass a real direction_t to make_unbuffered_stream.
	* io.d (pr_stream): Don't use input_stream_p, output_stream_p.
	* unix.d (getpid): Declare only once.
	* socket.d (errno): Remove superfluous declaration.
	* misc.d (clisp_setenv): Cast malloc return value.
	(SYS::SETENV): Rename local variable 'error' to 'ret'. Ensure it is
	always initialized.
	* pathname.d (open_file): Bracify so that 'goto ergebnis_NIL' doesn't
	jump into uninitialized variables.
	* spvw_garcol.d (move_aligned_p1_p2): Don't use the gcc extension if
	compiling in C++ mode.
	* stdbool.h.in (_Bool): Define differently in C++ mode.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (pathname_to_OSdir, OSdir_to_pathname): New declarations.
	* pathname.d (pathname_to_OSdir, OSdir_to_pathname): New functions.
	* spvw_ctype.d (init_ctype): Call setlocale for all standard categories
	except LC_NUMERIC.
	* spvw_language.d (init_language): Use locale names of the form
	"ll_CC", not "ll", needed for glibc-2.2. Call setlocale for LC_MESSAGES
	in all cases.
	* i18n.d: New file.
	* misc.d (SYS::CURRENT-LANGUAGE, SYS::LANGUAGE): Move to i18n.d.
	* international.lisp: New file.
	* macros2.lisp (*all-languages*, assert-language, ensure-language)
	(deflanguage, ENGLISH, definternational, deflocalized, localized)
	(*localized-recursion*, definternational-default): Move to
	international.lisp.
	* init.lisp: Load "international".
	* makemake.in (CPARTS): Add i18n.
	(LPARTS): Add international.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (subr_argtype_3_2): New enum value.
	* eval.d (eval_subr): Treat it.
	(apply_subr): Likewise.
	(funcall_subr): Likewise.
	* spvw.d (subr_argtype): Likewise.

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

	some minor code rearrangements
	* compiler.lisp (c-error-c): new macro
	(analyze-lambdalist): added local macros CHECK-ITEM and SKIP-L,
	removed local macro ERR-SUPERFLU

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

	Fixed bug #[ 445286 ]
	* compiler.lisp (c-SYMBOL-MACROLET): bind *VENV* before PARSE-BODY
	because PARSE-BODY macroexpands the first form in search of
	declarations, and that macroexpansion might rely on the
	definitions of the current SYMBOL-MACROLET

2001-08-02  Bruno Haible  <haible@clisp.cons.org>

	* nls_iso8859_16.c: Regenerated from newest unicode.org table.

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

	due to the change in the WRITE signature,
	all FAS files have to be re-compiled
	* constobj.d (version): bumped

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

	Win32: understand Cygwin's /cygdrive/[letter] pathnames
	* pathname.d (parse_namestring): translate :DIRECTORY (:ABSOLUTE
	*DEVICE-PREFIX* "c" ...) to :DEVICE "C" :DIRECTORY (:ABSOLUTE ...)
	* cfgwin32.lisp (*device-prefix*): set to "cygdrive"
	* constsym.lisp (*device-prefix*): added
	* spvw.d (init_symbol_values): defvar *DEVICE-PREFIX*
	* spvw_memfile.d (loadmem): check the path for "cygdrive" prefix
	and modify it if necessary in place

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

	* socket.d (create_client_socket, create_server_socket):
	 avoid warnings

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

	* defs2.lisp (with-standard-io-syntax): bind *PRINT-LINES*

2001-07-24  Sam Steingold  <sds@gnu.org>

	mingw32 compilation - kill more warnings
	* win32.d (ULONGLONG): define to OS_ULONGLONG
	 around #include <windows.h>
	(USE_SYS_TYPES_FD_SET): define around #include <winsock.h>

2001-07-24  Sam Steingold  <sds@gnu.org>

	Tweak the MAKE-LOAD-FORM patch
	* loadform.lisp: new file; moved `make-load-form',
	`make-load-form-saving-slots' and `make-init-form' here
	* init.lisp: load "loadform"
	* makemake.in (LPARTS): added "loadform"
	* clos.lisp (make-load-form, make-load-form-saving-slots): gone
	* compiler.lisp (*load-forms*): new variable
	(compile-file): bind it

2001-07-18  Arseny Slobodjuck  <ampy@crosswinds.net>
	    Sam Steingold  <sds@gnu.org>

	* pathname.d (legal_namechar): PATHNAME_WIN32:
	 permit characters 197 and 206 (legal in CP1251)

2001-07-24  Sam Steingold  <sds@gnu.org>

	* init.lisp (*terminal-encoding*): fixed the export statement spelling

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

	ANSI CL make-load-form implemented
	* clos.lisp (make-load-form, make-load-form-saving-slots): added
	(print-class): removed
	(print-object): print class readably using #.;
	 print standard-objects readably using make-load-form
	(*dynamically-modifiable-generic-function-names*):
	 added make-load-form
	* constsym.d (make_init_form): added
	* init.lisp (make-load-form, make-load-form-saving-slots): export
	(make-init-form): added
	* io.d (pr_instance): when SYS::*COMPILING*, use MAKE-INIT-FORM

2001-07-22  Sam Steingold  <sds@gnu.org>

	Implemented *PRINT-LINES*
	* io.d (pphelp_newline): incf SYS::*PRIN-LINES*
	(check_lines_limit, double_dots): new functions
	(CHECK_LINES_LIMIT): new macro
	(justify_end_eng, justify_end_weit, pr_cons, pr_vector)
	(pr_array_recursion, pr_structure_default, pr_record_ab)
	(pr_record_rest, pr_record_descr, pr_orecord)
	(pr_cclosure_codevector): use it
	(pr_enter): bind SYS::*PRIN-LINES*
	(print_vars_anz): increased to 14
	(write, write-to-string): added :LINES arg
	* constsym.d: added :LINES, *PRINT-LINES* and SYS::*PRIN-LINES*
	* init.lisp: export *PRINT-LINES*
	* inspect.lisp (inspect): bind *PRINT-LINES* to *INSPECT-PRINT-LINES*
	* spvw.d (init_symbol_values): define *PRINT-LINES*
	 and SYS::*PRIN-LINES*
	* subr.d, subrkw.d (write, write-to-string): added :LINES arg

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

	massive reindentations and code re-arrangements
	* io.d (RTCase): new macro
	(token_info_t): renamed from token_info
	(zahl_info_t): renamed from zahl_info
	(pr_routine_t): renamed from pr_routine
	(CHECK_PRINT_READABLY): new macro
	(PPHELP_STREAM_P): new macro
	(circle_info_t): renamed from circle_info
	(triple_dots): new function
	(CHECK_LENGTH_LIMIT): new macro
	(UNREADABLE_START, UNREADABLE_END): new macros
	(pr_array_info_t): renamed from pr_array_info
	(pr_array_elt_routine_t): renamed from pr_array_elt_routine
	(pr_array_elt_simple): renamed from pr_array_elt_t

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

	* package.d (export_symbol_from): made congruent to
	`one_sym_function' to avoid a compiler warning

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

	mingw32 compilation
	* dirkey.d: mingw32 does not have winldap.h
	* lispbibl.d: mingw32 defined offsetof()
	* win32.d: mingw32 does not need a separate uAsciiChar
	* makemake.in (LIBS): mingw32 does not have wldap32
	(XCFLAGS): added -D_WIN32 -D__MINGW32__

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

	* pathname.d (SUBST_RECURSE): new macro
	(subst_coerce_normal_ss, subst_common_case, subst_logical_case)
	(subst_customary_case): use it
	(make-pathname): logical arguments do not override :CASE :COMMON

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

	* list.d (ldiff): handle dotted lists correctly [bug #442739]

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

	* version.h: 2.27 is released

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

	* stream.d (previous_line_virtual): fixed an off-by-one error

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

	* defstruct.lisp (defstruct): warn when the slot accessor shadows
	the predicate (i.e., when the slot is named "P")

2001-07-13  Bruno Haible  <haible@clisp.cons.org>

	* io.d (char_reader): do not search for hyphens.

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

	* stream.d (bitbuff_is_I): fixed the bin i/o for (signed-byte n)
	with n>32 on LITTLE_ENDIAN architecture

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

	abstracted some code
	* stream.d (bitbuff_iu_I, bitbuff_is_I): new functions
	(read-integer): use them
	(rd_by_iu_I): use bitbuff_iu_I()
	(rd_by_is_I): use bitbuff_is_I()
	(bitbuff_ixu_sub, bitbuff_ixs_sub): new functions
	(write-integer): use them
	(wr_by_ixu_sub): use bitbuff_ixu_sub()
	(wr_by_ixs_sub): use bitbuff_ixs_sub()

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

	YAPT (yet another pathname tweak)
	* pathname.d (lslashp): removed, replaced with slashp
	(looks_logical_p): new local function
	(parse-namestring): with *PARSE-NAMESTRING-ANSI* non-nil, parse as
	logical when pathname contains ";" - this is what others do
	(merge-pathnames): merge to logical even when only one is logical
	(make-pathname): coerce defaults to logical when the path is
	logical already

2001-07-10  Sam Steingold  <sds@gnu.org>

	* encoding.d, hashtabl.d, stream.d: unified some error messages

2001-07-10  Sam Steingold  <sds@gnu.org>

	finished the 2001-06-21 patch
	* lispbibl.d (make_file_stream): declare direction arg as direction_t
	* stream.d (make_unbuffered_stream, make_buffered_stream)
	(make_file_stream): ditto
	* dirkey.d (open_reg_key): declare if_not_exists arg as
	if_does_not_exist_t

2001-07-10  Sam Steingold  <sds@gnu.org>

	* condition.lisp (appease-cerrors, muffle-cerrors): do not cons
	up a lambda for handler
	(exit-on-error, appease-cerrors, muffle-cerrors, batchmode-errors):
	turned comments into doc strings

2001-07-10  Sam Steingold  <sds@gnu.org>

	* eval.d (invoke_handlers): do not popSTACK twice!

2001-07-10  Sam Steingold  <sds@gnu.org>

	replaced chartcopy with memcpy
	compilation time of compiler.lisp went down 3.76%
	fixed bug #[ 438486 ]
	* charstrg.d (chartcopy): removed
	* lispbibl.d (chartcopy): defined to expand to memcpy()

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

	* stream.d (handle_isset): use listen_byte() for binary sockets

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

	fixed the 2001-05-01 patch
	* spvw.d (main): call set_ansi only
	when either -ansi or -traditional was given

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

	tweak the 2001-06-27 patch
	* debug.d (read_form): ignore only whitespace

2001-06-29  Sam Steingold  <sds@gnu.org>

	command-oriented-history-2
	* constsym.d (*TERMINAL-READ-STREAM*): added
	* spvw.d (*TERMINAL-READ-STREAM*): define
	* stream.d (terminal_stream_p): use it
	* debug.d (read_form): bind it
	* io.d (string_reader): unbind *TERMINAL-READ-OPEN-OBJECT*
	in case of an error too

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

	command-oriented-history-1
	* constsym.d (*TERMINAL-READ-OPEN-OBJECT*): added
	* spvw.d (*TERMINAL-READ-OPEN-OBJECT*): define
	* lispbibl.d (terminal_stream_p): declare
	* stream.d (terminal_stream_p): define
	(rd_ch_terminal3): when *TERMINAL-READ-OPEN-OBJECT* is bound,
	add the new lines to the old history item
	(next_line_virtual, previous_line_virtual): readline helper
	functions
	(init_streamvars): bind them to M-p and M-n
	* io.d (read_token_1, read_delimited_list, string_reader): bind
	*TERMINAL-READ-OPEN-OBJECT*

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

	Fixed the win32/emacs bug when commands were ignored because of ^M
	* debug.d (read_form): use string_eqcomp_ci() instead of
	string_equal() and skip the extra chars in the line

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

	* stream.d (strip_white): new local function
	(rd_ch_terminal3): use it to trim the line

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

	non-whole byte i/o finally works
	* stream.d (rd_by_aux_icx_buffered): fixed (rewrote)

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	Optimize away local functions that are not used.
	This fixed the CLOS consing introduced on 2000-06-11 when
	CALL-NEXT-METHOD was defined with SYSTEM::FUNCTION-MACRO-LET.
	* compiler.lisp (var): New slot 'fnode'.
	(fnode): New slots 'Tags', 'far-used-vars', 'far-assigned-vars',
	'far-used-blocks', 'far-used-tagbodys'.
	(note-far-used-var, note-far-assigned-var, note-far-used-block)
	(note-far-used-tagbody, propagate-far-used): New functions.
	(c-VAR): If variable is defined in different fnode, store var
	for later propagation, instead of setting (var-closurep var).
	(c-VARSET): Likewise.
	(bind-fixed-var-1, process-fixed-var-list, bind-movable-var): Let the
	variable point to *func*.
	(c-LAMBDABODY): Set fnode-venvconst, fnode-far-used-blocks,
	fnode-far-used-tagbodys for use by the caller.
	(c-RETURN-FROM): If block is defined in different fnode, store it
	for later propagation, instead of setting (block-used-far block).
	(c-TAGBODY): Initialize tagbody-used-far differently. Compute
	tagbody-used-far only at the end.
	(c-GO): If tag is defined in different fnode, store it for later
	propagation, instead of augmenting (tagbody-used-far tagbody).
	(c-FUNCTION): After c-lambdabody, call propagate-far-used.
	(c-%GENERIC-FUNCTION-LAMBDA): Likewise.
	(c-%OPTIMIZE-FUNCTION-LAMBDA): Likewise.
	(c-FLET): After compiling the body and before deciding about the
	closurevars, call propagate-far-used.
	(c-LABELS): Likewise.
	(c-FUNCTION-MACRO-LET): Likewise.
	(c-GENERIC-FLET): Let the variable point to *func*.
	(c-GENERIC-LABELS): Likewise.
	(traverse-anode): For GO instructions, extract tag index that was
	computed at the end of the first pass.
	(compile-lambdabody): Make sure there are no lost closure variables.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* condition.lisp (handler-case): After signaling a warning for
	duplicated :NO-ERROR clause, don't treat it like a regular clause.

2001-06-16  Bruno Haible  <haible@clisp.cons.org>

	Back out unneeded 2001-04-06 patch.
	* makemake.in (NLS_INCLUDES): Set to empty if not using unicode.
	* encoding.d: When not UNICODE, don't include "nls_ascii.c" and don't
	define nls_ascii_table and nls_tables.
	* pseudofun.d: When not UNICODE, don't relocate nls_ascii_table.

2001-06-16  Bruno Haible  <haible@clisp.cons.org>

	Tweak 2001-03-27 patch.
	* eval.d (coerce_function): Mark unreachable code with NOTREACHED.
	(apply): Likewise.
	(funcall): Likewise.

2001-06-16  Bruno Haible  <haible@clisp.cons.org>

	* list.d (up2_test): Don't go through funcall() if the test function
	is #'eq, #'eql or #'equal.
	(up_test): Likewise.
	(funcall_key): New macro.
	(subst, nsubst, sublis, nsublis, member, ADJOIN, assoc, rassoc): Use
	it.

2001-06-23  Bruno Haible  <haible@clisp.cons.org>

	* aclocal.m4 (CL_GETPAGESIZE): Add check for sys/param.h. For mingw32.

2001-06-22  Sam Steingold  <sds@gnu.org>

	New debug command "Reset"(:re)
	to restore the i/o - *PACKAGE* and *READTABLE*
	* reploop.lisp (debug-reset-io): new function
	(*saved-debug-package*, *saved-debug-readtable*): new variables
	(commands1): bind "Reset" and ":re" to `debug-reset-io'

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

	SOCKET-STATUS now accepts SOCKET-SERVERs too
	and the direction of the checks can be specified
	* lispbibl.d (direction_t, if_does_not_exist_t, if_exists_t):
	 new enum types
	(check_direction, check_if_does_not_exist, check_if_exists)
	(input_stream_p, output_stream_p): declare
	* pathname.d (check_direction, check_if_does_not_exist)
	(check_if_exists): new global functions
	(OPEN): use them
	(open_file): use symbolic values for direction,
	if_exists and if_does_not_exist
	* stream.d (input_stream_p, output_stream_p): global functions now
	(READ_P, RO_P, WRITE_P, DIRECTION_FLAGS): new macros on direction_t
	(make_unbuffered_stream, make_buffered_stream, make_file_stream):
	 use them
	(socket_handle): new local function
	(handle_set, handle_isset): turned into functions
	(SOCKET-STATUS): accept socket servers too,
	 allow request specialization (just :INPUT or just :OUTPUT)
	* io.d (pr_stream): print stream direction
	* constobj.d (printstring_(input|output|io)): new constants
	* dirkey.d (DIR_KEY_*, IDNE_*, parse_if_not_exists)
	(parse_direction): removed
	(open_reg_key): convert from direction_t to REGSAM

2001-06-19  Sam Steingold  <sds@gnu.org>

	* stream.d: use memset(3) and memcpy(3) instead of dotimes

2001-06-19  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (c-FORMAT): avoid calling FORMAT altogether when
	the destination is T and the format string is constant

2001-06-19  Sam Steingold  <sds@gnu.org>

	* makemake.in (test): strip gensyms before cmp(1)

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

	some symbols appeared in wrong packages - fix this
	* compiler.lisp (function-signature): FOREIGN-FUNCTION is in FFI
	* constobj.d: added package prefixes to non-CL symbols
	* constsym.d (MACRO): all type designators are in EXT
	* describe.d: FOREIGN-FUNCTION, FOREIGN-VARIABLE, FOREIGN-ADDRESS
	are in FFI, FOREIGN-POINTER is in EXT
	* foreign1.lisp: export FOREIGN-* from FFI
	* init.lisp: export MACRO from EXT

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

	* disassem.lisp (orig-fundef): new aux function
	(disassemble): moved here and made into a generic function
	handle SYMBOL-MACROs too
	* compiler.lisp (disassemble): removed
	* init.lisp: load "disassem" after CLOS
	* makemake.in (LPARTS): reorder

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

	* makemake.in (makemake, Makefile): new development targets
	(RUN): new Makefile variable
	(halfcompiled): restored; now compilation goes like this:
	*.lisp --> interpreted.mem
	*.lisp + compiler.fas --> halfcompiled.mem
	*.fas --> lispinit.mem
	(stage): create a separate memory image for compilation testing
	and reset *GENSYM-COUNTER* in it from halfcompiled.mem

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

	* threads.lisp (with-timeout, with-lock): do not use WITH-GENSYMS
	which is defined only in inspect.lisp

2001-06-14  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_char_p): new macro
	(socket-status): go through `listen_char()' for
	character streams only
	Reported by Lennart Staflin.

2001-06-12  Stefan Kain  <stefan.kain@freenet.de>

	* io.d: translated all comments

2001-06-11  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file-pathname-helper): tweak the
	2001-05-30 patch making sure FILE is treated as a pathname

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

	* constpack.d: create THREADS package when MULTITHREAD
	* spvw.d: put :MT into *FEATURES* when MULTITHREAD
	* threads.lisp: new file
	* init.lisp: load it when #+MT
	* makemake.in (LPARTS): add it
	* xthread.d (xthread_init) [win32]: noop
	(xmutex_init, xmutex_destroy, xmutex_lock, xmutex_unlock)
	[win32]: use GetLastError() to get the error status

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

	some MT compilation errors fixed
	* lispbibl.d (OS_error) [macro]: use asciz_out_1()
	(SP_bound) [MULTITHREAD]: no semicolon
	* spvw_circ.d: varbrace does not work with #if,
	so expand var manually

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

	* install.lisp: create CLISP.BAT on desktop

2001-06-08  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/libtool.m4: Upgrade to libtool-1.4.

2001-06-08  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/config.guess: Update to GNU version 2001-05-11.
	* autoconf/config.sub: Likewise.

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

	Fixed MIT-CLX build.
	* modules/clx/mit-clx/dependent.lisp (conditional-store):
	GET-SETF-METHOD is in EXT now
	Reported by Paolo Amoroso <amoroso@mclink.it>
	* modules/clx/mit-clx/manager.lisp (cut-buffer): use
	DEFINE-SETF-EXPANDER instead of DEFINE-SETF-METHOD
	* modules/clx/mit-clx/resource.lisp (initialize-resource-database):
	WM-RESOURCES is not exported from XLIB
	* modules/clx/mit-clx/package.lisp: added IN-PACKAGE statement

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

	Print (c-ptr (c-function)) with arguments and correct "()"
	* foreign1.lisp (element, deref, slot, cast, typeof, sizeof)
	(bitsizeof): new local (flet) function `foreign-place-p'
	(ctype-type): new function
	(parse-c-function, prepare-c-typedecl, to-c-typedecl)
	(note-c-call-in): use it
	(flag-set-p): new function
	(deparse-c-type, note-c-call-in, count-inarguments): use it
	(flag-to-language, language-to-flag): new functions
	(deparse-c-type, parse-c-function): use them, respectively
	(deparse-c-type): new labels: `new-type' and `deparse-slot'
	(split-c-fun-arglist): new function
	(note-c-call-in): use it
	(to-c-typedecl): print the function name in () for c-prt
	and also print the arglist

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

	* modules/clx/mit-clx/clx.lisp (boolean): built-in CLISP type
	since 1998-04-08, do not redefine
	* modules/clx/mit-clx/package.lisp (boolean): do not shadow
	Reported by Paolo Amoroso <amoroso@mclink.it>

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

	* makemake.in (LPARTS): add foreign1 only when foreign is in CPARTS

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

	* foreign1.lisp (to-c-typedecl): tweak the 2001-05-30 patch.
	struct t1234 { struct t1234 * NEXT; ... }

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

	made GETENV setfable
	* lispbibl.d: declare clisp_setenv()
	* subr.d, constsym.d: added SYS::SETENV (set_env)
	* spvw_language.d: removed mysetenv, use clisp_setenv()
	* misc.d (clisp_setenv, SETENV): new functions
	(GETENV): barf on non-string arg instead of returning NIL
	* places.lisp: defsetf getenv when setenv is present

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

	* makemake.in (LPARTS): added dirkey

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

	* screen.lisp: use DEFPACKAGE instead of USE-PACKAGE since this
	file is compiled even when it is not subsequently loaded.

2001-05-30  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (compile-file-pathname-helper): return a logical
	pathname when file is a logical pathname

2001-05-30  Sam Steingold  <sds@gnu.org>

	* pathname.d (merge-pathnames): fixed the 2001-05-24 patch to
	handle unbound defaults

2001-05-30  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (*package-tasks-treat-specially*): set to NIL
	(#+CROSS subr-info): `in-package' is now an always-evaluated macro
	(c-GLOBAL-FUNCTION-CALL): remove `in-package' from the list of
	specially treated tasks.

2001-05-30  Sam Steingold  <sds@gnu.org>

	* foreign1.lisp (with-defining-c-type): new macro
	(parse-components, c-struct-constructor): new functions
	(parse-c-type): use the above
	(to-c-typedecl): handle the recursive types (like linked lists)
	(def-c-enum): make `name' a synonym for `int'

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

	* modules/regexp/regexp.lisp (mregerror): FINALIZE is in EXT

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

	* install.lisp, install.bat: bind LISP, FAS and MEM files with CLISP
	* makemake.in: added install.* to the win32 binary distribution

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

	* dirkey.lisp (dir-key-info): `dkey-info' is in LDAP, not SYS
	(with-dir-key-search): ditto for `dkey-search-iterator',
	`dkey-search-next-key', and `dkey-search-next-att'

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

	* pathname.d (merge-pathnames): if PATHNAME is a logical
	namestring, while DEFAULT is a physical pathname, coerce DEFAULT
	to logical using whole_namestring().

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

	hostname resolution is now optional in
	SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL.
	* stream.d (host_data_fetcher): accept an additional boolean argument.
	(publish_host_data): pass `resolve_p' to func
	(SOCKET-STREAM-PEER, SOCKET-STREAM-LOCAL): 1 optional argument
	* subr.d: ditto
	* socket.d (socket_getlocalname, socket_getpeername): accept an
	additional `resolve_p' argument.

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

	* makemake.in (distrib): pack in the build directory.

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

	* version.h: 2.26 is released

2001-05-21  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (dfloat): ARM saves the doubles as two little-endian
	words, in big-endian order.
	Reported by Richard Kreckel.

2001-05-21  Bruno Haible  <haible@clisp.cons.org>

	* ariarm.d: Use #0x instead of #& to designate hexadecimal constants.

2001-05-15  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/clx.lisp: use DEFPACKAGE to define XLIB;
	 import SYS::CONCAT-STRINGS
	* modules/clx/new-clx/demos/clx-demos.lisp: load/compile
	 sokoban.lisp only when the package XPM is present

2001-05-14  Sam Steingold  <sds@gnu.org>

	* constobj.d (current_language): use the package prefix I18N

2001-05-14  Sam Steingold  <sds@gnu.org>

	* defs2.lisp (with-standard-io-syntax): finish the 2000-12-12
	patch - bind *PRINT-RPARS* and *PRINT-INDENT-LISTS* appropriately

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

	* pathname.d (pslashp, lslashp, Z_AT_SLASH, Z_SHIFT): new macros
	(parse_as_logical): new helper function
	(logical_pathname, merge_pathnames): use it
	(merge_pathnames): new macros SPECIFIED, NAMETYPE_MATCH, and
	 VERSION_MATCH; changed the previous patch: re-parse pathname
	 as logical when the default is logical
	(make_pathname): do not translate :name :wild to :name "*"
	(has_wildcards): replaced with wild_p() which handles :WILD
	(has_word_wildcards): ditto with word_wild_p()
	(has_*_wildcards): simplified accordingly

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

	* makemake.in (cpu): set to "arm" when "$host_cpu" is "arm*"
	Reported by Ola Rinta-Koski <ola@cyberell.com>.

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

	Fixed a crash, reported by Christophe Rhodes <csr21@cam.ac.uk>
	ANSI CL compliance: (merge-pathnames lp) --> lp
	* pathname.d: more debugging instrumentation
	(string2wild, wild2string): new macros
	(split_name_type): use them; "*.*" ==> :name :wild :device :wild
	(directory_namestring_parts): :name and :type maybe :wild
	(merge-pathnames): as per ANSI CL, return a logical pathname when
	 the first argument is one.
	(directory_match, nametype_match, version_match):
	 unbound matches everything
	(directory_diff, nametype_diff, version_diff):
	 treat unbound appropriately too
	(translate_device, translate_nametype_aux): :WILD is the same as NIL

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

	Implemented the ANSI CL issue CONSTANTP-ENVIRONMENT:ADD-ARG
	* control.d (constantp): accept the optional environment arg
	* subr.d (constantp): ditto

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

	* lispbibl.d (ARM): Recognize __arm__ as CPU indicator on Linux

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

	ANSI CL compiler macros are implemented
	* cmacros.lisp: new file
	* makemake.in (LPARTS): added cmacros
	* compiler.lisp (env, mac-exp): new aux inline functions
	(macroexpand-1, c-form, compile-toplevel-form &c): use them
	(macroexpand-form): call COMPILER-MACRO-FUNCTION
	(inline-callable-function-lambda-p, inline-callable-lambdabody-p):
	 use FUNCTION-FORM-FUNFORM
	(c-FUNCTION-CALL, c-APPLY): use SIMPLE-FUNCTION-FORM-P
	* init.lisp: load cmacros; export COMPILER-MACRO,
	 COMPILER-MACRO-FUNCTION DEFINE-COMPILER-MACRO
	* defmacro.lisp (make-macro-expansion): accept an optional
	 PRE-PROCESS argument

2001-05-06  Bruno Haible  <haible@clisp.cons.org>

	* configure: Configure and build libiconv before configuring gettext.
	While configuring gettext, add the build directory to the CPPFLAGS and
	LDFLAGS, so that HAVE_ICONV gets defined to 1.

2001-05-07  Sam Steingold  <sds@gnu.org>

	* hashtabl.d (sxhash): return a fixnum, as per ANSI CL

2001-05-06  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: Move USE_GETTEXT treatment after USE_LIBICONV treatment,
	so that $LIBS contains libintl.a before libiconv.a.

2001-05-06  Sam Steingold  <sds@gnu.org>

	* eval.d (check_for_illegal_keywords): look only at the first
	:allow-other-keys keyword

2001-05-05  Sam Steingold  <sds@gnu.org>

	handle devices in hostname translation correctly
	* pathname.d (device_diff): push_solution_with(S(Kdevice))
	(translate_device): pop (S(Kdevice))

2001-05-05  Sam Steingold  <sds@gnu.org>

	* type.lisp (subtypep): COMPILED-FUNCTION is a subtype of FUNCTION

2001-05-05  Sam Steingold  <sds@gnu.org>

	* clos.lisp (function-keywords): return 2 values: list of keywords
	and allow-other-keys-flag, as per ANSI CL

2001-05-05  Sam Steingold  <sds@gnu.org>

	Made the compiler a little less vociferous
	* clos.lisp (check-signature-congruence): extracted from
	STD-ADD-METHOD
	(std-add-method): use CHECK-SIGNATURE-CONGRUENCE

	* compiler.lisp (c-DEFUN): do not check signature for generic
	functions since this is better done at load time

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

	ANSI CL compliance: CHAR does not check for FILL-POINTER, ELT does.
	* sequence.d (seq_check_index): new function
	(elt, setelt): use it
	* charstrg.d (unpack_string): new function
	(unpack_string_rw, unpack_string_ro): use it
	(char, store_char): call unpack_string() directly
	instead of unpack_string_r[ow]

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

	Added compile-time signature checking in function calls
	* compiler.lisp (c-source-location): 2 optional arguments
	(c-source-point, c-source-point-location, current-function)
	(get-signature, sig-to-list, inline-lambdabody)
	(inline-callable-lambdabody-p, lambda-list-to-signature)
	(match-known-unknown-functions, in-defun-p): new functions
	(c-warn): use C-COMMENT and CURRENT-FUNCTION
	(c-error): use CURRENT-FUNCTION
	(signature): new defstruct
	(function-signature, signature-to-list): moved here from
	 describe.lisp
	(test-argument-syntax): reindented
	(c-DIRECT-FUNCTION-CALL, pass2): translated the comments
	(c-GLOBAL-FUNCTION-CALL, C-APPLY): always check the signature
	 always call NOTE-FUNCTION-USED, not just when compiling a file;
	 use INLINE-CALLABLE-LAMBDABODY-P and INLINE-LAMBDABODY
	(note-function-used): keep the arguments too
	(c-DEFUN): check the signature using *KNOWN-FUNCTIONS*
	(inline-callable-function-p): use INLINE-CALLABLE-LAMBDABODY-P
	(c-FUNCTION): always call NOTE-FUNCTION-USED
	(c-report-problems): use MATCH-KNOWN-UNKNOWN-FUNCTIONS
	(compile-file): call C-REPORT-PROBLEMS before reporting
	 *ERROR-COUNT* and *WARNING-COUNT*
	(c-form): use IN-DEFUN-P
	* clos.lisp: import SIGNATURE structure from COMPILER and use
	 them instead of simple lists throughout the file
	* constobj.d (version): bumped (generic functions use SIGNATUREs
	 instead of lists to store their signatures)
	* describe.lisp (function-signature, signature-to-list):
	 moved to compiler.lisp
	(arglist): use SIG-TO-LIST and GET-SIGNATURE to accommodate
	 possible future modifications
	* foreign1.lisp (DEF-CALL-OUT, DEF-LIB-CALL-OUT):
	 pass signature to C-DEFUN
	(argvector-to-signature, count-inarguments): new functions
	(foreign-function-signature): renamed to
	 FOREIGN-FUNCTION-IN-ARG-COUNT
	* init.lisp (defun): pass signature to C-DEFUN

2001-05-01  Sam Steingold  <sds@gnu.org>

	* type.lisp (subtypep): handle types NIL and T specially
	[bugfix: (subtypep 'EXTENDED-CHAR 'CHARACTER) returned (NO)]

2001-05-01  Sam Steingold  <sds@gnu.org>

	* format.lisp: pass width to ~a when a non-number is
	given to a numeric format instruction

2001-05-01  Sam Steingold  <sds@gnu.org>

	* spvw.d (main): added "-traditional" command line
	option to override "-ansi" ("-a" deprecated)

2001-05-01  Sam Steingold  <sds@gnu.org>

	* condition.lisp (handler-case): accept :NO-ERROR clause in any
	position, not just the last one

2001-04-30  Sam Steingold  <sds@gnu.org>

	* compiler.lisp (test-argument-syntax): call C-WARN and return NIL
	on WRONG-KEY, instead of calling C-ERROR
	(*deprecated-functions-list*): added GET-SETF-METHOD-MULTIPLE-VALUE

2001-04-25  Sam Steingold  <sds@gnu.org>

	* runprog.lisp (run-shell-command, run-program): accept :wait
	parameter (defaults to T)
	* clhs.lisp (clhs): pass :wait nil to RUN-PROGRAM

2001-04-25  Sam Steingold  <sds@gnu.org>

	* eval.d (invoke_handlers): fixed the 2001-04-18 patch for Linux

2001-04-24  Sam Steingold  <sds@gnu.org>

	* intgcd.d (I_I_xgcd_I_I_I): do not use bit operations for logical
	variables sA and sB (this caused incorrect results on alpha-tru64)

2001-04-24  Sam Steingold  <sds@gnu.org>

	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp:
	added package prefix to IN-PACKAGE and DELETE-PACKAGE

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

	* makemake.in (linkkit): rm-r it before creating links

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

	* affi1.lisp: use DEFPACKAGE to define package AFFI

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

	Finished re-packaging in the modules directory
	* bindings/amigaos/asl-load.lisp, bindings/amigaos/window.lisp:
	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp:
	* clx/mit-clx/package.lisp, modules/postgresql642/postgresql:
	* modules/postgresql632/postgresql.lisp, modules/wildcard/wildcard.lisp:
	use DEFPACKAGE, not CLtL1 IN-PACKAGE
	* new-clx/demos/clx-demos.lisp: getenv is in EXT, not SYS now,
	use strings, not symbols in DEFPACKAGE

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

	* constobj.d (version): bump the bytecode version due to repackaging

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

	* clhs.lisp (clhs): BROWSER defaults to *BROWSER*, not :netscape

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

	* spvw.d (main): quote load_extra_file_types for `clisp file`

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

	Move EXECUTE from COMMON-LISP to EXT
	* constsym.d (EXECUTE): in EXT, not LISP
	* init.lisp (export): export EXECUTE from EXT

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

	ANSI CL compliance: HANDLER-BIND uses multiple handlers
	for the a single error
	* compiler.lisp (c-HANDLER-BIND): collect all handlers, even for
	duplicate types
	* eval.d (invoke_handlers): go over the whole list of handlers,
	not stopping after the first match has been found.

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

	* compiler.lisp (stream-tab): new function
	(disassemble-closure): use it

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

	* io.d (CHECK_READTABLE): new macro
	(unread-char, write-char): use fehler_char()

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

	* sequence.d (valid_type): CONS and NULL are sequences of type LIST

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

	* socket.d: made compilable with SAFETY=3
	(SERVENT_TO_STACK): turned into a local function servent_to_stack()
	(ADDR_TO_STRING): return NIL, not NULL, as the failure value
	(HOSTENT_TO_STACK): turned into a local function hostent_to_stack()

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

	Merged FLET with SYS::%FLET (same for LABELS & MACROLET)
	* init.lisp (flet, labels, macrolet): removed
	(%expand-form): removed flet, labels and macrolet
	do not load "defs3"
	* defs3.lisp: removed
	* compiler.lisp (skip-declarations): new function
	(c-flet, c-labels, c-macrolet): use it
	* constsym.d (pflet, plabels, pmacrolet): removed
	* control.d (skip_declarations): new function

2001-04-10  Bruno Haible  <haible@clisp.cons.org>

	Support for MacOS X.
	* lispbibl.d (RS6000): Define if __ppc__ is defined.
	(TIME_ABSOLUTE, TIME_RELATIVE): Undefine after pulling in the system
	headers.
	* socket.d (in6_u, u6_addr16) [UNIX_DARWIN]: Define as aliases.
	Thanks to Daniel Buenzli and Sunil Mishra for feedback.

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

	* spvw.d (*features*): added :LISP=CL to denote the re-packaging

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

	* type.lisp (upgraded-complex-part-type): ANSI CL compliance -
	trivial function, always returns T
	* init.lisp (upgraded-complex-part-type): exported

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

	* init.lisp (sys::*home-package*): set to NIL at the end

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

	The grand repackaging: USER+CL-USER; LISP+CL
	* amigasock.lisp, beossock.lisp: no export (done in init.lisp)
	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp,
	cfgunix.lisp, cfgwin32.lisp, clhs.lisp: (in-package "EXT")
	* clos.lisp: use I18N temporarily (for ENGLISH)
	* compiler.lisp (c-form-table): treat sys::%flet and friends just
	like cl:flet and friends
	* condition.lisp: moved CLISP extensions, like `muffle-cerrors',
	to the EXT package
	* constobj.d (use_default): set to COMMON-LISP
	* constpack.d: added EXT, I18N, GRAY and CUSTOM,
	and, conditionally, LDAP, SOCKET and GSTREAM
	* constsym.d: moved CLISP extensions to EXT or a more specific
	package, if appropriate
	* control.d, fsubr.d:
	renamed flet->%flet; labels->%labels; macrolet->%macrolet
	* defs1.lisp (doseq, dohash): export from EXT
	(fbound-string): moved to init.lisp
	* defs2.lisp (use-default): COMMON-LISP now
	* defs3.lisp: removed everything except for flet and friends
	* dirkey.d, lisparit.d: fixed comments
	* dirkey.lisp: export everything from LDAP and re-export from EXT
	* dutch.lisp, french.lisp, german.lisp, spanish.lisp: moved to I18N
	* edit.lisp, runprog.lisp, savemem.lisp: export from EXT, not LISP
	* eval.d (FUNTAB): removed `in_package',
	added `pfind_package' and `reexport'
	* foreign1.lisp: use COMMON-LISP and EXT in FFI
	* gray.lisp: extracted from gstream.lisp
	* gstream.lisp: moved to GSTREAM package
	* init.lisp: separated LISP exported symbols into COMMON-LISP and
	EXT (and friends)
	(in-package): define here
	(flet, labels, macrolet): added temporary definitions
	* inspect.lisp: export use variables from CUSTOM
	* keyboard.lisp (with-keyboard, *keyboard-input*): export from EXT
	* loop.lisp: in COMMON-LISP
	* macros1.lisp (mapcap, maplap): export from EXT
	* macros2.lisp (without-floating-point-underflow, space)
	(with-output-to-printer): export from EXT
	(deflanguage, definternational, deflocalized, localized):
	 export from I18N
	* macros3.lisp (ethe, letf, letf*, with-collect): export from EXT
	* makemake.in (LPARTS): added gray
	* misc.d (set_ansi): do not bother with *features*
	* package.d (in_package): removed
	(reexport): new function
	(init_packages): COMMON-LISP (= LISP, CL); COMMON-LISP-USER (=
	USER, CL-USER)
	* places.lisp (*ansi*): updated the doc string
	(dir-key-value): moved here from dirkey.lisp
	* posix.lisp: re-export from EXT exported symbols
	* reploop.lisp (*prompt*): export from CUSTOM
	(*command-index*, prompt-new-package, package-short-name): export
	from EXT
	* rexx1.lisp: defpackage REXX and export everything from it
	* screen.lisp: use COMMON-LISP and EXT in SCREEN
	* spvw.d (init_symbol_tab_2): added `enum_user_index' to the enum,
	export everything in SOCKET and CUSTOM
	(*features*): replaced :cltl2 with :ansi-cl;
	add :generic-streams when GENERIC_STREAMS is defined
	and :sockets when SOCKET_STREAMS is defined
	(main): -p: is the package does not exist, do not create it;
	-a: do not call `in-package'
	* subr.d (reexport): added
	(in_package): removed
	* subrkw.d (in_package): removed
	* trace.lisp (*trace-function*, *trace-args*, *trace-form*)
	(*trace-values*): export from EXT, not LISP
	* type.lisp (type-expand-1, type-expand): export from EXT, not LISP
	* xcharin.lisp: export from EXT, not LISP

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

	Symbols in FAS files remember their home packages and do not
	depend as much on the special treatment of the package tasks,
	which is now optional.
	This constitutes a switch from the "current-package" model to the
	"home-package" model as described in COMPILE-FILE-SYMBOL-HANDLING
	<http://www.lisp.org/HyperSpec/Issues/iss063.html>
	* constsym.d (*print-symbols-long*): new variable
	* spvw.d (init_symbol_values): define it
	* io.d (pr_symbol): respect it
	* compiler.lisp (*package-tasks-treat-specially*): new variable
	(c-GLOBAL-FUNCTION-CALL, compile-toplevel-form): use it
	(compile-toplevel-form): bind *print-symbols-long* to t
	 when writing to *fasoutput-stream*

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

	Removed the obsolete `COMMON' type (not in ANSI)
	See issue COMMON-TYPE:REMOVE
	<http://www.lisp.org/HyperSpec/Issues/iss057.html>
	* constsym.d (commonp): removed
	* eval.d (FUNTAB): removed `commonp'
	* predtype.d (commonp): removed
	* subr.d (commonp): removed
	* compiler.lisp (subrinfo, c-DIRECT-FUNCTION-CALL): removed `commonp'
	(*declaration-types*): removed `common'
	* init.lisp (commonp, common): removed
	* type.lisp (common): removed
	(canonicalize-type): removed `common'

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

	* version.h: 2.25.1 is released

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

	fixed the --without-unicode build
	* makemake.in (NLS_INCLUDES): always has `nls_ascii'
	* encoding.d: include "nls_ascii.c" and define `nls_tables'
	even without unicode
	* pseudofun.d: define `nls_ascii_table' even without unicode

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

	* clos.lisp (initialize-instance): [ANSI] added &key and
	&allow-other-keys to the lambda-list

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

	* condition.lisp (simple-type-error): [ANSI]
	inherit from `simple-condition', not `simple-error'

2001-03-28  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (translate_pathname): Fix invalid use of ## in GET_ITEM_S.

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

	fixed a bug: macros were reported as special forms by funcall &Co
	* eval.d (fehler_specialform): report special operators as such,
	not as special forms
	(coerce_function, funcall, apply): not all orecords are
	special operators
	* control.d (FMAKUNBOUND): error message spelling
	* trace.lisp (trace1): ditto
	* init.lisp (defun): ditto
	* defs1.lisp (fbound-string): ditto

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

	* package.d (symtab_lookup, shadowing_lookup):
	check sym_ for being non-NULL
	(inherited_lookup, inherited_find): new local functions
	(accessiblep, find_symbol, import, unexport, export): use them

2001-03-27  Bruno Haible  <haible@clisp.cons.org>

	* package.d (SYSTEM::PACKAGE-ITERATE): When looking for inherited
	symbols, ignore symbols that are simultaneously exported from the
	used package and present in the main package.
	Reported by Sam Steingold.

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

	fixed a bug: a single value was sometimes returned by `read-line'
	* io.d (eof_handling): mv_count argument added
	(read_w, READ-CHAR, PEEK-CHAR, READ-CHAR-NO-HANG): respect that
	(READ-LINE): always return 2 values

2001-03-22  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (sstring_normal_p): Fix typo.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

	Make it possible to compile gstream.lisp with interpreted.mem.
	* compiler.lisp: Compile #'venv-search.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

	* misc.d: Include <stdio.h>.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

	Make --without-unicode work again.
	* error.d (write_errorasciz_substring): Fix typo.
	* init.lisp: Load "spanish" only if UNICODE.
	* makemake.in (LPARTS): Add "spanish" only if UNICODE is enabled.
	* type.lisp (charset-subtypep): Avoid warning.
	* stream.d (test_external_format_arg) [!UNICODE]: Accept and ignore
	any symbols in the CHARSET package.

2001-03-20  Bruno Haible  <haible@clisp.cons.org>

	* configure: Add trailing slash to www.lisp.org URL.
	* cfgacorn.lisp (*clhs-root-default*): Likewise.
	* cfgamiga.lisp (*clhs-root-default*): Likewise.
	* cfgdos.lisp (*clhs-root-default*): Likewise.
	* cfgwin32.lisp (*clhs-root-default*): Likewise.
	* makemake.in (HSDEFAULT): Likewise.
	(hyperspec): Check existence of directory if it's an absolute
	directory. Remove trailing slash afterward.
	* clhs.lisp (clhs): Accept a clhs-root with or without trailing slash.

2001-03-20  Bruno Haible  <haible@clisp.cons.org>

	* compiler.lisp (compile-file-pathname-helper): Rewritten. Obey
	output-file's directory even if it is a relative directory.

2001-03-19  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (find_executable): Use strcpy instead of sprintf.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* spvw_memfile.d (DUMPHOST_LEN): New macro.
	(memdump_header): Make _dumphost size OS independent.
	(savemem): Simplify filling of hostname and _dumphost. Use UTF-8
	encoding.
	(loadmem): Move extraction of _dumptime and _dumphost to the end.
	Use UTF-8 encoding.

	* socket.d (MACHINE-INSTANCE): Return hostname as returned by
	gethostbyname, i.e. including the domainname.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* clhs.lisp: Export CLHS-ROOT.
	* cfgunix.lisp: Export CLHS-ROOT and *CLHS-ROOT-DEFAULT*.
	* cfgacorn.lisp: Likewise.
	* cfgamiga.lisp: Likewise.
	* cfgdos.lisp: Likewise.
	* cfgsunux.lisp: Likewise.
	* cfgwin32.lisp: Likewise.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* clisp-link.in: Pass -B argument to all lisp.run invocations.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* .clisp: New file.
	* makemake.in: Link .clisp and .gdbinit into the build dir.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Cache $host_alias. Needed
	by AC_CANONICAL_BUILD. Call config.guess and config.sub via
	$CONFIG_SHELL if set.

2001-03-18  Bruno Haible  <haible@clisp.cons.org>

	* condition.lisp (interrupt-condition, simple-interrupt-condition):
	New condition classes.
	(%defclcs): Add interrupt-condition -> simple-interrupt-condition
	mapping.
	(exitunconditionally): New function.
	(exitonerror): Use it.
	(exit-on-error): Don't bind *BREAK-DRIVER*, as that impacts saved
	memory images. Instead, establish a handler for INTERRUPT-CONDITION.
	Generalize the normal handler from ERROR to SERIOUS-CONDITION.
	(batchmode-break-driver): Remove function.
	* lispbibl.d (conditiontype): Add interrupt_condition.
	* error.d (tast_break): When (and (null *error-handler*) *use-clcs*),
	signal a condition of type INTERRUPT-CONDITION.
	* spvw_sigint.d (react_on_sigint, interrupt_handler): Signal an
	INTERRUPT-CONDITION, more specific than a SERIOUS-CONDITION.
	* stream.d (fehler_interrupt): Likewise.

	* savemem.lisp (saveinitmem): Also reset SYSTEM::*ACTIVE-RESTARTS* and
	SYSTEM::*CONDITION-RESTARTS*. Reset the dynamic variables in the new
	image, not in the old.

2001-03-19  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (PARSE-NAMESTRING): Coerce string to normal-simple-string
	before calling parse_logical_host_prefix.

	* lispbibl.d (sstring_normal_p): New macro.
	* pathname.d (parse_logical_word, parse_logical_host_prefix)
	(legal_logical_word, legal_name, legal_type, wildcard_match)
	(wildcard_diff): assert that the simple-string is normal.

2001-03-19  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/libtool.m4: Upgrade to libtool-1.3.5.
	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Always define
	ac_config_guess and ac_config_sub. Then ignore requests for
	AC_CONFIG_AUX_DIR_DEFAULT or AC_CANONICAL_HOST.

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

	* init.lisp: do not export `interpreter' & `compiler' from LISP
	for `*features*', since they are keywords now.

2001-03-17  Sam Steingold  <sds@gnu.org>

	load-inside-load bug fix
	* pathname.d (parse_logical_word, parse_logical_host_prefix)
	(legal_logical_word, legal_name, legal_type, wildcard_match)
	(wildcard_diff): make sure that the `simple-string' is normal.

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

	`compile-file-pathname' bug fix
	* compiler.lisp (compile-file-pathname-helper): new function
	(compile-file-pathname, compile-file): use it

2001-03-15  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.devel (all): Depend on src/VERSION instead of src/version.h.
	(ffcall-i386): New target.
	* spvw_memfile.d (savemem): Zero-fill the rest of _dumphost.
	* spvw.d (main): Do complain about missing -B in all cases.
	(usage): Internationalize.

2001-03-14  Sam Steingold  <sds@gnu.org>

	New versioning system adopted.
	* spvw.d (main): --version works without -B and -M
	  we are now GNU CLISP!
	  do not complain about missing -B when given -x
	* constobj.d (lisp_implementation_version_month_string): removed
	(lisp_implementation_version_date_string): set to VERSION_DATE
	(lisp_implementation_version_number_string): set to VERSION_NUMBER
	(lisp_implementation_version_built_string): set to __DATE__
	(memory_image_timestamp, memory_image_host): new objects
	* makemake.in: VERSION depends on version.h now
	* Makefile.devel: ditto; remove `update-version', unused for 2.5 years
	* misc.d (lisp-implementation-version): return "2.25 (2001-03-15)"
	  and then either the build date of the build host
	* spvw_memfile.d (memdump_header): added `_dumptime' and `_dumphost'
	(savemem, loadmem_from_handle): use them for
	  `memory_image_timestamp' and `memory_image_host'

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

	X3J13 vote <72> unconditionally implemented.
	* compiler.lisp (c-form): do not check (package-use-list *package*)
	* eval.d (other_self_evaluating_p): removed
	(eval1): do not call it

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

	A Logical Pathnames bug fixed.
	* pathname.d (host_diff): when HAS_HOST, push `:host' onto solutions
	(device_diff): when HAS_DEVICE, push `:device' onto solutions
	(translate_host): respect and expect `:host' in `subst'
	(translate_device): respect and expect `:device' in `subst'
	also, added a pathname translation debugging infrastructure
	also, translated some German comments

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

	* posix.lisp (sysinfo): Export structure accessors.

2001-03-07  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (lisp_completion): Remove end_callback() call from last
	  patch.

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

	* stream.d (lisp_completion): [Bug #221956] check the return value
	of `sys::completion'.

2001-03-06  Bruno Haible  <haible@clisp.cons.org>

	* unix.d (EDQUOT): Undefine if it is negative.

2001-03-02  Sam Steingold  <sds@gnu.org>

	* dirkey.d: include winldap.h on WIN32_NATIVE and define LDAP there
	(LDAP_PORT): conditionally define
	(dir_key_open): early LDAP support
	do not barf on ACCESS_DENIED in search:
	(IDNE_IGNORE): new constant for `init_iteration_node'
	(open_reg_key): handle it
	(init_iteration_node): use it; return 2 values
	(state_next_key): pop stack on NULL handle
	(dkey_search_next_key): return 2 values
	Bruno's memory fixes
	(MAKE_OBJECT_LIST, dir_key_value, dkey_info): alloca may be a macro
	* constsym.d (:LDAP): define on WIN32_NATIVE
	* makemake.in (LIBS): link with wldap32 on WIN32_NATIVE
	* dirkey.lisp (dir-key-dump-tree): reflect the new iteration interface

2001-03-02  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (lisp_completion_ignore): New function.
	(lisp_completion): Use CATCH and HANDLER-BIND to catch conversion
	  errors. Skip symbols that are not convertible to *terminal-encoding*.

2001-02-28  Bruno Haible  <haible@clisp.cons.org>
	    Sam Steingold  <sds@gnu.org>

	* defmacro.lisp (analyze-rest): Allow destructuring for the
	  &REST/&BODY variable.

2001-02-21  Bruno Haible  <haible@clisp.cons.org>

	* places.lisp (PROGN, LOCALLY, IF): New defsetf expanders.

2001-02-17  Arseny Slobodjuck  <ampy@crosswinds.net>
	    Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (SCREEN): Also define on WIN32_NATIVE.
	* stream.d [WIN32_NATIVE]: Implement window streams for SCREEN package.
	(console_handle, console_size, console_cursor_pos)
	(console_needtoclose, screenattr, attr_table, attr): New variables.
	(InitConsole, DoneConsole, v_up, v_cb, v_cs, v_ce, v_cl, v_cd)
	(v_scroll, v_al, v_dl, v_su, v_move, v_put, wr_ch_window)
	(MAKE-WINDOW, close_window, WINDOW-*): New functions.

2001-02-08  Bruno Haible  <haible@clisp.cons.org>

	* cfgunix.lisp: Mark the file as being UTF-8 encoded, so it can be
	  loaded and compiled in any locale.
	* cfgacorn.lisp: Likewise.
	* cfgamiga.lisp: Likewise.
	* cfgdos.lisp: Likewise.
	* cfgsunux.lisp: Likewise.
	* cfgwin32.lisp: Likewise.
	Reported by Ulrich Drepper <drepper@redhat.com>.

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

	* inspect.lisp: Fixed bug #[ 130567 ]: unbound slots.
	(*inspect-unbound-value*): new internal variable
	(inspect-cllib): bind it
	(inspect-backend): use it for unbound symbols and slots
	(get-insp): call `insp-check' only when `insp' is non-NIL

2001-02-06  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (ICONV_CONST) [!UNIX]: New macro.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (iconv_init): Remove macro, not needed any more since
	  libiconv-1.5.
	(iconv): Define as macro, to cast second argument.
	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
	(iconv_range, ChannelStream_init): Don't call iconv_init.

2001-02-04  Sam Steingold  <sds@gnu.org>
	    Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (whole_namestring): Don't set subr_self.
	(file_namestring): New function.
	(FILE-NAMESTRING): Simplification: Call file_namestring.
	(ENOUGH-NAMESTRING): Set subr_self before calling whole_namestring.
	(assure_dir_exists): Simplification: Call directory_namestring and
	  whole_namestring.
	(change_default): Simplification: Call directory_namestring.
	(NAMESTRING): Set subr_self before calling whole_namestring.
	(directory_exists): Simplification: Call directory_namestring.
	(directory_search): Simplification: Call file_namestring.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/aclocal.m4 (CL_STDBOOL_H): New macro.
	* configure.in: Invoke it.
	* unixconf.h.in (HAVE_STDBOOL_H): New macro.
	* makemake.in (EVERY_INCLUDES_H): Add stdbool.h, unless the system
	  has it.
	(stdbool.h): New rule.
	(clean4): Remove stdbool.h.
	* lispbibl.d (boolean, FALSE, TRUE): Remove definitions. Include
	  stdbool.h instead.
	* All *.d: Use bool/false/true instead of boolean/FALSE/TRUE.
	* genclisph.d (main): Include or copy stdbool.h instead of defining
	  boolean/FALSE/TRUE.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (translate_directory): Don't choke if 'subst' doesn't
	  specify any pieces for the directory.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (PARSE-NAMESTRING): Make treatment of :HOST argument CLHS
	  compliant.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* spvw.d (init_symbol_values): Initialize
	  SYS::*LOGICAL-PATHNAME-TRANSLATIONS* to an EQUALP hash table.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d: Back out Sam's 2001-01-03 and 2001-01-04 patches.
	(host_namestring_parts): Use "\\\\" instead of twice "\\".
	(directory_namestring): Include the host namestring parts.
	(MERGE-PATHNAMES): If pathname's host is NIL but pathname's device
	  is non-NIL, on Win32, don't take the defaults' host+device.
	(MAKE-PATHNAME): If pathname's host and device are both non-NIL on
	  Win32, signal an error.
	(use_default_dir) [OS2, WIN32]: If the pathname already has a host:
	  1. Don't insert the default drive. 2. Resolve :RELATIVE to
	  :ABSOLUTE.
	(assure_dir_exists): Include host_namestring_parts.
	(directory_exists): Likewise.
	(CD): Signal error if pathname includes a host.

2001-02-03  Bruno Haible  <haible@clisp.cons.org>

	* configure: Also copy gettext/autoconf.
	* makemake.in (libintl.h): Link to gettext/intl/libintl.h.
	* lispbibl.d (GETTEXTL): New macro.
	(clgettextl): New declaration.
	* amigaaux.d: Use GETTEXTL instead of GETTEXT for strings to be output
	  via asciz_out().
	* spvw.d: Likewise.
	* spvw_alloca.d: Likewise.
	* spvw_allocate.d: Likewise.
	* spvw_fault.d: Likewise.
	* spvw_garcol.d: Likewise.
	* spvw_memfile.d: Likewise.
	* spvw_mmap.d: Likewise.
	* spvw_multimap.d: Likewise.
	* spvw_sigsegv.d: Likewise.
	* spvw_language.d (init_language): Call bindtextdomain also for domain
	  "clisplow". Remove textdomain() call. Call bind_textdomain_codeset.
	(to_latin_table, from_latin_table, cvgettext): Remove.
	(clgettext): Call dgettext with domain "clisp".
	(clgettextl): New function.
	(localized_string): Check argument must be in ASCII. clgettext()
	  returns value in UTF-8.
	(localized_object): Likewise.
	* error.d (write_errorasciz_substring): New function.
	(write_errorasciz): Use it.
	(write_errorstring): Move into string segment after segment, not
	  byte after byte.
	* errunix.d (get_errormsg): Use GETTEXTL instead of GETTEXT, so the
	  strings end up in both clisp.mo and clisplow.mo.
	(OS_error_internal): Define 'translate' as clgettext, for UTF-8
	  converted translation.
	(errno_out): Define 'translate' as clgettextl, for locale dependent
	  encoded translation.

2001-02-01  Bruno Haible  <haible@clisp.cons.org>

	* io.d (pr_sstring_ab): Make GC safe.

2001-02-01  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (read_line): When EOF was reached, always set
	  strm_rd_ch_last to eof_value.

2001-01-29  Sam Steingold  <sds@gnu.org>

	* pathname.d (PARSE-NAMESTRING): use `slashp' when parsing UNC
	pathnames, so that //host/dir/file is the same as \\host\fir\file.

2001-01-27  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d: Add IA-64 support.
	(object) [WIDE_HARD]: Use the 1-element struct or directly 'void *'.
	* spvw_mmap.d (mmap_init_pagesize): On IA-64, always use 64 KB.
	* spvw_page.d (oint_addr_relevant_len): Set to 32, to limit
	  std_page_size to 64 KB.

	* predtype.d: Include arilev0.c, needed for R_sign when TYPECODES is
	  defined.

2001-01-28  Bruno Haible  <haible@clisp.cons.org>

	* foreign.d (convert_function_to_foreign, free_foreign_callin)
	(convert_function_from_foreign, callback): Add cast, to avoid
	  warning on 64-bit machines.

2001-01-17  Bruno Haible  <haible@clisp.cons.org>

	* spvw.d (main): Restore functionality broken by last patch.

2001-01-17  Sam Steingold  <sds@gnu.org>

	* posix.lisp (sysinfo, rlimit, limits, usage): unix-specific,
	do not define on other systems

	* spvw.d (main): handle `argv_expr' ("-x") similar to
	`argv_execute_file', as if wrapped in `exit-on-error'

2001-01-15  Bruno Haible  <haible@clisp.cons.org>

	* init.lisp (load): Additional keyword argument :extra-file-types.
	* spvw.d (main) [WIN32_NATIVE]: Pass :extra-file-types '(".bat") to
	  LOAD.

2001-01-14  Bruno Haible  <haible@clisp.cons.org>

	* configure: In avcall and callback, do "make check" instead of
	  "make minicheck".
	* makemake.in: Likewise.

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

	* pathname.d (pathname_check_remote): replaced with
	(pathname_fix_remote): reset device to NIL and make the
	path :absolute
	(merge-pathnames, make-pathname): use it

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

	* pathname.d (use_default_dir win32): do not use `default_drive'
	or `default_directory_of' for UNC paths
	(pathname_check_remote, namestring_host_dir): new local functions
	(assure_dir_exists, directory_exists):
	use `namestring_host_dir' instead of `directory_namestring' and
	`whole_namestring' instead of
	`directory_namestring_parts'+`file_namestring_parts'
	(change_default): barf on remote arguments
	* inspect.lisp (inspect-frontend): bind `keep-alive'

2001-01-03  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (USER-HOMEDIR-PATHNAME): If HAS_HOST is defined but the
	host is NIL, use the homedir on the local machine.

2001-01-02  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (HAS_HOST): Set to 1 for PATHNAME_WIN32.
	* pathname.d (legal_hostchar): Add a definition for PATHNAME_WIN32.
	(PARSE-NAMESTRING): For PATHNAME_WIN32, parse hosts in \\hostname
	  syntax.
	(host_namestring_parts): For PATHNAME_WIN32, use \\hostname syntax.
	(USER-HOMEDIR-PATHNAME): Add dummy definition for PATHNAME_WIN32.

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

	* pathname.d (assure_dir_exists, change_default):
	Use `directory_namestring' instead of
	`directory_namestring_parts'+`string_concat'.

2000-12-28  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: encoding.o depends on libcharset.h.
	(libcharset.h): New rule.
	* encoding.d: Include libcharset.h.
	(encoding_from_name): Argument is now canonicalized like
	  locale_charset(), not like X11.
	(init_dependent_encodings): Call locale_charset().
	* spvw_ctype.d (locale_charset): Remove variable.
	(init_ctype): Remove initialization of locale_charset.
	* constsym.d: Add JOHAB and AIX specific encoding.

2000-12-29  Bruno Haible  <haible@clisp.cons.org>

	* utils/gen-uninames: New file.
	* Makefile.devel (all): Depend on src/uninames.c.
	(src/uninames.c): New rule.
	* makemake.in (UNICODE_INCLUDES): Add uninames.
	* charstrg.d: Include uninames.c.
	(unicode_name_word, unicode_name_word_lookup): New functions.
	(jamo_initial_short_name, jamo_medial_short_name)
	(jamo_final_short_name): New tables.
	(char_name, name_char): Add support for Unicode character names.

2000-12-21  Sam Steingold  <sds@gnu.org>

	* dirkey.d: made the second half of the file GC safe
	(registry_value_to_object): Fixed the bugs introduced yesterday:
	extra "" at the end of a REG_MULTI_SZ and a += instead of =.
	(scope_error): Replaced with `parse_scope'.

2000-12-20  Bruno Haible  <haible@clisp.cons.org>

	* dirkey.d (registry_value_to_object): Make GC safe. Fix possible
	  buffer overrun.
	(struct root): Add length field.
	(MKKEY): Store string length as well.
	(parse_registry_path): Use memcmp instead of strncmp.
	(DIR-KEY-OPEN): Make GC safe.
	(MAKE_OBJECT_LIST): Make GC safe.

2000-12-20  Bruno Haible  <haible@clisp.cons.org>

	* charstrg.d (nonspacing_table_data): Update to match glibc 2.2 width
	  definition.

2000-12-19  Bruno Haible  <haible@clisp.cons.org>

	* time.d (SYS::DEFAULT-TIME-ZONE) [WIN32]: Don't produce time_t values
	  >= 2^31.

2000-12-13  Sam Steingold  <sds@gnu.org>

	Remote registry access:
	* dirkey.d (test_dir_key): Return obj.
	(roots): Check whether the constants are defined.
	(parse_registry_path): new function to extract the host name and
	the top-level handle-key.
	(dir_key_open): Use it.
	(open_reg_key): Use the IDNE_* constants.
	(dir_key_subkeys): Return the list of the local top-level keys
	when the argument is :win32.
	(itst_current): Ignore zero-length names.
	(scope_error): New nonreturning_function.
	(dkey_search_iterator): Use it.
	(state_next_key): Pop the iteration stack when closing the hangle.
	(dkey_search_next_key): Rely on this change; use `scope_error'.
	* dirkey.lisp: Export `dir-key-values' and `dir-key-children'
	(with-dir-key-search): Make sure `att-iter' is a symbol.

2000-12-12  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_symbol_values): Set *PRINT-RPARS* to NIL and
	*PRINT-INDENT-LISTS* to 1.

2000-12-05  Bruno Haible  <haible@clisp.cons.org>

	* io.d (JUSTIFY_START): Add argument.
	(JUSTIFY_LAST): New macro.
	(justify_start): Add traillength argument. Bind
	  SYS::*PRIN-TRAILLENGTH* and SYS::*PRIN-PREV-TRAILLENGTH*.
	(justify_end_eng): Respect SYS::*PRIN-PREV-TRAILLENGTH*.
	  Unbind SYS::*PRIN-TRAILLENGTH* and SYS::*PRIN-PREV-TRAILLENGTH*.
	(justify_end_weit): Likewise.
	(justify_last): New function.
	(pr_enter): Bind SYS::*PRIN-TRAILLENGTH* to 0.
	(pr_cons): Add argument to JUSTIFY_START. Call JUSTIFY_LAST.
	(pr_number, pr_array_nil, pr_vector, pr_array_rekursion, pr_array)
	(pr_structure_default, pr_hex6_obj, pr_readlabel, pr_record_ab)
	(pr_record_rest, pr_record_descr, pr_orecord, pr_other_obj, pr_subr)
	(pr_closure, pr_cclosure_lang, pr_cclosure_codevector, pr_stream)
	(SYSTEM::WRITE-UNREADABLE): Likewise.
	(some_printable_slots): New function.
	* spvw.d (init_symbol_values): Define SYS::*PRIN-TRAILLENGTH* and
	  SYS::*PRIN-PREV-TRAILLENGTH* as special.

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

	* misc.d (registry): do not goto outsize `with_string_0'
	* dirkey.d (dir_key_value): ditto

2000-12-04  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (dir_key_length): Set to 3.

2000-12-03  Sam Steingold  <sds@gnu.org>

	--with-export-syscalls works on win32 under MSVC5 now
	* socket.d (resolve-host-ipaddr): MSVC doesn't have `gethostent'
	* posixmath.d (erf, erfc, gamma, lgamma): MSVC doesn't have these
	* posixmisc.d: ditto
	* constsym.d, subr.d: kill the exported calls not found under MSVC

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

	Directory access (LDAP, Win32 registry, gnome config.)
	Only Win32 registry works at this time.
	* lispbibl.d (FOREIGN): define when DIR_KEY is defined.
	(Dir_Key): new record type.
	* constobj.d (hs_dir_key, type_dir_key, type_scope)
	(printstring_dir_key): added.
	(slash_string): define when DIR_KEY id defined.
	* constsym.d, subr.d, subrkw.d: define the dirkey functions.
	* predtype.d: recognize the new rectype.
	* io.d: print the new rectype.
	* spvw.d: added :DIR-KEY to `*features*' when DIR_KEY is defined.
	* places.lisp (dir-key-value): new defsetf.
	* init.lisp: load dirkey.lisp.
	* dirkey.lisp, dirkey.d: new files.
	* makemake.in: added --with-dir-key.

2000-11-30  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (convert_time_to_universal): New declaration.
	* time.d (convert_time_to_universal): New function.
	* pathname.d (FILE-WRITE-DATE): Use it.

2000-11-29  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (set_start_time): Remove declaration.
	* time.d (internal_time_to_I): New function.
	(GET-INTERNAL-REAL-TIME, GET-INTERNAL-RUN-TIME): Use
	internal_time_to_I.
	(encode_universal_time): New function.
	(calc_start_UT): Remove function.
	(get_start_time): New function.
	(universal_time_sec): New function.
	(GET-UNIVERSAL-TIME): Call universal_time_sec.

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

	* lispbibl.d (UNIX_LISP_TIME_DIFF): new macro
	* time.d (real_time_sec): use it
	* pathname.d (file_stat_): ditto

2000-11-20  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (lisp.exe): Make the stack 3 MB large.

2000-11-16  Bruno Haible  <haible@clisp.cons.org>

	* array.d (elt_move_T): Use eq instead of ==.
	(elt_move_Char, elt_move_Bit, elt_move_2Bit, elt_move_4Bit)
	(elt_move_8Bit, elt_move_16Bit, elt_move_32Bit): Likewise.
	* sequence.d (copy_seqpart_into): Likewise.

2000-11-15  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: If TSYS=win32msvc, introduce a Makefile variable MFLAGS.
	(lisp.exe): Don't use /MD flag; use MFLAGS instead.

2000-11-14  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.devel (PERL): New macro.
	(acorn/makefile.cc, acorn/makefile.gcc): Use it.

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

	* win32msvc/makefile.msvc4, win32msvc/makefile.msvc5:
	libinconv/iconv.h and libinconv/iconv.lib are now
	in include and src respectively.

2000-11-13  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (UNIX_MACOSX): Renamed from UNIX_RHAPSODY.
	(UNIX_RHAPSODY, UNIX_DARWIN): New macros.

2000-11-12  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d: Undefine TIME_ABSOLUTE and TIME_RELATIVE first.
	* autoconf/config.guess, autoconf/config.sub: Upgrade to newest
	  version from GNU CVS.

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

	* inspect.lisp: workaround for the Linux bug.
	(crlf, flush-http): new functions.
	(with-http-output): new macro.
	(print-inspection): added &rest opts.
	(http-command): handle `keep-alive'.
	(inspect-frontend :http): ditto.

	* clhs.lisp (*browser*): the default browser.
	(browse-url): `browser' defaults to `*browser*' and can be NIL.

2000-11-10  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: Increase optimization for SUNPRO compilers to O3.

2000-11-08  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (delete_file_if_exists) [WIN32_NATIVE]: Treat
	ERROR_BAD_NETPATH like ERROR_PATH_NOT_FOUND.
	(rename_file_to_nonexisting) [WIN32_NATIVE]: Likewise.
	(assure_dir_exists) [WIN32_NATIVE]: Likewise.
	(directory_exists) [WIN32_NATIVE]: Likewise.
	(open_input_file) [WIN32_NATIVE]: Likewise.
	(READDIR_findfirst) [WIN32_NATIVE]: Likewise.
	(check_stat_directory) [WIN32_NATIVE]: Likewise.
	(FILE-WRITE-DATE) [WIN32_NATIVE]: Likewise.

2000-11-08  Bruno Haible  <haible@clisp.cons.org>

	* aclocal.m4 (CL_SIGNAL_UNBLOCK): Enable 'volatile' for gotsig,
	wasblocked.
	(CL_SIGNAL_BLOCK_OTHERS): Enable 'volatile' for gotsig,
	somewereblocked.
	(CL_SIGACTION_UNBLOCK): Enable 'volatile' for gotsig, wasblocked.

2000-10-23  Bruno Haible  <haible@clisp.cons.org>

	* constsym.d (CHARSET:GB18030, CHARSET:BIG5HKSCS): New symbols.

2000-10-22  Bruno Haible  <haible@clisp.cons.org>

	* encoding.d (init_encodings): Set O(internal_encoding) to UTF-8.
	* makemake.in: Default file encoding for all CLISP sources is now
	UTF-8.

2000-10-22  Bruno Haible  <haible@clisp.cons.org>

	* spvw_language.d (init_language_from): Accept french and spanish
	names in both ISO-8859-1 and UTF-8.
	* spvw_ctype.d (init_ctype): Likewise.

2000-10-22  Bruno Haible  <haible@clisp.cons.org>

	* spvw.d (print_banner): Don't use non-ASCII argument of gettext.
	* spvw_global.d (check_gc_consistency): Don't use non-ASCII error
	message.

2000-10-09  Bruno Haible  <haible@clisp.cons.org>

	CPU recognition on OpenBSD.
	* lispbibl.d (VAX): Define if __vax__ is defined.
	(MC680X0): Define if __m68k__ is defined.
	(MC680Y0): Define if __mc68020__ is defined.
	(MIPS): Define if __mips__ is defined.
	(M88000): Define if __m88k__ is defined.
	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __m68k__,
	__mc68020__, __MIPSEB__, __MIPSEL__, __m88k__ as CPU indicators.

2000-09-29  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Fix bug in 2000-05-23
	change.

2000-09-28  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in: On AIX without gcc, use gcc-cccp.
	(XCPP_POSTPROCESS): New variable.

	* autoconf/aclocal.m4 (CL_SOCKLEN_T): New macro.
	* configure.in: Call it.
	* unixconf.h.in (SOCKLEN_T): New macro.
	* win32.d (SOCKLEN_T): Define as int.
	* socket.d (socket_getlocalname_aux, socket_getpeername)
	(create_server_socket, accept_connection): Use the SOCKLEN_T type.

	* stream.d (iconv_mblen): Cast to avoid warning.
	(iconv_wcstombs): Likewise.
	(rd_ch_terminal3): Likewise.

2000-09-25  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (I80386): Define if __i386__ is defined. On OpenBSD,
	i386 and __i386 are not defined, only __i386__.
	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __i386__
	as equivalent to __i386. For OpenBSD.

2000-09-21  Martin Atzmueller  <martin@atzmueller.net>

	* reploop.lisp (debug-backtrace): cleanup of unused variable.

2000-09-12  Bruno Haible  <haible@clisp.cons.org>

	Followup to Sam's 1999-04-07 patch.
	* compiler.lisp (c-form): Accept arrays as self-evaluating forms,
	consistently with eval.d:eva11().

2000-09-12  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (listen_char): Renamed from stream_listen.
	(listen_byte): New declaration.
	* debug.d (read_form): Update.
	* io.d (LISTEN, READ-CHAR-WILL-HANG-P, READ-CHAR-NO-HANG): Update.
	* stream.d (listen_char_synonym): Renamed from listen_synonym.
	(listen_byte_synonym): New function.
	(listen_char_concat): Renamed from listen_concat.
	(listen_byte_concat): New function.
	(listen_char_twoway): Renamed from listen_twoway.
	(listen_byte_twoway): New function.
	(listen_char_str_in): Renamed from listen_str_in.
	(listen_char_buff_in): Renamed from listen_buff_in.
	(listen_char_generic): Renamed from listen_generic.
	(listen_byte_ia8_unbuffered): New function.
	(listen_char_unbuffered): Renamed from listen_unbuffered.
	(listen_char_buffered): Renamed from listen_buffered.
	(listen_byte_ia8_buffered): New function.
	(listen_char_keyboard): Renamed from listen_keyboard.
	(listen_char_terminal): Renamed from listen_terminal.
	(listen_char_terminal1): Renamed from listen_terminal1.
	(listen_char_terminal2): Renamed from listen_terminal2.
	(listen_char_terminal3): Renamed from listen_terminal3.
	(SYSTEM::LISTEN-BYTE): Remove function.
	(listen_char): Renamed from stream_listen.
	(listen_byte): New function.
	(READ-BYTE-LOOKAHEAD, READ-BYTE-WILL-HANG-P, READ-BYTE-NO-HANG): New
	functions.
	* gstream.lisp: Export STREAM-READ-BYTE-LOOKAHEAD,
	STREAM-READ-BYTE-WILL-HANG-P, STREAM-READ-BYTE-NO-HANG.
	(STREAM-READ-BYTE-LOOKAHEAD, STREAM-READ-BYTE-WILL-HANG-P)
	(STREAM-READ-BYTE-NO-HANG): New generic functions.
	* modules/clx/mit-clx/depdefs.lisp: Remove feature test for
	sys::listen-byte. Add feature test for read-byte-lookahead.
	* modules/clx/mit-clx/dependent.lisp (buffer-read-default) [CLISP]:
	Use read-byte-lookahead instead of sys::listen-byte.

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

	Followup to Sam's 1999-04-07 patch.
	* compiler.lisp (c-form): Handle simple vectors as a constant.

2000-09-02  Bruno Haible  <haible@clisp.cons.org>

	* savemem.lisp (saveinitmem): Bind *home-package* to nil while saving
	  the image. Needed because the new image may be started with -a,
	  thus with a different value of *package*.
	  Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.

2000-09-02  Bruno Haible  <haible@clisp.cons.org>

	* modules/clx/new-clx/configure.in: When checking for Xpm and XShape,
	  temporarily add $X_CFLAGS to the CFLAGS. Needed on FreeBSD, which
	  has X_CFLAGS=-I/usr/X11R6/include.
	  Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.

2000-09-01  Bruno Haible  <haible@clisp.cons.org>

	Fix line numbers in generated C code.
	* utils/varbrace.d (out_line): New function.
	(ifdef_line_repeat): New variable.
	(line_emit, line_repeat_else, line_repeat_endif): New functions.
	(next_token): Call them.
	(convert): Initialize ifdef_line_repeat. Call line_emit to emit a
	#line directive.

2000-09-01  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (lisp_completion): Put end_callback() at the right place,
	and protect malloc() and free() with begin/end_system_call().
	Fixes a crash in cstombs on i386 platforms.
	Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.

2000-09-01  Bruno Haible  <haible@clisp.cons.org>

	* eval.d (interpret_bytecode_): Don't produce "testb %edx,%edx" or
	"testb %eax,%eax" any more.

2000-08-19  Bruno Haible  <haible@clisp.cons.org>

	* utils/ccpaux.c: main() returns int. Call fflush(stdout) before
	  testing ferror(stdout).
	* utils/deema.c: Likewise.
	* utils/txt2c.c: Call fflush(stdout) before testing ferror(stdout).
	* utils/comment5.d: Call fflush(outfile) before testing
	  ferror(outfile).

2000-08-26  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/acgeneral.m4 (AC_OUTPUT): Use braces in exec_prefix default
	  value, not parens.

2000-08-18  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (parse_logical_host_prefix): Renamed from logical_host.
	(string_logical_path_p): Remove function.
	(parse_namestring): Integrate it here. When recognizing a logical
	host, don't overwrite the :host argument.

	ANSI CL wants (PATHNAME (OPEN filename ...)) to return filename if
	filename is a logical pathname.
	* pathname.d (open_file): Expect the original filename on the stack.
	(OPEN): When the filename argument is a logical pathname, pass it
	to open_file.

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

	ANSI `parse-namestring' when LISP:*PARSE-NAMESTRING-ANSI* is non-NIL
	* pathname.d (logical_host): New function.
	(parse_logical_pathnamestring): Use it.
	(string_logical_path_p): New function.
	(parse_namestring): Use it.
	* constsym.d (parse_namestring_ansi): New variable.
	* spvw.d (init_symbol_values): Define it.
	* misc.d (set_ansi): Set it.
	* places.lisp (*ansi*): Added it to the doc.

2000-08-17  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (open_file): Pass tolerantp = TRUE to assure_dir_exists
	also if if_not_exists = 2 and direction != 0.

2000-07-27  Bruno Haible  <haible@clisp.cons.org>

	* foreign.d (walk_foreign_pointers): C-FUNCTION values can be NULL.
	(convert_to_foreign): When converting C-FUNCTION, convert NIL to
	NULL.

2000-07-27  Bruno Haible  <haible@clisp.cons.org>

	* predtype.d (eql): When comparing long-floats, also compare the sign.
	Reported by Bernard Urban <Bernard.Urban@meteo.fr>.

2000-07-26  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (DESTDIR): Renamed from 'install_root'.

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

	* inspect.lisp (insp-check): `warn' instead of `assert'
	(*inspect-browser*): default to nil
	(inspect-frontend :http): hardcode host 127.0.0.1
	print URL when `*inspect-browser*' is nil - permits
	CLISP and browser running on different machines

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

	* socket.d (create_server_socket): use "0.0.0.0" instead of the
	current host to allow anyone to connect to our server

2000-06-23  Sam Steingold  <sds@gnu.org>

	* type.lisp (canonicalize-type, subtypep-integer):
	use (ash 1 *) instead of (expt 2 *)

2000-06-22  Sam Steingold  <sds@gnu.org>

	* stream.d (stream_element_type_eq): new function
	(built_in_stream_element_type): use it
	* constsym.d, subr.d: mention `stream_element_type_eq'

2000-06-21  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (built_in_stream_element_type): Fix the last patch.

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

	* stream.d (socket_status): minor tweaks
	(built_in_stream_element_type): fixed the last patch

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

	* stream.d (built_in_stream_element_type): Special case for
	two-way and echo streams.

2000-06-16  Thomas Klausner  <wiz@danbala.ifoer.tuwien.ac.at>
	    Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (unix): Define on NetBSD.
	* modules/clx/new-clx/e2d.c: Treat __MACH__, __NetBSD__, __BeOS__ as
	Unix.
	* makemake.in (fsstnd): New variant netbsd.
	(install, installdirs, uninstall): For fsstnd=netbsd, install the
	html files in $(lispdocdir), not $(htmldir), and the extra
	documentation in $(lispdocdir), not $(lispdocdir)/doc.

2000-06-12  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (LIBGCC): Set to empty on BeOS.
	(interpreted.mem, lispinit.mem, lispinit2.mem): On BeOS, copy the
	executable before running it (workaround BeOS kernel bug).

	* unix.d (sock_read, sock_write, closesocket): Don't #define on BeOS.
	* unixaux.d (sock_read, sock_write): New functions.
	* stream.d (low_listen_unbuffered_handle): On BeOS, don't use select
	on file handles. Use O_NONBLOCK as a preferred alternative to
	O_NDELAY.
	(rd_ch_keyboard): On BeOS, don't use select on file handles.
	(low_close_socket, low_read_unbuffered_socket):
	(low_listen_unbuffered_socket, low_clear_input_unbuffered_socket):
	(low_read_array_unbuffered_socket, low_write_unbuffered_socket):
	(low_write_array_unbuffered_socket, low_fill_buffered_socket):
	(low_flush_buffered_socket): Define on BeOS, differently from the
	file handles analogs.

2000-06-11  Bruno Haible  <haible@clisp.cons.org>

	* clos.lisp (analyze-method-description): Generate code expanding into
	  SYSTEM::FUNCTION-MACRO-LET instead of MACROLET.

	* fsubr.d (system::function-macro-let): New special form.
	* control.d (system::function-macro-let): Likewise.
	* init.lisp (%expand-form): Handle SYSTEM::FUNCTION-MACRO-LET.
	(%expand-funmacdefs-1, %expand-funmacdefs-2): New functions.
	* compiler.lisp (c-form-table): Add SYSTEM::FUNCTION-MACRO-LET.
	(c-FUNCTION-MACRO-LET): New function.

	* lispbibl.d (Rectype_Macro, Rectype_FunctionMacro): New enumeration
	items.
	(Macro, FunctionMacro): New types.
	(macro_length, functionmacro_length): New macros.
	(TheMacro, TheFunctionMacro): New macros.
	(macrop, functionmacrop): New macros.
	(allocate_macro, allocate_functionmacro): New macros.
	(fehler_function): New declaration.
	* error.d (fehler_function): New function.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Macro and
	  Rectype_FunctionMacro.
	(COERCE): When the symbol has both a function and a macro, use the
	  function.
	(enum_hs_macro, enum_hs_function_macro): New enum items.
	(heap_statistics_mapper): Update.
	* io.d (pr_orecord): Treat Rectype_Macro and Rectype_FunctionMacro.
	* record.d (SYS::MAKE-MACRO, SYS::MACROP, SYS::MACRO-EXPANDER)
	(SYS::MAKE-FUNCTION-MACRO, SYS::FUNCTION-MACRO-P)
	(SYS::FUNCTION-MACRO-FUNCTION, SYS::FUNCTION-MACRO-EXPANDER): New
	  functions.
	* eval.d (FUNTAB): Add SYS::FUNCTION-MACRO-FUNCTION.
	(macroexp): Test for Macro instead of cons with car = SYS::MACRO.
	(macroexp0): Likewise.
	(eval1): Treat Rectype_FunctionMacro.
	* control.d (FUNCTION): Treat Rectype_FunctionMacro.
	(MACRO-FUNCTION): Test for Macro instead of cons with car =
	  SYS::MACRO.
	* symbol.d (SYS::%PUTD): Test for Macro instead of cons with
	  car = SYS::MACRO.
	* defmacro.lisp (make-macro-expander): Renamed from
	  make-macro-expandercons.
	* init.lisp: Use function sys::make-macro instead of cons 'sys::macro.
	(%expand-form): Treat FunctionMacros like functions.
	  Test for Macro instead of cons with car = SYS::MACRO.
	(defmacro) : Use function sys::make-macro instead of cons
	  'sys::macro.
	* trace.lisp (trace1): Use function sys::make-macro instead of cons
	  'sys::macro.
	* places.lisp (MACRO-FUNCTION): Likewise.
	* compiler.lisp: Import sys::make-macro-expander.
	(funtab): Add SYS::FUNCTION-MACRO-FUNCTION.
	(fenv-search): Return more values, to deal with the FunctionMacro
	  case.
	(c-form, macroexpand-form): Update for changed fenv-search. Call
	  *macroexpand-hook* directly.
	(c-FUNCTION): Update for changed fenv-search.
	(c-MACROLET): Update.
	(c-APPLY): Update for changed fenv-search.
	(compile): Test for Macro instead of cons with car = SYS::MACRO.
	(compile-toplevel-form): Update for changed fenv-search.
	(disassemble): Test for Macro instead of cons with car = SYS::MACRO.
	* describe.lisp (describe-object): Treat SYS::MACRO and FUNCTION-MACRO.

	* init.lisp (MACRO-EXPANDER): Remove macro.
	* macros1.lisp (defmacro-special): New macro.
	(and, or, prog1, prog2, when, unless, psetq, multiple-value-list)
	(multiple-value-bind, multiple-value-setq, locally, case, cond):
	  Define macros using defmacro-special.

	* constobj.d (O(version)): Bump version number.
	(O(old_version)): Remove.
	* misc.d (SYSTEM::VERSION): Don't test for O(old_version) any more.
	* control.d (SYS::OLD-MACRO-FUNCTION): Remove function.
	* pathname.d (SYS::OLD-OPEN): Remove function.
	* record.d (CLOS::OLD-%ALLOCATE-INSTANCE): Remove function.
	* subrkw.d: Remove SYS::OLD-OPEN initialization.
	* eval.d (FUNTAB): Remove SYS::OLD-MACRO-FUNCTION, SYS::OLD-OPEN,
	  CLOS::OLD-%ALLOCATE-INSTANCE. Add MACRO-FUNCTION, OPEN. Move
	  SYS::%COPY-GENERIC-FUNCTION.
	(FUNTABR): Add CLOS::%ALLOCATE-INSTANCE.
	* compiler.lisp (funtab, c-DIRECT-FUNCTION-CALL): Update accordingly.

2000-05-30  Bruno Haible  <haible@clisp.cons.org>

	* pathname.d (MERGE-PATHNAMES): New variable called_from_make_pathname.
	  Accept unbound slot values in this case.
	(MAKE-PATHNAME): If a :DEFAULTS argument is given, don't fill in
	  default values. Call MERGE-PATHNAMES with magic arguments
	  :wild #'make-pathname.

2000-05-30  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (install-bin): Use $(INSTALL_PROGRAM) or $(INSTALL_DATA)
	  instead of "cp -p".
	Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.

2000-05-29  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo.
	Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.

2000-05-26  Bruno Haible  <haible@clisp.cons.org>

	* array.d (elt_move): Add "break" in switch statement.

2000-05-25  Bruno Haible  <haible@clisp.cons.org>

	* makemake.in (MSVCDIR): Change value.
	(TOUCH): On Win32, permit touch to fail.
	(iconv.h, iconv.lib): Fix win32 rules.
	(lisp${LEXE}): Depend on ${XCL_ICONVLIB}.
	(impnotes.html, clisp.html): On Win32, don't use sed.
	(distrib): On Win32, postprocess impnotes.html and clisp.html.

2000-05-23  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu,
	  host_vendor, host_os correctly if $host has more than two hyphens.

2000-05-21  Bruno Haible  <haible@clisp.cons.org>

	* type.lisp (canonicalize-type): Treat STREAM and subclasses like
	  CLOS classes, not like other built-in classes.
	(subtypep): Remove special code for STREAM and subclasses.

2000-05-21  Bruno Haible  <haible@clisp.cons.org>

	* init.lisp (LOAD): Add :external-format argument and conditionally
	  pass it to OPEN.

2000-05-20  Bruno Haible  <haible@clisp.cons.org>

	* type.lisp (canonicalize-type): Recognize the encodings UTF-16 and
	  UTF-7 as covering all of Unicode.

2000-05-20  Bruno Haible  <haible@clisp.cons.org>

	* type.lisp (subtype-integer): Inline the canonicalize-type call.

2000-05-20  Bruno Haible  <haible@clisp.cons.org>

	* sequence.d (SYSTEM::COERCED-SUBSEQ): New function.
	* encoding.d (CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES): New
	  functions.

2000-05-17  Bruno Haible  <haible@clisp.cons.org>

	* reploop.lisp (break-loop): terpri to *debug-io*, not *error-output*.

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

	* reploop.lisp (break-loop): terpri *debug-io* even when it is
	not interactive.

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

	* stream.d (sec_usec, socket_connect): treat NIL as unbound

2000-05-15  Sam Steingold  <sds@gnu.org>

	* init.lisp (defun): emit `c-defun' for not inlined functions too

2000-05-15  Sam Steingold  <sds@gnu.org>

	* socket.d (H_ERRMSG): fixed duplicate test for NO_DATA.

2000-05-15  Sam Steingold  <sds@gnu.org>

	* makemake.in: fixed the previous patch.

2000-05-12  Martin Atzmueller  <marty@cs.utexas.edu>

	* makemake.in: link clhs in the build-directory to the right place.

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

	* stream.d (socket_status): use HANDLE_SET & HANDLE_ISSET macros.

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

	* stream.d (sec_usec): new helper function.
	(socket_wait): use it.
	(socket_status): new Lisp function: interface to select(3).
	(stream_listen): listen properly on binary streams too.
	* constsym.d, subr.d: added LISP:SOCKET-STATUS.

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

	* disassem.lisp (disassemble-machine-code): do not call
	the pager when running under Emacs.

2000-05-03  Guilherme Manika  <gwm@conectiva.com.br>

	* makemake.in (install-bin): Fix duplicate \$(install_root).

2000-04-25  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* spvw.d (print_license): Add paragraph pointing to copyright.html.

2000-04-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* lispbibl.d: On BeOS, define UTF8_CHS, not ISOLATIN_CHS.
	* encoding.d (encoding_from_name): If UTF8_CHS is defined, use
	  CHARSET:UTF-8.

2000-04-14  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_PROG_HLN): Redirect ln's error output.

2000-04-13  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	Support NO_TYPECODES on m68k.
	* lispbibl.d (oint_type_*, oint_data_*): Define differently on
	  m68k-linux.
	(subr_): Add a dummy field to force size a multiple of 4.
	(TheMachineCode): After shifting right, add the missing leftmost
	  bits.
	* spvw.d (main): When determining the heap bounds, compute 'end' with
	  garcol_bit set to 0, even if garcol_bit_o < oint_addr_len-1.
	* encoding.d (nls_table) [NO_TYPECODES]: Force variables of this type,
	  defined in nls_*.c, to be 4-aligned.

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

	* init.lisp (*source-file-types*): added #".cl"
	(search-file <first def>): do not call `reverse'
	(load): swap `*compiled-file-types*' and
	`*source-file-types*' accordingly.

2000-04-05  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* io.d (eof_handling): eof-value defaults to NIL.
	* stream.d (READ-BYTE, READ-INTEGER, READ-FLOAT): Likewise.

2000-04-04  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* unix.d (O_BINARY): Undefine on BeOS.

2000-04-03  Martin Atzmueller  <marty@cs.utexas.edu>

	* _impnotes.html: documented the (abbreviated) keyword-commands
	for the debugger.

	* reploop.lisp (commands1): fixed a typo

2000-04-03  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* lispbibl.d (addressbus_mask) [UNIX_OSF]: Define to
	  0xFFFFFF01FFFFFFFFUL instead of 0xFFFFFFC1FFFFFFFFUL.

2000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* clhs.lisp (*browsers*): Add support for w3m.

2000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* stream.d (finish_tty_output, force_tty_output): Ignore errno value
	  after calling fsync() on BeOS.

	* lispbibl.d (STACK_register): Don't define on BeOS.
	(oint_type_*, oint_data_*): Define differently on BeOS.

	* socket.d (SERVENT_TO_STACK, LISP:SOCKET-SERVICE-PORT): Don't define
	  if UNIX_BEOS. BeOS5 lacks getservent() and getservbyport().
	* spvw.d (main): On BeOS, add :BEOS to *features*.
	* beossock.lisp: New file.
	* init.lisp: On BeOS, load beossock.lisp.
	* makemake.in (LPARTS): Add beossock.
	* gettext/po/Makefile.devel (LISPSOURCES): Add beossock.

	* autoconf/aclocal.m4 (CL_GETHOSTNAME, CL_TCPCONN): For the prototypes
	  of gethostname and inet_addr, on BeOS, include <sys/socket.h> and
	  <netdb.h>.

2000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	Allow building on filesystems lacking symlinks and hard links.
	* autoconf/acgeneral.m4 (AC_OUTPUT_LINKS): If "ln" fails, try "cp -p".
	* autoconf/aclocal.m4 (CL_PROG_CP): Renamed from CL_CP.
	(CL_PROG_LN, CL_PROG_LN_S): New macros.
	(CL_PROG_HLN): Renamed from CL_PROG_LN. Rename cache variable to
	  cl_cv_prog_hln. AC_SUBST HLN instead of LN.
	* configure.in: Update.
	* lndir (link): If "ln" fails, try "cp -p".
	* makemake.in (HLN): Renamed from LN. Use @HLN@ instead of @LN@.
	(LN_S): Renamed from LN.
	(init): Don't create linkkit.
	(linkkit): New rule.
	(modular): Depend on linkkit.
	(UnicodeData.txt): cd into directory before linking.
	(clhs.txt): Likewise. Simplify the symlink. Omit if building
	  in-place.
	* clisp-link.in (link): If "ln" fails, try "cp -p". Redirect stderr
	  to /dev/null.
	(create-module-set): If "ln" fails, try "cp -p".
	* Makefile.devel (src/gettext/configure, src/gettext/config.h.in):
	  Update dependencies.

2000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* Makefile.devel (src--distrib): Create a single tar.gz file.
	(SOURCES): Add clisp.spec, modules, readline, sigsegv, libiconv,
	  all of doc.

2000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_TERMCAP): When both libtermcap and
	  libncurses exist, prefer the latter.

2000-03-12  Bruno Haible  <haible@clisp.cons.org>

	Add support for S390 CPU.
	* lispbibl.d (S390): New macro.

2000-03-31  Bruno Haible  <haible@clisp.cons.org>

	Renamed all *.lsp files to *.lisp.
	* Makefile.devel, configure: Update.
	* _README.en, _README.de, _README.es: Update.
	* _clisp.1, _clisp.html, _clisp.c, _impnotes.html: Update.
	* constobj.d (O(source_file_type)): Change to #".lisp".
	* cfg*.lisp (editor-tempfile): Return "lisptemp.lisp".
	* edit.lisp (editor-tempfile): Likewise.
	* compiler.lisp (compile-file, compile-file-pathname): Use ".lisp"
	  as default pathname type.
	* defs1.lsp (default logical pathname translations): Map ".LISP" to
	  ".lisp".
	* init.lsp (*source-file-types*): Set to (#".lisp" #".lsp").
	* clisp-link.in: Update.
	* makemake.in: Update.
	* gettext/po/{Makefile.devel,clisp-xgettext}: Update.
	* acorn/swap-ext.pl: Update.
	* nextapp/Lisp/Coordinator.m: Update.
	* os2/{convert.bax,interpreted.in}: Update.
	* modules/bindings/linuxlibc5/Makefile: Update.
	* modules/bindings/linuxlibc6/Makefile: Update.
	* modules/clx/mit-clx/{Makefile*,README.CLISP,link.sh}: Update.
	* modules/clx/new-clx/{Makefile.in,README,link.sh.in,clx.f,
	  clx-ini.lisp,clx.lisp,demos/sokoban.lisp}: Update.
	* modules/regexp/{Makefile.in,README,configure.in}: Update.
	* modules/wildcard/{Makefile.in,configure.in}: Update.
	* modules/postgresql642/Makefile: update

2000-03-30  Bruno Haible  <haible@clisp.cons.org>

	* lispbibl.d (hz): Undefine.

2000-03-30  Bruno Haible  <haible@clisp.cons.org>

	* stream.d (oconv_unshift_output_unbuffered_)
	(oconv_unshift_output_buffered_): Remove junk after #undef.

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

	concatenated-stream-streams compiles with ANSI now
	* stream.d (concatenated_stream_streams): return
	`strm_concat_list', not `strm_concat_totallist'

2000-03-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Change distribution of *_frame_info values: merge
	  CBLOCK_frame_info and CTAGBODY_frame_info into
	  CBLOCK_CTAGBODY_frame_info. Change CALLBACK_frame_info so that it
	  has skip2_bit set to 0.
	(callback_bit_t): Change meaning and value.
	(fun_bit_t): Change value.
	(cframe_bit_t, nested_bit_t): Swap values.
	* eval.d (unwind): Update.
	* debug.d (print_stackitem): Update. For a CBLOCK_frame, print the
	  block name, not the entire block cons.

2000-03-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clisp-link.in: Always pass "-norc" flag to lisp.run.

2000-03-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clisp-link.in (create-module-set): Remove generation of variables
	  wfiles_o and wfile_list.

2000-03-21  Sam Steingold  <sds@gnu.org>

	* inspect.lsp: use a vector instead of a hash for inspected
	objects.
	* clhs.lsp (*browsers*): support more browsers
	* makemake.in: fixed installation of clhs.txt

2000-03-20  Sam Steingold  <sds@gnu.org>

	* modules/clx/new-clx/Makefile.in:
	(CLISP): call clisp with '-norc -q'
	(clx.d): `e2d' bug workaround: remove ^e_$

2000-03-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_STRERROR): New macro.
	* configure.in: Call it.
	* unixconf.h.in (HAVE_STRERROR): New macro.
	* unix.d (strerror): New declaration.
	* lispbibl.d (init_errormsg_table): Remove declaration.
	* errunix.d (sys_nerr, sys_errlist): Don't declare if HAVE_STRERROR.
	(strerror) [!HAVE_STRERROR]: New function.
	(errormsg_table): Remove variable.
	(init_errormsg_table): Remove function.
	(get_errormsg): New function.
	(OS_error_internal, errno_out): Use get_errormsg instead of
	  errormsg_table.
	* spvw.d (main): Don't call init_errormsg_table.

2000-03-14  Sam Steingold  <sds@gnu.org>

	Integrated inspect
	* inspect.lsp: new file
	* init.lsp: load inspect
	* makemake.in (LPARTS): added inspect

2000-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Add BeOS support.
	  Based on patch by Alexis Rivera Rios <ahrivera@yahoo.com>.
	* unix.d: Likewise.

	* autoconf/aclocal.m4 (CL_READLINK): Check the return type as well;
	  it may be 'int' or 'ssize_t'. Define RETREADLINKTYPE.
	* unixconf.h.in (RETREADLINKTYPE): New macro.
	* unix.d (readlink): Use it.

	* autoconf/aclocal.m4 (CL_GETHOSTNAME): Try 'unsigned int' as well.

	* autoconf/aclocal.m4 (RL_SELECT, CL_SELECT): Include <sys/socket.h>.
	  Try 'struct fd_set' as well.

2000-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (compile-file): Don't pass a third argument to the
	  "~%~D error~:P, ~D warning~:P" format string.

	* lisparit.d: Don't use invalid syntax "## ".
	* posixmath.d: Don't use invalid syntax "## ".
	(POSIX:BOGOMIPS): Set mv_count after computing value1, not before.

	* clhs.lsp: The code lives in package SYSTEM, not LISP.
	  Bind *package* while reading clhs.txt.
	  Verify that the COMMON-LISP symbol is an exported one.

	* lndir: Fix defaultIFS, broken by Sam's previous patch 1999-12-23.

	* nls_iso8859_8.c: Regenerate using newest unicode.org table.

	* cc_sparc.il: Remove obsolete file.

2000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Makefile.devel, configure, makemake.in: Drop oldoldreadline and
	  oldreadline.

2000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (main): Emit warning if run without -B command line argument.

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

	* stream.d (socket-server): treat NIL as unbound.

2000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove DOS (EMUNIX && !EMUNIX_PORTABEL, DJUNIX, WATCOM) ports.
	* errdjgpp.d: Remove file.
	* lispbibl.d: Remove support for DOS ports.
	(OS2): Renamed from DOSPC.
	(EMUNIX_PORTABEL): Remove macro, assume it defined whenever EMUNIX
	  is defined.
	(DJUNIX, WATCOM): Remove macros.
	(PATHNAME_MSDOS, PATHNAME_EXT83): Remove macro.
	* msdos.d: Likewise.
	* aridecl.d, arilev0.d, arilev1.d, constobj.d, constsym.d, error.d,
	  errunix.d, genclisph.d, hashtabl.d, pathname.d, spvw.d,
	  spvw_memfile.d, spvw_sigint.d, spvw_sigwinch.d, stream.d, time.d:
	  Update.
	* cfgdos.lsp, complete.lsp, defs1.lsp, describe.lsp, edit.lsp,
	  format.lsp, init.lsp, keyboard.lsp, macros2.lsp, runprog.lsp:
	  Remove DOS feature dependencies.
	* makemake.in: Remove support for dos, dosdjgpp, doswatcom.
	(INCLUDEDIR): Remove variable.
	* gettext/po/Makefile.devel (DSOURCES): Remove errdjgpp.
	* FILES.1: Update.

2000-03-08  Martin Atzmueller  <marty@cs.utexas.edu>

	* posix.lsp (resolve-host-ipaddr):
	use :addrtype everywhere
	(hostent): define struct-slot "addrtype" instead of "addr-type"

2000-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-object) [FUNCTION]: If the function's name
	  names a macro, recommend (DISASSEMBLE (MACRO-FUNCTION 'name))
	  instead of (DISASSEMBLE #'name).
	  Reported by Tijs van Bakel <smoke@casema.net>.

2000-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_terminal_stream_, rl_memory_abort): Use
	  rl_gnu_readline_p instead of rl_present_p.
	(init_streamvars): Call _rl_enable_paren_matching.
	* noreadline.d (rl_gnu_readline_p): Renamed from rl_present_p.

2000-03-03  Sam Steingold  <sds@gnu.org>

	* clhs.lsp (browse-url): expanded error message.

2000-03-02  Sam Steingold  <sds@gnu.org>

	* clos.lsp (slot-names): new function.
	* describe.lsp (describe-slotted-object): use it.
	(list-length-dotted): new function.
	(describe-object): use it.

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

	* clhs.lsp, clhs.txt: new files.
	* init.lsp: load clhs.

2000-02-29  Sam Steingold  <sds@gnu.org>

	* loop.lsp (destructure-vars, destructure-type): use tail recursion.

2000-02-28  Martin Atzmueller  <marty@cs.utexas.edu>

	* reploop.lsp: new and shorter debugger/stepper/main commands;
	('error :e) command for printing the error-message again;
	('backtrace-l, :bl, 'frame-limit, :fl) implemented something
	similar to the "print-frame-limit"-issue in the TODO list.
	Translated the comments.

2000-02-18  Sam Steingold  <sds@gnu.org>

	Implemented the ANSI CL `with-compilation-unit' macro.
	* compiler.lsp (with-compilation-unit): new macro.
	(*c-top-call*): new variable.
	(c-report-problems, c-reset-globals): new functions.
	(compile-file): use them.
	(init.lsp, defs3.lsp): export `with-compilation-unit'.

2000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Version 2000-03-06 released.

2000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* unix.d: Use clock_t instead of CLOCK_T.
	* encoding.d: Include <string.h>.
	* hashtabl.d (hashcode4_atom): Add default case to switch statement.

2000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* dutch.lsp: New file, from Tijs van Bakel <smoke@casema.net>.
	* init.lsp: Load it.
	* makemake.in (LPARTS): Add dutch.
	* spvw_language.d (language_dutch): New macro.
	(init_language_from): Test for values NEDERLANDS and DUTCH.
	(init_language): Deal with language_dutch.

2000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (charset_range): Define only if #ifdef UNICODE.
	(init_encodings): Initialize O(internal_encoding) only if #ifdef
	  UNICODE.
	* stream.d (FILE-STRING-LENGTH): If UNICODE is not defined, assume
	  min_bytes_per_char and max_bytes_per_char to be 1.

2000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (SOCKET-SERVER): In the error message, output the argument,
	  not the symbol STREAM.

2000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defmacro.lsp (macro-call-error): Add missing ~S to English
	translation.
	* describe.lsp (describe-object): Fix English message.
	Reported by Tijs van Bakel <smoke@casema.net>.

2000-02-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (sbNvector_atype, bNvector_atype, type_bits_to_atype):
	  New macros.
	* array.d (copy_sbvector, array_element_type, test_displaced): Use
	  sbNvector_atype and bNvector_atype.
	* hashtabl.d (hashcode_bvector): Use sbNvector_atype.
	* sequence.d (get_seq_type): Use sbNvector_atype and bNvector_atype.

2000-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Don't install emacs/*.el any more.

2000-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* arimips.d (subx_loop_down): If compiling for n32 ABI, the fifth
	  argument comes in a register, not from the stack.

2000-02-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (oint_symbolflags_shift): Remove obsolete definition.

2000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Permit setting *terminal-encoding* to an iconv based stream.
	* lispbibl.d (set_terminalstream_external_format): New declaration.
	* stream.d (set_terminalstream_external_format): New function.
	* encoding.d (SYSTEM::SET-FOREIGN-ENCODING): Call it.

2000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* errunix.d (init_errormsg_table): Add EILSEQ.

2000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (encoding_from_name): Recognize ISO-8859-3.

2000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure: Create a libiconv subdirectory, link over the configure
	  script, and run it with --enable-static --disable-shared.
	* win32msvc/INSTALL: Must pre-build libiconv.
	* makemake.in (USE_LIBICONV, XCL_ICONVLIB): New variables.
	(FILES): On Unix, add libiconv.a.
	(LIBS): Ad $XCL_ICONVLIB.
	(EVERY_INCLUDES_H): Add iconv.h.
	(iconv.h, libiconv.a): New targets.
	(clean1): Also remove libiconv.a.
	(clean4): Also remove iconv.h.
	* lispbibl.d (GNU_LIBICONV): Define always. Include "iconv.h".
	(max_bytes_per_chart): Increase to 8, for ISO-2022-CN[-EXT].
	* stream.d: Treat GNU_LIBICONV like HAVE_ICONV.
	(CLISP_INTERNAL_CHARSET): If using GNU_LIBICONV, define to
	  "UCS-2-INTERNAL".
	(iconv_init): New macro.
	(iconv_mblen): After iconv_open, call iconv_init. Treat E2BIG
	  correctly.
	(iconv_mbstowcs): After iconv_open, call iconv_init. Eliminate gcc
	  warning.
	(iconv_wcslen): After iconv_open, call iconv_init. Treat E2BIG
	  correctly.
	(iconv_wcstombs): After iconv_open, call iconv_init.
	(iconv_range): Likewise.
	(ChannelStream_init): Likewise.
	* pseudofun.d: Treat GNU_LIBICONV like HAVE_ICONV.
	* constsym.d: Add MACINTOSH alias. Add symbols for newly imported
	  encodings from libiconv.
	* encoding.d: Treat GNU_LIBICONV like HAVE_ICONV.
	(iconv_first_sym, iconv_last_sym, iconv_num_encodings): New macros.
	(MAKE-ENCODING): For iconv-based encodings, use max_bytes_per_chart,
	  not 6.
	(init_encodings): Define CHARSET:MACINTOSH and all symbols
	  corresponding to new imported encodings from libiconv.
	(encoding_from_name): Map "eucJP" etc. to the new encodings.
	* type.lsp (table filled by get-charset-range): Avoid filling the
	  cache with large interval lists (comparatively easy to compute).
	* Makefile.devel (CONFIGURES): Add libiconv/configure.
	(libiconv/autoconf/aclocal.m4, libiconv/configure): New rules.

2000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/Makefile (ALL): Add nls_iso8859_16.c.
	(nls_iso8859_16.c): New rule.
	* nls_iso8859_16.c: New file.
	* encoding.d: Include nls_iso8859_16.c.
	(nls_tables): Add nls_iso8859_16.
	(encoding_from_name): Accept ISO-8859-16.
	* pseudofun.d (nls_iso8859_16_table): New entry.
	* makemake.in (NLS_INCLUDES): Add nls_iso8859_16.

2000-01-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* src/asmi386.sh: Terminate the here documents with EOF, not \EOF.

2000-01-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* modules/regexp/regexp.lsp (regexp-exec): Remove wrong declaration.

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

	* modules/regexp/regexp.lsp (regexp-compile): use `assert'
	(regexp-exec): `assert' that `string'  is a string

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

	* posixmisc.d: new file
	* unixaux.d (sysinfo_, resource_usage_limits_): moved to
	posixmisc.d

1999-12-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (translate_version): Don't access Car(*subst) before
	  checking whether consp(*subst).

1999-12-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_ctype.d (init_ctype): Recognize more language codes:
	  "af" (afrikaans), "ca" (catalan), "eu" (basque), "fo" (faeroese),
	  "ga" (irish), "gd" (scottish), "gl" (galician), "sq" (albanian),
	  "eo" (esperanto), "mt" (maltese), "be" (byelorussian),
	  "et" (estonian), "lt" (lithuanian), "lv" (latvian), "uk" (ukrainian).
	  Recognize more aliases: "english", "slovenian", "macedonian",
	  "serbian", "arabic".
	  Change default: KOI8-R for "ru" (russian) instead of ISO-8859-5,
	  ISO-8859-5 for "sr" instead of ISO-8859-2.

1999-12-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/Makefile (ALL): Add nls_koi8_u.c.
	(nls_koi8_u.c): New rule.
	* nls_koi8_u.c: New file.
	* spvw_ctype.d (init_ctype): Accept KOI8-U.
	* encoding.d: Include nls_koi8_u.c.
	(nls_tables): Add nls_koi8_u.
	(encoding_from_name): Accept KOI8-U.
	* pseudofun.d (nls_koi8_u_table): New entry.
	* makemake.in (NLS_INCLUDES): Add nls_koi8_u.

1999-12-29  Sam Steingold  <sds@gnu.org>

	* unixaux.d (sysinfo_): added _SC_THREAD_THREADS_MAX
	* posix.lsp (sysinfo): ditto

1999-12-28  Sam Steingold  <sds@gnu.org>

	* posixmath.d: redefine `floor' correctly
	(to_double, N_D): use functions instead of macros
	* posix.lsp: `print-object' for `rlimit' and `user-data'
	* init.lsp: load posix after clos
	* eval.d: removed all syscalls
	* constpack.d: added package POSIX
	* spvw.d, package.d: removed POSIX

1999-12-23  Sam Steingold  <sds@gnu.org>

	* subr.d, constsym.d: added `bogomips' and `resource_usage_limits_'
	* posix.lsp: export `bogomips' and `resource-usage-limits',
	reduce `sysinfo'
	* posixmath.d (bogomips): LISPFUNN now
	* unixaux.d (sysinfo): use uname(2) instead of sysinfo(2),
	(resource_usage_limits_): new LISPFUNN

1999-12-22  Sam Steingold  <sds@gnu.org>

	* unixaux.d (sysinfo): new function
	* subr.d, constsym.d: added `sysinfo'
	* eval.d: removed the posix functions
	* init.lsp: load the new file posix.lsp
	* posix.lsp: new file
	* makemake.in (LPARTS): added posix
	* pathname.d (user_data_): require argument
	* posixmath.d (bogomips): new function
	* socket.d (resolve_host_ipaddr_): require argument

1999-12-21  Sam Steingold  <sds@gnu.org>

	* posixmath.d: new file; erf(3m), bessel(3m) and gamma(3m)
	are now accessible in the package POSIX with --export-syscalls.
	* makemake.in, gettext/po/Makefile.devel: added `posixmath'.
	* lisparit.d: include posixmath.c.
	* subr.d, eval.d, constsym.d: added the functions.
	* constobj.d, package.d (init_packages), spvw.d
	(init_symbol_tab_2): added package POSIX.
	* socket.d (resolve_host_ipaddr): moved to POSIX.
	* pathname.d (file_stat, user_data): ditto.
	* compiler.lsp (c-DIRECT-FUNCTION-CALL): mention the arithmetic
	functions.
	(*deprecated-functions-list*): do not deprecate functions in POSIX.
	* init.lsp: export the functions from POSIX.

1999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (iconv_wcslen): At the end, call iconv with NULL input.
	(iconv_wcstombs): At the end of the standalone case, call iconv with
	  NULL input.
	(oconv_unshift_output_unbuffered): New macro.
	(oconv_unshift_output_unbuffered_): New function.
	(finish_output_unbuffered, force_output_unbuffered, close_ochannel):
	  Call oconv_unshift_output_unbuffered.
	(oconv_unshift_output_buffered): New macro.
	(oconv_unshift_output_buffered_): New function.
	(finish_output_buffered, close_buffered): Call
	  oconv_unshift_output_buffered.

1999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Update for
	  autoconf-2.12. Use AC_CACHE_CHECK instead of AC_CHECK_VAL.

1999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_ICONV): Check for the iconv function twice,
	  once in libc and once in libiconv, for OSF/1 and FreeBSD. Define
	  LIBICONV.
	* makemake.in: Use @LIBICONV@ like @LIBTERMCAP@ and @LIBDL@.

1999-12-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/ftp.unicode.org/UnicodeData.txt: Upgrade to Unicode
	  version 3.0.

1999-12-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/Makefile: Use plain-text tables instead of *.in files.
	* utils/unicode/nls_table.c: New file.
	* utils/unicode/nls_table.java, utils/unicode/nls_txt_to_in.java:
	  Remove files.
	* utils/unicode/ftp.unicode.org/*.TXT: Remove files.

1999-12-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (iconv_mbstowcs, iconv_wcstombs): When called from a
	  stream, and when valid data is followed by invalid data (EILSEQ),
	  return the converted valid data and don't signal an error yet.

1999-11-30  Sam Steingold  <sds@gnu.org>

	* spvw.d (init_object_tab): add :SYSCALLS to *FEATURES* when
	EXPORT_SYSCALLS is defined.

1999-11-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (utf8_mblen, utf8_mbstowcs): Make the UTF-8 decoder
	  "safe": Reject overlong byte sequences.

1999-11-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (char_width): New declaration.
	* charstrg.d (non_spacing_table_data, nonspacing_table_ind): New
	  arrays.
	(char_width, CHAR-WIDTH, STRING-WIDTH): New functions.
	* stream.d (wr_ss_lpos): Call char_width instead of graphic_char_p.
	  Don't assume every character increases the line position by 1.
	(write_char): Likewise.
	* io.d (pphelp_string_width): New function.
	(justify_end_eng, justify_end_weit): Use pphelp_string_width instead
	  of the string's length.
	* compiler.lsp (subr-info): Add char-width and string-width.
	* describe.lsp (write-to-short-string): Use string-width instead of
	  the string's length.
	* format.lsp (format-padded-string, format-justified-segments):
	  Likewise.

1999-11-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (Array_type_simple_bit_vector): New macro.
	(simple_bit_vector_p, bit_vector_p): Use it.
	* spvw_typealloc.d (allocate_bit_vector): Likewise.

1999-11-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* asmi386.sh and others: Use temporary files for the sed scripts.
	  GNU sed-2.05 concatenates multiple -e options to a single script
	  with embedded newlines, GNU sed-3.02 does not.

1999-11-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/acgeneral.m4 (AC_ARG_PROGRAM): Create `conftestsed' once
	  only.

1999-11-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (directory_diff_ab): Set new_piece to
	(cons ':directory subdirs), not (list ':directory subdirs).

1999-11-08  Valeriy E. Ushakov  <uwe@ptc.spbu.ru>

	* lispbibl.d (NEED_temp_mv_count, NEED_temp_value1): Define if
	  SPARC && UNIX_NETBSD.

1999-11-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (TheSarray, TheSbvector, TheCodevec): Fix typo.

1999-11-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* modules/clx/mit-clx/clx.lsp (base-char): Don't redefine in CLISP.

1999-11-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* affi.d (affi_call_argsa): Treat simple 8/16/32-bit-vectors like
	  non-simple ones. Use array_displace_check instead of
	  iarray_displace_check.
	* stream.d (test_n_bytes_args): Use array_displace_check instead of
	  iarray_displace_check.
	* sequence.d (READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Likewise.

1999-10-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp (define-condition): Accept a :DEFAULT-INITARGS option.

1999-10-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (elt_reverse, elt_nreverse): New declarations.
	* array.d (elt_reverse, elt_nreverse): New functions.
	* sequence.d (REVERSE): For vectors, use elt_reverse.
	(NREVERSE): For vectors, use elt_nreverse.

1999-10-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (uint1_p, uint2_p, uint4_p): New macros.
	(fehler_index_range, fehler_store, elt_copy, elt_move, elt_fill):
	  New declarations.
	* array.d (fehler_index_range): Make global.
	(fehler_store): New function, taken out of storagevector_store.
	(storagevector_store): Call it.
	(bit_copy, elt_copy_*_*, elt_copy): New functions.
	(elt_move_*, elt_move): New functions.
	(elt_fill): New function.
	(VECTOR-PUSH-EXTEND): Use the elt_copy_*_* functions.
	(ssbvector_push_extend): Use elt_copy_8Bit_8Bit.
	(make_storagevector): Use elt_fill.
	(reshape): Use elt_copy for speedup.
	* sequence.d (fehler_vector_index_range): New function.
	(copy_seqpart_into): For vectors, use elt_copy or elt_move.
	(MAKE-SEQUENCE, FILL): For vectors, use elt_fill.

1999-10-29  Sam Steingold  <sds@ksp.com>

	* modules/regexp/regexp.lsp (with-loop-split): New macro.
	(regexp-compile, regexp-exec, regexp-split): New functions.
	(match-once, %match): Use `regexp-compile' and `regexp-exec'.
	(regexp-compile, regexp-exec, regexp-split, with-loop-split): Export.

1999-10-22  Sam Steingold  <sds@ksp.com>

	* modules/clx/new-clx/demos/clx-demos.lsp (x-host-display):
	return 3 values (host, server, screen).
	Compile `qix' and `socoban' when compiling `clx-demos'.

1999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (bit_op): Fix memory overrun bug. Require count > 0.
	(bit_up): Test for len==0 before calling bit_op.

1999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (bit_compare): Fix memory overrun bug. Require count > 0.
	  Optimize the case index1 == index2 mod 8.
	* lispbibl.d (bit_compare): Require count > 0.
	* predtype.d (equal): Test for len1==0 before calling bit_compare.

1999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Use __sun, not __sun__, as a test for Solaris.

1999-10-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (bit_compare, bit_op): Use `const'.

1999-10-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (bitpack, uint_bitpack, ...): Use 32-bit words if possible.

1999-10-18  Sam Steingold  <sds@ksp.com>

	* modules/clx/new-clx/demos/clx-demos.lsp: new file.
	define the clx-demos package and load the other demos.
	(getenv): get the environment variable.
	(x-host-display): parse $DISPLAY.
	(x-open-display): open the display according to $DISPLAY.
	* modules/clx/new-clx/demos/qix.lsp (qix): use `x-open-display'.
	* modules/clx/new-clx/demos/sokoban.lsp (init-sokoban): use
	`x-open-display'.

1999-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Introduce new primitive types for simple vectors with element-type
	(UNSIGNED-BYTE n), n = 2,4,8,16,32.
	* lispbibl.d (STANDARD_8BIT_TYPECODES): Define sb2vector_type etc.
	  and b2vector_type etc. Define case_sb2vector, case_ob2vector,
	  case_b2vector etc.
	(case_array): Include case_b2vector etc.
	(Rectype_b2vector, Rectype_Sb2vector, etc.): New rectype values.
	(arrayflags_notbytep_bit): Remove.
	(Array_type_b2vector, Array_type_sb2vector, etc.): New macros.
	(TheSarray, TheSbvector): Add sb2vector_type etc.
	(TheCodevec): Needs only s8bvector_type.
	(TheIarray): Add b2vector_type etc.
	(TheVarobject, ThePointer): Add sb2vector_type, b2vector_type, etc.
	(vectorp, simplep, array_simplep, simple_string_p, stringp): Update
	  for changed Rectype values.
	(simple_bit_vector_p, bit_vector_p): Take two arguments now.
	(byte_vector_p, general_byte_vector_p): Remove macros.
	(arrayp): Update for changed Rectype values.
	(cclosurep): Assume the codevector is an 8bit-vector.
	(case_Rectype_Sb2vector_above, case_Rectype_ob2vector_above)
	(case_Rectype_b2vector_above, etc.): New macros.
	(allocate_bit_vector): Take two arguments now.
	(DYNAMIC_BIT_VECTOR): Update.
	(allocate_byte_vector): Remove declaration.
	* spvw_objsize.d (size_sb2vector etc.): New macros.
	(objsize): Add cases for sb2vector, ob2vector, etc.
	(objsize_sb2vector etc.): New inline functions.
	(init_objsize_table): Add cases for sb2vector, ob2vector, etc.
	* spvw_global.d (init_mem_heaptypes): Add cases for sb2vector,
	  ob2vector, etc.
	* spvw_genera1.d (walk_area): Add cases for ob2vector etc. and
	  Rectype_b2vector, Rectype_Sb2vector etc.
	(build_old_generation_cache): Add cases for ob2vector etc. and
	  Rectype_b2vector, Rectype_Sb2vector etc.
	* spvw_update.d (update_varobject): Add cases for ob2vector etc. and
	  Rectype_b2vector, Rectype_Sb2vector etc.
	* spvw_garcol.d (gc_mark): Add cases for sb2vector, ob2vector, etc.
	  and Rectype_b2vector, Rectype_Sb2vector etc.
	* spvw_typealloc.d (allocate_bit_vector): Take two arguments now.
	(allocate_handle): Update.
	* spvw_circ.d (get_circ_mark): Add cases for b2vector etc. and
	  Rectype_b2vector etc.
	(get_circ_unmark): Likewise.
	(subst, subst_circ_mark, subst_circ_unmark): Likewise.
	* array.d (copy_sbvector): Make it work with any simple-[n]bit-vector.
	(allocate_byte_vector): Remove function.
	(iarray_displace, iarray_displace_check, array_displace_check):
	  Remove special treatment of indirect byte-arrays.
	(storagevector_aref, storagevector_store): Update: storage-vectors
	  are now always simple.
	(array_element_type): Update.
	(BIT, SBIT): Likewise.
	(bit_up): Simplify: Array_type_bvector now implies Atype_Bit. Don't
	  set arrayflags_notbytep_bit.
	(VECTOR-PUSH-EXTEND): Use allocate_bit_vector in place of
	  allocate_byte_vector.
	(allocate_bit_vector_0): Update.
	(make_ssstring): Don't set arrayflags_notbytep_bit.
	(make_ssbvector): Create an 8Bit vector.
	(ssbvector_push_extend): Update.
	(make_storagevector): Use allocate_bit_vector in place of
	  allocate_byte_vector.
	(test_displaced): Update.
	(MAKE-ARRAY): Update. Don't set arrayflags_notbytep_bit.
	(reshape): Update.
	(SYS::MAKE-BIT-VECTOR): Update.
	* eval.d (get_closure): Create an 8Bit vector.
	(eval_closure, apply_closure, funcall_closure): Assume the
	  codevector is an 8bit-vector.
	* record.d (SYS::CLOSURE-CODEVEC): Likewise.
	(SYS::MAKE-CODE-VECTOR): Create an 8bit-vector.
	(SYS::%MAKE-CLOSURE): Assume the codevector is an 8bit-vector.
	* hashtabl.d (hashcode_bvector): Remove special treatment of indirect
	  byte-arrays.
	(hashcode3_atom): Treat sb2vector_type, b2vector_type etc. and
	  Rectype_Sb2vector, Rectype_b2vector etc.
	(hashcode4_vector_2Bit etc.): Remove ->data indirection for storage
	  vectors.
	(hashcode4_vector): Update.
	(hashcode4_atom): Treat b2vector_type etc. and Rectype_b2vector etc.
	(sxhash_atom): Likewise.
	* predtype.d (equal): Simplify: Array_type_bvector now implies
	  Atype_Bit.
	(elt_compare_T_2Bit etc., elt_compare_Bit_2Bit etc. etc.): Remove
	  ->data indirection for storage vectors.
	(elt_compare): Update.
	(equalp): Treat b2vector_type etc. and Rectype_b2vector etc.
	(BIT-VECTOR-P, SIMPLE-BIT-VECTOR-P): Update.
	(TYPE-OF, CLASS-OF): Simplify: case_obvector now implies Atype_Bit.
	  Treat sb2vector etc. and ob2vector etc. and Rectype_Sb2vector etc.
	  and Rectype_ob2vector etc.
	(COERCE): Update. Optimize treatment of result-type = ARRAY/VECTOR/
	  SIMPLE-ARRAY.
	(enum_hs_simple_2bit_vector etc., enum_hs_2bit_vector): New enum
	  items.
	(enum_hs_byte_vector): Remove enum item.
	(heap_statistics_mapper): Update. Treat sb2vector etc. and ob2vector
	  etc. and Rectype_Sb2vector etc. and Rectype_ob2vector etc.
	* init.lsp: Export simple-2bit-vector etc. and 2bit-vector etc. Don't
	  export BYTE-VECTOR.
	* sequence.d (get_seq_type): Update.
	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Remove ->data indirection
	  for storage vectors.
	* io.d (allocate_syntax_table): Allocate an 8Bit-vector.
	(init_reader): Don't set arrayflags_notbytep_bit.
	(test_dots, read_internal, uninterned_reader): Assume an 8bit-vector.
	(bit_vector_reader, array_reader, structure_reader, closure_reader):
	  Update.
	(prin_object_dispatch): Treat b2vector like normal vector.
	(pr_orecord): Likewise.
	(pr_closure, pr_cclosure_codevector): Assume the codevector is an
	  8bit-vector.
	* encoding.d (string_to_asciz, string_to_asciz_): Create an
	  8bit-vector.
	* stream.d (make_unbuffered_stream, make_buffered_stream): Update.
	(rd_ch_terminal3): Assume ASCIZ-Strings are 8bit-vectors.
	(test_n_bytes_args): Simplify test for 8bit-vector.
	(SYS::READ-N-BYTES, SYS::WRITE-N-BYTES): Remove ->data indirection.
	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): Update.
	* lisparit.d (make_random_state): Update.
	* pathname.d (EXECUTE): Assume ASCIZ-Strings are 8bit-vectors.
	* foreign.d (convert_from_foreign_array_fill): Remove ->data
	  indirection.
	(convert_to_foreign): Simplify test for 8/16/32bit-vector. Remove
	  ->data indirection.
	* affi.d (affi_call_argsa, SYSTEM::MEM-READ, SYSTEM::MEM-WRITE-VECTOR):
	  Update. Simplify test for 8/16/32bit-vector.

1999-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make the TYPECODES model more extensible.
	* lispbibl.d (SUN4_29_1, SUN4_29_2, ACORN_1, ACORN_2, UNIX_SYSV_UHC_2):
	  Remove definitions.
	(TYPECODES): Don't define if we can force alignof(subr_) = 4.
	(oint_type_mask, oint_addr_mask): Remove most old, hand-determined
	  definitions.
	(TB7, ..., TB0): Never define TB5 to -1.
	(SUN3_TYPECODES, PACKED_TYPECODES, STANDARD_TYPECODES)
	(SIXBIT_TYPECODES, SEVENBIT_TYPECODES): Remove all. Replace with
	  STANDARD_8BIT_TYPECODES.
	(BTB7, ..., BTB0): Define.
	(addressbus_mask): Use SUN4_29 instead of SUN4_29_1.
	(subr_): Force alignment 4 if necessary.
	(vectorp, simplep, array_simplep, arrayp): Update for new typecodes.
	* genclisph.d (subr_): Force alignment 4 if necessary.
	(vectorp, arrayp): Update for new typecodes.
	* spvw.d (init_subr_tab_1): If NO_TYPECODES, verify subr_ alignment.
	* spvw_memfile.d (memflags): Update.

1999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_garcol.d (update): Insert braces to avoid gcc warning.

1999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* arilev0.d (sign_of_sint32): For SPARC64, define using shifts.
	(sign_of_sint16): Likewise.
	(mulu16): For SPARC64, use the builtin "umul".
	(mulu16_): Like for SPARC, also for SPARC64.
	(mulu24): For SPARC64, use the builtin "umul".
	(mulu32_): Like for SPARC, also for SPARC64.
	(divu_3216_1616, divu_3232_3232, divu_6432_3232, divu_32_rest)
	(isqrt_64_32): Like for SPARC, also for SPARC64.
	* intlog.d (integerlength8, integerlength16, integerlength32, ord2_32):
	  Don't use SPARC32 version for SPARC64.

1999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/Makefile: Add nls_jisx0201.c to the targets.
	  In the iso-8859-* tables, don't make 0x80..0x9F invalid.
	  Generate nls_koi8_r.c from the ftp.unicode.org table.
	* encoding.d: Include nls_jisx0201.c.
	(nls_tables): Add nls_jisx0201_table.
	(nls_last_sym, nls_num_encodings): Update.
	* pseudofun.d (nls_jisx0201_table): New entry.
	* makemake.in (NLS_INCLUDES): Add nls_jisx0201.

1999-10-15  Sam Steingold  <sds@ksp.com>

	* modules/clx/new-clx/clx.f (get_font_info_and_display): fixed a
	typo (xatom --> xatoms).

1999-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (low_finish_output_unbuffered_socket)
	(low_force_output_unbuffered_socket)
	(low_clear_output_unbuffered_socket): Remove functions.
	(UnbufferedSocketStream_output_init): Use the equivalent pipe
	  functions instead. Use low_write_unbuffered_pipe instead of
	  low_write_unbuffered_handle.
	(low_flush_buffered_socket): Use low_flush_buffered_pipe instead of
	  low_flush_buffered_handle.
	* errunix.d (init_errormsg_table): Change message for EPIPE.

1999-10-05  Sam Steingold  <sds@ksp.com>

	* socket.d (ADDR_TO_STRING): new macro
	(HOSTENT_TO_STACK): use it

1999-09-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* genclisph.d (main): Define minus_bit, needed for minus_wbit. Define
	  minus_wbit, needed for framecode. In end_callback, use `framecode'
	  instead of `mtypecode'. Define uintP, needed for framebottomword,
	  needed for finish_frame, needed for begin_callback.

1999-09-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (c-GLOBAL-FUNCTION-CALL): When pushing forms onto
	  *package-tasks*, quote the arguments only when necessary.

1999-09-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (SET-DISPATCH-MACRO-CHARACTER): Call up_case on sub_char.
	(GET-DISPATCH-MACRO-CHARACTER): Likewise.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (UnbufferedStreamLow_pushfront_byte): Increment status
	  by 1, not by 2.
	(rd_ch_terminal3): Before calling readline(), stuff the pre-read
	  byte into readline's input buffer.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_CONNECT): For namelen, also try the type `socklen_t'.
	  Needed on 64-bit Solaris.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (iconv_wcslen, iconv_wcstombs): Call end_system_call()
	  before signaling an error.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (fehler_uint8): Declare always, not only ifdef HAVE_FFI.
	* error.d (fehler_uint8): Define always, not only ifdef HAVE_FFI.

	* intelem.d (Q_to_I): Define if defined(intQsize), not only if
	  defined(HAVE_FFI) && defined(intQsize). It's needed by DF_to_I.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (klammer_auf, klammer_zu, justify_start, justify_space)
	(justify_end_eng, justify_end_weit, indent_start, indent_end)
	(indentprep_start, indentprep_end, pr_enter1): Test for
	  builtin_stream_p before accessing ->strmtype.
	* encoding.d (SYSTEM::SET-TERMINAL-ENCODING): Likewise.
	* stream.d (CONCATENATED-STREAM-STREAMS, TWO-WAY-STREAM-INPUT-STREAM)
	(TWO-WAY-STREAM-OUTPUT-STREAM, ECHO-STREAM-INPUT-STREAM)
	(ECHO-STREAM-OUTPUT-STREAM): Likewise.
	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): If the synonym stream's
	  target is a Gray stream, recurse through (SETF STREAM-ELEMENT-TYPE).

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_language.d (init_language): Use `ascii_alphanumericp' instead
	  of `alphanumericp'.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_module.d (main_module): Fix type of declaration. Declare extern,
	  to avoid a warning.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* arisparc64.d: Take advantage of the brz and brnz instructions.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* arisparc.d (orc2_loop_up): Use the `orn' instruction.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL):
	  Tweak test for 64-bit sparc: cc defines `__sparcv9', whereas gcc
	  defines `__arch64__'.
	* lispbibl.d (SPARC64): Likewise.

1999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_memfile.d (loadmem): Before quitting, close handle if needed.
	(loadmem_from_handle): Before quitting, always close handle.

1999-08-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_SIGNAL_REINSTALL, CL_SIGACTION_REINSTALL): Enable
	  `volatile' for gotsig.

1999-08-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/varbrace.d: New file.
	* makemake.in (NEED_ANSIDECL): Remove variable.
	(VARBRACE): New Makefile variable.
	(UTILS, XDECL_FILTER, XDECL_DEPENDENCIES): Add `varbrace'.
	* spvw_memfile.d (loadmem_from_handle): Define this function always,
	  not only on UNIX.
	* spvw_sigint.d (react_on_sigint): New function.
	(interrupt_handler, alarm_handler): Use it. Remove #if across
	  function bodies.

	* utils/modprep.d (is_if): Check for "#ifndef" as well.

1999-08-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* ansidecl.d (char_out, next_token, handle_closing_token): Turn
	  macros into inline function definitions. Speed doesn't matter here.

1999-08-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Assume size_t, pid_t, uid_t, gid_t, off_t are defined.
	* aclocal.m4 (CL_GETPWUID): Don't depend on AC_TYPE_UID_T.
	(CL_MMAP): Don't depend on AC_TYPE_SIZE_T, AC_TYPE_OFF_T.
	* configure.in: Don't call AC_TYPE_SIZE_T, AC_TYPE_PID_T,
	  AC_TYPE_UID_T, AC_TYPE_OFF_T.
	* unixconf.h.in: Don't define size_t, pid_t, uid_t, off_t.

	No compiler expands __builtin_strcmp inline.
	* aclocal.m4 (CL_BUILTIN_STRCMP): Remove.
	* configure.in: Don't call CL_BUILTIN_STRCMP.
	* unixconf.h.in: Don't define HAVE_BUILTIN_STRCMP.
	* lispbibl.d (asciz_equal): Don't define as a macro.
	* spvw.d (asciz_equal): Define as a function always.

	Assume clock_t is defined.
	* aclocal.m4 (CL_CLOCK_T): Remove.
	* configure.in: Don't call CL_CLOCK_T.
	* unixconf.h.in: Don't define CLOCK_T.
	* acorn.d: Likewise.
	* time.d (get_run_time): Use clock_t instead of CLOCK_T.

	Assume mode_t is defined.
	* aclocal.m4 (CL_MKDIR): Don't determine MODE_T, use mode_t instead.
	(CL_OPEN): Use mode_t instead of MODE_T. Don't depend on CL_MKDIR.
	* unixconf.h.in: Don't define MODE_T.
	* unix.d: Use mode_t instead of MODE_T.
	* unixaux.d (nonintr_open): Likewise.

	Assume ISC and Minix are dead.
	* configure.in: Don't call AC_ISC_POSIX and AC_MINIX.
	* unixconf.h.in: Don't define _POSIX_SOURCE, _POSIX_1_SOURCE, _MINIX.

	Assume rename() is available.
	* aclocal.m4 (CL_RENAME): Don't test for rename.
	* unixconf.h.in: Don't define HAVE_RENAME.
	* unix.d: Assume rename exists.
	* unixaux.d (rename): Remove function.

	Assume <stdlib.h> exists.
	* aclocal.m4 (CL_ACCESSFLAGS, CL_OPENFLAGS, RL_TERM, CL_MEMSET)
	(CL_MALLOC, CL_FREE, CL_SIGPROCMASK, CL_SIGNAL_REINSTALL)
	(CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL)
	(CL_SIGACTION_UNBLOCK, CL_ABORT, CL_GETENV, CL_PUTENV, CL_SETLOCALE)
	(CL_RLIMIT, CL_VFORK, CL_EXECV, CL_EXECL, CL_WAITPID, CL_RUSAGE)
	(CL_GETCWD, CL_CHDIR, CL_MKDIR, CL_RMDIR, CL_FSTAT, CL_STAT)
	(CL_LSTAT, CL_READLINK, CL_ELOOP, CL_OPENDIR, CL_CLOSEDIR, CL_OPEN)
	(CL_READ_WRITE, CL_WRITE, CL_CHMOD, CL_RENAME, CL_UNLINK, CL_IOCTL)
	(CL_SELECT, CL_SETITIMER, CL_LOCALTIME, CL_GETPWNAM, CL_GETPWUID)
	(CL_GETHOSTNAME, CL_GETHOSTBYNAME, CL_ADDRESS_RANGE, CL_MMAP)
	(CL_MPROTECT, CL_CODEEXEC, CL_SHMGET, CL_SHMAT, CL_SHMCTL)
	(CL_SHM_RMID, CL_DYNLOAD, CL_ICONV, CL_FILECHARSET):
	  Assume <stdlib.h> exists.
	(CL_STDLIB_H): Remove.
	* configure.in: Don't call CL_STDLIB_H.
	* unixconf.h.in: Don't define HAVE_STDLIB_H.

	Assume <stddef.h> exists.
	* aclocal.m4 (CL_STDDEF_H): Remove.
	* configure.in: Don't call CL_STDDEF_H.
	* unixconf.h.in: Don't define HAVE_STDDEF_H.

	Assume waitpid() is available.
	* aclocal.m4 (CL_WAITPID): Don't test for waitpid or <sys/wait.h>.
	* unix.d: Assume waitpid exists.
	* unixaux.d (wait2): Likewise.
	* sigcld.d (end_want_sigcld): Likewise.
	* unixconf.h.in: Don't define HAVE_WAITPID and HAVE_SYS_WAIT_H.

	Assume memset() is available.
	* aclocal.m4 (CL_MEMSET): Don't test for memset.
	(CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK): Assume memset exists.
	* spvw.d: Likewise.
	* unix.d: Likewise.
	* unixaux.d (install_signal_handler): Likewise.
	* unixconf.h.in: Don't define HAVE_MEMSET.
	* win32.d: Likewise.

	* configure.in: Remove AC_C_CONST call.
	* unixconf.h.in (const): Don't define.

	* aclocal.m4 (CL_RAISE): Fix harmless typo.

	* aclocal.m4 (CL_RLIMIT): Prefer RLIMIT_RESOURCE_T="int" to
	  RLIMIT_RESOURCE_T="enum __rlimit_resource".

1999-08-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (check_float_eltype, READ-FLOAT, WRITE-FLOAT): New
	  functions.
	* lispbibl.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
	(DF_to_c_double): Declare always, not only if HAVE_FFI.
	* flo_konv.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
	(DF_to_c_double): Define always, not only if HAVE_FFI.
	* floatpri.lsp (write-float-decimal): Renamed from write-float.
	* lisparit.d (print_float): Call sys::write-float-decimal instead of
	  sys::write-float.

	* type.lsp (canonicalize-type): Call typespec-error if the argument is
	  not a valid typespec.

1999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aridecl.d (FF_exp_low, FF_exp_mid, FF_exp_high): Always choose the
	  IEEE values.
	(DF_exp_low, DF_exp_mid, DF_exp_high): Likewise.

1999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* modules/clx/new-clx/demos/qix.lsp (draw-qix): Don't ignore nlines.
	  Improve herald message.

1999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (PARSE-NAMESTRING): Don't make strong assumptions about
	  the algorithm employed by nreconc. Fixes a bug parsing "~/foo/".

1999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (install_root): New variable.
	(installdirs, install-bin, install-man, install-doc, uninstall-bin)
	(uninstall-man,): Prepend $(install_root) to every installation
	  directory.

1999-07-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_ctype.d (init_ctype): Accept "he" as a new name for "iw".

1999-07-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (BINARY_DISTRIB): Also define on HP-UX 10.

1999-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (init_pathnames) [WIN32_NATIVE]: Follow documented
	  calling convention for GetVersionInfoEx.
	* misc.d (MACHINE-VERSION) [WIN32_NATIVE]: Likewise.

1999-07-26  Jörg Höhle  <hoehle@tzd.telekom.de>

	* screen.lsp (generic-stream-read-char-will-hang-p)
	(generic-stream-clear-input): Define the methods on
	  keyboard-controller, not screen-controller.

1999-07-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Version 1999-07-22 released.

1999-07-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* eval.d (interpret_bytecode_) [MC680X0]: Fix syntax error in
	  S_operand_ignore_ macro.

	* charstrg.d (stringof): Change dotimesC into dotimesL.

1999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* init.lsp (load): Put back the call to ENGLISH. Necessary for
	  internationalization.

1999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_RAISE): New macro.
	* unixconf.h.in (HAVE_RAISE): New macro.
	* configure.in: Call it.
	* unix.d (raise): Declare only if HAVE_RAISE is defined.
	* spvw_sigpipe.d (sigpipe_handler): Use kill(getpid(),...) if
	  HAVE_RAISE is not defined.

1999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (distrib): If BINARY_DISTRIB is defined, distribute
	  clisp-link, linkkit, lisp.a etc. nevertheless, because we don't know
	  whether the user has a C compiler or not.

1999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* record.d (CLOS::%ALLOCATE-INSTANCE): Fix typo in error message.

1999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* asmi386.sh: New optional argument -no-C.
	* Makefile.devel (src/ari80386.msvc.c, src/sp80386.msvc.c): Pass
	  option -no-C to asmi386.sh.

1999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (clisp.html): Substitute CLHSROOT, like in impnotes.html.

1999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (wr_ch_unbuffered_dos, wr_ch_buffered_dos): Output crlf
	  only when obj is #\Newline.

1999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* misc.d (MACHINE-VERSION) [WIN32]: On Win95, use info.dwProcessorType.

1999-07-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (XCFLAGS): Add "-fno-gcse" when using gcc-2.95 on Sparc.

1999-07-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (usage): Reorder command line options. Split into groups.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (SPARC64): New macro.
	  Treat SPARC64 mostly like DECALPHA and MIPS64.
	* arisparc64.d: New file.
	* spsparc64.d: New file.
	* arilev0.d (mulu16, mulu32, mulu32_unchecked, divu_3216_1616)
	(divu_3216_3216, divu_3232_3232, divu_6432_3232): Provide
	  implementations for SPARC64, consistently with arisparc64.d.
	* arilev1.d [SPARC64]: Include arisparc64 instead of arisparc.
	* makemake.in (cpu): Possibly set to sparc64.
	(ARI_ASMD, ARI_ASMS): Possibly add arisparc64.
	(SP_ASMD, SP_ASMS): Possibly add spsparc64.
	* FILES.1: Mention arisparc64, spsparc64, arimips64.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove support for K&R Sparc cc.
	* makemake.in: If TSYS = sun4 and not compiling with GNU C, assume
	  SunPRO C. Drop dependencies and rules for cc_sparc.il.
	* cc_sparc.il: Remove file.
	* FILES.1: Don't mention cc_sparc.il.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Test for `__sparc__',
	  because gcc-2.95 on SparcLinux defines only `__sparc__', not `sparc'.
	* lispbibl.d: Likewise.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU)
	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Distinguish "sparc" and
	  "sparc64" according to the C compiler, not the uname result.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Treat gcc version 3.* like gcc version 2.95.

1999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* arisparc.d (compare_loop_up) [COUNTER_LOOPS]: Bug fix.
	(shiftright_loop_up): Save 1 cycle if count==0.

1999-07-15  Jörg Höhle  <Joerg.Hoehle@gmd.de>

	* affi.d (SYSTEM::MEM-WRITE): No need to check for integerp(wert),
	  it is done later during conversion.

	* socket.d (socket_getpeername): Fix the length argument to
	  gethostbyaddr.

1999-07-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* record.d (FINALIZE): Call coerce_function.

1999-07-09  Jörg Höhle  <hoehle@tzd.telekom.de>

	* stream.d (SOCKET-STREAM-HANDLE): Use TheSocket(), not TheHandle().

1999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (low_clear_input_unbuffered_handle) [WIN32]: Set the
	  ignore_next_LF flag after eating a CR.
	(clear_input_unbuffered) [WIN32]: Don't reset the ignore_next_LF
	  flag.

1999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* win32aux.d (interruptible_active): New variable.
	(temp_interrupt_handler): Query it and set it to FALSE.
	(DoInterruptible): Set it to TRUE only while the thread is running.

1999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* misc.d (MACHINE-VERSION) [WIN32]: Use the info.wProcessorLevel field
	  only on WinNT.

1999-07-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Don't access objects in memory through `oint*' pointers.
	* spvw_mark.d (mark, unmark, marked): Use as_object/as_oint
	  conversions instead of oint* memory access.
	* spvw_update.d (update_STACKs): Use as_oint conversion instead of
	  oint* memory access.
	* spvw_garcol.d (gc_mark): Change type of `dies_' to `object*'.
	(gc_mark_stack, alive): Use as_oint conversion instead of oint*
	  memory access.
	(gc_morris3, update, update_stackobj): Use as_object/as_oint
	  conversions instead of oint* memory access.
	* spvw_memfile.d (update, loadmem_update): Likewise.
	* eval.d (nest_var, funcall_iclosure): Likewise.
	* control.d (make_variable_frame, LET, LET*, SYMBOL-MACROLET)
	(MULTIPLE-VALUE-BIND): Likewise.

1999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/gcc-cccp/cccp.c (output_line_command): In the filename
	  being output, convert backslashes to double backslashes.

1999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make sure the default-file-encoding is set to ISO-8859-1 during
	building, even if the user has set a different LC_CTYPE variable.
	* spvw.d (usage): Add -E option.
	(argv_encoding_file, argv_encoding_pathname, argv_encoding_terminal)
	(argv_encoding_foreign, argv_encoding_misc): New variables.
	(main): Add -E option.
	* _clisp.c (main): Handle -E option.
	* makemake.in (interpreted.mem, *.fas, lispinit.mem, lispinit2.mem)
	(testsuite, $(MODULES)): Together with option "-norc", pass
	  "-Efile ISO-8859-1".
	* encoding.d (encoding_from_name): New function, extracted from
	  init_dependent_encodings. Also accept ISO-8859-10/13/14/15.
	(init_dependent_encodings): Call it. Respect the values of
	  argv_encoding_file, argv_encoding_pathname, argv_encoding_terminal,
	  argv_encoding_foreign, argv_encoding_misc.

1999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Fix interpretation of LC_* and LANG environment variables.
	* spvw_ctype.d (init_ctype): Treat empty environment values like
	  unset environment variables. LANG is not supposed to contain colons.
	  The encoding can be followed by other suffixes.

1999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (GENERATIONAL_GC): Don't define on IRIX.

1999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (NLS_INCLUDES): Add nls_iso8859_10, nls_iso8859_13.
	* encoding.d: Include them.
	(nls_tables): Refer to them.
	* pseudofun.d: Likewise.

1999-06-25  Sam Steingold  <sds@goems.com>

	* describe.lsp (apropos): print the macro for symbol-macro, no
	evaluation.
	(describe-object): ditto.
	Also, describe CAR & CDR for a simple cons.

1999-06-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Don't use Unicode API on Win32. It does not work on Win95.
	* lispbibl.d, win32.d, spvw.d, spvw_debug.d, spvw_language.d,
	  spvw_memfile.d, encoding.d, charstrg.d, pathname.d, stream.d,
	  misc.d, error.d, errwin32.d, win32aux.d: Revert most of 1999-06-20
	  patch.

1999-06-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (asciz_dir_to_pathname_): Change declaration of pathbuf.
	* errwin32.d (OS_error_internal_body): Fix compilation error.

1999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Try to solve startup problems on Win95.
	* spvw.d (main) [TRIVIALMAP_MEMORY]: Call prepare_zeromap with
	  shrinkp=FALSE.

1999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Determine the initial encoding by examining the user's locale.
	* lispbibl.d (init_dependent_encodings): New declaration.
	* spvw_ctype.d: New file.
	* spvw.d: Include <string.h> always.
	  Include spvw_ctype.d.
	(main): Remove LC_CTYPE code, instead call `init_ctype'. Later, call
	  `init_dependent_encodings'.
	* encoding.d (init_dependent_encodings): New function, moved out of
	  init_encodings. default-file-encoding and the others depend on
	  locale_charset.
	(init_encodings): Call init_dependent_encodings.
	* makemake.in (SPVW_INCLUDES): Add spvw_ctype.
	* gettext/po/Makefile.devel (DSOURCES): Add spvw_ctype.

1999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Use Unicode API on Win32.
	* lispbibl.d (wchar, WLITERAL): New macros.
	(wgetenv): New macro.
	(wasciz_out, wasciz_length): New declaration.
	(wasciz_equal, wwasciz_equal): New declaration.
	(n_char_to_string): Renamed from make_string.
	(n_wchar_to_string): New declaration.
	(wasciz_to_string): New declaration.
	(with_string_w0, with_sstring_w0): New macros.
	(n_chart_to_wchar): New declaration.
	* win32.d (wgetenv): New macro.
	* spvw.d (wasciz_length, wasciz_equal, wwasciz_equal): New functions.
	(program_name): Change type to `wchar*'.
	(loadmem): Change declaration.
	(usage): Call wasciz_out instead of asciz_out.
	(main): On Win32 with UNICODE, rename to `wmain'. Change type of
	  argv to `wchar* []'. Change types of argv_lisplibdir, argv_memfile,
	  argv_init_files, argv_compile_files, argv_package, argv_expr,
	  argv_execute_file, argv_execute_args, argv_language, argv_localedir,
	  argv_init_files, argv_compile_files to use `wchar' instead of `char'.
	  Use wasciz_equal, wasciz_to_string, wasciz_out and WLITERAL where
	  appropriate.
	* spvw_debug.d (wasciz_out): New function.
	* spvw_language.d (init_language, init_language_from): Change
	  declarations.
	(init_language_from): Use wasciz_equal instead of asciz_equal.
	(init_language): Use wgetenv instead of getenv where appropriate.
	* spvw_memfile.d (loadmem): Change declaration. Use wasciz_equal
	  instead of asciz_equal where appropriate.
	* encoding.d (n_char_to_string): Renamed from make_string.
	(n_char_to_string_): Renamed from make_string_.
	(n_wchar_to_string_): New function.
	(asciz_to_string, asciz_to_string_): Update.
	(wasciz_to_string_): New function.
	* charstrg.d (n_chart_to_wchar): New function.
	* pathname.d (make_directory, delete_directory)
	(change_current_directory, delete_existing_file)
	(delete_file_if_exists, delete_file_before_rename)
	(rename_existing_file, rename_file_to_nonexisting): Change
	  declaration.
	(asciz_dir_to_pathname): Change declaration. Use n_wchar_to_string
	  instead of make_string.
	(good_drive): Use wchar instead of char.
	(default_drive): Return wchar instead of uintB. Use wchar instead
	  of char.
	(default_directory_of): Use wchar instead of char.
	(assure_dir_exists): Likewise. Use n_wchar_to_string instead of
	  make_string.
	(change_default): Use wchar instead of char.
	(access0): Change declaration.
	(file_exists): Use wchar instead of char.
	(directory_exists, DELETE-FILE, rename_file): Likewise.
	(create_new_file, open_input_file, open_output_file): Change
	  declaration.
	(create_backup_file): Change declaration. Use wchar instead of char.
	(open_file): Use wchar instead of char.
	(extract): Use n_char_to_string instead of make_string.
	(directory_search_1subdir): Use wchar instead of char.
	(directory_search_scandir): Use n_char_to_string instead of
	  make_string. Use wchar instead of char. Use wasciz_to_string instead
	  of asciz_to_string.
	(DIRECTORY): Use n_char_to_string instead of make_string.
	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Use wchar instead
	  of char.
	(init_pathnames): Use n_char_to_string instead of make_string.
	  Use wchar instead of char. Use wgetenv instead of getenv.
	(FILE-WRITE-DATE, SHELL): Use wchar instead of char.
	(argv_lisplibdir): Change declaration.
	* stream.d (make_keyboard_stream): Use wchar instead of char.
	(create_input_pipe): Change declaration.
	(MAKE-PIPE-INPUT-STREAM): Update.
	(create_output_pipe): Change declaration.
	(MAKE-PIPE-OUTPUT-STREAM): Update.
	(create_io_pipe): Change declaration.
	(MAKE-PIPE-IO-STREAM): Update.
	* misc.d (SYS::GETENV): Use wchar instead of char. On Win32 with
	  UNICODE, use _wgetenv. Use wasciz_to_string instead of
	  asciz_to_string.
	(SYS::REGISTRY): Use wchar instead of char.
	* error.d (write_errorasciz, write_errorwasciz): New functions.
	* erramiga.d (OS_error_internal): Use write_errorasciz instead of
	  write_errorstring.
	* errdjgpp.d (OS_error_internal): Likewise.
	* errunix.d (OS_error_internal): Likewise.
	* errwin32.d (OS_error_info): Remove type.
	(OS_error_info_callback): New type.
	(get_OS_error_info): Take a callback and call it, instead of
	  returning the result in a structure. Use wchar instead of char.
	(OS_error_internal_body): New function, split out of
	  OS_error_internal. Call write_errorasciz and write_errorwasciz
	  instead of write_errorstring.
	(SOCK_error): Call write_errorasciz instead of write_errorstring.
	(errno_out_body): New function, split out of errno_out. Call
	  wasciz_out.
	* rexx.d (rexx_getmsg): Use n_char_to_string instead of make_string.
	* win32aux.d (init_win32): Call non-Unicode versions of OemToChar and
	  CharToOem.
	* genclisph.d (n_char_to_string): Renamed from make_string.

1999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Don't force building clisp.dvi on non-Unix OSes.
	* makemake.in (MANUALS): Remove clisp.dvi.
	(manual): Add it, on Unix only.
	(manualx): Add it, on non-Unix only.
	(install-doc, uninstall-man): Treat it like $(MANUALS).

1999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgwin32.lsp
	(*clhs-root-default*): Assign default value.
	* makemake.in (config.lsp): Emit "echo ... >> config.lsp" only for
	  Unix.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (low_flush_buffered_socket): Call sock_write, not
	  full_write.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (create_input_pipe): New function.
	(MAKE-PIPE-INPUT-STREAM): Call it.
	(create_output_pipe): New function.
	(MAKE-PIPE-OUTPUT-STREAM): Call it.
	(create_io_pipe): New function.
	(MAKE-PIPE-IO-STREAM): Call it.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* socket.d (inet_addr): Don't declare on WIN32.
	(setsockopt): Remove second declaration.
	(SOCKET-SERVICE-PORT): On WIN32, use a replacement for getservent().

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (callback.h): Copy also vacall_r.h and trampoline_r.h.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (GETTEXT): Define also if not using GNU_GETTEXT.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* places.lsp (MACRO-FUNCTION): Ignore `env'.

1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (strm_keyboard_len): Define as strm_len, not 0.
	(make_keyboard_stream): Don't add strm_len to strm_keyboard_len, it
	  is already included.

1999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (malloc, free): Remove declarations.
	(malloca, freea): Move declarations.
	(DRIVER_frame_data): Remove type.
	* spvw_alloca.d (malloc, free): New declarations.
	* aridecl.d (HAVE_NUM_STACK, NUM_STACK, NUM_STACK_bound)
	(NUM_STACK_normal): Remove declarations.
	(num_stack_need, num_stack_need_1): Remove obsolete code. Add
	  `unused' to avoid gcc warnings.
	(NUM_STACK_normal, arith_ueberlauf, compare_NUM_STACK_bound): Remove.
	(SAVE_NUM_STACK, RESTORE_NUM_STACK. num_stack_need)
	(num_stack_need_1): New definitions, using malloca/freea.
	* intlog.d (I_I_logior_I, I_I_logxor_I, I_I_logand_I, I_I_logeqv_I)
	(I_I_lognand_I, I_I_lognor_I, I_I_logandc2_I, I_I_logorc2_I)
	(I_lognot_I): Defer RESTORE_NUM_STACK until done with the temporary
	  digit sequence.
	(I_I_ash_I): Do RESTORE_NUM_STACK before error.
	* intplus.d (DS_1_plus, DS_minus1_plus): Do RESTORE_NUM_STACK before
	  error.
	(I_1_plus_I, I_minus1_plus_I): Defer RESTORE_NUM_STACK until done
	  with the temporary digit sequence.
	(I_I_plus_I, I_minus_I, I_I_minus_I): Likewise. Do RESTORE_NUM_STACK
	  before error.
	* intbyte.d (lb_extract): Move SAVE_NUM_STACK and defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	(mkf_extract): Likewise.
	* intmal.d (UDS_square_UDS): Do RESTORE_NUM_STACK before error.
	(I_square_I): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK until
	  done with the temporary digit sequence.
	(UDS_UDS_mal_UDS): Do RESTORE_NUM_STACK before error.
	(I_I_mal_I): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK until
	  done with the temporary digit sequence.
	* intdiv.d (UDS_divide_): Move SAVE_NUM_STACK and defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	(I_I_divide_I_I): Defer SAVE_NUM_STACK until needed. Defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	* intgcd.d (I_I_gcd_I) [1]: Defer RESTORE_NUM_STACK until done with
	  the temporary digit sequence.
	(I_I_gcd_I) [3]: Likewise.
	(I_I_xgcd_I_I_I) [3]: Do RESTORE_NUM_STACK before side return.
	* intsqrt.d (UDS_sqrt_): Defer RESTORE_NUM_STACK until done with the
	  temporary digit sequence.
	(I_isqrt_I, I_sqrtp):  Move SAVE_NUM_STACK and defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	(I_rootp): Defer RESTORE_NUM_STACK until done with the temporary
	  digit sequence.
	* intread.d (DIGITS_to_I): Defer RESTORE_NUM_STACK until done with the
	  temporary digit sequence.
	* dfloat.d (DF_DF_durch_DF): Defer RESTORE_NUM_STACK until done with
	  the temporary digit sequence.
	(DF_sqrt_DF): Likewise.
	* lfloat.d (LF_ftruncate_LF, LF_futruncate_LF, LF_fround_LF): Defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	(LF_LF_plus_LF): Do RESTORE_NUM_STACK before error or return.
	(LF_square_LF): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK
	  until done with the temporary digit sequence. Do RESTORE_NUM_STACK
	  before error or return.
	(LF_LF_mal_LF): Likewise.
	(LF_LF_durch_LF): Likewise.
	(LF_sqrt_LF): Likewise.
	(LF_to_I): Move SAVE_NUM_STACK.
	* realrand.d (I_random_I): Move SAVE_NUM_STACK and defer
	  RESTORE_NUM_STACK until done with the temporary digit sequence.
	* lisparit.d (mal_10_plus_x): Defer RESTORE_NUM_STACK until done with
	  the temporary digit sequence. Do RESTORE_NUM_STACK before error.
	(decimal_string): Defer RESTORE_NUM_STACK until done with the
	  temporary digit sequence.
	* eval.d (unwind): No need to reset NUM_STACK when reaching a
	  DRIVER_frame.
	* debug.d (driver): No need to save current NUM_STACK in the frame.
	(break_driver): No need to save and restore NUM_STACK.
	* control.d (SYS::DRIVER): No need to save current NUM_STACK in the
	  frame.
	* spvw.d: No need any more for include "aridecl.c".
	(main): Remove teile_NUM_STACK, assume it is 0.

1999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intlog.d (I_I_ash_I): Restrict begin/end_arith_call() to the case
	  where it is needed.
	* intbyte.d (lb_extract): Restrict begin/end_arith_call() to the case
	  where it is needed.
	* intmal.d (I_square_I): Move begin_arith_call() until after
	  num_stack_need.
	* intgcd.d (I_I_gcd_I) [3]: Move begin_arith_call() until after
	  num_stack_need.
	(I_I_xgcd_I_I_I) [3]: Likewise.
	* intsqrt.d (UDS_sqrt_): Move begin_arith_call() until after
	  num_stack_need.
	(I_rootp): Likewise.
	* lfloat.d (LF_LF_plus_LF): Move begin_arith_call() until after
	  num_stack_need.
	(LF_sqrt_LF): Restrict begin/end_arith_call() to the case where it
	  is needed.
	* realelem.d (R_R_gleich): Restrict begin/end_arith_call() to the case
	  where it is needed.
	* lisparit.d (mal_10_plus_x): Restrict begin/end_arith_call().

1999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intelem.d (FN_to_NDS_nocopy, I_to_NDS_nocopy): Expand into more
	  efficient code.
	(FN_to_NDS_nocopy_): New macro.
	(BN_to_NDS_nocopy): Add `unused' to avoid gcc warnings.
	* intmal.d (I_I_mal_I): Put brace around I_to_NDS_nocopy.
	* intdiv.d (I_I_divide_I_I): Put brace around I_to_NDS_nocopy.
	* intsqrt.d (I_rootp): Put brace around I_to_NDS_nocopy.

1999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_sigsegv.d (stackoverflow_handler): Restore the STACK on Solaris
	  and OSF/1 as well.
	* lispbibl.d: After sigsegv.h is included, undefine DS, SP, EAX.

1999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (UNIX_OPENBSD): New macro.
	* eval.d (interpret_bytecode_): Use hairy gas assembler syntax only
	  on Linux and *BSD, never on other OSes.

1999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* eval.d (interpret_bytecode_): Use "\n\t" as assembler statement
	  separator instead of ";".

1999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-object): Put back i18n call around
	  punctuation strings.
	* socket.d (resolve_host_ipaddr): Likewise.

1999-06-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d, genclisph.d: Prepare for __GNUC__ == 3.

1999-06-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (macroexpand-1): Do not pass ENV to `macro-function'.
	(c-form): Do not pass ENV to `macro-function'.

	* places.lsp (MACRO-FUNCTION): Add optional, ignored env argument.

	* control.d (SYSTEM::OLD-MACRO-FUNCTION): New function.
	* eval.d (FUNTAB): Use it instead of MACRO-FUNCTION.
	* compiler.lsp (funtab): Likewise.

	* sequence.d (test_count_arg): Simplify.

1999-06-10  Sam Steingold  <sds@goems.com>

	* describe.lsp (describe-object): dump `ENGLISH' before ".".

	* socket.d (resolve_host_ipaddr): correct the order of arguments
	in the `fehler' call.

	* init.lsp (*load-level*): new variable.
	(load): use it to indent the verbose printout nicely.

1999-06-10  Sam Steingold  <sds@goems.com>

	* list.d (nreconc): be as smart about `nreconc' as we are about
	`nreverse'.

1999-06-09  Sam Steingold  <sds@goems.com>

	* misc.d (set-ansi): set `*coerce-fixnum-char-ansi*',
	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
	* constsym.d: added `*coerce-fixnum-char-ansi*',
	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
	* spvw.d: added `*coerce-fixnum-char-ansi*',
	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
	* sequence.d (test_count_arg): check `*sequence-count-ansi*'.
	* io.d (pr_orecord): check `*print-pathnames-ansi*'.
	* charstrg.d (coerce_char): check `*coerce-fixnum-char-ansi*'.
	* places.lsp: added documentation for `*ansi*'.

1999-06-09  Sam Steingold  <sds@goems.com>

	Implemented the ANSI CL Issue MACRO-FUNCTION-ENVIRONMENT:YES
	* control.d (macro_function): optional second argument.
	* subr.d (macro_function): ditto.
	* compiler.lsp (macroexpand-1): pass ENV to `macro-function'
	(subr-info): optional second argument of `macro-function'.
	(c-form): pass ENV to `macro-function'.

1999-06-08  Sam Steingold  <sds@goems.com>

	* describe.lsp (apropos-do-more): new function.
	(apropos): use it.
	(describe-object package): `*describe-nesting*' should be checked
	for being 0, not 1.

1999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (*toplevel-environment*, *toplevel-denv*): Move
	  variables...
	* init.lsp (*toplevel-environment*, *toplevel-denv*): ... to here.

1999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intparam.d (printf_underscored): Change argument type to
	  `const char*'.

1999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* init.lsp (defun): Don't use get-funname-symbol, to avoid
	  bootstrapping problems.

1999-06-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	SOCK_error() generates an error of type `os-error'.
	* errwin32.d (SOCK_error): use `simple_os_error'.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make DEFUN behave the same way w.r.t. inlining, whether executing
	compiled or interpreted.
	* compiler.lsp (compile-form-in-toplevel-environment): New function.
	* init.lsp (load): Call it, don't pass nil as %denv% to compile-form.
	(defun): Save the lambdabody for inline compilation also when
	  running interpreted.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	New command-line option "-w".
	* spvw.d (usage): Mention "-w".
	(argv_wait_keypress): New variable.
	(main): Set it if option "-w" is given.
	(quit): If argv_wait_keypress, emit a message and call WAIT-KEYPRESS.
	* _clisp.c (main): Accept "-w".
	* keyboard.lsp (wait-keypress): New function.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-object): Treat FOREIGN-FUNCTION, SYMBOL-MACRO,
	  ENCODING.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make DESCRIBE more robust against interruptions.
	* describe.lsp (describe-stream): New stream class.
	(stream-*): New methods on describe-stream.
	(describe-slotted-object): Omit all *describe-nesting* indentations.
	  Add *print-indent-lists* to tabpos. Call describe with stream, not
	  *standard-output*.
	(describe-object): Omit all *describe-nesting* indentations.
	  Call describe with stream, not *standard-output*.
	(describe-object) [PACKAGE]: Tweak spacing.
	(describe1): New function.
	(describe): Bind *describe-nesting* and *describe-done* instead of
	  setting them. In top-level calls, create a describe-stream.
	(describe-signature): Omit all *describe-nesting* indentations.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* room.lsp (room, space-tabulate): Use *print-right-margin* instead of
	  sys::*prin-linelength* when it is non-NIL.
	* describe.lsp (describe): Likewise.
	* compiler.lsp (compile-file): Likewise.

1999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-slotted-object, describe-object, describe)
	(describe-signature): Fix amount of indentation white space.
	(describe): Bind *describe-nesting* instead of setting it. This
	  ensures it goes back to 0 after describe signalled an error.

1999-06-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (READ-CHAR-STATUS): Remove function.
	(READ-CHAR-WILL-HANG-P): New function.
	* stream.d (listen_generic): Call GENERIC-STREAM-READ-CHAR-WILL-HANG-P
	  instead of GENERIC-STREAM-READ-CHAR-STATUS.
	(stream_listen): Call STREAM-READ-CHAR-WILL-HANG-P instead of
	  STREAM-READ-CHAR-STATUS.
	* gstream.lsp (stream-read-char-status): Remove function.
	(stream-read-char-will-hang-p): New function.
	(generic-stream-read-char-status): Remove function.
	(generic-stream-read-char-will-hang-p): New function.
	* screen.lsp (generic-stream-read-char-status@screen-controller):
	  Remove method.
	(generic-stream-read-char-will-hang-p@screen-controller): New method.

1999-06-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (apropos-list, *apropos-do-more*, apropos): Move.

1999-06-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* cfgwin32.lsp (clhs-root): Don't signal an error if value not defined
	  in registry.

1999-06-04  Sam Steingold  <sds@goems.com>

	* makemake.in: setq `*clhs-root-default*' in config.lsp.
	* cfgunix.lsp (clhs-root): new function.
	(*clhs-root-default*): new variable.
	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgsunux.lsp, cfgwin32.lsp:
	Likewise.

1999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* trace.lsp (untrace1): Don't use replace-in-fenv here either.

1999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (READLINELIB): Don't pass option "-r" to $(MAKE) for
	  building in subdirectory. It doesn't work with Irix 6.5 `make'
	  because readline/Makefile.in uses implicit rules.

1999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (Encoding): Add enc_towcs_error, enc_tombs_error slots.
	(encoding_length): Update.
	* encoding.d (uni32_mblen, uni32be_mbstowcs, uni32le_mbstowcs)
	(utf8_mblen, utf8_mbstowcs): Error handling respects enc_towcs_error.
	(nls_asciiext_mblen, nls_asciiext_wcslen): New functions.
	(nls_mblen, nls_mbstowcs, nls_asciiext_mbstowcs): Error handling
	  respects enc_towcs_error.
	(nls_wcslen, nls_wcstombs, nls_asciiext_wcstombs): Error handling
	  respects enc_tombs_error.
	(MAKE-ENCODING): Two new keyword arguments. Fully initialize newly
	  allocated encoding.
	(init_encodings): Fully initialize newly allocated encodings.
	  Stuff in nls_asciiext_mblen, nls_asciiext_wcslen where appropriate.
	  Pass two more unbounds to C_make_encoding.
	* stream.d (test_external_format_arg): Pass two more unbounds to
	  C_make_encoding.
	(iconv_mblen, iconv_mbstowcs): EILSEQ treatment respects
	  enc_towcs_error.
	(iconv_wcslen, iconv_wcstombs): EILSEQ treatment respects
	  enc_tombs_error.
	* pseudofun.d: Add nls_asciiext_mblen, nls_asciiext_wcslen.
	* type.lsp (canonicalize-type, encoding-charset): Update
	  sys::%record-ref argument.

1999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL):
	  Canonicalize alpha variants to alpha.

1999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (CFILES): Don't include $UNICODE_INCLUDES $NLS_INCLUDES.
	(init): Instead, add them to the `init' target.

1999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Libtoolify avcall and callback.
	* foreign.d: Include avcall.h and callback.h.
	* makemake.in (foreign): Depend on avcall.h and callback.h.
	(avcall.h, libavcall.a, callback.h, libcallback.a): Create by
	  doing "make install-lib" in the subdirectory.
	(clean1): Remove libavcall.* and libcallback.*.
	(clean4): Remove avcall.h and callback.h.

1999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* asmi386.hh (DECLARE_FUNCTION): New macro.
	(INSN2MOVX): Fix bug with ANSI C preprocessors.
	(ALIGN): Don't put parentheses. For Solaris/x86.
	* asmi386.sh: Introduce C(...) macro calls. Recognize more jumps.
	  Introduce DECLARE_FUNCTION(...) macro calls.

1999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (sigsegv.h, libsigsegv.a): Do "make install-lib" instead
	  of "make install".
	(clean1): On Win32, remove sigsegv.lib, not libsigsegv.*.

1999-05-30  Sam Steingold  <sds@goems.com>
	    Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Implement ALLOCATE-INSTANCE.
	* record.d (clos::old-%allocate-instance): Renamed from
	  clos::%allocate-instance.
	(clos::%allocate-instance): New function, with &rest arguments.
	(do_allocate_instance): New function. Remove unneeded if_classp
	  check.
	(clos::%initialize-instance): Adapt to new format of
	  *make-instance-table* entries.
	(clos::%make-instance): Likewise. Call do_allocate_instance, or
	  the effective method for allocate-instance if it is not the default
	  one.
	* eval.d (FUNTAB): clos::old-%allocate-instance replaces
	  clos::%allocate-instance.
	* compiler.lsp (funtab, c-DIRECT-FUNCTION-CALL): Likewise.
	* init.lsp: Export allocate-instance.
	* defs3.lsp: Likewise.
	* clos.lsp: Likewise.
	(*dynamically-modifiable-generic-function-names*): Add
	  `allocate-instance'.
	(|#'allocate-instance|): New variable.
	(std-add-method, std-remove-method): When changing allocate-instance,
	  call note-ai-change.
	(note-i-meta-change, note-ai-change): New functions.
	(valid-make-instance-keywords): Add the ALLOCATE-INSTANCE keywords.
	(make-instance-table-entry1): New function.
	(make-instance-table-entry2): Return 2 values.
	(initialize-instance@standard-object): Adapt to new format of
	  *make-instance-table* entries.
	(initial-initialize-instance): Create new-style *make-instance-table*
	  entry.
	(allocate-instance): New generic function.
	(initial-make-instance): Call the effective method for
	  allocate-instance. Create new-style *make-instance-table* entry.

1999-05-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Change a few occurrences of ${NEXT_M} to ${NEXT_}.

1999-05-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make --with-unicode the default.
	* makemake.in (info_help): Mention --without-unicode instead of
	  --with-unicode.
	(XCFLAGS, UNICODE_INCLUDES, NLS_INCLUDES): Test $with_nounicode
	  instead of $with_unicode.
	* configure: Don't pass --with-unicode to makemake.
	* Makefile.devel (*/makefile*): Create without --with-unicode.

1999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* type.lsp: (def-atomic-type, def-compound-type): New macros.
	(c-typep-alist1, c-typep-alist2, c-typep-alist3): Fill here.
	* compiler.lsp: Not here.

1999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (clean1): Remove libsigsegv.la.
	(clean4): Remove libintl.h, sigsegv.h.
	(clean5): Remove ANNOUNCE, GNU-GPL, SUMMARY, version.h, NEWS,
	  clisp.gif, MAGIC.add, ccmp2c, modprep.

1999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (clean1, clean2): Don't remove wlisp* and wsuite*.

1999-05-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (sigsegv.h, libsigsegv.a): Generate by calling
	  "make install" in the subdirectory, not through symlinks.

1999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure.in: Add check for groff.
	* makemake.in (GROFF): New variable.
	(htmldir, dvidir): New Makefile variables.
	(ROFF_MAN, ROFF_DVI): Set if $GROFF is nonempty.
	(ROFF_DVI): Don't define if $GROFF is empty.
	(clisp.dvi): Create if and only if $GROFF is nonempty.
	(MANUALS): Include clisp.dvi if and only if $GROFF is nonempty.
	(installdirs): Create $(htmldir) and $(dvidir) instead of
	  $(mandir)/html.
	(install-man): Clean up dependencies.
	  Use $(htmldir) and $(dvidir) instead of $(mandir)/html.
	  Install clisp.dvi and clreadline.dvi if appropriate.
	(uninstall-man): Use $(htmldir) and $(dvidir) instead of
	  $(mandir)/html. Also remove clisp.dvi and clreadline.dvi.
	(distrib): Distribute clisp.dvi if and only if $GROFF is nonempty.
	(clean1): Also remove clisp.dvi.
	* _distmakefile (htmldir, dvidir): New variables.
	(install-man): Install clisp.1 without modifications.
	  Also install clisp.html, clisp.dvi, clreadline.html, clreadline.dvi.

1999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure: In avcall and callback, do "make minicheck" instead of
	  "make check".

1999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* macros2.lsp (check-type): Don't quote the string argument.
	* conditio.lsp (check-type): Likewise.

1999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (distrib): Reorganize. Distribute the data/ directory
	  and its contents. Distribute the `full' linking set also if
	  BINARY_DISTRIB is set.

1999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make `clisp' an executable, also in the case of UNIX_BINARY_DISTRIB.
	* _clisp.c [UNIX_BINARY_DISTRIB]
	(room_for_lisplibdir, room_for_localedir): New arrays.
	(LISPLIBDIR, LOCALEDIR): New definitions, pointing into the arrays.
	* utils/hardcode.c: New file.
	* _distmakefile: Treat UNIX_BINARY_DISTRIB like other UNIX platforms.
	(install): Create `clisp' as an executable, using `hardcode', not as
	  a shell script.
	* makemake.in (BINARY_DISTRIB): Also define on HP-UX 11.
	(GOOD_SH): Remove definition.
	(distrib): Distribute `clisp' and `hardcode'.
	* spvw.d (main, usage): Option -K is now available on all Unix
	  platforms.
	* configure.in: Remove call to CL_SHELLARGS.
	* unixconf.h.in (UNIX_USE_KSH, UNIX_BROKEN_SH): Remove definitions.

1999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (install-bin): Copy base/ and full/ using cp, not tar,
	  because they contain symbolic links.

1999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make modules.o part of every linking set, including `base'.
	* makemake.in (lisp.a): Don't include modules.o.
	(modular): Depend on modules.o.
	(base): Link over modules.o.
	(distmakefile): Add modules.o to the BASE_LIBS and BASE_FILES
	  substitution.
	(distrib): Link over modules.o into $(TOPDIR)/base.
	* clisp-link.in (add-module-set): Check that the linking set contains
	  a file `modules.o'.
	(add-module-sets): Likewise. When no new modules, copy modules.o
	  in any case.
	(run): Check that the linking set contains a file `modules.o'.

1999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (distmakefile): Don't set $wlibs, not needed any more.

1999-05-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (initmem): Don't call SYS::SET-ANSI (no need, doesn't work).

1999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intlog.d (integerlength32) [RS6000]: Use new or old mnemonics
	  depending on OS.

1999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Libtoolify sigsegv.
	* autoconf/libtool.m4: New file, from libtool-1.2.

1999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	For Linux 2.0.x with glibc2.0.
	* aclocal.m4 (CL_SIGALTSTACK): Define HAVE_SIGALTSTACK only if the
	  sigaction flags macro SA_ONSTACK is also defined.

1999-05-13  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>

	* sequence.d (READ-CHAR-SEQUENCE): Changed calls to
	  `iarray_displace_check' to `array_displace_check'. Adjusted return
	  value: The first position not written is returned.
	(WRITE-CHAR-SEQUENCE): Likewise, uses `array_displace_check' now.
	(WRITE-BYTE-SEQUENCE): In case of (VECTOR (UNSIGNED-BYTE 8)) use
	  another indirection via '->data' before calling 'read_byte_array'.
	(READ-BYTE-SEQUENCE): Likewise. Additionally the first position not
	  written is returned.

1999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (init_symbol_values): Don't call a function here, too early.
	(initmem): Call SYS::SET-ANSI here.

1999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	 * lispbibl.d (stream_fd): Move declaration.
	 * stream.d (stream_fd): Move function.

1999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Followup to Sam's 1999-04-07 patch.
	* eval.d (check_for_illegal_keywords): Remove misplaced symbolp test.
	* defmacro.lsp (analyze-key): Use symbolp instead of keywordp.
	* compiler.lsp (test-argument-syntax): Likewise.
	(kvalue-form-index): Likewise.
	* conditio.lsp (expand-restart-case): Likewise.
	* error.d (SYSTEM::CERROR-OF-TYPE, SYSTEM::ERROR-OF-TYPE): Likewise.

1999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Followup to Sam's 1999-04-07 patch.
	* eval.d (eval1): Treat arrays as self-evaluating in all cases.
	* compiler.lsp (l-constantp, c-constantp, c-constant-value): Treat
	  arrays as constants.

1999-05-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* trace.lsp (trace1): No need to use replace-in-fenv.
	(replace-in-fenv): Remove function.

1999-05-12  Sam Steingold  <sds@goems.com>

	* format.lsp (format-integer): (format nil "~@d" 0) => "+0"

1999-05-12  Sam Steingold  <sds@goems.com>

	* loop.lsp (expand-loop): put `then-form' into `stepafter' even
	when it's the same constant as `first-form'.

1999-05-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS)
	(CL_SIGACTION_UNBLOCK): Perform the test if either POSIX or BSD
	  signal mask primitives are available. Otherwise,
	  SIGACTION_NEED_UNBLOCK would not be defined on Solaris.

1999-05-07  Sam Steingold  <sds@goems.com>

	* describe.lsp (*apropos-do-more*): new variable.
	(apropos): use it.

1999-05-07  Sam Steingold  <sds@goems.com>

	* spvw.d (usage): mention -K regardless of "UNIX_BINARY_DISTRIB".

1999-05-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Support for Apple's MacOS X Server.
	* aclocal.m4 (CL_RLIMIT): Include <sys/time.h> before
	  <sys/resource.h>.
	* lispbibl.d (unix): Define if __MACH__ is defined.
	(RS6000): Define if __ppc is defined.
	(UNIX_RHAPSODY): New macro.
	(__const): Define as const, not empty.
	* unix.d: Include <sys/time.h> before <sys/resource.h>. Treat
	  UNIX_RHAPSODY like UNIX_NEXTSTEP.
	* intlog.d (integerlength32): Don't use the cntlz instruction on
	  UNIX_RHAPSODY.

1999-05-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clos.lsp (same-specializers-p): New function.
	(specializers-agree-p): Use it.
	(dispatching-arg-p, single-dispatching-arg, dispatching-arg-type):
	  New functions.
	(no-applicable-method, no-primary-method): Signal a type-error if
	  there is only one dispatching argument.

1999-05-03  Sam Steingold  <sds@goems.com>

	* pathname.d (file_stat): use `built_in_stream_open_p' instead of
	`open_stream_p'.

1999-05-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_SIGALTSTACK): New macro.
	* lispbibl.d (NOCOST_SP_CHECK): Define whenever sigsegv.h defines
	  HAVE_STACK_OVERFLOW_RECOVERY, not only on WIN32_NATIVE.
	(near_SP_overflow) [UNIX]: New declaration.
	* spvw.d (near_SP_overflow): New function.
	* spvw_fault.d (handle_fault): Add `verbose' argument. If it is 1,
	  don't print error messages.
	* spvw_sigsegv.d (sigsegv_handler): Add `serious' argument.
	(stackoverflow_handler): Add `scp' argument. Bring back STACK to
	  a sane value.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make SYS::%GENERIC-FUNCTION-LAMBDA self-contained.
	* misc.d (SYS::VERSION), constobj.d: Bump version number.
	* record.d (SYS::%COPY-GENERIC-FUNCTION): New function.
	* eval.d (FUNTAB): Add it.
	* compiler.lsp (funtab): Likewise.
	(subr-info): Likewise.
	(c-FNODE-FUNCTION): Generate different code for generic functions.
	(create-fun-obj): The venv of generic functions is now inside
	  consts[0], from the beginning.
	* clos.lsp (install-dispatch): Simplify.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp: Add SYS::PRINT-CONDITION to
	  clos::*dynamically-modifiable-generic-function-names*.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (get_synonym_stream): Argument must be a variable.
	(rd_by_array_synonym, wr_by_array_synonym, rd_ch_array_synonym)
	(wr_ch_array_synonym, close_synonym, read_line_synonym): Update.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (stream_get_read_eval, stream_set_read_eval): New
	  declarations.
	* stream.d (read_byte, read_byte_array, write_byte, write_byte_array)
	(read_char, unread_char, peek_char, read_char_array, write_char)
	(write_char_array, var_stream): Treat instances of
	  FUNDAMENTAL-STREAM correctly.
	(listen_generic): Change error message.
	(terminal_raw, STREAM-EXTERNAL-FORMAT)
	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT, interactive_stream_p)
	(read_line, stream_listen, clear_input, finish_output, force_output)
	(clear_output, get_line_position, stream_line_number): Treat
	  instances of FUNDAMENTAL-STREAM correctly.
	(stream_get_read_eval, stream_set_read_eval): New functions.
	(SYS::ALLOW-READ-EVAL): Use them.
	* io.d (read_eval_reader, load_eval_reader): Use stream_get_read_eval.
	(READ-CHAR-NO-HANG): Treat instances of FUNDAMENTAL-STREAM
	  correctly.
	(pr_enter_1, pr_orecord, pr_subr): Use stream_get_read_eval.
	* compiler.lsp (c-DIRECT-FUNCTION-CALL): Remove SYSTEM::LINE-POSITION
	  from list of side-effect-free functions.
	* gstream.lsp (fundamental-stream): Add a slot.
	(fundamental-character-stream, fundamental-binary-stream)
	(fundamental-character-input-stream)
	(fundamental-character-output-stream)
	(fundamental-binary-input-stream, fundamental-binary-output-stream):
	  New classes.
	(stream-element-type): Add method on fundamental-character-stream.
	(stream-read-char, stream-unread-char, stream-read-char-no-hang)
	(stream-peek-char, stream-listen, stream-read-char-status)
	(stream-read-char-sequence, stream-read-line, stream-clear-input)
	(stream-write-char, stream-line-column, stream-start-line-p)
	(stream-write-char-sequence, stream-write-string, stream-terpri)
	(stream-fresh-line, stream-finish-output, stream-force-output)
	(stream-clear-output, stream-advance-to-column, stream-read-byte)
	(stream-read-byte-sequence, stream-write-byte)
	(stream-write-byte-sequence): New generic functions.
	* describe.lsp (describe-object): Call open-stream-p, since
	  input-stream-p and output-stream-p don't tell whether a stream is
	  open.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Allows streams to have an unknown line position.
	* lispbibl.d (get_line_position): Can trigger GC. Can return NIL.
	* stream.d (get_line_position): Likewise.
	(MAKE-STRING-OUTPUT-STREAM): Allow LINE-POSITION argument to be NIL.
	* io.d (pr_enter_1): Update.
	* format.lsp (format-tabulate): If the stream's line position is
	  unknown, output 2 spaces.
	(do-format-justification): If the stream's line position is unknown,
	  assume it is 0.
	* compiler.lsp (disassemble-closure): If the stream's line position is
	  unknown, output 2 spaces.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (stream_line_number): Can trigger GC.
	* stream.d (stream_line_number): Likewise.
	* io.d (read_delimited_list): Update.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clos.lsp (install-dispatch): Don't assume the preliminary function
	  has a VENV. Generic functions without any method don't have one.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* init.lsp (cerror): Don't go into an interactive reploop if
	  *break-driver* is not yet set. This permits typing (load "init.lsp")
	  in an interactive lisp.run.

1999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* config.guess, config.sub: Upgrade to newest version from GNU CVS.

1999-04-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* gstream.lsp (fundamental-stream, fundamental-input-stream)
	(fundamental-output-stream): New classes.
	(close, open-stream-p, stream-element-type)
	((setf stream-element-type)): Add methods on fundamental-stream.
	* lispbibl.d (instanceof): New macro.
	(streamp): Use it.
	* stream.d (input_stream_p, output_stream_p): New macros.
	(test_input_stream, test_output_stream): Use them.
	(INPUT-STREAM-P, OUTPUT-STREAM-P): Likewise.
	(SYS::%DEFGRAY): New function.

1999-04-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (builtin_stream_close): Renamed from stream_close.
	* stream.d (close_synonym): Call CLOSE instead of stream_close.
	(low_flush_buffered_handle, make_file_stream): Update.
	(SYSTEM::BUILT-IN-STREAM-OPEN-P): Renamed from OPEN-STREAM-P.
	  Stricter argument check.
	(SYSTEM::BUILT-IN-STREAM-ELEMENT-TYPE): Renamed from
	  STREAM-ELEMENT-TYPE. Stricter argument check.
	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): Renamed from
	  SYSTEM::SET-STREAM-ELEMENT-TYPE. Stricter argument check.
	(builtin_stream_close): Renamed from stream_close.
	(close_some_files): Update.
	(SYSTEM::BUILT-IN-STREAM-CLOSE): Renamed from CLOSE. Stricter
	  argument check.
	* debug.d (LOAD): Update.
	* misc.d (MACHINE-TYPE, MACHINE-VERSION): Update.
	* pathname.d (DELETE-FILE): Update.
	* spvw_memfile.d (WRITE, savemem): Update.
	* eval.d (FUNTAB): Update.
	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
	* init.lsp (load): Call sys::built-in-stream-close instead of close.
	* gstream.lsp: Exports symbols from the Gray proposal.
	(close, open-stream-p, stream-element-type)
	((setf stream-element-type)): New generic functions.
	* places.lsp (stream-element-type): Remove defsetf.

	Distinguish built-in and other streams.
	* lispbibl.d (builtin_stream_p): Renamed from streamp.
	(streamp): New macro.
	(socket_stream-p): Use builtin_stream_p instead of streamp.
	* pathname.d (as_file_stream, PARSE-NAMESTRING, TRUENAME)
	(PROBE-FILE, DELETE-FILE, RENAME-FILE, OPEN, FILE-WRITE-DATE)
	(FILE-AUTHOR, FILE-STAT): Use builtin_stream_p instead of streamp.
	* stream.d (SYS::SYNONYM-STREAM-P, SYS::BROADCAST-STREAM-P)
	(SYS::CONCATENATED-STREAM-P, SYS::TWO-WAY-STREAM-P)
	(SYS::ECHO-STREAM-P, SYSTEM::STRING-INPUT-STREAM-INDEX)
	(GET-OUTPUT-STREAM-STRING, SYS::STRING-STREAM-P)
	(SYSTEM::BUFFERED-INPUT-STREAM-INDEX, SYS::FILE-STREAM-P)
	(check_window_stream, low_close_pipe, SOCKET-SERVER)
	(test_socket_stream, check_open_file_stream): Use builtin_stream_p
	  instead of streamp.
	(SYNONYM-STREAM-SYMBOL, BROADCAST-STREAM-STREAMS)
	(CONCATENATED-STREAM-STREAMS, TWO-WAY-STREAM-INPUT-STREAM)
	(TWO-WAY-STREAM-OUTPUT-STREAM, ECHO-STREAM-INPUT-STREAM)
	(ECHO-STREAM-OUTPUT-STREAM, GENERIC-STREAM-CONTROLLER)
	(SYS::LISTEN-BYTE, test_n_bytes_args): Use builtin_stream_p in the
	  first place, and streamp only for the error message.
	(GENERIC-STREAM-P, SYS::TERMINAL-RAW): Use builtin_stream_p.
	* predtype.d (SYS::BUILT-IN-STREAM-P): New function.

1999-04-29  Wolfgang Jenkner  <wolfgang@mat.univie.ac.at>

	* control.d (make_variable_frame): Treat special-declared variables
	  like special-proclaimed ones.

1999-04-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (TCPCONN): Always include <sys/types.h> before
	  <sys/socket.h>.

1999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Fix a jmp_buf alignment problem on Irix 6.5.
	* foreign.d (alignof): Remove macro.
	* lispbibl.d (alignof): Move to here.
	(sp_jmp_buf_incr, sp_jmp_buf_to_jmp_buf, setjmpspl, longjmpspl): New
	  macros.
	(jmpbufsize): Add sp_jmp_buf_incr.
	(sp_jmp_buf): New type.
	(finish_entry_frame): Use setjmpspl.
	(enter_frame_at_STACK): Use longjmpsl.
	(DRIVER_frame_data): Use sp_jmp_buf instead of jmp_buf.
	* control.d (BLOCK, TAGBODY, CATCH, UNWIND-PROTECT): Use sp_jmp_buf
	  instead of jmp_buf.
	* eval.d (invoke_handlers, funcall_iclosure, eval, eval_no_hooks)
	(JMPBUF_on_SP): Use sp_jmp_buf instead of jmp_buf.

1999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clos.lsp (*allow-mixing-metaclasses*): New variable.
	(initialize-instance-standard-class, make-instance-built-in-class)
	(initialize-instance-structure-class): Don't check the metaclass
	  of the direct superclasses if *allow-mixing-metaclasses* is true.

1999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* reploop.lsp: Set *use-clcs* to t here.
	* conditio.lsp: Not here.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (listen_generic): Make an error message
	  internationalizable.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp (break): Use ANSI CL `:format-control' initarg.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make read_line recurse through some kinds of streams.
	* lispbibl.d (read_line): New declaration.
	* stream.d (read_line_synonym, read_line_twoway, read_line): New
	  functions.
	* io.d (READ-LINE): Call read_line. Put back the buffer after
	  copying it, not before.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (wr_ch_terminal2, wr_ch_array_terminal2) [MSDOS]: Define
	  as the _unbuffered_dos variant.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove obsolete stream primitive `wr_ss'.
	* lispbibl.d (Stream): Remove strm_wr_ss field.
	* io.d (write_sstring_ab): New function, remove macro.
	* stream.d (wr_ss_Pseudofun): Remove type definition.
	(wr_ss): Remove macro.
	(wr_ss_dummy, wr_ss_dummy_nogc): Remove functions.
	(close_dummys): Don't set strm_wr_ss field.
	(wr_ss_synonym): Remove function.
	(make_synonym_stream): Don't set strm_wr_ss field.
	(wr_ch_array_broad): Optimize.
	(wr_ss_broad): Remove function.
	(make_broadcast_stream): Don't set strm_wr_ss field.
	(make_concatenated_stream): Likewise.
	(wr_ss_twoway): Remove function.
	(make_twoway_stream, make_echo_stream): Don't set strm_wr_ss field.
	(MAKE-STRING-INPUT-STREAM): Likewise.
	(wr_ss_str_out): Remove function.
	(make_string_output_stream): Don't set strm_wr_ss field.
	(SYSTEM::MAKE-STRING-PUSH-STREAM): Likewise.
	(wr_ss_pphelp): Remove function.
	(make_pphelp_stream): Don't set strm_wr_ss field.
	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM): Likewise.
	(wr_ch_array_generic): Renamed from wr_ss_generic.
	(MAKE-GENERIC-STREAM): Don't set strm_wr_ss field.
	(wr_ss_unbuffered_unix, wr_ss_unbuffered_mac, wr_ss_unbuffered_dos):
	  Remove functions.
	(fill_pseudofuns_unbuffered): Don't set strm_wr_ss field.
	(wr_ss_buffered_unix, wr_ss_buffered_mac, wr_ss_buffered_dos):
	  Remove functions.
	(fill_pseudofuns_buffered): Don't set strm_wr_ss field.
	(make_keyboard_stream, make_terminal_stream_): Likewise.
	(wr_ch_array_terminal1): Renamed from wr_ss_terminal1.
	(wr_ch_array_terminal2): Renamed from wr_ss_terminal2.
	(wr_ch_array_terminal3): Renamed from wr_ss_terminal3
	(make_terminal_stream_): Don't set strm_wr_ss field.
	(MAKE-WINDOW, make_printer_stream, make_socket_stream): Likewise.
	* pseudofun.d: Update.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make write_char_array recurse through any kind of stream.
	* lispbibl.d (write_char_array): Change calling convention.
	* stream.d (wr_ch_array_Pseudofun): Change type definition.
	(wr_ch_array_error): Change calling convention.
	(wr_ch_array_dummy): Likewise. Loop, calling write_char.
	(write_char_array): Change calling convention.
	(wr_ch_array_synonym): Likewise.
	(wr_ch_array_broad0, wr_ch_array_broad1): Remove functions.
	(wr_ch_array_broad): New function.
	(make_broadcast_stream): Use it.
	(wr_ch_array_twoway): Change calling convention.
	(rd_ch_array_echo): Update.
	(wr_ch_array_str_out): New function.
	(make_string_output_stream): Use it.
	(wr_ch_array_pphelp): New function.
	(make_pphelp_stream): Use it.
	(wr_ch_array_unbuffered_unix): Change calling convention.
	(wr_ss_unbuffered_unix): Update.
	(wr_ch_array_unbuffered_mac): Change calling convention.
	(wr_ss_unbuffered_mac): Update.
	(wr_ch_array_unbuffered_dos): Change calling convention.
	(wr_ss_unbuffered_dos): Update.
	(wr_ch_array_buffered_unix): Change calling convention.
	(wr_ss_buffered_unix): Update.
	(wr_ch_array_buffered_mac): Change calling convention.
	(wr_ss_buffered_mac): Update.
	(wr_ch_array_buffered_dos): Change calling convention.
	(wr_ss_buffered_dos): Update.
	(wr_ss_terminal3): Update.
	* sequence.d (WRITE-CHAR-SEQUENCE): Update.
	* lisparit.d (print_integer): Update. Use DYNAMIC_STRING macro.
	* pseudofun.d: Update.

	Make read_char_array recurse through any kind of stream.
	* lispbibl.d (read_char_array): Change calling convention.
	* stream.d (rd_ch_array_Pseudofun): Change type definition.
	(rd_ch_array_error): Change calling convention.
	(rd_ch_array_dummy): Likewise. Loop, calling read_char.
	(read_char_array): Change calling convention.
	(rd_ch_array_synonym): Likewise.
	(rd_ch_array_concat): Likewise. Treat general case.
	(rd_ch_array_twoway): Change calling convention.
	(rd_ch_array_echo): New function.
	(make_echo_stream): Use it.
	(rd_ch_array_str_in): Change calling convention.
	(rd_ch_array_unbuffered, rd_ch_array_buffered): Likewise.
	* sequence.d (READ-CHAR-SEQUENCE): Update.
	* pseudofun.d: Update.

	Make write_byte_array recurse through any kind of stream.
	* lispbibl.d (write_byte_array): Change calling convention.
	* stream.d (wr_by_array_Pseudofun): Change type definition.
	(wr_by_array_error): Change calling convention.
	(wr_by_array_dummy): Likewise. Loop, calling write_byte.
	(write_byte_array): Change calling convention.
	(wr_by_array_synonym): Likewise.
	(wr_by_array_broad0, wr_by_array_broad1): Remove functions.
	(wr_by_array_broad): New function.
	(make_broadcast_stream): Use it.
	(wr_by_array_twoway): Change calling convention.
	(rd_by_array_echo): Update.
	(wr_by_array_iau8_unbuffered, wr_by_array_iau8_buffered): Change
	  calling convention.
	(SYS::WRITE-N-BYTES): Update.
	(WRITE-INTEGER): Use DYNAMIC_BIT_VECTOR. Update.
	* sequence.d (WRITE-BYTE-SEQUENCE): Update.
	* pseudofun.d: Update.

	Make read_byte_array recurse through any kind of stream.
	* lispbibl.d (read_byte_array): Change calling convention.
	* stream.d (rd_by_array_Pseudofun): Change type definition.
	(rd_by_array_error): Change calling convention.
	(rd_by_array_dummy): Likewise. Loop, calling read_byte.
	(read_byte_array): Change calling convention.
	(rd_by_array_synonym): Likewise.
	(rd_by_array_concat): Likewise. Treat general case.
	(rd_by_array_twoway): Change calling convention.
	(rd_by_array_echo): New function.
	(make_echo_stream): Use it.
	(rd_by_array_iau8_unbuffered, rd_by_array_iau8_buffered): Change
	  calling convention.
	(SYS::READ-N-BYTES): Update.
	(READ-INTEGER): Use DYNAMIC_BIT_VECTOR. Update.
	* sequence.d (READ-BYTE-SEQUENCE): Update.
	* pseudofun.d: Update.

1999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_ADDRESS_RANGE): Also determine the stack address
	  range.
	* unixconf.h.in (STACK_ADDRESS_RANGE): New macro.
	* lispbibl.d (STACK_ADDRESS_RANGE): Provide a default value.
	(bias_type_pointer_object): New macro, moved here from
	  spvw_allocate.d.
	(DYNAMIC_BIT_VECTOR, FREE_DYNAMIC_BIT_VECTOR, DYNAMIC_STRING)
	(FREE_DYNAMIC_STRING): New macros.
	* spvw_allocate.d (bias_type_pointer_object): Remove macro.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (c-form-table): Treat LDB, LDB-TEST, MASK-FIELD,
	  DPB, DEPOSIT-FIELD specially.
	(c-constant-byte-p, c-LDB, c-LDB-TEST, c-MASK-FIELD, c-DPB)
	(c-DEPOSIT-FIELD): New functions.

	* compiler.lsp (c-FORMAT): Only insert a FORMATTER call if
	  FORMATTER is not defined locally.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-object): `type-of' does not need `sys::'.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intlog.d (I_I_logand_I): Optimize the case when either operand is a
	  positive fixnum, O(1) instead of O(N).
	(I_I_lognand_I): Likewise.
	(I_I_logandc2_I): Likewise for the first operand.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (make_HANDLER_frame): Fix compilation problem.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (READ-CHAR-STATUS): Renamed from SYS::REAL-LISTEN.
	* stream.d (listen_generic): Call GENERIC-STREAM-READ-CHAR-STATUS
	  instead of GENERIC-STREAM-LISTEN. Remove backward compatibility
	  hack.
	* gstream.lsp (generic-stream-read-char-status): Renamed from
	  generic-stream-listen.
	* screen.lsp: Likewise.

1999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (ssstring_append_extend): New declaration.
	* array.d (ssstring_append_extend): New function.
	* stream.d (wr_ss_str_out, wr_ss_pphelp): Use it.

1999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (iarray_displace): Renamed from notsimple_displace.
	(storagevector_aref): Renamed from datenvektor_aref.
	(storagevector_store): Renamed from datenvektor_store.
	(iarray_dims_sizes): Renamed from array_dims_sizes.
	(make_storagevector): Renamed from make_datenvektor.
	* io.d (pr_vector, pr_array_elt_t, pr_array): Update.

1999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* macros2.lsp (space): Also print timing data, like TIME does.

1999-04-27  Sam Steingold  <sds@goems.com>

	* describe.lsp (describe): wrap `describe-object' in `unwind-protect'.
	(describe-object): fixed printing indentation.

1999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Port to m68k-linux with ELF.

1999-04-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defs2.lsp (defpackage): Allow duplicates in each of the
	  export/import/... lists, but still require these lists to be
	  disjoint.

1999-04-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* places.lsp (push, pushnew): Evaluate the item form before the
	  place's subforms.

1999-04-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add check whether
	  ctor/dtor needs to be exported.

1999-04-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (rd_ch_array_buffered): Increment the stream's index and
	  position appropriately.

1999-04-13  Sam Steingold  <sds@goems.com>

	* modules/postgresql642/link.sh (have_libcrypt): do not quote ${CC}.

1999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (data, UnicodeData.txt): New rules.
	(lisp${LEXE}): Depend on it.
	(installdirs): Create $(lisplibdir)/data.
	(install-bin): Install [data/]UnicodeData.txt.
	(uninstall-bin): Remove it.
	* _distmakefile (install-bin): Install data/UnicodeData.txt.
	* describe.lsp (describe-object) (character): Call unicode-attributes.
	(unicode-data-file, unicode-attributes-line, unicode-attributes):
	  New functions.

1999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Add command-line option specifying $(lisplibdir).
	* _clisp.c (main): New option "-B".
	* spvw.d (main, usage): Likewise.
	* pathname.d (argv_lisplibdir): New variable.
	(SYS::LIB-DIRECTORY): New function.
	* makemake.in: Pass "-B" option to all invocations of lisp.run.

1999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (installdirs): Create $(lisplibdir)/linkkit.
	(install-bin): Fix syntax error introduced on 1999-04-04.

1999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (init_streamvars): Set _rl_comment_begin.

1999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (c-FORMAT): Use c-constantp, not constantp, and
	  c-constant-value.

1999-04-12  Sam Steingold  <sds@goems.com>

	* macros3.lsp (with-collect): new macro.

1999-04-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* type.lsp (type-expand): Fix the second return value.

1999-04-08  Sam Steingold  <sds@goems.com>

	* compiler.lsp (c-FORMAT): check for a constant, not just a string.

1999-04-07  Sam Steingold  <sds@goems.com>

	* control.d (constantp): arrays are constants too.

1999-04-07  Sam Steingold  <sds@goems.com>

	Implemented ANSI CL issue KEYWORD-ARGUMENT-NAME-PACKAGE:ANY.
	* eval.d (get_closure, check_for_illegal_keywords): accept symbols
	as keywords.
	* compiler.lsp (analyze-lambdalist): accept symbols as keywords.

1999-04-07  Sam Steingold  <sds@goems.com>

	* compiler.lsp (c-FORMAT): signal an error when the stream
	argument is missing.
	* describe.lsp (describe-object): call `documentation'.

1999-04-06  Sam Steingold  <sds@goems.com>

	--- *ANSI* is a symbol macro now.
	* constsym.d: added `:ansi-cl', `ansi' and `set_ansi'.
	* subr.d: added `ansi' and `set_ansi'.
	* constobj.d: added `ansi'.
	* places.lsp: define *ANSI*.
	* init.lsp: export *ANSI*.
	* spvw.d: call `set_ansi' instead of setting *ANSI*.
	* misc.d (ansi, set_ansi): new LISPFUNNs.
	--- Fix `export-syscalls' damaged by recent patches.
	* socket.d (resolve_host_ipaddr): replaced `fehler_string_int'
	with `fehler_string_integer'.
	* pathname.d (user_data): ditto.  Also,
	`fehler_pathname_descriptor' --> `fehler_pathname_designator'.
	(file_stat): use `stream_fd' instead of `strm_ochannel'.
	* stream.d (file_stat): removed.
	(stream_fd): added.
	* lispbibl.d: declare `stream_fd'.
	--- fix `describe'
	* describe.lsp (describe): set `*describe-done*' and
	`*describe-nesting*' instead of binding.  Print empty arglist as
	(), not NIL.

1999-04-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Stop storing german and french translations in the source files.
	* german.lsp, french.lsp: New files.
	* makemake.in (LPARTS): Add them.
	* init.lsp: Load them.
	* *.d, *.lsp: Remove german and french translations.
	* compiler.lsp: Define macro ENGLISH instead of DEUTSCH.
	* lispbibl.d (DEUTSCH, FRANCAIS): Remove macros.
	(ENGLISH): Simplify.
	(language_deutsch, language_francais): Remove macros.
	(GETTEXT): New macro.
	* genclisph.d (main): Update.
	* constobj.d (LISPOBJ_L, LISPOBJ_LS): Simplify.
	* erramiga.d (lang3, lang1): Simplify.
	* errdjgpp.d (lang3, lang1): Likewise.
	* spvw_language.d (language_deutsch, language_francais): Define only
	  if GNU_GETTEXT.
	(init_languages_from): Treat de and fr only if GNU_GETTEXT.
	(init_language) [!GNU_GETTEXT]: Don't treat de and fr.

1999-04-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (right_margin): Update translations.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* foreign1.lsp (DEF-C-CALL-OUT, DEF-C-CALL-IN): Use language :STDC,
	  not old :C any more.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Changes to the distribution structure on Unix:
	- The default linking set is moved into subdirectory `base'.
	- Both `base' and `full' are installed.
	- All the documentation is installed.
	* _clisp.c (main): New option "-K". Drop option "-F".
	* _clisp.1: Document option "-K".
	* _clisp.html: Likewise.
	* spvw.d (usage): Mention "-K".
	(main): Accept and ignore "-K".
	* _distmakefile (fromdir): Remove variable.
	(linkingsets): New variable.
	(docdir, lispdocdir): New variables.
	(all): Depend on all lisp.runs.
	(install): Depend on install-doc.
	(install-bin): Copy all linking sets entirely. Copy clisp-link and
	  linkkit as well.
	(install-doc): New target.
	* makemake.in: $(lispdocdir) replaces $(docdir). Define $(docdir) and
	  $(lispdocdir) in all cases. Make `base' a directory containing
	  symlinks, not a symlink. `full' depends on `base'. `install' depends
	  on `install-doc'. New target `install-doc'. `installdirs' creates
	  the `base' directory and the doc directories. `install-bin' copies
	  the linking sets `base' and `full', and clisp-link and linkkit as
	  well. `install-man' installs all readmes and manual files.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* modules/clx/new-clx/link.sh: Add -L/usr/X11R6/lib -lX11 to
	  NEW_LIBS. Necessary since 1999-03-08 change.
	* modules/clx/new-clx/clx.f (pathname_encoding, misc_encoding): New
	  macros.
	(with_stringable_0): Add an encoding argument.
	(get_font, get_xatom_general, enum_error, make_xatom)
	(XLIB:OPEN-DISPLAY): Use misc_encoding.
	(XLIB:DISPLAY-AUTHORIZATION-DATA, XLIB:DISPLAY-AUTHORIZATION-NAME):
	  Allocate empty string via allocate_string.
	(XLIB:DISPLAY-VENDOR, XLIB:DISPLAY-HOST): Use misc_encoding.
	(general_draw_text): If UNICODE, use the -16 variant functions.
	(XLIB:OPEN-FONT, XLIB:FONT-PATH, XLIB:FONT-PATH-SETTER)
	(XLIB:LIST-FONT-NAMES, XLIB:LIST-FONTS, XLIB:FONT-PROPERTIES): Use
	  misc_encoding.
	(XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH): If UNICODE, use the -16
	  variant functions.
	(XLIB:ALLOC-COLOR, XLIB:LOOKUP-COLOR, XLIB:ATOM-NAME)
	(XLIB:GET-PROPERTY, XLIB:LIST-PROPERTIES, XLIB:LIST-EXTENSIONS)
	(XLIB:QUERY-EXTENSION): Use misc_encoding.
	(XPM:READ-FILE-TO-PIXMAP): Use pathname_encoding.
	* modules/postgresql642/postgresql.lsp: Comments.
	Don't need to include <stdio.h>.
	(PGnotify): Use foreign type ffi:character, not ffi:char.
	(pqbool): Use foreign type ffi:char, not ffi:character.
	* modules/postgresql642sql.lsp (sql-error): Condition type is
	SQL-ERROR, not SQL.
	* modules/postgresql642/link.sh: Link with -lcrypt only
	if this library exists.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* _README: Refer to _README.en unconditionally.
	* makemake.in: Don't refer to `README.en'. `README' is enough.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Since make_machine and make_machine_code are different on some
	platforms...
	* pseudofun.d (LPSEUDOCODE): New macro, replaces PSEUDOFUN.
	(XPSEUDOCODE, XPSEUDODATA): New macros, replace XPSEUDO.
	(LCODE_PSEUDO_*, XCODE_PSEUDO_*, XDATA_PSEUDO_*): New macros.
	* lispbibl.d (pseudofun_tab): Remove.
	(pseudocode_tab, pseudodata_tab): New variables.
	* spvw.d (pseudocode_anz, pseudodata_anz): New macros.
	(pseudofun_anz): Change definition.
	(pseudofun_tab): Define as local variable.
	(main): Initialize pseudofun_tab from pseudocode_anz, pseudodata_anz.
	* spvw_memfile.d (loadmem_update): Compare objects, not Pseudofuns.
	* stream.d (pseudofun_tab): Remove.
	(pseudocode_tab, pseudodata_tab): New variables.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* control.d (test_env): Accept NIL, denoting the global environment.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (installdirs, install-bin, install-man): Make sure
	  the directories $(prefix) and $(exec_prefix) exist.
	* _distmakefile (install-bin, install-man): Likewise.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_file_stream): Fix the STACK offsets used to fill in
	  truename and pathname of unbuffered streams.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (SYS::MAKE-SOCKET-STREAM, init_streamvars): Pass a proper
	  encoding to make_unbuffered_stream, not the symbol :UNIX.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp: Export simple-condition-format-control.
	(coerce-to-condition): Use :format-control.
	(simple-condition): Use $format-control.
	* defs3.lsp: Export simple-condition-format-control, not
	  simple-condition-format-string.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_pipe_output_stream, make_pipe_input_stream)
	(make_pipe_stream): Revert 1999-03-26 patch.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* socket.d (atoi): Remove declaration.
	(SERVENT_TO_STACK): Add `tmp' local variable.
	(SOCKET-SERVICE-PORT): Don't accept symbols, only strings and
	  integers, as service-name. Don't call fehler_string_integer for
	  non-fixnums. Use with_string_0 instead of TheAsciz(string_to_asciz(.
	  Fix placement of begin_system_call()/end_system_call().
	* subr.d: Keep in sync.
	* constsym.d: Likewise.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (FILE-STAT): Move to pathname.d.
	* pathname.d (fehler_pathname_designator): Renamed from
	  fehler_pathname_descriptor.
	(as_file_stream): global -> local. Update.
	(fehler_file_stream_unnamed): global -> local.
	(PARSE-NAMESTRING): Update.
	(unix_user_pwd): Fix treatment of error in getpwuid call.
	(init_pathnames): Restore comments.
	(USER-DATA, FILE-DATA): Move here, before the EMX "#undef stat".
	* subr.d: Keep in sync.
	* constsym.d: Likewise.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* constobj.d (O(type_string_integer)): Renamed from O(type_gensym_arg).
	* symbol.d (GENSYM): Update.
	* lispbibl.d (fehler_string_integer): Renamed from fehler_string_int.
	* error.d (fehler_string_integer): Renamed from fehler_string_int.
	  Use O(type_string_integer). Fix error message. Update translations.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* describe.lsp (describe-slotted-object): Define code in package
	  SYSTEM, not package CLOS.
	(describe-object): Likewise. Reindent.
	(describe-object T): Treat FSUBR here.
	(describe-object FUNCTION): Not here.
	(describe-object CONS): De-obfuscate list-length determination.
	(describe-object SYMBOL): Bind *print-escape* and *print-readably*
	  only around the necessary code. Update translations. Terminate
	  sentence with a dot.
	(describe-object PACKAGE): Keep "." internationalizable. Update
	  translations. Don't sort L if all we need is its length.
	(describe): Update translations.
	(apropos-list): Reindent.

1999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Change the type of FSUBRs (was COMPILED-FUNCTION, but ANSI CL
	specifies that COMPILED-FUNCTION is a subtype of FUNCTION).
	* predtype.d (COMPILED-FUNCTION-P): For FSUBRs, return NIL.
	(TYPE-OF): For FSUBRs, return SPECIAL-OPERATOR.
	(CLASS-OF): Undo 1999-03-18 patch.
	(enum_hs_special_operator): Renamed from enum_hs_special_oper.
	(heap_statistics_mapper): Update.
	* defs2.lsp (function-lambda-expression): No need to call functionp.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp (export): Mention `os-error' right after `file-error'.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* init.lsp (export): Mention `with-package-iterator' right after
	  `do-all-symbols', because that's where it is located in CLtL2.
	* defs3.lsp (export): Likewise.
	* defs1.lsp (with-package-iterator): Check all the symboltypes. Remove
	  duplicates among them.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* savemem.lsp (saveinitmem): Reindent. Declare *command-index* special,
	  because it is not defvar'ed at this point.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* loop.lsp (expand-loop) (collect/append/nconc): Generate forward-
	  consing code only for named accumulation variables. Revert to the
	  old backward-consing code for unnamed accumulation variables.
	(expand-loop) (accu-vars-nil, accu-vars-0): Kill use of `pushnew',
	  `push' and `delete-duplicates' is more efficient.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* constsym.d (*merge-pathnames-ansi*): New variable.
	* spvw.d (init_symbol_values): Initialize it to NIL.
	(main): Set it to T, if option -a given.
	* pathname.d (MERGE-PATHNAMES): If *merge-pathnames-ansi*,
	  concatenate two relative directories. Ignore *ansi*.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (impnotes.html): Only replace <HS> followed by a slash.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Accept option --with-export-syscalls, instead of
	  --export-syscalls.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Undo hack for missing rluserman.dvi.

1999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clisp.spec: Remove the "--with-unicode=no" hint. It is a bad idea.

1999-03-30  Jörg Höhle  <hoehle@tzd.telekom.de>

	* rexx.d (rexx_getmsg): return (handle command :RESULT)
	  if ARexx OPTIONS RESULTS requested on incoming command.

1999-04-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Improve handling of /proc/self/fd/* files on Linux.
	* pathname.d (possible_symlink, my_readlink): New functions.
	(realpath): Call possible_symlink before readlink.
	(if_HAVE_LSTAT): New macro.
	(assure_dir_exists) [UNIX]: Use it. Convert namestring to asciz once
	  only. Call possible_symlink before S_ISLNK and readlink.

1999-03-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Makefile.devel: Add rules for three files in the
	  ffcall/callback/vacall_r/ directory.

1999-03-26  Sam Steingold  <sds@goems.com>

	* stream.d (make_pipe_stream): new function: merged
	make_pipe_input_stream and make_pipe_output_stream.
	(make_pipe_output_stream, make_pipe_input_stream): use it.

1999-03-22  Sam Steingold  <sds@goems.com>

	* pathname.d (merge-pathnames): be ANSI CL compliant when
	lisp:*ansi* is non-nil.
	(unix_user_pwd): extracted from init_pathnames().
	(init_pathnames): use unix_user_pwd().
	(user_data): moved here from stream.d; use unix_user_pwd().

1999-03-20  Sam Steingold  <sds@gnu.org>

	Added PostgreSQL interface.  New module: postgresql.
	* modules/postgresql/postgresql.lsp: bindings.
	* modules/postgresql/sql.lsp: example of use.
	* makemake.in: added postgresql.

1999-03-20  Sam Steingold  <sds@gnu.org>

	* describe.lsp (describe-object): handle foreign functions correctly.

1999-03-19  Sam Steingold  <sds@gnu.org>

	* savemem.lsp (saveinitmem): bind +/-/* to nil instead of setting
	them to nil.  Also, bind sys::*command-index* to 0.

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

	* compiler.lsp (*deprecated-functions-list*): new variable.
	(note-function-used): use it.
	* describe.lsp (describe-object): warn about deprecated functions.
	* predtype.d (class-of): fsubr is a function, not T.
	* constobj.d: print SPECIAL-OPERATOR instead of SPECIAL-FORM.
	* io.d (pr_fsubr): comment fix.
	* ../modules/clx/new-clx/clx.lsp: push keyword :clx-ansi-common-lisp
	into `*features*' instead of the symbol.

1999-03-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_ICONV): Add check for iconv prototype.
	* unixconf.h.in (ICONV_CONST): New macro.
	* unix.d (iconv): Use ICONV_CONST.

1999-03-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (CLISP_INTERNAL_CHARSET): For HP-UX, set it to "ucs2".

1999-03-17  Sam Steingold  <sds@gnu.org>

	* describe.lsp (describe-object): handle CLOS classes in a
	`standard-object' method.  Describe the value of the `weak-pointer'.
	* stream.d (file_stat): fixed time handling.

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

	* describe.lsp (describe-object): replaced `standard-object' with T.

1999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defs1.lsp (package-iterator-function): New function, taken out of
	  with-package-iterator.
	(with-package-iterator): Adjust, add error message.

1999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (nls_mbstowcs, nls_asciiext_mbstowcs, nls_wcstombs)
	(nls_asciiext_wcstombs, nls_range): Use TheMachine, not ThePseudofun.
	  Vital for hppa.
	(init_encodings): Use make_machine, not P. Vital for hppa.
	  Initialize O(internal_encoding) always to ISO-8859-1, independently
	  of the platform. If HPROMAN8_CHS is defined, use it for the other
	  encodings, instead of ASCII.

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

	implement `with-package-iterator'.
	* defs1.lsp (with-package-iterator): new ANSI CL macro.
	* defs3.lsp, init.lsp: export it.

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

	* socket.d (is_number): removed.
	(resolve_host_ipaddr): return all hosts on NIL arg.
	* stream.d (user_data): return the current user with no args.
	* _impnotes.html: document this.

1999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (rd_ch_terminal2): Restructure this function. Call
	  rd_ch_unbuffered, in order to respect the stream's encoding.
	  When EOF has been reached, no need to set strm_rd_ch_last,
	  the caller already does this.
	(lisp_completion_matches): Do filename completion also after #P".
	(rd_ch_terminal3): Restructure this function. Respect the stream's
	  encoding. When EOF has been reached, no need to set strm_rd_ch_last,
	  the caller already does this.

1999-03-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Test for `__linux__', not `linux', so that even when
	  compiling with "-ansi -pedantic" the incompatible _setjmp/_longjmp
	  functions are avoided.

1999-03-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make it possible again to compile with "gcc -x c++".
	* aclocal.m4 (CL_CC_GCC): Define GCC_X_NONE.
	* intparam.d (main7): Use %lX instead of %X for a `long'.
	(main8): Adapt for C++.

	* configure: Don't configure in readline subdir if compiling
	  in C++ mode.

	* utils/modprep.d: Define `inline' to empty when compiling with
	  "gcc -ansi -pedantic".
	(String_equalsIgnoreCase): Don't use `isascii', it is not portable.

	* io.d (unicode_attribute, graphic_char_p): Remove the macros. The
	  global definition in charstrg.d is sufficient.
	(syntax_table_put): Cast one branch of the conditional expression
	  to void, to make this valid C++.

	* stream.d (host_data_fetcher): New type.
	(publish_host_data): Adjust declaration, for increased type safety.

	* charstrg.d (string_search): Change for being valid C++.

	* foreign.d (alignof): Provide alternate definition, valid C++.
	(convert_to_foreign): Cast converter_malloc result to char*.

	* avl.d (AVL(AVLID,least), AVL(AVLID,move)): Change K&R C declaration
	  into ANSI C declaration.

1999-03-14  Sam Steingold  <sds@gnu.org>

	* stream.d: removed `stream_fd';
	moved `file_stat' and `user_data' here.
	* pathname.d: renamed `fehler_thing' to `fehler_pathname_descriptor'.
	export it, `as_file_stream', `fehler_file_stream_unnamed'.
	* socket.d (resolve_host_ipaddr): handle IPv6 addresses.

1999-03-14  Sam Steingold  <sds@gnu.org>

	OS_error() generates an error of type `os-error'.
	* erramiga.d, errdjgpp.d, errunix.d, errwin32.d (OS_error): use
	`simple_os_error'.
	* lispbibl.d (conditiontype): added `os_error'.
	* constsym.d: added `simple_os_error' symbol.
	* error.d: handle `simple_os_error'.
	* conditio.lsp: added `os-error' and `simple-os-error'.

1999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (strm_encoding): New macro.
	* stream.d (strm_encoding): Comment out.
	* encoding.d (SYS::[SET-]DEFAULT-FILE-ENCODING)
	(SYS::[SET-]PATHNAME-ENCODING, SYS::[SET-]TERMINAL-ENCODING)
	(SYS::[SET-]FOREIGN-ENCODING, SYS::[SET-]MISC-ENCODING): New
	  functions.
	* init.lsp: Export *default-file-encoding*, *pathname-encoding*,
	  *terminal-encoding*, *misc-encoding*.
	* places.lsp (*default-file-encoding*, *pathname-encoding*)
	(*terminal-encoding*, *misc-encoding*): New settable symbol-macros.
	* foreign1.lsp (ffi:*foreign-encoding*): New settable symbol-macro.
	* affi1.lsp (affi:*foreign-encoding*): New settable symbol-macro.

1999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defs2.lsp (define-symbol-macro, check-not-special-variable-p): Move
	  to macros2.lsp.
	* macros2.lsp (define-symbol-macro, check-not-special-variable-p):
	  Moved here from defs2.lsp.

1999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (test_socket_server): New argument check_open. When it is
	  TRUE, check that the handle is non-NIL.
	(SOCKET-SERVER-CLOSE): After closing, set the handle to NIL. When
	  the handle is NIL, do nothing.
	(SOCKET-SERVER-PORT, SOCKET-SERVER-HOST): Update.
	(SOCKET-ACCEPT, SOCKET-WAIT): Call test_socket_server with
	  check_open=TRUE.
	* io.d (pr_orecord): For closed socket-servers, print a "CLOSED "
	  prefix.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (init_encodings): Define some more aliases.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (fehler_uni32_invalid, uni32_mblen, uni32be_mbstowcs)
	(uni32le_mbstowcs, uni32_wcslen, uni32be_wcstombs, uni32le_wcstombs):
	  New functions.
	(init_encodings): Initialize the Unicode-32 encodings.
	* pseudofun.d: Update.
	* type.lsp (canonicalize-type): Add charset:unicode-32-big-endian and
	  charset:unicode-32-little-endian to the list of types equivalent to
	  CHARACTER.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (conditiontype): Add charset_type_error.
	* conditio.lsp (charset-type-error, simple-charset-type-error): New
	  condition types.
	(%defclcs call): Add simple-charset-type-error.
	* constsym.d (simple_*_error): Add simple_charset_type_error.
	* error.d (end_error): Treat simple_charset_type_error like
	  simple_type_error.
	* encoding.d (fehler_unencodable): Signal an error of type
	  charset_type_error.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Integrate types and encodings.
	* lispbibl.d (Encoding): Add enc_range field.
	(encoding_length): Increment by 1.
	(Encoding_range): New macro.
	(stringof): New declaration.
	* charstrg.d (stringof): New function.
	* encoding.d (all_range, nls_range): New functions.
	(iconv_range): Declare.
	(MAKE-ENCODING): Initialize the enc_range field.
	(fehler_encoding, SYS::CHARSET-TYPEP, SYS::CHARSET-RANGE): New
	  functions.
	(init_encodings): Initialize the enc_range field.
	* stream.d (iconv_mblen): Optimize and make consistent with
	  iconv_mbstowcs.
	(iconv_wcslen): Optimize and make consistent with iconv_wcstombs.
	(iconv_wcstombs): Don't loop until outsize==0. The caller may have
	  given a larger buffer than necessary.
	(iconv_range): New function.
	* pseudofun.d: Update.
	* type.lsp (typep): Accept an encoding as a type.
	(canonicalize-type, subtypep): Likewise.
	(charset-subtypep): New function.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d (SYS::ENCODINGP): New function.
	* type.lsp: Implement typep for type ENCODING.
	(subtypep): Treat ENCODING as an elementary type.
	* compiler.lsp (c-typep-alist1): Implement typep for type ENCODING.

1999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_genera2.d (gc_mark_old_generation): Add braces, to avoid egcs
	  warning.
	* spvw_genera3.d (update_old_generation): Likewise.

1999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (conditiontype): Add reader_error.
	* conditio.lsp (simple-reader-error): New condition type.
	(%defclcs call): Add simple-reader-error.
	* constsym.d (simple_*_error): Add simple_reader_error.
	* io.d (signal_reader_error): New function.
	(read_internal): Protect calls to read_rational and read_float with
	  a handler for ARITHMETIC-ERROR.

1999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (make_HANDLER_frame, make_HANDLER_entry_frame)
	(unwind_HANDLER_frame): New macros.
	* eval.d (invoke_handlers): Distinguish handler frames with a
	  bytecoded handler and handler frames with a C function as handler.

1999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* format.lsp (format-character): Don't print the name of printable
	  characters.

1999-03-12  Sam Steingold  <sds@gnu.org>

	* subr.d: arglists for `socket_service_port' and `resolve_host_ipaddr'.
	* stream.d (socket_service_port): moved from here to socket.d
	* pathname.d (user_data): use `fehler_string_int'.
	* socket.d (resolve_service): removed.
	(socket_service_port): moved here.  optional second arg - protocol.
	return all services as a list when called with no arguments.
	(resolve_host_ipaddr): when called with no args, localhost is returned.
	* error.d (fehler_string_int): new function.
	* lispbibl.d (fehler_string_int): declare.

1999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d: Make UNICODE-16 an alias for UNICODE-16-BIG-ENDIAN.
	* constsym.d: Rename the CPxxx-MS symbols to CPxxx.

1999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* encoding.d: Add the HP-ROMAN8 character set.

1999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (FILE-STRING-LENGTH): Depend on the stream's encoding.
	  Don't look at the strm_wr_ch pointer.

1999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (directory_search_scandir): Avoid calling stat() if
	  the given wildcard mask excludes a given directory entry.

1999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Fix a bug: clear-input did not kill the EOF condition in terminal2
	and terminal3 streams.
	* stream.d (clear_input_keyboard): Use ls_avail_p.
	(clear_input_terminal2): Call clear_input_unbuffered, don't call
	  clear_tty_input directly. Use ls_avail_p.
	(clear_input_terminal3): Likewise.

1999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Finish implementing the iconv-based encodings.
	* lispbibl.d (Encoding): Add a stream argument to the enc_mbstowcs and
	  enc_wcstombs fields.
	(Encoding_mbstowcs, Encoding_wcstombs): Update.
	(cstombs): Pass nullobj as stream.
	* error.d (write_errorstring): Likewise.
	* foreign.d (convert_from_foreign_array_fill, convert_from_foreign):
	  Likewise.
	* affi.d (SYSTEM::MEM-READ): Likewise.
	* encoding.d (MAKE-ENCODING, make_string, asciz_to_string)
	(string_to_asciz): Move to the end of the file.
	(fehler_unencodable): Declare as global.
	(uni16be_mbstowcs, uni16le_mbstowcs, uni16be_wcstombs)
	(uni16le_wcstombs, utf8_mbstowcs, utf8_wcstombs, java_mbstowcs)
	(java_wcstombs, nls_mbstowcs, nls_asciiext_mbstowcs, nls_wcstombs)
	(nls_asciiext_wcstombs): Add an unused stream argument.
	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
	(fehler_iconv_invalid_charset): Move to stream.d.
	* stream.d (strm_channel_extrafields_struct): Add iconvdesc,
	  oconvdesc fields.
	(ChannelStream_iconvdesc, ChannelStream_oconvdesc): New macros.
	(CLISP_INTERNAL_CHARSET): New macro.
	(fehler_iconv_invalid_charset, iconv_mblen, iconv_mbstowcs)
	(iconv_wcslen, iconv_wcstombs): New functions, moved to here from
	  encoding.d. If the stream is passed, use the iconvdesc,
	  oconvdesc fields.
	(ChannelStream_init, ChannelStream_fini): New functions.
	(rd_ch_unbuffered, listen_unbuffered, rd_ch_array_unbuffered): Pass
	  the stream to the mbstowcs function.
	(close_ichannel): Call ChannelStream_fini.
	(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): Pass the
	  stream to the wcstombs function.
	(close_ochannel): Call ChannelStream_fini.
	(make_unbuffered_stream): Call ChannelStream_init.
	(rd_ch_buffered, rd_ch_array_buffered): Pass the stream to the
	  mbstowcs function.
	(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): Pass the stream to the wcstombs function.
	(make_buffered_stream): Call ChannelStream_init.
	(closed_buffered): Erase the old iconv descriptors.
	(close_buffered): Call ChannelStream_fini.
	(make_keyboard_stream): Add O(terminal_encoding), and call
	  ChannelStream_init.
	(make_terminal_stream_): Call ChannelStream_init.
	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Call ChannelStream_fini and
	  ChannelStream_init.
	* pseudofun.d: Update.

1999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Support for IPv6 sockets.
	* aclocal.m4 (CL_TCPCONN): Add checks for IPv4 and IPv6 facilities.
	  Add checks for `inet_pton' and `inet_ntop' functions.
	* unixconf.h.in (CL_TCPCONN): Conditionally define HAVE_IPV4,
	  HAVE_IPV6, IPV6_NEED_LINUX_IN6_H, HAVE_INET_PTON, HAVE_INET_NTOP.
	* lispbibl.d (UNIXCONN, TCPCONN): Define here, not in socket.d.
	  Make SOCKET_STREAMS depend on TCPCONN.
	(host_data): Remove the `host' field. Make the `hostname' field
	  large enough for IPv6. Change the `truename' field into an array,
	  so it does not need to point to static or temporary data.
	(MAXHOSTNAMELEN): Define.
	* win32.d: Define HAVE_IPV4, don't define HAVE_IPV6.
	* stream.d (publish_host_data): Test hd.truename for being "", not
	  NULL. Allocate the temporary string on the stack, instead of malloc.
	* misc.d (MACHINE-INSTANCE): Moved to socket.d.
	* socket.d: Don't define UNIXCONN, TCPCONN, SOCKET_STREAMS here.
	  Don't define MAXHOSTNAMELEN here.
	(get_hostname): New macro.
	(ipv4_ntop, ipv6_ntop): New macros.
	(MACHINE-INSTANCE): Moved here from socket.d. Consider h->h_addrtype
	  instead of blindly assuming it's AF_INET. Use ipv4_ntop macro
	  for building the dotted address string, instead of doing it by hand.
	(CLOSESOCKET): Only define if UNIXCONN || TCPCONN.
	(saving_sock_errno): New macro.
	(all_digits_dots): New function, for distinguishing IPv4 addresses
	  and FQDNs. The old method of looking at the first character is no
	  longer valid.
	(with_hostname): New function, taken out of connect_to_x_server.
	  Support IPv6. Compare the inet_addr() return value with (uint32)(-1),
	  not (unsigned long)(-1) [matters for 64-bit platforms].
	(connect_to_x_via_ip): New function, taken out of
	  connect_to_x_server.
	(connect_to_x_server): Use with_hostname and connect_to_x_via_ip.
	  Use get_hostname.
	(memset, bzero, bcopy): Remove declarations.
	(fill_hostname): Remove function, obsoleted by ipv4_ntop.
	(sockaddr_max): New type.
	(socket_getlocalname_aux): New function, taken out of
	  socket_getlocalname. Don't need to bzero() the result. Support IPv6.
	(socket_getlocalname): Use socket_getlocalname_aux. Return the true
	  host name instead of "localhost".
	(socket_getpeername): Don't need to bzero() the result. Support IPv6.
	  If truename unknown, return it as "" instead of NULL.
	(bindlisten_via_ip): New function, taken out of create_server_socket.
	  Close the socket in case of failure.
	(create_server_socket): Use with_hostname and bindlisten_via_ip.
	  Don't need to bzero() the addr. Use the true host name instead of
	  "localhost". After calling getsockname(), support IPv6. Make the
	  final getsockname() after listen(), not before. Don't need to
	  bzero() the result.
	(accept_connection): Support IPv6.
	(connect_via_ip): New function, taken out of create_client_socket.
	  If connect() fails, save errno during closesocket.
	(create_client_socket): Don't need to bzero() the sockaddr. Use
	  with_hostname and connect_via_ip.

1999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (XCFLAGS): When compiling for sparc, use
	  -fno-schedule-insns, in order to avoid egcs-1.1.1 bug which
	  miscompiles the division routine and causes an XGCD test failure.

1999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_TERM): When `struct winsize' is not defined in
	  <termios.h>, check whether it is defined in <sys/ioctl.h>.
	* unixconf.h.in (WINSIZE_NEED_SYS_PTEM_H): Renamed from
	  NEED_SYS_PTEM_H.
	(WINSIZE_NEED_SYS_IOCTL_H): New macro.
	* unix.d: Use both.

1999-03-10  Sam Steingold  <sds@gnu.org>

	* ../configure: new option --export-syscalls.
	* makemake.in: ditto.
	* constsym.d, subr.d: added `RESOLVE-HOST-IPADDR', `FILE-STAT'
	and `USER-DATA'.
	* pathname.d: added `file_stat' and `user_data'.
	* socket.d: added `resolve_host_ipaddr'.
	* stream.d: added `stream_fd'.

1999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make it possible to build clisp when neither libtermcap nor libncurses
	is available.
	* configure: Optionally pass/recommend --with-no-termcap-ncurses for
	  makemake.
	* makemake.in (XCFLAGS): Optionally add -DNO_TERMCAP_NCURSES.
	* lispbibl.d: If NO_TERMCAP_NCURSES is defined, don't define KEYBOARD
	  and SCREEN.
	* spvw_sigwinch.d (update_linelength): Respect NO_TERMCAP_NCURSES.

1999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d: Include <string.h> also in the case of NO_READLINE,
	  in order to declare `strcpy' and `strcat'.

1999-03-11  Sam Steingold  <sds@goems.com>

	* loop.lsp (expand-loop): do not nreverse for collect/nconc/append.

1999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove the graphics stuff.
	* graph.d: Remove file.
	* gettext/po/Makefile.devel (DSOURCES): Remove graph.
	* unix.d (geteuid, setreuid): Remove declarations.
	* makemake.in (LIBS): Don't add -lgraph and -lvideo on EMX.
	(CPARTS): Remove graph.
	(lisp.exe rule): Don't use emx options -aim or -acmi.
	* lispbibl.d (GRAPHICS, GRAPHICS_SWITCH): Remove definitions.
	(switch_text_mode): Remove declaration.
	* spvw.d (main): Don't drop setuid-root privilege. Don't call
	  switch_text_mode.
	* stream.d (low_read_unbuffered_handle, low_listen_unbuffered_handle)
	(low_read_array_unbuffered_handle, low_write_unbuffered_handle)
	(low_write_array_unbuffered_handle, rd_ch_terminal2)
	(rd_ch_terminal3, out_char): Don't call switch_text_mode.

1999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure: Don't tell the user to do "cd .".

1999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* graph.d (GRAPHICS_X, GRAPHICS_SUN): Remove unfinished code.
	* makemake.in: Don't link with ${X_LIBS}, but keep the Makefile
	  variable for possible future use.
	* clisp-link.in: Likewise.

1999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d: Include <stdio.h>.

1999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_FPU_CONTROL): Fix the "checking for" messages.

1999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_MEMSET): Undefine memset, so we get correct types
	  with glibc-2.1.

1999-03-10  Sam Steingold  <sds@gnu.org>

	* clos.lsp: moved `describe-slotted-object' and `describe-object'
	from here to describe.lsp.
	* describe.lsp: moved the bulk from `describe' to `describe-object'.
	added variables `*describe-nesting*' and `*describe-done*'.
	`describe' now calls `describe-object' and is ANSI compliant.

1999-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* readline/: Upgrade to readline-4.0.
	* configure: Also copy readline/shlib/.

1999-03-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* genclisph.d (main): Modify immediate_number_p, charp, integerp,
	  fixnump, posfixnump, floatp, short_float_p according to 1999-02-02
	  lispbibl.d patch.

1999-03-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Renamed newnewreadline to readline, newreadline to oldreadline,
	  readline to oldoldreadline.
	* Makefile.devel, configure, makemake.in: Update.

1999-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (SOCKET-SERVICE-PORT): When not found, return NIL instead
	  of -1.

1999-03-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Handle SIGPIPE on Unix.
	* spvw_sigpipe.d: New file.
	* spvw.d: Include it.
	(main): Call install_sigpipe_handler.
	* makemake.in (SPVW_INCLUDES): Add spvw_sigpipe.
	* gettext/po/Makefile.devel (DSOURCES): Add spvw_sigpipe. Split line
	  into multiple pieces, to avoid 1023 character line length limit of
	  patch-2.1.
	* lispbibl.d (writing_to_subprocess): New declaration.
	* stream.d (low_flush_buffered_pipe): New function.
	(BufferedPipeStreamInit): New macro.
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Use it.
	(low_write_unbuffered_pipe, low_write_array_unbuffered_pipe): New
	  functions.
	(UnbufferedPipeStream_output_init): Use them.
	* error.d (begin_error, tast_break): Set writing_to_subprocess=FALSE.
	* unix.d (raise): New declaration.
	* msdos.d (raise): Likewise.
	* acorn.d (raise): Likewise.
	* errunix.d (EPIPE): Improve error messages.

1999-03-01  Sam Steingold  <sds@goems.com>

	* spvw.d: removed :IEEE-FLOATING-POINT from *features*.  Use
	`pushnew' instead of `nconc'.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (subr_argtype_t): New enumeration items subr_argtype_1_3,
	  subr_argtype_2_3.
	* spvw.d (subr_argtype): Use them.
	* eval.d (eval_subr, apply_subr, funcall_subr): Treat them.
	* stream.d (SYSTEM::SET-STREAM-ELEMENT-TYPE): Stricter restrictions.
	(check_multiple8_eltype, test_endianness_arg): New functions.
	(READ-INTEGER, WRITE-INTEGER): New functions.
	* compiler.lsp (subr-info): Add them.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Allow #0Y to occur on standard input.
	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Accept an optional
	  direction argument. If it is given, recurse properly.
	* io.d (closure_reader): Call it with direction :INPUT.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* io.d (syntax_table_get_notinline): Swap arguments to gethash().

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (compile-file): Create the .fas and .lib files in UTF-8.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Reader macro for switching the stream's encoding.
	* constobj.d (O(charset_package)): New variable.
	* package.d (init_packages): Create #<PACKAGE CHARSET> and initialize
	  O(charset_package).
	* constpack.d: Remove #<PACKAGE CHARSET> here.
	* spvw.d (init_symbol_tab_2): New enum item enum_charset_index.
	* io.d (closure_reader): Accept "#0Y charset" syntax.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* charstrg.d (char_name): Return #\Uxxxx as a name for every Unicode
	  character.
	(name_char): Accept #\Uxxxx as a name for any Unicode character.
	* io.d (char_reader): Remove #\Uxxxx recognition code, now done by
	  `name_char'.
	(pr_character): For graphic standard characters, don't look up the
	  name.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Improve error checking in parse-namestring.
	* pathname.d (legal_namechar): Don't accept Unicode characters which
	  are not 1 byte in the pathname_encoding.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Use the system's iconv() function if available.
	* aclocal.m4 (CL_ICONV): New macro.
	* configure.in: Call it.
	* unixconf.h.in (HAVE_ICONV): New macro.
	* unix.d: Declare iconv_open, iconv, iconv_close.
	* encoding.d (MAKE-ENCODING): Accept strings as well.
	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs): New
	  functions.
	* pseudofun.d: Add them.
	* stream.d (test_external_format_arg): Accept strings as well.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure: Recommend --with-unicode.
	* makemake.in (*/makefile*): Pass --with-unicode to makemake.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* macros2.lsp (with-output-to-printer): Declare arg as IGNORE.

1999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Introduce space-efficient immutable strings.
	* lispbibl.d (Rectype_Imm_SmallSstring): New enumeration item.
	(Rectype_mdarray, Rectype_Sbvector, Rectype_bvector, Rectype_Svector)
	(Rectype_vector, Rectype_Sstring, Rectype_string)
	(Rectype_Imm_Sstring):
	  Rearrange and define rectype_unused1 so as to get fast type checks.
	(HAVE_SMALL_SSTRING): New macro.
	(small_sstring_, SmallSstring): New types.
	(Array_type_sstring): Treat Rectype_Imm_SmallSstring like
	  Rectype_Imm_Sstring.
	(TheSmallSstring): New macro.
	(vectorp, simplep, array_simplep, general_vector_p, simple_string_p)
	(stringp, byte_vector_p, arrayp): Update and optimize.
	(if_recordp): Treat Rectype_Imm_SmallSstring like
	  Rectype_Imm_Sstring.
	(case_Rectype_Sstring_above, case_Rectype_string_above)
	(case_Rectype_array_above): Likewise.
	(allocate_imm_small_string): New declaration.
	(with_string_0, with_sstring_0, with_string, with_sstring): Update
	  for unpack_string_ro change. Use unpack_sstring_alloca.
	(chartcopy, scintcopy): New declarations.
	(SstringDispatch): New macro.
	(unpack_sstring_alloca): New macro.
	(unpack_string_ro): One more argument, change return type.
	(coerce_normal_ss, coerce_imm_normal_ss): New declarations.
	(test_string_limits_rw): Remove declaration.
	(stringarg): New structure type.
	(test_string_limits_ro): Change calling convention.
	(string_eqcomp, string_eqcomp_ci): New declarations.
	* genclisph.d (main): Update vectorp, general_vector_p,
	  simple_string_p, stringp, byte_vector_p, arrayp.
	* spvw_objsize.d (size_small_sstring): New macro.
	(objsize): Treat Rectype_Imm_SmallSstring.
	* spvw_update.d (update_varobject): Treat Rectype_Imm_SmallSstring
	  like Rectype_Imm_Sstring.
	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
	* spvw_garcol.d (gc_mark): Likewise.
	* spvw_typealloc.d (allocate_imm_small_string): New function.
	* charstrg.d (chartcopy, scintcopy): New functions.
	(unpack_string_ro): Define always. One more argument, change return
	  type.
	(string_gleich, string_equal): Mostly rewritten.
	(copy_string, coerce_imm_ss): Mostly rewritten.
	(coerce_normal_ss, coerce_imm_normal_ss): New functions.
	(coerce_char): Update, treat small strings too.
	(CHAR, SCHAR): Likewise.
	(test_string_limits_ro): Change calling convention.
	(test_string_limits_rw): Change calling convention, make local.
	(test_2_stringsym_limits): Change calling convention.
	(string_eqcomp, string_comp): Change calling convention. Rewritten,
	  treat small strings too.
	(STRING=, STRING/=, STRING<, STRING>, STRING<=, STRING>=): Rewritten.
	(string_eqcomp_ci, string_comp_ci): Change calling convention.
	  Rewritten, treat small strings too.
	(STRING-EQUAL, STRING-NOT-EQUAL, STRING-LESSP, STRING-GREATERP)
	(STRING-NOT-GREATERP, STRING-NOT-LESSP): Rewritten.
	(eqcomp_fun): Change function type.
	(string_search): Change calling convention.
	  Treat len1==0 outside of the loop.
	(SYS::SEARCH-STRING=, SYS::SEARCH-STRING-EQUAL): Mostly rewritten.
	(NSTRING-UPCASE, NSTRING-DOWNCASE, NSTRING-CAPITALIZE): Rewritten.
	(subsstring, SUBSTRING, string_concat): Treat small strings too.
	* array.d (datenvektor_aref): Treat small strings too.
	(datenvektor_store): Treat Rectype_Imm_SmallSstring like
	  Rectype_Imm_Sstring.
	(VECTOR-PUSH-EXTEND): Treat small strings too.
	(ssstring_push_extend, ssstring_extend): Use chartcopy.
	* predtype.d (equal): Use string_eqcomp.
	(elt_compare_T_Char): Treat small strings too.
	(elt_compare_Char_Char): Use string_eqcomp_ci.
	* hashtabl.d (hashcode_string): Treat small strings too.
	(hashcode3_atom): Treat Rectype_Imm_SmallSstring like
	  Rectype_Imm_Sstring.
	(hashcode4_vector_Char): Treat small strings too.
	* package.d (string_hashcode): Treat small strings too.
	* encoding.d (string_to_asciz): Call unpack_sstring_alloca, but call
	  unpack_string_ro only once.
	(string_to_asciz_): Update.
	* sequence.d (WRITE-CHAR-SEQUENCE): Call unpack_sstring_alloca.
	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc): Treat small strings too.
	(rd_ch_str_in, rd_ch_array_str_in): Likewise.
	(MAKE-STRING-INPUT-STREAM): Update.
	(wr_ss_str_out, wr_ss_pphelp): Treat small strings too.
	(rd_ch_buff_in): Likewise.
	(wr_ss_generic): Call unpack_sstring_alloca.
	(wr_ss_unbuffered_unix, wr_ss_unbuffered_mac, wr_ss_unbuffered_dos)
	(wr_ss_buffered_unix, wr_ss_buffered_mac, wr_ss_buffered_dos):
	  Likewise.
	(lisp_completion): Call unpack_sstring_alloca. Use
	  O(terminal_encoding).
	(wr_ss_terminal3): Call unpack_sstring_alloca. Treat small strings
	  too.
	(FILE-STRING-LENGTH): Treat small strings too.
	* io.d (PARSE-INTEGER): Treat small strings too.
	(write_sstring_case, pr_symbol_part, pr_sstring_ab): Likewise.
	(pr_orecord): Treat Rectype_Imm_SmallSstring like
	  Rectype_Imm_Sstring.
	(write_string_up): Update.
	* lisparit.d (read_integer): Call unpack_sstring_alloca.
	(decimal_string): Use chartcopy.
	* foreign.d (convert_to_foreign): Call unpack_sstring_alloca.
	* affi.d (affi_call_argsa, SYSTEM::MEM-WRITE-VECTOR): Likewise.
	* pathname.d (subst_coerce_normal_ss): New function.
	(test_optional_host): Use coerce_normal_ss instead of coerce_ss.
	(PARSE-NAMESTRING): When thing is a symbol, do the case conversion
	  on the :start/:end delimited part, not on the entire symbol-name.
	  Accept small strings too, convert them to normal strings.
	(MAKE-PATHNAME): Call coerce_normal_ss on the device, name and type.
	  Call subst_coerce_normal_ss on the directory.

1999-02-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* package.d (correct_packname): Convert the package name to an
	  immutable string.
	(init_packages): Use immutables strings as package names and
	  nicknames.
	* symbol.d (GENSYM): Make the symbol name immutable.

1999-02-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Bug fix for NEXTAPP model.
	* stream.d (lisp_completion): Call begin_error here.
	(lisp_completion_matches): Not here.

1999-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* socket.d (create_server_socket): Cast setsockopt argument.

	* modules.d (_NEXT_NULL): New macro.

1999-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Fix bug in parsing of --hyperspec argument.

	* makemake.in (XCC_DLOPENABLE_EXE_FLAG): Pass -export-dynamic to
	  the linker only if the linker is GNU ld.

1999-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* clos.lsp, init.lsp: Do export GENERIC-LABELS and GENERIC-FLET here.

1999-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (compile-file): Output the SYSTEM::VERSION form in
	  upper case.
	* unix/MAGIC.add: Revert last change.

1999-02-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Convert dotimesL with loop variables into dotimespL.
	* affi.d (bytecopy): Use dotimespL. Assume length > 0.
	(SYSTEM::MEM-READ): Use dotimespL instead of dotimesL.
	* array.d (reshape): Likewise.
	* charstrg.d (string_gleich, string_equal, SUBSTRING): Likewise.
	* control.d (PSETQ): Likewise.
	* error.d (convert_simple_condition): Likewise.
	* eval.d (sym_value, setq, sym_function, nest_env): Likewise.
	* encoding.d (make_string_, ascii_to_string): Likewise.
	* graph.d (gr_text): Likewise.
	* io.d (test_potential_number_syntax, test_number_syntax, test_dots)
	(upcase_token, uninterned_reader, bit_vector_reader)
	(write_sstring_case, klammer_zu): Likewise.
	* record.d (CLOS::ALLOCATE-STD-INSTANCE, CLOS::%ALLOCATE-INSTANCE)
	(CLOS::%MAKE-INSTANCE): Likewise.
	* spvw.d (main): Likewise.
	* foreign.d (convert_from_foreign_array_fill, convert_to_foreign):
	  Likewise.
	* hashtabl.d (clrhash): Likewise.
	* intread.d (DIGITS_to_I): Likewise.
	* pathname.d (common_case, test_optional_host, all_digits)
	(parse_logical_pathnamestring, legal_name_or_type, legal_name)
	(legal_type, MAKE-PATHNAME, has_wildcards, has_word_wildcards)
	(SYSTEM::DYNLOAD-MODULES): Likewise.
	* predtype.d (heap_statistics_result): Likewise.
	* stream.d (wr_ss_terminal3): Likewise.
	* spvw_debug.d (mem_hex_out): Likewise.
	* spvw_typealloc.d (allocate_vector): Likewise.

	Convert dotimesC with loop variables into dotimespC.
	* affi.d (affi_call_argsa): Use dotimespC instead of dotimesC.
	* arilev1i.d (shiftleft_loop_down, shiftleftcopy_loop_down)
	(shiftright_loop_up): Likewise.
	* array.d (array_dimensions, array_dims_sizes, ARRAY-IN-BOUNDS-P)
	(bit_up): Likewise.
	* eval.d (get_closure, funcall_iclosure, match_subr_key)
	(match_cclosure_key, apply_closure, funcall_subr, funcall_closure):
	  Likewise.
	* charstrg.d (string_concat): Likewise.
	* misc.d (MACHINE-INSTANCE): Likewise.
	* control.d (LET, LET*, SYMBOL-MACROLET): Likewise.
	* foreign.d (FFI::%ELEMENT): Likewise.
	* hashtabl.d (hashcode4_atom): Likewise.
	* lisparit.d (=, /=, <, >, <=, >=): Likewise.
	* record.d (CLOS::%SHARED-INITIALIZE, CLOS::%REINITIALIZE-INSTANCE)
	(do_initialize_instance, CLOS::%MAKE-INSTANCE): Likewise.
	* predtype.d (equalp): Likewise.
	* sequence.d (CONCATENATE): Likewise.
	* spvw.d (for_all_subrs, for_all_constobjs, init_subr_tab_1)
	(init_object_tab_1, init_other_modules_1, init_module_2, main)
	(dynload_modules): Likewise.
	* spvw_typealloc.d (allocate_xrecord_): Likewise.
	* stream.d (test_input_stream_args, test_output_stream_args)
	(clear_linepart, save_line_old): Likewise.

1999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Introduce immutable strings.
	* lispbibl.d (Rectype_Imm_Sstring): New enumeration item.
	(Array_type_sstring): Include it.
	(strmflags_immut_bit_B): New macro.
	(vectorp, simplep, array_simplep, general_vector_p, simple_string_p)
	(stringp, byte_vector_p, arrayp, if_recordp): Update.
	(case_Rectype_Sstring_above, case_Rectype_string_above): Include
	  Rectype_Imm_Sstring.
	(allocate_imm_string): New declaration.
	(with_string_0, with_string): Use unpack_string_ro.
	(unpack_string_ro, unpack_string_rw): New declarations, replace
	  unpack_string.
	(coerce_imm_ss): New declaration.
	(test_string_limits_ro, test_string_limits_rw): New declarations,
	  replace test_string_limits.
	(fehler_sstring_immutable): New declaration.
	(check_sstring_mutable): New macro.
	* spvw_update.d (update_varobject): Treat Rectype_Imm_Sstring like
	  Rectype_Sstring.
	* spvw_garcol.d (gc_mark): Likewise.
	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
	* spvw_typealloc.d (allocate_imm_string): New function.
	* error.d (fehler_sstring_immutable): New function.
	* array.d (datenvektor_store): In case of Rectype_Imm_Sstring, signal
	  an error.
	* charstrg.d (unpack_string_rw): Renamed from unpack_string. Add calls
	  to check_sstring_mutable.
	(unpack_string_ro): New function.
	(string_gleich, string_equal, copy_string): Use unpack_string_ro
	  instead of unpack_string.
	(coerce_imm_ss): New function.
	(coerce_char): Use unpack_string_ro instead of unpack_string.
	(test_index_arg): Return the index, not the new charptr.
	(CHAR, SCHAR): Update.
	(SYS::STORE-CHAR): Update. Call unpack_string_rw instead of
	  unpack_string.
	(SYS::STORE-SCHAR): Update. Add check_sstring_mutable call.
	(test_string_limits_ro): Renamed from test_string_limits.
	  Use unpack_string_ro instead of unpack_string.
	(test_string_limits_rw): New function.
	(test_2_stringsym_limits): Use unpack_string_ro instead of
	  unpack_string.
	(NSTRING-UPCASE, NSTRING-DOWNCASE, NSTRING-CAPITALIZE): Use
	  test_string_limits_rw instead of test_string_limits.
	(SUBSTRING, string_concat): Use unpack_string_ro instead of
	  unpack_string.
	* stream.d (strmflags_immut_bit_B, strmflags_immut_B): New macros.
	(make_twoway_stream, make_echo_stream): Inherit the immut_B from
	  the input stream.
	(rd_ch_str_in, rd_ch_array_str_in): Use unpack_string_ro instead of
	  unpack_string.
	(MAKE-STRING-INPUT-STREAM): Use test_string_limits_ro instead of
	  test_string_limits.
	(rd_ch_buff_in): Likewise. Use unpack_string_ro instead of
	  unpack_string.
	(make_unbuffered_stream, make_buffered_stream): Put strmflags_immut_B
	  into the strmflags if asked for.
	(FILE-STRING-LENGTH): Use unpack_string_ro instead of unpack_string.
	* io.d (string_reader): Create an immutable string, if the stream
	  allows this.
	(uninterned_reader): Likewise.
	(PARSE-INTEGER): Use test_string_limits_ro instead of
	  test_string_limits.
	(pr_orecord): Treat Rectype_Imm_Sstring like Rectype_Sstring.
	(write_string_up): Use test_string_limits_ro instead of
	  test_string_limits.
	* affi.d (affi_call_argsa): Use unpack_string_ro instead of
	  unpack_string.
	(SYSTEM::MEM-READ): Use unpack_string_rw instead of unpack_string.
	(SYSTEM::MEM-WRITE-VECTOR): Use unpack_string_ro instead of
	  unpack_string.
	* package.d (string_hashcode): Use unpack_string_ro instead of
	  unpack_string.
	(intern): Make the symbol-name strings immutable if possible.
	(shadow): Likewise.
	(MAKE-SYMBOL): Likewise.
	(test_names_args): Make the package-name and package-nicknames
	  strings immutable if possible.
	* spvw.d (init_symbol_tab_2): Make the symbol-name strings immutable
	  if possible.
	* pathname.d (PARSE-NAMESTRING): Use test_string_limits_ro instead of
	  test_string_limits.
	* encoding.d (string_to_asciz): Use unpack_string_ro instead of
	  unpack_string.
	* foreign.d (convert_to_foreign): Use unpack_string_ro instead of
	  unpack_string.
	* hashtabl.d (hashcode_string): Use unpack_string_ro instead of
	  unpack_string.
	(hashcode3_atom): Treat Rectype_Imm_Sstring like Rectype_Sstring.
	* sequence.d (READ-CHAR-SEQUENCE): Treat an empty string specially.
	  Then call unpack_string_rw instead of unpack_string.
	(WRITE-CHAR-SEQUENCE): Treat an empty string specially.
	  Then call unpack_string_ro instead of unpack_string.

1999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make room in the strmflags.
	* stream.d (strmflags_i_B, strmflags_ia_B, strmflags_ib_B)
	(strmflags_ic_B): Remove macros.
	(decoded_eltype): kind==eltype_ch implies size==0.
	(test_eltype_arg): When setting eltype_ch, set size = 0.
	(strm_channel_extrafields_struct): bitsize is now unconditional.
	(close_ichannel, close_ochannel): Test for bitsize > 0.
	(make_unbuffered_stream): Set ChannelStream_bitsize in all cases.
	  Don't set strmflags_i...
	(position_file_i_buffered): Dispatch on bitsize, not flags.
	(logical_position_file_start, logical_position_file)
	(logical_position_file_end): Likewise.
	(fill_pseudofuns_buffered): Likewise.
	(make_buffered_stream): Set ChannelStream_bitsize in all cases.
	  Don't set strmflags_i...
	(buffered_flush_everything): Dispatch on bitsize, not flags.
	(closed_buffered): Test for bitsize > 0.
	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Simplify accordingly.

1999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make BASE-CHAR equivalent to CHARACTER.
	* lispbibl.d (small_char_int_len): Renamed from base_char_int_len.
	(small_char_int_limit): Renamed from base_char_int_limit.
	(scint): Renamed from bcint.
	(small_char_code_limit): Renamed from base_char_code_limit.
	(base_char_int_len, base_char_code_limit): New macros.
	(base_char_p): Define only when needed.
	(small_char_p): New macro.
	* charstrg.d (SYSTEM::BASE-CHAR-P): Define only when needed.
	* spvw.d (init_object_tab): Add :BASE-CHAR=CHARACTER to *features*.
	* io.d: Update.
	* defs2.lsp (dispatch-reader): Don't use base-char-p and
	  base-char-code-limit.
	(designator): Depend upon :BASE-CHAR=CHARACTER.
	(base-char-designator-p): Define only when needed.
	* type.lsp (BASE-CHAR, EXTENDED-CHAR, canonicalize-type): Depend
	  upon :BASE-CHAR=CHARACTER.
	* compiler.lsp (c-typep-alist1, c-typep-alist2): Treat BASE-CHAR
	  and EXTENDED-CHAR depending upon :BASE-CHAR=CHARACTER.

1999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Improve the speed of NLS charset conversions.
	* utils/unicode/nls_table.java: Emit a value for is_ascii_extension.
	* encoding.d (nls_table): New field `is_ascii_extension'.
	(nls_asciiext_mbstowcs, nls_asciiext_wcstombs): New functions.
	(init_encodings): Choose them if possible.
	* pseudofun.d (nls_asciiext_mbstowcs, nls_asciiext_wcstombs): New
	  declarations.

1999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (init_streamvars): Avoid gcc warning.

1999-02-19  Sam Steingold  <sds@goems.com>

	* defs3.lsp, clos.lsp, init.lsp: do not export `generic-flet',
	`generic-labels'.
	* _impnotes.html is now HTML 3.2 compliant.

1999-02-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Improve parsing of --hyperspec argument.

1999-02-18  Sam Steingold  <sds@goems.com>

	* affi.txt, ansicl.txt, cltl2.txt, foreign.txt, module.txt,
	vgagraph.txt: removed.

1999-02-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Improve parsing of --hyperspec argument.

1999-02-17  Sam Steingold  <sds@goems.com>

	* spvw.d: user ascii* instead of asciz* for constant string
	when initializing *features*.
	* _impnotes.txt, impnotes.html: removed.
	* _impnotes.html: new file.
	* makemake.in, ../configure: new option --hyperspec.

1999-02-12  Sam Steingold  <sds@goems.com>

	* socket.d (create_client_socket): port is unsigned int.
	* stream.d: declare `create_client_socket' appropriately.

1999-02-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pseudofun.d: Enclose all XPSEUDOs in #ifdef UNICODE.

1999-02-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Unicode support.
	* makemake.in (--with-unicode): New command line option.
	(XCFLAGS): Conditionally add -DUNICODE.
	(UNICODE_INCLUDES, NLS_INCLUDES): New variables.
	(CFILES): Add them.
	  Symlink them.
	(depends): Add $UNICODE_INCLUDES for charstrg. Add $NLS_INCLUDES for
	  encoding.
	* lispbibl.d (CHART_STRUCT): Don't define on m68k and arm CPUs.
	(char_int_len): Define as 16 for UNICODE.
	(Encoding) [UNICODE]: Add more fields.
	(encoding_length): Change value.
	(encoding_xlength): New macro.
	(Encoding_mblen, Encoding_mbstowcs, Encoding_wcslen)
	(Encoding_wcstombs, cslen, cstombs): New macros.
	(allocate_encoding): Use encoding_xlength.
	(make_string): Add an encoding argument.
	(asciz_to_string, string_to_asciz): Likewise.
	(ascii_to_string): New function.
	(with_string_0, with_sstring_0, with_string, with_sstring): Add an
	  encoding argument.
	(pseudofun_): Remove type.
	(Pseudofun): Change definition.
	(P): New macro, moved here from stream.d.
	(max_bytes_per_chart): New macro.
	* genclisph.d (main): Remove `asciz_to_string' declaration.
	  Add `ascii_to_string' declaration.
	* modules/clx/new-clx/e2d.c (care_about_packages): Use ascii_to_string
	  instead of asciz_to_string.
	* constpack.d (LISPPACK_B): Use ascii_to_string instead of
	  asciz_to_string.
	(charset): New package.
	* constsym.d (CHARSET:...): New symbols.
	* constobj.d (O(internal_encoding), O(pathname_encoding),
	   O(terminal_encoding), O(foreign_encoding), O(misc_encoding)): New
	  variables.
	* spvw.d (make_string, asciz_to_string, string_to_asciz): Moved out
	  to encoding.d.
	(fehler_notreached): Use ascii_to_string instead of asciz_to_string.
	(fehler_code_alignment): Use O(terminal_encoding).
	(init_symbol_tab_2): Export symbols in package CHARSET as well.
	  Use ascii_to_string instead of asciz_to_string.
	(init_object_tab): Add :UNICODE to features_initstring. Use
	  ascii_to_string instead of asciz_to_string. Use O(internal_encoding).
	(init_module_2): Use O(internal_encoding).
	(print_license, print_banner): Use O(internal_encoding).
	(main): Use O(internal_encoding) and O(pathname_encoding) and
	  O(misc_encoding). Use ascii_to_string.
	(fehler_dlerror): Use O(misc_encoding) and O(internal_encoding).
	* spvw_language.d (localized_string, localized_object): Use
	  S(iso8859_1).
	* spvw_memfile.d (memflags): Depends on UNICODE.
	(loadmem_update): Use the Pseudofun type instead of void*.
	* encoding.d (MAKE-ENCODING): Accept constant symbols for the :charset
	  argument. Copy the trailing encoding_xlength bytes too.
	(make_string): Moved here from spvw.d. Add encoding argument.
	(asciz_to_string): Likewise.
	(ascii_to_string): New function.
	(string_to_asciz): Moved here from spvw.d. Add encoding argument.
	(hex_table): New variable.
	(fehler_unencodable): New function.
	(uni16_mblen, uni16be_mbstowcs, uni16le_mbstowcs, uni16_wcslen)
	(uni16be_wcstombs, uni16le_wcstombs): New functions.
	(fehler_utf8_invalid1, fehler_utf8_invalid2, fehler_utf8_invalid3)
	(utf8_mblen, utf8_mbstowcs, utf8_wcslen, utf8_wcstombs): New
	  functions.
	(java_mblen, java_mbstowcs, java_wcslen, java_wcstombs): New
	  functions.
	(nls_table): New struct type.
	(nopage): New constant array.
	(nls_*.c): New include files.
	(nls_first_sym, nls_last_sym, nls_num_encodings): New macros.
	(nls_tables): New constant array.
	(nls_mblen, nls_mbstowcs, nls_wcslen, nls_wcstombs): New functions.
	(init_encodings): Entirely rewritten.
	* pseudofun.d (PSEUDOFUN_C): Renamed from PSEUDOFUN_B.
	(PSEUDOFUN_B): New macro.
	(XPSEUDO_A, XPSEUDO_B, XPSEUDO_C): New macros.
	  New XPSEUDO declarations for the functions and tables defined in
	  encoding.d.
	* charstrg.d (nop_page): New variable.
	(up_case, down_case): Add UNICODE support.
	(uni_attribute.c): New include file.
	(unicode_attribute): New macro.
	(alphap): Add UNICODE support.
	(numericp): New macro.
	(alphanumericp): Add UNICODE support.
	(graphic_char_p): Add UNICODE support.
	(SYSTEM::BASE-CHAR-P): Fix comparison with base_char_code_limit.
	(DIGIT-CHAR-P): Add UNICODE support.
	* predtype.d (TYPE-OF): Fix comparison with base_char_code_limit.
	* package.d (init_packages): Use ascii_to_string instead of
	  asciz_to_string.
	* io.d (unicode_attribute, graphic_char_p): New macros.
	(allocate_perchar_table, perchar_table_get, perchar_table_put)
	(copy_perchar_table): Add UNICODE support.
	(allocate_syntax_table, syntax_table_get, syntax_table_put): Move
	  macros. Add UNICODE support.
	(orig_syntax_table): Size is only base_char_code_limit. Add UNICODE
	  support.
	(orig_syntax_table_get): New macro.
	(orig_readtable, copy_readtable_contents): Add UNICODE support.
	(SET-SYNTAX-FROM-CHAR): Permit syntax_table_put to call GC.
	(SET-MACRO-CHARACTER): Likewise.
	(MAKE-DISPATCH-MACRO-CHARACTER): Likewise.
	(attribute_table): Size is only base_char_code_limit. Add UNICODE
	  support.
	(attribute_of): Add UNICODE support.
	(char_reader): Declare code as uintL, so it can hold value up to
	  10*char_code_limit. Recognize #\uxxxx syntax.
	(PARSE-INTEGER): Use orig_syntax_table_get instead of accessing
	  orig_syntax_table directly.
	(pr_orecord): For Rectype_Encoding, also print the charset symbol.
	* defs2.lsp (dispatch-reader): Modify to match changes in the
	  perchar_table_get macro.
	* pathname.d (asciz_dir_to_pathname): Add an encoding argument.
	(PARSE-NAMESTRING): Use O(misc_encoding).
	(default_directory_of, directory_truename, default_directory)
	(canonicalise_filename, canonicalise_dirname, assure_dir_exists):
	  Use O(pathname_encoding).
	(change_default): Likewise.
	(file_exists, directory_exists): Likewise.
	(DELETE-FILE, rename_file, create_backup_file, open_file): Likewise.
	(extract, subdirs, subfiles, with_stat_info)
	(directory_search_1subdir, directory_search_hashcode)
	(directory_search_direntry_ok, directory_search_scandir, DIRECTORY):
	  Likewise.
	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Likewise.
	(init_pathnames): Use O(pathname_encoding) and O(misc_encoding).
	(FILE-WRITE-DATE, FILE-AUTHOR): Use O(pathname_encoding).
	(EXECUTE): Use O(pathname_encoding) and O(misc_encoding).
	(SHELL): Use O(misc_encoding).
	(SYSTEM::DYNLOAD-MODULES): Use O(pathname_encoding).
	(SYSTEM::PROGRAM-NAME): Likewise.
	* stream.d (P): Move to lispbibl.d.
	(test_external_format): Accept constant symbols.
	(strm_unbuffered_extrafields_struct): Extend the meaning of status.
	  Rename field `lastbyte' to `bytebuf'.
	(UnbufferedStream_lastbyte): Remove macro.
	(UnbufferedStream_bytebuf): New macro.
	(UnbufferedStreamLow_push_byte, UnbufferedStreamLow_pushfront_byte)
	(UnbufferedStreamLow_pushfront_bytes, UnbufferedStreamLow_pop_byte):
	  New macros.
	(low_read_unbuffered_handle): Use UnbufferedStreamLow_pop_byte and
	  UnbufferedStreamLow_push_byte.
	(low_listen_unbuffered_handle): Use UnbufferedStreamLow_push_byte.
	(low_read_array_unbuffered_handle): Use UnbufferedStreamLow_pop_byte
	  in a loop.
	(rd_ch_unbuffered): Add UNICODE support.
	(listen_unbuffered): Likewise. Use UnbufferedStreamLow_pushfront_byte.
	(rd_ch_array_unbuffered): Add UNICODE support.
	(wr_ch_unbuffered_unix, wr_ch_array_unbuffered_unix): Likewise.
	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac): Likewise.
	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos): Likewise.
	(rd_ch_buffered, rd_ch_array_buffered): Likewise.
	(wr_ch_buffered_unix, wr_ch_array_buffered_unix): Likewise.
	(wr_ch_buffered_mac, wr_ch_array_buffered_mac): Likewise.
	(wr_ch_buffered_dos, wr_ch_array_buffered_dos): Likewise.
	(finish_output_buffered): Use O(pathname_encoding).
	(make_key_event): Use ascii_to_string instead of asciz_to_string.
	(lisp_completion): Use O(terminal_encoding).
	(rd_ch_terminal3): Use O(terminal_encoding).
	(wr_ch_terminal3): Call wr_ch_unbuffered_unix, instead of direct
	  `write' call.
	(wr_ss_terminal3): Call wr_ch_array_unbuffered_unix, instead of
	  direct `full_write' call.
	(make_terminal_stream_): Initialize the encoding. Use
	  O(pathname_encoding).
	(init_term): Use O(misc_encoding).
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Use O(misc_encoding).
	(low_read_unbuffered_socket): Use UnbufferedStreamLow_pop_byte.
	(low_listen_unbuffered_socket): Use UnbufferedStreamLow_push_byte.
	(low_read_array_unbuffered_socket): Use UnbufferedStreamLow_pop_byte
	  in a loop.
	(SYS::MAKE-SOCKET-STREAM, SOCKET-SERVER, SOCKET-CONNECT): Use
	  O(misc_encoding).
	(SOCKET-SERVICE-PORT): Use S(ascii).
	(publish_host_data): Use O(misc_encoding).
	(make_terminal_io): Use ascii_to_string instead of asciz_to_string.
	(init_streamvars): Likewise.
	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Use UnbufferedStreamLow_push_byte.
	(pseudofun_tab): Include pseudofun.c once more.
	* error.d (write_errorstring): Add UNICODE support. Use
	  O(internal_encoding).
	* misc.d (LISP-IMPLEMENTATION-VERSION): Use ascii_to_string instead of
	  asciz_to_string.
	(MACHINE-TYPE, MACHINE-VERSION, MACHINE-INSTANCE): Use
	  O(misc_encoding). Use ascii_to_string instead of asciz_to_string.
	(SYSTEM::GETENV, SYSTEM::REGISTRY): Use O(misc_encoding).
	* rexx.d (REXX-PUT): Use with_sstring and O(misc_encoding).
	(rexx_getmsg): Use O(misc_encoding).
	(REXX-REPLY): Use with_string and O(misc_encoding). No need to call
	  coerce_ss.
	* graph.d (SYS::GRAPH-INIT): Use ascii_to_string instead of
	  asciz_to_string.
	(SYS::GRAPH-TEXT): Use with_string and an encoding corresponding to
	  the font.
	* foreign.d (register_foreign_variable, register_foreign_function):
	  Use O(internal_encoding).
	(convert_from_foreign_array_fill, convert_from_foreign): Add UNICODE
	  support. Use O(foreign_encoding).
	(convert_to_foreign): Add UNICODE support. Use O(foreign_encoding).
	(open_library): Use O(misc_encoding).
	* affi.d (affi_callit): Use O(foreign_encoding).
	(affi_call_argsa): Add UNICODE support. Use O(foreign_encoding).
	(SYS::MEM-READ, SYSTEM::MEM-WRITE-VECTOR): Likewise.

1999-02-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (init_streamvars): Initialize the keyboard stream after
	  the standard streams, not before them.

1999-02-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* autoconf/aclocal.m4 (CL_IREG_FLOAT_RETURN): New macro.

1999-02-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/unicode/: New directory.
	* uni_upcase.c, uni_downcase.c, uni_attribute.c, nls_*.c: New files,
	  automatically generated by utils/unicode/ tools.

1999-02-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* compiler.lsp (compile-toplevel-form): Put a newline on
	  *fasoutput-stream* after the form, not before it.
	(compile-file): Put a newline after the first form, and none before
	  closing *fasoutput-stream*.

1999-02-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (with_sstring): Assign a value to lenvar.

1999-02-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Introduce encodings.
	* lispbibl.d (Rectype_Encoding): New enum value.
	(Encoding): New structure type.
	(encoding_length): New macro.
	(strm_file_name, strm_file_truename, strm_buffered_channel)
	(strm_pipe_pid, strm_x11socket_connect, strm_socket_port)
	(strm_socket_host): Offset by 1.
	(TheEncoding, encodingp, allocate_encoding): New macros.
	(init_encodings): New declaration.
	(make_file_stream): Change calling convention.
	* constobj.d (O(default_file_encoding)): New variable.
	* encoding.d: New file.
	* makemake.in (CPARTS): Add encoding.d.
	* gettext/po/Makefile.devel (DSOURCES): Add encoding.d.
	* spvw.d (initmem): Call init_encodings.
	* io.d (pr_orecord): Treat Rectype_Encoding.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Encoding.
	(enum_hs_encoding): New enum value.
	(heap_statistics_mapper): Treat Rectype_Encoding.
	* stream.d (test_external_format_arg): New function.
	(strm_encoding): New macro.
	(strm_bitbuffer, strm_buffer, strm_isatty, strm_ichannel)
	(strm_ochannel, strm_field1, strm_field2, strm_channel_extrafields)
	(strm_channel_len): Offset by 1.
	(strm_unbuffered_extrafields_struct): New field ignore_next_LF.
	(UnbufferedStream_ignore_next_LF): New macro.
	(rd_ch_unbuffered): Perform CR/LF->NL and CR->NL conversion.
	(listen_unbuffered): Likewise.
	(clear_input_unbuffered): Update.
	(rd_ch_array_unbuffered): Perform CR/LF->NL and CR->NL conversion.
	(wr_ch_unbuffered_unix): Renamed from wr_ch_unbuffered.
	(wr_ch_array_unbuffered_unix): Renamed from wr_ch_array_unbuffered.
	(wr_ss_unbuffered_unix): Renamed from wr_ss_unbuffered.
	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac)
	(wr_ss_unbuffered_mac): New functions.
	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos)
	(wr_ss_unbuffered_dos): New functions.
	(wr_ch_unbuffered_x, wr_ch_array_unbuffered_x, wr_ss_unbuffered_x):
	  Remove macros.
	(fill_pseudofuns_unbuffered): Choose among the
	  wr_*_unbuffered_{unix,mac,dos} functions.
	(make_unbuffered_stream): Change calling convention. Set the
	  stream's encoding.
	(rd_ch_buffered): Perform CR/LF->NL and CR->NL conversion.
	(rd_ch_array_buffered): Likewise.
	(wr_ch_buffered_unix): Renamed from wr_ch_buffered.
	(wr_ch_array_buffered_unix): Renamed from wr_ch_array_buffered.
	(wr_ss_buffered_unix): Renamed from wr_ss_buffered.
	(wr_ch_buffered_mac, wr_ch_array_buffered_mac, wr_ss_buffered_mac):
	  New functions.
	(wr_ch_buffered_dos, wr_ch_array_buffered_dos, wr_ss_buffered_dos):
	  New functions.
	(fill_pseudofuns_buffered): Choose among the
	  wr_*_buffered_{unix,mac,dos} functions.
	(make_buffered_stream): Change calling convention. Set the stream's
	  encoding.
	(make_file_stream): Change calling convention. Call
	  test_external_format_arg.
	(strm_terminal_index): Offset by 1.
	(rd_ch_terminal1): Remove CR/LF->NL conversion, already done by
	  rd_ch_unbuffered.
	(wr_ch_terminal1, wr_ss_terminal1): Update.
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Call test_external_format_arg.
	(make_socket_stream): Change calling convention.
	(SOCKET-ACCEPT, SOCKET-CONNECT): Call test_external_format_arg.
	(make_terminal_io, init_streamvars): Update.
	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Reset the ignore_next_LF flag.
	(STREAM-EXTERNAL-FORMAT): Rewritten.
	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT): New function.
	(FILE-STRING-LENGTH): Update.
	* pseudofun.d: Update.
	* pathname.d (open_file): Change calling convention.
	(OPEN): Don't check the :external-format argument here.
	* places.lsp (stream-external-format): New defsetf.
	* macros2.lsp (with-output-to-printer, make-printer-stream): Accept
	  a :external-format argument.

1999-02-11  Christian Jullien  <eligis@wanadoo.fr>

	* time.d (get_run_time) [TIME_WIN32]: Add missing semicolon.

1999-02-10  Sam Steingold  <sds@goems.com>

	* spvw.d: added :ANSI-CL and :IEEE-FLOATING-POINT to *features*
	when invoked with "-a".

	* io.d: when lisp:*ansi* is non-nil, do not print pathnames with
	#S() when *print-readably* is non-nil.

1999-02-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* unixaux.d (full_read): Call handle_fault_range before the system
	  call, in order to avoid EFAULT.
	(full_write): Likewise.
	* win32aux.d (lowlevel_full_read, full_write, lowlevel_sock_read)
	(lowlevel_sock_write): Likewise.

1999-02-05  Sam Steingold  <sds@goems.com>

	* spvw.d (usage): added the URL and replaced "oder" with "or".

1999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intgcd.d (I_I_xgcd_I_I_I): Use C comments, not C++ comments.

1999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (publish_host_data): If hd.truename is NULL, use
	  hd.hostname, not hd.truename.

1999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d: Big renaming orgy.
	(strm_ichannel): was strm_ihandle.
	(strm_ochannel): was strm_ohandle.
	(strm_channel_extrafields): was strm_handle_extrafields.
	(strm_channel_len): was strm_handle_len.
	(strm_channel_extrafields_struct): was
	  strm_handle_extrafields_struct.
	(strm_unbuffered_extrafields_struct): was
	  strm_u_file_extrafields_struct.
	(ChannelStream_eltype): was HandleStream_eltype.
	(ChannelStream_isatty): was HandleStream_isatty.
	(ChannelStream_ichannel): was HandleStream_ihandle.
	(ChannelStream_ochannel): was HandleStream_ohandle.
	(ChannelStream_buffered): was HandleStream_buffered.
	(ChannelStreamLow_close): was HandleStreamLow_close.
	(ChannelStream_lineno): was HandleStream_lineno.
	(ChannelStream_bitsize): was HandleStream_bitsize.
	(UnbufferedStreamLow_read): was FileStreamLow_read.
	(UnbufferedStreamLow_listen): was FileStreamLow_listen.
	(UnbufferedStreamLow_clear_input): was FileStreamLow_clear_input.
	(UnbufferedStreamLow_read_array): was FileStreamLow_read_array.
	(UnbufferedStream_status): was FileStream_status.
	(UnbufferedStream_lastbyte): was FileStream_lastbyte.
	(UnbufferedStream_rawp): was FileStream_rawp.
	(UnbufferedStreamLow_write): was FileStreamLow_write.
	(UnbufferedStreamLow_write_array): was FileStreamLow_write_array.
	(UnbufferedStreamLow_finish_output): was FileStreamLow_finish_output.
	(UnbufferedStreamLow_force_output): was FileStreamLow_force_output.
	(UnbufferedStreamLow_clear_output): was FileStreamLow_clear_output.
	(wr_by_ixu_sub): was wr_by_ixu_file.
	(wr_by_ixs_sub): was wr_by_ixs_file.
	(low_read_unbuffered_handle): was file_low_read.
	(low_listen_unbuffered_handle): was file_low_listen.
	(low_clear_input_unbuffered_handle): was file_low_clear_input.
	(low_read_array_unbuffered_handle): was file_low_read_array.
	(rd_by_aux_iax_unbuffered): was rd_by_aux_iax_handle.
	(rd_by_iau_unbuffered): was rd_by_iau_handle.
	(rd_by_ias_unbuffered): was rd_by_ias_handle.
	(rd_by_iau8_unbuffered): was rd_by_iau8_handle.
	(rd_by_array_iau8_unbuffered): was rd_by_array_iau8_handle.
	(rd_ch_unbuffered): was rd_ch_handle.
	(listen_unbuffered): was listen_handle.
	(clear_input_unbuffered): was clear_input_handle.
	(rd_ch_array_unbuffered): was rd_ch_array_handle.
	(UnbufferedHandleStream_input_init): was HandleStream_input_init.
	(UnbufferedHandleStream_input_init_amiga): was
	  HandleStream_input_init_amiga.
	(close_ichannel): was close_ihandle.
	(low_write_unbuffered_handle): was file_low_write.
	(low_write_array_unbuffered_handle): was file_low_write_array.
	(low_finish_output_unbuffered_handle): was file_low_finish_output.
	(low_force_output_unbuffered_handle): was file_low_force_output.
	(low_clear_output_unbuffered_handle): was file_low_clear_output.
	(wr_by_aux_ia_unbuffered): was wr_by_aux_ia_handle.
	(wr_by_iau_unbuffered): was wr_by_iau_handle.
	(wr_by_ias_unbuffered): was wr_by_ias_handle.
	(wr_by_iau8_unbuffered): was wr_by_iau8_handle.
	(wr_by_array_iau8_unbuffered): was wr_by_array_iau8_handle.
	(wr_ch_unbuffered): was wr_ch_handle.
	(wr_ch_array_unbuffered): was wr_ch_array_handle.
	(wr_ss_unbuffered): was wr_ss_handle.
	(wr_ch_unbuffered_x): was wr_ch_handle_x.
	(wr_ch_array_unbuffered_x): was wr_ch_array_handle_x.
	(wr_ss_unbuffered_x): was wr_ss_handle_x.
	(finish_output_unbuffered): was finish_output_handle.
	(force_output_unbuffered): was force_output_handle.
	(clear_output_unbuffered): was clear_output_handle.
	(UnbufferedHandleStream_output_init): was HandleStream_output_init.
	(close_ochannel): was close_ohandle.
	(strm_buffered_channel): was strm_file_handle.
	(strm_buffered_bufflen): was strm_file_bufflen.
	(strm_buffered_buffer): was strm_file_buffer.
	(strm_buffered_extrafields_struct): was strm_file_extrafields_struct.
	(strm_i_buffered_extrafields_struct): was
	  strm_i_file_extrafields_struct.
	(BufferedStream_channel): was FileStream_handle.
	(BufferedStream_buffer): was FileStream_buffer.
	(BufferedStreamLow_fill): was FileStreamLow_fill.
	(BufferedStreamLow_flush): was FileStreamLow_flush.
	(BufferedStream_buffstart): was FileStream_buffstart.
	(BufferedStream_eofindex): was FileStream_eofindex.
	(BufferedStream_index): was FileStream_index.
	(BufferedStream_modified): was FileStream_modified.
	(BufferedStream_regular): was FileStream_regular.
	(BufferedStream_blockpositioning): was FileStream_blockpositioning.
	(BufferedStream_position): was FileStream_position.
	(BufferedStream_bitindex): was FileStream_bitindex.
	(BufferedStream_eofposition): was FileStream_eofposition.
	(handle_lseek): was file_lseek.
	(low_fill_buffered_handle): was b_file_fill.
	(low_flush_buffered_handle): was b_file_finish_flush.
	(BufferedHandleStream_init): was HandleStream_init.
	(buffered_full_flush): was b_file_full_flush.
	(buffered_half_flush): was b_file_half_flush.
	(buffered_flush): was b_file_flush.
	(buffered_nextbyte): was b_file_nextbyte.
	(buffered_eofbyte): was b_file_eofbyte.
	(buffered_writebyte): was b_file_writebyte.
	(position_file_buffered): was position_b_file.
	(read_byte_array_buffered): was read_byte_array_b_file.
	(write_byte_array_buffered): was write_byte_array_b_file.
	(rd_ch_buffered): was rd_ch_ch_file.
	(listen_buffered): was listen_ch_file.
	(rd_ch_array_buffered): was rd_ch_array_ch_file.
	(write_byte_buffered): was write_b_file.
	(wr_ch_buffered): was wr_ch_ch_file.
	(wr_ch_array_buffered): was wr_ch_array_ch_file.
	(wr_ss_buffered): was wr_ss_ch_file.
	(position_file_i_buffered): was position_i_file.
	(rd_by_aux_iax_buffered): was rd_by_aux_iax_file.
	(rd_by_aux_ibx_buffered): was rd_by_aux_ibx_file.
	(rd_by_aux_icx_buffered): was rd_by_aux_icx_file.
	(rd_by_iau_buffered): was rd_by_iau_file.
	(rd_by_ias_buffered): was rd_by_ias_file.
	(rd_by_ibu_buffered): was rd_by_ibu_file.
	(rd_by_ibs_buffered): was rd_by_ibs_file.
	(rd_by_icu_buffered): was rd_by_icu_file.
	(rd_by_ics_buffered): was rd_by_ics_file.
	(rd_by_iau8_buffered): was rd_by_iau8_file.
	(rd_by_array_iau8_buffered): was read_byte_array_iau8_file.
	(wr_by_aux_ia_buffered): was wr_by_aux_ia_file.
	(wr_by_aux_ib_buffered): was wr_by_aux_ib_file.
	(wr_by_aux_ic_buffered): was wr_by_aux_ic_file.
	(wr_by_iau_buffered): was wr_by_iau_file.
	(wr_by_ias_buffered): was wr_by_ias_file.
	(wr_by_ibu_buffered): was wr_by_ibu_file.
	(wr_by_ibs_buffered): was wr_by_ibs_file.
	(wr_by_icu_buffered): was wr_by_icu_file.
	(wr_by_ics_buffered): was wr_by_ics_file.
	(wr_by_iau8_buffered): was wr_by_iau8_file.
	(wr_by_array_iau8_buffered): was write_byte_array_iau8_file.
	(logical_position_file_start): was position_file_start.
	(logical_position_file): was position_file.
	(logical_position_file_end): was position_file_end.
	(buffered_flush_everything): was file_flush.
	(finish_output_buffered): was finish_output_file.
	(force_output_buffered): was force_output_file.
	(closed_buffered): was closed_file.
	(close_buffered): was close_file.
	(UnbufferedPipeStream_input_init): was PipeStream_input_init.
	(low_finish_output_unbuffered_pipe): was pipe_low_finish_output.
	(low_force_output_unbuffered_pipe): was pipe_low_force_output.
	(low_clear_output_unbuffered_pipe): was pipe_low_clear_output.
	(UnbufferedPipeStream_output_init): was PipeStream_output_init.
	(low_read_unbuffered_socket): was socket_low_read.
	(low_listen_unbuffered_socket): was socket_low_listen.
	(low_clear_input_unbuffered_socket): was socket_low_clear_input.
	(low_read_array_unbuffered_socket): was socket_low_read_array.
	(UnbufferedSocketStream_input_init): was SocketStream_input_init.
	(low_write_unbuffered_socket): was socket_low_write.
	(low_write_array_unbuffered_socket): was socket_low_write_array.
	(low_finish_output_unbuffered_socket): was socket_low_finish_output.
	(low_force_output_unbuffered_socket): was socket_low_force_output.
	(low_clear_output_unbuffered_socket): was socket_low_clear_output.
	(UnbufferedSocketStream_output_init): was SocketStream_output_init.
	(listen_socket): Remove function.
	(low_fill_buffered_socket): was b_socket_fill.
	(low_flush_buffered_socket): was b_socket_finish_flush.
	(BufferedSocketStream_init): was SocketStream_init.
	* lispbibl.d (strm_buffered_channel): was strm_file_handle.
	* pseudofun.d: Update.
	* pathname.d: Update.
	* spvw_memfile.d: Update.

1999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (oint_type_{shift,len,mask}, oint_data_{shift,len,mask}):
	  New definitions for Sparc-Linux.
	(garcol_bit_o): Move definition.
	(imm_type_shift): New macro.
	(fixnum_type, sfloat_type, char_type, read_label_type, system_type)
	(sign_bit_t, immediate_number_p, charp, read_label_p, systemp)
	(if_realp, if_rationalp, integerp, fixnump, posfixnump, floatp)
	(short_float_p): Use it.
	(FB5, FB4, FB3, FB2, FB1): Depend on garcol_bit_o.

1999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* hashtabl.d (sxhash_atom): Use `bitm' instead of `bit', in case
	  oint_type_len==32.

1999-02-02  Sam Steingold  <sds@goems.com>

	* clisp.spec: update 'release' with each build.

1999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (LPARTS): Add back config.lsp.

1999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Implement unbuffered file-streams, and buffered pipes and socket
	streams.
	* lispbibl.d (strmtype_twoway_socket): New enum value.
	(strm_twoway_socket_input): New macro.
	(make_file_stream): Change calling convention.
	* error.d (OS_filestream_error): Use the truename only for file
	  streams, as opposed to pipe and socket streams.
	* stream.d (test_buffered_arg): New function.
	(strm_handle_extrafields_struct): New field low_close.
	(HandleStreamLow_close): New macro.
	(low_close_handle): New function.
	(close_ihandle, close_ohandle): Call HandleStreamLow_close(stream).
	(strm_file_extrafields_struct): New fields low_fill, low_flush,
	  regular, blockpositioning.
	(FileStreamLow_fill, FileStreamLow_flush, FileStream_regular)
	(FileStream_blockpositioning): New macros.
	(b_file_fill): New function.
	(HandleStream_init): New macro.
	(b_file_full_flush): Use FileStream_blockpositioning and
	  FileStreamLow_flush.
	(b_file_half_flush): Likewise.
	(b_file_nextbyte): Use FileStream_blockpositioning and
	  FileStreamLow_fill.
	(position_b_file): Use FileStream_blockpositioning.
	(position_file_end): Likewise. If no repositioning is needed, call
	  lseek only once.
	(make_buffered_stream): New function.
	(make_file_stream): Change calling convention. Rewritten to call
	  make_buffered_stream. Deal with buffered, handle_regular,
	  handle_fresh. Support :APPEND for unbuffered streams as well.
	(finish_output_file): Call fsync or close/open on regular files only.
	  If no repositioning is needed, don't call position_b_file.
	(close_file): Call HandleStreamLow_close(stream).
	(strm_pipe_in_other, strm_pipe_out_other): Remove macros.
	(strm_pipe_other): New macro.
	(low_close_pipe): New function.
	(close_pipe_in, close_pipe_out): Remove functions.
	(MAKE-PIPE-INPUT-STREAM): Call test_buffered_arg. Call either
	  make_unbuffered_stream or make_buffered_stream. Set the
	  HandleStreamLow_close function.
	(MAKE-PIPE-OUTPUT-STREAM): Likewise.
	(MAKE-PIPE-IO-STREAM): Likewise.
	(low_close_socket): New function.
	(close_socket): Remove function.
	(SYSTEM::MAKE-SOCKET-STREAM): Set the HandleStreamLow_close
	  function.
	(b_socket_fill, b_socket_finish_flush): New functions.
	(SocketStream_init): New macro.
	(strm_twoway_socket_input, strm_twoway_socket_output): New macros.
	(low_close_socket_nop): New function.
	(make_socket_stream): Change signature. Call either
	  make_unbuffered_stream, or make_buffered_stream and allocate a
	  two-way-socket stream. Set the HandleStreamLow_close function.
	(SOCKET-SERVER): Deal with both strmtype_socket and
	  strmtype_twoway_scoket. Check that the stream argument is open.
	(SOCKET-ACCEPT, SOCKET-CONNECT): Call test_buffered_arg.
	(test_socket_stream): Optionally check that the stream argument is
	  open.
	(SOCKET-STREAM-PORT, SOCKET-STREAM-HOST): Update.
	(publish_host_data, SOCKET-STREAM-HANDLE): Update.
	(make_terminal_io): Remove the file positioning code, now done by
	  make_file_stream.
	(init_streamvars): Set the HandleStreamLow_close function.
	(STREAM-ELEMENT-TYPE, SYSTEM::SET-STREAM-ELEMENT-TYPE)
	(interactive_stream_p): Treat strmtype_twoway_socket.
	(stream_close): Treat pipes and sockets like file streams. Treat
	  strmtype_twoway_socket.
	(stream_listen, clear_input): Treat strmtype_twoway_socket.
	(finish_output, force_output, clear_output): Likewise.
	(get_line_position): Likewise.
	(stream_isbuffered): Treat pipes and sockets like file streams.
	  Treat strmtype_twoway_socket.
	* io.d (pr_stream): Print a "buffered"/"unbuffered" for pipes and
	  sockets as well. Treat strmtype_twoway_socket.
	* pathname.d (open_file): Change calling convention.
	(OPEN): Update.

1999-02-01  Sam Steingold  <sds@goems.com>

	* defs2.lsp (with-standard-io-syntax): set `*print-right-margin*'.

1999-01-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Split user1.lsp and user2.lsp into pieces.
	* init.lsp: Change loading order. First room.lsp and saveinitmem.lsp,
	  then the language stuff up to conditio.lsp, then the user interface
	  and all kinds of extensions.
	(cerror): Moved here from user1.lsp.
	* defs1.lsp (fbound-string): Moved here from user2.lsp.
	(*error-handler*): Moved here from user1.lsp.
	* room.lsp: New file.
	(room-format, room, %space1, %space2, %space, space-format)
	(space-tabulate): Moved here from user2.lsp.
	* savemem.lsp: New file.
	(%saveinitmem, saveinitmem): Moved here from user2.lsp.
	* compiler.lsp (*toplevel-environment*, *toplevel-denv*, eval-env):
	  Moved here from user1.lsp.
	* conditio.lsp (break): Integrate with non-CLCS code from user1.lsp.
	(*break-on-warnings*, batchmode-break-driver): Moved here from
	  user1.lsp.
	* keyboard.lsp: New file.
	(*keyboard-input*, with-keyboard, exec-with-keyboard): Moved here
	  from user1.lsp.
	* runprog.lsp: New file.
	(execute, run-shell-command, run-program): Moved here from
	  user2.lsp.
	* query.lsp: New file.
	(y-or-n-p, y-or-n, yes-or-no-p, yes-or-no): Moved here from
	  user1.lsp.
	* reploop.lsp: New file.
	(*prompt*, main-loop, break-loop, step et al.): Moved here from
	  user1.lsp.
	* dribble.lsp: New file.
	(dribble): Moved here from user2.lsp.
	* complete.lsp: New file.
	(completion): Moved here from user2.lsp.
	* describe.lsp: New file.
	(apropos-list, apropos, describe): Moved here from user2.lsp.
	* edit.lsp: New file.
	(*editor*, editor-name, editor-tempfile, edit-file, ed, uncompile):
	  Moved here from user2.lsp.
	* user1.lsp: Remove file.
	* user2.lsp: Remove file.
	* makemake.in (LPARTS): Update.
	* gettext/po/Makefile.devel (LSPSOURCES): Likewise.

1999-01-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Makefile.devel (win32msvc/makefile.msvc4, win32msvc/makefile.msvc5)
	(acorn/makefile.cc, acorn/makefile.gcc): Fix rule.

1999-01-29  Sam Steingold  <sds@goems.com>

	* spvw.d (print_banner): do not cut the copyright on narrow
	screens.

1999-01-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Mutable STREAM-ELEMENT-TYPE.
	* stream.d (fill_pseudofuns_unbuffered): New function.
	(make_unbuffered_stream): Call it. Always initialize lineno.
	(fill_pseudofuns_buffered): New function.
	(make_file_stream): Call it. Always initialize lineno.
	(SYSTEM::SET-STREAM-ELEMENT-TYPE): New function.
	* places.lsp (stream-element-type): New defsetf.

1999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Treat pipe and socket streams like unbuffered file streams.
	* stream.d (check_unbuffered_eltype): New function.
	(strm_pipe_in_handle): Replace with strm_ihandle.
	(rd_ch_pipe_in, rd_ch_array_pipe_in, rd_by_pipe_in)
	(rd_by_array_pipe_in): Remove macros.
	(PipeStream_input_init): New macro.
	(close_pipe_in): Update.
	(listen_pipe_in): Remove macro.
	(MAKE-PIPE-INPUT-STREAM): Check the :ELEMENT-TYPE argument. Call
	  make_unbuffered_stream.
	(strm_pipe_out_handle): Replace with strm_ohandle.
	(wr_ch_pipe_out, wr_ch_array_pipe_out, wr_ss_pipe_out)
	(wr_by_pipe_out, wr_by_array_pipe_out): Remove macros.
	(pipe_low_finish_output, pipe_low_force_output)
	(pipe_low_clear_output): New functions.
	(PipeStream_output_init): New macro.
	(close_pipe_out): Update.
	(MAKE-PIPE-OUTPUT-STREAM): Check the :ELEMENT-TYPE argument. Call
	  make_unbuffered_stream.
	(MAKE-PIPE-IO-STREAM): Likewise.
	(socket_low_finish_output, socket_low_force_output)
	(socket_low_clear_output): Define always.
	(SocketStream_output_init): Use them in all cases.
	(SYS::MAKE-SOCKET-STREAM): Call make_unbuffered_stream.
	(make_socket_stream): Change signature. Call make_unbuffered_stream.
	(SOCKET-ACCEPT, SOCKET-CONNECT): Check the :ELEMENT-TYPE argument.
	(STREAM-ELEMENT-TYPE): Treat pipe and socket streams like file
	  streams.
	(stream_listen, clear_input, finish_output, force_output)
	(clear_output): Likewise.
	* pseudofun.d: Update.
	* io.d (pr_stream): For pipe and socket stream, print the element-type
	  as well.

1999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_buffered_stream): Renamed from make_unbuffered_stream.
	  Change the calling convention. Don't call isatty. Don't store the
	  strm_field1/strm_field2 values. Don't call HandleStream_input_init,
	  HandleStream_output_init here. Don't add the stream to O(open_files).
	(make_file_stream): Update. Call isatty only for :INPUT or :IO
	  streams. Store the strm_field1/strm_field2 values here. Call
	  HandleStream_input_init, HandleStream_output_init here. Add the
	  stream to O(open_files).
	(init_streamvars): Update. Store the strm_field1/strm_field2 values
	  here. Call HandleStream_output_init here.

1999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Simplify the element-type handling.
	* stream.d (eltype_kind, decoded_eltype): New types.
	(test_eltype_arg): Moved. Changed signature.
	(canon_eltype): New function.
	(strmtype_ch_file, strmtype_iu_file, strmtype_is_file): Remove
	  macros.
	(make_unbuffered_file_stream): Changed signature.
	(make_file_stream): Use a decoded_eltype. Call canon_eltype.
	(init_streamvars): Update.

1999-01-27  Sam Steingold  <sds@goems.com>

	* spvw.d (print_banner): updated copyright statements.
	(print_license): new function.
	(main): call print_banner and print_license.

1999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (print_banner): Make the menorah more kosher.

1999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (usage): Tweak message.

1999-01-26  Sam Steingold  <sds@goems.com>

	* Makefile.devel: do not use `utils/move-if-change'.
	* utils/move-if-change: Remove file.

1999-01-26  Sam Steingold  <sds@goems.com>

	MT-safe get_real_time:
	* time.d (get_real_time): take pointer argument; no internal
	statics.
	* lisparit.d: fix calls to `get_real_time'.
	* lispbibl.d: fix declaration of `get_real_time'.

1999-01-25  Sam Steingold  <sds@goems.com>

	* spvw.d (main): expanded --help, added --license, removed trailing
	whitespace.
	(print_banner): New function.
	(argv_license): New variable.
	(copyright_notice): Remove.

1999-01-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (strm_file_name, strm_file_truename, strm_file_handle)
	(strm_pipe_pid, strm_x11socket_connect, strm_socket_port)
	(strm_socket_host): Offset by 1.
	* stream.d (strm_bitbuffer): New macro, replaces strm_file_bitbuffer.
	(strm_isatty, strm_ihandle, strm_ohandle, strm_field1, strm_field2):
	  Offset by 1.
	(strm_field3): Remove macro.
	(strm_handle_extrafields_struct): New field bitsize.
	(HandleStream_bitsize): New macro, replaces FileStream_bitsize.
	(rd_by_iu_I, rd_by_is_I): Update.
	(wr_by_aux_ix): Renamed from wr_by_ix.
	(wr_by_ixu_file, wr_by_ixs_file): Update.
	(rd_by_aux_iax_handle, rd_by_iau_handle, rd_by_ias_handle): New
	  functions.
	(rd_by_iau8_handle): Renamed from rd_by_handle.
	(rd_by_array_iau8_handle): Renamed from rd_by_array_handle.
	(close_ihandle): Free the bitbuffer.
	(wr_by_aux_ia_handle, wr_by_iau_handle, wr_by_ias_handle): New
	  functions.
	(wr_by_iau8_handle): Renamed from wr_by_handle.
	(wr_by_array_iau8_handle): Renamed from wr_by_array_handle.
	(close_ohandle): Free the bitbuffer.
	(make_unbuffered_file_stream): Add arguments type, eltype_size.
	  Create a stream with proper element type, not (OR CHARACTER INTEGER).
	(strm_i_file_extrafields_struct): Remove field bitsize.
	(strm_file_bitbuffer, FileStream_bitsize): Remove macros.
	(position_i_file): Update.
	(rd_by_aux_iax_file): Renamed from rd_by_iax_file. Update.
	(rd_by_aux_ibx_file): Renamed from rd_by_ibx_file. Update.
	(rd_by_aux_icx_file): Renamed from rd_by_icx_file. Update.
	(rd_by_iau_file, rd_by_ias_file, rd_by_ibu_file, rd_by_ibs_file)
	(rd_by_icu_file, rd_by_ics_file): Update.
	(rd_by_iau8_file): New function, for symmetry with the unbuffered
	  case.
	(wr_by_aux_ia_file): Renamed from wr_by_ia. Update.
	(wr_by_aux_ib_file): Renamed from wr_by_ib. Update.
	(wr_by_aux_ic_file): Renamed from wr_by_ic. Update.
	(wr_by_iau_file, wr_by_ias_file, wr_by_ibu_file, wr_by_ibs_file)
	(wr_by_icu_file, wr_by_ics_file): Update.
	(wr_by_iau8_file): New function, for symmetry with the unbuffered
	  case.
	(position_file, position_file_end): Update.
	(make_file_stream): For the unbuffered case, accept any bitsize
	  which is a multiple of 8. Use {rd,wr}_by_iau8_file when possible.
	(strm_terminal_index, strm_terminal_outbuff): Change.
	(terminalcase): Update.
	(rd_by_pipe_in, rd_by_array_pipe_in): Update.
	(wr_by_pipe_out, wr_by_array_pipe_out): Update.
	(SYS::MAKE-SOCKET-STREAM, SYS::LISTEN-BYTE, test_n_bytes_args)
	(make_socket_stream, init_streamvars): Update.
	* pseudofun.d: Update accordingly.

	* stream.d (rd_by_*, wr_by_*): Move some functions.
	* pseudofun.d: Update accordingly.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Optimize read-byte and write-byte for integer streams of type ia.
	* stream.d (read_byte_array_b_file): Don't update the position.
	(write_byte_array_b_file): Likewise.
	(wr_ch_array_ch_file): Increment the position here.
	(rd_by_iu_I, rd_by_is_I): Assume the bitbuffer contents is in little
	  endian order.
	(rd_by_iax_file): Fill bitbuffer in little endian order. Use
	  read_byte_array_b_file for speed.
	(rd_by_icx_file): Fill bitbuffer in little endian order.
	(wr_by_ia): Fill bitbuffer in little endian order. Use
	  write_byte_array_b_file for speed.
	(wr_by_ic): Fill bitbuffer in little endian order.
	(wr_by_ixu_file, wr_by_ixs_file): Assume the bitbuffer contents is
	  in little endian order.
	(read_byte_array_iau8_file, write_byte_array_iau8_file): Increment
	  the position here.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (OPEN): Add keyword argument :BUFFERED.
	(SYS::OLD-OPEN): Temporary hack, in order to preserve binary
	  compatibility.
	* stream.d (MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Add keyword arguments :ELEMENT-TYPE,
	  :EXTERNAL-FORMAT, :BUFFERED.
	(SOCKET-ACCEPT, SOCKET-CONNECT): Likewise.
	* eval.d (FUNTAB): Replace OPEN with SYS::OLD-OPEN.
	* compiler.lsp (funtab): Likewise.
	(subr-info): Update.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_socket_stream): Fix a potential GC crash: host was
	  not GC-safe.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Prepare for making socket streams either binary or character, not both.
	* stream.d (SYS::LISTEN-BYTE): New function.
	* modules/clx/mit-clx/depdefs.lsp (:have-listen-byte): Define
	  conditionally.
	* modules/clx/mit-clx/dependent.lsp (buffer-read-default): Use
	  sys::listen-byte if available.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Handle-streams and socket-streams now use a byte-oriented low-level
	layer.
	* stream.d (clear_tty_input) [AMIGAOS]: Define.
	(strm_u_file_extrafields_struct): Add low-level function pointers.
	(FileStreamLow_read, FileStreamLow_listen)
	(FileStreamLow_clear_input, FileStreamLow_read_array)
	(FileStreamLow_write, FileStreamLow_write_array)
	(FileStreamLow_finish_output, FileStreamLow_force_output)
	(FileStreamLow_clear_output): New macros.
	(fehler_interrupt): New function.
	(file_low_read, file_low_listen, file_low_clear_input)
	(file_low_read_array): New functions.
	(rd_by_handle, rd_by_array_handle, rd_ch_handle, listen_handle)
	(clear_input_handle, rd_ch_array_handle): Rewritten from scratch.
	  Much nicer now that the ugly machine-dependent stuff is in the
	  low-level layer.
	(HandleStream_input_init, HandleStream_input_init_data): New macros.
	(file_low_write, file_low_write_array, file_low_finish_output)
	(file_low_force_output, file_low_clear_output): New functions.
	(wr_by_handle, wr_by_array_handle, wr_ch_handle, wr_ch_array_handle)
	(finish_output_handle, force_output_handle, clear_output_handle):
	  Rewritten from scratch. Much nicer too.
	(HandleStream_output_init): New macro.
	(make_unbuffered_file_stream, make_keyboard_stream)
	(make_terminal_stream_, MAKE-PIPE-INPUT-STREAM)
	(MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM): Use the
	  HandleStream_*_init macros.
	(socket_low_read, socket_low_listen, socket_low_clear_input)
	(socket_low_read_array) [WIN32_NATIVE]: New functions.
	(SocketStream_input_init): New macro.
	(socket_low_write, socket_low_write_array, socket_low_finish_output)
	(socket_low_force_output, socket_low_clear_output) [WIN32_NATIVE]:
	  New functions.
	(SocketStream_output_init): New macro.
	(rd_ch_socket, rd_ch_array_socket, wr_ch_socket, wr_ch_array_socket)
	(wr_ss_socket, rd_by_socket, rd_by_array_socket, wr_by_socket)
	(wr_by_array_socket): Remove functions.
	(listen_socket): Define as a macro.
	(rd_ch_x11socket, listen_x11socket, rd_ch_array_x11socket)
	(wr_ch_x11socket, wr_ch_array_x11socket, wr_ss_x11socket)
	(rd_by_x11socket, rd_by_array_x11socket, wr_by_x11socket)
	(wr_by_array_x11socket, close_x11socket): Remove macros.
	(SYS::MAKE-SOCKET-STREAM): Update. Use the HandleStream_*_init
	  macros.
	(test_n_bytes_args): Update.
	(SYS::READ-N-BYTES): Simplify by calling read_byte_array. Upon EOF,
	  issue an error message instead of endless loop.
	(SYS::WRITE-N-BYTES): Simplify by calling write_byte_array.
	(make_socket_stream): Update. Use the HandleStream_*_init macros.
	(stream_close, stream_listen): Update.
	* pseudofun.d (*_x11socket, *_socket): Remove.

1999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Introduce symbolic codes for the `listen' return value.
	* lispbibl.d (ls_avail, ls_eof, ls_wait): New macros.
	(ls_avail_p, ls_eof_p, ls_wait_p): New macros.
	* stream.d (listen_concat, listen_str_in, listen_buff_in)
	(listen_handle, listen_ch_file, listen_keyboard, listen_terminal)
	(listen_terminal2, listen_terminal3, listen_socket, stream_listen):
	  Use the new ls_* macros.
	* io.d (LISTEN, READ-CHAR-NO-HANG): Likewise.
	* debug.d (read_form): Likewise.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Merge handle streams and file streams. Add line number information to
	unbuffered file streams as well.
	* lispbibl.d (strmtype_handle): Remove enum value.
	(if_strm_file_p): Remove macro.
	(stream_isbuffered): New declaration.
	* stream.d (strm_handle_extrafields_struct): New field lineno.
	(HandleStream_lineno): New macro.
	(rd_ch_handle, listen_handle, rd_ch_array_handle): When reading a
	  newline, increment lineno.
	(make_unbuffered_file_stream): Change the stream type from
	  strmtype_handle to strmtype_file. Initialize lineno.
	(strm_ch_file_extrafields_struct): Remove structure.
	(FileStream_lineno): Remove macro.
	(rd_ch_ch_file, rd_ch_array_ch_file, make_file_stream): Update.
	(SYS::FILE-STREAM-P): Update.
	(SYS::TERMINAL-RAW) [AMIGAOS]: Update.
	(STREAM-ELEMENT-TYPE, interactive_stream_p, stream_close)
	(stream_listen, clear_input, finish_output, force_output)
	(clear_output): Update.
	(FILE-POSITION): For unbuffered streams, return NIL, no error.
	(FILE-LENGTH): Likewise.
	(stream_isbuffered): New function.
	(stream_line_number): Update.
	* io.d (pr_stream): Update.
	* pathname.d (as_file_stream, openp): Update.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF, heap_statistics_mapper): Update.

	Start merging handle-streams and file-streams.
	* lispbibl.d (strm_eltype, strm_file_handle): Change.
	* stream.d (strm_eltype, strm_isatty, strm_ihandle, strm_ohandle):
	  Change.
	(strm_buffer, strm_field1, strm_field2, strm_field3): New macros.
	(strm_handle_extrafields): New macro.
	(strm_handle_len): Change.
	(strm_handle_extrafields_struct, strm_u_file_extrafields_struct):
	  New structure types.
	(HandleStream_eltype, HandleStream_isatty, HandleStream_ihandle)
	(HandleStream_ohandle, HandleStream_buffered, FileStream_status)
	(FileStream_lastbyte, FileStream_rawp): New macros.
	(close_handle): Remove macro.
	(make_unbuffered_file_stream): Renamed from make_handle_stream.
	  Allocate room for an unbuffered handle stream. Initialize the
	  buffered, status, rawp fields.
	(strm_file_name, strm_file_truename, strm_file_handle)
	(strm_file_buffer, strm_file_bitbuffer): Change.
	(strm_file_extrafields, strm_file_length): Remove macros.
	(strm_file_extrafields_struct): Inherit from
	  strm_handle_extrafields_struct.
	(FileStream_buffstart, FileStream_eofindex, FileStream_index)
	(FileStream_modified, FileStream_position, FileStream_lineno)
	(FileStream_bitsize, FileStream_bitindex, FileStream_eofposition):
	  Update.
	(make_file_stream): Allocate room for a buffered handle stream.
	  Initialize the buffered field.
	(strm_keyboard_buffer, strm_keyboard_keytab, strm_keyboard_len):
	  Change.
	(strm_keyboard_xlen): New macro.
	(make_keyboard_stream): Allocate room for an unbuffered handle
	  stream. Initialize the buffered, status, rawp fields.
	(strm_terminal_inbuff, strm_terminal_index, strm_terminal_outbuff):
	  Change.
	(strm_terminal1_len, strm_terminal2_len, strm_terminal3_len): Remove
	  macros.
	(strm_terminal_len): New macro.
	(terminalcase): Rewritten.
	(make_terminal_stream_): Allocate room for an unbuffered handle
	  stream. Initialize the buffered, status, rawp fields.
	(SYS::TERMINAL-RAW) [AMIGAOS]: Update.
	(strm_pipe_pid): Change.
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Allocate room for an unbuffered handle
	  stream. Initialize the buffered, status, rawp fields.
	(strm_x11socket_connect): Change.
	(SYS::MAKE-SOCKET-STREAM): Allocate room for an unbuffered handle
	  stream. Initialize the buffered, status, rawp fields.
	(strm_socket_port, strm_socket_host): Change.
	(make_socket_stream): Allocate room for an unbuffered handle stream.
	  Initialize the buffered, status, rawp fields.
	(init_streamvars): Update.
	(stream_close): Call either close_ihandle or close_ohandle.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (regular_handle_p) [UNIX]: Treat block devices like regular
	  files.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d: Move the file-streams next to the handle-streams.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (make_file_stream): Change declaration and calling
	  convention.
	* stream.d (make_handle_stream): Change calling convention.
	(test_eltype_arg): New function.
	(make_file_stream): Change calling convention. Check the
	  :element-type argument here.
	(make_terminal_io, init_streamvars): Update.
	* pathname.d (open_file): Change calling convention.
	(OPEN): Update. Don't check the :element-type argument here.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Support for unbuffered file streams on all platforms.
	* lispbibl.d (HANDLES): Remove macro, assume it to be defined to 1.
	(case_strmtype_file): Remove macro.
	(if_strm_file_p): Update.
	* spvw_memfile.d (memflags): Assume HANDLES to be 1.
	* stream.d: Likewise.
	* pseudofun.d: Likewise.
	* io.d (pr_stream): Likewise.
	* predtype.d: Update.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (strmtype_ch_file, strmtype_iu_file, strmtype_is_file):
	  Remove enum values.
	(strmtype_file): New enum value.
	(strm_eltype): New stream field.
	(strm_file_name, strm_file_truename, strm_pipe_pid)
	(strm_x11socket_connect, strm_socket_port, strm_socket_host):
	  Offset by 1.
	(strm_ch_file_lineno): Remove obsolete macro.
	(if_strm_bfile_p): Remove macro.
	(case_strmtype_file): Update.
	(strmtype_ch_file, strmtype_iu_file, strmtype_is_file): Define for
	  the sake of make_file_stream.
	* stream.d (strm_eltype): New stream field.
	(strm_handle_rawp, strm_handle_len): Offset by 1.
	(make_handle_stream): Expect the element-type on the stack.
	(strm_file_name, strm_file_truename, strm_file_extrafields)
	(strm_file_length): Offset by 1.
	(make_file_stream): Construct and fill in the element-type.
	(strm_pipe_pid): Offset by 1.
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Update.
	(strm_x11socket_connect): Offset by 1.
	(SYS::MAKE-SOCKET-STREAM): Update.
	(strm_socket_port, strm_socket_host): Offset by 1.
	(make_socket_stream): Update.
	(init_streamvars): Pass element type to make_handle_stream.
	(STREAM-ELEMENT-TYPE): For strmtype_file and strmtype_handle,
	  fetch the strm_eltype field.
	(interactive_stream_p, stream_close, closed_all_files)
	(stream_listen, finish_output, force_output, clear_output)
	(check_open_file_stream, stream_line_number): Update.
	* io.d (pr_stream): Change printing of file and handle stream to
	  include buffered/unbuffered and the element-type.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (Stream): New fields strm_rd_by_array, strm_wr_by_array,
	  strm_rd_ch_array, strm_wr_ch_array.
	* stream.d (rd_by_array_Pseudofun, wr_by_array_Pseudofun)
	(rd_ch_array_Pseudofun, wr_ch_array_Pseudofun): New types.
	(rd_by_array, wr_by_array, rd_ch_array, wr_ch_array): New macros.
	(rd_by_error): Renamed from rd_by_dummy.
	(rd_by_array_error, rd_by_array_dummy): New functions.
	(wr_by_error): Renamed from wr_by_dummy.
	(wr_by_array_error, wr_by_array_dummy): New functions.
	(rd_ch_error): Renamed from rd_ch_dummy.
	(rd_ch_array_error, rd_ch_array_dummy): New functions.
	(wr_ch_error): Renamed from wr_ch_dummy.
	(wr_ch_array_error, wr_ch_array_dummy): New functions.
	(read_byte_array, write_byte_array, read_char_array)
	(write_char_array): Rewritten to call the stream's corresponding
	  pseudofunction.
	(close_dummys): Update.
	(rd_by_array_synonym, wr_by_array_synonym, rd_ch_array_synonym)
	(wr_ch_array_synonym): New functions.
	(make_synonym_stream): Update.
	(wr_by_array_broad0, wr_by_array_broad1, wr_ch_array_broad0)
	(wr_ch_array_broad1): New functions.
	(make_broadcast_stream): Update.
	(rd_by_array_concat, rd_ch_array_concat): New functions.
	(make_concatenated_stream): Update.
	(wr_by_array_twoway, wr_ch_array_twoway): New functions.
	(rd_by_array_twoway, rd_ch_array_twoway): New functions.
	(make_twoway_stream, make_echo_stream): Update.
	(rd_ch_array_str_in): New function.
	(MAKE-STRING-INPUT-STREAM): Update.
	(make_string_output_stream, SYSTEM::MAKE-STRING-PUSH-STREAM): Update.
	(make_pphelp_stream): Update.
	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM): Update.
	(MAKE-GENERIC-STREAM): Update.
	(rd_ch_array_handle, rd_by_array_handle, wr_by_array_handle): New
	  functions.
	(wr_ch_array_handle): Renamed from write_char_array_handle.
	(wr_ss_handle): Update.
	(wr_ch_array_handle_x): New macro.
	(make_handle_stream): Update.
	(rd_ch_keyboard) [NEXTAPP]: Update.
	(make_keyboard_stream, make_terminal_stream_, make_window): Update.
	(read_byte_array_b_file): New function.
	(rd_ch_array_ch_file): New function.
	(wr_ch_array_ch_file): Renamed from write_char_array_ch_file.
	(wr_ss_ch_file): Update.
	(read_byte_array_iau8_file): New macro.
	(write_byte_array_iau8_file): Update.
	(make_file_stream): Update.
	(make_printer_stream): Update.
	(rd_ch_array_pipe_in, rd_by_array_pipe_in): New macros.
	(MAKE-PIPE-INPUT-STREAM): Update.
	(wr_ch_array_pipe_out, wr_by_array_pipe_out): New macros.
	(MAKE-PIPE-OUTPUT-STREAM): Update.
	(MAKE-PIPE-IO-STREAM): Update.
	(rd_ch_array_socket): New function.
	(wr_ch_array_socket): Renamed from write_char_array_socket.
	(wr_ss_socket): Update.
	(rd_by_array_socket, wr_by_array_socket): New functions.
	(rd_ch_array_x11socket, wr_ch_array_x11socket, rd_by_array_x11socket)
	(wr_by_array_x11socket): New macros.
	(SYS::MAKE-SOCKET-STREAM, make_socket_stream): Update.
	* pseudofun.d: Update accordingly.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Implement weak-pointers.
	* lispbibl.d (Rectype_Weakpointer): New enum value.
	(Weakpointer): New type.
	(weakpointer_length, weakpointer_xlength): New macros.
	(TheWeakpointer, weakpointerp, allocate_weakpointer): New macros.
	* constobj.d (O(all_weakpointers)): New variable.
	(O(all_finalizers), O(pending_finalizers)): Initial value 0, not NIL.
	* spvw.d (init_object_tab_1): Initialize O(all_weakpointers),
	  O(all_finalizers), O(pending_finalizers) to 0.
	* spvw_update.d (update_weakpointers, update_weakpointers_mod): New
	  macros.
	* spvw_garcol.d (gar_col_normal): Walk O(all_weakpointers).
	  O(all_finalizers) and O(pending_finalizers) end with 0, not NIL.
	  Call update_weakpointers_mod.
	(gar_col_done): O(pending_finalizers) ends with 0, not NIL.
	(gar_col_compact, move_conses): Call update_weakpointers_mod.
	* spvw_memfile.d (savemem, loadmem): Call update_weakpointers.
	* record.d (MAKE-WEAK-POINTER, WEAK-POINTER-P, WEAK-POINTER-VALUE):
	  New functions.
	* io.d (pr_orecord): Treat Rectype_Weakpointer.
	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Weakpointer.
	(enum_hs_weakpointer): New enum value.
	(heap_statistics_mapper): Treat Rectype_Weakpointer.
	* compiler.lsp (subr-info): Add make-weak-pointer, weak-pointer-p,
	  weak-pointer-value.
	* user2.lsp (describe): Treat WEAK-POINTER.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (gcinvariant_object_p) [TYPECODES]: New macro.
	* record.d (FINALIZE): No need to allocate a finalizer for an
	  eternally alive object.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_garcol.d (alive) [NO_TYPECODES]: Treat immediate values
	  correctly, instead of crashing.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (listen_handle) [WIN32]: When a keyboard event is pending,
	  read a character in order to test whether to return :INPUT-AVAILABLE
	  of :EOF.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (strm_concat_list2): Remove macro.
	(strm_concat_totallist): New macro.
	(rd_by_concat, rd_ch_concat, pk_ch_concat, listen_concat): Simplify.
	(make_concatenated_stream, CONCATENATED-STREAM-STREAMS): Simplify.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* debug.d (read_form): After EOF, call clear_input on istream, not on
	  the concatenated-stream. This fixes a strange REP loop behaviour on
	  Win32.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (main): If no memfile is specified, option "-norc" is
	  implied.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* comment5.d (main): Remove a gcc warning.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (strmtype_*): Change the order of stream types.
	* io.d (pr_stream): Likewise.
	* stream.d: Move the OS dependent stream stuff after the portable
	  stuff.
	(STREAM-ELEMENT-TYPE): Change the order of stream types.
	(interactive_stream_p, stream_close, stream_listen, clear_input)
	(finish_output, force_output, clear_output): Likewise.

1999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Change the string element type from `uintB' to `chart' (an abstract
	equivalent of `cint').
	* lispbibl.d (OBJECT_STRUCT): Define macro.
	(chart): New type.
	(as_cint, as_chart): New macros.
	(code_char, char_code): Convert from/to chart now, instead of cint.
	(chareq, charlt, chargt): New macros.
	(ascii, ascii_char): New macros.
	(sstring_): Change element type to `chart'.
	(with_string_0, with_sstring_0, with_string, with_sstring): Update.
	(ssstring_push_extend): Change declaration.
	(up_case, down_case, alphanumericp, graphic_char_p, unpack_string)
	(char_name, test_string_limits, nstring_upcase, nstring_downcase)
	(nstring_capitalize): Likewise.
	(write_ascii_char): Update.
	(read_char_array, write_char_array): Change delaration.
	* genclisph.d (chart): New type.
	(as_cint, as_chart): New macros.
	(code_char, char_code): Convert from/to chart now, instead of cint.
	* spvw.d (make_string, string_to_asciz, main): Update.
	* spvw_objsize.d (size_sstring): Update.
	* charstrg.d (up_case, down_case, alphap, alphanumericp)
	(graphic_char_p, unpack_string, string_gleich, string_equal)
	(copy_string, coerce_char, char_name, STANDARD-CHAR-P, UPPER-CASE-P)
	(LOWER-CASE-P, BOTH_CASE-P, DIGIT-CHAR-P, CHAR-CODE, CODE-CHAR)
	(DIGIT-CHAR, CHAR-INT, INT-CHAR, test_index_arg, CHAR, SCHAR)
	(SYSTEM::STORE-CHAR, SYSTEM::STORE-SCHAR, test_string_limits)
	(test_1_stringsym_limits, test_2_stringsym_limits, string_eqcomp)
	(string_comp, STRING=, STRING/=, STRING<, STRING>, STRING<=)
	(STRING>=, string_eqcomp_ci, string_comp_ci, STRING-EQUAL)
	(STRING-NOT-EQUAL, STRING-LESSP, STRING-GREATERP)
	(STRING-NOT-GREATERP, STRING-NOT-LESSP, string_search)
	(SYS::SEARCH-STRING=, SYS::SEARCH-STRING-EQUAL, MAKE-STRING)
	(nstring_upcase, NSTRING-UPCASE, STRING-UPCASE, nstring_downcase)
	(NSTRING-DOWNCASE, STRING-DOWNCASE, nstring_capitalize)
	(NSTRING-CAPITALIZE, STRING-CAPITALIZE, subsstring, SUBSTRING)
	(string_concat): Update
	* io.d (RM_anzahl, DRM_anzahl): Remove, replace with char_code_limit.
	(allocate_syntax_table, syntax_table_get, syntax_table_put): New
	  macros.
	(allocate_perchar_table, perchar_table_get, perchar_table_put)
	(copy_perchar_table): New macros.
	(orig_syntax_table, orig_readtable, copy_readtable_contents)
	(copy_readtable, SET-SYNTAX-FROM-CHAR, SET-MACRO-CHARACTER)
	(GET-MACRO-CHARACTER, MAKE-DISPATCH-MACRO-CHARACTER)
	(test_disp_sub_char, SET-DISPATCH-MACRO-CHARACTER)
	(GET-DISPATCH-MACRO-CHARACTER, read_char_syntax, wpeek_char_syntax)
	(wpeek_char_eof, attribute_table): Update.
	(attribute_of): New macro.
	(read_token_1, token_info, test_potential_number_syntax)
	(test_number_syntax, upcase_token, case_convert_token, read_macro)
	(lpar_reader, line_comment_reader, comment_reader, char_reader)
	(radix_2, bit_vector_reader, vector_reader, hexziffer)
	(closure_reader, unix_executable_reader, READ-LINE, PARSE-INTEGER)
	(write_sstring_case, klammer_zu, pr_enter_1, pr_symbol_part)
	(pr_character, pr_sstring_ab, pr_list_splice, pr_list_nsplice)
	(pr_sbvector_ab): Update.
	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc, wr_ss_lpos, write_char)
	(rd_ch_handle, listen_handle, wr_ch_handle, write_char_array_handle)
	(key_event): Update.
	(key_ascii, key_special): New macros.
	(listen_keyboard, rd_ch_keyboard, add_keybinding): Update.
	(keybinding): Take only one argument.
	(make_keyboard_stream, lisp_completion, rd_ch_terminal)
	(rd_ch_terminal1, rd_ch_terminal2, rd_ch_terminal3, wr_ch_terminal3)
	(wr_ss_terminal3, wr_ch_window, rd_ch_ch_file, wr_ch_ch_file)
	(write_char_array_ch_file, rd_ch_str_in, wr_ss_str_out)
	(wr_ch_pphelp, wr_ss_pphelp, rd_ch_buff_in, wr_ch_buff_out)
	(wr_ch_printer, rd_ch_socket, listen_socket, wr_ch_socket)
	(write_char_array_socket, read_char_array, write_char_array)
	(FILE-STRING-LENGTH): Update.
	* pathname.d (common_case, legal_logical_word_char, legal_hostchar)
	(test_optional_host, equal_pathchar, legal_namechar)
	(singlewild_char_p, slashp, parse_logical_word, all_digits)
	(parse_logical_pathnamestring, parse_name_or_type, split_name_type)
	(PARSE-NAMESTRING, legal_logical_word, legal_name_or_type)
	(legal_name, legal_type, MAKE-PATHNAME, has_wildcards)
	(has_word_wildcards, wildcard_match_ab, wildcard_diff_ab)
	(translate_nametype_aux, use_default_dir, OSdirnamestring, SHELL):
	  Update.
	* array.d (VECTOR-PUSH-EXTEND, ssstring_push_extend, ssstring_extend)
	(make_datenvektor): Update.
	* hashtabl.d (hashcode_string, hashcode4_char, hashcode4_vector_Char):
	  Update.
	* package.d (string_hashcode): Update.
	* predtype.d (equal, elt_compare_T_Char, elt_compare_Char_Char)
	(equalp): Update.
	* sequence.d (MAKE-SEQUENCE, READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE):
	  Update.
	* debug.d (read_form): Update.
	* error.d (write_errorstring): Update.
	* lisparit.d (read_float, print_integer, print_float, decimal_string):
	  Update.
	* intprint.d (DIGITS, UDS_to_DIGITS): Update.
	* intread.d (DIGITS_to_I): Update.
	* foreign.d (convert_from_foreign_array_fill, convert_from_foreign)
	(convert_to_foreign): Update.
	* affi.d (affi_call_argsa, SYSTEM::MEM-READ)
	(SYSTEM::MEM-WRITE-VECTOR): Update.

1999-01-21  Sam Steingold  <sds@goems.com>

	* user2.lsp (signature-to-list, arglist): new functions.
	(describe-signature): use `signature-to-list'.

1999-01-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	For being able to use a C++ compiler in place of a C compiler.
	* acgeneral.m4 (AC_HAVE_LIBRARY, AC_CHECK_SIZEOF): Declare `main' with
	  return type `int'.
	* acspecific.m4 (AC_PROG_CC_WORKS, AC_DIR_HEADER, AC_TYPE_GETGROUPS)
	(AC_FUNC_CLOSEDIR_VOID, AC_FUNC_FNMATCH, AC_FUNC_GETPGRP)
	(AC_FUNC_SETPGRP, AC_FUNC_VFORK, AC_FUNC_WAIT3, AC_FUNC_ALLOCA)
	(AC_FUNC_UTIME_NULL, AC_FUNC_STRCOLL, AC_FUNC_SETVBUF_REVERSED)
	(AC_FUNC_MEMCMP, AC_C_CHAR_UNSIGNED, AC_INT_16_BITS)
	(AC_LONG_64_BITS, AC_C_BIGENDIAN, AC_SYS_RESTARTABLE_SYSCALLS):
	  Likewise.
	* aclocal.m4 (CL_CC_WORKS, CL_CXX_WORKS, CL_SHELLARGS)
	(CL_PCC_STRUCT_RETURN, CL_SMALL_STRUCT_RETURN, CL_LONGLONG)
	(CL_LONGDOUBLE, CL_SIGNAL_REINSTALL, CL_SIGNAL_UNBLOCK)
	(CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL)
	(CL_SIGACTION_UNBLOCK, CL_ELOOP, CL_IOCTL, CL_TIMES_CLOCK)
	(CL_ADDRESS_RANGE, CL_MMAP, CL_MPROTECT, CL_CODEEXEC, CL_SHM)
	(CL_SHM_RMID, CL_FILECHARSET, CL_CHAR_UNSIGNED)
	(CL_WORDS_LITTLEENDIAN): Likewise.

1999-01-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* acgeneral.m4, acspecific.m4: Upgrade to autoconf-2.13.
	* config.guess, config.sub: Likewise.
	* aclocal.m4 (CL_ALLOCA): Test for _MSC_VER and alloca being a macro.
	  Use ${ac_objext}.
	* lispbibl.d (alloca): Put _MSC_VER test before the others, conforming
	  with CL_ALLOCA.

1999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (copyright_notice): Use a long string, because gcc stores an
	  array of strings in reverse order.

1999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_garcol.d (gar_col_compact): Conditionalize declaration.

1999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* intgcd.d (I_I_xgcd_I_I_I): Now really ensure the 2nd and 3rd value
	  are of minimum absolute value.

1999-01-15  Sam Steingold  <sds@goems.com>

	* clos.lsp (*gf-warn-on-replacing-method*): new variable.
	(std-add-method): use it.

1999-01-13  Sam Steingold  <sds@goems.com>

	* clos.lsp (*gf-warn-on-removing-all-methods*): new variable.
	(do-defgeneric): use it.
	(*warn-if-gf-already-called*): new variable.
	(warn-if-gf-already-called): use it.

1999-01-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (main): Option --version implies -norc.
	  A batch file argument implies -norc as well.

1999-01-10  Michael Somos  <somos@grail.cba.csuohio.edu>

	* spvw_garcol.d: Move the "#undef update_stackobj".

1999-01-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_FILECHARSET): Generate formula with &&-connected
	  terms enclosed in parentheses, to avoid gcc warning.
	* time.d (SYS::DEFAULT-TIME-ZONE): Add parentheses, to avoid gcc
	  warning.
	* intbyte.d (ldb_extract_test): Add braces, to avoid gcc warning.
	* spvw_circ.d (get_circ_mark): Likewise.

1999-01-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: (write_schar): Remove.
	(write_code_char, write_ascii_char): New macros.
	* debug.d: Update all callers of write_schar.
	* error.d: Likewise.
	* eval.d: Likewise.
	* io.d: Likewise.
	* lisparit.d: Likewise.
	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc): Likewise.

1999-01-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (string_to_asciz, TheAsciz): ASCIZ strings are now
	  simple-bit-vectors, not strings.
	* genclisph.d (TheAsciz): Update.
	* spvw.d (string_to_asciz): Allocate a bit vector, not a string.
	* pathname.d (EXECUTE): Update, don't call string_concat.
	* stream.d (rd_ch_terminal3): Update.
	(finish_output_file): Use with_sstring_0 instead of TheAsciz.
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
	(MAKE-PIPE-IO-STREAM): Update.

1999-01-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	with_sstring and with_sstring_0 must not be called in a loop which
	is executed a lot of times, otherwise SP overflow danger.
	* pathname.d (subdirs): Change argument from char* to simple-string.
	(subfiles, directory_search_1subdir, directory_search_hashcode)
	(directory_search_direntry_ok, directory_search_scandir): New
	  functions, moved out of the body of directory_search.
	(allsubdirs, directory_search): Update.

	Minimize the use of heap-allocated ASCIZ strings.
	* constobj.d (O(null_string)): Remove.
	* spvw.d (init_object_tab): Update.
	* pathname.d (asciz_dir_to_pathname): Make a temporary copy in the
	  stack instead of destructively modifying the argument.
	(OSnamestring): Renamed from namestring_asciz. Now returns a simple-
	  string without trailing zero byte.
	(assure_dir_exists): Avoid destructive modifications of a string.
	  Use with_sstring_0 instead of TheAsciz.
	(default_directory) [AMIGAOS]: Release break_sem_4 in case of error.
	(assure_dir_exists) [AMIGAOS]: Likewise.
	(assure_dir_exists) [UNIX]: Allocate the readlink buffer in the
	  stack.
	(canonicalise_filename) [RISCOS]: Use with_sstring_0 instead of
	  TheAsciz.
	(canonicalise_dirname) [RISCOS]: Likewise.
	(prepare_create) [non-RISCOS]: Define as empty.
	(change_default): Use with_sstring_0 instead of TheAsciz.
	(file_exists): Use with_sstring_0.
	(directory_exists): Avoid destructive modifications of a string.
	  Use with_sstring_0 instead of TheAsciz.
	(DELETE-FILE): Use with_sstring_0 instead of TheAsciz.
	(rename_file): Likewise.
	(create_backup_file): New function.
	(open_file): Call it. Use with_sstring_0 instead of TheAsciz.
	(directory_search): Use with_sstring_0 instead of TheAsciz.
	(shorter_directory): Now returns a simple-string without trailing
	  zero byte.
	(MAKE-DIR, DELETE-DIR): Use with_sstring_0 instead of TheAsciz.
	(ENSURE-DIRECTORIES-EXIST, FILE-WRITE-DATE, FILE-AUTHOR): Likewise.
	(EXECUTE): Call string_to_asciz to compensate for assure_dir_exists
	  change.
	(SHELL): Use with_sstring_0 instead of TheAsciz.

	* pathname.d (PARSE-NAMESTRING): Don't create an ASCIZ string in the
	  heap. Use macro with_sstring_0 instead of TheAsciz.
	(OSdirnamestring): Renamed from OSnamestring.
	(assure_dir_exists, change_default, directory_exists)
	  [PATHNAME_AMIGAOS]: Use macro with_sstring_0 instead of TheAsciz.
	(stat_for_search): New function.
	(subdirs): Change argument from ASCIZ string to char*.
	(allsubdirs, directory_search): Use with_sstring_0.

	* lispbibl.d (with_sstring_0, with_sstring): New macros.

	* pathname.d (check_stat_directory): New macro.
	(directory_search): Use it.

	* pathname.d (READDIR_*): New macros.
	(subdirs, directory_search): Use them.

1999-01-07  Sam Steingold  <sds@goems.com>

	* clisp.spec: this is the first truly working version. (fixed
	doc files and full version installation).

1999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* unix.d: Don't declare memset if it's a macro.
	* spvw.d: Likewise.
	* socket.d: Likewise.

1999-01-07  Sam Steingold  <sds@goems.com>

	* bindings/linuxlibc6/linux.lsp: commented out *gammaf?_*.

1999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (create_new_file, open_input_file, open_output_file): New
	  functions.
	(open_file): Use them.

1999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (write_byte_array_b_file): New function, renamed from
	  write_byte_array_iau8_file.
	(write_char_array_ch_file, write_byte_array_b_file): Use it.

1999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Fix a compilation problem on new glibc2 systems.
	* aclocal.m4 (CL_FPU_CONTROL): Check for fpu_control_t too.
	* unixconf.h.in (HAVE_FPU_CONTROL_T): New macro.
	* spvw.d (main): Don't call __setfpucw if the control word can be
	  initialized statically.
	* unixaux.d: Initialize the control word statically if possible.

1999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (lisplibdir): Change to $(libdir)/clisp.
	* _distmakefile (lisplibdir): Likewise.
	* clisp.spec: Change installation directory.

1999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	When getwd and getcwd both exist, prefer getcwd.
	* aclocal.m4 (CL_GETWD): Remove macro.
	(CL_GETCWD): First, check for getcwd.
	* configure.in (CL_GETWD): Remove call.
	* unixconf.h.in (HAVE_GETWD): Remove.
	(HAVE_GETCWD): New macro.
	* unix.d: Test for HAVE_GETCWD, not HAVE_GETWD.
	* spvw_language.d (init_language): Revert last patch.

1999-01-04  Sam Steingold  <sds@goems.com>

	* socket.d (socket_getlocalname): declare return value to be
	pointer to host_data, not const char.

1999-01-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_CANONICAL_HOST): Set ac_aux_dir before the cache
	  check.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (subsstring): New declaration.
	* charstrg.d (subsstring): New function.
	* pathname.d (split_name_type, PARSE-NAMESTRING, wildcard_diff_ab)
	(translate_nametype_aux): Use it.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (make_ssbvector, ssbvector_push_extend): New
	  declarations.
	* array.d (make_ssbvector, ssbvector_push_extend): New functions.
	* io.d (get_buffers): The second buffer is a ssbvector.
	(read_token_1, test_potential_number_syntax, test_dots)
	(case_convert_token, read_internal): Likewise.
	(string_reader): Use the first buffer, not the second.
	(uninterned_reader): The second buffer is a ssbvector.
	(READ-LINE): Use the first buffer, not the second.
	(pr_symbol_part): The second buffer is a ssbvector.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (make_directory): Move function, make inline.
	(delete_directory, change_current_directory, delete_existing_file)
	(delete_file_if_exists, delete_file_before_rename)
	(rename_existing_file, rename_file_to_nonexisting): New functions.
	(change_default): Use change_current_directory.
	(access0): Make inline.
	(FILE_EXISTS_TRIVIAL): New macro.
	(DELETE-FILE): Use FILE_EXISTS_TRIVIAL and delete_file_if_exists.
	(rename_file): Use rename_file_to_nonexisting.
	(open_file): Use delete_file_before_rename, rename_existing_file,
	  delete_existing_file.
	(DELETE-DIR): Use delete_directory.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	allocate_handle can call GC!
	* stream.d (make_keyboard_stream, make_terminal_stream_)
	(finish_output_file): Call allocate_handle() at GC-safe moments.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* constsym.d (char-code-limit, base-char-code-limit): New symbols.
	* spvw.d (init_symbol_values): Initialize them.
	* init.lsp: export char-code-limit.
	* defs1.lsp (char-code-limit, base-char-code-limit): Remove variables.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (strm_file_buffer): A byte vector instead of a string.
	(b_file_finish_flush, b_file_nextbyte, b_file_eofbyte)
	(write_char_array_ch_file, write_byte_array_iau8_file): Access a
	  byte vector instead of a string.
	(make_file_stream): Allocate a byte vector instead of a string.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (decimal_string): New declaration.
	* lisparit.d (decimal_string): New function.
	(SYS::DECIMAL-STRING): Call it.
	* pathname.d (nametype_namestring_parts, version_diff): Likewise.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (stream_line_number): New declaration.
	* stream.d (stream_line_number): New function.
	(SYS::LINE-NUMBER): Call it.
	* io.d (read_delimited_list, pr_stream): Likewise.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Speed up exponentiation.
	* intmal.d (UDS_square_UDS): New macro.
	(square_2loop_down, square_2bigloop_down, I_square_I): New functions.
	(I_I_expt_I): Use I_square_I.
	* intsqrt.d (I_rootp): Use I_square_I.
	* rational.d (RA_square_RA): New function.
	* lfloat.d (LF_square_LF): New function.
	* flo_rest.d (SF_square_SF, FF_square_FF, DF_square_DF): New macros.
	(F_square_F): New functions.
	* realelem.d (R_square_R): New function.
	(R_I_expt_R): Use R_square_R.
	* realtran.d (pi_F_float_F): Use LF_square_LF.
	(GEN_F_atanx, GEN_F_sinx, R_cos_sin_R_R, F_expx_F, R_cosh_sinh_R_R):
	  Use F_square_F.
	* compelem.d (N_square_N): New function.
	(SFC_durch_SFC): Use SF_square_SF.
	(FFC_durch_FFC): Use FF_square_FF.
	(DFC_durch_DFC): Use DF_square_DF.
	(LFC_durch_LFC): Use LF_square_LF.
	(N_durch_N): Use RA_square_RA.
	(SF_SF_hypot_SF): Use SF_square_SF.
	(FF_FF_hypot_FF): Use FF_square_FF.
	(DF_DF_hypot_DF): Use DF_square_DF.
	(LF_LF_hypot_LF): Use LF_square_LF.
	(R_R_hypot_R): Use RA_square_RA.
	* comptran.d (N_I_expt_N): Use N_square_N.
	(R_R_atanh_R_R): Use R_square_R.
	(R_R_asinh_R_R): Use F_square_F, N_square_N.
	(N_acos_N, N_acosh_N): Use F_square_F.
	* lisparit.d (*): Call N_square_N for squaring.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	DEFSTRUCT with option :INCLUDE should not define accessors which were
	already defined in a superclass DEFSTRUCT.
	* init.lsp (remove-old-definitions): Also remprop
	  SYSTEM::DEFSTRUCT-READER.
	* places.lsp (define-setf-expander, defsetf): Also remprop
	  SYSTEM::DEFSTRUCT-WRITER.
	* defstruc.lsp (ds-make-accessors): One more argument. Check property
	  SYSTEM::DEFSTRUCT-READER.
	(ds-make-defsetfs): One more argument. Check property
	  SYSTEM::DEFSTRUCT-WRITER.
	(defstruct): Update.

1999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* conditio.lsp: Export STYLE-WARNING.
	(STYLE-WARNING): New condition type.
	* defs3.lsp: Export STYLE-WARNING.
	* compiler.lsp (*style-warning-count*): New variable.
	(c-style-warn): New function.
	(ignore-check): Call c-style-warn instead of c-warn.
	(c-CASE): Likewise.
	(compile-lambda): Bind *style-warning-count*.
	(compile, compile-file): Bind *style-warning-count*. Return three
	  values depending on *style-warning-count*.

1999-01-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (I_to_uint8, I_to_sint8, I_to_uint16, I_to_sint16)
	(I_to_uint32, I_to_sint32): Define always.
	* predtype.d (elt_compare_T_T, elt_compare_T_Char, elt_compare_T_Bit)
	(elt_compare_T_2Bit, elt_compare_T_4Bit, elt_compare_T_8Bit)
	(elt_compare_T_16Bit, elt_compare_T_32Bit, elt_compare_Char_Char)
	(elt_compare_Bit_Bit, elt_compare_Bit_2Bit, elt_compare_Bit_4Bit)
	(elt_compare_Bit_8Bit, elt_compare_Bit_16Bit, elt_compare_Bit_32Bit)
	(elt_compare_2Bit_2Bit, elt_compare_2Bit_4Bit, elt_compare_2Bit_8Bit)
	(elt_compare_2Bit_16Bit, elt_compare_2Bit_32Bit)
	(elt_compare_4Bit_4Bit, elt_compare_4Bit_8Bit)
	(elt_compare_4Bit_16Bit, elt_compare_4Bit_32Bit)
	(elt_compare_8Bit_8Bit, elt_compare_8Bit_16Bit)
	(elt_compare_8Bit_32Bit, elt_compare_16Bit_16Bit)
	(elt_compare_16Bit_32Bit, elt_compare_32Bit_32Bit, elt_compare):
	  New functions.
	(equalp): Rewrite the comparison code for arrays, to ignore the
	  array element type.
	* realelem.d (hashcode4_uint32): New function.
	(hashcode4_uint4): New array.
	* hashtabl.d (hashcode4_string): Remove function.
	(hashcode4_char, hashcode4_vector_T, hashcode4_vector_Char)
	(hashcode4_vector_Bit, hashcode4_vector_2Bit, hashcode4_vector_4Bit)
	(hashcode4_vector_8Bit, hashcode4_vector_16Bit)
	(hashcode4_vector_32Bit, hashcode4_vector): New functions.
	(hashcode4_atom): For arrays, return a hash code independent of the
	  array element type. For characters, multi-dimensional arrays,
	  pathnames, and records, return a hash code consistent with EQUALP.

1999-01-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (host_match): Treat muster=NIL as wild.
	(device_match): Likewise.
	(nametype_match_aux): Renamed from nametype_match.
	(subdir_match): Adjust.
	(directory_match): Treat muster=(:RELATIVE) as wild.
	(nametype_match): New function.
	(version_match): Treat muster=NIL as wild.
	(host_diff): Treat muster=NIL as wild.
	(device_diff): Likewise. Produce NIL instead of "".
	(nametype_diff_aux): Renamed from nametype_diff. Produce NIL instead
	  of "".
	(subdir_diff): Adjust. Produce NIL instead of "".
	(directory_diff_ab): Produces lists prefixed with :DIRECTORY.
	(directory_diff): Treat muster=(:RELATIVE) as wild.
	(nametype_diff): New function.
	(version_diff): Treat muster=NIL as wild. Always produce a result.
	  Produce NIL instead of "".
	(translate_host): Treat muster=NIL as wild.
	(translate_device): Likewise. Accept NIL instead of "".
	(translate_nametype_aux): Renamed from translate_nametype. Accept
	  NIL instead of "".
	(translate_subdir): Adjust.
	(translate_directory): Treat muster=(:RELATIVE) as wild. Accept
	  lists prefixed with :DIRECTORY.
	(translate_nametype): New function.
	(translate_version): Treat muster=NIL as wild. Accept NIL instead of
	  "". Always consume an item.
	* defs1.lsp (set-logical-pathname-translations for SYS): Simplify.

1998-11-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* lispbibl.d (STRM_WR_SS): Assume to be 1.
	(PSEUDOFUNSS): Remove definition.
	* pseudofun.d: Use PSEUDOFUN instead of PSEUDOFUNSS.
	* array.d, io.d, stream.d, spvw_memfile.d: Assume STRM_WR_SS is 1.

1998-11-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	Avoid a Purify(TM) warning.
	* intbyte.d (ldb_extract): Only access newMSDptr[0] if really needed.

1998-12-31  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* defs1.lsp (union, nunion, intersection, nintersection)
	(set-difference, nset-difference): Rewrite to use iteration
	instead of recursion.

1998-12-31  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* loop.lsp (expand-loop): Fix bug introduced by 1998-12-21 patch.

1998-12-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* intgcd.d (I_I_xgcd_I_I_I): Ensure the 2nd and 3rd value are
	  normalized to be of minimum absolute value.

1998-12-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_IOCTL): Allow the second argument of ioctl to be of
	  type `void*'.
	* unixconf.h.in (IOCTL_ARGUMENT_T): New definition.
	* unix.d (ioctl, nonintr_ioctl): Change declarations.
	(IOCTL_ARGUMENT_T): New definition.
	* unixaux.d (nonintr_ioctl): Likewise.

1998-12-21  Sam Steingold  <sds@goems.com>

	* spvw_language.d (init_language): use `getcwd' instead of `getwd'.

1998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* makemake.in: Don't remove full/* for DOS,OS/2, as it doesn't exist.
	  On Unix, create the full/ directory during `make installdirs'.

1998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* stream.d (FILE-POSITION): Accept any integer >= 0, < 2^32, not only
	  fixnums.

1998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* stream.d (SOCKET-SERVER, publish_host_data): Remove call to
	  undeclared function `bzero'. Pass 3rd argument to
	  `create_server_socket'.
	* socket.d (create_server_socket, socket_getpeername)
	(socket_getlocalname): Move to here.
	(create_server_socket): Port is passed as argument, not in hd->port.

1998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* loop.lsp (expand-loop): Generalize 1998-11-05 patch: The FOR
	  FROM/TO/BY clauses can come in any order. Make sure the order of
	  evaluation is preserved.

1998-12-20  Sam Steingold  <sds@goems.com>

	* _clisp.c (main): accept an '-F' argument to run the full version
	of CLISP (with modules).
	* spvw.d (usage): mention -F.
	* makemake.in: install the full CLISP version too.
	* _distmakefile: ditto.

1998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* makemake.in (clean7): Add "rm -f -r bindings clx queens regexp
	  wildcard".

1998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* lispbibl.d (strm_len): Correct definition, was one too large if
	  not compiling with gcc.
	(stream_xlength, Stream_xlength): New macros.
	(allocate_stream): One more argument.
	* spvw_typealloc.d (allocate_stream): Likewise.
	* stream.d (make_handle_stream, make_keyboard_stream)
	(make_terminal_stream_, SYS::MAKE-WINDOW): One more argument to
	  `allocate-stream'.
	(strm_file_extrafields_struct, strm_ch_file_extrafields_struct)
	(strm_i_file_extrafields_struct): New structures.
	(strm_file_buffstart): Remove macro.
	(FileStream_buffstart): New macro.
	(strm_file_eofindex): Remove macro.
	(FileStream_eofindex, eofindex_all_valid, eofindex_all_invalid): New
	  macros.
	(strm_file_index): Remove macro.
	(FileStream_index): New macro.
	(modified_flag, set_modified_flag, reset_modified_flag): Remove
	  macros.
	(FileStream_modified): New macro.
	(strm_file_position): Remove macro.
	(FileStream_position): New macro.
	(strm_ch_file_lineno): Remove macro.
	(FileStream_lineno): New macro.
	(strm_file_bitsize): Remove macro.
	(FileStream_bitsize): New macro.
	(strm_file_bitindex): Remove macto.
	(FileStream_bitindex): New macro.
	(strm_file_eofposition): Remove macro.
	(FileStream_eofposition): New macro.
	(strm_file_buffer, strm_file_bitbuffer): Change.
	(b_file_finish_flush, b_file_half_flush, b_file_flush)
	(b_file_nextbyte, b_file_eofbyte, b_file_writebyte, position_b_file)
	(rd_ch_ch_file, write_b_file, write_char_array_ch_file)
	(position_i_file, rd_by_iax_file, rd_by_ibx_file, rd_by_icx_file)
	(wr_by_ia, wr_by_ib, wr_by_ic, wr_by_ixu_file, wr_by_ixs_file)
	(write_byte_array_iau8_file, position_file_start, position_file)
	(position_file_end): Use new macros.
	(make_file_stream): One more argument to `allocate_stream'. Use new
	  macros.
	(file_flush, finish_output_file, closed_file): Use new macros.
	(make_synonym_stream, make_broadcast_stream)
	(make_concatenated_stream, make_twoway_stream, make_echo_stream)
	(MAKE-STRING-INPUT-STREAM, make_string_output_stream)
	(SYSTEM::MAKE-STRING-PUSH-STREAM, make_pphelp_stream)
	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM)
	(make_printer_stream, MAKE-PIPE-INPUT-STREAM)
	(MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
	(SYS::MAKE-SOCKET-STREAM, make_socket_stream, MAKE-GENERIC-STREAM):
	  One more argument to `allocate_stream'.
	(STREAM-ELEMENT-TYPE, read_byte_array, write_byte_array)
	(read_char_array, FILE-POSITION, FILE-LENGTH, SYS::LINE-NUMBER):
	  Use new macros.
	* io.d (pr_stream): Adjust printing of character streams.

1998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* makemake.in (echol): Partially revert the 1998-10-14 change. The
	  Openstep hack doesn't work on Solaris.

1998-12-16  Sam Steingold  <sds@goems.com>

	* bindings/linuxlibc6/linux.lsp: replaced _IO_std* with _IO_std*_.

1998-12-15  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>

	* lispbibl.d (host_data): Adjust type definition to be valid C++.

1998-12-15  Sam Steingold  <sds@goems.com>

	* constsym.d: added `SOCKET-STREAM-LOCAL', renamed
	`SOCKET-STREAM-PEER-HOST' to `SOCKET-STREAM-PEER'.
	* subr.d: ditto.
	* socket.d (create_server_socket, socket_getpeername)
	(socket_getlocalname): use `host_data' structure instead of statics.
	(fill_hostname): new function (renamed from `ip_to_string').
	(socket_getlocalname): new function (renamed from `socket_getmyname').
	* stream.d (socket_server): use `host_data' structure.
	(publish_host_data): new function.
	(socket_stream_peer, socket_stream_local): use it.
	* _impnotes.txt, impnotes.html: document the changes.
	* lispbibl.d: added `typedef host_data'.

1998-12-15  Sam Steingold  <sds@goems.com>

	* makemake.in: added --fsstnd options `redhat' and `debian'.

1998-12-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure: Don't lndir modules/CVS over to src/CVS.
	* configure: Don't pass the --fsstnd argument to src/configure.

1998-12-11  Sam Steingold  <sds@goems.com>

	* socket.d (create_server_socket): take 2 arguments, pointer to
	unsigned int (port) and SOCKET.
	(ip_to_string): new function.
	(socket_getmyname): new function.
	* constsym.d: added `SOCKET-SERVER-HOST'.
	* subr.d: ditto.
	* io.d (pr_orecord): print host of `SOCKET-SERVER'.
	* lispbibl.d (struct *Socket_server): new field: host.
	(socket_stream_p): new predicate.
	* stream.d (socket_server): accept socket-stream as the optional
	argument.
	(socket_server_host): new function.

1998-12-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in (MODULES): New variables. Accept --with-module=MODULE
	  syntax.
	* configure: Update.

1998-11-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (read_byte_array, read_char_array): When reading from
	  handle-streams, use `full_read' not `read', because `full_read'
	  handles EFAULT gracefully.

1998-11-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (base_char_int_len, base_char_int_limit, bcint)
	(base_char_code_limit, base_char_p): New definitions.
	* charstrg.d (SYS::BASE-CHAR-P): New function.
	* predtype.d (TYPE-OF): May return [SIMPLE-]BASE-STRING instead of
	  [SIMPLE-]STRING, and BASE-CHAR instead of CHARACTER.
	(COERCE): Treat BASE-CHAR, BASE-STRING, SIMPLE-BASE-STRING.
	* sequence.d (valid_type): Treat BASE-STRING, SIMPLE-BASE-STRING.
	* defs1.lsp (base-char-code-limit): Define.
	* defs2.lsp (designator): Recognize (DESIGNATOR BASE-CHAR).
	* type.lsp: New types BASE-CHAR, EXTENDED-CHAR, BASE-STRING,
	  SIMPLE-BASE-STRING.
	(canonicalize-type): Force STANDARD-CHAR to be a subtype of
	  BASE-CHAR.
	* compiler.lsp (*declaration-types*): Add base-char, base-string,
	  extended-char, simple-base-string.
	(c-typep-alist1): Add base-string, simple-base-string.
	(c-typep-alist2): Add base-char, extended-char.
	(c-typep-alist3): Add base-string, simple-base-string.
	* init.lsp: Export base-char, base-string, extended-char,
	  simple-base-string.
	* defs3.lsp: Likewise.

1998-11-05  Sam Steingold  <sds@goems.com>

	* loop.lsp (expand-loop): allow `by' to precede `upto' &c.

1998-11-05  Sam Steingold  <sds@goems.com>

	* type.lsp (canonicalize-type): handle `SIGNED-BYTE' and
	  `UNSIGNED-BYTE', thus recognize them as subtypes of `INTEGER'.

1998-11-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Replace STRING-CHAR with CHARACTER.
	* array.d (eltype_code): No need to test for STRING-CHAR, the SUBTYPEP
	  test catches it. Test for subtype of CHARACTER, not STRING-CHAR.
	(datenvektor_store): Test for CHARACTER, not STRING-CHAR.
	(array_element_type): Return CHARACTER, not STRING-CHAR.
	(VECTOR-PUSH-EXTEND): Test for CHARACTER, not STRING-CHAR.
	(make_datenvektor): Likewise.
	* charstrg.d (coerce_char): Use code_char instead of int_char.
	(STANDARD-CHAR-P, GRAPHIC-CHAR-P): Use char_code instead of char_int.
	(STRING-CHAR-P): Always return T.
	(ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P, BOTH-CASE-P, DIGIT-CHAR-P)
	(ALPHANUMERICP, CHAR-UPCASE, CHAR-DOWNCASE, CHAR-INT): Use char_code
	  instead of char_int.
	(INT-CHAR): Use code_char instead of int_char.
	(CHAR-NAME): Use char_code instead of char_int.
	(test_newchar_arg, test_stringsymchar_arg): Test for CHARACTER, not
	  STRING-CHAR.
	(MAKE-STRING): No need to test for STRING-CHAR, the SUBTYPEP test
	  catches it. Test for CHARACTER, not STRING-CHAR.
	* error.d (fehler_string_char): Remove, replaced by fehler_char.
	* foreign.d (convert_from_foreign_array_alloc): Make an array of
	  element type CHARACTER, not STRING-CHAR.
	(convert_to_foreign): Test for CHARACTER, not STRING-CHAR.
	* genclisph.d (main): Simplify code_char and char_code. Remove
	  string_char_p. Replace char_string_char by check_char.
	* io.d (SET-SYNTAX-FROM-CHAR, SET-MACRO-CHARACTER, GET-MACRO-CHARACTER)
	(MAKE-DISPATCH-MACRO-CHARACTER, test_disp_sub_char, read_char_syntax)
	(wpeek_char_syntax, wpeek_char_eof, read_macro): Test for CHARACTER,
	  not STRING-CHAR.
	(char_reader): Use code_char instead of int_char. Simplify.
	(array_reader): Use CHARACTER, not STRING-CHAR.
	(READ-DELIMITED-LIST, READ-LINE): Test for CHARACTER, not
	  STRING-CHAR.
	(pr_character): Use char_code instead of char_int.
	* lispbibl.d (char_int_len): Set to 8, not 16.
	(char_code_shift_c, char_code_len_c, char_code_mask_c): Remove.
	(char_code_limit, code_char, char_code): Simplify.
	(Atype_Char): Renamed from Atype_String_Char.
	(strmtype_ch_file): Remove.
	(strmtype_ch_file): Renamed from strmtype_sch_file.
	(string_char_p): Remove.
	(fehler_string_char): Remove declaration.
	(check_char): Replaces check_string_char.
	(read_char_array): Renamed from read_schar_array.
	(write_char_array): Renamed from write_schar_array.
	* pathname.d (OPEN): Accept element type CHARACTER, synonymous to
	  STRING-CHAR. No need to test for subtype of STRING-CHAR, subtype of
	  CHARACTER catches it.
	* predtype.d (COERCE): No need to check for STRING-CHAR after coercion
	  to CHARACTER.
	* stream.d (write_char): Use char_code instead of char_int.
	(fehler_wr_string_char): Remove.
	(wr_ch_handle): Test for CHARACTER, not STRING-CHAR.
	(write_char_array_handle): Renamed from write_schar_array_handle.
	(wr_ch_terminal, wr_ch_terminal3, wr_ch_window): Test for CHARACTER,
	  not STRING-CHAR.
	(char_size, rd_ch_ch_file, listen_ch_file, wr_ch_ch_file): Remove.
	(rd_ch_ch_file): Renamed from rd_ch_sch_file.
	(listen_ch_file): Renamed from listen_sch_file.
	(wr_ch_ch_file): Renamed from wr_ch_sch_file.
	(write_char_array_ch_file): Renamed from write_schar_array_sch_file.
	(wr_ss_ch_file): Renamed from wr_ss_sch_file.
	(position_file, position_file_end, make_file_stream): Simplify.
	(wr_ch_str_out): Test for CHARACTER, not STRING-CHAR.
	(MAKE-STRING-OUTPUT-STREAM): No need to test for STRING-CHAR, the
	  SUBTYPEP test catches it.
	(wr_ch_str_push, wr_ch_pphelp, wr_ch_buff_out, wr_ch_printer)
	(wr_ch_socket): Test for CHARACTER, not STRING-CHAR.
	(write_char_array_socket): Renamed from write_schar_array_socket.
	(STREAM-ELEMENT-TYPE): Return CHARACTER instead of STRING-CHAR.
	  For the keyboard stream, return T.
	(read_char_array): Renamed from read_schar_array. Test for
	  CHARACTER, not STRING-CHAR.
	(write_char_array): Renamed from write_schar_array.
	(FILE-STRING-LENGTH): Test for CHARACTER, not STRING-CHAR. Simplify.
	* compiler.lsp (c-typep-alist1): Add STRING-CHAR.
	(c-typep-alist2): Remove STRING-CHAR.
	* defs2.lsp (dispatch-reader): Test for CHARACTER, not STRING-CHAR.
	(read-sequence, write-sequence): Don't test for STRING-CHAR, that's
	  not a used stream element type any more.
	(designator): Use char-code-limit instead of char-int-limit.
	  Remove definition of type (DESIGNATOR STRING-CHAR).
	  Use CHARACTER instead of STRING-CHAR.
	* format.lsp (digit-string): Create with element type CHARACTER, not
	  STRING-CHAR.
	* init.lsp (load): Call open with element type CHARACTER, not
	  STRING-CHAR.
	* type.lsp (STRING-CHAR): Make synonymous to CHARACTER.
	(upgraded-array-element-type): No need to test for STRING-CHAR, the
	  SUBTYPEP test catches it. Return CHARACTER, not STRING-CHAR.
	(canonicalize-type): Simplify STANDARD-CHAR and STRING-CHAR.
	  Element type of SIMPLE-STRING and STRING is CHARACTER, not
	  STRING-CHAR.
	* user2.lsp (shell-quote): Create with element type CHARACTER, not
	  STRING-CHAR.

1998-11-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove font and bits attributes of characters.
	* lispbibl.d (char_bits_*, char_font_*, char_*_c): Remove definitions.
	* io.d (char_reader): Font must be 0, bitnames are not supported any
	  more.
	(pr_character): Remove support for font and bitnames.
	* constobj.d (charname_hyper_*): Remove extra character names for keys.
	(bitnamekw_*): Remove bitnames.
	* charstrg.d (charname_table_extra): Remove definition.
	(charname_table_codes): Remove extra characters.
	(name_char): Don't test for extra characters.
	(CHAR-BITS, CHAR-FONT, MAKE-CHAR): Remove functions.
	(test_font_arg, test_bits_arg, test_bitname_arg): Remove.
	(CODE-CHAR, DIGIT-CHAR): Remove the optional font and bits arguments.
	(CHAR-BIT, SET-CHAR-BIT): Remove functions.
	* eval.d (FUNTAB): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR, CHAR-BIT,
	  SET-CHAR-BIT.
	* compiler.lsp (funtab): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR,
	  CHAR-BIT, SET-CHAR-BIT.
	(subr-info): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR, CHAR-BIT,
	  SET-CHAR-BIT, update for CODE-CHAR, DIGIT-CHAR.
	(c-DIRECT-FUNCTION-CALL): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR,
	  CHAR-BIT.
	* format.lsp (format-character): Remove handling of font and bits.
	* user2.lsp (describe): Likewise.

	* xcharin.lsp: New file.
	* makemake.in (LPARTS): Add xcharin.
	* defs1.lsp (char-font-limit, char-bits-limit, char-int-limit)
	(char-control-bit, char-meta-bit, char-super-bit, char-hyper-bit):
	  Moved to xcharin.lsp.
	* init.lsp: Load xcharin.
	* defs3.lsp: Don't export COMMON, STRING-CHAR, CHAR-FONT-LIMIT,
	  CHAR-BITS-LIMIT, CHAR-CONTROL-BIT, CHAR-META-BIT, CHAR-SUPER-BIT,
	  CHAR-HYPER-BIT, STRING-CHAR-P, CHAR-BITS, CHAR-FONT, MAKE-CHAR,
	  INT-CHAR, CHAR-BIT, SET-CHAR-BIT.

	* stream.d (key_event): New structure type.
	(make_key_event): New function.
	(char_control_c, char_meta_c, char_super_c, char_hyper_c): Define.
	(scancode_table): Use key_event data.
	(listen_keyboard): Call make_key_event and make-char.
	(rd_ch_keyboard): Likewise.
	(add_keybinding): Renamed from keybinding.
	(keybinding): New macro.
	(make_keyboard_stream): Use key_event data.
	(wr_ch_terminal1): Leave a #error for Jorg to fix.

	* type.lsp (upgraded-array-element-type): Treat CHARACTER as synonym
	  of STRING-CHAR.
	* array.d (eltype_code): Likewise.

1998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (MAKE-STRING-OUTPUT-STREAM): Replace optional argument by
	  keyword arguments :ELEMENT-TYPE and :LINE-POSITION.
	* compiler.lsp (subr-info): Update for MAKE-STRING-OUTPUT-STREAM.
	* format.lsp (format-case-conversion, format-justification)
	(formatter-main-1): Pass keywords to MAKE-STRING-OUTPUT-STREAM.
	* macros2.lsp (with-output-to-string): Add keyword argument
	  :ELEMENT-TYPE.

1998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* charstrg.d (MAKE-STRING): Add keyword argument :ELEMENT-TYPE.
	* compiler.lsp (subr-info): Update for MAKE-STRING.

1998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (OPEN): Add keyword argument :EXTERNAL-FORMAT.
	* stream.d (STREAM-EXTERNAL-FORMAT): New function.
	* eval.d (FUNTAB): Add stream-external-format.
	* compiler.lsp (funtab): Add stream-external-format.
	(subr-info): Update for OPEN and STREAM-EXTERNAL-FORMAT.
	* init.lsp: Export STREAM-EXTERNAL-FORMAT from package LISP.
	* defs3.lsp: Export STREAM-EXTERNAL-FORMAT from package COMMON-LISP.

1998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* constobj.d (O(version)): Bump version number.

1998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* editor.lsp: Remove file.
	* makemake.in (LPARTS): Adjust.

1998-10-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* charstrg.d (coerce_char): An integer is coercible to a character
	  only if *ansi* is false.
	* defs2.lsp (DESIGNATOR): Likewise.

1998-10-30  Sam Steingold  <sds@goems.com>

	* init.lsp (date-format): use ISO date/time format for English.

1998-10-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (main): Use `merge-pathnames' instead of explicit
	  `make-pathname'. Also make the #ifs consistent with _clisp.1.

1998-10-29  Sam Steingold  <sds@goems.com>

	* spvw.d (main): replace `load_rc_file' with explicit load.
	* user1.lsp: remove `load-rc-file'.
	* constsym.d: ditto.

1998-10-29  Sam Steingold  <sds@goems.com>

	* spvw.d (usage): new function; replace 'goto usage' with a call
	  to it, thus the exit code for "-h" and "--help" is 0 now.

1998-10-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: Keep "-norc" out of the localeflags.
	* user1.lsp (load-rc-file): Use `load'. Filename is OS dependent.
	(help): Don't mention Ctrl-D, it's Ctrl-Z on DOS, OS/2, Win32.
	* _clisp.1: Update accordingly.

1998-10-28  Sam Steingold  <sds@goems.com>

	* spvw.d (main): added a new command line option -norc; load
	  ~/.clisprc when it is not given.
	* _clisp.c (main): ditto.
	* makemake.in: give lisp.run options -norc on build
	* user1.lsp (load-rc-file): new function.
	(help): more verbose message.
	* _clisp.1: document it.

1998-10-27  Sam Steingold  <sds@goems.com>

	* configure: remind the user to edit config.lsp.
	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp:
	(machine-instance): init from $HOSTNAME.
	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgsunux.lsp, cfgunix.lsp:
	(short-site-name, long-site-name): init from $ORGANIZATION.
	  In both cases, when the environment variable is undefined, return
	  an instruction to edit `config.lsp'.

1998-10-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* time.d (SYS::DEFAULT-TIME-ZONE): Treat dates <= 1.1.1970 or
	  >= 1.1.2050 like 1.1.1970 or 1.1.2050, respectively.

1998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (FILE-STRING-LENGTH): New function.
	* init.lsp: Export it from package LISP.
	* defs3.lsp: Export it from package COMMON-LISP.
	* compiler.lsp (subr-info): Add FILE-STRING-LENGTH.

1998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Encode the "last read character has been pushed back" state of a
	stream in the strmflags, instead of in strm_rd_ch_last.
	* stream.d (strmflags_unread_bit_B, strmflags_unread_B): New defines.
	(pk_ch_dummy): Set the bit, unless the return value is eof_value.
	(read_char): Clear the bit.
	(unread_char): Set the bit.
	(peek_char): Test the bit.
	(close_dummys): Clear the bit.
	(rd_ch_handle for AMIGAOS): Set the bit before entering a break loop.
	(listen_handle): Set the bit when a character is available.
	(listen_keyboard): Likewise.
	(listen_socket): Likewise.
	(position_file_start, position_file, position_file_end): Clear the
	  bit.
	(SYSTEM::STRING-INPUT-STREAM-INDEX): Test the bit.
	(SYSTEM::BUFFERED-INPUT-STREAM-INDEX): Likewise.
	(pk_ch_generic): Simplify. Don't check for a character any more.
	(stream_listen): Test the bit.
	(clear_input): Clear the bit.
	(read_schar_array): Test and clear the bit.

1998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* type.lsp (upgraded-array-element-type): Fix so that for
	  STANDARD-CHAR it returns STRING-CHAR.
	* array.d (eltype_code): Likewise.

1998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (nonreturning): Remove definition.
	(nonreturning_function): Use __attribute__((__noreturn__)).
	* genclisph.d (main): Likewise.

1998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* _clisp.c (main): New option "-a".
	* spvw.d (main): Likewise.
	(argv_ansi): New variable.
	* constsym.d (*ANSI*): New variable.
	* spvw.d (init_symbol_values): Initialize it.

1998-10-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* _distmakefile (CC): Set to "cc -Aa" on HP-UX, because "cc" is not
	  ANSI C compliant and doesn't grok `main' in clisp.c.
	(CC): Set to "gcc" on SunOS4, because the normal "cc" is not ANSI C
	  compliant.

1998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* loop.lsp (expand-loop): Rework a little bit to improve the syntax
	  checking after `of-type' in sum/max/count.

1998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* control.d (TAGBODY, GO): Allow NIL as GO tag.
	* compiler.lsp (c-TAGBODY, c-GO): Likewise.

1998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* list.d (LDIFF): Allow dotted lists, like for TAILP.

1998-10-15  Sam Steingold  <sds@goems.com>

	* loop.lsp (expand-loop): fixed handling of `of-type' in
	sum/max/count.

1998-10-14  Leigh Smith  <leigh@antechinus.cs.uwa.oz.au>

	* makemake.in (echol): Use `cat', not `printf'.
	(echoline): Don't access $3 and $4 inside the loop.

1998-10-12  Sam Steingold  <sds@goems.com>

	* utils/modprep.d: #include <errno.h>.

1998-10-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* utils/modprep.d: New file.
	* makemake.in: Build it.
	* genclisp.d: Define DEFMODULE, DEFUN, DEFVAR, for use by modules.

1998-10-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (rd_ch_terminal3): Don't need to put newlines into the
	  prompt string when using newnewreadline.
	(xmalloc, xrealloc): Change declaration when using newnewreadline.

1998-10-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* configure, makemake.in: Add support for newnewreadline directory.

1998-10-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_keyboard_stream): Restore the handling of most keypad
	  keys in xterm, broken by the 1998-10-03 patch.

1998-10-09  Sam Steingold  <sds@goems.com>

	* spvw.d (init_symbol_values): define LISP:*PPRINT-FIRST-NEWLINE*.
	* io.d (pr_enter_1): use `pprint_first_newline' to determine
	whether to output a newline before the object.
	* constsym.d: new symbol LISP:*PPRINT-FIRST-NEWLINE*.
	* bindings/linuxlibc6/linux.lsp: do not include <stdlib.h>, fixed
	declaration of `lldiv', removed: `setkey', `crypt', `encrypt',
	`__pwdopen', `__pwdread', `__pwdalloc', `__pwdscan', `__grpopen',
	`__grpread', `__grpalloc', `__grpscan'.
	* foreign1.lsp (to-c-typedecl): more elaborate handling of `c-ptr',
	`c-ptr-null', `c-array-ptr' and `c-function'.
	* user1.lsp (prompt-index): removed; *prompt* modified accordingly.

1998-10-06  Sam Steingold  <sds@goems.com>

	* user1.lsp (package-short-name): respect `*print-case*'.
	(break-loop): add a space after "Break".
	(step-hook-fn): added a space after "Step nn".
	(prompt-index, prompt-new-package): Rewrite.
	(*command-index*, *home-package*): New variables.

1998-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lndir: Add code to perform the equivalent of "mkdir -p".
	(mkdirparent): New function.

1998-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* makemake.in: If SRCDIR is empty, emit "./lndir" instead of "lndir".

1998-10-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (STACK_reg, mv_count_reg, value1_reg, subr_self_reg):
	  Declare even if HAVE_SAVED_REGISTERS is not defined.

1998-10-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_keyboard_stream): Recognize the End key sequence
	  sent by the Linux console even when it is lacking from the termcap
	  entry. (The "kH" termcap entry apparently got lost during the
	  termcap -> terminfo/ncurses switch.)

1998-09-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (make_keyboard_stream): Recognize the XF86-3.3.2 xterm's
	  Home/End key sequences Esc [ H and Esc [ F. Recognize the SuSE-5.3
	  kvt's Home/End key sequences Esc O H and Esc O F.

1998-09-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* array.d (vectorof): New function.
	(VECTOR): Call it.
	* lispbibl.d (vectorof): New declaration.
	* genclisph.d (main): Declare vectorof.
	* predtype.d (statistics_statistics): Use vectorof.

1998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* user1.lsp: Fix German message, broken by last patch.

1998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* bytecode.html: New file.
	* compiler.lsp: Remove description of instruction set.

1998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* condition.lsp (prompt-for-new-value): Change message, to be
	  consistent with prompt-for-new-value-string.
	(assert): Make more readable. Prefer `append' to `nconc'.

1998-09-11  Sam Steingold  <sds@goems.com>

	* conditio.lsp (prompt-for-new-value): returns a list now; works
	with multiple value places.
	(check-type): adopt for new semantics od `prompt-for-new-value'.
	(assert): work with multiple value places.

1998-09-10  Sam Steingold  <sds@goems.com>

	* user1.lsp (prompt-new-package): removed the `values' declaration.

1998-09-10  Sam Steingold  <sds@goems.com>

	* places.lsp (setf-VALUES-aux): replaced `get-setf-method' with
	`get-setf-expansion' therefore comply with SETF-OF-VALUES:ADD.

1998-09-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (init_object_tab): Put only keywords into *features*.
	* clos.lsp: Likewise. Don't export CLOS.
	* compiler.lsp: Likewise. Don't export COMPILER.
	* loop.lsp: Likewise.
	* editor.lsp: Likewise. Don't export EDITOR.
	* init.lsp: Don't import/export the contents of *features*.
	* io.d (interpret_feature): Search in *features* by EQ.
	(feature): Bind *package*.

1998-09-09  Sam Steingold  <sds@goems.com>

	* user1.lsp: replaced `*prompt-with-package*' with `*prompt*' with
	CMUCL's semantics.  Added `prompt-new-package', `prompt-index' and
	`package-short-name'.

1998-09-03  Sam Steingold  <sds@goems.com>

	* places.lsp (shiftf): fixed the return values, as well as the
	failed test setf.tst.

1998-09-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* pathname.d (legal_namechar): On DOS, accept more misc characters
	  as valid.

1998-09-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (const, __const): Define to empty when using gcc-2.7.x.

1998-09-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_mmap.d (mprotect): Declare with MPROTECT_CONST.
	* win32.d (MPROTECT_CONST): Define.

1998-08-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (init_object_tab:features_initstring): Replace CLTL1 by
	  CLTL2.

1998-08-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_garcol.d (gar_col_compact): Fix update_STACKs call.

1998-08-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* places.lsp: Fix German and French messages, broken by last patch.
	(define-setf-expander, get-setf-expansion): Change format of
	  SYSTEM::SETF-EXPANDER property list entry. Don't call
	  FUNCTION-SIGNATURE.
	(PUSH): Rewrite. Do not call COPY-TREE.
	(POP): Rewrite. Do not call COPY-TREE. Be sure to fetch the CARs
	  before the CDRs.
	(PUSHNEW): Rewrite. Do not call COPY-TREE.
	(SETF): Don't nreverse bindlist.
	(SHIFTF, ROTATEF): Don't call NREVERSE on some unknown piece of code.
	(SETF THE): Fix totally broken code.
	* defs3.lsp: Don't export `get-setf-method',
	  `get-setf-method-multiple-value', `define-setf-method' any more.

1998-07-29  Sam Steingold  <sds@goems.com>

	Implemented ANSI CL issue SETF-MULTIPLE-STORE-VARIABLES:ALLOW:
	* places.lsp (get-setf-method-multiple-value): renamed into
	  `get-setf-expansion'; made it treat multiple value `defsetf'
	  properly.
	(simple-assignment-p, simple-use-p): use `=' to compare numbers,
	  not `eql'.
	(push, pop, psetf, psetf, rotatef, shiftf, the): rewrote from
	  scratch to accept multiple value places.
	(define-setf-method): renamed into `define-setf-expander'.
	(defsetf): made it accept multiple values.
	(setf): minor code simplification.
	* init.lsp (export): added `get-setf-expansion' and
	  `define-setf-expander'.
	* defs3.lsp (export): added `get-setf-expansion' and
	  `define-setf-expander'.

1998-08-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Add a lot of `const' qualifiers.
	* spvw.d, spvw_memfile.d, spvw_sigwinch.d, spvw_multimap.d,
	  spvw_genera1.d, eval.d, io.d, stream.d, socket.d, array.d,
	  charstrg.d, hashtabl.d, list.d, sequence.d, package.d, debug.d,
	  time.d, lisparit.d, intelem.d, intgcd.d, int2adic.d, flo_konv.d,
	  foreign.d, graph.d, affi.d, unix.d, unixaux.d, genclisph.d: Likewise.

1998-08-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_NOWARN): Remove.
	* configure.in (CL_NOWARN): Remove.
	* unixconf.h.in (__nowarn__): Remove definition.
	* lispbibl.d (nowarn): Remove definition.
	* unix.d, acorn.d: Remove occurrences of `nowarn'.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_walk.d: New file.
	* spvw.d (map_heap_objects): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_memfile.d: New file.
	* spvw.d (memflags, memdump_header, memdump_page)
	(memdump_physpage_state, memdump_reloc_header, page_alignment)
	(WRITE_page_alignment, READ_page_alignment, savemem, loadmem_update)
	(loadmem_update_fsubr, loadmem, loadmem_from_handle): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_language.d: New file.
	* spvw.d (mysetenv, language, init_language_from, init_language)
	(cvgettext, clgettext, localized_string, localized_object): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_typealloc.d: New file.
	* spvw.d (allocate_cons, make_symbol, allocate_vector)
	(allocate_bit_vector, allocate_string, allocate_iarray)
	(allocate_srecord_, allocate_xrecord_, allocate_stream)
	(allocate_fpointer, allocate_handle, allocate_bignum)
	(allocate_ffloat, allocate_dfloat, allocate_lfloat, make_ratio)
	(make_complex): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_allocate.d: New file.
	* spvw.d (fehler_speicher_voll, error_speicher_voll, relax_reserve)
	(pointable_usable_test, mymalloc, make_space, make_space_gc)
	(allocate): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_garcol.d: New file.
	* spvw.d (gc_mark, mark_stack, gc_markphase, alive)
	(unmark_fixed_varobjects, gc_compact_cons_page, gc_morris1)
	(gc_morris2, gc_morris3, set_GCself, gc_sweep1_varobject_page)
	(update, move_aligned_p1_p2, gc_sweep2_varobject_page)
	(gc_unmarkcheck, nullobjcheck, free_some_unused_pages)
	(gar_col_normal, gar_col_done, free_page_later, free_delayed_pages)
	(gc_compact_from_varobject_page, gc_compact_from_cons_page)
	(gc_compact_heap, gar_col_compact, gar_col_simple, gar_col)
	(move_conses): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_sigsegv.d, spvw_sigcld.d, spvw_sigint.d, spvw_sigwinch.d: New
	  files.
	* spvw.d (gc_signalblock_on, gc_signalblock_off, interrupt_pending)
	(update_linelength, sigwinch_handler, install_sigcld_handler)
	(begin_want_sigcld, end_want_sigcld, interrupt_handler)
	(alarm_handler, sigsegv_handler_failed, sigsegv_handler)
	(install_segv_handler, stackoverflow_handler): Move out.
	(main): Call install_stackoverflow_handler, install_sigwinch_handler,
	  install_sigint_handler, install_segv_handler, install_sigcld_handler.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_gcstat.d: New file.
	* spvw.d (gc_count, gc_space, gc_time, gc_timer_on, gc_timer_off):
	  Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_genera1.d, spvw_genera2.d, spvw_genera3.d: New files.
	* spvw.d (xfree, xrealloc, prepare_old_generation, in_old_generation)
	(walk_physpage, walk_area, walk_physpage_, walk_area_)
	(update_old_generation, build_old_generation_cache)
	(rebuild_old_generation_cache, gc_cache_check, gc_overall_check)
	(save_gc_data): Move out.
	(gc_markphase): Call gc_mark_old_generation().
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_fault.d: New file.
	* spvw.d (physpagesize, physpageshift, handle_fault_result)
	(handle_mmap_fault, handle_read_fault, handle_readwrite_fault)
	(handle_fault, handle_fault_range, selfmade_mmap, xmprotect)
	(xmmprotect): Move out.
	(main): Call init_physpagesize().
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_mark.d: New file.
	* spvw.d (mark, unmark, marked, with_mark_bit, without_mark_bit):
	Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_update.d: New file.
	* spvw.d (aktualisiere_STACK, aktualisiere_subr_tab)
	(aktualisiere_symbol_tab, aktualisiere_object_tab, aktualisiere_tab)
	(aktualisiere_conspage_normal, aktualisiere_conses)
	(aktualisiere_page_normal, aktualisiere_varobject): Move out.
	(update): Renamed from aktualisiere.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_objsize.d: New file.
	* spvw.d (typecode_at, case_symbolwithflags, speicher_laenge)
	(Varobject_aligned_size, size_symbol, size_sbvector, size_sstring)
	(size_svector, size_iarray, size_srecord, size_xrecord, size_bignum)
	(size_ffloat, size_dfloat, size_lfloat, speicher_laengen)
	(init_speicher_laengen, var_speicher_laenge_, calc_speicher_laenge)
	(varobject_bytelength): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_space.d: New file.
	* spvw.d (static_space, used_space, free_space, recalc_space): Move
	  out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_page.d: New file.
	* spvw_heap.d: New file.
	* spvw_global.d: New file.
	* spvw.d (typecount, _Page, Page, Pages, Heap, oint_addr_relevant_len)
	(min_page_size_brutto, std_page_size, old_new_pointer)
	(physpage_state, heapcount, is_cons_heap, is_varobject_heap)
	(is_heap_containing_objects, is_unused_heap, map_heap)
	(for_each_cons_page, for_each_cons_page_reversed)
	(for_each_varobject_page, for_each_page, mem, RESERVE)
	(MINIMUM_SPACE, RESERVE_FOR_MALLOC, check_avl_consistency)
	(check_gc_consistency, check_gc_consistency_2)
	(check_pack_consistency): Move out.
	(memfile_handle, memfile_still_being_read): Move into the mem struct.
	(main): Call init_mem_heaptypes() and init_mem_heapnr_from_type().
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_singlemap.d: New file.
	* spvw.d (map_pagesize, initmap, prepare_zeromap, zeromap): Move out.
	(main): Call init_map_pagesize().
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_multimap.d: New file.
	* spvw.d (map_pagesize, MM_TYPECASES, combine, mm_types_count)
	(initmap, remember_mmap_interval, msync_mmap_intervals, fdmap)
	(zeromap, open_temp_fd, fdsave, close_temp_fd, open_shmid, idmap)
	(shmsave, close_shmid, open_mapid, map_mapid, close_mapid, multimap1)
	(done_mapid, exitmap, multimap): Move out.
	(main): Call init_map_pagesize() and use map_pagesize.
	(main): Don't close zero_fd, it might be needed in the case of
	  DYNAMIC_MODULES.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_mmap.d (mmap_zero_fd): Renamed from zero_fd.

1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_circ.d: New file.
	* spvw.d (mlbitmap, mlb_alloc, mlb_add, mlb_free, get_circ_global)
	(get_circ_mark, get_circ_unmark, get_circularities)
	(subst_circ_global, subst_circ_mark, subst_circ_unmark, subst_circ):
	  Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Remove support for immutable objects. It was limited to a small range
	of systems (those with good shared memory support), introduced a 16 MB
	limit on 32-bit machines, required specially compiled binaries, and
	added a lot of complexity to spvw.d, which is in the way now. Not
	worth it.
	* lispbibl.d: Remove IMMUTABLE support.
	(coerce_imm_ss): Remove declaration.
	* genclisph.d (main): Remove IMMUTABLE support.
	* spvw.d: Remove IMMUTABLE support.
	* hashtabl.d: Likewise.
	* io.d: Likewise.
	* list.d: Likewise.
	* stream.d: Remove strmflags_immut_bit_B.
	* package.d: Use coerce_ss instead of coerce_imm_ss.
	* constpack.d: Likewise.

1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* Makefile.devel, configure: Incorporate the sigsegv package.
	* lispbibl.d: Include sigsegv.h.
	  Rename CAN_HANDLE_WP_FAULT to HAVE_SIGSEGV_RECOVERY.
	  Use HAVE_STACK_OVERFLOW_RECOVERY.
	* spvw.d (install_segv_handler, catch_exception_raise)
	(exception_thread_main, sigsegv_handler, install_sigsegv_handler)
	(stack_overflow_handler): Remove all low-level, platform-dependent
	  stuff. Use the sigsegv package instead.
	(main): Call stackoverflow_install_handler.
	* unix.d: Remove CAN_HANDLE_WP_FAULT database, now part of the sigsegv
	  package.
	* win32.d: Likewise.
	* makemake.in: (USE_SIGSEGV, XCL_SIGSEGVLIB): New variables.

1998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* aclocal.m4 (CL_MPROTECT, CL_CODEEXEC): Require CL_MALLOC.

1998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_alloca.d: New file.
	* spvw.d (malloca_header, malloca_list, malloca, freea): Move out.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (cpu_is_68000, CPU_IS_68000, default_allocmemflag)
	(retry_allocmemflag, MemBlockHeader, allocmemblocks, allocmem)
	(freemem, stdin_handle, stdout_handle, orig_dir_lock, init_amiga)
	(exit_amiga): Move out.
	* amigaaux.d (cpu_is_68000, CPU_IS_68000, default_allocmemflag)
	(retry_allocmemflag, MemBlockHeader, allocmemblocks, allocmem)
	(freemem, stdin_handle, stdout_handle, orig_dir_lock, init_amiga)
	(exit_amiga): Move to here.
	(malloc, free): New functions.
	* amiga.d (default_allocmemflag, retry_allocmemflag, allocmem, freemem)
	(malloc, free): Declare.

1998-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (abort): Move to amigaaux.d.
	* amigaaux.d (abort): Moved here.
	* amiga.d (abort): Adjust comment.

1998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Add a comment about CFLAGS.

1998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Don't use CPU registers when compiling for MULTITHREAD,
	  for the moment.
	(SP_register, ASM_get_SP_register): Define.
	(SP): Use it.
	(thread): New structure.
	(thread_size, thread_objects_offset, thread_objects_anz, roughly_SP)
	(sp_to_thread): New macros.
	(current_thread): New function.
	(callback_saved_registers, STACK, saved_mv_count, saved_value1)
	(saved_subr_self, saved_STACK, SP_bound, STACK_bound, mv_count)
	(mv_space, value1, temp_mv_count, temp_value1, subr_self, aktenv)
	(unwind_protect_to_save, handler_args, inactive_handlers): Support
	  for MULTITHREAD.
	* eval.d (STACK, saved_STACK, mv_count, temp_mv_count, saved_mv_count)
	(temp_value1, saved_value1, subr_self, saved_subr_self): Move out to
	  spvw.d.
	(unwind_protect_to_save, handler_args, stack_range)
	(inactive_handlers): Move out to lispbibl.d and spvw.d.
	* spvw.d (STACK, saved_STACK, mv_count, temp_mv_count, saved_mv_count)
	(temp_value1, saved_value1, subr_self, saved_subr_self)
	(callback_saved_registers, SP_bound, STACK_bound, aktenv)
	(unwind_protect_to_save, handler_args, inactive_handlers): Define
	  all together here.
	(allthreads_lock, MAXNTHREADS, nthreads, allthreads, num_symvalues)
	(maxnum_symvalues): New definitions.
	(init_multithread, create_thread, delete_thread)
	(make_symvalue_perthread): New functions.
	(for_all_threadobjs, for_all_STACKs): Reimplement.
	(main): Call init_multithread and create_thread.

1998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_mmap.d: New file.
	* spvw.d (getpagesize, initmap, prepare_zeromap, zeromap, filemap)
	(munmap, mprotect): Move out.
	(main): Call mmap_init_pagesize() and use mmap_pagesize.
	* makemake.in (SPVW_INCLUDES): Adjust.

1998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_debug.d: New file.
	* spvw.d (asciz_out, hex_out_, dez_out_, asciz_out_s, asciz_out_ss)
	(asciz_out_aux_hex, asciz_out_aux_dez, asciz_out_1_, asciz_out_2_)
	(asciz_out_3_, mem_hex_out, object_out): Move out.
	* makemake.in: (SPVW_INCLUDES): Adjust.

1998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw_module.d: New file.
	* spvw.d (main_module, last_module, init_modules_0, add_module)
	(for_modules, all_modules, all_other_modules): Move out.
	* makemake.in (SPVW_MODULES): New variable. Adjust.

1998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (OS_error): Move declaration.
	(xthread.c): Move #include.

1998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Make the *print-circle* subroutines multithread-safe.
	* spvw.d (mlb[0-6], mlbs[0-5], mlb_levels): New macros.
	(mlbitmap): New struct type.
	(mlb_alloc, mlb_expand, mlb_add, mlb_free): New functions.
	(get_circularities, get_circ_mark): New implementations for
	  MULTITHREAD.
	(subst_circ, subst_circ_mark): New implementations for MULTITHREAD.

1998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* xthread.d: New file.
	* lispbibl.d: Include it if defined(MULTITHREAD).
	(_REENTRANT): Define if defined(MULTITHREAD).
	* makemake.in (OS_includes): Add xthread.
	* FILES.1: Update.
	* gettext/po/Makefile.devel (DSOURCES): Likewise.

1998-06-21  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>

	* impnotes.html: Fix a couple of syntax errors.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* screen.lsp (generic-stream-listen): Adapt return value.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defs1.lsp (load-logical-pathname-translations): Signal an error if
	  no translations were found.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* defs3.lsp (COMMON-LISP:IN-PACKAGE): New macro.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (OS_file_error, OS_filestream_error): New declarations.
	* errunix.d (OS_error_internal): New function, extracted from OS_error.
	(OS_error): Call it.
	(OS_file_error): New function.
	* erramiga.d (OS_error_internal): New function, extracted from OS_error.
	(OS_error): Call it.
	(OS_file_error): New function.
	* errwin32.d (OS_error_internal): New function, extracted from OS_error.
	(OS_error): Call it. Start with an optional end_system_call().
	(OS_file_error): New function.
	* errdjgpp.d (OS_error_internal): New function, extracted from OS_error.
	(OS_error): Call it.
	(OS_file_error): New function.
	* error.d (OS_filestream_error): New function.
	* spvw.d (savemem): Add missing end_system_call(). Call OS_file_error
	  instead of OS_error.
	* pathname.d (default_directory_of): Add pathname argument. Call
	  OS_file_error instead of OS_error.
	(use_default_dir): Change accordingly.
	(assure_dir_exists for DOS/OS2/Win32): Call OS_file_error instead of
	  OS_error.
	(directory_truename for AMIGAOS): Move end_system_call().
	(default_directory for AMIGAOS): Add missing end_system_call().
	(assure_dir_exists for AMIGAOS): Call OS_file_error instead of
	  OS_error.
	(assure_dir_exists for UNIX): Likewise.
	(canonicalise_dirname for RISCOS): Likewise.
	(assure_dir_exists_ for RISCOS): Likewise.
	(change_default for DOS/OS2/Win32): Likewise.
	(change_default for AMIGAOS): Likewise.
	(change_default for UNIX): Likewise.
	(change_default for RISCOS): Likewise.
	(file_exists): Force pathname to be in STACK_0.
	(access0 for Win32): Call OS_file_error instead of OS_error.
	(directory_exists): Likewise.
	(DELETE-FILE): Likewise.
	(rename_file): Adapt to changed file_exists(). Call OS_file_error
	  instead of OS_error.
	(open_file): Call OS_file_error instead of OS_error.
	(subdirs, directory_search): Likewise.
	(shorter_directory): Leave the pathname on the STACK.
	(make_directory): Force pathname to be in STACK_0. Call
	  OS_file_error instead of OS_error.
	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Change accordingly.
	  Call OS_file_error instead of OS_error.
	(FILE-WRITE-DATE): Call OS_filestream_error and OS_file_error instead
	  of OS_error.
	(FILE-AUTHOR): Call OS_file_error instead of OS_error.
	* stream.d (file_lseek): Call OS_filestream_error instead of OS_error.
	(b_file_finish_flush, b_file_nextbyte): Likewise.
	(finish_output_file, close_file): Likewise.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* package.d (unintern): Signal a continuable error of type
	  PACKAGE-ERROR instead of ERROR.
	(import, export, use_package, correct_packname): Likewise.
	(DELETE-PACKAGE): Likewise.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* error.d (SYS::CERROR-OF-TYPE): New function.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (coerce-to-condition): Don't signal an error if
	  there are arguments and the caller is CERROR.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (retry-loop): New argument expected-type. Signal an
	  error of type TYPE-ERROR.
	(ctypecase, ccase): Call case-expected-type.

1998-06-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* user2.lsp (describe): Don't mention STRUCTURE-OBJECT as type of
	  all structure objects.

1998-06-06  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* control.d (make_variable_frame): For LET, LET*, MULTIPLE-VALUE-BIND,
	  check that the variable is not a constant. For SYMBOL-MACROLET,
	  check that the variable is not proclaimed special.
	* init.lsp (%expand-form): For SYMBOL-MACROLET, check that the
	  variable is not proclaimed special and is not declared special
	  in the same binding.
	* compiler.lsp (c-SYMBOL-MACROLET): Likewise.

1998-06-04  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (Stream): New field strm_pk_ch.
	* stream.d (pk_ch_Pseudofun): New type.
	(pk_ch): New macro.
	(pk_ch_dummy): New function.
	(peek_char): Call the stream's pk_ch function.
	(close_dummys, make_handle_stream, make_keyboard_stream)
	(make_terminal_stream_, SCREEN:MAKE-WINDOW, make_file_stream)
	(make_synonym_stream, make_broadcast_stream, make_concatenated_stream)
	(make_twoway_stream, make_echo_stream, MAKE-STRING-INPUT-STREAM)
	(make_string_output_stream, SYS::MAKE-STRING-PUSH-STREAM)
	(make_pphelp_stream, MAKE-BUFFERED-INPUT-STREAM)
	(MAKE-BUFFERED-OUTPUT-STREAM, make_printer_stream)
	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
	(SYS::MAKE-SOCKET-STREAM, make_socket_stream, MAKE-GENERIC-STREAM):
	  Set the strm_pk_ch field.
	(pk_ch_synonym, pk_ch_concat, pk_ch_twoway, pk_ch_generic): New
	  functions.
	* pseudofun.d: Update.
	* gstream.lsp: Export GENERIC-STREAM-PEEK-CHAR.
	(generic-stream-peek-char): New generic function.

1998-06-03  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clos.lsp (slot-unbound): Signal SLOT-UNBOUND instead of ERROR.

1998-06-02  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* format.lsp (FORMAT-CALL-USER-FUNCTION): Renamed from FORMAT-SLASH.
	(format-parse-cs): Integrate format-get-symbol. Tweak error
	  messages. Use *common-lisp-user-package*. Don't push a symbol
	  directly on csd-parm-list.

1998-06-02  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (c-EVAL-WHEN): Treat (NOT :COMPILE-TOPLEVEL),
	  consistently with control.d.

1998-06-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* configure: Always pass --with-included-gettext to gettext/configure.
	 (Because some users have libintl.a installed and some don't,
	  therefore the fact that libintl.a is present must be ignored.)

1998-05-31  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (unbound-slot): New condition type. Export it.
	(unbound-slot-instance): New function. Export it.
	(simple-unbound-slot, simple-parse-error): New condition types.
	(%defclcs): Pass them.
	* init.lsp (unbound-slot): Export it.
	* defs3.lsp (unbound-slot, unbound-slot-instance): Export them.
	* lispbibl.d (conditiontype): Add unbound_slot and parse_error.
	* genclisph.d: Likewise.
	* constsym.d: Add them here too.
	* error.d (end_error): Treat unbound_slot.
	* array.d (ARRAY-DIMENSION): For out-of-range argument, signal
	  TYPE-ERROR instead of ERROR.
	(get_fill_pointer): For array without fill-pointer signal TYPE-ERROR
	  instead of ERROR.
	(ADJUST-ARRAY): Likewise.
	(SYS::VECTOR-INIT-START): For out-of-range argument, signal
	  TYPE-ERROR instead of ERROR.
	(SYS::VECTOR-FE-INIT-END): Likewise.
	* list.d (SYS::LIST-INIT-START): For out-of-range argument, signal
	  TYPE-ERROR instead of ERROR.
	(SYS::LIST-FE-INIT-END): Likewise.
	* sequence.d (valid_type): For an invalid sequence type, signal
	  TYPE-ERROR instead of ERROR.
	* defs2.lsp (recognizable-sequence-type-p): New function.
	* record.d (fehler_index): Add argument `limit'. For an invalid
	  index, signal TYPE-ERROR instead of ERROR.
	(test_index): Remove function.
	(record_up): Merge both checks of index into a single one.
	(structure_up): Likewise.
	(SYS::%STRUCTURE-REF): For an unbound slot, signal UNBOUND-SLOT
	  instead of error, and mention the slot's name in the error message.
	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): For an invalid
	  argument, signal TYPE-ERROR instead of ERROR.
	(keyword_test): For an invalid keyword, signal KEYWORD-ERROR
	  instead of ERROR.
	(CLOS::%SHARED-INITIALIZE): For an invalid arg count, signal
	  PROGRAM-ERROR instead of ERROR.
	(CLOS::%REINITIALIZE-INSTANCE): Likewise.
	(CLOS::%INITIALIZE-INSTANCE): Likewise.
	(CLOS::%MAKE-INSTANCE): Likewise.
	* eval.d (progv): For a constant, signal PROGRAM-ERROR instead of
	  ERROR.
	(get_closure): For a constant used as variable, signal PROGRAM-ERROR
	  instead of ERROR.
	(coerce_function): Allow all function names, not only symbols.
	(fehler_key_badkw): Fix GC safety bug in previous patch.
	(eval1): For an invalid operator, signal SOURCE-PROGRAM-ERROR
	  instead of ERROR. Tweak error message.
	(apply): Correct treatment of (SETF symbol) bound to an FFI
	  function. For an invalid function, signal TYPE-ERROR instead of
	  ERROR. Tweak error message.
	(fehler_apply_dotted): Signal PROGRAM-ERROR instead of ERROR.
	(funcall): Correct treatment of (SETF symbol) bound to an FFI
	  function. For an invalid function, signal TYPE-ERROR instead of
	  ERROR. Tweak error message.
	(interpret_bytecode_.svref_kein_index): Signal TYPE-ERROR instead
	  of ERROR.
	* control.d (FUNCTION): Tweak error message.
	(COMPILER-LET): For a constant, signal PROGRAM-ERROR instead of
	  ERROR.
	(SYSTEM::KEYWORD-TEST): For an invalid arg count, signal
	  PROGRAM-ERROR instead of ERROR. For an invalid keyword, signal
	  KEYWORD-ERROR instead of ERROR.
	* symbol.d (Symbol_function_checked): For a macro, signal
	  UNDEFINED-FUNCTION instead of ERROR.
	(SYS::%PUTD): For an invalid argument, signal TYPE-ERROR instead
	  of ERROR.
	* stream.d (fehler_bad_integer): Signal STREAM-ERROR instead of ERROR.
	(wr_ch_terminal1): Likewise.
	(fehler_str_in_adjusted): Likewise.
	(SYSTEM::MAKE-STRING-PUSH-STREAM): For invalid argument, signal
	  TYPE-ERROR instead of ERROR.
	(rd_ch_buff_in): Signal STREAM-ERROR instead of ERROR.
	(check_open_file_stream): Follow synonym streams, and return the
	  resulting stream. Signal TYPE-ERROR instead of ERROR.
	(FILE-POSITION, FILE-LENGTH): Adjust appropriately.
	* pathname.d (test_optional_host): Signal PARSE-ERROR instead of
	  ERROR.
	(fehler_thing): Signal TYPE-ERROR instead of ERROR.
	(PARSE-NAMESTRING): Signal PARSE-ERROR instead of ERROR.
	* intelem.d (BN_ueberlauf): Signal ARITHMETIC-ERROR instead of ERROR.
	* intlog.d (ASH): Likewise.
	* intmal.d (mal_ueberlauf): Likewise.
	* intdiv.d (fehler_exquo): Likewise.
	* lfloat.d (fehler_LF_toolong): Likewise.

1998-05-31  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* acspecific.m4 (AC_PROG_CXX): Don't add "-O" to $CXX if it is
	  already present.

1998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (INTERACTIVE-STREAM-P): Check for stream first.

1998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* amiga.d: Assume <stdlib.h> is available.
	* fsubr.d (LISPSPECFORM_B): Assume ANSI C prototypes, remove support
	  for old C compilers.
	* subr.d (subr_norest_function_args, subr_rest_function_args):
	  Likewise.
	* genclisph.d (Lsuffix, ULsuffix, ULLsuffix, main): Likewise.
	* stream.d (redisplay_help, redisplay_line): Likewise.
	* unix.d (ioctl): Likewise.

1998-05-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* error.d (fehler_proper_list): New function.
	* lispbibl.d (fehler_proper_list): Declare it.
	* list.d (endp): Call it.
	* lispbibl.d (list_to_mv): Check for proper list.

1998-05-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (fehler_input_stream, fehler_output_stream): New functions.
	(test_input_stream, test_output_stream, test_input_stream_args)
	(test_output_stream_args): New macros.
	(MAKE-BROADCAST-STREAM, MAKE-CONCATENATED-STREAM)
	(MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM): Use them.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* array.d (fehler_subscript_range): Signal TYPE-ERROR instead of
	  ERROR. Two more arguments.
	(fehler_index_range): Signal TYPE-ERROR instead of ERROR. One more
	  argument.
	(test_subscripts, test_index, ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE)
	(SYS::SET-FILL-POINTER): Update.
	* list.d (elt_up): Signal TYPE-ERROR instead of ERROR.
	* charstrg.d (fehler_cmp_exclusive, fehler_cmd_exclusive): Signal
	  TYPE-ERROR instead of ERROR. One more argument.
	(test_index): Update.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* eval.d (fehler_specialform, fehler_macro): Signal UNDEFINED-FUNCTION
	  instead of ERROR.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* error.d (fehler_lambda_expression): New function.
	* lispbibl.d (fehler_lambda_expression): Declare it.
	* eval.d (coerce_function): Accept symbols, but reject lambda
	  expressions.
	(apply, funcall): Reject lambda expressions.
	* symbol.d (SYS::%PUTD): Likewise.
	* sequence.d (seq_boolop): Check that predicate is a function
	  designator, and signal an error if not.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* eval.d (fehler_specialform, fehler_undefined): New functions.
	(eval1, apply, funcall, interpret_bytecode_:csf_unbound): Call them.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* eval.d (make_STACK_env): Move macro from here...
	* lispbibl.d (make_STACK_env): ... to here.
	* predtype.d (COERCE): When creating a function, give it the right
	  declaration environment, not NIL.

1998-01-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* list.d (endp): Signal TYPE-ERROR instead of ERROR.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defs3.lsp: Don't export COMMONP and COMPILER-LET.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defs1.lsp (char-int-limit): New constant.
	* defs2.lsp (designator): New type. Export it.
	* charstrg.d (CHARACTER): Signal a TYPE-ERROR instead of ERROR.
	* predtype.d (COERCE): Likewise.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* sequence.d (valid_type): Return the desired length on the stack.
	(fehler_seqtype_length): New function.
	(MAKE-SEQUENCE, coerce_sequence, CONCATENATE, MAP, MERGE): Update.
	  Compare desired and actual length.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defs2.lsp (stream-input-element-type, stream-output-element-type)
	(read-sequence, write-sequence): New functions.
	  Export read-sequence, write-sequence.
	* defs3.lsp: Export read-sequence, write-sequence.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (var): New slot `assignedp'.
	(*declaration-types*): New declaration `sys::read-only'.
	(process-declarations): Treat the `sys::read-only' declaration.
	  Return one more value.
	(*readonlys*): New variable.
	(ignore-check): Check whether `sys::read-only' declarations are
	  satisfied.
	(c-LAMBDABODY, c-LET/LET*, c-LOCALLY, c-MULTIPLE-VALUE-BIND)
	(c-SYMBOL-MACROLET, c-FUNCALL-INLINE): Bind *readonlys*.
	* macros2.lsp (with-input-from-string, with-open-file)
	(with-open-stream, with-output-to-string): Add READ-ONLY declaration.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (parse-error, reader-error): New classes.
	  Export PARSE-ERROR and READER-ERROR.
	* init.lsp: Export PARSE-ERROR and READER-ERROR.
	* defs3.lsp: Likewise.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* record.d (SLOT-VALUE): Return only the first return value of
	  SLOT-UNBOUND.
	(SYS::SET-SLOT-VALUE): Ignore the return values of SLOT-MISSING.
	(SLOT-BOUNDP, SLOT-MAKUNBOUND): Return only the first return value
	  of SLOT-MISSING.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lfloat.d (LF_decode): Declare a subexpression as possibly unused.

1998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>

	* affi.d (C_mem_write): accept Foreign-Pointer as address.
	* rexx.d (C_rexx_put): fixed ~S/~ typo.
	* pathname.d (AmigaOS C_shell): use NLstring instead of CRLFstring.

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

	* init.lsp: Export *PRINT-RIGHT-MARGIN*.
	* defs3.lsp: Likewise.

1998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>

	* rexx.d (C_rexx_put): :host argument stack arithmetic was
	  broken, renamed variables to hopefully avoid confusion.

1998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>

	* spvw.d (mymalloc): retry case not needed with !TYPECODES.

1998-08-05  Jörg Höhle  <hoehle@tzd.telekom.de>

	* pathname.d, amiga.d (C_shell): return command exit code,
	  better signal handling under AmigaOS using SystemTags().

1998-08-12  Bruno Haible  <haible@ilog.fr>

	* lispbibl.d (NO_TYPECODES): Don't define if alignment_long < 4.

1998-08-09  Bruno Haible  <haible@ilog.fr>

	* spvw.d (copyright_notice): Bump date to 1998.

1998-08-09  Jörg Höhle  <hoehle@zeus.gmd.de>
	    Bruno Haible  <haible@ilog.fr>

	* lispbibl.d (S_help_): Change definition in the case of NO_TYPECODES
	  so that it can be used as an initializer for a static variable in
	  gcc-2.5.8.
	* genclisph.d (main): Likewise.

1998-08-08  Jörg Höhle  <hoehle@tzd.telekom.de>

	* lispbibl.d (define) TYPECODES is default for MC68000.
	* spvw.d (version_string) added !TYPECODES recognition.
	(retry_allocmemflag) not needed with !TYPECODES.

1998-08-05  Jörg Höhle  <hoehle@zeus.gmd.de>

	* lispbibl.d (SIXBIT_TYPECODES): Fix a collision between
	  case_symbolwithflags and other typecodes, introduced by the
	  NO_TYPECODES patches.
	* spvw.d (speicher_laenge): Remove overlapping case values.

1998-08-05  Bruno Haible  <haible@ilog.fr>

	* spvw.d (main): Leave more room between the executable and the heap,
	  for malloc(), if SUN4_29.

1998-08-05  Bruno Haible  <haible@ilog.fr>

	* debug.d (SYS::%ROOM): Don't assume that the byte counts fit into
	  fixnums.

1998-08-05  Jörg Höhle  <hoehle@zeus.gmd.de>

	* affi.d (affi_nonzerop): Fix typo: BN_positivep.

1998-08-03  Bruno Haible  <haible@ilog.fr>

	* aclocal.m4 (CL_DYNLOAD): Check for const in dlsym declaration.
	* unixconf.h: Define DLSYM_CONST.
	* unix.d (dlsym): Use DLSYM_CONST.

1998-08-03  Bruno Haible  <haible@ilog.fr>

	* makemake.in (NOASM): Don't define on Solaris/x86.
	(ASM_FILTER): Fix so it works on Solaris/x86.

1998-08-01  Bruno Haible  <haible@ilog.fr>

	* lispbibl.d (C_CODE_ALIGNMENT): Define to 2 for HPPA.
	(make_machine_code, TheMachineCode): Special case for HPPA.
	* lispbibl.d (varobject_type): Workaround gcc-2.8.1 bug.

1998-08-01  Bruno Haible  <haible@ilog.fr>

	* aclocal.m4 (CL_RUSAGE): Prefer RUSAGE_WHO_T="int" to
	  RUSAGE_WHO_T="enum __rusage_who".

1998-08-01  Bruno Haible  <haible@ilog.fr>

	* makemake.in (DEEMA): Add _EMA_ in more places.

1998-08-01  Bruno Haible  <haible@ilog.fr>

	* lispbibl.d: Accept __unix__ as an alternative for __unix.

1998-08-01  Bruno Haible  <haible@ilog.fr>

	* clx/mit-clx/package.lsp: Shadow BOOLEAN and don't export it.

1998-07-31  Bruno Haible  <haible@ilog.fr>

	* control.d (make_variable_frame): Don't call Car(NIL).

1998-07-16  Sam Steingold  <sds@goems.com>

	* spvw.d, constsym.d: new symbol print_right_margin
	(ANSI CL's *print-right-margin*).
	* io.d (right_margin): New function.
	(klammer_zu, justify_end_eng, justify_end_weit): Use it.
	(pr_level): Turn into a macro.
	(write, write_to_string): added :right-margin.
	* subr.d (write, write_to_string): added :right-margin.
	* subrkw.d (write, write_to_string): added :right-margin.
	* constobj.d (version): bumped to 19980715.
	* compiler.lsp (subr-info): added :right-margin to write and
	  write_to_string;
	(c-eval-when-compile, compile-toplevel-form, finalize-coutput-file):
	  added `:right-margin 79' to the `write' calls.

1998-07-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* eval.d (get_closure): Don't call augment_decl_env with argument NIL.

1998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (posfixnum_to_L, fixnum_to_L): Add a cast to avoid
	  compilation warnings.
	* aridecl.d (FN_value_mask): Likewise.
	* sfloat.d (SF_futruncate_SF): Likewise.
	* genclisph.d (main): Adjust.

1998-06-29  Sam Steingold  <sds@usa.net>

	* compiler.lsp (compile-file): in ANSI CL, compile-file is
	  required to return 3 values.

1998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	Since keywordp is not called in funcall/apply/interpret_bytecode any
	more, it doesn't need to occupy a bit in the symbol flags.
	* lispbibl.d (keyword_bit_t, keyword_bit_f, keyword_bit_hf): Remove.
	(keywordp): Rewrite.
	* spvw.d (case_symbolwithflags): Remove cases with keyword_bit.
	* package.d (make_present): Don't set keyword_bit.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d: Define NO_TYPECODES by default for 32-bit machines.
	* configure: Don't pass option --with-wide to makemake.
	* makemake.in: Drop support for --with-wide.
	* clisp-link.in: Likewise.
	* _distmakefile: Likewise.
	* regexp/link.sh, regexp/Makefile.in: Likewise.
	* wildcard/link.sh, wildcard/Makefile.in: Likewise.
	* queens/link.sh, queens/Makefile: Likewise.
	* linuxlibc5/link.sh, linuxlibc5/Makefile: Likewise.
	* linuxlibc6/link.sh, linuxlibc6/Makefile: Likewise.
	* clx/mit-clx/link.sh, clx/mit-clx/Makefile.clisp: Likewise.
	* clx/new-clx/link.sh, clx/new-clx/Makefile: Likewise.
	* _clisp.c: Ignore option -W.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* stream.d (finish_output_file): Fix typo.
	* makemake.in: For Win32, replace
	  "-I../ffcall/avcall -I../ffcall/callback" with "-I../callback".
	  For Unix, remove "-Iavcall -Icallback".
	* win32msvc/INSTALL: Simplify instructions.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	In the NO_TYPECODES model, add support for machine where the alignment
	of C functions is less than 4.
	* lispbibl.d (C_CODE_ALIGNMENT, log2_C_CODE_ALIGNMENT): New macros.
	(NO_TYPECODES): Remove CPU constraint.
	(make_machine_code): New macro.
	(TheMachineCode): New macro.
	(ThePseudofun): Use it.
	* spvw.d (verify_code_alignment): New macro.
	(fehler_code_alignment): New function.
	(init_symbol_functions): Call verify_code_alignment.
	* list.d (sublis_assoc): Use TheMachineCode instead of TheMachine.
	(SUBLIS, NSUBLIS): Use make_machine_code instead of make_machine.
	* stream.d (P): Likewise.

1998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* lispbibl.d (Fsubr): Move the C code address from the recdata[] part
	  to the non-Lisp-object part.
	(fsubr_length): Reduce by 1.
	(fsubr_xlength): Define.
	(allocate_fsubr): Update accordingly.
	* misc.d (SYS::CODE-ADDRESS-OF): Drop TheMachine on fsubr->function.
	* eval.d (eval_fsubr): Likewise.
	* spvw.d (do_aktualisiere_record): If aktualisiere_fsubr_function is
	  TRUE and the object is an Fsubr, call the aktualisiere_fs_function
	  macro.
	(gar_col_normal): No need for aktualisiere_fsubr_function here.
	(gar_col_compact): Likewise.
	(move_conses): Likewise.
	(init_symbol_functions): Drop make_machine for fsubr->function.
	(memdump_reloc_header): Add support for relocation Fsubr code
	  addresses.
	(savemem): Likewise.
	(loadmem_aktualisiere): Don't look in old_fsubr_tab when updating
	  a machine pointer.
	(loadmem_aktualisiere_fsubr): New function.
	(loadmem_from_handle): During aktualisiere_varobjects or during
	  fast relocation phase, call loadmem_aktualisiere_fsubr.

1998-06-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

	* spvw.d (make_ratio): Compute positivep(num) before doing the
	  memory allocation.
	* comptran.d (R_R_atanh_R_R): Do not call R_minusp on a non-GC-safe
	  object.
	* flo_rest.d (F_integer_decode_float_I_I_I): Likewise.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (pr_orecord): Reindent.
	* constobj.d (fpcontagion_warn_string): Translate.
	* macros1.lsp (do/do*-expand): Likewise.
	* macros2.lsp (parenthesize-keys et al.): Likewise.
	* conditio.lsp (parenthesize-keys et al.): Likewise.

1998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* arilev1c.d (eqv_loop_up, nand_loop_up): Fix typo in declaration.

1998-06-20  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>

	* io.d (SYS::REAL-LISTEN): New function.

1998-06-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d: Remove the last vestiges of STDWIN.
	* configure: Likewise.
	* clx/new-clx/clx.f, clx/new-clx/e2d.c: Likewise.

1998-06-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (pr_enter_1, pr_enter_2, pr_enter): New functions, generalizing
	  prin1a, prin1b, prin1.
	(pr_external_1, pr_external_2): Moved.
	(pr_instance): Moved.
	(pr_structure_default): New function.
	(SYS::PRINT-STRUCTURE): Call it through pr_enter.
	(prin1a, prin1b): Remove functions.
	(prin1): Use pr_enter.

1998-07-08  Sam Steingold  <sds@goems.com>

	* array.d: fixed the grammar of some English messages.

1998-05-31  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>

	* macros2.lsp (with-output-to-string): The STRING parameter
	  now accept NIL as value (with the same meaning as if it were
	  unsupplied). {Old|New} behavior {was CLtL1|is ANSI} compliant.

1998-05-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d: Rename immediate_type_p to gcinvariant_type_p.
	* spvw.d: Update.

1998-05-24  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>

	* macros1.lsp (do/do*-expand): Barf on bad syntax.

1998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* dbxtypes.d: Remove file.
	* makemake.in: Update.
	* gettext/po/Makefile.devel (DSOURCES): Update.

1998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* windows.d, wintext.d, winstat.d, winmain.d, winaux.d: Remove files.
	* lispbibl.d, genclisph.d, msdos.d, makemake.in, spvw.d, pathname.d,
	  stream.d, pseudofun.d, time.d: Remove support for Windows 3.1.

1998-05-20  Sam Steingold  <sds@usa.net>

	* io.d (pr_orecord): print PATHNAME with #P syntax, as
	  per ANSI CL <PRINT-READABLY-BEHAVIOR:CLARIFY>;

1998-05-19  Sam Steingold  <sds@usa.net>

	Implement the new :execute, :load-toplevel and :compile-toplevel
	keywords for eval-when as synonyms for eval, load and compile
	respectively.  The semantics is old.
	* constsym.d: add :execute, :load-toplevel and :compile-toplevel
	  keywords.
	* control.d (eval_when): handle :execute and :compile-toplevel.
	* init.lsp (%expand-form, (%put '%expand 'EVAL-WHEN)): handle
	  :compile-toplevel.
	* compiler.lsp (c-EVAL-WHEN): handle the three new keywords as
	  synonyms to the old symbols.

1998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* control.d (SPECIAL-OPERATOR-P): Renamed from SPECIAL-FORM-P.
	* eval.d (FUNTAB): Update.
	* compiler.lsp (funtab, subr-info): Update.
	(c-form-table, c-form, c-DIRECT-FUNCTION-CALL)
	(inline-callable-function-p, c-APPLY): Use SPECIAL-OPERATOR-P.
	(note-function-used): Generate a warning for SPECIAL-FORM-P.
	* init.lsp: Export both SPECIAL-OPERATOR-P and SPECIAL-FORM-P.
	(remove-old-definitions, %expand-form, defun): Use
	  SPECIAL-OPERATOR-P.
	* defs1.lsp (special-form-p): Define as an alias for
	  special-operator-p.
	* user2.lsp (fbound-string, describe): Use SPECIAL-OPERATOR-P.
	* trace.lsp (trace1): Use SPECIAL-OPERATOR-P.
	* defs3.lsp: Export SPECIAL-OPERATOR-P only.

1998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* genclisph.d (main): Define sintB.

1998-05-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clx/new-clx/clx.f: Update to use the new macro names.

	* realtran.d (R_cos_sin_R_R): Shift a fixnum by oint_data_shift, not
	  oint_addr_shift.

	New type encoding scheme NO_TYPECODES.
	* lispbibl.d (TYPECODES): Define if NO_TYPECODES is not defined.
	(oint_type_*, oint_addr_*, oint_data_*): Provide alternative
	  definitions for no TYPECODES.
	(machine_bias, subr_bias, varobject_bias, cons_bias, immediate_bias)
	(nonimmediate_bias_mask, read_label_type, immediate_object_p)
	(gcinvariant_object_p): New macros.
	(fixnum_type, sfloat_type, char_type, system_type, sign_bit_o)
	(bignum_bit_o, type_data_object, type_zero_oint, garcol_bit_o):
	  Provide alternative definitions.
	(varobject_alignment): Must be at least 4 if no TYPECODES.
	(active_bit, dynam_bit, svar_bit, NO_symbolflags): Define if no
	  TYPECODES.
	(constant_bit_f, special_bit_f, keyword_bit_f): New macros.
	(SPVW_MIXED): Define if no TYPECODES.
	(case_mut_*): New macros.
	(_case_structure, _case_stream): Provide alternative definitions.
	(intWCsize, uintWC, sintWC): Provide alternative definitions.
	(VAROBJECT_HEADER, header_flags, constant_bit_hf, special_bit_hf)
	(keyword_bit_hf): Provide alternative definitions.
	(varobject_type, lrecord_tfl, srecord_tfl, xrecord_tfl): New macros.
	(record_, record_type, record_flags, record_flags_*): Provide
	  alternative definitions.
	(LRECORD_HEADER, lrecord_, Lrecord, lrecord_length): New definitions.
	(SRECORD_HEADER, srecord_length, XRECORD_HEADER, xrecord_length)
	(xrecord_xlength): Provide alternative definitions.
	(Rectype_Sbvector, Rectype_Sstring, Rectype_Svector, Rectype_mdarray)
	(Rectype_bvector, Rectype_string, Rectype_vector, Rectype_Bignum)
	(Rectype_Lfloat, Rectype_Dfloat, Rectype_Ffloat, Rectype_Symbol): New
	  enum values.
	(char_int, bignum_, bignum_length, lfloat_, lfloat_length): Provide
	  alternative definitions.
	(sarray_, sbvector_, sstring_, svector_): Use LRECORD_HEADER.
	(sarray_length): Use lrecord_length.
	(iarray_, iarray_rank, iarray_flags, iarray_flags_*, Array_type)
	(Array_type_*): Provide alternative definitions.
	(Codevec): Use LRECORD_HEADER.
	(make_read_label, read_label_integer_p, make_machine, The*): Provide
	  alternative definitions.
	(consp, mconsp, atomp, matomp): Provide alternative definitions.
	(varobjectp, immediate_number_p): New macros.
	(symbolp, numberp, vectorp, simplep, array_simplep, simple_vector_p)
	(general_vector_p, simple_string_p, stringp, simple_bit_vector_p)
	(bit_vector_p, byte_vector_p, general_byte_vector_p, arrayp)
	(mdarrayp, if_recordp, closurep, instancep, orecordp, charp, subrp)
	(framepointerp): Provide alternative definitions.
	(machinep, read_label_p, systemp): New macros.
	(if_realp, if_rationalp, integerp, fixnump, posfixnump, bignump):
	  Provide alternative definitions.
	(posbignump): New macro.
	(ratiop, floatp, short_float_p, single_float_p, double_float_p)
	(long_float_p, complexp, positivep): Provide alternative definitions.
	(case_Rectype_*_above): New macros.
	(R_sign): Provide alternative definition.
	(FN_sign, BN_sign, RT_sign, SF_sign, FF_sign, DF_sign, LF_sign): New
	  macros.
	(same_sign_p, N_floatp, N_integerp, R_rationalp, R_floatp, R_minusp)
	(RA_integerp, RA_ratiop, I_bignump, I_fixnump): Provide alternative
	  definitions.
	(FN_positivep, BN_positivep, I_I_bignums_p): New macros.
	(sint8_p, sint16_p, uint32_p, sint32_p, uint64_p, sint64_p): Use
	  the new macros.
	(allocate_srecord, allocate_xrecord, subr_tab_ptr_as_object)
	(S_help_): Provide alternative definitions.
	(FB7..FB1, make_framepointer, topofframe, uTheFramepointer)
	(framecode, fcint): Provide alternative definitions.
	(framebottomword): Add third argument.
	(framebottomword, finish_frame): Provide alternative definitions.
	(SAVE_REGISTERS, dynamic_bind): Use finish_frame.
	(finish_entry_frame): Update.
	* genclisph.d: Update.
	(SP): Move the asm string outside of the printf string.
	* spvw.d (symbol_tab_ptr_as_object): Provide alternative definition.
	(mem): heapnr_from_type only if TYPECODES.
	(size_ffloat, size_dfloat): Provide alternative definitions.
	(speicher_laenge): Provide alternative type dispatch.
	(varobject_bytelength): Use TheVarobject instead of pointable.
	(in_old_generation): Fix parenthesizing inside macro.
	(gc_mark): Rewrite using macros. Provide alternative type dispatch.
	(pointer_as_object, pointer_was_object): Provide alternative
	  definitions.
	(walk_area_iarray): Renamed from walk_area_array.
	(walk_area): Provide alternative definition.
	(alive): Provide alternative type dispatch.
	(gc_morris2, gc_morris3): Provide alternative body.
	(set_GCself): Provide alternative definition.
	(gc_sweep1_varobject_page): Some modifications if no TYPECODES.
	(aktualisiere, aktualisiere_varobject): Provide alternative
	  definitions.
	(build_old_generation_cache): Provide alternative type dispatch.
	(build_old_generation_cache:cache_at): Provide alternative
	  definition.
	(gar_col_normal): Remove unused variable.
	(gc_compact_from_varobject_page): Some modifications if no TYPECODES.
	(move_conses:aktualisiere): Provide alternative definition.
	(pointable_usable_test): Always TRUE if no TYPECODES.
	(bias_type_pointer_object): New macro.
	(allocate_TRUE, allocate_FALSE): Use it.
	(allocate_symbol, allocate_vector, allocate_bit_vector)
	(allocate_string, allocate_iarray): Provide alternative body.
	(allocate_srecord_, allocate_xrecord_): Provide alternative
	  definitions.
	(allocate_bignum, allocate_ffloat, allocate_dfloat, allocate_lfloat)
	(make_ratio, make_complex): Provide alternative body.
	(get_circ_mark, get_circ_unmark, subst, subst_circ_mark)
	(subst_circ_unmark): Provide alternative type dispatch.
	(map_heap_objects:varobject_typecode_at,cons_typecode_at)
	(with_typecode): Provide alternative definitions.
	(init_symbol_tab_1): Some modifications if no TYPECODES.
	(main): Initialize mem.heapnr_from_type only if TYPECODES.
	(main): If no TYPECODES, use only a 2^(oint_addr_len-1) address
	  range.
	(memflags): Include the settings of WIDE and TYPECODES.
	(memdump_header, savemem): No _cons_type etc. if no TYPECODES.
	(addr_mask, offset_pages_len): Fix for oint_addr_len==32.
	(loadmem_aktualisiere): Provide alternative type dispatch.
	(loadmem_from_handle): No _cons_type etc. if no TYPECODES.
	  Provide alternative for old_symbol_tab_o.
	* eval.d (eval1): Provide alternative type dispatch.
	* control.d (CONSTANTP): Provide alternative type dispatch.
	* stream.d (P): Provide alternative definition.
	* io.d (prin_object_dispatch, pr_orecord): Provide alternative type
	  dispatch.
	(pr_readlabel): Some modifications if no TYPECODES.
	* array.d (bit_up, test_displaced): Modify type dispatch.
	* hashtabl.d (hashcode2, hashcode3_atom, hashcode4_atom, sxhash_atom):
	  Provide alternative type dispatch.
	* charstrg.d (coerce_ss): Provide alternative type dispatch.
	* predtype.d (eql, equal, equalp, COMMONP, TYPE-OF, CLOS:CLASS-OF)
	(heap_statistics_mapper): Provide alternative type dispatch.
	* aridecl.d: Use sign_bit_o instead of vorz_bit_o if it applies to
	  fixnums or sfloats only.
	* intelem.d (I_to_UL, I_to_L, I_to_UQ, I_to_Q): Provide alternative
	  type dispatch. Use FN_sign, BN_sign where possible.
	  Use sign_bit_o instead of vorz_bit_o if it applies to fixnums only.
	* intlog.d (I_to_DS_n_): Use FN_sign.
	* intplus.d (I_I_plus_I, I_minus_I, I_I_minus_I): Use FN_sign.
	* intmal.d (I_I_mal_I): Use FN_sign.
	* sfloat.d (SF_decode): Use SF_sign.
	(RA_to_SF): Use RT_sign.
	* ffloat.d (RA_to_FF): Likewise.
	* dfloat.d (RA_to_DF): Likewise.
	* lfloat.d (LF_decode, LF_ftruncate_LF, LF_futruncate_LF)
	(LF_fround_LF, LF_minus_LF, LF_shorten_LF, LF_extend_LF)
	(LF_LF_plus_LF, LF_LF_minus_LF, LF_LF_mal_LF, LF_LF_durch_LF):
	  Use LF_sign. Twiddle sign bit only if SPVW_MIXED && TYPECODES.
	(RA_to_LF): Use RT_sign.
	* flo_konv.d: Use sign_bit_o instead of vorz_bit_o if it applies to
	  fixnums or sfloats only.
	* flo_rest.d (floatcase): Provide alternative definition.
	(LF_I_scale_float_LF): Provide alternative type dispatch.
	  Use LF_sign.
	(F_float_sign_F): Use SF_sign, FF_sign, DF_sign, LF_sign.
	* realelem.d (I_I_gleich): Use I_I_bignums_p.
	(R_signum_R): Use LF_sign.
	* constsym.d (LISPSYM_B): Provide alternative definition.
	* affi.d (affi_call_argsa, SYS::NZERO-POINTER-P): Provide alternative
	  type dispatch.

1998-05-12  Sam Steingold  <sds@usa.net>

	* format.lsp (format-parse-cs, formatter-main-1): handle the ~//
	  format directive;
	(format-slash, format-get-symbol): new functions that do the job.

1998-05-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (SOCKET-SERVER, SOCKET-STREAM-PEERNAME): Remove unused
	  variables.

1998-05-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (iarray_rank, Iarray_rank, iarray_flags, Iarray_flags)
	(iarray_flags_*): New macros.
	* lispbibl.d, genclisph.d, spvw.d, io.d, stream.d, array.d:
	* hashtabl.d, sequence.d, charstrg.d, predtype.d, foreign.d, affi.d:
	  Update.

	* lispbibl.d (Array_type, Array_type_*): New macros.
	* io.d, array.d, predtype.d: Update.

	* lispbibl.d (oint_symbolflags_shift #ifdef NO_symbolflags): Define
	  as oint_data_shift, not oint_addr_shift.
	* spvw.d (gc_markphase, aktualisiere_STACK): Conditionalize more
	  code #ifndef NO_symbolflags.
	* debug.d (print_stackitem): Likewise.

	* spvw.d (memdump_header): Put _memflags right after _magic.
	(savemem, loadmem_from_handle): Update.

	* spvw.d (pointer_as_object, pointer_was_object): New macros.
	(gc_compact_cons_page, gc_sweep1_varobject_page, aktualisiere)
	(gc_sweep2_varobject_page, aktualisiere_page)
	(gc_compact_from_varobject_page, gc_compact_from_cons_page): Use them.

	* lispbibl.d (make_read_label, read_label_integer_p): New macros.
	(framepointerp): New macro, renamed from stack_env_p.
	(systemp): Remove macro.
	* eval.d, control.d, io.d, debug.d: Update.

	* eval.d (apply, funcall): Use abstract type test macros, and
	  improve the generated code a little bit.

	* lispbibl.d (record_type, Record_type, record_flags, Record_flags)
	(record_flags_*, srecord_length, Srecord_length, xrecord_length)
	(xrecord_xlength, Xrecord_length, Xrecord_xlength): New macros.
	* lispbibl.d, genclisph.d, spvw.d, eval.d, io.d, stream.d:
	* hashtabl.d, record.d, predtype.d, foreign.d, affi.d: Update.

	* spvw.d (do_aktualisiere_symbol, do_aktualisiere_svector)
	(do_aktualisiere_iarray, do_aktualisiere_record): New macros.
	(aktualisiere_*): Use them.
	(aktualisiere_iarray): Renamed from aktualisiere_array.

1998-05-09  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (fehler_terminal_raw): Define function only when needed.

	* io.d (pr_readlabel, pr_framepointer): New functions, split out from
	  pr_system.
	(pr_system): Much smaller.
	(prin_object_dispatch): Distinguish system/read-label/framepointer
	  here.

	* lispbibl.d (framecode): New macro.
	* lispbibl.d, spvw.d, eval.d, control.d, eval.d: Use it.

	* lispbibl.d (fcint): New type.
	* eval.d: Use it.

	* lispbibl.d (msymbolp, mnumberp, mvectorp, m_simple_vector_p)
	(m_general_vector_p, m_simple_string_p, mstringp)
	(m_simple_bit_vector_p, m_bit_vector_p, marray1p, if_mrecordp)
	(mclosurep, minstancep, mstructurep, mstreamp, morecordp, mcharp)
	(msubrp, mintegerp, mfixnump, mposfixnump, mbignump, mratiop)
	(mfloatp, m_short_float_p, m_single_float_p, m_double_float_p)
	(m_long_float_p, mcomplexp, mpositivep, N_mfloatp, N_mintegerp)
	(R_mrationalp, R_mfloatp, R_mminusp, RA_mintegerp, RA_mratiop)
	(I_mbignump, I_mfixnump, N_mrealp, N_mcomplexp): Remove macros.
	* genclisph.d: Likewise.
	* spvw.d, eval.d, pathname.d, stream.d, io.d, array.d, hashtabl.d:
	* list.d, package.d, record.d, sequence.d, charstrg.d, debug.d:
	* error.d, misc.d, predtype.d, symbol.d, rexx.d, foreign.d:
	* intdiv.d, realelem.d, realtran.d, compelem.d, comptran.d: Update.

	* lispbibl.d (if_vectorp, if_simplep): Remove macros.
	* array.d, predtype.d: Update.

	* lispbibl.d: Document that any of the type test macros can cause
	  multiple evaluation of their argument.
	* predtype.d: Don't do type tests directly on popSTACK().

	* lispbibl.d (allocate_closure, allocate_cclosure_copy): New macros.
	* eval.d (get_closure, interpret_bytecode_): Use them.
	* io.d (GET-MACRO-CHARACTER): Use them.
	* record.d (SYS::%MAKE-CLOSURE)
	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): Use them.

	* spvw.d (walk_area_cons, walk_area_symbol, walk_area_array)
	(walk_area_svector, walk_area_svector): New macros.
	(walk_area): Simplify, use them.

	* lispbibl.d (byte_vector_p, general_byte_vector_p): New macros.
	* genclisph.d: Likewise.
	* stream.d (test_n_bytes_args): Use them.
	* sequence.d (get_seq_type): Likewise.
	* affi.d (SYS::MEM-READ, SYS::MEM-WRITE): Likewise.
	* predtype.d (equalp): Likewise.
	* foreign.d (convert_to_foreign): Likewise.

	* lispbibl.d (mdarray_type): Renamed from array_type.
	(case_mdarray): Renamed from case_array1.
	(Iarray): Renamed from Array.
	(TheIarray): Renamed from TheArray.
	(mdarrayp): Renamed from array1p.
	(allocate_iarray): Renamed from allocate_array.
	(iarray_displace_check): Renamed from array1_displace_check.
	* genclisph.d, spvw.d, stream.d, io.d, array.d, hashtabl.d, sequence.d,
	  charstrg.d, predtype.d, foreign.d, affi.d: Update.

	* lispbibl.d: Replace documentation of type encoding by new one.

	* lispbibl.d: Move the code defining SPVW_* before the definition of
	  the case_* macros.

	* lispbibl.d (uintWC, sintWC): New types, used for bignum length,
	  lfloat length, iarray rank.
	(uintWCoverflow): New macro, replaces uintCoverflow.
	(arrayrank_limit_1): Change value.
	* intelem.d (NUDS_to_I, UDS_to_I): Lengths fit in an uintWC, not uintC.
	* intlog.d (I_I_ash_I, I_logcount_I, I_integer_length)
	(I_integer_length_I): Likewise.
	* intplus.d (DS_1_plus, DS_minus1_plus, I_I_plus_I, I_I_minus_I):
	  Likewise.
	* intmal.d (UDS_UDS_mal_UDS): Likewise.
	* lfloat.d (LF_LF_durch_LF, LF_sqrt_LF, LF_to_I, I_to_LF, RA_to_LF):
	  Likewise.
	* flo_rest.d (lf_len_extend, F_float_digits_I, F_float_precision_I)
	(F_integer_decode_float_I_I_I): Likewise.
	* realtran.d (pi_F_float_F, lf_len_extend2): Likewise.
	* realrand.d (I_random_I): Likewise.
	* intread.d (DIGITS_to_I): Likewise.
	* lisparit.d (mal_10_plus_x, FLOAT-DIGITS, SYS::%SET-LONG-FLOAT-DIGITS)
	(log_digits): Likewise.
	* pathname.d (OPEN): Likewise.

	* constsym.d: Remove LISPSYM_B. Rename LISPSYM_C to LISPSYM_B.
	  Rename LISPSYM_D to LISPSYM_C. Rename LISPSYM_E to LISPSYM_D.
	* spvwtabs.d (symbol_tab_data): Update.
	* spvw.d (init_symbol_tab_2): Update.

	* lispbibl.d: Reorganize declarations of Cons, Ratio, Complex.
	(Rectype_*): Now enum values.
	(rectype_limit): New enum value.
	(Record_length): Use rectype_limit.
	* spvw.d (speicher_laenge, speicher_laenge_record): Use rectype_limit.
	(walk_area_record, aktualisiere_varobject): Likewise.
	(build_old_generation_cache, allocate_srecord_, allocate_xrecord_):
	  Likewise.
	* predtype.d (equalp): Likewise.
	(COMMONP): Put #if around "case Rectype_*".

	* spvw.d (gc_mark): Start macroizing this function.

	If SPVW_MIXED, put Ratio and Complex among the Varobjects.
	* lispbibl.d (_case_ratio, _case_complex): New macros (ugly).
	(case_pair): New macro.
	(Rectype_Ratio, Rectype_Complex): New enum values.
	(ratio_, complex_): Conditionally add a XRECORD_HEADER.
	* genclisph.d: Update.
	* spvw.d (MM_TYPECASES): Update.
	(gc_mark, walk_area, alive, gc_morris2, gc_morris3): Use case_pair.
	(aktualisiere, main, loadmem_aktualisiere): Likewise.
	(make_ratio, make_complex): Implement if SPVW_MIXED.
	(subst, subst_circ_mark, subst_circ_unmark): Don't use case_record.
	* predtype.d (enum_hs_ratio, enum_hs_complex): Now unconditional.
	(heap_statistics_mapper): Update.
	* constobj.d: Update.

	* lispbibl.d (make_machine): New macro.
	(nullobj): Use it.
	* genclisph.d, spvw.d, list.d: Update.

	* lispbibl.d (bignum_length, Bignum_length): New macros.
	* lispbibl.d, genclisph.d, spvw.d, stream.d, hashtabl.d, predtype.d:
	* intelem.d, intlog.d, intcomp.d, intplus.d, flo_rest.d, realelem.d:
	* realtran.d: Update.

	* lispbibl.d (lfloat_length, Lfloat_length): New macros.
	* spvw.d, predtype.d, lfloat.d, flo_rest.d, realelem.d, realtran.d:
	* compelem.d, lisparit.d: Update.

	* lispbibl.d (sarray_length, Sarray_length): New macros.
	* lispbibl.d, array.d: Update.

	* lispbibl.d (sbvector_length, Sbvector_length): New macros.
	* spvw.d, io.d, array.d, record.d: Update.

	* lispbibl.d (sstring_length, Sstring_length): New macros.
	* spvw.d, io.d, pathname.d, stream.d, array.d, charstrg.d, rexx.d:
	  Update.

	* lispbibl.d (svector_length, Svector_length): New macros.
	* spvw.d, eval.d, control.d, io.d, array.d, hashtabl.d, package.d:
	* debug.d, error.d, predtype.d, rexx.d, foreign.d, affi.d: Update.

1998-05-09  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>

	* user1.lsp: move *PROMPT-WITH-PACKAGE* from SYS to LISP,
	  and export it

1998-05-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* ffcall: Add support for DEC Alpha running Linux (libc6): Change all
	  ".rdata" in assembler output to ".data".

1998-05-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* socket.d: Don't declare connect() when using glibc2.
	* aclocal.m4 (CL_TCPCONN): Allow setsockopt to be declared with
	  socklen_t = unsigned int.

1998-05-08  Sam Steingold  <sds@usa.net>

	* constsym.d (*floating-point-contagion-ansi*): New variable.
	* constobj.d (fpcontagion_warn_string): Change wording.
	* flo_rest.d (warn_floating_point_contagion): Change appropriately.
	(GEN_F_op2, GEN_LF_op2_0): Implement ANSI compliant float contagion.
	* realelem.d (R_R_contagion_R): Likewise.
	* lisparit.d (init_arith): Initialize *floating-point-contagion-ansi*.

1998-05-08  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>

	* pathname.d (ensure_directories_exist): Changed arglist from
	  "&optional verbose" to "&key verbose"
	* subr.d: Likewise.
	* subrkw.d: Added entry for ensure_directories_exist.
	* constsym.d: Added the keyword :VERBOSE.

1998-05-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* aclocal.m4 (CL_RUSAGE): Check for getrusage declaration. Define
	  RUSAGE_WHO_T.
	* unixconf.h.in (RUSAGE_WHO_T): New macro.
	* unix.d (getrusage): Change declaration.

1998-05-05  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* aclocal.m4 (CL_DYNLOAD): Check for dlerror declaration.
	* configure.in, unixconf.h.in: CL_DYNLOAD sets DLERROR_CONST.
	* unix.d (dlerror): Use DLERROR_CONST in the declaration.

1997-05-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* socket.d (create_server_socket): Avoid an EADDRINUSE error in some
	  harmless cases.
	(setsockopt): Declare.

1998-05-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* init.lsp: Load amigasock.lsp by default.

1998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* predtype.d (CLASS-OF): Change so that (class-of (sys::make-anode))
	  returns the class STRUCTURE-OBJECT instead of the class T.

1998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* modules/bindings/linux/linux.lsp: Make LINUX package case sensitive.
	(fd_isset): Use lisp:floor, not linux:floor.
	(EXIT_SUCCESS): Set to 0.

1998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (c-form): Respect NOTINLINE declarations on macros.

1998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* flo_rest.d (warn_floating_point_contagion): New function.
	(GEN_F_op2): Warn when floating point contagion occurs.
	* realelem.d (R_R_contagion_R): Likewise.
	* constsym.d (*warn-on-floating-point-contagion*): New variable.
	* lisparit.d (init_arith): Initialize it.
	(init_arith): Initialize *inhibit-floating-point-underflow* here,
	  not in set_lf_digits().
	* constobj.d (fpcontagion_warn_string): New.

1998-04-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* makemake.in: Rename bindings/linux to bindings/linuxlibc5.
	* bindings/linuxlibc6: New module.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (floating-point-inexact)
	(floating-point-invalid-operation): New classes.
	* init.lsp: Export their names.
	* defs3.lsp: Likewise.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clos.lsp: Export CLOS:METHOD.
	(method): New structure class.
	(standard-method): Inherit from it.
	* init.lsp: Export CLOS:METHOD.
	* defs3.lsp: Likewise.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* predtype.d (TYPE-OF, CLASS-OF): Use CLOS::CLOSCLASS instead of
	  CLOS::CLASS.
	* record.d (fehler_keine_klasse): Use CLOS:CLASS.
	* clos.lsp (find-class, setf find-class, ensure-class): Use
	  CLOS::CLOSCLASS instead of CLOS::CLASS.
	* type.lsp (typep, canonicalize-type, type-expand-1): Likewise.
	* user2.lsp (apropos, describe): Likewise.
	* compiler.lsp (c-TYPEP): Likewise.
	* init.lsp: Export clos:class.
	* defs3.lsp: Likewise.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* record.d (CLOS::STRUCTURE-OBJECT-P): Renamed from
	  CLOS::STRUCTURE-INSTANCE-P.
	(COPY-STRUCTURE): Use type STRUCTURE-OBJECT instead of STRUCTURE.
	* io.d (print_structure): Likewise.
	* eval.d: (FUNTAB): Rename CLOS::STRUCTURE-INSTANCE-P to
	  CLOS::STRUCTURE-OBJECT-P.
	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
	(c-typep-alist1): Likewise.
	(c-typep-alist2): Remove type STRUCTURE.
	* type.lsp (CLOS:STRUCTURE-OBJECT): Rename CLOS::STRUCTURE-INSTANCE-P
	  to CLOS::STRUCTURE-OBJECT-P.
	(STRUCTURE): Remove builtin type.
	(subtypep): Remove type STRUCTURE.
	* defstruc.lsp (defstruct): All structure types except STRUCTURE-OBJECT
	  inherit from STRUCTURE-OBJECT.
	(structure-object): New structure class.
	* constobj.d (class_structure_types): Update accordingly.
	* clos.lsp (<structure-object>): Update initial value.
	(compute-dispatch): Rename CLOS::STRUCTURE-INSTANCE-P to
	  CLOS::STRUCTURE-OBJECT-P.
	* init.lsp: Export STRUCTURE-OBJECT.
	* defs3.lsp: Likewise.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (print_structure): New function, doing the bulk of pr_structure.
	(pr_structure): Call it.
	(pr_external_1): Do respect *print-circle*.
	* defstruc.lsp (clos::defstruct-remove-print-object-method): One more
	  hook for CLOS.
	(defstruct): Implement option :PRINT-OBJECT. Options :PRINT-FUNCTION
	  and :PRINT-OBJECT both cause a PRINT-OBJECT method to be installed.
	* clos.lsp (defstruct-remove-print-object-method): New function.
	(class, standard-method): Use PRINT-OBJECT methods instead of
	  :PRINT-FUNCTION option.
	(built-in-class, slotted-class, structure-class, standard-class):
	  Drop :PRINT-FUNCTION option.
	(print-class, print-std-method): Lose third argument.
	(initialize-instance structure-class): Drop print-function
	  inheritance hack.
	* init.lsp: CLOS is not optional any more.
	* conditio.lsp (restart): Use :PRINT-OBJECT option instead of
	  :PRINT-FUNCTION option.
	(print-restart): Lose third argument.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defs3.lsp: Don't export *evalhook*, *applyhook*, evalhook, applyhook.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* constsym.d (set): Rename SET to SYS::SET-SYMBOL-VALUE.
	* places.lsp (SYMBOL-VALUE): Use SYS::SET-SYMBOL-VALUE.
	  SET is a deprecated alias.
	* defs1.lsp (copy-symbol): Use SYS::SET-SYMBOL-VALUE.
	* defs2.lsp (define-symbol-macro): Likewise.
	* affi1.lsp (open-library): Likewise.
	* macros1.lsp (defvar, defparameter): Likewise.
	* compiler.lsp (funtab): Likewise.
	(subr-info): Add SYS::SET-SYMBOL-VALUE.
	(*deprecated-functions*): New variable.
	(note-function-used): New function.
	(c-GLOBAL-FUNCTION-CALL): Call it.
	(c-FUNCTION): Call it.
	(compile-file): Initialize *deprecated-functions*. Warn about the
	  use of deprecated functions.

1998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* type.lsp (CLOS:GENERIC-FUNCTION): New builtin type.
	(subtypep): Treat it.
	* compiler.lsp (c-typep-alist1): Treat it.
	* clos.lsp: Export CLOS:GENERIC-FUNCTION.
	(<generic-function>): New variable, new class CLOS:GENERIC-FUNCTION.
	* init.lsp: Export CLOS:GENERIC-FUNCTION.
	* defs3.lsp: Likewise.

1998-04-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* constsym.d (copy_structure): Rename SYS::%COPY-STRUCTURE to
	  COPY-STRUCTURE.
	* defstruc.lsp (ds-make-copier): Likewise.
	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
	* init.lsp: Export COPY-STRUCTURE.
	* defs3.lsp: Likewise.

1998-04-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defmacro.lsp (make-macro-expansion): Change scope of the block to
	  include only the body, not the lambda list.
	* macros2.lsp (deftype): Likewise.

1998-04-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* debug.d (read_form): Withdraw the clear-input/listen hack, use
	  interactive-stream-p instead. After reading a form, clear input
	  only upto a newline.
	* lispbibl.d (interactive_stream_p): New declaration.
	* user1.lsp (break-loop): Do (clear-input *debug-io*) upon entry
	  of the break loop.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* type.lsp (type-expand-1, type-expand): New functions.
	* user2.lsp (describe): Give a hint for DEFTYPEd types.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* type.lsp (CONS): New composite type specifier.
	(canonicalize-type): Expand NUMBER to (OR REAL COMPLEX).
	(canonicalize-type): Simplify (AND type), (OR type).
	(subtypep): If type2 = (OR), replace it by NIL. For numbers, improve
	  the fallback case. Treat the composite CONS type.
	* compiler.lsp (c-typep-alist3): New composite type specifier CONS.
	* type.tst: Replace '(cons symbol) by '(symbol cons).

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* defstruc.lsp (defstruct): Compare slot names using :test #'string=
	  :key #'symbol-name, not :test #'eq.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp (arithmetic-error, cell-error, unbound-slot, type-error)
	(package-error, print-not-readable, stream-error, file-error)
	(simple-condition): Use non-exported symbols as slot names.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clos.lsp (compute-applicable-methods): Turn into a generic
	  function.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (compile-file): Perform more merge-pathnames
	  operations.
	(compile-file-pathname): Likewise. Add &allow-other-keys.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clos.lsp (analyze-method-description): Allow class objects as
	  parameter specializers.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* init.lsp: Remove an unnecessary copy of the walker code.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* control.d (case): New special form.
	* init.lsp (%expand-form): Treat it.
	(%expand-case): New function.
	* macros1.lsp (case): Put the macro definition on the property list.
	* compiler.lsp (c-CASE): Now a special form handler.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* array.d (copy_sbvector): New function.
	* lispbibl.d (copy_sbvector): Declare it.
	* record.d (SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): New
	  function.
	* compiler.lsp (c-LAMBDABODY): A generic function dispatch code
	  ends with (RETGF) and needs only one value.
	* clos.lsp (analyze-method-description): Add check for
	  CALL-NEXT-METHOD called with arguments.
	(slow-funcall-gf): Return the effective method, don't call it.
	(finalize-fast-gf): No need to pass the arguments to
	  initial-funcall-gf.
	(initial-funcall-gf): Just return the gf, don't apply it to the args.
	(compute-dispatch): Return the effective method, don't call it.
	(%call-next-method): New function.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* bytecode.d (cod_skip_retgf, cod_funcall_skip_retgf): New byte codes.
	(cod_store8, cod_store9): Remove.
	* eval.d (interpret_bytecode_): Implement the new bytecodes.
	* compiler.lsp (instruction-table): New instructions SKIP&RETGF and
	  FUNCALL&SKIP&RETGF.
	(short-code-base, short-code-opsize, short-code-ops): Update for
	  removed store8, store9.
	(traverse-anode): RETGF is like a barrier.
	(simplify): RETGF needs one value only.
	(SP-depth): RETGF returns, like RET.
	(insert-combined-LAPs): Combine SKIP and RETGF. Combine FUNCALL and
	  SKIP and RETGF.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* constobj.d (version): New bytecode version.
	(old_version): Remove.
	* misc.d (SYS::VERSION): Drop test for O(old_version).
	* package.d (SYS::OLD-MAKE-PACKAGE, SYS::OLD-%IN-PACKAGE)
	(SYS::OLD-IN-PACKAGE): Remove backward compatibility hacks.
	* subrkw.d (old_make_package, old_pin_package, old_in_package):
	  Likewise.
	* debug.d (SYS::%ROOM): Renamed from SYS::OLD-ROOM.
	* user2.lsp (room): Call it.
	* eval.d (FUNTAB): Replace old_make_package, old_pin_package,
	  old_in_package by the new make_package, pin_package, in_package.
	  Remove old_room.
	* compiler.lsp (funtab): Likewise.

1998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* list.d (BUTLAST, NBUTLAST): Signal an error if len==0 and dotted.

1998-04-12  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* array.d (ARRAY-DISPLACEMENT): New function.
	* init.lsp, defs3.lsp: Export it.

1998-04-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (conditiontype): New condition types
	  source_program_error and keyword_error.
	* genclisph.d (conditiontype): Likewise.
	* constsym.d (simple-source-program-error, simple-keyword-error):
	  Likewise.
	* error.d (end_error): Treat keyword_error.
	* eval.d (parse_dd, get_closure, eval1, eval_fsubr)
	(fehler_eval_zuwenig, fehler_eval_zuviel, fehler_eval_dotted):
	  Emit source_program_error instead of program_error.
	(fehler_key_unpaarig, fehler_key_zuviel, funcall_iclosure)
	(fehler_apply_zuviel, fehler_apply_zuwenig): Emit program_error
	  instead of error.
	(interpret_bytecode_.cod_mvcall): Likewise.
	(fehler_key_notkw): Emit keyword_error instead of type_error.
	(fehler_key_badkw): Emit keyword_error instead of error.
	* control.d (fehler_funsymbol, FUNCTION, check_setq_body)
	(fehler_docstring, make_variable_frame, COMPILER-LET, fehler_funspec)
	(MACROLET, COND, RETURN-FROM, TAGBODY, GO, DECLARE, PARSE-BODY):
	  Emit source_program_error instead of program_error.
	(MULTIPLE-VALUE-CALL, APPLYHOOK): Emit program_error instead of
	  error.
	* foreign.d (FOREIGN-CALL-OUT): Emit program_error instead of error.
	* conditio.lsp (source-program-error, keyword-error)
	(simple-source-program-error, simple-keyword-error): New condition
	  types. Pass them to %defclcs.
	(define-condition, handler-case, restart-bind, expand-restart-case):
	  Emit source-program-error instead of program-error.
	* clos.lsp (with-slots, with-accessors, defclass)
	(analyze-method-description, defmethod, analyze-defgeneric)
	(analyze-defgeneric-lambdalist, analyze-generic-fundefs):
	  Emit source-program-error instead of program-error.
	(slow-funcall-gf, do-defgeneric): Emit program-error instead of
	  error.
	* affi1.lsp (mlibcall): Emit source-program-error instead of
	  program-error.
	* defmacro.lsp (macro-call-error, analyze-aux, analyze-rest, analyze1)
	(remove-env-arg, make-macro-expansion): Emit source-program-error
	  instead of program-error.
	* defs2.lsp (defpackage, define-symbol-macro): Emit
	  source-program-error instead of program-error.
	(check-not-special-variable-p): Emit program-error instead of error.
	* defstruc.lsp (ds-symbol-or-error, defstruct): Emit
	  source-program-error instead of program-error.
	* foreign1.lsp (check-symbol, def-c-var, element, deref, slot, cast)
	(typeof): Emit source-program-error instead of program-error.
	* init.lsp (%the-environment-error, %expand-form, %expand-list)
	(%expand-lambda, %expand-lambdalist, %expand-varspez)
	(%expand-varspez*, %expand-fundefs-1, defun, do): Emit
	  source-program-error instead of program-error.
	* macros1.lsp (defvar, defparameter, defconstant, do/do*-expand)
	(psetq, case, ifify, cond): Emit source-program-error instead of
	  program-error.
	* macros2.lsp (typecase, deftype): Emit source-program-error instead
	  of program-error.
	* macros3.lsp (expand-LETF*, expand-LETF): Emit source-program-error
	  instead of program-error.
	* places.lsp (get-setf-method-multiple-value, get-setf-method)
	(define-setf-method, defsetf, psetf, define-modify-macro, setf)
	(shiftf, (setf apply), (setf funcall)): Emit source-program-error
	  instead of program-error.
	* trace.lsp (trace1, untrace1): Emit source-program-error instead of
	  program-error.

1998-04-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* constobj.d (type_peektype, type_rexx_host): Use BOOLEAN instead of
	(MEMBER NIL T).
	* format.lsp (format): Likewise.
	* clx.lsp (boolean): Remove definition.

1998-04-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d: Port to powerpc-apple-mklinux.
	  Add a verification for oint_addr_mask.

1998-04-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* aclocal.m4 (CL_FPU_CONTROL): New macro.
	* configure.in: Call it.
	* unixconf.h.in: New macro HAVE_SETFPUCW.
	* unixaux.d: Set __fpu_control only if __setfpucw() doesn't exist.
	* spvw.d (main): Call __setfpucw() if it exists.

1998-04-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (EQL=EQ): Don't use fixnump.

1998-04-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* init.lsp: Export BOOLEAN.
	* defs3.lsp: Likewise.
	* type.lsp (TYPE-SYMBOL, SUBTYPEP): Treat BOOLEAN.
	* compiler.lsp (*declaration-types*, c-typep-alist2): Likewise.
	* predtype.d (TYPE-OF): (type-of 't) returns BOOLEAN.
	* user2.lsp (describe): Adapt for TYPE-OF change.

1998-04-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* type.lsp (%the): Instead of typep, use near-typep, which returns T
	  for a read-label.

1998-03-24  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* compiler.lsp (var): New slot `for-value-usedp'.
	(c-VAR): Set it.
	(ignore-check): Use it, instead of `usedp'.
	(bind-fixed-var-1, process-fixed-var-list, bind-movable-var)
	(c-FLET, c-LABELS, c-GENERIC-FLET, c-GENERIC-LABELS): Initialize it.

1998-03-24  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (princ_up): Bind *PRINT-READABLY* to NIL.

1998-03-23  Jörg Höhle  <Joerg.Hoehle@gmd.de>

	* compiler.lsp (c-IF): No extra JMP if no else part.

1998-03-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* pathname.d (OPEN): For the :element-type argument, allow deftype'd
	  type specifiers. Check their validity using SUBTYPEP and
	  SYS::SUBTYPEP-INTEGER.

1998-03-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* macros2.lsp (space): Call VALUES-LIST explicitly.
	* user2.lsp (%space): No need to return values.

1998-03-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (%DEFIO): New function.
	(SET-MACRO-CHARACTER): If function is a dispatch-reader function,
	  unpack it.
	(GET-MACRO-CHARACTER): For a dispatch macro character, return a
	  dispatch-reader function.
	* defs2.lsp (dispatch-reader): New function. Call %defio.

1998-03-12  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* loop.lsp (expand-loop): Emit the REPEAT decrement before its
	  end test, not afterward.
	* loop.tst: A new test.

1998-03-11  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>

	* macros2.lsp (etypecase, ctypecase, ecase, ccase): Allow T and
	  OTHERWISE as keys, but warn about them unless parenthesized.
	* conditio.lsp (etypecase, ctypecase, ecase, ccase): Likewise.

1998-03-10  Sam Steingold  <sds@usa.net>

	* io.d: fixed a minor grammatical error.

1998-03-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* amiga.d (stdin_handle): Renamed from Input_handle.
	(stdout_handle): Renamed from Output_handle.
	  All references changed.
	* lispbibl.d (strm_file_name, strm_file_truename): Both can be a
	  pathname or NIL.
	* io.d (pr_stream): Don't print strm_file_name if it is NIL.
	* pathname.d (test_file_stream_named): New function.
	(parse-namestring, truename, probe-file, delete-file, rename-file)
	(open, file-write-date, file-author): Call test_file_stream_named.
	* stream.d (regular_handle_p): Move function outside #if.
	(b_file_finish_flush): Adapt for unnamed file streams.
	(fehler_position_beyond_EOF, make_file_stream): Likewise.
	(b_file_full_flush): Don't call lseek if the stream is write-only.
	(b_file_half_flush): Likewise.
	(b_file_nextbyte): Don't read buffer if the stream is write-only.
	(position_b_file, position_file_end): Likewise.
	(make_file_stream): Unnamed output stream are write-only.
	(finish_output_file): For unnamed streams, don't close the handle.
	(make_terminal_io): New function.
	(init_streamvars): Call it.

1998-03-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (finish_tty_output, force_tty_output, clear_tty_output):
	  Ignore ENOSYS on Irix (occurs on pipes).

1998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d: Define MULTIMAP_MEMORY_SYMBOL_TAB if
	  MULTIMAP_MEMORY && MAP_MEMORY_TABLES. But don't multimap the subr_tab
	  - wouldn't work in the case of dynamic loading.

1998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Make aktenv a separate entity (will be per-thread later).
	* lispbibl.d (aktenv): Make a global variable.
	* eval.d (aktenv): New global variable.
	* constobj.d (akt_*_env): Remove.
	* spvw.d (for_all_threadobjs): New macro.
	(gc_markphase, aktualisiere_object_tab): Call it.
	(initmem): Initialize aktenv.

1998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* clos.lsp (*dynamically-modifiable-generic-function-names*): New
	  variable.
	(warn-if-gf-already-called): Don't warn if gf is listed in it.

1998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* format.lsp (format-parse-cs): Add format directive ~!.
	(format-call): New function.
	(formatter-main-1): Compile format-call.

1998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (GNU_GETTEXT): Support gettext with IBMPC_CHS as well.
	(INIT_SYMBOL_TAB): Don't define for EMUNIX.
	* gettext/intl/Makefile.dos: New file.
	* dos/gtconfig.h: New file.
	* dos/gtobjects: New file.
	* dos/copyx.bat, os2/copyx.cmd: Copy them.
	* spvw.d (to_latin_table, from_latin_table): New arrays.
	(cvgettext): New function.
	(clgettext): Call cvgettext, instead of gettext.
	* msdos.d (full_read, full_write): Change declaration to match the
	  definition in unixaux.d.
	(get_handle_input_status, intdos): Save %ebx in asm calls.
	* stream.d (kbhit, getch, get_handle_info, intvideo): Likewise.
	* makemake.in: Support gettext on DOS, OS/2 platforms with EMX.
	(EMX): Link with emxl.exe, not emx.exe.
	  Do not strip lisp.exe.
	* dos/convert.bax, os2/convert.bax: Don't convert binary files
	  like *.gif.
	* dos/delx.bat, os2/delx.cmd: Remove more things. Don't descend into
	  src/readline or src/newreadline - these directories may not exist.
	* Makefile.devel (dos--distrib, os2--distrib): Copy lispinit.mem,
	  not compiled.mem. Copy the *.mo files. Copy the translated READMEs.
	  Copy impnotes.html. Copy emx.exe. Copy emxrt.doc.

1998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d: Remove support for EMX versions < 0.9c.
	* msdos.d: Likewise.
	(FILE_PID): Remove definition.
	* spvw.d (alarm_handler, main): Remove support for EMX versions < 0.9c.
	* stream.d (finish_tty_output, force_tty_output, listen_handle)
	(kbhit, getch, clear_window, delete_window_line, init_term): Likewise.
	(make_pipe_input_stream, make_pipe_output_stream)
	(make_pipe_io_stream): Don't use FILE_PID any more.
	* os2/popenrw.c: Likewise.
	* error.d (begin_error, tast_break): Remove support for EMX
	  versions < 0.9c.
	  * graph.d: Likewise.
	* pathname.d: Likewise.
	* time.d: Likewise.

1998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* cv-to-ibmpc.c (main): Translate the characters 0xCD and 0xD3 to
	  ASCII, instead of dropping them. Needed for the spanish messages.

1998-02-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Remove support for traditional (pre-ANSI-C) compilers. Assume
	<stdlib.h> and <string.h> are present.
	* ansidecl.d: Assume <stdlib.h> is present.
	* txt2c.c: Likewise.
	* ccmp2c.d: Likewise.
	(new_statement, main): Assume ANSI C declaration syntax.
	* comment5.d (main): Assume ANSI C declaration syntax.
	* dedefined.c: Removed.
	* deelif.d: Removed.
	* deerror.c: Removed.
	* mergestrings.d: Removed.
	* traddecl.d: Removed.
	* lispbibl.d: Assume ANSI C (or C++) compiler.
	(const, signed, void): Remove conditional definitions.
	(GENTAG, STRING): Simplify.
	(DECLTAG, BEGIN_DECLTAG, END_DECLTAG, local_function): Remove.
	(_ARGS, PARM0, PARM1, PARM2, PARM3, PARM4, PARM5): Remove.
	(nonreturning_function): Simplify.
	(signed_int_with_n_bits, unsigned_int_with_n_bits): Unconditional.
	(sintB, uintB, sintW, uintW, sintL, uintL): Simplify definition.
	(sintQ, uintQ, sintP, uintP): Likewise.
	(sintBW, uintBW, sintWL, uintWL, sintBWL, uintBWL): Likewise.
	(sintD, uintD, sintDD, uintDD, tint, aint, saint, cint): Likewise.
	(module_): Simplify declaration.
	* genclisph.d (_ARGS): Remove. Assume ANSI C declaration syntax.
	* unix.d (FAULT_HANDLER_ARGDECL): Remove.
	(FAULT_HANDLER_ARGLIST): Assume ANSI C declaration syntax.
	* io.d: Change `local_function' to `local'.
	* package.d: Likewise.
	* array.d: Likewise.
	* flo_rest.d (GEN_F_op1, GEN_ffloor, GEN_fceiling, GEN_fround)
	(GEN_round, GEN_F_fround, GEN_F_round, GEN_F_F_round): Use ANSI C
	  declaration syntax.
	* realelem.d (GEN_R_round, GEN_R_fround, GEN_R_R_round, GEN_R_R_mod)
	(GEN_R_R_fround): Use ANSI C declaration syntax.
	* realtran.d (GEN_F_atanx, GEN_F_sinx): Use ANSI C declaration syntax.
	* pathname.d (nametype_namestring_parts): Likewise.
	* spvw.d (gc_sweep1_varobject_page): Likewise.
	(gc_sweep2_varobject_page): Likewise.
	(sigsegv_handler): Simplify declaration.
	(dynload_modules): Simplify cast for initfunction1 and initfunction2.
	* avl.d (AVL_map_*): Remove calls to BEGIN_DECLTAG, END_DECLTAG and
	  DECLTAG.
	* _clisp.c (perror, main): Assume ANSI C declaration syntax.
	* ari68020.d (C, clrx): Assume ANSI C preprocessor.
	* ari80386.d (C, L): Likewise.
	* sp80386.d (C): Likewise.
	* arisparc.d (C): Likewise.
	* asmi386.hh (C, L): Likewise.
	* configure.in: Don't call AC_PROG_GCC_TRADITIONAL, CL_CC_NEED_DEELIF,
	  CL_CC_NEED_DEERROR, CL_CC_NEED_MERGESTRINGS any more.
	* makemake.in: Drop support for oldcc. Assume CC_NEED_DEELIF,
	  CC_NEED_DEERROR, CC_NEED_MERGESTRINGS to be false. Assume CC_ANSI
	  to be true. Assume gcc is not used with -traditional. Always use
	  ansidecl, not traddecl.

1998-02-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* modules/stdwin: Removed.
	* makemake.in (--with-module-stdwin): Remove option.
	* Makefile.devel (SOURCES4): No need any more to exclude stdwin.
	(CONFIGURES): Remove modules/stdwin/configure.
	(src--distrib): Don't create clispsrc-stdwin.tar.gz.

1998-02-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* intsqrt.d (UDS_sqrt_): gcc-2.5.8 on hppa has same problem with
	  isqrt as gcc-2.7.0 on i386. Same workaround works.

1998-02-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* constobj.d (showstack_string_CALLBACK_frame): Define if
	  HAVE_SAVED_REGISTERS, not HAVE_SAVED_STACK.

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (gar_col_normal): Unify three occurrences of the same error
	  message. Wrap munmap() calls in begin/end_system_call().

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Preliminary support for Mingw32:
	* ansidecl.d, traddecl.d, dedefined.c, ccmp2c.d, txt2c.c: Define
	  STDC_HEADERS if __MINGW32__.
	* lispbibl.d (WIN32): Define if __MINGW32__.
	(I80386): Define if _X86_ is defined.
	* ari80386.d, sp80386.d, asmi386.hh: The __MINGW32__ assembler has
	  the ELF "align" pseudo-op.
	* win32.d: "#undef unused" before including other header files.
	(_MAX_PATH): Define to an arbitrary value.
	(uAsciiChar): New macro, against unnamed union in __MINGW32__.
	(wProcessorArchitecture): Similarly.
	(MAXHOSTNAMELEN): Define only unless already defined.
	(CoGetCurrentProcess): Declare explicitly for __MINGW32__.
	* stream.d (listen_handle, listen_keyboard, rd_ch_keyboard):
	  Use uAsciiChar.
	* makemake.in ($TSYS = win32gcc): Output a Makefile suitable for
	  Mingw32.
	(PARENT_M, NEXT_M, SRCTOPDIR_M, UTILDIR_M, DOCDIR_M): New variables.
	  Use them in Makefile rules (as opposed to Makefile commands).

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* pathname.d (init_pathnames): Don't expect that getlogin() sets
	  errno when it fails.

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (xmprotect): Use OS_errno, not errno. For Win32.

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (main.banner): Add a copyright line for 1998.

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* init.lsp: Export `define-symbol-macro'.
	* defs3.lsp: Likewise.

1998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* pathname.d (fehler_notdir): New function, extracted from
	  shorter_directory_arg.
	(directory_exists): New function.
	(PROBE-DIRECTORY): New function.
	(shorter_directory): Renamed from shorter_directory_arg. Accept
	  two arguments. Call fehler_notdir. All callers changed.
	(make_directory): New function, extracted from MAKE-DIR.
	(MAKE-DIR): Call it.
	(ENSURE-DIRECTORIES-EXIST): New function.
	* init.lsp: Export `ensure-directories-exist'.
	* defs3.lsp: Likewise.

1998-01-23  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* arilev0.d (mulu32 for I80386): Fix a wrong description of the "mull"
	  instruction.

1998-01-21  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* asmi386.hh (NUM, ADDR): To prepend a dollar, use $##n. (Some
	  compilers allow dollars in identifiers. Needed for mingw32.)

1998-01-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* stream.d (clear_tty_output): Avoid error during CLEAR-OUTPUT on
	  pipes on Win32.

1998-01-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* pathname.d (file_write_date, file_author): file_exists() takes
	  a `object' as argument, not a `const char *'.

1998-01-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* predtype.d (hs_record): Add const here too, to fix a small problem
	  in 1997-09-28-const.diff.

1998-01-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* makemake.in: Add a comment about MODULES to the makefile.

1998-01-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (mem.heaptype): Use -1 for SUBRs and < -1 for unused
	  typecodes.
	(main): Initialize mem.heaptype accordingly.
	(main): prepare_zeromap for subr_tab is now implicit.

1997-12-30  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (nonreturning_function): Fix comment.
	* win32.d (SetConsoleCtrlHandler): Fix comment.

1997-12-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* eval.d (unwind): Fix a compilation warning in WIDE mode: don't cast
	  directly from oint to a pointer.

1997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d: Write MC680X0 instead of M680X0.

1997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (make_space_gc*): If zeromap() fails, output an informative
	  message, to calm down users.

1997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* makemake.in (distrib for acorn): Distribute impnotes.html.

1997-12-05  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* sequence.d (valid_type): Recognize (SIMPLE-ARRAY eltype 1) as
	  equivalent of (SIMPLE-ARRAY eltype (*)).
	* type.lsp (subtypep): Likewise.

1997-12-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* cfglinux.lsp: File removed.
	* FILES.1: Don't mention it.
	* makemake.in: Likewise.

1997-11-29  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* ffcall/{trampoline,callback/trampoline_r}/trampoline.c
	(alloc_trampoline): Add support for NetBSD/m68k.
	* makemake.in: Recognize m68k-netbsd for ari680x0 support.

1997-11-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* ffcall/callback/Makefile.{in,msvc}: callback.h resides in the
	  build dir, not the source dir.
	* ffcall/callback/callback.h.in: Renamed from callback.h.

1997-11-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* io.d (prin1a): When *PRINT-PRETTY* = T, there is no need to output
	  a newline if the next string begins with a newline character anyway.

1997-11-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Allow dynamic loading of modules, if configured --with-dynamic-modules.
	* clisp-link.in (run): New command.
	* aclocal.m4 (CL_DYNLOAD): New macro.
	* configure.in: Use it.
	* unixconf.h.in (HAVE_DLOPEN): New macro.
	* unix.d: Use it to declare dlopen, dlsym, dlclose, dlerror.
	* makemake.in: New option --with-dynamic-modules.
	* lispbibl.d (STACK_register) [I80386]: Define only if
	DYNAMIC_MODULES is not defined.
	(HAVE_SAVED_REGISTERS if I80386): Likewise.
	(tagging scheme): Likewise.
	(modules): Declare.
	(dynload_modules): Declare.
	* modules.d: Treat DYNAMIC_MODULES.
	* pathname.d (SYS::DYNLOAD-MODULES): New function.
	* spvw.d (init_modules_0): New function.
	(init_module_2): New function.
	(init_other_modules_2): Call it.
	(dynload_modules): New function.

1997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* ffcall: Upgrade to ffcall-1.3
	* Makefile.devel (CONFIGURES): Update accordingly.
	* foreign.d (convert_function_to_foreign, free_foreign_callin)
	(convert_function_from_foreign, callback, init_ffi): Use callback
	  package instead of vacall+trampoline.

1997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* aclocal.m4 (CL_MACHINE): Force CL_CHAR_UNSIGNED before CL_MACHINE.

1997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* aclocal.m4 (CL_CANONICAL_HOST_CPU): Support for KAI C++ which
	  doesn't like "#undef __i386__" nor "#define __i386__".

1997-10-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* disassem.lsp (disassemble-machine-code) [UNIX]: Inhibit line
	  breaks, 1 instruction per line, otherwise the instruction gets
	  filtered away.

1997-10-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* conditio.lsp: Conditionalize upon feature ANSI-CL, not dpANS.
	* defs2.lsp, defs3.lsp, init.lsp, loop.lsp: Likewise.

1997-10-12  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>

	* amigasock.lsp: New file.

1997-10-08  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>

	* eval.d (interpret_bytecode (cod_throw)): Tweak message.

1997-10-06  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>

	* cfgamiga.lsp (machine-instance): Prefix with "localhost".
	* erramiga.d (error200_msg_table): Add some translations.

1997-09-30  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* utils/gcc-cccp/Makefile.msvc: Set stack size for cccp.exe.
	* asmi386.sh: For the sake of msvc5, which assembles relative
	  addresses in an unpredictable way, turn jump tables into absolute,
	  not relative, addresses.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* charstrg.d (copy_string, NSTRING-UPCASE, NSTRING-DOWNCASE)
	(NSTRING-CAPITALIZE): Make reentrant and multithread-safe.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Stack overflow robustness on Win32:
	* lispbibl.d (NO_SP_CHECK, NOCOST_SP_CHECK): New macros. SP checks
	  are enabled if AMIGAOS || (WIN32_NATIVE && !CAN_HANDLE_WP_FAULT).
	* spvw.d (do_gar_col_simple, do_gar_col): If WIN32_NATIVE &&
	  CAN_HANDLE_WP_FAULT, check for stack overflow just before GC,
	  because a stack overflow during GC would be unrecoverable.
	* spvw.d (subst_circ_mark, stack_overflow_handler)
	(main_exception_filter): Put in the right #ifdefs.
	* spvw.d (stack_overflow_stack): New variable.
	(main): Set it.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* lispbibl.d (map_heap_function): Renamed from mapper_function.
	(map_heap_objects): Change declaration.
	* spvw.d (map_heap_objects): Likewise.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* array.d (initial_contents_locals): New structure.
	(initial_contents_aux): Make reentrant and multithread-safe.
	* lispbibl.d (map_sequence): Declare.
	* sequence.d (map_sequence): New function.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* spvw.d (everything_ready): Remove unused variable.

1997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	Use `const' qualifier when possible, especially on constant arrays.
	This allows constant arrays to be put into the raw data section.
	* arilev1c.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
	(divucopy_loop_up): Use `const'.
	* arilev1e.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
	(divucopy_loop_up): Use `const'.
	* arilev1i.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
	(divucopy_loop_up): Use `const'.
	* array.d (type_table): Use `const'.
	* charstrg.d (up_case_table, down_case_table, charname_table_codes)
	(char_name, name_char): Use `const'.
	* control.d (fsubr_tab): Use `const'.
	* debug.d (frame_up_table, frame_down_table, test_mode_arg): Use
	  `const'.
	* eval.d (FUNTAB, FUNTABR, cod_labels): Use `const'.
	* graph.d (EGA_colors, gr_colors, g320x200x16_regs, g320x200x16_info)
	(g640x200x16_regs, g640x200x16_info, g640x350x16_regs)
	(g640x350x16_info, g640x480x16_regs, g640x480x16_info)
	(g320x200x256_regs, g320x200x256_info, g320x240x256_regs)
	(g320x240x256_info, g320x400x256_regs, g320x400x256_info)
	(g360x480x256_regs, g360x480x256_info, g640x480x2_regs)
	(g640x480x2_info, g640x480x256_regs, g640x480x256_info)
	(g800x600x256_regs, g800x600x256_info, g1024x768x256_regs)
	(g1024x768x256_info, default_red, default_green, default_blue)
	(color16, et4000_set_regs, set_regs, mono_colors, EGA_colors)
	(VGA_colors, gr_colors, font, gr_text, GRAPH-INIT): Use `const'.
	* hashtabl.d (tuple_half_1, tuple_half_2): Use `const'.
	* intmal.d (mulu_2loop_down, mulu_2bigloop_down, fakul_table): Use
	  `const'.
	* intprint.d (table, UDS_to_DIGITS): Use `const'.
	* io.d (orig_syntax_table, orig_readtable, SET-READTABLE-CASE)
	(attribute_table, char_reader, pr_character, pr_stream): Use `const'.
	* lisparit.d (pi_mantisse, ln2_mantisse, ln10_mantisse): Use `const'.
	* lispbibl.d (fsubr_tab): Use `const'.
	* predtype.d (init_hs_locals_rest): Use `const'.
	* realrand.d (multiplier): Use `const'.
	* sequence.d (test_start_end, test_start_end_1): Use `const'.
	* spvw.d (pname_table, package_index_table, init_symbol_tab_2)
	(fsubr_data_tab, object_initstring_tab, features_initstring)
	(init_object_tab, banner, banner2, banner3, main)
	(loadmem_aktualisiere, copyright_notice): Use `const'.

1997-09-27  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* acspecific.m4 (AC_FUNC_VFORK): Fix so that it works right when
	  cross-compiling.
