12018-11-11  Bruno Haible  <bruno@clisp.org>
2
3	Add comments.
4	* macros2.lisp (WITH-OPEN-FILE, WITH-OPEN-STREAM): Add comments.
5
62018-11-11  Bruno Haible  <bruno@clisp.org>
7
8	Fix a compiler bug that could lead to a "Compiler bug!!" error.
9	Reported by Paul F. Dietz
10	at <https://gitlab.com/gnu-clisp/clisp/issues/14>.
11	* compiler.lisp: Fix comments about CALL1 and CALL2.
12	(for-value-table): Change classification of CALL1 and CALL2.
13
142018-09-22  Bruno Haible  <bruno@clisp.org>
15
16	Fix problem with non-ASCII characters in file names on Windows.
17	Reported by Ulrike Fischer
18	at <https://gitlab.com/gnu-clisp/clisp/issues/10>.
19	* m4/filecharset.m4 (CL_FILECHARSET): Test only the ASCII character
20	range.
21	* pathname.d (legal_namebyte): Return true for all non-ASCII bytes.
22	Hardcode known expressions for Unix and Windows.
23	* src/aclocal.m4, src/configure: Regenerated.
24
252018-07-18  Bruno Haible  <bruno@clisp.org>
26
27	Fix the macroexpander of MULTIPLE-VALUE-SETQ.
28	Reported by Charles Zhang
29	at <https://gitlab.com/gnu-clisp/clisp/issues/6>.
30	* macros1.lisp (multiple-value-setq): Treat case of no variables
31	specially.
32
332018-06-24  Sam Steingold  <sds@gnu.org>
34
35	* modules/gdbm/gdbm.c (check_gdbm_errno): Update to gdbm 1.15.
36
372018-04-23  Sam Steingold  <sds@gnu.org>
38
39	* makemake.in (MYIMPROOT): Set to gnu.org to work around the lack
40	of HTTPS support in CLISP.
41
422018-04-23  Bruno Haible  <bruno@clisp.org>
43
44	Update URLs.
45	* makemake.in (cygwin.README): Update URL to libsigsegv home page.
46
472018-04-22  Bruno Haible  <bruno@clisp.org>
48
49	Add support for Linux/riscv64.
50	* m4/mmap.m4 (CL_MMAP): Avoid crash on Linux/riscv64.
51	* aclocal.m4, src/configure: Regenerated.
52	* lispbibl.d (RISCV64): New macro.
53	(C_CODE_ALIGNMENT, intDsize, MAPPABLE_ADDRESS_RANGE_*, SP_register,
54	ASM_get_SP_register, SP_DOWN): Define for Linux/riscv64.
55	* Makefile.devel (multibuild-linux-riscv64): New target.
56	* makemake.in (XCFLAGS): For Linux/riscv64, enable all optimizations
57	except ASM.
58	Reduce optimization when compiling hashtabl.c.
59
602018-04-22  Bruno Haible  <bruno@clisp.org>
61
62	Update to the newest gnulib.
63	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
64	&& make -f Makefile.devel build-prerequisites".
65	* gllib/*: Update from gnulib.
66	* glm4/*: Likewise.
67	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
68	* modules/*/configure, modules/*/config.h.in: Regenerated.
69
702018-04-22  Bruno Haible  <bruno@clisp.org>
71
72	Switch to automake 1.16.1.
73	* Makefile.devel (AUTOMAKE_VERSION): Set to 1.16.1.
74	* build-aux/*: Updated.
75	* m4/gtk-*.m4: Updated.
76
772018-04-22  Bruno Haible  <bruno@clisp.org>
78
79	More hg to git changes.
80	* Makefile.devel (EXCLUDE): Exclude .git, not .hg.
81	* src/configure.in: Remove AC_REVISION invocation.
82	* src/makemake.in (check-doc): Test for .git, not .hg.
83	* utils/modprep.lisp: Update comment.
84
852018-04-22  Bruno Haible  <bruno@clisp.org>
86
87	Assume a git checkout instead of a hg checkout.
88	* Makefile.devel (GIT): New variable.
89	(HG): Remove variable.
90	(gnulib-imported, tag-release): Use GIT instead of HG.
91
922018-04-08  Bruno Haible  <bruno@clisp.org>
93
94	Fix possible build failure on some Linux/powerpc machines.
95	Reported by Johannes Hielscher <jhielscher@posteo.de>.
96	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_END) [UNIX_LINUX && POWERPC]:
97	Shrink.
98
992018-02-24  Bruno Haible  <bruno@clisp.org>
100
101	Fix memory map related warnings on Alpine Linux 3.7/i386.
102	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*) [UNIX_LINUX && I80386]: Shrink,
103	to avoid the address ranges used on Alpine Linux.
104
1052018-02-24  Bruno Haible  <bruno@clisp.org>
106
107	Fix memory map related warnings on Alpine Linux 3.7/x86_64.
108	Reported by Nelson Beebe.
109	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*) [UNIX_LINUX && AMD64]: Shrink,
110	to avoid the address ranges used on Alpine Linux.
111
1122018-02-24  Bruno Haible  <bruno@clisp.org>
113
114	Fix compilation error in C++ mode with musl libc.
115	* spvw_mmap.d (mincore_pageinfo_t): Change to 'unsigned char' on all
116	Linux platforms.
117
1182018-02-19  Sam Steingold  <sds@gnu.org>
119
120	* constobj.d (lisp_implementation_version_built_string): No need
121	for "#ifdef __DATE__", it is widely supported.
122
1232018-02-18  Bruno Haible  <bruno@clisp.org>
124
125	Bump version number.
126	* version.sh: Bump version number to 2.49.93+.
127	* version.h, src/configure: Regenerated.
128
1292018-02-18  Bruno Haible  <bruno@clisp.org>
130
131	Avoid "warning: command substitution: ignored null byte in input".
132	Reported by Nelson Beebe.
133	* m4/bold.m4 (RSE_BOLD): For vt100, remove trailing NUL bytes. Only
134	physical terminals need these NULs; physical terminals are not in use
135	any more nowadays.
136	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
137
1382018-02-18  Bruno Haible  <bruno@clisp.org>
139
140	Improve installation documentation.
141	Reported by Nelson Beebe.
142	* DEPENDENCIES: State which libsigsegv version to use on IRIX.
143
1442018-02-18  Bruno Haible  <bruno@clisp.org>
145
146	Make KERNELVOID32_HEAPCODES work on Linux/arm, Linux/hppa, Linux/m68k.
147	Reported by Sébastien Villemot <sebastien@debian.org>.
148	* lispbibl.d (KERNELVOID32A_HEAPCODES/KERNELVOID32B_HEAPCODES):
149	If STACK_ADDRESS_RANGE >= 0xE0000000, use KERNELVOID32A_HEAPCODES, not
150	KERNELVOID32B_HEAPCODES.
151	(KERNELVOID32_HEAPCODES_WORKS): Set to 1 for Linux/hppa, Linux/m68k.
152	(ONE_FREE_BIT_HEAPCODES/KERNELVOID32_HEAPCODES): Remove special handling
153	of Linux/hppa and Linux/m68k.
154	* Makefile.devel (multibuild-linux-hppa, multibuild-linux-m68k): Depend
155	on build-porting32-gcc-kernelvoid32_heapcodes.
156
1572018-02-17  Bruno Haible  <bruno@clisp.org>
158
159	Fix a build failure on some Linux/arm machines.
160	Namely, a "PSEUDOCODE_ALIGNMENT is not fulfilled" error.
161	* lispbibl.d (C_CODE_ALIGNMENT) [ARM]: Define depending on __thumb__.
162	(TYPECODES/HEAPCODES): Likewise.
163	* makemake.in (XCFLAGS): On ARM, use GCC option '-marm', not
164	'-falign-functions=4', in order to enforce C_CODE_ALIGNMENT == 4.
165
1662018-02-17  Bruno Haible  <bruno@clisp.org>
167
168	Comments.
169	* lispbibl.d: Improve comments about memory map on Hurd/i386.
170
1712018-02-17  Bruno Haible  <bruno@clisp.org>
172
173	Fix possible build failure on some Linux/sparc64 machines.
174	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
175	Linux/sparc64 systems.
176
1772018-02-17  Bruno Haible  <bruno@clisp.org>
178
179	Fix possible build failure on some Linux/s390x machines.
180	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
181	Linux/s390x systems.
182	(MAPPABLE_ADDRESS_RANGE_*) [UNIX_LINUX && S390_64]: Change.
183	(SINGLEMAP_TYPE_MASK, SINGLEMAP_oint_type_shift): Adjust accordingly.
184
1852018-02-17  Bruno Haible  <bruno@clisp.org>
186
187	Fix possible build failure on some Linux/powerpc64 machines.
188	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
189	Linux/powerpc64 systems.
190	Enhance comments about memory map on Linux/PowerPC64.
191
1922018-02-17  Bruno Haible  <bruno@clisp.org>
193
194	Fix build failure on some Linux/mips64 machines.
195	Reported by Sébastien Villemot <sebastien@debian.org>.
196	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
197	Linux/mips64 systems.
198	(MAPPABLE_ADDRESS_RANGE_END) [UNIX_LINUX && MIPS64]: Change.
199	(SINGLEMAP_WORKS) [UNIX_LINUX && MIPS64]: Set to 0.
200	* Makefile.devel (multibuild-linux-mips-64): Remove
201	build-porting64-gcc-spvw_pure_blocks.
202
2032018-02-17  Bruno Haible  <bruno@clisp.org>
204
205	Fix build failure on some Linux/arm64 machines.
206	Reported by Sébastien Villemot <sebastien@debian.org>.
207	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
208	Linux/arm64 systems.
209	(SINGLEMAP_WORKS) [UNIX_LINUX && ARM64]: Set to 0.
210	* Makefile.devel (multibuild-linux-arm64): Remove
211	build-porting64-gcc-spvw_pure_blocks.
212
2132018-02-17  Bruno Haible  <bruno@clisp.org>
214
215	Fix build failure on some Linux/x86_64 machines (Ubuntu 17.10, Debian).
216	Reported by Sam Steingold and Sébastien Villemot <sebastien@debian.org>.
217	* lispbibl.d (CODE_ADDRESS_RANGE): Ensure the same value across all
218	Linux/x86_64 systems.
219	(MAPPABLE_ADDRESS_RANGE_*, SINGLEMAP_WORKS) [UNIX_LINUX && AMD64]:
220	Change.
221	* Makefile.devel (multibuild-linux-x86_64): Remove
222	build-porting64-gcc-spvw_pure_blocks.
223
2242018-02-17  Bruno Haible  <bruno@clisp.org>
225
226	Fix build failure on some Linux/powerpc machines.
227	Reported by Sébastien Villemot <sebastien@debian.org>.
228	* lispbibl.d (CODE_ADDRESS_RANGE, MAPPABLE_ADDRESS_RANGE_START)
229	[UNIX_LINUX && POWERPC]: Change.
230	(SINGLEMAP_WORKS) [UNIX_LINUX && POWERPC]: Set to 0.
231	* Makefile.devel (multibuild-linux-powerpc): Remove
232	build-porting32-gcc-spvw_pure_blocks.
233
2342018-02-17  Bruno Haible  <bruno@clisp.org>
235
236	Fix build failure on some Linux/mips machines.
237	Reported by Sébastien Villemot <sebastien@debian.org>.
238	* lispbibl.d (CODE_ADDRESS_RANGE, MAPPABLE_ADDRESS_RANGE_END)
239	[UNIX_LINUX && MIPS && !n32]: Change.
240	(SINGLEMAP_WORKS) [UNIX_LINUX && MIPS && !n32]: Set to 0.
241	* Makefile.devel (multibuild-linux-mips-32): Remove
242	build-porting32-gcc-spvw_pure_blocks.
243
2442018-02-17  Bruno Haible  <bruno@clisp.org>
245
246	Fix build failure on some Linux/i386 machines.
247	Reported by Sébastien Villemot <sebastien@debian.org>.
248	* lispbibl.d (CODE_ADDRESS_RANGE, MAPPABLE_ADDRESS_RANGE_START)
249	[UNIX_LINUX && I80386]: Change.
250	(SINGLEMAP_WORKS) [UNIX_LINUX && I80386]: Set to 0.
251	* Makefile.devel (multibuild-linux-i386): Remove
252	build-porting32-gcc-spvw_pure_blocks.
253
2542018-02-17  Bruno Haible  <bruno@clisp.org>
255
256	Fix build failure on some Linux/arm machines.
257	Reported by Dr. Werner Fink <werner@suse.de>.
258	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*) [UNIX_LINUX && ARM]: Change.
259	(SINGLEMAP_WORKS) [UNIX_LINUX && ARM]: Set to 0.
260	* Makefile.devel (multibuild-linux-arm): Remove
261	build-porting32-gcc-spvw_pure_blocks.
262
2632018-02-17  Bruno Haible  <bruno@clisp.org>
264
265	Use newest libffcall.
266	* m4/ffcall.m4 (CL_LIBFFCALL_DOWNLOAD_URL): Point to the libffcall-2.1
267	release.
268	* NEWS: Likewise.
269	* aclocal.m4, src/configure: Regenerated.
270
2712018-02-17  Bruno Haible  <bruno@clisp.org>
272
273	Fix build failure when building in the srcdir.
274	Reported by Nelson Beebe.
275	* makemake.in: When preprocessing the ari_asm_*.c and sp_asm_*.c files
276	in the srcdir, omit the '-I' option.
277
2782018-02-17  Bruno Haible  <bruno@clisp.org>
279
280	Fix compilation error in C++ mode (regression from 2018-02-11).
281	* spvw.d (output_mfih): Fix array initializer.
282
2832018-02-11  Bruno Haible  <bruno@clisp.org>
284
285	Bump version number.
286	* version.sh: Bump version number to 2.49.91+.
287	* version.h, src/configure: Regenerated.
288
2892018-02-11  Bruno Haible  <bruno@clisp.org>
290
291	Implement options -memfile-hash, -memfile-hash-of, -memfile-compatible.
292	* Makefile.devel (GNULIB_CORE): Add sha1.
293	* gllib/*: Update from gnulib.
294	* glm4/*: Likewise.
295	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
296	* spvw_memfile.d (MFIH_LEN): New macro.
297	(memflags): Use bit 22.
298	(memdump_header_t): Add '_mfihash' field.
299	(get_mem_file_interface_hash): New function.
300	(fill_memdump_header): Invoke it.
301	(memfile_operation): New enum type.
302	(memfile_handle_do_operation): Renamed from loadmem_from_handle, Add op
303	and arg arguments. Handle op_extract_mfih and op_test_compatibility as
304	well.
305	(memfile_do_operation): New function, extracted from loadmem.
306	(loadmem): Invoke it.
307	(extract_mem_file_interface_hash, is_mem_file_compatible):
308	New functions.
309	(loadmem_from_executable): Update.
310	* spvw.d: Include sha1.h. Move include of spvw_memfile.c up.
311	(main_action_t): New enum type.
312	(struct argv_actions): Add 'argv_main_action' field.
313	(parse_options): Initialize it. Parse the -memfile-hash,
314	-memfile-hash-of, -memfile-compatible options.
315	(output_mfih): New function.
316	(main): Handle action_mfihash, action_mfihash_of, action_mfcompat.
317
3182018-02-11  Bruno Haible  <bruno@clisp.org>
319
320	Simplify code.
321	* spvw_memfile.d: Reorder functions, to avoid forward declarations.
322
3232018-02-11  Bruno Haible  <bruno@clisp.org>
324
325	Enable most optimizations on GNU/kFreeBSD/i386.
326	* Makefile.devel (multibuild-freebsd-gnu-i386): New target, depending on
327	all build variants that work.
328	* makemake.in (XCFLAGS): For GNU/kFreeBSD/i386, enable all optimizations
329	except ASM.
330
3312018-02-11  Bruno Haible  <bruno@clisp.org>
332
333	Add support for GNU/kFreeBSD on i386.
334	* lispbibl.d: Treat GNU/kFreeBSD/i386 like FreeBSD/i386.
335
3362018-02-04  Bruno Haible  <bruno@clisp.org>
337
338	Enable most optimizations on IRIX mips o32.
339	* Makefile.devel (multibuild-irix-mips-32): Enable all build variants
340	that work.
341	* makemake.in (XCFLAGS): For IRIX with o32 ABI, enable all optimizations
342	except ASM.
343	* lispbibl.d (HEAPCODES1BIT_WITH_TRIVIALMAP_WORKS,
344	HEAPCODES1BIT_WITH_MALLOC_WORKS): Update value for IRIX with o32 ABI.
345
3462018-02-04  Bruno Haible  <bruno@clisp.org>
347
348	Fix error "Expecting o32 objects: ari_asm_mips.o is n32" on IRIX.
349	* makemake.in: Compile ari_asm_mips.s with the compiler, not with the
350	assembler.
351
3522018-02-04  Bruno Haible  <bruno@clisp.org>
353
354	Enable most optimizations on IRIX mips n32.
355	* Makefile.devel (multibuild-irix-mips-n32-cc,
356	multibuild-irix-mips-n32-gcc): Enable all build variants that work.
357	* makemake.in (XCFLAGS): For IRIX with n32 ABI, enable all optimizations
358	except ASM.
359
3602018-02-04  Bruno Haible  <bruno@clisp.org>
361
362	Tweak address range allocation with SINGLEMAP_MEMORY on IRIX.
363	* spvw.d (init_memory): Avoid a specific address range on IRIX.
364
3652018-02-04  Bruno Haible  <bruno@clisp.org>
366
367	rawsock: Fix compilation failure on IRIX with cc.
368	* modules/rawsock/rawsock.c (optional_sockaddr_argument, error_eai):
369	Add braces to avoid declaration-after-statement.
370
3712018-02-04  Bruno Haible  <bruno@clisp.org>
372
373	Fix configure output on IRIX.
374	* configure: Use `...` instead of $(...).
375
3762018-02-04  Bruno Haible  <bruno@clisp.org>
377
378	Enable most optimizations on Minix/i386.
379	* Makefile.devel (multibuild-minix-i386): Enable all build variants
380	that work.
381	* makemake.in (XCFLAGS): For Minix/i386, enable all optimizations
382	except ASM.
383
3842018-02-04  Bruno Haible  <bruno@clisp.org>
385
386	Add support for Minix.
387	* lispbibl.d: On Minix, define 'unix' and UNIX_MINIX. Define the
388	object representation parameters.
389	* stream.d (handle_pathname): On Minix, return NIL.
390	* makemake.in (XCFLAGS): Handle Minix.
391	On Minix, skip the test of /dev/fd/1.
392	* Makefile.devel (multibuild-minix-i386): New target.
393
3942018-02-03  Bruno Haible  <bruno@clisp.org>
395
396	Enable one more build variant on HP-UX/HPPA in 64-bit mode.
397	* Makefile.devel (multibuild-hpux-hppa-64): Enable also the
398	build-porting64-cc-limited_memory build.
399
4002018-02-03  Bruno Haible  <bruno@clisp.org>
401
402	Record result for HP-UX/HPPA in 32-bit mode.
403	* lispbibl.d (HEAPCODES1BIT_WITH_MALLOC_WORKS): Update value for
404	HP-UX/HPPA in 32-bit mode.
405
4062018-02-03  Bruno Haible  <bruno@clisp.org>
407
408	Fix a build failure on HP-UX/ia64 in 64-bit mode.
409	Namely, "PSEUDOCODE_ALIGNMENT is not fulfilled" error during clisp-link.
410	* lispbibl.d (C_CODE_ALIGNMENT): Define to only 8 on 64-bit IA64.
411
4122018-02-03  Bruno Haible  <bruno@clisp.org>
413
414	Enable some more build variants on Linux/hppa.
415	* lispbibl.d: On Linux/hppa, choose HEAPCODES by default, not
416	TYPECODES. But don't choose KERNELVOID32_HEAPCODES by default.
417	(HEAPCODES1BIT_WITH_TRIVIALMAP_WORKS, HEAPCODES1BIT_WITH_MALLOC_WORKS):
418	Update value for Linux/hppa.
419	(multibuild-linux-hppa): Enable the HEAPCODES builds that work.
420
4212018-02-03  Bruno Haible  <bruno@clisp.org>
422
423	Make KERNELVOID32_HEAPCODES work also on SPARC platforms with GCC,
424	and on Linux/mipsn32 (even with GENERATIONAL_GC).
425	* lispbibl.d: On Linux/sparc, NetBSD/sparc, and Linux/mipsn32, prefer
426	KERNELVOID32_HEAPCODES over ONE_FREE_BIT_HEAPCODES.
427	(KERNELVOID32_HEAPCODES_WORKS): Update values.
428	(_attribute_in_misaligned_varobjects_): New macro.
429	(dfloatjanus, dfloat_): Use it.
430	* stream.d (strm_buffered_extrafields_t,
431	strm_i_buffered_extrafields_t): Likewise.
432	* dfloat.d (DF_to_double): No need to define as an inline function when
433	GCC is in use.
434	* Makefile.devel (multibuild-linux-sparc, multibuild-netbsd-sparc,
435	multibuild-solaris-sparc-gcc): Depend on
436	build-porting32-gcc-kernelvoid32_heapcodes.
437
4382018-02-03  Bruno Haible  <bruno@clisp.org>
439
440	Fix crashes due to sp_jmp_buf objects going out of scope too early.
441	* stream.d (MAYBE_IGNORE_ERRORS): Extend scope of 'returner'. (Bug
442	introduced on 2010-06-15.)
443	(lisp_completion): Extend scope of 'returner'. (Bug introduced on
444	2001-03-02.)
445	* record.d (update_instance): Extend scope of 'returner'. (Bug
446	introduced on 2004-04-22.)
447	* foreign.d (EXEC-ON-STACK): Extend scope of 'returner'. (Bug
448	introduced on 2003-05-03.)
449
4502018-02-03  Bruno Haible  <bruno@clisp.org>
451
452	Fix floatparam.h generation failure with gcc 7 on i386.
453	GCC bug report: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84190>.
454	* floatparam.c (mainfn): Use 'volatile' in a few more places.
455
4562018-02-03  Bruno Haible  <bruno@clisp.org>
457
458	Update to the newest gnulib.
459	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
460	&& make -f Makefile.devel build-prerequisites".
461	* gllib/*: Update from gnulib.
462	* glm4/*: Likewise.
463	* aclocal.m4, src/configure: Regenerated.
464	* modules/*/configure: Regenerated.
465
4662018-01-28  Bruno Haible  <bruno@clisp.org>
467
468	Tweak the usable address range on IRIX.
469	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_END) [UNIX_IRIX]: Change.
470
4712018-01-28  Bruno Haible  <bruno@clisp.org>
472
473	Fix failure of the builds with -DWIDE on IRIX/mips (n32 ABI).
474	* makemake.in: When compiling with GCC for IRIX/mipsn32 and -DWIDE,
475	reduce optimizations.
476
4772018-01-28  Bruno Haible  <bruno@clisp.org>
478
479	rawsock: Fix compilation error on IRIX.
480	The <netinet/in.h> on IRIX 6.5 has only partial support for IPv6.
481	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): Test HAVE_IPV6,
482	not AF_INET6.
483
4842018-01-28  Bruno Haible  <bruno@clisp.org>
485
486	syscalls: Fix a build failure on IRIX 6.5.
487	IRIX 6.5 does not have the round() function.
488	* modules/syscalls/calls.c (POSIX:LOADAVG): Don't use the round()
489	function.
490
4912018-01-28  Bruno Haible  <bruno@clisp.org>
492
493	Fix build failure on IRIX.
494	* clisp-link.in: Use placeholder @SHELL@.
495	* makemake.in (clisp-link): Substitute a good shell for @SHELL@.
496
4972018-01-28  Bruno Haible  <bruno@clisp.org>
498
499	Enable most optimizations on HP-UX/ia64 in 64-bit mode.
500	* Makefile.devel (multibuild-hpux-ia64-64): Enable all build variants
501	that work.
502	* makemake.in (XCFLAGS): For HP-UX/ia64 in 64-bit mode, enable all
503	optimizations except ASM.
504
5052018-01-28  Bruno Haible  <bruno@clisp.org>
506
507	Choose working configuration on HP-UX/ia64 in 64-bit mode.
508	* lispbibl.d: On 64-bit HP-UX/ia64, choose HEAPCODES by default, not
509	TYPECODES.
510	Adjust parameters for HEAPCODES1BIT_WITH_MALLOC on HP-UX/ia64.
511	(GENERIC64C_HEAPCODES_WORKS): Update value for HP-UX/ia64.
512
5132018-01-28  Bruno Haible  <bruno@clisp.org>
514
515	Enable most optimizations on HP-UX/ia64 in 32-bit mode.
516	* Makefile.devel (multibuild-hpux-ia64-32): Enable all build variants
517	that work.
518	* makemake.in (XCFLAGS): For HP-UX/ia64 in 32-bit mode, enable all
519	optimizations except ASM.
520	* lispbibl.d (HEAPCODES1BIT_WITH_MALLOC_WORKS): Update value for
521	HP-UX/ia64 in 32-bit mode.
522
5232018-01-28  Bruno Haible  <bruno@clisp.org>
524
525	Enable most optimizations on HP-UX/HPPA in 64-bit mode.
526	* lispbibl.d: On HP-UX/HPPA in 64-bit mode, choose HEAPCODES by default,
527	not TYPECODES.
528	(garcol_bit_o): Find appropriate value for HP-UX/HPPA in 64-bit mode.
529	(GENERIC64C_HEAPCODES_WORKS): Update value for HP-UX/HPPA in 64-bit
530	mode.
531	* Makefile.devel (multibuild-hpux-hppa-64): Enable all build variants
532	that work.
533	* makemake.in (XCFLAGS): For 64-bit HP-UX/HPPA, enable all
534	optimizations except ASM.
535
5362018-01-28  Bruno Haible  <bruno@clisp.org>
537
538	Enable most optimizations on HP-UX/HPPA in 32-bit mode.
539	* Makefile.devel (multibuild-hpux-hppa-32): Enable all build variants
540	that work.
541	* makemake.in (XCFLAGS): For 32-bit HP-UX/HPPA, enable all
542	optimizations except ASM.
543	* lispbibl.d (KERNELVOID32_HEAPCODES_WORKS): Update value for HP-UX HPPA
544	in 32-bit mode.
545
5462018-01-28  Bruno Haible  <bruno@clisp.org>
547
548	Fix failure of the builds with TYPECODES on HP-UX with 64-bit HPPA.
549	* lispbibl.d (INIT_SYMBOL_TAB): Disable on 64-bit HPPA with HP C and
550	TYPECODES.
551
5522018-01-28  Bruno Haible  <bruno@clisp.org>
553
554	Avoid crash of KERNELVOID32_HEAPCODES build on HP-UX with 32-bit HPPA.
555	* dfloat.d (DF_to_double): Use an inline function to avoid misaligned
556	'double' access.
557
5582018-01-28  Bruno Haible  <bruno@clisp.org>
559
560	Add support for 32-bit mode on IA64.
561	* lispbibl.d (C_CODE_ALIGNMENT): Define to only 8 on 32-bit IA64.
562
5632018-01-28  Bruno Haible  <bruno@clisp.org>
564
565	Add support for 64-bit mode on HPPA.
566	* lispbibl.d (C_CODE_ALIGNMENT, C_FUNCTION_POINTER_BIAS,
567	PSEUDOCODE_ALIGNMENT, make_machine_code_unchecked, TheMachineCode):
568	Distinguish 32-bit and 64-bit HPPA cases.
569
5702018-01-28  Bruno Haible  <bruno@clisp.org>
571
572	Fix PSEUDOCODE_ALIGNMENT verification on HP-UX with 32-bit HPPA.
573	* lispbibl.d (C_FUNCTION_POINTER_BIAS): New macro.
574	(make_machine_code, TheMachineCode): Use it.
575	* spvw.d (verify_pseudocode_alignment): Likewise.
576
5772018-01-28  Bruno Haible  <bruno@clisp.org>
578
579	Don't let DISASSEMBLE on HP-UX kill the current process.
580	* disassem.lisp (disassemble-machine-code): Don't invoke gdb on HP-UX.
581
5822018-01-28  Bruno Haible  <bruno@clisp.org>
583
584	Don't write into read-only allocated C strings. Fixes a crash on HP-UX.
585	* encoding.d (canonicalize_encoding): Invoke strdup.
586	(encoding_from_name): Remove dangerous cast.
587
5882018-01-28  Bruno Haible  <bruno@clisp.org>
589
590	Fix install failure on AIX (bug#726).
591	* makemake.in (with_dynamic_modules): Set to 'no' by default on AIX.
592
5932018-01-28  Bruno Haible  <bruno@clisp.org>
594
595	Disable some more builds that don't work on Solaris/x86_64 with cc.
596	* Makefile.devel (multibuild-solaris-x86_64-cc): Don't depend on any
597	build-porting64-cc-typecodes-* target.
598	* lispbibl.d: On Solaris/x86_64 with cc, choose HEAPCODES by default,
599	not TYPECODES.
600
6012018-01-28  Bruno Haible  <bruno@clisp.org>
602
603	Fix "reserving address range" warning on Solaris/i386.
604	* spvw.d (init_memory): Exclude the address range of immediate objects
605	from the address range that we reserve for heap-allocated objects.
606
6072018-01-28  Bruno Haible  <bruno@clisp.org>
608
609	Enable another build variant on Solaris/i386.
610	* Makefile.devel (multibuild-solaris-i386-cc): Depend on
611	build-porting32-cc-debug_ari_asm.
612	(multibuild-solaris-i386-gcc): Depend on
613	build-porting32-gcc-debug_ari_asm.
614
6152018-01-28  Bruno Haible  <bruno@clisp.org>
616
617	Fix LOGTEST bug when using Sun C on i386.
618	A cast from 'int' to 'bool' works like x -> x!=0 with the standard C99
619	'bool' type, but not with the 'signed char' substitute we import from
620	gnulib. Cf. also the commit from 2004-03-12.
621	* intlog.d (I_I_logtest): Explicitly test for !=0.
622	* ari_asm_*.d (and_test_loop_up, test_loop_up): Clarify return type.
623	* ari_asm_*-macro.c: Regenerated.
624
6252018-01-28  Bruno Haible  <bruno@clisp.org>
626
627	Avoid hanging builds on Solaris, caused by "make check" in rawsock.
628	* configure: Disable "make full-mod-check".
629
6302018-01-28  Bruno Haible  <bruno@clisp.org>
631
632	Fix mistake in an exception type (bug introduced on 2004-04-22).
633	* constobj.d (O(type_socket_option)): Fix typo.
634
6352018-01-27  Bruno Haible  <bruno@clisp.org>
636
637	Add support for Linux in Microsoft WSL.
638	* lispbibl.d (init_stream_osdeps): New declaration.
639	* stream.d (is_wsl): New variable.
640	(init_stream_osdeps): New function.
641	(IS_EINVAL_EXTRA): On Microsoft WSL, treat EIO like EINVAL.
642	* spvw.d (main): Invoke init_stream_osdeps.
643
6442018-01-27  Bruno Haible  <bruno@clisp.org>
645
646	Distribute the DEPENDENCIES and INSTALL.windows files.
647	* Makefile.devel (SOURCES1): Add DEPENDENCIES, INSTALL.windows.
648
6492018-01-27  Bruno Haible  <bruno@clisp.org>
650
651	Update to the newest gnulib.
652	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
653	&& make -f Makefile.devel build-prerequisites".
654	* gllib/*: Update from gnulib.
655	* glm4/*: Likewise.
656	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
657	* modules/*/configure, modules/*/config.h.in: Regenerated.
658
6592018-01-27  Bruno Haible  <bruno@clisp.org>
660
661	Update Spanish translation.
662	* po/es.po: Update from Francisco Javier Serrador.
663	* po/es.gmo, po/clisplow_es.*: Regenerated.
664
6652018-01-26  Sam Steingold  <sds@gnu.org>
666
667	* modules/dbus/configure.in: Add missing tests for
668	dbus_message_set_serial, dbus_message_lock,
669	dbus_message_demarshal_bytes_needed,
670	dbus_connection_get_adt_audit_session_data.
671	Reported by Jerry James <loganjerry@gmail.com>.
672
6732018-01-24  Bruno Haible  <bruno@clisp.org>
674
675	Remove workarounds for GCC versions < 2.95.
676	* lispbibl.d: Bail out early when using a GCC version < 2.95.
677	Remove workarounds for these GCC versions.
678	* eval.d: Likewise.
679	* intsqrt.d: Likewise.
680	* lfloat.d: Likewise.
681
6822018-01-23  Bruno Haible  <bruno@clisp.org>
683
684	Fix initialization of modules in SINGLEMAP_MEMORY model, part 2.
685	Reported by Jerry James <loganjerry@gmail.com>.
686	* utils/modprep.c: Declare the init_function_1 and init_function_2
687	early. Emit a static variable 'this_module_stab'. Change expansion of
688	F() to refer to it, instead of to the generated subr_tab. Initialize
689	it in init_function_1 and init_function_2.
690	* modules/berkeley-db/bdb.c: Update init_function_2.
691	* modules/clx/new-clx/clx.f: Likewise.
692	* modules/pcre/cpcre.c: Likewise.
693	* modules/rawsock/rawsock.c: Likewise.
694	* modules/syscalls/calls.c: Likewise.
695
6962018-01-22  Sam Steingold  <sds@gnu.org>
697
698	* configure: When do_cbc==2, run "make base-mod-check" as cbcstep5
699	and "make full-mod-check" as cbcstep6.
700
7012018-01-22  Bruno Haible  <bruno@clisp.org>
702
703	Fix GC-safety bug introduced on 2017-12-31.
704	* lispbibl.d (SET_BIT, CLR_BIT): Remove trailing semicolon.
705	* eval.d (symbol_env_search): Remove optimization that assumes that
706	sym is constant.
707
7082018-01-22  Sam Steingold  <sds@gnu.org>
709
710	* pathname.d (my_realpath): Cosmetic change to avoid gcc
711	"warning: suggest a space before ';' or explicit braces around
712	empty body in 'while' statement".
713
7142018-01-22  Sam Steingold  <sds@gnu.org>
715
716	* clhs.lisp (open-http): Admit that HTTPS is not supported instead
717	of raising 'PARSE-INTEGER: substring "" does not have integer
718	syntax at position 0'.
719
7202018-01-22  Sam Steingold  <sds@gnu.org>
721
722	* lispbibl.d: g++ bugs are not relevant to clang.
723
7242018-01-22  Sam Steingold  <sds@gnu.org>
725
726	* glm4/no-c++.m4: Update from gnulib to enable g++ compilation.
727
7282018-01-20  Bruno Haible  <bruno@clisp.org>
729
730	Enable most optimizations on AIX/POWER in 64-bit mode.
731	* Makefile.devel (multibuild-aix-powerpc-64-xlc,
732	multibuild-aix-powerpc-64-gcc): Enable all build variants that work.
733	* makemake.in (XCFLAGS): For 64-bit AIX/POWER, enable all optimizations
734	except ASM.
735	* lispbibl.d (GENERIC64C_HEAPCODES_WORKS): Update value for AIX/POWER.
736
7372018-01-20  Bruno Haible  <bruno@clisp.org>
738
739	Enable most optimizations on AIX/POWER in 32-bit mode.
740	* Makefile.devel (multibuild-aix-powerpc-32-xlc,
741	multibuild-aix-powerpc-32-gcc): Enable all build variants that work.
742	* makemake.in (XCFLAGS): For AIX/POWER, enable all optimizations
743	except ASM.
744
7452018-01-20  Bruno Haible  <bruno@clisp.org>
746
747	Fix test failure regarding BOOLE on AIX with xlc.
748	* makemake.in: When compiling lisparit.c with xlc for AIX and -DWIDE,
749	reduce optimizations.
750
7512018-01-20  Bruno Haible  <bruno@clisp.org>
752
753	Comment.
754	* stream.d (handle_pathname): Add comment about AIX.
755
7562018-01-20  Bruno Haible  <bruno@clisp.org>
757
758	Fix a crash due to (CLEAR-INPUT *TERMINAL-IO*) on AIX.
759	* stream.d (clear_tty_input) [AIX]: Temporarily set the SIGHUP signal
760	handler.
761
7622018-01-20  Bruno Haible  <bruno@clisp.org>
763
764	Fix error while creating clisp.c on AIX with xlc.
765	* makemake.in: Choose the name of the gen-* temporary executables in a
766	way that avoids particular suffixes.
767
7682018-01-20  Bruno Haible  <bruno@clisp.org>
769
770	Fix compilation error in C++ mode on AIX in 32-bit mode.
771	* lispbibl.d (INIT_SYMBOL_TAB): Don't define when using g++ on 32-bit
772	AIX/PowerPC.
773
7742018-01-20  Bruno Haible  <bruno@clisp.org>
775
776	syscalls: Fix compilation error in C++ mode on AIX.
777	* modules/syscalls/calls.c: Don't bind to sethostid() on AIX.
778
7792018-01-20  Bruno Haible  <bruno@clisp.org>
780
781	Fix compilation error in C++ mode on AIX.
782	* spvw_mmap.d (MINCORE_ADDR_T): New type.
783	(mincore_init, is_small_range_unmapped): Use it in the mincore()
784	invocations.
785
7862018-01-20  Bruno Haible  <bruno@clisp.org>
787
788	Recommend libsigsegv 2.12.
789	* configure (libsigsegv_url): Update to 2.12.
790
7912018-01-20  Bruno Haible  <bruno@clisp.org>
792
793	Enable most optimizations on Solaris/x86_64.
794	* Makefile.devel (multibuild-solaris-x86_64-cc,
795	multibuild-solaris-x86_64-gcc): Enable all build variants that work or
796	should work.
797	* makemake.in (XCFLAGS): For Solaris/x86_64, enable all optimizations
798	except ASM.
799
8002018-01-20  Bruno Haible  <bruno@clisp.org>
801
802	Enable most optimizations on Solaris/i386.
803	* Makefile.devel (multibuild-solaris-i386-cc,
804	multibuild-solaris-i386-gcc): Enable all build variants that work or
805	should work.
806	* makemake.in (XCFLAGS): For Solaris/i386, enable all optimizations
807	except ASM.
808
8092018-01-20  Bruno Haible  <bruno@clisp.org>
810
811	Enable most optimizations on Solaris/SPARC64.
812	* Makefile.devel (multibuild-solaris-sparc64-cc,
813	multibuild-solaris-sparc64-gcc): Enable all build variants that work or
814	should work.
815	* makemake.in (XCFLAGS): For Solaris/SPARC64, enable all optimizations
816	except ASM.
817
8182018-01-20  Bruno Haible  <bruno@clisp.org>
819
820	Enable most optimizations on Solaris/SPARC.
821	* Makefile.devel (multibuild-solaris-sparc-cc,
822	multibuild-solaris-sparc-gcc): Enable all build variants that work or
823	should work.
824	* makemake.in (XCFLAGS): For Solaris/SPARC, enable all optimizations
825	except ASM.
826
8272018-01-20  Bruno Haible  <bruno@clisp.org>
828
829	Make gettext calls work with non-GNU gettext in Solaris 11 libc.
830	* makemake.in: After installing .mo files, on Solaris, create symbolic
831	links ll_CC.UTF-8 -> ll for all supported locales.
832
8332018-01-20  Bruno Haible  <bruno@clisp.org>
834
835	Fix build failure with Sun cc.
836	Sun cc and HP-UX cc do not look in the current directory by default
837	when attempting to fulfil a '#include "..."' statement after a #line
838	preprocessor directive. Cf. commit from 2017-03-16.
839	* makemake.in: When compiling output of TXT2C, add option '-I.'.
840	* modules/*/Makefile.in: When compiling a .m.c file, add option '-I.'.
841
8422018-01-20  Bruno Haible  <bruno@clisp.org>
843
844	Fix error during initialization of *TERMINAL-IO* on Mac OS X.
845	* stream.d (handle_type): Ignore EBADF error on Mac OS X.
846	(regular_or_pipe_handle_p): Renamed from pipe_file_handle_p.
847
8482018-01-20  Bruno Haible  <bruno@clisp.org>
849
850	Fix use of libtool's archive_cmds on Mac OS X.
851	* makemake.in (DSYMUTIL): New variable.
852	(archive_cmds): Don't lose references to $allow_undefined_flag.
853	(XCC_CREATESHARED): Remove second command if present.
854
8552018-01-20  Bruno Haible  <bruno@clisp.org>
856
857	Avoid problem with shared libraries on Mac OS X.
858	* makemake.in (SHREXT): Define to '.dylib' on Mac OS X and to '.sl' on
859	HP-UX.
860
8612018-01-20  Bruno Haible  <bruno@clisp.org>
862
863	Enable most optimizations on NetBSD/sparc.
864	* Makefile.devel (multibuild-netbsd-sparc): Enable all build variants
865	that work.
866	* makemake.in (XCFLAGS): For NetBSD/sparc, enable all optimizations
867	except ASM.
868
8692018-01-20  Bruno Haible  <bruno@clisp.org>
870
871	Enable most optimizations on DragonFly/i386.
872	None of the builds actually works for me: the kernel panics too often.
873	* Makefile.devel (multibuild-dragonfly-i386): Enable all build variants
874	that should work.
875	* makemake.in (XCFLAGS): For DragonFly/i386, enable all optimizations
876	except ASM.
877
8782018-01-20  Bruno Haible  <bruno@clisp.org>
879
880	Enable most optimizations on FreeBSD/arm64.
881	* Makefile.devel (multibuild-freebsd-arm64): Enable all build variants
882	that work.
883	* makemake.in (XCFLAGS): For FreeBSD/arm64, enable all optimizations
884	except ASM.
885
8862018-01-20  Bruno Haible  <bruno@clisp.org>
887
888	Fix build failure on FreeBSD/arm64 and Solaris/SPARC64 with non-GCC
889	compiler and NO_ADDRESS_SPACE_ASSUMPTIONS.
890	* lispbibl.d: On FreeBSD/arm64 with clang and on Solaris/SPARC64 with
891	cc, prefer GENERIC64B_HEAPCODES over GENERIC64C_HEAPCODES.
892	(GENERIC64B_HEAPCODES_WORKS): Define accordingly.
893
8942018-01-20  Bruno Haible  <bruno@clisp.org>
895
896	Update set of working builds for Linux/s390x.
897	* Makefile.devel (multibuild-linux-s390x): Don't depend on
898	build-porting64-gcc-debug_gcsafety.
899
9002018-01-20  Bruno Haible  <bruno@clisp.org>
901
902	Fix crash of build-porting64-gcc-debug_gcsafety build on Linux/s390x.
903	* makemake.in: When we already have -O0 in the $XCFLAGS, don't add -O1
904	to a particular compilation command.
905
9062018-01-20  Bruno Haible  <bruno@clisp.org>
907
908	Update comments.
909	* stream.d (clear_tty_input, finish_tty_output, clear_tty_output):
910	Update comments after 2017-10-05 change.
911
9122018-01-20  Bruno Haible  <bruno@clisp.org>
913
914	When testing, enable a couple of optimizations that are not risky.
915	This avoids test failures with non-GCC compilers.
916	* Makefile.devel (build-porting*-one_free_bit_heapcodes-trivialmap,
917	build-porting*-kernelvoid32_heapcodes,
918	build-porting*-generic64_heapcodes,
919	build-porting*-typecodes-spvw_mixed_blocks-trivialmap,
920	build-porting*-spvw_pure_blocks): Remove flags -DNO_FAST_FLOAT
921	-DNO_FAST_DOUBLE -DNO_ALLOCA.
922
9232018-01-20  Bruno Haible  <bruno@clisp.org>
924
925	Fix crash with all non-GCC/clang compilers (regression from 2006-09-03).
926	* lispbibl.d (Cclosure_last_const): Don't use sizeof of a struct that
927	contains a variable-length array.
928	* unix/PLATFORMS: Remove section about Sun cc.
929
9302018-01-20  Bruno Haible  <bruno@clisp.org>
931
932	Fix compilation error in C++ mode (regression from 2017-12-04).
933	* modules/regexp/regexi.c (REGEXP-EXEC): Add necessary casts.
934
9352018-01-20  Bruno Haible  <bruno@clisp.org>
936
937	syscalls: Make this module work with DYNAMIC_MODULES.
938	Fixes bug#725.
939	* modules/syscalls/calls.c (bogomips): New function, moved here from
940	bogomips.c. Use 'volatile' to defeat compiler optimizations.
941	* modules/syscalls/bogomips.c: Remove file.
942	* modules/syscalls/Makefile.in (bogomips.o): Remove rule.
943	(GENERATED): Remove bogomips.o.
944	* modules/syscalls/link.sh.in (NEW_FILES): Likewise.
945
9462018-01-20  Bruno Haible  <bruno@clisp.org>
947
948	clisp-link: Fix "ld: SONAME must not be empty string" warning.
949	* clisp-link (add): Set 'dll' before invoking @createsharedlib@.
950
9512018-01-18  Sam Steingold  <sds@gnu.org>
952
953	Follow suggestions in https://stackoverflow.com/q/48283885/850781
954	* modules/pari/configure.in: Accept --with-pari-datadir and search
955	for pari.desc there and in other inferred locations.
956	* modules/pari/Makefile.in: Substitute PARI_DATADIR and pass it to
957	pari.lisp compilation.
958	* modules/pari/pari.lisp: Assume the 1st compilation arg point to
959	the directory with pari.desc.
960
9612018-01-14  Bruno Haible  <bruno@clisp.org>
962
963	Enable most optimizations on Mac OS X/x86_64.
964	* Makefile.devel (multibuild-macosx-x86_64): Enable all build variants
965	that work.
966	* makemake.in (XCFLAGS): For Mac OS X/x86_64, enable all optimizations
967	except ASM.
968
9692018-01-14  Bruno Haible  <bruno@clisp.org>
970
971	Enable most optimizations on Mac OS X/PowerPC.
972	* Makefile.devel (multibuild-macosx-powerpc): Enable all build variants
973	that work or should work.
974	* makemake.in (XCFLAGS): For Mac OS X/PowerPC, enable all optimizations
975	except ASM.
976
9772018-01-14  Bruno Haible  <bruno@clisp.org>
978
979	Enable most optimizations on Mac OS X/i386.
980	* Makefile.devel (multibuild-macosx-i386): Enable all build variants
981	that work.
982	* makemake.in (XCFLAGS): For Mac OS X/i386, enable all optimizations
983	except ASM.
984
9852018-01-14  Bruno Haible  <bruno@clisp.org>
986
987	Enable most optimizations on OpenBSD/x86_64.
988	* Makefile.devel (multibuild-openbsd-x86_64): Enable all build variants
989	that work.
990	* makemake.in (XCFLAGS): For OpenBSD/x86_64, enable all optimizations
991	except ASM.
992
9932018-01-14  Bruno Haible  <bruno@clisp.org>
994
995	Enable most optimizations on OpenBSD/i386.
996	* Makefile.devel (multibuild-openbsd-i386): Enable all build variants
997	that work.
998	* makemake.in (XCFLAGS): For OpenBSD/i386, enable all optimizations
999	except ASM.
1000
10012018-01-14  Bruno Haible  <bruno@clisp.org>
1002
1003	Enable most optimizations on NetBSD/x86_64.
1004	* Makefile.devel (multibuild-netbsd-x86_64): Enable all build variants
1005	that work.
1006	* makemake.in (XCFLAGS): For NetBSD/x86_64, enable all optimizations
1007	except ASM.
1008
10092018-01-14  Bruno Haible  <bruno@clisp.org>
1010
1011	Enable most optimizations on NetBSD/i386.
1012	* Makefile.devel (multibuild-netbsd-i386): Enable all build variants
1013	that work.
1014	* makemake.in (XCFLAGS): For NetBSD/i386, enable all optimizations
1015	except ASM.
1016
10172018-01-14  Bruno Haible  <bruno@clisp.org>
1018
1019	Enable most optimizations on FreeBSD/x86_64.
1020	* Makefile.devel (multibuild-freebsd-x86_64): Enable all build variants
1021	that work.
1022	* makemake.in (XCFLAGS): For FreeBSD/x86_64, enable all optimizations
1023	except ASM.
1024
10252018-01-14  Bruno Haible  <bruno@clisp.org>
1026
1027	Enable most optimizations on FreeBSD/i386.
1028	* Makefile.devel (multibuild-freebsd-i386): Enable all build variants
1029	that work.
1030	* makemake.in (XCFLAGS): For FreeBSD/i386, enable all optimizations
1031	except ASM.
1032
10332018-01-14  Bruno Haible  <bruno@clisp.org>
1034
1035	Enable most optimizations on Linux/mips64.
1036	* Makefile.devel (multibuild-linux-mips-64): Renamed from
1037	multibuild-linux-mipseb-64 and multibuild-linux-mipsel-64. Enable all
1038	build variants that work.
1039	* makemake.in (XCFLAGS): For Linux/mips64 with 64-bit ABI, enable all
1040	optimizations except ASM.
1041
10422018-01-14  Bruno Haible  <bruno@clisp.org>
1043
1044	Enable most optimizations on Linux/mipsn32.
1045	* Makefile.devel (multibuild-linux-mips-n32): Renamed from
1046	multibuild-linux-mipseb-n32 and multibuild-linux-mipsel-n32. Enable all
1047	build variants that work.
1048	* makemake.in (XCFLAGS): For Linux/mips64 with n32 ABI, enable all
1049	optimizations except ASM.
1050
10512018-01-14  Bruno Haible  <bruno@clisp.org>
1052
1053	Enable most optimizations on Linux/mips.
1054	* Makefile.devel (multibuild-linux-mips-32): Renamed from
1055	multibuild-linux-mipseb-32 and multibuild-linux-mipsel-32. Enable all
1056	build variants that work.
1057	* makemake.in (XCFLAGS): For Linux/mips with o32 ABI, enable all
1058	optimizations except ASM.
1059
10602018-01-14  Bruno Haible  <bruno@clisp.org>
1061
1062	Fix failure of the spvw_pure_blocks build on Linux/mipsn32.
1063	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_START): Treat Linux/mipsn32 like
1064	Linux/mips32.
1065	(SINGLEMAP_*) [Linux/mipsn32]: Update accordingly.
1066
10672018-01-14  Bruno Haible  <bruno@clisp.org>
1068
1069	Fix compilation error on Linux/mipsn32.
1070	* makemake.in: On mipsn32 platforms, use ari_asm_mips.d and
1071	sp_asm_mips.d.
1072	* arilev1.d: On mipsn32 platforms, include ari_asm_mips.c, not
1073	ari_asm_mips64.c.
1074
10752018-01-14  Bruno Haible  <bruno@clisp.org>
1076
1077	Fix failure of the builds with -DWIDE on Linux/mips (o32 ABI).
1078	* makemake.in: When compiling with GCC for Linux/mips and -DWIDE,
1079	reduce optimizations.
1080
10812018-01-14  Bruno Haible  <bruno@clisp.org>
1082
1083	Enable most optimizations on Linux/alpha.
1084	* Makefile.devel (multibuild-linux-alpha): Enable all build variants
1085	that work.
1086	* makemake.in (XCFLAGS): For Linux/alpha, enable all optimizations
1087	except ASM.
1088
10892018-01-14  Bruno Haible  <bruno@clisp.org>
1090
1091	Fix a bug in the optimizations for SPARC64.
1092	* arilev0.d (mulu16): Cast the operands from uint16 to uint32, to force
1093	a zero-extend before the asm-coded instructions.
1094
10952018-01-13  Bruno Haible  <bruno@clisp.org>
1096
1097	Make SYS::IMPLEMENTATION-DEPENDENT work in all memory models.
1098	* control.d (make_variable_frame): Fix pushSTACK_symbolwithflags
1099	invocation.
1100
11012018-01-13  Bruno Haible  <bruno@clisp.org>
1102
1103	Print frame pointers as #<FRAME-POINTER nn> also in HEAPCODES model.
1104	* io.d (prin_object_dispatch_low) [HEAPCODES]: For a frame pointer,
1105	invoke pr_framepointer, not pr_machine.
1106
11072018-01-14  Bruno Haible  <bruno@clisp.org>
1108
1109	Enable most optimizations on Hurd/i386.
1110	* Makefile.devel (multibuild-hurd-i386): Enable all build variants
1111	that work.
1112	* makemake.in (XCFLAGS): For Hurd/i386, enable all optimizations
1113	except ASM.
1114
11152018-01-14  Bruno Haible  <bruno@clisp.org>
1116
1117	Fix failure of the builds with -DWIDE on Hurd/i386 and FreeBSD/i386.
1118	* makemake.in: When compiling with GCC for i386 and -DWIDE, reduce
1119	optimizations.
1120
11212018-01-14  Bruno Haible  <bruno@clisp.org>
1122
1123	Enable most optimizations on Linux/s390x.
1124	* Makefile.devel (multibuild-linux-s390x): Enable all build variants
1125	that work.
1126	* makemake.in (XCFLAGS): For Linux/s390x, enable all optimizations
1127	except ASM.
1128
11292018-01-14  Bruno Haible  <bruno@clisp.org>
1130
1131	Enable most optimizations on Linux/s390.
1132	* Makefile.devel (multibuild-linux-s390): Enable all build variants
1133	that work.
1134	* makemake.in (XCFLAGS): For Linux/s390, enable all optimizations
1135	except ASM.
1136
11372018-01-14  Bruno Haible  <bruno@clisp.org>
1138
1139	Enable most optimizations on Linux/ia64.
1140	* Makefile.devel (multibuild-linux-ia64): Enable all build variants
1141	that work.
1142	* makemake.in (XCFLAGS): For Linux/ia64, enable all optimizations
1143	except ASM.
1144
11452018-01-13  Bruno Haible  <bruno@clisp.org>
1146
1147	Improve framepointerp in GENERIC64C_HEAPCODES model.
1148	* lispbibl.d (framepointerp) [GENERIC64C_HEAPCODES]: Correct bit mask.
1149
11502018-01-13  Bruno Haible  <bruno@clisp.org>
1151
1152	Improve the quality of SXHASH on instances of STANDARD-STABLEHASH and
1153	STRUCTURE-STABLEHASH.
1154	Suggested by Sam Steingold.
1155	* hashtabl.d (sxhash_clause2): Renamed from sxhash.
1156	(sxhash): New function.
1157
11582018-01-11  Bruno Haible  <bruno@clisp.org>
1159
1160	Enable most optimizations on GNU/kFreeBSD/x86_64.
1161	* Makefile.devel (multibuild-freebsd-gnu-x86_64): Enable all build
1162	variants.
1163	* makemake.in (XCFLAGS): For GNU/kFreeBSD/x86_64, enable all
1164	optimizations except ASM.
1165
11662018-01-11  Bruno Haible  <bruno@clisp.org>
1167
1168	Enable most optimizations on Linux/sparc64.
1169	* Makefile.devel (multibuild-linux-sparc64): Enable all build variants
1170	that work.
1171	* makemake.in (XCFLAGS): For Linux/sparc64, enable all optimizations
1172	except ASM.
1173
11742018-01-11  Bruno Haible  <bruno@clisp.org>
1175
1176	Enable most optimizations on Linux/sparc.
1177	* Makefile.devel (multibuild-linux-sparc): Enable all build variants
1178	that work.
1179	* makemake.in (XCFLAGS): For Linux/sparc, enable all optimizations
1180	except ASM.
1181
11822018-01-11  Bruno Haible  <bruno@clisp.org>
1183
1184	Enable most optimizations on Linux/powerpc64le.
1185	* Makefile.devel (multibuild-linux-powerpc64le): Enable all build
1186	variants.
1187	* makemake.in (XCFLAGS): For Linux/powerpc64le, enable all optimizations
1188	except ASM.
1189
11902018-01-11  Bruno Haible  <bruno@clisp.org>
1191
1192	Enable most optimizations on Linux/powerpc64.
1193	* Makefile.devel (multibuild-linux-powerpc64): Enable all build
1194	variants.
1195	* makemake.in (XCFLAGS): For Linux/powerpc64, enable all optimizations
1196	except ASM.
1197
11982018-01-11  Bruno Haible  <bruno@clisp.org>
1199
1200	Enable most optimizations on Linux/powerpc.
1201	* Makefile.devel (multibuild-linux-powerpc): Enable all build variants
1202	that work.
1203	* makemake.in (XCFLAGS): For Linux/powerpc, enable all optimizations
1204	except ASM.
1205
12062018-01-11  Bruno Haible  <bruno@clisp.org>
1207
1208	Enable most optimizations on Linux/arm64.
1209	* Makefile.devel (multibuild-linux-arm64): Enable all build variants.
1210	* makemake.in (XCFLAGS): For Linux/arm64, enable all optimizations
1211	except ASM.
1212
12132018-01-11  Bruno Haible  <bruno@clisp.org>
1214
1215	Enable most optimizations on Linux/arm.
1216	* Makefile.devel (multibuild-linux-arm): Enable all build variants
1217	that work.
1218	* makemake.in (XCFLAGS): For Linux/arm, enable all optimizations
1219	except ASM.
1220
12212018-01-11  Bruno Haible  <bruno@clisp.org>
1222
1223	Enable most optimizations on Linux/m68k.
1224	* Makefile.devel (multibuild-linux-m68k): Enable all build variants
1225	that are intended to work.
1226	* makemake.in (XCFLAGS): For Linux/m68k, enable all optimizations
1227	except ASM.
1228
12292018-01-11  Sam Steingold  <sds@gnu.org>
1230
1231	DIRECTORY matches like PATHNAME-MATCH-P (bug#724).
1232	* pathname.d (split_nametype_match): Extract from ...
1233	(directory_search_scandir): Call it instead of wildcard_match on
1234	direntry.
1235	(directory_search): Use the pathname object instead of
1236	file_namestring for name&type.
1237
12382018-01-10  Bruno Haible  <bruno@clisp.org>
1239
1240	Enable more optimizations on Linux/hppa.
1241	* makemake.in (XCFLAGS): For Linux/hppa, enable all optimizations
1242	except ASM.
1243	* Makefile.devel (multibuild-linux-hppa): Don't depend on
1244	build-porting32-gcc-ari_asm, since build-porting32-gcc-safety0 tests
1245	this optimization now.
1246
12472018-01-10  Bruno Haible  <bruno@clisp.org>
1248
1249	Enable more optimizations on Linux/x86_64-x32.
1250	* makemake.in (XCFLAGS): For Linux/x86_64-x32, enable all optimizations
1251	except ASM.
1252
12532018-01-10  Bruno Haible  <bruno@clisp.org>
1254
1255	Enable more optimizations on Linux/i386.
1256	* makemake.in (XCFLAGS): For Linux/i386, enable all optimizations
1257	except ASM.
1258	* Makefile.devel (multibuild-linux-i386): Don't depend on
1259	build-porting32-gcc-ari_asm and build-porting32-gcc-arilev0-asm, since
1260	build-porting32-gcc-safety0 tests both of these optimizations now.
1261
12622018-01-10  Bruno Haible  <bruno@clisp.org>
1263
1264	Enable more optimizations on Linux/x86_64.
1265	* makemake.in (XCFLAGS): For Linux/x86_64, enable all optimizations
1266	except ASM.
1267
12682018-01-09  Bruno Haible  <bruno@clisp.org>
1269
1270	ari_asm for ARM: Avoid use of privileged instructions.
1271	Reported at <https://bugzilla.redhat.com/show_bug.cgi?id=812928#c7>.
1272	* ari_asm_arm.d: Use LDMFD and LDMccFD instructions without ^.
1273	* ari_asm_arm-macro.c: Regenerated.
1274
12752018-01-09  Bruno Haible  <bruno@clisp.org>
1276
1277	ari_asm for ARM: Update instructions for ARMv5 and newer or ARMv4T.
1278	* ari_asm_arm.d: Use "BXcc lr" instead of "MOVcc[S] pc,lr" instruction.
1279	* ari_asm_arm-macro.c: Regenerated.
1280
12812018-01-09  Bruno Haible  <bruno@clisp.org>
1282
1283	ari_asm for ARM: Avoid warning about deprecated instruction.
1284	* ari_asm_arm.d: Use CMP instead of CMPS instruction.
1285	* ari_asm_arm-macro.c: Regenerated.
1286
12872018-01-09  Bruno Haible  <bruno@clisp.org>
1288
1289	Modernize syntax transformation of assembly-language files.
1290	* src/ari_asm_arm.d: Convert to Linux/arm syntax, with %% preprocessor
1291	directives. Remove GNU-stack note.
1292	* src/ari_asm_hppa.d: Convert to Linux/hppa syntax. Remove GNU-stack
1293	note.
1294	* src/ari_asm_i386.d, src/sp_asm_i386.d: Convert to Linux/i386 syntax.
1295	Remove GNU-stack note.
1296	* src/sp_asm_m68k.d: Convert to Linux/m68k syntax. Remove GNU-stack
1297	note.
1298	* src/ari_asm_mips.d, src/sp_asm_mips.d: Convert to Linux/mips syntax,
1299	with %% preprocessor directives.
1300	* src/ari_asm_mips64.d: Convert to Linux/mips64 syntax, with %%
1301	preprocessor directives.
1302	* src/ari_asm_sparc.d, src/sp_asm_sparc.d: Convert to Linux/sparc
1303	syntax, with %% preprocessor directives. Remove GNU-stack note.
1304	* src/ari_asm_sparc64.d, src/sp_asm_sparc64.d: Convert to Linux/sparc64
1305	syntax, with %% preprocessor directives. Remove GNU-stack note.
1306	* utils/comment5.sed: New file.
1307	* src/asm-arm.sh, src/asm-arm.h: New files, from GNU libffcall.
1308	* src/asm-hppa.sh, src/asm-hppa.h: New files, from GNU libffcall.
1309	* src/asm-i386.sh, src/asm-i386.h: New files, from GNU libffcall.
1310	* src/asmi386.sh, src/asmi386.hh, src/asmi386.h: Remove files.
1311	* src/asm-m68k.sh, src/asm-m68k.h: New files, from GNU libffcall.
1312	* src/asm-mips.sh, src/asm-mips.h: New files, from GNU libffcall.
1313	* src/asm-sparc.sh, src/asm-sparc.h: New files, from GNU libffcall.
1314	* src/noexecstack.h: New file, from GNU libffcall.
1315	* src/noexecstack-arm.h: Likewise.
1316	* Makefile.devel (src/ari_asm_*-macro.c, src/sp_asm_*-macro.c): New
1317	rules.
1318	(src/asmi386.h, src/ari_asm_i386.msvc.c, src/sp_asm_i386.msvc.c):
1319	Remove rules.
1320	(build-prerequisites): Update.
1321	* makemake.in (SED): Emit new variable.
1322	(ASMFLAGS): Don't use K&R mode of SunPRO C.
1323	Generate .s file of assembly-language file by processing *-macro.c, in
1324	a way similar to GNU libffcall.
1325	With MSVC, generate .obj file of assembly-language file by compiling
1326	*-macro.c.
1327	* src/ari_asm_*-macro.c, src/sp_asm_*-macro.c: New generated files.
1328	* src/ari_asm_i386.msvc.c, src/sp_asm_i386.msvc.c: Remove generated
1329	files.
1330
13312018-01-09  Bruno Haible  <bruno@clisp.org>
1332
1333	build: Revisit 'cpu' variable.
1334	* makemake.in (cpu): Simplify fallback code that should never run.
1335	(XCFLAGS): Treat $cpu = armhf like $cpu = arm.
1336
13372018-01-07  Sam Steingold  <sds@gnu.org>
1338
1339	Modernize GDBM interface.
1340	* modules/gdbm/gdbm.c (check_gdbm_errno): Add more error codes.
1341	(gdbm_open_flags): DEFCHECKER(bitmasks=both).
1342	(GDBM-OPEN): Restore :OPTIONS.
1343	(GDBM-DEFAULT-KEY-TYPE, GDBM-DEFAULT-VALUE-TYPE): Remove,
1344	use GDBM-OPT instead.
1345	(GDBM-OPT, %SET-GDBM-OPT): Replace GDBM-SETOPT.
1346	* modules/gdbm/gdbm.lisp (GDBM-OPT): Add defsetf.
1347
13482018-01-06  Sam Steingold  <sds@gnu.org>
1349
1350	Restore the code to avoid -Wmissing-declarations.
1351	* utils/modprep.lisp (print-tables-2): Revert part of 2017-12-05.
1352	* foreign1.lisp (finalize-coutput-file): Revert part of 2017-11-29.
1353
13542018-01-04  Sam Steingold  <sds@gnu.org>
1355
1356	* modules/gdbm/gdbm.c (gdbm_open_flags): DEFFLAGSET, not DEFCHECKER.
1357	(GDBM-OPEN): Support all the current open flags.
1358
13592018-01-04  Sam Steingold  <sds@gnu.org>
1360
1361	* clhs.lisp (open-url): Remove an unused variable.
1362
13632018-01-04  Sam Steingold  <sds@gnu.org>
1364
1365	* modules/gdbm/gdbm.c (error_gdbm): Fix declaration for gdbm 1.14.
1366	(open_gdbm): No need to cast error_gdbm.
1367	(GDBM:GDBM-COUNT): New function.
1368	* modules/gdbm/gdbm.lisp: Export it.
1369
13702018-01-01  Bruno Haible  <bruno@clisp.org>
1371
1372	Bump copyright year.
1373	* COPYRIGHT: Bump year.
1374	* spvw.d (print_banner): Likewise.
1375
13762018-01-01  Bruno Haible  <bruno@clisp.org>
1377
1378	Tweak mappable address range for Linux/x86_64.
1379	Reported by Sam Steingold in bug#718.
1380	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*, SINGLEMAP_*) [UNIX_LINUX &&
1381	AMD64]: Define differently.
1382
13832018-01-01  Bruno Haible  <bruno@clisp.org>
1384
1385	Modernization: Use improvements from gnulib and libffcall.
1386	* m4/as-underscore.m4: Replace with version from GNU libffcall.
1387	* aclocal.m4, src/configure, src/config.h.in, gllib/*: Regenerated.
1388
13892017-12-31  Bruno Haible  <bruno@clisp.org>
1390
1391	Update Spanish translation.
1392	* po/es.po: Update from Francisco Javier Serrador.
1393	* po/es.gmo, po/clisplow_es.*: Regenerated.
1394
13952017-12-31  Bruno Haible  <bruno@clisp.org>
1396
1397	Emit a warning when LOOP is used with unportable syntax.
1398	* loop.lisp (loop-initialization): Add member 'impdependent-declspec'.
1399	(expand-loop): Wrap selected initialization forms in LOCALLY with a
1400	SYS::IMPLEMENTATION-DEPENDENT declaration for variables that are not
1401	guaranteed to be visible.
1402
14032017-12-31  Bruno Haible  <bruno@clisp.org>
1404
1405	Support new declaration SYS::IMPLEMENTATION-DEPENDENT.
1406	* lispbibl.d (impdependent): New macro.
1407	(sym_macrop): Mark as maygc.
1408	(check_symbol_in_declaration): Renamed from check_symbol_special.
1409	Add decl_identifier argument.
1410	* constsym.d: Add SYS::IMPLEMENTATION-DEPENDENT.
1411	* constobj.d (O(printstring_implementation_dependent)): Add.
1412	(O(declaration_types)): Add SYS::IMPLEMENTATION-DEPENDENT to the
1413	known declarations.
1414	* io.d (pr_system): Handle impdependent.
1415	* spvw_debug.d (nobject_out1): Likewise.
1416	* error.d (check_symbol_in_declaration): Renamed from
1417	check_symbol_special. Add decl_identifier argument.
1418	* control.d (specdecled_): Ignore the bindings with "value"
1419	impdependent.
1420	(make_variable_frame): Handle SYS::IMPLEMENTATION-DEPENDENT
1421	declarations.
1422	* eval.d (warn_impdependent): New function.
1423	(symbol_env_search): Invoke warn_impdependent when encountering
1424	impdependent.
1425	(sym_value, sym_macrop): Mark as maygc.
1426	(setq, macroexp0, get_closure): Update.
1427	* compiler.lisp (impdependent): New variable.
1428	(venv-search): Emit warning about implementation-dependent variable
1429	references.
1430	(process-declarations): Return additional value: the impdependent
1431	symbols.
1432	(*impdependents*): New variable.
1433	(push-specials-impdependents): Renamed from push-specials.
1434	Update *VENV* also for the impdependent symbols.
1435	(c-LAMBDABODY, c-LET/LET*, c-LOCALLY, c-MULTIPLE-VALUE-BIND, c-FLET)
1436	(c-LABELS, c-MACROLET, c-SYMBOL-MACROLET, c-FUNCALL-INLINE): Update.
1437
14382017-12-29  Bruno Haible  <bruno@clisp.org>
1439
1440	Don't create a circular tree when recovering from continuable error
1441	(bug from 2003-05-20).
1442	* control.d (make_variable_frame): Store the corrected symbol in the
1443	source program.
1444
14452017-12-29  Bruno Haible  <bruno@clisp.org>
1446
1447	Remove unused code.
1448	* loop.lisp (wrap-unwind-protect): Remove function.
1449	(expand-loop): Don't use it.
1450
14512017-12-29  Bruno Haible  <bruno@clisp.org>
1452
1453	* loop.lisp: Translate and improve comments.
1454
14552017-12-20  Sam Steingold  <sds@gnu.org>
1456
1457	* modules/pari/pari.lisp (make-arg-spec): Downcase keyword args to
1458	avoid having to write (pari:random_ :|n| 10).
1459
14602017-12-20  Sam Steingold  <sds@gnu.org>
1461
1462	Finish rfe#21: add :GUARD argument to DEF-C-VAR.
1463	* foreign1.lisp (with-guard): New macro.
1464	(finalize-coutput-file): Use it for constants, types, variables,
1465	and functions.
1466	(def-c-var): Accept :GUARD, defaulting to *FOREIGN-GUARD*, pass to
1467	(note-c-var): Save guard to *VARIABLE-LIST*.
1468
14692017-12-17  Sam Steingold  <sds@gnu.org>
1470
1471	* modules/pari/pari.lisp (make-documentation): Set doc instead of
1472	expanding into a form that does it.
1473	(polsturm): Redefine with better keyword args, preserving the doc
1474	using make-documentation.
1475
14762017-12-15  Sam Steingold  <sds@gnu.org>
1477
1478	* modules/pari/pari.lisp: Convert to and from INFINITY (+oo and -oo)
1479
14802017-12-15  Sam Steingold  <sds@gnu.org>
1481
1482	Most of the PARI interface functions are generated automatically.
1483	* modules/pari/desc2lisp.lisp: New file, read
1484	$datadir/pari/pari.desc and emi pari-call-out forms.
1485	* modules/pari/pari.lisp: Remove most of pari-call-out forms and
1486	use desc2lisp to interface to most of the GP functions.
1487
14882017-12-15  Bruno Haible  <bruno@clisp.org>
1489
1490	Fix configure failure with some shells (regression from 2017-12-04).
1491	Reported by Blake McBride <blake@mcbride.name>.
1492	* configure: Don't use unportable 'pipefail' shell feature. Use
1493	explicit failure test for the ${MAKE} commands instead.
1494
14952017-12-11  Sam Steingold  <sds@gnu.org>
1496
1497	* modules/regexp/regexp.lisp (regexp-split): Respect the :END argument.
1498
14992017-12-10  Sam Steingold  <sds@gnu.org>
1500
1501	* loop.lisp (expand-loop): Revert the 2017-11-22 fix for bug#375.
1502
15032017-12-08  Sam Steingold  <sds@gnu.org>
1504
1505	Ensure that all positional args are in *ARGS* when compiling.
1506	* spvw.d (push_to_args): Extract from ...
1507	(main_actions): Call push_to_args() on argv_execute_args when
1508	compiling in addition to when scripting
1509	* makemake.in (check-script): Test that.
1510
15112017-12-07  Jerry James  <loganjerry@gmail.com>
1512	    Sam Steingold  <sds@gnu.org>
1513
1514	Avoid -Wunsequenced / -Wsequence-point warnings (subsumes patch#54).
1515	* modules/clx/new-clx/clx.f (STANDARD_XID_OBJECT_LOOK)
1516	(STANDARD_PTR_OBJECT_LOOK): Avoid multiple popSTACK()s in a single
1517	expression by creating a separate statement for each.
1518	* modules/rawsock/rawsock.c (RAWSOCK:GETADDRINFO): Likewise.
1519	* modules/syscalls/calls.c (POSIX:MKNOD): Likewise.
1520
15212017-12-06  Sam Steingold  <sds@gnu.org>
1522
1523	* emacs/d-mode.el (d-extra-keywords): Add "unused".
1524	* array.d, encoding.d, foreign.d, funarg.d, io.d, pathname.d,
1525	* sequence.d, socket.d, spvw.d, spvw_garcol.d, spvw_garcol_old.d,
1526	* spvw_mmap.d, spvw_sigint.d, spvw_sigpipe.d, spvw_sigsegv.d,
1527	* spvw_sigwinch.d, stream.d, time.d, gctrigger.c: Code cleanup:
1528	use "unused(V)" instead of "(void)V".
1529
15302017-12-06  Sam Steingold  <sds@gnu.org>
1531
1532	* lispbibl.d (handle_fault_range) [!(GENERATIONAL_GC & SPVW_MIXED)]:
1533	Expand non-trivially to avoid -Wunused-parameter.
1534
15352017-12-06  Sam Steingold  <sds@gnu.org>
1536
1537	* makemake.in (LIBS): Add LIBUNISTRING like LIBSIGSEGV. Fix bug#719.
1538
15392017-12-06  Sam Steingold  <sds@gnu.org>
1540
1541	Make sure the Darwin foo.dSYM directories are removed by clean et al.
1542	* makemake.in (exefiles, EXERM): New variables.
1543	Used throughout to ensure removal of .dSYM. Cf. patch#50.
1544
15452017-12-05  Jörg Höhle  <hoehle@users.sourceforge.net>
1546
1547	* loop.lisp (destructure-type): In LOOP destructuring, type NIL
1548	originally meant: "Skip type declaration for this variable" (patch#53).
1549
15502017-12-05  Sam Steingold  <sds@gnu.org>
1551
1552	* utils/modprep.lisp (print-tables-2): Do not output unnecessary
1553	prototypes, but output code to avoid the -Wunused-parameter warning.
1554	Similar to the 2017-11-29 foreign1.lisp patch.
1555
15562017-12-05  Ken Brown  <kbrown@cornell.edu>
1557
1558	* encoding.d (encoding_from_name) [UNIX_CYGWIN]: Use Unix line
1559	endings (patch#47).
1560
15612017-12-04  Jörg Höhle  <hoehle@users.sourceforge.net>
1562
1563	* modules/regexp/regexi.c (REGEXP-COMPILE, REGEXP-EXEC) [UNICODE]:
1564	Use UTF-8 to communicate with gnulib/regexp, but keep
1565	O(misc_encoding) for locale-dependent error messages.
1566
15672017-12-04  Jörg Höhle  <hoehle@users.sourceforge.net>
1568
1569	* modules/regexp/regexi.c (REGEXP-EXEC): Compute character string
1570	index based on the current O(misc_encoding).
1571
15722017-12-04  Sam Steingold  <sds@gnu.org>
1573
1574	* configure.in: Move gl_EARLY before AC_LIB_PROG_LD to avoid aclocal
1575	warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
1576
15772017-12-04  Sam Steingold  <sds@gnu.org>
1578
1579	* configure: Ensure exit on a pipe sub-command failure (regression
1580	since 2017-02-26) by using bash/ksh/zsh-specific "set -o pipefail".
1581
15822017-12-04  Sam Steingold  <sds@gnu.org>
1583
1584	* modules/pari/pari.lisp: General cleanup.
1585	"465 exported symbols, 46 undocumented, 7 without pari function"
1586
15872017-12-03  Sam Steingold  <sds@gnu.org>
1588
1589	* makemake.in (check-doc): Respect command line options like
1590	make check-doc IMPNOTES=../doc/html/ CLHSROOT=http://clhs.lisp.se/
1591	(note the trailing slash!)
1592
15932017-12-01  Sam Steingold  <sds@gnu.org>
1594
1595	Fix bug#659: update the pari module to PARI/GP 2.9.3
1596	* modules/pari/cpari.c (clisp_out, clisp_err): PariOUT no longer
1597	has the 4th field "die", instead set cb_pari_err_recover to...
1598	(clisp_err_recover): New function.
1599	* modules/pari/pari.lisp: Drop removed/Update renamed objects.
1600	(convert-to-pari@vector): Use #(...) for Vecsmall (immediate long[]).
1601	(convert-from-pari-vector): Handle Vecsmall.
1602
16032017-11-30  Jörg Höhle  <hoehle@users.sourceforge.net>
1604
1605	* modules/i18n/gettext.c: CLISP_UNICODE is always defined in
1606	modules, so use #if, not #ifdef.
1607
16082017-11-29  Sam Steingold  <sds@gnu.org>
1609
1610	* foreign1.lisp (finalize-coutput-file): Do not output unnecessary
1611	prototypes, but output code to avoid the -Wunused-parameter warning.
1612
16132017-11-29  Sam Steingold  <sds@gnu.org>
1614
1615	Remove old deprecated features.
1616	(5+ years after the first release in which it became deprecated)
1617	* modules/syscalls/posix.lisp (socket-service-port): Remove.
1618	* deprecated.lisp (type-expand-1, foreign-address-null)
1619	(delete-dir, make-dir, rename-dir): Remove.
1620
16212017-11-29  Sam Steingold  <sds@gnu.org>
1622
1623	* amigasock.lisp: Remove the last vestige of Amiga support.
1624
16252017-11-29  Sam Steingold  <sds@gnu.org>
1626
1627	* makemake.in (check-doc): Also test sys::ensure-clhs-map.
1628
16292017-11-29  Sam Steingold  <sds@gnu.org>
1630
1631	An attempt to fix bug#719: get libunistring-optional from gnulib.
1632	Ran "make -f Makefile.devel build-aux-update gnulib-imported
1633	build-prerequisites".
1634	* Makefile.devel (GNULIB_CORE): Add libunistring-optional.
1635	* configure.in: call gl_LIBUNISTRING_OPTIONAL.
1636	* gllib/*, glm4/*: Update from gnulib.
1637	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
1638
16392017-11-28  Sam Steingold  <sds@gnu.org>
1640
1641	DEF-CALL-OUT now accepts the :GUARD argument.
1642	* foreign1.lisp (finalize-coutput-file): 4th element in function
1643	record in *function-list* is its guard.
1644	(def-call-out): Accept :guard, defaulting to *foreign-guard*, pass
1645	it to ...
1646	(note-c-fun): Save guard to *function-list*.
1647	* modules/bindings/glibc/linux.lisp (canonicalize_file_name)
1648	(euidaccess, get_current_dir_name, group_member, fcloseall):
1649	Uncomment and guard with "defined(__USE_GNU)".
1650
16512017-11-27  Bruno Haible  <bruno@clisp.org>
1652
1653	ari_asm for mips: Don't use a global variable as return value.
1654	* ari_asm_mips.d (asm_mulu32_): Accept a pointer argument for where to
1655	store the high part of the result.
1656	* ari_asm_mips64.d (asm_mulu32_): Likewise.
1657	* arilev0.d (mulu32_) [MIPS]: Pass a pointer to asm_mulu32_.
1658
16592017-11-27  Bruno Haible  <bruno@clisp.org>
1660
1661	ari_asm for i386: Don't use a global variable as return value.
1662	* ari_asm_i386.d (asm_mulu32_64): Renamed from asm_mulu32_. Don't
1663	access mulu32_high.
1664	(asm_divu_6432_3232_): Don't access divu_32_rest.
1665	* arilev0.d (mulu32, mulu32_, divu_6432_3232_) [I80386]: Get a 64-bit
1666	result from the registers.
1667	* ari_asm_i386.msvc.c: Regenerated.
1668
16692017-11-26  Bruno Haible  <bruno@clisp.org>
1670
1671	ari_asm for HPPA: Don't use a global variable as return value.
1672	* ari_asm_hppa.d (asm_mulu32_64): Renamed from asm_mulu32_. Don't
1673	access mulu32_high.
1674	* arilev0.d (mulu32, mulu32_) [HPPA]: Get a 64-bit result from the
1675	registers.
1676
16772017-11-26  Bruno Haible  <bruno@clisp.org>
1678
1679	ari_asm for HPPA: Fix build failure with the GNU assembler.
1680	* ari_asm_hppa.d: Use pseudo-ops that GNU as understands.
1681
16822017-11-26  Bruno Haible  <bruno@clisp.org>
1683
1684	ari_asm for ARM: Don't use a global variable as return value.
1685	* ari_asm_arm.d (asm_mulu32_64): Renamed from asm_mulu32_. Don't
1686	access mulu32_high.
1687	(asm_divu_3216_1616_): Don't access divu_16_rest.
1688	(asm_divu_6432_3232_): Don't access divu_32_rest.
1689	* arilev0.d (retval64_r0, retval64_r1): New macros.
1690	(mulu32, mulu32_, divu_3216_1616, divu_6432_3232, divu_6432_3232_)
1691	[ARM]: Get a 2x32-bit result from the registers r0,r1.
1692
16932017-11-26  Bruno Haible  <bruno@clisp.org>
1694
1695	Simplify ari_asm for ARM.
1696	* ari_asm_arm.d: Remove support for RISC OS syntax.
1697
16982017-11-26  Bruno Haible  <bruno@clisp.org>
1699
1700	Add comments.
1701	* ari_asm_*.d: Add comments about the ABIs. Info taken from libffcall.
1702
17032017-11-26  Bruno Haible  <bruno@clisp.org>
1704
1705	Avoid an infinite recursion when clisp is started under a broken gdb.
1706	* stream.d (low_read_unbuffered_handle): Don't signal an EIO error
1707	from the TERMINAL-STREAM.
1708
17092017-11-26  Bruno Haible  <bruno@clisp.org>
1710
1711	Disable generational GC on Linux/mips*.
1712	Generational GC on Linux/mips* works in QEMU-based virtual machines,
1713	but not on EdgeRouter Pro (Cavium Octeon II) hardware.
1714	* lispbibl.d (GENERATIONAL_GC): Don't enable on Linux/mips*.
1715
17162017-11-26  Bruno Haible  <bruno@clisp.org>
1717
1718	Fix a bug in the optimizations for SPARC64.
1719	* arilev0.d (divu_3216_1616, divu_3216_3216): Use a temporary variable
1720	of type uint32, not uint16, to force a zero-extend before the asm-coded
1721	instructions.
1722
17232017-11-26  Bruno Haible  <bruno@clisp.org>
1724
1725	Fix bugs in ari_asm for sparc64.
1726	* ari_asm_sparc64.d (asm_or_loop_up, asm_xor_loop_up, asm_and_loop_up,
1727	asm_eqv_loop_up, asm_nand_loop_up, asm_nor_loop_up, asm_andc2_loop_up,
1728	asm_orc2_loop_up) [COUNTER_LOOPS]: Write into xptr[], not into yptr[].
1729	(asm_add_loop_down): Write result into the right location.
1730	(asm_addto_loop_down) [COUNTER_LOOPS]: Optimize.
1731	(asm_sub_loop_down) [COUNTER_LOOPS]: Write result into the right
1732	location.
1733	(asm_subx_loop_down): Write result into the right location.
1734	(asm_subfrom_loop_down): Produce dest-source, not source-dest.
1735	(asm_shiftleftcopy_loop_down): Use correct register.
1736	(asm_neg_loop_down) [COUNTER_LOOPS]: Optimize.
1737
17382017-11-26  Bruno Haible  <bruno@clisp.org>
1739
1740	Fix bugs in the COUNTER_LOOPS implementation of ari_asm for SPARC.
1741	* ari_asm_sparc.d (asm_or_loop_up, asm_xor_loop_up, asm_and_loop_up,
1742	asm_eqv_loop_up, asm_nand_loop_up, asm_nor_loop_up, asm_andc2_loop_up,
1743	asm_orc2_loop_up): Write into xptr[], not into yptr[].
1744
17452017-11-26  Bruno Haible  <bruno@clisp.org>
1746
1747	Fix bug in ari_asm for mips64.
1748	* ari_asm_mips64.d (asm_subx_loop_down): Expect the 5th argument in $8,
1749	not on the stack.
1750
17512017-11-25  Bruno Haible  <bruno@clisp.org>
1752
1753	Add a facility for checking and debugging the ari_asm_* code.
1754	* arilev1.d: When DEBUG_ARI_ASM is defined, select LOOP_DEBUG_ASM and
1755	include arilev1dbg.c.
1756	* arilev1c.d: Apply C() macro to the name of each function.
1757	* arilev1dbg.d: New file.
1758	* makemake.in (LISPARIT_INCLUDES): Add it.
1759	* Makefile.devel (build-porting*-debug_ari_asm): New targets.
1760	(multibuild-linux-hppa, multibuild-linux-i386): Depend on
1761	build-porting32-gcc-debug_ari_asm.
1762
17632017-11-25  Bruno Haible  <bruno@clisp.org>
1764
1765	Don't install signal handlers for SIGABRT and SIGILL.
1766	* spvw_sigterm.d (set_sigterm_handler): Don't install a handler for
1767	SIGABRT or SIGILL.
1768	* spvw.d (fill_terminating_signals_mask): Update accordingly.
1769
17702017-11-25  Bruno Haible  <bruno@clisp.org>
1771
1772	Fix comment (regression from 2008-01-15).
1773	* spvw.d (quit): Note the meaning of a negative final_exitcode.
1774
17752017-11-25  Bruno Haible  <bruno@clisp.org>
1776
1777	Provide a starting point for ari_asm_* development.
1778	* arilev1c.d: Use 'maybe_local' instead of 'local'.
1779	* arilev1.d (LOOP_STATIC_C): Renamed from LOOP_EXTERN_C.
1780	(LOOP_EXTERN_C): New macro. Define maybe_local.
1781	* arilev1_asm_proto.d: New file.
1782	* makemake.in (EXTRA_CPARTS): Add arilev1_asm_proto.
1783
17842017-11-25  Bruno Haible  <bruno@clisp.org>
1785
1786	Modernize: Convert source code from K&R C to ANSI C.
1787	* arilev1c.d: Convert to ANSI C.
1788
17892017-11-25  Bruno Haible  <bruno@clisp.org>
1790
1791	More systematic Makefile.devel target naming.
1792	* Makefile.devel (build-porting*-ari_asm): Renamed from
1793	build-porting*-ari-asm.
1794
17952017-11-25  Bruno Haible  <bruno@clisp.org>
1796
1797	More systematic naming of ari* assembly-language files.
1798	* ari_asm_i386.d: Renamed from ari80386.d.
1799	* ari_asm_arm.d: Renamed from ariarm.d.
1800	* ari_asm_hppa.d: Renamed from arihppa.d.
1801	* ari_asm_mips.d: Renamed from arimips.d.
1802	* ari_asm_mips64.d: Renamed from arimips64.d.
1803	* ari_asm_sparc.d: Renamed from arisparc.d.
1804	* ari_asm_sparc64.d: Renamed from arisparc64.d.
1805	* arilev1.d: Update accordingly.
1806	* makemake.in (ARI_ASMD, ARI_ASMS): Likewise.
1807	* Makefile.devel (src/ari_asm_i386.msvc.c): Renamed from
1808	src/ari80i386.msvc.c.
1809
18102017-11-25  Bruno Haible  <bruno@clisp.org>
1811
1812	More systematic naming of sp* assembly-language files.
1813	* sp_asm_m68k.d: Renamed from sp68000.d.
1814	* sp_asm_sparc.d: Renamed from spsparc.d.
1815	* sp_asm_sparc64.d: Renamed from spsparc64.d.
1816	* sp_asm_mips.d: Renamed from spmips.d.
1817	* sp_asm_i386.d: Renamed from sp80386.d.
1818	* makemake.in (SP_ASMD, SP_ASMS): Update accordingly.
1819	* Makefile.devel (src/sp_asm_i386.msvc.c): Renamed from
1820	src/sp80i386.msvc.c.
1821
18222017-11-25  Bruno Haible  <bruno@clisp.org>
1823
1824	Fix build failure of build-porting32-gcc-arilev0-asm on Linux/sparc.
1825	* makemake.in: When compiling eval.c with GCC for sparc, reduce
1826	optimizations.
1827
18282017-11-25  Bruno Haible  <bruno@clisp.org>
1829
1830	Make it possible to use '-nextgc-factor 0.001' with GENERATIONAL_GC.
1831	* spvw.d (main): Move install_segv_handler invocation from here...
1832	(init_memory): ... to here.
1833
18342017-11-22  Sam Steingold  <sds@gnu.org>
1835
1836	Fix bug#375: (loop ... for x on x ...)
1837	* loop.lisp (expand-loop): Bind all start forms at the outermost
1838	level to gensyms and then use the gensyms in the preamble.
1839
18402017-11-21  Sam Steingold  <sds@gnu.org>
1841
1842	Avoid gcc/clang warnings -Wformat
1843	* spvw_global.d (check_gc_consistency, check_gc_consistency_2):
1844	Cast format arguments to (unsigned long).
1845	* spvw_sigsegv.d (print_mem_stats): Likewise.
1846
18472017-11-21  Sam Steingold  <sds@gnu.org>
1848
1849	Avoid gcc/clang warnings -Wunused-parameter
1850	* encoding.d (base64_mbstowcs, base64_wcslen, base64_wcstombs)
1851	(base64_range, all_range, bmp_range, uni16be_mbstowcs)
1852	(uni16le_mbstowcs, uni16be_wcstombs, uni16le_wcstombs)
1853	(uni32be_mbstowcs, uni32le_mbstowcs, uni32_wcslen)
1854	(uni32be_wcstombs, utf8_mblen, utf8_mbstowcs, utf8_wcslen)
1855	(java_wcstombs, java_mblen, java_mbstowcs, java_wcslen, nls_mblen)
1856	(nls_asciiext_mblen, nls_wcslen, nls_asciiext_wcslen):
1857	Use (void) to mark unused parameters.
1858
18592017-11-21  Sam Steingold  <sds@gnu.org>
1860
1861	Avoid gcc/clang warnings -Wdangling-else (missed by #pragma).
1862	* foreign.d (PARSE-FOREIGN-INTTYPE): Add braces.
1863	* flo_rest.d, intelem.d (IF_LENGTH): Likewise.
1864
18652017-11-20  Bruno Haible  <bruno@clisp.org>
1866
1867	Revert introduction of installed program 'clisp!' (no longer needed).
1868	* _clisp.c: Do not test SHEBANG_SUPPORT.
1869	* _distmakefile: Do not install 'clisp!'.
1870	* makemake.in: Likewise.
1871	* NEWS: Bug#699 is fixed without breaking backward compatibility.
1872
18732017-11-19  Bruno Haible  <bruno@clisp.org>
1874
1875	Make it easier to test the optimizations in arilev0.d and ari*.d.
1876	* Makefile.devel (build-porting*-ari-asm, build-porting*-arilev0-asm):
1877	New targets.
1878	(multibuild-linux-hppa, multibuild-linux-i386): Depend on them.
1879
18802017-11-19  Bruno Haible  <bruno@clisp.org>
1881
1882	Improve SYS::ADDRESS-OF in SINGLEMAP_MEMORY model.
1883	* misc.d (SYS::ADDRESS-OF): In SINGLEMAP_MEMORY model, do not mask
1884	out the type bits.
1885
18862017-11-19  Bruno Haible  <bruno@clisp.org>
1887
1888	Fix build failure on Linux/s390x with HEAPCODES.
1889	* lispbibl.d: On Linux/s390x, prefer GENERIC64_HEAPCODES over
1890	ONE_FREE_BIT_HEAPCODES always.
1891
18922017-11-19  Bruno Haible  <bruno@clisp.org>
1893
1894	Do not use a global register variable as return value for SPARC64.
1895	* arisparc64.d (asm_mulu32_64): Renamed from asm_mulu32_.
1896	Return 64 bits in %o0.
1897	(asm_divu_6432_3232_): Return 64 bits in %o0.
1898	(asm__get_g1): Remove function.
1899	* arilev0.d (mulu32, mulu32_, mulu32_64, divu_6432_3232,
1900	divu_6432_3232_) [SPARC64]: Update accordingly.
1901
19022017-11-19  Bruno Haible  <bruno@clisp.org>
1903
1904	Fix bug#542: Do not use a global register variable as return value for SPARC.
1905	* arisparc.d (asm_mulu32_64): Renamed from asm_mulu32_. Return 64 bits
1906	in %o1,%o0, not %o0,%g1.
1907	(asm_divu_6432_3232_): Return 64 bits in %o1,%o0, not %o0,%g1.
1908	(asm_divu_loop_up, asm_divucopy_loop_up): Update accordingly.
1909	(asm__get_g1): Remove function.
1910	* arilev0.d (mulu32, mulu32_, mulu32_64, divu_6432_3232,
1911	divu_6432_3232_) [SPARC && !SPARC64]: Update accordingly.
1912
19132017-11-19  Bruno Haible  <bruno@clisp.org>
1914
1915	Optimize arisparc.d also with Sun C and also for SPARCv9.
1916	* arisparc.d (sparcv8): Set also with Sun "cc -xarch=v8". Set also when
1917	compiling for SPARC v9, not v8.
1918
19192017-11-19  Bruno Haible  <bruno@clisp.org>
1920
1921	Allow adding -DNO_ARI_ASM to the Makefile, without reconfiguring.
1922	This fixes a link error (conflict between ari*.o and lisparit.o).
1923	It is simpler to prefix all functions defined in assembly-language with
1924	'asm_' than to #define selected function names with '_generic' suffix
1925	if they are defined in C.
1926	* ari80386.d, ariarm.d, arihppa.d, arimips*.d, arisparc*.d: Prefix the
1927	names of all exported functions with 'asm_'.
1928	* arilev0.d: Remove all *_ -> _generic redirects.
1929	(mulu16): Use asm_mulu16_ instead of mulu16_.
1930	(mulu32, mulu32_64): Use asm_mulu32_ instead of mulu32_, asm__get_g1
1931	instead of _get_g1.
1932	(mulu32_unchecked): Use asm_mulu32_unchecked instead of
1933	mulu32_unchecked.
1934	(divu_3216_1616): Use asm_divu_3216_1616_ instead of divu_3216_1616_.
1935	(divu_6432_3232): Use asm_divu_6432_3232_ instead of divu_6432_3232_.
1936	* arilev1e.d: Redirect *_loop_* -> asm_*_loop_* at the preprocessor
1937	level.
1938	* intlog.d (integerlength32): Use asm_length32 instead of length32.
1939
19402017-11-19  Bruno Haible  <bruno@clisp.org>
1941
1942	Remove unused assembly-language code.
1943	* arihppa.d: Remove unused code.
1944	* arilev0.d: Remove HPPA_DIV_WORKS conditionals.
1945
19462017-11-19  Bruno Haible  <bruno@clisp.org>
1947
1948	Allow adding -DNO_SP_ASM to the Makefile, without reconfiguring.
1949	This fixes a link error (conflict between sp*.o and spvw.o).
1950	* sp68000.d, sp80386.d, spmips.d, spsparc.d, spsparc64.d: Prefix all
1951	external symbols with 'asm_'.
1952	* lispbibl.d (getSP, setSP): Reference the external functions prefixed
1953	with 'asm_'.
1954
19552017-11-19  Bruno Haible  <bruno@clisp.org>
1956
1957	Fix a crash if KERNELVOID32_HEAPCODES && SPVW_PAGES && DEBUG_SPVW.
1958	* spvw_global.d (check_gc_consistency): Take varobjects_misaligned
1959	into account.
1960	* spvw_global_old.d: Likewise.
1961
19622017-11-19  Bruno Haible  <bruno@clisp.org>
1963
1964	Remove support for M88000 processors.
1965	* lispbibl.d (M88000): Remove definition. Do not test for M88000.
1966	* intlog.d (integerlength32): Remove special optimization for M88000.
1967	* makemake.in (XCFLAGS): Remove special handling of m88k, convex CPUs.
1968
19692017-11-19  Bruno Haible  <bruno@clisp.org>
1970
1971	Remove support for VAX processors.
1972	It was never actually used or tested.
1973	* lispbibl.d (VAX): Remove definition. Do not test for VAX.
1974	* arilev0.d: Do not test for VAX.
1975	* arilev1.d: Likewise.
1976	* arivaxunix.d: Remove file.
1977
19782017-11-18  Bruno Haible  <bruno@clisp.org>
1979
1980	Fix initialization of modules in SINGLEMAP_MEMORY model.
1981	Reported by Jean Louis <bugs@gnu.support> in bug#713.
1982	* utils/modprep.lisp (print-tables-2): Emit statements that store the
1983	keyword vectors of the SUBRs in their heap-allocated location, not in
1984	their preliminary location.
1985	* spvw.d (init_subr_tab_1): Set module->stab also if the module has no
1986	SUBRs. (Just a no-op.)
1987
19882017-11-18  Bruno Haible  <bruno@clisp.org>
1989
1990	Allow clisp! scripts to have file names with spaces.
1991	* _clisp.c: Do not split argv[1] if it looks like a file name.
1992
19932017-11-18  Bruno Haible  <bruno@clisp.org>
1994
1995	Allow UTF-8 encoded hard space in first argument of clisp! invocation.
1996	* _clisp.c: Treat UTF-8 encoded hard space like ISO-8859-1 encoded hard
1997	space.
1998
19992017-11-18  Bruno Haible  <bruno@clisp.org>
2000
2001	Allow file names with spaces to be passed as first argument to 'clisp'.
2002	Reported by Jean Louis <bugs@gnu.support> in bug#699.
2003	* _clisp.c: Disable the argv[1] splitting hack unless SHEBANG_SUPPORT
2004	is defined.
2005	* _distmakefile: Install a program 'clisp!' next to 'clisp'.
2006	* makemake.in (install-bin): Likewise.
2007	(uninstall-bin): Unstill 'clisp!'.
2008
20092017-11-17  Bruno Haible  <bruno@clisp.org>
2010
2011	Revamp the installation documentation.
2012	* INSTALL.windows: New file, mostly borrowed from GNU gettext.
2013	* win32msvc/INSTALL: Mark as obsolete.
2014	* INSTALL: Mention INSTALL.windows.
2015	* DEPENDENCIES: New file.
2016	* HACKING: New file.
2017
20182017-11-17  Sam Steingold  <sds@gnu.org>
2019
2020	Use UTF-8 for all PCRE strings.
2021	* modules/pcre/cpcre.c (PCRE:PCRE-COMPILE): Use UTF-8 even for
2022	error messages.
2023	(fullinfo_nametable): Use UTF-8 for pcre_fullinfo().
2024	(PCRE:PCRE-NAME-TO-INDEX): Use UTF-8 for pcre_get_stringnumber().
2025
20262017-11-17  Sam Steingold  <sds@gnu.org>
2027
2028	* loop.lisp: Use revadd pervasively.
2029	Remove a spurious CASE clause.
2030
20312017-11-16  Sam Steingold  <sds@gnu.org>
2032
2033	* clhs.lisp (starts-with-p): Extract and export.
2034
20352017-11-15  Sam Steingold  <sds@gnu.org>
2036
2037	Improve loop error reporting.
2038	* loop.lisp (loop-syntax-error): Accept an optional location
2039	argument (nil means end of form).
2040	(expand-loop): Pass location to `loop-syntax-error'.
2041
20422017-11-15  Sam Steingold  <sds@gnu.org>
2043
2044	Fix bug#711: DO in loop allows more expressions than the standard.
2045	* loop.lisp (expand-loop parse-progn): Check that all forms in
2046	implicit PROGNs are compound as implied by CLHS.
2047
20482017-11-14  Sam Steingold  <sds@gnu.org>
2049
2050	Make it easier for users to customize completion.
2051	* complete.lisp (ext:longest-common-prefix): Extract from completion.
2052	(completion): Use it.
2053	(*completion*): Set to #'completion.
2054	(ext:make-completion): New function for users.
2055	* init.lisp (*completion*): Export from CUSTOM.
2056	(make-completion, longest-common-prefix): Export from EXT.
2057	* constsym.d: Replace COMPLETION with *COMPLETION*.
2058	* spvw.d (init_symbol_values): Define *COMPLETION*.
2059	* stream.d (lisp_completion): Use *COMPLETION* instead of COMPLETION.
2060
20612017-11-12  Bruno Haible  <bruno@clisp.org>
2062
2063	Fix "Warning: reserving address range" on some Linux/x86_64 systems.
2064	Reported by Sam Steingold in bug#703.
2065	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*): Tweak values for Linux/x86_64.
2066	(SINGLEMAP_TYPE_MASK): Likewise.
2067
20682017-11-11  Bruno Haible  <bruno@clisp.org>
2069
2070	Enable most optimizations on Linux/hppa.
2071	* Makefile.devel (multibuild-linux-hppa): Enable all build variants
2072	that work.
2073	* makemake.in (XCFLAGS): For Linux/hppa, enable all optimizations
2074	except ASM, ARI_ASM, SP_ASM.
2075
20762017-11-11  Bruno Haible  <bruno@clisp.org>
2077
2078	Enable most optimizations on Linux/x86_64-x32.
2079	* Makefile.devel (multibuild-linux-x86_64-32): Enable all build variants
2080	that work.
2081	* makemake.in (XCFLAGS): For Linux/x86_64-x32, enable all optimizations
2082	except ASM, ARI_ASM, SP_ASM.
2083
20842017-11-11  Bruno Haible  <bruno@clisp.org>
2085
2086	Enable most optimizations on Linux/i386.
2087	* Makefile.devel (multibuild-linux-i386): Enable all build variants
2088	that work.
2089	(multibuild-linux-x86): Remove target.
2090	* makemake.in (XCFLAGS): For Linux/i386, enable all optimizations
2091	except ASM, ARI_ASM, SP_ASM.
2092
20932017-11-11  Bruno Haible  <bruno@clisp.org>
2094
2095	Enable most optimizations on Linux/x86_64.
2096	* Makefile.devel (multibuild-linux-x86_64): Enable all build variants.
2097	* makemake.in (XCFLAGS): For Linux/x86_64, enable all optimizations
2098	except ASM, ARI_ASM, SP_ASM.
2099
21002017-11-11  Bruno Haible  <bruno@clisp.org>
2101
2102	New option --cbcx that includes "make extracheck".
2103	* configure: Accept option --cbcx.
2104	* Makefile.devel (build-porting*): Use option --cbcx instead of --cbc.
2105
21062017-11-11  Bruno Haible  <bruno@clisp.org>
2107
2108	Prepare for enabling optimizations on a per-platform basis.
2109	* makemake.in (enable_portability): Allow three values: no, ifuseful,
2110	yes.
2111	(XCFLAGS): Add flags that disable optimizations that have not yet been
2112	verified to work, for each platform.
2113	* Makefile.devel (build-porting*): Configure with option
2114	--disable-portability.
2115	(multibuild-*): New targets, one per platform.
2116	* unix/PLATFORMS: Explain the per-platform porting process.
2117
21182017-11-11  Bruno Haible  <bruno@clisp.org>
2119
2120	New heuristics for deciding which object representation to use.
2121	* lispbibl.d (TYPECODES, HEAPCODES): New logic which one to choose by
2122	default.
2123	(ONE_FREE_BIT_HEAPCODES, KERNELVOID32_HEAPCODES, GENERIC64_HEAPCODES):
2124	Likewise.
2125
21262017-11-11  Bruno Haible  <bruno@clisp.org>
2127
2128	Avoid known unsupported features on specific platforms.
2129	* lispbibl.d (TRIVIALMAP_MEMORY): Do not enable by default on Cygwin
2130	and in a specific case on Linux/m68k.
2131	(GENERATIONAL_GC): Do not enable by default on NetBSD, Linux/hppa,
2132	Linux/m68k.
2133
21342017-11-11  Bruno Haible  <bruno@clisp.org>
2135
2136	Tweak support for Haiku.
2137	* lispbibl.d (TRIVIALMAP_MEMORY): Do not enable by default on Haiku.
2138
21392017-11-11  Bruno Haible  <bruno@clisp.org>
2140
2141	Record whether GENERIC64C_HEAPCODES works.
2142	* lispbibl.d (GENERIC64C_HEAPCODES_WORKS): Define for each 64-bit
2143	platform.
2144
21452017-11-11  Bruno Haible  <bruno@clisp.org>
2146
2147	Record whether KERNELVOID32_HEAPCODES works.
2148	* lispbibl.d (KERNELVOID32_HEAPCODES_WORKS): Define for each 32-bit
2149	platform.
2150
21512017-11-11  Bruno Haible  <bruno@clisp.org>
2152
2153	Find good parameters for using ONE_FREE_BIT_HEAPCODES, per platform.
2154	* lispbibl.d (garcol_bit_o, imm_type_shift, oint_type_*, oint_addr_*):
2155	Find appropriate values for ONE_FREE_BIT_HEAPCODES, depending on
2156	TRIVIALMAP_MEMORY.
2157	(HEAPCODES1BIT_WITH_TRIVIALMAP_WORKS, HEAPCODES1BIT_WITH_MALLOC_WORKS):
2158	Define for each platform.
2159
21602017-11-11  Bruno Haible  <bruno@clisp.org>
2161
2162	Check the mymalloc return value also when ONE_FREE_BIT_HEAPCODES.
2163	* spvw_allocate.d (pointable_usable_test): For ONE_FREE_BIT_HEAPCODES,
2164	check against the garcol_bit.
2165	(fprint_mymalloc_diagnostic): New function.
2166	(mymalloc): Use it.
2167	* spvw_allocate_old.d: Likewise.
2168	* spvw.d (init_memory): Use fprint_mymalloc_diagnostic.
2169
21702017-11-11  Bruno Haible  <bruno@clisp.org>
2171
2172	Find good parameters for using TYPECODES model, for each platform.
2173	* lispbibl.d (TRIVIALMAP_MEMORY): Move definition up, before the
2174	decision between TYPECODES and HEAPCODES.
2175	(oint_type_*, oint_addr_*, garcol_bit_o): Find appropriate values for
2176	TYPECODES, for selected platforms.
2177	(TYPECODES_WITH_TRIVIALMAP_WORKS, TYPECODES_WITH_MALLOC_WORKS): Define
2178	for each platform.
2179	* Makefile.devel (build-porting*-typecodes-spvw_mixed_blocks): Split
2180	into build-porting*-typecodes-spvw_mixed_blocks-malloc
2181	and build-porting*-typecodes-spvw_mixed_blocks-trivialmap.
2182	(build-porting*-one_free_bit_heapcodes): Split into
2183	build-porting*-one_free_bit_heapcodes-malloc and
2184	build-porting*-one_free_bit_heapcodes-trivialmap, accordingly.
2185	(build-porting*-try1_typecodes, build-porting*-try2_typecodes): Remove
2186	targets.
2187	(build-porting32-*-kernelvoid32_heapcodes)
2188	(build-porting64-*-generic64_heapcodes): Do not prevent the use of
2189	GENERATIONAL_GC.
2190
21912017-11-11  Bruno Haible  <bruno@clisp.org>
2192
2193	Update support for Linux/hppa and Linux/m68k.
2194	I learned how to use these platforms with dynamic linking, see
2195	<https://bugs.launchpad.net/qemu/+bug/1701798/>.
2196	* lispbibl.d (SINGLEMAP_WORKS): Update value for Linux/hppa, Linux/m68k.
2197
21982017-11-11  Bruno Haible  <bruno@clisp.org>
2199
2200	Tweak support for Linux/sparc.
2201	* lispbibl.d (CODE_ADDRESS_RANGE) [Linux/sparc]: Force the same value
2202	across machines.
2203	(SINGLEMAP_*) [Linux/sparc]: Change parameters. But it does not work.
2204
22052017-11-11  Bruno Haible  <bruno@clisp.org>
2206
2207	Fix build failure on Linux/m68k.
2208	* lispbibl.d (sintW): Emit into clisp.h. It is used by the expansion of
2209	macro 'dotimespC'.
2210
22112017-11-11  Bruno Haible  <bruno@clisp.org>
2212
2213	Fix unnecessary error when oint_addr_mask != 2^oint_addr_len-1.
2214	* spvw.d (bits_used_by_range): Move up.
2215	* spvw_allocate.d (pointable_usable_test): Do not assume that
2216	oint_addr_mask == 2^oint_addr_len-1.
2217	(mymalloc): Use pointable_usable_test to test the entire returned
2218	address range.
2219	* spvw_allocate_old.d: Likewise.
2220
22212017-11-11  Bruno Haible  <bruno@clisp.org>
2222
2223	Fix crash on SPARC when oint_addr_mask != 2^oint_addr_len-1.
2224	* lispbibl.d (untype) [SPARC]: Make it work also when oint_addr_mask is
2225	not 2^oint_addr_len-1. Optimize also for 64-bit SPARC.
2226
22272017-11-11  Bruno Haible  <bruno@clisp.org>
2228
2229	Avoid build error "Bogus header_flags -- redefine header_flags!".
2230	* lisbibl.d (hfint): Choose hfint depending on oint_type_shift, instead
2231	of depending on CPU.
2232
22332017-11-11  Bruno Haible  <bruno@clisp.org>
2234
2235	Fix compilation warnings introduced on 2017-11-03.
2236	* lispbibl.d (NO_ASM, NO_ARI_ASM, NO_FAST_DISPATCH): Do not redefine if
2237	already defined.
2238
22392017-11-05  Bruno Haible  <bruno@clisp.org>
2240
2241	Tweak mappable address ranges.
2242	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_END): Shrink a bit for Linux/mips
2243	(o32 and n32 ABIs), for Mac OS X/PowerPC, for Linux/alpha (based on
2244	findings with older Linux versions).
2245	Update SINGLEMAP_* parameters for Linux/alpha accordingly.
2246	Add MAPPABLE_ADDRESS_RANGE_* for FreeBSD/alpha, NetBSD/alpha,
2247	OSF/1/alpha (based on older findings).
2248
22492017-11-03  Bruno Haible  <bruno@clisp.org>
2250
2251	Avoid assembler or linker errors due to assembly during current testing.
2252	This can be removed once ARI_ASM and SP_ASM generally works.
2253	* Makefile.devel (build-porting*): In builds with -DSAFETY=3, use also
2254	-DNO_ARI_ASM -DNO_SP_ASM.
2255
22562017-11-02  Bruno Haible  <bruno@clisp.org>
2257
2258	Fix a "make check" hang on IRIX.
2259	* makemake.in (check-script): Work around the AIX peculiarity also on
2260	IRIX.
2261
22622017-11-02  Bruno Haible  <bruno@clisp.org>
2263
2264	Support building with 'gmake' instead of 'make'.
2265	* configure (MAKE): New variable. Use it instead of hardcoding 'make'.
2266	* Makefile.devel (MAKE): Remove variable. All common 'make' programs
2267	set MAKE to a reasonable value (the value of the environment variable
2268	'MAKE' or the name of the current program) by default.
2269
22702017-11-02  Bruno Haible  <bruno@clisp.org>
2271
2272	Avoid error on IRIX when stdout is a pipe (regression from 2016-11-11).
2273	* stream.d (IS_EINVAL_EXTRA): Handle IRIX.
2274	(finish_tty_output): Use IS_EINVAL instead of testing only for EINVAL.
2275
22762017-11-02  Bruno Haible  <bruno@clisp.org>
2277
2278	Skip a test that would request more space than available.
2279	* tests/lists153.tst: Disable huge allocation tests on 32-bit platforms
2280	with TYPECODES.
2281
22822017-11-02  Bruno Haible  <bruno@clisp.org>
2283
2284	Fix a build failure with SINGLEMAP_MEMORY (regression from 2017-11-01).
2285	Reported by Don Cohen.
2286	* lispbibl.d (oint_addr_mask): Fix big mistake in expression.
2287
22882017-11-01  Bruno Haible  <bruno@clisp.org>
2289
2290	Work around HP-UX cc crash.
2291	* makemake.in (XCFLAGS): Remove '-g' if we are using HP-UX cc.
2292
22932017-11-01  Bruno Haible  <bruno@clisp.org>
2294
2295	Fix build failure when oint_type_shift has an unusual value.
2296	* lispbibl.d (mtypecode): Define a fallback when no optimized definition
2297	is possible.
2298
22992017-11-01  Bruno Haible  <bruno@clisp.org>
2300
2301	Fix small problem in 2017-10-28 change.
2302	* lispbibl.d (oint_addr_mask): Make sure evaluation in preprocessor
2303	directives produces the right value.
2304
23052017-10-31  Bruno Haible  <bruno@clisp.org>
2306
2307	Apply TRIVIALMAP's memory allocation also to the STACK area.
2308	* lispbibl.d (TRIVIALMAP_MEMORY_STACK): New macro. When it is defined,
2309	do not check oint_addr_mask against MALLOC_ADDRESS_RANGE.
2310	* spvw.d (init_memory) [TRIVIALMAP_MEMORY_STACK]: Allocate the stack
2311	range in [MAPPABLE_ADDRESS_RANGE_START, MAPPABLE_ADDRESS_RANGE_END],
2312	rather than through mymalloc.
2313
23142017-10-30  Bruno Haible  <bruno@clisp.org>
2315
2316	Add early detection of a problem that would lead to crashes later.
2317	Seen on Linux/sparc64.
2318	* spvw.d (bits_used_by_range): New function.
2319	(init_memory): Verify that the range used for STACK is adequate.
2320
23212017-10-30  Bruno Haible  <bruno@clisp.org>
2322
2323	Fix socket operations on native Windows (regression from 2011-07-19).
2324	Since we use the gnulib wrappers for socket operations, we must test
2325	errno, not WSAGetLastError().
2326	* win32aux.d (lowlevel_fd_read, fd_read, fd_write): Fix documentation.
2327	(do_sock_read): Use errno, not WSAGetLastError().
2328	(sock_read): Set errno, not WSAGetLastError().
2329	(do_sock_write): Use errno, not WSAGetLastError().
2330	(sock_write): Set errno, not WSAGetLastError().
2331	* stream.d (fd_error_eof_p): Renamed from error_eof_p. Do not test
2332	against WSAESHUTDOWN.
2333	(low_read_array_unbuffered_handle, low_fill_buffered_handle): Update.
2334	(CHECK_INTERRUPT): Test errno, not WSAGetLastError().
2335	(sock_error_eof_p): New function.
2336	(low_read_unbuffered_socket, low_listen_unbuffered_socket,
2337	low_read_array_unbuffered_socket, low_fill_buffered_socket): Invoke
2338	sock_error_eof_p instead of error_eof_p.
2339
23402017-10-30  Bruno Haible  <bruno@clisp.org>
2341
2342	Add support for Haiku.
2343	* lispbibl.d (unix): Define on Haiku.
2344	(UNIX_HAIKU): New macro.
2345	(UTF8_CHS): Define on Haiku.
2346	(STACK_register): Treat Haiku like BeOS.
2347	(local): Move definition down.
2348	(MAPPABLE_ADDRESS_RANGE_*): Define for Haiku.
2349	(SINGLEMAP_*): Define for Haiku.
2350	* unix.d (ualarm): On Haiku, use past POSIX prototype.
2351	* spvw.d (init_object_tab): Add :HAIKU to *features*.
2352	* errunix.d (OS_error_internal): Change argument type to 'int', because
2353	errno values are negative on Haiku.
2354	(OS_error, OS_error_arg): Change type of 'errcode' to 'int'.
2355	* stream.d (IS_EINVAL_EXTRA): On Haiku, include EPERM.
2356	(handle_pathname): On BeOS and Haiku, return NIL.
2357	* makemake.in (check-script): Do not run unportable test on BeOS and
2358	Haiku.
2359	* m4/tcpconn.m4 (CL_TCPCONN): Require gl_SOCKETLIB. Consider LIBSOCKET
2360	when testing for setsockopt and getsockopt.
2361	* aclocal.m4, src/configure: Regenerated.
2362	* modules/rawsock/configure, modules/rawsock/config.h.in: Likewise.
2363
23642017-10-30  Bruno Haible  <bruno@clisp.org>
2365
2366	Update to the newest gnulib.
2367	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
2368	&& make -f Makefile.devel build-prerequisites".
2369	* gllib/*: Update from gnulib.
2370	* glm4/*: Likewise.
2371	* aclocal.m4, src/configure: Regenerated.
2372
23732017-10-30  Bruno Haible  <bruno@clisp.org>
2374
2375	Provide more understandable GCC diagnostics.
2376	* makemake.in (XCFLAGS): For gcc >= 4.8, add '-no-integrated-cpp'.
2377
23782017-10-28  Bruno Haible  <bruno@clisp.org>
2379
2380	Make (truename "/dev/fd/1") work on Cygwin.
2381	* pathname.d (my_realpath): Add special treatment of /dev/fd on Cygwin.
2382	(get_path_info): Optimize number of readlink() calls.
2383
23842017-10-28  Bruno Haible  <bruno@clisp.org>
2385
2386	Fix endless loop in TRUENAME on Cygwin (regression from 2017-03-14).
2387	* pathname.d (get_path_info): When retrying readlink(), choose a buffer
2388	size that is greater than the previous one.
2389
23902017-10-28  Bruno Haible  <bruno@clisp.org>
2391
2392	Do not use symbolic links when building for native Windows.
2393	* makemake.in (LN_S): For native Windows, ignore the autoconfigured
2394	value.
2395
23962017-10-28  Bruno Haible  <bruno@clisp.org>
2397
2398	Do not assume that (truename (make-stream :output)) works on Windows.
2399	* makemake.in (check-script): Do not run unportable test on native
2400	Windows.
2401
24022017-10-28  Bruno Haible  <bruno@clisp.org>
2403
2404	Fix 32-bit mingw build failure on 64-bit Cygwin.
2405	* configure.in: Determine WINDRES variable.
2406	* makemake.in (clispres.o): Use it.
2407	* src/configure, gllib/Makefile.in: Regenerated.
2408
24092017-10-28  Bruno Haible  <bruno@clisp.org>
2410
2411	Use SINGLEMAP_MEMORY by default on most 64-bit platforms.
2412	* lispbibl.d: Revise decision whether to use SINGLEMAP_MEMORY: Ignore
2413	MMAP_FIXED_ADDRESS_HIGHEST_BIT (since the SINGLEMAP_* parameters handle
2414	this more precisely). Do not disable it on Linux/s390x (where it actually
2415	works). Do not disable it in MULTITHREAD mode.
2416
24172017-10-28  Bruno Haible  <bruno@clisp.org>
2418
2419	Make SINGLEMAP_MEMORY work reliably on many platforms.
2420	* Makefile.devel (build-porting*-spvw_pure_blocks): Do not disable
2421	GENERATIONAL_GC when testing this configuration.
2422	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_*): Define separately for mips o32
2423	and mips n32.
2424	(SINGLEMAP_ADDRESS_BASE, SINGLEMAP_TYPE_MASK, SINGLEMAP_oint_type_shift,
2425	SINGLEMAP_garcol_bit_o, SINGLEMAP_oint_type_len,
2426	SINGLEMAP_oint_type_mask, SINGLEMAP_WORKS): Define appropriately for
2427	each known platform.
2428	(oint_type_*, oint_addr_*, oint_data_*) [SINGLEMAP_MEMORY]: Define based
2429	on these parameters.
2430	(TB7, ..., TB0) [SINGLEMAP_MEMORY]: Define based on garcol_bit_o and
2431	oint_type_mask.
2432	(garcol_bit_o): Do not redefine if already defined for SINGLEMAP_MEMORY.
2433	(SINGLEMAP_MEMORY_STACK): Define always when SINGLEMAP_MEMORY is
2434	defined.
2435	(pointable_address_unchecked) [SINGLEMAP_MEMORY]: Ignore
2436	addressbus_mask.
2437	(subr_tab_addr, symbol_tab_addr) [SINGLEMAP_MEMORY]: Consider
2438	SINGLEMAP_ADDRESS_BASE.
2439	* spvw.d (init_memory): When we do not need malloc()ed memory at all,
2440	do not call mymalloc.
2441	If SINGLEMAP_MEMORY && !IGNORE_MAPPABLE_ADDRESS_RANGE, verify that all
2442	heaps lie in the mappable address range.
2443	Consider SINGLEMAP_ADDRESS_BASE.
2444
24452017-10-27  Bruno Haible  <bruno@clisp.org>
2446
2447	Fix fixnum converter macros on SPARC64.
2448	* lispbibl.d (posfixnum_to_V): Optimize on SPARC always.
2449	(fixnum_to_V) [SPARC]: Fix expression.
2450
24512017-10-27  Bruno Haible  <bruno@clisp.org>
2452
2453	Update to the newest gnulib.
2454	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
2455	&& make -f Makefile.devel build-prerequisites".
2456	* gllib/*: Update from gnulib.
2457	* glm4/*: Likewise.
2458	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
2459
24602017-10-25  Bruno Haible  <bruno@clisp.org>
2461
2462	Fix build failure on 64-bit platforms with oint_addr_len==32.
2463	* lispbibl.d (SPint): Define as uintP.
2464
24652017-10-25  Bruno Haible  <bruno@clisp.org>
2466
2467	Small code cleanup.
2468	* package.d (rehash_symtab): Remove leftover code from 2009-10-07.
2469
24702017-10-24  Bruno Haible  <bruno@clisp.org>
2471
2472	Improve code structure.
2473	* foreign.d: Reorder functions, to avoid forward declarations.
2474	* subr.d: Update.
2475	* constsym.d: Update.
2476
24772017-10-24  Bruno Haible  <bruno@clisp.org>
2478
2479	Code style.
2480	* foreign.d: Use 'var' for local variable declarations.
2481
24822017-10-24  Bruno Haible  <bruno@clisp.org>
2483
2484	Fix compilation errors on HP-UX (regression from 2008-03-12).
2485	* unix.d: On HP-UX, undefine also HAVE_DLADDR etc.
2486	* foreign.d (foreign_library_variable, foreign_library_function):
2487	Fix declaration to match the one on the other platforms.
2488
24892017-10-24  Bruno Haible  <bruno@clisp.org>
2490
2491	Do not assume that /dev/fd[012] exists on AIX and HP-UX.
2492	* stream.d (handle_pathname): On AIX and HP-UX, return NIL.
2493	* makemake.in (check-script): Do not run unportable test on AIX and
2494	HP-UX.
2495
24962017-10-24  Bruno Haible  <bruno@clisp.org>
2497
2498	Fix the error message of TRUENAME on a nonexistent file.
2499	* pathname.d (my_realpath): Define always.
2500	(realpath_is_my_realpath): New macro.
2501	(realpath_obj): Invoke realpath, then my_realpath in case of error
2502	ENOENT.
2503
25042017-10-23  Bruno Haible  <bruno@clisp.org>
2505
2506	Fix an endless recursion during "make check" on AIX.
2507	* stream.d (IS_EINVAL_EXTRA): On AIX, include the ENODEV errors.
2508
25092017-10-23  Bruno Haible  <bruno@clisp.org>
2510
2511	Fix a "make check" hang on AIX.
2512	* makemake.in (check-script): Work around an AIX peculiarity.
2513
25142017-10-23  Bruno Haible  <bruno@clisp.org>
2515
2516	Make intparam.c compile with g++ >= 6.
2517	Reported by Sam Steingold in bug#709.
2518	* intparam.c (main9, get_stack_direction): Do not use the C keyword
2519	'auto'.
2520
25212017-10-22  Bruno Haible  <bruno@clisp.org>
2522
2523	Avoid link errors when passing -DNO_ARI_ASM or -DNO_SP_ASM in CPPFLAGS.
2524	* makemake.in (ARI_ASMD, ARI_ASMS): Test whether XCFLAGS or XCPPFLAGS
2525	contains -DNO_ARI_ASM. Do not test for --enable-portability directly.
2526	(SP_ASMS, SP_ASMD): Test whether XCFLAGS or XCPPFLAGS contains
2527	-DNO_SP_ASM. Do not test for --enable-portability directly.
2528
25292017-10-22  Bruno Haible  <bruno@clisp.org>
2530
2531	Improve decision whether to use symbolflags or not.
2532	* lispbibl.d (oint_symbolflags_shift, NO_symbolflags): Define depending
2533	on sizeof_symbol_is_multiple_of_varobject_alignment and alignment_long.
2534
25352017-10-22  Bruno Haible  <bruno@clisp.org>
2536
2537	Improve decision whether to require varobject_alignment for symbols.
2538	* lispbibl.d (MAP_MEMORY_TABLES): Move up.
2539	(varobject_alignment): Add comment.
2540	(sizeof_symbol_is_multiple_of_varobject_alignment): New macro.
2541	(symbol_): Add filler word if necessary to ensure appropriate size.
2542	Define 'symbol_has_symfiller' if so.
2543	* constsym.d (LISPSYM_B): Test 'symbol_has_symfiller'. Define through
2544	auxiliary macros SYM_VAROBJECT_HEADER_INIT1, SYM_VAROBJECT_HEADER_INIT2,
2545	SYM_SYMFILLER_INIT, SYM_TLS_INDEX_INIT.
2546
25472017-10-22  Bruno Haible  <bruno@clisp.org>
2548
2549	Clarify which compilers can align global variables.
2550	* lispbibl.d (HAVE_GLOBAL_VAR_ALIGN): New macro.
2551	* spvwtabf.d (subr_tab_data): Mention it in comment.
2552	* spvwtabs.d (symbol_tab_data): Likewise.
2553
25542017-10-22  Bruno Haible  <bruno@clisp.org>
2555
2556	Avoid redefinition warnings.
2557	* lispbibl.d (TYPECODES, KERNELVOID32_HEAPCODES, GENERIC64_HEAPCODES,
2558	HEAPCODES, SINGLEMAP_MEMORY, GENERATIONAL_GC): Do not define if already
2559	defined.
2560
25612017-10-19  Bruno Haible  <bruno@clisp.org>
2562
2563	Fix GC crash when cleaning weak hash table (regression from 2004-05-09).
2564	* hashtabl.d (prepare_resize): Pre-fill the new index-vector with "nix".
2565
25662017-10-19  Bruno Haible  <bruno@clisp.org>
2567
2568	Readd currently redundant check, in comments.
2569	* hashtabl.d (prepare_resize): Readd test removed on 2012-03-10, but
2570	keep it disabled.
2571
25722017-10-19  Bruno Haible  <bruno@clisp.org>
2573
2574	Fix build failure with DEBUG_GCSAFETY (regression from 2017-10-14).
2575	* makemake.in (gen.lispbibl.c): Replace 'print' statements with fprint
2576	statements.
2577
25782017-10-18  Bruno Haible  <bruno@clisp.org>
2579
2580	Fix compilation failure with DEBUG_SPVW & SPVW_PURE & GENERATIONAL_GC.
2581	* spvw_global.d (mem): Remove heapnr_from_type field.
2582	(HAVE_HEAPNR_FROM_TYPE): Remove macro.
2583	(init_mem_heapnr_from_type): Remove function.
2584	(typecode_to_heapnr): New macro.
2585	* spvw_global_old.d: Likewise.
2586	* spvw_garcol.d (update): Use typecode_to_heapnr instead of
2587	mem.heapnr_from_type array.
2588	* spvw_garcol_old.d: Likewise.
2589	* spvw_genera1.d (rebuild_old_generation_cache, gc_check_at): Likewise.
2590	* spvw_genera1_old.d: Likewise.
2591	* spvw.d (init_memory): Update.
2592
25932017-10-18  Bruno Haible  <bruno@clisp.org>
2594
2595	Fix build failure with cc on IRIX.
2596	* foreign.d (do_av_start): Access the 'flags' field only on Windows.
2597
25982017-10-18  Bruno Haible  <bruno@clisp.org>
2599
2600	Fix build failure with pre-C99 compilers (regression from 2008-10-29).
2601	* spvw_allocate.d (allocate): Use braces at variable declarations after
2602	statements.
2603
26042017-10-16  Bruno Haible  <bruno@clisp.org>
2605
2606	Fix build failure on Linux/arm64 with CC="arm-linux-gnueabihf-gcc-4.8".
2607	* lispbibl.d (C_CODE_ALIGNMENT) [ARM]: Set to 1.
2608
26092017-10-16  Bruno Haible  <bruno@clisp.org>
2610
2611	Avoid a crash of the highest bit number test on Linux/arm.
2612	* m4/mmap.m4 (CL_MMAP): On arm systems, test address 0x41000000 instead
2613	of address 0x40000000.
2614	* aclocal.m4, src/configure: Regenerated.
2615
26162017-10-16  Bruno Haible  <bruno@clisp.org>
2617
2618	Avoid another risky optimization when --enable-portability is enabled.
2619	* lispbibl.d: When NO_SYMBOLFLAGS is defined, do not use symbolflags.
2620	* makemake.in (XCFLAGS): Add -DNO_SYMBOLFLAGS if --enable-portability
2621	is specified.
2622
26232017-10-16  Bruno Haible  <bruno@clisp.org>
2624
2625	Fix build failure on Linux/s390x.
2626	* makemake.in: When compiling lisparit.c with GCC for s390x, reduce
2627	optimizations.
2628
26292017-10-15  Bruno Haible  <bruno@clisp.org>
2630
2631	Fix build failure on Linux/sparc64.
2632	* makemake.in: When compiling eval.c with GCC for sparc64, disable
2633	optimizations.
2634
26352017-10-15  Bruno Haible  <bruno@clisp.org>
2636
2637	Avoid another dangerous code when --enable-portability is enabled.
2638	* eval.d (closure_register, byteptr_register): Do not define if
2639	NO_ASM is defined.
2640
26412017-10-15  Bruno Haible  <bruno@clisp.org>
2642
2643	Improve code structure.
2644	* lispbibl.d: Reorder a #if cascade.
2645
26462017-10-14  Bruno Haible  <bruno@clisp.org>
2647
2648	Use only mappable addresses in TRIVIALMAP_MEMORY.
2649	* lispbibl.d (TRIVIALMAP_MEMORY): Do not enable if
2650	MAPPABLE_ADDRESS_RANGE_START or MAPPABLE_ADDRESS_RANGE_END are not
2651	defined.
2652	* spvw.d (init_memory) [TRIVIALMAP_MEMORY]: Obey
2653	MAPPABLE_ADDRESS_RANGE_START and MAPPABLE_ADDRESS_RANGE_END. Remove the
2654	previous unreliable heuristics.
2655
26562017-10-14  Bruno Haible  <bruno@clisp.org>
2657
2658	Simplify makemake.in.
2659	* makemake.in (echotabpipe): Remove function. Use 'echotab' instead.
2660
26612017-10-14  Bruno Haible  <bruno@clisp.org>
2662
2663	Make genclisph check for errors on its output files.
2664	* genclisph.d: Take the header output file as first argument. The
2665	test output file is no longer optional. Check fclose result on all
2666	output streams. Emit logging output to stdout, not stderr.
2667	* makemake.in (gen.lispbibl.c): Replace 'puts' and 'printf' statements
2668	with fprintf statements.
2669	(clisp.h): Use clisp.h.tmp as temporary header output file.
2670
26712017-10-14  Bruno Haible  <bruno@clisp.org>
2672
2673	Make genclisph code clearer.
2674	* genclisph.d (check_typecodes): Check test_f value not here...
2675	(main): ... but here.
2676
26772017-10-14  Bruno Haible  <bruno@clisp.org>
2678
2679	Fix build failure with TYPECODES (regression from 2010-10-08).
2680	* genclisph.d (check_typecode_entry): Check array_simplep only for
2681	typecodes of array types.
2682
26832017-10-13  Bruno Haible  <bruno@clisp.org>
2684
2685	Fix warning in clisp-test.c (regression from 2017-08-24).
2686	* genclisph.d (check_typecodes): Fix %-escape mistake.
2687
26882017-10-13  Bruno Haible  <bruno@clisp.org>
2689
2690	Tweak mappable address range for Linux/x86_64.
2691	* lispbibl.d (MAPPABLE_ADDRESS_RANGE_END): Shrink a bit.
2692
26932017-10-12  Bruno Haible  <bruno@clisp.org>
2694
2695	Verified mappable address range for Solaris 11.
2696	* lispbibl.d: Add comments about Solaris 11.
2697
26982017-10-12  Bruno Haible  <bruno@clisp.org>
2699
2700	Guarantee a page boundary between the growing and shrinking heap_limits
2701	in case of GENERATIONAL_GC && SPVW_MIXED_BLOCKS.
2702	* spvw_allocate.d (make_space_gc_true, make_space_gc_false): Round to
2703	physpagesize, not map_pagesize, if GENERATIONAL_GC is enabled.
2704	* spvw_fault.d (handle_fault): Drop the requirement that
2705	SIGSEGV_FAULT_ADDRESS_ALIGNMENT be 1.
2706	* spvw_fault_old.d (handle_fault): Likewise.
2707	* lispbibl.d (GENERATIONAL_GC): Define without considering the value of
2708	SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
2709
27102017-10-12  Bruno Haible  <bruno@clisp.org>
2711
2712	Fix mistake in "highest bit number" test (regression from 2017-10-08).
2713	* m4/mmap.m4 (CL_MMAP): Update after value of cache variable changed.
2714	* aclocal.m4, src/configure: Regenerated.
2715
27162017-10-08  Bruno Haible  <bruno@clisp.org>
2717
2718	Update to the newest gnulib.
2719	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
2720	&& make -f Makefile.devel build-prerequisites".
2721	* gllib/*: Update from gnulib.
2722
27232017-10-08  Bruno Haible  <bruno@clisp.org>
2724
2725	Define mappable address range for many platforms.
2726	* lispbibl.d (UNIX_GNU_FREEBSD, UNIX_IRIX): New macros.
2727	(MAPPABLE_ADDRESS_RANGE_START, MAPPABLE_ADDRESS_RANGE_END): Define for
2728	many platforms.
2729	(ADDRESS_RANGE_RANDOMIZED): Do not define on OpenBSD.
2730
27312017-10-08  Bruno Haible  <bruno@clisp.org>
2732
2733	New option "-marc" for mappable address range check.
2734	* spvw.d (mappable_address_range_check): New function.
2735	(parse_options): New option "-marc".
2736	* makemake.in: New target 'marc.out'.
2737	(all): Depend on it.
2738	(clean1): Remove it.
2739
27402017-10-08  Bruno Haible  <bruno@clisp.org>
2741
2742	Emit the output of "lisp.run -mm" to stdout, not stderr.
2743	* win32.d (DumpProcessMemoryMap): Accept a FILE* argument.
2744	* win32aux.d (DumpProcessMemoryMap): Likewise.
2745	* spvw.d (dump_process_memory_map_callback): Likewise.
2746	(dump_process_memory_map): Likewise.
2747	(parse_options): Pass stdout.
2748	* spvw_mmap.d (warn_before_reserving_range, mmap_prepare): Pass stderr.
2749
27502017-10-08  Bruno Haible  <bruno@clisp.org>
2751
2752	Fix misuse of Autoconf cache.
2753	* m4/mmap.m4 (CL_MMAP): Put the complete test result in a single *_cv_*
2754	variable.
2755	* aclocal.m4, src/configure: Regenerated.
2756
27572017-10-08  Bruno Haible  <bruno@clisp.org>
2758
2759	Fix build failure with pre-C99 compilers (regression from 2017-03-14).
2760	* spvw_mmap.d: Use 'var' where appropriate.
2761	* pathname.d: Put (void)param statements first.
2762
27632017-10-07  Bruno Haible  <bruno@clisp.org>
2764
2765	Properly recognize PowerPC64 CPU on AIX.
2766	* lispbibl.d (POWERPC64): Define also when _ARCH_PPC64 is defined.
2767
27682017-10-07  Bruno Haible  <bruno@clisp.org>
2769
2770	Fix error when creating lispbibl.h on AIX.
2771	* makemake.in (lispbibl.h): Start the command with '( (', not '(('.
2772
27732017-10-07  Bruno Haible  <bruno@clisp.org>
2774
2775	Update to the newest gnulib.
2776	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
2777	&& make -f Makefile.devel build-prerequisites".
2778	* gllib/*: Update from gnulib.
2779
27802017-10-07  Bruno Haible  <bruno@clisp.org>
2781
2782	Fix false alarm about mmap on DragonFly BSD.
2783	* spvw_mmap.d (mincore_works): New variable.
2784	(mincore_init): Initialize it.
2785	(warn_before_mmap): Do nothing if mincore_works is false.
2786
27872017-10-07  Bruno Haible  <bruno@clisp.org>
2788
2789	Relax the Autoconf test for mmap with MAP_FIXED.
2790	* m4/mmap.m4 (CL_MMAP): Test only whether mmap with MAP_FIXED works
2791	for some address.
2792	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2793
27942017-10-07  Bruno Haible  <bruno@clisp.org>
2795
2796	Remove support for Sun-4 machines prior to Sun-4m.
2797	* m4/mmap.m4 (CL_MMAP): Do not define HAVE_MMAP_DEVZERO_SUN4_29.
2798	* configure.in: Update comment.
2799	* makemake.in (XCFLAGS): Do not define SUN4_29.
2800	* lispbibl.d: Remove tests of SUN4_29.
2801	* unix.d: Simplify accordingly.
2802	* spvw.d (init_memory): Remove SUN4_29 special case.
2803	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2804
28052017-10-07  Bruno Haible  <bruno@clisp.org>
2806
2807	Update after the newest change in libsigsegv's API.
2808	* spvw_mmap.d (system_pagesize): New variable.
2809	(mmap_init_pagesize): Initialize it.
2810	* spvw_fault.d (handle_fault): Use system_pagesize instead of the
2811	(constant) value of SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
2812	* spvw_fault_old.d (handle_fault): Likewise.
2813
28142017-10-07  Bruno Haible  <bruno@clisp.org>
2815
2816	Fix compilation error on FreeBSD (regression from 2017-10-06).
2817	* m4/vadvise.m4: New file.
2818	* configure.in: Invoke CL_VADVISE.
2819	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2820
28212017-10-06  Bruno Haible  <bruno@clisp.org>
2822
2823	Fix compilation error on NetBSD 8 beta.
2824	* unix.d (vadvise): Assume it is declared in <sys/vadvise.h>.
2825	* configure.in: Do not invoke CL_VADVISE. Just check for vadvise instead.
2826	* m4/vadvise.m4: Remove file.
2827	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2828
28292017-10-05  Bruno Haible  <bruno@clisp.org>
2830
2831	Autoconf macros: Use AS_HELP_STRING systematically.
2832	AS_HELP_STRING ensures proper column alignment.
2833	Note that its first argument must be double quoted, otherwise brackets
2834	in the argument are discarded if they are not escaped as trigraphs.
2835	* m4/clisp.m4 (CL_CLISP): Fix indentation and quoting style.
2836	* m4/ffcall.m4 (CL_FFCALL): Talk about GNU libffcall. Use AS_HELP_STRING
2837	instead of AC_HELP_STRING.
2838	* m4/readline.m4 (CL_READLINE): Talk about GNU readline. Use
2839	AS_HELP_STRING instead of AC_HELP_STRING.
2840	* m4/termcap.m4 (CL_TERMCAP): Use AS_HELP_STRING.
2841	* m4/lightning.m4 (CL_LIGHTNING): Fix quoting style.
2842	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
2843
28442017-10-05  Bruno Haible  <bruno@clisp.org>
2845
2846	Fix signal blocking handling (regression from 2008-05-25).
2847	* m4/signal.m4 (CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS,
2848	CL_SIGACTION_UNBLOCK): Remove test of now nonexistent variable
2849	$signalblocks.
2850	* aclocal.m4, src/configure: Regenerated.
2851
28522017-10-05  Bruno Haible  <bruno@clisp.org>
2853
2854	Modernize: <termio.h>, <sys/termio.h>, <sgtty.h> are not needed.
2855	All current platforms that have one of these also have <termios.h>.
2856	* unix.d: Assume that if HAVE_TERMIOS_H is not defined,
2857	HAVE_SYS_TERMIO_H, HAVE_TERMIO_H, HAVE_SGTTY_H are not defined either.
2858	* m4/ioctl.m4 (CL_IOCTL): Likewise.
2859	* stream.d: Remove code for UNIX_TERM_TERMIO and UNIX_TERM_SGTTY.
2860	* m4/termios.m4 (CL_TERM): Do not test for termio.h, sys/termio.h,
2861	sgtty.h.
2862	* configure.in: Update comment.
2863	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2864
28652017-10-05  Bruno Haible  <bruno@clisp.org>
2866
2867	Modernize: Assume that <termios.h> has tcgetattr() and TCSAFLUSH.
2868	* unix.d: Assume that HAVE_TERMIOS_H implies HAVE_TCGETATTR and
2869	HAVE_TCSAFLUSH.
2870	* m4/ioctl.m4 (CL_IOCTL): Likewise.
2871	* m4/termios.m4 (CL_TERM): Do not test for tcgetattr and TCSAFLUSH.
2872	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2873
28742017-10-05  Bruno Haible  <bruno@clisp.org>
2875
2876	Modernize: Assume that <sys/ptem.h> is not needed for 'struct winsize'.
2877	'struct winsize' is found in <sys/ioctl.h> on all current platforms.
2878	* unix.d: Assume WINSIZE_NEED_SYS_PTEM_H is not defined.
2879	* m4/termios.m4 (CL_TERM): Do not test for <sys/ptem.h>.
2880	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2881
28822017-10-05  Bruno Haible  <bruno@clisp.org>
2883
2884	Modernize: Assume that getpagesize() exists on all Unix platforms.
2885	* spvw_mmap.d (mmap_init_pagesize): Do not use SHMLBA nor Solaris
2886	2.4 fallbacks.
2887	* unix.d: Do not include <sys/ipc.h>, <sys/shm.h>,
2888	<sys/sysmacros.h>, <sys/vmmac.h>.
2889	* configure.in: Do not invoke CL_SHM_H, CL_SHM.
2890	* m4/shm.m4: Remove file.
2891	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2892
28932017-10-05  Bruno Haible  <bruno@clisp.org>
2894
2895	Ensure compatibility of .mem file between NetBSD/sparc architectures.
2896	* spvw_mmap.d (mmap_init_pagesize): Choose 8192 on any SPARC platform.
2897
28982017-10-05  Bruno Haible  <bruno@clisp.org>
2899
2900	Modernize: Assume that getrusage() is properly declared.
2901	* unix.d (getrusage): Remove declaration.
2902	* m4/rusage.m4 (CL_RUSAGE): Do not define RUSAGE_WHO_T.
2903	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2904	* modules/*/configure, modules/*/config.h.in: Regenerated.
2905
29062017-10-05  Bruno Haible  <bruno@clisp.org>
2907
2908	Remove unused code in Autoconf macros.
2909	* configure.in: Do not invoke CL_RLIMIT. Instead, check for getrlimit.
2910	* modules/syscalls/configure.in: Do not invoke CL_RLIMIT. Instead,
2911	check for getrlimit, setrlimit, and determine sizeof(rlim_t).
2912	* src/m4/rlimit.m4: Remove file.
2913	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2914	* modules/*/configure, modules/*/config.h.in: Regenerated.
2915
29162017-10-05  Bruno Haible  <bruno@clisp.org>
2917
2918	Remove unused autoconf test.
2919	* configure.in: Do not invoke CL_MSYNC.
2920	* m4/msync.m4: Remove file.
2921	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2922
29232017-10-05  Bruno Haible  <bruno@clisp.org>
2924
2925	Drop support for old Mac OS Rhapsody.
2926	* lispbibl.d (UNIX_RHAPSODY, UNIX_DARWIN): Remove macros.
2927	Test UNIX_MACOSX instead of UNIX_DARWIN everywhere.
2928	* unix.d: Remove special code for UNIX_RHAPSODY.
2929	* spvw.d, stream.d, socket.d: Test UNIX_MACOSX instead of UNIX_DARWIN.
2930
29312017-10-05  Bruno Haible  <bruno@clisp.org>
2932
2933	Modernize: Assume that caddr_t is a typedef equivalent to 'char *'.
2934	* m4/mmap.m4 (CL_MMAP): Use 'char*' instead of 'caddr_t'.
2935	* stream.d (clear_tty_input, finish_tty_output, clear_tty_output): Use
2936	'char*' instead of 'CADDR_T'.
2937	* configure.in: Do not invoke CL_CADDR_T.
2938	* m4/caddr_t.m4: Remove file.
2939	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2940
29412017-10-05  Bruno Haible  <bruno@clisp.org>
2942
2943	Remove unused code in Autoconf macros.
2944	* m4/ioctl.m4 (CL_IOCTL): Do not define IOCTL_REQUEST_T, IOCTL_DOTS,
2945	IOCTL_ARGUMENT_T.
2946	* configure.in: Update comment.
2947	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2948
29492017-10-05  Bruno Haible  <bruno@clisp.org>
2950
2951	Modernize: Assume ANSI C or C++ in Autoconf macros.
2952	* m4/as-underscore.m4: Use ANSI C prototypes.
2953	* m4/signal.m4: Likewise.
2954	* aclocal.m4, src/configure: Regenerated.
2955
29562017-10-05  Bruno Haible  <bruno@clisp.org>
2957
2958	Remove workaround against ancient systems with old waitpid declaration.
2959	* unix.d (waitpid, wait2): Use pid_t instead of PID_T.
2960	* unixaux.d (wait2): Likewise.
2961	* configure.in: Do not invoke CL_WAITPID.
2962	* m4/waitpid.m4: Remove file.
2963	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2964
29652017-10-05  Bruno Haible  <bruno@clisp.org>
2966
2967	Remove workaround against ancient systems with hidden ELOOP macro.
2968	* pathname.d (realpath, get_path_info): Use ELOOP, not ELOOP_VALUE.
2969	* configure.in: Do not invoke CL_ELOOP.
2970	* m4/eloop.m4: Remove file.
2971	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2972
29732017-10-05  Bruno Haible  <bruno@clisp.org>
2974
2975	Remove workaround against ancient Cygwin bug (not known to gnulib).
2976	* pathname.d (directory_search_scandir): Use closedir, not CLOSEDIR.
2977	* unix.d (CLOSEDIR): Remove macro.
2978	* configure.in: Do not invoke CL_CLOSEDIR.
2979	* m4/closedir.m4: Remove file.
2980	* m4/filecharset.m4: Update.
2981	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2982
29832017-10-04  Bruno Haible  <bruno@clisp.org>
2984
2985	maint: Modernize code style of Autoconf macros.
2986	* m4/*.m4: Use modern indentation and quoting style.
2987	* m4/filecharset.m4: Fix compilation failure with pre-C99 compilers
2988	(regression from 2008-05-27).
2989	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
2990
29912017-10-03  Bruno Haible  <bruno@clisp.org>
2992
2993	Remove unused autoconf test.
2994	* src/configure.in: Do not invoke CL_SHM_RMID.
2995	* src/m4/shm-rmid.m4: Remove file.
2996	* src/m4/shm.m4 (CL_SHM): Update.
2997	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
2998
29992017-10-03  Bruno Haible  <bruno@clisp.org>
3000
3001	Update to the newest gnulib.
3002	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
3003	&& make -f Makefile.devel build-prerequisites".
3004	* build-aux/config.guess: Update from gnulib git.
3005	* build-aux/config.sub: Likewise.
3006	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
3007	* modules/*/configure, modules/*/config.h.in: Regenerated.
3008	* gllib/*: Update from gnulib.
3009	* glm4/*: Likewise.
3010
30112017-10-01  Bruno Haible  <bruno@clisp.org>
3012
3013	Fix build failure on glibc systems where iconv converters are missing.
3014	* constsym.d: Do not define many charset symbols if HAVE_GOOD_ICONV is
3015	not set.
3016	* encoding.d: Remove verification that HAVE_GOOD_ICONV is set.
3017	(init_encodings_2): Do not assume that HAVE_GOOD_ICONV is set.
3018	(encoding_from_name): Update accordingly.
3019
30202017-09-30  Bruno Haible  <bruno@clisp.org>
3021
3022	Fix build failure with pre-C99 compilers (regression from 2008-07-12).
3023	* eval.d (JMP): Insert extra braces.
3024	* pathname.d (classify_namestring): Use 'var'.
3025	Likewise in some other places.
3026	* stream.d (wr_by_aux_ia_unbuffered, wr_by_array_iau8_unbuffered): Use
3027	'var'.
3028	Likewise in some other places.
3029
30302017-09-30  Bruno Haible  <bruno@clisp.org>
3031
3032	configure: Fix build failure on IRIX when CC is set and not GCC
3033	(regression from 2011-05-17).
3034	* configure: Do not invoke $CC -dumpmachine when $CC does not
3035	contain 'gcc'.
3036
30372017-09-29  Bruno Haible  <bruno@clisp.org>
3038
3039	Fix build failure on many platforms (regression from 2017-09-24).
3040	* lispbibl.d (Stream): Do not use INNARDS_OF_GCV_OBJECT if it is not
3041	defined.
3042
30432017-09-29  Bruno Haible  <bruno@clisp.org>
3044
3045	Update to the newest gnulib.
3046	Ran "make -f Makefile.devel build-aux-update gnulib-imported \
3047	&& make -f Makefile.devel build-prerequisites".
3048	* build-aux/config.guess: Update from gnulib git.
3049	* build-aux/config.sub: Likewise.
3050	* build-aux/ar-lib: Update from automake git.
3051	* build-aux/compile: Likewise.
3052	* build-aux/depcomp: Likewise.
3053	* build-aux/install-sh: Likewise.
3054	* build-aux/missing: Likewise.
3055	* build-aux/ylwrap: Likewise.
3056	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
3057	* modules/*/configure, modules/*/config.h.in: Regenerated.
3058	* gllib/*: Update from gnulib.
3059	* glm4/*: Likewise.
3060
30612017-09-24  Bruno Haible  <bruno@clisp.org>
3062
3063	Define suitable address ranges in lispbibl.d, rather than in spvw.d.
3064	* lispbibl.d (MAPPABLE_ADDRESS_RANGE*): New macros, extracted from
3065	spvw.d.
3066	* spvw.d (init_memory): Use them.
3067
30682017-09-24  Bruno Haible  <bruno@clisp.org>
3069
3070	Fix build failure on Linux/mipseb with WIDE_SOFT.
3071	This fixes a problem of the 2017-05-29 change.
3072	Based on work by Sébastien Villemot <sebastien@debian.org>,
3073	reported in bug#705.
3074	* lispbibl.d (Stream): Put strmflags and strmtype inside a union.
3075	(strmflags, strmtype): Define as macros.
3076	(allocate_stream, var_stream): Rename parameters.
3077	* spvw_typealloc.d (allocate_stream): Rename parameters.
3078	* stream.d (var_stream): Likewise.
3079
30802017-09-24  Bruno Haible  <bruno@clisp.org>
3081
3082	Talk about Cygwin, not Cygwin32.
3083	* lispbibl.d (UNIX_CYGWIN): Renamed from UNIX_CYGWIN32.
3084	* constsym.d, error.d, genclisph.d, pathname.d, socket.d, spvw.d,
3085	spvw_sigsegv.d, stream.d, subr.d, unix.d, unixaux.d, execname.c: Update.
3086	* _distmakefile, _clisp.c: Likewise.
3087	* modules/syscalls/calls.c: Likewise.
3088	* modules/berkeley-db/bdb.c: Likewise.
3089	* modules/dirkey/dirkey.c: Likewise.
3090	* m4/closedir.m4: Update comment.
3091
30922017-09-24  Bruno Haible  <bruno@clisp.org>
3093
3094	Extend porting documentation.
3095	* unix/PLATFORMS: Add section about address space layout.
3096
30972017-09-24  Bruno Haible  <bruno@clisp.org>
3098
3099	Fix g++ -std=gnu++11 "invalid suffix on literal" warnings.
3100	* constobj.d (O(command_shell)): Put a space between literal string and
3101	token that expands to some strings.
3102	* built.d (built_flags): Likewise.
3103
31042017-09-24  Bruno Haible  <bruno@clisp.org>
3105
3106	Fix build failure with "g++ -std=gnu++11" and libffcall 2.0.
3107	* foreign.d (cast_to_callback_t): New macro.
3108	(free_foreign_callin, convert_function_from_foreign): Use it.
3109
31102017-09-20  Bruno Haible  <bruno@clisp.org>
3111
3112	Improve code structure.
3113	* clhs.lisp: Reorder functions.
3114
31152017-09-20  Bruno Haible  <bruno@clisp.org>
3116
3117	Remove unused code.
3118	* clhs.lisp (read-from-file): Remove function.
3119	(start-message): Move from here...
3120	* modules/libsvm/libsvm.lisp (start-message): ... to here.
3121
31222017-09-20  Bruno Haible  <bruno@clisp.org>
3123
3124	Retrieve the CLHS symbol map in one step, in most cases.
3125	* clhs.lisp (ensure-clhs-map): Use the domain name as a guidance which
3126	map file name to try.
3127
31282017-09-19  Bruno Haible  <bruno@clisp.org>
3129
3130	Avoid build failure in clx/new-clx module in WIDE_SOFT model.
3131	Reported and fix proposed by Sébastien Villemot in
3132	<https://sourceforge.net/p/clisp/patches/51/>.
3133	The cause is that export_def is not 100% hygienic: It outputs a
3134	definition with all occurring macros pre-expanded. Therefore the macro
3135	argument names must be different from all identifiers that may be
3136	pulled in by macro expansion of the occurring macros.
3137	* lispbibl.d (cstombs_help_): Rename argument 'A' to 'asserter'.
3138	(with_string_0_help_, with_sstring_0_help_): Rename argument 'A' to
3139	'asserter', 'NR' to 'notreached'.
3140	(unpack_sstring_alloca_help_): Rename argument 'u' to 'notreached'.
3141
31422017-09-10  Bruno Haible  <bruno@clisp.org>
3143
3144	Use newest libffcall.
3145	* m4/ffcall.m4 (CL_LIBFFCALL_DOWNLOAD_URL): Point to the libffcall-2.0
3146	release.
3147	(CL_FFCALL): Try to link first with -lffcall, before falling back to
3148	linking with -lavcall -lcallback. Correct indentation.
3149	* aclocal.m4, src/configure: Regenerated.
3150
31512017-08-24  Bruno Haible  <bruno@clisp.org>
3152
3153	Remove the need to pass --with-libsigsegv-prefix when passing --prefix.
3154	Likewise for --with-libffcall-prefix.
3155	This helps at least on Linux/powerpc64 (CentOS 7).
3156	* configure (explicit_prefix): New variable.
3157	(note_prefix): New function. Invoke it when a --prefix option is seen.
3158	(have_explicit_libsigsegv_args, have_explicit_libffcall_args): New
3159	variables. Use them to know whether to augment subdir_configure_args.
3160
31612017-08-24  Bruno Haible  <bruno@clisp.org>
3162
3163	Improve support for portability testing.
3164	The function mymalloc had code for checking the result of malloc(),
3165	but this check was a no-op in the interesting cases (e.g. with
3166	SINGLEMAP_MEMORY), and additionally it remained silent.
3167	* spvw_allocate.d (pointable_usable_test): Really test whether the
3168	malloc() result occupied some bits outside oint_addr_mask.
3169	(mymalloc): Print a warning before returning NULL.
3170	* spvw_allocate_old.d: Likewise.
3171
31722017-08-24  Bruno Haible  <bruno@clisp.org>
3173
3174	Handle ILP32 ABIs properly.
3175	* lispbibl.d (intQsize, HAVE_DD): Omit redundancy. But list ARM64
3176	because of its ILP32 ABI.
3177
31782017-08-24  Bruno Haible  <bruno@clisp.org>
3179
3180	Support for Linux/s390x.
3181	* lispbibl.d: On Linux/s390x, default the memory model to
3182	GENERIC64_HEAPCODES and avoid SINGLEMAP_MEMORY.
3183	(oint_type_*, oint_addr_*, oint_data_*) [UNIX_LINUX && S390_64]: Define
3184	a parameterization of TYPECODES configuration.
3185	* spvw.d (init_memory): Hardcode some good heap limits for the
3186	TRIVIALMAP_MEMORY model on Linux/s390x.
3187
31882017-08-24  Bruno Haible  <bruno@clisp.org>
3189
3190	Support for Linux/powerpc64.
3191	* lispbibl.d (oint_type_*, oint_addr_*, oint_data_*)
3192	[UNIX_LINUX && POWERPC64]: Define parameterization of TYPECODES
3193	configuration.
3194	(mtypecode): Define also for oint_type_len==8 on 64-bit machines.
3195	* spvw.d (init_memory): Hardcode some good heap limits for the
3196	TRIVIALMAP_MEMORY model on Linux/powerpc64.
3197
31982017-08-24  Bruno Haible  <bruno@clisp.org>
3199
3200	Support for Linux/arm64.
3201	* makemake.in (XCFLAGS): Add '-fPIC' on ARM64.
3202	* lispbibl.d (MALLOC_ADDRESS_RANGE) [UNIX_LINUX && ARM64]: Redefine,
3203	to work around deficiency of the configure test.
3204	(oint_type_*, oint_addr_*, oint_data_*) [UNIX_LINUX && ARM64]: Define
3205	parameterization of TYPECODES configuration.
3206	(varobject_alignment): Define to 8 on ARM64.
3207	* spvw.d (init_memory): Hardcode some good heap limits for the
3208	TRIVIALMAP_MEMORY model on Linux/arm64.
3209
32102017-08-24  Bruno Haible  <bruno@clisp.org>
3211
3212	Support 64-bit platforms with MMAP_FIXED_ADDRESS_HIGHEST_BIT <= 38.
3213	On 64-bit platforms with an mmapable address range of at most 39 bits,
3214	aint and saint were defined to 32-bit integer types, which is
3215	catastrophic for SINGLEMAP_MEMORY support.
3216	* lispbibl.d (aint, saint): Define to 64-bit integer types in this case.
3217
32182017-08-24  Bruno Haible  <bruno@clisp.org>
3219
3220	Avoid unwarranted warnings from gcc's -Wformat-security.
3221	Reported by Jerry James in
3222	<https://sourceforge.net/p/clisp/mailman/message/36008037/>.
3223	* lispbibl.d (gettext, clgettext, clgettextl): Declare with GCC
3224	attribute format_arg.
3225
32262017-08-24  Bruno Haible  <bruno@clisp.org>
3227
3228	For stdio to stdout/stderr, avoid use of fputs and puts.
3229	* lispbibl.d (fprint, print): New macros.
3230	* lispbibl.d, avl.d, encoding.d, error.d, errunix.d, errwin32.d:
3231	* eval.d, genclisph.d, io.d, lightning.c, spvw.d:
3232	* spvw_alloca.d, spvw_allocate.d, spvw_allocate_old.d, spvw_debug.d:
3233	* spvw_fault.d, spvw_fault_old.d, spvw_garcol.d, spvw_garcol_old.d:
3234	* spvw_global.d, spvw_memfile.d, spvw_mmap.d, spvw_sigint.d:
3235	* spvw_sigsegv.d, win32aux.d:
3236	Replace most uses of fputs, puts, fputc, putc by uses of macros 'print'
3237	and 'fprint'.
3238	* floatparam.c (print): New macro. Use it instead of puts.
3239	* intparam.c (print): New macro. Use it instead of puts.
3240	(print_underscored): Renamed from printf_underscored.
3241
32422017-08-23  Sam Steingold  <sds@gnu.org>
3243
3244	* error.d, errunix.d, errwin32.d, eval.d, floatparam.c:
3245	* genclisph.d, intparam.c, io.d, lightning.c, lispbibl.d:
3246	* spvw_alloca.d, spvw_debug.d, spvw_fault.d, spvw_fault_old.d:
3247	* spvw_garcol.d, spvw_global.d, spvw_mmap.d, spvw_sigint.d:
3248	Use (f)puts instead of (f)printf when possible.
3249
32502017-08-04  Sam Steingold  <sds@gnu.org>
3251
3252	* m4/ffcall.m4, configure, .hgignore: Recommend building libffcall
3253	and libsigsegv in the hg-ignored prerequisites directory and use
3254	$() instead of `` in instructions for the sake of tmux.
3255
32562017-08-03  Sam Steingold  <sds@gnu.org>
3257
3258	Fix bug#701: deftype does not check package lock.
3259	* clos-genfun2b.lisp (top-level-declarations): Extract from...
3260	(check-gf-declspecs): Use it.
3261	* condition.lisp (check-not-type): Call check-package-lock.
3262	(check-not-declaration): Call check-not-declaration,
3263	use top-level-declarations.
3264	* init.lisp (check-redefinition): Call check-package-lock even if
3265	no files are associated with the symbol.
3266
32672017-08-03  Sam Steingold  <sds@gnu.org>
3268
3269	Fix bug#702: CLISP handles declarations inconsistently.
3270	* clos-genfun2b.lisp (+gf-declarations+): Remove.
3271	(check-gf-declspecs): Pass ERROR or WARN to ERRFUNC as appropriate
3272	and return the list of validated declarations.
3273	(shared-initialize-<standard-generic-function>): Use the return
3274	value of check-gf-declspecs as the declspecs slot.
3275	* clos-genfun3.lisp (analyze-defgeneric): Ditto.
3276	* constobj.d (declaration_types): Add DYNAMICALLY-MODIFIABLE.
3277
32782017-08-02  Sam Steingold  <sds@gnu.org>
3279
3280	* clos-genfun2b.lisp, clos-genfun3.lisp, clos-genfun4.lisp:
3281	* clos-methcomb2.lisp, clos-method1.lisp, clos-method2.lisp:
3282	* clos-method3.lisp, defstruct.lisp, places.lisp: Use ("~?" fmt args)
3283	instead of ("~A" (apply #'format nil fmt args))
3284	for brevity, clarity and uniformity.
3285
32862017-08-02  Sam Steingold  <sds@gnu.org>
3287
3288	* makemake.in (gllib/libgnu.a): Depend on build-aux.
3289
32902017-07-31  Sam Steingold  <sds@gnu.org>
3291
3292	Implement RFE#52: add (declare (dynamically-modifiable)).
3293	* clos-genfun1.lisp (generic-function): Add slot
3294	$DYNAMICALLY-MODIFIABLE.
3295	* clos-genfun2b.lisp (+gf-declarations+): New constant.
3296	(check-gf-declspecs): Use it.
3297	(std-add-method): Use GF-DYNAMICALLY-MODIFIABLE instead of
3298	*DYNAMICALLY-MODIFIABLE-GENERIC-FUNCTION-NAMES* to disable warnings.
3299	(gf-set-dynamically-modifiable): New function.
3300	(initialize-instance-<generic-function>)
3301	(reinitialize-instance-<generic-function>): Use it.
3302	(*dynamically-modifiable-generic-function-names*): Remove.
3303	(need-gf-already-called-warning-p): Use GF-DYNAMICALLY-MODIFIABLE
3304	instead of *DYNAMICALLY-MODIFIABLE-GENERIC-FUNCTION-NAMES*.
3305	* clos-package.lisp, init.lisp: Export DYNAMICALLY-MODIFIABLE.
3306	* compiler.lisp (*declaration-types*): Add DYNAMICALLY-MODIFIABLE.
3307	(process-declarations): Handle DYNAMICALLY-MODIFIABLE.
3308	* clos-genfun4.lisp (no-applicable-method, no-primary-method)
3309	(no-next-method, find-method, add-method, remove-method)
3310	(compute-discriminating-function, compute-applicable-methods)
3311	(compute-applicable-methods-using-classes)
3312	(compute-effective-method): Declare dynamically-modifiable.
3313	* clos-genfun5.lisp (ensure-generic-function-using-class): Ditto.
3314	* clos-method3.lisp (method-qualifiers, method-generic-function)
3315	((setf method-generic-function), function-keywords): Ditto.
3316	* clos-class5.lisp (shared-initialize, reinitialize-instance)
3317	(initialize-instance, allocate-instance, make-instance)
3318	(dynamically-modifiable, update-instance-for-different-class)
3319	(make-instances-obsolete, update-instance-for-redefined-class): Ditto.
3320	* clos-class6.lisp (class-name, (setf class-name))
3321	(class-direct-subclasses, class-direct-superclasses)
3322	(compute-direct-slot-definition-initargs)
3323	(compute-class-precedence-list)
3324	(compute-effective-slot-definition-initargs)
3325	(compute-effective-slot-definition, compute-slots)
3326	(compute-default-initargs, ensure-class-using-class)
3327	(validate-superclass, add-direct-subclass, remove-direct-subclass)
3328	(reader-method-class, writer-method-class): Ditto.
3329	* clos-dependent.lisp (add-dependent, remove-dependent)
3330	(map-dependents): Ditto.
3331	* clos-print.lisp (print-object): Ditto.
3332	* clos-slotdef3.lisp (direct-slot-definition-class)
3333	(effective-slot-definition-class): Ditto.
3334	* clos-slots2.lisp (slot-missing, slot-unbound)
3335	(slot-value-using-class, (setf slot-value-using-class))
3336	(slot-boundp-using-class, slot-makunbound-using-class): Ditto.
3337	* clos-specializer3.lisp (specializer-direct-generic-functions)
3338	(add-direct-method, remove-direct-method)
3339	(specializer-direct-methods): Ditto.
3340	* describe.lisp (describe-object): Ditto.
3341	* documentation.lisp (documentation, (setf documentation)): Ditto.
3342	* gray.lisp (close, open-stream-p, stream-element-type)
3343	((setf stream-element-type), stream-position)
3344	(stream-read-sequence, stream-write-sequence, stream-read-char)
3345	(stream-unread-char, stream-read-char-no-hang, stream-peek-char)
3346	(stream-listen, stream-read-char-will-hang-p)
3347	(stream-read-char-sequence, stream-read-line, stream-clear-input)
3348	(stream-write-char, stream-line-column, stream-start-line-p)
3349	(stream-write-char-sequence, stream-write-string, stream-terpri)
3350	(stream-fresh-line, stream-finish-output, stream-force-output)
3351	(stream-clear-output, stream-advance-to-column, stream-read-byte)
3352	(stream-read-byte-lookahead, stream-read-byte-will-hang-p)
3353	(stream-read-byte-no-hang, stream-read-byte-sequence)
3354	(stream-write-byte, stream-write-byte-sequence): Ditto.
3355	* loadform.lisp (make-load-form): Ditto.
3356
33572017-07-17  Sam Steingold  <sds@gnu.org>
3358
3359	* gray.lisp (clos::*dynamically-modifiable-generic-function-names*):
3360	Add Gray generic functions to avoid the
3361	CLOS:GF-ALREADY-CALLED-WARNING as per the spec.
3362	Reported by Jean Louis <bugs@gnu.support>.
3363
33642017-06-25  Bruno Haible  <bruno@clisp.org>
3365
3366	Bump version number after beta release.
3367	* version.sh: Bump version number to 2.49.60+.
3368	* version.h, src/configure: Regenerated.
3369
33702017-06-25  Bruno Haible  <bruno@clisp.org>
3371
3372	Regenerate the POT file.
3373	* po/*.pot, po/*.po, po/*.gmo: Regenerated through
3374	"make -f Makefile.devel potfiles".
3375
33762017-06-25  Bruno Haible  <bruno@clisp.org>
3377
3378	Prepare a beta release for translators.
3379	* version.sh: Bump version number to 2.49.60.
3380	* version.h, src/configure: Regenerated.
3381
33822017-06-25  Bruno Haible  <bruno@clisp.org>
3383
3384	Update Swedish translation.
3385	* po/sv.po: Update from Sebastian Rasmussen <sebras@gmail.com>.
3386	* po/sv.gmo, po/clisplow_sv.*: Regenerated.
3387
33882017-06-24  Bruno Haible  <bruno@clisp.org>
3389
3390	Use newest libffcall.
3391	* m4/ffcall.m4 (CL_LIBFFCALL_DOWNLOAD_URL): Point to the libffcall-1.13
3392	release.
3393	* aclocal.m4, src/configure: Regenerated.
3394
33952017-06-22  Bruno Haible  <bruno@clisp.org>
3396
3397	Update French translation.
3398	* po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>.
3399	* po/fr.gmo, po/clisplow_fr.*: Regenerated.
3400
34012017-06-22  Bruno Haible  <bruno@clisp.org>
3402
3403	Update Swedish translation.
3404	* po/sv.po: Update from Sebastian Rasmussen <sebras@gmail.com>.
3405	* po/sv.gmo, po/clisplow_sv.*: Regenerated.
3406
34072017-06-19  Bruno Haible  <bruno@clisp.org>
3408
3409	Remove some obsolete code.
3410	Reported by Compro Prasad <comproprasad@gmail.com>.
3411	* lispbibl.d (symbolp): Remove obsolete case that assumes a
3412	symbol_bit_o.
3413
34142017-06-17  Bruno Haible  <bruno@clisp.org>
3415
3416	Update Swedish translation.
3417	* po/sv.po: Update from Sebastian Rasmussen <sebras@gmail.com>.
3418	* po/sv.gmo, po/clisplow_sv.*: Regenerated.
3419
34202017-06-15  Bruno Haible  <bruno@clisp.org>
3421
3422	Avoid warning about restartf_t.
3423	* lispbibl.d: Include <noreturn.h>.
3424	(restartf_t): Use _GL_NORETURN_FUNCPTR instead of _Noreturn.
3425	(quit, reset, unwind_upto): Use _GL_NORETURN_FUNC.
3426	* spvw.d (quit): Use _GL_NORETURN_FUNC.
3427	* eval.d (reset, unwind_upto): Likewise.
3428
34292017-06-15  Bruno Haible  <bruno@clisp.org>
3430
3431	Update to the newest gnulib, and import module 'noreturn'.
3432	Ran "make -f Makefile.devel build-aux-update gnulib-imported
3433	build-prerequisites".
3434	* Makefile.devel (GNULIB_CORE): Add noreturn.
3435	* build-aux/config.guess: Update from gnulib git.
3436	* gllib/*: Update from gnulib.
3437	* glm4/*: Likewise.
3438	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
3439
34402017-06-14  Bruno Haible  <bruno@clisp.org>
3441
3442	Do not declare the need for an executable stack on Linux and FreeBSD.
3443	For explanations, see
3444	<https://git.savannah.gnu.org/gitweb/?p=libffcall.git;a=blob_plain;f=porting-tools/execstack/README>.
3445	* ari80386.d, sp80386.d: Add GNU-stack note.
3446	* arisparc.d, arisparc64.d, spsparc.d, spsparc64.d: Likewise.
3447	* arihppa.d: Likewise.
3448	* arivaxunix.d: Likewise.
3449	* sp68000.d: Likewise.
3450	* ariarm.d: Likewise, but with slightly different syntax.
3451
34522017-06-11  Bruno Haible  <bruno@clisp.org>
3453
3454	Update Swedish translation.
3455	* po/sv.po: Update from Sebastian Rasmussen <sebras@gmail.com>.
3456	* po/sv.gmo, po/clisplow_sv.*: Regenerated.
3457
34582017-06-02  Bruno Haible  <bruno@clisp.org>
3459
3460	Rename frame type CHANDLER to C_HANDLER.
3461	Suggested by Sam Steingold.
3462	* lispbibl.d (C_HANDLER_frame_info): Renamed from CHANDLER_frame_info.
3463	(make_C_HANDLER_frame): Renamed from make_CHANDLER_frame.
3464	(make_C_HANDLER_entry_frame): Renamed from make_CHANDLER_entry_frame.
3465	(unwind_C_HANDLER_frame): Renamed from unwind_CHANDLER_frame.
3466	* eval.d (invoke_handlers): Update.
3467	* io.d (read_internal): Likewise.
3468	* pathname.d (LOGICAL-PATHNAME, direntry_to_string): Likewise.
3469	* stream.d (MAYBE_IGNORE_ERRORS,lisp_completion) : Likewise.
3470	* spvw_update.d (update_STACKs): Likewise.
3471	* spvw_garcol.d, spvw_garcol_old.d (gc_mark_stack): Likewise.
3472
34732017-05-30  Vladimir Tzankov  <vtzankov@gmail.com>
3474
3475	* lispbibl.d (per_thread) [UNIX_MACOSX]: use __thread with clang
3476
34772017-05-30  Bruno Haible  <bruno@clisp.org>
3478
3479	Do not publish impnotes.html for the moment.
3480	* doc/Makefile (DIST): Set to empty.
3481
34822017-05-29  Bruno Haible  <bruno@clisp.org>
3483
3484	Fix GC bug that affects some stream types (regression from 2004-04-28).
3485	Analyzed by Vladimir Tzankov <vtzankov@gmail.com>.
3486	The problem is that since the macro SXrecord_nonweak_length was
3487	introduced, walking a page of Xrecord objects makes use of the
3488	Record_type(obj) without testing whether typecode(obj)==stream_type.
3489	Thus, the fact of storing strmtype in the same place as the rectype
3490	causes an strmtype to be interpreted as a rectype.
3491	* lispbibl.d (Rectype_Stream): Define always.
3492	(Stream): Do not try to save space when case_stream is defined.
3493	(allocate_stream): Define as a function always.
3494	* spvw_typealloc.d (allocate_stream): Likewise.
3495
34962017-05-29  Bruno Haible  <bruno@clisp.org>
3497
3498	Update Swedish translation.
3499	* po/sv.po: Update from Sebastian Rasmussen <sebras@gmail.com>.
3500	* po/sv.gmo, po/clisplow_sv.*: Regenerated.
3501
35022017-05-28  Bruno Haible  <bruno@clisp.org>
3503
3504	New command line option -nextgc-factor (undocumented).
3505	* spvw_global.d (mem): Add nextgc_trigger_factor field.
3506	* spvw_global_old.d: Likewise.
3507	* spvw_garcol.d (gar_col_normal): Multiply total_room with
3508	mem.nextgc_trigger_factor.
3509	* spvw_garcol_old.d: Likewise.
3510	* spvw.d: Include c-strtod.h.
3511	(argv_initparams): Add argv_nextgc_factor field.
3512	(parse_options): Accept option -nextgc-factor.
3513	(init_memory): Initialize mem.nextgc_trigger_factor.
3514
35152017-05-28  Bruno Haible  <bruno@clisp.org>
3516
3517	Update to the newest gnulib, and import module 'c-strtod'.
3518	Ran "make -f Makefile.devel build-aux-update gnulib-imported
3519	build-prerequisites".
3520	* Makefile.devel (GNULIB_CORE): Add c-strtod.
3521	* build-aux/config.guess: Update from gnulib git.
3522	* build-aux/config.sub: Likewise.
3523	* gllib/*: Update from gnulib.
3524	* glm4/*: Likewise.
3525	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
3526	* modules/oracle/configure: Likewise.
3527
35282017-05-27  Bruno Haible  <bruno@clisp.org>
3529
3530	Add check of make_machine_code argument.
3531	* lispbibl.d (make_machine_code_unchecked): Renamed from
3532	make_machine_code.
3533	(make_machine_code): New macro.
3534	(error_pseudocode_alignment): New declaration.
3535	* spvw.d (error_pseudocode_alignment): Make global. Add a 'prefix'
3536	parameter.
3537	(verify_pseudocode_alignment): Pass "&" as prefix argument.
3538
35392017-05-27  Bruno Haible  <bruno@clisp.org>
3540
3541	Do not put arbitrary C function pointers onto the STACK.
3542	* list.d (sublis_assoc): Add pcall_test argument. Use it instead of
3543	assuming to find this C function in the STACK.
3544	(sublis, nsublis): Add pcall_test argument.
3545	(SUBLIS, NSUBLIS): Do not invoke make_machine_code.
3546	Put a dummy onto the STACK instead.
3547
35482017-05-27  Bruno Haible  <bruno@clisp.org>
3549
3550	Put only valid pointers into the FRAME_(frame_SP) of a CHANDLER frame.
3551	* pathname.d (signal_type_error): Fetch the thing from the STACK.
3552	(LOGICAL-PATHNAME): Pass NULL to make_CHANDLER_frame.
3553	* io.d (signal_reader_error): Fetch the stream from the STACK.
3554	(read_internal): Put the stream into the STACK, and pass NULL to
3555	make_CHANDLER_frame.
3556
35572017-05-27  Bruno Haible  <bruno@clisp.org>
3558
3559	New frame type CHANDLER.
3560	Needed because GC has to skip 3 words when scanning STACK, not just 2.
3561	* lispbibl.d: Describe the CHANDLER frames.
3562	(CHANDLER_frame_info): New macro.
3563	(unwind_limit_t, entrypoint_limit_t, skip2_limit_t): Adjust to make room
3564	for this frame info.
3565	(*_frame_info, nested_bit_t, dynjump_mask_t, driver_bit_t,
3566	handler_bit_t, blockgo_max_t): Redefine so that the values fit together.
3567	(make_CHANDLER_frame): Renamed from make_HANDLER_frame. Use
3568	fake_gcv_object instead of make_machine_code.
3569	(make_CHANDLER_entry_frame): Renamed from make_HANDLER_entry_frame. Use
3570	fake_gcv_object instead of make_machine_code.
3571	(unwind_CHANDLER_frame): Renamed from unwind_HANDLER_frame.
3572	* spvw_garcol.d (gc_mark_stack): For CHANDLER frames, skip 3 words,
3573	not 2.
3574	* spvw_garcol_old.d: Likewise.
3575	* spvw_update.d (update_STACKs): Likewise.
3576	* eval.d (invoke_handlers): Distinguish CHANDLER frames and HANDLER
3577	frames through the frame info.
3578	(nest_env): Do not assume that NESTED_ITAGBODY_frame_info and
3579	ITAGBODY_frame_info differ by just bit(nested_bit_t).
3580	* io.d (signal_reader_error): Fix comment.
3581	(read_internal): Update.
3582	* pathname.d (LOGICAL_PATHNAME, direntry_to_string): Update.
3583	* stream.d (MAYBE_IGNORE_ERRORS, lisp_completion): Update.
3584
35852017-05-27  Bruno Haible  <bruno@clisp.org>
3586
3587	Prepare for new frame info byte values.
3588	* lispbibl.d (blockgo_bit_t, cframe_bit_t, dynjump_bit_t,
3589	blockgo_bit_o, cframe_bit_o, dynjump_bit_o): Remove macros.
3590	(blockgo_max_t, dynjump_mask_t): New macros.
3591	(*_frame_info, driver_bit_t): Redefine so that blockgo_max_t works.
3592	* eval.d (unwind): Use blockgo_max_t instead of blockgo_bit_t. Use
3593	CBLOCK_CTAGBODY_frame_info instead of cframe_bit_t. Use dynjump_mask_t
3594	instead of dynjump_bit_t.
3595	* debug.d (blockgo_frame_p): New function.
3596	(lexical_frame_p): Use it.
3597
35982017-05-27  Bruno Haible  <bruno@clisp.org>
3599
3600	Prepare for new frame info byte values.
3601	* lispbibl.d (skip2_limit_t): New macro.
3602	(skip2_bit_t, skip2_bit_o): Remove macros.
3603	* eval.d (unwind): Use skip2_limit_t instead of skip2_bit_t.
3604	* spvw_garcol.d (gc_mark_stack): Use skip2_limit_t instead of
3605	skip2_bit_o.
3606	* spvw_garcol_old.d: Likewise.
3607	* spvw_update.d (update_STACKs): Likewise.
3608	* debug.d (framep, lexical_frame_p, same_env_as): Likewise.
3609
36102017-05-26  Bruno Haible  <bruno@clisp.org>
3611
3612	Allow regular testing of memory management with limited memory size.
3613	* Makefile.devel (build-porting32-gcc-limited_memory,
3614	build-porting32-cc-limited_memory, build-porting64-gcc-limited_memory,
3615	build-porting64-cc-limited_memory): New targets.
3616	* modules/asdf/Makefile (asdf.fas): Give it more memory.
3617
36182017-05-26  Bruno Haible  <bruno@clisp.org>
3619
3620	Allow regular testing of SPVW_PURE_PAGES memory management.
3621	* lispbibl.d: In SPVW_PAGES case with TYPECODES, test PREFER_PURE_PAGES
3622	to decide between SPVW_PURE and SPVW_MIXED.
3623	* Makefile.devel (build-porting32-gcc-typecodes-spvw_pure_pages,
3624	build-porting32-cc-typecodes-spvw_pure_pages,
3625	build-porting64-gcc-typecodes-spvw_pure_pages,
3626	build-porting64-cc-typecodes-spvw_pure_pages): New targets.
3627	(build-porting32-gcc-typecodes-spvw_mixed_pages): Renamed from
3628	build-porting32-gcc-typecodes-spvw_pages.
3629	(build-porting32-cc-typecodes-spvw_mixed_pages): Renamed from
3630	build-porting32-cc-typecodes-spvw_pages.
3631	(build-porting64-gcc-typecodes-spvw_mixed_pages): Renamed from
3632	build-porting64-gcc-typecodes-spvw_pages.
3633	(build-porting64-cc-typecodes-spvw_mixed_pages): Renamed from
3634	build-porting64-cc-typecodes-spvw_pages.
3635
36362017-05-26  Bruno Haible  <bruno@clisp.org>
3637
3638	Optimize unneeded code when SIGCLD is not defined.
3639	* spvw_sigcld.d (begin_want_sigcld, end_want_sigcld): Do nothing if
3640	SIGCLD is not defined.
3641
36422017-05-26  Bruno Haible  <bruno@clisp.org>
3643
3644	Reinstall the old GC from clisp-2.47.
3645	This should provide a reference point when hunting down GC bugs.
3646	* lispbibl.d: Document OLD_GC instead of NO_MULTITHREAD_GC.
3647	Verify OLD_GC and MULTITHREAD are exclusive.
3648	* spvw_allocate_old.d: New file, from clisp-2.47 with non-algorithmic
3649	updates from spvw_allocate.d.
3650	* spvw_circ_old.d: New file, from clisp-2.47.
3651	* spvw_fault_old.d: New file, from clisp-2.47 with non-algorithmic
3652	updates from spvw_fault.d.
3653	* spvw_genera1_old.d: New file, from clisp-2.47 with non-algorithmic
3654	updates from spvw_genera1.d.
3655	* spvw_genera3_old.d: New file, from clisp-2.47.
3656	* spvw_global_old.d: New file, from clisp-2.47 with non-algorithmic
3657	updates from spvw_global.d.
3658	* spvw_heap_old.d: New file, from clisp-2.47.
3659	* spvw.d: Include these files instead of the non-_old variant when
3660	OLD_GC is defined.
3661	* spvw_garcol_old.d: Include the _old variant of spvw* files.
3662	(gc_sweep1_varobject_page): Include DEBUG_SPVW_ASSERT fix from
3663	2009-01-07.
3664	* spvw_memfile.d: Change condition from MULTITHREAD to
3665	!OLD_GC && MULTITHREAD, for clarity.
3666	* spvw_space.d: Likewise.
3667	* spvw_typealloc.d: Likewise.
3668	* makemake.in (SPVW_INCLUDES): Add the new files.
3669	* Makefile.devel (build-porting*old_gc): Define OLD_GC instead of
3670	NO_MULTITHREAD_GC.
3671
36722017-05-25  Bruno Haible  <bruno@clisp.org>
3673
3674	Silence error messages from 'find' (regression from 2017-03-21).
3675	* makemake.in (make_modules): Add test whether $m/configure exists.
3676
36772017-05-25  Bruno Haible  <bruno@clisp.org>
3678
3679	Fix build warning
3680	"unrecognized command line option ‘-Wno-shift-negative-value’".
3681	* makemake.in (XCFLAGS): Use -Wno-shift-negative-value only for
3682	GCC versions that really support it.
3683
36842017-05-25  Bruno Haible  <bruno@clisp.org>
3685
3686	Fix race condition w.r.t. SIGWINCH signal (regression from 2009-10-21).
3687	* spvw.d (main): Invoke update_linelength after establishing the
3688	SIGWINCH handler, not before.
3689
36902017-05-25  Bruno Haible  <bruno@clisp.org>
3691
3692	Add Swedish localization (work in progress).
3693	* constsym.d (swedish): Add.
3694	* spvw_language.d (language_swedish): New enum value.
3695	(current_language_o, init_language): Handle it.
3696	(init_language_from): Check for Swedish.
3697
36982017-05-25  Bruno Haible  <bruno@clisp.org>
3699
3700	Silence error messages from 'find' (regression from 2017-03-21).
3701	* makemake.in (make_modules): Add test whether $m/Makefile exists.
3702
37032017-05-25  Bruno Haible  <bruno@clisp.org>
3704
3705	Small fixes in socket.d.
3706	* lispbibl.d (addr_to_string): Change argument types.
3707	(nonintr_connect): Change name argument type.
3708	(socket_getlocalname, socket_getpeername, accept_connection): Fix
3709	comment.
3710	(create_client_socket): Change timeout argument type. Fix comment.
3711	* socket.d: Mention use of gnulib.
3712	(addr_to_string): Change argument types.
3713	(nonintr_connect): Change name argument type.
3714	(host_fn_t): Change addrlen argument type. Add comment.
3715	(string_to_addr1, resolve_host1): Change addrlen argument type.
3716	(resolve_host): Relax cast of gethostbyaddr's first argument.
3717	(socket_connect_fn_t): Change addr and addrlen argument types. Add
3718	comment.
3719	(with_host_port): Relax cast of connector's first argument.
3720	(connect_to_x_via_ip): Change addr and addrlen argument types.
3721	(socket_getlocalname_aux): Fix comment. Handle inet_ntop failure.
3722	(socket_getlocalname, socket_getpeername): Fix comment.
3723	(socket_getpeername): Handle inet_ntop failure.
3724	(bindlisten_via_ip): Change addr and addrlen argument types.
3725	(accept_connection): Add comment. Set errno, not WSAGetLastError.
3726	(connect_via_ip): Change addr and addrlen argument types. Use do/while
3727	loop instead of 'goto'.
3728	(create_client_socket): Change timeout argument type. Fix comment.
3729	* stream.d (accept_connection, create_client_socket): Remove redundant
3730	declarations.
3731
37322017-05-22  Bruno Haible  <bruno@clisp.org>
3733
3734	Update some URLs.
3735	Reported by Don Cohen
3736	<https://sourceforge.net/p/clisp/mailman/message/35853807/>.
3737	* unix/INSTALL: Update outdated URLs. Prefer https over http or ftp
3738	URLs.
3739
37402017-05-21  Bruno Haible  <bruno@clisp.org>
3741
3742	Add Swedish translation (work in progress).
3743	* po/sv.po: New file, from Sebastian Rasmussen <sebras@gmail.com>.
3744	* po/LINGUAS: Add sv.
3745	* po/Makefile.devel (OTHER_LINGUAS): Add sv.
3746	* po/Makefile.trans.sv: New file.
3747
37482017-05-20  Vladimir Tzankov  <vtzankov@gmail.com>
3749
3750	* lispbibl.d: (MULTITHREAD): Do not use SINGLEMAP_MEMORY model.
3751	Fixed lisp stack address is the issue.
3752
37532017-05-20  Vladimir Tzankov  <vtzankov@gmail.com>
3754
3755	Fix MT builds with MAP_MEMORY_TABLES model
3756	* spvw.d (create_thread, init_multithread_special_symbols): Initialize
3757	thread special variables bindings once the symbol_tab has been setup.
3758
37592017-04-17  Bruno Haible  <bruno@clisp.org>
3760
3761	Fix regeneration of src/configure after version.sh has changed.
3762	* Makefile.devel ($(CONFIGURES)): Erase autom4te.cache directory (that
3763	contains a cached version number), to make sure the new version number
3764	from version.sh is taken into account.
3765
37662017-04-04  Bruno Haible  <bruno@clisp.org>
3767
3768	Fix build failure on Windows when the version number is "2.49.50".
3769	* makemake.in (clisp.rc): Support major.minor.micro version syntax in
3770	determination of PRODUCTVERSION and FILEFLAGS.
3771
37722017-04-04  Bruno Haible  <bruno@clisp.org>
3773
3774	Fix build failure when compiling for mingw.
3775	* win32.d: Include <winternl.h> and <ntstatus.h>, not <ddk/ntifs.h>.
3776	Fix provided by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
3777
37782017-04-04  Bruno Haible  <bruno@clisp.org>
3779
3780	Fix build failure when compiling for mingw on Cygwin.
3781	* makemake.in (UTILCOMPILE): Use $(CC), not just 'gcc'. This is needed
3782	because the utils/* programs include <config.h>, and config.h was
3783	generated for $(CC).
3784
37852017-03-27  Sam Steingold  <sds@gnu.org>
3786
3787	* makemake.in (check-exec-image): Add the `exit-on-error`
3788	workaround for Bug#695.
3789
37902017-03-26  Sam Steingold  <sds@gnu.org>
3791
3792	* Makefile.devel (MULTIBUILD_OPTIONS): Split into ...
3793	(MULTIBUILD_MODULES): Default to asdf (platform-independent) and
3794	rawsock (well-ported).
3795	(MULTIBUILD_EXTRAS): Empty by default.
3796
37972017-03-23  Sam Steingold  <sds@gnu.org>
3798
3799	* stream.d (wr_by_array_iau8_buffered): Pass persev to
3800	write_byte_array_buffered() instead of persev_full.
3801
38022017-03-23  Reini Urban <reini.urban@gmail.com>
3803	    Sam Steingold  <sds@gnu.org>
3804
3805	* stream.d (iconv): Condition "undef iconv" on whether it is
3806	defined, not on platform.
3807
38082017-03-23  Jerry James <loganjerry@gmail.com>
3809	    Sam Steingold  <sds@gnu.org>
3810
3811	* modules/libsvm/libsvm.lisp (svm_destroy_model): Use C-style
3812	declaration - fix a compilation error (patch#34).
3813
38142017-03-22  Sam Steingold  <sds@gnu.org>
3815
3816	* makemake.in (check-script): Add a test for -x raising an error.
3817	(check-exec-image): Add tests for init-function raising an error.
3818
38192017-03-22  Sam Steingold  <sds@gnu.org>
3820
3821	Fix bug#694: Cygwin+no-dynamic-modules fails with a shell syntax error
3822	* makemake.in (CLISP_DEF): Check CLISP_DEF instead of HSYSOS when
3823	deciding whether to modify CLISP_DEF or not.
3824
38252017-03-21  Bruno Haible  <bruno@clisp.org>
3826
3827	Replace the 'newer' utility with a portable shell alternative.
3828	Jörg Höhle found that "newer $file1 $file2" is equivalent to
3829	test -f $file1 && \
3830	  { test ! -f $file2 || test -n "`find $file1 -prune -newer $file2`"; }
3831	* src/makemake.in (UTILS): Remove 'newer'.
3832	Use a 'find' based shell command instead of the 'newer' program.
3833	* utils/newer.c: Remove file.
3834	* Makefile.devel (GNULIB_CORE): Remove stat-time, timespec.
3835	* gllib/*: Update from gnulib.
3836	* glm4/*: Likewise.
3837	* gllib/Makefile.am, gllib/Makefile.in: Regenerated.
3838	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
3839	* build-aux/config.sub: Update from gnulib git.
3840
38412017-03-20  Bruno Haible  <bruno@clisp.org>
3842
3843	Fix "End of comment outside comment" warnings from varbrace.
3844	* utils/varbrace.c (enum parsing_state): New type.
3845	(parsing_state_at_end_of_line): New function.
3846	(next_token): Continue reading more lines for a preprocessor
3847	line that ends within a C style comment.
3848
38492017-03-20  Sam Steingold  <sds@gnu.org>
3850
3851	Fix non-blocking sockets on Mac OS X.
3852	* unix.d (NO_BLOCK_DECL): Do not accept handle.
3853	(START_NO_BLOCK): Accept on_fail, move function call from
3854	NO_BLOCK_DECL here.
3855	(END_NO_BLOCK): Accept on_fail.
3856	* win32.d (NO_BLOCK_DECL, START_NO_BLOCK, END_NO_BLOCK): Add.
3857	* socket.d (connect_via_ip): Use
3858	NO_BLOCK_DECL/START_NO_BLOCK/END_NO_BLOCK.
3859	* stream.d (listen_handle): Update the use of
3860	NO_BLOCK_DECL/START_NO_BLOCK/END_NO_BLOCK.
3861	* unixaux.d (fd_read, fd_write, sock_write): Ditto.
3862	Reported by Karsten Poeck <Karsten.Poeck@gmail.com>.
3863
38642017-03-20  Reini Urban  <reini.urban@gmail.com>
3865            Bruno Haible  <bruno@clisp.org>
3866
3867	Fix text file processing Makefile rules for parallel make.
3868	* makemake.in (TXT_FILES): Use a different temporary file for each
3869	target file.
3870
38712017-03-20  Reini Urban  <reini.urban@gmail.com>
3872            Bruno Haible  <bruno@clisp.org>
3873
3874	Fix intparam.h/floatparam.h Makefile rule for parallel make.
3875	* makemake.in (PARAMS): Use a different temporary file for each
3876	target file.
3877
38782017-03-20  Bruno Haible  <bruno@clisp.org>
3879
3880	Bump version number after beta release.
3881	* version.sh: Bump version number to 2.49.50+.
3882	* version.h, aclocal.m4, src/configure: Regenerated.
3883
38842017-03-19  Bruno Haible  <bruno@clisp.org>
3885
3886	Prepare beta release.
3887	* version.sh: Bump version number to 2.49.50.
3888	* version.h, aclocal.m4, src/configure: Regenerated.
3889
38902017-03-19  Bruno Haible  <bruno@clisp.org>
3891
3892	Fix the recognition of Solaris.
3893	* lispbibl.d (UNIX_SUNOS5): Include also Solaris/x86_64.
3894
38952017-03-19  Bruno Haible  <bruno@clisp.org>
3896
3897	Fix recognition of native Windows as target platform.
3898	* makemake.in (TOS): Set based on $host_os from autoconf.
3899
39002017-03-19  Bruno Haible  <bruno@clisp.org>
3901
3902	Do not generate a broken Makefile when using the option --host/--build.
3903	Rationale:
3904	- clisp cannot be cross-built anyway (because of the memory image).
3905	  The earlier use-case of "makemake cross ..." of ca. 1993 was when
3906	  compiling for a slow machine. Nowadays machines are much faster.
3907	- The main use of --host is to indicate which toolchain to use
3908	  (${host}-gcc, ${host}-ld, ${host}-ar, etc.)
3909	- --host is frequently used in builds on Windows (e.g.
3910	  --build=i686-pc-cygwin --host=i686-w64-mingw32).
3911	* configure: Do not pass 'cross' to makemake.
3912
39132017-03-19  Bruno Haible  <bruno@clisp.org>
3914
3915	Fix error message when configure fails due to a missing argument.
3916	* configure: Set prev to 'build', not 'host'. In the error message,
3917	add '--' before prev.
3918
39192017-03-19  Bruno Haible  <bruno@clisp.org>
3920
3921	Fix build failure when compiling 'newer' on Cygwin.
3922	* makemake.in (CPPFLAGS): Add the ${GNULIB_INCLUDE} options here too.
3923	Link all programs that are compiled with $(CPPFLAGS) with ${GLLIB_A}.
3924	(MODULE_CPPFLAGS): No need to add ${GNULIB_INCLUDE} a second time.
3925
39262017-03-19  Bruno Haible  <bruno@clisp.org>
3927
3928	Fix alignment issues on IA64 and with GENERIC64C_HEAPCODES.
3929	* lispbibl.d (C_CODE_ALIGNMENT, log2_C_CODE_ALIGNMENT): Do not redefine.
3930	(PSEUDODATA_ALIGNMENT, log2_PSEUDODATA_ALIGNMENT): New macros.
3931	(PSEUDOCODE_ALIGNMENT, log2_PSEUDOCODE_ALIGNMENT): New macros.
3932	(make_machine_code): Adjust for GENERIC64C_HEAPCODES.
3933	(TheMachineCode): Adjust accordingly.
3934	* spvw.d (verify_pseudodata_alignment): New macro.
3935	(error_pseudodata_alignment): New function.
3936	(verify_pseudocode_alignment): Renamed from verify_code_alignment.
3937	(error_pseudocode_alignment): Renamed from error_code_alignment. Change
3938	error message.
3939	(init_memory): Invoke verify_code_alignment, verify_pseudodata_alignment
3940	respectively.
3941	* encoding.d (nls_table_t): Align to PSEUDODATA_ALIGNMENT, not 4.
3942
39432017-03-19  Bruno Haible  <bruno@clisp.org>
3944
3945	Fix an autoconf test crash on IA64.
3946	* m4/mmap.m4: On IA64, do not try to mmap at the address where the
3947	executable sits.
3948
39492017-03-19  Bruno Haible  <bruno@clisp.org>
3950
3951	Update to the newest gnulib.
3952	Ran "make -f Makefile.devel build-aux-update gnulib-imported
3953	build-prerequisites".
3954	* gllib/*: Update from gnulib.
3955	* glm4/*: Likewise.
3956	* aclocal.m4, src/configure: Regenerated.
3957
39582017-03-18  Bruno Haible  <bruno@clisp.org>
3959
3960	Make --enable-portability enable support for any kind of address space.
3961	* lispbibl.d: Obey flag NO_ADDRESS_SPACE_ASSUMPTIONS. It has the effect
3962	to enable WIDE_SOFT on 32-bit platforms and disable SINGLEMAP_MEMORY,
3963	TYPECODES, TRIVIALMAP_MEMORY, CAN_ALLOCATE_8BIT_VECTORS_ON_C_STACK,
3964	CAN_ALLOCATE_STRINGS_ON_C_STACK.
3965	* makemake.in (XCFLAGS): Add -DNO_ADDRESS_SPACE_ASSUMPTIONS if
3966	--enable-portability is specified.
3967
39682017-03-18  Bruno Haible  <bruno@clisp.org>
3969
3970	Avoid code duplication of a condition.
3971	* lispbibl.d (CAN_ALLOCATE_8BIT_VECTORS_ON_C_STACK,
3972	CAN_ALLOCATE_STRINGS_ON_C_STACK): New macros.
3973	(_SP_before_suspend, SET_SP_BEFORE_SUSPEND): Use them.
3974	* spvw_global.d (is_valid_stack_address): Likewise.
3975	* constobj_tl.d: Likewise.
3976
39772017-03-17  Bruno Haible  <bruno@clisp.org>
3978
3979	Update to the newest gnulib.
3980	Ran "make -f Makefile.devel build-aux-update gnulib-imported
3981	build-prerequisites".
3982	* gllib/*: Update from gnulib.
3983	* glm4/*: Likewise.
3984	* aclocal.m4, src/configure: Regenerated.
3985
39862017-03-17  Bruno Haible  <bruno@clisp.org>
3987
3988	Fix build failures with --with-debug on NetBSD.
3989	* unix.d: Include <sys/ioctl.h> always. Needed to get ioctl() declared.
3990	* foreign.d (FOREIGN-POINTER-INFO): Cast dli.dli_saddr, possibly a
3991	'const void *', to 'void *'.
3992	* lispbibl.d (dotimes_called_with_count_of_wrong_size): Export to
3993	clisp.h.
3994
39952017-03-17  Bruno Haible  <bruno@clisp.org>
3996
3997	Do not test unportable features in "make check".
3998	* makemake.in: Generate a new target 'extracheck'. Let 'extracheck', not
3999	'check', depend on 'check-exec-image'.
4000
40012017-03-17  Bruno Haible  <bruno@clisp.org>
4002
4003	Fix build failure on Linux/arm.
4004	* arilev0.d (mulu32_, divu_3216_1616_, divu_3216_3216_, divu_3232_3232_,
4005	divu_6432_3232_, divu_6432_6432_, divu_6464_6464_): When defined in
4006	lisparit.o, add a suffix to the symbol. This avoids a link-time
4007	collision with ari*.o.
4008
40092017-03-16  Bruno Haible  <bruno@clisp.org>
4010
4011	Fix build failure on 64-bit HP-UX without -DNO_ARI_ASM.
4012	* lispbibl.d (HPPA64): New macro.
4013	* arilev0.d: Exclude HPPA64 when testing for HPPA.
4014	* intlog.d: Likewise.
4015
40162017-03-16  Bruno Haible  <bruno@clisp.org>
4017
4018	Fix build failure on 64-bit HP-UX with -DNO_ARI_ASM.
4019	* intlog.d (integerlength32) [HPPA]: Test NO_ARI_ASM, not NO_ASM.
4020
40212017-03-16  Bruno Haible  <bruno@clisp.org>
4022
4023	Enable the '-mm' option also on HP-UX.
4024	* spvw_mmap.d (dump_process_memory_map_callback,
4025	dump_process_memory_map): Move from here...
4026	* spvw.d (dump_process_memory_map_callback, dump_process_memory_map):
4027	... to here.
4028
40292017-03-16  Bruno Haible  <bruno@clisp.org>
4030
4031	Fix build failure on HP-UX.
4032	* makemake.in (with_dynamic_modules): Default to 'no' on HP-UX.
4033
40342017-03-16  Bruno Haible  <bruno@clisp.org>
4035
4036	Fix build failure with HP-UX cc and Sun cc.
4037	* makemake.in: Compile the CPARTS and clisp-test.c with option "-I.".
4038
40392017-03-16  Bruno Haible  <bruno@clisp.org>
4040
4041	Fix build failure on HP-UX/hppa.
4042	* arilev0.d (divu_6432_3232_): Test HPPA_DIV_WORKS, not HPPA.
4043
40442017-03-16  Bruno Haible  <bruno@clisp.org>
4045
4046	Fix build failure with HP-UX make.
4047	Apparently HP-UX make expects an absolute filename for SHELL.
4048	* makemake.in: For HP-UX, set SHELL to the absolute filename of bash,
4049	not just "bash".
4050
40512017-03-16  Bruno Haible  <bruno@clisp.org>
4052
4053	Do not rely on unportable 'test file1 -nt file2' primitive.
4054	Fixes a build failure on OpenBSD.
4055	* Makefile.devel (GNULIB_CORE): Add stat-time, timespec.
4056	* utils/newer.c: New file.
4057	* makemake.in: Do not emit a '.SHELL' line.
4058	(UTILS): Add 'newer'.
4059	Use the 'newer' program instead of a 'newer()' shell function.
4060	* configure.in: Do not invoke CL_TEST_NT.
4061	* m4/test.m4: Remove file.
4062	* gllib/*: Update from gnulib.
4063	* glm4/*: Likewise.
4064	* gllib/Makefile.am, gllib/Makefile.in: Regenerated.
4065	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
4066
40672017-03-16  Bruno Haible  <bruno@clisp.org>
4068
4069	maint: Add a convenience target for checking the documentation.
4070	* Makefile.devel (check-doc): New target.
4071
40722017-03-15  Bruno Haible  <bruno@clisp.org>
4073
4074	Fix build failure on HP-UX (regression from 2005-07-29).
4075	* makemake.in (gen.lispbibl.c): Fix the sed expression to also work
4076	with HP-UX sed.
4077
40782017-03-15  Bruno Haible  <bruno@clisp.org>
4079
4080	Do not treat all non-GCC compilers like SUNWspro cc.
4081	* makemake.in: Fix the test of the CC_SUNPRO variable.
4082
40832017-03-15  Bruno Haible  <bruno@clisp.org>
4084
4085	Update to the newest gnulib.
4086	Ran "make -f Makefile.devel build-aux-update gnulib-imported
4087	build-prerequisites".
4088	* build-aux/config.guess: Update from gnulib git.
4089	* build-aux/snippet/*: Update from gnulib.
4090	* gllib/*: Likewise.
4091	* glm4/*: Likewise.
4092	* gllib/Makefile.am, gllib/Makefile.in: Regenerated.
4093	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
4094
40952017-03-14  Sam Steingold  <sds@gnu.org>
4096
4097	Fix TRUENAME on /proc symlinks to very long paths.
4098	* pathname.d (get_path_info): When result==linklen, retry
4099	readlink() because this means that linkbuf was too small.
4100
41012017-03-14  Bruno Haible  <bruno@clisp.org>
4102
4103	Fix build failure on AIX in 64-bit mode with gcc.
4104	* makemake.in: Compile genclisph.c with option -O1, not -O0.
4105
41062017-03-14  Sam Steingold  <sds@gnu.org>
4107
4108	* compiler.lisp (c-EVAL-WHEN): Remove the set-but-not-used
4109	variable `eval-p'.
4110
41112017-03-14  Sam Steingold  <sds@gnu.org>
4112
4113	avoid many -Wunused-parameter warnings
4114	* spvw.d, spvw_garcol.d, spvw_mmap.d, spvw_sigint.d, spvw_sigpipe.d,
4115	spvw_sigsegv.d, spvw_sigwinch.d: Cast unused parameters to 'void'.
4116
41172017-03-14  Sam Steingold  <sds@gnu.org>
4118
4119	Fix bug#687: executable images are broken when configured --with-debug.
4120	* spvw_memfile.d (find_memdump): Reduce header_size: exclude
4121	_subr_tab_addr and _symbol_tab_addr from header comparison.
4122
41232017-03-13  Bruno Haible  <bruno@clisp.org>
4124
4125	Implement the undocumented option -mm on many more platforms.
4126	* spvw.d (parse_options): Accept option '-mm' on all platforms.
4127	Implement it also on all other platforms where gnulib's vma-iter module
4128	works, namely on Linux, FreeBSD, NetBSD, OpenBSD, IRIX, OSF/1, Mac OS X,
4129	Cygwin, BeOS, Haiku.
4130
41312017-03-13  Bruno Haible  <bruno@clisp.org>
4132
4133	Fix result of two autoconf tests in C++ mode.
4134	The test programs need to either use exit() and include <stdlib.h>, or
4135	use 'return'.
4136	* m4/poll.m4 (CL_POLL): Use 'return' instead of 'exit'.
4137	* m4/shm.m4 (CL_SHM): Likewise.
4138	* aclocal.m4, src/configure: Regenerated.
4139
41402017-03-12  Bruno Haible  <bruno@clisp.org>
4141
4142	Add support for generational GC on NetBSD/x86 and NetBSD/x86_64.
4143	* lispbibl.d: On NetBSD/x86, choose the same ONE_FREE_BIT_HEAPCODES
4144	representation as on BeOS/x86. Enable TRIVIALMAP_MEMORY on NetBSD.
4145	* spvw.d (init_memory): Specify usable address range for NetBSD/x86
4146	and NetBSD/x86_64.
4147
41482017-03-12  Bruno Haible  <bruno@clisp.org>
4149
4150	Terminate endless loop of mmap_zeromap failures after 10 failures.
4151	This is useful for NetBSD.
4152	* spvw_mmap.d (spvw_mmap.d): Abort if it fails 10 times in a row with
4153	identical arguments and error code.
4154
41552017-03-12  Bruno Haible  <bruno@clisp.org>
4156
4157	Fix wrong uses of errno.
4158	* spvw_garcol.d (gar_col_normal): Save OS_errno around fputs call.
4159	* spvw_garcol_old.d (gar_col_normal): Likewise.
4160	* spvw_memfile.d (loadmem_from_handle): Save errno around fprintf call.
4161	* spvw_mmap.d (mmap_init, mmap_zeromap): Likewise.
4162	* pathname.d (stat_obj): Save errno before exiting with_sstring_0.
4163
41642017-03-12  Bruno Haible  <bruno@clisp.org>
4165
4166	Simplify GC_SAFE_CALL, GC_SAFE_SYSTEM_CALL.
4167	* lispbibl.d (GC_SAFE_CALL, GC_SAFE_SYSTEM_CALL): Take only 1 argument.
4168	* pathname.d, stream.d: All callers updated.
4169
41702017-03-12  Bruno Haible  <bruno@clisp.org>
4171
4172	Add support for TRIVIALMAP_MEMORY configuration on FreeBSD/x86_64.
4173	* spvw.d (init_memory): Specify usable address range for FreeBSD/x86_64.
4174
41752017-03-12  Bruno Haible  <bruno@clisp.org>
4176
4177	Fix build failure on x86 platforms with clang, e.g. FreeBSD/x86.
4178	* makemake.in (SP_ASMD, SP_ASMS): Set to non-empty also when using
4179	GCC or a GCC compatible compiler.
4180
41812017-03-11  Bruno Haible  <bruno@clisp.org>
4182
4183	Do not attempt to use SINGLEMAP_MEMORY on OpenBSD/x86_64.
4184	* lispbibl.d (SINGLEMAP_MEMORY): Do not define if
4185	ADDRESS_RANGE_RANDOMIZED is defined.
4186
41872017-03-11  Bruno Haible  <bruno@clisp.org>
4188
4189	Add support for generational GC on OpenBSD/x86.
4190	* lispbibl.d (ADDRESS_RANGE_RANDOMIZED): Do not define for 32-bit
4191	OpenBSD.
4192	* spvw.d (init_memory): For 32-bit OpenBSD, use the address range
4193	0x90000000..0xC8000000.
4194
41952017-03-11  Bruno Haible  <bruno@clisp.org>
4196
4197	When warning about the address range, dump the process memory map.
4198	* spvw_mmap.d (dump_process_memory_map_callback,
4199	dump_process_memory_map): New functions.
4200	(warn_before_reserving_range): Invoke dump_process_memory_map.
4201
42022017-03-11  Bruno Haible  <bruno@clisp.org>
4203
4204	Avoid unwanted optimizations on signed integer types by gcc.
4205	* makemake.in (XCFLAGS): Add '-fwrapv' option.
4206
42072017-03-11  Bruno Haible  <bruno@clisp.org>
4208
4209	Fix build failure on OpenBSD 6 (regression from 2017-03-10).
4210	* makemake.in (XCFLAGS): Test gcc version before adding -Wno-* options.
4211
42122017-03-11  Bruno Haible  <bruno@clisp.org>
4213
4214	New heapcodes scheme KERNELVOID32B_HEAPCODES.
4215	Needed to get generational GC working on OpenBSD/x86.
4216	* lispbibl.d: Define/expect KERNELVOID32B_HEAPCODES as an alternative
4217	to KERNELVOID32A_HEAPCODES.
4218	* spvw.d (init_memory): Update accordingly.
4219
42202017-03-11  Bruno Haible  <bruno@clisp.org>
4221
4222	Rename LINUX_NOEXEC_HEAPCODES to KERNELVOID32_HEAPCODES.
4223	* lispbibl.d: Define/expect KERNELVOID32_HEAPCODES and
4224	KERNELVOID32A_HEAPCODES instead of LINUX_NOEXEC_HEAPCODES.
4225	* constsym.d (LISPSYM_B): Update.
4226	* spvw.d (init_memory): Update.
4227	* spvw_gcmark.d (gc_mark): Update.
4228	* spvw_memfile.d (loadmem_update): Update.
4229	* lightning.c: Update.
4230	* io.d (pr_orecord): Update.
4231	* built.d (built_flags): Update.
4232	* Makefile.devel (build-porting*, build-darwin-*): Rename and update
4233	accordingly.
4234
42352017-03-11  Bruno Haible  <bruno@clisp.org>
4236
4237	Rename STANDARD_HEAPCODES to ONE_FREE_BIT_HEAPCODES.
4238	* lispbibl.d: Define/expect ONE_FREE_BIT_HEAPCODES instead of
4239	STANDARD_HEAPCODES.
4240	* spvw.d (init_memory): Update.
4241	* spvw_garcol.d (alive): Update.
4242	* spvw_garcol_old.d (alive): Update.
4243	* spvw_gcmark.d (gc_mark): Update.
4244	* lightning.c: Update.
4245	* built.d (built_flags): Update.
4246	* makemake.in: Update.
4247	* Makefile.devel (build-porting*, build-darwin-*): Rename and update
4248	accordingly.
4249
42502017-03-11  Bruno Haible  <bruno@clisp.org>
4251
4252	maint: Modernize multibuild-linux-x86 target.
4253	* Makefile.devel (build-linux-x86-*): Remove targets.
4254	(multibuild-linux-x86): Use the build-porting32-gcc-* targets.
4255	(multibuild-linux-x86_64): New target.
4256
42572017-03-10  Bruno Haible  <bruno@clisp.org>
4258
4259	Disable address range warning on Mac OS X.
4260	* spvw_mmap.d: Treat Mac OS X like a platform without 'mincore'.
4261	Reported by Sam Steingold.
4262
42632017-03-10  Sam Steingold  <sds@gnu.org>
4264
4265	* makemake.in (XCFLAGS) [GCC & !CROSS]: Add -Wno-shift-negative-value.
4266	Note that gcc accepts -Wno-<whatever>, so no version check is needed.
4267
42682017-03-10  Bruno Haible  <bruno@clisp.org>
4269
4270	Warn before reserving an address range that might crash CLISP.
4271	* Makefile.devel (GNULIB_CORE): Add vma-iter.
4272	* spvw_mmap.d: Include vma-iter.h.
4273	(is_large_range_unmapped_locals): New type.
4274	(is_large_range_unmapped_callback, is_large_range_unmapped,
4275	warn_before_reserving_range): New functions.
4276	(mmap_prepare): Invoke warn_before_reserving_range.
4277	* gllib/*: Update from gnulib.
4278	* glm4/*: Likewise.
4279	* gllib/Makefile.am, gllib/Makefile.in: Regenerated.
4280	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
4281
42822017-03-10  Bruno Haible  <bruno@clisp.org>
4283
4284	Warn before doing mmap calls that might crash clisp.
4285	* configure.in: Test for mincore.
4286	* spvw_mmap.d (mincore_pageinfo_t): New type.
4287	(mincore_init, is_small_range_unmapped, warn_before_mmap): New
4288	functions.
4289	(mmap_init): Invoke mincore_init.
4290	(mmap_zeromap, mmap_filemap): Invoke warn_before_mmap.
4291	* src/configure, src/config.h.in: Regenerated.
4292
42932017-03-09  Sam Steingold  <sds@gnu.org>
4294
4295	Fix module build failure with inttypes defined in base modules.
4296	* foreign.d, subr.d (PARSE-FOREIGN-INTTYPE): Accept second ERRORP
4297	argument; return 0 when the type is not found and ERRORP is NIL.
4298	* foreign1.lisp (parse-c-type): Pass ERRORP=T to PARSE-FOREIGN-INTTYPE.
4299	(finalize-coutput-file): Do not write register_foreign_inttype()
4300	for types already accepted by PARSE-FOREIGN-INTTYPE.
4301
43022017-03-09  Sam Steingold  <sds@gnu.org>
4303
4304	Add asciz_startswith - a replacement for strncmp not requiring
4305	begin_system_call/end_system_call.
4306	* spvw.d (asciz_startswith): Implement.
4307	* lispbibl.d (asciz_startswith): Declare.
4308	* pathname.d (get_path_info): Use it instead of strncmp().
4309
43102017-03-09  Sam Steingold  <sds@gnu.org>
4311
4312	* misc.d (LISP-IMPLEMENTATION-VERSION): Wrap atol() and strncmp()
4313	in begin_system_call/end_system_call.
4314
43152017-03-09  Bruno Haible  <bruno@clisp.org>
4316
4317	Fix build failure with DEBUG_GCSAFETY.
4318	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB): Do
4319	not define if DEBUG_GCSAFETY && SINGLEMAP_MEMORY.
4320
43212017-03-09  Bruno Haible  <bruno@clisp.org>
4322
4323	Fix some gcc warnings about use of fprintf.
4324	* spvw.d (init_memory): Cast specific fprintf arguments to
4325	'unsigned long'.
4326	* spvw_debug.d (nobject_out1): Cast specific fprintf arguments to 'int'
4327	or 'unsigned long'.
4328	(back_trace_depth): Cast specific fprintf arguments to 'unsigned long'.
4329	* spvw_memfile.d (loadmem_from_handle): Cast specific sprintf arguments
4330	to 'unsigned long'.
4331	* spvw_sigsegv.d (print_mem_stats): Cast specific fprintf arguments to
4332	'unsigned long long'.
4333	* eval.d (check_funtab, CHECK_STACK): Cast specific fprintf arguments to
4334	'unsigned long'.
4335	* predtype.d (with_gc_statistics): Likewise.
4336	* errunix.d (OS_error_arg): Likewise.
4337
43382017-03-09  Bruno Haible  <bruno@clisp.org>
4339
4340	configure: Fail right away if configure could not create intparam.h.
4341	* configure: Fail immediately if configure could not create intparam.h
4342	or floatparam.h.
4343
43442017-03-08  Bruno Haible  <bruno@clisp.org>
4345
4346	maint: Add facility for testing builds with DEBUG_GCSAFETY.
4347	* Makefile.devel (build-porting32-gcc-debug_gcsafety,
4348	build-porting64-gcc-debug_gcsafety): New targets.
4349
43502017-03-08  Sam Steingold  <sds@gnu.org>
4351
4352	Modify the bug#679 fix: defer getting the TRUENAME of stdio and
4353	avoid resolving /proc symlinks to non-existing local files
4354	* lispbibl.d (file_stream_truename): Resolve the deferred TRUENAME.
4355	* makemake.in (check-script): Add 2 tests.
4356	* pathname.d (test_file_stream_named): Check name, not truename.
4357	(file_stream_truename): Move here from stream.d
4358	(get_path_info): Do not use local symlinks from "/proc".
4359	(TRUENAME, probe_path_from_stream, DELETE-FILE, RENAME-FILE, OPEN)
4360	(FILE-WRITE-DATE, FILE-AUTHOR): Use file_stream_truename.
4361	* stream.d (handle_pathname): Call PATHNAME instead of TRUENAME.
4362	(handle_to_stream): Do not set strm_file_truename.
4363
43642017-03-05  Bruno Haible  <bruno@clisp.org>
4365
4366	New heuristic for choosing between TYPECODES and HEAPCODES.
4367	* lispbibl.d (TYPECODES): Do not define on 64-bit platforms for which
4368	the address ranges do not fit. Do not defined on 32-bit platforms at all.
4369	Specific platforms might need specific adjustment.
4370
43712017-03-05  Bruno Haible  <bruno@clisp.org>
4372
4373	Fix build failure on AIX in 64-bit mode.
4374	* makemake.in (AR): Use value determined by autoconf.
4375
43762017-03-05  Bruno Haible  <bruno@clisp.org>
4377
4378	Fix build failure on AIX in 64-bit mode.
4379	* glm4/lib-ld.m4: Update from gnulib.
4380	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
4381
43822017-03-05  Bruno Haible  <bruno@clisp.org>
4383
4384	Fix build failures with AIX make.
4385	* makemake.in (gllib): Do not use a directory name as a target name.
4386	(clean-subdirs, disclean-subdirs): Do not use $(MAKE) with option -C.
4387
43882017-03-05  Bruno Haible  <bruno@clisp.org>
4389
4390	Fix autoconf test failure on Solaris.
4391	* m4/address.m4 (CL_ADDRESS_RANGE): Do not redeclare printf.
4392	Assume ANSI C when redeclaring tmpnam.
4393	* aclocal.m4, src/configure: Regenerated.
4394
43952017-03-05  Bruno Haible  <bruno@clisp.org>
4396
4397	Avoid miscompiled code by gcc-5.2 on Solaris/SPARC.
4398	* eval.d (interpret_bytecode_): Disable U_operand assembler code for
4399	SPARC with gcc 5.
4400
44012017-03-05  Bruno Haible  <bruno@clisp.org>
4402
4403	Do not choose SINGLEMAP_MEMORY with wrong oint_type_len, oint_addr_len.
4404	(Regression from 2017-02-28.)
4405	* lispbibl.d: Move definitions of HEAPCODES, TYPECODES, WIDE_STRUCT,
4406	WIDE_ENDIANNESS, OBJECT_STRUCT, CHART_STRUCT down. Move definition of
4407	SINGLEMAP_MEMORY up, so that it occurs before the definition of
4408	oint_type_len, oint_addr_len.
4409	(SINGLEMAP_MEMORY): Remove special-casing of UNIX_AIX and UNIX_NETBSD,
4410	because redundant: On AIX, MMAP_FIXED_ADDRESS_HIGHEST_BIT comes out as
4411	-1. On NetBSD/x86_64, MALLOC_ADDRESS_RANGE has some bits >=
4412	MMAP_FIXED_ADDRESS_HIGHEST_BIT-6 set.
4413
44142017-03-04  Bruno Haible  <bruno@clisp.org>
4415
4416	Make "make check" more robust.
4417	The shell command 'test `command` = ...' provokes a syntax error when
4418	the command produces not exactly one word. To avoid this, use an
4419	intermediate shell variable and double-quote its access.
4420	* makemake.in (check-script): Use intermediate variables for output to
4421	be tested.
4422
44232017-03-04  Bruno Haible  <bruno@clisp.org>
4424
4425	Fix "make check" error on Solaris 10.
4426	Solaris 10 'tail' does not understand the '-n' option.
4427	* makemake.in (check-script): Use "sed -n -e '$p'" instead of
4428	'tail -n 1'.
4429	* clisp-link.in (clisp_eval): Likewise.
4430
44312017-03-04  Bruno Haible  <bruno@clisp.org>
4432
4433	New configure option --enable-portability.
4434	It favours portability over optimizations.
4435	* makemake.in (info_help): Document option --enable-portability.
4436	(enable_portability): New variable. When set, keep ARI_ASMD and SP_ASMD
4437	empty and add the following options to the CFLAGS:
4438	-DNO_ASM -DNO_ARI_ASM -DNO_SP_ASM -DNO_FAST_DISPATCH
4439	-DNO_FAST_FLOAT -DNO_FAST_DOUBLE -DNO_ALLOCA -DNO_GENERATIONAL_GC.
4440	* configure (info_help): Document option --enable-portability.
4441	* Makefile.devel (build-porting*-portability): New targets.
4442	* unix/PLATFORMS: Recommend --enable-portability instead of -DSAFETY=3.
4443
44442017-03-03  Bruno Haible  <bruno@clisp.org>
4445
4446	Fix build failure with NO_ALLOCA (regression from 2005 or earlier).
4447	* spvw.d (find_name): Use a DYNAMIC_ARRAY instead of alloca.
4448	(get_module_symbol): Likewise.
4449	(dynload_modules): Remove a misplaced FREE_DYNAMIC_ARRAY.
4450	* spvw_garcol.d (gar_col_normal): Invoke FREE_DYNAMIC_ARRAY in the
4451	right order.
4452	* spvw_memfile.d (open_native_filename): New function, extracted from
4453	open_filename.
4454	(open_filename): Use a DYNAMIC_ARRAY instead of alloca.
4455	(loadmem): Likewise.
4456	* spvw_sigsegv.d (install_stackoverflow_handler): If NO_ALLOCA,
4457	allocate the fallback stack through malloc instead of alloca.
4458	* pathname.d (get_path_info): Remove FREE_DYNAMIC_ARRAY of a variable
4459	allocated in the caller.
4460	(init_pathnames): Use a DYNAMIC_ARRAY instead of alloca.
4461	(LAUNCH): Invoke FREE_DYNAMIC_ARRAY in the right order.
4462	* stream.d (listen_char_keyboard): Use a DYNAMIC_ARRAY instead of
4463	alloca.
4464	(rd_ch_terminal3): Likewise.
4465	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT): Fix misuse of
4466	FREE_DYNAMIC_8BIT_VECTOR.
4467	* misc.d (REGISTRY): Use a DYNAMIC_ARRAY instead of alloca.
4468	* lisparit.d (print_integer): Fix misuse of FREE_DYNAMIC_STRING.
4469
44702017-03-03  Bruno Haible  <bruno@clisp.org>
4471
4472	Make it possible to avoid any hand-maintained assembler code.
4473	* spsparc.d, spsparc64.d (_get_g1): Move from here ...
4474	* arisparc.d, arisparc64.d: ... to here.
4475	* arilev0.d: If NO_ARI_ASM is defined, do not reference symbols in the
4476	assembly-language ari*.d.
4477	* lispbibl.d: If NO_SP_ASM is defined, do not reference symbols in the
4478	assembly-language sp*.d.
4479
44802017-03-02  Bruno Haible  <bruno@clisp.org>
4481
4482	Fix build failure on 64-bit platforms with CC="gcc -m32".
4483	* configure.in: Invoke AC_LIB_PROG_LD.
4484	* makemake.in (LD): New variable. Use it to produce lisp.o.
4485	* aclocal.m4, src/configure: Regenerated.
4486
44872017-03-02  Bruno Haible  <bruno@clisp.org>
4488
4489	Check the right set of C symbols against C_CODE_ALIGNMENT, part 2.
4490	* makemake.in (FALIGNFLAGS): Use it also when compiling socket.d.
4491
44922017-03-01  Bruno Haible  <bruno@clisp.org>
4493
4494	Check the right set of C symbols against C_CODE_ALIGNMENT.
4495	* pseudofun.d (*PSEUDO_F, *PSEUDO_G): New macros.
4496	* spvw.d (verify_code_alignment, error_code_alignment): Take a C string
4497	as second argument instead of a symbol.
4498	(init_symbol_functions): Do not invoke verify_code_alignment here.
4499	(init_memory): Invoke verify_code_alignment here.
4500	* makemake.in (FALIGNFLAGS): New variable. Use it in the compilation of
4501	specific files.
4502	* Makefile.devel (build-*): Remove -falign-functions options, now
4503	handled through makemake.in.
4504
45052017-03-01  Bruno Haible  <bruno@clisp.org>
4506
4507	Fix build failure with GENERIC64_HEAPCODES and -falign-functions=8.
4508	* makemake.in (WIDE_HARD): New variable.
4509	(XCFLAGS): If WIDE_HARD is true, add -falign-functions=8, not
4510	-falign-functions=4.
4511
45122017-02-28  Bruno Haible  <bruno@clisp.org>
4513
4514	Simplify macrology: Remove MAP_MEMORY macro.
4515	Earlier MAP_MEMORY was SINGLEMAP_MEMORY || MULTIMAP_MEMORY, but since
4516	2008-07-06 we do not have MULTIMAP_MEMORY any more. It is confusing that
4517	MAP_MEMORY is not implied by TRIVIALMAP_MEMORY.
4518	* lispbibl.d (MAP_MEMORY): Remove macro. Use SINGLEMAP_MEMORY instead.
4519	* spvw_fault.d, spvw_garcol.d, spvw_garcol_old.d: Use SINGLEMAP_MEMORY
4520	instead.
4521
45222017-02-28  Bruno Haible  <bruno@clisp.org>
4523
4524	Make SINGLEMAP_MEMORY / SPVW_PURE_BLOCKS work on 64-bit platforms.
4525	* m4/mmap.m4 (CL_MMAP): Add a test that determines
4526	MMAP_FIXED_ADDRESS_HIGHEST_BIT.
4527	* lispbibl.d (oint_type_len, oint_addr_len, etc.): If SINGLEMAP_MEMORY
4528	is defined, define them according to MMAP_FIXED_ADDRESS_HIGHEST_BIT.
4529	(tint, aint, saint): Do not require oint_type_len, oint_addr_len to be
4530	literal constants.
4531	(SINGLEMAP_MEMORY): Define according to MMAP_FIXED_ADDRESS_HIGHEST_BIT
4532	and some address ranges.
4533	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
4534
45352017-02-28  Bruno Haible  <bruno@clisp.org>
4536
4537	Fix build failure with NO_MULTITHREAD_GC and GENERATIONAL_GC.
4538	* spvw.d (varobj_mem_region): Moved here ...
4539	* spvw_garcol.d (varobj_mem_region): ... from here.
4540	* spvw_garcol_old.d (gar_col_normal): Pass NULL to
4541	build_old_generation_cache.
4542
45432017-02-26  Bruno Haible  <bruno@clisp.org>
4544
4545	Fix build failure with NO_MULTITHREAD_GC (leftover from 2008-10-29).
4546	* spvw_garcol_old.d (gar_col): Add 'level' argument.
4547
45482017-02-26  Sam Steingold  <sds@gnu.org>
4549
4550	Fix bug#679: when a stream returned by MAKE-STREAM has a path,
4551	the stream should be an acceptable argument to TRUENAME.
4552	* stream.d (handle_pathname): Call TRUENAME instead of PATHNAME.
4553	(handle_to_stream): Set both pathname and truename.
4554
45552017-02-26  Sam Steingold  <sds@gnu.org>
4556
4557	* modules/asdf/asdf.lisp: Upgrade to upstream 3.2.0.
4558	* Makefile.devel (ASDF_URL): Use https.
4559
45602017-02-26  Bruno Haible  <bruno@clisp.org>
4561
4562	Fix error when running the ansi-tests (regression from 2016-08-26).
4563	* makemake.in: Use clispload.lisp instead of clispload.lsp.
4564
45652017-02-26  Bruno Haible  <bruno@clisp.org>
4566
4567	Make it possible to use Makefile.devel from a source distribution.
4568	* Makefile.devel (SOURCES7): Add version.sh.
4569
45702017-02-26  Bruno Haible  <bruno@clisp.org>
4571
4572	maint: Add facility for testing builds in different configurations.
4573	* lispbibl.d: Reorganize comments about flags that can be set in CFLAGS.
4574	* configure: Write log files cbcstep1.log, cbcstep2.log, cbcstep3.log.
4575	* Makefile.devel (multibuild-porting32-gcc, build-porting32-gcc-*): New
4576	targets.
4577	(multibuild-porting32-cc, build-porting32-cc-*): New targets.
4578	(multibuild-porting64-gcc, build-porting64-gcc-*): New targets.
4579	(multibuild-porting64-cc, build-porting64-cc-*): New targets.
4580
45812017-02-26  Bruno Haible  <bruno@clisp.org>
4582
4583	Use CFLAGS that avoid strict type-based aliasing.
4584	Without it, at least some version of gcc miscompiles 'update_instance'
4585	in record.d.
4586	* makemake.in (XCFLAGS): Add -fno-strict-aliasing or the equivalent
4587	option for other compilers.
4588	Reported by Jerry James <loganjerry@gmail.com> in
4589	<https://sourceforge.net/p/clisp/mailman/message/35687181/>.
4590
45912017-02-26  Bruno Haible  <bruno@clisp.org>
4592
4593	Recognize the Sun compiler also on Solaris/x86.
4594	* makemake.in (XCC_SUNPRO): Use without testing whether TSYS is 'sun4'.
4595
45962017-02-26  Bruno Haible  <bruno@clisp.org>
4597
4598	Fix build failures on Solaris 10 with gcc.
4599	* configure: On Solaris, force CONFIG_SHELL to bash.
4600	* intparam.c: Do not define _POSIX_SOURCE.
4601
46022017-02-26  Bruno Haible  <bruno@clisp.org>
4603
4604	configure: Fix build failure when CC is set and not GCC
4605	(regression from 2011-05-17).
4606	* configure: Ignore exit code of CC_machine assigment statement.
4607
46082017-02-26  Bruno Haible  <bruno@clisp.org>
4609
4610	Fix bug#680: build failure when using --elispdir option.
4611	* configure: Pass --elispdir option and argument only to makemake.
4612	Reported by Alex D.
4613
46142017-02-25  Bruno Haible  <bruno@clisp.org>
4615
4616	Fix build failure when using --with-libreadline-prefix option.
4617	The cause was that the modules/readline/configure script was ignoring
4618	the --with-libreadline-prefix option during autoconfiguration but not
4619	during compilation, because acl_libname_spec and acl_shlibext came out
4620	as empty.
4621	* m4/readline.m4 (CL_READLINE): AC_REQUIRE the prerequisites of
4622	AC_LIB_LINKFLAGS_BODY.
4623
46242017-02-25  Bruno Haible  <bruno@clisp.org>
4625
4626	configure: Give some advice when readline or libncurses is not found.
4627	* m4/readline.m4 (CL_READLINE): If not found, set ac_cv_have_readline
4628	to 'no, per user request'
4629	or 'no, consider installing GNU ncurses'
4630	or 'no, consider installing GNU readline and its header files'
4631	or 'no, consider installing GNU readline 4.1 or newer'.
4632
46332017-02-25  Bruno Haible  <bruno@clisp.org>
4634
4635	configure: Improve failure message when --with-ffcall cannot be honored.
4636	* m4/ffcall.m4 (CL_LIBFFCALL_DOWNLOAD_URL): New macro.
4637	(CL_FFCALL): Upon failure, suggest to build a downloaded tarball. Fix
4638	the final configure invocation line.
4639
46402017-02-25  Bruno Haible  <bruno@clisp.org>
4641
4642	configure: Give some advice when libffcall is not found.
4643	* m4/ffcall.m4 (CL_FFCALL): If not found, set cl_cv_have_ffcall to
4644	'no, consider installing GNU libffcall'.
4645	* configure: Adjust accordingly.
4646
46472017-02-24  Bruno Haible  <bruno@clisp.org>
4648
4649	Fix build failure on non-glibc platforms.
4650	* utils/*.c: Include <config.h>.
4651	* src/makemake.in (UTILS, hardcode): Compile with option "-I.".
4652	Reported by Sam Steingold.
4653
46542017-02-24  Bruno Haible  <bruno@clisp.org>
4655
4656	Modernize: Remove leftover of obsolete Atari ST charset conversion.
4657	* makemake.in (CHSCONVERT, CHSCONVERT_FILTER): Remove variables.
4658
46592017-02-24  Bruno Haible  <bruno@clisp.org>
4660
4661	Fix clang warning "'-falign-functions=4' is not supported" on Mac OS X.
4662	* makemake.in (XCC_BRAND): Set to 'clang' also for the system compiler
4663	on Mac OS X 10.11.
4664	Reported by Sam Steingold.
4665
46662017-02-24  Bruno Haible  <bruno@clisp.org>
4667
4668	maint: Update download of ansi-tests.
4669	* Makefile.devel (ANSITESTS_REPO): New variable.
4670	(ANSITESTS_SVN): Remove variable.
4671	(update-ansi-tests): Use git instead of svn.
4672
46732017-02-22  Bruno Haible  <bruno@clisp.org>
4674
4675	maint: Structure Makefile.devel.
4676	* Makefile.devel: Reorganize in sections and subsections.
4677
46782017-02-21  Bruno Haible  <bruno@clisp.org>
4679
4680	Update libsigsegv download location.
4681	* configure (libsigsegv_url): Use the official download location.
4682
46832017-02-20  Bruno Haible  <bruno@clisp.org>
4684
4685	Fix build failure on Linux/arm.
4686	* makemake.in (ARI_ASMD): Treat cpu 'armhf' like 'arm'.
4687
46882017-02-20  Bruno Haible  <bruno@clisp.org>
4689
4690	Fix syntax errors in makemake.in (regression from 2010-07-13).
4691	* makemake.in: Add ';;' before 'esac'.
4692
46932017-02-20  Bruno Haible  <bruno@clisp.org>
4694
4695	Remove obsolete file.
4696	* unix/sigsegv.c: Remove file. Obsoleted by the libsigsegv package.
4697
46982017-02-19  Bruno Haible  <bruno@clisp.org>
4699
4700	Remove the assembly-language optimizations for m68k.
4701	They are bitrotten, since Linux/m68k is dead. Modern m68k variants
4702	probably have different performance characteristics than the 68020.
4703	* ari68020.d: Remove file.
4704	* makemake.in (ARI_ASMD, ARI_ASMS, ARI_ASMC): Simplify accordingly.
4705	* arilev1.d: Likewise.
4706	* arilev0.d (sign_of_sint32, sign_of_sint16, high16, highlow32,
4707	highlow32_0, mulu32, divu_3216_1616, divu_6432_3232): Remove __asm__
4708	code for m68k.
4709	* intlog.d (integerlength16, integerlength32: Likewise.
4710
47112017-02-19  Bruno Haible  <bruno@clisp.org>
4712
4713	Fix collision between ASCII character names and Unicode character names.
4714	* charstrg.d (char_name): Special case for #\U0001F514 and #\U0001F5CF.
4715	(name_char): Special case for "UNICODE_BELL" and "UNICODE_PAGE".
4716
47172017-02-19  Bruno Haible  <bruno@clisp.org>
4718
4719	Fix clang warning "flag '-falign-functions=4' is not supported".
4720	* makemake.in (XCC_BRAND): New variable.
4721	(XCFLAGS): Do not use -falign-functions=4 with clang.
4722
47232017-02-19  Bruno Haible  <bruno@clisp.org>
4724
4725	Fix build failure with clang.
4726	* lispbibl.d (STACK_register, mv_count_register, value1_register,
4727	SP_register): Do not define for clang.
4728	(restartf_t): Do not use _Noreturn on a function type, except with GCC.
4729
47302017-02-19  Bruno Haible  <bruno@clisp.org>
4731
4732	Make --with-lib{sigsegv,ffcall}-prefix work with clang on 64-bit Ubuntu.
4733	* glm4/lib-prefix.m4: Update from gnulib.
4734	* aclocal.m4, src/configure, modules/*/configure: Regenerated.
4735
47362017-02-19  Bruno Haible  <bruno@clisp.org>
4737
4738	Modernize: Really update to the newest gnulib.
4739	Ran "make -f Makefile.devel build-aux-update gnulib-imported
4740	build-prerequisites".
4741	* Makefile.devel (GNULIB_AUX, build-aux-update): Fetch depcomp and
4742	install-sh from Automake, not gnulib. Fetch also ar-lib from Automake.
4743	* build-aux/config.guess: Update from gnulib git.
4744	* build-aux/config.rpath: Likewise.
4745	* build-aux/config.sub: Likewise.
4746	* build-aux/ar-lib: New file, from automake git.
4747	* build-aux/compile: Update from automake git.
4748	* build-aux/depcomp: Likewise.
4749	* build-aux/missing: Likewise.
4750	* build-aux/ylwrap: Likewise.
4751	* build-aux/snippet/*: Update from gnulib.
4752	* gllib/*: Likewise.
4753	* glm4/*: Likewise.
4754	* gllib/Makefile.am, gllib/Makefile.in: Regenerated.
4755	* aclocal.m4, src/configure, src/config.h.in: Regenerated.
4756	* modules/*/configure, modules/*/config.h.in: Likewise.
4757	* modules/*/*/config.h.in, modules/*/*/configure: Likewise.
4758	* utils/txt2c.c (process_file): Handle multiline #if directives.
4759
47602017-02-19  Bruno Haible  <bruno@clisp.org>
4761
4762	maint: Fix conflict between fix-perms.sh and gnulib import.
4763	* utils/fix-perms.sh: Do not clobber the permissions of
4764	gllib/uniname/gen-uninames.lisp.
4765
47662017-02-19  Bruno Haible  <bruno@clisp.org>
4767
4768	Fix build failure on Linux with musl libc.
4769	* unix.d: Do not include <asm/page.h>. Instead, assume SHMLBA is
4770	defined in <sys/shm.h>.
4771
47722017-02-19  Bruno Haible  <bruno@clisp.org>
4773
4774	Disable the 'ulimit -s 16384' recommendation, except on PowerPC.
4775	* configure (STACK_LIMIT): Set to 8192 on all CPUs except PowerPC.
4776
47772017-02-19  Bruno Haible  <bruno@clisp.org>
4778
4779	Recommend libsigsegv 2.11.
4780	* configure (libsigsegv_url): Update to 2.11.
4781
47822017-02-19  Bruno Haible  <bruno@clisp.org>
4783
4784	Define a single place to set the libsigsegv download URL.
4785	* configure (libsigsegv_url): New variable.
4786	(SIGSEGV): Remove variable.
4787
47882017-02-19  Bruno Haible  <bruno@clisp.org>
4789
4790	Fix build failure when --with-libsigsegv-prefix option is used.
4791	* makemake.in (LIBSIGSEGV): Use @LIBSIGSEGV@, not @LTLIBSIGSEGV@.
4792	Rationale: While @LIBSIGSEGV@ contains -Wl,-rpath options,
4793	@LTLIBSIGSEGV@ contains -R options, which are meant for the libtool
4794	script. But we do not invoke the libtool script for linking.
4795
47962017-02-19  Bruno Haible  <bruno@clisp.org>
4797
4798	Support the standard way of building GNU packages.
4799	* Makefile.in: New file.
4800	* Makefile.devel (SOURCES1): Add it.
4801	* configure.in: Invoke AC_PROG_MAKE_SET. Create Makefile from
4802	Makefile.in if building in the source directory.
4803
48042017-02-08  Sam Steingold  <sds@gnu.org>
4805
4806	* spvw.d (init_symbol_values) [UNIX_MACOSX]: Set
4807	SYS::*DISASSEMBLE-USE-LIVE-PROCESS* to NIL because
4808	otherwise DISASSEMBLE hangs CLISP.
4809
48102017-01-29  Bruno Haible  <bruno@clisp.org>
4811
4812	Fix build problem on 32-bit platforms, introduced on 2016-11-13.
4813	* dfloat.d (DF_DF_mult_DF): Do not use bitQ() to test a bit of an uintD.
4814	Reported by Jerry James <loganjerry@gmail.com> in
4815	<https://sourceforge.net/p/clisp/mailman/message/35632512/>.
4816
48172016-11-13  Bruno Haible  <bruno@clisp.org>
4818
4819	Define known facts for more CPUs.
4820	* lispbibl.d (ARM64, POWERPC64, S390_64): New macros.
4821	(MIPS64): Define more reliably.
4822	(C_CODE_ALIGNMENT, log2_C_CODE_ALIGNMENT): Define for many CPUs, based
4823	on GCC. For DECALPHA, set C_CODE_ALIGNMENT to 4 instead of 8.
4824
48252016-11-13  Bruno Haible  <bruno@clisp.org>
4826
4827	Reduce portability effort for yet unknown 64-bit platforms.
4828	* lispbibl.d (intQsize, HAVE_DD): Define also when long_bitsize==64 but
4829	the CPU is unknown.
4830	(intBWsize, intWLsize, intBWLsize): Define always.
4831	(intDsize, intDDsize, log2_intDsize): Likewise.
4832
48332016-11-13  Bruno Haible  <bruno@clisp.org>
4834
4835	Add support for Linux/x32 ABI on x86_64.
4836	* lispbibl.d (WIDE_HARD): Define depending on long_bitsize and
4837	pointer_bitsize, not on preprocessor defines like __x86_64__.
4838	(LINUX_NOEXEC_HEAPCODES): Pick as default memory model on Linux/x32.
4839	Do not forbid SINGLEMAP_MEMORY on Linux/x32.
4840
48412016-11-13  Bruno Haible  <bruno@clisp.org>
4842
4843	Prepare for ILP32 ABIs on 64-bit CPUs (x32 on x86_64, n32 on MIPS64).
4844	* lispbibl.d (bitQ, bitQm, bitQ_test, minus_bitQ, minus_bitQm): New
4845	macros, available when intQsize is defined.
4846	* intsqrt.d (UDS_sqrt_) [ifdef intQsize]: Use bitQ(..) instead of
4847	bit(..).
4848	* dfloat.d (dfloat_decode, encode_DF, double_to_DF, DF_ftruncate_DF,
4849	DF_futruncate_DF, DF_fround_DF, DF_minus_DF, DF_DF_plus_DF,
4850	DF_DF_minus_DF, DF_DF_mult_DF, DF_DF_div_DF, DF_sqrt_DF, I_to_DF,
4851	RA_to_DF) [ifdef intQsize]: Likewise.
4852	* flo_konv.d (DF_to_SF, DF_to_FF, LF_to_DF) [ifdef intQsize]: Likewise.
4853	* flo_rest.d (F_decode_float_F_I_F, F_float_sign_F) [ifdef intQsize]:
4854	Likewise.
4855	* lisparit.d (init_arith): Likewise.
4856
48572016-11-12  Bruno Haible  <bruno@clisp.org>
4858
4859	Modernize: Remove old Linux workaround.
4860	* makemake.in (XCFLAGS): Remove workaround for Linux < 1.1.52.
4861
48622016-11-12  Bruno Haible  <bruno@clisp.org>
4863
4864	Modernize: Remove old GCC bug workaround.
4865	* lispbibl.d (DYNAMIC_ARRAY): Remove old GCC 2.5.5 workaround.
4866
48672016-11-12  Bruno Haible  <bruno@clisp.org>
4868
4869	Modernize: Update to automake-1.15, libtool-2.4.6, the newest gnulib.
4870	* Makefile.devel (LIBTOOL_VERSION): Bump to 2.4.6.
4871	(AUTOMAKE_VERSION): Bump to 1.15.
4872	(GTK_GIT_ROOT): New variable, replaces GTK2_SVN_ROOT.
4873	(GNULIB_AUX, build-aux-update): Fetch 'missing' from Automake, not from
4874	gnulib.
4875	Update relative paths of files from libtool tarball.
4876	Fetch both gtk-2.0.m4 and gtk-3.0.m4.
4877
4878	* m4/libtool.m4: Update from libtool-2.4.6.
4879	* m4/ltoptions.m4: Likewise.
4880	* m4/ltsugar.m4: Likewise.
4881	* m4/ltversion.m4: Likewise.
4882	* m4/lt~obsolete.m4: Likewise.
4883	* build-aux/ltmain.sh: Likewise.
4884
4885	* build-aux/compile: Update from Automake git.
4886	* build-aux/missing: Likewise.
4887	* build-aux/ylwrap: Likewise.
4888
4889	* build-aux/config.guess: Update from gnulib git.
4890	* build-aux/config.rpath: Likewise.
4891	* build-aux/config.sub: Likewise.
4892	* build-aux/depcomp: Likewise.
4893	* build-aux/install-sh: Likewise.
4894
4895	* m4/gtk-2.0.m4: Update from GNOME git.
4896	* m4/gtk-3.0.m4: New file, from GNOME git.
4897
4898	* gllib/Makefile.in: Regenerated with Automake 1.15.
4899	* aclocal.m4, src/configure, src/config.h.in: Regenerated with
4900	Autoconf 2.69.
4901	* modules/*/configure, modules/*/config.h.in: Likewise.
4902	* modules/*/*/config.h.in, modules/*/*/configure: Likewise.
4903
49042016-11-12  Bruno Haible  <bruno@clisp.org>
4905
4906	Fix Makefile.devel syntax error introduced on 2011-04-21.
4907	* Makefile.devel (build-aux-update): Correct shell syntax.
4908
49092016-11-12  Bruno Haible  <bruno@clisp.org>
4910
4911	Modernize: Assume intDsize >= 16.
4912	* arilev1.d (sign_of_sintD, muluD, muluD_unchecked, divuD, floorD, D):
4913	Simplify accordingly.
4914	* intelem.d (get_32_Dptr, set_32_Dptr, get_max32_Dptr, set_max32_Dptr,
4915	I_to_UQ, I_to_Q, L_to_I, UL_to_I, L2_to_I, UL2_to_I, UQ_to_I): Simplify
4916	accordingly.
4917	* intlog.d (logcount_8, integerlength8): Remove macros.
4918	(I_logcount_I, integerlengthD): Simplify accordingly.
4919	* intprint.d (table): Likewise.
4920	* dfloat.d (DF_DF_mult_DF, DF_DF_div_DF, DF_sqrt_DF): Likewise.
4921	* hashtabl.d (hashcode_bignum): Likewise.
4922
49232016-11-12  Bruno Haible  <bruno@clisp.org>
4924
4925	Modernize: Remove support for mc680x0 CPUs on HP-UX.
4926	* lispbibl.d: Assume HPUX_ASSEMBLER is not defined.
4927
49282016-11-12  Bruno Haible  <bruno@clisp.org>
4929
4930	Modernize: Remove support for mc680x0 CPUs before mc68020.
4931	* lispbibl.d (M68K): Define instead of MC680X0 or MC680Y0.
4932	Adjust all code accordingly. Remove code conditional for MC68000 only.
4933	* eval.d, arilev0.d, arilev1.d, intelem.d, intlog.d, foreign.d: Adjust
4934	accordingly.
4935	* ari68000.d: Remove file.
4936	* makemake.in, utils/d2c/Makefile.in: Remove handling of ari68000.d.
4937
49382016-11-12  Bruno Haible  <bruno@clisp.org>
4939
4940	Modernize: Remove support for long dead platforms.
4941	* makemake.in: Remove most special values of TARGET argument.
4942	Drop support for GCC versions older than 2.95.
4943	Make GCC version handling future-proof.
4944	Drop support for Ultrix, IRIX 4, old SVR4, HP300.
4945	For debugging, use -ggdb instead of -g.
4946	* utils/txt2c.c: Remove support for QUOTE_QUOTES.
4947
49482016-11-11  Bruno Haible  <bruno@clisp.org>
4949
4950	Modernize: Remove support for IRIX.
4951	* lispbibl.d (UNIX_IRIX, UNIX_IRIX5): Remove macros.
4952	(GENERATIONAL_GC): Update.
4953	* spvw_mmap.d (mmap_init_pagesize): Remove IRIX workaround.
4954	* spvw_sigsegv.d (stackoverflow_handler_continuation): Likewise.
4955	* pathname.d (realpath): Likewise.
4956	* stream.d (IS_EINVAL_EXTRA): Likewise.
4957
49582016-11-11  Bruno Haible  <bruno@clisp.org>
4959
4960	Modernize: Remove support for Data General DG/UX.
4961	* lispbibl.d (UNIX_DGUX): Remove macro.
4962
49632016-11-11  Bruno Haible  <bruno@clisp.org>
4964
4965	Modernize: Remove support for Amiga UNIX.
4966	* lispbibl.d (UNIX_AMIX): Remove macro.
4967
49682016-11-11  Bruno Haible  <bruno@clisp.org>
4969
4970	Modernize: Remove support for Apple A/UX.
4971	* lispbibl.d (UNIX_AUX): Remove macro.
4972	* unix.d: Remove Apple A/UX workaround.
4973
49742016-11-11  Bruno Haible  <bruno@clisp.org>
4975
4976	Modernize: Remove support for Unix SYSV from around 1995.
4977	* lispbibl.d (UNIX_SYSV_USL, UNIX_SYSV_UHC_1, UNIX_SYSV_PTX): Remove
4978	macros.
4979
49802016-11-11  Bruno Haible  <bruno@clisp.org>
4981
4982	Modernize: Remove support for SINIX.
4983	* lispbibl.d (UNIX_SINIX): Remove macro.
4984	(SINGLEMAP_MEMORY): Remove SINIX workaround.
4985	* src/spvw_mmap.d (mmap_init_pagesize): Likewise.
4986
49872016-11-11  Bruno Haible  <bruno@clisp.org>
4988
4989	Modernize: Remove support for Ultrix.
4990	* lispbibl.d (UNIX_DEC_ULTRIX, UNIX_DEC_ULTRIX_GCCBUG): Remove macros.
4991	* control.d: Remove Ultrix GCC workarounds.
4992	* array.d: Likewise.
4993	* flo_rest.d: Likewise.
4994
49952016-11-11  Bruno Haible  <bruno@clisp.org>
4996
4997	Modernize blurbs and comments.
4998	* COPYRIGHT: Update year.
4999	* SUMMARY: Remove outdated infos. Use https URLs where available.
5000	* unix/PLATFORMS: Trim list of platforms and hints. Mention
5001	GENERIC64_HEAPCODES.
5002	* lispbibl.d: Remove comment about old (now all museum) platforms.
5003
50042016-11-11  Bruno Haible  <bruno@clisp.org>
5005
5006	Make GENERIC64{A,B}_HEAPCODES work with -falign-functions=4.
5007	* lispbibl.d (machinep) [GENERIC64A_HEAPCODES, GENERIC64B_HEAPCODES]:
5008	Define in such a way that machine pointers only need to be aligned
5009	mod 4.
5010	(C_CODE_ALIGNMENT) [GENERIC64A_HEAPCODES, GENERIC64B_HEAPCODES]:
5011	Do not redefine to 8.
5012	(LINUX_NOEXEC_HEAPCODES, GENERIC64A_HEAPCODES, GENERIC64B_HEAPCODES):
5013	Update comments.
5014
50152016-11-11  Bruno Haible  <bruno@clisp.org>
5016
5017	Fix weird errors when rebuilding 'base' after having changed CFLAGS.
5018	* makemake.in (clean1): Remove also the .o files in the BASE_MODULES.
5019
50202016-11-11  Bruno Haible  <bruno@clisp.org>
5021
5022	Fix a "No more room for LISP objects" error when building syscalls.
5023	The clisp modprep call now needs at least -m 1180KW.
5024	* modules/syscalls/Makefile.in (calls.m.c): Add option -m 2MW.
5025
50262016-11-11  Bruno Haible  <bruno@clisp.org>
5027
5028	Make GENERIC64A_HEAPCODES work again after the type predicates change
5029	from 2016-11-10.
5030	* lispbibl.d (immediate_bias_mask) [HEAPCODES]: Define.
5031	(immediate_object_p) [HEAPCODES]: Define using immediate_bias_mask.
5032	(immediate_number_p, charp, small_read_label_p, systemp, if_realp,
5033	if_rationalp, integerp, fixnump, posfixnump, floatp, short_float_p)
5034	[HEAPCODES]: Use immediate_bias_mask instead of
5035	immediate_bias | nonimmediate_bias_mask.
5036
50372016-11-11  Bruno Haible  <bruno@clisp.org>
5038
5039	Fix compilation error of DEBUG_BACKTRACE feature with C++ compiler.
5040	Fixes a regression introduced on 2008-01-09.
5041	* debug.d (print_bt_to_frame): Change type of bt_ parameter.
5042
50432016-11-10  Bruno Haible  <bruno@clisp.org>
5044
5045	Remind user to use -falign-functions=8 with GENERIC64_HEAPCODES.
5046	* lispbibl.d (C_CODE_ALIGNMENT, log2_C_CODE_ALIGNMENT):
5047	For GENERIC64_HEAPCODES, require that the alignment is at least 8.
5048
50492016-11-10  Bruno Haible  <bruno@clisp.org>
5050
5051	New memory model GENERIC64_HEAPCODES, for 64-bit machines.
5052	* lispbibl.d (GENERIC64_HEAPCODES): Define if GENERIC64A_HEAPCODES or
5053	GENERIC64B_HEAPCODES or GENERIC64C_HEAPCODES is defined.
5054	(oint_type_shift, oint_type_len, oint_type_mask, oint_data_shift,
5055	oint_data_len, oint_data_mask, garcol_bit_o, machine_bias,
5056	varobject_bias, cons_bias, immediate_bias, subr_bias, imm_type_shift,
5057	immediate_object_p, machinep): Define for each of GENERIC64A_HEAPCODES,
5058	GENERIC64B_HEAPCODES, GENERIC64C_HEAPCODES.
5059	(fixnum_type, sfloat_type, char_type, small_read_label_type,
5060	system_type, sign_bit_t, sign_bit_o, bignum_bit_o, number_immediatep,
5061	nonimmediate_bias_mask, nonimmediate_heapcode_mask, type_data_object,
5062	type_zero_oint, gcinvariant_object_p, gcinvariant_oint_p,
5063	gcinvariant_bias_p, nonimmediate_heapnr) [GENERIC64_HEAPCODES]: Define.
5064	(varobject_alignment) [GENERIC64_HEAPCODES]: Require to be at least 8.
5065	(subr_t) [GENERIC64_HEAPCODES]: Force alignment of 8.
5066	Otherwise treat GENERIC64_HEAPCODES like LINUX_NOEXEC_HEAPCODES.
5067	* spvw.d (init_memory) [GENERIC64A_HEAPCODES, GENERIC64B_HEAPCODES]:
5068	mmap a hole.
5069	(init_memory) [GENERIC64_HEAPCODES]: Guess where the heap may end.
5070	* spvw_gcmark.d (gc_mark) [GENERIC64_HEAPCODES]: Recognize immediate
5071	values.
5072	* spvw_memfile.d (loadmem_update): Treat GENERIC64_HEAPCODES like
5073	LINUX_NOEXEC_HEAPCODES.
5074	* io.d (pr_orecord): Likewise.
5075	* lightning.c (jitc_getsize_framer, jitc_get_framecoder): Likewise.
5076	* built.d (built_flags): Consider GENERIC64_HEAPCODES.
5077	Suggested by Florian Weimer.
5078
50792016-11-10  Bruno Haible  <bruno@clisp.org>
5080
5081	Prepare for GENERIC64_HEAPCODES object model.
5082	* lispbibl.d (immediate_number_p, charp, small_read_label_p, systemp,
5083	if_realp, if_rationalp, integerp, fixnump, posfixnump, floatp,
5084	short_float_p) [!TYPECODES]: Include nonimmediate_bias_mask in the
5085	bit mask.
5086
50872016-11-10  Bruno Haible  <bruno@clisp.org>
5088
5089	Support for memory models with oint_data_len >= 55.
5090	* dfloat.d (RA_to_DF): Add code for oint_data_len >= 55.
5091
50922016-11-09  Bruno Haible  <bruno@clisp.org>
5093
5094	Fix compilation error of OBJECT_STRUCT mode with g++ versions < 4.7.
5095	Fixes a regression introduced on 2016-08-28.
5096	* lispbibl.d (designated_init): New macro.
5097	(as_object, INIT_ALLOCSTAMP, gcv_object_t::operator object(), as_chart):
5098	Use it.
5099
51002016-11-09  Bruno Haible  <bruno@clisp.org>
5101
5102	Fix g++ warnings of type -Wc++0x-compat.
5103	* eval.d (augment_decl_env): Rename local variable 'decltype'.
5104	* control.d (PROCLAIM): Likewise.
5105
51062016-11-09  Bruno Haible  <bruno@clisp.org>
5107
5108	Fix gcc warning of type -Wformat.
5109	* spvw.d (init_subr_tab_1): Cast fprintf argument to 'int'.
5110
51112016-11-09  Bruno Haible  <bruno@clisp.org>
5112
5113	Fix gcc warnings of type -Wparentheses.
5114	* spvw_language.d (init_language): Put braces.
5115	* charstrg.d (nstring_invertcase, nstring_upcase, nstring_downcase):
5116	Likewise.
5117	* pathname.d (directory_search_scandir): Likewise.
5118	(init_launch_streamarg): Simplify boolean expression.
5119	* intelem.d, flo_rest.d: Use #pragma GCC diagnostic.
5120
51212016-11-09  Bruno Haible  <bruno@clisp.org>
5122
5123	Fix a relevant gcc warning of type -Wclobbered.
5124	* pathname.d (direntry_to_string): Use 'volatile' to disallow a
5125	dangerous compiler optimization.
5126
51272016-11-09  Bruno Haible  <bruno@clisp.org>
5128
5129	Fix compilation error introduced on 2007-11-26.
5130	* spvw_allocate.d (error_speicher_voll): Rename to
5131	error_memory_exhausted and handle_memory_exhausted, respectively.
5132
51332016-09-04  Sam Steingold  <sds@gnu.org>
5134
5135	* utils/fix-perms.sh: replace obsolete "-perm +111" with
5136	"-perm /111" and .cvsignore with .hgignore
5137
51382016-08-29  Sam Steingold  <sds@gnu.org>
5139
5140	* lispbibl.d, built.d, spvw.d, spvw_garcol.d, spvw_garcol_old.d:
5141	* spvw_mark.d: remove the obsolete object representation WIDE_AUXI
5142
51432016-08-29  Sam Steingold  <sds@gnu.org>
5144
5145	* utils/modprep.lisp (modprep): bind *module-name*, *module-line*,
5146	*module-package*, *package-properties* here ...
5147	(parse): ... not here
5148	(lexical-analysis): ignore //-comments inside /*-comments
5149
51502016-08-29  Sam Steingold  <sds@gnu.org>
5151
5152	* makemake.in (check-script) [darwin]: disable nohup
5153	http://stackoverflow.com/questions/29112446/nohup-doesnt-work-with-os-x-yosmite-get-error-cant-detach-from-console-no-s
5154	http://stackoverflow.com/questions/23898623/nohup-cant-detach-from-console
5155
51562016-08-29  Sam Steingold  <sds@gnu.org>
5157
5158	Fix bug#677: logical pathnames and letter case gone wrong
5159	* compiler.lisp (compile-file-pathname-helper): when output is
5160	supplied and is physical, translate input from logical before merge
5161
51622016-08-29  Sam Steingold  <sds@gnu.org>
5163
5164	Fix bug#684: modprep handling of quotation mark in single line comment
5165	* utils/modprep.lisp (lexical-analysis): handle // comments
5166
51672016-08-28  Sam Steingold  <sds@gnu.org>
5168
5169	* utils/modprep.lisp (output-all): bind all global variables in
5170	appropriate functions to allow loading into the same lisp session
5171	(output-all): make sure that the file name is printed on #line 1
5172	without #P
5173	(custom:*suppress-similar-constant-redefinition-warning*)
5174	[:compile-toplevel]: set to T to avoid the warnings on reload
5175
51762016-08-28  Sam Steingold  <sds@gnu.org>
5177
5178	* genclisph.d (emit_export_declaration, struct typecode_entry):
5179	use `const' to avoid the warning:
5180	deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
5181
51822016-08-28  Sam Steingold  <sds@gnu.org>
5183
5184	avoid the clang -Wgnu-designator warning
5185	* lispbibl.d (as_object, as_chart): use the new {.one_o=???}
5186	syntax instead of GNU old-style field designator extension {one_o:???}
5187	https://gcc.gnu.org/onlinedocs/gcc-6.2.0/gcc/Designated-Inits.html
5188
51892016-08-26  Sam Steingold  <sds@gnu.org>
5190
5191	Fix bug#686: missing CFLAG -falign-functions=4 in Makefile
5192	* makemake.in (XCFLAGS) [XCC_GCC]: treat gcc 5 & 6 like 3 & 4
5193
51942016-08-14  Sam Steingold  <sds@gnu.org>
5195
5196	* modules/syscalls/calls.c (hardlink_file_o): add
5197	(copy_one_file): fix GC-safety bugs
5198
51992016-08-12  Sam Steingold  <sds@gnu.org>
5200
5201	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): fix a GC-safety bug
5202
52032016-08-12  Sam Steingold  <sds@gnu.org>
5204
5205	* modules/syscalls/calls.c (copy_one_file): fix STACK depth handling
5206
52072016-08-11  Sam Steingold  <sds@gnu.org>
5208
5209	* pathname.d (delete_directory): fix rmdir() failure handling
5210
52112016-08-11  Sam Steingold  <sds@gnu.org>
5212
5213	* package.d (intern): cerror_package_locked can trigger GC
5214
52152016-08-11  Sam Steingold  <sds@gnu.org>
5216
5217	* makemake.in (make_modules): create separate targets for base and
5218	full modules because the former are compiled using the boot
5219	linking set, while the latter (e.g., asdf) require the base linking set
5220
52212016-08-11  Sam Steingold  <sds@gnu.org>
5222
5223	* modules/bindings/glibc/linux.lisp: avoid
5224	error: "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead."
5225	by including <sys/ipc.h> instead of <bits/ipctypes.h>
5226
52272016-06-09  Daniel Jour  <daniel.oertwig@gmail.com>
5228
5229	Disable TRIVIALMAP_MEMORY and SINGLEMAP_MEMORY on NetBSD due to
5230	mmap and MAP_FIXED issues
5231	* lispbibl.d (TRIVIALMAP_MEMORY, SINGLEMAP_MEMORY) [UNIX_NETBSD]:
5232	disable
5233
52342016-05-16  Daniel Jour  <daniel.oertwig@gmail.com>
5235
5236	Update asdf to version 3.1.7
5237	* modules/asdf/asdf.lisp: Update to asdf 3.1.7
5238	* modules/asdf/asdf.xml: Update asdf module description
5239
52402016-05-01  Daniel Jour  <daniel.oertwig@gmail.com>
5241
5242	* lispbibl.d (VALUE1_EXTRA) [!value1_register]: do not define
5243	This fixes patch 93dee6a014b2 (2008-01-13) as discussed in
5244	https://sourceforge.net/p/clisp/mailman/message/35061096/
5245
52462015-03-18  Ken Brown  <kbrown@cornell.edu>
5247
5248	Fix dynamic loading on Cygwin (patch#44)
5249	* src/genclisph.d [UNIX_CYGWIN32]: Fix syntax error in lisp.def
5250	* src/makemake.in (archive_cmds): Fix definition on Cygwin
5251	(lisp.def): Add "hostent_to_lisp" to lisp.def on Cygwin
5252	(clisp-link): Use absolute path to lisp.def
5253
52542015-03-05  Ken Brown  <kbrown@cornell.edu>
5255
5256	* src/lispbibl.d (ULONGLONG): Avoid conflict with w32 typedef on
5257	64-bit Cygwin (patch#43)
5258
52592015-03-05  Ken Brown  <kbrown@cornell.edu>
5260
5261	* lispbibl.d, ari80386.d, ari80386.msvc.c, asmi386.h, asmi386.hh:
5262	* sp80386.d, sp80386.msvc.c: Use __CYGWIN__ instead of __CYGWIN32__
5263	to detect Cygwin: __CYGWIN32__ is deprecated and, more
5264	importantly, is not defined on 64-bit Cygwin (patch#42)
5265
52662015-03-05  Ken Brown  <kbrown@cornell.edu>
5267
5268	* src/m4/signal.m4: Remove obsolete Cygwin-specific code (patch#41)
5269
52702015-03-04  Ken Brown  <kbrown@cornell.edu>
5271
5272	The Cygwin heap is now in high memory, so STANDARD_HEAPCODES
5273	no longer work (patch#38).
5274	* src/lispbibl.d (LINUX_NOEXEC_HEAPCODES) [UNIX_CYGWIN32]: Define
5275
52762015-03-04  Ken Brown  <kbrown@cornell.edu>
5277
5278	"Handle" is used in a w32 prototype, interfering with our
5279	definition of it as a macro (patch#36).
5280	* src/unix.d [UNIX_CYGWIN32]: Work around namespace pollution in
5281	w32 headers
5282
52832014-10-22  Sam Steingold  <sds@gnu.org>
5284
5285	Fix bug#668 posix:file-state always return NIL for :rdev
5286	* modules/syscalls/configure.in: check for struct stat members
5287
52882014-05-11  Sam Steingold  <sds@gnu.org>
5289
5290	* m4/termcap.m4 (CL_TERMCAP): also look for tgetent in tinfo;
5291	fixes bug#665 as suggested by Jason Miller <jasontkd@users.sf.net>
5292
52932013-04-14  Sam Steingold  <sds@gnu.org>
5294
5295	* modules/asdf/asdf.lisp: upgrade to 2.33
5296
52972013-01-06  Sam Steingold  <sds@gnu.org>
5298
5299	Avoid startup errors when the user has weird ~/.clisp
5300	* pathname.d, subr.d (PROBE-PATHNAME): accept &key (:error t)
5301	* spvw.d (main_actions): pass :ERROR NIL to PROBE-PATHNAME
5302
53032013-02-08  Sam Steingold  <sds@gnu.org>
5304
5305	* modules/clx/new-clx/demos/clx-demos.lisp: require CLX
5306
53072013-02-05  Sam Steingold  <sds@gnu.org>
5308
5309	* modules/bindings/glibc/linux.lisp (__swblk_t): remove the unused
5310	`def-c-type' (removed from glibc too); fixes bug#656;
5311	see also <http://article.gmane.org/gmane.comp.lib.glibc.alpha/25618>
5312	aka <https://sourceware.org/ml/libc-alpha/2012-10/msg00035.html>
5313
53142013-01-06  Bruno Haible  <bruno@clisp.org>
5315
5316	* pathname.d (unix_user_pwd): Do not use getlogin().
5317	Reported by Alberto Riva <alb@chip.org> in
5318	<http://article.gmane.org/gmane.lisp.clisp.general:13995>
5319	<https://sourceforge.net/p/clisp/mailman/message/30303970/>
5320
53212012-11-23  Sam Steingold  <sds@gnu.org>
5322
5323	* modules/oracle/Makefile.in (ALL_CFLAGS): new variable,
5324	accumulate all C flags here, move -I$(srcdir) here from CPPFLAGS
5325	which is overridden by clisp-link invocation from Makefile
5326
53272012-11-20  Sam Steingold  <sds@gnu.org>
5328
5329	PCRE-EXEC returns character positions instead of byte positions
5330	* lispbibl.d (Encoding_mblen): export to clisp.h
5331	* modules/pcre/cpcre.c (PCRE-EXEC): use it convert ovector (byte
5332	positions) to MATCH (character positions)
5333	Reported by Mike Palmer <michaeljohnpalmer@gmail.com> in
5334	<http://article.gmane.org/gmane.lisp.clisp.general:13972>
5335	<https://sourceforge.net/p/clisp/mailman/message/30115294/>
5336
53372012-11-29  Sam Steingold  <sds@gnu.org>
5338
5339	* modules/oracle/oracle.lisp: code clean-up for better performance
5340	and error reporting
5341	(db-error, nl, out, out-nl): remove
5342	(check-seq-type): add
5343	(fetch-all): use it
5344	(update-row, comma-list-of-keys, join): use WITH-OUTPUT-TO-STRING
5345	instead of CAT so that the algorithm is linear instead of quadratic
5346	(check-pairs): use ETYPECASE
5347	(to-string): use PRINC-TO-STRING instead of FORMAT
5348
53492012-09-14  Vladimir Tzankov  <vtzankov@gmail.com>
5350
5351	implement RFE#49
5352	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): add abort restart that
5353	kills current thread - exits with two values: :ABORT and current
5354	internal real time
5355
53562012-08-20  Vladimir Tzankov  <vtzankov@gmail.com>
5357
5358	* lispbibl.d (per_thread): TLS (i.e. __thread qualifier) is supported
5359	by gcc 4.5+ on MacOSX and results in significant performance gain
5360
53612012-08-03  Vladimir Tzankov  <vtzankov@gmail.com>
5362
5363	* stream.d (wr_by_array_iau8_buffered): pin the source buffer before
5364	performing actual write
5365
53662012-05-03  Sam Steingold  <sds@gnu.org>
5367
5368	update berkeley-db to 5.1
5369	* modules/berkeley-db/bdb.c (add_message): fix
5370	(DB-VERSION): use db_full_version when available
5371	(DBE-CREATE): remote is no longer supported by upstream
5372	(dbt_to_object): also return nil when p_dbt->size==0
5373	(DB-COMPACT): add
5374	(DB-VERIFY): mark the db handle invalid because it "may not be accessed
5375	again after DB->verify() is called, regardless of its return"
5376
53772012-04-27  Sam Steingold  <sds@gnu.org>
5378
5379	Fix bug#625: symlink to directory handling
5380	* modules/syscalls/calls.c (symlink_file): strip trailing "/" from
5381	new_pathstring
5382	(copy_one_file): use PROBE-PATHNAME instead of PROBE-FILE to
5383	accommodate directories
5384	* pathname.d (delete_directory): when rmdir() fails with ENOTDIR,
5385	call unlink() because we are dealing with a symbolic link
5386
53872012-04-23  Sam Steingold  <sds@gnu.org>
5388
5389	* format.lisp (format-apply): do not bind *FORMAT-CS* here ...
5390	(formatter): ... do it here instead for run-time error reporting
5391	in compiled FORMAT calls [bug#631]
5392
53932012-04-23  Sam Steingold  <sds@gnu.org>
5394
5395	Do not signal errors inside begin/end_blocking_system_call blocks
5396	Reported by Don Cohen <http://article.gmane.org/gmane.lisp.clisp.devel:22914>
5397	<https://sourceforge.net/p/clisp/mailman/message/29165154/>
5398	* modules/syscalls/calls.c (POSIX:OPENLOG): use clisp_realloc
5399	instead of clisp_malloc/free
5400	(my_chmod, my_chown, my_utime): return status instead of signaling
5401	(SET-FILE-STAT): signal errors after end_blocking_system_call
5402	(FILE-INFO): do not jump out of a begin/end_blocking_system_call block
5403
54042012-04-23  Sam Steingold  <sds@gnu.org>
5405
5406	* modules/gdbm/gdbm.c (error_bad_type): fix declaration (for g++)
5407	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): add a cast
5408
54092012-04-23  Sam Steingold  <sds@gnu.org>
5410
5411	* makemake.in (XCFLAGS): do not add -Wimplicit when compiling with C++:
5412	"warning: command line option `-Wimplicit' is valid for C/ObjC but not for C++"
5413
54142012-04-20  Sam Steingold  <sds@gnu.org>
5415
5416	Fix bug#636: APPLY reacts differently to dotted list when compiled
5417	* eval.d (error_apply_dotted): remove; use error_subr_toofew() instead
5418	(apply_subr, apply_closure): more checks for dotted argument list
5419
54202012-04-23  Sam Steingold  <sds@gnu.org>
5421
5422	* defs1.lisp (logical-pathname-translations): signal TYPE-ERROR on
5423	non-existent logical host as per ANSI [bug#638]
5424
54252012-04-19  Sam Steingold  <sds@gnu.org>
5426
5427	The official binary IP address representation is now a byte
5428	vector, not an integer.
5429	* socket.d (string_to_addr1): use data_to_sb8vector instead of
5430	LEbytes_to_UI
5431	* modules/rawsock/rawsock.c (CONVERT-ADDRESS): ipv6 is 128 bits,
5432	not 64; accept byte vectors too
5433	* modules/rawsock/test.tst: use CONVERT-ADDRESS instead of ip->ve
5434
54352012-04-19  Sam Steingold  <sds@gnu.org>
5436
5437	* array.d (data_to_sbvector): add a modexp function
5438	(copy_sbvector): use it
5439	* lispbibl.d (data_to_sbvector): add the prototype
5440	(data_to_sb8vector): add a #define and export both to clisp.h
5441	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
5442	* modules/dirkey/dirkey.c, modules/gdbm/gdbm.c:
5443	* modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
5444	* modules/syscalls/calls.c: use them
5445
54462012-04-18  Sam Steingold  <sds@gnu.org>
5447
5448	* error.d (error_pos_integer): add, based on charstrg.d:error_posint
5449	* lispbibl.d (error_pos_integer): add the prototype
5450	* charstrg.d (error_posint): remove
5451	(test_index): use error_pos_integer instead
5452	* sequence.d (error_posint): remove
5453	(test_start_end, test_start_end_1, test_count_arg):
5454	use error_pos_integer instead
5455
54562012-03-27  Sam Steingold  <sds@gnu.org>
5457
5458	* modules/pcre/cpcre.c (pcre_config_option): check the return
5459	value of pcre_config() and use a long for value storage
5460
54612012-03-27  Sam Steingold  <sds@gnu.org>
5462
5463	* modules/i18n/gettext.c (bool_char_lconv, int_char_lconv): treat
5464	-1 like CHAR_MAX and use sfixnum instead of fixnum
5465
54662012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>
5467
5468	* hashtabl.d (prepare_resize): check kvtable size against
5469	ARRAY-DIMENSION-LIMIT
5470
54712012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>
5472
5473	* lispbibl.d (arraysize_limit_1) [MACOSX, WIDE_HARD]: set to
5474	2^24-2 since HEAPCODES memory model is used
5475
54762012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>
5477
5478	* spvw.d (signal_handler_thread) [MULTITHREAD, MACOSX]: ignore
5479	SIGHUP & SIGCONT until I know how to handle them (vfork()
5480	causes SIGHUP - e.g. (DISASSEMBLE 'CAR))
5481
54822012-03-10  Vladimir Tzankov  <vtzankov@gmail.com>
5483
5484	* foreign.d (FOREIGN-CALL-OUT): foreign call may block. use
5485	begin/end_block_system_call()
5486
54872012-02-13  Bruno Haible  <bruno@clisp.org>
5488
5489	* clos-genfun2b.lisp (compute-dispatch): Do not blindly assume that
5490	(bc-and-not class test-class) is non-nil; test it explicitly.
5491	[bug#628]
5492
54932012-02-02  Sam Steingold  <sds@gnu.org>
5494
5495	* socket.d (get_hostname): turn into a function and allocate the
5496	array in the caller to support gcc 4.7 [patch#31]
5497
54982012-02-02  Sam Steingold  <sds@gnu.org>
5499
5500	* modules/syscalls/calls.c (file_stat_to_STACK): use off_to_I
5501	instead of L_to_I for st_size [bug#626]
5502	[S_IFMT]: split st_mode into mknod_type_check and check_chmod_mode
5503
55042012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>
5505
5506	* spvw.d (mt_main_actions): main thread should be the same as any
5507	other - initialize time, reader and set normal exit flag
5508
55092012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>
5510
5511	* zthread.d (xlock_lock_helper): fix possible deadlock when acquiring
5512	a lock released by xcondition_wait()
5513	(THREAD-INTERRUPT): release thread's _signal_reenter_ok spinlock on
5514	error
5515
55162012-01-10  Vladimir Tzankov  <vtzankov@gmail.com>
5517
5518	* xthread.d (testandset) [ARM]: implement spinlocks for ARM
5519
55202011-10-17  Vladimir Tzankov  <vtzankov@gmail.com>
5521
5522	* zthread.d (xlock_lock_helper): remove wrong "shortcut" on
5523	acquiring a lock held by thread that exemption-wait-ed on it
5524	[bug#615]
5525
55262011-09-16  Sam Steingold  <sds@gnu.org>
5527
5528	* pathname.d (assure_dir_exists): call merge-pathnames on the
5529	truename to ensure that all truenames have non-NIL version because
5530	a NIL component means "unfilled" (19.2.2.2.1) [bug#606]
5531
55322011-09-16  Sam Steingold  <sds@gnu.org>
5533
5534	* m4/clisp.m4 (CL_DECOLONIZE): fix the 2011-07-25 15472 patch
5535	which broke the native msys/mingw build
5536	Reported by Dan Stanger <dan.stanger@ieee.org>
5537	<http://article.gmane.org/gmane.lisp.clisp.devel:22759>
5538	<https://sourceforge.net/p/clisp/mailman/message/28097114/>
5539
55402011-09-14  Sam Steingold  <sds@gnu.org>
5541
5542	* modules/readline/readline.lisp: include rlconf.h for
5543	DEFAULT_INPUTRC and SYS_INPUTRC and tilde.h for tilde_expand
5544
55452011-09-14  Sam Steingold  <sds@gnu.org>
5546
5547	* makemake.in (clean5): do not remove modules.h twice
5548
55492011-08-29  Sam Steingold  <sds@gnu.org>
5550
5551	add interface to VerQueryValue, GetFileVersionInfo et al
5552	http://msdn.microsoft.com/en-us/library/ms647464(v=vs.85).aspx
5553	* modules/syscalls/calls.c (OS:FILE-VERSION): add function
5554	* modules/syscalls/posix.lisp (OS:FILE-VERSION): add structure
5555	* modules/syscalls/configure.in (LIBS): add -lversion
5556
55572011-08-29  Sam Steingold  <sds@gnu.org>
5558
5559	* clisp.rc.in: extract from makemake.in
5560	* makemake.in (clisp.rc): use it
5561
55622011-08-29  Sam Steingold  <sds@gnu.org>
5563
5564	* makemake.in (MODULE_CPPFLAGS_VAR): remove
5565	(MODULE_CPPFLAGS): always define and use to avoid adding
5566	${GNULIB_INCLUDE} to CPPFLAGS twice
5567
55682011-08-26  Sam Steingold  <sds@gnu.org>
5569
5570	* makemake.in (clisp.rc) [win32]: add version information for filever
5571	http://msdn.microsoft.com/en-us/library/aa381058(v=VS.85).aspx
5572
55732011-08-25  Sam Steingold  <sds@gnu.org>
5574
5575	Report failures in init_language
5576	* spvw_language.d (init_language): accept lisp_error_p and report
5577	all failures using either fprintf() or error();
5578	use classify_namestring on all platforms to check argv_localedir
5579	(language_deutsch): rename to language_german for consistency
5580	(language_francais): rename to language_french for consistency
5581	* i18n.d (SET-CURRENT-LANGUAGE): pass lisp_error_p=true to init_language
5582	* lispbibl.d (init_language): update the prototype
5583	(file_kind_t): move here from pathname.d and rename from
5584	namestring_kind_t
5585	(classify_namestring): add the prototype
5586	* pathname.d (classify_namestring): make global
5587	* spvw.d (main): pass lisp_error_p=false to init_language
5588
55892011-08-24  Sam Steingold  <sds@gnu.org>
5590
5591	* configure (makemake_args) [win32gcc]: add --with-dynamic-modules=no
5592	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs:27739>
5593	<https://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00425.html>
5594	(host_arg): add both --host and --build argument
5595	Suggested by Eric Blake <eblake@redhat.com>
5596	https://lists.gnu.org/archive/html/bug-libsigsegv/2011-08/msg00006.html
5597
55982011-08-24  Sam Steingold  <sds@gnu.org>
5599
5600	* error.d (format_message, FORMAT-MESSAGE): move here from ...
5601	* errwin32.d: here for the sake of cygwin
5602
56032011-08-24  Sam Steingold  <sds@gnu.org>
5604
5605	* makemake.in: save & restore CC around setting it for XCC_CREATESHARED
5606	Suggested by Eric Blake <eblake@redhat.com>
5607	<http://article.gmane.org/gmane.comp.shells.bash.bugs:17158>
5608	<http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00280.html>
5609
56102011-08-24  Sam Steingold  <sds@gnu.org>
5611
5612	* misc.d (LISP-IMPLEMENTATION-VERSION): add missing GETTEXT calls
5613	(MACHINE-TYPE, MACHINE-VERSION): make return value immutable
5614	* spvw.d (main): localize the name of the main thread
5615
56162011-08-24  Sam Steingold  <sds@gnu.org>
5617
5618	* spvw_language.d (init_language): danish locale is "da_DK"
5619	Reported by Bruno Haible
5620
56212011-08-23  Sam Steingold  <sds@gnu.org>
5622
5623	* win32.d (WSAEAGAIN, WSAENOENT): remove unused defines
5624	(ioctl): do not define to ioctlsocket because gnulib defines it to
5625	rpl_ioctl which calls ioctlsocket
5626
56272011-08-23  Sam Steingold  <sds@gnu.org>
5628
5629	revert most of the 2011-08-17 patch
5630	* win32.d: include <ddk/ntifs.h> for NtQueryInformationFile
5631	because that's what works with i686-pc-mingw32-gcc and is
5632	recommended by http://msdn.microsoft.com/en-us/library/ff567052.aspx;
5633	do not include ntstatus.h because it is included by winddk/ntddk
5634	which is included by ntifs
5635	* configure.in: do not test for windows headers
5636
56372011-08-19  Sam Steingold  <sds@gnu.org>
5638
5639	Implement RFE#46: use OS facilities to print os-error
5640	* condition.lisp (try-coerce-to-condition): special handling of
5641	NIL datum for the sake of OS-ERROR & its subclasses
5642	(os-error): add $CODE slot and :REPORT option
5643	(os-error-win32, os-stream-error, os-file-error): new conditions,
5644	subclasses of OS-ERROR
5645	(simple-os-error): remove
5646	(%defclcs): remove OS-ERROR -> SIMPLE-OS-ERROR map
5647	* lispbibl.d (cint_white_p): do not export
5648	(condition_t): remove os_error
5649	(OS_file_error): signal OS-FILE-ERROR, not SIMPLE-FILE-ERROR
5650	* constsym.d (simple_os_error): remove
5651	(os_error, os_file_error, os_stream_error, strerror): add
5652	(os_error_win32, format_message) [WIN32|CYGWIN]: add
5653	* subr.d (strerror): add
5654	(format_message) [WIN32|CYGWIN]: add
5655	* error.d (end_error): for os_stream_error, os_file_error,
5656	os_error, os_error_win32: reset errstring (known as datum to
5657	COERCE-TO-CONDITION, see above) to NIL; complete :CODE
5658	(error_code_converter_t, convert_error_code): add
5659	(OS_filestream_error): signal OS-ERRORs, not SIMPLE-ERRORs
5660	* errunix.d (os_error_t, get_errormsg): remove
5661	(STRERROR): preliminary implementation: required numeric argument
5662	(OS_error, OS_error_arg): push errcode on STACK for the :CODE argument
5663	(errno_out_low): use ANSIC_error_code_converter & strerror_r
5664	* errwin32.d (get_OS_error_info): remove
5665	(OS_error_internal_body): remove
5666	(format_message): add
5667	(OS_error_internal): use it
5668	(FORMAT-MESSAGE): preliminary implementation: required numeric argument
5669	(OS_error, OS_error_arg): push errcode on STACK for the :CODE argument
5670	* spvw.d (libopen, find_name): define when WIN32_NATIVE|HAVE_DLOPEN
5671	for the sake of finding converters in error.d:convert_error_code
5672	* modules/syscalls/calls.c (RESOLVE-HOST-IPADDR): signal
5673	error_condition, not os_error because there is no errno
5674	(errno_to_symbol_w, errno_to_symbol_a): add error_code_converter_t
5675	objects for error.d:convert_error_code
5676	(ERRNO, LAST-ERROR): convert from symbolic to numeric too
5677	(STRERROR, FORMAT-MESSAGE): use and override the preliminary
5678	definitions in errunix.d and errwin32.d
5679	* modules/syscalls/preload.lisp: unlock the SYSTEM package and
5680	remove it from *SYSTEM-PACKAGE-LIST* to enable overriding STRERROR
5681	& FORMAT-MESSAGE in calls.c
5682	* modules/syscalls/posix.lisp: import and export SYS::STRERROR &
5683	SYS::FORMAT-MESSAGE; re-add SYSTEM to *SYSTEM-PACKAGE-LIST*
5684
56852011-08-18  Sam Steingold  <sds@gnu.org>
5686
5687	* makemake.in (LIBS): prepend ${GLLIB_A} before -lws2_32 & -lintl
5688	<http://article.gmane.org/gmane.lisp.clisp.devel:22701>
5689	<https://sourceforge.net/p/clisp/mailman/message/27966160/>
5690
56912011-08-18  Sam Steingold  <sds@gnu.org>
5692
5693	* modules/syscalls/calls.c (check_last_error) [WIN32|CYGWIN]:
5694	renamed from check_errno
5695	(OS::LAST-ERROR) [WIN32|CYGWIN]: extracted from OS:ERRNO
5696	(OS::FORMAT-MESSAGE) [WIN32|CYGWIN]: extracted from OS::STRERROR
5697	(POSIX:ERRNO, POSIX:STRERROR): always define
5698	* modules/syscalls/posix.lisp (last-error, format-message): export
5699	* lispbibl.d (cint_white_p): export to clisp.h for FORMAT-MESSAGE
5700	to strip terminating whitespace and periods to conform to strerror
5701
57022011-08-17  Sam Steingold  <sds@gnu.org>
5703
5704	* configure.in: check for many more windows headers which might
5705	declare NtQueryInformationFile
5706	* win32.d: try to include all those header one by one
5707	Suggested by Michael Kappert & Yaroslav Kavenchuk
5708	<http://article.gmane.org/gmane.lisp.clisp.devel:22684> &c
5709	<https://sourceforge.net/p/clisp/mailman/message/27960367/>
5710
57112011-08-08  Sam Steingold  <sds@gnu.org>
5712
5713	* spvw_mmap.d (munmap, mprotect) [HAVE_MACH_VM|HAVE_WIN32_VM]:
5714	declare when defined to avoid a "warning: no previous declaration"
5715
57162011-08-08  Sam Steingold  <sds@gnu.org>
5717
5718	Rename errno_t to os_error_code_t to avoid a conflict with mingw
5719	* unix.d (os_error_code_t): typedef to int; replaces errno_t
5720	* win32.d (os_error_code_t): typedef to DWORD; replaces errno_t
5721	* unixaux.d, win32aux.d (namestring_file_id, handle_file_id):
5722	return os_error_code_t instead of errno_t
5723	* pathname.d (check_file_reopen): update for the new type name
5724
57252011-08-08  Sam Steingold  <sds@gnu.org>
5726
5727	* configure.in: check for <winternl.h>, <ntstatus.h> and <ddk/winddk.h>
5728	* win32.d: include them only when detected (the first two on
5729	cygwin/mingw, the last one on msys/mingw)
5730
57312011-08-05  Sam Steingold  <sds@gnu.org>
5732
5733	fix the 2011-03-31 fix for bug#414
5734	* loop.lisp (*nullvar*): new unbound global
5735	(destructure): use it instead of (helpvar 0) for null patters
5736	(expand-loop): bind it; repeat count var does not depend on preceding
5737	(expand-loop@note-initialization): do not barf on *nullvar* reuse
5738
57392011-08-03  Sam Steingold  <sds@gnu.org>
5740
5741	fix bug#604: loop does not warn on REPEAT before FOR
5742	* loop.lisp (expand-loop): REPEAT is a TERMINATION-TEST
5743	which is a MAIN-CLAUSE, not a VARIABLE-CLAUSE
5744
57452011-08-03  Sam Steingold  <sds@gnu.org>
5746
5747	* modules/syscalls/calls.c (check_errno): add ERFKILL & EHWPOISON
5748
57492011-08-02  Sam Steingold  <sds@gnu.org>
5750
5751	fix bug#603: no warning when lambda is incompatible with arglist
5752	* compiler.lisp (inline-callable-function-lambda-p): call c-warn
5753	when the lambdalist is incompatible with the argument count
5754
57552011-08-02  Sam Steingold  <sds@gnu.org>
5756
5757	* Makefile.devel (src/aclocal.m4): run aclocal in src
5758	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs:27763>
5759	<https://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00449.html>
5760
57612011-08-02  Sam Steingold  <sds@gnu.org>
5762
5763	fix bug#605: simple condition printing ignores user-supplied methods
5764	* condition.lisp (simple-condition): use :REPORT option instead of
5765	a PRINT-OBJECT :AROUND method
5766
57672011-08-01  Sam Steingold  <sds@gnu.org>
5768
5769	fix recent breakage
5770	* socket.d (CLOSE) [win32]: define
5771	* win32.d (ioctl): define to ioctlsocket
5772
57732011-08-01  Sam Steingold  <sds@gnu.org>
5774
5775	fix "clean" targets
5776	* makemake.in (anymodule): do not remove gllib; there is no such dir
5777	(clean1): do not remove build-aux, but do remove dynmod
5778	(clean5): remove modules.h and build-aux unless building in src
5779	(clean6): do not remove Makefile
5780	(clean7): depend on distclean-subdirs
5781	(clean-subdirs, distclean-subdirs): new targets
5782	(clean): depend on clean-subdirs
5783	* po/Makefile.in.in (distclean): remove Makefile.in
5784
57852011-08-01  Sam Steingold  <sds@gnu.org>
5786
5787	* utils/txt2c.c (process_file): avoid a segfault by checking that
5788	standard_include_path is not NULL before accessing it
5789
57902011-08-01  Sam Steingold  <sds@gnu.org>
5791
5792	revert the parts of the 2011-07-29 15496:d628d9ac3fce patch
5793	which broke the in-place build (in the src directory)
5794	* _clisp.c: include w32shell & execname with "", not <>
5795	* encoding.d: include nls_* with "", not <>
5796	* eval.d: include lightning with "", not <>
5797	* lispbibl.d: include version.h with "", not <>
5798	* modules.c: include lispbibl & clisp with "", not <>
5799	* spvw.d: include spvw_calendar.c with "", not <>
5800
58012011-08-01  Sam Steingold  <sds@gnu.org>
5802
5803	* modules/berkeley-db/configure.in, modules/clx/new-clx/configure.in:
5804	* modules/syscalls/configure.in: call AC_SYS_LARGEFILE before the
5805	first AC_CHECK_SIZEOF to ensure 64-bit size_t
5806	Reported by Vladimir Tzankov <vtzankov@gmail.com> in
5807	<http://article.gmane.org/gmane.lisp.clisp.devel:22642>
5808	<https://sourceforge.net/p/clisp/mailman/message/27868080/>
5809
58102011-07-29  Sam Steingold  <sds@gnu.org>
5811
5812	link over fewer files into the build directory
5813	* makemake.in (CLISP_LIBDIR): do not set
5814	(EVERY_INCLUDES_H): remove gllib files
5815	(UNICODE_INCLUDES, NLS_INCLUDES, SPVW_VERSION, w32shell.c)
5816	(execname.c, spvw_calendar.c, with_jitc): do not link over
5817	(TXT2CINCL): use SRCDIR, not SRCTOPDIR
5818	(gllib): pass top_srcdir, not CLISP_LIBDIR to make
5819	(modules.h): create with touch
5820	(LINKKIT): link files directly into linkkit/
5821	* modules.h: remove
5822	* Makefile.devel (src/gllib/Makefile.in): replace
5823	$(top_srcdir)/src/build-aux with $(top_srcdir)/build-aux instead
5824	of CLISP_LIBDIR
5825	* _clisp.c: include w32shell & execname with <>, not ""
5826	* encoding.d: include nls_* with <>, not ""
5827	* eval.d: include lightning with <>, not ""
5828	* lispbibl.d: include version.h with <>, not ""
5829	* modules.c: include lispbibl & clisp with <>, not ""
5830	* spvw.d: include spvw_calendar.c with <>, not ""
5831
58322011-07-29  Sam Steingold  <sds@gnu.org>
5833
5834	* makemake.in (GNULIB_INCLUDE): -I$(builddir)/gllib -I$(srcdir)/gllib
5835	(XCPPFLAGS): add GNULIB_INCLUDE
5836	(UNICODE_EXTRA, GLLIB_MODULE_HEADERS): remove
5837	(anymodule): add GNULIB_INCLUDE to CPPFLAGS
5838	* encoding.d: include localcharset as <>, not as ""
5839
58402011-07-28  Sam Steingold  <sds@gnu.org>
5841
5842	* socket.d (CLOSE): do not redefine the unix.d definition
5843
58442011-07-28  Sam Steingold  <sds@gnu.org>
5845
5846	* configure: do not link over anything
5847	* makemake.in (po): new target
5848	(makemake.in, config.h.in, configure): remove link_dep targets
5849	(makemake, config.h, config.status): depend on files in SRCDIR
5850	* po/Makefile.in.in (VPATH): add
5851
58522011-07-28  Sam Steingold  <sds@gnu.org>
5853
5854	* makemake.in (GLLIB_MODULE_HEADERS): set to regex.h for regexp
5855
58562011-07-27  Sam Steingold  <sds@gnu.org>
5857
5858	* lispbibl.d (ANSIC_error): export to clisp.h
5859
58602011-07-27  Sam Steingold  <sds@gnu.org>
5861
5862	* Makefile.devel (GNULIB_CORE): fix a typo: setsockopt was
5863	requested twice while getsockopt was not requested at all
5864	(GNULIB_IMPORTS): add recvfrom & sendto for rawsock
5865	* modules/rawsock/rawsock.c: use ANSIC_error instead of OS_error
5866
58672011-07-27  Sam Steingold  <sds@gnu.org>
5868
5869	fix mingw compilation
5870	* lispbibl.d (setjmp) [__MINGW32__]: do not define
5871	Include <winsock2.h> before <windows.h> to avoid a warning
5872	* stream.d (QueryInformationFile) [WIN32_NATIVE]: do not include
5873	<ddk/ntifs.h> here, instead ...
5874	* win32.d: include <winternl.h> & <ntstatus.h>
5875	(_exit): remove prototype (get it from gnulib)
5876	(lseek): undef before redefining
5877	(CoGetCurrentProcess): remove prototype, rely on above headers
5878
58792011-07-27  Sam Steingold  <sds@gnu.org>
5880
5881	* modules/syscalls/calls.c: when the portability is ensured by
5882	gnulib, use ANSIC_error; when we use WIN32_NATIVE functions
5883	directly, use OS_error
5884	(POSIX:MKSTEMP) [WIN32_NATIVE]: use _get_osfhandle to convert the
5885	return value of gnulib mkstemp() to a windows file handle
5886	Include <shldisp.h> & <shlguid.h> for CLSID_ShellLink &
5887	IID_IShellLink
5888	* modules/regexp/Makefile.in (NO_CXX): removed unused variable
5889
58902011-07-27  Sam Steingold  <sds@gnu.org>
5891
5892	* spvw_ctype.d (init_ctype): add "#ifdef LC_MESSAGES" for mingw
5893
58942011-07-26  Sam Steingold  <sds@gnu.org>
5895
5896	* m4/clisp.m4 (CL_CLISP): use AC_MSG_ERROR instead of setting
5897	variables to bad values
5898
58992011-07-26  Sam Steingold  <sds@gnu.org>
5900
5901	* Makefile.devel (GNULIB_CORE): add select
5902
59032011-07-26  Sam Steingold  <sds@gnu.org>
5904
5905	revert last patch; fix the gnulib defines in a more robust way:
5906	change C names for Lisp symbols to avoid clashes with the C world
5907	Suggested by Bruno
5908	* undef-gnulib.h: remove
5909	* Makefile.devel, makemake.in: remove undef-gnulib.h
5910	* spvwtabf.d, spvwtabo.d, spvwtabs.d: do not include undef-gnulib.h
5911	* constsym.d, eval.d, io.d, package.d, pathname.d, stream.d,
5912	* subr.d, time.d (read): rename to readL
5913	(listen): ... listenL
5914	(write): ... writeL
5915	(sleep): ... psleep
5916	(time): ... pptime
5917	(close): ... closeL
5918	Thanks to Yaroslav Kavenchuk for extensive testing
5919
59202011-07-25  Sam Steingold  <sds@gnu.org>
5921
5922	* Makefile.devel (src/undef-gnulib.h): new target
5923	(gnulib-imported): call it at the end
5924	* spvwtabf.d, spvwtabo.d, spvwtabs.d: include undef-gnulib.h after
5925	lispbibl to undefine the lisp symbols redefined by gnulib
5926	* makemake.in: link undef-gnulib.h into the build directory
5927	(spvwtab*.o): depend on undef-gnulib.h
5928	* undef-gnulib.h: new file, regenerated on each gnulib-imported
5929
59302011-07-25  Sam Steingold  <sds@gnu.org>
5931
5932	* m4/clisp.m4 (CL_DECOLONIZE): even when $ac_cv_build is mingw, use
5933	cygpath when available because cross-compiling on cygwin is not detected
5934
59352011-07-20  Sam Steingold  <sds@gnu.org>
5936
5937	* Makefile.devel (GNULIB_CORE): add close, ioctl, and make stdlib
5938	inclusion explicit (it has always been present as a dependency)
5939	* modules/rawsock/rawsock.c, socket.d, stream.d, unix.d, win32.d:
5940	use close() instead of closesocket() and ioctl() instead of
5941	ioctlsocket() on all platforms
5942
59432011-07-20  Sam Steingold  <sds@gnu.org>
5944
5945	* Makefile.devel (RMRF, HG): new variables
5946	(gnulib-imported): remove gnulib directories before import to see
5947	added and deleted files right away
5948
59492011-07-20  Sam Steingold  <sds@gnu.org>
5950
5951	* makemake.in: pass "--execute netrc=off" to wget to avoid
5952	"unknown token" errors
5953
59542011-07-20  Sam Steingold  <sds@gnu.org>
5955
5956	* Makefile.devel (GNULIB_CORE): add sys_select
5957
59582011-07-19  Sam Steingold  <sds@gnu.org>
5959
5960	* configure.in: do not call gt_LC_MESSAGES
5961	* spvw_ctype.d, spvw_language.d: assume LC_MESSAGES is present
5962	* win32.d: do not define HAVE_LC_MESSAGES
5963
59642011-07-19  Sam Steingold  <sds@gnu.org>
5965
5966	* bdb.c, clx.f, dirkey.c, gdbm.c, cpcre.c, rawsock.c, calls.c:
5967	* aridecl.d, array.d, charstrg.d, control.d, debug.d, encoding.d:
5968	* error.d, errunix.d, errwin32.d, eval.d, flo_konv.d, foreign.d:
5969	* funarg.d, genclisph.d, intbyte.d, intdiv.d, intelem.d, intmal.d:
5970	* io.d, lfloat.d, lisparit.d, lispbibl.d, makemake.in, pathname.d:
5971	* record.d, sequence.d, spvw.d, spvw_allocate.d, stream.d, symbol.d:
5972	* unix.d, win32.d, win32aux.d: gnulib module stdlib prodvides
5973	macro _Noreturn; use it instead of nonreturning_function()
5974
59752011-07-19  Sam Steingold  <sds@gnu.org>
5976
5977	use gnulib modules to convert windows WSAGetLastError to errno
5978	* Makefile.devel (GNULIB_CORE): add bind accept listen recv send
5979	setsockopt shutdown connect socket setsockopt getsockname getpeername
5980	replace strerror with strerror_r-posix
5981	* errwin32.d (SOCK_error): remove
5982	* lispbibl.d: include <sys/select.h>
5983	* socket.d, stream.d, win32aux.d: use ANSIC_error instead of SOCK_error;
5984	use errno instead of sock_errno_is/sock_set_errno
5985	* unix.d, win32.d (SHUT_RD, SHUT_WR, SHUT_RDWR): do not defined
5986	here, ensured by gnulib (in sys/socket)
5987	(sock_errno, sock_errno_is, sock_set_errno, SOCK_error): remove
5988
59892011-07-15  Sam Steingold  <sds@gnu.org>
5990
5991	* spvw_language.d (language): make it static to avoid
5992	warning: non-local variable '<anonymous enum> language' uses anonymous type
5993
59942011-07-15  Sam Steingold  <sds@gnu.org>
5995
5996	* socket.d (ipv4_ntop, ipv6_ntop): remove
5997	(addr_to_string): simplify
5998	(MACHINE-INSTANCE): use it
5999	(socket_getlocalname_aux, socket_getpeername): use inet_ntop
6000	instead of ipv[46]_ntop
6001
60022011-07-15  Sam Steingold  <sds@gnu.org>
6003
6004	* encoding.d, lispbibl.d, pathname.d, socket.d, spvw.d, stream.d:
6005	* unix.d: always include <string.h> & <sys/socket.h> in lispbibl.d
6006	(socket, setsockopt): drop explicit prototypes, they are declared
6007	in <sys/socket.h> (from gnulib, if necessary)
6008
60092011-07-14  Sam Steingold  <sds@gnu.org>
6010
6011	* configure.in: restore the readline check (accidentally removed)
6012
60132011-07-14  Sam Steingold  <sds@gnu.org>
6014
6015	* makemake.in (UTILS): fix the last patch by making utils depend
6016	on ${EXTRAOBJ}
6017
60182011-07-13  Sam Steingold  <sds@gnu.org>
6019
6020	* win32.d (HAVE_IPV4, HAVE_IPV6): define to 1 to avoid
6021	warning: "HAVE_IPV4" redefined
6022	Reported by Yaroslav Kavenchuk <kavenchuk@gmail.com>
6023
60242011-07-11  Sam Steingold  <sds@gnu.org>
6025
6026	* lispbibl.d (listen): undef after including unistd because gnulib
6027	defines it to listen_used_without_including_sys_socket_h
6028
60292011-07-11  Sam Steingold  <sds@gnu.org>
6030
6031	* makemake.in (EXTRAOBJ): set to ${GLLIB_A} to avoid
6032	"undefined reference to `rpl_malloc'" on mingw;
6033	but put it after the C file in the compilation command
6034	<http://article.gmane.org/gmane.lisp.clisp.devel:22573>
6035	<https://sourceforge.net/p/clisp/mailman/message/27774032/>
6036
60372011-07-08  Sam Steingold  <sds@gnu.org>
6038
6039	* modules/regexp/regexi.c (REGEXP-EXEC):
6040	accept :return-type 'boolean instead of :boolean t
6041	* modules/regexp/regexp.lisp (regexp-matcher):
6042	pass :return-type 'boolean to regexp-exec
6043
60442011-07-08  Sam Steingold  <sds@gnu.org>
6045
6046	* win32.d, unix.d, lispbibl.d (stdlib, sys/types, unistd, locale)
6047	(errno): include files which are included in both unix.d and
6048	win32.d from lispbibl.d instead
6049	* socket.d: do not include these files here
6050
60512011-07-08  Sam Steingold  <sds@gnu.org>
6052
6053	* makemake.in: avoid $@ in single-target rules
6054
60552011-07-07  Sam Steingold  <sds@gnu.org>
6056
6057	* configure: pass --with-debug to makemake
6058	* makemake.in: accept --with-debug instead of positional
6059
60602011-07-06  Sam Steingold  <sds@gnu.org>
6061
6062	* m4/clisp.m4 (CL_CLISP): quote variable in test to avoid error
6063	"test: too many arguments"
6064
60652011-06-24  Sam Steingold  <sds@gnu.org>
6066
6067	* modules/libsvm/configure.in: check for svm_free_and_destroy_model
6068	* modules/libsvm/libsvm.lisp: in libsvm 3.1 svm_destroy_model is
6069	replaced with svm_free_and_destroy_model with a different
6070	signature, so we have to work around that
6071
60722011-06-24  Sam Steingold  <sds@gnu.org>
6073
6074	* modules/syscalls/calls.c (PRIORITY, %SET-PRIORITY) [WIN32_NATIVE]:
6075	compare handles with INVALID_HANDLE_VALUE, not NULL
6076	(PRIORITY) [WIN32_NATIVE]: make sure failed_p is always set
6077	* modules/bindings/win32/win32.lisp (GetPriorityClass): add
6078
60792011-06-01  Sam Steingold  <sds@gnu.org>
6080
6081	* pathname.d, subr.d (PROBE-PATHNAME): mark as seclass_rd_sig
6082	because it may signal permission errors
6083
60842011-06-01  Sam Steingold  <sds@gnu.org>
6085
6086	finish the 2011-05-13 possible_symlink patch
6087	* pathname.d (my_readlink) [UNIX_LINUX]: do not handle /proc specially
6088	(stat_for_search) [UNIX_LINUX]: ditto
6089
60902011-06-01  Sam Steingold  <sds@gnu.org>
6091
6092	avoid errors on weird pathnames like ~/.gvfs under gnome
6093	* pathname.d (get_path_info): accept tolerantp
6094	(assure_dir_exists): pass tolerantp to get_path_info
6095	(namestring_kind_t): add NAMESTRING_BAD for existing objects
6096        for which no information could be obtained
6097	(classify_namestring): return NAMESTRING_BAD instead of signaling
6098	(PROBE-PATHNAME): signal the error here
6099	(directory_search_direntry_ok): never signal any errors,
6100	just return false
6101	(directory_search_scandir): call OS_file_error instead of
6102	error_file_not_exists after a failed directory_search_direntry_ok
6103	when if_none=DIR_IF_NONE_ERROR
6104	Reported by Don Cohen <http://article.gmane.org/gmane.lisp.clisp.general:13778>
6105	<https://sourceforge.net/p/clisp/mailman/message/27584189/>
6106
61072011-05-24  Sam Steingold  <sds@gnu.org>
6108
6109	* _clisp.c (main) [WIN32_NATIVE]: use FormatMessage()
6110	instead of strerror() for GetLastError()
6111	Reported by Bruno Haible
6112
61132011-05-24  Sam Steingold  <sds@gnu.org>
6114
6115	* Makefile.devel (GNULIB_CORE): import mkfifo mknod mkstemp
6116	mkdtemp getloadavg
6117	* modules/syscalls/calls.c (MKSTEMP, MKDTEMP, LOADAVG, MKNOD):
6118	define uniformly on all platforms
6119	* modules/syscalls/posix.lisp (mknod): export on all platforms
6120
61212011-05-20  Sam Steingold  <sds@gnu.org>
6122
6123	* spvw_language.d (clgettext) [!GNU_GETTEXT]: define for CLSTEXT
6124
61252011-05-19  Sam Steingold  <sds@gnu.org>
6126
6127	* subrkw.d: remove
6128	* spvw.d (init_subr_tab_2): use subr with LISPFUN_H instead of subrkw
6129	* subr.d (LISPFUN_H): fix
6130	* makemake.in (OTHER_INCLUDES): remove subrkw
6131	* po/Makefile.devel (DSOURCES): ditto
6132	* check-lispfun.lisp (check-lisp-defs): do not look at subrkw.d
6133
61342011-05-19  Sam Steingold  <sds@gnu.org>
6135
6136	* zthread.d (EXEMPTION-WAIT): fix the key count in the definition
6137	to match the (correct) declaration in subr.d
6138
61392011-05-19  Sam Steingold  <sds@gnu.org>
6140
6141	* constobj.d, constsym.d, hashtabl.d, io.d, lispbibl.d,
6142	* pathname.d, predtype.d, spvw.d, spvw_debug.d, subr.d, subrkw.d:
6143	remove the LOGICAL_PATHNAMES CPP macro;
6144	logical pathnames are unconditionally present in CLISP
6145
61462011-05-19  Sam Steingold  <sds@gnu.org>
6147
6148	* constobj.d, constsym.d, lispbibl.d, pathname.d, subr.d: remove
6149	HAVE_SHELL which is always defined on all platforms supported by CLISP
6150
61512011-05-19  Sam Steingold  <sds@gnu.org>
6152
6153	* modules/syscalls/calls.c (processor_architecture): add DEFCHECKER
6154	(SYSTEM-INFO): use it; also push dwProcessorType on STACK
6155	* modules/syscalls/posix.lisp (system-info): add PROCESSOR-TYPE slot
6156
61572011-05-19  Sam Steingold  <sds@gnu.org>
6158
6159	* constobj.d, constsym.d, lispbibl.d, misc.d, socket.d:
6160	* spvw_memfile.d, subr.d: remove MACHINE_KNOWN
6161	which is always defined on all platforms supported by CLISP
6162
61632011-05-19  Sam Steingold  <sds@gnu.org>
6164
6165	* constsym.d, lispbibl.d, misc.d, subr.d: remove HAVE_ENVIRONMENT
6166	which is always defined on all platforms supported by CLISP
6167
61682011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>
6169
6170	* time.d (thread_from_arg) [MULTITHREAD]: fix g++ gcsafety build
6171
61722011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>
6173
6174        * xthread.d: use "raw" mutexes for emulating spinlocks on
6175        architectures with no inline asm versions
6176
61772011-05-18  Vladimir Tzankov  <vtzankov@gmail.com>
6178
6179        * spvw_sigcld.d (sigcld_enabled_INCF/DECF): fix counting
6180
61812011-05-19  Sam Steingold  <sds@gnu.org>
6182
6183	* makemake.in (UTILCOMPILE): turn into a make variable and use it
6184	on win32 and when cross-compiling
6185
61862011-05-18  Sam Steingold  <sds@gnu.org>
6187
6188	simplify UI language code
6189	* lispbibl.d (ENGLISH, LANGUAGE_STATIC): remove
6190	(language_english): move to ...
6191	* spvw_language.d (language_english): ... here
6192	(language): static enum
6193	(init_language): simplify, remove gotos
6194	* spvw_memfile.d (loadmem_from_handle): LANGUAGE_STATIC => !GNU_GETTEXT
6195	* i18n.d (TEXT) [!GNU_GETTEXT]: return the argument as string
6196
61972011-05-18  Sam Steingold  <sds@gnu.org>
6198
6199	* makemake.in: finish the 2008-05-31 CL_CC_NEED_CCPAUX patch
6200	by removing the special case of comment5 in UTIL building
6201	(full): fix the grep REPLACE_ regexp (gnulib replacements)
6202
62032011-05-18  Sam Steingold  <sds@gnu.org>
6204
6205	* modules/rawsock/rawsock.c: do not include <ws2tcpip.h> twice
6206	* modules/rawsock/configure.in: <winsock2.h> is checked by gl_SOCKETLIB;
6207	add LIBSOCKET to LIBS while checking for functions
6208
62092011-05-18  Sam Steingold  <sds@gnu.org>
6210
6211	* modules/i18n/configure.in: gl_FUNC_NL_LANGINFO is already called
6212	by gl_INIT in the top-level config file
6213
62142011-05-18  Sam Steingold  <sds@gnu.org>
6215
6216	* modules/clx/new-clx/clx.f, modules/clx/new-clx/configure.in:
6217	* modules/fastcgi/configure.in, modules/regexp/configure.in:
6218	* modules/rawsock/configure.in, modules/rawsock/rawsock.c:
6219	* modules/syscalls/configure.in, configure.in, m4/general.m4:
6220	* m4/rusage.m4: do not check for gnulib files
6221	* Makefile.devel (GNULIB_CORE): add sys_uio & socketlib (already
6222	present as dependencies)
6223	* m4/putenv.m4: remove (should have been removed on 2010-09-27)
6224	* modules/syscalls/calls.c, modules/syscalls/configure.in:
6225	<sys/wait.h> and <wchar.h> are provided by gnulib
6226
62272011-05-18  Sam Steingold  <sds@gnu.org>
6228
6229	* makemake.in (SUBDIR_CFLAGS): add @NO_CXX@ because
6230	gnulib regexp and fnmatch cannot be compiled with C++
6231
62322011-05-17  Sam Steingold  <sds@gnu.org>
6233
6234	* modules/rawsock/rawsock.c, modules/berkeley-db/bdb.c:
6235	* modules/berkeley-db/configure.in, modules/syscalls/configure.in:
6236	* modules/fastcgi/fastcgi_wrappers.c, modules/gdbm/gdbm.c:
6237	* rawsock/rawsock.c, modules/rawsock/configure.in:
6238	no need to check and guard gnulib #include files and functions
6239
62402011-05-17  Sam Steingold  <sds@gnu.org>
6241
6242	merge the wildcard module into syscalls; import gnulib into src only
6243	before: clisp:52,284k modules:14,136k src:25,876k
6244	after:  clisp:44,200k modules: 8,684k src:24,836k
6245	* Makefile.devel (MODULES): remove wildcard
6246	(GNULIB_USERS, MAKEFILE_IN): remove
6247	(gnulib-imported): import files into src/ only
6248	(GNULIB_CORE): import explicitly "unistd alloca-opt environ"
6249	which have been already included because of dependencies;
6250	also import lstat, stat, readlink
6251	* gnulib-tool.patch: remove
6252	* configure.in: rely on lstat, stat, readlink
6253	* makemake.in (GLLIB_A): no need for "_cl" suffix
6254	* pathname.d: lstat() is always present (from gnulib)
6255	* unix.d: readlink, lstat, gethostname come from gnulib
6256	* win32.d: gethostname comes from gnulib
6257	* m4/stat.m4: remove
6258	* modules/wildcard, modules/regexp/gl*, modules/syscalls/gl*: remove
6259	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
6260	remove gnulib targets
6261	(GENERATED): remove libgnu_*.a
6262	(config.h): add target
6263	* modules/regexp/configure.in, modules/syscalls/configure.in:
6264	remove gnulib calls
6265	* modules/regexp/link.sh.in, modules/syscalls/link.sh.in
6266	(NEW_FILES): remove libgnu_*.a
6267	* modules/syscalls/calls.c (FNMATCH): add
6268	* modules/syscalls/posix.lisp: export FNMATCH & FNMATCH-MATCHER
6269	(fnmatch-matcher): implement
6270	(wildcard:match, wildcard:wildcard-matcher): add for
6271	backward-compatibility
6272
62732011-05-17  Sam Steingold  <sds@gnu.org>
6274
6275	* misc.d (environ) [HAVE_ENVIRONMENT]: included for dependencies
6276	gnulib module environ already provides the declaration
6277	* socket.d: no need to guard including <unistd.h> - it is always
6278	provided by the gnulib module unistd
6279	* unix.d: no need to guard including <unistd.h>, <sys/time.h>,
6280	<time.h>, <sys/utsname.h> - they are always provided by gnulib
6281	* aridecl.d, arilev0.d, arilev1.d, lispbibl.d, win32.d:
6282	remove the last vestiges of Borland support
6283	* _clisp.c: add '#include "config.h"' (necessary for gnulib)
6284	* lispbibl.d: rely on alloca.h provided by gnulib/alloca-opt
6285
62862011-05-17  Sam Steingold  <sds@gnu.org>
6287
6288	* configure: detect building for mingw from $CC -dumpmachine
6289
62902011-05-17  Sam Steingold  <sds@gnu.org>
6291
6292	* utils/modprep.lisp (print-tables-1): DEFFLAGSET(..., !CONST)
6293	means that to add CONST to flags one passes NIL to the lisp function
6294
62952011-05-16  Sam Steingold  <sds@gnu.org>
6296
6297	* spvw_language.d (language): static, not global
6298	(current_language_o): global, not static
6299	(init_language): do not call bindtextdomain() with a nonexistent
6300	localedir because that it is usually called by SET-CURRENT-LANGUAGE
6301	with a NULL second argument
6302	* lispbibl.d (current_language_o) [!LANGUAGE_STATIC]: declare extern
6303	* spvw.d (init_memory): update initialization of O(current_language)
6304	* i18n.d (SET-CURRENT-LANGUAGE): use current_language_o() to set
6305	O(current_language)
6306
63072011-05-13  Sam Steingold  <sds@gnu.org>
6308
6309	* pathname.d (possible_symlink): remove (linux 2.0.35 is long gone)
6310
63112011-05-10  Sam Steingold  <sds@gnu.org>
6312
6313	* pathname.d (starp): remove
6314	(multiwild_char_p, singlewild_char_p, wild_char_p): use
6315	consistently throughout the file
6316	(DEF_WILD_CHECKER): new macro
6317	(word_wild_p, wild_p): define using it
6318
63192011-05-04  Sam Steingold  <sds@gnu.org>
6320
6321	* stream.d (IS_EINVAL_EXTRA) [UNIX_SUNOS5]: add ENXIO
6322
63232011-05-04  Sam Steingold  <sds@gnu.org>
6324
6325	* Makefile.devel (GNULIB_CORE): replace close-hook with
6326	fd-hook (renamed in gnulib 2011-04-19)
6327	(gnulib-imported): pipe stderr to $(GNULIB_IMPORTED_LOG) too
6328
63292011-05-04  Sam Steingold  <sds@gnu.org>
6330
6331	* spvw_language.d (init_language): fix the 2011-04-10 patch (use
6332	strcpy instead of strcat)
6333
63342011-05-04  Sam Steingold  <sds@gnu.org>
6335
6336	* symbol.d (GENTEMP): add a cast to fix g++ compilation
6337
63382011-05-04  Sam Steingold  <sds@gnu.org>
6339
6340	* Makefile.devel (GNULIB_CORE): add
6341	arpa_inet, netinet_in, inet_ntop, inet_pton
6342	* lispbibl.d: assume that <netinet/in.h> is always present
6343	* win32.d (CONNECT_NAME_T, CONNECT_CONST, CONNECT_ADDRLEN_T)
6344	(HAVE_NETINET_IN_H, HAVE_ARPA_INET_H, RET_INET_ADDR_TYPE)
6345	(INET_ADDR_SUFFIX, INET_ADDR_CONST): remove
6346	* socket.d: assume HAVE_ARPA_INET_H, HAVE_INET_NTOP, HAVE_INET_PTON,
6347	thus inet_addr() is never used
6348	(connect, inet_addr): remove the prototypes
6349	(all_digits_dots): remove the function
6350	* configure.in: do not call CL_CONNECT
6351	(LIBS): add -lnsl & -lsocket if required for connect() & gethostbyname()
6352	* m4/connect.m4, m4/socket.m4: remove
6353	* m4/tcpconn.m4: do not check for inet_pton & inet_ntop (get them
6354	from gnulib) and inet_addr (never used)
6355	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: include
6356	<netinet/in.h> & <arpa/inet.h> unconditionally
6357	* modules/syscalls/configure.in: do not check for <netinet/in.h> &
6358	<arpa/inet.h>; do not call CL_SOCKET
6359
63602011-05-03  Sam Steingold  <sds@gnu.org>
6361
6362	* genclisph.d (include_file): renamed from print_file; when fname
6363	does not exist, emit "#include <fname>"
6364	* lispbibl.d (stdbool.h): do not check for HAVE_STDBOOL_H because
6365	it is no longer defined by gnulib
6366	<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00571.html>
6367
63682011-05-02  Sam Steingold  <sds@gnu.org>
6369
6370	* modules/syscalls/calls.c, modules/syscalls/posix.lisp (stdio):
6371	enable even without FFI because it is useful for bypassing the
6372	normal CL filename processing
6373
63742011-05-01  Bruno Haible  <bruno@clisp.org>
6375
6376	Disallow &WHOLE if it comes too late.
6377	* defmacro.lisp (analyze1): Report an error if &WHOLE appears
6378	after the first required variable or after &OPTIONAL.
6379	Refer to CLHS 3.4.4 and 3.4.5
6380	<http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-4.html>
6381	<http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-5.html>
6382	Reported at bug#599.
6383
63842011-04-28  Sam Steingold  <sds@gnu.org>
6385
6386	* modules/clx/new-clx/clx.f (check_family): add
6387	(XLIB:ACCESS-HOSTS): handle all host families from my X.h and Xauth.h
6388
63892011-04-28  Sam Steingold  <sds@gnu.org>
6390
6391	fix bug#598: GET-PROPERTY unpacks properties incorrectly on 64bit
6392	http://www.x.org/releases/X11R7.6/doc/man/man3/XChangeProperty.3.xhtml
6393	format = 8/16/32 means char/short/long, __NOT__ int8/int16/int32
6394	* modules/clx/new-clx/clx.f (get_client_message_format1): add,
6395	return the format_bytesize in addition to the actual format
6396	(get_client_message_format): call it
6397	(XLIB:CHANGE-PROPERTY): use it instead of format/8
6398	(make_client_message_data, XLIB:GET-PROPERTY):
6399	use fixnum & L_to_I for conversion instead of make_int*
6400	(get_client_message_data, coerce_into_map):
6401	use get_fixnum & I_to_L for conversion instead of get_int*
6402	* modules/clx/new-clx/clx.lisp (decode-wm-size-hints): revert the
6403	ZEROP check accidentally committed on 2009-09-18
6404
64052011-04-27  Elliott Slaughter  <elliottslaughter@gmail.com>
6406
6407	* win32msvc/nsis/install.nsi: Fix PATH bug by insisting that packager
6408	uses long strings version of NSIS. Also upgrade EnvVarUpdate library.
6409	* win32msvc/nsis/add_to_path.nsh: Obsoleted by env_var_update.nsh.
6410	* win32msvc/nsis/env_var_update.nsh: Added to supercede add_to_path.nsh.
6411	* makemake.in: Use env_var_update.nsh rather than add_to_path.nsh.
6412
64132011-04-22  Sam Steingold  <sds@gnu.org>
6414
6415	* places.lisp (setf-VALUES-aux): even if subform sets no values,
6416	it should consume one assigned value (bug#597)
6417
64182011-04-21  Sam Steingold  <sds@gnu.org>
6419
6420	* Makefile.devel (CP): new variable; do _not_ pass "-u" so that
6421	fresh checkouts will not override updating in build-aux-update et al
6422	(LIBTOOL_VERSION): bump to 2.4
6423	(build-aux-update): get compile & ylwrap from a specific automake
6424	version instead of whatever happens to be currently installed
6425
64262011-04-18  Sam Steingold  <sds@gnu.org>
6427
6428	* configure (makemake_args): when configure detects mingw/msys,
6429	pass --win32gcc to makemake
6430	Reported by Elliott Slaughter <elliottslaughter@gmail.com>.
6431
64322011-04-15  Sam Steingold  <sds@gnu.org>
6433
6434	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): issue a style-warning
6435	when PARSE-NAMESTRING, MERGE-PATHNAMES, or READ-FROM-STRING, i.e.,
6436	a function which accept both &KEY arguments and an even number of
6437	&OPTIONAL arguments, is, apparently, invoked with &KEY but without
6438	&OPTIONAL arguments
6439
64402011-04-15  Sam Steingold  <sds@gnu.org>
6441
6442	* compiler.lisp (c-LAMBDABODY): issue a style-warning when lambda
6443	list contains both &optional and &key
6444
64452011-04-12  Sam Steingold  <sds@gnu.org>
6446
6447	On Max OS X the value of *PATHNAME-ENCODING* is set to UTF-8 and cannot
6448	be changed because MacOSX pathnames are UTF-8 strings, not byte
6449	sequences (<http://thread.gmane.org/gmane.lisp.clisp.general/13725>
6450	<https://sourceforge.net/p/clisp/mailman/message/27345286/>
6451	and <http://developer.apple.com/library/mac/#qa/qa2001/qa1173.html>)
6452	* lispbibl.d (CONSTANT_PATHNAME_ENCODING) [UNIX_MACOSX]: define to UTF-8
6453	* encoding.d (init_dependent_encodings) [CONSTANT_PATHNAME_ENCODING]:
6454	set O(pathname_encoding) to CONSTANT_PATHNAME_ENCODING
6455	(SYSTEM::SET-PATHNAME-ENCODING): signal an error when the encoding
6456	argument is not CONSTANT_PATHNAME_ENCODING
6457	* spvw.d (argv_encoding_pathname): do not define when
6458	CONSTANT_PATHNAME_ENCODING is defined
6459	(parse_options): do not accept -Epathname
6460	* makemake.in (encflags) [TSYSOS=darwin]: do not add -Epathname
6461	Thanks to Carlos Ungil <carlos.ungil@gmail.com> for testing.
6462
64632011-04-10  Sam Steingold  <sds@gnu.org>
6464
6465	* spvw_language.d (init_language): use strcat and strncat instead
6466	of while and dotimespL
6467
64682011-04-10  Sam Steingold  <sds@gnu.org>
6469
6470	* modules/bindings/glibc/linux.lisp (wait, waitpid): restore (revert
6471	the 2011-03-23 patch); recommend POSIX:WITH-SUBPROCESSES in comments
6472
64732011-04-09  Sam Steingold  <sds@gnu.org>
6474
6475	* modules/syscalls/calls.c (POSIX:SERVICE): fix non-missing
6476	protocol handling (bug#596)
6477
64782011-04-08  Vladimir Tzankov  <vtzankov@gmail.com>
6479
6480	* spvw_sigpipe.d [MULTITHREAD, UNIX_MACOSX, GENERATIONAL_GC]:
6481	patch for strange SIGPIPE delivered to libsigsegv thread
6482
64832011-04-06  Sam Steingold  <sds@gnu.org>
6484
6485	fix bug#586: WRITE-BYTE-SEQUENCE :no-hang t is only for byte vectors
6486	* sequence.d (WRITE-BYTE-SEQUENCE): implement "persev !=
6487	persev_full" for sequences other than (VECTOR (UNSIGNED-BYTE 8))
6488
64892011-04-06  Sam Steingold  <sds@gnu.org>
6490
6491	* sequence.d (interactive_no_hang): new function
6492	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): use it
6493
64942011-04-06  Sam Steingold  <sds@gnu.org>
6495
6496	* unixaux.d (fd_read): revert the 2008-12-30 patch which closed
6497	the fd on ECONNRESET without marking the lisp stream as closed,
6498	thus leading to EBADF when the stream was closed
6499
65002011-04-05  Bruno Haible  <bruno@clisp.org>
6501
6502	Tweak last two changes.
6503	* lispbibl.d (GENERATIONAL_GC): Add more comments.
6504	* spvw.d (SIGSEGV_FAULT_ADDRESS_ALIGNMENT): Define fallback.
6505	* spvw_fault.d (handle_fault): Simplify use of
6506	SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
6507
65082011-04-04  Sam Steingold  <sds@gnu.org>
6509
6510	* spvw_fault.d (handle_fault): fix last patch to restore support
6511	to libsigsegv-2.9 and earlier
6512	* lispbibl.d (GENERATIONAL_GC): ditto
6513
65142011-04-03  Bruno Haible  <bruno@clisp.org>
6515
6516	Support for generational GC on Linux/S390.
6517	* configure (SIGSEGV): Recommend libsigsegv-2.10.
6518	* lispbibl.d (GENERATIONAL_GC): Consider also
6519	SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
6520	* spvw_fault.d (handle_fault): Likewise.
6521	Reported by Christoph Egger <christoph@debian.org>.
6522
65232011-03-31  Sam Steingold  <sds@gnu.org>
6524
6525	fix bug#414: loop expansion: spurious LET twice
6526	* loop.lisp (destructure): warn on destructuring empty patterns
6527	(expand-loop): do not destructure empty patterns and bind useless
6528	variables; this makes macroexpansion smaller but does not affect
6529	compiled code
6530
65312011-03-29  Sam Steingold  <sds@gnu.org>
6532
6533	fix bug#594: HANDLER-BIND: no CONSTANTLY as a handler
6534	* compiler.lisp (insert-combined-LAPs): we have HANDLER-BEGIN&PUSH
6535	but not HANDLER-BEGIN, so insert a (PUSH)+(POP) after
6536	HANDLER-BEGIN which is not followed by a (PUSH)
6537
65382011-03-29  Sam Steingold  <sds@gnu.org>
6539
6540	* compiler.lisp (insert-combined-LAPs): remove noop GOs
6541
65422011-03-29  Sam Steingold  <sds@gnu.org>
6543
6544	fix bug#582: too much consing in IGNORE-ERRORS,
6545	partially reverting the 2005-01-21 patch
6546	* compiler.lisp (c-form-table): map HANDLER-BIND to c-HANDLER-BIND
6547	and SYS::%HANDLER-BIND to c-%HANDLER-BIND
6548	(c-handler-bind-handler-anode, c-handler-bind-anode):
6549	extract from c-HANDLER-BIND
6550	(c-HANDLER-BIND, c-%HANDLER-BIND): use them
6551	* init.lisp (%expand-handlers): remove unused code
6552	* modules/asdf/asdf.lisp (module-provide-asdf): work around the
6553	upcoming bug#594 which was fixed by the 2005-01-21 patch and
6554	is now being reintroduced
6555
65562011-03-29  Sam Steingold  <sds@gnu.org>
6557
6558	* trace.lisp (subclosure-pos, trace1): use SYMBOL-SUFFIX instead
6559	of CONCAT-PNAMES to keep the named of the traced definition in the
6560	same package as the original name
6561
65622011-03-28  Sam Steingold  <sds@gnu.org>
6563
6564	fix bug#587: socket-connect with timeout non-zero ->ETIMEDOUT
6565	* socket.d (connect_via_ip): do not reuse "ret" when checking for
6566	socket errors (fixes patch 2008-06-30)
6567
65682011-03-28  Sam Steingold  <sds@gnu.org>
6569
6570	fix bug#585: LOOP mixing WITH & Hash Table FOR
6571	* loop.lisp (expand-loop): reverse the order of INITFORMS and
6572	ENDTEST-FORMS in preamble (tweak the 2006-07-20 patch)
6573
65742011-03-27  Sam Steingold  <sds@gnu.org>
6575
6576	fix bug#593: (posix:wait) race condition
6577	* spvw_sigcld.d (sigcld_enabled): static var which counts how many
6578	times we have enabled SIGCLD
6579	(sigcld_enabled_lock) [MULTITHREAD]: spinlock for sigcld_enabled
6580	(install_sigcld_handler) [MULTITHREAD]: init sigcld_enabled_lock
6581	(begin_want_sigcld, end_want_sigcld): only act if sigcld_enabled==0
6582	* modules/syscalls/calls.c (BEGIN-SUBPROCESSES, END-SUBPROCESSES): add
6583	* modules/syscalls/posix.lisp (with-subprocesses): add
6584
65852011-03-24  Sam Steingold  <sds@gnu.org>
6586
6587	Fix bug#588: arg warnings despite :ALLOW-OTHER-KEYS T
6588	* compiler.lisp (test-argument-syntax): report all wrong keys but
6589	only if :ALLOW-OTHER-KEYS T is not supplied
6590	(c-DIRECT-FUNCTION-CALL): duplicate and ignored keys are STYLE warnings
6591
65922011-03-24  Sam Steingold  <sds@gnu.org>
6593
6594	* configure.in (AC_REVISION): explicitly call hg instead of using $Id$
6595	* m4/general.m4, modules/rawsock/configure.in:
6596	quote AC_LANG_PROGRAM to avoid an autoconf 2.68 warning
6597	* m4/address.m4, m4/filecharset.m4:
6598	use AC_LANG_PROGRAM to avoid an autoconf 2.68 warning
6599	* m4/eloop.m4, m4/param.m4:
6600	use AC_LANG_SOURCE to avoid an autoconf 2.68 warning
6601
66022011-03-23  Sam Steingold  <sds@gnu.org>
6603
6604	* modules/bindings/glibc/linux.lisp (wait, waitpid): remove, these
6605	functions never worked properly because clisp ignores SIGCLD by
6606	default; one should be using POSIX:WAIT instead (bug#592)
6607
66082011-03-13  Sam Steingold  <sds@gnu.org>
6609
6610	* makemake.in (clean-modules, check-doc): update for the cvs->hg switch
6611
66122011-03-08  Sam Steingold  <sds@gnu.org>
6613
6614	* Makefile.devel: update for the cvs->hg switch
6615
66162011-03-01  Vladimir Tzankov  <vtzankov@gmail.com>
6617
6618	* spvw_garcol.d (split_gen0_on_holes) [MULTITHREAD]: correctly mark the
6619	end of old generation (it is possible the split-hole to be for
6620	read-only pinned object)
6621
66222011-02-17  Sam Steingold  <sds@gnu.org>
6623
6624	* modules/clx/new-clx/clx.f (XLIB:CREATE-GCONTEXT):
6625	use error_required_keywords()
6626	Reported by Peter Van Eynde <pvaneynd@debian.org>
6627
66282011-02-11  Vladimir Tzankov  <vtzankov@gmail.com>
6629
6630	* lispbibl.d (WITH_DEFERRED_INTERRUPTS): fix typo in name and really
6631	execute deferred interrupts
6632	* spvw.d (create_thread): allow interrupts in newly created threads
6633	* zthread.d (thread_stub): defer interrupts until low level per thread
6634	variables are initialized
6635
66362010-12-30  Arseny Slobodyuk  <ampy@users.sourceforge.net>
6637
6638	* pathname.d (classify_namestring) [WIN32_NATIVE]: fixed condition.
6639
66402010-12-29  Arseny Slobodyuk  <ampy@users.sourceforge.net>
6641
6642	Fix for bug#581: OS:FILE-INFO crashes when file's times
6643	are corrupted (Y2.04k bug)
6644	* time.d (convert_time_to_universal) [WIN32_NATIVE]: use 64 bit
6645	when dividing ticks by ticks_per_second, because universal time
6646	exceeds 32 bits around year 2035.
6647
66482010-12-10  Sam Steingold  <sds@gnu.org>
6649
6650	Fix bug#579: setting *DEFAULT-PATHNAME-DEFAULTS* breaks REQUIRE
6651	* init.lisp (open-for-load): accept ignore-pathname-defaults and
6652	do not call MERGE-PATHNAMES if it is non-NIL;
6653	use PROBE-PATHNAME instead of DIRECTORY to probe for a directory
6654	(load): accept :IGNORE-PATHNAME-DEFAULTS and pass it to OPEN-FOR-LOAD;
6655	pathname merging is done in OPEN-FOR-LOAD
6656	(search-file): call PATHNAME instead of MERGE-PATHNAMES on the
6657	argument to avoid being killed by *DEFAULT-PATHNAME-DEFAULTS*
6658	* defs1.lisp (with-augmented-load-path): do not use UNION since
6659	the augmentations must come first in *LOAD-PATHS*
6660	(simple-require): pass :IGNORE-PATHNAME-DEFAULTS T to LOAD
6661
66622010-12-10  Sam Steingold  <sds@gnu.org>
6663
6664	* modules/asdf/asdf.lisp: update to upstream "2.011"
6665	* src/gmalloc.c: update from upstream (emacs)
6666
66672010-12-10  Sam Steingold  <sds@gnu.org>
6668
6669	* Makefile.devel (update-gmalloc): new target: get gmalloc.c from emacs
6670
66712010-12-02  Sam Steingold  <sds@gnu.org>
6672
6673	* defs1.lisp (load-path-augmentations): delete NILs
6674	(augment-load-path): remove
6675	(with-augmented-load-path): use UNION instead of AUGMENT-LOAD-PATH
6676	to avoid modifying the global value of *LOAD-PATHS*
6677
66782010-12-01  Sam Steingold  <sds@gnu.org>
6679
6680	* pathname.d (SET-LIB-DIRECTORY): call TRUENAME on argument to
6681	ensure an existing absolute path
6682
66832010-11-29  Sam Steingold  <sds@gnu.org>
6684
6685	fix bug#578: LOAD does not close FAS files with a bad version marker
6686	* init.lisp (open-for-load): catch errors when READing the version
6687	marker
6688
66892010-11-26  Sam Steingold  <sds@gnu.org>
6690
6691	* constsym.d, subr.d, subrkw.d, stream.d (make_stream, stream_handles):
6692	define even when SOCKET_STREAMS is not defined
6693
66942010-11-25  Sam Steingold  <sds@gnu.org>
6695
6696	* init.lisp, constsym.d (stream-handles): move from SOCKET to EXT
6697
66982010-11-21  Sam Steingold  <sds@gnu.org>
6699
6700	* makemake.in: use ${MODULESDIR_} instead of ${SRCTOPDIR}modules
6701
67022010-11-14  Vladimir Tzankov  <vtzankov@gmail.com>
6703
6704	[MULTITHREAD]: thread safe GENSYM and GENTEMP
6705	* lispbibl.d (gensym_lock, gentemp_lock): add locks guarding gensym and
6706	gentemp counters
6707	* spvw.d (init_multithread): initialize gensym_lock and gentemp_lock
6708	* defs1.lisp (GENTEMP): remove. implemented in C
6709	* subr.d, constsym.d: add GENTEMP to subr and symbol tables
6710	* constobj.d: add gentemp prefix and counter to object table
6711	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): remove *gensym-counter*
6712	* symbol.d: define gensym_lock, gentemp_lock
6713	(GENSYM): re-implement. lock *gensym-counter* increment
6714	(GENTEMP): implement in C
6715
67162010-11-08  Sam Steingold  <sds@gnu.org>
6717
6718	* modules/rawsock/rawsock.c (check_sockopt_name): add
6719	(get_sock_opt, set_sock_opt): use it instead of NOTREACHED
6720
67212010-10-30  Vladimir Tzankov  <vtzankov@gmail.com>
6722
6723	[MULTITHREAD]: add optional :TEST predicate to MT:EXEMPTION-WAIT
6724	* subr.d, subrkw.d (EXEMPTION-WAIT): accept optional :TEST argument
6725	* xthread.d (xcondition_wait): accept timeout as void pointer. with
6726	POSIX_THREADS it is absolute struct timespec, with WIN32_THREADS it is
6727	unsigned integer specifying milliseconds to wait
6728	* zthread.d (EXEMPTION-WAIT): loop until :TEST predicate is satisfied
6729	thus simplifies EXEMPTION-WAIT usage with POSIX_THREADS where spurious
6730	wakeups are possible
6731	(xcondition_wait): handle timeout parameter properly
6732
67332010-10-28  Sam Steingold  <sds@gnu.org>
6734
6735	* modules/berkeley-db/bdb.c (time_stamp): make "prefix" const to avoid
6736	warning: deprecated conversion from string constant to 'char*'
6737	* modules/syscalls/calls.c (POSIX:FILE-TREE-WALK): add a cast to
6738	fix g++ compilation
6739
67402010-10-27  Bruno Haible  <bruno@clisp.org>
6741
6742	* clhs.lisp (*browsers*): Add :firefox-window and :firefox-tab.
6743
67442010-10-22  Vladimir Tzankov  <vtzankov@gmail.com>
6745
6746	* time.d (get_running_times_helper): fix real time calculation. use
6747	the value returned from get_real_time()
6748
67492010-10-21  Sam Steingold  <sds@gnu.org>
6750
6751	* time.d (GET-INTERNAL-RUN-TIME): when *ANSI*!=NIL, reject the
6752	optional argument (for strict ANSI compliance)
6753
67542010-10-21  Vladimir Tzankov  <vtzankov@gmail.com>
6755
6756	[MULTITHREAD]: provide real/run time information on individual threads
6757	when supported by OS
6758	* lispbibl.d: remove HAVE_RUN_TIME and dependencies
6759	(get_thread_run_time, get_run_time): obtain thread or process run time
6760	(struct clisp_thread_t): add thr_realstart_time - real time at which
6761	thread has started
6762	(check_thread): make it global (used from time.d)
6763	* spvw_gcstat.d (gc_timer_on, gc_timer_off): use get_run_time()
6764	instead	of get_running_time() (which was causing unused C stack
6765	area to be overwritten)
6766	* stream.d: remove run_time_start()and run_time_restart() calls (anyway
6767	these were nop when HAVE_RUN_TIME was not defined i.e. always)
6768	* zthread.d (check_thread): make it global
6769	(thread_stub): initialize thread real start time
6770	* subr.d (GET-INTERNAL-RUN-TIME, SYSTEM::%%TIME): accept optional
6771	thread argument
6772	* time.d: remove HAVE_RUN_TIME and dependencies
6773	(realstart_time_initialized): flag whether process start time was
6774	initialized
6775	(thread_from_arg): returns thread record from optional argument passed
6776	to GET-INTERNAL-RUN-TIME and SYSTEM::%%TIME
6777	(real_start_time): return the real start time of a thread or process
6778	(get_thread_run_time): was get_run_time(). handle thread argument
6779	(get_running_times_helper): was get_running_times(). handle thread
6780	argument. never fails and does not GC when called for process wide data
6781	(get_running_times): use it
6782	(GET-INTERNAL-RUN-TIME, %%TIME): handle optional thread argument
6783	(init_time): initialize thread real start time in MT
6784
67852010-10-21  Arseny Slobodyuk  <ampy@users.sourceforge.net>
6786
6787	* makemake.in (cygwin_finish): use realpath and cygpath to
6788	avoid cygcheck bug with symbolic links
6789
67902010-10-21  Arseny Slobodyuk  <ampy@users.sourceforge.net>
6791
6792	Fix PROBE-PATHNAME: proper handle of "/" on UNIX,
6793	DWIM on WIN32 (broken 10-18) "lisp.exe/" -> "path/lisp.exe"
6794	* pathname.d (PROBE-PATHNAME): strip last "/" in a loop
6795	(classify_namestring) [UNIX]: handle ENOTDIR
6796	like ERROR_INVALID_NAME is handled on WIN32
6797
67982010-10-20  Sam Steingold  <sds@gnu.org>
6799
6800	* modules/syscalls/calls.c (check_rusage): add
6801	(USAGE): accept `what' argument and return a single value
6802
68032010-10-18  Sam Steingold  <sds@gnu.org>
6804
6805	fix bug#572: (loop for x do (print x)) should barf
6806	* loop.lisp (expand-loop): fail when the FOR clause lacks subclauses
6807
68082010-10-18  Arseny Slobodyuk  <ampy@users.sourceforge.net>
6809
6810	* pathname.d (FIND_DATA_FWD) [WIN32_NATIVE]: fixed condition
6811
68122010-10-18  Julian Squires  <julian@cipht.net>
6813            Arseny Slobodyuk  <ampy@users.sourceforge.net>
6814
6815        fix bug#570: probe-pathname on root directories on WIN32
6816	* pathname.d (PROBE-PATHNAME) [!UNIX]: do not remove trailing slash
6817	(classify_namestring) [WIN32_NATIVE]: use GetFileAttributesEx instead
6818	of FindFirstFile to retrieve size and modification date/time,
6819	because GetFileAttributesEx unlike FFF can handle root directories
6820
68212010-10-17  Vladimir Tzankov  <vtzankov@gmail.com>
6822
6823	fix bug#571: SIGSEGV on large (unsigned-byte 8) arrays
6824	* spvw_typealloc.d (allocate_bit_vector): use uintM;
6825	uintL overflows on 64 bit builds for large vectors
6826	* spvw_objsize.d (size_sbvector): use uintM instead of uintL
6827	* spvw_garcol.d (fill_varobject_heap_holes) [MULTITHREAD]:
6828	holes may be larger than 2^32 bytes (uintL); use uintM
6829
68302010-10-15  Sam Steingold  <sds@gnu.org>
6831
6832	* pathname.d (PROBE-PATHNAME): fix open stream handling
6833
68342010-10-12  Sam Steingold  <sds@gnu.org>
6835
6836	* modules/editor: resurrect editor.lisp from 1998; update and fix
6837	the most glaring problems; maintainer is wanted!
6838
68392010-10-12  Sam Steingold  <sds@gnu.org>
6840
6841	* makemake.in (GLLIB_MODULE_HEADERS): some headers, e.g.,
6842	sockets.h, are only needed by modules/*/gllib, not boot
6843
68442010-10-12  Sam Steingold  <sds@gnu.org>
6845
6846	* modules/regexp/gllib/stddef.in.h, modules/regexp/gllib/stdlib.in.h:
6847	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/stdlib_h.m4:
6848	* modules/syscalls/gllib/stddef.in.h, modules/syscalls/gllib/strerror.c:
6849	* modules/syscalls/gllib/strings.in.h:
6850	* modules/syscalls/gllib/sys_socket.in.h:
6851	* modules/syscalls/gllib/sys_utsname.in.h:
6852	* modules/syscalls/gllib/time.in.h:
6853	* modules/syscalls/gllib/unistd.in.h, modules/wildcard/glm4/fnmatch.m4:
6854	* gllib/errno.in.h, gllib/langinfo.in.h, gllib/malloca.c:
6855	* gllib/stddef.in.h, gllib/stdint.in.h, gllib/stdlib.in.h:
6856	* gllib/string.in.h, gllib/sys_socket.in.h, gllib/sys_time.in.h:
6857	* gllib/sys_wait.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
6858	* gllib/wctype.in.h, glm4/errno_h.m4, glm4/include_next.m4:
6859	* glm4/stdlib_h.m4, glm4/threadlib.m4: update from gnulib to fix
6860	error: redefinition of `struct random_data'
6861	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23606>
6862	<https://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00264.html>
6863
68642010-10-12  Sam Steingold  <sds@gnu.org>
6865
6866	* makemake.in (module_configure_flags): fix according to
6867	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13381>
6868	<https://lists.gnu.org/archive/html/autoconf/2010-10/msg00007.html>
6869
68702010-10-12  Sam Steingold  <sds@gnu.org>
6871
6872	* gmalloc.c: move from src/malloc/ to src/
6873	* malloc/getpagesize.c: remove obsolete file
6874	* makemake.in: update
6875
68762010-10-11  Sam Steingold  <sds@gnu.org>
6877
6878	* makemake.in: make charstrg.o depend on $(GLLIB_A) instead of
6879	gllib because the latter is _always_ rebuilt
6880
68812010-10-08  Sam Steingold  <sds@gnu.org>
6882
6883	* genclisph.d (check_typecodes): run in the generated
6884	clisp-test-lispbibl instead of genclisph so that the check is
6885	always enabled
6886
68872010-10-05  Sam Steingold  <sds@gnu.org>
6888
6889	* makemake.in (full): print gnulib replacements only when -verbose
6890	and do not fail the build when none is found
6891
68922010-10-04  Sam Steingold  <sds@gnu.org>
6893
6894	* modules/syscalls/calls.c (POSIX:STRING-TIME): when calling strptime,
6895	init tm fields to reasonable values because strptime does not set
6896	fields which are not specified by datum
6897
68982010-10-04  Vladimir Tzankov  <vtzankov@gmail.com>
6899
6900	* zthread.d (default_thread_name): returns name for functionp object
6901	(MAKE-THREAD): use it
6902
69032010-10-04  Sam Steingold  <sds@gnu.org>
6904
6905	* makemake.in (full): show which system supplied functionality is
6906	replaced by gnulib
6907
69082010-10-03  Vladimir Tzankov  <vtzankov@gmail.com>
6909
6910	fix bug#568: show-stack segfaults with MT
6911	* lispbibl.d (THREAD_LISP_STACK_START): remove
6912	* spvw.d (delete_thread): calculate thread stack address and free it
6913	* debug.d (show_stack): do not use cmpSTACKop for testing end of stack.
6914	FRAME == STACK_start should be correct end condition in all cases
6915	* zthread.d (thread_stub): no back trace for new thread
6916
69172010-10-02  Sam Steingold  <sds@gnu.org>
6918
6919	* makemake.in: make charstrg.o depend on gllib
6920
69212010-09-29  Sam Steingold  <sds@gnu.org>
6922
6923	do not use gnulib module getdate which should have been called get_date
6924	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23310>
6925	<https://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00500.html>
6926	* modules/syscalls/calls.c (xalloc_die): remove
6927	(GETDATE): condition on HAVE_GETDATE & HAVE_DECL_GETDATE_ERR
6928	* modules/syscalls/configure.in: do not call AC_PROG_YACC;
6929	check for getdate and getdate_err
6930	* modules/syscalls/gllib/c-ctype.c, modules/syscalls/gllib/c-ctype.h:
6931	* modules/syscalls/gllib/getdate.h, modules/syscalls/gllib/getdate.y:
6932	* modules/syscalls/gllib/gettext.h, modules/syscalls/gllib/gettime.c:
6933	* modules/syscalls/gllib/timespec.h, modules/syscalls/gllib/xalloc.h:
6934	* modules/syscalls/gllib/xmalloc.c, modules/syscalls/glm4/bison.m4:
6935	* modules/syscalls/glm4/clock_time.m4, modules/syscalls/glm4/error.m4:
6936	* modules/syscalls/glm4/getdate.m4, modules/syscalls/glm4/gettime.m4:
6937	* modules/syscalls/glm4/inline.m4, modules/syscalls/glm4/timespec.m4:
6938	* modules/syscalls/glm4/xalloc.m4: remove
6939
69402010-09-29  Sam Steingold  <sds@gnu.org>
6941
6942	* configure.in, modules/syscalls/configure.in:
6943	do not call macros which are already called by gl_INIT
6944
69452010-09-29  Sam Steingold  <sds@gnu.org>
6946
6947	* modules/syscalls/calls.c (module__syscalls__init_function_2): if
6948	DATEMSK is not set, point it to the included file ...
6949	* modules/syscalls/datemsk: add (based on
6950	http://www.opengroup.org/onlinepubs/009695399/functions/getdate.html)
6951	* modules/syscalls/Makefile.in (GENERATED): add datemsk
6952	(datemsk): new target
6953
69542010-09-29  Sam Steingold  <sds@gnu.org>
6955
6956	* makemake.in (lisp${SHREXT}, lisp${LEXE}): put ${GLLIB_A} before
6957	$(OBJECTS) so that gllib is rebuilt before compiling charstrg.d
6958
69592010-09-28  Sam Steingold  <sds@gnu.org>
6960
6961	implement POSIX:GETDATE using gnulib
6962	* Makefile.devel (gnulib-imported): import getdate into syscalls
6963	(build-aux-update): get ylwrap from automake
6964	* modules/syscalls/calls.c (tm_to_lisp): extract from STRING-TIME
6965	(POSIX:GETDATE, xalloc_die): implement
6966	* modules/syscalls/posix.lisp: export GETDATE
6967	* modules/syscalls/configure.in: call gl_GETDATE & AC_PROG_YACC
6968	* modules/syscalls/gllib/c-ctype.c, modules/syscalls/gllib/c-ctype.h:
6969	* modules/syscalls/gllib/getdate.h, modules/syscalls/gllib/getdate.y:
6970	* modules/syscalls/gllib/gettext.h, modules/syscalls/gllib/gettime.c:
6971	* modules/syscalls/gllib/timespec.h, modules/syscalls/gllib/xalloc.h:
6972	* modules/syscalls/gllib/xmalloc.c, modules/syscalls/glm4/bison.m4:
6973	* modules/syscalls/glm4/clock_time.m4, modules/syscalls/glm4/error.m4:
6974	* modules/syscalls/glm4/getdate.m4, modules/syscalls/glm4/gettime.m4:
6975	* modules/syscalls/glm4/inline.m4, modules/syscalls/glm4/timespec.m4:
6976	* modules/syscalls/glm4/xalloc.m4: add
6977
69782010-09-28  Sam Steingold  <sds@gnu.org>
6979
6980	fix bug#566: pass the top-level configure arguments --build= &
6981	--host= to the module configures
6982	* makemake.in (module_configure_flags):
6983	strip out -srcdir* & -cache-file*
6984
69852010-09-28  Sam Steingold  <sds@gnu.org>
6986
6987	* modules/rawsock/rawsock.c (module__rawsock__init_function_2):
6988	use _GL_UNUSED instead of the ad hoc `unused'
6989
69902010-09-28  Sam Steingold  <sds@gnu.org>
6991
6992	* Makefile.devel ($(MAKEMAKE_TMP)): substitute
6993	--disable-option-checking for @module_configure_flags@
6994	* configure.in: substitute $ac_configure_args
6995	for @module_configure_flags
6996	* makemake.in (module_configure_flags): use @module_configure_flags@
6997	instead of hard-wired --disable-option-checking
6998
69992010-09-28  Sam Steingold  <sds@gnu.org>
7000
7001	get strerror from gnulib for POSIX:STRERROR
7002	* Makefile.devel (GNULIB_CORE): explicitly request already present errno
7003	(gnulib-imported): request strerror for syscalls
7004	* modules/syscalls/configure.in:
7005	call gl_HEADER_ERRNO_H instead of checking for <errno.h>;
7006	call gl_FUNC_STRERROR instead of checking for strerror
7007	* modules/syscalls/calls.c: include <errno.h> unconditionally
7008	(STRERROR): always define (errno.h & strerror ensured by gnulib)
7009	* modules/syscalls/gllib/errno.in.h, modules/syscalls/glm4/errno_h.m4:
7010	remove (already present in src/)
7011	* modules/syscalls/gllib/intprops.h, modules/syscalls/gllib/strerror.c:
7012	* modules/syscalls/glm4/strerror.m4: add
7013
70142010-09-28  Sam Steingold  <sds@gnu.org>
7015
7016	* configure.in: simplify makemake generation, substitute SHELL
7017	* makemake.in: use @SHELL@
7018	* Makefile.devel ($(MAKEMAKE_TMP)): substitute @SHELL@
7019	Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7020	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13369>
7021	<https://lists.gnu.org/archive/html/autoconf/2010-09/msg00090.html>
7022
70232010-09-28  Sam Steingold  <sds@gnu.org>
7024
7025	* stream.d (resize_screen): call redisplay()
7026
70272010-09-27  Sam Steingold  <sds@gnu.org>
7028
7029	rely on gnulib for setenv portability
7030	* lispbibl.d (clisp_setenv): remove
7031	* misc.d (push_envar): return no values
7032	(GETENV): remove dead code
7033	(cat_env_var, setenv_via_environ, clisp_setenv): remove
7034	(SETENV): use setenv and unsetenv instead of clisp_setenv
7035	* spvw_language.d (init_language): ditto
7036	* Makefile.devel (GNULIB_CORE): add setenv & unsetenv
7037	* gllib/malloca.c, gllib/malloca.h, gllib/malloca.valgrind:
7038	* gllib/setenv.c, gllib/stdlib.in.h, gllib/unsetenv.c:
7039	* glm4/eealloc.m4, glm4/environ.m4, glm4/malloca.m4:
7040	* glm4/setenv.m4, glm4/stdlib_h.m4: add
7041
70422010-09-27  Sam Steingold  <sds@gnu.org>
7043
7044	* Makefile.devel (GNULIB_CORE): add sys_wait
7045	* configure.in: call gl_SYS_WAIT_H
7046	* pathname.d (EXECUTE): assume that WEXITSTATUS et al are present
7047	* gllib/sys_wait.in.h, glm4/sys_wait_h.m4: add
7048
70492010-09-27  Sam Steingold  <sds@gnu.org>
7050
7051	SIGWINCH updates the SCREEN's idea of window size
7052	* lispbibl.d (resize_screen) [SCREEN]: declare
7053	* spvw_sigwinch.d (update_linelength) [SCREEN]: call resize_screen()
7054	* stream.d (resize_screen) [SCREEN]: implement
7055	Reported by <edgar-rft@web.de>
7056
70572010-09-21  Vladimir Tzankov  <vtzankov@gmail.com>
7058
7059	* pathname.d (unblock_all_signals): unblocks all blocked signals.
7060	used in child processes to clear parent's signal mask
7061	(EXT::LAUNCH, EXT:EXECUTE): use it
7062
70632010-09-21  Sam Steingold  <sds@gnu.org>
7064
7065	* modules/syscalls/calls.c (POSIX::CHROOT): add
7066	* modules/syscalls/posix.lisp (chroot) [unix]: export
7067	* modules/syscalls/configure.in: check for chroot
7068
70692010-09-20  Sam Steingold  <sds@gnu.org>
7070
7071	* init.lisp (load): if filename is a non-file stream,
7072	do not call TRUENAME on it
7073
70742010-09-17  Sam Steingold  <sds@gnu.org>
7075
7076	* m4/proto.m4 (CL_PROTO): remove $ac_t (obsolete for 10 years!)
7077	<http://article.gmane.org/gmane.comp.sysutils.autoconf.general/13335>
7078	<https://lists.gnu.org/archive/html/autoconf/2010-09/msg00056.html>
7079
70802010-09-17  Sam Steingold  <sds@gnu.org>
7081
7082	* makemake.in (LIBS): add LIBSOCKET after GLLIB_A so that
7083	gethostname is found in the right place on woe32
7084	(SUBDIRS): depend on config.status
7085
70862010-09-17  Vladimir Tzankov  <vtzankov@gmail.com>
7087
7088	* modules/syscalls/calls.c (nftw_fn): do not call lisp code while
7089	current thread is marked to be in blocking system call
7090
70912010-09-15  Sam Steingold  <sds@gnu.org>
7092
7093	* modules/rawsock/rawsock.c (rawsock_error): use ecode instead of
7094	errno which can be reset by strerror
7095
70962010-09-15  Sam Steingold  <sds@gnu.org>
7097
7098	* .gdbinit (run_mod_test): accept "linkset" argument
7099
71002010-09-15  Sam Steingold  <sds@gnu.org>
7101
7102	* utils/modprep.lisp (checker): remove obsolete reverse
7103	* lispbibl.d (c_lisp_map_t): remove obsolete use_default_function_p
7104	* misc.d (map_lisp_to_c, map_c_to_lisp): do not use it
7105	* modules/syscalls/calls.c: update DEFCHECKER invocations
7106
71072010-09-15  Sam Steingold  <sds@gnu.org>
7108
7109	* win32.d (gethostname): #undef after including <unistd.h> and
7110	before including winsock headers, as per
7111	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/23076>
7112	<https://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00265.html>
7113
71142010-09-15  Sam Steingold  <sds@gnu.org>
7115
7116	* utils/gen-uninames: remove, superseded by
7117	src/gllib/uniname/gen-uninames.lisp
7118
71192010-09-15  Sam Steingold  <sds@gnu.org>
7120
7121	update gnulib
7122	* modules/regexp/gllib/regex.h, modules/regexp/glm4/regex.m4:
7123	* gllib/langinfo.in.h, gllib/nl_langinfo.c, gllib/string.in.h:
7124	* gllib/wctype.in.h, gllib/uniwidth/width.c, glm4/langinfo_h.m4:
7125	* glm4/lib-ld.m4, glm4/memchr.m4, glm4/progtest.m4:
7126	* glm4/sockets.m4, glm4/wctype_h.m4: update
7127	* glm4/socketlib.m4: add
7128
71292010-09-15  Sam Steingold  <sds@gnu.org>
7130
7131	* makemake.in (XCC_CREATESHARED): use soname & output_objdir
7132	separately because of cygwin
7133
71342010-09-14  Sam Steingold  <sds@gnu.org>
7135
7136	* init.lisp (load): return the truename of the loaded file
7137
71382010-09-14  Sam Steingold  <sds@gnu.org>
7139
7140	interface to the POSIX function nftw()
7141	* modules/syscalls/calls.c (FILE-TREE-WALK): add
7142	* modules/syscalls/posix.lisp (file-tree-walk) [unix]: export
7143	* modules/syscalls/configure.in: check for nftw and ftw.h
7144
71452010-09-14  Sam Steingold  <sds@gnu.org>
7146
7147	* utils/modprep.lisp (parse-signature): accept :SECLASS and pass
7148	it to MAKE-SIGNATURE
7149	(defun-p): pass SEC to PARSE-SIGNATURE instead of ignoring it
7150
71512010-09-13  Sam Steingold  <sds@gnu.org>
7152
7153	bundle ASDF2 as a module
7154	* Makefile.devel (update-asdf): new .PHONY target
7155	(pre-release): depend on it
7156	* modules/asdf: add (based on asdf 2.008)
7157	* makemake.in, unix/INSTALL: mention asdf in the docs
7158
71592010-09-14  Sam Steingold  <sds@gnu.org>
7160
7161	* modules/clx/mit-clx/Makefile (clisp-module): depend on link.sh
7162	which is required by clisp-link.sh
7163	* modules/clx/mit-clx/link.sh (NEW_MODULES): add "clx"
7164	(NEW_FILES): one loop instead of two
7165
71662010-09-14  Sam Steingold  <sds@gnu.org>
7167
7168	* clisp-link.in: support module which have no C component:
7169	build dll only if NEW_LIBS is non-empty
7170
71712010-09-02  Sam Steingold  <sds@gnu.org>
7172
7173	* compiler.lisp (ignore-check): warn about assigned but never read vars
7174
71752010-09-01  Sam Steingold  <sds@gnu.org>
7176
7177	use gnulib sockets.m4 and socklen.m4 instead of the clisp ones
7178	* Makefile.devel (GNULIB_CORE): add socklen, sockets, close-hook
7179	* modules/rawsock/rawsock.c, stream.d, socket.d, win32.d:
7180	use socklen_t instead of CLISP_SOCKLEN_T
7181	* configure.in: use gl_SOCKETS instead of CL_SOCKET
7182	and gl_TYPE_SOCKLEN_T instead of CL_SOCKLEN_T
7183	* makemake.in: use LIBSOCKET instead of assuming everything is in LIBS
7184
71852010-09-01  Sam Steingold  <sds@gnu.org>
7186
7187	use gnulib/host-cpu-c-abi
7188	* Makefile.devel (GNULIB_CORE): add host-cpu-c-abi
7189	* configure.in: use gl_HOST_CPU_C_ABI instead of CL_CANONICAL_HOST_CPU
7190	* makemake.in (host_cpu_c_abi): replaces host_cpu_abi
7191	* m4/general.m4 (CL_CACHE_EGREP_CPP, CL_SET_CPU_ABI)
7192	(CL_CANONICAL_HOST_CPU): remove (superseded by gnulib/host-cpu-c-abi)
7193
71942010-09-01  Sam Steingold  <sds@gnu.org>
7195
7196	update gnulib
7197	* modules/regexp/gllib/malloc.c, modules/regexp/gllib/stdlib.in.h:
7198	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/btowc.m4:
7199	* modules/regexp/glm4/codeset.m4, modules/regexp/glm4/gnulib-comp.m4:
7200	* modules/regexp/glm4/malloc.m4, modules/regexp/glm4/mbrtowc.m4:
7201	* modules/regexp/glm4/ssize_t.m4, modules/regexp/glm4/stdlib_h.m4:
7202	* modules/regexp/glm4/wchar_t.m4, modules/regexp/glm4/wcrtomb.m4:
7203	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/mbrlen.m4:
7204	* modules/syscalls/glm4/wchar_t.m4:
7205	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
7206	* glm4/codeset.m4, glm4/fcntl-o.m4, glm4/gettext.m4:
7207	* glm4/iconv.m4, glm4/include_next.m4, glm4/intdiv0.m4:
7208	* glm4/intl.m4, glm4/intlmacosx.m4, glm4/intmax.m4:
7209	* glm4/inttypes-pri.m4, glm4/inttypes_h.m4, glm4/lcmessage.m4:
7210	* glm4/lib-link.m4, glm4/lock.m4, glm4/mbrtowc.m4:
7211	* glm4/mbsrtowcs.m4, glm4/printf-posix.m4, glm4/size_max.m4:
7212	* glm4/stdbool.m4, glm4/stdint_h.m4, glm4/threadlib.m4:
7213	* glm4/visibility.m4, glm4/wchar_t.m4, glm4/wint_t.m4: update
7214	* modules/syscalls/glm4/socklen.m4: add
7215
72162010-08-31  Sam Steingold  <sds@gnu.org>
7217
7218	* init.lisp (open-for-load): use MUFFLE-CERRORS to ignore encoding
7219	errors in DIRECTORY to avoid the DOS attack of CLISP not starting
7220	when HOME contains a file incompatible with *PATHNAME-ENCODING*.
7221	This finishes the work started on 2008-07-16.
7222
72232010-08-31  Sam Steingold  <sds@gnu.org>
7224
7225	* compiler.lisp (c-EVAL-WHEN): use AND instead of (IF ... ... NIL)
7226
72272010-08-18  Sam Steingold  <sds@gnu.org>
7228
7229	* defs1.lisp (*module-provider-functions*): add
7230	(simple-require): extract from REQUIRE
7231	(require): use the above, now one can hook asdf into clisp
7232
72332010-08-18  Sam Steingold  <sds@gnu.org>
7234
7235	* clisp.spec: remove obsolete file, it has not been used for many
7236	years, most linux distributions now offer clisp themselves
7237
72382010-08-17  Sam Steingold  <sds@gnu.org>
7239
7240	* clisp-link.in (prepare_dynamic_module): better comment placement
7241	in reqfile; do not call set_dynamic_module_location; append the
7242	names of the new files to DYNDIR_FILES
7243	(add, install): call set_dynamic_module_location outside of the loop
7244	(install): handle DESTDIR correctly, install DYNDIR_FILES there
7245	* makemake.in (install-modules) [with_dynamic_modules]: new target,
7246	allows "a la carte" module installation
7247	(install-bin) [with_dynamic_modules]: depend on install-modules
7248
72492010-08-16  Sam Steingold  <sds@gnu.org>
7250
7251	fix 2010-07-09 ${DESTDIR} patch which broke "make install DESTDIR=...":
7252	only respect DESTDIR in "install", not in "add" mode
7253	* clisp-link.in (try_set_LIBDIR): extract from ...
7254	(set_dynamic_module_location): use try_set_LIBDIR;
7255	accept DESTDIR as an argument
7256	(prepare_dynamic_module): accept DESTDIR as an argument
7257	(add): pass "" as the DESTDIR to prepare_dynamic_module
7258	(install): pass DESTDIR as DESTDIR to prepare_dynamic_module
7259
72602010-08-16  Sam Steingold  <sds@gnu.org>
7261
7262	* clisp-link.in: revert the 2010-07-09 ${DESTDIR} patch because it
7263	breaks "make install DESTDIR=..."
7264
72652010-08-13  Sam Steingold  <sds@gnu.org>
7266
7267	* type.lisp (typep-number-test, c-typep-number): reuse error string
7268	* init.lisp: use reader (#1#) instead of let for the list of
7269	exported MOP symbols
7270
72712010-08-09  Sam Steingold  <sds@gnu.org>
7272
7273	* condition.lisp (clos-style-warning, clos-novice-warning)
7274	(class-obsolescence-warning): add
7275	(gf-already-called-warning, gf-replacing-method-warning): inherit
7276	from CLOS-STYLE-WARNING, not CLOS-WARNING
7277	* init.lisp, clos-package.lisp (clos-style-warning)
7278	(clos-novice-warning, class-obsolescence-warning): export
7279	* clos-class3.lisp (defclass):
7280	the novice warning is now of type CLOS-NOVICE-WARNING;
7281	drop the weird non-standard :DEFAULT-INITARGS cleanup and warning
7282	(make-instances-obsolete-<semi-standard-class>-nonrecursive):
7283	obsolescence warnings are now of type CLASS-OBSOLESCENCE-WARNING
7284	* clos-genfun2b.lisp (std-add-method): do not use
7285	WARN-IF-GF-ALREADY-CALLED, mention the method in the warnings message
7286	(std-remove-method): do not use GF-ALREADY-CALLED-WARNING,
7287	one warning instead of two
7288	(gf-already-called-warning, warn-if-gf-already-called): remove
7289	* clos-genfun3.lisp (ensure-generic-function-using-class-<t>):
7290	do not call WARN-IF-GF-ALREADY-CALLED
7291
72922010-08-09  Sam Steingold  <sds@gnu.org>
7293
7294	* compiler.lisp (c-DEFUN): when redefining a functions with the
7295	same signature, issue a STYLE-WARNING, not a WARNING
7296
72972010-08-09  Sam Steingold  <sds@gnu.org>
7298
7299	* compiler.lisp (c-source-location): fix the messages,
7300	messed-up by the 2009-10-28 patch
7301
73022010-08-06  Sam Steingold  <sds@gnu.org>
7303
7304	fix bug#561: documentation strings broken for structs
7305	* clos-class3.lisp (shared-initialize-<structure-class>): do not
7306	ignore the documentation argument, set the documentation slot instead
7307	(define-structure-class): accept documentation (ABI change)
7308	* constobj.d (version): bump because of that!
7309	* defstruct.lisp (defstruct): pass docstring to define-structure-class
7310	* documentation.lisp ((setf documentation)@class&structure):
7311	go through (setf documentation), not sys::%set-documentation
7312
73132010-08-06  Arseny Slobodyuk  <ampy@users.sourceforge.net>
7314
7315	* makemake.in (cygwin_finish): use sophisticated grep string to
7316	make cygwin dependence check more reliable.
7317
73182010-08-05  Sam Steingold  <sds@gnu.org>
7319
7320	* spvw.d (print_banner): flush *standard-output*
7321
73222010-08-05  Sam Steingold  <sds@gnu.org>
7323
7324	* genclisph.d (check_typecodes) [TYPECODES]:
7325	check that the type tests are correct (normally disabled)
7326
73272010-08-05  Arseny Slobodyuk  <ampy@users.sourceforge.net>
7328
7329	Fix for a bug#560 introduced by 2010-04-13 patch:
7330	short (DOS) filenames were not handled properly.
7331	* w32shell.c (real_path): care of the zero byte at the end of filename.
7332
73332010-08-04  Sam Steingold  <sds@gnu.org>
7334
7335	* array.d (elt_reverse): use SIMPLE_REVERSE for strings too
7336
73372010-08-02  Bruno Haible  <bruno@clisp.org>
7338
7339	* realelem.d (ffloat_uint32_equal, dfloat_uint32_equal): New functions.
7340
73412010-08-02  Sam Steingold  <sds@gnu.org>
7342
7343	* predtype.d (elt_compare_t): add a typedef
7344
73452010-08-01  Bruno Haible  <bruno@clisp.org>
7346
7347	* realelem.d (ffloat_dfloat_equal) [FAST_FLOAT&FAST_DOUBLE]: Optimize.
7348
73492010-08-01  Bruno Haible  <bruno@clisp.org>
7350
7351	New functions for comparing an ffloat or dfloat with a number.
7352	* ffloat.d (ffloat_decode): New macro, extracted from FF_decode.
7353	(FF_decode): Use it.
7354	* dfloat.d (dfloat_decode): New macro, extracted from DF_decode.
7355	(DF_decode): Use it.
7356	(dfloat_decode2): New macro, extracted from DF_decode2.
7357	(DF_decode2): Use it.
7358	* realelem.d (ffloat_R_equal, dfloat_R_equal, ffloat_dfloat_equal): New
7359	functions.
7360	* compelem.d (ffloat_N_equal, dfloat_N_equal): New functions.
7361
73622010-08-01  Bruno Haible  <bruno@clisp.org>
7363
7364	* lispbibl.d (dfloat, dfloatjanus): Make definition in clisp.h
7365	consistent with the one in lispbibl.d.
7366
73672010-08-01  Bruno Haible  <bruno@clisp.org>
7368
7369	* aridecl.d (FF_exp_low, FF_exp_mid, FF_exp_high, DF_exp_low)
7370	(DF_exp_mid, DF_exp_high): Hardcode values from IEEE 754.
7371	* flo_konv.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
7372	(DF_to_c_double): Simplify accordingly.
7373
73742010-07-29  Sam Steingold  <sds@gnu.org>
7375
7376	* foreign.d (convert_to_foreign): minor code simplification
7377	* foreign1.lisp (convert-from-foreign): fix a typo
7378	(convert-to-foreign): inline float conversion
7379
73802010-07-28  Sam Steingold  <sds@gnu.org>
7381
7382	* foreign.d (convert_to_foreign): when fvd is a FLOAT type and obj
7383	is not of the right type, call coerce_float so that one can use
7384	any REAL to initialize a FLOAT (helps GSLL a LOT!)
7385
73862010-07-27  Sam Steingold  <sds@gnu.org>
7387
7388	* makemake.in (manual_print): move `if' outside of the `for' loop
7389	($IMPNOTES_FILES, $DOC, $TOP_DOC): use link_dep
7390
73912010-07-23  Sam Steingold  <sds@gnu.org>
7392
7393	* makemake.in (LIB_TYPE): remove obsolete unused code
7394
73952010-07-21  Sam Steingold  <sds@gnu.org>
7396
7397	* m4/general.m4 (CL_CANONICAL_HOST_CPU): sync with ffcall to use
7398	CL_SET_CPU_ABI, CL_CACHE_EGREP_CPP, and substitute host_cpu_abi
7399	* makemake.in (cpu): use @host_cpu_abi@
7400
74012010-07-20  Sam Steingold  <sds@gnu.org>
7402
7403	* stream.d (IS_EINVAL_EXTRA) [*bsd]: when ENOTSUP is not defined,
7404	use EOPNOTSUPP (e.g., on UNIX_OPENBSD)
7405
74062010-07-16  Sam Steingold  <sds@gnu.org>
7407
7408	* version.sh: 4.49+ (2010-07-17)
7409
74102010-07-13  Sam Steingold  <sds@gnu.org>
7411
7412	* makemake.in (cpu) [mips]: by default gcc runs in 32-bit mode,
7413	so use the same heuristic as sparc: when "uname -m" is mips64,
7414	set cpu to mips64 only if `gcc -print-multi-os-directory` ends in 64
7415
74162010-07-12  Sam Steingold  <sds@gnu.org>
7417
7418	* modules/libsvm/libsvm.lisp (save-problem): use WRITE instead of
7419	FORMAT to avoid creating intermediate LONG-FLOATs
7420
74212010-07-12  Sam Steingold  <sds@gnu.org>
7422
7423	* m4/ffcall.m4 (CL_FFCALL): use `test' instead of `[]'
7424	Reported by Arseny Slobodyuk <ampy@ich.dvo.ru>
7425
74262010-07-09  Vladimir Tzankov  <vtzankov@gmail.com>
7427
7428	* stream.d (QueryInformationFile_t) [WIN32]: fix calling convention.
7429	NT API is uses __stdcall not __cdecl
7430	(handle_pathname): pass correct buffer size to NtQueryInformationFile
7431
74322010-07-09  Aleksej Saushev  <asau@inbox.ru>
7433
7434	* clisp-link.in: use ${DESTDIR} to support staged module installation
7435
74362010-07-09  Sam Steingold  <sds@gnu.org>
7437
7438	* makemake.in (XCC_PICFLAG, XCC_CREATESHARED): set using libtool,
7439	like we already do with EXPORT_DYNAMIC_FLAG_SPEC
7440
74412010-07-09  Sam Steingold  <sds@gnu.org>
7442
7443	* modules/pari/pari.lisp (pari-call-out, pari-cgetg): no need
7444	for (:LANGUAGE :STDC) since we already use DEFAULT-FOREIGN-LANGUAGE
7445	(extract0, extract1, pari-mantissa, pari-set-component)
7446	(pari-make-object): use MEMORY-AS instead of WITH-C-VAR/DEREF+CAST
7447	for performance (10%) as per Joerg's suggestions
7448
74492010-07-08  Sam Steingold  <sds@gnu.org>
7450
7451	* init.lisp (sys::check-redefinition): signal STYLE-WARNING
7452	instead of WARNING
7453	(warn-of-type): add a predefun
7454
74552010-07-08  Vladimir Tzankov  <vtzankov@gmail.com>
7456
7457	* spvw.d (main_actions): move all MT specific stuff to mt_main_actions
7458	(mt_main_actions): implement main thread killing here
7459
74602010-07-07  Sam Steingold  <sds@gnu.org>
7461
7462	* Makefile.devel (upload-sf): use scp instead of rsync
7463
74642010-07-07  Sam Steingold  <sds@gnu.org>
7465
7466	* version.sh: 2.49 (2010-07-07)
7467
74682010-07-07  Sam Steingold  <sds@gnu.org>
7469
7470	Fix MSVC support
7471	* Makefile.devel (win32msvc/makefile.msvc6, win32msvc/makefile.msvc7):
7472	pass --without-dynamic-modules to makemake
7473	($(MAKEMAKE_TMP)): substitute CLISP_DECOLONIZE
7474	* makemake.in: check for ./libtool before invoking it
7475
74762010-07-07  Vladimir Tzankov  <vtzankov@gmail.com>
7477
7478	* zthread.d (thread_stub): fix double call to set_current_thread.
7479	causes problems	with USE_CUSTOM_TLS = 2
7480	* spvw.d (main) [USE_CUSTOM_TLS = 2]: remove the thread specific value
7481	for signal handling (main) thread
7482
74832010-07-05  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
7484
7485	* makemake.in (CLISP_LIBDIR): use "$(@CLISP_DECOLONIZE@)"
7486
74872010-07-04  Sam Steingold  <sds@gnu.org>
7488
7489	Fix unbuffered output pipe stream initialization (bug#556).
7490	* stream.d (make_pipe): init output unbuffered streams appropriately
7491
74922010-07-03  Bruno Haible  <bruno@clisp.org>
7493
7494	Support for MacOS X in 64-bit mode.
7495	* m4/mmap.m4 (CL_MMAP): On MacOS X in 64-bit mode, use a base address,
7496	so that the test succeeds.
7497	* lispbibl.d (HEAPCODES): Define by default on MacOS X in 64-bit mode.
7498	* spvw.d (init_memory): Hardcode bounds for mmap on MacOS X in
7499	64-bit mode.
7500	* makemake.in (cpu): On MacOS X in 64-bit mode, set it to x86_64.
7501
75022010-07-02  Sam Steingold  <sds@gnu.org>
7503
7504	* init.lisp (load): add RETRY restart to SKIP and STOP
7505	* condition.lisp (eval-loaded-form): ditto
7506
75072010-06-27  Sam Steingold  <sds@gnu.org>
7508
7509	Support libsvm 2.91
7510	* modules/libsvm/configure.in: check for svm_set_print_string_function;
7511	drop pkg-config support
7512	* modules/libsvm/libsvm.lisp: call svm_set_print_string_function
7513	when it is available
7514
75152010-06-25  Sam Steingold  <sds@gnu.org>
7516
7517	* spvw.d (quit): FINISH-OUTPUT on standard streams before saying "Bye"
7518
75192010-06-24  Sam Steingold  <sds@gnu.org>
7520
7521	* stream.d (IS_EINVAL_EXTRA): treat all *BSD flavors like DARWIN
7522
75232010-06-24  Sam Steingold  <sds@gnu.org>
7524
7525	* makemake.in (anymodule): use CLISP_LIBDIR instead of HEREP
7526	because it is decolonized to prevent "multiple target patterns"
7527
75282010-06-24  Sam Steingold  <sds@gnu.org>
7529
7530	fix bug#555: (SETF STREAM-EXTERNAL-FORMAT) fails on TWO-WAY-STREAM
7531	* stream.d (SET-STREAM-EXTERNAL-FORMAT): handle TWO-WAY-STREAM and
7532	ECHO-STREAM together with TWO-WAY-SOCKET; use stream_reset_eltype
7533	to reset pseudofunctions in case line terminator changed
7534
75352010-06-24  Sam Steingold  <sds@gnu.org>
7536
7537	* m4/termcap.m4 (CL_TERMCAP): fix a $LIBTERMCAP test
7538	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
7539
75402010-06-24  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
7541
7542	* m4/clisp.m4 (CL_DECOLONIZE): fix a typo in the mingw regexp
7543
75442010-06-18  Barry Fishman  <barry_fishman@acm.org>
7545	Sam Steingold  <sds@gnu.org>
7546
7547	* clhs.lisp (*browsers*): remove firefox-window & firefox-tab,
7548	add chromium, conkeror, opera; use emacsclient for emacs
7549	* cfgunix.lisp (*browser*): recommend firefox
7550
75512010-06-18  Sam Steingold  <sds@gnu.org>
7552
7553	* modules/i18n/gettext.c (get_locale_info) [WIN32_NATIVE]:
7554	accept errorp to avoid errors when asked for the full list
7555	by (I18N:LANGUAGE-INFORMATION)
7556	(thousands_sep_to_STACK, locale_string_to_STACK)
7557	(locale_int_to_STACK, locale_bool_to_STACK):
7558	pass 1 to get_locale_info()
7559	(get_lang_info, res_to_obj): merge
7560	(I18N:LANGUAGE-INFORMATION): update
7561
75622010-06-18  Sam Steingold  <sds@gnu.org>
7563
7564	fix the 2010-04-15 patch: rl_deprep_term_function is not always present
7565	* spvw.d (fini_lowest_level): call rl_deprep_term_function only if
7566	it has been defined in <readline/readline.h>; include it then
7567	* m4/readline.m4 (CL_READLINE): check for rl_deprep_term_function
7568	declaration
7569	Reported by Yaroslav Kavenchuk <kavenchuk@gmail.com>
7570
75712010-06-18  Sam Steingold  <sds@gnu.org>
7572
7573	* spvw.d (init_memory) [DEBUG_SPVW]: fflush(stderr) so that debug
7574	output comes before the first lisp output
7575
75762010-06-17  Sam Steingold  <sds@gnu.org>
7577
7578	* modules/syscalls/calls.c (string_version_compare): call
7579	strverscmp and clear the STACK
7580	(OS:VERSION-COMPARE, OS:VERSION<, OS:VERSION<=, OS:VERSION>)
7581	(OS:VERSION>=): use it
7582	* modules/syscalls/posix.lisp (OS:VERSION<, OS:VERSION<=)
7583	(OS:VERSION>, OS:VERSION>=, OS:VERSION-COMPARE): export
7584	* modules/syscalls/configure.in: call gl_FUNC_STRVERSCMP
7585	* Makefile.devel (gnulib-imported): import strverscmp into syscalls
7586
75872010-06-17  Sam Steingold  <sds@gnu.org>
7588
7589	* stream.d (IS_EINVAL, IS_EINVAL_EXTRA): extracted from
7590	finish_tty_output and force_tty_output
7591	(finish_tty_output, force_tty_output, clear_tty_output)
7592	(listen_handle): use IS_EINVAL
7593	Reported by José H. Espinosa <jose.h.espinosa@gmail.com>
7594
75952010-06-16  Sam Steingold  <sds@gnu.org>
7596
7597	* makemake.in (check-script): fix "make check | tee": redirect
7598	output under nohup because nohup only creates nohup.out if there
7599	is no redirection
7600
76012010-06-16  Sam Steingold  <sds@gnu.org>
7602
7603	* Makefile.devel (LIBTOOL_VERSION): bump to 2.2.8
7604	(GNULIB_MODULES): remove obsolete modules memmove & memcmp
7605	(build-aux-update): also get ltoptions ltsugar ltversion lt~obsolete
7606	* configure.in: add AC_CONFIG_MACRO_DIR([m4]) for libtoolize
7607	* modules/syscalls/glm4/sockpfaf.m4, build-aux/config.sub: update
7608
76092010-06-16  Sam Steingold  <sds@gnu.org>
7610
7611	* version.sh: 2.48++ (2010-06-16)
7612
76132010-06-16  Sam Steingold  <sds@gnu.org>
7614
7615	* makemake.in (distrib): hln merges pathnames, which means that if the
7616	source pathname is absolute, the destination must be absolute as well
7617
76182010-06-15  Sam Steingold  <sds@gnu.org>
7619
7620	Try to flush buffers even if CLOSE was called with :ABORT T.
7621	this partially reverts patch 2010-02-25 and fixes bug#551
7622	* stream.d (handle_close_errors, MAYBE_IGNORE_ERRORS): add
7623	(close_str_in, close_buff_in): do not accept unused abort arg
7624	(builtin_stream_close): do not pass abort to them
7625	(close_buff_out, close_generic, close_ochannel, close_buffered):
7626	use MAYBE_IGNORE_ERRORS around calls which may signal errors
7627	(oconv_unshift_output_buffered): accept abort arg
7628	* constobj.d (handler_for_error): add
7629	* lispbibl.d (clisp_thread_t) [MULTITHREAD]: add
7630	_running_handle_close_errors
7631	(running_handle_close_errors) [MULTITHREAD]: define
7632	* makemake.in (check-script): test for bug#551
7633
76342010-06-15  Sam Steingold  <sds@gnu.org>
7635
7636	* pathname.d (handle_directory_encoding_error): use unwind_upto
7637	instead of a home-brewed concoction
7638
76392010-06-15  Sam Steingold  <sds@gnu.org>
7640
7641	* spvw_debug.d (venv_out) [DEBUG_SPVW]: add
7642
76432010-06-13  Sam Steingold  <sds@gnu.org>
7644
7645	* stream.d (BUILT-IN-STREAM-ELEMENT-TYPE): return NIL for an empty
7646	CONCATENATED-STREAM (bug#552)
7647
76482010-06-10  Sam Steingold  <sds@gnu.org>
7649
7650	* modules/syscalls/calls.c (POSIX:LOADAVG): fix a GC-safety bug;
7651	use round() for integer returns
7652
76532010-06-10  Sam Steingold  <sds@gnu.org>
7654
7655	* io.d (STRUCTURE-READER): fix g++ compilation and a GC-safety bug
7656
76572010-06-10  Sam Steingold  <sds@gnu.org>
7658
7659	make OS:BOGOMIPS work even when clisp is compiled with -O
7660	* modules/syscalls/bogomips.c: extract from calls.c
7661	* modules/syscalls/calls.c (BOGOMIPS): call extern bogomips()
7662	* modules/syscalls/Makefile.in (bogomips.o): compile without
7663	$(CPPFLAGS) and $(CFLAGS) to avoid all optimizations
7664	(GENERATED): add bogomips.o
7665	* modules/syscalls/configure.in: do not check for clock,
7666	it is always present on all platforms
7667	* modules/syscalls/link.sh.in (NEW_FILES): add bogomips.o
7668
76692010-06-09  Sam Steingold  <sds@gnu.org>
7670
7671	update gnulib
7672	* modules/regexp/gllib/regex_internal.c:
7673	* modules/regexp/gllib/regex_internal.h:
7674	* modules/syscalls/gllib/time.in.h:
7675	* modules/syscalls/glm4/time_h.m4:
7676	* build-aux/c++defs.h, build-aux/warn-on-use.h:
7677	* glm4/fcntl-o.m4, glm4/gnulib-comp.m4, glm4/iconv.m4:
7678	* glm4/langinfo_h.m4, glm4/lib-link.m4, glm4/stddef_h.m4:
7679	* glm4/stdint.m4, glm4/wchar_h.m4, glm4/wctype_h.m4: update
7680	* glm4/libunistring-base.m4: add
7681	* gllib/uniname.in.h: replaces gllib/uniname.h
7682	* gllib/unitypes.in.h: replaces gllib/unitypes.h
7683	* gllib/uniwidth.in.h: replaces gllib/uniwidth.h
7684	* makemake.in (UNICODE_EXTRA): remove these 3 files
7685
76862010-06-09  Sam Steingold  <sds@gnu.org>
7687
7688	* makemake.in (bench): use base, not boot, for benchmarking
7689	because it includes syscalls with bogomips
7690
76912010-06-09  Sam Steingold  <sds@gnu.org>
7692
7693	* makemake.in (MAKE): remove unused and unset variable
7694	(GNU_MAKE): fix setting and usage
7695
76962010-06-09  Sam Steingold  <sds@gnu.org>
7697
7698	* lisparit.d (make_random_state): fix a warning on 32-bit
7699	platforms by conforming with the official rand_r() declaration
7700
77012010-06-09  Sam Steingold  <sds@gnu.org>
7702
7703	fix bug#550: "make distrib" does not play well with dynamic modules
7704	* _distmakefile (CFLAGS): add @@EXPORT_DYNAMIC_FLAG_SPEC@@
7705	* makemake.in (distmakefile): substitute EXPORT_DYNAMIC_FLAG_SPEC
7706	(XCC_DLOPENABLE_EXE_FLAG): replace with EXPORT_DYNAMIC_FLAG_SPEC
7707	as in libtool.m4
7708	(XCC_LINKER_FLAG_PREFIX): remove
7709	(EXPORT_DYNAMIC_FLAG_SPEC): get from libtool
7710
77112010-06-04  Sam Steingold  <sds@gnu.org>
7712
7713	* modules/pari/pari.lisp (%read-from-string): use gp_read_str
7714	instead of the obsolete readseq; use DEF-CALL-OUT instead of
7715	PARI-CALL-OUT to avoid shadowing the CL function
7716	(pari-reader): gp_read_str takes care of whitespace
7717	(resultant-vector): add (calls vecbezoutres)
7718
77192010-06-03  Sam Steingold  <sds@gnu.org>
7720
7721	init the PARI internal data structures properly,
7722	enabling nice error messages to the screen
7723	* modules/pari/configure.in: do not check for killallfiles, freeall;
7724	check for pari_close
7725	* modules/pari/cpari.c (clispErrDie): revert to trivial error message
7726	(clisp_exception_handler): remove
7727	(init_for_clisp): pass INIT_DFTm to pari_init_opts; do not set
7728	GP_DATA (done by pari_init_opts) and default_exception_handler
7729	(fini_for_clisp): remove
7730	* modules/pari/pari.lisp (pari-fini): call pari_close(),
7731	also call pari_close() in :FINI
7732
77332010-06-03  Sam Steingold  <sds@gnu.org>
7734
7735	* defs1.lisp (require): fix the 2010-05-25 patch: do not lock
7736	*SYSTEM-PACKAGE-LIST* if "SYSTEM" is not locked, i.e., CLISP was
7737	started with "-d" and thus locking is not desired
7738
77392010-06-03  Sam Steingold  <sds@gnu.org>
7740
7741	* modules/pari/pari.lisp (convert-to-pari): use symbols instead of
7742	numbers as the typecode argument in pari-cgetg invocations
7743	(convert-from-pari-vector): replaces convert-from-pari-VEC and
7744	convert-from-pari-COL
7745	(convert-from-pari): use it instead of them
7746	(convert-to-pari@vector): simplify
7747	(convert-from-pari-REAL): treat empty mantissa as 0 (no signed 0
7748	in CLISP)
7749	(convert-from-pari-SER): fix
7750	(pari-object): remove the spurious "nil" slot
7751	(pari-real-qf): fix definition (4 slots, not 3)
7752
77532010-06-02  Sam Steingold  <sds@gnu.org>
7754
7755	* modules/pari/pari.lisp (pari-typecode): export names
7756	(variable-order): add (call reorder)
7757	(euler): remove DEFINE-SYMBOL-MACRO
7758	(pari-real-precision): re-add function, setf, and symbol-macro
7759	(pari-real-precision-words): add a function on top of a variable
7760	(pari-call-out-prec): prec is specified in number of decimals
7761
77622010-06-01  Sam Steingold  <sds@gnu.org>
7763
7764	* modules/pari/pari.lisp: use DEFSTRUCT instead of DEFCLASS for
7765	CLISP representation of PARI objects for speed and i/o
7766
77672010-06-01  Sam Steingold  <sds@gnu.org>
7768
7769	* reploop.lisp (main-loop): exit if (RETURN-FROM MAIN-LOOP) fails
7770	* makemake.in (check-script): check that loading a broken file
7771	from -x with -repl does not hang CLISP
7772
77732010-06-01  Sam Steingold  <sds@gnu.org>
7774
7775	Fix bug#548: Problems with wild-inferiors in DIRECTORY :FULL T
7776	* pathname.d (directory_search): respect :FULL T on recursive
7777	subdirectory search
7778
77792010-05-30  Vladimir Tzankov  <vtzankov@gmail.com>
7780
7781	* spvw.d (interrupt_thread): make sure interrupt will not be lost when
7782	interrupted thread is waiting on mutex or exemption
7783	* zthread.d (EXEMPTION-WAIT): store in thread struct associated mutex
7784	(xlock_lock_helper): when handling pending interrupts - lock internal
7785	mutex before entering "safe for gc/interrupt" region.
7786
77872010-05-28  Sam Steingold  <sds@gnu.org>
7788
7789	* modules/pari/pari.lisp (getstack, gettime)
7790	(gisprime, gispseudoprime): fix declarations
7791	(make-internal-pari-object): return NIL when PTR is NULL
7792	(pari-reader): use MAKE-INTERNAL-PARI-OBJECT
7793	(pari-to-lisp@null): return NIL
7794	(primpart, primitive-part, maxprime): add declarations
7795	(make-initargs): do not upcase SYMBOL-NAME
7796	(convert-from-pari-10, convert-from-pari-11): use %COMPONENT
7797	(pari-get-integer-data, pari-set-integer-data): define using
7798	DEF-CALL-OUT and int_W because the order of words in the data
7799	segment of integers depend on whether PARI is build with gmp (low
7800	bytes first) or not (high bytes first); see
7801	<http://article.gmane.org/gmane.comp.mathematics.pari.user/1574>
7802	<http://pari.math.u-bordeaux.fr/archives/pari-users-1005/msg00008.html>
7803	(convert-to-pari@integer): use PARI-SET-INTEGER-DATA
7804	(convert-from-pari-1): use PARI-GET-INTEGER-DATA
7805
78062010-05-27  Sam Steingold  <sds@gnu.org>
7807
7808	* modules/pari/pari.lisp (pari-mantissa): do not call PARI-LENGTH-RAW,
7809	use PARI-LENGTH-BYTE to avoid allocating an extra FOREIGN-VARIABLE
7810	(PARIINFO): define
7811	(pari-version): also return PARIINFO
7812	(legendre-polynomial, tchebychev-polynomial, hilbert-matrix)
7813	(pascal-triangle, binomial-coefficient, set-random-seed)
7814	(get-random-seed, pari-random): fix definitions
7815	(pari-effective-length-raw, pari-mantissa-eff):
7816	restore using PARI-LENGTH-BYTE
7817	(convert-from-pari-1, convert-from-pari-10): use PARI-MANTISSA-EFF
7818
78192010-05-26  Sam Steingold  <sds@gnu.org>
7820
7821	* modules/pari/pari.lisp: update all names to v2 using <pariold.h>
7822	(pari-pi): remove DEFINE-SYMBOL-MACRO to avoid shadowing a foreign var
7823	(pari-sign-raw): fix for 64-bit negatives
7824	(convert-to-pari): NIL->NIL
7825	(VERYBIGINT, BIGINT): add
7826	(get-varno): use BIGINT instead of 256 to check validity
7827	(extract-mantissa): extract from CONVERT-TO-PARI (INTEGER & FLOAT)
7828	(convert-to-pari@integer&float): use it; use (BITSIZEOF 'ULONG)
7829	instead of a literal 32 which fixes bignum & (almost) float conversion
7830
78312010-05-26  Arseny Slobodyuk  <ampy@users.sourceforge.net>
7832
7833	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
7834	(OS::%SET-CLIPBOARD): behave according to setf logic: return
7835	the value given. Raise a lisp error on failure.
7836	Do not try to use unicode when it is not a unicode build.
7837	(OS:CLIPBOARD): The same unicode guarding ifdefs.
7838	Expect blocking behaviour of GetClipboardData.
7839
78402010-05-25  Sam Steingold  <sds@gnu.org>
7841
7842	* modules/pari/pari.lisp (pari-get-real-prec-raw)
7843	(pari-real-precision, pari-get-real-prec-digits): remove
7844	(pari-call-out-prec): use (EXT:LONG-FLOAT-DIGITS)
7845	instead of (PARI-GET-REAL-PREC-RAW) as the default PREC value
7846
78472010-05-25  Sam Steingold  <sds@gnu.org>
7848
7849	* modules/pari/pari.lisp (pari-byte): add
7850	(SIGNBITS, SIGNSHIFT, TYPBITS, TYPSHIFT, LGBITS, EXPOBITS)
7851	(HIGHEXPOBIT, VALPBITS, HIGHVALPBIT, PRECPBITS, PRECPSHIFT)
7852	(VARNBITS, VARNSHIFT, CLONEBIT): define using DEF-C-CONST
7853	(pari-sign-byte, pari-type-byte, pari-length-byte)
7854	(pari-exponent-byte, pari-valuation-byte, pari-precision-byte)
7855	(pari-varno-byte): define using PARI-BYTE
7856	(LGEFBITS): remove (gone from PARI)
7857	(pari-effective-length-byte, pari-effective-length-raw): remove
7858	(pari-mantissa-eff, pari-mant): remove
7859	(pari-mantissa, pari-set-component, pari-make-object):
7860	fix (use a single WITH-C-VAR, shift using (sizeof 'c-pointer))
7861	(convert-to-pari@integer, convert-to-pari@pari-poly):
7862	use PARI-LENGTH-BYTE instead of PARI-EFFECTIVE-LENGTH-BYTE
7863	(convert-from-pari-1, convert-from-pari-10):
7864	use PARI-MANTISSA instead of PARI-MANTISSA-EFF
7865
78662010-05-25  Sam Steingold  <sds@gnu.org>
7867
7868	* foreign1.lisp (DEF-C-CONST): move checking whether we are
7869	writing to a C file from here to ...
7870	(note-c-const): ... here
7871	(c-const-value): when the constant is not defined, VALUE-P is 0, not NIL
7872
78732010-05-25  Sam Steingold  <sds@gnu.org>
7874
7875	* defs1.lisp (require): lock *SYSTEM-PACKAGE-LIST* after loading
7876	because we might have loaded a system package
7877
78782010-05-25  Sam Steingold  <sds@gnu.org>
7879
7880	* foreign1.lisp (maximize-integer-type): add
7881	(DEF-C-CONST): use it so that we can accept any integer C type
7882	but only create two C functions: for long and ulong
7883
78842010-05-25  Sam Steingold  <sds@gnu.org>
7885
7886	* clisp-link.in (install): do not "make clisp-module-distrib" when
7887	moduledir==distribdir; useful for updating dynmod in the build directory
7888
78892010-05-25  Sam Steingold  <sds@gnu.org>
7890
7891	* modules/pari/cpari.c (clisp_exception_handler): new function;
7892	saves errmessage[numerr] in global_err_data
7893	(clispErrDie): incorporate global_err_data in the error message
7894	(init_for_clisp): set default_exception_handler to
7895	clisp_exception_handler
7896
78972010-05-25  Sam Steingold  <sds@gnu.org>
7898
7899	* modules/pari/pari.lisp (clispTemp): remove
7900	(extract0, extract1, pari-set-component, pari-make-object)
7901	(convert-from-pari-10, convert-from-pari-11):
7902	use WITH-C-VAR instead of TEMP
7903	(pari-mant): extract the common part of PARI-MANTISSA-EFF and
7904	PARI-MANTISSA and use WITH-C-VAR instead of TEMP
7905	(pari-mantissa-eff, pari-mantissa): use PARI-MANT
7906	(collect-mantissa): extract & use (ASH . 32) instead of (* . x100000000)
7907	(convert-from-pari-1, convert-from-pari-2): use it
7908
79092010-05-24  Sam Steingold  <sds@gnu.org>
7910
7911	* modules/pari/pari.lisp (symmetric-matrix-perfection): fix declaration
7912	(MAXVARN): use DEF-C-CONST
7913	* modules/pari/cpari.c: include <pari/paripriv.h> for GP_DATA
7914	(init_for_clisp): init GP_DATA for #Z"" i/o
7915
79162010-05-24  Sam Steingold  <sds@gnu.org>
7917
7918	* modules/pari/configure.in: do not check for init_opts
7919	(LIBS): append "-lm" (required for linking with LIBPARI)
7920	* modules/pari/cpari.c (init_for_clisp): do not use init_opts
7921
79222010-05-23  Sam Steingold  <sds@gnu.org>
7923
7924	* modules/berkeley-db/bdb.c (txn_status_check): add DEFCHECKER
7925	(TXN-CHECK): use it to output stat->st_txnarray->status symbolically
7926	* modules/berkeley-db/dbi.lisp (db-txn-active): status may be a keyword
7927
79282010-05-21  Sam Steingold  <sds@gnu.org>
7929
7930	* modules/pari/Makefile.in (pari.o): pass -I. first thing to CC
7931	so that pari/config.h was included instead of the clisp config.h
7932
79332010-05-18  Sam Steingold  <sds@gnu.org>
7934
7935	* modules/postgresql/postgresql.lisp: sync with libpq-fe.h 1.147 (8.4)
7936	(PG_COPYRES_ATTRS,PG_COPYRES_TUPLES, PG_COPYRES_EVENTS)
7937	(PG_COPYRES_NOTICEHOOKS, PGresAttDesc, PQconninfoParse, PQinitOpenSSL)
7938	(PQcopyResult, PQsetResultAttrs, PQresultAlloc, PQsetvalue)
7939	(lo_import_with_oid): add
7940	* modules/postgresql/configure.in: check for the new functions
7941
79422010-05-18  Sam Steingold  <sds@gnu.org>
7943
7944	* modules/berkeley-db/bdb.c: support 4.8
7945	(DB_XIDDATASIZE): when undefined, use DB_GID_SIZE
7946	(BDB:DB-CREATE): do not accept :XA
7947	(BDB:DBC-DEL): accept :CONSUME
7948	(BDB:DBC-PUT): accept :OVERWRITE-DUP
7949	* modules/berkeley-db/configure.in:
7950	check for the new field names in DB_TXN_ACTIVE
7951	* modules/berkeley-db/dbi.lisp (db-txn-active): rename fields:
7952	`xid' to `gid' and `xa_status' to `status'
7953	use :DB-GID-SIZE instead of :DB-XIDDATASIZE
7954
79552010-05-18  Sam Steingold  <sds@gnu.org>
7956
7957	* modules/pari/Makefile.in (ALL_CFLAGS): collect all CFLAGS et al
7958	variables here and add -I$(srcddir) for cpari.h
7959	(pari.o, cpari.o): use it instead of listing all variables explicitly
7960
79612010-05-18  Sam Steingold  <sds@gnu.org>
7962
7963	update gnulib
7964	* build-aux/arg-nonnull.h, build-aux/c++defs.h, build-aux/warn-on-use.h:
7965	* gllib/langinfo.in.h, gllib/nl_langinfo.c, gllib/stddef.in.h:
7966	* glm4/fcntl-o.m4, glm4/langinfo_h.m4, glm4/nl_langinfo.m4:
7967	* glm4/stddef_h.m4, glm4/warn-on-use.m4, glm4/wchar_h.m4:
7968	* glm4/wctype_h.m4: add
7969	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/btowc.c:
7970	* modules/regexp/gllib/gettext.h, modules/regexp/gllib/regcomp.c:
7971	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
7972	* modules/regexp/glm4/btowc.m4, modules/regexp/glm4/gnulib-common.m4:
7973	* modules/regexp/glm4/gnulib-comp.m4, modules/regexp/glm4/mbrtowc.m4:
7974	* modules/regexp/glm4/regex.m4, modules/regexp/glm4/stddef_h.m4:
7975	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
7976	* modules/regexp/glm4/wcrtomb.m4, modules/syscalls/gllib/Makefile.am:
7977	* modules/syscalls/gllib/sys_socket.in.h:
7978	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/time_r.c:
7979	* modules/syscalls/gllib/unistd.in.h:
7980	* modules/syscalls/glm4/gnulib-common.m4:
7981	* modules/syscalls/glm4/gnulib-comp.m4:
7982	* modules/syscalls/glm4/stddef_h.m4:
7983	* modules/syscalls/glm4/strings_h.m4, modules/syscalls/glm4/strptime.m4:
7984	* modules/syscalls/glm4/sys_socket_h.m4:
7985	* modules/syscalls/glm4/sys_utsname_h.m4:
7986	* modules/syscalls/glm4/time_h.m4, modules/syscalls/glm4/time_r.m4:
7987	* modules/syscalls/glm4/unistd_h.m4:
7988	* modules/wildcard/glm4/gnulib-common.m4:
7989	* modules/wildcard/glm4/gnulib-comp.m4: update
7990
79912010-05-18  Sam Steingold  <sds@gnu.org>
7992
7993	* genclisph.d: undef PACKAGE_URL together with the other PACKAGE_*
7994
79952010-05-18  Sam Steingold  <sds@gnu.org>
7996
7997	Implement RFE#42: *PRINT-CLOSURE* now controls interpreted
7998	closure output too
7999	* io.d (STRUCTURE-READER): read #S(FUNCTION ...) as an Iclosure
8000	(pr_closure): when *PRINT-CLOSURE* is non-NIL, print Iclosure
8001	using #S(FUNCTION ...) syntax
8002
80032010-05-13  Sam Steingold  <sds@gnu.org>
8004
8005	* pathname.d (direntry_to_string) [!ENABLE_UNICODE]: handle len==-1
8006
80072010-05-12  Sam Steingold  <sds@gnu.org>
8008
8009	* modules/syscalls/calls.c (OS::%SET-CLIPBOARD): rename from
8010	SET-CLIPBOARD; use L() instead of `` for PRINC-TO-STRING
8011	(OS:CLIPBOARD): rename from GET-CLIPBOARD
8012	* modules/syscalls/posix.lisp (clipboard): add DEFSETF, export
8013	instead of SET-CLIPBOARD & GET-CLIPBOARD
8014
80152010-05-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8016
8017	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
8018	(nlines_a, nlines_w, strzcpy12_a, strzcpy12_w, strzcpy21_a)
8019	(strzcpy21_w): new static utility functions.
8020	(SET-CLIPBOARD, GET-CLIPBOARD): new defuns to manage
8021	textual contents of Windows clipboard.
8022	* modules/syscalls/posix.lisp [win32 || cygwin]: export
8023	SET-CLIPBOARD, GET-CLIPBOARD.
8024
80252010-05-09  Vladimir Tzankov  <vtzankov@gmail.com>
8026
8027	* spvw.d (main_actions) [MULTITHREAD]: cleanup stack when main thread
8028	terminates
8029
80302010-05-07  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8031
8032	* modules/syscalls/calls.c (USER-INFO): skip entries with uid of
8033	-1 when returning a list.  These entries appearing in cygwin
8034	correspond to user records not synchronized with /etc/passwd.
8035
80362010-05-02  Vladimir Tzankov  <vtzankov@gmail.com>
8037
8038	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: insert GC safe point
8039	in JMP instructions and discard mv_space for ones that invalidate it
8040
80412010-04-27  Sam Steingold  <sds@gnu.org>
8042
8043	* modules/syscalls/calls.c (GetSecurityInfoFunc_t)
8044	(LookupAccountSidFunc_t, GetLengthSidFunc_t, CopySidFunc_t)
8045	(EqualSidFunc_t, ConvertSidToStringSidFunc_t): add typedefs
8046	(initialize_sid_apis): use them instead of explicit types
8047
80482010-04-27  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8049
8050	Response to bug#543 (a feature request, actually)
8051	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
8052	(GET-USER-SID): new DEFUN. Returns security identifier (SID)
8053	of current user or of the user thar's name is specified.
8054	* modules/syscalls/posix.lisp (GET-USER-SID): exported.
8055
80562010-04-27  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8057
8058	* modules/syscalls/calls.c [WIN32_NATIVE || UNIX_CYGWIN32]
8059	(initialize_sid_apis): dynamic loading of SID API moved out
8060	of get_owner block and made available on cygwin.
8061	(get_owner): fixed potential bugs.
8062	Comments, cosmetics.
8063
80642010-04-22  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8065
8066	Finish and fix COM init patch.
8067	* win32aux.d (com_initialized): revoke the variable.
8068	(init_win32): do not init COM.
8069	(done_win32) [!MULTITHREAD]: unconditionally call
8070	CoUninitialize.
8071	* modules/syscalls/calls.c (BTCoCreateInstance): define
8072	static function for cygwin.
8073
80742010-04-21  Sam Steingold  <sds@gnu.org>
8075
8076	* makemake.in: use "&&" instead of "if+then" for simplicity
8077
80782010-04-20  Sam Steingold  <sds@gnu.org>
8079
8080	* spvw_language.d (init_language_from): accept NULL argument
8081	(init_language): simplify logic
8082
80832010-04-20  Sam Steingold  <sds@gnu.org>
8084
8085	* stream.d (rd_ch_terminal3): use alloca instead of malloc to
8086	allocate the prompt
8087
80882010-04-20  Sam Steingold  <sds@gnu.org>
8089
8090	COMPILER-DIAGNOSTICS:USE-HANDLER: COMPILE-FILE must notice the
8091	warnings signaled by EVAL-WHEN
8092	* compiler.lisp (c-warn): do not increase *WARNING-COUNT* here
8093	(c-style-warn): do not increase *STYLE-WARNING-COUNT* & *WARNING-COUNT*
8094	* condition.lisp (warn-of-type): increase *WARNING-COUNT* and
8095	*STYLE-WARNING-COUNT* here when they are bound
8096	* utils/clispload.lsp (*expected-failures*): remove COMPILE-FILE.2
8097	& COMPILE-FILE.2A
8098
80992010-04-19  Sam Steingold  <sds@gnu.org>
8100
8101	* stream.d (make_terminal_stream_) [HAVE_TERMINAL3]: disable
8102	readline signal handling by setting "rl_catch_signals = 0"
8103
81042010-04-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8105
8106	Fix COM library initialization in MT version.
8107	* w32shell.c (BTCoCreateInstance): CoCreateInstance
8108	with call of CoInitialize if needed.
8109	(resolve_shell_shortcut): use it.
8110	* spvw.d (delete_thread) [WIN32_NATIVE]: call
8111	CoUninitialize on each thread exit.
8112	* win32aux.d (done_win32) [MULTITHREAD]: do not call CoUninitialize.
8113	* modules/syscalls/calls.c (BTCoCreateInstance) [WIN32_NATIVE]: declare
8114	(POSIX::MAKE-SHORTCUT, POSIX::SHORTCUT-INFO) [WIN32_NATIVE]:
8115	use BTCoCreateInstance instead of CoCreateInstance.
8116
81172010-04-16  Sam Steingold  <sds@gnu.org>
8118
8119	* makemake.in (check-recompile): remove the 2001-06-15
8120	*GENSYM-COUNTER* hack because we no longer have GENSYMs in FLETs
8121
81222010-04-16  Sam Steingold  <sds@gnu.org>
8123
8124	* utils/clispload.lsp: use RT:REM-TEST to disable CHAR-INT.2
8125	instead of redefining a function
8126
81272010-04-15  Sam Steingold  <sds@gnu.org>
8128
8129	fix bug#545: mt/readline: terminal is left raw on crash
8130	* spvw.d (fini_lowest_level) [GNU_READLINE]: call
8131	rl_deprep_term_function to restore the terminal state
8132	(signal_handler_thread): call fini_lowest_level
8133
81342010-04-15  Vladimir Tzankov  <vtzankov@gmail.com>
8135
8136	fix bug#547: mt: clisp hangs repeating sched_yield()
8137	* stream.d (begin_rl_callback, end_rl_callback): define and use instead
8138	of begin_callback() and end_callback() in readline callbacks
8139
81402010-04-15  Sam Steingold  <sds@gnu.org>
8141
8142	* query.lisp (y-or-n-p, yes-or-no-p): call (FORCE-OUTPUT *QUERY-IO*)
8143	after every output to *QUERY-IO*
8144
81452010-04-14  Sam Steingold  <sds@gnu.org>
8146
8147	* clhs.lisp: set package/impnotes documentation for package THREADS
8148
81492010-04-13  Vladimir Tzankov  <vtzankov@gmail.com>
8150
8151	* spvw.d (fill_terminating_signals_mask): add terminating signals to
8152	sigset_t mask
8153	(async_signal_mask): unblock terminating signals if the process is
8154	exiting due to such signal
8155	(signal_wait): ignore signals not set in the mask passed to sigwait()
8156	(signal_handler_thread) [UNIX_MACOSX]: do not ignore SIGHUP
8157
81582010-04-13  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8159
8160	Fix for a bug#335 with default drive directory:
8161	within CLISP default_directory_of() is used to fill missed
8162	pathname directory component in pathnames like C:lisp.exe.
8163	This functionality now added to real_path as well to
8164	support lisp invocation like 'C:\>e:lisp.exe -M e:lispinit.mem'.
8165	* w32shell.c (real_path): detect and handle default drive
8166	directory references. Optimization: less use of strlen.
8167
81682010-04-12  Vladimir Tzankov  <vtzankov@gmail.com>
8169
8170	* spvw_sigterm.d (quit_on_signal_in_progress): move to spvw.d
8171	* spvw.d (quit_on_signal_in_progress): define it here
8172	(async_signal_mask) [POSIX_THREADS]: do not add terminating signals if
8173	process was already signaled with one of them
8174	(signal_handler_thread): set proper exit code on terminating signal.
8175	print to stderr "Exiting on signal ...". fix erroneous message on
8176	terminating signal
8177
81782010-04-12  Sam Steingold  <sds@gnu.org>
8179
8180	* spvw_sigterm.d (quit_on_signal_in_progress): always define
8181	* spvw.d (signal_handler_thread) [MULTITHREAD]: fix last patch:
8182	set quit_on_signal_in_progress when terminating
8183
81842010-04-11  Sam Steingold  <sds@gnu.org>
8185
8186	fix bug#520: when quitting on signals, do not enter the debugger
8187	* lispbibl.d (quit_on_signal_in_progress): declare
8188	* error.d (signal_and_debug): quit if quit_on_signal_in_progress
8189	* debug.d (break_driver): ditto
8190	* spvw_sigterm.d (quit_on_signal_in_progress): make global
8191
81922010-04-02  Sam Steingold  <sds@gnu.org>
8193
8194	* pathname.d (SAVEMEM): use nullp(.) instead of eq(NIL,.)
8195	* zthread.d (MAKE-MUTEX, MUTEX-LOCK): ditto
8196
81972010-03-30  Arseny Slobodyuk  <ampy@users.sourceforge.net>
8198
8199	Fix for a bug#526 with cygwin symlinks:
8200	lack of discrimination between cygwin symlinks, used in build
8201	process and other Windows shortcuts.
8202	* w32shell.c (win_shortcut_hdr): lnk file header
8203	(cmp_shortcut_header, is_cygwin_symlink): new static functions
8204	(resolve_shell_shortcut): use is_cygwin_symlink
8205
82062010-03-29  Sam Steingold  <sds@gnu.org>
8207
8208	* condition.lisp (prompt-for-new-value): terminate the prompt for
8209	the new value with (PROMPT-FINISH) instead of ": " to indicate that
8210	this is a regular prompt and the value will be evaluated
8211	* macros2.lisp (prompt-for-new-value-string): ditto
8212	Suggested by Pascal J. Bourguignon <pjb@informatimago.com>
8213
82142010-03-26  Sam Steingold  <sds@gnu.org>
8215
8216	* condition.lisp (prompt-for-new-value): EVAL the value entered by
8217	the user
8218
82192010-03-25  Sam Steingold  <sds@gnu.org>
8220
8221	* modules/libsvm/configure.in: on ubuntu libsvm is managed by
8222	pkg-config which seems rather silly because there is no real
8223	connection between gnome and libsvm;
8224	we must support both pkg-config and non-pkg-config installations
8225
82262010-03-24  Sam Steingold  <sds@gnu.org>
8227
8228	* modules/libsvm/libsvm.lisp: remove DEFAULT-FOREIGN-LIBRARY
8229
82302010-03-24  Sam Steingold  <sds@gnu.org>
8231
8232	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): require CL_PROG_LN_S
8233	* modules/berkeley-db/Makefile.in, modules/clx/new-clx/Makefile.in:
8234	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
8235	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
8236	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
8237	* modules/libsvm/Makefile.in, modules/oracle/Makefile.in:
8238	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
8239	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
8240	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
8241	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
8242	* modules/zlib/Makefile.in: use @LN@ and @LN_S@
8243
82442010-03-24  Sam Steingold  <sds@gnu.org>
8245
8246	* modules/libsvm/Makefile.in, modules/libsvm/link.sh: restore
8247	TO_PRELOAD, necessary because of DEF-CALL-IN in libsvm.lisp
8248
82492010-03-22  Sam Steingold  <sds@gnu.org>
8250
8251	* modules/libsvm: remove the upstream sources; install locally and
8252	pass --with-libsvm-prefix to the top-level configure instead
8253	* Makefile.devel (MODULES): add libsvm
8254
82552010-03-22  Sam Steingold  <sds@gnu.org>
8256
8257	* modules/libsvm: upgrade to upstream 2.90
8258
82592010-03-19  Sam Steingold  <sds@gnu.org>
8260
8261	* modules/gdbm/gdbm.c (GDBM-VERSION): cache return value
8262
82632010-03-19  Sam Steingold  <sds@gnu.org>
8264
8265	* utils/modprep.lisp (print-tables-1): when OBJDEF-INIT is
8266	STRINGIFY(FOO), print it as "\"~S\"" to use the quoted CPP definition
8267
82682010-03-19  Sam Steingold  <sds@gnu.org>
8269
8270	upgrade to pcre 8.01
8271	* modules/pcre/cpcre.c (fullinfo_bool): add
8272	(PCRE-CONFIG): also accept :MATCH-LIMIT-RECURSION :BSR
8273	(PCRE-COMPILE): also accept :DFA-SHORTEST :DFA-RESTART
8274	:FIRSTLINE :DUPNAMES :NEWLINE-CR :NEWLINE-LF :NEWLINE-CRLF :NEWLINE-ANY
8275	:NEWLINE-ANYCRLF :BSR-ANYCRLF :BSR-UNICODE :JAVASCRIPT-COMPAT
8276	:NO-START-OPTIMIZE :NO-START-OPTIMISE :PARTIAL-HARD :NOTEMPTY-ATSTART
8277	(PATTERN-INFO): also accept :OKPARTIAL :JCHANGED :HASCRORLF :MINLENGTH
8278	(PCRE-VERSION): also return PCRE_DATE
8279
82802010-03-19  Sam Steingold  <sds@gnu.org>
8281
8282	* genclisph.d (print_file) [!HAVE_STDBOOL_H]: enable (see lispbibl.d)
8283	Reported by Raymond Toy <toy.raymond@gmail.com>
8284
82852010-03-18  Sam Steingold  <sds@gnu.org>
8286
8287	* Makefile.devel (GET_PREFIX): add
8288	($(MAKEFILE_IN)): use it
8289	(gnulib-imported): remove macro-prefix from _GL_UNUSED which is
8290	defined in config.h using gnulib-common.m4:gl_COMMON_BODY and thus
8291	is not amenable to the macro-prefix strategy
8292
82932010-03-18  Sam Steingold  <sds@gnu.org>
8294
8295	* stream.d (handle_direction_compatible) [WIN32_NATIVE]:
8296	fix bug#523 ("0>/dev/null") by using
8297	GetNumberOfConsoleInputEvents for FILE_TYPE_CHAR
8298	and PeekNamedPipe for FILE_TYPE_PIPE
8299
83002010-03-17  Sam Steingold  <sds@gnu.org>
8301
8302	* makemake.in, modules/regexp/Makefile.in:
8303	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in (gllib):
8304	do not pass build_aux= to make in subdir (revert the 2010-03-17
8305	patch because it does not look like gnulib will ever use $(build_aux))
8306
83072010-03-17  Sam Steingold  <sds@gnu.org>
8308
8309	* makemake.in (MODULE_AM): avoid not portable "fgrep -q"
8310	Reported by Christian Walther <cptsalek@gmail.com>
8311
83122010-03-17  Sam Steingold  <sds@gnu.org>
8313
8314	* m4/clisp.m4 (CL_DECOLONIZE): add
8315	(CL_CLISP): use it instead of inline code
8316	* configure.in: call CL_DECOLONIZE
8317	* makemake.in: use CLISP_DECOLONIZE on CLISP_LIBDIR & XCPPFLAGS
8318
83192010-03-17  Sam Steingold  <sds@gnu.org>
8320
8321	* stream.d (find_open_file): add a cast to fix g++ compilation
8322
83232010-03-17  Sam Steingold  <sds@gnu.org>
8324
8325	update gnulib
8326	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
8327	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
8328	* modules/syscalls/gllib/sys_socket.in.h:
8329	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
8330	* modules/syscalls/glm4/sys_socket_h.m4:
8331	* modules/syscalls/glm4/sys_utsname_h.m4:
8332	* modules/syscalls/glm4/time_h.m4, modules/syscalls/glm4/unistd_h.m4:
8333	* build-aux/warn-on-use.h, gllib/langinfo.in.h, gllib/string.in.h:
8334	* gllib/sys_time.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
8335	* gllib/wctype.in.h, glm4/gnulib-comp.m4, glm4/langinfo_h.m4:
8336	* glm4/string_h.m4, glm4/sys_time_h.m4, glm4/unistd_h.m4: update
8337	* build-aux/c++defs.h: add
8338	* glm4/wchar_h.m4: rename from glm4/wchar.m4
8339	* glm4/wctype_h.m4: rename from glm4/wctype.m4
8340
83412010-03-17  Sam Steingold  <sds@gnu.org>
8342
8343	* Makefile.devel ($(MAKEFILE_IN)): transform just generated
8344	Makefile.in to add gnulib prefix substitution to rules generating
8345	headers which come from build-aux
8346
83472010-03-16  Sam Steingold  <sds@gnu.org>
8348
8349	* m4/clisp.m4 (CL_CLISP): when running on woe32, we must ensure
8350	that cl_cv_clisp_libdir contains no colons because this will
8351	confuse make ("multiple target patterns") when $(CLISP_LIBDIR)
8352	appears in the list of dependencies
8353	* makemake.in (gllib): ditto
8354
83552010-03-16  Sam Steingold  <sds@gnu.org>
8356
8357	* makemake.in, modules/regexp/Makefile.in:
8358	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in (gllib):
8359	pass build_aux= to make in subdir
8360
83612010-03-04  Sam Steingold  <sds@gnu.org>
8362
8363	* spvw.d (INVALID_ARG): also "return 1"
8364	(parse_options): simplified based on the above
8365
83662010-03-03  Vladimir Tzankov  <vtzankov@gmail.com>
8367
8368	* spvw.d (realloc_threads_symvalues): expand all threads symvalues
8369	tables and initialize new cells to SYMVALUE_EMPTY
8370	* spvw_global.d (add_per_thread_special_var): use it
8371	* spvw_memfile.d (loadmem_from_handle): ditto
8372
83732010-03-02  Sam Steingold  <sds@gnu.org>
8374
8375	* pathname.d (CD): do not merge *DEFAULT-PATHNAME-DEFAULTS*
8376	because the merging breaks the advertised behavior: (CD) is
8377	actually equivalent to (CD *DEFAULT-PATHNAME-DEFAULTS*),
8378	and does not just return the current directory as advertised
8379
83802010-02-28  Vladimir Tzankov  <vtzankov@gmail.com>
8381
8382	* zthread.d (xlock_unlock_helper): signal lock's condition variable
8383	before unlocking internal mutex. fixes possible deadlock if signal is
8384	missed
8385
83862010-02-27  Vladimir Tzankov  <vtzankov@gmail.com>
8387
8388	* spvw_garcol.d (gar_col_normal) [MULTITHREAD]: mark active threads
8389	before weak pointers
8390	(SPLIT_REF_LISTS): remove 'condition' argument
8391
83922010-02-27  Vladimir Tzankov  <vtzankov@gmail.com>
8393
8394	* zthread.d (xlock_lock_helper): do not try to handle pending
8395	interrupts for signal processing thread (no clisp_thread_t for it)
8396	(win32_xcondition_wait): cleanup
8397
83982010-02-26  Sam Steingold  <sds@gnu.org>
8399
8400	* configure.in: call gl_FCNTL_O_FLAGS, needed by the new localcharset.c
8401
84022010-02-26  Sam Steingold  <sds@gnu.org>
8403
8404	Handle headers placed in build-aux by gnulib
8405	* m4/clisp.m4 (CL_CLISP): add AC_SUBST(CLISP_LIBDIR)
8406	* Makefile.devel ($(MAKEFILE_IN)): manually substitute
8407	CLISP_LIBDIR for $(top_srcdir)/src/build-aux et al
8408	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
8409	* modules/wildcard/Makefile.in: use CLISP_LIBDIR when passing
8410	CFLAGS to make in gllib
8411	* makemake.in ($(SUBDIRS)): pass CLISP_LIBDIR to MAKE;
8412	depend on build-aux
8413	(BUILD_AUX): add build-aux headers, found in Makefile.am's
8414
84152010-02-25  Sam Steingold  <sds@gnu.org>
8416
8417	Ensure that (CLOSE s :ABORT T) never signals.
8418	* stream.d (ChannelStream_fini): accept abort argument and do not
8419	signal errors when it is true
8420	(close_ichannel): pass abort to ChannelStream_fini
8421	(close_ochannel): do not call oconv_unshift_output_unbuffered() if
8422	abort is true; pass abort to ChannelStream_fini
8423	(close_buffered): do not call oconv_unshift_output_buffered() and
8424	buffered_flush_everything(); pass abort to ChannelStream_fini
8425	(SET-STREAM-EXTERNAL-FORMAT): pass abort=0 to ChannelStream_fini
8426	(builtin_stream_close): do not call harden_elastic_newline if
8427	abort is true
8428
84292010-02-25  Sam Steingold  <sds@gnu.org>
8430
8431	* stream.d (stream_lend_handle): support sockets
8432
84332010-02-23  Sam Steingold  <sds@gnu.org>
8434
8435	* Makefile.devel (GNULIB_MODULES): add nl_langinfo, which is now
8436	required by regexp, so that i18n have it always available
8437	* modules/i18n/configure.in: call gl_FUNC_NL_LANGINFO
8438	* modules/i18n/gettext.c [!WIN32_NATIVE]:
8439	assume that nl_langinfo is always present
8440
84412010-02-23  Sam Steingold  <sds@gnu.org>
8442
8443	update gnulib
8444	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/regcomp.c:
8445	* modules/regexp/gllib/regex_internal.c:
8446	* modules/regexp/gllib/regex_internal.h, modules/regexp/gllib/regexec.c:
8447	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
8448	* modules/regexp/glm4/btowc.m4, modules/regexp/glm4/regex.m4:
8449	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
8450	* modules/syscalls/gllib/Makefile.am:
8451	* modules/syscalls/gllib/mktime.c, modules/syscalls/gllib/sockets.c:
8452	* modules/syscalls/gllib/strftime.c, modules/syscalls/gllib/strftime.h:
8453	* modules/syscalls/gllib/strings.in.h:
8454	* modules/syscalls/gllib/sys_socket.in.h:
8455	* modules/syscalls/gllib/sys_utsname.in.h:
8456	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
8457	* modules/syscalls/gllib/w32sock.h, modules/syscalls/glm4/strings_h.m4:
8458	* modules/syscalls/glm4/sys_socket_h.m4:
8459	* modules/syscalls/glm4/sys_utsname_h.m4:
8460	* modules/syscalls/glm4/unistd_h.m4:
8461	* modules/wildcard/gllib/Makefile.am:
8462	* modules/wildcard/gllib/fnmatch.in.h:
8463	* modules/wildcard/gllib/fnmatch_loop.c:
8464	* gllib/Makefile.am:
8465	* gllib/gettimeofday.c, gllib/localcharset.c, gllib/memcmp.c:
8466	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
8467	* gllib/wchar.in.h, gllib/wctype.in.h, glm4/extensions.m4:
8468	* glm4/gettimeofday.m4, glm4/iconv.m4, glm4/localcharset.m4:
8469	* glm4/string_h.m4, glm4/sys_time_h.m4, glm4/unistd_h.m4:
8470	* glm4/wchar.m4: update
8471	* modules/regexp/glm4/warn-on-use.m4:
8472	* modules/syscalls/gllib/mktime-internal.h:
8473	* modules/syscalls/glm4/warn-on-use.m4:
8474	* build-aux/arg-nonnull.h, build-aux/warn-on-use.h:
8475	* gllib/langinfo.in.h, gllib/nl_langinfo.c:
8476	* glm4/fcntl-o.m4, glm4/langinfo_h.m4, glm4/nl_langinfo.m4:
8477	* glm4/warn-on-use.m4: add
8478
84792010-02-23  Vladimir Tzankov  <vtzankov@gmail.com>
8480
8481	[MULTITHREAD]: fix interrupt safety and deferred interrupt handling
8482	* lispbibl.d (WITH_DEFERED_INTERRUPTS): executes body with deferred
8483	interrupts (after body finishes deferred interrupts are executed)
8484	(WITH_MUTEX_LOCK_HELP_): release lock only if it was really acquired
8485	(GC_SAFE_MUTEX_LOCK): set a flag if the lock has been acquired (before
8486	handling pending interrupts)
8487	(LISP_MUTEX_UNLOCK_HELP_): use WITH_DEFERED_INTERRUPTS
8488	(lock_threads, unlock_threads): remove
8489	(allthreads_lock): make it global
8490	* spvw.d (allthreads_lock): ditto
8491	(lock_threads, unlock_threads): remove
8492	(create_thread): initialize all per thread value cells as empty
8493	(delete_thread): lock allthreads_lock only if needed
8494	(tsd_slow_getspecific) [USE_CUSTOM_TLS=2, MACOSX]: return NULL if
8495	called from non-lisp thread (libsigsegv creates one)
8496	(signal_handler_thread): exit immediately if some thread has failed
8497	to be stopped (on terminating signals)
8498	* spvw_global.d (add_per_thread_special_var): use WITH_OS_MUTEX_LOCK.
8499	do not lock allthreads_lock (value cells are already initialized as
8500	empty)
8501	(clear_per_thread_symvalues): use WITH_OS_MUTEX_LOCK
8502	* spvw_typealloc.d (allocate_mutex): add newly allocated mutex to
8503	O(all_mutexes) - prevents memory xmutex_t memory leak in case later
8504	all_mutexes lock is not acquired (due to interrupt)
8505	(allocate_exemption): ditto
8506	* stream.d (get_open_files_lock, release_open_files_lock): remove
8507	(add_to_open_streams, remove_from_open_streams, find_open_file): use
8508	WITH_OS_MUTEX_LOCK
8509	* pathname.d (openp): ditto
8510	* record.d (FINALIZE): ditto
8511	* package.d (find_package, MAP-ALL-SYMBOLS): ditto
8512	* zthread.d (MAKE-THREAD, SYMBOL-VALUE-THREAD, SET-SYMBOL-VALUE-THREAD):
8513	ditto
8514	(LIST-THREADS): do not lock allthreads_lock, just copy O(all_threads)
8515	(MUTEX-OWNER): return second value - how many times the mutex is locked
8516	by the owner (for non-recursive mutexes this is at most 1)
8517	(allocate_mutex, allocate_exemption): do not add to O(all_mutexes) and
8518	O(all_exemption)
8519	* threads.lisp (WITH-MUTEX-LOCK): unlock the mutex only if it was really
8520	locked
8521	(WITH-DEFERRED-INTERRUPTS): fix it. handle nested case and execute
8522	interrupts only if allowed
8523
85242010-02-19  Vladimir Tzankov  <vtzankov@gmail.com>
8525
8526	* zthread.d (SET-SYMBOL-VALUE-THREAD): fix stack layout on
8527	unbound_variable error
8528
85292010-02-19  Vladimir Tzankov  <vtzankov@gmail.com>
8530
8531	* zthread.d (THREAD-JOIN): add :TIMEOUT argument (on timeout return
8532	values are: NIL; :TIMEOUT)
8533	* subr.d, subrkw.d: ditto
8534
85352010-02-18  Sam Steingold  <sds@gnu.org>
8536
8537	* package.d (PACKAGE-ITERATE): remove unused variable
8538	(symbol_list_lookup, shadowing_delete): move selecting the
8539	comparison function (inverted or not) out of the loop
8540
85412010-02-17  Sam Steingold  <sds@gnu.org>
8542
8543	* modules/rawsock/rawsock.c: <linux/netlink.h> requires <asm/types.h>
8544	(check_socket_protocol): use "-" in NETLINK_*, like in all others
8545	* modules/rawsock/configure.in: check for <asm/types.h>
8546
85472010-02-17  Sam Steingold  <sds@gnu.org>
8548
8549	* Makefile.devel (AUTOCONF, AUTOHEADER): remove variables;
8550	to run autoconf/automake from a non-standard location one has to
8551	prepend it to PATH because aclocal calls autoconf directly
8552
85532010-02-17  Sam Steingold  <sds@gnu.org>
8554
8555	* lisparit.d (make_random_state): use rand_r() when it is available
8556	because rand() is neither reentrant nor thread-safe
8557	* configure.in: check for rand_r()
8558	Reported by Tobias C. Rittweiler <tcr@freebits.de>
8559
85602010-02-17  Vladimir Tzankov  <vtzankov@gmail.com>
8561
8562	* zthread.d (thread_symbol_place): remove
8563	(SYMBOL-VALUE-THREAD): return (NIL THREAD-ACTIVE-P) if thread is not
8564	active. lock threads only when really needed
8565	(SET-SYMBOL-VALUE-THREAD): more specific errors.
8566	lock threads only when really needed
8567
85682010-02-16  Sam Steingold  <sds@gnu.org>
8569
8570	* zthread.d (check_thread, check_mutex, check_exemption)
8571	(check_name_arg): fix subr_self usage (it is a Subr, not a symbol)
8572
85732010-02-15  Vladimir Tzankov  <vtzankov@gmail.com>
8574
8575	[MULTITHREAD]: make all threads joinable
8576	* constsym.d, subr.d, subrkw.d: remove :JOINABLE-P
8577	* spvw_typealloc.d (allocate_thread): allocate mutex and exemption used
8578	by THREAD-JOIN
8579	* zthread.d (thread-cleanup): signal waiters in THREAD-JOIN for thread
8580	completion
8581	(thread_stub): delegate all cleanup to thread_cleanup
8582	(MAKE-THREAD): revert last commit
8583	(THREAD-JOIN): all threads are joinable now
8584	* spvw.d (main_actions): set main thread return value when it is killed
8585
85862010-02-13  Vladimir Tzankov  <vtzankov@gmail.com>
8587
8588	[MULTITHREAD]: add THREAD-JOIN
8589	* lispbibl.d (struct Thread): add mutex, exemption, return values and
8590	flags to thread record
8591	(thread_killedp): predicate whether the thread has exited abnormally
8592	* spvw_typealloc.d (allocate_thread): initialize xth_values to unbound
8593	* constsym.d, subr.d, subrkw.d: add THREAD-JOIN and :JOINABLE-P to
8594	MAKE-THREAD keyword arguments
8595	* threads.lisp: export THREAD-JOIN
8596	(THROW-TAG): add second optional argument for catch result
8597	* zthread.d (MAKE-THREAD): accept :JOINABLE-P and allocate mutex and
8598	exemption for signaling thread exit
8599	(thread_stub): signal thread join exemption when the thread ends. set
8600	thread return values and thread exit status
8601	(THREAD-JOIN): implement. wait on exemption while thread return values
8602	are available
8603	(push_interrupt_arguments): pass :arguments (i.e. thread return values)
8604	to thread being killed
8605	(THREAD-ACTIVE-P): update condition for inactive thread
8606	* io.d (pr_orecord): ditto
8607
86082010-02-11  Sam Steingold  <sds@gnu.org>
8609
8610	* condition.lisp (c-warning): do not concat (C-CURRENT-LOCATION)
8611	to the FORMAT-STRING because the former may contain "~"
8612	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>
8613
86142010-02-05  Sam Steingold  <sds@gnu.org>
8615
8616	* makemake.in (build-aux): when LN_S is "cp", use "cp -r"
8617
86182010-02-02  Sam Steingold  <sds@gnu.org>
8619
8620	* makemake.in (full) [with_dynamic_modules]: remove dynmod
8621	(install-bin) [with_dynamic_modules]: handle empty dynmod properly
8622	(distrib) [with_dynamic_modules]: ditto
8623	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>
8624
86252010-01-31  Sam Steingold  <sds@gnu.org>
8626
8627	* lambdalist.lisp (check-item): quote PERMISSIBLE here, update callers
8628	(process-required, push3, process-optional, err-no-default)
8629	(process-allow-other-keys, process-keywords): new local macros
8630
86312010-01-29  Sam Steingold  <sds@gnu.org>
8632
8633	* lambdalist.lisp (dolist, check-exhausted, symbol-or-pair-p)
8634	(singleton-symbol-p, err-missing, last-parameter): new local macros
8635
86362010-01-28  Sam Steingold  <sds@gnu.org>
8637
8638	better error reporting in lambda list processing
8639	* lambdalist.lisp (lambda-list-error): new function,
8640	calls ERROR-OF-TYPE EXT:SOURCE-PROGRAM-ERROR
8641	(err-misplaced, err-invalid, skip-L, analyze-lambdalist)
8642	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist)
8643	(analyze-modify-macro-lambdalist)
8644	(analyze-method-combination-lambdalist):
8645	errfunc accepts FORM in addition to DETAIL
8646	* compiler.lisp (c-analyze-lambdalist): ditto
8647	* clos-method2.lisp (decompose-specialized-lambda-list): ditto
8648	* clos-genfun2b.lisp (check-gf-lambdalist+argorder): ditto
8649	* clos-methcomb2.lisp (define-method-combination): ditto + use
8650	SYS::LAMBDA-LIST-ERROR
8651	* clos-method1.lisp (initialize-instance-<standard-method>): ditto
8652	(program-error-reporter, analyze-method-description): ditto
8653	* clos-method3.lisp (method-signature): ditto
8654	* defstruct.lisp (ds-make-boa-constructor): ditto
8655	* places.lisp (defsetf, define-modify-macro): ditto
8656	* clos-genfun3.lisp (analyze-defgeneric-lambdalist): ditto
8657	* clos-genfun4.lisp (generic-function-signature): ditto
8658	* clos-methcomb2.lisp (check-em-arguments-option)
8659	(build-effective-method-function-form): ditto
8660
86612010-01-28  Sam Steingold  <sds@gnu.org>
8662
8663	fix bug#539: segfault after giving invalid replacement value
8664	* error.d (check_symbol_special): do not break out of the loop early
8665
86662010-01-28  Sam Steingold  <sds@gnu.org>
8667
8668	* lispbibl.d (roughly_SP) [USE_CUSTOM_TLS >=2]: simplify the CPP logic
8669	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
8670
86712010-01-27  Ivan Shvedunov  <ivan4th@gmail.com>
8672
8673	* lispbibl.d (dfloat) [ARM]: do NOT swap hi/lo when __ARM_EABI__
8674	is defined (fixes READ-FLOAT/WRITE-FLOAT on Maemo Fremantle)
8675
86762010-01-26  Sam Steingold  <sds@gnu.org>
8677
8678	* pathname.d (EXECUTE): do not resolve links in the file argument
8679	because some programs dispatch on argv[0], which could be a
8680	symbolic link. E.g., in Maemo Fremantle OS used in Nokia N900 phone,
8681	/bin/sh is a symlink to busybox, so RUN-PROGRAM which calls SHELL
8682	which calls EXECUTE fails because EXECUTE calls "busybox -c"
8683	instead of "/bin/sh -c".
8684	Reported by Ivan Shvedunov <ivan4th@gmail.com> in
8685	<http://article.gmane.org/gmane.lisp.clisp.devel/21219>
8686	<https://sourceforge.net/p/clisp/mailman/message/24434416/>
8687
86882010-01-06  Sam Steingold  <sds@gnu.org>
8689
8690	upgrade from readline 6.0 to 6.1
8691	* modules/readline/readline.lisp (state-redisplaying): add
8692
86932009-12-30  Sam Steingold  <sds@gnu.org>
8694
8695	eliminate yet another static: allocaing_room_pointer
8696	* lispbibl.d (converter_malloc_t, convert_to_foreign): accept
8697	"void** state" argument
8698	* foreign.d (convert_to_foreign): ditto, pass it to converter_malloc
8699	(allocaing_room_pointer): remove
8700	(allocaing): accept address of allocaing_room_pointer
8701	(mallocing, nomalloc): accept and ignore the state argument
8702	(SET-FOREIGN-VALUE, WRITE-MEMORY-AS, FOREIGN-ALLOCATE. callback):
8703	pass NULL as state to convert_to_foreign
8704	(EXEC-ON-STACK, FOREIGN-CALL-OUT): declare and pass
8705	allocaing_room_pointer to convert_to_foreign
8706
87072009-12-29  Sam Steingold  <sds@gnu.org>
8708
8709	* io.d (token_escape_flag): remove global static variable, which
8710	appears to be messing up "make check-tests-parallel"
8711	(read_token, read_token_1, test_number_syntax, radix_2): accept
8712	token_escape_flag argument instead of using the global static
8713	(read_internal, CHAR-READER, radix_1, RADIX-READER, UNINTERNED-READER)
8714	(BIT-VECTOR-READER): allocate token_escape_flag on the stack here
8715
87162009-12-27  Vladimir Tzankov  <vtzankov@gmail.com>
8717
8718	[MULTITHREAD, SPVW_BLOCKS]: reuse heap holes for allocations
8719	* spvw_heap.d (struct heap_hole): strut at the beginning of heap hole
8720	describing it
8721	(struct Heap): add heap holes list
8722	(MIN_HOLE_SIZE_FOR_REUSE): minimum heap hole to consider for reuse
8723	* spvw_global.d (init_heaps_mt): was init_heap_locks. initialize heap
8724	holes list
8725	* spvw.d (main): use it
8726	* spvw_allocate.d (allocate_in_heap_hole): allocates varobject in heap
8727	hole (if any of required size is available)
8728	(allocate_true): try first to allocate in heap hole (if any)
8729	* spvw_garcol.d (fill_varobject_heap_holes): initialize heap holes list
8730	(split_gen0_on_holes) [GENERATIONAL_GC]: split generation 0 if there is
8731	a large hole at its end
8732	(gar_col_normal): clear heap holes before performing GC. may be split
8733	generation 0 if there is large hole at its end. take into account
8734	heap holes when computing used space
8735	* spvw_space.d (heap_holes_space): calculates space occupied by holes
8736	for reuse in given heap
8737	(used_space): take into account heap holes when computing used space
8738
87392009-12-10  Sam Steingold  <sds@gnu.org>
8740
8741	when compiling REQUIRE, if the module is not found (e.g., it is a
8742	dynamic module), call REQUIRE right away, at compile time.
8743	* defs1.lisp (augment-load-path, load-path-augmentations)
8744	(with-augmented-load-path): extracted from require
8745	(require): use with-augmented-load-path
8746	* compiler.lisp (load-or-compile): extracted from c-REQUIRE
8747	(c-REQUIRE): use load-or-compile
8748
87492009-12-08  Sam Steingold  <sds@gnu.org>
8750
8751	* modules/rawsock/rawsock.c: include <linux/netlink.h> when present
8752	(check_socket_protocol): add NETLINK_*
8753	* modules/rawsock/configure.in: check for <linux/netlink.h>
8754
87552009-12-02  Sam Steingold  <sds@gnu.org>
8756
8757	* modules/rawsock/demos/sniffer.lisp: add a demo
8758	* modules/rawsock/Makefile.in (clisp-module-distrib): install it
8759
87602009-12-02  Sam Steingold  <sds@gnu.org>
8761
8762	* modules/rawsock/rawsock.c (get_socket_protocol)
8763	[HAVE_GETPROTOBYNAME]: fix argument order in the error message
8764
87652009-12-01  Sam Steingold  <sds@gnu.org>
8766
8767	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c (unused):
8768	define depending on __GNUC__, not GNU
8769
87702009-12-01  Sam Steingold  <sds@gnu.org>
8771
8772	* modules/rawsock/rawsock.c (configdev): use strncpy/IFNAMSIZ
8773	instead of strcpy for copying the interface name
8774
87752009-11-29  Sam Steingold  <sds@gnu.org>
8776
8777	* m4/clisp.m4 (CL_CLISP): use "." instead of "source" (bash-specific)
8778
87792009-11-25  Sam Steingold  <sds@gnu.org>
8780
8781	* pathname.d (RENAME-FILE): fix the error_too_many_args invocation
8782	for the ANSI case
8783
87842009-11-25  Sam Steingold  <sds@gnu.org>
8785
8786	fix bug#536: CLEAR-INPUT should clear the EOF condition
8787	* stream.d (clear_input_unbuffered): reset status and
8788	strm_rd_ch_last slots on all streams, not just tty
8789	(clear_input_buffered): add, clear the have_eof_p slot
8790	(clear_input): call clear_input_buffered
8791
87922009-11-21  Vladimir Tzankov  <vtzankov@gmail.com>
8793
8794	* spvw.d (dynload_modules): guard libopen() with
8795	begin_blocking_system_call()
8796	* foreign.d (open_library): ditto
8797	* pathname.d (DYNLOAD-MODULES): store libpath on the C stack before
8798	calling dynload_modules
8799	* lispbibl.d (dynload_modules): maygc
8800
88012009-11-19  Sam Steingold  <sds@gnu.org>
8802
8803	* eval.d (interpret_bytecode_): use error_mv_toomany
8804	* control.d (error_mv_toomany): use the message from eval.d
8805
88062009-11-19  Sam Steingold  <sds@gnu.org>
8807
8808	RENAME-FILE accepts :IF-EXISTS (unless *ANSI* is T)
8809	* pathname.d (move_file) [WIN32_NATIVE]: atomic rename when
8810	available using MoveFileEx (available since windows 2000)
8811	(rename_existing_file): use it
8812	(rename_existing_path): add, use it in rename_file & RENAME-DIRECTORY
8813	(rename_file): accept if_exists
8814	(RENAME-FILE): accept :IF-EXISTS unless *ANSI* is T
8815	* subr.d, subrkw.d (rename_file): modify the declaration
8816	* modules/syscalls/calls.c (copy_one_file):
8817	pass :IF-EXISTS to RENAME-FILE
8818
88192009-11-19  Sam Steingold  <sds@gnu.org>
8820
8821	* eval.d (funcall_iclosure): use error_too_few_args
8822	(interpret_bytecode_): use error_too_many_args
8823	* control.d (MULTIPLE-VALUE-CALL, APPLYHOOK): ditto
8824
88252009-11-19  Sam Steingold  <sds@gnu.org>
8826
8827	* check-lispfun.lisp (check-lisp-defs): check for LISPFUNs with
8828	keywords not mentioned in subrkw.d
8829
88302009-11-15  Sam Steingold  <sds@gnu.org>
8831
8832	* makemake.in: dynamic modules do not work with C++ because of
8833	symbol mangling, so with_dynamic_modules defaults to !CC_CPLUSPLUS;
8834	and fail if --with-dynamic-modules is specified with a C++ compiler
8835
88362009-11-13  Vladimir Tzankov  <vtzankov@gmail.com>
8837
8838	* package.d (intern): perform additional symbol lookup after CERROR
8839	when package is locked - the symbol may have been interned while
8840	processing handlers (or by CERROR itself)
8841
88422009-11-12  Sam Steingold  <sds@gnu.org>
8843
8844	* lispbibl.d (unused): do not export to clisp.h, it is never used
8845	in any module and causes trouble on some platforms
8846	* modules/berkeley-db/bdb.c, modules/dirkey/dirkey.c:
8847	* modules/gtk2/gtk.lisp, modules/syscalls/calls.c:
8848	no need to "#under unused" anymore
8849	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
8850	define unused which is actually used here a few times,
8851	but only _after_ all #include's
8852
88532009-11-11  Sam Steingold  <sds@gnu.org>
8854
8855	* modules/syscalls/calls.c (unused): undef unused before all the
8856	system includes and do not restore it because it is not used here
8857
88582009-11-11  Sam Steingold  <sds@gnu.org>
8859
8860	* makemake.in (cpu): fallback to ${host_cpu}
8861	(fail): add function, use everywhere
8862
88632009-11-10  Sam Steingold  <sds@gnu.org>
8864
8865	* configure (ffi_modules): fix the configure.in test for module
8866	requiring FFI
8867
88682009-11-10  Sam Steingold  <sds@gnu.org>
8869
8870	* makemake.in (distrib): use FULLTOPDIR for build-aux
8871
88722009-11-05  Sam Steingold  <sds@gnu.org>
8873
8874	* compiler.lisp (note-function-used): use STYLE-WARNING for
8875	deprecated functions because WARNING implies non-NIL 3rd return
8876	value (failure-p) from COMPILE which is an overkill
8877	* deprecated.lisp (type-expand-1): ditto
8878
88792009-11-05  Vladimir Tzankov  <vtzankov@gmail.com>
8880
8881	* zthread.d (initialize_thread_bindings): allocate per thread value
8882	cell for symbols that do not have one
8883
88842009-11-04  Sam Steingold  <sds@gnu.org>
8885
8886	* eval.d (interpret_bytecode_): fix a type error in the last patch
8887
88882009-11-03  Vladimir Tzankov  <vtzankov@gmail.com>
8889
8890	[MULTITHREAD]: create dynamic bindings for all special variables
8891	* zthread.d (initialize_thread_bindings): initializes symbols per
8892	thread value cells during thread creation
8893	(thread_stub): use it
8894	(MAKE-THREAD): check that :initial-bindings is proper list
8895	* lispbibl.d (initialize_thread_bindings): declare as global
8896	* spvw.d (mt_main_actions): use it
8897	* control.d (make_variable_frame): allocate per thread value cells
8898	for locally declared special variables (if needed)
8899	* eval.d (progv, cod_bind): ditto
8900	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): initialize per thread
8901	bindings with global symbol values
8902
89032009-11-01  Sam Steingold  <sds@gnu.org>
8904
8905	* compiler.lisp (c-cerror): extract predefun from ...
8906	(c-error): use it; accept DETAIL as the 1st argument
8907	(test-list, c-form, test-argument-syntax, c-illegal-syntax)
8908	(c-analyze-lambdalist, bind-fixed-var-1, bind-movable-var)
8909	(bind-movable-var, c-DECLARE, c-SETQ, c-PSETQ)
8910	(c-MULTIPLE-VALUE-SETQ, c-MULTIPLE-VALUE-BIND, check-blockname)
8911	(c-RETURN-FROM, c-TAGBODY, c-GO, c-FUNCTION, err-syntax)
8912	(c-SYMBOL-MACROLET, c-EVAL-WHEN, c-COND, c-CASE, c-FUNCALL-INLINE):
8913	pass DETAIL to C-ERROR
8914	* condition.lisp (c-cerror): defun here: signal source-program-error
8915
89162009-11-01  Sam Steingold  <sds@gnu.org>
8917
8918	* compiler.lisp (c-current-location): when returning a non-empty
8919	value, terminate it with ": "
8920	(c-warning, c-error): C-CURRENT-LOCATION is either empty or is
8921	terminated by ": ", so adjust its use
8922	* condition.lisp (c-warning): ditto; also bind *ERROR-OUTPUT* to
8923	*C-ERROR-OUTPUT*, never to *C-LISTING-OUTPUT* which may be NIL,
8924	because *COMPILE-VERBOSE* does not affect condition handling
8925
89262009-11-01  Sam Steingold  <sds@gnu.org>
8927
8928	* error.d (begin_error): ensure *ERROR-OUTPUT* is valid first thing
8929
89302009-10-31  Sam Steingold  <sds@gnu.org>
8931
8932	* makemake.in (fsstnd): infer based on TSYSOS instead of HSYSOS
8933	and actively discriminate between linuxes and bsds
8934
89352009-10-31  Vladimir Tzankov  <vtzankov@gmail.com>
8936
8937	[MULTITHREAD]: acquire package mutex lock before calling use_package
8938	* package.d (unuse_package): package mutex should be locked by caller
8939	(UNUSE-PACKAGE, USE-PACKAGE, %IN-PACKAGE): lock the package
8940
89412009-10-30  Vladimir Tzankov  <vtzankov@gmail.com>
8942
8943	* spvw_garcol.d (gc_sweep1_varobject_page): fix the build when
8944	HAVE_SMALL_SSTRING is not defined
8945
89462009-10-29  Sam Steingold  <sds@gnu.org>
8947
8948	* compiler.lisp (ignore-check, value-form-index): revert last patch:
8949	3.2.5 prescribes style-warning here, the writeup is not normative
8950
89512009-10-29  Sam Steingold  <sds@gnu.org>
8952
8953	* stream.d (fresh_line_low): replaces elastic_newline_pending_p
8954	(fresh_line): use it for all legwork so that fresh-line is called
8955	individually on each constituent stream of a BROADCAST-STREAM instead
8956	of broadcasting a newline to all streams when only one needs it
8957
89582009-10-29  Sam Steingold  <sds@gnu.org>
8959
8960	* stream.d (handle_set, handle_isset): use nullp(.) instead of eq(NIL,.)
8961
89622009-10-29  Vladimir Tzankov  <vtzankov@gmail.com>
8963
8964	[MULTITHREAD]: fix GC safety issue in SOCKET-STATUS
8965	* stream.d (parse_sock_list): do not return pointer in heap, rather
8966	return the cons whose cdr should be filled with socket status
8967	(handle_set, handle_isset): use new return from parse_sock_list and
8968	preserve it across maygc calls
8969
89702009-10-28  Sam Steingold  <sds@gnu.org>
8971
8972	* defs2.lisp (date-string): fix the original bug: the date was
8973	printed to the stdout instead of being returned as a string
8974
89752009-10-28  Sam Steingold  <sds@gnu.org>
8976
8977	* compiler.lisp (ignore-check, value-form-index): make style-warning
8978	"used despite IGNORE declaration" a regular warning as per
8979	COMPILER-DIAGNOSTICS:USE-HANDLER
8980
89812009-10-28  Sam Steingold  <sds@gnu.org>
8982
8983	Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER:
8984	use the CL Condition system for compiler diagnostics.
8985	* compiler.lisp (c-current-location): add
8986	(c-warning): add predefun, uses c-comment
8987	(c-warn): use it
8988	(c-style-warn): use it instead of c-warn
8989	* condition.lisp (simple-style-warning): add
8990	(c-warning): define
8991
89922009-10-28  Sam Steingold  <sds@gnu.org>
8993
8994	remove the "COMPILER" nickname from #<PACKAGE SYSTEM>
8995	* package.d (init_packages): do not add "COMPILER" nickname to SYS
8996	* clos-class5.lisp, clos-genfun3.lisp, clos-package.lisp:
8997	* clos-slots2.lisp, compiler.lisp, defs2.lisp, deprecated.lisp:
8998	* disassem.lisp, foreign1.lisp, init.lisp, loadform.lisp:
8999	* macros1.lisp, places.lisp, trace.lisp: use SYS instead of COMPILER
9000
90012009-10-26  Sam Steingold  <sds@gnu.org>
9002
9003	fix (describe 'linux:wait)
9004	* foreign.d (PARSE-FOREIGN-INTTYPE): implement
9005	* constsym.d, subr.d (parse_foreign_inttype): declare
9006	* foreign1.lisp (parse-c-type): use it for internal int types
9007	(deparse-c-type): handle internal int types
9008
90092009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>
9010
9011	* time.d (seconds_west) [MULTITHREAD]: use reentrant functions for
9012	getting time (localtime_r, gmtime_r)
9013
90142009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>
9015
9016	[WIN32_THREADS]: use thread safe C run-time (CRT)
9017	* xthread.d (xthread_create): use _beginthreadex() for thread creation.
9018	close returned handle immediately in order to prevent leaks
9019	(xthread_exit): use _endthreadex() - releases per thread allocated
9020	resources
9021	(THREADPROC_SIGNATURE): add. specify correct calling convention and
9022	return type of start thread procedure
9023	* spvw.d (mt_main_actions): use THREADPROC_SIGNATURE
9024	* zthread.d (thread_stub): ditto
9025
90262009-10-25  Vladimir Tzankov  <vtzankov@gmail.com>
9027
9028	* control.d (make_variable_frame) [MULTITHREAD]: do not allocate per
9029	thread value cells for locally declared special variables
9030	* eval.d (interpret_bytecode_) [MULTITHREAD]: ditto for cod_bind -
9031	the code here was plain wrong
9032
90332009-10-21  Vladimir Tzankov  <vtzankov@gmail.com>
9034
9035	[MULTITHREAD]: handle SIGWINCH signal
9036	* spvw_sigwinch.d (update_linelength): update SYS::*PRIN-LINELENGTH*
9037	global value
9038	* spvw.d (main): set SYS::*PRIN-LINELENGTH* in MT builds
9039	(signal_handler_thread): handle SIGWINCH
9040
90412009-10-21  Vladimir Tzankov  <vtzankov@gmail.com>
9042
9043	* spvw_fault.d (LOCK_PAGE_CACHE, UNLOCK_PAGE_CACHE): acquire/release
9044	spinlock guarding physical page cache
9045	(handle_fault, handle_fault_range): use them
9046
90472009-10-20  Vladimir Tzankov  <vtzankov@gmail.com>
9048
9049	* lispbibl.d (jmpl_value) [MULTITHREAD]: make it per thread and export
9050	to modules
9051	* spvw.d: do not define jmpl_value in MT builds
9052
90532009-10-19  Sam Steingold  <sds@gnu.org>
9054
9055	* makemake.in (check-script): fix the non-UNICODE build
9056	Reported by Angel Popov <angelpopov@yahoo.com>
9057
90582009-10-16  Sam Steingold  <sds@gnu.org>
9059
9060	* configure.in (AC_INIT): use m4_esyscmd instead of esyscmd
9061
90622009-10-15  Sam Steingold  <sds@gnu.org>
9063
9064	* built.d (built_flags) [DYNAMIC_FFI]: add libffcall version based
9065	on LIBFFCALL_VERSION
9066
90672009-10-15  Vladimir Tzankov  <vtzankov@gmail.com>
9068
9069	* lispbibl.d [MULTITHREAD]: allow USE_CUSTOM_TLS=2 on 64bit builds.
9070	gcc on osx 10.6+ still does not support __thread qualifier
9071
90722009-10-14  Sam Steingold  <sds@gnu.org>
9073
9074	* stream.d (handle_direction_compatible): NtQueryInformationFile
9075	is for FILE_TYPE_DISK only, for FILE_TYPE_CHAR, FILE_TYPE_PIPE,
9076	FILE_TYPE_REMOTE assume compatibility
9077
90782009-10-12  Sam Steingold  <sds@gnu.org>
9079
9080	* stream.d (handle_pathname): extract from handle_to_stream and
9081	implement for WIN32_NATIVE
9082	(handle_to_stream): use it
9083
90842009-10-12  Sam Steingold  <sds@gnu.org>
9085
9086	* stream.d (handle_direction_compatible): implement for
9087	WIN32_NATIVE using NtQueryInformationFile (fixes check-script)
9088
90892009-10-09  Vladimir Tzankov  <vtzankov@gmail.com>
9090
9091	[MULTITHREAD]: simplify alternative TLS on 32 bit builds
9092	* lispbibl.d (struct thread_specific_data): use spinlock instead of
9093	mutex and export it
9094	* spvw.d (tsd_initialize, tsd_setspecific, tsd_remove_specific): ditto
9095	(tsd_slow_getspecific): lock (with spinlock) hash table modifications.
9096	prevents races with tsd_remove_specific. contention is unlikely
9097	(get_stack_region): implement for WIN32_THREADS. stack range returned
9098	is [*base ... (*base + *size)] regardless SP_DOWN/UP
9099	(current_stack_base, current_stack_size): remove
9100	(set_current_thread): use get_stack_region()
9101	(main) [USE_CUSTOM_TLS=3]: clear all thread mappings before spawning
9102	"main thread"
9103
91042009-10-09  Sam Steingold  <sds@gnu.org>
9105
9106	* .gdbinit (run_mod_test): add
9107	(run_ansi_tests): rename from ansi_tests
9108	(run_ansi_tests_compiled): renamed from ansi_tests_compiled
9109
91102009-10-08  Sam Steingold  <sds@gnu.org>
9111
9112	* lispbibl.d (STACK, back_trace): do not write the declaration
9113	into clisp.h if the symbol is defined as a CPP macro
9114
91152009-10-08  Sam Steingold  <sds@gnu.org>
9116
9117	* win32aux.d (CHECK_ERROR_IGNORE_INVALID): add
9118	(fd_read_wont_hang_p): use it to ignore both
9119	ERROR_INVALID_FUNCTION and ERROR_INVALID_HANDLE in
9120	GetNumberOfConsoleInputEvents and ClearCommError
9121
91222009-10-08  Sam Steingold  <sds@gnu.org>
9123
9124	* makemake.in (full-mod-check): use base, not full, and require
9125	the module from the test files
9126
91272009-10-08  Sam Steingold  <sds@gnu.org>
9128
9129	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/stddef.in.h:
9130	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
9131	* modules/regexp/glm4/unistd_h.m4, modules/syscalls/gllib/Makefile.am:
9132	* modules/syscalls/gllib/errno.in.h, modules/syscalls/gllib/stddef.in.h:
9133	* modules/syscalls/gllib/strings.in.h, modules/syscalls/gllib/uname.c:
9134	* modules/syscalls/gllib/sys_socket.in.h, gllib/wchar.in.h:
9135	* modules/syscalls/gllib/sys_utsname.in.h, gllib/wctype.in.h:
9136	* modules/syscalls/gllib/time.in.h, modules/syscalls/gllib/unistd.in.h:
9137	* modules/syscalls/glm4/unistd_h.m4
9138	* gllib/Makefile.am, gllib/alloca.in.h, gllib/stdbool.in.h:
9139	* gllib/stddef.in.h, gllib/stdint.in.h, gllib/streq.h:
9140	* gllib/string.in.h, gllib/sys_time.in.h, gllib/unistd.in.h:
9141	update from gnulib, using the gnulib-tool hack
9142
91432009-10-08  Sam Steingold  <sds@gnu.org>
9144
9145	* Makefile.devel (gnulib-imported): since Bruno refuses to apply
9146	my gnulib-tool patch, we have to patch gnulib-tool before importing
9147	* gnulib-tool.patch: add gnulib-tool hack to support multiple
9148	gllib directories: headers are generated for each gllib
9149	differently, depending on which features are actually used, so we
9150	need to be able to include all these generated headers without
9151	fear that one will shadow another, so we prepend the macro-prefix
9152	before the guard macros
9153
91542009-10-08  Sam Steingold  <sds@gnu.org>
9155
9156	support DYNAMIC_MODULES on woe32 (native & cygwin) using dll def file
9157	* array.d, charstrg.d, control.d, encoding.d, error.d, errunix.d:
9158	* errwin32.d, eval.d, flo_konv.d, foreign.d, hashtabl.d, intelem.d:
9159	* intlog.d, intplus.d, intserial.d, lisparit.d, list.d, misc.d:
9160	* package.d, pathname.d, predtype.d, sequence.d, socket.d, spvw.d:
9161	* spvw_allocate.d, spvw_debug.d, spvw_fault.d, spvw_global.d:
9162	* spvw_language.d, spvw_module.d, spvw_sigcld.d, spvw_sigpipe.d:
9163	* spvw_typealloc.d, spvwtabf.d, spvwtabo.d, spvwtabs.d, stream.d:
9164	* symbol.d, time.d, unixaux.d, win32aux.d:
9165	mark objects exported to modules with modexp instead of global
9166	* clisp-link.in (prepare_dynamic_module): add @CLISP_DEF@ to libs
9167	* genclisph.d (emit_dll_def, exportV, exportF, exportE): add;
9168	accept the second command line argument: the dll def file name
9169	* lispbibl.d (DYNAMIC_TABLES, modexp, modimp): define;
9170	use modimp to declare objects exported to modules instead of
9171	extern (use exportV, exportF and exportE for that) and output then
9172	into the dll def file using emit_dll_def
9173	* makemake.in (CLISP_DEF) [with_dynamic_modules]: define to
9174	"lisp.def" on woe32 (both native and cygwin) and add it to FILES;
9175	generated it together with clisp.h
9176	(makevars): add it to LIBS
9177	(clisp-link): substitute it
9178	(clean1): remove it
9179	* modules.c: when DYNAMIC_TABLES is defined, i.e., on
9180	woe32+dynamic modules, we cannot use, e.g., &subr_tab_data to init
9181	the modules list, so init to NULL and leave the actual
9182	initialization to...
9183	* spvw_module.d (init_modules_0) [DYNAMIC_TABLES]: init
9184	main_module.stab and main_module.otab
9185	Thanks to Daniel Leidert <daniel.leidert@gmx.net> for much enlightening!
9186
91872009-10-08  Sam Steingold  <sds@gnu.org>
9188
9189	* makemake.in (anymodule): add -I${HEREP} to CPPFLAGS for
9190	localcharset.h et al
9191
91922009-10-08  Vladimir Tzankov  <vtzankov@gmail.com>
9193
9194	[MULTITHREAD]: fix USE_CUSTOM_TLS=2 build
9195	* lispbibl.d (struct thread_specific_data): export properly
9196	* spvw.d (tsd_remove_specific): clear cache for removed entry
9197	(tsd_slow_getspecific): simplify
9198	(delete_thread): cleanup thread thread specific entry
9199
92002009-10-07  Sam Steingold  <sds@gnu.org>
9201
9202	try to produce meaningful error messages on platforms without dlerror
9203	http://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/e720d92269df1398/b2381f02f3bfc8a3
9204	* spvw.d (error_dlerror) [DYNAMIC_MODULES]: accept an object
9205	instead of an ASCII string as the last argument
9206	(dlerror_message): produce object error message using dlerror() or
9207	FormatMessage
9208	(get_module_symbol, dynload_modules): use dlerror_message instead
9209	of dlerror in the error_dlerror call
9210	* constobj.d (unknown_error, oomst_error) [DYNAMIC_MODULES]: add
9211
92122009-10-07  Vladimir Tzankov  <vtzankov@gmail.com>
9213
9214	* package.d (rehash_symtab): do not use dotimespC but do/while.
9215	simplifies the code and enables stepping in gdb
9216
92172009-10-05  Sam Steingold  <sds@gnu.org>
9218
9219	* clisp-link.in: similar to the 2009-10-01 m4/clisp.m4 patch,
9220	redirect stderr of 'clisp --version' to /dev/null
9221
92222009-10-02  Bruno Haible  <bruno@clisp.org>
9223
9224	Use -DENABLE_UNICODE instead of -DUNICODE.
9225	* makemake.in (XCFLAGS): Use -DENABLE_UNICODE instead of -DUNICODE.
9226	* *.d: Test ENABLE_UNICODE instead of UNICODE.
9227	* modules/clx/new-clx/clx.f: Likewise.
9228	* win32.d (UNICODE_SAVED): Remove macro.
9229	* _clisp.c (UNICODE): Remove undef.
9230	* modules/berkeley-db/bdb.c (UNICODE): Likewise.
9231	* modules/dirkey/dirkey.c (UNICODE): Likewise.
9232	* modules/i18n/gettext.c (UNICODE): Likewise.
9233	* modules/rawsock/rawsock.c (UNICODE): Likewise.
9234	* modules/syscalls/calls.c (UNICODE): Likewise.
9235
92362009-10-01  Bruno Haible  <bruno@clisp.org>
9237
9238	* spvw.d (init_subr_tab_1): Correct error message.
9239	Reported by Sam Steingold.
9240
92412009-10-01  Sam Steingold  <sds@gnu.org>
9242
9243	* makemake.in (SYSLIBS): remove obsolete unused win32-specific code
9244
92452009-10-01  Sam Steingold  <sds@gnu.org>
9246
9247	* m4/clisp.m4 (CL_CLISP): remove an unnecessary subshell;
9248	redirect 'clisp --version' stderr to /dev/null because 'head -n 1'
9249	closes its input and clisp errors out with "[stream.d:5473] *** -
9250	Win32 error 232 (ERROR_NO_DATA): The pipe is being closed."
9251
92522009-10-01  Sam Steingold  <sds@gnu.org>
9253
9254	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/unistd_h.m4:
9255	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/unistd_h.m4:
9256	* gllib/unistd.in.h, glm4/unistd_h.m4: update from gnulib
9257
92582009-09-29  Sam Steingold  <sds@gnu.org>
9259
9260	* configure.in: call AC_SUBST(LIBTOOL_DEPS)
9261	* makemake.in (libtool): regenerate from LIBTOOL_DEPS
9262
92632009-09-30  Sam Steingold  <sds@gnu.org>
9264
9265	* win32aux.d (fd_read_wont_hang_p): support serial communication
9266	devices using ClearCommError
9267	Reported by Angel Popov <angelpopov@yahoo.com>
9268
92692009-09-30  Vladimir Tzankov  <vtzankov@gmail.com>
9270
9271	[MULTITHREAD]: do not lock packages while iterating over them
9272	* constsym.d, subr.d (package_iterate_cleanup): remove
9273	* defs1.lisp (with-package-iterator): roll back changes from 2009-08-28
9274	(package-iterator-function): ditto
9275	* package.d: remove extra (LOCKED) field from Package Iterator State
9276	(PACKAGE-ITERATE): do not lock current package
9277	(PACKAGE-ITERATE-CLEANUP): remove
9278	(MAP-SYMBOLS, MAP-EXTERNAL-SYMBOLS): do not lock packages. symtabs have
9279	"copy-on-rehash" semantics and insertion/deletion is segfaul safe
9280	(MAP-ALL-SYMBOLS): do not lock individual packages. make a copy of all
9281	packages list and iterate over it
9282	* constobj.d (version): revert to old ABI
9283	* loop.lisp (expand-loop): do not use WRAP-UNWIND-PROTECT when iterating
9284	over packages
9285
92862009-09-30  Vladimir Tzankov  <vtzankov@gmail.com>
9287
9288	* lispbibl.d (symbol_value_b): fix MT g++ build
9289
92902009-09-29  Sam Steingold  <sds@gnu.org>
9291
9292	* spvw_debug.d (nobject_out_level): extract from nobject_out
9293
92942009-09-27  Sam Steingold  <sds@gnu.org>
9295
9296	fix bug#532: declaim signals an error on an invalid declaration
9297	* compiler.lisp (parse-optimize-quality): can be called by DECLAIM,
9298	so call c-WARN or WARN depending on *COMPILING*
9299
93002009-09-27  Bruno Haible  <bruno@clisp.org>
9301
9302	* m4/connect.m4 (CL_CONNECT): Terminate the expansion with a newline.
9303
93042009-09-26  Vladimir Tzankov  <vtzankov@gmail.com>
9305
9306	[MULTITHREAD]: fix thread safety issue in printer
9307	* lispbibl.d (Symbol_thread_binding): returns symbol binding in current
9308	thread (if any)
9309	* io.d (pr_external_1, BIND_UNLESS): use it
9310
93112009-09-26  Vladimir Tzankov  <vtzankov@gmail.com>
9312
9313	* package.d (intern) [MULTITHREAD]: search for symbol before locking
9314	package (it is faster)
9315
93162009-09-25  Aleksej Saushev  <asau@inbox.ru>
9317
9318	* makemake.in (BUILD_AUX): do not link_dep if building in src to
9319	avoid cyclic dependency
9320
93212009-09-25  Sam Steingold  <sds@gnu.org>
9322
9323	* makemake.in (HERE): set to "./" on all platforms: it seems to be
9324	needed on mingw and should not be able to hurt anyway
9325
93262009-09-25  Sam Steingold  <sds@gnu.org>
9327
9328	fix bug#534: Do not eliminate function calls which are
9329	advertised to have exceptional situation in unsafe code.
9330	* lispbibl.d (seclass_t): add seclass_rd_sig: same as read,
9331	but is also advertised to have "Exceptional situations" in unsafe code
9332	(seclass_object): handle it
9333	* constobj.d (seclass_rd_sig): add
9334	* control.d (FDEFINITION): seclass_rd_sig
9335	* io.d (GET-DISPATCH-MACRO-CHARACTER, PARSE-INTEGER): seclass_rd_sig
9336	* pathname.d (PARSE-NAMESTRING, LOGICAL-PATHNAME, WILD-PATHNAME-P)
9337	(PATHNAME-MATCH-P, TRUENAME, PROBE-FILE, PROBE-DIRECTORY, DIRECTORY):
9338	(FILE-WRITE-DATE, FILE-AUTHOR): seclass_rd_sig
9339	* predtype.d (COERCE): seclass_rd_sig
9340	* sequence.d (CONCATENATE): seclass_rd_sig
9341	* subr.d: update all of the above
9342	Reported by "Tobias C. Rittweiler" <tcr@freebits.de>
9343
93442009-09-25  Vladimir Tzankov  <vtzankov@gmail.com>
9345
9346	* package.d (intern): fix possible races in MT builds. guard both -
9347	symtab lookup and insert with package mutex. it was possible to have
9348	different interned symbols with same print name
9349
93502009-09-23  Sam Steingold  <sds@gnu.org>
9351
9352	* makemake.in (lisp${SHREXT}): only define on with_dynamic_modules
9353	& woe32 (and cygwin) and add $(LIBS) to libs; depend on ${GLLIB_A}
9354
93552009-09-22  Sam Steingold  <sds@gnu.org>
9356
9357	* modules/regexp/gllib/unistd.in.h, modules/syscalls/gllib/unistd.in.h:
9358	* gllib/unistd.in.h, glm4/link-follow.m4: update from gnulib
9359
93602009-09-22  Sam Steingold  <sds@gnu.org>
9361
9362	* makemake.in (.PHONY): add am--refresh
9363	(SUBDIRS): teeny code simplification
9364	(config.status): also rm $(SUBDIRS)
9365	(anymodule): ditto: reconfiguring obsoletes gllib
9366	(GLLIB_A): do not re-execute the code already done in gllib
9367	(install-bin): depend on full instead of lispinit et al
9368
93692009-09-21  Sam Steingold  <sds@gnu.org>
9370
9371	* pathname.d (DYNLOAD-MODULES): report what is being done
9372	* constsym.d (loading_message, load_level): export for DYNLOAD-MODULES
9373
93742009-09-21  Sam Steingold  <sds@gnu.org>
9375
9376	* clisp-link.in (with_dynamic_modules): load the modules files
9377	with an explicit .fas extension, both to override .lisp inherited
9378	from *load-truename* and to ensure that the module is compiled
9379	Reported by Barry Fishman <barry_fishman@acm.org>
9380
93812009-09-20  Sam Steingold  <sds@gnu.org>
9382
9383	* modules/regexp/gllib/stdlib.in.h, modules/regexp/gllib/unistd.in.h:
9384	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
9385	* modules/syscalls/gllib/unistd.in.h, modules/syscalls/glm4/unistd_h.m4:
9386	* gllib/unistd.in.h, glm4/unistd_h.m4: update from gnulib
9387	* modules/regexp/gllib/Makefile.am, modules/syscalls/gllib/Makefile.am:
9388	* gllib/Makefile.am: regenerate
9389
93902009-09-20  Sam Steingold  <sds@gnu.org>
9391
9392	* glm4/absolute-header.m4, glm4/btowc.m4, glm4/malloc.m4:
9393	* glm4/regex.m4, glm4/ssize_t.m4, glm4/stdlib_h.m4,
9394	* glm4/wcrtomb.m4: remove obsolete files (now in modules/regexp/glm4)
9395	* glm4/fnmatch.m4: remove obsolete file (now in modules/wildcard/glm4)
9396
93972009-09-20  Sam Steingold  <sds@gnu.org>
9398
9399	* Makefile.devel (gnulib-imported): remove backups in glm4 too
9400
94012009-09-18  Sam Steingold  <sds@gnu.org>
9402
9403	* m4/clisp.m4 (CL_CLISP): fix cl_cv_have_clisp caching;
9404	accept an optional second argument to specify whether the features
9405	and clisp itself are required or not (default=true)
9406
94072009-09-17  Sam Steingold  <sds@gnu.org>
9408
9409	Update gnulib imports (mostly for mktime fixes for NetBSD/i386)
9410	* modules/regexp/gllib/stddef.in.h, modules/regexp/glm4/stddef_h.m4:
9411	* modules/regexp/glm4/wchar_t.m4, modules/syscalls/gllib/stddef.in.h:
9412	* modules/syscalls/glm4/stddef_h.m4, modules/syscalls/glm4/wchar_t.m4:
9413	* gllib/stddef.in.h, glm4/stddef_h.m4: add
9414	* modules/regexp/gllib/Makefile.am, modules/regexp/gllib/stdlib.in.h:
9415	* modules/regexp/gllib/unistd.in.h, modules/regexp/glm4/gnulib-comp.m4:
9416	* modules/regexp/glm4/stdlib_h.m4, modules/regexp/glm4/unistd_h.m4:
9417	* modules/syscalls/gllib/Makefile.am, modules/syscalls/gllib/mktime.c:
9418	* modules/syscalls/gllib/sys_socket.in.h:
9419	* modules/syscalls/gllib/time.in.h:
9420	* modules/syscalls/gllib/unistd.in.h:
9421	* modules/syscalls/glm4/gethostname.m4:
9422	* modules/syscalls/glm4/gnulib-comp.m4:
9423	* modules/syscalls/glm4/sockets.m4:
9424	* modules/syscalls/glm4/sockpfaf.m4:
9425	* modules/syscalls/glm4/sys_socket_h.m4:
9426	* modules/syscalls/glm4/time_r.m4, modules/syscalls/glm4/unistd_h.m4:
9427	* modules/wildcard/gllib/Makefile.am
9428	* gllib/Makefile.am, gllib/string.in.h, gllib/unistd.in.h:
9429	* gllib/wctype.in.h, glm4/gnulib-comp.m4, glm4/link-follow.m4:
9430	* glm4/string_h.m4, glm4/threadlib.m4, glm4/unistd_h.m4:
9431	* glm4/wchar.m4, glm4/wctype.m4: update
9432
9433	* modules/syscalls/configure.in: gl_AC_FUNC_LINK_FOLLOWS_SYMLINK
9434	has been renamed to gl_FUNC_LINK_FOLLOWS_SYMLINK
9435
94362009-09-17  Sam Steingold  <sds@gnu.org>
9437
9438	* Makefile.devel (update-gnulib): add a missing semicolon
9439	(gnulib-imported): add a missing dollar sign
9440
94412009-09-16  Sam Steingold  <sds@gnu.org>
9442
9443	* package.d (MAP-SYMBOLS, MAP-EXTERNAL-SYMBOLS): lock the
9444	individual packages being iterated over
9445	(MAP-ALL-SYMBOLS): ditto, instead of locking all_packages_lock
9446	(RE-EXPORT): lock TO-PACK
9447
94482009-09-17  Vladimir Tzankov  <vtzankov@gmail.com>
9449
9450	* xthread.d (spinlock_release) [I80386, AMD64]: add gcc optimization
9451	barrier (reimplemented in inline asm)
9452
94532009-09-14  Sam Steingold  <sds@gnu.org>
9454
9455	* m4/ffcall.m4 (CL_FFCALL): suggest cvs/savannah instead of
9456	wget/gnu.org because there is no ffcall tarball on gnu.org
9457
94582009-09-14  Sam Steingold  <sds@gnu.org>
9459
9460	* m4/clisp.m4 (CL_CLISP): upcase the features for messages and variables
9461	Thanks to Eric Blake <ebb9@byu.net> for much enlightening!
9462
94632009-09-13  Sam Steingold  <sds@gnu.org>
9464
9465	* clisp-link.in (set_dynamic_module_location): *user-lib-directory*
9466	may be NIL which is not a valid pathname designator
9467
94682009-09-13  Sam Steingold  <sds@gnu.org>
9469
9470	* makemake.in (BUILD_AUX): when verbose, report it
9471	(full): pass CLISP=... to clisp-link to possibly override the user
9472	setting pointing somewhere else;
9473	[with_dynamic_modules]: mkdir dynmod
9474
94752009-09-13  Sam Steingold  <sds@gnu.org>
9476
9477	* m4/clisp.m4 (CL_CLISP): check for a specified list of features
9478	(CL_CLISP_NEED_FFI): remove
9479	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): fix AC_REQUIRE(CL_CLISP)
9480	* modules/dbus/configure.in, modules/fastcgi/configure.in:
9481	* modules/gtk2/configure.in, modules/oracle/configure.in:
9482	* modules/pari/configure.in, modules/postgresql/configure.in:
9483	* modules/readline/configure.in, modules/wildcard/configure.in:
9484	* modules/zlib/configure.in: replace CL_CLISP_NEED_FFI with an
9485	argument to CL_MODULE_COMMON_CHECKS
9486
94872009-09-13  Sam Steingold  <sds@gnu.org>
9488
9489	* modules/i18n/configure.in: remove the spurious FFI dependency
9490
94912009-09-12  Aleksej Saushev  <asau@inbox.ru>
9492
9493	* makemake.in (INSTALL_SCRIPT): use instead of INSTALL_PROGRAM for
9494	clisp-link (avoids stripping the script, which is a problem on NetBSD)
9495
94962009-09-11  Sam Steingold  <sds@gnu.org>
9497
9498	* m4/clisp.m4 (CL_CLISP): use cl_use_clisp instead of
9499	cl_cv_use_clisp to avoid unnecessary caching
9500
95012009-09-11  Sam Steingold  <sds@gnu.org>
9502
9503	* makemake.in (check-doc): pass "--tries=1" to wget,
9504	"-connect_timeout=10" to lynx and
9505	"--max-time 10" to curl to limit wait time;
9506	try only one of wget/lynx/curl, not every one of them in order
9507	(base): set CLISP='./clisp -K boot' for clisp-link because base is
9508	not present yet thus the default will not work
9509	(anymodule): no need to pass localeflags to clisp
9510
95112009-09-11  Sam Steingold  <sds@gnu.org>
9512
9513	* m4/clisp.m4: move FFI check from CL_CLISP to CL_CLISP_NEED_FFI
9514	and AC_REQUIRE CL_CLISP in CL_CLISP_NEED_FFI
9515
95162009-09-11  Sam Steingold  <sds@gnu.org>
9517
9518	* clisp-link.in (current_linking_set): use (sys::program-name)
9519	instead of (aref (argv) 0)
9520
95212009-09-11  Sam Steingold  <sds@gnu.org>
9522
9523	* m4/clisp.m4 (CL_CLISP): add an early cl_cv_have_clisp=no
9524	rename cl_cv_clisp_modset to cl_cv_clisp_linkset
9525	also check for ${cl_cv_clisp_libdir}linkkit/modules.c, as in clisp-link
9526
95272009-09-10  Sam Steingold  <sds@gnu.org>
9528
9529	* makemake.in (MYIMPROOT): revert the 2009-07-06 patch, use podval again
9530
95312009-09-10  Sam Steingold  <sds@gnu.org>
9532
9533	New user variable CUSTOM:*USER-LIB-DIRECTORY* is respected by
9534	REQUIRE and used by "clisp-link install".
9535	* clisp-link.in (link): remove the obsolete command
9536	(install): add command
9537	(set_dynamic_module_location, current_linking_set): add
9538	(prepare_dynamic_module): call set_dynamic_module_location
9539	* constsym.d (user_lib_directory): add
9540	* defs1.lisp (*user-lib-directory*): defvar
9541	(require): treat it the same as *lib-directory*
9542	* spvw.d (init_symbol_values): define_variable user_lib_directory
9543	(main_actions): init user_lib_directory
9544	* makemake.in: install clisp-link in bindir;
9545	generate and install its manpage
9546
95472009-09-10  Sam Steingold  <sds@gnu.org>
9548
9549	* modules/queens/Makefile (callqueens.m.c): fix modprep invocation
9550	* modules/queens/queens.c (queens): add a prototype to pacify gcc
9551
95522009-09-10  Sam Steingold  <sds@gnu.org>
9553
9554	* modules/berkeley-db/link.sh.in, modules/bindings/glibc/link.sh:
9555	* modules/bindings/win32/link.sh, modules/clx/mit-clx/link.sh:
9556	* modules/clx/new-clx/link.sh.in, modules/dbus/link.sh.in:
9557	* modules/dirkey/link.sh.in, modules/fastcgi/link.sh.in:
9558	* modules/gdbm/link.sh.in, modules/gtk2/link.sh.in:
9559	* modules/i18n/link.sh.in, modules/libsvm/link.sh:
9560	* modules/matlab/link.sh, modules/netica/link.sh:
9561	* modules/oracle/link.sh.in, modules/pari/link.sh.in:
9562	* modules/pcre/link.sh.in, modules/postgresql/link.sh.in:
9563	* modules/queens/link.sh, modules/rawsock/link.sh.in:
9564	* modules/readline/link.sh.in, modules/regexp/link.sh.in:
9565	* modules/syscalls/link.sh.in, modules/wildcard/link.sh.in:
9566	* modules/zlib/link.sh.in: pass CLISP="${CLISP}" to make
9567
95682009-09-08  Sam Steingold  <sds@gnu.org>
9569
9570	* modules/bindings/win32/Makefile (win32.o): do not depend on
9571	$(CLISP_LINKKIT)/clisp.h because, first, clisp is presumed to be
9572	set in stone while a module is compiles, and, second,
9573	$(CLISP_LINKKIT) may contain a colon (full path on win32 contains
9574	the drive!) and thus confuse make ("multiple target patterns")
9575	* modules/bindings/glibc/Makefile (linux.o): ditto
9576
95772009-09-03  Sam Steingold  <sds@gnu.org>
9578
9579	* modules/bindings/glibc/Makefile, modules/bindings/win32/Makefile:
9580	* modules/libsvm/Makefile, modules/matlab/Makefile:
9581	* modules/netica/Makefile, modules/queens/Makefile:
9582	* modules/berkeley-db/link.sh.in, modules/dbus/link.sh.in:
9583	* modules/dirkey/link.sh.in, modules/fastcgi/link.sh.in:
9584	* modules/gdbm/link.sh.in, modules/gtk2/link.sh.in:
9585	* modules/i18n/link.sh.in, modules/libsvm/link.sh:
9586	* modules/matlab/link.sh, modules/netica/link.sh:
9587	* modules/oracle/link.sh.in, modules/pari/link.sh.in:
9588	* modules/pcre/link.sh.in, modules/postgresql/link.sh.in:
9589	* modules/queens/link.sh, modules/rawsock/link.sh.in:
9590	* modules/readline/link.sh.in, modules/regexp/link.sh.in:
9591	* modules/syscalls/link.sh.in, modules/wildcard/link.sh.in:
9592	* modules/bindings/glibc/link.sh, modules/bindings/win32/link.sh:
9593	* modules/clx/mit-clx/link.sh, modules/clx/new-clx/link.sh.in:
9594	* modules/zlib/link.sh.in, clisp-link.in, makemake.in:
9595	use CLISP_LINKKIT instead of INCLUDES
9596
95972009-09-03  Sam Steingold  <sds@gnu.org>
9598
9599	* clisp-link.in (check_module): when ${CLISP} is set and
9600	$1/link.sh is not found, run "$1/configure --with-clisp=${CLISP}"
9601
96022009-09-03  Sam Steingold  <sds@gnu.org>
9603
9604	* modules/libsvm/Makefile (svm$(SHREXT)): no need to add -I$(INCLUDES)
9605	* modules/postgresql/Makefile.in (postgresql.fas): remove an extra rule
9606	* modules/clx/new-clx/Makefile.in (clisp-module-distrib): fix a typo;
9607	use "mkdir -p"
9608
96092009-09-03  Sam Steingold  <sds@gnu.org>
9610
9611	* modules/berkeley-db/Makefile.in, modules/clx/new-clx/Makefile.in:
9612	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
9613	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
9614	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
9615	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
9616	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
9617	* modules/rawsock/Makefile.in, modules/readline/Makefile.in:
9618	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
9619	* modules/wildcard/Makefile.in, modules/zlib/Makefile.in:
9620	(CLISP): init to @CLISP@ -norc -q
9621	(CLISP_LINKKIT): init to @CLISP_LINKKIT@ and use instead of INCLUDES
9622	* m4/clisp.m4 (CL_CLISP): define CLISP_LINKKIT instead of CLISP_INCLUDE
9623
96242009-09-02  Sam Steingold  <sds@gnu.org>
9625
9626	modules should be buildable using pre-installed clisp
9627	* makemake.in (build-aux): add link_dep target
9628	(modular): depend on it
9629	(BUILD_AUX): compute the files which module configures need
9630	(anymodule): pass --with-clisp to module configures
9631	(distrib, install, install-bin): install BUILD_AUX in libdir/build-aux
9632	* m4/clisp.m4 (CL_CLISP): major rewrite for better caching
9633	(CL_CLISP_NEED_FFI): add
9634	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): require CL_CLISP,
9635	pass cl_cv_clisp_libdir/build-aux to AC_CONFIG_AUX_DIR
9636	* modules/berkeley-db/configure.in, modules/clx/new-clx/configure.in:
9637	* modules/dirkey/configure.in, modules/gdbm/configure.in:
9638	* modules/i18n/configure.in, modules/pcre/configure.in:
9639	* modules/rawsock/configure.in, modules/regexp/configure.in:
9640	* modules/syscalls/configure.in: call CL_MODULE_COMMON_CHECKS
9641	without arguments
9642	* modules/dbus/configure.in, modules/fastcgi/configure.in:
9643	* modules/gtk2/configure.in, modules/oracle/configure.in:
9644	* modules/pari/configure.in, modules/postgresql/configure.in:
9645	* modules/readline/configure.in, modules/wildcard/configure.in:
9646	* modules/zlib/configure.in: ditto and call CL_CLISP_NEED_FFI
9647	* Makefile.devel ($(MAKEFILE_IN)): create symlink $cl_cv_clisp_libdir
9648	before automake and remove it afterwards
9649
96502009-08-30  Vladimir Tzankov  <vtzankov@gmail.com>
9651
9652	* lispbibl.d (GC_SAFE_ACK_SUSPEND_REQUEST_): do not try to acquire
9653	_gc_suspend_request spinlock - we already hold it
9654	(GC_SAFE_REGION_END_i): acquire (not 'try acquire') _gc_suspend_request
9655
96562009-08-30  Vladimir Tzankov  <vtzankov@gmail.com>
9657
9658	fix WITH-PACKAGE-ITERATOR thread-safety
9659	* package.d (PIS_LOCK, PIS_UNLOCK): lock/unlock all_packages_lock
9660	prior/after package lock is locked/unlocked. use MUTEX-LOCK and
9661	MUTEX-UNLOCK for handling package locks
9662	(PACKAGE-ITERATE): release locks at the end of iteration
9663
96642009-08-30  Sam Steingold  <sds@gnu.org>
9665
9666	* loop.lisp (wrap-unwind-protect): add
9667	(expand-loop): use it when iterating over packages for thread safety
9668
96692009-08-28  Sam Steingold  <sds@gnu.org>
9670
9671	make WITH-PACKAGE-ITERATOR thread-safe
9672	* constsym.d, subr.d (package_iterate_cleanup): add
9673	* defs1.lisp (with-package-iterator): wrap MACROLET in
9674	UNWIND-PROTECT and call CLEANUPFUN, returned by ...
9675	(package-iterator-function): return two values: iterfun and cleanupfun
9676	* package.d: add an extra (7th) field to Package Iterator State
9677	(package-iterate): fill the extra LOCKED field when taking symtab
9678	and lock the appropriate package's internal mutex
9679	(package-iterate-cleanup): unlock the currently locked internal mutex
9680	* constobj.d (version): bump because the ABI function
9681	PACKAGE-ITERATOR-FUNCTION now returns two values and the
9682	previously compiled files will not call the cleanup function,
9683	resulting in a locked internal mutex and blocking READ
9684
96852009-08-28  Sam Steingold  <sds@gnu.org>
9686
9687	* package.d (PACKAGE-ITERATOR, PACKAGE-ITERATE): use symbolic
9688	macros PIS_* (for Package Iterator State) instead of literals
9689
96902009-08-26  Vladimir Tzankov  <vtzankov@gmail.com>
9691
9692	[MULTITHREAD]: threads suspend/resume cleanup
9693	* spvw_global.d (gc_suspend_all_threads): do not try to acquire suspend
9694	request spinlock
9695	* lispbibl.d (GC_SAFE_REGION_END_i, GC_SAFE_ACK_SUSPEND_REQUEST_): try
9696	to get suspend request spinlock when resuming thread execution
9697
96982009-08-26  Sam Steingold  <sds@gnu.org>
9699
9700	* makemake.in (full-mod-check): same dependencies as base-mod-check
9701
97022009-08-25  Sam Steingold  <sds@gnu.org>
9703
9704	* makemake.in (PATH) [mingw]: do not set; there appears to be no good
9705	reason to set it, and the present setting reverses the normal order
9706	Reported by Cesar Romani <cesar.romani@gmail.com> in
9707	<http://article.gmane.org/gmane.lisp.clisp.general/13055>
9708	<https://sourceforge.net/p/clisp/mailman/message/23374349/>
9709
97102009-08-24  Sam Steingold  <sds@gnu.org>
9711
9712	* version.sh: 2.48+ (2009-08-24)
9713
97142009-08-24  Sam Steingold  <sds@gnu.org>
9715
9716	FFI:OPEN-FOREIGN-LIBRARY now accepts the :REQUIRE argument.
9717	* foreign.d (update_library): update the dependencies before
9718	handling the library itself
9719	(check_library): allocate space for dependencies in lib_spec
9720	(FFI:OPEN-FOREIGN-LIBRARY): accept :require
9721	(push_foreign_object): lib_spec now contains dependencies before objects
9722	* subr.d, subrkw.d (open_foreign_library): update
9723	* constsym.d (Krequire) [WIN32 || HAVE_DLOPEN]: add
9724
97252009-08-20  Sam Steingold  <sds@gnu.org>
9726
9727	accept -disable-readline run-time option
9728	* lispbibl.d (disable_readline): declare
9729	* spvw.d (disable_readline): define
9730	(usage): document -disable-readline
9731	(parse_options): set disable_readline when -disable-readline is given
9732	* stream.d (make_terminal_stream_): do not use readline when
9733	disable_readline is true
9734
97352009-08-19  Vladimir Tzankov  <vtzankov@gmail.com>
9736
9737	* package.d (symbol_list_lookup): search for symbol name in a list
9738	(symtab_find, shadowing_lookup): use it
9739
97402009-08-18  Sam Steingold  <sds@gnu.org>
9741
9742	* makemake.in (XCC_PICFLAG) [cygwin]: empty:
9743	"warning: -fPIC ignored for target (all code is position independent)"
9744
97452009-08-17  Bruno Haible  <bruno@clisp.org>
9746
9747	* spvw_sigsegv.d (stackoverflow_handler_continuation): Update
9748	reference to Linux/arm register to match current API.
9749
97502009-08-16  Sam Steingold  <sds@gnu.org>
9751
9752	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
9753	* modules/bindings/win32/Makefile, modules/clx/mit-clx/Makefile:
9754	* modules/clx/new-clx/Makefile.in, modules/dbus/Makefile.in:
9755	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
9756	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
9757	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
9758	* modules/matlab/Makefile, modules/netica/Makefile:
9759	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
9760	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
9761	* modules/queens/Makefile, modules/rawsock/Makefile.in:
9762	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
9763	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
9764	* modules/zlib/Makefile.in: avoid GNU extensions
9765	Reported by Aleksej Saushev <asau@inbox.ru>
9766
97672009-08-16  Vladimir Tzankov  <vtzankov@gmail.com>
9768
9769	[MULTITHREAD]: make packages threads safe
9770	* package.d (rehash_symtab): do not reuse old cons cell.
9771	allocate new symtab
9772	(make_present, unexport, make_external): assign returned symtab -
9773	possibly newly allocated
9774	(unuse_1package): do not lock anything. caller should have obtained
9775	both package mutexes
9776	(unuse_package): obtain package locks before calling unuse_1package
9777	(USE-PACKAGE, UNUSE-PACKAGE): obtain global packages lock since more
9778	than one package mutex will be locked at a time
9779	(%IN-PACKAGE): lock while modifying existing packages
9780	(DELETE-PACKAGE): lock existing package during unuse_1package
9781	(WITH_PACKAGE_LIST_MUTEX_LOCK): macro for obtaining all mutexes
9782	of a list of packages. on unwinding releases them
9783	(use_package): use it
9784	(make_package): guard insertion into all_packages
9785
97862009-08-13  Sam Steingold  <sds@gnu.org>
9787
9788	* makemake.in (lisp${SHREXT}) [dynamic_modules]: new target
9789
97902009-08-13  Sam Steingold  <sds@gnu.org>
9791
9792	* makemake.in: use $0 in all error messages
9793
97942009-08-13  Sam Steingold  <sds@gnu.org>
9795
9796	* makemake.in (distrib) [win32]: fix echo_dist_modules invocation
9797	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
9798
97992009-08-12  Sam Steingold  <sds@gnu.org>
9800
9801	* makemake.in (modcheck): pass :SRCDIR and :OUTDIR to RUN-SOME-TESTS
9802
98032009-08-11  Sam Steingold  <sds@gnu.org>
9804
9805	* gllib/unistd.in.h, modules/regexp/gllib/unistd.in.h:
9806	* modules/syscalls/gllib/unistd.in.h:
9807	import the gnulib fix of the 'close' socket dependency
9808
98092009-08-10  Sam Steingold  <sds@gnu.org>
9810
9811	* makemake.in (anymodule): do not do "cd $@" twice in the same shell
9812
98132009-08-11  Vladimir Tzankov  <vtzankov@gmail.com>
9814
9815	* spvw_genera1.d (build_old_generation_cache)
9816	(rebuild_old_generation_cache): fix g++ build (goto crosses auto vars
9817	initialization)
9818	* spvw.d (get_module_symbol): add typecast
9819
98202009-08-10  Sam Steingold  <sds@gnu.org>
9821
9822	* modules/fastcgi/configure.in: use AC_LIB_LINKFLAGS to accept
9823	--with-libfcgi-prefix
9824	* modules/fastcgi/link.sh.in (NEW_LIBS): use @LIBS@
9825
98262009-08-10  Sam Steingold  <sds@gnu.org>
9827
9828	* modules/oracle/configure.in: generate link.sh
9829	* modules/oracle/link.sh.in: renamed from link.sh
9830	* modules/oracle/Makefile.in (link.sh): remove target
9831
98322009-08-10  Sam Steingold  <sds@gnu.org>
9833
9834	* modules/fastcgi/configure.in: check for fcgi_stdio.h; generate link.sh
9835	* modules/fastcgi/link.sh.in: renamed from link.sh
9836	* modules/fastcgi/Makefile.in (link.sh): remove target
9837
98382009-08-10  Sam Steingold  <sds@gnu.org>
9839
9840	* modules/dirkey/configure.in: generate link.sh
9841	* modules/dirkey/link.sh.in: renamed from link.sh
9842
98432009-08-10  Sam Steingold  <sds@gnu.org>
9844
9845	* modules/syscalls/calls.c (MKNOD): use S(member) instead of
9846	`CL:MEMBER` to avoid wasting memory
9847
98482009-08-10  Sam Steingold  <sds@gnu.org>
9849
9850	* modules/regexp/Makefile.in (regexi.o): -I$(srcdir)/gllib
9851	* modules/syscalls/Makefile.in (calls.o): -I$(srcdir)/gllib
9852	* modules/wildcard/Makefile.in (wildcard.o): -Igllib -I$(srcdir)/gllib
9853
98542009-08-10  Sam Steingold  <sds@gnu.org>
9855
9856	* modules/regexp/regexi.c: #include "config.h"
9857
98582009-08-10  Sam Steingold  <sds@gnu.org>
9859
9860	* Makefile.devel (gnulib-imported): the log is in GNULIB_IMPORTED_LOG
9861
98622009-08-10  Sam Steingold  <sds@gnu.org>
9863
9864	* gllib/btowc.c, gllib/fnmatch.c, gllib/fnmatch.in.h:
9865	* gllib/fnmatch_loop.c, gllib/malloc.c, gllib/regcomp.c, gllib/regex.c:
9866	* gllib/regex.h, gllib/regex_internal.c, gllib/regex_internal.h:
9867	* gllib/regexec.c, gllib/stdlib.in.h, gllib/wcrtomb.c:
9868	remove files which moved to individual modules
9869
98702009-08-09  Sam Steingold  <sds@gnu.org>
9871
9872	* Makefile.devel (GNULIB_CORE): remove unistd, so that it is
9873	present in both src/gllib and modules/syscalls/gllib because
9874	unistd.h is generated differently depending on whether
9875	gethostname (required by uname) is present
9876	(GNULIB_USERS): new variable
9877	(src/aclocal.m4, MAKEFILE_IN): use it
9878	(gnulib-imported): keep the log in gnulib-imported.log
9879
98802009-08-09  Sam Steingold  <sds@gnu.org>
9881
9882	* configure.in: do not call gt_NO_CXX
9883	* makemake.in: do not pass $(NO_CXX) to gnulib make
9884	* gllib/gettimeofday.c: update from gnulib, now compiles with C++
9885
98862009-08-07  Bruno Haible  <bruno@clisp.org>
9887
9888	* spvw_sigsegv.d (stackoverflow_handler_continuation) [I80386]: Make it
9889	compile with libsigsegv 2.7.
9890
98912009-08-09  Sam Steingold  <sds@gnu.org>
9892
9893	* configure: remove the --install option; people should be careful
9894	with su(1)
9895
98962009-08-09  Sam Steingold  <sds@gnu.org>
9897
9898	* modules/regexp/configure.in, modules/syscalls/configure.in:
9899	* modules/wildcard/configure.in:
9900	AM_INIT_AUTOMAKE must come after AC_CONFIG_AUX_DIR
9901
99022009-08-07  Sam Steingold  <sds@gnu.org>
9903
9904	* modules/regexp/configure.in, modules/syscalls/configure.in:
9905	* modules/wildcard/configure.in, configure.in: pass ([no-define])
9906	to AM_INIT_AUTOMAKE to avoid defining PACKAGE & VERSION (we
9907	already have PACKAGE_NAME and PACKAGE_VERSION defined by AC_INIT)
9908
99092009-08-07  Bruno Haible  <bruno@clisp.org>
9910
9911	* configure: Do not leave abazonk files when $exex_prefix and $prefix
9912	are different.
9913
99142009-08-07  Sam Steingold  <sds@gnu.org>
9915
9916	* modules/regexp/Makefile.in (regexi.o): add -Igllib and depend on gllib
9917	* modules/syscalls/Makefile.in (calls.o): ditto
9918	* modules/wildcard/Makefile.in (wildcard.o): ditto
9919
99202009-08-06  Sam Steingold  <sds@gnu.org>
9921
9922	* configure, makemake.in (with_dynamic_modules):
9923	"yes" is now the default
9924
99252009-08-06  Sam Steingold  <sds@gnu.org>
9926
9927	* Makefile.devel (gnulib-imported): import uname into syscalls
9928	* modules/syscalls/calls.c (uname): implement unconditionally
9929	* modules/syscalls/posix.lisp (uname): export unconditionally
9930	* modules/syscalls/configure.in: call gl_FUNC_UNAME and
9931	gl_SYS_UTSNAME_MODULE_INDICATOR([uname]) and do not check for
9932	uname and <sys/utsname.h>
9933	* modules/syscalls/gllib/alignof.h:
9934	* modules/syscalls/gllib/close-hook.c:
9935	* modules/syscalls/gllib/close-hook.h:
9936	* modules/syscalls/gllib/errno.in.h:
9937	* modules/syscalls/gllib/gethostname.c:
9938	* modules/syscalls/gllib/sockets.c:
9939	* modules/syscalls/gllib/sockets.h:
9940	* modules/syscalls/gllib/sys_socket.in.h:
9941	* modules/syscalls/gllib/sys_utsname.in.h:
9942	* modules/syscalls/gllib/uname.c:
9943	* modules/syscalls/gllib/w32sock.h:
9944	* modules/syscalls/glm4/errno_h.m4:
9945	* modules/syscalls/glm4/gethostname.m4:
9946	* modules/syscalls/glm4/sockets.m4:
9947	* modules/syscalls/glm4/sockpfaf.m4:
9948	* modules/syscalls/glm4/sys_socket_h.m4:
9949	* modules/syscalls/glm4/sys_utsname_h.m4:
9950	* modules/syscalls/glm4/uname.m4: add
9951	* modules/syscalls/gllib/dummy.c: remove
9952
99532009-08-06  Sam Steingold  <sds@gnu.org>
9954
9955	* makemake.in (install-bin) [with_dynamic_modules]: do not
9956	install full, install individual module directories instead
9957
99582009-08-06  Sam Steingold  <sds@gnu.org>
9959
9960	* makemake.in (DVIPDF): remove
9961	(PS2PDF): add
9962	(manual_print): rename from manual_dvi; remove clisp.dvi from it
9963	(clisp.dvi): remove target
9964	(clisp.pdf): generate from clisp.ps
9965	* configure.in: check for PS2PDF instead of DVIPDF
9966
99672009-08-06  Sam Steingold  <sds@gnu.org>
9968
9969	* modules/clx/new-clx/Makefile.in (clisp-module-distrib):
9970	distribute demos
9971
99722009-08-06  Sam Steingold  <sds@gnu.org>
9973
9974	* modules/clx/new-clx/Makefile.in, modules/fastcgi/Makefile.in:
9975	* modules/libsvm/Makefile, modules/netica/Makefile:
9976	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
9977	* modules/pari/README, modules/postgresql/Makefile.in:
9978	* modules/syscalls/Makefile.in (DISTRIBFILES): distribute README
9979
99802009-08-06  Sam Steingold  <sds@gnu.org>
9981
9982	fix bug#262: binary distribution does not include local libs
9983	* makemake.in (distrib): link local libs mentioned in
9984	base/makevars:LIBS into TOPDIR/base (same for full)
9985	and modify distmakefile accordingly
9986
99872009-08-06  Sam Steingold  <sds@gnu.org>
9988
9989	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
9990	* modules/bindings/win32/Makefile, modules/clx/new-clx/Makefile.in:
9991	* modules/dbus/Makefile.in, modules/dirkey/Makefile.in:
9992	* modules/fastcgi/Makefile.in, modules/gdbm/Makefile.in:
9993	* modules/gtk2/Makefile.in, modules/i18n/Makefile.in:
9994	* modules/libsvm/Makefile, modules/matlab/Makefile:
9995	* modules/netica/Makefile, modules/oracle/Makefile.in:
9996	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
9997	* modules/postgresql/Makefile.in, modules/queens/Makefile:
9998	* modules/rawsock/Makefile.in, modules/readline/Makefile.in:
9999	* modules/regexp/Makefile.in, modules/syscalls/Makefile.in:
10000	* modules/wildcard/Makefile.in, modules/zlib/Makefile.in:
10001	(DISTRIBFILES): include fas files for dynamic loading
10002
100032009-08-06  Sam Steingold  <sds@gnu.org>
10004
10005	* clisp-link.in (prepare_dynamic_modules): in the REQUIRE file,
10006	wrap LOADs in APPEASE-CERRORS because FFI modules might try to
10007	interface to functions absent on this platform
10008
100092009-08-06  Sam Steingold  <sds@gnu.org>
10010
10011	base modules are always linked statically
10012	* clisp-link.in (with_dynamic_modules): get from the environment
10013	with the default being @with_dynamic_modules@
10014	* makemake.in (base): pass with_dynamic_modules=no to clisp-link
10015
100162009-08-06  Sam Steingold  <sds@gnu.org>
10017
10018	* clisp-link.in (lncp): rename from link to separate from link.sh
10019	(lncp_some): rename from link_some to simplify search
10020
100212009-08-06  Sam Steingold  <sds@gnu.org>
10022
10023	* Makefile.devel (MAKEFILE_IN): depend on aclocal.m4
10024
100252009-08-05  Sam Steingold  <sds@gnu.org>
10026
10027	* modules/regexp/link.sh.in (NEW_FILES): remove regexp.dvi
10028	* modules/regexp/Makefile.in (DISTRIBFILES, all): ditto
10029	* modules/regexp/regexp.dvi: remove
10030
100312009-08-05  Sam Steingold  <sds@gnu.org>
10032
10033	use gnulib in syscalls (just string-time for now)
10034	* Makefile.devel (MAKEFILE_IN): add modules/syscalls/gllib/Makefile
10035	* modules/syscalls/Makefile.in (libgnu_sc.a): add target
10036	* modules/syscalls/calls.c (STRING-TIME): implement unconditionally
10037	* modules/syscalls/posix.lisp (STRING-TIME): export unconditionally
10038	* modules/syscalls/configure.in: call sc_gl_EARLY, sc_gl_INIT,
10039	gl_FUNC_MKTIME, gl_FUNC_GNU_STRFTIME, gl_FUNC_STRPTIME;
10040	do not check for strftime strptime mktime
10041	* modules/syscalls/link.sh.in (NEW_FILES): add libgnu_sc.a
10042	* modules/syscalls/gllib/, modules/syscalls/glm4/: add
10043
100442009-08-05  Sam Steingold  <sds@gnu.org>
10045
10046	* Makefile.devel (gnulib-imported): import no-c++
10047	* makemake.in (SUBDIRS): disable c++ using NO_CXX for gettimeofday.c
10048	* configure.in, modules/regexp/configure.in: call gt_NO_CXX
10049	* modules/regexp/Makefile.in (libgnu_rx.a): pass NO_CXX in CFLAGS
10050	to gllib because regex cannot be compiled with c++
10051
100522009-08-05  Sam Steingold  <sds@gnu.org>
10053
10054	build modules without linking them over
10055	* configure: do not link module directories into the build directory
10056	* makemake.in (anymodule): do not link the module directory,
10057	run configure in place or link Makefile
10058	* lndir: remove
10059	* modules/berkeley-db/Makefile.in, modules/bindings/glibc/Makefile:
10060	* modules/bindings/win32/Makefile, modules/clx/mit-clx/Makefile:
10061	* modules/clx/new-clx/Makefile.in, modules/dbus/Makefile.in:
10062	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
10063	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
10064	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
10065	* modules/matlab/Makefile, modules/netica/Makefile:
10066	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
10067	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
10068	* modules/queens/Makefile, modules/rawsock/Makefile.in:
10069	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
10070	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
10071	* modules/zlib/Makefile.in:
10072	use srcdir to enable building in a separate directory
10073
100742009-08-05  Sam Steingold  <sds@gnu.org>
10075
10076	* modules/gtk2/gtk.lisp (read-gtk-server-cfg): better logging,
10077	output the generated forms in the same order in which they are read;
10078	eval filename argument to permit compiling away from the source tree
10079
100802009-08-04  Sam Steingold  <sds@gnu.org>
10081
10082	* modules/regexp/Makefile.in, modules/wildcard/Makefile.in: pass
10083	"-I$(INCLUDES)/.." in CFLAGS to gllib make because these modules
10084	rely on src/gllib, so we must also include files in the build dir
10085
100862009-08-04  Sam Steingold  <sds@gnu.org>
10087
10088	* init.lisp (*internal-compiled-file-type*): add
10089	(*compiled-file-types*): init from *internal-compiled-file-type*
10090	* compiler.lisp (compile-file-pathname-helper): use
10091	*internal-compiled-file-type* instead of a string literal
10092	* utils/modprep.lisp (mod-file): use *internal-compiled-file-type*
10093	and compile-file-pathname to enable (modprep "bar/foo.c" "./")
10094
100952009-08-03  Sam Steingold  <sds@gnu.org>
10096
10097	keep gnulib files with the module which needs them
10098	* modules/regexp/gllib, modules/wildcard/gllib:
10099	* modules/regexp/glm4, modules/wildcard/glm4: add
10100	* Makefile.devel (MAKEFILE_IN): generate
10101	modules/regexp/gllib/Makefile.in & modules/wildcard/gllib/Makefile.in
10102	(gnulib-imported): update all gllib and glm4 directories
10103	* makemake.in: use libgnu.a as generated by the gnulib build
10104	process instead of individual object files
10105	* modules/regexp/Makefile.in, modules/wildcard/Makefile.in:
10106	* modules/regexp/link.sh.in, modules/wildcard/link.sh.in: link
10107	with libgnu.a
10108
101092009-08-01  Sam Steingold  <sds@gnu.org>
10110
10111	* genclisph.d (emit_typedef_test): avoid a compilation warning
10112
101132009-08-03  Sam Steingold  <sds@gnu.org>
10114
10115	* modules/berkeley-db/bdb.c (bdb_errno): do not call end_system_call()
10116	(LOCK-GET, TXN-RECOVER): move bdb_errno out of
10117	begin_blocking_system_call/end_blocking_system_call
10118
101192009-08-02  Vladimir Tzankov  <vtzankov@gmail.com>
10120
10121	BERKELEY-DB: fix problems with MT
10122	* /modules/berkeley-db/bdb.c (SYSCALL1, my_fopen): move error reporting
10123	outside begin_blocking_system_call/end_blocking_system_call
10124	(BDB::DBE-SET-OPTIONS): fix a gc-safety bug
10125
101262009-07-31  Sam Steingold  <sds@gnu.org>
10127
10128	* lispbibl.d (with_pinned_varobject): add & export
10129	* modules/rawsock/rawsock.c (with_buffer_arg, with_sockaddr_arg): use it
10130
101312009-07-31  Vladimir Tzankov  <vtzankov@gmail.com>
10132
10133	RAWSOCK: fix object unpinning
10134	* modules/rawsock/rawsock.c (with_sockaddr_arg, with_opt_sa_arg): when
10135	the "body" changes the STACK and pinned object is passed as STACK_x,
10136	ASSERT_VALID_UNPIN() aborts
10137	(SOCK-READ, SOCK-READ): unpin object after system calls returns
10138
101392009-07-30  Sam Steingold  <sds@gnu.org>
10140
10141	RAWSOCK: pin everything properly
10142	* modules/rawsock/rawsock.c (with_sockaddr_arg): replaces CHECK_SOCKADDR
10143	(PIN_ARG_USE, PIN_ARG_DECL, PIN_DECL, PIN_INIT): define based on
10144	MULTITHREAD to pass pinned_chain_t objects around
10145	(fill_iovec): accept a vector of pinned_chain_t on MULTITHREAD
10146	and pin subvectors
10147	(optional_sockaddr_argument): accept a pinned_chain_t on
10148	MULTITHREAD and ping the socket arg
10149	(with_opt_sa_arg): a wrapper for optional_sockaddr_argument()
10150	(SOCKADDR-FAMILY, BIND, CONNECT, GETNAMEINFO): use
10151	with_sockaddr_arg instead of CHECK_SOCKADDR
10152	(ACCEPT, GETPEERNAME, GETSOCKNAME, RECVFROM, SENDTO): use
10153	with_opt_sa_arg instead of optional_sockaddr_argument
10154	(fill_msghdr): accept a vector of pinned_chain_t on MULTITHREAD
10155	and pass it on to fill_iovec
10156	(RECVMSG, SENDMSG) [MULTITHREAD]: pass pinned_chain_t to fill_msghdr
10157	(SOCK-READ, SOCK-WRITE) [MULTITHREAD]: pass pinned_chain_t to fill_iovec
10158
101592009-07-30  Vladimir Tzankov  <vtzankov@gmail.com>
10160
10161	* spvw.d (interrupt_thread) [MULTITHREAD]: prevent races when
10162	changing/reading pointers to objects on which thread waits
10163
101642009-07-29  Vladimir Tzankov  <vtzankov@gmail.com>
10165
10166	* modules/syscalls/calls.c (POSIX::STAT-VFS): move error
10167	reporting outside begin_blocking_system_call/end_blocking_system_call.
10168	save open file stream on STACK around begin/end_blocking_system_call
10169	(POSIX::WAIT): fix GC-safety bugs
10170
101712009-07-29  Sam Steingold  <sds@gnu.org>
10172
10173	* Makefile.devel (UPLOAD): add src/NEWS so that SF FRS also gets it
10174
101752009-07-28  Sam Steingold  <sds@gnu.org>
10176
10177	* modules/syscalls/calls.c (POSIX::FILE-STAT): move error
10178	reporting outside begin_blocking_system_call/end_blocking_system_call
10179	(on_pnamestring): save physical namestring on STACK for possible
10180	GC in begin_blocking_system_call/end_blocking_system_call
10181	Reported by Vladimir Tzankov
10182
101832009-07-28  Reini Urban  <rurban@x-ray.at>
10184
10185	* utils/modprep.lisp (write-string-c-style): do not downcase chars
10186	when package is case-sensitive
10187	(new-fundef): do not fix case when package is case-sensitive
10188	(case-inverted-package-p): add
10189	(print-tables-2): use it to invertcase fundef-name
10190
101912009-07-28  Vladimir Tzankov  <vtzankov@gmail.com>
10192
10193	* encoding.d (error_uni32_invalid): fix a GC-safety bug
10194
101952009-07-28  Sam Steingold  <sds@gnu.org>
10196
10197	* Makefile.devel ($(MAKEMAKE_TMP), src/version.h): when sourcing
10198	version.sh, do not expect "." to be in $PATH
10199
102002009-07-28  Sam Steingold  <sds@gnu.org>
10201
10202	* version.sh: 2.48 (2009-07-28)
10203
102042009-07-27  Sam Steingold  <sds@gnu.org>
10205
10206	* makemake.in (distrib) [win32]: include config.lisp & install.bat
10207	Reported by Elena Garrulo <egarrulo@gmail.com>
10208
102092009-07-27  Vladimir Tzankov  <vtzankov@gmail.com>
10210
10211	[MULTITHREAD]: allow (SETF (MT:SYMBOL-VALUE-THREAD sym thread)) if sym
10212	is not bound in thread
10213	* zthread.d (thread_symbol_place): return NULL only if the thread is
10214	dead or the symbol is not special variable
10215	(SYMBOL-VALUE-THREAD): check for per thread binding of symbol
10216
102172009-07-26  Vladimir Tzankov  <vtzankov@gmail.com>
10218
10219	[MULTITHREAD]: fix SPVW_PAGES build
10220	* spvw_garcol.d (page_contains_pinned_object): use changed
10221	pinned_chain_t struct
10222
102232009-07-24  Vladimir Tzankov  <vtzankov@gmail.com>
10224
10225	[MULTITHREAD]: do not modify STACK when varobject is pinned
10226	* lispbibl.d (struct pinned_chain_t): make pinned object GC invariant.
10227	save pointer above STACK at time of pinning - used for unpinning when
10228	the STACK is unwound.
10229	(pin_varobject_with_pc): pins varobject using already allocated (on C
10230	stack) pinned_chain_t struct
10231	(pin_varobject): use pin_varobject_with_pc()
10232	(unpin_varobjects): removes specified number of objects from the pinned
10233	object chain of current thread
10234	(unwind_pinned_objects): accept clisp_thread_t struct instead of current
10235	thread STACK. use modified pinned_chain_t struct
10236	* spvw_garcol.d (gar_col_normal): mark pinned objects
10237
102382009-07-24  Sam Steingold  <sds@gnu.org>
10239
10240	fix bug#527: regexp-quote doesn't quote correctly extended
10241	* modules/regexp/regexp.lisp (regexp-quote): quote "()" in
10242	extended expressions
10243
102442009-07-22  Sam Steingold  <sds@gnu.org>
10245
10246	* intlog.d (I_I_ash_I): fix a GC-safety bug
10247
102482009-07-22  Vladimir Tzankov  <vtzankov@gmail.com>
10249
10250	* spvw_garcol.d (SPLI_REF_LISTS): remove type_accessor argument
10251	(gar_col_normal): use new definition
10252
102532009-07-16  Sam Steingold  <sds@gnu.org>
10254
10255	* modules/regexp/regexi.c (REGEXP-EXEC): pre-allocate #()
10256	(rettype_t, CHECK_RETTYPE): add
10257	(REGEXP-EXEC): remove "default: NOTREACHED;" from switch(rettype)
10258
102592009-07-14  Sam Steingold  <sds@gnu.org>
10260
10261	* utils/clispload.lsp (*expected-failures*): drop PRINT-LEVEL.8,
10262	PRINT-LEVEL.9 because I fixed them in the sources
10263
102642009-07-14  Sam Steingold  <sds@gnu.org>
10265
10266	* makemake.in (modcheck): add shell function to unify
10267	base-mod-check & full-mod-check target generation
10268
102692009-07-12  Reini Urban  <rurban@x-ray.at>
10270
10271	* makemake.in (full-mod-check): add
10272	(mod-check): depend on it
10273
102742009-07-10  Sam Steingold  <sds@gnu.org>
10275
10276	* makemake.in (TEXT, LEXE, SHREXT): ${host_os} is "mingw32" on
10277	msys/mingw, so fix the 2009-07-01 breakage
10278	(DEVPREFIX): only define on cygwin
10279
102802009-07-14  Sam Steingold  <sds@gnu.org>
10281
10282	* modules/postgresql/postgresql.lisp (PQexecParams, PQprepare)
10283	(PQexecPrepared, PQsendQueryParams, PQsendPrepare)
10284	(PQsendQueryPrepared, PQfn, PQescapeByteaConn):
10285	use C-ARRAY-PTR instead of C-ARRAY-MAX for :IN parameters
10286	Suggested by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>
10287	Reported by SOS Sukaeto <sukaeto@gmail.com>
10288
102892009-07-13  Sam Steingold  <sds@gnu.org>
10290
10291	* zthread.d (MUTEX-NAME, EXEMPTION-NAME): add
10292	(check_name_arg): add; use instead of test_stringsymchar_arg to
10293	allow any names (strings, symbols, integers &c)
10294	* constsym.d, subr.d (mutex_name, exemption_name): add
10295	* threads.lisp (MUTEX-NAME, EXEMPTION-NAME): export
10296	* constobj.d (type_name_arg): add
10297
102982009-07-13  Sam Steingold  <sds@gnu.org>
10299
10300	* constobj.d (printstring_inactive, printstring_recursive): add
10301	* io.d (pr_unreadably_with_prefix): rename from pr_unreadably and
10302	accept an optional prefix to print before string
10303	(pr_unreadably): define using pr_unreadably_with_prefix
10304	(pr_orecord): print INACTIVE for dead threads
10305	and RECURSIVE recursive mutexes
10306
103072009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>
10308
10309	[MULTITHREAD]: use per thread value cells in all DYNBIND frames
10310	* eval.d (progv): use Symbol_thread_value() instead of Symbol_value()
10311	(bindhooks): ditto
10312	* control.d (COMPILER-LET): ditto
10313
103142009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>
10315
10316	* threads.lisp (WITH-MUTEX-LOCK): rename WITH-LOCK to WITH-MUTEX-LOCK
10317
103182009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>
10319
10320	fix bug#334: Crashing CLISP with finalizers + weak hashtables
10321	and fix weak references to GC-ed threads objects
10322	* spvw_garcol.d (gar_col_normal): mark objects to be released after
10323	weak pointers have been cleaned
10324
103252009-07-12  Vladimir Tzankov  <vtzankov@gmail.com>
10326
10327	* zthread.d (MAKE-THREAD, MAKE-MUTEX, MAKE-EXEMPTION): allow symbols and
10328	characters for :name argument
10329
103302009-07-09  Reini Urban  <rurban@x-ray.at>
10331
10332	* modules/gtk2/gtk.lisp: "#undef interface" because
10333	w32api/basetyps.h defines it to "struct" which breaks glade
10334	declarations like "(GladeInterface *interface)"
10335	* modules/dbus/dbus.lisp: ditto for "(const char *interface)"
10336
103372009-07-09  Sam Steingold  <sds@gnu.org>
10338
10339	* modules/syscalls/calls.c (WAIT): use
10340	begin_want_sigcld/end_want_sigcld around waitpid/wait4;
10341	return symbols for signals using check_signal_reverse
10342	* lispbibl.d (begin_want_sigcld, end_want_sigcld) [HAVE_SIGNALS]:
10343	export to clisp.h
10344
103452009-07-08  Sam Steingold  <sds@gnu.org>
10346
10347	add POSIX:WAIT (calls waitpid or wait4)
10348	* modules/syscalls/calls.c (rusage_to_lisp): do not call getrusage
10349	(USAGE): call getrusage here
10350	(WAIT): implement
10351	* modules/syscalls/posix.lisp (wait) [unix]: export
10352	* modules/syscalls/configure.in (wait4, sys/wait.h): test
10353
103542009-07-08  Sam Steingold  <sds@gnu.org>
10355
10356	* Makefile.devel (update-ansi-tests): use the common-lisp.net SVN
10357	repo instead of the GCL CVS
10358
103592009-07-07  Sam Steingold  <sds@gnu.org>
10360
10361	* Makefile.devel (gnulib-imported): pass --no-vc-files
10362	and --no-libtool to gnulib-tool; do not remove .cvsignore
10363
103642009-07-07  Sam Steingold  <sds@gnu.org>
10365
10366	* makemake.in (locale): use $(RMRF)
10367
103682009-07-07  Sam Steingold  <sds@gnu.org>
10369
10370	* modules/clx/new-clx/demos/recurrence.lisp (draw-ppict):
10371	add (declare (compile)) to avoid stack overflow
10372	Reported by Reini Urban <rurban@x-ray.at>
10373
103742009-07-07  Vladimir Tzankov  <vtzankov@gmail.com>
10375
10376	* spvw_memfile.d (fill_memdump_header): zero-out header before filling.
10377	on x86_64 with MT there was 4 byte padding before _subr_tab_addr and
10378	this causes header validation failure (memcmp-ed) in find_memdump()
10379	(struct memdump_header_t): rename _per_thread_symvalues to
10380	_per_thread_symvalues_count (and use)
10381
103822009-07-06  Sam Steingold  <sds@gnu.org>
10383
10384	* lispbibl.d: guard the recently introduced jmp-related exports
10385	with "ifdef export_unwind_protect_macros", effectively disabling them
10386
103872009-07-06  Sam Steingold  <sds@gnu.org>
10388
10389	* constsym.d (:OPERATION, :OPERANDS): add
10390	* error.d (end_error): complete :OPERATION, :OPERANDS
10391	for ARITHMETIC-ERROR and its subtypes
10392	* aridecl.d (divide_0, error_overflow, error_underflow):
10393	push :OPERATION and :OPERANDS
10394	* flo_konv.d (error_nan): ditto
10395	* intelem.d (BN_ueberlauf): ditto
10396	* intlog.d (I_I_ash_I): ditto
10397	* intmal.d (mal_ueberlauf): ditto
10398	* lfloat.d (error_LF_toolong): ditto
10399	Reported by Gabriel Dos Reis <gdr@integrable-solutions.net>
10400
104012009-07-06  Sam Steingold  <sds@gnu.org>
10402
10403	* makemake.in (MYIMPROOT): use http://clisp.cons.org/beta instead
10404	of http://clisp.podval.org/impnotes/ because the latter has been
10405	flaky lately; keep this in sync with doc/Makefile!
10406
104072009-07-06  Sam Steingold  <sds@gnu.org>
10408
10409	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS): check the return
10410	value of gethostbyaddr and only call hostent_to_lisp on non-NULL
10411	Reported by Reini Urban <rurban@x-ray.at>
10412
104132009-07-02  Vladimir Tzankov  <vtzankov@gmail.com>
10414
10415	[MULTITHREAD]: simplify object pinning and export it properly
10416	* lispbibl.d (struct pinned_chain_t): redefine. pinned object is always
10417	on the stack and pointer to it is kept. export it for modules
10418	(pin_varobject, unpin_varobject): do not use UNWIND_PROTECT frame. in
10419	case on non-local exit the object will be unpinned from
10420	enter_frame_at_STACK (like back_trace is unwound)
10421	(unwind_pinned_objects): unpins all objects beyond some position in the
10422	stack
10423	(enter_frame_at_STACK): use it
10424	* spvw_garcol.d (gar_col_normal, fill_relocation_memory_regions)
10425	(page_contains_pinned_object): update usage of pinned_chain_t
10426
104272009-07-01  Sam Steingold  <sds@gnu.org>
10428
10429	* modules/wildcard/configure.in: use $gl_cv_func_fnmatch_gnu
10430	instead of $ac_cv_func_fnmatch_gnu (fnmatch - serial 4);
10431	do not link ../gllib/fnmatch.h locally, CPPFLAGS takes care of it
10432
104332009-07-01  Sam Steingold  <sds@gnu.org>
10434
10435	* makemake.in (XCPPFLAGS): use a full path for gllib because
10436	CPPFLAGS is passed on to module subdirs
10437
104382009-07-01  Sam Steingold  <sds@gnu.org>
10439
10440	* _clisp.c (-b): print lisplibdir with printf instead of puts to
10441	avoid the woe32 CR confusing cygwin build tools
10442
104432009-07-01  Sam Steingold  <sds@gnu.org>
10444
10445	* modules/rawsock/rawsock.c (pin_varobject, unpin_varobject):
10446	redefine to NOOP because they are not properly exported yet
10447
104482009-07-01  Sam Steingold  <sds@gnu.org>
10449
10450	* makemake.in (HERE_) [host_os=cygwin]: use `cygpath -m` instead
10451	of `pwd` to help win32
10452
104532009-07-01  Sam Steingold  <sds@gnu.org>
10454
10455	* _clisp.c (usage): include bad option name in error reporting
10456
104572009-06-30  Sam Steingold  <sds@gnu.org>
10458
10459	* lispbibl.d (SPint, jmpbufsize, sp_jmp_buf): export to clisp.h
10460	(Pseudofun, stringarg, thread_specific_entry, thread_specific_data):
10461	use emit_typedef instead of puts
10462
104632009-06-30  Sam Steingold  <sds@gnu.org>
10464
10465	* modules/rawsock/rawsock.c (ipcsum, icmpcsum, tcpcsum, udpcsum):
10466	declare static to avoid "warning: no previous declaration"
10467
104682009-06-30  Sam Steingold  <sds@gnu.org>
10469
10470	* spvw.d (DROP_PRIVILEGES) [!UNIX]: avoid
10471	warning: empty body in an if-statement
10472
104732009-06-30  Sam Steingold  <sds@gnu.org>
10474
10475	* zthread.d (MAKE-THREAD): CONTROL-ERROR is not a CELL-ERROR
10476
104772009-06-30  Vladimir Tzankov  <vtzankov@gmail.com>
10478
10479	[MULTITHREAD]: remove the 128 active threads limit
10480	* lispbibl.d (struct clisp_thread_t): add thr_next and thr_prev fields.
10481	all threads are kept in double-linked list
10482	(register_thread): remove
10483	* spvw.d (allthreads): redefine it as structure containing the head and
10484	tail of threads linked list
10485	(register_thread): remove. the thread is "registered" after its creation
10486	(single_running_threadp, current_stack_size, current_stack_base): use
10487	new allthreads structure for checking
10488	(create_thread): add the newly created thread structure to allthreads
10489	(delete_thread): remove thread from allthreads
10490	(for_all_threads): redefine to use allthreads structure
10491	(install_async_signal_handlers) [WIN32_THREADS]: use maximum possible
10492	semaphore count
10493	* spvw_memfile.d: use allthreads.head to access single running thread
10494	* spvw_global.d (gc_suspend_all_threads): re-implement. it used the
10495	index in threads array before
10496	* zthread.d (MAKE-THREAD): signal an error if thread creation fails
10497
104982009-06-30  Sam Steingold  <sds@gnu.org>
10499
10500	* makemake.in (PRECIOUS_VARS): list all vars for cflags.h and
10501	anymodule in one place, keep in sync with ac_precious_vars
10502
105032009-06-29  Sam Steingold  <sds@gnu.org>
10504
10505	* modules/rawsock/rawsock.c (parse_buffer_arg): set arg_ to the
10506	object to be pinned
10507	(with_buffer_arg): add; pin and unpin arg
10508	(RECV, RECVFROM, SOCK-READ, SEND, SENDTO, SOCK-WRITE)
10509	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): use it instead of calling
10510	parse_buffer_arg directly
10511
105122009-06-29  Sam Steingold  <sds@gnu.org>
10513
10514	* win32.d (PROT_NONE, PROT_READ, PROT_READ_WRITE) [HAVE_MPROTECT]:
10515	use Unix constants because that's what libgcc uses
10516	Reported by Vladimir Tzankov <vtzankov@gmail.com>
10517
105182009-06-29  Sam Steingold  <sds@gnu.org>
10519
10520	* modules/syscalls/calls.c (CONFSTR): fix STACK handling when res=0
10521	Reported by Reini Urban <rurban@x-ray.at>
10522
105232009-06-29  Sam Steingold  <sds@gnu.org>
10524
10525	* makemake.in (DOC): remove editors
10526	* doc/editors.txt, doc/extend.txt: remove obsolete files
10527
105282009-06-28  Vladimir Tzankov  <vtzankov@gmail.com>
10529
10530	* zthread.d (xlock_lock_helper) [WIN32_THREADS]: fix mutex locking. was
10531	typo when renaming xlock_t members
10532
105332009-06-27  Vladimir Tzankov  <vtzankov@gmail.com>
10534
10535	* zthread.d (xlock_lock_helper): fix race condition causing deadlock
10536	between xlock_lock_helper and xcondition_wait_helper
10537
105382009-06-26  Sam Steingold  <sds@gnu.org>
10539
10540	decouple pin_varobject from unprotect_heap_range for the sake of modules
10541	* lispbibl.d (unprotect_heap_range): accept a flag instead of a bool
10542	(pin_varobject): do not call unprotect_heap_range()
10543	(pin_unprotect_varobject): add
10544	* stream.d: use pin_unprotect_varobject instead of pin_varobject
10545
105462009-06-26  Vladimir Tzankov  <vtzankov@gmail.com>
10547
10548	[MULTITHREAD]: do not use/rely on "invalid" pthread_t value
10549	* xthread.d (xlock_t): better members names
10550	* zthread.d (xlock_init, xlock_destroy, xlock_lock_helper)
10551	(xlock_unlock_helper, xcondition_wait_helper): use the new names
10552	(xlock_lock_helper, xlock_unlock_helper): check both _owned and _owner
10553	(xlock_unlock_helper): set _owned to false; do not touch _owner
10554	* spvw.d (interrupt_thread): do not lock/unlock the internal mutex of
10555	the lock waited on. use new xlock_t members names
10556
105572009-06-26  Sam Steingold  <sds@gnu.org>
10558
10559	* makemake.in (check-exec-image): use ${TRCR} for cygwin
10560	Reported by Reini Urban <rurban@x-ray.at>
10561
105622009-06-25  Sam Steingold  <sds@gnu.org>
10563
10564	* glm4/mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): Include <stdlib.h>,
10565	for the mbtowc declaration.
10566
105672009-06-26  Vladimir Tzankov  <vtzankov@gmail.com>
10568
10569	[MULTITHREAD]: fix xlock_t (MUTEX) unlocking
10570	* zthread.d (xlock_unlock_helper): set xlock_t _owner to NULL
10571	(xlock_lock_helper): add more asserts
10572	(MUTEX-LOCK): ditto
10573	(thread_cleanup): clear mutex owner before really unlocking it
10574
105752009-06-26  Sam Steingold  <sds@gnu.org>
10576
10577	* foreign1.lisp (finalize-coutput-file): avoid
10578	warning: deprecated conversion from string constant to 'char*'
10579	in the MODULE__name__CONSTANT_MAP_C_STRING function
10580
105812009-06-25  Sam Steingold  <sds@gnu.org>
10582
10583	* xthread.d (xlock_t): add _owned field because there are no
10584	guaranteed invalid xthread_t values
10585	* zthread.d (xlock_init): set _owned to false; do not init _owner
10586	(xlock_lock_helper): check _owned instead of _owner; init both
10587	(xlock_unlock_helper): set _owned to false; do not touch _owner
10588
105892009-06-25  Sam Steingold  <sds@gnu.org>
10590
10591	* pathname.d (directory_search_scandir) [MULTITHREAD]: avoid
10592	warning: empty body in an if-statement
10593
105942009-06-25  Sam Steingold  <sds@gnu.org>
10595
10596	* lispbibl.d (current_thread_alloccount, gcunsafe_object_t)
10597	(tsd_remove_specific, lock_threads, unlock_threads)
10598	(signal_timeout_call, handle_pending_interrupts):
10599	use (void) for prototypes of functions which take no arguments
10600
106012009-06-25  Sam Steingold  <sds@gnu.org>
10602
10603	* lispbibl.d (thread_cleanup): move the prototype here ...
10604	* spvw.d, zthread.d: ... from here
10605
106062009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10607
10608	[MULTITHREAD]: handle interrupts when the thread is still not
10609	entirely initialized
10610	* spvw.d (handle_pending_interrupts): check *DEFER-INTERRUPTS* for
10611	SYMVALUE_EMPTY. it is possible to have interrupts while not yet
10612	initialized with NIL
10613	* zthread.d (THREAD-INTERRUPT): :OVERRIDE is generalized boolean
10614
106152009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10616
10617	* threads.lisp (WITH-DEFERRED-INTERRUPTS): reverse arguments. was broken
10618	but seemed to be fine since all tests are with single argument
10619
106202009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10621
10622	* zthread.d (THREAD-INTERRUPT): check that :ARGUMENTS is list
10623	(push_interrupt_arguments): no need to check for missing args
10624
106252009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10626
10627	* threads.lisp (THREAD-KILL): remove
10628
106292009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10630
10631	* threads.lisp (THREAD-KILL): add :OVERRIDE keyword argument. Allows
10632	killing a thread even interrupts are deferred in it
10633
106342009-06-25  Vladimir Tzankov  <vtzankov@gmail.com>
10635
10636	[MULTITHREAD]: allow THREAD-INTERRUPT to ignore WITH-DEFERRED-INTERRUPTS
10637	* zthread.d (THREAD-INTERRUPT): accept :FUNCTION, :OVERRIDE and
10638	:ARGUMENTS keyword arguments
10639	(push_interrupt_arguments): helper function to push on foreign thread
10640	stack required data for THREAD-INTERRUPT implementation
10641	(THREAD-KILL): remove
10642	* subr.d, subrkw.d: add :FUNCTION, :OVERRIDE and :ARGUMENTS to
10643	THREAD-INTERRUPT arguments
10644	(THREAD-KILL): remove
10645	* constsym.d: add :OVERRIDE and :FUNCTION symbols
10646	(THREAD-KILL): remove
10647	* spvw.d (handle_pending_interrupts): ignore WITH-DEFERRED-INTERRUPTS
10648	if asked to do so
10649	(signal_handler_thread): on SIGINT and fatal signals - force interrupt
10650	* threads.lisp (THREAD-KILL): implement via THREAD-INTERRUPT
10651
106522009-06-24  Sam Steingold  <sds@gnu.org>
10653
10654	* makemake.in (GLLIB_O): when REPLACE_GETPAGESIZE is 1, add
10655	gllib/getpagesize${TOBJ} (just like with gettimeofday)
10656	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
10657
106582009-06-23  Sam Steingold  <sds@gnu.org>
10659
10660	* .gdbinit [MULTITHREAD]: suggest "handle SIGUSR1 noprint nostop"
10661
106622009-06-23  Sam Steingold  <sds@gnu.org>
10663
10664	* spvw_mmap.d (mprotect) [HAVE_WIN32_VM]: guard the definition
10665	with #ifdef HAVE_MPROTECT because mingw may already have it in
10666	/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a(_trampoline.o):(.text+0x10)
10667
106682009-06-22  Sam Steingold  <sds@gnu.org>
10669
10670	fix bug#525: (expt 10 10000000) segfaults
10671	 (cf. 2008-07-10, bug#486)
10672	* intmal.d (I_square_I): tighten the erglen check (use 16-bit intW
10673	instead of 32-bit intWC) so that the arithmetic-error
10674	"overflow during multiplication of large numbers"
10675	is signaled instead of a SP overflow (segfault) which results from
10676	__builtin_alloca not checking its argument and overwriting stack
10677
106782009-06-22  Sam Steingold  <sds@gnu.org>
10679
10680	* configure.in: restore gt_LC_MESSAGES: removing it removes
10681	#undef HAVE_LC_MESSAGES from src/config.h.in
10682
106832009-06-22  Sam Steingold  <sds@gnu.org>
10684
10685	* gllib/Makefile.am, gllib/memchr.valgrind, gllib/string.in.h:
10686	* glm4/gnulib-cache.m4, glm4/gnulib-comp.m4, glm4/lib-link.m4:
10687	* glm4/libsigsegv.m4, glm4/memchr.m4: update from gnulib
10688
106892009-06-22  Sam Steingold  <sds@gnu.org>
10690
10691	* Makefile.devel (gnulib-imported): request getpagesize & sys_time
10692	* configure.in: do not invoke macros which come from explicitly
10693	requested packages because they are already called by gl_INIT
10694	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs/17941>
10695	<https://lists.gnu.org/archive/html/bug-gnulib/2009-06/msg00168.html>
10696	(gl_GNU_MAKE, gl_LIBSIGSEGV, gl_FUNC_GETTIMEOFDAY)
10697	(gl_HEADER_SYS_TIME_H, gl_FUNC_GETPAGESIZE): explicitly requested
10698	(gt_LC_MESSAGES): called by AM_INTL_SUBDIR which is called by
10699	AM_GNU_GETTEXT which we call explicitly
10700
107012009-06-21  Vladimir Tzankov  <vtzankov@gmail.com>
10702
10703	* type.lisp (thread, mutex, exemption) [MULTITHREAD]: use THREADS
10704	instead of MT as package name
10705
107062009-06-20  Vladimir Tzankov  <vtzankov@gmail.com>
10707
10708	* spvw.d (create_thread) [WIN32_THREADS]: initialize thread's
10709	_signal_reenter_ok on Win32 as well
10710
107112009-06-19  Sam Steingold  <sds@gnu.org>
10712
10713	* modules/postgresql/postgresql.lisp (PQexecParams, PQprepare)
10714	(PQexecPrepared, PQsendQueryParams, PQsendPrepare)
10715	(PQsendQueryPrepared, PQfn): fix the declarations (input
10716	parameters were declared as output)
10717	Reported by SOS Sukaeto <sukaeto@gmail.com>
10718
107192009-06-19  Sam Steingold  <sds@gnu.org>
10720
10721	* type.lisp (thread, mutex, exemption) [MULTITHREAD]: add atomic types
10722
107232009-06-19  Sam Steingold  <sds@gnu.org>
10724
10725	* modules/postgresql/configure.in: check types Oid and pqbool
10726
107272009-06-19  Sam Steingold  <sds@gnu.org>
10728
10729	* foreign1.lisp (size_t, ssize_t): map to CS-CL:symbol-name in
10730	*C-TYPE-TABLE*, not to the symbol, as should be done as per DEF-C-TYPE
10731
107322009-06-18  Vladimir Tzankov  <vtzankov@gmail.com>
10733
10734	[MULTITHREAD]: use CL:MAKUNBOUND instead of :UNBOUND (removed)
10735	* zthread.d (SYMBOL-VALUE-THREAD): use CL:MAKUNBOUND instead of
10736	:UNBOUND as second return value
10737	* constsym.d (:UNBOUND): remove
10738
107392009-06-18  Vladimir Tzankov  <vtzankov@gmail.com>
10740
10741	[MULTITHREAD]: fix possible deadlock in SYMBOL-VALUE-THREAD
10742	* zthread.d (thread_symbol_place): do not check arguments. it is called
10743	when all_threads lock is held and if GC occurs we will get deadlock
10744	(SYMBOL-VALUE-THREAD): check arguments before acquiring all_threads lock
10745	(SET-SYMBOL-VALUE-THREAD): ditto
10746
107472009-06-17  Vladimir Tzankov  <vtzankov@gmail.com>
10748
10749	* zthread.d (SYMBOL-VALUE-THREAD): return (VALUES NIL :UNBOUND) in case
10750	special variable was per thread bound and made unbound via MAKUNBOUND
10751	* constsym.d (:UNBOUND) [MULTITHREAD]: define it
10752
107532009-06-17  Sam Steingold  <sds@gnu.org>
10754
10755	* clisp-link.in (linkkitdir): when ./linkkit is not found, use
10756	`dirname $0`/linkkit because there is one in *LIB-DIRECTORY*
10757
107582009-06-17  Sam Steingold  <sds@gnu.org>
10759
10760	* makemake.in (install-bin): install clisp-link using INSTALL_PROGRAM
10761	instead of INSTALL_DATA so that it is made executable
10762
107632009-06-17  Sam Steingold  <sds@gnu.org>
10764
10765	* glm4/libsigsegv.m4: reverted to serial 3 because serial 4
10766	does not set LIBSIGSEGV properly
10767
107682009-06-17  Sam Steingold  <sds@gnu.org>
10769
10770	fix bug#524: parse-namestring does not like certain chars
10771	* m4/filecharset.m4 (CL_FILECHARSET): use the auto-detection on
10772	all platforms, including windows
10773
107742009-06-17  Sam Steingold  <sds@gnu.org>
10775
10776	* configure.in: use gl_FUNC_GETPAGESIZE instead of CL_GETPAGESIZE
10777	* unix.d (getpagesize): remove prototype
10778	* win32.d: include <unistd.h> for getpagesize
10779	* spvw_mmap.d (getpagesize) [HAVE_WIN32_VM]: remove, rely on gnulib
10780	* m4/getpagesize.m4: remove, rely on glm4/getpagesize.m4
10781	* m4/mprotect.m4 (CL_MPROTECT): require gl_FUNC_GETPAGESIZE
10782	instead of CL_GETPAGESIZE
10783
107842009-06-17  Vladimir Tzankov  <vtzankov@gmail.com>
10785
10786	* zthread.d (xcondition_wait_helper) [POSIX_THREADS]: fix infinite
10787	waiting on condition variable (was a typo with bad consequences)
10788
107892009-06-16  Sam Steingold  <sds@gnu.org>
10790
10791	* stream.d (handle_direction_compatible): when fcntl() fails,
10792	return false - the handle is likely closed; errno = EBADF
10793	(make_standard_output_file_stream): accept handle, call
10794	handle_direction_compatible()
10795	(make_standard_error_file_stream): remove
10796	(get_standard_output_file_stream): pass stdout_handle to
10797	make_standard_output_file_stream()
10798	(get_standard_error_file_stream): use
10799	make_standard_output_file_stream(stderr_handle)
10800	(make_terminal_io): use handle_direction_compatible() in addition
10801	to pipe_file_handle_p() to decide whether to create a terminal or
10802	a standard file stream; this fixes bug#523: when a
10803	standard handle is invalid, an empty stream is used
10804	* makemake.in (check-script): add a test for bug#523
10805
108062009-06-15  Sam Steingold  <sds@gnu.org>
10807
10808	* version.sh: 2.47++ (2009-06-15)
10809
108102009-06-15  Sam Steingold  <sds@gnu.org>
10811
10812	* gllib/getpagesize.c, gllib/mbsrtowcs-state.c, gllib/mbsrtowcs.c:
10813	* gllib/memchr.c, gllib/string.in.h, gllib/strnlen1.c, gllib/strnlen1.h:
10814	* glm4/00gnulib.m4, glm4/getpagesize.m4, glm4/mbsrtowcs.m4:
10815	* glm4/memchr.m4, glm4/mmap-anon.m4, glm4/string_h.m4: add from gnulib
10816	* build-aux/config.guess, build-aux/config.sub, build-aux/depcomp:
10817	* build-aux/install-sh, build-aux/missing, gllib/config.charset:
10818	* gllib/gettext.h, gllib/gettimeofday.c, gllib/localcharset.c:
10819	* gllib/Makefile.am, gllib/mbrtowc.c, gllib/regex_internal.h:
10820	* gllib/stdint.in.h, gllib/stdlib.in.h:
10821	* gllib/uniname/gen-uninames.lisp, gllib/uniname/uniname.c:
10822	* gllib/uniname/uninames.h, gllib/unistd.in.h, gllib/uniwidth/width.c:
10823	* gllib/wchar.in.h, glm4/btowc.m4, glm4/extensions.m4, glm4/fnmatch.m4:
10824	* glm4/gnulib-common.m4, glm4/gnulib-comp.m4, glm4/include_next.m4:
10825	* glm4/lib-link.m4, glm4/lib-prefix.m4, glm4/libsigsegv.m4:
10826	* glm4/link-follow.m4, glm4/locale-fr.m4, glm4/locale-ja.m4:
10827	* glm4/locale-zh.m4, glm4/mbrtowc.m4, glm4/multiarch.m4, glm4/regex.m4:
10828	* glm4/size_max.m4, glm4/stdint.m4, glm4/stdlib_h.m4, glm4/unistd_h.m4:
10829	* glm4/wchar.m4, glm4/wcrtomb.m4: update from gnulib
10830
108312009-06-15  Sam Steingold  <sds@gnu.org>
10832
10833	* Makefile.devel (update-gnulib): use git when it is available
10834
108352009-06-15  Sam Steingold  <sds@gnu.org>
10836
10837	* modules/dbus/dbus.lisp: sync with dbus-1.2.14
10838
108392009-06-14  Sam Steingold  <sds@gnu.org>
10840
10841	* floatprint.lisp (decode-float-decimal): only widen UP [a1;a2]
10842	when binmant is even
10843
108442009-06-13  Vladimir Tzankov  <vtzankov@gmail.com>
10845
10846	* spvw_memfile.d (loadmem_from_handle): update only the objects loaded
10847	from the image. fixes gcsafety build (and some undefined behavior in
10848	others)
10849
108502009-06-12  Sam Steingold  <sds@gnu.org>
10851
10852	* floatprint.lisp (decode-float-decimal): only widen [a1;a2] when
10853	binmant is even - because of normal IEEE rounding mode when even
10854	numbers represent the inclusive intervals
10855
108562009-06-11  Sam Steingold  <sds@gnu.org>
10857
10858	* clisp-link.in (add-module-set): remove command
10859	(add-module-sets): rename to add
10860	(create-module-set): rename to create
10861	* makemake.in (base, full): use add instead of add-module-sets
10862
108632009-06-09  Vladimir Tzankov  <vtzankov@gmail.com>
10864
10865	[MULTITHREAD]: add WITH-DEFERRED-INTERRUPTS (i.e. WITHOUT-INTERRUPTS)
10866	* constsym.d (*DEFER-INTERRUPTS*, *DEFERRED-INTERRUPTS*): declare
10867	* threads.lisp (*DEFER-INTERRUPTS*, *DEFERRED-INTERRUPTS*): ditto. also
10868	initialize them with *DEFAULT-SPECIAL-BINDINGS*
10869	(WITH-DEFERRED-INTERRUPTS): add and export it
10870	* zthread.d (thread_stub): initialize per thread values of
10871	*DEFER-INTERRUPTS* and *DEFERRED-INTERRUPTS* in case user use some "bad"
10872	initial bindings
10873	(THREAD-INTERRUPT): reorder the arguments on the foreign stack
10874	* spvw.d (mt_main_actions): initialize per thread values of
10875	*DEFER-INTERRUPTS* and *DEFERRED-INTERRUPTS*
10876	(handle_pending_interrupts): in case we should defer interrupt - add it
10877	*DEFERRED-INTERRUPTS*. handle new stack order
10878	(signal_handler_thread): reorder the arguments on the foreign stack
10879
108802009-06-07  Vladimir Tzankov  <vtzankov@gmail.com>
10881
10882	[MULTITHREAD]: add partial support for thread interruption on WIN32
10883	* lispbibl.d (GC_SAFE_REGION_END_i): handle pending interrupts
10884	depending on thread's flavor
10885	(install_async_signal_handlers, thr_signal_handler)
10886	(SIG_THREAD_INTERRUPT, SIG_TIMEOUT_CALL): make them local in spvw.d
10887	(signal_timeout_call): function to announce new timeout call. used by
10888	CALL-WITH-TIMEOUT
10889	* zthread.d (CALL-WITH-TIMEOUT): enable WIN32_THREADS. use
10890	signal_timeout_call() for queuing timeout call
10891	(THREAD-INTERRUPT): enable WIN32_THREADS
10892	* xthread.d (xthread_sigmask, xthread_signal) [WIN32_THREADS]: remove
10893	* spvw.d: unify POSIX and WIN32 signal handling
10894	(signal_wait): waits for asynchronous signal
10895	(signal_timeout_call): announce (WIN32 and POSIX) new timeout call
10896	(schedule_alarm): schedule next timeout call. NB: to be called
10897	only from signal handler thread
10898	(console_handler): CTRL-C handler for WIN32_THREADS
10899	(interrupt_thread) [WIN32_THREADS]: delay handling in case we are in
10900	blocking system call. the interrupt will be executed after the call
10901	returns
10902	(signal_handler_thread): use signal_wait() and schedule_alarm().
10903
109042009-06-05  Vladimir Tzankov  <vtzankov@gmail.com>
10905
10906	[MULTITHREAD]: add timed wait on mutexes and exemptions
10907	* constsym.d: add :TIMEOUT symbol if SOCKET_STREAMS is not defined
10908	* spvw.d (interrupt_thread) [POSIX_THREADS]: use xmutex_raw_xxxx()
10909	functions instead of pthreads ones. WIN32 will use soon the same
10910	function
10911	(handle_pending_interrupts) [WIN32_THREADS]: add dummy one. not
10912	implemented
10913	* subr.d, subrkw.d: (MUTEX-LOCK, EXEMPTION-WAIT): add :TIMEOUT keyword
10914	parameter
10915	* xthread.d (xlock_t): use it in both - WIN32_THREADS and POSIX_THREADS
10916	(xmutex_raw_trylock): add
10917	* zthread.d (MUTEX-LOCK, EXEMPTION-WAIT): add :TIMEOUT parameter.
10918	Return T on mutex lock/signaled exemption and NIL on timeout
10919	(MUTEX-UNLOCK): do not return any value
10920	(win32_xcondition_wait) [WIN32_THREADS]: implements timed wait on
10921	exemption
10922	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper)
10923	(xcondition_wait_helper): implement the for both WIN32_THREADS and
10924	POSIX_THREADS
10925
109262009-06-05  Vladimir Tzankov  <vtzankov@gmail.com>
10927
10928	[MULTITHREAD]: do not use MIN()/MAX() macroses
10929	* spvw_garcol.d: remove MIN()/MAX() macro definitions
10930	(gc_sweep2_varobject_page): do not use MAX() macro
10931	* spvw_genera1.d (build_old_generation_cache): ditto
10932
109332009-06-01  Vladimir Tzankov  <vtzankov@gmail.com>
10934
10935	[MULTITHREAD]: fix SIGSEGV on nested interrupts with non-local exit
10936	* spvw.d (interrupt_thread_signal_handler) [MULTITHREAD]: just call
10937	handle_pending_interrupts() if it is safe
10938	(handle_pending_interrupts) [MULTITHREAD]: do not use clisp_thread_t
10939	_pending_interrupts as a counter but zero it
10940	(interrupt_thread): always increase thread's _pending_interrupts
10941	* zthread.d (thread_cleanup): do not zero _thread_interrupt
10942	(xlock_lock_helper): in case of pending interrupt handle it after the
10943	control gets into lisp land
10944
109452009-05-25  Vladimir Tzankov  <vtzankov@gmail.com>
10946
10947	* constsym.d (MAKE-LOCK, THREAD-LOCK, THREAD-UNLOCK)
10948	(*THREAD-WHOSTATE*) [MULTITHREAD]: remove obsolete symbols
10949
109502009-05-24  Vladimir Tzankov  <vtzankov@gmail.com>
10951
10952	[MULTITHREAD]: thread-interrupt and thread-kill cleanup
10953	* lispbibl.d (struct clisp_thread_t): remove _thread_exit_tag. use
10954	global exit tag (defined in constobj.d). add _thread_is_dying - when
10955	true - the thread is in final cleanup state and should not be
10956	interrupted (no need for locking when we lookup on it since when we do
10957	so - the thread is "suspended").
10958	* constobj.d (thread_exit_tag): add global tag used by THREAD-KILL to
10959	terminate thread
10960	* spvw_global.d (suspend_thread): accept lisp thread record as
10961	parameter. return true if the thread is still alive. obtain and hold the
10962	threads	lock (allthreads_lock) if asked
10963	(resume_thread): accept lisp thread record as parameter and release the
10964	threads lock (allthreads_lock) if asked
10965	* spvw.d (signal_handler_thread): use new suspend/resume_threads
10966	(interrupt_thread): do not interrupt the thread if it is dying
10967	* zthread.d (thread_cleanup): mark the thread as dying. clear pending
10968	interrupts (if any). do not establish driver frame since we cannot be
10969	interrupted here anymore
10970	(thread_stub): use the global thread_exit_tag
10971	(MAKE-THREAD): ditto (do not create new exit tag)
10972	(THREAD-KILL): just call THREAD-INTERRUPT (do not check anything)
10973	(THREAD-INTERRUPT): re-implement it. use changed suspend/resume_thread
10974
109752009-05-23  Vladimir Tzankov  <vtzankov@gmail.com>
10976
10977	* lispbibl.d (clisp_thread_t) [MULTITHREAD]: export _raw_wait_mutex and
10978	_pending_interrupts to clisp.h
10979	(handle_pending_interrupts): ditto
10980
109812009-05-22  Vladimir Tzankov  <vtzankov@gmail.com>
10982
10983	* spvw_garcol.d (fill_varobject_heap_holes) [MULTITHREAD]: fix heap
10984	hole filling for very large holes (>arraysize_limit_1 bytes)
10985
109862009-05-21  Vladimir Tzankov  <vtzankov@gmail.com>
10987
10988	[MULITHREAD]: keep mutex records consistent in case of interrupts
10989	* lispbibl.d (GC_SAFE_REGION_END_i): was GC_SAFE_REGION_END(). add
10990	statement to be executed when the control gets to lisp land
10991	(GC_SAFE_REGION_END): use the above and handle pending interrupts at
10992	the end
10993	(GC_SAFE_REGION_END_WITHOUT_INTERRUPTS): ends GC safe regions and does
10994	not handle pending interrupts
10995	* zthread.d (MUTEX-LOCK): update mutex record before executing (if any)
10996	pending interrupts since there may be non-local exit
10997	(EXEMPTION-WAIT): ditto
10998
109992009-05-21  Vladimir Tzankov  <vtzankov@gmail.com>
11000
11001	[MULTITHREAD]: POSIX compliant signal handling (again)
11002	* xthread.d: remove SOLARIS_THREADS (on Solaris POSIX_THREADS should
11003	be fine)
11004	(struct xlock_t): new xmutex_t representation for POSIX_THREADS. it is
11005	recursive lock that allows "interruptable" timed waits
11006	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
11007	functions for dealing with xlock_t (implemented in zthread.d)
11008	(xcondition_wait_helper): "interruptable" waiting on exemption
11009	(xmutex_t): define it as xlock_t
11010	(xthread_init) [POSIX_THREADS]: do nothing
11011	(xmutex_xxx macros): use xlock_xxx
11012	(xmutex_raw_t): native pthread_mutex_t. used for thread suspend/resume
11013	(xmutex_raw_xxx macros): macros for working with xmutex_raw_t
11014	* lispbibl.d (clisp_thread_t): add _wait_condition, _wait_mutex,
11015	_raw_wait_mutex. if the thread is blocked on some of these non-reentrant
11016	objects - interrupt will be marked as pending. add _pending_interrupts
11017	count of pending interrupts. _gc_suspend_lock is xmutex_raw_t now
11018	(handle_pending_interrupts): new global function to be called to execute
11019	deferred interrupts (if any) at appropriate places
11020	(HANLDE_PENDING_INTERRUPTS): helper macro for calling the above. used in
11021	GC_SAFE_xxx macros
11022	(GC_SAFE_ACK_SUSPEND_REQUEST_,GC_SAFE_REGION_END): use xmutex_raw_xxx
11023	and HANLDE_PENDING_INTERRUPTS. set/unset thread's _raw_wait_mutex
11024	(interrupt_thread): new global function for interrupting thread based
11025	on its current state
11026	(GC_SAFE_MUTEX_LOCK): set/unset thread's _wait_mutex
11027	* zthread.d (THREAD-INTERRUPT): use interrupt_thread
11028	(EXEMPTION-WAIT): use HANDLE_PENDING_INTERRUPTS. set/unset thread's
11029	_wait_condition
11030	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
11031	implementation of xlock_t operations
11032	* spvw.d (interrupt_thread): implement it. if the thread is blocked
11033	in non-reentrant function (pthreads) mark the interrupt as pending
11034	and take appropriate actions
11035	(handle_pending_interrupts): implement it
11036	(interrupt_thread_signal_handler): execute the interrupt function
11037	immediately or mark it as pending in case the thread will be resumed
11038	shortly (and is not safe to execute immediately)
11039	(signal_handler_thread): use interrupt_thread
11040	* spvw_global.d (gc_suspend_all_threads, gc_resume_all_threads)
11041	(suspend_thread, resume_thread): use xmutex_raw_xxx macros
11042
110432009-05-18  Sam Steingold  <sds@gnu.org>
11044
11045	* makemake.in (anymodule): augment patch 2006-05-10 to respect
11046	CPPFLAGS, CXXFLAGS, and LDFLAGS in addition to CC and CFLAGS
11047	Reported by Stelian Ionescu <stelian.ionescu-zeus@poste.it>
11048
110492009-05-17  Sam Steingold  <sds@gnu.org>
11050
11051	* reploop.lisp (show-local-symbols): new function
11052	(commands0, commands1): access it via LocalSymbols and :ls
11053
110542009-05-17  Sam Steingold  <sds@gnu.org>
11055
11056	* defs2.lisp (trim-if): new user function
11057
110582009-05-17  Sam Steingold  <sds@gnu.org>
11059
11060	* modules/i18n/i18n.lisp (copy-locale-conv): export from I18N
11061	instead of keeping it in CL-USER
11062
110632009-05-17  Sam Steingold  <sds@gnu.org>
11064
11065	* io.d (WHITESPACEP): use VALUES1
11066
110672009-05-14  Sam Steingold  <sds@gnu.org>
11068
11069	* lisparit.d (FLOAT-SCALE-EXPONENT): fix last patch: RA_F_float_F
11070	returns nullobj when overflow is ignored; check its return value
11071
110722009-05-14  Sam Steingold  <sds@gnu.org>
11073
11074	finish last patch
11075	* modules/libsvm/Makefile (clean): also remove svm$(SHREXT)
11076	* modules/libsvm/link.sh (file_list): use $(SHREXT)
11077	* makemake.in (echo_dist_modules): pass $(SHREXT) to make
11078
110792009-05-14  Vladimir Tzankov  <vtzankov@gmail.com>
11080
11081	* stream.d (init_streamvars) [MULTITHREAD]: clear per thread
11082	bindings loaded from image (if any)
11083
110842009-05-14  Vladimir Tzankov  <vtzankov@gmail.com>
11085
11086	[MULTITHREAD]: persist thread (single one) symvalues
11087	* spvw_memfile.d (savemem) [MULTITHREAD]: save thread special
11088	variables symvalues
11089	(loadmem_from_handle) [MULTITHREAD]: load thread symvalues
11090
110912009-05-13  Sam Steingold  <sds@gnu.org>
11092
11093	* format.lisp (format-float-to-string, format-general-float):
11094	revert the 2009-01-26 patch (no longer necessary given the latest fixes)
11095
110962009-05-13  Sam Steingold  <sds@gnu.org>
11097
11098	support win32 in modules which compile to DLLs
11099	* modules/libsvm/Makefile (SHREXT): use it instead of literal .so
11100	* modules/libsvm/libsvm.lisp (default-foreign-library):
11101	type depends on the platform
11102	* modules/libsvm/link.sh: pass SHREXT=${SHREXT} to make
11103	* makemake.in (anymodule): ditto
11104	* clisp-link.in: set SHREXT=@SHREXT@ before calling link.sh
11105
111062009-05-12  Sam Steingold  <sds@gnu.org>
11107
11108	* lisparit.d (FLOAT-SCALE-EXPONENT): when 10^q=x, return (1/10,q+1)
11109	to handle 1d23 properly
11110
111112009-04-12  Sam Steingold  <sds@gnu.org>
11112
11113	* floatprint.lisp (decode-float-decimal): widen [a1;a2] to print
11114	1d23 without ...99999...
11115
111162009-05-09  Vladimir Tzankov  <vtzankov@gmail.com>
11117
11118	* spvw_garcol.d (SPLIT_REF_LISTS): use alive(). fixes collection of
11119	thread/mutex/exemption records with SPVW_PURE
11120
111212009-05-09  Vladimir Tzankov  <vtzankov@gmail.com>
11122
11123	* spvw_weak.d (activate_weak) [MULTITHREAD]: fix gcsafety. do not allow
11124	GC while waiting on all_weakpointers_lock
11125
111262009-05-08  Sam Steingold  <sds@gnu.org>
11127
11128	fix bug#518 Segfault on encode-universal-time on Windows
11129	* time.d (seconds_west): check localtime() & gmtime() return values
11130
111312009-05-08  Vladimir Tzankov  <vtzankov@gmail.com>
11132
11133	* lispbibl.d (current_thread_impl) [WIN32_THREADS]: use TlsGetValue()
11134	when exported to clisp.h
11135
111362009-05-07  Sam Steingold  <sds@gnu.org>
11137
11138	fix bug#519: *args* contains a mix of old args and new args
11139	* spvw.d (main_actions): reset *ARGS* when argv_execute_args is empty
11140	* makemake.in (check-exec-image): add two tests for this bug
11141
111422009-05-07  Vladimir Tzankov  <vtzankov@gmail.com>
11143
11144	* zthread.d (thread_cleanup): fix SIGSEGV if GC happens while
11145	O(all_mutexes) is traversed
11146
111472009-05-07  Vladimir Tzankov  <vtzankov@gmail.com>
11148
11149	[WIN32_THREADS]: export current_thread() in clisp.h
11150	* lispbibl.d (current_thread_impl) [WIN32_THREADS]: was
11151	current_thread(). Also export it to clisp.h
11152
111532009-05-07  Sam Steingold  <sds@gnu.org>
11154
11155	* constobj.d (load_extra_file_types): remove the leading dot
11156	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
11157
111582009-05-04  Sam Steingold  <sds@gnu.org>
11159
11160	* makemake.in (anymodule): use "clisp${TEXE}" instead of "clisp",
11161	which fixes the 2009-01-06 patch for mingw
11162	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
11163
111642009-04-30  Vladimir Tzankov  <vtzankov@gmail.com>
11165
11166	[MULTITHREAD]: mutex locking cleanup
11167	* pathname.d (openp) [MULTITHREAD]: use GC_SAFE_MUTE_(UN)LOCK
11168	* stream.d (get_open_files_lock) [MULTITHREAD]: ditto
11169	* record.d (FINALIZE) [MULTITHREAD]: ditto
11170	* spvw_weak.d (activate_weak) [MULTITHREAD]: ditto
11171
111722009-04-30  Vladimir Tzankov  <vtzankov@gmail.com>
11173
11174	[MULTITHREAD]: revert parts of last commit. Signal handling is not POSIX
11175	compliant now (too much inconsistencies and race conditions were
11176	introduced)
11177	* lispbibl.d [MULTITHREAD]: remove HADLE_PENDING_INTERRUPTS_XXX and
11178	its wrappers
11179	* spvw.d [MULTITHREAD]: revert was changes. use restartable system calls
11180	* unixaux.d [MULTITHREAD]: do not use handle_pending_interrupts on EINTR
11181	* xthread.d: remove xlock_t
11182	* zthread.d: ditto
11183	* time.d: revert
11184
111852009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>
11186
11187	[MULTITHREAD]: POSIX compliant signal handling (and new mutex lock)
11188	* lispbibl.d: export to clisp.h xlock_t (for POSIX_THREADS)
11189	(Mutex): make xmu_system pointer (malloc()-ed). the system object
11190	should be valid across GC (while waiting on mutex GC may run and
11191	relocate the Mutex record).
11192	(Exemption): ditto (for xco_system)
11193	(clisp_thread_t): add _pending_interrupt_count and export it. on async
11194	interrupt (POSIX signal) it is incremented (and on the LISP stack we
11195	have what has to be executed).
11196	(HANDLE_PENDING_INTERRUPTS_NOGC): executes pending interrupts. to be
11197	called when GC cannot execute in parallel (in not GC safe regions)
11198	(HANDLE_PENDING_INTERRUPTS_GC): executes pending interrupts. to be
11199	called while running in GC safe regions (GC may run in parallel).
11200	(handle_pending_interrupts_gc,  handle_pending_interrupts_nogc): inline
11201	helper functions for the above two
11202	(GC_SAFE_MUTEX_LOCK): pass to system functions/macros real pointer
11203	to the OS mutex object.
11204	* spvw_typealloc.d (allocate_mutex): allocate (via malloc()) the OS
11205	xmutex_t (address should be the same across GC)
11206	(allocate_exemption): ditto
11207	* spvw_memfile.d (loadmem_from_handle): allocate OS object for mutexes
11208	and exemption from image
11209	* spvw.d (interrupt_thread_signal_handler): just increase thread's
11210	_pending_interrupt_count. the interrupt will be handled later
11211	(install_async_signal_handlers): let signals cause "slow" system calls
11212	return EINTR instead of automatically retrying (TODO: socket.d)
11213	(recursive_mutexattr): remove
11214	* xthread.d: remove SOLARIS_THREADS (on Solaris POSIX_THREADS should
11215	be fine)
11216	(struct xlock_t): new xmutex_t representation for POSIX_THREADS. it is
11217	recursive lock that allow "interruptible" (via polling) timed waits on
11218	pthread_mutex_t
11219	(XLOCK_WAIT_MSEC): default poll interval on mutex and exemptions in
11220	order to be interruptible. see comments
11221	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
11222	functions for dealing with xlock_t (implemented in zthread.d)
11223	(xcondition_wait_helper): "interruptible" waiting on exemption
11224	(xmutex_t): define it is as xlock_t
11225	(xthread_init) [POSIX_THREADS]: do nothing
11226	(xmutex_xxx macros): use xlock_xxx
11227	(MAX_SEMAPHORE_COUNT) [WIN32_THREADS]: use maximum allowed value (Win32
11228	threads currently do not support interruptions)
11229	* zthread.d (release_mutexes): free malloc()-ed memory for the OS object
11230	(release_exemptions): ditto
11231	(xlock_init, xlock_destroy, xlock_lock_helper, xlock_unlock_helper):
11232	implementation of xlock_t operations
11233	(xcondition_wait_helper): implementation
11234	* unixaux.d: handle EINTR return from system calls by executing pending
11235	interrupts (if any)
11236	* time.d (SYSTEM::%SLEEP): use handle_pending_interrupts_nogc()
11237
112382009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>
11239
11240	prevent possible deadlock on async interrupts
11241	* stream.d (add_to_open_streams) [MULTITHREAD]: allocate new cons
11242	before obtaining the lock. it is possible while allocating new
11243	cons to get an async interrupt that will exit non-locally - thus
11244	not releasing open_files_lock
11245
112462009-04-26  Vladimir Tzankov  <vtzankov@gmail.com>
11247
11248	[MULTITHREAD]: fix removal of multiple times pinned objects
11249	* spvw_garcol.d (fill_relocation_memory_regions) [MULTITHREAD]: fix
11250	removal of multiple times pinned objects
11251
112522009-04-17  Sam Steingold  <sds@gnu.org>
11253
11254	* m4/ffcall.m4: fix libffcall download url
11255
112562009-04-02  Sam Steingold  <sds@gnu.org>
11257
11258	* modules/libsvm/libsvm.lisp: Upgrade libsvm to 2.89
11259	(svm_print_string): renamed from print_string
11260
112612009-04-02  Vladimir Tzankov  <vtzankov@gmail.com>
11262
11263	[MULTITHREAD]: remove functions not suitable for preemptive MT
11264	* zthread.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: remove
11265	* constsym.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: ditto
11266	* subr.d (THREAD-WAIT, THREAD-STATE) [MULTITHREAD]: ditto
11267	* threads.lisp (*THREAD-WHOSTATE*, THREAD-WHOSTATE MAKE-LOCK)
11268	(THREAD-LOCK, THREAD-UNLOCK) [MULTITHREAD]: remove
11269
112702009-03-23  Vladimir Tzankov  <vtzankov@gmail.com>
11271
11272	[MULTITHREAD]: Fix uninitialized package mutexes
11273	* spvw.d (initmem) [MULTITHREAD]: initialize O(all_mutexes)
11274	* constobj.d (all_mutexes) [MULTITHREAD]: do not initialize
11275
112762009-03-20  Vladimir Tzankov  <vtzankov@gmail.com>
11277
11278	[MULTITHREAD]: FreeBSD build fixes
11279	* lispbibl.d (per_thread) [MULTITHREAD]: gcc on FreeBSD supports
11280	__thread qualifier
11281	* xthread.d (PTHREAD_MUTEX_RECURSIVE_NP) [MULTITHREAD]: define it on
11282	FreeBSD
11283
112842009-03-17  Vladimir Tzankov  <vtzankov@gmail.com>
11285
11286	faster re-entrant circularity detection
11287	* spvw_circ.d (pointer_set, pointer_set_init, pointer_set_free)
11288	(pointer_set_insert_aux, pointer_set_insert): add. implements simple
11289	open addressing hash set based on the object address in the lisp heap.
11290	use it by default
11291
112922009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>
11293
11294	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: remove GC safe
11295	points at JMP instructions. currently this damages heap
11296
112972009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>
11298
11299	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: merge
11300	PROT_READ_WRITE areas. fixes corner cases with pinned objects that
11301	share physical memory pages
11302
113032009-02-27  Vladimir Tzankov  <vtzankov@gmail.com>
11304
11305	[MULTITHREAD]: release all thread resources upon termination
11306	* lispbibl.d (WITH_STOPPED_THREAD): remove (was used only by
11307	THREAD-INTERRUPT and is not suitable anymore)
11308	(GC_SAFE_POINT_IF): add GCTRIGGER() in case of suspension
11309	(delete_thread): remove "full" parameter. all resources are released
11310	always
11311	* spvw.d (create_thread): initialize _index field of the new thread with
11312	invalid value
11313	(delete_thread): remove "full" parameter. release all allocated memory.
11314	(signal_handler_thread): do not check whether thread to be interrupted
11315	is alive (since it is).
11316	* spvw_global.d (suspend_thread, resume_thread): ditto
11317	* spvw_garcol.d (gar_col_normal): change the condition for checking
11318	whether thread is running or terminated
11319	(gar_col_done): update new references only of alive threads
11320	* zthread.d (release_threads): do nothing (everything is freed by
11321	delete_thread). left since in future may be useful
11322	(thread_stub): prevent killing while running in thread_cleanup()
11323	(remove_timeout_call): do not allow to be interrupted (by not using
11324	"GC safe" way for spinlock acquiring
11325	(THREAD-KILL): change thread alive check
11326	(THREAD-ACTIVE-P): ditto
11327	(THREAD-INTERRUPT): reimplement
11328	(SYMBOL-VALUE-THREAD, SET-SYMBOL-VALUE-THREAD): lock the threads.
11329	prevents thread termination while working with its symvalues
11330
113312009-02-26  Vladimir Tzankov  <vtzankov@gmail.com>
11332
11333	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: preserve mv_space
11334	in case of suspend request
11335
113362009-02-25  Sam Steingold  <sds@gnu.org>
11337
11338	* modules/readline/readline.lisp: use (:return-type nil) instead
11339	of (:return-type) which works too but is not officially documented
11340
113412009-02-25  Sam Steingold  <sds@gnu.org>
11342
11343	* modules/readline/readline.lisp: upgrade from readline 5.2 to 6.0
11344	(alphabetic, free, echo-signal-char, gnu-readline-p, display-prompt)
11345	(editing-mode-emacs, editing-mode-vi, insert-mode-overwrite)
11346	(insert-mode-insert, explicit-arg, numeric-arg, executing-macro)
11347	(filename-quoting-desired, attempted-completion-over)
11348	(completion-type, completion-invoking-key)
11349	(completion-query-items, completion-append-character)
11350	(completion-suppress-append, completion-quote-character)
11351	(completion-found-quote, completion-suppress-quote)
11352	(sort-completion-matches, completion-mark-symlink-dirs)
11353	(ignore-completion-duplicates, inhibit-completion): add
11354	* modules/readline/configure.in: check for the new features
11355
113562009-02-24  Vladimir Tzankov  <vtzankov@gmail.com>
11357
11358	add GC safe points before JMP instructions and in GO special form
11359	* lispbibl.d (GC_SAFE_ACK_SUSPEND_REQUEST_) [MULTITHREAD]: helper macro
11360	that acknowledges suspend request and waits for thread resume
11361	(GC_SAFE_POINT_IF): was GC_SAFE_POINT_ELSE. Check for suspend request
11362	and executes one of its parameters
11363	(GC_SAFE_SPINLOCK_ACQUIRE): use it
11364	* control.d (GO) [MULTITHREAD]: add safe point in order to be possible
11365	to interrupt infinite non-consing loop (in interpreter)
11366	* eval.d (interpret_bytecode_ JMP) [MULTITHREAD]: ditto (in bytecode)
11367
113682009-02-22  Vladimir Tzankov  <vtzankov@gmail.com>
11369
11370	* zthread.d (EXEMPTION-WAIT): allow recursive mutex - but enforce to be
11371	locked just once by the calling thread (otherwise error is signaled)
11372
113732009-02-22  Vladimir Tzankov  <vtzankov@gmail.com>
11374
11375	* zthread.d (EXEMPTION-WAIT): do not allow recursive mutexes. this
11376	may cause really weird hard to debug errors. see APPLICATION USAGE at:
11377	http://opengroup.org/onlinepubs/007908775/xsh/pthread_mutexattr_settype.html
11378
113792009-02-13  Sam Steingold  <sds@gnu.org>
11380
11381	* .gdbinit (error_notreached): replaces fehler_notreached
11382
113832009-02-12  Sam Steingold  <sds@gnu.org>
11384
11385	avoid preprocessor instructions inside macro invocations
11386	* spvw_garcol.d (fill_relocation_memory_regions): define
11387	SET_HEAPNR and MARK_GEN1 for use in for_all_threads()
11388
113892009-01-26  Sam Steingold  <sds@gnu.org>
11390
11391	* format.lisp (format-float-to-string): return the 6th value:
11392	roundup, meaning that rounding up 9 -> 10 lengthens the number
11393	(format-general-float): use it to fix (FORMAT NIL "~G" 1.0d24)
11394
113952009-02-11  Vladimir Tzankov  <vtzankov@gmail.com>
11396
11397	avoid preprocessor instructions inside macro invocations
11398	* spvw.d (ENABLE_DUMMY_ALLOCCOUNT) [MULTITHREAD & DEBUG_GCSAFETY]:
11399	toggle the dummy alloccount when executing in signal handling thread -
11400	no lisp thread is associated with it and no real alloccount
11401	(signal_handler_thread): use it
11402
114032009-02-10  Sam Steingold  <sds@gnu.org>
11404
11405	avoid preprocessor instructions inside macro invocations
11406	* error.d (uint_type_object, sint_type_object): add
11407	(check_uint_replacement, check_sint_replacement): use them
11408	(ulong_type_object, slong_type_object): add
11409	(check_ulong_replacement, check_slong_replacement): use them
11410	* spvw_genera1.d (build_old_generation_cache):
11411	take #ifdef out of dotimespL
11412
114132009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>
11414
11415	* lispbibl.d (pin_varobject): oops. revert: objects of type gcv_object_t
11416	are verboten outside of GC
11417
114182009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>
11419
11420	* lispbibl.d (ASSERT_SAFE_TO_PIN) [MULTITHREAD]: aborts if
11421	pin_varobject() is used when GC can run at the same time (only
11422	with DEBUG_SPVW)
11423	(pin_varobject) [MULTITHREAD]: use it
11424	(ASSERT_VALID_UNPIN) [MULTITHREAD]: checks that the object to be
11425	unpinned is at the start of pinned objects chain. this should always
11426	be the case (there are unwind-protect frames for every pinned object)
11427	(unpin_varobject_i): use it. simplify it
11428
114292009-02-06  Vladimir Tzankov  <vtzankov@gmail.com>
11430
11431	* spvw_global.d (gc_suspend_all_threads): hold the threads lock while
11432	all threads are suspended. prevents race condition between
11433	delete_thread() and GC (allthreads[] is changed by delete_thread()
11434	while GC may use it)
11435	(gc_resume_all_threads): release the threads lock acquired by
11436	gc_suspend_all_threads()
11437	* spvw.d (delete_thread): do not destroy twice _gc_suspend_lock
11438
114392009-02-05  Vladimir Tzankov  <vtzankov@gmail.com>
11440
11441	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: fix
11442	page protection when multiple "writeable" (PROT_READ_WRITE) pinned
11443	objects share the same physical memory page
11444
114452009-02-05  Vladimir Tzankov  <vtzankov@gmail.com>
11446
11447	* spvw_global.d: comments
11448	(suspend_thread): release heap lock only if it was acquired by us
11449	(resume_thread): acquire heap lock only if not already owned
11450	* lispbibl.d: comments
11451
114522009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>
11453
11454	* spvw_garcol.d (fill_relocation_memory_regions) [MULTITHREAD]: fix
11455	corner case: multiple times pinned object at the start of the heap
11456
114572009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>
11458
11459	* spvw_genera1.d (build_old_generation_cache) [MULTITHREAD]: fix
11460	page protection when multiple heap areas should be left with
11461	PROT_READ_WRITE
11462
114632009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>
11464
11465	* lispbibl.d [MULTITHREAD]: export to clisp.h only the types
11466	(PERFORM_GC) [MULTITHREAD]: set the valid stack range of current
11467	thread in debug builds
11468	* xthread.d (testandset) [MIPS]: fix the macro argument
11469
114702009-02-04  Vladimir Tzankov  <vtzankov@gmail.com>
11471
11472	export low-level threads internals to clisp.h
11473	* xthread.d: convert all functions to macros in order to export them to
11474	clisp.h. POSIX mutexes code cleanup
11475	* spvw.d (recursive_mutexattr): always defined in POSIX_THREADS
11476	* lispbibl.d: export to clisp.h required low-level threads macros. do
11477	not include xthread.c from clisp.h
11478	* makemake.in (LINKKIT): revert last commit
11479
114802009-02-01  Vladimir Tzankov  <vtzankov@gmail.com>
11481
11482	* makemake.in (LINKKIT): add xthread.c in threads builds
11483
114842009-02-01  Vladimir Tzankov  <vtzankov@gmail.com>
11485
11486	* unix.d (SETSID): use setsid() if available (do not emulate it via
11487	setpgid()). fixes MT builds on some linux distributions.
11488
114892009-01-30  Vladimir Tzankov  <vtzankov@gmail.com>
11490
11491	* spvw.d (signal_handler_thread): handle ualarm() failures when run in
11492	virtual machines (timer resolution is too low)
11493
114942009-01-29  Vladimir Tzankov  <vtzankov@gmail.com>
11495
11496	* spvw_memfile.d (find_memdump): ignore _per_thread_symvalues in the
11497	saved header when checking image compatibility. they do not survive
11498	image save/load
11499
115002009-01-28  Sam Steingold  <sds@gnu.org>
11501
11502	* lispbibl.d (SYMBOL_TLS_INDEX_NONE): cast to aint, not uintL
11503
115042009-01-28  Vladimir Tzankov  <vtzankov@gmail.com>
11505
11506	* lispbibl.d (struct symbol_): make its size always be multiple
11507	of varobject_alignment. fixes 64 bit threads (MT) build
11508
115092009-01-21  Sam Steingold  <sds@gnu.org>
11510
11511	* lisparit.d (FLOAT-SCALE-EXPONENT): restore the mantissa
11512	precision before comparing it to 1
11513
115142009-01-19  Sam Steingold  <sds@gnu.org>
11515
11516	* lispbibl.d (error_c_integer): export to clisp.h to support
11517	error_sint et al
11518	* foreign1.lisp (convert-from-foreign): fix C-POINTER handling
11519	this fixes the 2008-12-19 patch
11520
115212009-01-18  Sam Steingold  <sds@gnu.org>
11522
11523	* format.lisp (format-float-for-e): before increasing mantwidth,
11524	make sure it is not NIL
11525
115262009-01-18  Vladimir Tzankov  <vtzankov@gmail.com>
11527
11528	* spvw.d (quit_instantly): make it nonreturning_function
11529
115302009-01-18  Sam Steingold  <sds@gnu.org>
11531
11532	fix bug#222: LOG of large integers is broken
11533	* realtran.d (extend2_digits, I_ln_F, RA_ln_F, F_extend_lnx1_F)
11534	(RA_ln1_F): add
11535	(R_ln1_R): use RA_ln1_F and F_extend_lnx1_F
11536	(R_ln_R): use RA_ln_F
11537
115382009-01-17  Vladimir Tzankov  <vtzankov@gmail.com>
11539
11540	* win32aux.d [WIN32_THREADS]: #ifdef the globals not used in MT builds
11541	(aux_event): define it to NULL in MT builds (can be done in single
11542	thread as well - no file is openned with FILE_FLAG_OVERLAPPED)
11543
115442009-01-17  Vladimir Tzankov  <vtzankov@gmail.com>
11545
11546	* spvw.d (current_stack_base) [WIN32_THREADS] : fix g++ compilation
11547	* stream.d (low_close_socket) [WIN32_NATIVE]: fix GC-safety bug
11548	(low_fill_buffered_socket) [WIN32_NATIVE]: fix GC-safety bug
11549	* pathname.d (rename_file): fix GC-safety bug
11550
115512009-01-16  Sam Steingold  <sds@gnu.org>
11552
11553	* subr.d (LISPFUN_D): fix a typo in the secfc argument
11554
115552009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>
11556
11557	* pathname.d (file_exists, access0) [WIN32_NATIVE]: fix GC-safety bug
11558	(open_file): fix GC-safety bug
11559
115602009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>
11561
11562	WIN32_THREADS with mingw
11563	* lispbibl.d (current_thread) [WIN32_NATIVE]: preserve GetLastError()
11564	value when USE_CUSTOM_TLS=1 (since TlsGetValue() changes it)
11565	* xthread.d [WIN32_NATIVE]: critical section functions do not change
11566	last error nor do they return a value
11567	(xthread_signal, xthread_sigmask) [WIN32_NATIVE]: remove
11568	(xcondition_init) [WIN32_NATIVE]: make it expression
11569	(condition_signal) [WIN32_NATIVE]: fix a typo
11570	* spvw_garcol.d (MIN, MAX): define them if not available (mingw)
11571	* time.d (%SLEEP) [WIN32_NATIVE]:  allow GC while sleeping (Win32)
11572	* win32aux.d (DoInterruptible) [WIN32_NATIVE]: just calls the function
11573	in MT builds
11574	(sleep, msleep) [WIN32_NATIVE]: do not use DoInterruptible() in MT
11575	builds
11576	(done_win32) [WIN32_NATIVE]: #ifdef code for CTRL-C/BREAK cleanup
11577
115782009-01-16  Vladimir Tzankov  <vtzankov@gmail.com>
11579
11580	* spvw.d (quit_instantly): now function. longjmp() across threads
11581	is not good
11582	(main): move cleanup code to quit_instantly()
11583	(signal_handler_thread) [WIN32_NATIVE]: empty (TODO) stub for "signal"
11584	handling with WIN32_THREADS
11585
115862009-01-16  Sam Steingold  <sds@gnu.org>
11587
11588	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): use AC_REQUIRE for
11589	AC_CONFIG_AUX_DIR instead of calling it explicitly because other
11590	REQUIREd macros need AC_CONFIG_AUX_DIR's result and REQUIREd
11591	macros are called before everyting in the macro is executed.
11592	See <http://article.gmane.org/gmane.comp.lib.gnulib.bugs/16312>
11593	<https://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00134.html>
11594
115952009-01-15  Sam Steingold  <sds@gnu.org>
11596
11597	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): move AC_CONFIG_AUX_DIR up
11598	(CL_CONFIG_SUBDIRS): remove unused obsolete macro
11599
116002009-01-14  Sam Steingold  <sds@gnu.org>
11601
11602	* Makefile.devel (gnulib-imported): remove src/gllib/.cvsignore
11603
116042009-01-14  Sam Steingold  <sds@gnu.org>
11605
11606	* gllib/btowc.c, gllib/mbrtowc.c, gllib/mbsinit.c, gllib/verify.h:
11607	* gllib/wcrtomb.c, glm4/btowc.m4, glm4/locale-fr.m4, glm4/locale-ja.m4:
11608	* glm4/locale-zh.m4, glm4/mbrtowc.m4, glm4/mbsinit.m4:
11609	* glm4/multiarch.m4, glm4/wcrtomb.m4: add from gnulib
11610	* build-aux/config.guess, build-aux/config.sub, build-aux/missing:
11611	* gllib/Makefile.am, gllib/regcomp.c, gllib/regex_internal.c:
11612	* gllib/regex_internal.h, gllib/regexec.c, gllib/stdint.in.h:
11613	* gllib/stdlib.in.h, gllib/unistd.in.h, gllib/wchar.in.h:
11614	* gllib/wctype.in.h, glm4/alloca.m4, glm4/codeset.m4:
11615	* glm4/extensions.m4, glm4/fnmatch.m4, glm4/gettext.m4:
11616	* glm4/gettimeofday.m4, glm4/glibc2.m4, glm4/glibc21.m4:
11617	* glm4/gnulib-cache.m4, glm4/gnulib-common.m4, glm4/gnulib-comp.m4:
11618	* glm4/iconv.m4, glm4/intdiv0.m4, glm4/intldir.m4, glm4/intlmacosx.m4:
11619	* glm4/intmax.m4, glm4/inttypes-pri.m4, glm4/inttypes_h.m4:
11620	* glm4/lcmessage.m4, glm4/lib-ld.m4, glm4/lib-link.m4:
11621	* glm4/libsigsegv.m4, glm4/link-follow.m4, glm4/localcharset.m4:
11622	* glm4/lock.m4, glm4/longlong.m4, glm4/malloc.m4, glm4/mbstate_t.m4:
11623	* glm4/nls.m4, glm4/nocrash.m4, glm4/po.m4, glm4/printf-posix.m4:
11624	* glm4/progtest.m4, glm4/regex.m4, glm4/size_max.m4, glm4/stdbool.m4:
11625	* glm4/stdint.m4, glm4/stdint_h.m4, glm4/threadlib.m4:
11626	* glm4/uintmax_t.m4, glm4/visibility.m4, glm4/wchar.m4:
11627	* glm4/wchar_t.m4, glm4/wint_t.m4, glm4/xsize.m4: update from gnulib
11628
116292009-01-15  Vladimir Tzankov  <vtzankov@gmail.com>
11630
11631	fix mingw build
11632	* pathname.d (open_input_file): fix a typo
11633	(LAUNCH): fix missing semicolon
11634	* stream.d (MAKE-WINDOW): fix bad object declaration
11635	(low_close_socket): fix missing semicolon
11636	* spvw_garcol.d: define MAX() macro if needed
11637
116382009-01-14  Sam Steingold  <sds@gnu.org>
11639
11640	POSIX:COPY-FILE now accepts :METHOD :HARDLINK-OR-COPY
11641	* modules/syscalls/calls.c (hardlink_file): accept error_p to
11642	indicate whether an error is to be signaled and return status
11643	(copy_one_file): when method == COPY_METHOD_HARDLINK_OR_COPY and
11644	hardlink_file() fails, fallback to copy_file_low()
11645	(check_copy_method): accept :HARDLINK-OR-COPY
11646	* utils/hln.lisp: pass :METHOD :HARDLINK-OR-COPY to POSIX:COPY-FILE
11647
116482009-01-14  Sam Steingold  <sds@gnu.org>
11649
11650	* m4/clisp.m4 (AC_CLISP): new file: check for a clisp of a correct
11651	version, for packages which use clisp
11652	* makemake.in, configure: accept --aclocaldir=DIR
11653	* makemake.in: install clisp.m4 into aclocaldir
11654
116552009-01-14  Sam Steingold  <sds@gnu.org>
11656
11657	* makemake.in: remove the long unsupported cross.mem stuff,
11658	created for running the clisp compiler inside some non-clisp
11659	implementation, such as AKCL
11660
116612009-01-09  Sam Steingold  <sds@gnu.org>
11662
11663	* lisparit.d (FLOAT-SCALE-EXPONENT): restore the mantissa precision
11664
116652009-01-08  Sam Steingold  <sds@gnu.org>
11666
11667	* modules/rawsock/rawsock.c (RAWSOCK:IFADDRS): fix keyword arg case
11668
116692009-01-09  Vladimir Tzankov  <vtzankov@gmail.com>
11670
11671	fix image loading in multithread builds
11672	* spvw_memfile.d (loadmem_from_handle): do not update thread objects.
11673	they were/will be initialized properly (in single thread it is just
11674	aktenv)
11675	* spvw.d (init_memory): do not re-initialize the thread objects - they
11676	are not modified by loadmem_from_handle(); do not initialize
11677	O(all_mutexes) and O(all_exemptions) to NIL - they are loaded properly
11678	from image file
11679
116802009-01-09  Vladimir Tzankov  <vtzankov@gmail.com>
11681
11682	* io.d (READ-CHAR-NO-HANG): fix EOF case when return_Values expands
11683	to nothing (g++)
11684
116852009-01-09 Vladimir Tzankov  <vtzankov@gmail.com>
11686
11687	* lispbibl.d (SET_SP_BEFORE_SUSPEND): do not use SP() since it is not
11688	always exported to modules. use the address of dummy local variable
11689
116902009-01-08  Vladimir Tzankov  <vtzankov@gmail.com>
11691
11692	fix is_valid_stack_address() in multithread debug builds
11693	* lispbibl.d (clisp_thread_t): add _SP_before_suspend to thread struct
11694	in builds that allocate lisp objects on C stack. also export it to
11695	modules
11696	(SET_SP_BEFORE_SUSPEND): macro for setting _SP_before_suspend just
11697	before thread may be considered suspended from GC point of view. used
11698	only in debug builds
11699	(GC_SAFE_POINT_ELSE, GC_SAFE_REGION_BEGIN): use it
11700	* spvw.d (clear_per_thread_symvalues): moved to spvw_global.d (avoid
11701	compilation warnings in debug builds)
11702	* spvw_global.d (clear_per_thread_symvalues): moved from spvw.d
11703	(is_in_stack_range): helper macro to check whether an address is in
11704	thhe stack range of a thread
11705	(is_valid_stack_address): define it only when it is needed. use
11706	threads _SP_before_suspend to check address validity
11707
117082009-01-07  Sam Steingold  <sds@gnu.org>
11709
11710	fix bug#513: CLISP 2.47/amd64 can't build "pari" module
11711	* modules/pari/pari.lisp (new_galois_format, factor_add_primes):
11712	fix type declarations
11713
117142009-01-07  Vladimir Tzankov  <vtzankov@gmail.com>
11715
11716	fix bug#315: amd64 debug build broken (gc aborts)
11717	* spvw_garcol.d (update): use pointable_unchecked() instead of
11718	as_oint() for address validation in TYPECODES & SPVW_MIXED builds
11719
117202009-01-06  Sam Steingold  <sds@gnu.org>
11721
11722	fix bug#117: CLISP uses arisparc.d instead of arisparc64.d
11723	* makemake.in (cpu) [sparc64]: by default gcc runs in 32-bit mode,
11724	so set cpu based on multi-os-directory
11725
117262009-01-06  Sam Steingold  <sds@gnu.org>
11727
11728	* makemake.in (anymodule): eat our own dogfood: use the "clisp"
11729	driver instead of an explicit "lisp.run -M lispinit.mem" for $(CLISP)
11730	in the module Makefile, do not pass INCLUDES (rely on "clisp -b")
11731
117322009-01-06  Sam Steingold  <sds@gnu.org>
11733
11734	* _clisp.c (main): accept "-b" to print the installation directory
11735	* modules/berkeley-db/Makefile.in, modules/dbus/Makefile.in:
11736	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
11737	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
11738	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
11739	* modules/matlab/Makefile, modules/netica/Makefile:
11740	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
11741	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
11742	* modules/queens/Makefile, modules/rawsock/Makefile.in:
11743	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
11744	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
11745	* modules/zlib/Makefile.in, modules/clx/new-clx/clx:
11746	use "clisp -b" instead of "(namestring *lib-directory*)"
11747	and avoid GNU make-specific syntax
11748
117492009-01-06  Sam Steingold  <sds@gnu.org>
11750
11751	* lisparit.d (FLOAT-SCALE-EXPONENT): use F_extend2_F instead of
11752	F_extend_F to convert short to double, because single has the same
11753	mantissa size as short
11754
117552009-01-05  Sam Steingold  <sds@gnu.org>
11756
11757	* makemake.in (clean0): do not remove linkkit here
11758	(clean1): remove it here, together with boot/base/full
11759	(clean-modules): new target, extracted from clean7
11760	(clean7): depend on clean-modules
11761
117622009-01-05  Sam Steingold  <sds@gnu.org>
11763
11764	* modules/berkeley-db/Makefile.in, modules/dbus/Makefile.in:
11765	* modules/dirkey/Makefile.in, modules/fastcgi/Makefile.in:
11766	* modules/gdbm/Makefile.in, modules/gtk2/Makefile.in:
11767	* modules/i18n/Makefile.in, modules/libsvm/Makefile:
11768	* modules/matlab/Makefile, modules/netica/Makefile:
11769	* modules/oracle/Makefile.in, modules/pari/Makefile.in:
11770	* modules/pcre/Makefile.in, modules/postgresql/Makefile.in:
11771	* modules/queens/Makefile, modules/rawsock/Makefile.in:
11772	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
11773	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
11774	* modules/zlib/Makefile.in: restore buildability by a
11775	system-wide clisp, removing all external dependencies,
11776	specifically, $(INCLUDES)/clisp.h and modprep
11777	(INCLUDES): init to $(shell $(CLISP) -x '(namestring *lib-directory*)')/linkkit
11778	(MODPREP): remove; use $(INCLUDES)/modprep instead
11779	* makemake.in (anymodule): depend on linkkit instead of explicit files
11780
117812009-01-05  Sam Steingold  <sds@gnu.org>
11782
11783	* modules/dbus/dbus.lisp, modules/postgresql/postgresql.lisp:
11784	* modules/readline/readline.lisp: include the local "config.h",
11785	not the global <config.h>
11786
117872009-01-05  Sam Steingold  <sds@gnu.org>
11788
11789	* compiler.lisp (compile-file): when writing a C file, remove it
11790	on failure too, just like we already remove LIB and FAS files
11791
117922009-01-05  Sam Steingold  <sds@gnu.org>
11793
11794	* room.lisp (room): report GC time in seconds, not internal time units
11795
117962009-01-05  Sam Steingold  <sds@gnu.org>
11797
11798	* control.d (compile_eval_form): aktenv_to_stack may trigger GC
11799	Reported by Vladimir Tzankov.
11800
118012008-12-30  Sam Steingold  <sds@gnu.org>
11802
11803	Declaration (COMPILE) accepts name argument;
11804	this fixes bug#512: poor error messages from GF funcalls
11805	* eval.d (parse_dd): return compile name, not just a boolean
11806	(get_closure): use parse_dd return value over :LAMBDA
11807	* control.d (parse_doc_decl): ditto
11808	(compile_eval_form): accept closure_name and pass it to COMPILE-FORM
11809	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND):
11810	pass closure_name to compile_eval_form
11811	(PARSE-BODY): return 4th value - closure_name
11812	* lispbibl.d (parse_dd): update prototype
11813	* clos-class3.lisp (install-class-direct-accessors): pass funname
11814	to the COMPILE declaration
11815	* clos-genfun2b.lisp (effective-method-function-name): add
11816	(compute-effective-method-as-function): use it in COMPILE declaration
11817	(compile-no-jitc): new function, replaces *COMPILE-NO-JITC*
11818	(compute-discriminating-function-<generic-function>)
11819	(finalize-fast-gf): use COMPILE-NO-JITC
11820	* clos-method2.lisp (analyze-method-description): use 4th return
11821	value of PARSE-BODY for COMPILE declaration
11822	* compiler.lisp (process-declarations): allow (COMPILE name)
11823	(symbol-suffix): unlock the package around INTERN
11824	(compile-form, compile-form-in-toplevel-environment): accept
11825	optional NAME argument
11826	* foreign1.lisp (c-struct-constructor): pass name to the COMPILE
11827	declaration
11828
118292008-12-31  Sam Steingold  <sds@gnu.org>
11830
11831	* macros2.lisp (with-output-to-string): use
11832	SYS::BUILT-IN-STREAM-CLOSE instead of CLOSE for bootstrapping
11833	because CLOSE is only defined in gray.lisp - fairly late in the game
11834
118352008-12-30  Sam Steingold  <sds@gnu.org>
11836
11837	* modules/rawsock/sock.lisp (failure, rawsock-error): new conditions
11838	(eai): inherit from FAILURE
11839	* modules/rawsock/rawsock.c (rawsock_error): signal RAWSOCK-ERROR
11840	(SYSCALL): use it
11841
118422008-12-30  Sam Steingold  <sds@gnu.org>
11843
11844	* unixaux.d (fd_read): when errno is ECONNRESET, close fd to avoid
11845	SIGPIPE on further accesses (see tests/econnreset.lisp)
11846	Reported by Don Cohen
11847
118482008-12-30  Sam Steingold  <sds@gnu.org>
11849
11850	* error.d (OS_filestream_error): when stream is a stream,
11851	but not a file stream, signal stream-error instead of os-error
11852	* errunix.d, errwin32.d (OS_error_arg): replaces OS_file_error
11853	* lispbibl.d (OS_file_error): define using OS_error_arg
11854
118552008-12-30  Sam Steingold  <sds@gnu.org>
11856
11857	* pathname.d (task_t): use a dedicated type for
11858	directory_search instead of signean
11859
118602008-12-29  Sam Steingold  <sds@gnu.org>
11861
11862	* pathname.d (namestring_kind_t): use a dedicated type for
11863	classify_namestring instead of signean
11864
118652008-12-29  Sam Steingold  <sds@gnu.org>
11866
11867	* stream.d (buffered_t): use a dedicated type for
11868	test_buffered_arg instead of signean
11869
118702008-12-29  Sam Steingold  <sds@gnu.org>
11871
11872	* lispbibl.d (listen_t): use a dedicated type instead of signean
11873	(listen_char, listen_byte): update declarations
11874	(ls_avail, ls_eof, ls_wait, ls_avail_p, ls_eof_p, ls_wait_p): remove
11875	* debug.d (read_form): update listen_char() calls
11876	* io.d (PEEK-CHAR, LISTEN, READ-CHAR-NO-HANG): ditto
11877	* sequence.d (READ-BYTE-SEQUENCE): update listen_byte() call
11878	* stream.d: update all listen functions and their invocations
11879	throughout the file
11880
118812008-12-29  Sam Steingold  <sds@gnu.org>
11882
11883	* modules/clx/mit-clx/Makefile (clx.mem): pass file name to
11884	saveinitmem instead of using mv
11885
118862008-12-28  Sam Steingold  <sds@gnu.org>
11887
11888	* compiler.lisp (c-form-table): handle CONCATENATE with c-CONCATENATE
11889	(c-CONCATENATE): (concatenate 'string ...) ==> (string-concat ...)
11890	if all the arguments are certain to be strings
11891
118922008-12-25  Vladimir Tzankov  <vtzankov@gmail.com>
11893
11894	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): add more default
11895	special symbols per thread bindings
11896
118972008-12-25  Vladimir Tzankov  <vtzankov@gmail.com>
11898
11899	* zthread.d (MUTEX-UNLOCK): reset the mutex owner before releasing
11900	the OS mutex
11901
119022008-12-24  Sam Steingold  <sds@gnu.org>
11903
11904	* makemake.in (XCFLAGS) [DEBUGGING]: add -O0
11905
119062008-12-23  Sam Steingold  <sds@gnu.org>
11907
11908	* makemake.in (check-script): support FreeBSD make
11909
119102008-12-23  Sam Steingold  <sds@gnu.org>
11911
11912	* spvw_garcol.d (page_contains_pinned_object): do not define
11913	unless MULTITHREAD is defined to fix the --disable-mmap build
11914
119152008-12-23  Sam Steingold  <sds@gnu.org>
11916
11917	* socket.d (connect_via_ip): fix 2008-06-30 patch: is getsockopt
11918	fails, return INVALID_SOCKET instead of calling OS_error() here
11919
119202008-12-23  Sam Steingold  <sds@gnu.org>
11921
11922	* stream.d (check_value_range): extracted from ...
11923	(read_byte_array, write_byte_array, read_char_array): use it
11924
119252008-12-23  Vladimir Tzankov  <vtzankov@gmail.com>
11926
11927	* package.d (itern, do_shadow, unuse_1package, apply_symbols)
11928	(RENAME-PACKAGE, UNINTERN, DELETE-PACKAGE): use package mutex lock
11929
119302008-12-23  Vladimir Tzankov  <vtzankov@gmail.com>
11931
11932	* lispbibl.d (WITH_LISP_MUTEX_LOCK): accepts boolean parameter
11933	whether to preserve the mv_space. preserve it when unwinding
11934
119352008-12-22  Sam Steingold  <sds@gnu.org>
11936
11937	* stream.d (error_eos, HANDLE_EOF): add
11938	(READ-N-BYTES, READ-BYTE, READ-BYTE-NO-HANG, READ-INTEGER)
11939	(READ-FLOAT): use them
11940
119412008-12-22  Sam Steingold  <sds@gnu.org>
11942
11943	* modules/libsvm/libsvm.lisp: cast callback libsvm_print_string
11944	when setting print_string because...
11945	my 2008-12-19 patch is accepted by the upstream with changes:
11946	* modules/libsvm/svm.cpp, modules/libsvm/svm.h
11947	(print_string_stdout): not exported
11948	(print_string): argument is a "const"
11949
119502008-12-22  Sam Steingold  <sds@gnu.org>
11951
11952	* foreign1.lisp (prepare-module, finalize-coutput-file):
11953	module__~A__object_tab is of type gcv_object_t, not object
11954
119552008-12-21  Sam Steingold  <sds@gnu.org>
11956
11957	* stream.d (MAKE-WINDOW) [WIN32_NATIVE]: fix a GC-safety bug
11958
119592008-12-21  Sam Steingold  <sds@gnu.org>
11960
11961	* lispbibl.d (mk_pipe_from_handle): replaces mkips_from_handles
11962	and mkops_from_handles
11963	* stream.d (CHECK_UNBUFFERED_ELTYPE): new macro
11964	(make_pipe_stream): new function: common part of ...
11965	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM): use it
11966	(mk_pipe_from_handle): replaces mkips_from_handles
11967	and mkops_from_handles
11968	* pathname.d (make_launch_pipe): accept direction instead of
11969	parent_inputp
11970	(LAUNCH): pass direction_t to make_launch_pipe instead of a bool
11971
119722008-12-21  Sam Steingold  <sds@gnu.org>
11973
11974	* foreign.d (FOREIGN-FREE, update_library):
11975	* stream.d (mkops_from_handles, mkips_from_handles):
11976	* pathname.d (PROBE-PATHNAME):
11977	* modules/gdbm/gdbm.c (gdbm_open_read_write):
11978	* modules/clx/new-clx/clx.f (make_visual_info, make_color):
11979	fix GC-safety bugs: "TheFoo(STACK_0)->bar = allocate_zot()" is NOT
11980	safe because lvalue can be computed BEFORE allocation and the GC
11981	triggered by the allocation will invalidate the lvalue!
11982
119832008-12-21  Sam Steingold  <sds@gnu.org>
11984
11985	* intparam.c (string_length): avoid g++ warning
11986	"deprecated conversion from string constant to 'char*'"
11987
119882008-12-19  Sam Steingold  <sds@gnu.org>
11989
11990	redirect libsvm output to a lisp stream from C stdout
11991	* modules/libsvm/libsvm.lisp (*libsvm-output*): new variable
11992	(write-string-to-libsvm-output): new C call-in (callback)
11993	set "print_string=&libsvm_print_string" in init_2
11994	* modules/libsvm/Makefile, modules/libsvm/link.sh: callbacks
11995	require libsvm.c and ...
11996	* modules/libsvm/preload.lisp: new file for (make-package "LIBSVM" ...)
11997	submitted to upstream but not yet accepted:
11998	* modules/libsvm/svm.cpp (print_string_stdout): new function
11999	(print_string): new variable, initialized to print_string_stdout
12000	(info): use vsprintf and (*print_string)
12001	* modules/libsvm/svm.h (print_string, print_string_stdout): declare
12002
120032008-12-19  Sam Steingold  <sds@gnu.org>
12004
12005	* lispbibl.d (make_faddress): declare
12006	* foreign.d (make_faddress): make global for ...
12007	* foreign1.lisp (convert-from-foreign, convert-to-foreign): new
12008	functions to partially inline convert_from_foreign & convert_to_foreign
12009	(note-c-call-in): use them
12010
120112008-12-19  Sam Steingold  <sds@gnu.org>
12012
12013	* modules/berkeley-db/dbi.lisp (db-log-stat): fix type of mode slot
12014
120152008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>
12016
12017	* zthread.d (thread_cleanup): performs cleanup just before thread
12018	termination. currently releases (and warns) held mutexes
12019	(thread_stub): use it
12020	* spvw.d (mt_main_actions): call thread_cleanup() for the first thread
12021	* pathname.d (SAVEMEM): do not allow locked mutexes in memory image
12022
120232008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>
12024
12025	* pathname.d (SAVEMEM): signal an error if there are multiple
12026	running threads
12027	* spvw.d (single_running_threadp): returns true if the caller is the
12028	only running thread (used only by SAVEMEM)
12029	* spvw_memfile.d (loadmem_from_handle): recreate OS mutex and condition
12030	objects after memory image is loaded
12031
120322008-12-19  Vladimir Tzankov  <vtzankov@gmail.com>
12033
12034	add lisp mutex to every package in threads builds
12035	* lispbibl.d (struct Package): add pack_mutex in threads builds
12036	* package.d (make_package): initialize pack_mutex
12037
120382008-12-18  Vladimir Tzankov  <vtzankov@gmail.com>
12039
12040	fix possible memory corruption
12041	* lispbibl.d, spvw.d (clear_per_thread_symvalues): maygc. should
12042	acquire threads lock when clears the per thread bindings
12043	* symbol.d (%PROCLAIM-CONSTANT): preserve GC safety
12044
120452008-12-18  Vladimir Tzankov  <vtzankov@gmail.com>
12046
12047	WITH-LOCK in C (WITH_OS_MUTEX_LOCK, WITH_LISP_MUTEX_LOCK)
12048	* lispbibl.d (WITH_OS_MUTEX_LOCK, WITH_LISP_MUTEX_LOCK): macros
12049	for executing statements with mutex lock held and with established
12050	UNWIND_PROTECT frame ensuring that mutex is unlocked at the end
12051	* package.d (RENAME-PACKAGE, LIST-ALL-PACKAGES, MAKE-PACKAGE)
12052	(%IN-PACKAGE, DELETE-PACKAGE, FIND-ALL-SYMBOLS, MAP-ALL-SYMBOLS): use
12053	WITH_OS_MUTEX_LOCK() with all_packages_lock
12054	(do_find_all_symbols): do not lock anything - callers hold the lock
12055
120562008-12-17  Vladimir Tzankov  <vtzankov@gmail.com>
12057
12058	add mutex for O(all_packages) in threads builds
12059	* lispbibl.d (find_pacakge): may trigger GC
12060	(all_packages_lock): declaration
12061	* spvw.d (init_multithread): initialize all_packages_lock
12062	* io.d (read_internal): fix GC safety since find_package() is maygc
12063	* package.d (make_package, find_package,  do_find_all_symbols)
12064	(LIST-ALL-PACKAGES, DELETE-PACKAGE, MAP-ALL-SYMBOLS): guard access
12065	to O(all_packages) via the all_packages_lock
12066	(RENAME-PACKAGE, %IN-PACKAGE, DELETE-PACKAGE)
12067	(test_package_arg, correct_packname): fix GC safety since
12068	find_package() is maygc
12069
120702008-12-16  Sam Steingold  <sds@gnu.org>
12071
12072	* modules/libsvm/svm.cpp (info): call fflush(stdout)
12073	(info_flush): remove
12074	patch accepted by upstream
12075
120762008-12-16  Sam Steingold  <sds@gnu.org>
12077
12078	* modules/libsvm/libsvm.lisp (*libsvm-version*): add DEF-C-VAR
12079	* modules/libsvm/svm.cpp, modules/libsvm/svm.h (libsvm_version): add
12080	patch accepted by upstream
12081
120822008-12-16  Sam Steingold  <sds@gnu.org>
12083
12084	* makemake.in (check-doc): use IMPNOTES instead of
12085	*impnotes-root-default* for ${MYIMPROOT}
12086	* clhs.lisp (ensure-impnotes-map): avoid barfing on known "invalid
12087	symbol"s
12088
120892008-12-16  Sam Steingold  <sds@gnu.org>
12090
12091	* stream.d (STREAM-EXTERNAL-FORMAT): use (CAR
12092	CONCATENATED-STREAM-STREAMS) instead of always returning :DEFAULT
12093
120942008-12-15  Sam Steingold  <sds@gnu.org>
12095
12096	* modules/dirkey/dirkey.c (LDAP::DKEY-INFO): use safe_to_string
12097	* modules/syscalls/calls.c (RESOLVE-HOST-IPADDR, USER-SHELLS): add
12098	missing begin_system_call/end_system_call pairs
12099
121002008-12-15  Vladimir Tzankov  <vtzankov@gmail.com>
12101
12102	* spvw_global.d (gc_resume_all_threads): fix possible double warning
12103	of failed CALL-WITH-TIMEOUT calls
12104
121052008-12-15  Vladimir Tzankov  <vtzankov@gmail.com>
12106
12107	* spvw_circ.d: remove obsolete code (threads builds are not compatible
12108	with GC marking circularity detection)
12109
121102008-12-15  Sam Steingold  <sds@gnu.org>
12111
12112	* modules/syscalls/calls.c (sysconf_arg): update for SUS7
12113	http://www.opengroup.org/onlinepubs/9699919799/functions/sysconf.html
12114	(confstr_arg): ditto
12115	http://www.opengroup.org/onlinepubs/9699919799/functions/confstr.html
12116
121172008-12-15  Sam Steingold  <sds@gnu.org>
12118
12119	* modules/libsvm: upgrade to upstream 2.88
12120
121212008-12-15  Sam Steingold  <sds@gnu.org>
12122
12123	* m4/ln.m4 (CL_PROG_HLN): use $cl_cv_prog_LN_S_works
12124
121252008-12-14  Sam Steingold  <sds@gnu.org>
12126
12127	* stream.d (BUILT-IN-STREAM-SET-ELEMENT-TYPE): support CONCATENATED
12128	and BROADCAST streams, just like in SET-STREAM-EXTERNAL-FORMAT
12129
121302008-12-14  Sam Steingold  <sds@gnu.org>
12131
12132	* stream.d: replace SAME_HANDLE_P_OUT with a general DEBUG_OUT
12133
121342008-12-14  Sam Steingold  <sds@gnu.org>
12135
12136	* spvw_debug.d (bt_out): fflush out at the end
12137
121382008-12-14  Sam Steingold  <sds@gnu.org>
12139
12140	* stream.d (handle_direction_compatible): extracted from ...
12141	(handle_to_stream): use it
12142	(make_standard_input_file_stream): if stdin_handle is not an open
12143	input handle, return an empty concatenated stream
12144
121452008-12-12  Vladimir Tzankov  <vtzankov@gmail.com>
12146
12147	* spvw_global.d (add_per_thread_special_var): sync initialization of
12148	threads symvalues via threads lock
12149
121502008-12-12  Sam Steingold  <sds@gnu.org>
12151
12152	* modules/i18n/gettext.c (SET-LOCALE, res_to_obj): use safe_to_string
12153
121542008-12-10  Sam Steingold  <sds@gnu.org>
12155
12156	* modules/clx/new-clx/clx.f (SYS_CALL): add
12157	(make_fill_bit_vector, get_key_vector, x_open_display, encode_event)
12158	(%RESTORE-GCONTEXT-COMPONENTS, QUEUE-EVENT, ACCESS-HOSTS)
12159	(SET-WM-HINTS): use it instead of X_CALL for memcpy et al
12160
121612008-12-09  Vladimir Tzankov  <vtzankov@gmail.com>
12162
12163	* spvw_garcol.d (gc_sweep1_varobject_page): allow zero sized holes
12164	in the heap holes array. fixes corner case in gen0 GC
12165	(fill_varobject_heap_holes): handle zero sized holes
12166
121672008-12-08  Vladimir Tzankov  <vtzankov@gmail.com>
12168
12169	* spvw.d (signal_handler_thread): fix SIG_TIMEOUT_CALL in g++ threads
12170	builds
12171
121722008-12-08  Sam Steingold  <sds@gnu.org>
12173
12174	* spvw.d (init_multithread_special_symbols): fix g++ compilation
12175
121762008-12-08  Sam Steingold  <sds@gnu.org>
12177
12178	* modules/clx/new-clx/clx.lisp (closed-display)
12179	(connection-failure, device-busy): remove redefinitions
12180
121812008-12-07  Sam Steingold  <sds@gnu.org>
12182
12183	* pathname.d (directory_search_1subdir): accept subdirtail instead
12184	of subdir to fix GC-safety bug (&Car(STACK) is not gc-visible)
12185	(directory_search): fix directory_search_1subdir invocation
12186	Reported by Vladimir Tzankov
12187
121882008-12-07  Sam Steingold  <sds@gnu.org>
12189
12190	* makemake.in (XCLFLAGS): remove "-x none" which is no longer necessary
12191	<http://article.gmane.org/gmane.lisp.clisp.devel:19684>
12192	<https://sourceforge.net/p/clisp/mailman/message/21004401/>
12193
121942008-12-07  Vladimir Tzankov  <vtzankov@gmail.com>
12195
12196	GENERATIONAL_GC (with threads) VM page protection done right
12197	* spvw_garcol.d (fill_varobject_heap_holes): remove holes_count
12198	parameter. with GENERATIONAL_GC in generation 0 the holes array
12199	is filled with memory regions that have to be left with
12200	PROT_READ_WRITE protection
12201	(gar_col_normal): initialize the end of heap holes array with
12202	invalid item.
12203	* spvw_genera1.d (build_old_generation_cache): add additional
12204	parameter - array of VM paged aligned memory regions that have to
12205	be left with PROT_READ_WRITE protection
12206	* spvw_memfile.d (loadmem_from_handle): pass NULL to
12207	build_old_generation_cache()
12208	* spvw_heap.d (struct read_write_region): remove it
12209
122102008-12-06  Vladimir Tzankov  <vtzankov@gmail.com>
12211
12212	fix SPVW_PURE build
12213	* spvw_garcol.d (struct varobj_mem_region): add heapnr for SPVW_PURE
12214	with threads builds
12215	(fill_relocation_memory_regions): initialize heapnr of regions
12216	(gc_sweep1_varobject_page): fill heapnr of the holes
12217	(fill_varobject_heap_holes): fill only holes in the requested heap
12218	(gar_col_normal): fix missing semicolon. fill varobject heap holes
12219	for each heap in SPVW_PURE
12220	* spvw_memfile.d (loadmem_from_handle): initialize the physical page
12221	cache locks (GENERATIONAL_GC && SPVW_PURE_BLOCKS)
12222
122232008-12-06  Vladimir Tzankov  <vtzankov@gmail.com>
12224
12225	* spvw_garcol.d (fill_relocation_memory_regions): fix marking of VM
12226	pages from old generation
12227
122282008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>
12229
12230	threads and GENERATIONAL_GC
12231	* lispbibl.d: remove the warning about threads and GENERATIONAL_GC
12232	problems
12233	* spvw_heap.d (physpage_pin_marked, physpage_pin_mark): macros for
12234	checking/marking VM memory page which should preserve their protection
12235	after GC. used only during GC (generation == 1)
12236	(struct read_write_region): contains VM regions that have to be left
12237	with PROT_READ_WRITE after GC (generation == 0). not used currently
12238	* spvw_garcol.d (fill_relocation_memory_regions): mark the VM pages
12239	that have to preserve their protection while traversing the pinned
12240	objects in threads.
12241	(fill_varobject_heap_holes): abort wrong heap hole size. dump the
12242	hole for bug reporting
12243	(gar_col_normal): use DYNAMIC_ARRAY() instead of alloca()
12244	* spvw_genera3.d (update_old_generation): treat PROT_READ VM pages
12245	with pinned objects as PROT_READ_WRITE and update objects in them
12246	* spvw_genera1.d (build_old_generation_cache): use PROT_READ_WRITE
12247	for the whole heap instead of PROT_READ (TBD: see the comment)
12248	(rebuild_old_generation_cache): do not create/update the cache for
12249	PROT_READ_WRITE pages containing pinned objects.
12250
122512008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>
12252
12253	* spvw_global.d (gc_suspend_all_threads): increase thread's suspend
12254	count after received acknowledge. use DYNAMIC_ARRAY() instead of
12255	alloca()
12256
122572008-12-05  Vladimir Tzankov  <vtzankov@gmail.com>
12258
12259	* error.d (end_error): abort on error in case the current thread
12260	is supposed to be suspended
12261
122622008-12-05  Sam Steingold  <sds@gnu.org>
12263
12264	* check-lispfun.lisp (get-lisp-defs): also check for funcall(S())
12265	for subrs (which should be called using funcall(L()) instead)
12266	"make check-sources" is your friend!
12267
122682008-12-05  Sam Steingold  <sds@gnu.org>
12269
12270	* lispbibl.d (pin_varobject): objects of type gcv_object_t are
12271	verboten outside of GC
12272
122732008-12-05  Sam Steingold  <sds@gnu.org>
12274
12275	* check-lispfun.lisp (*const-decls*): add "constobj_tl"
12276
122772008-12-05  Sam Steingold  <sds@gnu.org>
12278
12279	remove USER_HOMEDIR - assume that all supported platforms have it
12280	* pathname.d (USER-HOMEDIR-PATHNAME): define unconditionally
12281	* constobj.d (user_homedir): ditto
12282	* constsym.d, subr.d (user_homedir_pathname): ditto
12283	* lispbibl.d (USER_HOMEDIR): remove define
12284	* spvw.d (main_actions): use L(user_homedir_pathname) in funcall
12285
122862008-12-05  Sam Steingold  <sds@gnu.org>
12287
12288	* zthread.d (MAKE-THREAD, CALL-WITH-TIMEOUT): simplify (GENSYM) funcall
12289	(THREAD-KILL): use L(thread_interrupt) instead of S() in funcall
12290	* spvw_circ.d (ht_add): use L(puthash) instead of S() in funcall
12291	* spvw.d (main_actions): simplify (GENSYM) funcall
12292
122932008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>
12294
12295	* zthread.d (remove_timeout_call): remove only the requested timeout
12296	call
12297
122982008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>
12299
12300	no PENDING_INTERRUPTS when MULTITHREAD (fixes also CALL-WITH-TIMEOUT)
12301	* lispbibl.d (PENDING_INTERRUPTS): do not define it when MULTITHREAD.
12302	it is not needed and also fixes problem with CALL-WITH-TIMEOUT when
12303	error is signalled (ualarm()/SIGALRM is called in error.d)
12304	(clisp_thread_t): remove _interrupt_pending
12305	* zthread.d (CALL-WITH-TIMEOUT): simplify code
12306
123072008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>
12308
12309	* stream.d (remove_from_open_streams): add function. removes stream
12310	from O(open_files). use open_files_lock when MULTITHREAD
12311	(close_buffered): use it
12312	(builtin_stream_close): use it
12313
123142008-12-03  Sam Steingold  <sds@gnu.org>
12315
12316	* pathname.d (dirent_buf_size) [MULTITHREAD & HAVE_READDIR_R]:
12317	define only when needed
12318	(directory_search_scandir): use readdir_r only when present and
12319	necessary, i.e., when MULTITHREAD & HAVE_READDIR_R
12320	* configure.in: check for readdir_r
12321
123222008-12-04  Vladimir Tzankov  <vtzankov@gmail.com>
12323
12324	threads fixes
12325	* error.d (end_error): abort on error signalled from region considered
12326	"safe for GC". these cases should be fixed - otherwise the thread
12327	will be treated as safe for GC while it is not
12328	* spvw.d (init_memory): O(all_mutexes) and O(all_exemptions) do not
12329	survive memory image loading - initialize them. TLO() objects also.
12330	* spvw_fault.d (handle_fault_range): guard with page spinlock all
12331	page accesses/modifications
12332	* lispbibl.d: warning for problems with threads & GENERATIONAL_GC
12333	builds
12334	(all_weakpointers_lock): O(all_weakpointers) lock. synchronize
12335	modifications of O(all_weakpointers)
12336	(unprotect_heap_range): macro calling handle_fault_range() for
12337	pinned varobjects with (PROT_READ or PROT_READ_WRITE access)
12338	(pin_varobject): accepts additional argument - what access is desired
12339	for varobject's memory. use unprotect_heap_range() - thus prevents race
12340	condition between GC and handle_fault_range()
12341	* unixaux.d: in threads builds do not call handle_fault_range()
12342	* win32aux.d: in threads builds do not call handle_fault_range()
12343	* stream.d: call pin_varobject() with desired access
12344	* spvw_weak.d (activate_weak): use all_weakpointers_lock
12345
123462008-12-03  Vladimir Tzankov  <vtzankov@gmail.com>
12347
12348	* spvw_garcol.d (fill_varobject_heap_holes): handle large heap holes
12349	in SPVW_MIXED (greater than *ARRAY-TOTAL-SIZE-LIMIT*)
12350	* spvw_sigwinch.d (gc_signalblock_on/off): not used in multithread
12351	builds
12352
123532008-12-03  Vladimir Tzankov  <vtzankov@gmail.com>
12354
12355	* pathname.d (directory_search_scandir): use readdir_r() instead of
12356	readdir() in multithread builds
12357	(dirent_buf_size): calculate the size required for struct dirent
12358	that is passed to readdir_r()
12359
123602008-12-02  Sam Steingold  <sds@gnu.org>
12361
12362	* modules/clx/new-clx/clx.f (XLIB:CREATE-PIXMAP): do not require
12363	WIDTH, HEIGHT and DEPTH, get them from XGetGeometry if missing
12364	* modules/clx/new-clx/demos/greynetic.lisp (greynetic):
12365	omit the :DEPTH argument
12366	* modules/clx/new-clx/demos/bball.lisp (bball): ditto
12367
123682008-12-02  Philippe Brochard  <hocwp@free.fr>
12369
12370	* modules/clx/new-clx/demos/greynetic.lisp (greynetic):
12371	use (xlib:screen-root-depth screen) for the :depth argument
12372	* modules/clx/new-clx/demos/bball.lisp (bball): ditto
12373	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*):
12374	enable greynetic and bball
12375
123762008-12-02  Sam Steingold  <sds@gnu.org>
12377
12378	* modules/clx/new-clx/clx.f (XLIB:DRAW-ARC): use modprep signature
12379	emulation instead of emulating it by hand
12380
123812008-12-01  Sam Steingold  <sds@gnu.org>
12382
12383	Better keysym->char conversion for the sake of McCLIM
12384	* modules/clx/new-clx/clx.f (keysym2char): new function; use
12385	int_char for 8-bit ascii and special-case 6 control keysyms;
12386	return NIL otherwise (see a long comment in the code)
12387	(KEYSYM->CHARACTER, KEYCODE->CHARACTER): use it instead if int_char
12388	Reported by Philippe Brochard <hocwp@free.fr>
12389
123902008-12-01  Sam Steingold  <sds@gnu.org>
12391
12392	* constobj.d [UNIX_CHARNAMES]: add the standard ASCII names "Lf"
12393	for "Linefeed" (10) and "Ff" for "Page" (12)
12394	* charstrg.d (charname_table_length, charname_table_codes)
12395	[UNIX_CHARNAMES]: update for the above
12396
123972008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>
12398
12399	* eval.d (interpret_bytecode_): fix a GC-safety bug (cod_bind)
12400
124012008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>
12402
12403	fix possible multithreading deadlocks
12404	* spvw.d (thread_symvalues_lock): new mutex guarding the per thread
12405	symvalues arrays in threads
12406	(init_multithread): initialize it
12407	* spvw_global.d (add_per_thread_special_var): use it. threads lock
12408	used before may lead to deadlock in certain cases
12409	* zthread.d (thread_stub): call init_reader_low() in the context of
12410	the new thread
12411	(MAKE-THREAD): remove init_reader_low() call (may cause deadlock if
12412	it triggers GC - new thread is registered but not started - so it
12413	cannot respond to the suspend request).
12414
124152008-11-29  Vladimir Tzankov  <vtzankov@gmail.com>
12416
12417	* stream.d (WRITE-INTEGER): fix a GC-safety bug
12418
124192008-11-28  Vladimir Tzankov  <vtzankov@gmail.com>
12420
12421	define O(dynamic_8bit_vector), O(dynamic_c_string) as thread-local
12422	constant objects
12423	* constobj_tl.d (dynamic_8bit_vector, dynamic_c_string): define as
12424	per thread objects
12425	* constobj.d (dynamic_8bit_vector, dynamic_c_string): remove from here
12426	* lispbibl.d (DYNAMICIC_8BIT_VECTOR, FREE_DYNAMIC_8BIT_VECTOR): use
12427	TLO() instead of O()
12428	(DYNAMIC_STRING, FREE_DYNAMIC_STRING): use TLO() instead of O()
12429	(LISPOBJ_TL): takes initstring parameter
12430	* stream.d (WRITE-INTEGER): fix a GC-safety bug
12431
124322008-11-27  Sam Steingold  <sds@gnu.org>
12433
12434	fix bug#509: hang computing log of complex zero
12435	* comptran.d (N_log_abs_R): check complex argument for 0;
12436	bug was introduced when fixing bug#463
12437
124382008-11-27  Sam Steingold  <sds@gnu.org>
12439
12440	* makemake.in (GLLIB): remove variable, use GLLIB_O instead
12441
124422008-11-27  Sam Steingold  <sds@gnu.org>
12443
12444	* utils/varbrace.c: use {} for empty `for' body to avoid a g++ warning
12445	(outbuffer_off_insert): make `insert' a `const' to avoid a g++ warning
12446	* utils/comment5.c: use {} for empty `while' body to avoid a g++ warning
12447
124482008-11-27  Sam Steingold  <sds@gnu.org>
12449
12450	* makemake.in (REPLACE_GETTIMEOFDAY): get from configure
12451	(GLLIB_O, GLLIB): add gllib/gettimeofday when REPLACE_GETTIMEOFDAY=1
12452
124532008-11-27  Vladimir Tzankov  <vtzankov@gmail.com>
12454
12455	do not pass heap pointers to potentially blocking system calls
12456	* stream.d (SOCKET-CONNECT, SYS::MAKE-SOCKET-STREAM): use
12457	with_string_0 instead of TheAsciz().
12458
124592008-11-26  Vladimir Tzankov  <vtzankov@gmail.com>
12460
12461	allow I/O customization variables to be per thread bound
12462	* spvw.d: allocate per thread symvalues in pages of 1024 object.
12463	(main): initialize per thread symbol indexes after streams
12464	special variables are defined (init_streamvars()).
12465	(initmem): do not initialize per thread symbol indexes - it is too
12466	early.  stream variables are not declared special yet.
12467
124682008-11-26  Vladimir Tzankov  <vtzankov@gmail.com>
12469
12470	* spvw_garcol.d (fill_relocation_memory_regions): handle the case
12471	of multiple times pinned object (from many threads).
12472	* streams.d (rd_ch_terminal3): fix a typo - end_blocking_system_call()
12473	instead of begin_blocking_system_call().
12474
124752008-11-25  Sam Steingold  <sds@gnu.org>
12476
12477	* predtype.d (CLASS-OF): simplify switch (Record_type(arg))
12478
124792008-11-25  Sam Steingold  <sds@gnu.org>
12480
12481	* predtype.d (TYPE-OF, CLASS-OF, heap_statistics_mapper) [MULTITHREAD]:
12482	support THREAD, MUTEX, EXEMPTION
12483	* constsym.d (hs_thread, hs_mutex, hs_exemption) [MULTITHREAD]: add
12484	* describe.lisp (describe-object@t) [MT]:
12485	handle THREAD, MUTEX, EXEMPTION
12486
124872008-11-25  Vladimir Tzankov  <vtzankov@gmail.com>
12488
12489	* spvw.d (create_thread): fill thread's _object_tab with NILs.
12490	(for_all_threadobjs): fix _object_tab iteration.
12491	* zthread (MAKE-THREAD): initialize the reader after the threads
12492	lock is released (prevents deadlock if other thread tries to trigger
12493	GC before reader variables allocation).
12494
124952008-11-24  Sam Steingold  <sds@gnu.org>
12496
12497	allow thread-local constant objects
12498	* constobj_tl.d (token_buff_1, token_buff_2, displaced_string):
12499	define there thread-local constant objects in this new file
12500	* constobj.d: include constobj_tl instead of defining these objects
12501	* lispbibl.d (TLO): define
12502	(clisp_thread_t): add _object_tab field
12503	* io.d (init_reader_low): extract from init_reader
12504	(init_reader): call it
12505	(read_token_1, test_potential_number_syntax, test_number_syntax)
12506	(signal_reader_error, test_dots, upcase_token, case_convert_token)
12507	(case_convert_token, case_convert_token_1, read_internal)
12508	(CHAR-READER, radix_2, UNINTERNED-READER, BIT-VECTOR-READER): use
12509	TLO() instead of O() for token_buff_[12] and displaced_string
12510	* package.d (get_current_package): ditto
12511	* makemake.in (EVERY_INCLUDES): add constobj_tl
12512	* spvw.d (for_all_threadobjs): iterate over thread->_object_tab too
12513	(main): call init_reader_low()
12514	* zthread.d (MAKE-THREAD): ditto
12515
125162008-11-24  Sam Steingold  <sds@gnu.org>
12517
12518	* stream.d (position_file_i_buffered): fix a GC-safety bug
12519
125202008-11-24  Sam Steingold  <sds@gnu.org>
12521
12522	* _clisp.c (main): avoid g++ warning:
12523	"deprecated conversion from string constant to 'char*'"
12524
125252008-11-23  Sam Steingold  <sds@gnu.org>
12526
12527	* spvw.d (delegating_cookie): declare "const" to avoid g++ warning
12528	"deprecated conversion from string constant to 'char*'"
12529	* spvw_memfile.d (find_marker): second argument is "const"
12530	(find_memdump): cast second argument to "const char*";
12531	use WRITE macro to avoid gcc warning "ignoring return value of
12532	'write', declared with attribute warn_unused_result"
12533	* spvw_circ.d (subst_circ_unmark): avoid gcc warning
12534	"extra tokens at end of #undef directive"
12535
125362008-11-23  Sam Steingold  <sds@gnu.org>
12537
12538	* eval.d (check_funtab): use %ld in printf to avoid a gcc warning
12539	* pathname.d (LAUNCH): ditto
12540
125412008-11-21  Vladimir Tzankov  <vtzankov@gmail.com>
12542
12543	* spvw_circ.d: use hash table for circularirty detection in MT builds.
12544
125452008-11-21  Vladimir Tzankov  <vtzankov@gmail.com>
12546
12547	add recursive mutexes
12548	* constsym.d, subr.d, subrkw.d: MAKE-MUTEX accepts keyword arguments
12549	:NAME and :RECURSIVE-P. MAKE-EXEMPTIION accepts :NAME.
12550	* zthread.d (MAKE-MUTEX): create appropriate type of mutex.
12551	non-recursive by default
12552	(MUTEX-LOCK): handle recursive mutexes. signal error on re-locking
12553	non-recursive one
12554	(MUTEX-UNLOCK): handle recursive mutexes. signal an error if the
12555	calling thread does not own the mutex
12556	(MUTEX-OWNER): returns the thread owning the mutex
12557	(MUTEX-RECURSIVE-P): returns whether the mutex is recursive
12558	(MAKE-EXEMPTION): use keyword :NAME argument
12559	(EXEMPTION-WAIT): signal an error if the calling thread does not own
12560	the mutex
12561	* lispbibl.d (Mutex): add flags and recurse count
12562	* threads.lisp: export MUTEX-OWNER and MUTEX-RECURSIVE-P
12563	(WITH-LOCK): use mutex
12564
125652008-11-20  Sam Steingold  <sds@gnu.org>
12566
12567	* .gdbinit (run_all_tests_parallel): add
12568
125692008-11-20  Sam Steingold  <sds@gnu.org>
12570
12571	* io.d (release_buffers): new macro, should be paired with get_buffers
12572	(read_token_1, STRING-READER, READ-LINE, pr_symbol_part): use it
12573
125742008-11-20  Sam Steingold  <sds@gnu.org>
12575
12576	* stream.d (rd_ch_terminal3): wrap readline() call in
12577	begin_blocking_system_call()/end_blocking_system_call()
12578
125792008-11-20  Sam Steingold  <sds@gnu.org>
12580
12581	* makemake.in (check-tests-parallel) [with_threads]: new target
12582
125832008-11-20  Vladimir Tzankov  <vtzankov@gmail.com>
12584
12585	fix memory corruption on thread symvalues initialization
12586	* spvw_memfile.d (loadmem_from_handle): storage per thread symvalues
12587	is reallocated correctly.
12588
125892008-11-20  Vladimir Tzankov  <vtzankov@gmail.com>
12590
12591	Do not use GC finalization for mutexes and exemptions
12592	* constobj.d: add O(all_mutexes), O(mutexes_to_release),
12593	O(all_exemptions) and O(exemptions_to_release)
12594	* constsym.d, subr.d: remove %MUTEX-DESTROY and %EXEMPTION-DESTROY
12595	* lispbibl.d: add locks for O(all_exemptions) and O(all_mutexes)
12596	(GC_SAFE_MUTEX_LOCK / UNLOCK): helper macros for locking xmutex_t
12597	* spvw.d (init_multithread): initialize locks for O(all_mutexes) and
12598	O(all_exemptions)
12599	* spvw_garcol.d (gar_col_normal): handle O(all_mutexes) and
12600	O(all_exemptions) - like O(open_files)
12601	(gar_col_done): release non-referenced mutexes and exemptions.
12602	(SPLIT_REF_LISTS): helper macro for splitting O(open_files),
12603	O(all_mutexes), etc into referenced and non-referenced lists.
12604	* zthread.d: remove mutex_os_detroy and exemption_os_destroy
12605	(release_mutexes): destroys the OS mutex objects for
12606	non-referenced Mutex records
12607	(release_exemptions): destroys the POSIX condition variables for
12608	non-referenced Exemption records
12609	(MAKE-MUTEX): add the created mutex to O(all_mutexes)
12610	(MAKE-EXEMPTION): add the created exemption to O(all_exemption)
12611
126122008-11-19  Sam Steingold  <sds@gnu.org>
12613
12614	* configure, makemake.in, spvw.d: remove POSIXOLD_THREADS and C_THREADS
12615
126162008-11-19  Sam Steingold  <sds@gnu.org>
12617
12618	drop privileges when running suid root and receive a --clisp- superarg
12619	* unix.d (drop_privileges): declare
12620	* unixaux.d (drop_privileges): implement, based on
12621	http://www.usenix.org/events/sec02/full_papers/chen/chen.pdf
12622	* spvw.d (parse_options): call it when receive a --clisp- superarg
12623	(main): run *init-hooks* _before_ initializing O(argv) so that
12624	applications cannot detect and thus disable "--clisp-" superarg
12625	* configure.in: check for
12626	getresuid setresuid getresgid setresgid setreuid setregid
12627
126282008-11-19  Sam Steingold  <sds@gnu.org>
12629
12630	* zthread.d (MAKE-THREAD): use check_list instead of error_list
12631	and check_string instead of check_string_replacement
12632	(MAKE-MUTEX, MAKE-EXEMPTION): use check_string instead of
12633	check_string_replacement
12634
126352008-11-19  Vladimir Tzankov  <vtzankov@gmail.com>
12636
12637	Add mutexes and POSIX condition variables (exemptions)
12638	* lispbibl.d (mutexp): macro "predicate" for mutex records
12639	(exemptionp): macro predicate for POSIX conditions records
12640	(all_finalizers_lock): mutex protecting the all_finalizers list
12641	* spvw.d (init_multithread): initialize all_finalizers_lock
12642	* spvw_typealloc.d (allocate_mutex): return NIL in case the OS mutex
12643	creation fails
12644	(allocate_exemption): return NIL in case OS condition variable
12645	creation fails
12646	(mt_main_actions): bind the *thread-whostate* for the first thread
12647	* constsym.d, subr.d: add mutex and exemption functions
12648	* record.d (finalize): use all_finalizers_lock
12649	* xthread.d (xcondition_wait): implementation for pthreads with
12650	no recursive mutex support
12651	* zthread.d (MUTEXP, MAKE-MUTEX, MUTEX-LOCK, MUTEX-UNLOCK): mutex
12652	functions available in lisp
12653	(%MUTEX-DESTROY): GC finalizer for mutex records
12654	(EXEMPTIONP, MAKE-EXEMPTION, EXEMPTION-WAIT/SIGNAL/BRAODACAST): POSIX
12655	condition variables in lisp
12656	(%EXEMPTION-DESTROY): GC finalizer for exemption records
12657	(THREAD-WHOSTATE): move to threads.lisp
12658	(check_mutex): ensure object is mutex record
12659	(check_exemption): ensure object is exemption record
12660	* threads.lisp: export mutex and exemption functions
12661	(THREAD-WHOSTATE): moved here from zthread.d
12662
126632008-11-19  Vladimir Tzankov  <vtzankov@gmail.com>
12664
12665	Remove obsolete threads flavors
12666	* xthread.d: remove POSIXOLD_THREADS and C_THREADS
12667
126682008-11-18  Sam Steingold  <sds@gnu.org>
12669
12670	STACK: depth=in frames, size=in objects (Bruno)
12671	* constsym.d, lispbibl.d, spvw.d, subr.d, subrkw.d, threads.lisp
12672	* zthread.lisp (:VSTACK-SIZE): rename from :VSTACK-DEPTH
12673	(*DEFAULT-VALUE-STACK-SIZE*): rename from *DEFAULT-VALUE-STACK-DEPTH*
12674
126752008-11-18  Sam Steingold  <sds@gnu.org>
12676
12677	* zthread.d (check_thread): do not eval() the user supplied value
12678
126792008-11-17  Vladimir Tzankov  <vtzankov@gmail.com>
12680
12681	* zthread.d (THREAD-INTERRUPT): avoid a deadlock when a terminated
12682	thread is interrupted multiple times
12683
126842008-11-17  Sam Steingold  <sds@gnu.org>
12685
12686	Remove TIME_RELATIVE, TIME_UNIX_TIMES, TIME_METHOD=1;
12687	assume either gettimeofday or ftime is present on a Unix system
12688	* Makefile.devel (gnulib-imported): also get gettimeofday
12689	* m4/gettimeofday.m4, m4/times.m4: remove
12690	* configure.in: call AC_PROG_MKDIR_P, gl_FUNC_GETTIMEOFDAY,
12691	gl_HEADER_SYS_TIME_H; do not call CL_GETTIMEOFDAY and CL_TIMES_CLOCK
12692	* constobj.d (start_UT) [TIME_RELATIVE]: remove
12693	* lisparit.d (make_random_state) [TIME_UNIX_TIMES]: drop get_real_time
12694	* lispbibl.d (TIME_ABSOLUTE, TIME_RELATIVE, TIME_UNIX_TIMES)
12695	(TIME_METHOD): remove
12696	* spvw_gcstat.d (gc_time): remove TIME_METHOD conditionals
12697	* spvw_sigsegv.d (print_mem_stats): ditto
12698	* time.d (TIME_RELATIVE, TIME_UNIX_TIMES, TIME_METHOD==1):
12699	remove all code for these conditionals
12700	* unixaux.d (gettimeofday): remove emulation (rely on gnulib)
12701	* unix.d: assume HAVE_GETTIMEOFDAY
12702	* gllib/gettimeofday.c, sys_time.in.h, gettimeofday.m4, sys_time_h.m4:
12703	add
12704
127052008-11-17  Sam Steingold  <sds@gnu.org>
12706
12707	* stream.d (stream_lend_handle): fix a GC-safety bug
12708
127092008-11-17  Sam Steingold  <sds@gnu.org>
12710
12711	assume POSIX signal()
12712	* m4/signal.m4 (CL_TYPE_SIGNAL): remove
12713	(CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK): do not require it
12714	* configure.in: do not call it
12715	* unix.d (signal_handler_t): use a POSIX-compatible declaration
12716
127172008-11-17  Sam Steingold  <sds@gnu.org>
12718
12719	fix module compilation after [threads1] merge
12720	* lispbibl.d (clisp_thread_t): move _writing_to_subprocess up
12721	before _mv_space and export it to clisp.h
12722	(mv_space) [MULTITHREAD]: export to clisp.h
12723	(HAVE_SIGNALS): no need to export to clisp.h anymore
12724	(START_WRITING_TO_SUBPROCESS, STOP_WRITING_TO_SUBPROCESS):
12725	define and export to clisp.h
12726	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
12727	* error.d, stream.d: use them instead of setting writing_to_subprocess
12728
127292008-11-17  Sam Steingold  <sds@gnu.org>
12730
12731	* stream.d (clear_input_terminal2): simplify code
12732	(clear_input_terminal3): fix a GC-safety bug
12733
127342008-11-12  Sam Steingold  <sds@gnu.org>
12735
12736	* utils/modprep.lisp (check-signature): use program_error instead
12737	of source_program_error for argument count checks because the
12738	latter requires a DETAIL slot which we do not provide
12739
127402008-11-12  Sam Steingold  <sds@gnu.org>
12741
12742	new module DEFUN keyword: &allow-other-keys
12743	* utils/modprep.lisp (signature): replace REST-P & KEY-P with REST
12744	(*valid-signatures*): update
12745	(parse-signature): accept &allow-other-keys
12746	(check-signature): output error_key_odd test for &allow-other-keys
12747	(signature-match, fundef-lispfun, print-tables-2): update
12748	* modules/clx/new-clx/clx.f (OPEN-DISPLAY, QUEUE-EVENT, SEND-EVENT):
12749	use &allow-other-keys and update argcount usage: it now counts the
12750	total number of arguments, not the number of &rest arguments
12751
127522008-11-12  Sam Steingold  <sds@gnu.org>
12753
12754	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): update the
12755	handle_length call for the 2008-09-13 change
12756
127572008-11-12  Philippe Brochard  <hocwp@free.fr>
12758	Sam Steingold  <sds@gnu.org>
12759
12760	* modules/clx/new-clx/clx.f (XLIB:QUEUE-EVENT): implement
12761	* modules/clx/new-clx/clx.lisp (QUEUE-EVENT): not UNDEFINED
12762
127632008-11-11  Philippe Brochard  <hocwp@free.fr>
12764
12765	* modules/clx/new-clx/clx.f (SEND-EVENT): fix encode_event() call
12766
127672008-11-11  Sam Steingold  <sds@gnu.org>
12768
12769	* pathname.d (PATH_VALUE, LOG_PATH_VALUE, PATH_SLOT): add macros
12770	(PATHNAME-HOST, PATHNAME-DEVICE, PATHNAME-DIRECTORY)
12771	(PATHNAME-NAME, PATHNAME-TYPE): use them
12772
127732008-11-11  Sam Steingold  <sds@gnu.org>
12774
12775	* makemake.in (DEVPREFIX) [cygwin]: restore the definition lost on
12776	2005-08-29
12777
127782008-11-11  Sam Steingold  <sds@gnu.org>
12779
12780	* cfgsunux.lisp: remove file (suntools users can set *EDITOR*)
12781	* makemake.in (CONFIG): set to cfg${TOS}
12782
127832008-11-09  Sam Steingold  <sds@gnu.org>
12784
12785	* eval.d (reset): avoid a warning in fprintf
12786
127872008-11-09  Sam Steingold  <sds@gnu.org>
12788
12789	* spvw.d (main): run *INIT-HOOKS* after initializing O(argv) so
12790	that the application can detect --clisp- options and remove setuid
12791	http://clisp.podval.org/impnotes/image.html#image-exec
12792
127932008-11-09  Sam Steingold  <sds@gnu.org>
12794
12795	* savemem.lisp (saveinitmem): when given an explicit
12796	:INIT-FUNCTION NIL, reset *DRIVER* to #'SYS::MAIN-LOOP
12797	* init.lisp: load savemem.lisp after reploop.lisp
12798	* spvw.d (usage): update REPL recover instructions: :INIT-FUNCTION NIL
12799	instead of :INIT-FUNCTION (FUNCTION SYS::MAIN-LOOP)
12800
128012008-11-08  Sam Steingold  <sds@gnu.org>
12802
12803	* modules/clx/new-clx/clx.f (EVENTS-QUEUED): add (call XEventsQueued)
12804	* modules/clx/new-clx/clx.lisp (EVENTS-QUEUED): export
12805
128062008-11-08  Sam Steingold  <sds@gnu.org>
12807
12808	* modules/rawsock/rawsock.c (SOCKADDR-FAMILY):
12809	return family as a keyword
12810
128112008-11-08  Sam Steingold  <sds@gnu.org>
12812
12813	* predtype.d (with_gc_statistics): avoid a format argument type
12814	mismatch warning
12815
128162008-11-08  Sam Steingold  <sds@gnu.org>
12817
12818	* errunix.d (errno_out_low): avoid
12819	"warning: format not a string literal and no format arguments"
12820
128212008-11-07  Sam Steingold  <sds@gnu.org>
12822
12823	* modules/clx/new-clx/clx.f (XLIB:OPEN-DISPLAY): fix the signature
12824	and a segfault in (XLIB:OPEN-DISPLAY NIL); use grasp()
12825	(DISPLAY-AUTHORIZATION): move STACK_to_mv past X_CALL
12826	(CREATE-WINDOW): use macro SLOT
12827	(get_event_mask): define as check_event_mask_of_list
12828	(make_event_mask): define as make_uint32
12829	(CREATE-PIXMAP, PROCESS-EVENT): use error_required_keywords()
12830	instead of NOTIMPLEMENTED
12831	(SEND-EVENT): fix the signature and use grasp()
12832	(dpy_wait): add
12833	(travel_queque, EVENT-LISTEN): use it
12834	(get_window_0, get_cursor_0): add
12835	(GRAB-POINTER, CHANGE-ACTIVE-POINTER-GRAB, GRAB-BUTTON):
12836	use them, thus treat NIL and UNBOUND the same: as None
12837
128382008-11-06  Sam Steingold  <sds@gnu.org>
12839
12840	* modules/clx/new-clx/clx.f (COPY-GCONTEXT-COMPONENTS):
12841	fix handling of the &rest arguments
12842
128432008-11-06  Sam Steingold  <sds@gnu.org>
12844
12845	save "delegating" executable images which only parse --clisp* args
12846	* pathname.d (SAVEMEM): second argument EXECUTABLE can be 0 to
12847	mean delegate all command line options to the INIT-FUNCTION,
12848	only parse --clisp - prefixed options
12849	* spvw.d (usage): accept delegating argument
12850	(delegating_cookie, delegating_cookie_length, delegating_p): add
12851	(parse_options): when delegating_p returns true, only handle
12852	options prefixed with --clisp
12853	* spvw_memfile.d (savemem): second argument is a uintL, not a bool
12854	(find_marker): always present
12855	(savemem_with_runtime): when the second argument delegating is
12856	true, reset the delegating cookie
12857	* lispbibl.d (savemem): update the prototype
12858
128592008-11-06  Sam Steingold  <sds@gnu.org>
12860
12861	* compiler.lisp (c-LAMBDABODY): tweak the 2008-11-02 patch: when
12862	NAME is an integer, use SYMBOL-SUFFIX for FNODE-NAME and do NOT
12863	save the new *FUNC* in *FNODE-LIST* (i.e., treat it as IGNORABLE)
12864	(c-FUNCTION, c-%GENERIC-FUNCTION-LAMBDA, c-%OPTIMIZE-FUNCTION-LAMBDA):
12865	pass (incf *anonymous-count*) as name to c-LAMBDABODY
12866
128672008-11-05  Sam Steingold  <sds@gnu.org>
12868
12869	* clhs.lisp (open-http): write http error to *HTTP-LOG-STREAM*,
12870	not *TERMINAL-STREAM*
12871
128722008-11-02  Sam Steingold  <sds@gnu.org>
12873
12874	* makemake.in (LPARTS): add timezone only when needed (not unix &
12875	not win32), i.e., never; add deflanguage files only when building
12876	with_unicode & with_gettext
12877
128782008-11-02  Sam Steingold  <sds@gnu.org>
12879
12880	implement the ANSI (IGNORE #'FUNCTION) declaration.
12881	* compiler.lisp (*fnode-list*): new dynamic variable
12882	(symbol-or-function-p): extracted from ...
12883	(process-declarations): use it for IGNORE & IGNORABLE too
12884	(fnode): add slots: IGNORE, IGNORABLE, USED
12885	(fname-ignored-p): add
12886	(c-LAMBDABODY): push *FUNC* onto *FNODE-LIST*
12887	(c-declarations): acept NAMELIST & FNODELIST to set IGNORE & IGNORABLE
12888	(c-FLET, c-LABELS): pass NAMELIST & FNODELIST to c-declarations
12889	(c-FUNCTION-MACRO-LET): make fnode IGNORABLE
12890	(value-form-index): make fnode USED and check if it was declared IGNORE
12891	(compile-lambdabody): bind *FNODE-LIST* and check for unused fnodes
12892	* timezone.lisp: declare all locals IGNORABLE
12893
128942008-11-02  Sam Steingold  <sds@gnu.org>
12895
12896	* encoding.d, errwin32.d, spvw.d, spvw_alloca.d, spvw_allocate.d,
12897	* spvw_memfile.d, spvw_mmap.d, spvw_sigsegv.d, win32aux.d: avoid
12898	"warning: format not a string literal and no format arguments"
12899	by using puts instead of printf when possible;
12900	also use fputc instead of fputs for newline
12901
129022008-11-02  Sam Steingold  <sds@gnu.org>
12903
12904	* makemake.in (XCFLAGS): add -Wno-format-nonliteral for gcc
12905	because -Wformat=2 is the default on ubuntu 8.10
12906
129072008-11-02  Sam Steingold  <sds@gnu.org>
12908
12909	* spvw_sigsegv.d (print_mem_stats): add casts in
12910	PRINT_INTERNAL_TIME to avoid compilation warnings on x86_64
12911
129122008-11-02  Sam Steingold  <sds@gnu.org>
12913
12914	* modules/berkeley-db/bdb.c: fix 4.7 support
12915
129162008-10-29  Sam Steingold  <sds@gnu.org>
12917
12918	* configure: replace "grep -e" with "grep" because Solaris 10
12919	/usr/bin/grep does not support this option even though it is
12920	standardized by http://www.opengroup.org/susv3/utilities/grep.html
12921	Reported by Raymond Toy <raymond.toy@ericsson.com>
12922
129232008-11-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12924
12925	circularity detection with GC marks in MT builds.
12926	* spvw_circ.d (initialize_circ_detection): initializes the
12927	global lock for running inside circularity detection.
12928	(circ_detection_lock): global circularity detection mutex.
12929	(get_circularities): use it.
12930	(subst_circ): use it.
12931	* spvw.d (init_multithread): use initialize_circ_detection.
12932
129332008-11-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12934
12935	circularity detection using LISP hashtables
12936	* spvw_circ.d: circularity detection using LISP hashtables.
12937
129382008-11-11  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12939
12940	* spvw_garcol.d (fill_varobject_heap_holes): fix build for SPVW_PURE.
12941	* threads.lisp (*DEFAULT-SPECIAL-BINDINGS*): EXT::*COMMAND-INDEX*
12942	is not exported at the time threads.lisp is loaded.
12943
129442008-10-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12945
12946	* spvw_garcol.d (page_contains_pinned_object): fix SPVW_PAGES build.
12947
129482008-10-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12949
12950	* xthread.d: AMD64 spinlocks are the same as I80386
12951
129522008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12953
12954	* xthread.d: add AMD64 spinlock implementation.
12955	(xthread_create): do not use gcc extensions for POSIX_THREADS.
12956
129572008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12958
12959	* lispbibl.d (Symbol_value): do not use gcc extensions.
12960	(Symbol_thread_value): do not use gcc extensions.
12961	(Symbolflagged_value): do not use gcc extensions.
12962	(symbol_value_i / symbol_value_h): helper static inline
12963	functions for preventing multiple time argument execution.
12964	(roughly_SP): define "generic" version that does not use gcc
12965	extensions.
12966
129672008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12968
12969	* lispbibl.d (GC_SAFE_SYSTEM_CALL): do not use gcc extensions.
12970	(GC_SAFE_CALL): do not use gcc extensions.
12971	(current_thread): do not use gcc extensions.
12972	* pathname.d: use new GC_SAFE_SYSTEM_CALL()/GC_SAFE_CALL().
12973	(check_file_reopen): fix GCSAFETY bug.
12974	* stream.d: use new GC_SAFE_SYSTEM_CALL()/GC_SAFE_CALL().
12975
129762008-10-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12977
12978	* spvw_garcol.d (gc_sweep1_varobject_page): pinned objects
12979	are always marked.
12980	* xthread.d: do not check for errors when spinlock_t=mutex_t.
12981
129822008-10-29  Vladimir Tzankov  <vtzankov@gmail.com>  [threads1]
12983
12984	* spvw.d (init_multithreading): initialize timeout_call_chain_lock
12985	spinlock.
12986	* zthread.d (timeout_call_chain_lock): just declare it - do not
12987	initialize.
12988	* xthread.d (SPINLOCK_INIT): remove it.
12989	spinlocks should be initialized with spinlock_init().
12990	(xmutex_lock): do not use "var" for local variables.
12991	(xmutex_trylock): fix typo error.
12992	(spinlock_acquire): do not check for errors when spinlock_t=xmutex_t
12993	(spinlock_release): do not check for errors when spinlock_t=xmutex_t
12994	* spvw_garcol.d (gc_sweep1_varobject_page): holes_count should be
12995	pointer to uintC. Do not mark explicitly pinned objects.
12996
129972008-10-29  Sam Steingold  <sds@gnu.org>
12998
12999	* spvw.d (main): avoid a compilation warning;
13000	use ascii_to_string() instead of asciz_to_string() for simplicity
13001
130022008-10-29  Sam Steingold  <sds@gnu.org>
13003
13004	fix --with-threads compilation on platforms where spinlock_t=xmutex_t
13005	* xthread.d (SPINLOCK_INIT): define
13006	* zthread.d (timeout_call_chain_lock): use it
13007
130082008-10-29  Sam Steingold  <sds@gnu.org>
13009
13010	* stream.d (get_open_files_lock, release_open_files_lock): define
13011	(add_to_open_streams, find_open_file): use them
13012	(rd_ch_keyboard): avoid a "warning: empty body in an if-statement"
13013
130142008-10-29  Sam Steingold  <sds@gnu.org>
13015
13016	Merge the [threads] branch into the trunk
13017	* constobj.d, constsym.d, control.d, debug.d, error.d, eval.d,
13018	* lispbibl.d, makemake.in, package.d, pathname.d, savemem.lisp,
13019	* spvw.d, spvw_allocate.d, spvw_circ.d, spvw_fault.d, spvw_garcol.d,
13020	* spvw_gcmark.d, spvw_genera1.d, spvw_global.d, spvw_heap.d,
13021	* spvw_memfile.d, spvw_sigint.d, spvw_sigpipe.d, spvw_sigterm.d,
13022	* spvw_typealloc.d, spvw_update.d, stream.d, subr.d, subrkw.d,
13023	* symbol.d, threads.lisp, time.d, xthread.d, zthread.d: merge
13024	* spvw_garcol_old.d: the pre-MT garbage collector, enabled by
13025	NO_MULTITHREAD_GC in lispbibl.d
13026	* makemake.in (SPVW_INCLUDES): add spvw_garcol_old
13027	* po/Makefile.devel (DSOURCES): ditto
13028
130292008-10-28  Sam Steingold  <sds@gnu.org>
13030
13031	fix bug#504: LOAD-LOGICAL-PATHNAME-TRANSLATIONS
13032	confuses "many" and "one" when *LOAD-PATHS* is wild
13033	* init.lisp (search-file): treat wild elements of *LOAD-PATHS*
13034	just like non-wild ones, i.e., return directories, not their listings
13035
130362008-10-28  Sam Steingold  <sds@gnu.org>
13037
13038	* pathname.d (PROBE-PATHNAME): do NOT modify the argument!
13039
130402008-10-27  Philippe Brochard  <hocwp@free.fr>
13041
13042	* modules/clx/new-clx/clx.f (GRAB-BUTTON, UNGRAB-BUTTON): fix
13043	button argument handling
13044
130452008-10-27  Sam Steingold  <sds@gnu.org>
13046
13047	fix bug#499: text drawing functions ignore :start & :end
13048	* modules/clx/new-clx/clx.f (get_substring_arg)
13049	(unpack_stringarg_alloca): add
13050	(general_draw_text, TEXT-EXTENTS, TEXT-WIDTH): use
13051	unpack_stringarg_alloca
13052
130532008-10-26  Sam Steingold  <sds@gnu.org>
13054
13055	* makemake.in: when re-creating gllib subdir,
13056	use "config.status $@/Makefile depfiles"
13057	instead of "config.status --file=$@/Makefile depfiles" as suggested
13058	in <http://article.gmane.org/gmane.comp.lib.gnulib.bugs/15449>
13059	<https://lists.gnu.org/archive/html/bug-gnulib/2008-10/msg00500.html>
13060	to work around an autoconf bug
13061
130622008-10-26  Sam Steingold  <sds@gnu.org>
13063
13064	* configure (conf_dir): remove and inline (called just once);
13065	fix redirections to avoid the "/bin/sh: Illegal option --" error;
13066	check whether requested modules require FFI by looking at
13067	configure.in, Makefile, *.lisp instead of listing modules explicitly
13068
130692008-10-25  Sam Steingold  <sds@gnu.org>
13070
13071	* modules/syscalls/calls.c (FILE-STAT): init file variable
13072
130732008-10-25  Sam Steingold  <sds@gnu.org>
13074
13075	separate potentially blocking system calls from heap access
13076	* pathname.d (check_file_reopen): use namestring_file_id instead
13077	of with_file_id
13078	* stream.d (find_open_file): second argument is uintB flags (this
13079	is not used as a callback anymore)
13080	* unix.d, unixaux.d, win32.d, win32aux.d (namestring_file_id):
13081	replaces with_file_id
13082
130832008-10-24  Sam Steingold  <sds@gnu.org>
13084
13085	Support Berkeley-DB 2.7
13086	* modules/berkeley-db/configure.in: check for
13087	DB_ENV.log_set_config and DB_ENV.get_intermediate_dir_mode
13088	* modules/berkeley-db/bdb.c (DBE-SET-OPTIONS, DBE-GET-OPTIONS)
13089	[HAVE_DB_ENV_GET_INTERMEDIATE_DIR_MODE]: accept :INTERMEDIATE-DIR-MODE;
13090	[HAVE_DB_ENV_LOG_SET_CONFIG]:
13091	accept LOG-DIRECT LOG-DSYNC LOG-AUTO-REMOVE LOG-IN-MEMORY LOG-ZERO
13092	instead of DSYNC-LOG LOG-AUTOREMOVE LOG-INMEMORY DIRECT-LOG (1 extra)
13093	(dbe_get_intermediate_dir_mode): add DEFINE_DBE_GETTER1
13094
130952008-10-24  Sam Steingold  <sds@gnu.org>
13096
13097	ensure that all module configures have aux build dir set up
13098	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): call AC_CONFIG_AUX_DIR here
13099	* modules/berkeley-db/configure.in, modules/gdbm/configure.in,
13100	* modules/pari/configure.in, modules/pcre/configure.in,
13101	* modules/postgresql/configure.in, modules/regexp/configure.in,
13102	* modules/zlib/configure.in: do not call AC_CONFIG_AUX_DIR,
13103	pass argument to CL_MODULE_COMMON_CHECKS instead
13104	* modules/clx/new-clx/configure.in, modules/dirkey/configure.in,
13105	* modules/fastcgi/configure.in, modules/gtk2/configure.in,
13106	* modules/i18n/configure.in, modules/oracle/configure.in,
13107	* modules/dbus/configure.in, modules/rawsock/configure.in,
13108	* modules/readline/configure.in, modules/syscalls/configure.in,
13109	* modules/wildcard/configure.in:
13110	pass argument to CL_MODULE_COMMON_CHECKS
13111
131122008-10-24  Sam Steingold  <sds@gnu.org>
13113
13114	* build-aux/config.rpath, gllib/Makefile.am, gllib/stdint.in.h,
13115	* gllib/stdlib.in.h, gllib/unistd.in.h, gllib/wchar.in.h,
13116	* gllib/wctype.in.h, gllib/uniwidth/width.c, glm4/gnulib-cache.m4,
13117	* glm4/gnulib-common.m4, glm4/gnulib-comp.m4, glm4/include_next.m4,
13118	* glm4/lib-link.m4, glm4/lib-prefix.m4, glm4/lock.m4,
13119	* glm4/stdlib_h.m4, glm4/unistd_h.m4, glm4/wchar.m4: sync with gnulib
13120	* glm4/threadlib.m4: add (pulled in by gettext 0.17)
13121
131222008-10-24  Sam Steingold  <sds@gnu.org>
13123
13124	replace m4/make.m4 with glm4/gnu-make.m4
13125	* Makefile.devel (gnulib-imported): add gnu-make
13126	* m4/make.m4: remove
13127	* glm4/gnu-make.m4: add
13128	* configure.in: use gl_GNU_MAKE instead of CL_PROG_MAKE
13129
131302008-10-24  Sam Steingold  <sds@gnu.org>
13131
13132	* version.sh: 2.47+ (2008-10-24)
13133
131342008-10-23  Sam Steingold  <sds@gnu.org>
13135
13136	* configure.in (ALL_LINGUAS): remove obsolete variable, use ...
13137	* po/LINGUAS: new file, keep the list of languages here
13138	* makemake.in: use it
13139
131402008-10-23  Sam Steingold  <sds@gnu.org>
13141
13142	* version.sh: 2.47 (2008-10-23)
13143
131442008-10-23  Sam Steingold  <sds@gnu.org>
13145
13146	* configure (maybe_mkdir): remove
13147	* makemake.in: restore --datadir for compatibility with configure
13148
131492008-10-23  Stelian Ionescu  <sionescu@common-lisp.net>
13150
13151	* configure, makemake.in: accept --infodir for compatibility with
13152	generated configure scripts
13153
131542008-10-23  Sam Steingold  <sds@gnu.org>
13155
13156	fix bug#503: new-clx timeout precision is limited
13157	* modules/clx/new-clx/clx.f (PROCESS-EVENT, EVENT-LISTEN): pass
13158	unbound instead of NIL as the usec argument to sec_usec()
13159
131602008-10-22  Sam Steingold  <sds@gnu.org>
13161
13162	* po/Makefile.in.in (install-data-yes, installdirs): use "mkdir -p",
13163	just like on 2007-12-05
13164	* Makefile.devel (VER, REL): use "./version.sh" instead of "version.sh"
13165
131662008-10-20  Sam Steingold  <sds@gnu.org>
13167
13168	* modules/rawsock/rawsock.c (check_iff): default=(unsigned)~0
13169	(IFADDRS): accept :FLAGS-AND and :FLAGS-OR to filter out some interfaces
13170	(pushSTACK_sockaddr): replaces sockaddr_to_lisp1
13171
131722008-10-20  Sam Steingold  <sds@gnu.org>
13173
13174	* utils/modprep.lisp (print-tables-1): check that the DEFCHECKER
13175	default is a valid CPP constant ([_A-Za-z0-9]*) before protecting
13176	it with "#ifdef" to accommodate "(unsigned)~0" et al
13177
131782008-10-18  Shawn Betts  <sabetts@gmail.com>
13179	Sam Steingold  <sds@gnu.org>
13180
13181	* modules/clx/new-clx/clx.lisp (get-wm-class): expect the
13182	unexpected: there may be many Nulls in WM_CLASS
13183
131842008-10-18  Adam Warner  <awarner@users.sourceforge.net>
13185
13186	fix bug#502: Patch --without-unicode build failure
13187	* pathname.d (direntry_to_string) [!UNICODE]: restore non-UNICODE
13188	build by using n_char_to_string()
13189
131902008-10-17  Sam Steingold  <sds@gnu.org>
13191
13192	* makemake.in (docdir): defaults in configure to
13193	${datarootdir}/doc/${PACKAGE_TARNAME},
13194	not ${datarootdir}/doc/${PACKAGE}
13195	Reported by "Jose A. Ortega Ruiz" <jao@gnu.org> in
13196	<http://article.gmane.org/gmane.lisp.clisp.general/12471>
13197	<https://sourceforge.net/p/clisp/mailman/message/20576516/>
13198
131992008-10-17  Sam Steingold  <sds@gnu.org>
13200
13201	* makemake.in: partially reverted the 2008-10-10 (revision 1.775) patch
13202	which broke Solaris 8 which requires "gllib/stdint.h".
13203	CPPFLAGS is for host (and this goes into UTILCOMPILE) while
13204	XCPPFLAGS is for target (and thus is used to compile *.d)
13205	Reported by Raymond Toy <raymond.toy@ericsson.com>
13206
132072008-10-16  Sam Steingold  <sds@gnu.org>
13208
13209	* modules/syscalls/calls.c (USER-INFO): for :DEFAULT,
13210	use getpwuid(getuid()) if getlogin() fails
13211
132122008-10-16  Sam Steingold  <sds@gnu.org>
13213
13214	* modules/clx/new-clx/clx.f (CHECK_TYPE): add
13215	(ensure_living_display, get_ptr_object_and_display)
13216	(make_xid_obj_low, get_xid_object_and_display, get_display_obj_tc)
13217	(general_plist_reader, general_plist_writer, SET-WM-HINTS): use it
13218
132192008-10-16  Drutsa Pavel  <rawlik@users.sourceforge.net>
13220
13221	fix bug#500: Error: should have been a WINDOW, but was PIXMAP
13222	* modules/clx/new-clx/clx.f (make_drawable): use
13223	"make_xid_obj (`XLIB::DRAWABLE`...)" instead of "make_window()"
13224
132252008-10-13  Michael Kappert  <michael.kappert@gmx.net>
13226	Sam Steingold  <sds@gnu.org>
13227
13228	* makemake.in (check-script): strip CR (\r) from all output for woe32
13229
132302008-10-13  Sam Steingold  <sds@gnu.org>
13231
13232	* makemake.in, configure: remove --enable-maintainer-mode and
13233	never create the autoconf target because configure really depends
13234	on m4/*, glm4/* &c and to implement this properly we would need to
13235	check in makemake for autoconf 2.61+ in path, and then generate
13236	much of Makefile.devel in makemake.in (IOW, I can no longer recall
13237	when was the last time this target was useful as opposed to a nuisance)
13238
132392008-10-10  Sam Steingold  <sds@gnu.org>
13240
13241	* makemake.in (UTILCOMPILE): use XCPPFLAGS XCFLAGS XCLFLAGS and
13242	omit EXTRAOBJ to avoid mingw __errno linking problems
13243
132442008-10-10  Sam Steingold  <sds@gnu.org>
13245
13246	* makemake.in: finish the 2007-10-29 (1.690) patch:
13247	remove all mentions of XCC_UNUSABLE_CPP and gcc-cccp
13248
132492008-10-10  Sam Steingold  <sds@gnu.org>
13250
13251	* modules/syscalls/calls.c (get_file_size) [WIN32_NATIVE]: add
13252	(FILE-SIZE) [WIN32_NATIVE]: use it instead of GetFileSizeEx
13253	which takes a handle and not a pathname
13254
132552008-10-08  Sam Steingold  <sds@gnu.org>
13256
13257	* modules/bindings/glibc/linux.lisp (strsignal, _NSIG): add;
13258	use DEF-C-CONST instead of DEFCONSTANT for signals
13259	(ECANCELED, ENOKEY, EKEYEXPIRED, EKEYREVOKED, EKEYREJECTED)
13260	(EOWNERDEAD, ENOTRECOVERABLE): add errnos
13261
132622008-10-06  Sam Steingold  <sds@gnu.org>
13263
13264	fix bug#498: name conflict with libmysqlclient
13265	* spvw.d, lispbibl.d (clisp_malloc): rename from my_malloc
13266	(clisp_realloc): rename from my_realloc
13267	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
13268	* modules/i18n/gettext.c, modules/regexp/regexi.c:
13269	* modules/syscalls/calls.c, foreign.d, spvw_weak.d: update callers
13270
132712008-10-03  Sam Steingold  <sds@gnu.org>
13272
13273	* foreign.d: use BEGIN_DECLS & END_DECLS
13274
132752008-09-29  Sam Steingold  <sds@gnu.org>
13276
13277	* modules/matlab/wrap.lisp (matfile-content): use MEMORY-AS
13278	instead of WITH-C-VAR+CAST for efficiency
13279	Suggested by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>
13280
132812008-09-26  Sam Steingold  <sds@gnu.org>
13282
13283	* m4/general.m4 (CL_CANONICAL_HOST_CPU): better mips detection,
13284	from the debian ffcall patch
13285
132862008-09-26  Sam Steingold  <sds@gnu.org>
13287
13288	* version.sh: 2.46++ (2008-09-23)
13289
132902008-09-26  Sam Steingold  <sds@gnu.org>
13291
13292	* modules/syscalls/calls.c (path_truncate, stream_truncate)
13293	[WIN32_NATIVE]: clarify (simplify?) logic
13294
132952008-09-24  Sam Steingold  <sds@gnu.org>
13296
13297	* clhs.lisp (open-http): also include port number in the Host header
13298	Reported by Raymond Toy <raymond.toy@ericsson.com>
13299
133002008-09-24  Sam Steingold  <sds@gnu.org>
13301
13302	* modules/syscalls/calls.c (path_truncate) [WIN32_NATIVE]: fix logic
13303
133042008-09-23  Sam Steingold  <sds@gnu.org>
13305
13306	* modules/regexp/regexi.c (REGEXP-EXEC): when :BOOLEAN is T but
13307	match failed, return 1 value NIL instead of 0 values;
13308	accept :RETURN-TYPE to return a LIST or a VECTOR instead of
13309	multiple values; also return a list when the number of match
13310	groups is more than MULTIPLE-VALUES-LIMIT
13311
133122008-09-23  Sam Steingold  <sds@gnu.org>
13313
13314	* clhs.lisp (open-http): fix the Host: header
13315	Reported by Raymond Toy <raymond.toy@ericsson.com>
13316
133172008-09-19  Sam Steingold  <sds@gnu.org>
13318
13319	* modules/i18n/gettext.c (SET-TEXTDOMAINDIR): remove unused variable
13320	* modules/syscalls/calls.c (STREAM-OPTIONS): ditto
13321	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): ditto
13322	* genclisph.d (Lsuffix): remove unused global static
13323	(ULLsuffix): declare only when used
13324	(emit_typedef_test): use "%ld" for sizeof
13325	* spvw_debug.d (nobject_out1, bt_out): cast pointers to (uintP)
13326	before printing, print long ints as "%ld"
13327	* stream.d (xrealloc): remove unused function
13328	(TERMINAL-RAW, read_line, READ-INTEGER, READ-FLOAT)
13329	(WRITE-INTEGER): remove unused variable
13330
133312008-09-18  Sam Steingold  <sds@gnu.org>
13332
13333	* modules/rawsock/rawsock.c (my_check_argument): remove (not used
13334	since DEFCHECKERs were introduced in 1.10 on 2004-05-14)
13335
133362008-09-18  Sam Steingold  <sds@gnu.org>
13337
13338	* modules/berkeley-db/dbi.lisp (close@db): pass :ABORT as :NOSYNC
13339
133402008-09-18  Sam Steingold  <sds@gnu.org>
13341
13342	* modules/syscalls/calls.c (on_pnamestring): generalize ...
13343	(stat_obj): remove
13344	(path_truncate): do not do begin/end_system_call and error
13345	reporting, return status instead
13346	(%SET-FILE-SIZE, FILE-SIZE, FILE-STAT, find_first_file)
13347	(SET-FILE-STAT, STAT-VFS, FILE-OWNER, copy_attributes_and_close):
13348	use on_pnamestring
13349
133502008-09-18  Sam Steingold  <sds@gnu.org>
13351
13352	* clhs.lisp (open-http): "user-agent" includes version;
13353	link to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
13354
133552008-09-17  Sam Steingold  <sds@gnu.org>
13356
13357	* modules/syscalls/calls.c (POSIX:FILE-SIZE) [WIN32_NATIVE]:
13358	surround the GetFileSizeEx call with begin/end_system_call;
13359	use sint64_to_I instead of off_to_I for the return value
13360
133612008-09-17  Sam Steingold  <sds@gnu.org>
13362
13363	* makemake.in (EVERY_INCLUDES_H): fix the logic for adding config.h
13364
133652008-09-16  Sam Steingold  <sds@gnu.org>
13366
13367	* modules/syscalls/calls.c: include <sys/param.h>
13368	(MAXHOSTNAMELEN): fall back to 256 (not 64)
13369	(MAXPATHLEN): fall back to 4096 (not 1024)
13370	* modules/syscalls/configure.in: check for <sys/param.h> (for woe32)
13371	* unix.d: include <sys/param.h> just once
13372	(MAXHOSTNAMELEN): fall back to 256 (not 64)
13373
133742008-09-15  Sam Steingold  <sds@gnu.org>
13375
13376	* modules/syscalls/calls.c (POSIX:DOMAINNAME)
13377	(POSIX::%SETDOMAINNAME): add
13378	* modules/syscalls/posix.lisp (domainname): add defsetf and export
13379
133802008-09-15  Sam Steingold  <sds@gnu.org>
13381
13382	* modules/syscalls/calls.c (POSIX:USER-SHELLS): implement
13383	* modules/syscalls/posix.lisp (USER-SHELLS): export
13384
133852008-09-15  Sam Steingold  <sds@gnu.org>
13386
13387	* modules/syscalls/calls.c
13388	(grp_to_lisp): use gid_to_I instead of UL_to_I
13389	(GROUP-INFO): use integerp instead of uint32_p
13390
133912008-09-15  Sam Steingold  <sds@gnu.org>
13392
13393	* configure: fix bug#495: libsigsegv configure hints
13394	suggest "rm -f ${DIRNAME}/config.cache"
13395
133962008-09-15  Sam Steingold  <sds@gnu.org>
13397
13398	* clhs.lisp (*http-log-stream*): defvar
13399	(open-http): accept :LOG argument
13400	(http-proxy, open-http, get-clhs-map, get-string-map)
13401	(ensure-impnotes-map): use *HTTP-LOG-STREAM* for logging
13402	* init.lisp (*http-log-stream*): export from CUSTOM
13403
134042008-09-15  Sam Steingold  <sds@gnu.org>
13405
13406	* makemake.in (check-script) [win32]: disable $? tests because
13407	%ERRORLEVEL% on woe32 can be reset to 0 all of a sudden
13408	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by> in
13409	<http://article.gmane.org/gmane.lisp.clisp.devel/18967>
13410	<https://sourceforge.net/p/clisp/mailman/message/20318073/>
13411
134122008-09-13  Sam Steingold  <sds@gnu.org>
13413
13414	* disassem.lisp (disassemble-machine-code): update for the
13415	2008-09-10 change: SHELL on success returns NIL
13416
134172008-09-12  Sam Steingold  <sds@gnu.org>
13418
13419	* makemake.in (HSDEFAULT): "http://www.lisp.org/HyperSpec" is dead,
13420	use "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec"
13421	* configure: adjust the help message
13422
134232008-09-10  Sam Steingold  <sds@gnu.org>
13424
13425	* pathname.d (SHELL) [WIN32_NATIVE]: return NIL on success and
13426	exitcode on failure, just like on Unix and as documented
13427	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
13428	(EXECUTE) [UNIX]: use WEXITSTATUS et al to parse status
13429
134302008-09-02  Sam Steingold  <sds@gnu.org>
13431
13432	* error.d (%DEFCLCS): use symbol_tab instead of symbol_tab_data
13433	to support TYPECODES on 32 bit platforms
13434	Reported by Vladimir Tzankov <vtzankov@gmail.com>
13435
134362008-09-02  Sam Steingold  <sds@gnu.org>
13437
13438	* makemake.in (check-script): use $(RUN) instead of lisp.run
13439	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
13440
134412008-08-25  Bruno Haible  <bruno@clisp.org>
13442
13443	* configure (SIGSEGV): Set to libsigsegv-2.6.
13444
134452008-08-24  Bruno Haible  <bruno@clisp.org>
13446
13447	* spvw_sigsegv.d (stackoverflow_handler_continuation): New function,
13448	extracted from stackoverflow_handler.
13449	(stackoverflow_handler): Invoke it. Adapt to sigsegv_leave_handler API
13450	change in libsigsegv-2.6.
13451
134522008-08-21  Sam Steingold  <sds@gnu.org>
13453
13454	* modules/dbus/dbus.lisp (DBusMessageIter): c-struct, not c-pointer
13455
134562008-08-21  Sam Steingold  <sds@gnu.org>
13457
13458	* foreign.d (foreign_with_pointers_p): support inttypes (return false)
13459
134602008-08-20  Sam Steingold  <sds@gnu.org>
13461
13462	* lispbibl.d (I_to_ulong, I_to_slong): define regardless of
13463	HAVE_FFI for the sake of the syscalls module
13464	* modules/syscalls/calls.c (%SETHOSTID): sethostid does not return
13465	a value on *BSD, use errno to check for errors
13466	Reported by José H. Espinosa <jose.h.espinosa@gmail.com>
13467
134682008-08-20  Sam Steingold  <sds@gnu.org>
13469
13470	* modules/dbus/configure.in (dbus_int64_t, dbus_int32_t, dbus_uint32_t)
13471	(dbus_int16_t, dbus_unichar_t, dbus_bool_t): check types
13472	* modules/dbus/dbus.lisp (def-c-const): import from EXPORTING;
13473	pass DBusError by reference using (c-pointer DBusError) instead of
13474	returning a fresh object using (error (c-ptr DBusError) :in-out) et al;
13475	(DBusMessageIter): add def-c-type
13476
134772008-08-20  Sam Steingold  <sds@gnu.org>
13478
13479	* makemake.in (check-script): use ${TRCRLF} to delete '\r' from
13480	output in addition to replacing '\n' with '_' to fix woe32
13481
134822008-08-18  Sam Steingold  <sds@gnu.org>
13483
13484	* modules/syscalls/calls.c: make sure that end_system_call() is
13485	called before all errors and that
13486	errno is only accessed inside begin_system_call/end_system_call
13487
134882008-08-17  Sam Steingold  <sds@gnu.org>
13489
13490	* modules/syscalls/calls.c (path_truncate, stream_truncate): call
13491	end_system_call(); before signaling errors
13492	(I_to_file_offset, FILE-SIZE) [WIN32_NATIVE]: use LARGE_INTEGER.QuadPart
13493	(stream_truncate) [WIN32_NATIVE]: fix LARGE_INTEGER literal
13494
134952008-08-15  Sam Steingold  <sds@gnu.org>
13496
13497	* modules/syscalls/calls.c (path_truncate, stream_truncate, FILE-SIZE):
13498	handle WIN32_NATIVE before HAVE_TRUNCATE & HAVE_FTRUNCATE because
13499	WIN32_NATIVE has a broken ftruncate (similar to fstat: accept some
13500	unknown int instead of a handle)
13501	(I_to_offset, STREAM-LOCK, %SETHOSTID): check arg type before conversion
13502	(file_offset_t): new type, necessary because file offset in win32
13503	is represented by a non-integer type LARGE_INTEGER
13504	(I_to_file_offset): convert from an integer
13505	(path_truncate, stream_truncate): accept length of type file_offset_t
13506	(%SET-FILE-SIZE): use I_to_file_offset
13507	(FILE-SIZE): use L2_to_I for WIN32_NATIVE
13508
135092008-08-15  Sam Steingold  <sds@gnu.org>
13510
13511	* pathname.d (find_first_file): fix FindFirstFile call
13512
135132008-08-14  Sam Steingold  <sds@gnu.org>
13514
13515	* modules/syscalls/calls.c (HOSTID): rename from GETHOSTID
13516	(%SETHOSTID) [HAVE_SETHOSTID]: add
13517	* modules/syscalls/posix.lisp (hostid): add a defsetf
13518	* modules/syscalls/configure.in (sethostid): add a check
13519
135202008-08-13  Frederik  <freggy@gmail.com>
13521	Sam Steingold  <sds@gnu.org>
13522
13523	* modules/postgresql/configure.in: fix a typo in header detection
13524
135252008-08-12  Sam Steingold  <sds@gnu.org>
13526
13527	* pathname.d (PROBE-PATHNAME): call use_default_dir before
13528	classify_namestring because the win32 real_path requires an
13529	absolute pathname
13530
135312008-08-12  Sam Steingold  <sds@gnu.org>
13532
13533	* socket.d: all known unix (and woe32) systems have gethostname
13534
135352008-08-12  Sam Steingold  <sds@gnu.org>
13536
13537	all known unix systems have uname
13538	* unix.d (uname): remove prototype
13539	* m4/utsname.m4: remove
13540	* configure.in, syscalls/configure.in: do not use CL_UTSNAME
13541	* misc.d (MACHINE-TYPE, MACHINE-VERSION) [UNIX]: assume uname()
13542
135432008-08-11  Sam Steingold  <sds@gnu.org>
13544
13545	* pathname.d: regularize #ifdef UNIX/WIN32 to #if/#elif/#else #error
13546
135472008-08-11  Sam Steingold  <sds@gnu.org>
13548
13549	* pathname.d (FIND_DATA_FWD, FIND_DATA_FSIZE, find_first_file)
13550	[WIN32_NATIVE]: add
13551	(classify_namestring): also accept ans return fwd & fsize; use
13552	find_first_file for WIN32_NATIVE
13553	(PROBE-PATHNAME): return 4 values for existing paths (+ fwd + fsize)
13554	(READDIR_entry_timedate): use FIND_DATA_FWD
13555	(READDIR_entry_size): use FIND_DATA_FSIZE
13556	(copy_pathname_and_add_subdir): pass NULLs as fwd/fsize to
13557	classify_namestring()
13558	(FILE-WRITE-DATE): use find_first_file & FIND_DATA_FWD
13559	* init.lisp (ppn-fwd): no need to call FILE-WRITE-DATE or DIRECTORY
13560
135612008-08-11  Sam Steingold  <sds@gnu.org>
13562
13563	* gllib/regex_internal.h, glm4/libsigsegv.m4: update from gnulib
13564
135652008-08-10  Sam Steingold  <sds@gnu.org>
13566
13567	* hashtabl.d (hashcode4_atom): avoid MIN which is not defined on woe32
13568	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
13569
135702008-08-10  Sam Steingold  <sds@gnu.org>
13571
13572	* makemake.in (check-script): use PRINC instead of PRINT for cygwin
13573	Reported by Reini Urban <rurban@x-ray.at>
13574
135752008-08-09  Sam Steingold  <sds@gnu.org>
13576
13577	fix patches 2008-07-11 & 2008-07-12 for Woe32
13578	* pathname.d (file_status_is_dir) [WIN32_NATIVE]: return bool
13579	(assure_dir_exists) [WIN32_NATIVE]: fix var field access
13580	(classify_namestring) [WIN32_NATIVE]: fix var name
13581	(stat_obj): guard with "#ifdef UNIX"
13582	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
13583
135842008-08-06  Sam Steingold  <sds@gnu.org>
13585
13586	* fill-out.lisp (fill-stream-flush-buffer):
13587	remove the "one-line sexp on its own line" special case, see
13588	<http://article.gmane.org/gmane.lisp.clisp.devel/18759>
13589	<https://sourceforge.net/p/clisp/mailman/message/20036814/>
13590
135912008-08-07  Sam Steingold  <sds@gnu.org>
13592
13593	* modules/dirkey/dirkey.c (init_iteration_node): do not pass
13594	pointers into the Lisp heap to system calls
13595
135962008-08-05  Vladimir Tzankov  <vtzankov@gmail.com>
13597
13598	* lispbibl.d (Rectype_Thread, Rectype_Mutex, Rectype_Exemption):
13599	move above rectype_longlimit because these are XRECORDs, not LRECORDs
13600
136012008-08-05  Sam Steingold  <sds@gnu.org>
13602
13603	* pathname.d (check_file_reopen): *REOPEN-OPEN-FILE* can also be CLOSE
13604	* constsym.d (close): declare
13605
136062008-08-05  Sam Steingold  <sds@gnu.org>
13607
13608	* modules/readline/readline.lisp: upgrade from readline 5.0 to 5.2
13609	(variable-value, reset-screen-size, prefer-env-winsize, readerr)
13610	(state-callback, state-vimotion, state-multikey, state-vicmdonce)
13611	(default-inputrc, sys-inputrc, tilde-expand): add
13612	* modules/readline/configure.in: check for the new features
13613
136142008-08-05  Vladimir Tzankov  <vtzankov@gmail.com>
13615
13616	* lispbibl.d (pointable_address_unchecked) [HEAPCODES]:
13617	export to clisp.h
13618
136192008-08-04  Sam Steingold  <sds@gnu.org>
13620
13621	* modules/syscalls/calls.c (PATHCONF): fix g++ compilation
13622
136232008-08-04  Sam Steingold  <sds@gnu.org>
13624
13625	* pathname.d (check_file_reopen): fix a GC-safety bug; check the
13626	value of *REOPEN-OPEN-FILE* and change it to ERROR if it is invalid
13627
136282008-08-04  Sam Steingold  <sds@gnu.org>
13629
13630	* analyse-funtab.lisp (map-calls): turn into a generic function to
13631	support generic functions (map over fast functions in methods)
13632
136332008-08-04  Sam Steingold  <sds@gnu.org>
13634
13635	* control.d (make_vframe_activate): use GCTRIGGER2(value1,value2)
13636	instead of a global maygc similar to make_variable_frame() which
13637	is the only GC-unsafe call in make_vframe_activate()
13638	Reported by Vladimir Tzankov <vtzankov@gmail.com>
13639
136402008-08-04  Sam Steingold  <sds@gnu.org>
13641
13642	* clos-class6.lisp (class-prototype@built-in-class): finish last
13643	patch: (SYS::%UNBOUND) should be the first argument to EQ
13644
136452008-08-04  Sam Steingold  <sds@gnu.org>
13646
13647	* lispbibl.d (thread_length): define to 3 because Thread contains
13648	3 gcv_object_t fields
13649
136502008-08-01  Sam Steingold  <sds@gnu.org>
13651
13652	* modules/dbus/dbus.lisp: support dbus 1.2.1
13653	(*foreign-guard*): set to T
13654	* modules/dbus/configure.in: check all functions
13655
136562008-07-31  Sam Steingold  <sds@gnu.org>
13657
13658	* clhs.lisp (documentation@package): fail gracefully when id-href
13659	is missing the package and impnotes must be regenerated
13660
136612008-07-31  Sam Steingold  <sds@gnu.org>
13662
13663	* foreign1.lisp (def-c-enum): accept non-numeric-literal values
13664
136652008-07-31  Sam Steingold  <sds@gnu.org>
13666
13667	* modules/gtk2/configure.in: fail if FFI is not present
13668
136692008-07-31  Sam Steingold  <sds@gnu.org>
13670
13671	* modules/dbus: new module
13672	* Makefile.devel (MODULES): add dbus
13673
136742008-07-29  Sam Steingold  <sds@gnu.org>
13675
13676	* init.lisp (search-file): fix a bug in "wild" code which caused
13677	SEARCH-FILE to return NIL even when it found something
13678
136792008-07-28 Reini Urban  <rurban@x-ray.at>
13680
13681	<37_runprog>
13682	* runprog.lisp: Translate comments to English.
13683
136842008-07-28  Sam Steingold  <sds@gnu.org>
13685
13686	* lispbibl.d (builtin_stream_p): do not export
13687	* modules/syscalls/calls.c (PATHCONF, FILE-STAT, STAT-VFS):
13688	use open_file_stream_handle instead of
13689	builtin_stream_p + SYS::BUILT-IN-STREAM-OPEN-P
13690
136912008-07-28  Sam Steingold  <sds@gnu.org>
13692
13693	new SETFable function POSIX:FILE-SIZE
13694	* modules/syscalls/configure.in: check for truncate & ftruncate
13695	* modules/syscalls/calls.c (FILE-SIZE, %SET-FILE-SIZE): implement
13696	* modules/syscalls/posix.lisp (FILE-SIZE): defsetf & export
13697	* stream.d (check_open_file_stream): replace strict_p with
13698	permissive_p to allow retuning nullobj instead of signaling an error
13699	(open_file_stream_handle): accept permissive_p
13700	* lispbibl.d (open_file_stream_handle): update the prototype
13701
137022008-10-27  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13703
13704	Code cleanup
13705	* lispbibl.d (unpin_varobject_i): remove just a single
13706	pinned object from the chain (anyway it was not possible
13707	to remove more).
13708	* zthread.d (remove_timeout_call): iterate with single
13709	variable over the timeout_call_chain.
13710
137112008-10-27  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13712
13713	Fix single thread build
13714	* pathname.d (openp): use open_files_lock only in MT.
13715	* stream.d (add_to_open_streams): use open_files_lock only in MT.
13716	(find_open_file): use open_files_lock only in MT.
13717
137182008-10-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13719
13720	GC safe regions on system calls in pathname.d
13721	* lispbibl.d (clisp_thread_t): reorder the fields. Most used
13722	are first. add _running_handle_directory_encoding_error - global
13723	variable in pathname.d
13724	(open_files_lock): global mutex guarding access/modifications of
13725	O(open_files).
13726	* spvw.d (init_multithreading): initialize open_files_lock.
13727	* stream.d (open_files_lock): declaration.
13728	(add_to_open_streams): serialize calls via open_files_lock.
13729	(find_open_file): maygc. serialize calls via open_files_lock.
13730	* pathname.d: add GC safe regions around possibly blocking
13731	system calls.
13732	(openp): maygc. serialize calls via open_files_lock.
13733
137342008-10-20  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13735
13736	Code cleanup.
13737	* spvw.d (signal_handler_thread): better comment.
13738	* spvw_global.d (gc_resume_all_threads): code cleanup (removed
13739	garbage code).
13740
137412008-10-20  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13742
13743	CALL-WITH-TIMEOUT bugfix and user warning on failure.
13744	* lispbibl.d (struct timeout_call): add new member - failed -
13745	set to true if thread has failed to be interrupted.
13746	* spvw.d (signal_handler_thread): on SIGINT abort if no thread can
13747	be interrupted. on SIGALRM (CALL-WITH-TIMEOUT) just mark the
13748	timeout_call as failed if xthread_signal() fails. on termination
13749	signals - call quit() if some thread cannot be signaled.
13750	* spvw_global.d (gc_resume_all_threads): before resuming threads -
13751	report failed timeout_calls if any.
13752	* zthread.d (remove_timeout_call): is maygc now. acquires the
13753	timeout_call_chain lock before executing. If the timeout_call has
13754	failed - reports it as warning.
13755	(CALL-WITH-TIMEOUT): bugfix when the timeout is fraction number and
13756	there is overflow in microseconds.
13757	* pathname.d: sync with CVS head.
13758
137592008-10-17  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13760
13761	CALL-WITH-TIMEOUT fix on linux. Code cleanup
13762	* lispbibl.d (main_threadp): removed. no more special LISP threads.
13763	(thr_signal_handler): declaration of the id of the signal handling
13764	thread (needed for process signal raising).
13765	* spvw.d (main): initialize thr_signal_handler.
13766	(signal_handling_thread): SIGALRM and SIG_TIMEOUT_CALL handled the
13767	same way. May be abandon SIG_TIMEOUT_CALL in future.
13768	* spvw_garcol.d (gar_col_normal): fix the single threaded build.
13769	* zthread.d: add comments.
13770	(CALL-WITH-TIMEOUT): use pthread_kill()/xthread_signal() instead of
13771	raise(sig). On 32 bit Debian(2.6 kernel) the raise()-ed signals are
13772	not delivered to the sigwait().
13773
137742008-10-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13775
13776	Fix declaration of timeout_call_chain and timeout_call_chain_lock.
13777	* lispbibl.d: timeout_call_chain and timeout_call_chain_lock
13778	declared as extern.
13779
137802008-10-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13781
13782	CALL-WITH-TIMEOUT implemented. CATCH frame for THREAD-KILL.
13783	* lispbibl.d (clisp_thread_t): _dummy_stack_end is replaced by
13784	_thread_exit_tag. for immediate thread exit (with stack unwind)
13785	the tag pointed by it should be thrown in the thread context.
13786	(struct timeout_call): structure for describing CALL-WITH-TIMEOUT call
13787	in progress.
13788	(timeout_call_chain): global chain of timeout_call(s) sorted by their
13789	expiration time.
13790	(timeout_call_chain_lock): spinlock for guarding the access to
13791	timeout_call_chain.
13792	(timeval_less): compares two timeval structures.
13793	* spvw.d (main_actions): establish CATCH frame for thread exit
13794	before calling driver().
13795	(acquire_heap_and_threads_locks): renamed to lock_heap_from_signal. Now
13796	it acquires only the heap lock and ensures that there is no GC in
13797	progress (and will not be possible until signal handler releases it).
13798	(timeval_subtract): subtracts two timeval structures. used for
13799	computing SIGALRM time.
13800	(signal_handler_thread): handle SIGALRM and SIG_TIMEOUT_CALL signals
13801	i.e. CALL-WITH-TIMEOUT without spawning new OS thread.
13802	* spvw_global.d (gc_suspend/resume_all_threads): no need to keep
13803	the threads lock while all threads are suspended. Makes signals
13804	handler thread easier.
13805	(gc_suspend_count): now it is guarded by the heap lock ("guarded" from
13806	the signal handler thread).
13807	* time.d (SYSTEM::%SLEEP): do not use sleep()/usleep() in
13808	multithread builds since.
13809	* eval.d (reset): restored it. no more "dummy stack end" for
13810	thread exit.
13811	* threads.lisp (%THROW_TAG): throws its argument. Needed in order
13812	to interrupt thread by from signal handler. (THROW is special form
13813	and cannot be funcall-ed).
13814	* constsym.d (thread_throw_tag): symbol for accessing the
13815	%THROW_TAG function from THREADS package.
13816	* zthread.d (ensure_uint32): removed - not need for it.
13817	(thread_stub): establish CATCH frame for thread exit before the
13818	driver frame.
13819	(MAKE-THREAD): initialize the _thread_exit_tag for the newly created
13820	thread.
13821	(insert_timeout_call): inserts new timeout call into the sorted chain
13822	of pending ones (timeout_call_chain). Should be called with lock held.
13823	(remove_timeout_call): removes an item from timeout_call_chain. Should
13824	be called with the lock held.
13825	(CALL-WITH-TIMEOUT): implemented without spawning OS threads.
13826	(THREAD-KILL): use THREAD-INTERRUPT and %THROW_TAG.
13827
138282008-10-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13829
13830	Fix possible race condition during SIGINT handling.
13831	* spvw.d (acquire_heap_and_threads_locks): acquires global locks
13832	from signal handler without causing deadlock.
13833	(signal_handler_thread): fix possible race condition in SIGINT
13834	handling. use acquire_heap_and_threads_locks.
13835
138362008-10-15  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13837
13838	DEBUG_GCSAFETY fixes in signal handler thread.
13839	* spvw.d (signal_handler_thread): use_dummy_alloccount can be
13840	used only when the LISP threads are suspended.
13841
138422008-10-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13843
13844	Signal handling code cleanup.
13845	* lispbibl.d: export updated (with _suspend_count) clisp_thread_t
13846	to modules. Suspend and resume always lock the threads and do not
13847	care anymore whether the lock has been already acquired (since all
13848	mutexes are recursive now).
13849	(gc_suspend/resume_all_threads): does not take lock_threads anymore.
13850	(GC_STOP/RESUME_WORLD): does not take lock_threads anymore.
13851	(WITH_STOPPED_WORLD): does not take lock_threads anymore. parameters
13852	reordered.
13853	* spvw.d (for_all_threads): traverse the threads array in
13854	ascending order (most of the time gives more natural SIGINT handling).
13855	(interrupt_thread_signal_handler): release the "ok to reenter" spinlock
13856	before "entering LISP land".
13857	(signal_handler_thread): more sane signal handling. No signal will be
13858	missed due to GC in progress.
13859	* spvw_global.d (gc_suspend/resume_all_threads): does not take
13860	lock_thread parameter anymore. always acquires threads lock (it is
13861	safe due to the fact that all mutexes are recursive now).
13862	(add_per_thread_special_var): code cleanup.
13863	* spvw_allocate.d: changes due to GC_STOP/RESUME_WORLD parameter change.
13864	* spvw_garcol.d (gc_sweep1_varobject_page): assert and abort on
13865	impossible case (that will lead to segfault shortly if happens).
13866	(fill_varobject_heap_holes): assert if the created object for hole
13867	filling does not have the same length as the heap hole.
13868	* zthread.d (MAKE-THREAD): clisp_thread_t allocation is guarded
13869	by the threads lock (because of add_per_thread_special_var()
13870	possible race condition).
13871	(THREAD-INTERRUPT): returns two values - the thread itself and T/NIL
13872	depending whether it has really tryed to interrupt the thread (in case
13873	the thread has terminated or there is some OS error - the second
13874	return value is NIL).
13875	(THREAD-KILL): same as THREAD-INTERRUPT.
13876	* xthread.d (xmutex_init): make it recursive on Solaris.
13877	(xmutext_trylock): define it on Solaris.
13878
138792008-10-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13880
13881	Pinned varobjects and signal handling fixes.
13882	* lispbibl.d (WITH_STOPPED_WORLD): parameters reordered.
13883	* spvw.d (signal_handler_thread): fixed race condition between GC
13884	and signal handler.
13885	(lock_heap_from_signal_thread): removed
13886	* spvw_garcol.d (gc_sweep1_varobject_page): fixed the pinned
13887	objects handling.
13888	(fill_varobject_heap_holes): checks for heap corruption.
13889	TODO: fill holes in string heap in SPVW_PURE.
13890	(gar_col_normal): compute the number of possible heap holes before
13891	allocation of varobj_mem_region arrays.
13892	* spvw_global.d (add_per_thread_special_var): reorder parameters
13893	to  WITH_STOPPED_WORLD.
13894	* zthread.d (ensure_uint32): fixed missing return type.
13895
138962008-10-10  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13897
13898	Per thread suspend/resume as GC safe points.
13899	* lispbibl.d (struct clisp_thread_t): new member - _suspend_count.
13900	Specifies how many times the thread has been suspended.
13901	(WITH_STOPPED_THREAD): macro for executing statement ensuring that
13902	a thread is either terminated or suspended at safe point (used by
13903	THREAD-INTERRUPT and THREAD-KILL).
13904	(suspend_thread/resume_thread): global functions declaration.
13905	* spvw.d: add comments
13906	(lock_heap_from_signal_thread): function for locking the LISP heap
13907	when executing in the signal handling thread (should wait for GC to
13908	finish if in progress).
13909	(signal_handler_thread): use lock_heap_from_signal_thread().
13910	* spvw_global.d (suspend_thread/resume_thread): suspend/resume
13911	LISP thread execution at/from GC safe point.
13912	(gc_suspend_all_threads/gc_resume_all_threads): changed in order to take
13913	into account the threads _suspend_count(s).
13914	* zthread.d (THREAD-INTERRUPT): use WITH_STOPPED_THREAD instead of
13915	WITH_STOPPED_WORLD.
13916	(THREAD-KILL): use WITH_STOPPED_THREAD instead of WITH_STOPPED_WORLD.
13917
139182008-10-09  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13919
13920	Signals loss fix. Docs update. :VSTACK-SIZE --> :VSTACK_DEPTH
13921	* zthread.d/subr.d/subrkw.d/constsym.d/threads.lisp/spvw.d:
13922	*DEFAULT-VALUE-STACK-SIZE* and :VSTACK-SIZE renamed
13923	to *DEFAULT-VALUE-STACK-DEPTH* and :VSTACK-DEPTH.
13924	* lispbibl.d (clisp_thread_t): new spinlock: _signal_reenter_ok
13925	preventing loss of SIG_THREAD_INTERRUPT signal (a signal is sent
13926	only when this lock is held).
13927	(GC_SAFE_SPINLOCK_ACQUIRE): macro for GC friendly spinlock acquire.
13928	* spvw.d (allocate_list_thread_stack): the parameter is stack depth now.
13929	(create_thread): the parameter is stack depth now.
13930	(main): after creating main_actions() thread - set the current
13931	TLS clisp_thread_t to NULL - not in LISP world anymore.
13932	(interrupt_thread_signal_handler): release the "ok to reenter" spinlock
13933	after signal re-establishment.
13934	* spvw_global.d (ACQUIRE_HEAP_LOCK): use GC_SAFE_SPINLOCK_ACQUIRE.
13935	* zthread.d (MAKE-THREAD): :VSTACK-DEPTH change.
13936	(THREAD-KILL): fixed. there was race condition problem (many calls for
13937	the same thread).
13938	(THREAD-INTERRUPT): be sure that the signal will be received before
13939	sending it (i.e. "ok to reenter" spinlock).
13940	* threads.lisp (*DEFAULT-CONTROL-STACK-SIZE*): initialized to 1 MB.
13941
139422008-10-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13943
13944	All threads equal citizens (main not special). Stack sizes settable.
13945	* lispbibl.d: do not use break_sems in MT builds.
13946	* spvw.d: main thread is not different than ones created by
13947	MAKE-THREAD anymore (almost - LISP stack is "leaked" on exit).
13948	fixed signal handler with DEBUG_GCSAFETY.
13949	(init_memory): initialize THREADS::*DEFAULT-VALUE-STACK-SIZE*.
13950	(mt_main_actions): wrapper for main_actions() executed in its own
13951	thread.
13952	(main): the thread (C thread) executing  main() does the signal
13953	handling - after creating mt_main_actions() thread.
13954	(signal_handler_thread): fix DEBUG_GCSAFETY. ignore SIGHUP and
13955	SIGCONT on UNIX_MACOSX until I know how to handle them (vfork()
13956	causes SIGHUP and may be SIGCONT).
13957	(install_async_signal_handlers): do not start thread for signal
13958	handling - now it is done from main().
13959	* spvw_global.d (RESERVE_FOR_MALLOC): in MT build increased to 4
13960	MB (LISP stacks and symvalues are allocated - currently - via malloc().
13961	Probably completely different way for stack allocation is needed).
13962	* constsym.d: add THREADS::*DEFAULT-CONTROL-STACK-SIZE* (C stack) and
13963	THREADS::*DEFAULT-VALUE-STACK-SIZE* (LISP stack).
13964	* subr.d, subrkw.d (make_thread): add :CSTACK-SIZE and
13965	:VSTACK-SIZE keywords parameters
13966	* threads.lisp: add THREADS::*DEFAULT-CONTROL-STACK-SIZE* (C
13967	stack) and THREADS::*DEFAULT-VALUE-STACK-SIZE* (LISP stack)
13968	* zthread.d (ensure_uint32): ensures that its integer argument
13969	 (object) can fit in uint32
13970	(MAKE-THREAD): add :CSTACK-SIZE and :VSTACK-SIZE keywords parameters.
13971	(THREAD-KILL): do not wait on the killed thread to exit.
13972	* xthread.d (xthread_create): POSIX - create detached threads and
13973	sets the stack size.
13974	(xthread_wait): remove - no thread join.
13975	* pathname.d: add to CVS "threads" branch
13976	(EXECUTE): wait2 surrounded by GC safe region (many other places
13977	have the same requirement).
13978
139792008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13980
13981	debug.d added to threads branch.
13982	* debug.d: added (there is a call to GC that has to stop the  world).
13983
139842008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
13985
13986	Implementation of THREAD-INTERRUPT, THREAD-KILL and SIGTERM signals.
13987	* lispbibl.d (clisp_thread_t): two new members. _own_stack -
13988	whether the thread should release the memory for the LISP stack on exit.
13989	_dummy_stack_end - pointer in the stack of the thread used for hiding
13990	the top level driver frame (revealed on thread termination).
13991	* spvw.d (create_thread): sets the _own_stack depending whether
13992	the memory for the stack was allocated in it.
13993	(delete_thread): calls quit() on exiting from the last thread.
13994	(signal_handler_thread): implement termination signals.
13995	(main): never exits - even on main thread termination (see comment).
13996	(main_actions): create the top level driver and hide it via the
13997	"dummy stack end" - will be revealed only on forced termination.
13998	* eval.d (reset): reveal the stack beyond the "dummy stack end" if
13999	needed - the top level driver frame.
14000	* zthread.d (thread_stub): mark the "dummy stack end" after the
14001	driver frame.
14002	(THREAD-INTERRUPT): implemented.
14003	(THREAD-KILL): implemented (via THREAD-INTERRUPT and dummy stack end).
14004
140052008-10-07  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14006
14007	Signal handling implementation of SIGINT and SIG_THREAD_INTERRUP
14008	* lispbibl.d: synced with CVS head
14009	(interruptp): not used in MT.
14010	* error.d: added to threads branch.
14011	(tast_break): do nothing in MT.
14012	* constsym.d (THREAD-RESTART): removed.
14013	* constobj.d (thread_break_description): string "CTRL-C: User
14014	break", since from the signal handler thread we cannot allocate
14015	any lisp object.
14016	* subr.d (THREAD-RESTART): removed.
14017	* spvw.d: synced with CVS head
14018	(signal_handler_thread): implemented CTRL-C signal handler.
14019	(interrupt_thread_signal_handler): implemented.
14020	* spvw_sigint.d: use it only in single thread builds
14021	* spvw_sigterm.d: use it only in single thread builds
14022	* spvw_typealloc.d (allocate_thread): do not initialize the xth_system.
14023	* spvw_weak.d: sync with CVS head
14024	* time.d (%SLEEP): end_blocking_call() in case of error in select().
14025	* xthread.d (xthread_init): use pthread_mutexattr_settype instead
14026	of "np" version.
14027	(xthread_signal): wrapper for pthread_kill().
14028	* zthread.d (THREAD-RESTART): removed.
14029	(thread_symbol_place): use eq() for checking  empty symvalue.
14030	(CALL-WITH-TIMEOUT): removed broken implementation.
14031	* threads.lisp (THREAD-RESTART): removed from export list.
14032	(THREADS::*THREAD-WHOSTATE*): special variable for thread's whostate.
14033
140342008-10-06  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14035
14036	SYMBOL-VALUE-THREAD implementation.
14037	* spvw.d (main): give name to first thread - "main thread".
14038	* subr.d: removed SYMBOL-GLOBAL-VALUE and SYMBOL-THREAD-VALUE.
14039	added SYMBOL-VALUE-THREAD.
14040	* constsym.d: removed SYMBOL-GLOBAL-VALUE and SYMBOL-THREAD-VALUE.
14041	added SYMBOL-VALUE-THREAD and SET-SYMBOL-VALUE-THREAD.
14042	* zthread.d (SYMBOL-VALUE-THREAD): returns two values - global/per
14043	thread symbol binding and BOUND-P boolean (as of -
14044	<http://article.gmane.org/gmane.lisp.clisp.devel/19153>
14045	<https://sourceforge.net/p/clisp/mailman/message/20484424/>)
14046	(SET-SYMBOL-VALUE-THREAD): used for SETF of the SYMBOL-THREAD-VALUE.
14047	(thread_symbol_place): helper function returning pointer to symbol
14048	binding (in thread or global).
14049	(MAKE-THREAD): make :NAME parameter is required - every thread
14050	should have name.
14051	(check-thread): thread argument replacement (when not a thread is
14052	passed).
14053	* threads.lisp: export SYMBOL-VALUE-THREAD and define SETF for it.
14054
140552008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14056
14057	MT signal handling partial implementation.
14058	* lispbibl.d (NC_STACK_): moved here from zthread.d.
14059	(NC_pushSTACK): moved here from zthread.d.
14060	(SIG_THREAD_INTERRUPT): signal used for interrupting thread
14061	execution (SIGUSR1).
14062	* spvw.d: MT signal processing machinery moved here from
14063	zthread.d (needs macros like for_all_threads() and we do not want
14064	to expose the threads internals - i.e. allthreads[] array).
14065	(async_signal_mask): returns the signal mask including all async
14066	signals that have to be handled/blocked.
14067	(install_async_signal_handlers): implemented.
14068	(signal_handler_thread): the signal handling thread. partially
14069	implemented.
14070	(interrupt_thread_signal_handler): SIG_THREAD_INTERRUPT handler.
14071	just a stub - to be implemented.
14072	* zthread.d: MT signal processing stuff moved to spvw.d. "Foreign"
14073	stack access macros moved to lispbibl.d.
14074
140752008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14076
14077	Small fixes
14078	* constsym.d (LISPSYM_B): initialize the filler member for
14079	LINUX_NOEXEC_HEAPCODES and MULTITHREAD.
14080	* xthread.d: better handling of pthreads with recursive mutex
14081	support.
14082
140832008-10-05  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14084
14085	Small fixes and initial signal handling routines.
14086	* lispbibl.d (install_async_signal_handlers): install global async
14087	signal handlers in MT (starts non-lisp thread waiting with
14088	sigwait() for masked signals)
14089	* spvw.d (main): do not install normal handlers for async signals in MT.
14090	(recursive_mutexattr): cached global mutex attribute for recursive
14091	mutex creation (if supported by pthreads).
14092	* spvw_allocate.d: just formatting
14093	* spvw_global.d (add_per_thread_special_var): symbol_index was
14094	declared twice.
14095	* constsym.d (symbol-thread-value): added.
14096	* subr.d (symbol-thread-value): added.
14097	* zthread.d (thread_stub): initialize thread backtrace (important
14098	on errors). fix the lisp stack handling in case of errors.
14099	(symbol-thread-value): added and implemented.
14100	(install_async_signal_handlers): added - still not implemented.
14101	* xthread.d: xmutex_t should be recursive mutex - because of WIN32
14102	CRITICAL_SECTION that is always recursive (we want to have same
14103	behavior on all platforms).
14104	Implemented for POSIX_THREADS in case the pthreads implementation
14105	does not already support it.
14106	* threads.lisp (symbol-thread-value): exported from MT package.
14107
141082008-10-03  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14109
14110	Driver frame for new threads and initial special vars bindings
14111	* lispbibl.d (threadp): macro for testing if an object is lisp
14112	thread object.
14113	* spvw.d (delete_thread): do not free per thread symvalues - leave
14114	them to release_threads (during GC).
14115	* zthread.d: some comments
14116	(release_threads): release the per thread symvalues.
14117	(error_thread): signal type_error for its argument (as error_list).
14118	(thread_stub): create a driver frame before calling thread function.
14119	compute initial special variables bindings before calling thread
14120	function.
14121	(MAKE-THREAD): additional &key parameter - initial bindings. defaults
14122	to mt:*default-special-bindings*.
14123	(THREADP): implemented.
14124	(THREAD-NAME): implemented.
14125	(THREAD-ACTIVE-P): implemented.
14126	(SYMBOL-GLOBAL-VALUE): new function - returns the global symbol value.
14127	* constsym.d (symbol_global_value): added.
14128	(default_special_bindings): added.
14129	(initial_bindings): keyword added.
14130	* subr.d (MT:MAKE-THREAD): add :initial-bindings keyword parameter.
14131	(MT:SYMBOL-GLOBAL-VALUE): added.
14132	* subrkw.d: change MAKE-THREAD definition to accept :initial-bindings.
14133	* threads.lisp (SYMBOL-GLOBAL-VALUE): exported.
14134	(*DEFAULT-SPECIAL-BINDINGS*): exported and initialized.
14135
141362008-09-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14137
14138	Status update and (delete-package) per thread symbols release
14139	* spvw.d (clear_per_thread_symvalues): is not maygc.
14140	* symbol.d (proclaim_constant): because of clear_per_thread_symvalues().
14141	* package.d (delete_package_aux): remove possible per thread
14142	bindings of package symbols.
14143
141442008-09-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14145
14146	Thread safety fixes (for special variables)
14147	* lispbibl.d (clear_per_thread_symvalues): maygc while waiting for
14148	threads lock.
14149	(GC_STOP/RESUME_WORLD): additional parameter indicating whether we
14150	already own the threads lock.
14151	(WITH_STOPPED_WORLD): previously was _PERFORM_GC. added parameter.
14152	(PERFORM_GC): use WITH_STOPPED_WORLD
14153	* spvw.d (lock/unlock_threads): mutex locking surrounded with
14154	begin/end_system_call().
14155	(add_per_thread_special_var): moved to spvw_global.d (since it may
14156	"stop the world").
14157	(clear_per_thread_symvalues): maygc while waiting for threads lock.
14158	* spvw_global.d (add_per_thread_special_var): moved here from
14159	spvw.d. will "stop the world" when reallocating threads symvalues.
14160	(gc_suspend/resume_all_threads): additional parameter indicating
14161	whether to acquire the thread lock (it is not recursive and the
14162	caller may already own it).
14163	* spvw_allocate.d: pass additional parameter to GC_STOP/RESUME_WORLD().
14164	* eval.d (interpret_bytecode_): fix GCSAFETY in cod_bind.
14165	* symbol.d (proclaim_constant): fix GCSAFETY.
14166	* zthread.d: replace begin/end blocking system calls with
14167	begin/end blocking calls while locking threads.
14168	* savemem.lisp (saveinitmem): do not bind global symbols before
14169	saving since this will create per thread bindings that will not
14170	survive loadmem().
14171
141722008-09-25  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14173
14174	Per thread "local special variables" and compiled closures support.
14175	* lispbibl.d (Symbol_thread_value): new macro used by
14176	dynamic_bind.  Empty per thread symvalues can be bound.
14177	(dynamic_bind): use Symbol_thread_value instead of Symbol_value.
14178	* spvw.d (add_per_thread_special_var): maygc. fix possible race
14179	condition.
14180	(initmem): allocate per thread variables before init_object_tab() -
14181	so *features* is not defined as per thread.
14182	* eval.d (interpret_bytecode_): handle special variables (cod_bind)
14183	* control.d (make_variable_frame): handle local special variables
14184	* spvw_garcol.d (gc_sweep2_varobject_page): add special case:
14185	!defined(NO_symbolflags) and !(SPVW_PURE) - not clear whether such
14186	combination is possible.
14187	* spvw_debug.d: sync with CVS head
14188	* stream.d: sync with CVS head
14189
141902008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14191
14192	Add per thread symvalue only once.
14193	* control.d (PROCLAIM): Fix: add per thread symvalue only once.
14194
141952008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14196
14197	Per thread special variables
14198	* lispbibl.d (struct symbol_):  add tls_index for per thread
14199	symbol value.
14200	(SYMBOL_TLS_INDEX_NONE): empty value for the tls_index.
14201	(SYMVALUE_EMPTY): non existing symvalue in per thread TLS.
14202	(Symbol_value): redefined in MT
14203	(Symbolflagged_value): new macro for accessing the symbol value
14204	of flagged symbols. It creates the per thread entries.
14205	(clisp_thread_t): removed _symvalues from the end. The clisp_thread_t
14206	structure once allocated do not move. Added _ptr_symvalues - accessible
14207	for modules - where the per thread symvalues are stored.
14208	(thread_size): removed (clisp_thread_t has const size now)
14209	(thread_objects_offset): removed
14210	(thread_objects_count): removed
14211	(add_per_thread_special_var): adds symvalues (empty) in all threads
14212	for the specified symbol (called from PROCLAIM).
14213	(clear_per_thread_symvalues): makes all per thread symvalues empty for
14214	the specified symbol (used when special var is redefined as constant)
14215	(realloc_thread_symvalues): reallocates the storage for symvalues -
14216	_ptr_symvalues in a thread.
14217	* constsym.d: initialize the tls_index of symbol in MT builds
14218	* spvw.d (init_multithread_special_symbols): creates per thread
14219	symvalues for all standard special variables (used when not
14220	loading image file).
14221	(add_per_thread_special_var): implementation. adds symvalues (empty) in
14222	all threads for the specified symbol (called from PROCLAIM).
14223	(clear_per_thread_symvalues): implementation. makes all per thread
14224	symvalues empty for the specified symbol (used when special var is
14225	redefined as constant).
14226	(realloc_thread_symvalues): implementation. reallocates the storage for
14227	symvalues - _ptr_symvalues in a thread.
14228	(for_all_threadobj): redefined to iterate over _ptr_symvalues.
14229	* spvw_typealloc.d (make_symbol): allocate enough space for the
14230	symbol and initialize the tls_index.
14231	* spvw_update.d (do_update_symbol): use symbol_length when
14232	iterating over symbol_ objects (in MT symbols are more like an xrecord).
14233	* spvw_gcmark.d (gc_mark): use symbol_length when iterating over
14234	symbol_ objects.
14235	* spvw_memfile.d (memflags): added bit(21) for MULTITHREAD image
14236	 (symbols are larger).
14237	(memdump_header_t): added _per_thread_symvalues - stores how many cells
14238	for symvalues should be allocated (global num_symvalues value).
14239	(loadmem_from_handle): initializes all per thread symvalues (of the only
14240	running thread) to empty.
14241	* zthread.d: small changes caused by thread_size() removal.
14242	* eval.d (unwind): use Symbolflagged_value(obj).
14243	(bind_next_var): use Symbolflagged_value(obj).
14244	* control.d (proclaim): adds per thread symvalue for special
14245	declarations.
14246	(activate_bindings): use Symbolflagged_value(obj).
14247	(letstar): use Symbolflagged_value(obj).
14248	(bind_next_var): use Symbolflagged_value(obj).
14249	* symbol.d (proclaim_constant): clear the per thread symvalues if any.
14250
142512008-09-24  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14252
14253	GCSAFETY bug in SOCKET-SERVER-CLOSE
14254	* stream.d (socket_server_close): fixed GCSAFETY bug.
14255
142562008-09-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14257
14258	Move globals to clisp_thread_t structure.
14259	* lispbibl.d (interrupt_pending): make it per thread.
14260	(writing_to_subprocess): make it per thread.
14261	* spvw.d (create_thread): initialize the new thread environment.
14262	* spvw_sigint.d (interrupt_pending): make it per thread.
14263	* spvw_sigpipe.d (writing_to_subprocess): make it per thread.
14264	* spvw_circ.d (USE_MULTI_LEVEL_BITMAP): was #ifdef MULTITHREAD.
14265	* zthread.d (make_thread): do not share aktenv with creating thread.
14266
142672008-09-16  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14268
14269	Per thread break semaphores.
14270	* lispbibl.d: make break_sems to be per thread.
14271	(clisp_thread_t): added _break_sems to thread's data
14272	(break_sems): macro for accessing current thread semaphores.
14273	* spvw.d: remove global break_sems when building with threads.
14274	* zthread.d (disable_thread_async_signals): make it void (also
14275	fixes compilation problem on linux).
14276
142772008-09-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14278
14279	Unwind-protect for pinned objects. Pinned object chains per thread.
14280	* lispbibl.d: removed HAVE_PINNED_BIT
14281	(pinned_chain_t): all pinned objects within a thread are chained.
14282	(pin_varobject): make unwind-protect frame and add to the thread chain.
14283	(unpin_varobject_i): removes all elements from pinned chain until
14284	it reaches its argument
14285	(unpin_varobject): unpin already pinned object.
14286	* spvw.d (main): leave the pinned chain empty.
14287	* spvw_sigint.d (react_on_sigint): do not unpin any object.
14288	unwind-protect will do this.
14289	* spvw_garcol.d: removed HAVE_PINNED_BIT cases.
14290	(fill_relocation_memory_regions): add all pinned objects from the
14291	threads chains.
14292	(page_contains_pinned_object): scan chains of pinned object of all
14293	threads.
14294	* stream.d: adjust pin/unpin_varobject to match the unwind-protect
14295	nature of pin_varobject().
14296	* zthread.d (make_thread): initialize pinned object chain.
14297
142982008-09-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14299
14300	Signal handling fixes.
14301	* lispbibl.d (interruptp): in multithreading - act only if called
14302	within the main thread (all async signals are handled in main thread).
14303	* spvw.d (STACK_PAGE_THRESHOLD): make it 4K. Sometimes debug
14304	builds happened to sigsegv depending on default stack address
14305	 (USE_CUSTOM_TLS=3).
14306	* spvw_sigint.d: comments added
14307	* xthread.d (xthread_sigmask): sets/gets current thread signal mask
14308	* zthread.d: use xthread_sigmask().
14309
143102008-09-13  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14311
14312	SIGINT fix. Finish GC safe region (if interrupted in one).
14313	* spvw_sigint.d (react_on_sigint): Finish GC safe region
14314	before calling error() (if we are interrupted in GC safe
14315	region).
14316
143172008-09-13  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14318
14319	MT signal handling. Streams system calls safe for GC.
14320	* lispbibl.d: disabled multithreading when NO_ASYNC_INTERRUPTS.
14321	(handle_length): maygc, accepts pointer to gcv_object_t.
14322	(main_threadp): macro - true if we are in the main thread.
14323	(SEMA_/SEGV_SEMA_): macro for conditional expansion of signal
14324	"semaphores" depending on the platform/build (for OSX is wrong).
14325	* zthread.d: disable the asynchronous signals for newly created threads.
14326	(disable_thread_async_signals): disables the async signals for the
14327	current thread.
14328	(thread_stub/exec_timeout_call): disable async signals at beginning.
14329	* spvw_sigint.d
14330	(react_on_sigint): unpin possibly pinned object for the main thread.
14331	* stream.d: make all system calls "safe for gc". GC may run while
14332	waiting for input.
14333	* spvw_memfile.d (savemem): handle_length() expects pointer to
14334	stream now.
14335
143362008-09-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14337
14338	DEBUG_GCSAFETY fixes.
14339	* lispbibl.d: include xthread.d in clisp.h for proper module build.
14340	(TARGET_CPU_DEFINED): if defined - the inclusion of xthread.d will
14341	not try to deduce the CPU type.
14342	* spvw.d (current_thread_alloccount): moved from
14343	spvw_global.d. Special case when called before main() (from C++
14344	statics initializations).
14345	* spvw_global.d (current_thread_alloccount): moved to spvw.d
14346	* xthread.d: define the CPU from compiler supplied definitions if not
14347	already done in lispbibl.d. Needed for spinlock_t functions when
14348	included from modules.
14349
143502008-09-03  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14351
14352	Fast thread local storage w/o compiler support (32 bit platforms only).
14353	* lispbibl.d: new CFLAGS - USE_CUSTOM_TLS={1,2,3}
14354	(set_current_thread): redefined for different types of TLS.
14355	(current_thread): redefined for different types of TLS.
14356	(roughly_SP): returns the current stack pointer (used when
14357	USE_CUSTOM_TLS=2,3).
14358	(thread_specific_entry/thread_specific_data): cache/hash for
14359	SP to clisp_thread_t pointer mapping.
14360	(tsd_getspecific): fast lookup for TLS when USE_CUSTOM_TLS=2
14361	* spvw.d (threads_tls): global variable holding pointers to
14362	threads local storage.
14363	(tsd_initialize): initialize TLS when USE_CUSTOM_TLS=2
14364	(tsd_setspecific): adds per thread variable to global storage when
14365	USE_CUSTOM_TLS=2
14366	(tsd_remove_specific): removes thread specific data for the calling
14367	thread (USE_CUSTOM_TLS=2).
14368	(tsd_slow_getspecific): gets the per thread variable value when there
14369	is cache miss in the fast version  (USE_CUSTOM_TLS=2).
14370	(current_stack_base): returns the stack bottom of the current thread.
14371	Used when USE_CUSTOM_TLS=3.
14372	(current_stack_size): returns the max. stack size of the current thread.
14373	Used when USE_CUSTOM_TLS=3.
14374	(get_stack_region): helper function when POSIX_THREADS are defined. Gets
14375	the stack regions of threads created via pthreads.
14376	(set_current_thread): implemented as function when USE_CUSTOM_TLS=3
14377	(threads_maps): global table mapping stack pointer to appropriate
14378	clisp_thread_t (indexed with  SP shifted by page size - 12 bits).
14379	(init_multithread): initialize the custom thread local storage (if any).
14380	(get_reserved_memory_regions): removed.
14381	(is_safe_region): removed.
14382	(main): special declaration when USE_CUSTOM_TLS=2
14383	* zthread.d (thread_stub/exec_timeout_call): special declaration
14384	when USE_CUSTOM_TLS=2
14385	* constobj.d: initial commit (added all_threads and
14386	threads_to_release).
14387
143882008-08-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14389
14390	GC fixes for CLOS/SMALL_SSTRING forward pointers and SPVW_PURE.
14391	* spvw_garcol.d
14392	(instance_p): returns true if the argument points to CLOS instance.
14393	(sstring_p): return true if the argument points to sstring (and
14394	HAVE_SMALL_SSTRINGS is defined).
14395	(gc_sweep1_varobject_page): do not reserve memory for
14396	forwarded/reallocated objects (CLOS instances/small strings). Use
14397	sstring_p/instance_p instead of many ifdefs.
14398	(gc_sweep2_varobject_page): do not relocate marked objects that
14399	have been forwarded (CLOS instances and small strings). Special case
14400	for symbols heap in SPVW_PURE memory model.
14401	(gar_col_normal): fixed multiple iteration bug over varobject heaps when
14402	GENERATIONAL_GC is defined and generation is 1.
14403	* lispbibl.d: added TODO for pin_varobject
14404
144052008-08-31  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14406
14407	GC fixes. SPVW_PAGES pinned varobjects support.
14408	* spvw_garcol.d (gc_sweep1_varobject_page): code cleanup. fixed
14409	the case of multiple holes at the end of memory regions.
14410	(gc_sweep2_varobject_page): code cleanup and fix. moves the objects
14411	to calculated addresses in sweep1 phase (not by fill pointer anymore).
14412	(fill_relocation_memory_regions): fixed sorting of memory regions
14413	(page_contains_pinned_object): returns true if there is a pinned
14414	object in the page.
14415	(gc_compact_from_varobject_page): do no compact pages that contain
14416	pinned varobjects.
14417
144182008-08-30  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14419
14420	GC fixes.
14421	* lispbibl.d: enabled multithreading when NO_ASYNC_INTERRUPTS.
14422	* spvw_garcol.d: comments cleanup
14423	(gc_sweep1_varobject_page): mark the last pinned object in case
14424	we have not iterated through it.
14425	(fill_varobject_heap_holes): implementation for simple bit
14426	vectors (1/2/4/8/16/32) with SPVW_PURE memory model.
14427
144282008-08-26  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14429
14430	Fixed TYPECODES build
14431	* spvw_garcol.d (fill_relocation_memory_regions): fixed TYPECODES
14432	compliation problem (varobjectp is not defined with TYPECODES).
14433	(varobj_mem_region): fixed typo in definition (SVPW_PURE --> SPVW_PURE).
14434
144352008-08-25  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14436
14437	Support for "pinned" varobjects.
14438	* lispbibl.d: sync with CVS head
14439	(Thread): removed xth_next and xth_prev from Thread xrecord
14440	(clisp_thread_t): added _pinned object - in case there is no
14441	HAVE_PINNED_BIT defined.
14442	(clisp_thread_t): removed the _lthread object.
14443	(thread_objects_offset/count): thread GC visible objects start from
14444	_aktenv.
14445	(delete_thread): additional parameter - full. If true - frees all
14446	resources (memory) previously allocated.
14447	(release_threads): releases the threads that have terminated and there
14448	are no references to them. Called from GC.
14449	(pin/unpin_varobject): macros that pin/unpin varobject. Currently
14450	implemented only if HAVE_PINNED_BIT is undefined.
14451	* spvw.d (push_threads_on_stack): removed
14452	(delete_thread): additional parameter - full. Implementation.
14453	(init_memory/main): fixed/add (main) threads initialization.
14454	* spvw_garcol.d (varobj_mem_region): struct defining memory region
14455	in varobject heap that can be used for compaction. Also the same
14456	struct is used for describing the holes in heap that should be
14457	filled after the compaction.
14458	(ACCEPTABLE_VAROBJECT_HEAP_HOLE): defines the "acceptable" size of
14459	the hole in the heap. If there is less place than this constant in
14460	front of pinned object - new hole is added.
14461	(gc_sweep1_varobject_page): entirely rewritten in order to take
14462	care of pinned objects.
14463	(gc_sweep2_varobject_page): changed in order not to move pinned
14464	objects - addresses are already calculated in gc_sweep1_varobject_page.
14465	(fill_relocation_memory_regions): fills a list (array actually) of
14466	memory regions in varobject heap that can/should be filled during
14467	compaction. Takes care to keep pinned objects out of these regions.
14468	(fill_varobject_heap_holes): fills the holes in all varobject heaps,
14469	caused by the existence (if any) of pinned objects.
14470	(gar_col_normal): implements the thread xrecords life cycle. All
14471	terminated threads without references to them are released (the same
14472	as open files).
14473	(gar_col_normal): re-factored to use the new pinned object support
14474	during the sweep phase.
14475	(gar_col_done): calls release_threads() if needed.
14476	* spvw_sigsegv.d: sync with CVS head
14477	* spvw_typealloc.d: comments cleanup
14478	* zthread.d (release_threads): implementation
14479	(make-thread): "re-factored" for thread safety and new threads
14480	life cycle (O(all-threads))
14481	(list-threads): implemented correctly.
14482
144832008-08-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14484
14485	Added GC safe points
14486	* lispbibl.d (GC_SAFE_CALL/GC_SAFE_SYSTEM_CALL): macros for easing
14487	encapsulation of blocking system calls which are safe for GC
14488	(clisp_thread_t): changed typedef. C++ does not like forward
14489	declarations of "anonymous" typedef-ed structures.
14490	* stream.d (low_clear_input_unbuffered_handle): added maygc
14491	(listen_char_unbuffered): added maygc
14492	(clear_input_unbuffered): added maygc
14493	(socket-status): blocking select() is safe for GC
14494	* spvw_fault.d
14495	(handle_fault_range): implement locking around cache and page
14496	protection change (the bulk i/o is still not safe for GC)
14497
144982008-08-18  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14499
14500	Make the GC re-entrant
14501	* spvw_global.d (gc_suspend_count): re-entry counter
14502	(gc_suspend_all_threads/gc_resume_all_threads): implement the
14503	GC re-entrancy
14504
145052008-08-17  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14506
14507	GENERATIONAL_GC support. Thread xrecord changes.
14508	* lispbibl.d
14509	(Thread): the record contains now a pointer (xth_globals) to the
14510	clisp_thread_t structure (instead of separate pointers
14511	to LISP stack, backtrace and TLS).
14512	(push_threads_on_stack): global function to push all active
14513	threads (in allthreads[] array) to the current thread LISP stack.
14514	* spvw.d (push_threads_on_stack): implementation.
14515	(delete_thread): big TODO here. See the comment at the end.
14516	* spvw_heap.d
14517	(physpage_state_t): added a cache_lock spinlock. During fault
14518	handling single thread may manipulate the protection and cache.
14519	* spvw_genera1.d (build_old_generation_cache): initialize the
14520	cache_lock of physpage_state_t structures.
14521	* spvw_fault.d (handle_fault): implement locking around cache and
14522	page protection changes. PROT_READ_WRITE pages always return
14523	success now (it means other fault has handled it before us).
14524	* zthreads.d (list_threads): implemented
14525	(thread_yield): added safe for GC point.
14526	(make_thread): initialize the xth_global of the Thread record.
14527
145282008-08-14  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14529
14530	DEBUG_GCSSAFETY implementation + REPL GC safe point.
14531	Builds with GENERATIONAL_GC will experience segfaults.
14532	* lispbibl.d: added GCSAFETY for MT as discussed in
14533	<http://article.gmane.org/gmane.lisp.clisp.devel/18750>
14534	<https://sourceforge.net/p/clisp/mailman/message/20025039/>
14535	(GC_STOP_WORLD): macro for stopping all threads for GC
14536	(GC_RESUME_WORLD): macro for resuming all suspended during GC
14537	threads.
14538	(alloccount): redefined as macro when build with MT and GCSAFETY.
14539	(clisp_thread_t): added _alloccount for each thread
14540	(PERFORM_GC/_PERFORM_GC): refactored in order to take into
14541	account DEBUG_GCSAFETY
14542	(current_thread_alloccount): returns a pointer to the
14543	current thread _alloccount
14544	(GC_SAFE_REGION_END): fixed possible race condition
14545	(begin/end_blocking_call): pair macro for defining safe for GC
14546	regions when the execution is already in system call
14547	* spvw.d (create_thread): do not initialize the main (first)
14548	clisp_thread_t fields.
14549	* spvw_global.d
14550	(current_thread_alloccount): implementation
14551	(gc_suspend_all_threads): keep the heap/threads lock on exit
14552	(gc_resume_all_threads): do not acquire threads lock and
14553	handle properly heap lock.
14554	* spvw_allocate.d: added DEBUG_GCSAFETY support
14555	(LOCK_ALLOCATE): stops the "world" on each allocation in GCSAFETY
14556	(RETURN_OBJ): resumes the "world" after successful allocation
14557	in GCSAFETY
14558	(inc_alloccount): increases the _allocount in all threads (not
14559	efficient - see comments).
14560	* zthread.d
14561	(thread_stub): now it is /*maygc*/ (in GCSAFETY we still do
14562	not have current_thread() set).
14563	* stream.d: added GC safe region for REPL. the patch is located at:
14564	http://code.brumbar.com/stream.d-patch
14565	(low_read_unbuffered_handle): maygc now.
14566	(rd_ch_unbuffered): maygc now. the encoding re-acquired from stream
14567	for each character (since low_read_unbuffered_handle is maygc now).
14568	(rd_ch_terminal1): maygc now
14569	* time.d: the patch is located at:
14570	http://code.brumbar.com/time.d-patch
14571	(sleep): added safe for GC region arround the system call
14572
145732008-08-08  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14574
14575	GC_SAFE_REGION_END fix + blocking system calls macros.
14576	* lispbibl.d (GC_SAFE_REGION_END): fixed possible race condition
14577	(begin/end_blocking_system_call): macros for marking possibly
14578	blocking system calls.
14579	* zthread.d (make-thread): use STACK_item_count() macro for computing
14580	stack size. use begin/end_blocking_system_call.
14581
145822008-08-06  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14583
14584	Heap/GC changes
14585	* lispbibl.d (pointable_address_unchecked): exported to
14586	clisp.h (present in CVS head as well)
14587	(Rectype_Thread,Rectype_Mutex,Rectype_Exemption): moved to
14588	xrecord area in the declarations (present in CVS head as well)
14589	(GC_SAFE_REGION_BEGIN/END): now they make GCTRIGGER() for
14590	debugging purposes.
14591	(clisp_thread_t): _lthread type changed to gcv_object_t.
14592	(clisp_thread_t): renamed the spinlocks and mutex for GC
14593	suspend/resume (now begin with _gc_xxx).
14594	(thread_objects_offset): does not need parameter. Also include
14595	again the _lthread.
14596	(PERFORM_GC): now takes second parameter - whether to lock
14597	the heap operation before performing GC (since it can be
14598	called explicitly, not only from allocations).
14599	(inc_allocstamp): the specialization for mv_space moved after
14600	the definition of clisp_thread_t.
14601	* spvw.d: fixed some comments
14602	(create_thread): takes single parameter - the list stack size.
14603	(delete_thread): takes a single parameter - the clisp_thread_t
14604	to be deleted.
14605	(gc_suspend_all_threads): moved to spvw_global.d
14606	(gc_resume_all_threads): moved to spvw_global.d
14607	(main): allocates Thread record for the main thread (done after the
14608	heap is initialized).
14609	* spvw_global.d (gc_suspend_all_threads): moved here from
14610	spvw.d. added second parameter whether to acquire the heap/GC
14611	lock (in case we are called not from allocate_xxxx but explicitly).
14612	(gc_resume_all_threads): moved here from spvw.d
14613	(ACQUIRE_HEAP_LOCK): macro for locking the heap (and GC as well)
14614	(RELEASE_HEAP_LOCK): macro for releasing the heap lock.
14615	* spiv_allocate.d
14616	(all): use ACQUIRE/RELEASE_HEAP_LOCK for locking/releasing the heap
14617	(all): add second parameter "false" to all PERFORM_GC calls (since
14618	we already hold the alloc/GC lock).
14619	* spvw_memfile.d (savemem): calls PERFORM_GC with second parameter
14620	"true" (alloc/GC lock should be acquired)
14621	* debug.d (gc): calls PERFORM_GC with second parameter "true"
14622	 (alloc/GC lock should be acquired)
14623	* spvw_circ.d (mlb_expand): added a typecast (g++ complains).
14624	* zthread.d (thread_stub): re-factored.
14625	(make_thread): re-factored. removed possible deadlock.
14626
146272008-08-04  Sam Steingold  <sds@gnu.org>
14628
14629	* lispbibl.d (thread_length): define to 3 because Thread contains
14630	3 gcv_object_t fields (sync from HEAD)
14631
146322008-08-02  Vladimir Tzankov  <vtzankov@gmail.com>  [threads]
14633
14634	Heap/GC changes for multithreading
14635	* lispbibl.d (struct clisp_thread_t): added fields for
14636	thread suspend/resume support (used for GC).
14637	(GC_SAFE_POINT, GC_SAFE_POINT_ELSE): macros that define a safe
14638	point for GC in thread execution.
14639	(GC_SAFE_REGION_BEGIN,GC_SAFE_REGION_END): macros defining safe
14640	for GC regions (in begin/end_system_call)
14641	(PERFORM_GC): macro used for "safe" performing of GC. suspends/resumes
14642	threads before/after the GC.
14643	* xthread.d (spinlock_t): enabled spinlocks. added asm implementation
14644	for POWERPC and fixed the one for x86.
14645	(xcodition_t): finished native win32 implementation (not tested).
14646	(xthread_cancel): removed.
14647	(xthread_wait): added. waits for thread termination
14648	(xmutex_trylock): added
14649	(spinlock_tryacquire): added
14650	* zthread.d
14651	(make_thread,thread_stub): re-factored the thread creation.
14652	(call-with-timeout): removed usage of xthread_cancel (not GC safe).
14653	the spawned thread is not terminated in any way now.
14654	* spvw.d
14655	removed the MT dependency on the mmap.
14656	(main): initialization of MT in the very beginning
14657	(create_thread): just creates and initializes a clisp_thread. does not
14658	registers the new thread any more (since it still does not run)
14659	(delete_thread): fixed bug with thread indexing
14660	(lock_threads): obtains global thread operations mutex
14661	(unlock_threads): releases the global thread operation mutex
14662	(register_thread): register a clisp_thread_t in the global thread array
14663	(the clisp_thread_t should be running at that time - because of GC).
14664	(gc_suspend_all_threads): suspends all running threads at points
14665	"safe" for GC.
14666	(gc_resume_all_threads): resumes the suspended (for GC) threads.
14667	* spvw_global.d
14668	(struct mem): added alloc_lock (spinlock_t) guarding both
14669	allocation and GC.
14670	(init_heap_locks): initializes heap locks(s). currently just alloc_lock.
14671	* spvw_allocate.d
14672	(LOCK_ALLOCATE, RETURN_OBJ): All heap allocation begin with
14673	LOCK_ALLOCATE and return via RETURN_OBJ.
14674	These macros manage the heap/GC lock(s).
14675	* spvw_memfile.d: calls to GC enclosed in PERFORM_GC.
14676	* debug.d: calls to GC enclosed in PERFORM_GC.
14677
146782008-07-28  vlado tzankov  <vtzankov@gmail.com>  [threads]
14679
14680	Initial commit of multithreading. Lisp globals are implemented via
14681	TLS (with or without compiler support)
14682	* lispbibl.d (struct clisp_thread_t): reordered the fields.
14683	the structure starts with the ones
14684	that have to be accesses from modules (STACK, mv_spaces, etc).
14685	Added _SP_anchor (was global in spvw.d)
14686	(current_thread, _current_thread, current_thread_tls_key): macro
14687	current_thread() provides access to the current clisp_thread_t via
14688	per_thread variable _current_thread (in presence of compiler support)
14689	or through xthread_key_get (slow).
14690	(THREAD_SYMVALUES_ALLOCATION_SIZE): initial allocation size of
14691	clisp_thread_t structure - at the end symvalues will be appended
14692	(before the change the size depended on the mmap_pagesize)
14693	(per_thread): removed all qualifiers from global variables in single
14694	thread builds.  in MT builds - there is single global per thread
14695	variable for CLISP internals.
14696	(thread_objects_offset, thread_objects_count): excluded _lthread from
14697	the returned offset/count. seems to cause problems with GC sometimes.
14698	(set_current_thread): the first thing a new thread should call
14699	- assigns the clisp_thread_t to the TLS.
14700	(create_thread,delete_thread,maxnum_symvalues): made global
14701	* spvw.d (create_thread): changed to accept size of LISP stack.
14702	(delete_thread): frees the allocated LISP stack.
14703	(allocate_lisp_thread_stack): allocates LISP stack.
14704	currently with malloc()
14705	(get_reserved_memory_region, is_safe_region): ensure that address range
14706	for LISP stack is safe (was used in the version with SP tweaking
14707	- probably will be needed later).
14708	(init_memory, main): "globals" initialization moved after
14709	current_thread() is valid.
14710	* spvw_typealloc.d (allocate_thread): xth_system will be
14711	initialized on thread creation. what to do with the other fields?
14712	* xthread.d (xthread_cancel): after cancellation wait the thread to exit
14713	* zthread.d (NC_STACK_,NC_pushSTACK): macros for filling
14714	non-current(NC) LISP stacks of not yet started threads.
14715	(thread_stub): the main entry point of threads created by MAKE-THREAD.
14716	(MAKE-THREAD): implemented. creates a new OS thread and
14717	LISP record for it.
14718	(exec_timeout_call): the entry point of threads created
14719	by CALL-WITH-TIMEOUT
14720	(CALL-WITH-TIMEOUT): reimplemented.
14721	creates OS thread bu NO LISP record for it.
14722	* thread.lisp (TIMEOUT-MESSAGE): convert to string the default
14723	answer (y-or-n provides list(s) with characters).
14724
147252008-07-27  Sam Steingold  <sds@gnu.org>
14726
14727	fix bug#493: stack overflow with gethash
14728	* hashtabl.d (hashcode3_atom, hashcode3stable_atom, sxhash_atom):
14729	accept level argument (ignore it because EQUAL hash code does not
14730	recurse on atoms)
14731	(HASHCODE_MAX_LEVEL): rename from HASHCODE_TREE_MAX_LEVEL
14732	(HASHCODE_NEED_LEAVES): rename from HASHCODE_TREE_NEED_LEAVES
14733	(hashcode_tree_rec): pass level+1 to hashcode_leaf
14734	(hashcode_tree): accept level argument
14735	(hashcode3, hashcode3stable, hashcode4, sxhash): pass level=0 to
14736	hashcode_tree()
14737	(hashcode4_): new macro: like hashcode4(), but pass level+1 to
14738	hashcode_tree()
14739	(hashcode4_atom, hashcode4_vector, hashcode4_vector_T): accept
14740	level argument
14741	(hashcode4_vector): limit count to HASHCODE_NEED_LEAVES
14742
147432008-07-27  Sam Steingold  <sds@gnu.org>
14744
14745	* hashtabl.d (hashcode_pathname): extract
14746	(hashcode3_atom, hashcode3stable_atom): use it
14747
147482008-07-26  Sam Steingold  <sds@gnu.org>
14749
14750	* control.d (skip_declarations): remove
14751	(finish_flet): rename the last argument and revert its meaning
14752	(FLET, MACROLET, FUNCTION-MACRO-LET): update finish_flet calls
14753	NB: FUNCTION-MACRO-LET now barfs on declarations in both compiled
14754	and interpreted code
14755
147562008-07-24  Sam Steingold  <sds@gnu.org>
14757
14758	* format.lisp (format-logical-block-parse): uniform error messages
14759
147602008-07-24  Sam Steingold  <sds@gnu.org>
14761
14762	* utils/clispload.lsp (*expected-failures*): add eval-when.15 and
14763	eval-when.17 (/= EVAL :EXECUTE) & (/= LOAD :LOAD-TOPLEVEL)
14764
147652008-07-23  Sam Steingold  <sds@gnu.org>
14766
14767	* compiler.lisp (c-LABELS, c-FLET, c-MACROLET): rework the "ANSI
14768	SPECIAL declarations" patch to fix a LABELS flaw
14769
147702008-07-23  Sam Steingold  <sds@gnu.org>
14771
14772	* compiler.lisp (check-fdef-name): add local macro
14773	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
14774	(c-GENERIC-LABELS): use it
14775
147762008-07-23  Sam Steingold  <sds@gnu.org>
14777
14778	* init.lisp (%expand-form): FLET, LABELS, MACROLET
14779	respect the SPECIAL declarations, as per ANSI
14780	NOTE: FUNCTION-MACRO-LET still does NOT - it is our internal operator
14781	* control.d (make_vframe_activate): extract from LOCALLY
14782	(LOCALLY, LABELS): use it
14783	(finish_flet): accept an extra argument ignore_declarations
14784	(FLET, MACROLET): pass ignore_declarations=false to finish_flet
14785	(FUNCTION-MACRO-LET): pass ignore_declarations=true to finish_flet
14786	* compiler.lisp (skip-declarations): remove
14787	(with-bindings, with-bindings-lite): add local macros
14788	(c-FLET, c-LABELS): use with-bindings
14789	(c-MACROLET): use with-bindings-lite
14790
147912008-07-23  Sam Steingold  <sds@gnu.org>
14792
14793	* init.lisp (cons-*fenv*, illegal-syntax): add
14794	(%expand-form, %expand-fundefs-1, %expand-funmacdefs-1): use them
14795	* macros3.lisp (expand-LETF*, expand-LETF): use ILLEGAL-SYNTAX
14796	* compiler.lisp (add-fenv, c-FLET, c-FUNCTION-MACRO-LET)
14797	(c-GENERIC-FLET, c-MACROLET): use CONS-*FENV*
14798	(c-illegal-syntax): add
14799	(analyze-letlist, c-COMPILER-LET): use it
14800	(mk-var): add local macro
14801	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
14802	(c-GENERIC-LABELS): use it
14803
148042008-07-22  Sam Steingold  <sds@gnu.org>
14805
14806	* lispbibl.d (OBJECT_OUT, NOBJECT_OUT): fflush stdout
14807
148082008-07-22  Sam Steingold  <sds@gnu.org>
14809
14810	* modules/pcre/cpcre.c (PCRE-COMPILE): fix a typo: UNGREADY->UNGREEDY
14811	Reported by Todd Kirby <ffmpeg.php@gmail.com>
14812
148132008-07-22  Sam Steingold  <sds@gnu.org>
14814
14815	* makemake.in (check-script): many more tests
14816
148172008-07-22  Sam Steingold  <sds@gnu.org>
14818
14819	* stream.d (error_value_stream): print the caller
14820
148212008-07-22  Sam Steingold  <sds@gnu.org>
14822
14823	* spvw_sigsegv.d (print_mem_stats): also print a timescore_t
14824
148252008-07-22  Sam Steingold  <sds@gnu.org>
14826
14827	* debug.d (%ROOM): additionally return gc_count, gc_space, gc_time
14828	* lispbibl.d (internal_time_to_I): declare extern
14829	* time.d (internal_time_to_I): make global
14830	* room.lisp (room): return the same values as gc, print gc stats
14831
148322008-07-22  Sam Steingold  <sds@gnu.org>
14833
14834	* eval.d (SUBR-INFO): use STACK_to_mv instead of L(values)
14835	* stream.d (MAKE-PIPE-IO-STREAM): ditto
14836	* time.d (%%TIME): ditto
14837
148382008-07-22  Sam Steingold  <sds@gnu.org>
14839
14840	* lispbibl.d: fix bug#483: unicode in comments causes
14841	compile errors when LANG=ja_JP.eucJP
14842
148432008-07-22  Sam Steingold  <sds@gnu.org>
14844
14845	* utils/clispload.lsp (*expected-failures*): drop tests that we pass
14846
148472008-07-21  Sam Steingold  <sds@gnu.org>
14848
14849	* modules/clx/new-clx/clx.f (get_font_info_and_display): prefix
14850	*CANONICALIZE-ENCODING* with XLIB:: for bootstrap when is has not
14851	been exported yet
14852
148532008-07-21  Sam Steingold  <sds@gnu.org>
14854
14855	the sets of declaration and type names are disjoint, as per ANSI
14856	(see http://www.lisp.org/HyperSpec/Body/dec_type.html)
14857	* condition.lisp (check-not-type, check-not-declaration): define
14858	(define-condition): use CHECK-NOT-DECLARATION
14859	* clos-class3.lisp (defclass): use CHECK-NOT-DECLARATION
14860	* compiler.lisp (c-PROCLAIM): use CHECK-NOT-TYPE
14861	* constsym.d (check_not_type): declare
14862	* control.d (PROCLAIM): use CHECK-NOT-TYPE for DECLARATION
14863	* defstruct.lisp (defstruct): use CHECK-NOT-DECLARATION
14864	* init.lisp (check-not-declaration): predefine
14865	* macros2.lisp (deftype): use CHECK-NOT-DECLARATION
14866	* utils/clispload.lsp (*expected-failures*): remove
14867	DECLARATION.([4-9]|1[01]) (i.e. tests 4..11 now pass)
14868
148692008-07-21  Bruno Haible  <bruno@clisp.org>
14870
14871	* makemake.in (LIBS): Remove special code for Solaris 2.1.
14872
148732008-07-21  Sam Steingold  <sds@gnu.org>
14874
14875	fix "-x ... -repl", broken since 2008-01-06
14876	* reploop.lisp (main-loop): accept an optional exit argument
14877	* spvw.d (main_actions): pass !p->argv_repl to MAIN-LOOP
14878	* makemake.in (check-script): test "-x ... -repl"
14879
148802008-07-21  Sam Steingold  <sds@gnu.org>
14881
14882	* makemake.in (ANSI_CLISP): add "-p CL-TEST"
14883	(check-ansi-tests, check-ansi-tests-debug, check-ansi-tests-compiled)
14884	(check-ansi-tests-compiled-debug): remove IN-PACKAGE from -x
14885
148862008-07-21  Sam Steingold  <sds@gnu.org>
14887
14888	fix bug#490: Problem :external-format :dos and (setf
14889	stream-element-type): after a ((setf stream-element-type)
14890	'(unsigned-byte 8)) after read-line on a :dos stream
14891	an NL byte (10) is read from the stream
14892	* stream.d (rd_by_iau8_unbuffered, rd_by_array_iau8_unbuffered)
14893	(rd_by_iau8_buffered, rd_by_array_iau8_buffered): respect
14894	ChannelStream_ignore_next_LF
14895
148962008-07-21  Sam Steingold  <sds@gnu.org>
14897
14898	* pathname.d (check_file_reopen): when *REOPEN-OPEN-FILE* is WARN,
14899	issue a warning instead of signaling an error
14900	* constsym.d (check_file_reopen): declare
14901	* spvw.d (init_symbol_values): init *REOPEN-OPEN-FILE* to ERROR
14902	* utils/clispload.lsp (*reopen-open-file*): set to WARN to pacify
14903	6 tests
14904
149052008-07-21  Sam Steingold  <sds@gnu.org>
14906
14907	* utils/clispload.lsp (*pprint-first-newline*): set to NIL to
14908	conform to Paul's expectations
14909
149102008-07-21  Sam Steingold  <sds@gnu.org>
14911
14912	* encoding.d: do not #include <stdio.h>, it is already done by lispbibl
14913
149142008-07-20  Sam Steingold  <sds@gnu.org>
14915
14916	* pprint.lisp (copy-pprint-dispatch): as per ANSI, when no table
14917	is specified, return a COPY of *PRINT-PPRINT-DISPATCH*, not its value
14918
149192008-07-20  Sam Steingold  <sds@gnu.org>
14920
14921	* io.d (justify_empty_2): concatenate all strings in a single-liner
14922	into one string instead of pushing all the components into the block
14923
149242008-07-18  Sam Steingold  <sds@gnu.org>
14925
14926	* io.d (paren_open): a minor simplification
14927	(print): remove an unused static function
14928	(justify_empty_2): never drop any strm_pphelp_strings (this fixes
14929	the "risky" test in iofkts.tst)
14930
149312008-07-17  Sam Steingold  <sds@gnu.org>
14932
14933	* modules/clx/new-clx/clx.lisp (*canonicalize-encoding*):
14934	defvar and export from XLIB
14935	* modules/clx/new-clx/clx.f (get_font_info_and_display): use it
14936	together with EXT:CANONICALIZE instead of the C ad-hoc-ery
14937
149382008-07-17  Sam Steingold  <sds@gnu.org>
14939
14940	* dfloat.d (RA_to_DF): clean up the STACK before error_overflow()
14941	* ffloat.d (RA_to_FF): ditto
14942	* sfloat.d (RA_to_SF): ditto
14943	These bugs are probably ~20 years old.
14944
149452008-07-17  Sam Steingold  <sds@gnu.org>
14946
14947	* macros3.lisp (canonicalize): new function
14948
149492008-07-17  Sam Steingold  <sds@gnu.org>
14950
14951	* pathname.d (assure_dir_exists) [PATHNAME_UNIX]: fix a GC-safety
14952	bug introduced on 2008-07-11 (get_path_info is GC-unsafe)
14953	(classify_namestring): GC-safe
14954
149552008-07-17  Sam Steingold  <sds@gnu.org>
14956
14957	* pathname.d: more robust HAVE_SHELL conditional handling
14958
149592008-07-17  Sam Steingold  <sds@gnu.org>
14960
14961	* error.d (check_c_integer_replacement): use the appropriate
14962	[su]int(8|16|32|64)_p test instead of always using uint8_p
14963
149642008-07-17  Sam Steingold  <sds@gnu.org>
14965
14966	* error.d (caller_name): new function
14967	(check_symbol_replacement, check_variable_value_replacement):
14968	use it when the caller maybe either Subr or Fsubr
14969	Reported by Vladimir Tzankov <vtzankov@gmail.com>
14970
149712008-07-17  Sam Steingold  <sds@gnu.org>
14972
14973	* pathname.d (directory_search_scandir) [WIN32_NATIVE]: use
14974	direntry_to_string in one more place
14975
149762008-07-17  Sam Steingold  <sds@gnu.org>
14977
14978	* condition.lisp (check-value): disable USE-VALUE when place is
14979	*PATHNAME-ENCODING* because O(pathname_encoding) is used multiple
14980	times for the same directory entry
14981
149822008-07-16  Sam Steingold  <sds@gnu.org>
14983
14984	* eval.d (invoke_handlers): reactivate and deactivate handlers
14985	only around lisp-compiled handlers, not C handlers, who must
14986	deactivate themselves (this is necessary because the C handlers
14987	which call longjmp do not abide by the HANDLER_FRAME)
14988	* pathname.d (handle_directory_encoding_error): deactivate when
14989	already running; reset STACK
14990	(direntry_to_string): check STACK
14991
149922008-07-16  Sam Steingold  <sds@gnu.org>
14993
14994	* macros2.lisp (report-one-new-value-string)
14995	(report-one-new-value-string-instead, report-new-values-string):
14996	remove the leading "You may " from the message: the message
14997	describes the action of the user, such as "Abort main loop" or
14998	"inspect this frame", cf. reploop.lisp
14999	* reploop.lisp (commands1): more uniform message capitalization
15000
150012008-07-16  Sam Steingold  <sds@gnu.org>
15002
15003	* control.d (SYMBOL-VALUE): tighten identification of STORE-VALUE
15004	selection in CHECK-VALUE: value2 is T, not just non-NIL
15005	* eval.d (eval1): ditto
15006	* error.d, lispbibl.d (check_variable_value_replacement):
15007	ditto (comment)
15008
150092008-07-16  Sam Steingold  <sds@gnu.org>
15010
15011	* error.d (check_variable_value_replacement): do not pushSTACK
15012	PLACE unless check_value is to be called
15013
150142008-07-16  Sam Steingold  <sds@gnu.org>
15015
15016	DIRECTORY signals correctable errors on bad pathnames [1st draft]
15017	* pathname.d (handle_directory_encoding_error): new function:
15018	ignore the error, pass condition in value1 back to the caller
15019	(direntry_to_string): new function: call n_char_to_string, catch
15020	charset-type-error, re-signal it with restarts
15021	(directory_search_scandir): use direntry_to_string
15022	* condition.lisp (check-value): accommodate direntry_to_string:
15023	when place is SYSTEM::PATHNAME-ENCODING, add a CONTINUE restart
15024	* constobj.d (handler_for_charset_type_error): always enable
15025	* constsym.d (datum): add
15026
150272008-07-15  Bruno Haible  <bruno@clisp.org>
15028
15029	Avoid buffer overrun.
15030	* encoding.d (handle_incomplete): Add destend argument.
15031	(uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs,
15032	uni32le_mbstowcs): Update callers.
15033
150342008-07-15  Bruno Haible  <bruno@clisp.org>
15035
15036	Fix bug introduced on 2003-03-11.
15037	* encoding.d (uni16_mblen): Make consistent with uni16be_mbstowcs and
15038	uni16le_mbstowcs.
15039	(uni32be_mblen): Make consistent with uni32be_mbstowcs.
15040	(uni32le_mblen): Make consistent with uni32le_mbstowcs.
15041	(CONVERT-STRING-FROM-BYTES): Revert last commit.
15042
150432008-07-15  Sam Steingold  <sds@gnu.org>
15044
15045	* Makefile.devel (fixperms): undo the 2008-05-15 patch:
15046	cannot look above the top-level directory
15047
150482008-07-15  Bruno Haible  <bruno@clisp.org>
15049
15050	* makemake.in (interpreted.mem, halfcompiled.mem): Depend on
15051	config.lisp.
15052	(clean5): Do not remove config.lisp.
15053	(clean6): Remove config.lisp.
15054
150552008-07-15  Bruno Haible  <bruno@clisp.org>
15056
15057	* encoding.d: Verify already at compile time that HAVE_GOOD_ICONV
15058	is set rather than crashing at initialization time.
15059
150602008-07-15  Bruno Haible  <bruno@clisp.org>
15061
15062	* makemake.in (clean4): Do not remove all the $SUBDIRS but only the
15063	built files inside them.
15064
150652008-07-15  Sam Steingold  <sds@gnu.org>
15066
15067	* spvw_debug.d (nobject_out1): update hash-table output for the
15068	removal of the ht_freelist (2004-05-09 1.49 2004/06/04)
15069
150702008-07-15  Sam Steingold  <sds@gnu.org>
15071
15072	* encoding.d (CONVERT-STRING-FROM-BYTES): check (cptr == cendptr)
15073	after (bptr == bendptr)
15074
150752008-07-15  Sam Steingold  <sds@gnu.org>
15076
15077	* lispbibl.d (number_of_conditions_defined_in_c): rename from
15078	condition_for_broken_compilers_that_dont_like_trailing_commas
15079	* error.d (SYSTEM::%DEFCLCS): use it to check whether the argument
15080	is consistent with constsym.d
15081
150822008-07-14  Sam Steingold  <sds@gnu.org>
15083
15084	src/m4/sigsegv.m4 --> src/glm4/libsigsegv.m4
15085	* Makefile.devel (gnulib-imported): also import libsigsegv
15086	* configure: use gl_cv_lib_sigsegv instead of cl_cv_lib_sigsegv
15087	* configure.in: use gl_LIBSIGSEGV instead of CL_SIGSEGV
15088	* lispbibl.d: use HAVE_LIBSIGSEGV instead of NO_SIGSEGV
15089	* makemake.in (XCFLAGS): do not add NO_SIGSEGV
15090	* src/m4/sigsegv.m4: remove
15091	* src/glm4/libsigsegv.m4: add
15092	* gllib/Makefile.am, glm4/gnulib-cache.m4, glm4/gnulib-comp.m4:
15093	regenerate
15094
150952008-07-13  Sam Steingold  <sds@gnu.org>
15096
15097	* error.d (error_illegal_arg): new function
15098	* lispbibl.d (error_illegal_arg): declare
15099	* constobj.d (type_buffered_arg): add for stream.d:test_buffered_arg
15100	* stream.d (test_buffered_arg, test_eltype_arg, check_float_eltype):
15101	use error_illegal_arg
15102	* encoding.d (MAKE-ENCODING): ditto
15103	* pathname.d (check_direction, check_if_does_not_exist)
15104	(check_if_exists, DIRECTORY): ditto
15105	* hashtabl.d: fix an error message case
15106
151072008-07-13  Sam Steingold  <sds@gnu.org>
15108
15109	* encoding.d (base64_wcstombs): set CHARSET-TYPE-ERROR slots DATUM
15110	and EXPECTED-TYPE
15111	(error_incomplete, error_uni32_invalid, error_utf8_invalid1)
15112	(error_utf8_invalid2, error_utf8_invalid3, error_utf8_invalid4)
15113	(error_nls_invalid): signal CHARSET-TYPE-ERROR instead of ERROR
15114	(base64_wcstombs, error_unencodable, error_incomplete)
15115	(error_uni32_invalid, error_utf8_invalid1, error_utf8_invalid2)
15116	(error_utf8_invalid3, error_utf8_invalid4): print the caller
15117
151182008-07-13  Sam Steingold  <sds@gnu.org>
15119
15120	* init.lisp (search-file): list matching files from the FIRST
15121	directory containing any matching file, because otherwise every
15122	load will mean a full traversal of ~/lisp/**/
15123
151242008-07-13  Sam Steingold  <sds@gnu.org>
15125
15126	* defs1.lisp (*load-logical-pathname-translations-database*):
15127	since SEARCH-FILE now handles both files and directories
15128	similarly, only one element is needed
15129	(load-logical-pathname-translations): update for the search-file
15130	changes: when the search finds a directory, it is returned as is
15131	instead of its contents
15132	* init.lisp (search-file): EXTENSIONS is optional, also accept KEEP-DIRS
15133	(load): pass KEEP-DIRS=NIL to search-file
15134
151352008-07-13  Sam Steingold  <sds@gnu.org>
15136
15137	* pathname.d (error_file_stream_unnamed, error_dir_not_exists)
15138	(error_noname, error_notdir): print caller
15139	(FILE-NAMESTRING, DIRECTORY-NAMESTRING, ABSOLUTE-PATHNAME)
15140	(physical_namestring): simplify code
15141
151422008-07-12  Sam Steingold  <sds@gnu.org>
15143
15144	* pathname.d (classify_namestring): extract from check_sub_directory
15145	(check_sub_directory): remove
15146	(directory_search_1subdir): use classify_namestring instead
15147	(PROBE-PATHNAME): also return the physical pathname as the 2nd value
15148	* init.lisp (ppn-fwd): use the second value of PROBE-PATHNAME
15149	* win32.d (MAXPATHLEN): define (needed for classify_namestring)
15150
151512008-07-12  Sam Steingold  <sds@gnu.org>
15152
15153	* spvw_debug.d (ThePackage_, ThePathname_) [DEBUG_SPVW]: add
15154
151552008-07-11  Sam Steingold  <sds@gnu.org>
15156
15157	new function PROBE-PATHNAME
15158	* pathname.d (probe_path_from_stream): extract from PROBE-FILE
15159	(PROBE-FILE): use it
15160	(PROBE-PATHNAME): implement
15161	* constsym.d, subr.d (probe_pathname): declare
15162	* init.lisp (probe-pathname): export
15163	(search-file): use it instead of probe-file
15164
151652008-07-11  Sam Steingold  <sds@gnu.org>
15166
15167	* pathname.d (error_directory): extract from the unix version of
15168	assure_dir_exists
15169	(assure_dir_exists) [WIN32_NATIVE]: use it instead of
15170	OS_file_error for consistency with unix
15171	(struct file_status) [WIN32_NATIVE]: new slot fs_fileattr
15172	(file_status_is_dir): new function
15173	(get_path_info) [PATHNAME_UNIX]: extract from assure_dir_exists
15174	(assure_dir_exists) [PATHNAME_UNIX]: use it
15175	(if_HAVE_LSTAT): remove
15176	(access0) [WIN32_NATIVE]: set fs_fileattr
15177
151782008-07-10  Sam Steingold  <sds@gnu.org>
15179
15180	* init.lisp (search-file <final def>): do not use DIRECTORY when
15181	the pathname is non-wild to avoid the denial-of-service attack
15182
151832008-07-10  Sam Steingold  <sds@gnu.org>
15184
15185	* encoding.d (error_nls_invalid): print function name
15186	* pathname.d (check_no_wildcards): ditto
15187
151882008-07-10  Sam Steingold  <sds@gnu.org>
15189
15190	* debug.d (read_form): fix a GC-safety bug
15191	 (save function before subsstring)
15192	* foreign.d (check_faddress_valid): fix a GC-safety bug
15193	 (check_fpointer can trigger GC!)
15194	(validate_fpointer): return the argument
15195	(convert_to_foreign): fix a GC-safety bug
15196	 (validate_fpointer can trigger GC)
15197	* modules/clx/new-clx/clx.f (XLIB:SCREEN-SAVER): fix a GC-safety bug
15198	 (defcheckers are GC-unsafe)
15199
152002008-07-10  Sam Steingold  <sds@gnu.org>
15201
15202	fix bug#486: (ash 1 huge) blows SP instead of signaling
15203	an arithmetic-error
15204	* intlog.d (I_I_ash_I): tighten the shift check (use 16-bit intW
15205	instead of 32-bit intWC) so that the "shift is too large"
15206	error is signaled instead of a SP overflow which results from
15207	__builtin_alloca not checking its argument and overwriting stack
15208
152092008-07-09  Sam Steingold  <sds@gnu.org>
15210
15211	fix bug#297: g++ debug_gcsafety amd64 build is broken
15212	* lispbibl.d (pgci_pointable, ngci_pointable) [DEBUG_GCSAFETY]:
15213	pass obj.one_o through pointable_address_unchecked before nonimmprobe
15214	(cgci_types_pointable, pgci_types_pointable, ngci_types_pointable)
15215	[TYPECODES & DEBUG_GCSAFETY]: wrap ?gci_pointable in
15216	pointable_address_unchecked
15217
152182008-07-09  Sam Steingold  <sds@gnu.org>
15219
15220	* lispbibl.d (UL_to_I) [DEBUG_GCSAFETY & intLsize<=oint_data_len]:
15221	fix export the definition to clisp.h
15222
152232008-07-09  Sam Steingold  <sds@gnu.org>
15224
15225	* modules/syscalls/calls.c (STAT-VFS):
15226	use the right SIZEOF_* conditionals
15227	(FILE_FUNCTION2): add a cast to fix g++ compilation
15228
152292008-07-09  Sam Steingold  <sds@gnu.org>
15230
15231	fix bug#485: float/rational comparison underflows
15232	* realelem.d (R_R_comp): inhibit floating-point-underflow when
15233	converting to a rational
15234
152352008-07-08  Sam Steingold  <sds@gnu.org>
15236
15237	* spvw_sigcld.d (end_want_sigcld): avoid the gcc warning:
15238	suggest a space before ';' or explicit braces
15239
152402008-07-08  Sam Steingold  <sds@gnu.org>
15241
15242	* makemake.in (srcdir) [CROSS]: do not overwrite
15243	(module_configure_flags) [CROSS]: add --build=${TSYS}
15244	Reported by Luca Capello <luca@pca.it>
15245
152462008-07-08  Sam Steingold  <sds@gnu.org>
15247
15248	* version.sh: 2.46+ (2008-07-08)
15249
152502008-07-07  Sam Steingold  <sds@gnu.org>
15251
15252	* m4/shm.m4 (CL_SHM_H): run before CL_SHM
15253	(CL_SHM): require CL_SHM_H, do not set have_shm
15254	* m4/shm-rmid.m4 (CL_SHM_RMID): use cl_cv_sys_shm_works
15255	instead of have_shm
15256
152572008-07-07  Sam Steingold  <sds@gnu.org>
15258
15259	* _clisp.c (main): "-t"[raditional] does not take an argument
15260
152612008-07-06  Bruno Haible  <bruno@clisp.org>
15262
15263	Remove MULTIMAP_MEMORY_VIA_SHM and MULTIMAP_MEMORY.
15264	It cannot compete with SINGLEMAP_MEMORY because it
15265	1. consumes a lot more memory for page tables, and
15266	2. hampers swapping in kernels without reverse mapping pointers.
15267	* lispbibl.d (MULTIMAP_MEMORY_VIA_SHM, MULTIMAP_MEMORY): Do not define.
15268	* spvw.d (canonaddr, canon): Remove macros.
15269	(MULTIMAP_MEMORY_SYMBOL_TAB): Remove macro.
15270	(init_memory, main): Update.
15271	* spvw_fault.d (xmmprotect): Remove macro/function.
15272	(handle_read_fault, handle_readwrite_fault, handle_fault)
15273	(handle_fault_range): Update.
15274	* spvw_genera1.d (xmprotect_old_generation_cache): Rename from
15275	xmmprotect_old_generation_cache.
15276	(in_old_generation_0, in_old_generation_1, in_old_generation)
15277	(build_old_generation_cache, rebuild_old_generation_cache)
15278	(gc_check_at): Update.
15279	* spvw_genera3.d (update_old_generation): Update.
15280	* spvw_global.d (init_mem_heapnr_from_type): Update.
15281	* spvw_memfile.d (old_symbol_tab_o, loadmem_update)
15282	(loadmem_from_handle): Update.
15283	* spvw_weak.d (MARK, add_watchable): Update.
15284	* unix.d (SHMMAX): Remove macro fallback.
15285	* built.d (built_flags): Remove MULTIMAP_MEMORY_VIA_SHM and
15286	MULTIMAP_MEMORY.
15287	* makemake.in (XCFLAGS): Remove option -DNO_MULTIMAP_SHM.
15288	(SPVW_INCLUDES): Remove spvw_multimap.
15289	* po/Makefile.devel (DSOURCES): Remove spvw_multimap.
15290	* Makefile.devel (build-linux-x86-standard-spvw_mixed_pages)
15291	(build-linux-x86-noexec-spvw_mixed_pages)
15292	(build-darwin-powerpc-standard-spvw_mixed_pages)
15293	(build-darwin-powerpc-noexec-spvw_mixed_pages):
15294	Remove option -DNO_MULTIMAP_SHM.
15295
152962008-07-05  Bruno Haible  <bruno@clisp.org>
15297
15298	Remove MULTIMAP_MEMORY_VIA_FILE.
15299	It cannot compete with SINGLEMAP_MEMORY because it
15300	1. periodically flushes the working memory to disk,
15301	2. consumes a lot more memory for page tables, and
15302	3. hampers swapping in kernels without reverse mapping pointers.
15303	* lispbibl.d (MULTIMAP_MEMORY_VIA_FILE): Do not define.
15304	* spvw.d (usage): Do not mention option -t.
15305	(argv_initparams): Remove argv_tmpdir field.
15306	(parse_options): Do not recognize option -t.
15307	(init_memory): Update.
15308	* spvw_multimap.d [MULTIMAP_MEMORY_VIA_FILE]: Remove code.
15309	* unix.d: Do not undefine HAVE_MSYNC.
15310	Do not include headers for statvfs or statfs.
15311	* built.d (built_flags): Remove MULTIMAP_MEMORY_VIA_FILE.
15312	* m4/stat.m4 (CL_STAT): Move tests for statvfs, statfs...
15313	* modules/syscalls/configure.in: ... to here.
15314	* makemake.in (XCFLAGS): Remove option -DNO_MULTIMAP_FILE.
15315	* Makefile.devel (build-linux-x86-standard-spvw_mixed_pages)
15316	(build-linux-x86-noexec-spvw_mixed_pages)
15317	(build-darwin-powerpc-standard-spvw_mixed_pages)
15318	(build-darwin-powerpc-noexec-spvw_mixed_pages): Likewise.
15319
153202008-07-02  Sam Steingold  <sds@gnu.org>
15321
15322	* Makefile.devel (gnulib-imported): also get nocrash
15323	update from the gnulib repository
15324
153252008-07-02  Sam Steingold  <sds@gnu.org>
15326
15327	* m4/ffcall-codeexec.m4, m4/ffcall-ireg.m4, m4/ffcall-pccstruct.m4:
15328	* m4/ffcall-smallstruct.m4: remove libffcall-specific files
15329	* m4/general.m4 (CL_FFCALL_COMMON_LIBTOOL, CL_FFCALL_COMMON_TRAMPOLINE)
15330	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): remove
15331
153322008-07-02  Sam Steingold  <sds@gnu.org>
15333
15334	* stream.d (make_terminal_io): pipe, not just file, i/o handles
15335	imply non-terminal standard i/o; this should somewhat simplify
15336	scripting by not requiring the users to resort to make-stream
15337	(handle_type_t): new type
15338	(handle_type, regular_handle_type_p, pipe_handle_type_p)
15339	(pipe_file_handle_p): new functions
15340	(regular_handle_p): a macro combination of regular_handle_type_p
15341	and handle_type
15342
153432008-07-02  Sam Steingold  <sds@gnu.org>
15344
15345	* version.sh: 2.46 (2008-07-02)
15346
153472008-07-01  Sam Steingold  <sds@gnu.org>
15348
15349	* modules/clx/new-clx/clx.f (make_xid_obj_2): signal a
15350	LOOKUP-ERROR instead of an ERROR; use MAKE-CONDITION &
15351	SYS::CORRECTABLE-ERROR instead of correctable_error()
15352	(x_type_error): new function
15353	(my_type_error, with_stringable_0_tc, get_aint32): use it
15354	(make_xid_obj_2): no prealloc for cached objects!
15355	* lispbibl.d (correctable_error): do NOT export to clisp.h
15356
153572008-06-30  Sam Steingold  <sds@gnu.org>
15358
15359	* modules/clx/new-clx/clx.f (make_xid_obj_low): check that
15360	prealloc is of the correct type
15361	* modules/clx/new-clx/image.lisp (*image-bit-lsb-first-p*)
15362	(*image-byte-lsb-first-p*): default to (NOT SYS::*BIG-ENDIAN*)
15363
153642008-06-30  Sam Steingold  <sds@gnu.org>
15365
15366	fix bug#480: XID reuse causes clx cache to get out of sync
15367	* modules/clx/new-clx/clx.f (make_xid_obj_2): when the cached
15368	object is of the wrong type, signal a continuable error and offer
15369	to invalidate either the cache entry or the whole cache
15370	* lispbibl.d (correctable_error): export to clisp.h
15371
153722008-06-30  Sam Steingold  <sds@gnu.org>
15373
15374	fix bug#482: socket-connect with :timeout to a dead port
15375	* socket.d (connect_via_ip): use getsockopt() to check the status
15376	of the socket before returning it, as described in the linux man page
15377
153782008-06-29  Sam Steingold  <sds@gnu.org>
15379
15380	* version.sh: 2.45++: pretest [+ gnulib-imported build-aux-update]
15381
153822008-06-29  Sam Steingold  <sds@podval.org>
15383
15384	* modules/libsvm: upgraded to upstream 2.86
15385
153862008-06-28  Sam Steingold  <sds@gnu.org>
15387
15388	* version.sh: new version number convention: VERSION_NUMBER is
15389	  = MAJOR.MINOR for release,
15390	  = MAJOR.MINOR+ for development, and
15391	  = MAJOR.MINOR++ for pretest
15392	RELEASE_DATE is the date when VERSION_NUMBER was modified.
15393	Set to 2.45+/2008-06-28
15394
153952008-06-28  Sam Steingold  <sds@gnu.org>
15396
15397	* configure: fail if FFI modules are specified
15398	but FFCALL is not available
15399
154002008-06-28  Sam Steingold  <sds@gnu.org>
15401
15402	* modules/netica/link.sh (NEW_LIBS): add -lpthread
15403
154042008-06-28  Sam Steingold  <sds@gnu.org>
15405
15406	* utils/modprep.lisp (init-to-tag):
15407	bind *PRINT-LINES* when printing huge tags
15408
154092008-06-27  Sam Steingold  <sds@gnu.org>
15410
15411	* spvw_debug.d (nobject_out1): use symbol_without_flags when
15412	printing a symbol
15413
154142008-06-27  Sam Steingold  <sds@gnu.org>
15415
15416	fix special bindings in evaluated code on 64bit platforms
15417	* control.d (specdecled_) [!NO_symbolflags]: use
15418	symbol_without_flags when comparing symbols
15419
154202008-06-27  Sam Steingold  <sds@gnu.org>
15421
15422	* constsym.d, control.d, eval.d, fsubr.d, io.d, lisparit.d:
15423	* package.d, predtype.d, spvw.d, spvw_allocate.d, spvw_language.d
15424	(let*, *package*, *readtable*, *evalhook*, *applyhook*)
15425	(*gc-statistics*, *random-state*):
15426	use "star" instead of "stern" for C names
15427	* intdiv.d (UDS_divide_): rename local variable q_stern -> q_star
15428	* intsqrt.d (UDS_sqrt_): rename local variable b_stern -> b_star
15429
154302008-06-26  Sam Steingold  <sds@gnu.org>
15431
15432	* utils/modprep.lisp (print-tables-1): use "..._of_list" instead
15433	of "..._from_list"
15434	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
15435	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: update
15436
154372008-06-26  Sam Steingold  <sds@gnu.org>
15438
15439	* modules/clx/new-clx/clx.lisp (WITH-GCONTEXT, set-wm-class):
15440	STRING-CONCAT requires package prefix
15441
154422008-06-26  Sam Steingold  <sds@gnu.org>
15443
15444	* modules/clx/new-clx/demos/sokoban.lisp (init-sokoban):
15445	do not set *display*
15446	(sokoban): use xlib:with-open-display;
15447	handle numeric keypad
15448
154492008-06-25  Sam Steingold  <sds@gnu.org>
15450
15451	* modules/clx/new-clx/clx.f (change_property): remove
15452	(SET-WM-HINTS, CHANGE-PROPERTY): use XChangeProperty() directly
15453	and ignore its return value which is always 1
15454	(RECOLOR-CURSOR): fix background handling
15455
154562008-06-25  Sam Steingold  <sds@gnu.org>
15457
15458	* modules/clx/new-clx/clx.lisp (with-open-display): define & export
15459	* modules/clx/new-clx/demos/bball.lisp:
15460	* modules/clx/new-clx/demos/bwindow.lisp:
15461	* modules/clx/new-clx/demos/clclock.lisp:
15462	* modules/clx/new-clx/demos/greynetic.lisp:
15463	* modules/clx/new-clx/demos/hanoi.lisp:
15464	* modules/clx/new-clx/demos/koch.lisp:
15465	* modules/clx/new-clx/demos/petal.lisp:
15466	* modules/clx/new-clx/demos/plaid.lisp:
15467	* modules/clx/new-clx/demos/qix.lisp:
15468	* modules/clx/new-clx/demos/recurrence.lisp: use it
15469
154702008-06-25  Sam Steingold  <sds@gnu.org>
15471
15472	move WM-HINTS to C to better handle word size differences
15473	* modules/clx/new-clx/clx.f (lookup_display, change_property): add
15474	(CHANGE-PROPERTY): use change_property()
15475	(xlib_error_handler, xlib_io_error_handler): use lookup_display()
15476	(check_wmh_initial_state, check_wmh_flag): add DEFCHECKERs
15477	(WM-HINTS, SET-WM-HINTS): implement
15478	* modules/clx/new-clx/clx.lisp (wm-hints, set-wm-hints)
15479	(decode-wm-hints, encode-wm-hints): remove
15480
154812008-06-25  Sam Steingold  <sds@gnu.org>
15482
15483	* modules/clx/mit-clx/display.lisp (with-open-display): define
15484	* modules/clx/mit-clx/package.lisp (with-open-display): export
15485
154862008-06-25  Sam Steingold  <sds@gnu.org>
15487
15488	* modules/clx/new-clx/clx.f (CHANGE-PROPERTY):
15489	check the return value of XChangeProperty()
15490	(DISPLAY-VENDOR-NAME): return just one value
15491
154922008-06-24  Sam Steingold  <sds@gnu.org>
15493
15494	* modules/clx/new-clx/clx.f (GET-PROPERTY):
15495	use uint16 and uint32 instead of unsigned short and unsigned long
15496	for reliability on 64-bit platforms
15497
154982008-06-24  Sam Steingold  <sds@gnu.org>
15499
15500	* error.d (check_variable_value_replacement): move here from eval.d
15501	* lispbibl.d (check_variable_value_replacement): prototype
15502	* eval.d (eval1): call setq here
15503	* control.d (check_global_symbol_value): remove
15504	(SYMBOL-VALUE): use check_variable_value_replacement
15505
155062008-06-23  Sam Steingold  <sds@gnu.org>
15507
15508	* eval.d (check_variable_value_replacement): extract from eval1()
15509	(eval1): use it
15510	(interpret_bytecode_): use it for cod_getvalue & cod_getvalue_push
15511
155122008-06-23  Sam Steingold  <sds@gnu.org>
15513
15514	* unix/MAGIC.add: remove non-CLISP-specific entries;
15515	CLISP FASL files start with |SYSTEM|::|VERSION| since 2004-03-27
15516
155172008-06-21  Sam Steingold  <sds@gnu.org>
15518
15519	* modules/netica/Makefile: do not use ${...-...}
15520	* modules/netica/demo.lisp: test netica:read-net
15521	* modules/netica/link.sh: netica 3.25 requires g++
15522
155232008-06-21  Sam Steingold  <sds@gnu.org>
15524
15525	* io.d (pr_record_descr): use pr_symbol instead of literal ':' +
15526	pr_like_symbol(Symbol_name) to print slot names so that the keywords
15527	are printed as :|HOST| and not :|host| when writing a FASL file
15528	in a modern package
15529
155302008-06-19  Sam Steingold  <sds@gnu.org>
15531
15532	* modules/netica/: update to the Netica C API version 3.25 from 2.15
15533
155342008-06-17  Sam Steingold  <sds@gnu.org>
15535
15536	* modules/syscalls/posix.lisp (make-xterm-io-stream): avoid a race
15537	condition [between (delete-file tmps) and (mknod tmps :FIFO :RWXU)]
15538	by using mkdtemp and creating the pipe in the temporary directory;
15539	accept :XTERM argument and support rxvt in addition to xterm
15540
155412008-06-17  Sam Steingold  <sds@gnu.org>
15542
15543	* modules/syscalls/calls.c (MKDTEMP): strip trailing slash from
15544	namez because mkdtemp(".../") --> ENOENT
15545
155462008-06-16  Sam Steingold  <sds@gnu.org>
15547
15548	* modules/rawsock/rawsock.c (RAWSOCK:NETWORK): use getnetbyaddr
15549	instead of non-existent getnetbynumber
15550
155512008-06-13  Sam Steingold  <sds@gnu.org>
15552
15553	* defmacro.lisp (make-macro-expansion): bind %proper-list-p to nil,
15554	not t, to allow dotted macro forms (broken since 2006-04-15)
15555
155562008-06-13  Sam Steingold  <sds@gnu.org>
15557
15558	* modules/syscalls/calls.c (check_errno) [WIN32_NATIVE]:
15559	#include <winerror.h>, drop prefix=ERROR,
15560	and use cygwin cvs tree to define many more codes
15561
155622008-06-11  Sam Steingold  <sds@gnu.org>
15563
15564	* modules/syscalls/calls.c (GETHOSTID):
15565	use `unsigned long' instead of non-standard `ulong'
15566
155672008-06-05  Sam Steingold  <sds@gnu.org>
15568
15569	* modules/syscalls/calls.c, modules/syscalls/posix.lisp:
15570	remove the GET prefix from SETFable functions
15571	PGID, UID, GID, EUID, EGID, GROUPS
15572
155732008-06-05  Sam Steingold  <sds@gnu.org>
15574
15575	* modules/syscalls/calls.c (GETHOSTID): implement
15576	* modules/syscalls/posix.lisp (gethostid): export
15577
155782008-06-05  Sam Steingold  <sds@gnu.org>
15579
15580	* modules/syscalls/calls.c (ERRNO): when the argument is T,
15581	return all known error codes as an alist
15582
155832008-06-04  Sam Steingold  <sds@gnu.org>
15584
15585	* calls.c (ERRNO, STRERROR) [WIN32_NATIVE]: use GetLastError(),
15586	SetLastError() and FormatMessage() instead of errno and strerror
15587	(check_errno) [WIN32_NATIVE]: define separately
15588
155892008-06-04  Sam Steingold  <sds@gnu.org>
15590
15591	* inspect.lisp (get-insp): accept :w and :n
15592	(print-inspection, inspect-frontend): say when more slots are available
15593	(inspect): bind *INSPECT-LENGTH* so that :w & :n do not act across
15594	inspect invocations
15595
155962008-06-04  Sam Steingold  <sds@gnu.org>
15597
15598	* modules/clx/new-clx/clx.f (DISPLAY-GET-DEFAULT): add
15599	* modules/clx/new-clx/clx.lisp (display-get-default)
15600	(display-resource-manager-string, screen-resource-string): export
15601
156022008-06-04  Sam Steingold  <sds@gnu.org>
15603
15604	* modules/clx/new-clx/clx.f (NO-OPERATION): return no values on
15605	success and signal an error on failure
15606
156072008-06-03  Sam Steingold  <sds@gnu.org>
15608
15609	* configure, makemake.in: pass --disable-option-checking to
15610	sub-configures
15611
156122008-06-03  Sam Steingold  <sds@gnu.org>
15613
15614	* utils/modprep.lisp (strip-comments): new function
15615	(split-command): use it to support comments inside DEFCHECKERs
15616
156172008-06-03  Sam Steingold  <sds@gnu.org>
15618
15619	* modules/syscalls/posix.lisp (physical-memory, *services-file*):
15620	signal an error on non UNIX & Win32 platforms
15621
156222008-06-03  Sam Steingold  <sds@gnu.org>
15623
15624	* modules/syscalls/calls.c (FILE-OWNER): use *PATHNAME-ENCODING*
15625	for the filename instead of *MISC-ENCODING*
15626	(get_owner) [!HAVE_GETPWUID && !WIN32_NATIVE]: use an exhaustive
15627	cpp conditioning to ensure that it is always defined
15628
156292008-06-03  Sam Steingold  <sds@gnu.org>
15630
15631	* makemake.in (module_configure_flags): do not add
15632	--with-dynamic-ffi & --with-dynamic-modules
15633
156342008-06-02  Sam Steingold  <sds@gnu.org>
15635
15636	* makemake.in (encflags): add -Emisc 1:1 so that syscalls tests
15637	pass (user names may be 8bit)
15638
156392008-06-02  Sam Steingold  <sds@gnu.org>
15640
15641	* modules/syscalls/calls.c (OS:ERRNO, OS:STRERROR): implement
15642	* modules/syscalls/posix.lisp (OS:ERRNO, OS:STRERROR): export
15643
156442008-06-02  Sam Steingold  <sds@gnu.org>
15645
15646	* makemake.in (IMPNOTES): rename to IMPNOTES_FILES to avoid
15647	conflict with $IMPNOTES which is used by IMPNOTES-ROOT
15648
156492008-06-02  Sam Steingold  <sds@gnu.org>
15650
15651	* condition.lisp (mecase): ECASE for DEFMACRO: print the form in
15652	the error message
15653	* foreign1.lisp (parse-c-function, DEF-C-VAR): use SYS::MECASE
15654	instead of ECASE for a better error message
15655
156562008-06-01  Sam Steingold  <sds@gnu.org>
15657
15658	* lispbibl.d (setjmp) [__MINGW32__]: define as _setjmp (but do not
15659	define longjmp as _longjmp because the latter does not exist)
15660	This is only necessary for lightning.
15661	Thanks to Yaroslav Kavenchuk <kavenchuk@tut.by> for investigation.
15662
156632008-06-01  Sam Steingold  <sds@gnu.org>
15664
15665	* spvw.d (init_object_tab) [WIDE_HARD]: add :WORD-SIZE=64 to *FEATURES*
15666	* built.d (built_flags): show all WIDE_* variants
15667
156682008-05-31  Bruno Haible  <bruno@clisp.org>
15669
15670	* m4/builtin_strlen.m4 (CL_BUILTIN_STRLEN): Assume ANSI C or C++.
15671	* m4/mprotect.m4 (CL_MPROTECT): Likewise.
15672	* m4/select.m4 (CL_SELECT): Likewise.
15673	* m4/signal.m4 (CL_SIGNAL_REINSTALL, CL_SIGNAL_UNBLOCK,
15674	CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK):
15675	Likewise.
15676
156772008-05-31  Bruno Haible  <bruno@clisp.org>
15678
15679	* configure.in: Remove AC_HEADER_STAT invocation.
15680	* unix.d: Ignore STAT_MACROS_BROKEN.
15681
156822008-05-31  Bruno Haible  <bruno@clisp.org>
15683
15684	* configure.in: Remove AC_HEADER_TIME invocation. Instead simply test
15685	for <time.h> and <sys/time.h>.
15686	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): Likewise.
15687	* unix.d: Do not test TIME_WITH_SYS_TIME. Assume <time.h> and
15688	<sys/time.h> are compatible.
15689	* modules/berkeley-db/bdb.c: Likewise.
15690	* modules/clx/new-clx/clx.f: Likewise.
15691	* modules/rawsock/rawsock.c: Likewise.
15692	* modules/syscalls/calls.c: Likewise.
15693
156942008-05-31  Bruno Haible  <bruno@clisp.org>
15695
15696	* configure.in: Remove AC_STRUCT_TM invocation.
15697
156982008-05-31  Bruno Haible  <bruno@clisp.org>
15699
15700	* configure.in: Remove CL_PERROR invocation.
15701	* _clisp.c (perror): Remove declaration fallback.
15702	* win32.d (HAVE_PERROR_DECL): Remove macro.
15703	* m4/perror.m4: Remove file.
15704
157052008-05-31  Bruno Haible  <bruno@clisp.org>
15706
15707	* m4/proto.m4 (CL_PROTO_RET, CL_PROTO_TRY, CL_PROTO_CONST): Remove
15708	TRAD-DECL argument.
15709	* m4/connect.m4 (CL_CONNECT): Update.
15710	* m4/getpagesize.m4 (CL_GETPAGESIZE): Update.
15711	* m4/ioctl.m4 (CL_IOCTL): Update.
15712	* m4/putenv.m4 (CL_PUTENV): Update.
15713	* m4/readline.m4 (CL_READLINE): Update.
15714	* m4/rlimit.m4 (CL_RLIMIT): Update.
15715	* m4/rusage.m4 (CL_RUSAGE): Update.
15716	* m4/select.m4 (CL_SELECT): Update.
15717	* m4/tcpconn.m4 (CL_TCPCONN): Update.
15718	* m4/waitpid.m4 (CL_WAITPID): Update.
15719
157202008-05-31  Bruno Haible  <bruno@clisp.org>
15721
15722	* m4/termios.m4 (RL_TERM): Remove macro.
15723
157242008-05-31  Bruno Haible  <bruno@clisp.org>
15725
15726	* configure.in: Remove CL_IRIX_SUN invocation.
15727	* m4/sys-irix.m4: Remove file.
15728
157292008-05-31  Bruno Haible  <bruno@clisp.org>
15730
15731	* configure.in: Remove CL_DYNIX_SEQ invocation.
15732	* m4/sys-dynix.m4: Remove file.
15733
157342008-05-31  Bruno Haible  <bruno@clisp.org>
15735
15736	* m4/signal.m4 (RL_RETSIGTYPE): Remove macro.
15737
157382008-05-31  Bruno Haible  <bruno@clisp.org>
15739
15740	* m4/siginterrupt.m4 (CL_SIGINTERRUPT): Do not test for sigvec.
15741	* unixaux.d (siginterrupt): Remove sigvec based emulation.
15742
157432008-05-31  Bruno Haible  <bruno@clisp.org>
15744
15745	* m4/shm-rmid.m4 (CL_SHM_RMID): Choose more distant addresses,
15746	so that the test succeeds on Linux.
15747
157482008-05-31  Bruno Haible  <bruno@clisp.org>
15749
15750	* m4/select.m4 (RL_SELECT): Remove macro.
15751
157522008-05-31  Bruno Haible  <bruno@clisp.org>
15753
15754	* modules/regexp/configure.in: Require autoconf >= 2.58. Invoke
15755	AC_C_RESTRICT instead of gl_C_RESTRICT.
15756	* m4/restrict.m4: Remove file.
15757
157582008-05-31  Bruno Haible  <bruno@clisp.org>
15759
15760	* configure.in: Remove CL_RAISE invocation.
15761	* unix.d (raise): Assume 'raise' exists.
15762	* spvw_sigpipe.d (sigpipe_handler): Likewise.
15763	* m4/raise.m4: Remove file.
15764
157652008-05-31  Bruno Haible  <bruno@clisp.org>
15766
15767	* configure.in: Remove CL_OPENFLAGS invocation.
15768	* unix.d: Assume O_RDWR etc. is defined in <fcntl.h>.
15769	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
15770	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): Likewise.
15771	* m4/ioctl.m4 (CL_IOCTL): Likewise.
15772	* m4/mmap.m4 (CL_MMAP): Likewise.
15773	* m4/poll.m4 (CL_POLL): Likewise.
15774	* m4/select.m4 (CL_SELECT): Likewise.
15775	* m4/openflags.m4: Remove file.
15776
157772008-05-31  Bruno Haible  <bruno@clisp.org>
15778
15779	* configure.in: Remove CL_OFFSETOF invocation.
15780	* m4/intparam.m4 (CL_INTPARAM_ALIGNOF): Do not require CL_OFFSETOF.
15781	Include <stddef.h> always.
15782	* lispbibl.d: Include <stddef.h> always.
15783	(offsetof): Do not redefine, use if it is defined.
15784	* m4/offsetof.m4: Remove file.
15785
157862008-05-31  Bruno Haible  <bruno@clisp.org>
15787
15788	Remove SunOS 4 support.
15789	* lispbibl.d (SUN386, SUN3, UNIX_SUNOS4): Remove macros.
15790	(MULTIMAP_MEMORY_VIA_FILE, hardware_addressbus_mask, SPVW_MIXED):
15791	Update.
15792	* unix.d: Drop UNIX_SUNOS4 conditional.
15793	* spvw.d (init_memory): Likewise.
15794	* misc.d (MACHINE-TYPE, MACHINE-VERSION): Likewise.
15795	* _distmakefile (CC): Likewise.
15796	* stream.d (MAKE-WINDOW, CLOSE-WINDOW): Drop SUN3 conditional.
15797
157982008-05-31  Bruno Haible  <bruno@clisp.org>
15799
15800	Remove NeXTstep support.
15801	* SUMMARY: Remove mention of NeXTstep.
15802	* lispbibl.d (UNIX_NEXTSTEP, NEXTSTEP_CHS): Remove macros.
15803	* charstrg.d: Remove NEXTSTEP_CHS special casing.
15804	* io.d: Likewise.
15805	* eval.d (interpret_bytecode): Drop UNIX_NEXTSTEP conditional.
15806	* lightning.c (LD, LR): Likewise.
15807	* misc.d (MACHINE-TYPE): Likewise.
15808	* spvw.d (init_memory): Likewise.
15809	* unix.d: Likewise.
15810
15811	* nls_nextstep.c: Remove file.
15812	* pseudofun.d (nls_nextstep_table): Remove.
15813	* encoding.d: Do not include nls_nextstep.c.
15814	(nls_tables): Remove nls_nextstep_table.
15815	* constsym.d: Update.
15816	* makemake.in (NLS_INCLUDES): Remove nls_nextstep.
15817	* utils/unicode/Makefile (ALL): Remove nls_nextstep.c.
15818	(nls_nextstep.c): Remove rule.
15819
158202008-05-31  Bruno Haible  <bruno@clisp.org>
15821
15822	* m4/gettimeofday.m4 (CL_GETTIMEOFDAY): Remove test for the prototype.
15823	* unix.d (gettimeofday): Assume the declaration in <sys/time.h>.
15824
158252008-05-31  Bruno Haible  <bruno@clisp.org>
15826
15827	* m4/gethostbyname.m4 (CL_GETHOSTBYNAME): Remove test for sun/netdb.h.
15828	* unix.d: When gethostbyname exists, assume <sys/socket.h> and <netdb.h>
15829	exist.
15830
158312008-05-31  Bruno Haible  <bruno@clisp.org>
15832
15833	* configure.in: Remove CL_FPU_CONTROL invocation.
15834	* m4/fpu_control.m4: Remove file.
15835
158362008-05-31  Bruno Haible  <bruno@clisp.org>
15837
15838	* configure.in: Remove CL_PROG_CP invocation.
15839	* m4/cp.m4: Remove file.
15840	* m4/ln.m4 (CL_PROG_LN): Assume "cp -p" works on Unix.
15841	* makemake.in (CP): Likewise.
15842
158432008-05-31  Bruno Haible  <bruno@clisp.org>
15844
15845	* m4/closedir.m4 (CL_CLOSEDIR): Remove check for the prototype.
15846	Do not define RETCLOSEDIRTYPE any more.
15847
158482008-05-31  Bruno Haible  <bruno@clisp.org>
15849
15850	* configure.in: Remove CL_VOID invocation.
15851	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): Likewise.
15852	* m4/cc-void.m4: Remove file.
15853
158542008-05-31  Bruno Haible  <bruno@clisp.org>
15855
15856	* configure.in: Remove CL_CC_NEED_CCPAUX invocation.
15857	* m4/cc-cppaux.m4: Remove file.
15858	* makemake.in (CC_NEED_CCPAUX, XCC_NEED_CCPAUX): Remove variables.
15859	(*asm*.c): Fix dependency to use XASMCCPAUX.
15860
158612008-05-31  Bruno Haible  <bruno@clisp.org>
15862
15863	* m4/c++-constructors.m4: Remove file.
15864
158652008-05-31  Bruno Haible  <bruno@clisp.org>
15866
15867	* configure.in: Remove CL_ACCESSFLAGS invocation.
15868	* m4/access.m4: Remove file.
15869	* unix.d: Assume <unistd.h> declares R_OK, W_OK, X_OK.
15870
158712008-05-31  Bruno Haible  <bruno@clisp.org>
15872
15873	* configure.in: Remove CL_ABORT invocation.
15874	* m4/abort.m4: Remove file.
15875	* unix.d (abort): Assume <stdlib.h> declares it.
15876
158772008-05-31  Bruno Haible  <bruno@clisp.org>
15878
15879	* configure.in: Remove AC_HEADER_STDC invocation.
15880	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): Remove AC_HEADER_STDC
15881	invocation.
15882	* lispbibl.d: Assume STDC_HEADERS.
15883	* stream.d: Likewise.
15884	* unix.d: Likewise.
15885	* win32.d: Do not set STDC_HEADERS.
15886	* malloc/gmalloc.c: Assume ANSI C or C++, STDC_HEADERS, memmove.
15887	* unix/sigsegv.c: Assume STDC_HEADERS.
15888	* modules/pcre/cpcre.c: Assume STDC_HEADERS.
15889	* modules/rawsock/configure.in: Test for unistd.h.
15890	* modules/rawsock/rawsock.c: Assume STDC_HEADERS.
15891
158922008-05-30  Sam Steingold  <sds@gnu.org>
15893
15894	* m4/siginterrupt.m4: )fix a typo:
15895	$ac_cv_func_strerror -> $ac_cv_func_siginterrupt
15896
158972008-05-29  Bruno Haible  <bruno@clisp.org>
15898
15899	* configure.in: Remove CL_DIR_HEADER invocation.
15900	* m4/dir.m4: Remove file.
15901	* m4/closedir.m4 (CL_CLOSEDIR): Assume <dirent.h>.
15902	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
15903	* unix.d: Likewise.
15904	(SDIRENT): Remove macro.
15905	* pathname.d (directory_search_scandir): Assume <dirent.h> and
15906	struct dirent.
15907
159082008-05-29  Sam Steingold  <sds@gnu.org>
15909
15910	* m4/fenv_default.m4 (CL_FENV_CHECK): define and use everywhere
15911
159122008-05-29  Sam Steingold  <sds@gnu.org>
15913
15914	* m4/general.m4 (CL_CHECK): extract from ...
15915	(CL_COMPILE_CHECK, CL_LINK_CHECK): use it
15916
159172008-05-29  Sam Steingold  <sds@gnu.org>
15918
15919	* modules/clx/new-clx/configure.in: add proper quoting;
15920	use AC_LINK_IFELSE instead of AC_TRY_LINK;
15921	use m4_define to avoid writing the same program twice
15922	* m4/rusage.m4 (CL_RUSAGE): use AC_RUN_IFELSE instead of AC_TRY_RUN
15923
159242008-05-29  Sam Steingold  <sds@gnu.org>
15925
15926	* m4/ln.m4 (CL_PROG_LN): use AC_CACHE_CHECK instead of
15927	AC_MSG_CHECKING + AC_CACHE_VAL + AC_MSG_RESULT
15928
159292008-05-29  Sam Steingold  <sds@gnu.org>
15930
15931	* m4/longdouble.m4: remove obsolete file
15932	* m4/fenv_default.m4, m4/floatparam.m4, m4/intparam.m4:
15933	assume 'long double' is supported,
15934	use AC_COMPILE_IFELSE instead of AC_TRY_COMPILE
15935
159362008-05-28  Sam Steingold  <sds@gnu.org>
15937
15938	* m4/sigsegv.m4: use AC_LINK_IFELSE instead of AC_TRY_LINK
15939
159402008-05-28  Sam Steingold  <sds@gnu.org>
15941
15942	* modules/clx/new-clx/clx.f (last-event-processed)
15943	(last-timestamp-processed) [USE_LIBXT]: add
15944
159452008-05-28  Sam Steingold  <sds@gnu.org>
15946
15947	* m4/isc-posix.m4: remove. The comment says:
15948	This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
15949
159502008-05-28  Sam Steingold  <sds@gnu.org>
15951
15952	fix bug#477: parameter confusion in new Gray Streams functions
15953	* gray.lisp (stream-read-sequence): fix argument order in
15954	stream-read-byte-sequence and stream-read-char-sequence
15955	and specify the default values for start and end
15956	(stream-write-sequence): fix argument order in
15957	stream-write-byte-sequence and stream-write-char-sequence
15958	and specify the default values for start and end
15959
159602008-05-27  Sam Steingold  <sds@gnu.org>
15961
15962	avoid obsolete macros
15963	* m4/c++.m4, m4/general.m4: use AC_LANG_PUSH/AC_LANG_POP
15964	instead of AC_LANG_SAVE/AC_LANG_RESTORE
15965	* m4/cc-ema.m4: use AC_PREPROC_IFELSE instead of AC_TRY_CPP
15966	* m4/c++.m4: use AC_RUN_IFELSE instead of AC_TRY_RUN and
15967	AC_LINK_IFELSE instead of AC_TRY_LINK, use AC_MSG_FAILURE
15968	* m4/general.m4 (CL_CPP_CHECK): remove unused macro
15969	(CL_CC_WORKS): use AC_MSG_FAILURE,
15970	use AC_RUN_IFELSE instead of AC_TRY_RUN
15971	use AC_LINK_IFELSE instead of AC_TRY_LINK
15972
159732008-05-27  Sam Steingold  <sds@gnu.org>
15974
15975	* eval.d (unused): undef before #include "lightning.c"
15976
159772008-05-26  Sam Steingold  <sds@gnu.org>
15978
15979	* floatparam.c, intparam.c: write to conftest.h or first arg, not stdout
15980	* m4/address.m4, m4/eloop.m4, m4/filecharset.m4, m4/param.m4:
15981	use AC_RUN_IFELSE instead of undocumented AC_TRY_EVAL(ac_link)
15982	* makemake.in (floatparam.h, intparam.h): update
15983
159842008-05-25  Sam Steingold  <sds@gnu.org>
15985
15986	* lispbibl.d (setjmp, longjmp) [HAVE__JMP]: on all autoconf platforms
15987	(UNIX & __MINGW32__), use _setjmp and _longjmp whenever they are present
15988
159892008-05-25  Sam Steingold  <sds@gnu.org>
15990
15991	* spvw_sigint.d (signal_handler_prepare_for_lisp): extract from
15992	react_on_sigint()
15993	(react_on_sigint): call it
15994	* spvw_sigterm.d (quit_on_signal): ditto
15995
159962008-05-25  Bruno Haible  <bruno@clisp.org>
15997
15998	* m4/signal.m4 (CL_SIGNALBLOCK): Remove macro.
15999	(CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_UNBLOCK):
16000	Assume POSIX signal-blocking.
16001	* unix.d (SIGNALBLOCK_POSIX): Define always.
16002	* spvw.d (main): Assume SIGNALBLOCK_POSIX on Unix.
16003	* spvw_sigint.d (react_on_sigint): Likewise.
16004	* spvw_sigsegv.d (stackoverflow_handler): Likewise.
16005	* configure.in (CL_SIGNALBLOCK): Remove invocation.
16006
160072008-05-25  Bruno Haible  <bruno@clisp.org>
16008
16009	* floatparam.c: Remove support for K&R C compilers.
16010	* intparam.c: Likewise.
16011
160122008-05-23  Sam Steingold  <sds@gnu.org>
16013
16014	fix bug#476: link.sh should respect $(MAKE)
16015	* makemake.in (base, full): set MAKE when calling clisp-link
16016	* modules/berkeley-db/link.sh.in, modules/bindings/glibc/link.sh:
16017	* modules/bindings/win32/link.sh, modules/clx/mit-clx/link.sh:
16018	* modules/clx/new-clx/link.sh.in, modules/dirkey/link.sh:
16019	* modules/fastcgi/link.sh, modules/gdbm/link.sh.in:
16020	* modules/gtk2/link.sh.in, modules/i18n/link.sh.in:
16021	* modules/libsvm/link.sh, modules/matlab/link.sh:
16022	* modules/netica/link.sh, modules/oracle/link.sh:
16023	* modules/pari/link.sh.in, modules/pcre/link.sh.in:
16024	* modules/postgresql/link.sh.in, modules/queens/link.sh:
16025	* modules/rawsock/link.sh.in, modules/readline/link.sh.in:
16026	* modules/regexp/link.sh.in, modules/syscalls/link.sh.in:
16027	* modules/wildcard/link.sh.in, modules/zlib/link.sh.in:
16028	use ${MAKE-make} instead of make
16029
160302008-05-22  Sam Steingold  <sds@gnu.org>
16031
16032	fix bug#470: segfault on SIGHUP
16033	* spvw_sigterm.d (quit_on_signal) [HAVE_SAVED_STACK]: restore STACK
16034
160352008-05-22  Sam Steingold  <sds@gnu.org>
16036
16037	* modules/regexp/configure.in: remove AM_GNU_GETTEXT([external])
16038	(why was it there in the first place?!)
16039
160402008-05-22  Sam Steingold  <sds@gnu.org>
16041
16042	* configure (--help-modules): more compact output,
16043	do not print anything for modules whose configure
16044	does not accept any --with.*prefix arguments
16045
160462008-05-21  Sam Steingold  <sds@gnu.org>
16047
16048	* modules/syscalls/calls.c (POSIX::RESOLVE-HOST-IPADDR):
16049	call sethostent() before the gethostent() iteration
16050
160512008-05-20  Sam Steingold  <sds@gnu.org>
16052
16053	* modules/syscalls/calls.c (FREOPEN): fix stack access
16054	include <fcntl.h> before DEFMODULE so that DEFCHECKERs work
16055	(pid_to_I, I_to_pid, uid_to_I, I_to_uid, gid_to_I, I_to_gid): POSIX
16056	specifies that pid_t is signed, assume that the others are signed too
16057	http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html
16058
160592008-05-20  Sam Steingold  <sds@gnu.org>
16060
16061	fix bug#474: invalid syntax in top-level configure
16062	* configure (passnext): support non-POSIX /bin/sh on Solaris
16063
160642008-05-19  Sam Steingold  <sds@gnu.org>
16065
16066	* modules/syscalls/calls.c: move DEFMODULE et al outside of the
16067	file locking conditional
16068
160692008-05-19  Sam Steingold  <sds@gnu.org>
16070
16071	* modules/syscalls/calls.c (%FGETC, %FPUTC, %UNGETC): add for testing
16072
160732008-05-19  Sam Steingold  <sds@gnu.org>
16074
16075	* lispbibl.d (mark_fp_valid): export to clisp.h
16076	* modules/syscalls/calls.c (%STDIO, my_stdin, my_stdout)
16077	(my_stderr, init_stdio) [HAVE_FFI]: add
16078	(module__syscalls__init_function_2) [HAVE_FFI]: call init_stdio()
16079	* modules/syscalls/posix.lisp (stdin, stdout, stderr) [FFI]: defconstant
16080
160812008-05-19  Sam Steingold  <sds@gnu.org>
16082
16083	* modules/syscalls/calls.c (FREOPEN): implement
16084	* modules/syscalls/posix.lisp (freopen): export
16085
160862008-05-18  Sam Steingold  <sds@gnu.org>
16087
16088	fix bug#473: no tgamma on solaris
16089	* modules/syscalls/posix.lisp (tgamma): if tgamma is not defined,
16090	define it using lgamma
16091	* modules/syscalls/calls.c (tgamma) check HAVE_TGAMMA
16092
160932008-05-16  Sam Steingold  <sds@gnu.org>
16094
16095	* Makefile.devel (upload-sunsite): remove target
16096	* clisp.lsm: remove file
16097
160982008-05-16  Sam Steingold  <sds@gnu.org>
16099
16100	* Makefile.devel (upload-sf): use rsync instead of ftp because of
16101	the change in the SF FRS (File Release System)
16102
161032008-05-15  Sam Steingold  <sds@gnu.org>
16104
16105	* configure: do not pass --with-module to subdir configures
16106	(starting with autoconf 2.62 this results in warnings)
16107
161082008-05-15  Sam Steingold  <sds@gnu.org>
16109
16110	* version.sh: 2.46 (2008-07-07) [+ gnulib-imported build-aux-update]
16111
161122008-05-15  Sam Steingold  <sds@gnu.org>
16113
16114	* Makefile.devel (fixperms): also fix web pages permissions
16115	* utils/fix-perms.sh: accept command line argument ROOT
16116
161172008-05-15  Reini Urban  <rurban@x-ray.at>
16118
16119	* modules/clx/new-clx/clx.f [__CYGWIN__]: include <X11/Xwindows.h>
16120	first thing to avoid conflicts with INT32,BOOL defined in
16121	<windows.h> included from clisp.h
16122
161232008-05-15  Sam Steingold  <sds@gnu.org>
16124
16125	* Makefile.devel (doc-distrib): exclude *~ and .#*
16126
161272008-05-15  Sam Steingold  <sds@gnu.org>
16128
16129	* 2.45 tagged and released
16130
161312008-05-14  Sam Steingold  <sds@gnu.org>
16132
16133	* modules/syscalls/calls.c (GETPPID): implement
16134	* modules/syscalls/posix.lisp (getppid): export
16135	* modules/syscalls/configure.in (getppid): test
16136
161372008-05-13  Bruno Haible  <bruno@clisp.org>
16138
16139	* m4/pkg.m4: New file, from pkg-config-0.23.
16140
161412008-05-13  Bruno Haible  <bruno@clisp.org>
16142
16143	* m4/bold.m4 (BOLD_MSG): Fix underquoting.
16144
161452008-05-13  Sam Steingold  <sds@gnu.org>
16146
16147	* modules/syscalls/calls.c (SETREUID, SETREGID, TGAMMA): implement
16148	* modules/syscalls/configure.in (setreuid, setregid, tgamma): check
16149	(signgam): fix test
16150	* modules/syscalls/posix.lisp (setreuid, setregid, tgamma): export
16151
161522008-05-13  Sam Steingold  <sds@gnu.org>
16153
16154	* modules/syscalls/calls.c (USER-INFO): use I_to_uid instead of
16155	I_to_uint32; when getlogin() fails, signal an error instead of
16156	defaulting to getuid()
16157
161582008-05-12  Bruno Haible  <bruno@clisp.org>
16159
16160	Clear spurious error messages on MacOS X 10.5.
16161	* m4/address.m4 (CL_ADDRESS_RANGE): Remove conftest.dSYM directory
16162	before conftest* files.
16163	* m4/eloop.m4 (CL_ELOOP): Likewise.
16164	* m4/filecharset.m4 (CL_FILECHARSET): Likewise.
16165	* m4/param.m4 (CL_MACHINE): Likewise.
16166
161672008-05-12  Sam Steingold  <sds@gnu.org>
16168
16169	* Makefile.devel (tp-mail): put clisp version into the subject line
16170
161712008-05-12  Sam Steingold  <sds@gnu.org>
16172
16173	* foreign.d (convert_to_foreign): accept Fpointer as a C-POINTER
16174	so that POSIX:FOPEN value can actually be used by FFI
16175
161762008-05-11  Sam Steingold  <sds@gnu.org>
16177
16178	* comptran.d (N_log_abs_R): fix a GC-safety bug (R_R_comp -
16179	comparison! - turned out to maygc)
16180
161812008-05-10  Sam Steingold  <sds@gnu.org>
16182
16183	fix bug#472: Hang on read-char-no-hang
16184	* stream.d (listen_char_buffered): when the next byte is '\n' and
16185	ChannelStream_ignore_next_LF is true, discard it and retry
16186
161872008-05-10  Sam Steingold  <sds@gnu.org>
16188
16189	* clos-genfun4.lisp (no-next-method): signal
16190	SYS::SIMPLE-PROGRAM-ERROR instead of PROGRAM-ERROR because only
16191	the former accepts :FORMAT-CONTROL & :FORMAT-ARGUMENTS
16192
161932008-05-10  Sam Steingold  <sds@gnu.org>
16194
16195	* modules/clx/new-clx/configure.in: when testing for
16196	XauGetAuthByAddr, must #include <X11/Xauth.h> for g++
16197
161982008-05-09  Sam Steingold  <sds@gnu.org>
16199
16200	* describe.lisp (clisp-data-file): put the error message through i18n
16201
162022008-05-09  Sam Steingold  <sds@gnu.org>
16203
16204	* condition.lisp (coerce-to-condition): use ERROR instead of
16205	SIGNAL to report TYPE-ERROR so that COERCE-TO-CONDITION never
16206	returns NIL <http://article.gmane.org/gmane.lisp.clisp.general/12208>
16207	<https://sourceforge.net/p/clisp/mailman/message/19306529/>
16208
162092008-05-09  Sam Steingold  <sds@gnu.org>
16210
16211	* trace.lisp (trace, untrace): turn comments into doc strings
16212
162132008-05-08  Sam Steingold  <sds@gnu.org>
16214
16215	* modules/syscalls/configure.in: check size of pid_t
16216	* modules/syscalls/calls.c (GETTER, SETTER): move up in file
16217	(pid_to_I, I_to_pid): define based on SIZEOF_PID_T
16218	(GETSID, SETPGRP, SETPGID, KILL): use the above
16219	(GETTER1): add
16220	(GETSID): use it
16221	(SETPGID): replace with POSIX::%SETPGID
16222	(GETPGID): add
16223	* modules/syscalls/posix.lisp (GETPGID): add DEFSETF
16224
162252008-05-07  Sam Steingold  <sds@gnu.org>
16226
16227	* version.sh: 2.45 (2008-05-15)
16228
162292008-05-07  Sam Steingold  <sds@gnu.org>
16230
16231	* m4/ffcall.m4 (CL_FFCALL): suggest passing --host=... to the
16232	FFCALL configure if $ac_cv_build != $ac_cv_host
16233
162342008-05-07  Sam Steingold  <sds@gnu.org>
16235
16236	* configure: accept --cbc to mean Configure/Build/Check and
16237	--build to mean the build host (the usual autoconf meaning)
16238	* makemake.in: rely on configure for cross-compilation too
16239	(EXTRAOBJ) [CROSS]: add gllib/malloc
16240
162412008-05-07  Sam Steingold  <sds@gnu.org>
16242
16243	* makemake.in (MYIMPROOT): use beta pages for the latest id-href.map
16244	(check-doc): use base, not boot, for better symbol coverage
16245
162462008-05-07  Sam Steingold  <sds@gnu.org>
16247
16248	* describe.lisp (describe-object@symbol) [FFI]:
16249	print foreign type information
16250
162512008-05-07  Sam Steingold  <sds@gnu.org>
16252
16253	* makemake.in (encflags): ' -E UTF-8 -Epathname 1:1':
16254	UTF-8 for files, terminal, wildcard test
16255	1:1 for pathname
16256
162572008-05-07  Reini Urban  <rurban@x-ray.at>
16258
16259	* modules/syscalls/calls.c (FMTID_SummaryInformation)
16260	(FMTID_UserDefinedProperties): enable also on UNIX_CYGWIN32
16261
162622008-05-07  Sam Steingold  <sds@gnu.org>
16263
16264	fix bug#471: Allow ending http_proxy with a slash
16265	* clhs.lisp (http-proxy): handle the trailing slash
16266
162672008-05-07  Reini Urban  <rurban@x-ray.at>
16268
16269	* modules/syscalls/calls.c (FILE_FUNCTION, CLEARERR): fix g++ and
16270	cygwin compilation by casting the pointers to (FILE*)
16271
162722008-05-06  Bruno Haible  <bruno@clisp.org>
16273
16274	* clos-specializer2.lisp (reinitialize-instance@specializer): Change
16275	error message.
16276
162772008-05-06  Sam Steingold  <sds@gnu.org>
16278
16279	* modules/syscalls/calls.c (FFLUSH): add
16280	* modules/syscalls/posix.lisp (fflush): export
16281	(FILENO, FEOF, FERROR, FCLOSE): check return values
16282
162832008-05-06  Sam Steingold  <sds@gnu.org>
16284
16285	* clos-class3.lisp, clos-genfun3.lisp, clos-methcomb2.lisp,
16286	* describe.lisp, foreign1.lisp, reploop.lisp:
16287	various small i18n message fixes
16288
162892008-05-05  Sam Steingold  <sds@gnu.org>
16290
16291	* clos-genfun3.lisp (analyze-defgeneric): do not pass through
16292	gettext messages which contain no text, just format directives
16293	* clos-method2.lisp (program-error-reporter)
16294	(analyze-method-description): ditto
16295
162962008-05-05  Sam Steingold  <sds@gnu.org>
16297
16298	* format.lisp (format-not-both-error): replaces format-conditional-error
16299	(format-parse-cs, format-conditional, formatter-main-1): use it
16300
163012008-05-05  Sam Steingold  <sds@gnu.org>
16302
16303	* clos-slotdef1.lisp, compiler.lisp, lambdalist.lisp, trace.lisp:
16304	* clos-method1.lisp, clos-methcomb2.lisp: more uniform i18n messages
16305
163062008-05-03  Sam Steingold  <sds@gnu.org>
16307
16308	* foreign.d (check_fvar_alignment): add
16309	(FOREIGN-VARIABLE, %OFFSET, FOREIGN-ALLOCATE): use it
16310
163112008-05-03  Sam Steingold  <sds@gnu.org>
16312
16313	* charstrg.d, compiler.lisp, debug.d, defmacro.lisp, error.d:
16314	* funarg.d, record.d, sequence.d: tweak i18n messages
16315
163162008-05-02  Sam Steingold  <sds@gnu.org>
16317
16318	* defs2.lisp (dispatch-reader): fix message
16319	* io.d (read_macro): ditto
16320	* pathname.d (SYS::LIB-DIRECTORY): ditto
16321
163222008-05-01  Sam Steingold  <sds@gnu.org>
16323
16324	* utils/fix-perms.sh: *.xsl & *.css are not executable
16325
163262008-05-01  Sam Steingold  <sds@gnu.org>
16327
16328	* macros1.lisp (*suppress-similar-constant-redefinition-warning*):
16329	new user variable
16330	(defconstant): pass ,initial-var to constant-warning
16331	(constant-warning): accept 3rd variable and respect
16332	*suppress-similar-constant-redefinition-warning*
16333	* constobj.d (version): bump, because constant-warning is ABI
16334
163352008-04-30  Sam Steingold  <sds@gnu.org>
16336
16337	fix bug#456: (format nil "~8e" .999999d0) => " 10.0d-1"
16338	* format.lisp (format-float-for-e): when format-float-to-string
16339	rounds up above 1, adjust everything
16340
163412008-04-23  Sam Steingold  <sds@gnu.org>
16342
16343	* fill-out.lisp (stream-start-s-expression@t): return
16344	*PRINT-RIGHT-MARGIN*, just like in format.lisp
16345
163462008-04-23  Sam Steingold  <sds@gnu.org>
16347
16348	* spvw_language.d (clisp_gettext): the common part of ...
16349	(clgettext, clgettextl): use it
16350
163512008-04-23  Sam Steingold  <sds@gnu.org>
16352
16353	* clhs.lisp (documentation@symbol@impnotes): look into impnotes
16354	for CUSTOM symbols too, so that (documentation 'impnotes-root
16355	'sys::impnotes) works
16356
163572008-04-23  Sam Steingold  <sds@gnu.org>
16358
16359	followup to the 2008-04-08 patch which broke log for very small numbers
16360	* comptran.d (N_log_abs_R): avoid the log(1 + (x^2 + y^2 - 1))
16361	trick for small numbers
16362	* realtran.d (ln2_F_float_F): use F_lnx1_F instead of F_lnx_F
16363	(F_lnx_F): move most of the calculation from R_ln1_R here
16364	(R_ln1_R): use either F_lnx1_F (small arg) or F_lnx_F (others)
16365	(R_ln_R): do not call R_ln1_R, call F_lnx_F directly
16366
163672008-04-22  Sam Steingold  <sds@gnu.org>
16368
16369	* makemake.in (installdirs, install-bin, uninstall): pass DESTDIR
16370	to make in po
16371	* po/Makefile.in.in (install-data-yes, installdirs): respect DESTDIR
16372	* configure: do not try to link po twice
16373
163742008-04-22  Sam Steingold  <sds@gnu.org>
16375
16376	* arilev1.d, hashtabl.d, lisparit.d, lispbibl.d, misc.d:
16377	* pathname.d, spvw.d, spvw_garcol.d, spvw_memfile.d, time.d, unix.d:
16378	* xthread.d, modules/berkeley-db/bdb.c:
16379	"#error" does not need quotes around the message
16380
163812008-04-17  Sam Steingold  <sds@gnu.org>
16382
16383	simplify support for FFI modules which want to use stdio.h
16384	* lispbibl.d (HAVE_FFI): export to clisp.h
16385	* foreign.d (init_ffi): register size_t and ssize_t
16386	* foreign1.lisp (size_t, ssize_t, FILE): add types
16387	* modules/bindings/glibc/linux.lisp (size_t, ssize_t): do not redefine
16388	* modules/pari/pari.lisp (allocatemoremem): use size_t
16389	* modules/postgresql/postgresql.lisp (size_t): do not redefine
16390	(PQtrace, PQprint, PQdisplayTuples, PQprintTuples):
16391	use FILE instead of c-pointer
16392	* modules/syscalls/calls.c (fopen, fdopen, fclose)
16393	(clearerr, feof, ferror, fileno) [HAVE_FFI]: implement
16394	* modules/syscalls/posix.lisp (fopen, fdopen, fclose)
16395	(clearerr, feof, ferror, fileno) [FFI]: export
16396
163972008-04-17  Sam Steingold  <sds@gnu.org>
16398
16399	* modules/bindings/glibc/linux.lisp (FILE): define to c-pointer,
16400	use for all FILE functions instead of c-pointer
16401
164022008-04-17  Sam Steingold  <sds@gnu.org>
16403
16404	* modules/postgresql/postgresql.lisp: sync with libpq-fe.h 1.141 (8.3)
16405	(PQconnectionNeedsPassword, PQconnectionUsedPassword, PQisthreadsafe)
16406	(PQnparams, PQparamtype, PQdescribePrepared, PQdescribePortal)
16407	(PQsendDescribePrepared, PQsendDescribePortal, PQescapeStringConn)
16408	(PQescapeByteaConn, lo_create, lo_truncate, PQencryptPassword)
16409	(pg_char_to_encoding, pg_encoding_to_char) [commented out for 8.1.4]
16410	(pg_valid_server_encoding_id): add
16411	sync with postgres_ext.h 1.17 (8.3)
16412	(PG_DIAG_SEVERITY, PG_DIAG_SQLSTATE, PG_DIAG_MESSAGE_PRIMARY)
16413	(PG_DIAG_MESSAGE_DETAIL, PG_DIAG_MESSAGE_HINT)
16414	(PG_DIAG_STATEMENT_POSITION, PG_DIAG_INTERNAL_POSITION)
16415	(PG_DIAG_INTERNAL_QUERY, PG_DIAG_CONTEXT, PG_DIAG_SOURCE_FILE)
16416	(PG_DIAG_SOURCE_LINE, PG_DIAG_SOURCE_FUNCTION): add
16417	* modules/postgresql/configure.in: check for the new functions
16418
164192008-04-16  Sam Steingold  <sds@gnu.org>
16420
16421	* debug.d (read_form): pass the remainder of the input line to the
16422	command function
16423	* reploop.lisp (debug-reset-io, debug-help, debug-unwind, debug-quit)
16424	(debug-mode, debug-where, debug-up, debug-top, debug-down, bottom)
16425	(debug-frame-limit, debug-backtrace, debug-trap-on, debug-trap-off)
16426	(debug-redo, return, debug-continue, debug-print-error)
16427	(debug-inspect-error): accept the argline argument
16428	(debug-mode-[12345], get-frame-limit, debug-backtrace-[12345]): remove
16429	(wrap-user-commands): pass argline to user function
16430	(commands1, commands4): update
16431	(break-loop): pass argline to the restart caller
16432
164332008-04-16  Sam Steingold  <sds@gnu.org>
16434
16435	* reploop.lisp (break-loop): bind *saved-debug-package* &
16436	*saved-debug-readtable* so that only that binding is modified by
16437	debug-reset-io, not the global sane values
16438
164392008-04-14  Sam Steingold  <sds@gnu.org>
16440
16441	* modules/dirkey/dirkey1.lisp: do not re-export LDAP functions from EXT
16442
164432008-04-14  Sam Steingold  <sds@gnu.org>
16444
16445	fix bug#467: (coerce 1 '(double-float 0d0)) fails
16446	* predtype.d (COERCE): when result_type is a list, pass its CAR to
16447	coerce_float() instead of the whole list
16448
164492008-04-14  Sam Steingold  <sds@gnu.org>
16450
16451	* stream.d (sec_usec_number): usec should be _divided_ by 1000000,
16452	not multiplied by it
16453	* modules/syscalls/calls.c (rusage_to_lisp): add,
16454	use sec_usec_number() instead of C arithmetics
16455	(USAGE): use it instead of GETRU
16456
164572008-04-09  Sam Steingold  <sds@gnu.org>
16458
16459	* lispbibl.d: g++ 4.2.* and 4.3.0 are not supported due to g++ bug 35708
16460
164612008-04-08  Sam Steingold  <sds@gnu.org>
16462
16463	fix bug#463: log(complex) sometimes inaccurate
16464	* comptran.d (R_R_norm2_1_R): new function
16465	(N_log_abs_R): use it together with R_ln1_R
16466	* realtran.d (F_lnx1_F): converted from F_lnx_F to accept y=x-1
16467	(F_lnx_F): use F_lnx1_F
16468	(R_ln1_R): converted from R_ln_R to accept y=x-1
16469	(R_ln_R): use R_ln1_R
16470
164712008-04-07  Sam Steingold  <sds@gnu.org>
16472
16473	partially fix bug#463: log(complex) sometimes inaccurate
16474	* comptran.d (N_log_abs_R): new function: compute (log (abs z))
16475	without using hypot, thus avoiding a square root
16476	(N_log_N, N_N_log_N): use it
16477
164782008-04-06  Sam Steingold  <sds@gnu.org>
16479
16480	fix bug#465: COMPILE discards MACRO doc strings
16481	* compiler.lisp (generatedp): handle lambda lists from macroexpanders
16482
164832008-04-06  Sam Steingold  <sds@gnu.org>
16484
16485	* describe.lisp (describe-object): update slot access of
16486	FOREIGN-VARIABLE and FOREIGN-FUNCTION for the fv_version/ff_version
16487	* documentation.lisp (set-function-documentation): ff_properties is 6
16488	* foreign1.lisp (foreign-function-in-arg-count): ff_argtypes is 4
16489
164902008-04-03  Sam Steingold  <sds@gnu.org>
16491
16492	* lisparit.d, intprint.d (UDS_to_DIGITS): rename to UDS_to_digits
16493	(DIGITS): rename to digits_t
16494	(power_table_entry): rename to power_table_entry_t
16495
164962008-04-03  Sam Steingold  <sds@gnu.org>
16497
16498	fix bug#419: float format directive ~ve prints spurious digits
16499	* lisparit.d (FLOAT-SCALE-EXPONENT): implement
16500	* constsym.d, subr.d (float_scale_exponent): declare
16501	* format.lisp (format-scale-exponent-aux, format-scale-exponent): remove
16502	(format-float-for-e, format-general-float): use
16503	FLOAT-SCALE-EXPONENT instead of FORMAT-SCALE-EXPONENT
16504
165052008-04-02  Sam Steingold  <sds@gnu.org>
16506
16507	fix bug#455: BIGNUM failure
16508	* intread.d (DIGITS_to_I): drop leading 0s; be extra permissive in the
16509	initial length check, but perform an overflow check on each erg_len
16510	increment
16511
165122008-04-02  Sam Steingold  <sds@gnu.org>
16513
16514	* makemake.in (interpreted.mem, halfcompiled.mem): work around an
16515	msys "feature": ":" after "/" is converted to a ";"
16516
165172008-04-02  Vladimir Volovich  <vvv2@users.sourceforge.net>
16518	Sam Steingold  <sds@gnu.org>
16519
16520	* makemake.in: quote arguments of "test -n" (fix bug#462)
16521
165222008-04-01  Sam Steingold  <sds@gnu.org>
16523
16524	fix bug#460: cross-compile mode tries to execute intparam
16525	* makemake.in (PARAMS) [CROSS]: use touch, not executables, for
16526	intparam and floatparam because the constants are defined in config.h
16527	(UTILCC) [CROSS]: define to cc instead of $(CC) because the
16528	utilities (gctrigger et al) must run locally
16529
165302008-04-01  Sam Steingold  <sds@gnu.org>
16531
16532	fix bug#461: new-clx QUERY-COLORS wants colors not pixels
16533	* modules/clx/new-clx/clx.f (XLIB:QUERY-COLORS): expect pixel sequence
16534	(coerce_into_color): just fill pixels
16535
165362008-03-31  Sam Steingold  <sds@gnu.org>
16537
16538	fix bug#459: m4:CL_INTPARAM_ALIGNOF loops infinitely when
16539	cross-compiling
16540	* m4/intparam.m4 (CL_INTPARAM_ALIGNOF): require CL_OFFSETOF and
16541	include <stddef.h> so that offsetof is defined
16542	(CL_INTPARAM_CROSS): disable [void (*)(void)] because compilation
16543	fails, while the results are never used
16544
165452008-03-30  Sam Steingold  <sds@gnu.org>
16546
16547	fix bug#458: cosmetic informational message fix
16548	* m4/param.m4: set cl_machine_file_h before the cross_compiling test
16549	so that it is defined in both branches
16550
165512008-03-30  Sam Steingold  <sds@gnu.org>
16552
16553	* modules/syscalls/calls.c (GETGROUPS, %SETGROUPS): implement
16554	* modules/syscalls/posix.lisp (GETGROUPS): export, add DEFSETF
16555	* modules/syscalls/configure.in: check for getgroups and setgroups
16556	* lispbibl.d (llength1): export to clisp.h
16557
165582008-03-29  Sam Steingold  <sds@gnu.org>
16559
16560	fix bug#457: missing quotes in shell code for test invocation
16561	* m4/intparam.m4: use ac_cv_type_long_long_int
16562	instead of the obsolete ac_cv_type_long_long
16563
165642008-03-28  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>
16565	Sam Steingold  <sds@gnu.org>
16566
16567	* spvw_gcmark.d (down_sxrecord) [USE_JITC]: when gc_drop_jitc,
16568	replace cclosure_jitc with NIL
16569
165702008-03-27  Sam Steingold  <sds@gnu.org>
16571
16572	fix bug#407: TANH floating point overflow for large floats
16573	* realtran.d (posF_tanh_posF): new function: 1-exp(-2x)/1+exp(-2x)
16574	(R_tanh_R): use it instead of R_cosh_sinh_R_R when |x|>=1
16575
165762008-03-25  Sam Steingold  <sds@gnu.org>
16577
16578	* array.d, control.d, debug.d, eval.d, execname.c, hashtabl.d:
16579	* io.d, lisparit.d, lispbibl.d, list.d, package.d, pathname.d:
16580	* predtype.d, record.d, sequence.d, spvw.d, spvw_circ.d:
16581	* spvw_debug.d, spvw_garcol.d, spvw_language.d, spvw_memfile.d:
16582	* stream.d, weak.d: add extra braces to work around the g++ 4.2
16583	error "jump to label ... crosses initialization of ..."
16584
165852008-03-25  Sam Steingold  <sds@gnu.org>
16586
16587	* m4/cc-sunpro.m4: new file, define CL_CC_SUNPRO
16588	* configure.in: call CL_CC_SUNPRO
16589	* makemake.in: use CC_SUNPRO, set by CL_CC_SUNPRO, to detect
16590	SUN SUNWspro C compiler (instead of "$CC -flags")
16591	Reported by Vladimir Volovich <vvv2@users.sourceforge.net>
16592
165932008-03-25  Sam Steingold  <sds@gnu.org>
16594
16595	fix bug#448: cannot find gllib include
16596	* makemake.in (CPPFLAGS): pass -Igllib here, not CFLAGS
16597
165982008-03-24  Vladimir Volovich  <vvv2@users.sourceforge.net>
16599	Sam Steingold  <sds@gnu.org>
16600
16601	fix bug#450: undefined symbol getSP when linking lisp.run
16602	on Sparc Solaris 2.8 using Sun Studio 11
16603	* spsparc.d, spsparc64.d: add global getSP
16604
166052008-03-24  Sam Steingold  <sds@gnu.org>
16606
16607	fix bug#449: void function cannot return value
16608	* foreign.d (convert_to_foreign): "return void" does not work on
16609	Solaris 2.8
16610
166112008-03-24  Sam Steingold  <sds@gnu.org>
16612
16613	* lispbibl.d (NULL): #undef before defining
16614	to avoid "warning: macro redefined: NULL"
16615
166162008-03-24  Sam Steingold  <sds@gnu.org>
16617
16618	* gray.lisp (stream-read-sequence): define methods for
16619	fundamental-binary-input-stream & fundamental-character-input-stream
16620	(stream-write-sequence): define methods for
16621	fundamental-binary-output-stream & fundamental-character-output-stream
16622
166232008-03-23  Sam Steingold  <sds@gnu.org>
16624
16625	implement GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE
16626	* defs2.lisp (%read-sequence): rename from READ-SEQUENCE
16627	(read-sequence): call it or GRAY::STREAM-READ-SEQUENCE
16628	(%write-sequence): rename from WRITE-SEQUENCE
16629	(write-sequence): call it or GRAY::STREAM-WRITE-SEQUENCE
16630	* gray.lisp (stream-read-sequence, stream-write-sequence): implement
16631	Suggested by Anton Vodonosov <avodonosov@yandex.ru>.
16632
166332008-03-21  Sam Steingold  <sds@gnu.org>
16634
16635	* lispbibl.d, debug.d (gdb_show_stack): rename from ext_show_stack
16636	* lispbibl.d (gdb_disassemble_closure): add protorype
16637	* debug.d (gdb_disassemble_closure): implement
16638	* constsym.d (disassemble_closures): add
16639
166402008-03-21  Sam Steingold  <sds@gnu.org>
16641
16642	* eval.d (cclosure_run) [USE_JITC]: new local inline
16643	(interpret_bytecode) [USE_JITC]: use it instead of explicit code
16644	* lightning.c: use it instead of interpret_bytecode_()
16645
166462008-03-19  Sam Steingold  <sds@gnu.org>
16647
16648	* makemake.in (XCFLAGS) [XCC_GCC]: add -falign-functions=4 on all
16649	CPUs - it cannot hurt and is required at least on AMD64
16650
166512008-03-18  Sam Steingold  <sds@gnu.org>
16652
16653	* lightning.c: use jit_movi_p instead of jit_movi_l for pointers
16654	to avoid "warning: cast from pointer to integer of different size"
16655
166562008-03-18  Sam Steingold  <sds@gnu.org>
16657
16658	* stream.d (push_ch): extract from read_line
16659	(read_line): use it
16660	* spvw_debug (nobject_out1): handle arrays
16661
166622008-03-18  Sam Steingold  <sds@gnu.org>
16663
16664	* makemake.in, lispbibl.d: USE_JITC requires HEAPCODES
16665
166662008-03-18  Drutsa Pavel  <rawlik@users.sourceforge.net>
16667
16668	fix bug: new-clx:gcontext-clip-mask does not set rectangles
16669	* modules/clx/new-clx/clx.f (XLIB:SET-GCONTEXT-CLIP-MASK): do not
16670	divide n by 4 when passing to XSetClipRectangles - it has already
16671	been done by get_seq_len()
16672
166732008-03-17  Sam Steingold  <sds@gnu.org>
16674
16675	* lightning.c (jit_compile_): restore the semantics of byteptr_min
16676	as in interpret_bytecode_() (fixes --with-debug compilation)
16677
166782008-03-17  Sam Steingold  <sds@gnu.org>
16679
16680	drop JITC objects before saving memory
16681	* debug.d (GC): accept optional argument to invalidate JITC objects;
16682	return 3 values (same as %ROOM)
16683	* subr.d (gc): update declaration
16684	* lightning.c (gc_drop_jitc): add variable
16685	* spvw_garcol.d (gar_col): accept level argument to invalidate
16686	JITC objects (when 1, set gc_drop_jitc to true)
16687	* lispbibl.d (gar_col): update prototype
16688	(gc_drop_jitc) [USE_JITC]: declare extern
16689	* pathname.d (SAVEMEM): pass 1 to gar_col()
16690	* spvw_memfile.d (savemem): pass 1 to gar_col()
16691	* spvw_allocate.d (make_space_gc, make_space_gc_true)
16692	(make_space_gc_false): pass 0 to gar_col()
16693	* spvw_gcmark.d (down_cclosure) [USE_JITC]: do not mark JITC when
16694	gc_drop_jitc is true
16695
166962008-03-17  Sam Steingold  <sds@gnu.org>
16697
16698	* foreign1.lisp (DEF-C-CONST): pass NIL as version to
16699	FIND-FOREIGN-FUNCTION (finish patch#26)
16700	* foreign.d (foreign_library_check): when version is non-NIL,
16701	coerce it to simple-string
16702	* documentation.lisp (function-documentation): foreign-function
16703	properties are now in slot 6
16704
167052008-03-17  Sam Steingold  <sds@gnu.org>
16706
16707	* spvw_gcmark.d (down_cclosure) [USE_JITC]: check that the
16708	cclosure has been already JIT-compiled before gc_mark_jitc_object()
16709	Reported by Yann Dauphin <yann-nicolas.dauphin@polymtl.ca>
16710	* lightning.c (next_byte) [FAST_DISPATCH]: undefine to avoid
16711	error: 'cod_labels' undeclared
16712
167132008-03-16  Sam Steingold  <sds@gnu.org>
16714
16715	* lightning.c (DEBUG_CHECK_BYTEPTR): do not redefine
16716	(jitc_jmp_cons_): replace with struct jitc_insn_list in a more C style
16717	* makemake.in [with_jitc=lightning]: compile eval.c with -Wno-unused
16718	* .gdbinit (build-id-verbose): do not set (not needed
16719	since gdb-6.6-45.fc8)
16720
167212008-03-13  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>
16722
16723	* eval.d, lightning.c: cleanup: avoid using Lisp objects with malloc,
16724	use jitc_ prefix for macros defined in CLISP to separate from the
16725	system code
16726
167272008-03-15  Sam Steingold  <sds@gnu.org>
16728
16729	patch#26: dlvsym support in FFI
16730	* lispbibl.d (Fvariable): add field fv_version
16731	(Ffunction): add field ff_version
16732	* io.d (pr_orecord): print foreign variable and function version
16733	* foreign.d (error_version_nonlibrary, find_name_version): add
16734	(foreign_library_variable, FIND-FOREIGN-VARIABLE)
16735	(foreign_library_function, FIND-FOREIGN-FUNCTION)
16736	(object_handle, object_address, foreign_library_check): accept VERSION
16737	(update_library): handle versioned objects
16738	* foreign1.lisp (def-call-out, def-c-var): accept :VERSION
16739	* subr.d (find_foreign_variable): accept 5 arguments
16740	(find_foreign_function): accept 6 arguments
16741	* m4/dynload.m4 (CL_DYNLOAD): check for dlvsym
16742	Suggested by Kaz Kylheku <kkylheku@gmail.com>.
16743
167442008-03-14  Sam Steingold  <sds@gnu.org>
16745
16746	* m4/ffcall.m4 (CL_FFCALL): do not nest AC_CACHE_CHECK
16747
167482008-03-13  Sam Steingold  <sds@gnu.org>
16749
16750	* m4/ffcall.m4 (CL_FFCALL): reinstate AC_CACHE_CHECK,
16751	restore LIBS after a failed test
16752
167532008-03-12  Sam Steingold  <sds@gnu.org>
16754
16755	* glm4/lib-link.m4: update from gnulib, discarding my changes
16756	* m4/ffcall.m4 (CL_FFCALL): update for the new AC_LIB_LINKFLAGS
16757
167582008-03-12  Sam Steingold  <sds@gnu.org>
16759
16760	* foreign.d (FOREIGN-POINTER-INFO): add interface to dladdr()
16761	* constsym.d, subr.d (foreign_pointer_info): declare
16762	* m4/dynload.m4 (CL_DYNLOAD): check for dladdr()
16763	* foreign1.lisp (FOREIGN-POINTER-INFO): export
16764
167652008-03-12  Sam Steingold  <sds@gnu.org>
16766
16767	* makemake.in (clean4): also remove ${SUBDIRS} (gllib)
16768
167692008-03-12  Sam Steingold  <sds@gnu.org>
16770
16771	* modules/clx/new-clx/configure.in: fix last patch: cannot nest
16772	AC_TRY_LINK; fail if XauGetAuthByAddr was not found
16773	also define HAVE_XGETATOMNAMES when XGetAtomNames is present (4y late!)
16774
167752008-03-12  Reini Urban  <rurban@x-ray.at>
16776
16777	* modules/clx/new-clx/configure.in: explicit check for -lXau,
16778	needed at least for cygwin
16779
167802008-03-11  Sam Steingold  <sds@gnu.org>
16781
16782	* Makefile.devel (TAGS, tags): new targets
16783
167842008-03-11  Sam Steingold  <sds@gnu.org>
16785
16786	* version.sh: 2.45 (2008-04-04)
16787
167882008-03-11  Sam Steingold  <sds@gnu.org>
16789
16790	keep in our cvs some externally maintained files - because
16791	requiring ./autogen.sh after cvs co is outrageous
16792	* autogen.sh: remove
16793	* Makefile.devel (build-aux-update): update ltmain.sh,
16794	libtool.m4 (from libtool 2.2) and gtk-2.0.m4 (from gtk2 svn) here
16795	(gnulib-imported): decouple from build-aux-update
16796
167972008-03-10  Sam Steingold  <sds@gnu.org>
16798
16799	* compiler.lisp (c-form-table): SORT & STABLE-SORT -> c-SORT
16800	(c-SORT): new function (check arg order, map STABLE-SORT to SORT)
16801	* eval.d (FUNTAB): remove stable_sort, add symbol_macro_expand
16802	* constobj.d (version): bump
16803
168042008-03-10  Sam Steingold  <sds@gnu.org>
16805
16806	thread safety: remove static variables
16807	* pathname.d (struct file_status): new struct type
16808	(file_status_init): new function
16809	(assure_dir_exists): accept a pointer to struct file_status
16810	instead of using STACK_0; return the value in struct file_status
16811	(assume_dir_exists): remove
16812	(file_exists): use struct file_status instead of a global static
16813	(true_namestring): accept struct file_status, do not modify STACK
16814	(TRUENAME, PROBE-FILE, DELETE-FILE, rename_file, open_file, CD)
16815	(FILE-WRITE-DATE, EXECUTE): update true_namestring invocations
16816	(open_input_file, with_stat_info_computed): accept struct file_status
16817	(get_time_size): accept pathname directly without STACK
16818	(with_stat_info): remove
16819	(with_stat_info_arg): rename to with_stat_info
16820	(directory_search_scandir, directory_search, shorter_directory):
16821	update the assure_dir_exists invocations
16822
168232008-03-09  Sam Steingold  <sds@gnu.org>
16824
16825	* pathname.d (assure_dir_exists) [WIN32_NATIVE]:
16826	move some code outside of with_sstring_0()
16827	(assume_dir_exists): local, not global
16828	* lispbibl.d (assume_dir_exists): remove prototype
16829	* stream.d (finish_output_buffered): remove "#if 0" code which used
16830	assume_dir_exists()
16831
168322008-03-06  Sam Steingold  <sds@gnu.org>
16833
16834	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): treat SYS::%UNBOUND using ...
16835	(function-code-list): SYS::%UNBOUND --> ((PUSH-UNBOUND 1) (POP))
16836	* clos-class6.lisp, clos-genfun1.lisp, clos-method1.lisp:
16837	pass (SYS::%UNBOUND) as the first argument to EQ so save one
16838	bytecode instruction (since this involves an internal CLISP
16839	function, it does not warrant a general optimization in c-EQ)
16840
168412008-03-05  Sam Steingold  <sds@gnu.org>
16842
16843	* compiler.lisp (l-constantp, c-constantp): hash tables are constants
16844	(c-constant-value): handle hash tables; check for unhandled types
16845
168462008-03-05  Sam Steingold  <sds@gnu.org>
16847
16848	* compiler.lisp (c-VAR): when the variable is a constant,
16849	make anode foldable
16850	(c-GLOBAL-FUNCTION-CALL): fold some calls (NULL/CONSP/XOR...)
16851
168522008-03-03  Sam Steingold  <sds@gnu.org>
16853
16854	c-NORMAL-FUNCTION-CALL can now fold calls
16855	* compiler.lisp (try-constant-fold): extract from c-DIRECT-FUNCTION-CALL
16856	(return-if-foldable): new macro, uses try-constant-fold
16857	(c-NORMAL-FUNCTION-CALL, c-DIRECT-FUNCTION-CALL): use it
16858	(function-code-list): extract from c-GLOBAL-FUNCTION-CALL
16859	(c-GLOBAL-FUNCTION-CALL): use it
16860	(collect-arg, collect-args): add
16861	(c-NORMAL-FUNCTION-CALL, c-DIRECT-FUNCTION-CALL)
16862	(c-GLOBAL-FUNCTION-CALL): use them
16863	* record.d, subr.d (%UNBOUND): seclass_read, not seclass_foldable,
16864	because (const-value (new-const #<unbound>)) is NIL
16865
168662008-03-03  Sam Steingold  <sds@gnu.org>
16867
16868	* hashtabl.d, subr.d (GETHASH): seclass_read, not seclass_default
16869
168702008-03-02  Sam Steingold  <sds@gnu.org>
16871
16872	* defs2.lisp (define-hash-table-test): use check-symbol
16873
168742008-03-02  Sam Steingold  <sds@gnu.org>
16875
16876	* makemake.in (check-recompile): do not specify file name in "-o",
16877	just the directory
16878
168792008-03-02  Sam Steingold  <sds@gnu.org>
16880
16881	* .gdbinit (build-id-verbose): set to 0 to avoid fedora yum messages
16882	(main_actions): silent break to call check_funtab()
16883
168842008-03-01  Sam Steingold  <sds@gnu.org>
16885
16886	* clos-genfun4.lisp (check-gf-lambda-list): new function
16887	(generic-function-argument-precedence-order, generic-function-argorder)
16888	(generic-function-lambda-list, generic-function-signature): use it
16889
168902008-02-29  Sam Steingold  <sds@gnu.org>
16891
16892	* analyse-funtab.lisp: new file: study which functions should be
16893	added to eval.d:FUNTAB
16894	* eval.d (FUNTAB): add check_function_name, typep_class,
16895	defined_class_p, proper_list_p, pcompiled_function_p, make_macro,
16896	macrop, macro_expander, symbol_macro_p, standard_instance_access,
16897	set_standard_instance_access, encodingp
16898	(FUNTABR): add mapcap
16899	* constobj.d (version): bump
16900
169012008-03-01  Sam Steingold  <sds@gnu.org>
16902
16903	* record.d (CONSTANT_INITFUNCTION_P): new define
16904	(CONSTANT-INITFUNCTION-P, %SHARED-INITIALIZE, do_initialize_instance):
16905	(%MAKE-INSTANCE): use it
16906
169072008-02-29  Sam Steingold  <sds@gnu.org>
16908
16909	* record.d (CLOSURE-CONSTS): fix for the jitc addition
16910
169112008-02-29  Sam Steingold  <sds@gnu.org>
16912
16913	* io.d (pr_cclosure_lang): fix printing of lalist & docstring yet again
16914
169152008-02-27  Sam Steingold  <sds@gnu.org>
16916
16917	use keyword symbols from the core when possible
16918	* utils/modprep.lisp (mk-objdef, objdef-object, objdef-local): add
16919	(parse-signature, new-checker): use mk-objdef instead of init-to-objdef
16920	(check-signature, lexical-analysis, print-tables-1): use
16921	objdef-object & objdef-local instead of objdef-tag
16922	NB: this feature is actually disabled because
16923	&S(...) is invalid (S() is not an lvalue) in non-debug builds
16924	* modules/berkeley-db/bdb.c, modules/gdbm/gdbm.c, modules/pcre/cpcre.c:
16925	* modules/syscalls/calls.c, modules/regexp/regexi.c:
16926	* modules/rawsock/rawsock.c, modules/clx/new-clx/clx.f:
16927	use #\: in DEFUN to denote core keywords
16928	* constsym.d (Kcopy): always define
16929	(Kpreserve, Kinvert): add
16930	* spvw_debug.d (get_symbol_count, get_constsym) [DEBUG_SPVW]: add
16931	* modules/syscalls/calls.c (CONSTSYM) [DEBUG_SPVW]: use them
16932
169332008-02-27  Sam Steingold  <sds@gnu.org>
16934
16935	* modules/syscalls/calls.c use S(K...) instead of `...` for
16936	common keywords
16937	(copy_method_t): move before DEFMODULE for DEFCHECKER to work
16938	(check_copy_method): replace with a DEFCHECKER
16939	(copy_method_object): remove
16940
169412008-02-26  Sam Steingold  <sds@gnu.org>
16942
16943	* modules/wildcard/Makefile.in (all): depend on wildcard.fas
16944	* modules/oracle/Makefile.in (all): depend on oracle.fas
16945	* modules/fastcgi/Makefile.in (all): depend on fastcgi.fas
16946	* modules/bindings/glibc/Makefile (all): depend on linux.fas
16947	* modules/postgresql/Makefile.in (all): depend on postgresql.fas
16948
169492008-02-26  Sam Steingold  <sds@gnu.org>
16950
16951	a less invasive work-around for bug#315:
16952	it is not amd64 which is at fault, but TYPECODES
16953	* makemake.in (XCFLAGS): revert the 2007-10-15 patch
16954	* spvw_garcol.d (update) [TYPECODES]: comment out DEBUG_SPVW_ASSERT
16955	(gc_unmarkcheck) [TYPECODES]: disable
16956
169572008-02-26  Sam Steingold  <sds@gnu.org>
16958
16959	* spvw_debug.d (DEBUG_SPVW_ASSERT): print the failed assertion
16960	before abort() both as is and with expanded macros
16961
169622008-02-25  Sam Steingold  <sds@gnu.org>
16963
16964	* Makefile.devel (src/m4/gtk-2.0.m4): use wget instead of svn
16965	* autogen.sh: svn is no longer required, let us keep it this way!
16966
169672008-02-24  Sam Steingold  <sds@gnu.org>
16968
16969	* configure (info_help): use ./src/configure to get the list
16970	of options which specify location of dependencies
16971
169722008-02-24  Sam Steingold  <sds@gnu.org>
16973
16974	* Makefile.devel (GNULIB_CHECKOUT): do not specialize
16975	on a specific user, one can always use a symlink
16976
169772008-02-24  Bruno Haible  <bruno@clisp.org>
16978
16979	* configure (info_help): Mention the --with[out]-lib*-prefix options.
16980	Sort the other options like autoconf does.
16981
169822008-02-24  Bruno Haible  <bruno@clisp.org>
16983
16984	* autogen.sh: New file.
16985	* Makefile.devel (build-prerequisites): New target.
16986	(all): Depend on it.
16987	(EXCLUDE): Exclude autogen.sh.
16988	* utils/fix-perms.sh: Ensure autogen.sh is executable.
16989
169902008-02-24  Bruno Haible  <bruno@clisp.org>
16991
16992	* Makefile.devel (GTK2_SVN_ROOT): New variable.
16993	(m4/gtk-2.0.m4): New rule.
16994	(aclocal.m4): Depend on it.
16995
169962008-02-24  Bruno Haible  <bruno@clisp.org>
16997
16998	* makemake.in (COPYRIGHT.rtf): Fix escaping.
16999
170002008-02-24  Bruno Haible  <bruno@clisp.org>
17001
17002	Make it easier to update the gnulib imported files.
17003	* Makefile.devel (GNULIB_CVS_ROOT, GNULIB_CVS_REPOSITORY): New
17004	variables.
17005	(GNULIB_CHECKOUT): Rename from GNULIB_HOME. Make it normally a
17006	subdirectory of the current directory.
17007	(update-gnulib): New rule.
17008	(build-aux-update): Depend on it.
17009	(gnulib-imported): Rename from gnulib-update.
17010
170112008-02-24  Bruno Haible  <bruno@clisp.org>
17012
17013	* Makefile.devel (build-aux-update): Pass option -d to 'cvs update'.
17014	Remove unportable 'cd -' command.
17015
170162008-02-24  Bruno Haible  <bruno@clisp.org>
17017
17018	Add rule for fetching a working libtool.m4.
17019	* build-aux/ltmain.sh: Remove file.
17020	* Makefile.devel (src/aclocal.m4): Depend on src/m4/libtool.m4.
17021	(build-aux-update): Depend on src/build-aux/ltmain.sh.
17022	(LIBTOOL_VERSION, LIBTOOL_SOURCE_FILE, LIBTOOL_SOURCE_URL): New
17023	variables.
17024	(build-aux/ltmain.sh m4/libtool.m4): New rule.
17025	(EXCLUDE): Also exclude the LIBTOOL_SOURCE_FILE and its predecessors.
17026
170272008-02-24  Bruno Haible  <bruno@clisp.org>
17028
17029	fix bug#428 part 2.
17030	* lispbibl.d (STACK_register, mv_count_register, value1_register)
17031	(back_trace_register): Do not define for gcc-4.2 and newer when
17032	USE_GCC_REGISTER_VARIABLES is not defined.
17033
170342008-02-24  Bruno Haible  <bruno@clisp.org>
17035
17036	* lispbibl.d (STACK_register, mv_count_register, value1_register)
17037	(back_trace_register): Define for gcc-3.3.[4-6].
17038
170392008-02-23  Bruno Haible  <bruno@clisp.org>
17040
17041	fix bug#428 part 1.
17042	* floatparam.c (check): Change argument types to 'volatile type*'.
17043	This defeats optimizations of gcc 4.3.0 snapshots.
17044
170452008-02-16  Sam Steingold  <sds@gnu.org>
17046
17047	* compiler.lisp (create-fun-obj): jitc-p is true when either SPACE is 0
17048	or SPEED is at least 1
17049	* clos-genfun2b.lisp (*compile-no-jitc*): new constant
17050	(compute-discriminating-function-<generic-function>)
17051	(prototype-factory-table, finalize-fast-gf):
17052	use it in generated lambda declarations instead of (COMPILE)
17053
170542008-02-15  Sam Steingold  <sds@gnu.org>
17055
17056	* lightning.c (jit_run): use !fpointerp instead of nullp
17057	to test cclosure_jitc
17058	(jit_compile_) [DEBUG_BYTECODE]: declare byteptr_bad_jump
17059
170602008-02-22  Sam Steingold  <sds@gnu.org>
17061
17062	* io.d (pr_cclosure_lang): fix printing of lalist & docstring
17063
170642008-02-22  Sam Steingold  <sds@gnu.org>
17065
17066	make sure that CREATE-FUN-OBJ uses the correct OPTIMIZE settings
17067	* compiler.lisp (fnode): add DENV slot
17068	(c-LAMBDABODY): (SETF (FNODE-DENV *FUNC*) *DENV*)
17069	(create-fun-obj): pass (FNODE-DENV FNODE) to DECLARED-OPTIMIZE
17070	(make-trampoline): revert last patch: do not bind *DENV*; instead,
17071	pass :DENV '((OPTIMIZE (SPACE 3) (SPEED 0))) to MAKE-FNODE
17072
170732008-02-19  Sam Steingold  <sds@gnu.org>
17074
17075	* utils/fix-perms.sh: all *.d are non-executable
17076
170772008-02-19  Sam Steingold  <sds@gnu.org>
17078
17079	* compiler.lisp (make-trampoline): use backquote for readability;
17080	bind *DENV* for DECLARED-OPTIMIZE in CREATE-FUN-OBJ
17081	(create-fun-obj): compute (DECLARED-OPTIMIZE 'SPACE) just once,
17082	not 3 times
17083	(c-REQUIRE): do not suppress load libfile message completely
17084
170852008-02-19  Sam Steingold  <sds@gnu.org>
17086
17087	* macros3.lisp (compile-time-value): new exported user macro
17088	* init.lisp (compile-time-value): export from EXT
17089	* compiler.lisp (c-COMPILE-TIME-VALUE): compile it
17090	(c-form-table): use c-COMPILE-TIME-VALUE for COMPILE-TIME-VALUE
17091	* foreign1.lisp (compile-time-value): remove broken definition
17092
170932008-02-15  Sam Steingold  <sds@gnu.org>
17094
17095	* spvw.d, _clisp.c: remove the last vestiges of the -s command
17096	line option, removed on 2004-08-31
17097
170982008-02-14  Sam Steingold  <sds@gnu.org>
17099
17100	* record.d (make_code_vector): converted from MAKE-CODE-VECTOR
17101	(make_closure): accept 7 keywords instead of 6 positional arguments;
17102	call make_code_vector on :CODE
17103	(make_constant_initfunction): update
17104	* subr.d, constsym.d (make_code_vector): remove
17105	* constsym.d (make_closure): rename from %MAKE-CLOSURE to MAKE-CLOSURE
17106	(Kcode, Kconstants, Kseclass, Klambda_list, Kdocumentation, Kjitc_p):
17107	add
17108	* subrkw.d (make_closure): add
17109	* eval.d (FUNTAB): remove make_code_vector
17110	* io.d (CLOSURE-READER): update the C_make_closure() call
17111	* compiler.lisp (make-closure): remove defun
17112	(create-fun-obj): update make-closure call
17113
171142008-02-14  Sam Steingold  <sds@gnu.org>
17115
17116	* constobj.d (version): bump
17117	* constsym.d, subr.d, foreign.d (lookup_foreign_variable)
17118	(lookup_foreign_function, foreign_library_variable): remove legacy ABI
17119	* constsym.d, subr.d, foreign.d (open_foreign_library): rename
17120	from foreign_library
17121	* foreign.d (open_library, update_library, check_library):
17122	remove legacy version argument
17123	* eval.d (FUNTAB): add cs_string_eq, cs_string_noteq, cs_string_less,
17124	cs_string_greater, cs_string_ltequal, cs_string_gtequal, cs_string,
17125	fdefinition, whitespacep, elastic_newline, cs_intern, cs_find_symbol,
17126	cs_shadow, cs_make_package, cs_find_all_symbols, cs_symbol_name,
17127	map_into, xgcd
17128	* foreign1.lisp (open-foreign-library): export
17129	* macros2.lisp (check-not-special-variable-p): remove legacy ABI
17130	* record.d, subr.d (MAKE-MACRO): both arguments are required
17131
171322008-02-13  Sam Steingold  <sds@gnu.org>
17133
17134	first stab at keeping JITC code in the closure
17135	* compiler.lisp (make-closure): accept :jitc-p and pass it on to
17136	%make-closure in a cons cell together with seclass
17137	* eval.d (interpret_bytecode) [USE_JITC]: check cclosure_jitc_p
17138	and use jit_run instead of jit_compile_
17139	* io.d (CLOSURE-READER): pass jitc_p to make_closure
17140	(pr_cclosure_lang): write jitc_p
17141	* lightning.c (jitc_object): new struct
17142	(all_jitc_objects): new static
17143	(gc_mark_jitc_object): mark jitc_object
17144	(gc_scan_jitc_objects): scan all_jitc_objects
17145	(jit_compile_): save jitc_object in cclosure_jitc(closure)
17146	(jit_run): add
17147	* lispbibl.d (Codevec.ccv_flags): use bit(5) for jitc_p
17148	(ccv_flags_jitc_p, cclosure_jitc, cclosure_jitc_p): define
17149	(gc_mark_jitc_object, gc_scan_jitc_objects) [USE_JITC]: declare
17150	* record.d (%MAKE-CLOSURE): accept jitc_p in a cons cell with seclass
17151	(MAKE-CONSTANT-INITFUNCTION): pass (seclass . jitc_p)
17152	(CLOSURE-DOCUMENTATION, (SETF CLOSURE-DOCUMENTATION))
17153	(CLOSURE-LAMBDA-LIST): update for jitc_p
17154	* spvw_garcol.d (gar_col_normal) [USE_JITC]: call gc_scan_jitc_objects
17155	* spvw_gcmark.d (down_cclosure): define
17156
171572008-02-11  Sam Steingold  <sds@gnu.org>
17158
17159	* io.d (pr_symbol_part): use pr_fasl_special only on fasl_streams
17160
171612008-02-11  Sam Steingold  <sds@gnu.org>
17162
17163	* makemake.in (check-sources): grep ${SRCDIR}*.d, not *.d
17164	* subrkw.d (make_thread): fix a typo
17165
171662008-02-11  Sam Steingold  <sds@gnu.org>
17167
17168	fix bug#445: read-preserving-whitespace eats whitespace
17169	after quoted object
17170	* io.d (list2_reader): bind *READ-RECURSIVE-P* around
17171	read_recursive_no_dot() to avoid *READ-PRESERVE-WHITESPACE* being
17172	re-bound to NIL in read_recursive()
17173
171742008-02-10  Sam Steingold  <sds@gnu.org>
17175
17176	* clos-genfun2b.lisp (finalize-fast-gf): avoid calling
17177	prototype-factory twice on the same argument
17178	* record.d (%COPY-GENERIC-FUNCTION): use clos_venv instead of
17179	clos_consts[0]
17180
171812008-02-07  Sam Steingold  <sds@gnu.org>
17182
17183	finally fix def-c-const
17184	* foreign1.lisp (compile-time-value): new macro
17185	(def-c-const): use it; do not use def-call-out for the constant
17186	function to avoid clutter
17187	(finalize-coutput-file): keep cftype in *constant-table*
17188
171892008-02-07  Sam Steingold  <sds@gnu.org>
17190
17191	prepare for keeping jitc code in cclosure by not assuming that
17192	cclosure constants start at position 2 inside the record
17193	* constsym.d, subr.d (closure_const, set_closure_const): declare
17194	* record.d (CLOSURE-CONST, SET-CLOSURE-CONST): implement
17195	* pleces.lisp ((SETF CLOSURE-CONST)): define
17196	* compiler.lisp (pass3): use CLOSURE-CONST instead of SYS::%RECORD-REF
17197	(make-trampoline): use CLOSURE-CODEVEC instead of SYS::%RECORD-REF
17198	* defs2.lisp (dispatch-reader): use CLOSURE-CONST instead of %RECORD-REF
17199	and return constant number instead of record position in VECTOR-INDEX
17200	* io.d (SET-MACRO-CHARACTER, GET-MACRO-CHARACTER):
17201	O(dispatch_reader_index) contains position in
17202	TheCclosure(newclos)->clos_consts, not in
17203	((Srecord)TheCclosure(newclos))->recdata
17204	* trace.lisp (subclosure-pos, %local-get, %local-set): use
17205	CLOSURE-CONST instead of %RECORD-REF & %RECORD-STORE
17206
172072008-02-06  Sam Steingold  <sds@gnu.org>
17208
17209	* .gdbinit (run_test, run_all_tests, ansi_tests, ansi_tests_compiled):
17210	pass -E utf-8 because all our files are in unicode
17211
172122008-02-06  Sam Steingold  <sds@gnu.org>
17213
17214	accept "-lp" to add to *LOAD-PATHS*
17215	(and fix mingw separate directory build, see
17216	<http://article.gmane.org/gmane.lisp.clisp.devel/17375>
17217	<https://sourceforge.net/p/clisp/mailman/message/15562991/>
17218	<http://article.gmane.org/gmane.lisp.clisp.devel/17388>
17219	<https://sourceforge.net/p/clisp/mailman/message/18310315/>)
17220	* init.lisp (*load-paths*): do not reset
17221	* constsym.d (*load-paths*): add
17222	* spvw.d (init_symbol_values): init *LOAD-PATHS*
17223	(struct argv_actions): add argv_load_paths_count & argv_load_paths
17224	(parse_options): init p2->argv_load_paths_count & p2->argv_load_paths;
17225	argv_for now has an additional value: for_load_path;
17226	accept "-lp" and set argv_for to for_load_path for adding the
17227	argument o p2->argv_load_paths
17228	(main_actions): push -lp arguments to *LOAD-PATHS*
17229	* makemake.in: use -lp instead of setting *LOAD-PATHS* in -x
17230
172312008-02-06  Sam Steingold  <sds@gnu.org>
17232
17233	the final fix for bug#373: Compile-file: non-similarity of
17234	strings with cr/lf (also treated on 2006-11-17 & 2008-02-04)
17235	* io.d (read_token_1): when reading from a FASL stream,
17236	read \r & \n as #\Return and #\Newline respectively
17237	(pr_symbol_part): when printing to a FASL stream,
17238	print #\Newline & #\Return as \r and \n respectively
17239
172402008-02-06  Sam Steingold  <sds@gnu.org>
17241
17242	fix bug#444: make clean removes Lisp source files
17243	* makemake.in (clean5): do not remove LISPFILES, they are not
17244	linked over since 2007-12-10
17245
172462008-02-04  Sam Steingold  <sds@gnu.org>
17247
17248	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: for consistency
17249	with UNIX, do NOT call MERGE-PATHNAMES on directories
17250
172512008-02-04  Sam Steingold  <sds@gnu.org>
17252
17253	extend the meaning of the REVAL stream flag to mean a FASL stream:
17254	in addition to ignoring *READ-EVAL*, use \n for #\Newline and #\r
17255	for #\Return inside strings (replaces the 2006-11-17 patch #0Y"")
17256	* compiler.lisp (set-output-stream-fasl): extract from compile-file
17257	(compile-file): use it to mark *fasoutput-stream* & *liboutput-stream*
17258	as FASL streams with UTF-8 encoding
17259	* constsym.d, subr.d, stream.d (ALLOW-READ-EVAL): -> STREAM-FASL-P
17260	* constsym.d, gray.lisp, stream.d ($REVAL): rename to $FASL
17261	* init.lisp (load): do not mark input-stream as a FASL stream: a
17262	FAS file is marked as such with #0Y_; a lisp file is just a text file
17263	* lispbibl.d (strmflags_fasl_bit_B): rename from strmflags_reval_bit_B
17264	* lispbibl.d, stream.d (stream_get_read_eval): rename to stream_get_fasl
17265	(stream_set_read_eval): rename to stream_set_fasl
17266	* io.d (STRING-READER): when reading from a FASL stream, recognize \n\r
17267	(CLOSURE-READER): accept #0Y_ to set FASL flag, #0Y^ to clear it,
17268	do not accept #0Y""
17269	(pr_fasl_special): new function
17270	(pr_sstring_ab): use it; do not print #0Y to FASL streams
17271	(pr_instance, pr_orecord): use FASL stream flag instead of *COMPILING*
17272
172732008-02-04  Sam Steingold  <sds@gnu.org>
17274
17275	* makemake.in: fix distrib on win32 when building in src
17276
172772008-02-04  Sam Steingold  <sds@gnu.org>
17278
17279	* foreign1.lisp (DEF-C-CONST): use get-assoc & note-c-const
17280	(note-c-const): new ABI function; make the requirement that
17281	def-c-const must be compiled to C explicit for better error reporting
17282
172832008-02-03  Yann Dauphin  <yann-nicolas.dauphin@polymtl.ca>
17284
17285	* lightning.c: new file, implements JITC via GNU lightning
17286
172872008-02-03  Sam Steingold  <sds@gnu.org>
17288
17289	add JITC harness
17290	* configure: accept --with-jitc=FLAVOR
17291	* eval.d (interpret_bytecode) [USE_JITC]: use jit_run
17292	[USE_JITC]: load the appropriate jit implementation
17293	* configure.in: call CL_LIGHTNING
17294	* m4/lightning.m4: implement CL_LIGHTNING
17295	* lispbibl.d [USE_JITC]: disable registers when using JITC
17296	* makemake.in: accept --with-jitc=FLAVOR
17297	(XCFLAGS) [--with-jitc=FLAVOR]: add -DUSE_JITC -D${with_jitc}
17298	link over ${with_jitc}.c into the build directory
17299	(eval.o): depend on ${with_jitc}.c
17300	(clean5): remove ${with_jitc}.c
17301
173022008-01-30  Sam Steingold  <sds@gnu.org>
17303
17304	* pprint.lisp (copy-pprint-dispatch): distinguish the 3 cases:
17305	no argument, NIL argument, table argument
17306	Reported by "Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com>
17307
173082008-01-30  Sam Steingold  <sds@gnu.org>
17309
17310	* makemake.in: libsvm requires FFI
17311	* modules/fastcgi/configure.in, modules/oracle/configure.in:
17312	* modules/pari/configure.in, modules/postgresql/configure.in:
17313	* modules/wildcard/configure.in, modules/zlib/configure.in:
17314	fail if ffcall is not present
17315
173162008-01-29  Sam Steingold  <sds@gnu.org>
17317
17318	* po/Makefile.devel (LISPSOURCES): remove affi1
17319	(DSOURCES): remove affi, add funarg
17320
173212008-01-29  Sam Steingold  <sds@gnu.org>
17322
17323	* version.sh: 2.44 (2008-02-02)
17324
173252008-01-27  Sam Steingold  <sds@gnu.org>
17326
17327	* comptran.d (C_rationalp): new macro
17328	(N_N_log_N, N_N_expt_N): use it
17329
173302008-01-27  Reini Urban  <rurban@x-ray.at>
17331
17332	<35_trans4>
17333	* places.lisp, comptran.d, realrand.d, realtran.d:
17334	Translate comments to English. Convert # to /* */.
17335
173362008-01-27  Sam Steingold  <sds@gnu.org>
17337
17338	* pathname.d (get_time_size) [WIN32_NATIVE]: strip trailing
17339	backslash from resolved_asciz and close search_handle.
17340	This actually fixes 2007-12-31 & 2008-01-25 patches.
17341	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.
17342
173432008-01-25  Sam Steingold  <sds@gnu.org>
17344
17345	* pathname.d (get_time_size) [WIN32_NATIVE]: accept directories;
17346	this should fix the 2007-12-31 patch for woe32
17347	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.
17348
173492008-01-24  Sam Steingold  <sds@gnu.org>
17350
17351	* lndir: do not link over CVS directories
17352
173532008-01-23  Sam Steingold  <sds@gnu.org>
17354
17355	fix bug#418: signal handling examples in glibc fail
17356	* modules/bindings/glibc/linux.lisp (sigaction): sa_restorer is
17357	now a generic pointer, not a pointer to a function, because...
17358	  The sa_restorer element is obsolete and should not be used.
17359	  POSIX does not specify a sa_restorer element.
17360	On Linux 2.6.22.7-57.fc6, sigaction(SIGINT) returns invalid
17361	pointers as sa_restorer
17362
173632008-01-23  Sam Steingold  <sds@gnu.org>
17364
17365	* foreign1.lisp (finalize-coutput-file): constants
17366	*CONSTANT-TABLE* are now (const . guard)
17367	(DEF-C-CONST): accept :GUARD
17368
173692008-01-22  Sam Steingold  <sds@gnu.org>
17370
17371	* modules/bindings/glibc/linux.lisp (SIGSET_NWORDS): compute using
17372	ffi:ulong, as specified in <bits/sigset.h>
17373	(sigset_t): array of ulong, as specified in <bits/sigset.h>
17374
173752008-01-22  Sam Steingold  <sds@gnu.org>
17376
17377	fix bug#310: FFI revalidates too many library functions
17378	in new session
17379	* foreign.d (check_faddress_valid): check that validate_fpointer()
17380	actually did make the pointer valid
17381	(update_library): make sure that the non-validatable object
17382	remains marked as invalid
17383
173842008-01-22  Sam Steingold  <sds@gnu.org>
17385
17386	* spvw_debug.d (nobject_out1): print INVALID for invalid foreign
17387	functions and foreign addresses
17388
173892008-01-22  Sam Steingold  <sds@gnu.org>
17390
17391	* control.d (APPLY, specdecled_): avoid GCC "warning: value
17392	computed is not used"
17393
173942008-01-22  Sam Steingold  <sds@gnu.org>
17395
17396	* savemem.lisp (*saveinitmem-verbose*): add defvar
17397	(saveinitmem): :verbose defaults to *saveinitmem-verbose*
17398	* spvw.d (init_symbol_values): define *SAVEINITMEM-VERBOSE*
17399	(main_actions): set it to NIL when argv_verbose < 1
17400	* init.lisp (*saveinitmem-verbose*): export from CUSTOM
17401	(loading-message): permit more than 1 format argument
17402	* constsym.d (*saveinitmem-verbose*): add symbol
17403
174042008-01-22  Sam Steingold  <sds@gnu.org>
17405
17406	* spvw_memfile.d (savemem): return file length
17407	* lispbibl.d (savemem): update prototype
17408	* pathname.d (SAVEMEM): return file length
17409
174102008-01-21  Sam Steingold  <sds@gnu.org>
17411
17412	* spvw.d (run_hooks): establish a DRIVER frame around the loop to
17413	enable reset() on errors in user code
17414	(main_actions): ditto around loading RC file, init files,
17415	compiling files, executing scripts (but not expression, they go
17416	through SYS::DRIVER)
17417
174182008-01-22  Sam Steingold  <sds@gnu.org>
17419
17420	* reploop.lisp (with-abort-restart): new macro: establish the
17421	DEBUG catcher and the ABORT restart with a useful report function
17422	(main-loop, break-loop, step-hook-fn): use it
17423
174242008-01-22  Sam Steingold  <sds@gnu.org>
17425
17426	fix bug#443: the set of restarts grows with each image save
17427	and bug#411: bad restarts when .clisprc signals errors.
17428	* savemem.lisp (saveinitmem): bind *ACTIVE-RESTARTS* &
17429	*CONDITION-RESTARTS* to NIL around SAVEMEM instead of setting them
17430	to NIL in the *DRIVER* to avoid multiple ABORT restarts in saved images
17431
174322008-01-21  Sam Steingold  <sds@gnu.org>
17433
17434	* eval.d (reset): set unwind_protect_to_save.upto_frame;
17435	print a useful(?) error message on abort
17436	(CHECK_STACK, CHECK_STACK_S, CHECK_STACK_C): new macros
17437	(eval_fsubr, eval_subr, apply_subr, funcall_subr): use CHECK_STACK_S
17438	(eval_closure, apply_closure, funcall_closure): use CHECK_STACK_C
17439	(find_keyword_value, match_subr_key, match_cclosure_key): avoid
17440	GCC "warning: value computed is not used"
17441
174422008-01-19  Sam Steingold  <sds@gnu.org>
17443
17444	* control.d (THE): raise TYPE-ERROR on failure
17445
174462008-01-18  Sam Steingold  <sds@gnu.org>
17447
17448	* debug.d (print_back_trace, print_stackitem):
17449	also print FRAME offset from STACK_start
17450	(show_stack): use STACK_start instead of nullobj to check for stack end;
17451	print bt & FRAME _before_ testing for loop termination
17452
174532008-01-17  Sam Steingold  <sds@gnu.org>
17454
17455	fix bug#347: segfault in framep() debug.d:644
17456	* debug.d (stack_upend_p): use "STACK_start cmpSTACKop FRAME"
17457	instead of "eq(FRAME_(0),nullobj)" to check for STACK start
17458	(stack_downend_p): use "FRAME cmpSTACKop STACK" to check for STACK end
17459
174602008-01-17  Sam Steingold  <sds@gnu.org>
17461
17462	* pathname.d (open_file): fix a gc-safety bug in (open
17463	... :direction :output :if-exists :rename-and-delete)
17464	by keeping namestring on the STACK all along
17465
174662008-01-16  Sam Steingold  <sds@gnu.org>
17467
17468	* pathname.d (open_file): fix g++ compilation
17469	* charstrg.d (uc_width): remove the global inline declaration of
17470	the gnulib function to avoid a g++ warning
17471
174722008-01-16  Sam Steingold  <sds@gnu.org>
17473
17474	* ariarm.d, lispbibl.d: convert comments from "# " to "/**/"
17475
174762008-01-16  Sam Steingold  <sds@gnu.org>
17477
17478	* foreign.d (convert_function_to_foreign, convert_from_foreign)
17479	(convert_from_foreign_array_fill, convert_to_foreign, %ELEMENT):
17480	use while instead of dotimes and do/while instead of dotimesp
17481	(%ELEMENT): avoid GCC "warning: value computed is not used"
17482
174832008-01-16  Sam Steingold  <sds@gnu.org>
17484
17485	* list.d (make_list, NTHCDR, listof, LIST*, APPEND, NCONC, NBUTLAST):
17486	use while instead of dotimes and do/while instead of dotimesp
17487
174882008-01-16  Sam Steingold  <sds@gnu.org>
17489
17490	* sequence.d (REDUCE): use missingp
17491	(CONCATENATE, seq_boolop, MAP, MAP-INTO, delete_help, substitute_help):
17492	use while instead of dotimes and do/while instead of dotimesp
17493	(verify_return_value, VERIFY_RETURN_VALUE): add function & macro
17494	(MAKE-SEQUENCE, coerce_sequence, COERCED-SUBSEQ, CONCATENATE, MAP)
17495	(MERGE): use them
17496	(CONCATENATE, seq_boolop, MAP): avoid GCC
17497	"warning: value computed is not used"
17498
174992008-01-16  Reini Urban  <rurban@x-ray.at>
17500
17501	<34_trans3>
17502	* sequence.d, list.d: translate all comments and convert them to /**/
17503
175042008-01-15  Sam Steingold  <sds@gnu.org>
17505
17506	* debug.d (climb_stack_once, climb_stack_repeat): merge into climb_stack
17507	(FRAME-UP-1, FRAME-DOWN-1): remove
17508	(FRAME-UP, FRAME-DOWN): accept an additional REPEAT argument
17509	* reploop.lisp (frame-limit-down, frame-limit-up, debug-up)
17510	(debug-top, debug-down, debug-bottom, frame-up-down):
17511	use (frame-up 1 ...) instead of (frame-up-1 ...)
17512	and (frame-down 1 ...) instead of (frame-down-1 ...)
17513	and (frame-up t ...) instead of (frame-up ...)
17514	and (frame-down t ...) instead of (frame-down ...)
17515	(print-backtrace): use ~:P in message
17516	* constsym.d, subr.d (frame_up_1, frame_down_1): remove
17517
175182008-01-15  Bruno Haible  <bruno@clisp.org>
17519
17520	* lispbibl.d (quit): Note the meaning of a negative final_exitcode.
17521	* spvw.d (quit_instantly): Likewise.
17522	(main): If exitcode is negative, quit the program through a signal
17523	rather than through exit().
17524	* spvw_sigterm.d (quit_on_signal): Set final_exitcode.
17525
175262008-01-14  Bruno Haible  <bruno@clisp.org>
17527
17528	* spvw_sigterm.d (set_sigterm_handler): New function.
17529	(uninstall_sigterm_handler, install_sigterm_handler): Use it.
17530	(quit_on_signal): After raising the signal, return from the function.
17531
175322008-01-14  Bruno Haible  <bruno@clisp.org>
17533
17534	* Makefile.devel: Use CONFIGURES instead of CLISP_CONFIGURES. Fixes
17535	problem introduced on 2008-01-05.
17536
175372008-01-14  Sam Steingold  <sds@gnu.org>
17538
17539	fix bug#441: how to quit upon SIGTERM, SIGKILL, or SIGQUIT
17540	* spvw_sigterm.d (quit_on_signal_in_progress): new static boolean
17541	(uninstall_sigterm_handler): undo the effects of install_sigterm_handler
17542	(quit_on_signal): call uninstall_sigterm_handler first thing so
17543	that the repeated signals bypass the handler and kill CLISP instantly
17544
175452008-01-13  Bruno Haible  <bruno@clisp.org>
17546
17547	Make it work on OpenBSD 4.0 x86 with address space randomization.
17548	* lispbibl.d (ADDRESS_RANGE_RANDOMIZED): New macro.
17549	(LINUX_NOEXEC_HEAPCODES/STANDARD_HEAPCODES, TRIVIALMAP_MEMORY): Depend
17550	on it.
17551
175522008-01-13  Bruno Haible  <bruno@clisp.org>
17553
17554	* spvw_memfile.d (loadmem_from_handle) [SPVW_MIXED_BLOCKS_OPPOSITE]:
17555	Fix the test whether there's enough room.
17556
175572008-01-13  Bruno Haible  <bruno@clisp.org>
17558
17559	* makemake.in: Do not use $(MAKE) -C.
17560
175612008-01-13  Sam Steingold  <sds@gnu.org>
17562
17563	* lispbibl.d (STACK_start): declare new per_thread
17564	* spvw.d (STACK_start): create and ...
17565	(init_memory): init to the initial value of STACK
17566	* spvw_debug.d (nobject_out1): use STACK_start to print
17567	framepointers and framepointerp to check for them
17568	* io.d (pr_framepointer_1): new function: print frame offset from
17569	STACK_start instead of its address
17570	(pr_framepointer): use it instead of pr_hex6
17571
175722008-01-13  Sam Steingold  <sds@gnu.org>
17573
17574	* lispbibl.d (per_thread): per-thread storage class
17575	* spvw.d, lispbibl.d (STACK, callback_saved_registers)
17576	(saved_mv_count, saved_value1, saved_back_trace, saved_STACK)
17577	(SP_bound, STACK_bound, mv_count, mv_space, temp_mv_count)
17578	(temp_value1, back_trace, aktenv, unwind_protect_to_save)
17579	(handler_args, inactive_handlers): use per-thread instead of
17580	current_thread() fields
17581
175822008-01-12  Sam Steingold  <sds@gnu.org>
17583
17584	* makemake.in: use add traling #\/ to gllib in "find" so that
17585	gllib can be a symlink
17586
175872008-01-12  Sam Steingold  <sds@gnu.org>
17588
17589	* xthread.d: disable spin locks (gcc barfs)
17590	* constsym.d, subr.d, subrkw.d, threads.lisp, zthread.d:
17591	rename thread functions from PROCESS to THREAD
17592	* lispbibl.d (Rectype_Thread, Rectype_Mutex, Rectype_Exemption)
17593	[MULTITHREAD]: add Rectypes
17594	(Thread, Mutex, Exemption) [MULTITHREAD]: add types
17595	(TheThread, TheMutex, TheExemption) [MULTITHREAD]: add macros
17596	(allocate_thread, allocate_mutex, allocate_exemption)
17597	[MULTITHREAD]: add declarations
17598	* spvw_typealloc.d (allocate_thread, allocate_mutex)
17599	(allocate_exemption) [MULTITHREAD]: add
17600	* io.d (pr_orecord) [MULTITHREAD]: handle Rectype_Thread,
17601	Rectype_Mutex, and Rectype_Exemption
17602	* constobj.d (printstring_thread, printstring_mutex)
17603	(printstring_exemption) [MULTITHREAD]: add strings
17604
176052008-01-10  Sam Steingold  <sds@gnu.org>
17606
17607	* reploop.lisp (frame-up-down): add
17608	(print-backtrace, break-loop, step-hook-fn): use it
17609	(*frame-limit1*): rename to *frame-limit-down*
17610	(frame-limit1): rename to frame-limit-down
17611	(*frame-limit2*): rename to *frame-limit-up*
17612	(frame-limit2): rename to frame-limit-up
17613	* debug.d (test_framepointer_arg): report a TYPE-ERROR
17614	(climb_stack_once, climb_stack_repeat): add
17615	(FRAME-UP-1, FRAME-DOWN-1): use climb_stack_once
17616	(FRAME-UP, FRAME-DOWN): use climb_stack_repeat
17617	(stack_upend_p): use frame_limit_up instead of frame_limit2
17618	(stack_downend_p): use frame_limit_down instead of frame_limit1
17619	* constsym.d (frame_limit1): rename to frame_limit_down
17620	(frame_limit2): rename to frame_limit_up
17621
176222008-01-09  Sam Steingold  <sds@gnu.org>
17623
17624	* eval.d (reset): replace NOTREACHED with abort
17625
176262008-01-09  Sam Steingold  <sds@gnu.org>
17627
17628	* debug.d (print_back_trace): index is uintL, not int
17629	(print_bt_to_frame): add
17630	(DESCRIBE-FRAME, show_stack): use it
17631
176322008-01-07  Sam Steingold  <sds@gnu.org>
17633
17634	* eval.d (interpret_bytecode_): translated labels:
17635	svref_kein_svector --> svref_not_a_svector
17636	svref_kein_index --> svref_not_an_index
17637	* init.lisp (load): translated label: weiter --> proceed
17638	* condition.lisp (check-type-failed, assert-failed)
17639	(simple-assert-failed, eval-loaded-form, ctypecase-failed):
17640	format RESTART-CASE clauses in a more traditional way (lalist
17641	first)
17642	* spvw_garcol.d (gc_unmarkcheck): better error reporting
17643	* spvw.d (init_memory) [DEBUG_SPVW]: print STACK bounds too
17644
176452008-01-07  Sam Steingold  <sds@gnu.org>
17646
17647	fix bug#327: :q debugger command does not reset program stack
17648	* eval.d (reset): save last driver frame and use it instead of
17649	starting a new driver when the STACK is exhausted
17650
176512008-01-06  Sam Steingold  <sds@gnu.org>
17652
17653	* reploop.lisp (break-loop): remove #\. from the end of a message
17654	(safe-wr-st): new function, use instead of WRITE-STRING whenever
17655	it is used with TEXT in this file to
17656	fix bug#438: infinite recursive error reporting
17657
176582008-01-06  Sam Steingold  <sds@gnu.org>
17659
17660	fix bug#437: hangs at the end of input script
17661	* reploop.lisp (main-loop): revert the 2003-12-18 patch: exit on
17662	EOF on all streams to avoid CLISP hanging at the end of script on
17663	"clisp < script" and "cat script | clisp"
17664
176652008-01-05  Sam Steingold  <sds@gnu.org>
17666
17667	* Makefile.devel: remove all ffcall-related targets (libffcall is
17668	now hosted on savannah)
17669	* ffcall/: remove the tree
17670
176712008-01-03  Sam Steingold  <sds@gnu.org>
17672
17673	* spvw.d (size_arg): turn into a function from macro SIZE_ARG;
17674	accept Tera and Peta on 64-bit platforms
17675	(parse_options): fix limit_low argument to size_arg()
17676
176772008-01-03  Sam Steingold  <sds@gnu.org>
17678
17679	* makemake.in: pass "-o ./" to "clisp -c" uniformly
17680	(MEMOPT): new variable: -m 2MW for compilation
17681
176822007-12-31  Sam Steingold  <sds@gnu.org>
17683
17684	* pathname.d, win32aux.d: use true/false instead of TRUE/FALSE
17685	* pathname.d (error_delete_open, error_rename_open): print subr name
17686	(check_rename_open): add
17687	(rename_file, create_backup_file): use it
17688
176892007-12-31  Sam Steingold  <sds@gnu.org>
17690
17691	Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to
17692	EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY,
17693	respectively, for consistency with EXT:PROBE-DIRECTORY,
17694	EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY.
17695	* constsym.d, eval.d, init.lisp, pathname.d, subr.d: do the renaming
17696	* deprecated.lisp (delete-dir, make-dir, rename-dir): deprecate
17697	* modules/syscalls/calls.c (COPY-FILE): use L(make_directory)
17698
176992007-12-31  Sam Steingold  <sds@gnu.org>
17700
17701	fix bug#436: DIRECTORY of dirs ignores :FULL
17702	* pathname.d (pack_full_info, with_stat_info_computed): add
17703	(get_time_size) [WIN32_NATIVE]: add
17704	(with_stat_info_arg) [UNIX]: add
17705	(directory_search_scandir) [WIN32_NATIVE]: use get_time_size()
17706	and pack_full_info()
17707	(directory_search): use with_stat_info_computed() for directories
17708
177092007-12-31  Sam Steingold  <sds@gnu.org>
17710
17711	* pathname.d (push, PUSH_ON_STACK): add inline & macro wrapper
17712	(copy_pathname_and_add_subdir, directory_search_scandir)
17713	(directory_search): use it
17714	(pathname_add_subdir): do not pass arguments on the STACK
17715
177162007-12-30  Sam Steingold  <sds@gnu.org>
17717
17718	avoid goto and return from inside with_string_0
17719	* pathname.d (delete_file_if_exists_obj, realpath_obj, stat_obj)
17720	(open_output_file_obj, create_backup_file_obj): add
17721	(assure_dir_exists): use realpath_obj()
17722	(directory_exists, directory_search_hash): use stat_obj()
17723	(DELETE-FILE): use delete_file_if_exists_obj()
17724	(open_file): use open_output_file_obj() & create_backup_file_obj()
17725
177262007-12-30  Sam Steingold  <sds@gnu.org>
17727
17728	fix bug#435: deletion of symlinks into non-existent dirs fails
17729	* pathname.d (DELETE-FILE): when the directory does not exist,
17730	still remove the link, just skip check_delete_open()
17731
177322007-12-30  Sam Steingold  <sds@gnu.org>
17733
17734	additional 5% speedup in simple sequence tests: switch instead of if
17735	* lispbibl.d (fastcmp_t): new type
17736	(subr_t): split uintW seclass into uintB seclass and uintB fastcmp
17737	* funarg.d (check_test_args): use fastcmp subr field in switch
17738	instead of a sequence of if statements
17739	* subr.d (SECFC_BITS, SECFC_MASK, SECFC, SECFC_SEC, SECFC_FC):
17740	macros to allow passing both seclass and fastcmp in one LISPFUN
17741	macro argument
17742	(LISPFUN_D, LISPFUN_F, LISPFUN_G): set fastcmp
17743	(eq, eql, equal, equalp): set fastcmp
17744	* predtype.d (eq, eql, equal, equalp): ditto
17745	* genclisph.d (LISPFUN_F): set fastcmp to 0
17746
177472007-12-27  Sam Steingold  <sds@gnu.org>
17748
17749	* funarg.d: new file, extracted from list.d, sequence.d, weak.d
17750	* list.d, sequence.d, weak.d: use funarg.d
17751	replace up_function_t and up2_function_t with funarg_t
17752	extend the 2001-06-16 patch (do not go through FUNCALL for simple tests)
17753	by selecting the test function once, not testing on each comparison
17754	* makemake.in (CPARTS): add funarg
17755	* lispbibl.d (check_key_arg, funcall_key, check_test_args): add
17756	(error_both_tests): remove
17757
177582007-12-26  Sam Steingold  <sds@gnu.org>
17759
17760	* lispbibl.d, spvw_gcstat.d, time.d (TIME_1, TIME_2): replace with
17761	TIME_METHOD which takes values 1 or 2 which ensures that one and
17762	only one code path is always taken
17763
177642007-12-26  Sam Steingold  <sds@gnu.org>
17765
17766	* symbol.d (GENSYM): use check_pos_integer & error_string_integer
17767
177682007-12-26  Reini Urban  <rurban@x-ray.at>
17769
17770	<33_trans2>
17771	* misc.d, sort.d, symbol.d, time.d, weak.d, win32.d:
17772	translate comments and convert them from "# " to "/**/"
17773
177742007-12-20  Sam Steingold  <sds@gnu.org>
17775
17776	* type.lisp (SIGNED-BYTE, UNSIGNED-BYTE): unify error messages
17777
177782007-12-20  Sam Steingold  <sds@gnu.org>
17779
17780	fix bug#417: linux:dirent definition error
17781	* modules/bindings/glibc/linux.lisp (clisp_dirent_ino_t)
17782	(clisp_dirent_off_t): define depending on __USE_FILE_OFFSET64
17783
177842007-12-20  Sam Steingold  <sds@gnu.org>
17785
17786	fix bug#433: BYTE is a type, but is unacceptable input to TYPEP
17787	* type.lisp (BYTE): add atomic type
17788	* predtype.d (bytep): implement
17789	* subr.d, constsym.d (bytep): add
17790
177912007-12-19  Sam Steingold  <sds@gnu.org>
17792
17793	* io.d (pr_stream) [0]: print contents of a STRING-INPUT-STREAM
17794	for bootstrap debugging only
17795
177962007-12-18  Sam Steingold  <sds@gnu.org>
17797
17798	DESCRIBE shows contents of STRING-STREAMs
17799	* stream.d (error_string_stream): add
17800	(STRING-INPUT-STREAM-INDEX, GET-OUTPUT-STREAM-STRING): use it
17801	(STRING-STREAM-STRING): add
17802	* constsym.d, subr.d (string_stream_string): add
17803	* describe.lisp (*squeeze-string-max*, *squeeze-string-section*)
17804	(squeeze-string): add
17805	(describe-object): use squeeze-string and string-stream-string to
17806	describe string streams
17807
178082007-12-18  Sam Steingold  <sds@gnu.org>
17809
17810	* record.d (error_closure): add
17811	(SYS::CLOSURE-NAME, (SETF SYS::CLOSURE-NAME)): use it
17812	(slot_in_arglist, SYS::%MAKE-INSTANCE): add a cast to avoid
17813	the "value computed is not used" warning
17814
178152007-12-17  Sam Steingold  <sds@gnu.org>
17816
17817	* lispbibl.d, pathname.d, spvw_memfile.d, time.d (decoded_time_t):
17818	translate field name from German to English
17819
178202007-12-16  Sam Steingold  <sds@gnu.org>
17821
17822	* spvw.d, spvw_memfile.d (quit_instantly): rename from quit_sofort
17823	* io.d (spaces): rename argument anzahl to scount
17824	(paren_open): rename from klammer_auf
17825	(paren_close): rename from klammer_zu
17826	* intelem.d (set_max32_Dptr): use if instead of (?:) to avoid three
17827	"value computed is not used" warnings
17828	* makemake.in (LIBS): do not add FFCALL_LIBS, it is done by configure
17829
178302007-12-08  Reini Urban  <rurban@x-ray.at>
17831
17832	* makemake.in: rename --list-modules to --help-modules,
17833	add gtk2 to the list of suggested modules in the comments
17834	<32_trans1>
17835	* aridecl.d, compelem.d, flo_konv.d, realelem.d: translate comments
17836
178372007-12-15  Sam Steingold  <sds@gnu.org>
17838
17839	* foreign.d: #include <avcall.h> & <callback.h> as "<>" and not '""'
17840	and wrap then in extern "C" to restore C++ compilation
17841
178422007-12-15  Sam Steingold  <sds@gnu.org>
17843
17844	* error.d (MAKE_CHECK_REPLACEMENT): new macro
17845	(check_list_replacement, check_array_replacement)
17846	(check_vector_replacement, check_posfixnum_replacement)
17847	(check_integer_replacement, check_char_replacement)
17848	(check_string_replacement, check_stream_replacement)
17849	(check_uint_replacement, check_sint_replacement)
17850	(check_ulong_replacement, check_slong_replacement)
17851	(check_ffloat_replacement, check_dfloat_replacement): use it
17852	(error_uint8, error_sint8, error_uint16, error_sint16, error_uint32)
17853	(error_sint32, error_uint64, error_sint64): remove
17854	(error_c_integer): add
17855	(check_uint8_replacement, check_sint8_replacement)
17856	(check_uint16_replacement, check_sint16_replacement)
17857	(check_uint32_replacement, check_sint32_replacement)
17858	(check_uint64_replacement, check_sint64_replacement): remove
17859	(check_c_integer_replacement): add
17860	* lispbibl.d (error_uint8, error_sint8, error_uint16, error_sint16)
17861	(error_uint32, error_sint32, error_uint64, error_sint64): define
17862	as macros, expanding to error_c_integer()
17863	(check_uint8_replacement, check_sint8_replacement)
17864	(check_uint16_replacement, check_sint16_replacement)
17865	(check_uint32_replacement, check_sint32_replacement)
17866	(check_uint64_replacement, check_sint64_replacement): define
17867	as macros, expanding to check_c_integer_replacement()
17868
178692007-12-14  Sam Steingold  <sds@gnu.org>
17870
17871	* avl.d, control.d, debug.d, eval.d, hashtabl.d, intprint.d, io.d:
17872	* lispbibl.d, pathname.d, predtype.d: rename label fertig to done;
17873	convert comments from "# " to "/**/"
17874
178752007-12-13  Sam Steingold  <sds@gnu.org>
17876
17877	* lispbibl.d (elif, loop, until): drop; update all D files
17878	* compelem.d, realelem.d (I_I_equal, R_R_equal): rename from *_gleich
17879	* compelem.d (N_N_equal): rewrite as a single return
17880	* spvw_circ.d (abort_context, abort_STACK): rename from abbruch_*
17881
178822007-12-12  Sam Steingold  <sds@gnu.org>
17883
17884	* spvw_typealloc.d (NIL_FILL): add
17885	(allocate_vector, allocate_lrecord, allocate_lrecord_)
17886	(allocate_srecord_): use it
17887	* spvw*.d: convert comments from "# " to "/**/"
17888
178892007-12-12  Sam Steingold  <sds@gnu.org>
17890
17891	expect FFCALL to be installed externally
17892	* configure: accept --with-ffcall and --with-libffcall-prefix
17893	* Makefile.devel (SOURCES): remove ffcall (not distributed with CLISP)
17894	* m4/ffcall.m4: add
17895	* configure.in: call CL_FFCALL
17896	* makemake.in (FFCALL_LIBS): init from '@LIBAVCALL@ @LIBCALLBACK@'
17897	(LIBS): add FFCALL_LIBS when --with-dynamic-ffi was supplied
17898	(avcall, callback): remove targets
17899	* glm4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): split into
17900	AC_LIB_LINKFLAGS_ADD and AC_LIB_LINKFLAGS_SEARCH (used by CL_FFCALL)
17901
179022007-12-11  Sam Steingold  <sds@gnu.org>
17903
17904	* stream.d: convert comments from "# " to "/**/"
17905	(ELTYPE_FLAFS): new macro
17906	(make_unbuffered_stream, make_buffered_stream): use it
17907	(NON_WHOLE_BYTE_P): new macro
17908	(check_unbuffered_eltype, make_buffered_stream): use it
17909
179102007-12-06  Sam Steingold  <sds@gnu.org>
17911
17912	* configure (--localedir, --docdir, --htmldir, --dvidir, --psdir)
17913	(--pdfdir, --elispdir, --vimdir): enable (autoconf-2.60 is here)
17914
179152007-12-10  Sam Steingold  <sds@gnu.org>
17916
17917	do not link over LISP files into the build directory
17918	* makemake.in (LPARTS): remove config
17919	(LISPFILES): prefix with ${SRCDIR}
17920	(alllisp): remove target
17921	(*.fas): pass "-o" to clisp
17922	(images): set *load-paths* before load init
17923	(TESTLISPFILES): remove make variable
17924	(check-recompile): do not link lisp sources over to stage
17925	* init.lisp (*load-paths*): reset only is not yet set
17926	(search-file): respect it even in the first definition
17927
179282007-12-10  Sam Steingold  <sds@gnu.org>
17929
17930	do not link over D files into the build directory
17931	* makemake.in (DFILES): remove modules; remove Makefile variable;
17932	(init): do not depend on DFILES
17933	(LINKKIT): remove modules.d
17934	(clean5): do not delete DFILES
17935	* modules.d: rename to modules.c
17936	* clisp-link.in: do not require modules.d for linkkitdir
17937
179382007-12-10  Sam Steingold  <sds@gnu.org>
17939
17940	* makemake.in (UTILS): treat gctrigger & varbrace just like the
17941	other C utilities
17942	* gctrigger.d, varbrace.d: convert to ANSI C and rename to *.c
17943
179442007-12-05  Sam Steingold  <sds@gnu.org>
17945
17946	* m4/general.m4 (CL_CC_WORKS): use "return 0" instead of "exit(0)"
17947	because C++ fails on an undefined function
17948
179492007-12-05  Sam Steingold  <sds@gnu.org>
17950
17951	Assume that "mkdir -p" is POSIX-compliant
17952	* makemake.in (echotab_mkdir_maybe): remove,
17953	use plain "mkdir -p" instead
17954	* ffcall/callback/Makefile.in, ffcall/callback/trampoline_r/Makefile.in:
17955	* ffcall/callback/vacall_r/Makefile.in, ffcall/trampoline/Makefile.in:
17956	* ffcall/vacall/Makefile.in, ffcall/avcall/Makefile.in:
17957	use "mkdir -p" instead of "if [ ! -d % ]; then mkdir %; fi"
17958	because the latter breaks down with non-trivial DESTDIR
17959
179602007-12-05  Sam Steingold  <sds@gnu.org>
17961
17962	remove AFFI
17963	* affi.d, affi1.lisp: remove
17964	* charstrg.d (unpack_string_rw): unused now, surround with #if 0
17965	* lispbibl.d (unpack_string_rw): remove prototype
17966	* encoding.d, constobj.d: remove AFFI CPP conditions
17967	* clhs.lisp: do not set AFFI package documentation
17968	* defs1.lisp (*system-package-list*): remove "AFFI"
17969	* foreign1.lisp, exporting.lisp (def-lib-call-out): remove
17970	* constsym.d, subr.d: remove AFFI functions
17971	* type.lisp (foreign-pointer): remove affi read conditional
17972
179732007-12-04  Reini Urban  <rurban@x-ray.at>
17974
17975	<31_ergebnis>
17976	* arilev0.d, arisparc.d, arisparc64.d, charstrg.d, encoding.d:
17977	* eval.d, ffloat.d, int2adic.d, intdiv.d, intgcd.d, intprint.d:
17978	* intread.d, intsqrt.d, io.d, list.d, package.d, pathname.d:
17979	* rational.d, realrand.d, record.d, sequence.d, sfloat.d:
17980	* spvw_allocate.d, spvw_memfile.d, stream.d, time.d, unixaux.d:
17981	* weak.d: ergebnis -> result
17982	<30_wert>
17983	* intelem.d: rename local var and arg wert,_wert,wert_*
17984	to value,_value,value_*
17985	* arilev0.d: rename macro arg wert,__wert to
17986	tvalue,__value
17987	* array.d (storagevector_store): rename local var wert to value
17988	* intlog.d (I_to_DS_n): rename local var wert to value
17989	* intserial.d (LESbvector_to_UI): rename local var wert to value
17990	* io.d (get_base): rename local var wert to intvalue,
17991	(test_number_syntax): rename local var wert to value,
17992	(feature): rename arg sollwert to demandvalue
17993	* lispbibl.d: rename local var wert to val (analog to the other
17994	intconv argnames)
17995	<29_zuweisung>
17996	* aridecl.d, arilev0.d, arilev1.d, dfloat.d, eval.d, ffloat.d:
17997	* intbyte.d, intelem.d, intlog.d, intmal.d, intsqrt.d, lfloat.d:
17998	* rational.d, sfloat.d: rename macro args *_zuweisung to *_assignment
17999	<28_more_anz>
18000	* io.d (print_vars_anz): rename to print_vars_count
18001	* lispbibl.d, spvw.d (thread_objects_anz): -> thread_objects_count
18002	* spvw.d (package_anz): rename to package_count
18003	* spvw_memfile.d (offset_subrs_anz): rename to offset_subrs_count
18004	<27_error_anzahl>
18005	* eval.d (funcall_subr, funcall_closure): rename label
18006	error_anzahl to error_count
18007	<26_spvw_anz>
18008	* spvw.d, spvw_space.d, spvw_memfile.d:
18009	(symbol_anz): rename to symbol_count
18010	(pseudocode_anz): rename to pseudocode_count
18011	(pseudodata_anz): rename to pseudodata_count
18012	(pseudofun_anz): rename to pseudofun_count
18013	(object_anz): rename to object_count
18014	* spvw_memfile.d (loadmem_from_handle): rename local var
18015	old_object_anz to old_object_count
18016	* spvw_memfile.d (struct memdump_header_t): rename members
18017	_pseudofun_anz to _pseudofun_count; _symbol_anz to _symbol_count
18018
180192007-12-05  Sam Steingold  <sds@gnu.org>
18020
18021	* foreign.d (dlerror_string): use safe_to_string
18022
180232007-12-03  Reini Urban	 <rurban@x-ray.at>
18024
18025	<24_more_anz>
18026	* control.d, lispbibl.d (specdecled_, make_variable_frame): rename
18027	arg and local spec_anz to spec_count
18028	* control.d (make_variable_frame): rename local var_anz to var_count
18029	* eval.d, lispbibl.d (frame_anz): rename to frame_count
18030	<23_clos_reqoptkey_anz>
18031	* eval.d, lispbibl.d: rename global members
18032	(clos_spec_anz): -> clos_spec_count
18033	(clos_req_anz): -> clos_req_count
18034	(clos_opt_anz): -> clos_opt_count
18035	(clos_key_anz): -> clos_key_count
18036	(clos_aux_anz): -> clos_aux_count
18037	<22_reqoptkey_anz>
18038	* debug.d, eval.d, fsubr.d, genclisph.d, lispbibl.d, spvw.d:
18039	* spvw_memfile.d, subr.d: rename global members and macro args
18040	(req_anz): -> req_count
18041	(opt_anz): -> opt_count
18042	(key_anz): -> key_count
18043	* clos-genfun2b.lisp (COMPUTE-DISPATCH): remove REQ-ANZ
18044	* compiler.lisp (struct fnode): rename
18045	(REQ-ANZ): -> REQ-NUM
18046	(OPT-ANZ): -> OPT-NUM
18047	* subr.d: rename macro args req_anz_, opt_anz_, key_anz_ to *_count_
18048	<21-xcharin-fehler>
18049	* xcharin.lisp (FEHLER-CHAR-ARG): rename to ERROR-CHAR-ARG
18050	<20_subr_anz>
18051	* affi.d, spvw.d, spvw_memfile.d, spvw_space.d:
18052	translate local variables *subr_anz => *subr_count:
18053	(subr_anz): subr_count
18054	(fsubr_anz): fsubr_count
18055	(total_subr_anz): total_subr_count
18056	(old_subr_a): old_subr_count
18057	<19_gcmark_vars>
18058	* spvw_gcmark.d: translate local variables:
18059	(dies): curr
18060	(dies_): curr_
18061	(nachf): succ
18062	(vorg): pred
18063	(vorvorg): prepred
18064	<18_test_index_macro>
18065	* charstrg.d (test_index): translate the macro arguments:
18066	(woher): from
18067	(wohin_zuweisung): to_setter
18068	(grenze): upper_limit
18069	(vergleich): uplimit_cmp
18070	<17_liststern>
18071	* bytecode.d, constsym.d, eval.d, foreign.d, list.d, stream.d, subr.d:
18072	(liststern): rename to liststar
18073	* bytecode.d, eval.d (cod_unliststern): rename to cod_unliststar
18074	(cod_liststern_push): rename bytecode to cod_liststar_push (LIST*&PUSH)
18075	* eval.d: rename label unliststern_unbound to unliststar_unbound
18076
180772007-12-03  Sam Steingold  <sds@gnu.org>
18078
18079	* configure, makemake.in: support spaces in the build directory name
18080
180812007-12-02  Reini Urban  <rurban@x-ray.at>
18082
18083	<16_strcmp3>
18084	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
18085	(string_grgleich): rename to string_gtequal
18086	(cs_string_grgleich): rename to cs_string_gtequal
18087	* charstrg.d, constsym.d, eval.d, sequence.d, subr.d, subrkw.d:
18088	(search_string_gleich): rename to search_string_eq
18089	<15_strcmp2>
18090	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
18091	(string_groesser): rename to string_greater
18092	(cs_string_groesser): rename to cs_string_greater
18093	(string_klgleich): rename to string_ltequal
18094	(cs_string_klgleich): rename to cs_string_ltequal
18095	<14_strcmp1>
18096	* charstrg.d, constsym.d, eval.d, subr.d, subrkw.d:
18097	(string_ungleich): rename to string_noteq
18098	(cs_string_ungleich): rename to cs_string_noteq
18099	(string_kleiner): rename to string_less
18100	(cs_string_kleiner): rename to cs_string_less
18101
181022007-12-01  Reini Urban	 <rurban@x-ray.at>
18103
18104	<13_charcmp2>
18105	* constsym.d, eval.d, charstrg.d, subr.d:
18106	(char_groesser): rename to char_greater
18107	(char_klgleich): rename to char_ltequal
18108	(char_grgleich): rename to char_gtequal
18109	<12_charcmp1>
18110	* constsym.d, eval.d, charstrg.d, subr.d, sequence.d:
18111	(char_gleich): rename to char_eq
18112	* constsym.d, eval.d, charstrg.d, subr.d:
18113	(char_ungleich): rename to char_noteq
18114	(char_kleiner): rename to char_less
18115	<11_aritcmp2>
18116	* compelem.d, lisparit.d (N_N_gleich): rename to N_N_equal
18117	* constsym.d, eval.d, subr.d (klgleich): rename to ltequal
18118	(grgleich): rename to gtequal
18119	<10_aritcmp>
18120	* constsym.d, eval.d, lisparit.d, subr.d (ungleich): -> numunequal
18121	* constsym.d, eval.d, lisparit.d, subr.d, modules/clx/new-clx/clx.f:
18122	(kleiner): rename to smaller
18123	* constsym.d, eval.d, lisparit.d, subr.d, hashtabl.d:
18124	(groesser): rename to greater
18125	<09_einsplus_minus>
18126	* array.d, constsym.d, eval.d, hashtabl.d, lisparit.d, subr.d:
18127	(einsplus, einsminus): rename to plus_one, minus_one
18128	<08_morearit>
18129	* constsym.d, debug.d, spvw.d (driverstern): rename to driverstar
18130	* constsym.d, eval.d, lisparit.d, subr.d (fakultaet): -> factorial
18131
181322007-11-30  Reini Urban  <rurban@x-ray.at>
18133
18134	<07_mal_durch>
18135	* eval.d, lisparit.d, subr.d, hashtabl.d, time.d, affi.d:
18136	* constsym.d, debug.d, predtype.d, sequence.d, spvw.d:
18137	* modules/clx/new-clx/clx.f (mal): rename to star
18138	(durch): rename to slash
18139	* constsym.d, debug.d, spvw.d (mal2): rename to star2
18140	(mal3): rename to star3
18141	(durch2): rename to slash2
18142	(durch3): rename to slash3
18143	* int2adic.d, intsqrt.d (D_D_mal2adic_D) rename to D_D_mult2adic_D
18144	(D_D_durch2adic_D, UDS_UDS_durch2adic_UDS): rename to *_div2adic_*
18145
181462007-11-29  Reini Urban <rurban@x-ray.at>
18147
18148	<06_gleich2>
18149	* charstrg.d, lispbibl.d, package.d (string_gleich_inverted):
18150	rename to string_eq_inverted
18151	* lisparit.d, lispbibl.d, predtype.d (number_gleich):
18152	rename to number_equal
18153
181542007-11-29  Sam Steingold  <sds@gnu.org>
18155
18156	* modules/clx/new-clx/clx.f, modules/clx/new-clx/clx.lisp:
18157	rename DISPLAY-NOOP to the standard NO-OPERATION
18158
181592007-11-28  Reini Urban  <rurban@x-ray.at>
18160
18161	<05_gleich>
18162	* constsym.d, eval.d, lisparit.d, subr.d, modules/clx/new-clx/clx.f:
18163	(gleich): rename to numequal
18164	* charstrg.d, constsym.d, eval.d, lispbibl.d, package.d, io.d:
18165	* subr.d, subrkw.d (string_gleich): rename to string_eq
18166	* charstrg.d, constsym.d, subr.d, subrkw.d (cs_string_gleich):
18167	rename to cs_string_eq
18168
181692007-11-28  Sam Steingold  <sds@gnu.org>
18170
18171	* modules/clx/new-clx/clx.f (get_display): add
18172	(find_display, get_font, SET-GCONTEXT-DISPLAY, CLOSE-DISPLAY)
18173	(SET-DISPLAY-AFTER-FUNCTION, DISPLAY-DEFAULT-SCREEN)
18174	(SET-DISPLAY-DEFAULT-SCREEN, VISUAL-INFO, OPEN-FONT, FONT-PATH)
18175	(SET-FONT-PATH, LIST-FONT-NAMES, LIST-FONTS, FIND-ATOM)
18176	(INTERN-ATOM, SELECTION-OWNER, SET-SELECTION-OWNER)
18177	(disassemble_event_on_stack, PROCESS-EVENT, GLOBAL-POINTER-POSITION)
18178	(INPUT-FOCUS, CHANGE-ACTIVE-POINTER-GRAB, SET-DISPLAY-XDEFAULTS)
18179	(POINTER-MAPPING, SET-POINTER-MAPPING, QUERY-KEYMAP)
18180	(CHANGE-KEYBOARD-MAPPING, KEYBOARD-MAPPING, KEYCODE->CHARACTER)
18181	(SET-ACCESS-CONTROL, ACCESS-HOSTS, LIST-EXTENSIONS, QUERY-EXTENSION)
18182	(SHAPE-VERSION): use it
18183	(CHANGE-PROPERTY): use get_client_message_format()
18184	(check_mapping_request): add DEFCHECKER
18185	(MAPPING-NOTIFY): use it, return no values
18186	(XLIB:ACCESS-HOSTS): check for FamilyServerInterpreted (bug 1840594)
18187
18188007-11-27  Reini Urban  <rurban@x-ray.at>
18189
18190	<04_divmult>
18191	* compelem.d, comptran.d, dfloat.d, ffloat.d, flo_rest.d, intdiv.d:
18192	* intmal.d, intgcd.d, intsqrt.d, lfloat.d, lisparit.d, rational.d:
18193	* realelem.d, realrand.d, realtran.d, sfloat.d:
18194	rename *_durch_* to *_div_*, rename *_mal_* to *_mult_*,
18195	rename GEN_*_op*(durch) to GEN_*_op*(div)
18196	* lisparit.d, lispbibl.d, io.d (mal_10_plus_x): rename to mult_10_plus_x
18197
181982007-11-26  Reini Urban  <rurban@x-ray.at>
18199
18200	<03_fehler_label>
18201	* io.d: rename labels fehler_nur01 to error_nur01,
18202	fehler_dopp to error_colon,
18203	remove english function translations in comments
18204	* eval.d: rename labels fehler_zuwenig to error_toofew,
18205	fehler_zuviele_werte to error_toomany_values,
18206	fehler_zuviel to error_toomany
18207	* affi.d, array.d, control.d, eval.d, intmal.d, io.d, lispbibl.d:
18208	* list.d, pathname.d, predtype.d, record.d, stream.d:
18209	rename labels fehler* to error*
18210
182112007-11-27  Sam Steingold  <sds@gnu.org>
18212
18213	* modules/syscalls/posix.lisp (make-xterm-io-stream): use
18214	*ENABLE-CLOS-WARNINGS* instead of *WARN-IF-GF-ALREADY-CALLED*
18215
182162007-11-26  Sam Steingold  <sds@gnu.org>
18217
18218	* modules/clx/new-clx/clx.f, modules/clx/new-clx/clx.lisp:
18219	implement most of Chapter 13 Resources in C,
18220	but commented it out because there is no way to remove a resource
18221
182222007-11-25  Reini Urban <rurban@x-ray.at>
18223
18224	<02_fehler__fun>
18225	* eval.d: rename fehler_(eval|closure|apply|subr)_zuviel to
18226	error_*_toomany
18227	* control.d, eval.d, foreign.d, lisparit.d, lispbibl.d:
18228	rename fehler_mv_zuviel to error_mv_toomany
18229	* array.d: rename fehler_subscript_anz to error_subscript_count
18230	* io.d: rename fehler_dispatch_zahl to error_dispatch_number,
18231	fehler_eof_aussen to error_eof_outside,
18232	fehler_eof_innen to error_eof_inside
18233	* spvw_allocate.d: fehler_speicher_voll to error_speicher_voll
18234	* modules/clx/new-clx/clx.f, modules/rawsock/rawsock.c:
18235	* modules/syscalls/calls.c, utils/modprep.lisp:
18236	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
18237	* dfloat.d, encoding.d, error.d, eval.d, ffloat.d, flo_konv.d:
18238	* flo_rest.d, foreign.d, intbyte.d, intdiv.d, io.d, lfloat.d:
18239	* lisparit.d, lispbibl.d, list.d, pathname.d, predtype.d:
18240	* realtran.d, record.d, sequence.d, sfloat.d, socket.d, spvw.d:
18241	* spvw_allocate.d, stream.d, symbol.d, time.d, weak.d:
18242	rename fehler_ to error_
18243	* .gdbinit: rename fehler to error
18244	* CodingStyle: add Reini Urban for the upcoming translations
18245
182462007-11-24  Reini Urban  <rurban@x-ray.at>
18247
18248	<01_fehler_fun>
18249	* modules/berkeley-db/bdb.c, modules/clx/new-clx/clx.f:
18250	* modules/dirkey/dirkey.c, modules/pari/cpari.c, modules/pcre/cpcre.c:
18251	* modules/rawsock/rawsock.c, modules/syscalls/calls.c:
18252	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
18253	* encoding.d, error.d, eval.d, flo_konv.d, foreign.d, hashtabl.d:
18254	* i18n.d, intbyte.d, intdiv.d, intelem.d, intlog.d, intmal.d, io.d:
18255	* lfloat.d, lisparit.d, lispbibl.d, list.d, misc.d, package.d:
18256	* pathname.d, predtype.d, record.d, sequence.d, socket.d, spvw.d:
18257	* spvw_allocate.d, spvw_memfile.d, spvw_sigint.d, stream.d, symbol.d:
18258	* time.d, weak.d, utils/modprep.lisp: rename fehler() to error()
18259	* modules/berkeley-db/bdb.c, modules/dirkey/dirkey.c:
18260	* modules/pari/cpari.c, modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
18261	* modules/regexp/regexi.c, modules/syscalls/calls.c:
18262	* affi.d, array.d, charstrg.d, control.d, debug.d, encoding.d, error.d:
18263	* eval.d, foreign.d, i18n.d, io.d, lispbibl.d, list.d, misc.d:
18264	* package.d, pathname.d, predtype.d, record.d, sequence.d, spvw.d:
18265	* stream.d, symbol.d: rename error (enum condition_t) to error_condition
18266
182672007-11-23  Sam Steingold  <sds@gnu.org>
18268
18269	Implement RFE#36: handle CLOS warnings in a CLOSy way
18270	* init.lisp (clos-warning, gf-already-called-warning)
18271	(gf-replacing-method-warning): export from CLOS
18272	* clos-package.lisp: ditto
18273	* condition.lisp (clos-warning, simple-clos-warning)
18274	(gf-replacing-method-warning, simple-gf-replacing-method-warning)
18275	(gf-already-called-warning, simple-gf-already-called-warning): define
18276	(warn-of-type): extract from WARN, accept warning class
18277	(warn): use WARN-OF-TYPE
18278	(set-global-handler): bind CLOS::*ENABLE-CLOS-WARNINGS* instead of
18279	individial variables
18280	* clos.lisp (*enable-clos-warnings*): set to T when everything is loaded
18281	* clos-print.lisp (print-object-method-warning): use the new
18282	framework (still commented out)
18283	* clos-genfun2b.lisp (*gf-warn-on-replacing-method*): remove
18284	(std-add-method, std-remove-method): use CLOS-WARN
18285	(*warn-if-gf-already-called*): remove
18286	(gf-already-called-warning): add
18287	(warn-if-gf-already-called): use it
18288	* clos-class6.lisp (class-not-yet-defined): add
18289	(class-direct-superclasses, class-direct-slots)
18290	(class-direct-default-initargs): use it
18291	* clos-class3.lisp (defclass, ensure-class-using-class-<t>)
18292	(reinitialize-instance-<defined-class>, std-compute-cpl)
18293	(compute-slots-<slotted-class>-around)
18294	(make-instances-obsolete-<semi-standard-class>): use CLOS-WARNING
18295	* clos-class0.lisp (*enable-clos-warnings*): declare
18296	(clos-warn, clos-warning): add
18297
182982007-11-21  Sam Steingold  <sds@gnu.org>
18299
18300	fix bug#427: PPRINT-LOGICAL-BLOCK ignores
18301	*PRINT-PPRINT-DISPATCH-TABLE*
18302	* io.d (prin_object_dispatch_pretty): do not check *PRIN-PPRINTER*
18303
183042007-11-21  Jack Unrue  <jdunrue@gmail.com>
18305	Sam Steingold  <sds@gnu.org>
18306
18307	* makemake.in (install.nsi): copy from win32msvc/nsis and
18308	substitute @NAME@, @VERSION@, @BASE_MODULES@, and @MODULES@
18309	(add_to_path.nsh, is_user_admin.nsh): copy from win32msvc/nsis
18310	(COPYRIGHT.rtf): create from COPYRIGHT using text_to_rtf.lisp
18311	(distrib) [win32]: invoke makensis to build woe32 installer
18312	(clean1): remove COPYRIGHT.rtf and install.nsi
18313
183142007-11-20  Sam Steingold  <sds@podval.org>
18315
18316	* modules/libsvm: upgraded to upstream 2.85
18317
183182007-11-19  Sam Steingold  <sds@gnu.org>
18319
18320	* makemake.in (trampoline/trampoline.h): remove an unused target
18321
183222007-11-18  Bruno Haible  <bruno@clisp.org>
18323
18324	Fix bug#426: fresh-line at the end of a line containing
18325	only tabs.
18326	* stream.d (wr_ss_lpos): Add special handling of TAB characters.
18327	(write_char): Likewise.
18328
183292007-11-19  Sam Steingold  <sds@gnu.org>
18330
18331	* gllib/config.charset, glm4/gettext.m4, glm4/gnulib-comp.m4:
18332	* glm4/iconv.m4, glm4/intdiv0.m4, glm4/intl.m4, glm4/intlmacosx.m4:
18333	* glm4/lib-link.m4, glm4/link-follow.m4, glm4/lock.m4:
18334	* glm4/longlong.m4, glm4/po.m4, glm4/printf-posix.m4:
18335	* glm4/wint_t.m4, glm4/ulonglong.m4: sync with gnulib
18336
183372007-11-18  Sam Steingold  <sds@gnu.org>
18338
18339	* version.h: tag and push out 2.43
18340
183412007-11-18  Sam Steingold  <sds@gnu.org>
18342
18343	* Makefile.devel (all): remove src/uninames.h
18344	(uninames.h): remove (it comes from gnulib now)
18345
183462007-11-16  Sam Steingold  <sds@gnu.org>
18347
18348	* lispbibl.d [UNIX || __MINGW32__]: do not undef malloc, instead ...
18349	* makemake.in: when HAVE_MALLOC_POSIX=0, link lisp.run, clisp.exe
18350	and utils with gllib/malloc (as EXTRAOBJ)
18351	* modules/regexp/configure.in, modules/regexp/link.sh.in:
18352	malloc.o, when needed, is already in lisp.a
18353
183542007-11-14  Sam Steingold  <sds@gnu.org>
18355
18356	* win32msvc/nsis/text_to_rtf.lisp: rewrote:
18357	use \uNNNN to output Unicode characters;
18358	use "Courier New" (fixed width) font to preserve formatting
18359	use bold for the headers
18360	do not use regexp
18361
183622007-11-14  Elliott Slaughter  <elliottslaughter@gmail.com>
18363
18364	* win32msvc/nsis/text_to_rtf.lisp: ASCII text to RTF converter
18365
183662007-11-13  Sam Steingold  <sds@gnu.org>
18367
18368	fix bug#425: with-standard-io-syntax/*print-pprint-dispatch*
18369	* pprint.lisp (make-pprint-dispatch): add
18370	(*print-pprint-dispatch*, copy-pprint-dispatch): use it
18371	* defs2.lisp (with-standard-io-syntax): bind
18372	*PRINT-PPRINT-DISPATCH* to (COPY-PPRINT-DISPATCH NIL)
18373
183742007-11-13  Sam Steingold  <sds@gnu.org>
18375
18376	* makemake.in (CFLAGS): add -Igllib
18377	(MODULE_CFLAGS): do not add -Igllib
18378	this is necessary for the systems that require stdint from gllib,
18379	e.g., solaris
18380
183812007-11-10  Sam Steingold  <sds@gnu.org>
18382
18383	* modules/clx/new-clx/clx.f (XLIB:DISPLAY-NOOP): new function
18384	* modules/clx/new-clx/clx.lisp (DISPLAY-NOOP): export it
18385
183862007-11-07  Elliott Slaughter  <elliottslaughter@gmail.com>
18387	Sam Steingold  <sds@gnu.org>
18388
18389	* win32msvc/nsis/add_to_path.nsh, win32msvc/nsis/install.nsi:
18390	* win32msvc/nsis/is_user_admin.nsh: NullSoft Install System scripts
18391
183922007-11-07  Sam Steingold  <sds@gnu.org>
18393
18394	* makemake.in (--help): use @PACKAGE_STRING@ (@PACKAGE_BUGREPORT@)
18395
183962007-11-07  Ralf-P. Weinmann  <weinmann@cdc.informatik.tu-darmstadt.de>
18397	Sam Steingold  <sds@gnu.org>
18398
18399	fix bug#421: macosx: clisp|tee error
18400	* stream.d (finish_tty_output, force_tty_output, clear_tty_output)
18401	[UNIX_DARWIN]: treat ENOTSUP like EOPNOTSUPP
18402
184032007-11-06  Sam Steingold  <sds@gnu.org>
18404
18405	* Makefile.devel (SOURCES5): remove $T/nextapp
18406	* nextapp: remove obsolete directory
18407	* unix.d (nxterminal_*): remove
18408	* stream.d, spvw.d, pseudofun.d, lispbibl.d, constsym.d, constobj.d:
18409	remove all NEXTAPP code
18410
184112007-11-06  Sam Steingold  <sds@gnu.org>
18412
18413	* modules/wildcard/configure.in: fnmatch.h is in the build
18414	directory, not the source directory
18415
184162007-11-06  Sam Steingold  <sds@gnu.org>
18417
18418	* makemake.in (XCC_CREATESHARED): treat mingw just like all the
18419	other free OS (gnu/linux/bsd/cygwin)
18420
184212007-11-06  Sam Steingold  <sds@gnu.org>
18422
18423	* modules/wildcard/configure.in: use ac_cv_func_fnmatch_gnu
18424	instead of FNMATCH_H
18425
184262007-11-05  Sam Steingold  <sds@gnu.org>
18427
18428	* clisp-link.in (run): fix for --with-dynamic-modules
18429
184302007-11-05  Sam Steingold  <sds@gnu.org>
18431
18432	for better dynamic module support:
18433	* modules/berkeley-db/dbi.lisp: (provide "berkeley-db")
18434	* modules/dirkey/dirkey1.lisp: (provide "dirkey")
18435	* modules/fastcgi/fastcgi.lisp: (provide "fastcgi")
18436	* modules/gdbm/gdbm.lisp: (provide "gdbm")
18437	* modules/i18n/i18n.lisp: (provide "i18n")
18438	* modules/oracle/oracle.lisp: (provide "oracle")
18439	* modules/pari/pari.lisp: (provide "pari")
18440	* modules/pcre/pcre.lisp: (provide "pcre")
18441	* modules/rawsock/sock.lisp: (provide "rawsock")
18442	* modules/regexp/regexp.lisp: (provide "regexp")
18443	* modules/syscalls/posix.lisp: (provide "syscalls")
18444	* modules/wildcard/wildcard.lisp: (provide "wildcard")
18445
184462007-11-05  Sam Steingold  <sds@gnu.org>
18447
18448	fix --with-dynamic-modules build
18449	* makemake.in: pass XCC_PICFLAG to "make -C gllib"
18450	* clisp-link.in: run prepare_dynamic_module in $destinationdir
18451
184522007-11-04  Sam Steingold  <sds@gnu.org>
18453
18454	* modules/pcre/cpcre.c (check_pattern): pat argument is modified,
18455	so it has to be a pointer
18456	(PATTERN-INFO, PCRE-NAME-TO-INDEX, PCRE-EXEC): update callers
18457	* modules/rawsock/rawsock.c (check_struct_data): arg is modified,
18458	so it has to be a pointer
18459	(SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT)
18460	(GETNAMEINFO, fill_msghdr, SENDTO): update callers
18461	* modules/syscalls/calls.c (check_utmpx): add
18462	(GETUTXENT, GETUTXLINE, PUTUTXLINE): use it
18463
184642007-11-04  Sam Steingold  <sds@gnu.org>
18465
18466	* modules/pari/configure.in: check for init_opts
18467	* modules/pari/cpari.c (init_for_clisp) [HAVE_INIT_OPTS]:
18468	set init_opts to 0
18469
184702007-11-02  Sam Steingold  <sds@gnu.org>
18471
18472	* Makefile.devel (ffcall-aux): split out from all
18473	(ffcall/avcall/avcall.h.mingw32, ffcall/vacall/vacall.h.mingw32)
18474	(ffcall/callback/vacall_r/vacall_r.h.mingw32): add targets
18475	(check-configures): depend on configures
18476	(tp-mail): CC to clisp-devel
18477
184782007-11-02  Sam Steingold  <sds@gnu.org>
18479
18480	* ffcall: switch from gl_AC_TYPE_LONG_LONG to AC_TYPE_LONG_LONG_INT
18481	* m4/intparam.m4 (CL_INTPARAM_CROSS): ditto
18482
184832007-11-02  Sam Steingold  <sds@gnu.org>
18484
18485	* version.sh: 2.43 (2007-11-18)
18486
184872007-11-01  Sam Steingold  <sds@gnu.org>
18488
18489	* makemake.in (boot): ensure that FILES in makevars are all local
18490	* clisp-link.in (normalize): new function
18491	(link, link_some): use it
18492	(add-module-set, run): avoid "crazy doubly nested lists"
18493	* modules/wildcard/link.sh.in, modules/regexp/link.sh.in:
18494	NEW_FILES are paths to gllib while
18495	NEW_LIBS are library names without directory
18496
184972007-11-01  Sam Steingold  <sds@gnu.org>
18498
18499	* modules/pari/configure.in: check for freeall pari_init
18500	killallfiles pari_init_opts
18501	* modules/pari/cpari.c: #include "config.h"
18502	(init_for_clisp): drop unused variables
18503	(init_for_clisp, fini_for_clisp): check functions before calling them
18504
185052007-10-31  Sam Steingold  <sds@gnu.org>
18506
18507	* modules/regexp/configure.in: ac_use_included_regex is NOT cached,
18508	so we have to duplicate the logic of src/glm4/regex.m4
18509
185102007-10-30  Sam Steingold  <sds@gnu.org>
18511
18512	* charstrg.d: do not include "width.c" & "uniname.c"
18513	* makemake.in (FILES, OBJECTS): add uniname & width
18514	(UNICODE_EXTRA): remove uniname & width
18515	(boot): cannot assume that an element of $FILES does not contain slashes
18516	* clisp-link.in (link): use dirname and basename instead of sed
18517	(link_some): do not assume that file does not contain slashes
18518
185192007-10-31  Sam Steingold  <sds@gnu.org>
18520
18521	* modules/regexp/configure.in (MALLOC_O) [gl_cv_func_malloc_posix=yes]:
18522	set to "malloc.o"
18523	* modules/regexp/link.sh.in (file_list): add @MALLOC_O@
18524
185252007-10-30  Sam Steingold  <sds@gnu.org>
18526
18527	* makemake.in, modules/regexp/link.sh.in, modules/wildcard/link.sh.in:
18528	work around the 'unexpected token `;' in  for h in  ; do' bug
18529	http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_09_04_03
18530
185312007-10-30  Sam Steingold  <sds@gnu.org>
18532
18533	* lispbibl.d (HAVE_LONG_LONG_INT) [long_bitsize==64]: define only
18534	if not already defined (avoid a redefinition warning)
18535	(_GNU_SOURCE): do not define here, it comes from AC_GNU_SOURCE
18536	* configure.in: do not call AC_AIX, AC_GNU_SOURCE, CL_PROG_RANLIB
18537	AC_USE_SYSTEM_EXTENSIONS, they are covered in gl_EARLY
18538	use AC_HEADER_STDC instead of CL_STDC_HEADERS: it is already used
18539	in all modules and the reasons for not checking some standard
18540	headers are no longer applicable
18541	* m4/ranlib.m4, m4/stdc-headers.m4: remove obsoleted files
18542	* ffcall/Makefile.devel: drop ranlib.m4 & stdc-headers.m4
18543	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
18544	* ffcall/callback/trampoline_r/configure.in:
18545	* ffcall/callback/vacall_r/configure.in:
18546	* ffcall/trampoline/configure.in, ffcall/vacall/configure.in:
18547	use AC_PROG_RANLIB instead of CL_PROG_RANLIB
18548	* m4/general.m4 (CL_FFCALL_COMMON_TRAMPOLINE): use AC_HEADER_STDC
18549	instead of CL_STDC_HEADERS
18550
185512007-10-29  Sam Steingold  <sds@gnu.org>
18552
18553	* m4/ldap.m4, m4/netdb.m4, m4/getcwd.m4: remove trivial files
18554	* m4/signed.m4: remove unused file
18555	* configure.in: do not call CL_GETWD, CL_LDAP & CL_NETDB
18556	* modules/dirkey/configure.in: check for headers explicitly
18557	* m4/gethostbyname.m4 (CL_GETHOSTBYNAME): check for <netdb.h> here
18558	* unix.d (MAXPATHLEN): use PATH_MAX (when defined)
18559	or else 4096 (instead of 1024 previously)
18560	(getwd, getcwd): drop prototypes
18561
185622007-10-29  Sam Steingold  <sds@gnu.org>
18563
18564	* configure.in (AC_COPYRIGHT): update year
18565	(AC_PREREQ): require 2.61 (datarootdir et al, see below 2007-10-27)
18566
185672007-10-29  Sam Steingold  <sds@gnu.org>
18568
18569	* configure.in: use AC_TYPE_LONG_LONG_INT instead of the obsolescent
18570	gl_AC_TYPE_LONG_LONG
18571	* lispbibl.d, foreign.d, affi.d, aridecl.d, arilev0.d, arilev1.d:
18572	* foreign.d, genclisph.d, intelem.d, intparam.c, time.d:
18573	use HAVE_LONG_LONG_INT instead of HAVE_LONGLONG
18574
185752007-10-29  Sam Steingold  <sds@gnu.org>
18576
18577	Work around the wildcard build error reported in
18578	<http://article.gmane.org/gmane.lisp.clisp.devel/16815>
18579	<https://sourceforge.net/p/clisp/mailman/message/14629031/> and
18580	<http://article.gmane.org/gmane.lisp.clisp.devel/16824>
18581	<https://sourceforge.net/p/clisp/mailman/message/14629048/>
18582	The problem is that all gnulib autoconf macros are called from
18583	src/glm4/gnulib-comp.m4:gl_INIT, so they should not be called from
18584	module configures; we can rely on sourcing config.cache.
18585	* configure.in: do not call gl_STDBOOL_H & gl_STDINT_H since they
18586	are already called from gl_INIT
18587	* modules/regexp/configure.in: do not call gl_FUNC_ALLOCA &
18588	gl_REGEX: they are already called from the top-level configure.in
18589	* modules/wildcard/configure.in: do not call gl_FUNC_FNMATCH_POSIX,
18590	rely on gl_INIT in top-level configure.in
18591
185922007-10-29  Vadim Konovalov  <vkonovalov@alcatel-lucent.com>
18593	Sam Steingold  <sds@gnu.org>
18594
18595	* makemake.in [win32msvc]: drop support for msvc4 & msvc5, thus
18596	drop gcc-cccp and use deema instead
18597	* Makefile.devel: do not generate makefiles for msvc[45] and debug
18598	* utils/gcc-cccp: remove
18599
186002007-10-29  Sam Steingold  <sds@gnu.org>
18601
18602	* utils/deema.c: extend to fully support the makemake equivalent
18603	sed -e 's/, *)/,_EMA_)/g' -e 's/, *,/,_EMA_,/g'
18604	Reported by Vadim Konovalov <vkonovalov@alcatel-lucent.com>
18605
186062007-10-28  Sam Steingold  <sds@gnu.org>
18607
18608	* Makefile.devel (update-docbook-utils): remove from all because
18609	it downloads 23MB data
18610	* doc/Makefile (docbook-dtd, docbook-xsl): replaces update-docbook-utils
18611
186122007-10-27  Sam Steingold  <sds@gnu.org>
18613
18614	* utils/fix-perms.sh: all Makefile* are non-executable
18615
186162007-10-27  Sam Steingold  <sds@gnu.org>
18617
18618	* makemake.in, configure, po/Makefile.in.in: use datarootdir
18619	instead of datadir, as per autoconf 2.60
18620
186212007-10-27  Sam Steingold  <sds@gnu.org>
18622
18623	* modules/oracle/configure.in, modules/fastcgi/configure.in: use
18624	CL_MODULE_COMMON_CHECKS to avoid errors when generating aclocal.m4
18625
186262007-10-27  Sam Steingold  <sds@gnu.org>
18627
18628	Berkeley-DB 4.5.20 now works
18629	* modules/berkeley-db/configure.in (DB_READ_UNCOMMITTED)
18630	(DB_READ_COMMITTED): do not check, they are #defined
18631	* modules/berkeley-db/bdb.c: ditto
18632	(dbe_get_tas_spins) [HAVE_DB_ENV_MUTEX_GET_TAS_SPINS]: define
18633	(dbe_set_tas_spins) [HAVE_DB_ENV_MUTEX_SET_TAS_SPINS]: define
18634
186352007-10-26  Sam Steingold  <sds@gnu.org>
18636
18637	* modules/regexp/regexi.c: do not include <alloca.h>: it is
18638	defined, if necessary, in <clisp.h>; include "regex.h", not <>
18639	* modules/regexp/configure.in [ac_use_included_regex=yes]: link
18640	src/gllib/regex.h into the build directory
18641	* modules/wildcard/wildcard.lisp: include the local "config.h",
18642	not the global <> one
18643	* modules/wildcard/configure.in [FNMATCH_H]: link
18644	src/gllib/fnmatch.h into the build directory
18645	Reported by Yaroslav Kavenchuk <kavenchuk@tut.by>
18646
186472007-10-26  Sam Steingold  <sds@gnu.org>
18648
18649	* Makefile.devel (win32msvc/makefile.msvc*): generate from src to
18650	enable search in gllib
18651	* clisp.spec (modules): add libsvm
18652
186532007-10-26  Sam Steingold  <sds@gnu.org>
18654
18655	* makemake.in (hln): use utils/hln.lisp instead of utils/hln/
18656	* utils/hln/: remove
18657	* utils/hln.lisp: add
18658	* Makefile.devel (CONFIGURES): drop hln
18659
186602007-10-26  Sam Steingold  <sds@gnu.org>
18661
18662	* Makefile.devel (gnulib-update): also get link-follow
18663	* glm4/link-follow.m4: add
18664	* modules/syscalls/configure.in: call gl_AC_FUNC_LINK_FOLLOWS_SYMLINK
18665	* modules/syscalls/calls.c (my_link)
18666	[!LINK_FOLLOWS_SYMLINKS && HAVE_REALPATH]: work around link(2) bug
18667	(hardlink_file) [UNIX]: use my_link()
18668
186692007-10-25  Sam Steingold  <sds@gnu.org>
18670
18671	* init.lisp: all foreign messages require UNICODE because they use
18672	non-ASCII characters (including german too!)
18673
186742007-10-24  Sam Steingold  <sds@gnu.org>
18675
18676	support post-4.4.20 berkeley-db; more uniform option handling
18677	* modules/berkeley-db/configure.in (DB_LOCK_READ_UNCOMMITTED)
18678	(DB_READ_UNCOMMITTED, DB_READ_COMMITTED): check for declarations
18679	* modules/berkeley-db/bdb.c (DB_LOCK_READ_UNCOMMITTED)
18680	[!HAVE_DECL_DB_LOCK_READ_UNCOMMITTED]: define to DB_LOCK_DIRTY
18681	(DB_READ_UNCOMMITTED) [!HAVE_DECL_DB_READ_UNCOMMITTED]:
18682	define to DB_DIRTY_READ
18683	(DB_READ_COMMITTED) [!HAVE_DECL_DB_READ_COMMITTED]:
18684	define to DB_DEGREE_2
18685	(DB-GET, DB-OPEN, MAKE-DBC, DBC-GET, LOCK-GET, TXN-BEGIN): accept
18686	only :READ-UNCOMMITTED and READ-COMMITTED, not :DEGREE-2 & DIRTY-READ
18687	Reported by Reini Urban <rurban@x-ray.at>
18688
186892007-10-24  Sam Steingold  <sds@gnu.org>
18690
18691	* Makefile.devel (build-aux-update): new .PHONY target, extracted
18692	from gnulib-update; also updates ltmain.sh and compile
18693	(gnulib-update): depend on build-aux-update
18694
186952007-10-24  Sam Steingold  <sds@gnu.org>
18696
18697	* Makefile.devel (gnulib-update): also get
18698	uniwidth/width streq uniname/uniname unitypes
18699	* cjk.h, streq.h, uniname.c, uniname.h, uninames.h, unitypes.h,
18700	* uniwidth.h, width.c: remove; get them from gnulib
18701	* makemake.in: find these files in gllib
18702
187032007-10-24  Sam Steingold  <sds@gnu.org>
18704
18705	* Makefile.devel (AUTOCONF_FILES): src/aclocal.m4
18706	(autoconf/aclocal.m4): move to aclocal.m4
18707	(autoconf/autoconf.m4): remove
18708	this move is necessary for automake which expects aclocal.m4 in
18709	the current directory, just like configure.in
18710
187112007-10-24  Sam Steingold  <sds@gnu.org>
18712
18713	* m4/gethostname.m4, m4/readlink.m4: remove trivial files
18714	* configure.in: use AC_CHECK_FUNCS instead of
18715	CL_GETHOSTNAME & CL_READLINK
18716
187172007-10-23  Sam Steingold  <sds@gnu.org>
18718
18719	* error.d (begin_error): check *RECURSIVE-ERROR-COUNT* before
18720	accessing it, not after
18721
187222007-10-22  Sam Steingold  <sds@gnu.org>
18723
18724	* Makefile.devel (upload): split into
18725	upload-ssh upload-sf upload-sunsite upload-gnu
18726
187272007-10-22  Sam Steingold  <sds@gnu.org>
18728
18729	* modules/clx/new-clx/clx.f (xlib_error_handler): fix converter types:
18730	NextRequest and serial are unsigned long, while minor_code is uint8
18731	(XLIB:GET-PROPERTY): fix type of r (int->Status)
18732
187332007-10-22  Sam Steingold  <sds@gnu.org>
18734
18735	remove libcharset; use gnulib/localcharset
18736	* Makefile.devel (CONFIGURES): remove libcharset/configure
18737	(libcharset/configure): remove target
18738	(gnulib-update): add localcharset
18739	(SOURCES4): drop libcharset
18740	* configure: do not configure libcharset
18741	* encoding.d: include "localcharset.h" instead of "libcharset.h"
18742	* makemake.in: use gnulib/localcharset instead of libcharset
18743
187442007-10-22  Sam Steingold  <sds@gnu.org>
18745
18746	* Makefile.devel (gnulib-update): cvs up gnulib;
18747	check for duplicate m4 files
18748	declare phony targets as such
18749	(multibuild-linux-x86, multibuild-darwin-powerpc): use descriptive
18750	directory names
18751
187522007-10-22  Sam Steingold  <sds@gnu.org>
18753
18754	* makemake.in (LIBOBJS): undo the 2007-10-19 patch; completely remove
18755	(XCFLAGS): do not add -Igllib
18756	(MODULE_CFLAGS): add -Igllib
18757
187582007-10-22  Sam Steingold  <sds@gnu.org>
18759
18760	* m4/glibc2.m4, m4/lcmessage.m4, m4/progtest.m4, m4/uintmax_t.m4:
18761	* m4/wchar_t.m4, m4/xsize.m4: remove files, they are now in glm4
18762
187632007-10-22  Sam Steingold  <sds@gnu.org>
18764
18765	* configure: disable "exit on error" (set +x) around 'test -z
18766	"$stacksizelimit"' to access exit status instead of exiting configure
18767
187682007-10-22  Sam Steingold  <sds@gnu.org>
18769
18770	* makemake.in [CC_CPLUSPLUS]: build gnulib with gcc because of
18771	http://sources.redhat.com/bugzilla/show_bug.cgi?id=5200
18772	(version.h): always use ${SPVW_VERSION}
18773	* version.h: regenerated
18774
187752007-10-20  Sam Steingold  <sds@gnu.org>
18776
18777	* lispbibl.d (malloc) [UNIX | __MINGW32__]: undef after
18778	#include "config.h" because it could be defined as rpl_malloc by gnulib
18779
187802007-10-20  Sam Steingold  <sds@gnu.org>
18781
18782	* modules/clx/new-clx/clx.f (OPEN-FONT, LIST-FONTS, LIST-FONT-NAMES):
18783	use check_string & check_uint_defaulted
18784	(make_font_with_info): rename to make_font; do not accept info
18785	(LIST-FONTS): do not fill XFontStruct (FONT-INFO) because it
18786	introduces a memory leak
18787	(CLOSE-FONT): call DISCARD-FONT-INFO
18788
187892007-10-20  Sam Steingold  <sds@gnu.org>
18790
18791	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
18792	* ffcall/callback/trampoline_r/configure.in:
18793	* ffcall/callback/vacall_r/configure.in:
18794	* ffcall/trampoline/configure.in, ffcall/vacall/configure.in:
18795	call AC_CONFIG_AUX_DIR before AC_PROG_INSTALL
18796
187972007-10-19  Sam Steingold  <sds@gnu.org>
18798
18799	* modules/regexp/configure.in (REGEX_H, ALLOCA): drop unused variables
18800	* modules/regexp/link.sh.in (ALLOCA): drop useless variable
18801	* modules/regexp/regexi.c [HAVE_ALLOCA_H]: include <alloca.h>
18802
188032007-10-19  Sam Steingold  <sds@gnu.org>
18804
18805	* ffcall/Makefile.devel (build-aux/config.guess, build-aux/config.sub)
18806	(build-aux/ltmain.sh, build-aux/install-sh): new targets (copy
18807	from CLISP which copies from gnulib)
18808	(ffcall/build-aux/install-sh): add
18809	(ffcall/build-aux/config.guess, ffcall/build-aux/config.sub)
18810	(ffcall/build-aux/ltmain.sh): update
18811
188122007-10-19  Sam Steingold  <sds@gnu.org>
18813
18814	* makemake.in (GL_LIBOBJS): init from @gl_LIBOBJS@
18815	(LIBOBJS): link utils using it
18816
188172007-10-19  Sam Steingold  <sds@gnu.org>
18818
18819	* m4/general.m4 (CL_MODULE_COMMON_CHECKS): add
18820	* modules/berkeley-db/configure.in, modules/dirkey/configure.in:
18821	* modules/gdbm/configure.in, modules/gtk2/configure.in:
18822	* modules/i18n/configure.in, modules/pari/configure.in:
18823	* modules/pcre/configure.in, modules/postgresql/configure.in:
18824	* modules/rawsock/configure.in, modules/readline/configure.in
18825	* modules/regexp/configure.in, modules/syscalls/configure.in
18826	* modules/wildcard/configure.in, modules/zlib/configure.in: use it
18827	* m4/general.m4 (CL_FFCALL_COMMON_LIBTOOL)
18828	(CL_FFCALL_COMMON_TRAMPOLINE): add
18829	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
18830	* ffcall/callback/vacall_r/configure.in: use CL_FFCALL_COMMON_LIBTOOL
18831	* ffcall/callback/trampoline_r/configure.in:
18832	* ffcall/trampoline/configure.in: use CL_FFCALL_COMMON_LIBTOOL
18833	and CL_FFCALL_COMMON_TRAMPOLINE
18834
188352007-10-19  Sam Steingold  <sds@gnu.org>
18836
18837	autoconf cleanup
18838	* ffcall/Makefile.devel (m4/install.m4): drop
18839	(m4/libtool.m4): do not generate from clisp
18840	* ffcall/m4/libtool.m4: use AC_CANONICAL_HOST
18841	instead of CL_CANONICAL_HOST
18842	* ffcall/autoconf/aclocal.m4 (m4/install.m4): drop
18843	* ffcall/avcall/configure.in, ffcall/callback/configure.in:
18844	* ffcall/callback/trampoline_r/configure.in:
18845	* ffcall/callback/vacall_r/configure.in:
18846	use AC_PROG_INSTALL instead of CL_PROG_INSTALL and
18847	AC_CONFIG_AUX_DIR instead of CL_CANONICAL_HOST
18848	* m4/general.m4: drop CL_CANONICAL_HOST, use AC_CANONICAL_HOST
18849	instead; we have build-aux/install-sh anyway, so no need for the trick
18850	* m4/install.m4, m4/lib-ld.m4, m4/libtool.m4: drop unused
18851	* configure.in: use AC_CANONICAL_HOST & CL_CANONICAL_HOST_CPU
18852	instead of CL_CANONICAL_HOST;
18853	and AC_PROG_INSTALL instead of CL_PROG_INSTALL
18854
188552007-10-18  Sam Steingold  <sds@gnu.org>
18856
18857	* modules/gdbm/gdbm.c (check_gdbm, open_gdbm): fix g++ compilation
18858
188592007-10-18  Sam Steingold  <sds@gnu.org>
18860
18861	* gettext.m4, iconv.m4, intdiv0.m4, intmax.m4, inttypes-pri.m4:
18862	* inttypes.m4, inttypes_h.m4, nls.m4, po.m4, size_max.m4:
18863	* printf-posix.m4, stdint_h.m4, lib-link.m4, lib-prefix.m4:
18864	* onceonly.m4: import from gnulib, so move from src/m4 to src/glm4
18865	* Makefile.devel (gnulib-update): also get havelib & gettext
18866	* ffcall/Makefile.devel (m4/longlong.m4): get from $(CLISP_DIR)/src/glm4
18867
188682007-10-18  Sam Steingold  <sds@gnu.org>
18869
18870	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-DELETE, CHECK_RUN):
18871	tighten error checking: any non-0 status is an error
18872
188732007-10-18  Sam Steingold  <sds@gnu.org>
18874
18875	* Makefile.devel (view-html): use BROWSERS
18876
188772007-10-18  Sam Steingold  <sds@gnu.org>
18878
18879	* makemake.in (EVERY_INCLUDES_H): stdbool.h & stdint.h are in gllib
18880	* configure: accept --vimdir and pass it on to makemake
18881	always run makemake, it is no longer a user-level command
18882	this fixes bug#331: clisp configure does not follow GNU
18883	conventions
18884
188852007-10-17  Sam Steingold  <sds@gnu.org>
18886
18887	* makemake.in (SUBDIRS): pass depfiles to config.status to
18888	re-create gllib/.deps/
18889	* configure.in: use gl_STDBOOL_H instead of gt_STDBOOL_H
18890	* modules/regexp/Makefile.in: drop REGEX_O
18891	* modules/regexp/link.sh.in (file_list): fix adding @ALLOCA@ & @REGEX_O@
18892	* modules/wildcard/Makefile.in: drop FNMATCH_O
18893	* modules/wildcard/link.sh.in (file_list): fix adding @FNMATCH_O@
18894	* Makefile.devel (src/gllib/Makefile.in): do not force;
18895	do not create src/configure.ac
18896	(src/autoconf/aclocal.m4): simplify (use src/configure.in as is)
18897	* clisp-link.in (link_some): new function; use it to avoid
18898	accidental creation of circular links because now some module
18899	files may reside in ../gllib instead of the module directory
18900
189012007-10-16  Sam Steingold  <sds@gnu.org>
18902
18903	use gnulib-tool to synchronize with gnulib
18904	* unixconf.h.in: rename to config.h.in
18905	* Makefile.devel (CONFIG_H_IN): update
18906	(gnulib-update): new target
18907	* configure.in: generate gllib/Makefile; call gl_EARLY, gl_INIT
18908	* makemake.in: unixconf.h -> config.h
18909	(MAKE): use @SET_MAKE@
18910	(SUBDIRS): add, start with building gllib
18911	(am--refresh): new target, required by automake
18912	* lispbibl.d, win32.d: unixconf.h -> config.h
18913	* stdbool.h.in, stdint_.h: remove gnulib files
18914	* gllib, glm4: add directories (created by gnulib-update)
18915	* m4/alloca.m4, m4/codeset.m4, m4/extensions.m4, m4/fnmatch.m4:
18916	* m4/glibc21.m4, m4/longlong.m4, m4/mbstate_t.m4, m4/regex.m4:
18917	* m4/stdbool.m4, m4/stdint.m4, m4/ulonglong.m4, m4/wint_t.m4:
18918	remove files, they are now in glm4
18919	* modules/regexp/: remove gnulib files
18920	* modules/regexp/link.sh.in, modules/regexp/Makefile.in: update
18921	* modules/wildcard/: remove gnulib files
18922	* modules/wildcard/link.sh.in, modules/wildcard/Makefile.in: update
18923
189242007-10-16  Masayuki Onjo  <masayuki.onjo@gmail.com>
18925	Sam Steingold  <sds@gnu.org>
18926
18927	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-DELETE): signal an error
18928	on failure instead of returning a boolean
18929
189302007-10-16  Sam Steingold  <sds@gnu.org>
18931
18932	* Makefile.devel (GPG): use gpg, not gpg2
18933	(tag-release): pass "." to cvs
18934
189352007-10-16  Sam Steingold  <sds@gnu.org>
18936
18937	* version.sh: clisp 2.42 release
18938
189392007-10-15  Sam Steingold  <sds@gnu.org>
18940
18941	* modules/clx/new-clx/demos/qix.lisp (qix): use uniform UI
18942	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): greynetic &
18943	bball are broken
18944
189452007-10-15  Sam Steingold  <sds@gnu.org>
18946
18947	* Makefile.devel (TP_EMAIL): coordinator@translationproject.org
18948
189492007-10-15  Sam Steingold  <sds@gnu.org>
18950
18951	* makemake.in (XCFLAGS) [debug & cpu=x86_64]: omit -DDEBUG_SPVW to
18952	work around bug#315: amd64 debug build broken (gc aborts)
18953
189542007-10-13  Sam Steingold  <sds@gnu.org>
18955
18956	* modules/gdbm/gdbm.c (check_gdbm): gdbm arg is a gcv_object_t*
18957	(GDBM-OPEN, GDBM-DEFAULT-KEY-TYPE, GDBM-DEFAULT-VALUE-TYPE, GDBM-CLOSE)
18958	(GDBM-FILE-SIZE, GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY)
18959	(GDBM-NEXTKEY, GDBM-REORGANIZE, GDBM-SYNC, GDBM-EXISTS, GDBM-SETOPT):
18960	update all callers
18961
189622007-10-12  Sam Steingold  <sds@gnu.org>
18963
18964	* version.sh, spvw.d: pretest 2.41.1 (2007-10-12)
18965	* Makefile.devel: coalesce TOPNAME & TOPDIR; fix tp-mail
18966
189672007-10-12  Sam Steingold  <sds@gnu.org>
18968
18969	modify the last patch to be more general and less cluttered by default
18970	* trace.lisp (tracer): replace GLOBAL-CALL-COUNTER and
18971	LOCAL-CALL-COUNTER with BINDINGS
18972	(trace1): use BINDINGS in the trace body
18973	(trace-output, trace-pre-output, trace-post-output): do not accept
18974	LOCAL-CALL-COUNT
18975	(untrace2): remove the PROCLAIM call
18976
189772007-10-11  Sam Steingold  <sds@gnu.org>
18978
18979	* modules/gdbm/gdbm.c (open_gdbm): extract from GDBM-OPEN
18980	(GDBM-OPEN): accept GDBM structures to re-open them if necessary
18981
189822007-10-10  Sam Steingold  <sds@gnu.org>
18983
18984	drop sub-byte bit vectors because we need to keep vector length
18985	together with the data (similar to binary stream i/o)
18986	* modules/gdbm/gdbm.c (gdbm_data_t, check_data_type, with_datum)
18987	(datum_to_object): drop GDBM_DATA_BIT_VECTOR, add
18988	GDBM_DATA_32BIT_VECTOR & GDBM_DATA_8BIT_VECTOR
18989
189902007-10-10  Sam Steingold  <sds@gnu.org>
18991
18992	closed GDBM is no longer accepted by functions requiring DB access
18993	* modules/gdbm/gdbm.c (check_gdbm): accept require_valid_handle arg
18994	(GDBM-FILE-SIZE, GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY)
18995	(GDBM-NEXTKEY, GDBM-REORGANIZE, GDBM-SYNC, GDBM-EXISTS, GDBM-SETOPT):
18996	require an open GDBM
18997
189982007-10-10  Sam Steingold  <sds@gnu.org>
18999
19000	* modules/gdbm/gdbm.c (gdbm_data_t): replace GDBM_DATA_BINARY with
19001	GDBM_DATA_VECTOR and GDBM_DATA_BIT_VECTOR; and GDBM_DATA_FIXNUM
19002	with GDBM_DATA_INTEGER
19003	(check_data_type): use CL symbols for types
19004	(gdbm_open_read_write, gdbm_open_option, gdbm_store_flag):
19005	use the "default=" DEFCHECKER option
19006	(GDBM-OPEN): accept :DEFAULT-KEY-TYPE and :DEFAULT-VALUE-TYPE
19007	(check_gdbm): also extract the default types
19008	(GDBM-DEFAULT-KEY-TYPE, GDBM-DEFAULT-VALUE-TYPE): add
19009	(error_bad_type): add
19010	(with_datum): use it; replace fixnum with integer, using I_to_LEbytes
19011	(datum_to_object): use switch; signal an error on GDBM_DATA_NOTYPE,
19012	handle integers (with LEbytes_to_I) and bit vectors
19013	(gdbm_setopt_option): accept :DEFAULT-VALUE-TYPE and :DEFAULT-KEY-TYPE
19014	(GDBM-SETOPT): set the default types
19015	make available even without HAVE_GDBM_SETOPT
19016	* modules/gdbm/gdbm.lisp (gdbm): add slots PATH, KEY-TYPE, VALUE-TYPE
19017	(gdbm-path, gdbm-default-key-type, gdbm-default-value-type): export
19018	(gdbm-open-p): add
19019
190202007-10-09  Sam Steingold  <sds@gnu.org>
19021
19022	* utils/modprep.lisp (to-C-name): drop package prefix to support
19023	non-keyword symbols in DEFCHECKER which are not followed by "="
19024
190252007-10-09  Masayuki Onjo  <masayuki.onjo@gmail.com>
19026
19027	change keyword argument :binary -> :type
19028	* modules/gdbm/gdbm.c (gdbm_data_t, check_data_type): add
19029	(with_datum, datum_to_object): also handle fixnums and floats
19030	(GDBM-FETCH, GDBM-FIRSTKEY, GDBM-NEXTKEY): take :TYPE instead of :BINARY
19031
190322007-10-09  Sam Steingold  <sds@gnu.org>
19033
19034	implement RFE#33: trace with call counters
19035	* trace.lisp (make-local-call-counter): add
19036	(tracer): add GLOBAL-CALL-COUNTER & LOCAL-CALL-COUNTER slots
19037	(trace1): incf GLOBAL-CALL-COUNTER & bind LOCAL-CALL-COUNTER
19038	(trace-output): abstracted from ...
19039	(trace-pre-output, trace-post-output): accept LOCAL-CALL-COUNTER
19040	(untrace2): make LOCAL-CALL-COUNTER notspecial
19041
190422007-10-08  Sam Steingold  <sds@gnu.org>
19043
19044	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS):
19045	handle FamilyServerInterpreted
19046	(make_xatom): check XGetAtomName return value
19047	(DISPLAY-VENDOR): check ServerVendor return value
19048	(KEYSYM-NAME): check XKeysymToString return value
19049	(XLIB::DISPLAY-EXTENDED-MAX-REQUEST-LENGTH)
19050	(XLIB::DISPLAY-RESOURCE-MANAGER-STRING)
19051	(XLIB::SCREEN-RESOURCE-STRING): add, but do not export
19052	(DISPLAY-RESOURCE-ID-BASE, DISPLAY-RESOURCE-ID-MASK): implement
19053	using <X11/Xlibint.h>
19054	(XScreenNo): return -1 on failure
19055	(XLIB::SET-DISPLAY-DEFAULT-SCREEN): use it
19056	* modules/clx/new-clx/clx.lisp (CHANGE-KEYBOARD-MAPPING)
19057	(KEYBOARD-MAPPING, DISPLAY-RESOURCE-ID-BASE)
19058	(DISPLAY-RESOURCE-ID-MASK): do not mark as UNDEFINED
19059
190602007-10-07  Sam Steingold  <sds@gnu.org>
19061
19062	* modules/clx/new-clx/clx.f (XLIB:SET-DISPLAY-DEFAULT-SCREEN): add
19063	(XLIB:LIST-FONTS): use XLoadFont instead of passing NULL font
19064	* modules/clx/new-clx/clx.lisp (DISPLAY-DEFAULT-SCREEN): add a DEFSETF
19065	(get-default-display, open-default-display): add from clx
19066	(cut-buffer, (setf cut-buffer), rotate-cut-buffers):
19067	use DISPLAY-DEFAULT-SCREEN instead of (FIRST DISPLAY-ROOTS)
19068	* modules/clx/new-clx/demos/clx-demos.lisp (x-host-display)
19069	(x-open-display): drop
19070	* modules/clx/new-clx/demos/bball.lisp:
19071	* modules/clx/new-clx/demos/bwindow.lisp:
19072	* modules/clx/new-clx/demos/greynetic.lisp:
19073	* modules/clx/new-clx/demos/hanoi.lisp:
19074	* modules/clx/new-clx/demos/koch.lisp:
19075	* modules/clx/new-clx/demos/petal.lisp:
19076	* modules/clx/new-clx/demos/plaid.lisp:
19077	* modules/clx/new-clx/demos/recurrence.lisp:
19078	* modules/clx/new-clx/demos/sokoban.lisp:
19079	use XLIB:DISPLAY-DEFAULT-SCREEN instead of CLX-DEMOS:X-OPEN-DISPLAY
19080	* modules/clx/new-clx/demos/clclock.lisp:
19081	new demo based on http://common-lisp.net/~crhodes/clx
19082	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): add clclock
19083
190842007-09-30  Sam Steingold  <sds@gnu.org>
19085
19086	* modules/clx/new-clx/image.lisp (image-pixmap): pass the required
19087	arguments :width & :height to put-image
19088
190892007-10-06  Sam Steingold  <sds@gnu.org>
19090
19091	* modules/berkeley-db/bdb.c: use safe_to_string when appropriate
19092
190932007-10-06  Sam Steingold  <sds@gnu.org>
19094
19095	* modules/gdbm/gdbm.c: use *misc-encoding* for string conversion
19096	(error_gdbm): accept fatal_message
19097	(GDBM-OPEN): pass it as the 5th arg to gdbm_open()
19098	* modules/gdbm/gdbm.lisp (gdbm-error): add :CODE slot
19099
191002007-10-06  Sam Steingold  <sds@gnu.org>
19101
19102	* lispbibl.d (switchu): remove: was used 3 times for strmtype in ...
19103	* predtype.d (TYPE-OF, CLASS-OF, heap_statistics_mapper):
19104	use switch instead of switchu.
19105	switch is already used with strmtype in stream.d and spvw_circ.d
19106
191072007-10-06  Sam Steingold  <sds@gnu.org>
19108
19109	* makemake.in (vimdir): install in ${datadir}/vim/vimfiles/after/syntax
19110	* clisp.spec: add %{prefix}/share/vim/vimfiles/after/syntax/lisp.vim
19111
191122007-10-02  Sam Steingold  <sds@gnu.org>
19113
19114	* error.d (OS_filestream_error): check that the stream argument is
19115	actually a stream object (this is needed because OS_filestream_error
19116	is called by handle_lseek which is called by handle_length which
19117	is used by the gdbm module which does not have Lisp streams)
19118	* genclisph.d (emit_to_I): add and use it for size, ssize and off
19119	* lispbibl.d (handle_length): add declaration
19120	(off_to_I): define using sint??_to_I instead of [QL]_to_I because
19121	Q_to_I may not be defined on a 32-bit platform
19122	(uint64_to_I, sint64_to_I): always define
19123	* stream.d (handle_length): implement
19124	(fd_lseek): extract from handle_lseek
19125	(handle_lseek): use it
19126	(FILE-LENGTH): use it to handle unbuffered streams
19127	(FILE-POSITION): use handle_lseek on unbuffered streams
19128	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): use handle_length
19129
191302007-10-02  Sam Steingold  <sds@gnu.org>
19131
19132	* modules/gdbm/gdbm.c (GDBM:GDBM-FILE-SIZE): implement
19133	* modules/gdbm/gdbm.lisp (GDBM:GDBM-FILE-SIZE): export
19134	(gdbm-p, gdbm-error, gdbm-error-message): export
19135	* modules/gdbm/configure.in: check for all functions
19136	* modules/gdbm/gdbm.c: use the configure checks
19137
191382007-10-01  Sam Steingold  <sds@gnu.org>
19139
19140	* genclisph.d: emit size_to_I & ssize_to_I
19141	* modules/rawsock/rawsock.c (size_to_I, ssize_to_I): remove
19142	* modules/rawsock/configure.in: do not check for sizeof(size_t)
19143	* modules/pcre/cpcre.c (fullinfo_size): use size_to_I
19144
191452007-10-01  Sam Steingold  <sds@gnu.org>
19146
19147	* modules/pcre/cpcre.c (PCRE-VERSION, PCRE-COMPILE): use
19148	safe_to_string()
19149	(fullinfo_size): accept option argument;
19150	use size_t instead of unsigned long int
19151	(fullinfo_nametable): fix combining 2 bytes into an int
19152	(PATTERN-INFO): do not report PCRE_INFO_BACKREFMAX twice;
19153	use fullinfo_size instead of fullinfo_int for PCRE_INFO_STUDYSIZE
19154
191552007-09-30  Sam Steingold  <sds@gnu.org>
19156
19157	* utils/fix-perms.sh: report what is been done;
19158	make link.sh not executable
19159
191602007-09-30  Sam Steingold  <sds@gnu.org>
19161
19162	* makemake.in: accept --vimdir and install the new file lisp.vim
19163	there (defaults to ${datadir}/vim/vimfiles/after)
19164
191652007-09-30  Sam Steingold  <sds@gnu.org>
19166
19167	* .gdbinit (full): also break in xlib_error_handler
19168	* modules/clx/new-clx/demos/bball.lisp:
19169	* modules/clx/new-clx/demos/bwindow.lisp:
19170	* modules/clx/new-clx/demos/greynetic.lisp:
19171	* modules/clx/new-clx/demos/hanoi.lisp:
19172	* modules/clx/new-clx/demos/petal.lisp:
19173	* modules/clx/new-clx/demos/plaid.lisp:
19174	* modules/clx/new-clx/demos/recurrence.lisp: adapted from
19175	http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/gui/clx/clx_demo.cl
19176	* modules/clx/new-clx/demos/clx-demos.lisp (*demos*): new variable
19177	which lists all demos
19178	(run-all-demos): new function
19179	* modules/clx/new-clx/demos/qix.lisp (qix): use
19180	XLIB:DISPLAY-DEFAULT-SCREEN instead of (FIRST XLIB:DISPLAY-ROOTS)
19181	* modules/clx/new-clx/demos/koch.lisp (koch): ditto
19182
191832007-09-29  Sam Steingold  <sds@gnu.org>
19184
19185	* complete.lisp (completion): when no symbols are found and no package
19186	separator #\: has been entered, search for completion among packages
19187	* init.lisp: load complete after macros3 because of WITH-COLLECT
19188
191892007-09-26  Sam Steingold  <sds@gnu.org>
19190
19191	wrap all library calls in begin_system_call/end_system_call
19192	* modules/gdbm/gdbm.c (SYSCALL): add
19193	(GDBM-OPEN, GDBM-CLOSE, with_datum, GDBM-SYNC): use it
19194	(GDBM-STORE, GDBM-FETCH, GDBM-DELETE, GDBM-FIRSTKEY, GDBM-NEXTKEY)
19195	(GDBM-EXISTS): set values outside of with_datum()
19196	(CHECK_RUN): add a convenience wrapper
19197	(GDBM-REORGANIZE, GDBM-SETOPT): use it
19198
191992007-09-26  Sam Steingold  <sds@gnu.org>
19200
19201	* modules/clx/new-clx/clx.f (XLIB:MOTION-EVENTS): XFree(events)
19202	(XLIB:MODIFIER-MAPPING): use STACK_to_mv, return no values on failure
19203	(XLIB:SET-MODIFIER-MAPPING): clean-up stack on failure
19204	(make_fill_bit_vector): add
19205	(make_key_vector, XLIB:%SAVE-GCONTEXT-COMPONENTS)
19206	(XLIB:KEYBOARD-CONTROL): use it
19207	(XLIB:SET-MODIFIER-MAPPING): fix memory corruption in xmk construction
19208	(XLIB:CHANGE-KEYBOARD-MAPPING): fix memory corruption in
19209	XChangeKeyboardMapping call (num_codes = #keysyms, not #keycodes)
19210
192112007-09-26  Sam Steingold  <sds@gnu.org>
19212
19213	fix bug#420: assertion failure in new-clx
19214	support 64-bit KeySym in KEYBOARD-MAPPING using an extra dimension
19215	* modules/clx/new-clx/configure.in : AC_CHECK_SIZEOF(KeySym)
19216	* modules/clx/new-clx/clx.f (KBD_MAP_RANK, check_dim)
19217	(KBD_MAP_TYPE, extra_dim_push): define based on SIZEOF_KEYSYM
19218	(check_kbdmap_mx): replaces check_uint32_mx
19219	(XLIB:CHANGE-KEYBOARD-MAPPING, XLIB:KEYBOARD-MAPPING): use them
19220
192212007-09-26  Sam Steingold  <sds@gnu.org>
19222
19223	* modules/clx/new-clx/clx.f (check_error_code): add DEFCHECKER
19224	(xlib_error_handler): use check_error_code_reverse instead of a
19225	literal vector lookup for robustness and readability
19226
192272007-09-26  Sam Steingold  <sds@gnu.org>
19228
19229	support non-keyword symbols in DEFCHECKER
19230	* utils/modprep.lisp (maybe-prepend-colon): add
19231	(new-checker): use it
19232	(print-tables-1): separate objects with spaces
19233
192342007-09-26  Sam Steingold  <sds@gnu.org>
19235
19236	* modules/clx/new-clx/clx.f (xlib_a_cons): use allocate_cons()
19237	instead of `(NIL . NIL)` for initialization
19238
192392007-09-25  Sam Steingold  <sds@gnu.org>
19240
19241	* modules/clx/new-clx/clx.f (make_key_vector): do not clobber value1
19242	(check_bitvec_256): new macro
19243	(get_key_vector): implement
19244	(XLIB:OPEN-DISPLAY): call disable_sigpipe() not here, but ...
19245	(module__clx__init_function_2): ... here
19246	(XLIB::SET-GCONTEXT-DASHES, handle_image_z, XLIB:PUT-IMAGE)
19247	(XLIB:CHANGE-PROPERTY, XLIB:GLOBAL-POINTER-POSITION)
19248	(XLIB:KEYBOARD-MAPPING, XLIB:OPEN-DISPLAY): remove unused variable
19249	(font_char_info): simplify to avoid a gcc warning
19250	(XLIB:INPUT-FOCUS): fix STACK handling
19251	(XLIB:GRAB-KEY): fix XGrabKey call
19252	(XLIB:QUERY-KEYMAP): use check_bitvec_256
19253	(XLIB:KEYCODE->CHARACTER): fix KEYSYM-INDEX-FUNCTION handling
19254	(X11/Xauth.h): #include
19255	(my_xau_get_auth_by_name): add (fixme?)
19256	(XLIB:DISPLAY-AUTHORIZATION-DATA, XLIB:DISPLAY-AUTHORIZATION-NAME):
19257	use it or return constant ""
19258	(XLIB:DISPLAY-AUTHORIZATION): add
19259	* modules/clx/new-clx/clx.lisp (XLIB:DISPLAY-AUTHORIZATION): export
19260
192612007-09-23  Sam Steingold  <sds@gnu.org>
19262
19263	* modules/gdbm/gdbm.c (with_datum): replacement for with_gdbm_key
19264	* modules/gdbm/gdbm.lisp (define-condition):
19265	do not terminate the message with "."
19266
192672007-09-23  Masayuki Onjo  <masayuki.onjo@gmail.com>
19268
19269	* modules/gdbm/gdbm.lisp (GDBM:WITH-OPEN-DB): add macro
19270	* modules/gdbm/gdbm.c (with_gdbm_key): add macro
19271	(GDBM-FETCH, GDBM-DELETE, GDBM-EXISTS): add vector support
19272	(GDBM-FIRSTKEY, GDBM-NEXTKEY): new keyword argument :BINARY
19273
192742007-09-22  Sam Steingold  <sds@gnu.org>
19275
19276	* modules/dirkey/dirkey.c (fehler_ldap): rename to error_ldap
19277	* modules/pcre/cpcre.c (pcre_error): rename to error_pcre
19278	* modules/clx/new-clx/clf.x (closed_display_error): rename to
19279	error_closed_display
19280	* .gdbinit (full): break in error_gdbm
19281
192822007-09-21  Sam Steingold  <sds@gnu.org>
19283
19284	* modules/rawsock/rawsock.c (CHECK_SOCKADDR): new macro
19285	(SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT)
19286	(GETNAMEINFO, fill_msghdr, SENDTO): use it
19287
192882007-09-21  Sam Steingold  <sds@gnu.org>
19289
19290	* modules/berkeley-db/bdb.c (dbe_get_data_dirs): declare a variable
19291	in the block where it is actually used
19292	(record_length): use default: to avoid a compiler warning about
19293	enumeration values not handled in switch and control reaching end
19294	of non-void function
19295
192962007-09-20  Sam Steingold  <sds@gnu.org>
19297
19298	* modules/rawsock/rawsock.c [HAVE_SIGNALS]: use writing_to_subprocess
19299	to avoid being killed by SIGPIPE
19300	(begin_sock_call, end_sock_call): define
19301	(SYSCALL, GET_SOCK_OPT, SET_SOCK_OPT): use them instead of
19302	begin_system_call/end_system_call
19303
193042007-09-20  Sam Steingold  <sds@gnu.org>
19305
19306	* modules/gdbm/gdbm.c (GDBM-STORE, GDBM-FETCH, GDBM-DELETE)
19307	(GDBM-NEXTKEY, GDBM-EXISTS): use a variable from with_string_0
19308	instead of calling asciz_length()
19309	(GDBM:GDBM-SETOPT): convert :CACHESIZE argument properly
19310
193112007-09-20  Masayuki Onjo  <masayuki.onjo@gmail.com>
19312
19313	* modules/gdbm/gdbm.c (GDBM:GDBM-VERSION): add
19314	* modules/gdbm/gdbm.lisp (GDBM-VERSION): export
19315
193162007-09-18  Sam Steingold  <sds@gnu.org>
19317
19318	bug fix: pwd struct fields can be NULL which caused segfault
19319	* misc.d, lispbibl.d (push_string_array, safe_to_string): add
19320	* modules/syscalls/calls.c (ARR_TO_LIST): remove
19321	(hostent_to_lisp, servent_to_lisp, grp_to_lisp):
19322	use push_string_array instead of ARR_TO_LIST
19323	(utmpx_to_lisp, UNAME, servent_to_lisp, passwd_to_lisp, FILE-OWNER)
19324	(VERSION, PropVariantToLisp, FILE-PROPERTIES): use safe_to_string
19325	* modules/rawsock/rawsock.c (GETADDRINFO): use safe_to_string
19326	(protoent_to_protocol, netent_to_network): use push_string_array
19327
193282007-09-17  Sam Steingold  <sds@gnu.org>
19329
19330	* modules/gdbm/gdbm.lisp (GDBM:DO-DB): new macro
19331	* modules/gdbm/configure.in (<gdbm/gdbm.h>): check
19332	* modules/gdbm/gdbm.c: #include <gdbm/gdbm.h> when it is available
19333	(GDBM::GDBM-OPEN): finalize GDBM object
19334	(datum_to_object): new function
19335	(GDBM:GDBM-FIRSTKEY, GDBM:GDBM-NEXTKEY): use it
19336	(GDBM:GDBM-SETOPT): simplify code
19337	(check_gdbm): return GDBM_FILE; update all callers; fix some GC-safety
19338
193392007-09-17  Sam Steingold  <sds@gnu.org>
19340
19341	* modules/syscalls/calls.c (POSIX:LOADAVG): implement
19342	* modules/syscalls/posix.lisp (POSIX:LOADAVG): export
19343	* modules/syscalls/configure.in (getloadavg): check
19344
193452007-09-17  Masayuki Onjo  <masayuki.onjo@gmail.com>
19346	Sam Steingold  <sds@gnu.org>
19347
19348	* Makefile.devel (MODULES): add gdbm
19349	* modules/gdbm: new module
19350
193512007-08-26  Sam Steingold  <sds@gnu.org>
19352
19353	* foreign1.lisp (finalize-coutput-file): write
19354	register_foreign_inttype forms into init_function_2 ("init once")
19355	instead of init_function_1 ("init-always")
19356
193572007-08-24  Sam Steingold  <sds@gnu.org>
19358
19359	implement RFE#31: RENAME-DIRECTORY
19360	* pathname.d (RENAME-DIR): implement
19361	* constsym.d, subr.d (rename_dir): add
19362	* init.lisp (rename-dir): exoirt
19363
193642007-08-24  Sam Steingold  <sds@gnu.org>
19365
19366	* modules/berkeley-db/bdb.c: fix some error_bdb calls;
19367	use db->get_env instead of a direct dbenv slot access;
19368	avoid "DB->get_cachesize: method not permitted when environment
19369	specified" error log messages
19370	(BDB:DBE-SET-OPTIONS): accept :NCACHE :CACHESIZE :CACHE
19371	(BDB:DBE-GET-OPTIONS): report :CACHE
19372	(cache2lisp): extract from db_get_cache
19373	(dbe_get_cache): add
19374	(db_get_cache): call it when db is based on a dbe
19375	(db_get_type): new function
19376	fix bug#416: Berkeley-DB module outputs spurious errors
19377	(record_length): do not call get_re_len on DB_BTREE & DB_HASH
19378	(BDB:DB-GET-OPTIONS): do not call methods inappropriate for a DB
19379	type, avoiding "call implies an access method which is
19380	inconsistent with previous calls" error log messages
19381
193822007-08-23  Sam Steingold  <sds@gnu.org>
19383
19384	* constobj.d (foreign_inttype_table): add
19385	* lispbibl.d (register_foreign_inttype): declare and export to clisp.h
19386	(mallocing, nomalloc): declare to avoid warnings
19387	* exporting.lisp (def-c-type): only one argument is required
19388	* foreign.d (parse_foreign_inttype, register_foreign_inttype): add
19389	(foreign_layout, convert_from_foreign, convert_to_foreign, do_av_start)
19390	(do_av_arg, do_va_start, do_va_arg, do_va_return): use
19391	foreign_inttype_table for system int types
19392	(init_ffi): register a couple of int types for the test suite
19393	* foreign1.lisp (def-c-type): when typespec is missing, assume int
19394	type and get size and sign at compile time
19395	(finalize-coutput-file): output int types
19396	* modules/bindings/glibc/linux.lisp: define most int types using
19397	the new one argument def-c-type call
19398	(dirent64, readdir64, readdir64_r, scandir64, alphasort64)
19399	(versionsort, versionsort64): add
19400	(seekdir, telldir): for some reason position is "long", not
19401	"off_t", in my <dirent.h> (glibc-headers-2.4-11)
19402
194032007-07-24  Sam Steingold  <sds@gnu.org>
19404
19405	merge some netbsd/pkgsrc patches
19406	* makemake.in (XCC_CREATESHARED): treat DragonFly like all the
19407	other BSDs
19408	* ffcall/avcall/asmi386.h, ffcall/callback/vacall_r/asmi386.h:
19409	* ffcall/vacall/asmi386.h, asmi386.h, asmi386.hh:
19410	DragonFly defines __DragonFly__, not __DragonFly
19411
194122007-07-08  Sam Steingold  <sds@gnu.org>
19413
19414	fix bug#386: back_trace is not initialized when it is a
19415	register
19416	* spvw.d (back_trace): do not init to NULL at the declaration,
19417	instead...
19418	(init_memory): init back_trace to NULL here
19419
194202007-06-28  Sam Steingold  <sds@gnu.org>
19421
19422	* pathname.d (make_launch_pipe): do not access STACK, accept
19423	pointers into it instead
19424	(init_launch_streamarg): accept a pointer into STACK instead of an index
19425
194262007-06-25  Jack Unrue  <jdunrue@gmail.com>
19427
19428	* modules/syscalls/calls.c (FMTID_SummaryInformation)
19429	(FMTID_UserDefinedProperties): provide local definitions
19430	to support build using MinGW w32api 3.9
19431
194322007-06-25  Sam Steingold  <sds@gnu.org>
19433
19434	* pathname.d (interpret_launch_priority): do not access STACK,
19435	accept an argument instead
19436
194372007-06-22  Sam Steingold  <sds@gnu.org>
19438
19439	fix last patch
19440	* init.lisp (sys::get-doc-entity-caller): add
19441	(get-file-doc, set-file-doc): use it
19442
194432007-06-21  Sam Steingold  <sds@gnu.org>
19444
19445	Keep separate file information for each caller (DEFUN, DEFSTRUCT &c)
19446	* init.lisp (sys::get-file-doc, sys::set-file-doc): add
19447	(sys::check-redefinition): use them
19448
194492007-06-20  Sam Steingold  <sds@gnu.org>
19450
19451	* m4/proto.m4 (CL_PROTO_MISSING, CONST_VARIANTS, SIZE_VARIANTS):
19452	new macros
19453	* m4/connect.m4, m4/ioctl.m4, m4/select.m4, m4/tcpconn.m4: use them
19454
194552007-06-20  Sam Steingold  <sds@gnu.org>
19456
19457	* malloc/getpagesize.h, malloc/gmalloc.c: update from Emacs:
19458	LGPL->GPL; Pthreads; a prototype fix from CLISP bug#386
19459
194602007-06-19  Sam Steingold  <sds@gnu.org>
19461
19462	* m4/ioctl.m4 (CL_IOCTL): "request" is an "unsigned int" on arm-wince-pe
19463	* m4/tcpconn.m4 (CL_TCPCONN): "len" is a "socklen_t" in setsockopt()
19464	Reported by Kamil Shakirov <kamils80@gmail.com>
19465
194662007-06-09  Sam Steingold  <sds@gnu.org>
19467
19468	* modules/postgresql/configure.in, modules/postgresql/postgresql.lisp:
19469	search for PostgreSQL headers also in pgsql (for Mandriva)
19470	Suggested by Frederik Himpe <fhimpe@telenet.be>
19471
194722007-06-08  Jörg Höhle  <hoehle@users.sourceforge.net>
19473
19474	* macros3.lisp (expand-LETF, expand-LETF*): use lexical environment
19475	(EXT:LETF): always return nil with empty body
19476	(LETF): fix a case with wrong order of parameters for (VALUES ...)
19477
194782007-06-06  Jörg Höhle  <hoehle@users.sourceforge.net>
19479
19480	fix bug#413: EXT:LETF with more than one place
19481	* macros3.lisp (expand-LETF): accumulate intermediates
19482
194832007-06-06  Jörg Höhle  <hoehle@users.sourceforge.net>
19484
19485	* loop.lisp (max-if, min-if): mark as ABI
19486
194872007-06-05  Sam Steingold  <sds@gnu.org>
19488
19489	* modules/fastcgi/fastcgi.lisp (hex-value): use DIGIT-CHAR-P
19490	* modules/oracle/oracle.lisp (hex-value): ditto
19491	Suggested by Jörg Höhle.
19492	(if-null): remove (use OR instead)
19493	(curconn, connect, to-sqlval, hash-to-sqlparam-array, check-connection)
19494	(pairs-to-hash, array-to-hash): use AND & UNLESS instead
19495	(cat): use EXT:STRING-CONCAT
19496
194972007-06-03  Jörg Höhle  <hoehle@users.sourceforge.net>
19498
19499	Use (gensym "NAME-") to enhance readability of CL macros.
19500	* condition.lisp (IGNORE-ERRORS, HANDLER-CASE, ASSERT, CHECK-TYPE)
19501	(ECASE, ETYPECASE, CCASE, CTYPECASE)
19502	(WITH-SIMPLE-RESTART, expand-restart-case): Use (gensym "NAME").
19503	* defs1.lisp (DO-SYMBOLS, DO-EXTERNAL-SYMBOLS)
19504	(EXT:DOSEQ, EXT:DOHASH): ditto
19505	* defs2.lisp (WITH-HASH-TABLE-ITERATOR): ditto
19506	* macros1.lisp (PROG1, PROG2, do/do*-expand, DOLIST, DOTIMES)
19507	(PSETQ, MULTIPLE-VALUE-BIND, MULTIPLE-VALUE-SETQ, COND): ditto
19508	* macros2.lisp (TYPECASE, NTH-VALUE, EXT:TIMES)
19509	(WITH-OUTPUT-TO-STRING): ditto
19510	* macros3.lisp (EXT:ETHE): ditto
19511	* loop.lisp (LOOP, expand-loop): ditto
19512
195132007-05-23  Jörg Höhle  <hoehle@users.sourceforge.net>
19514
19515	fix bug#412: *terminal-encoding* readline segfault
19516	* encoding.d (sys::set-terminal-encoding): return normalized value.
19517
195182007-05-20  Bruno Haible  <bruno@clisp.org>
19519
19520	* unix.d [UNIX_LINUX && UNIX_GNU]: Do not include <asm/page.h>.
19521	* lispbibl.d (UNIX_GNU): Move definition down.
19522	Reported by Ulrich Müller <ulm@gentoo.org>.
19523
195242007-05-13  Sam Steingold  <sds@gnu.org>
19525
19526	* clos-class3.lisp (check-method-redefinition): extract from
19527	ANALYZE-METHOD-DESCRIPTION
19528	(install-class-direct-accessors): use it
19529	* clos-method2.lisp (analyze-method-description): ditto
19530
195312007-05-13  Shawn Betts  <sabetts@vcn.bc.ca>
19532	Sam Steingold  <sds@gnu.org>
19533
19534	* clx.f: as per the CLX manual,
19535	(:EXPOSURE, :GRAPHICS-EXPOSURE): :X, :Y, :WIDTH, :HEIGHT are uint16
19536	(:CONFIGURE-NOTIFY, :CREATE-NOTIFY, :GRAVITY-NOTIFY)
19537	(:REPARENT-NOTIFY, :CONFIGURE-REQUEST): :X, :Y are sint16
19538
195392007-05-09  Shawn Betts  <sabetts@vcn.bc.ca>
19540	Sam Steingold  <sds@gnu.org>
19541
19542	* modules/clx/new-clx/clx.f (XLIB:GET-PROPERTY): check
19543	XGetWindowProperty return value
19544
195452007-05-06  Sam Steingold  <sds@gnu.org>
19546
19547	ensure that (DEFGENERIC IF) and (DEFUN IF) signal PROGRAM-ERROR
19548	* init.lisp (check-special-operator): extract from
19549	REMOVE-OLD-DEFINITIONS
19550	(check-redefinition): call it
19551	(remove-old-definitions): call either CHECK-REDEFINITION or
19552	CHECK-SPECIAL-OPERATOR
19553
195542007-05-06  Sam Steingold  <sds@gnu.org>
19555
19556	fix bug#410: some CL symbols are not locked
19557	* clos-genfun3.lisp (defgeneric): call SYS::CHECK-REDEFINITION
19558	(defmethod, defgeneric): use SYS::GET-FUNNAME-SYMBOL
19559	(ensure-generic-function-using-class): use PREDEFUN instead of DEFUN
19560	* clos-class3.lisp (finalize-inheritance, make-instances-obsolete)
19561	(class-name, validate-superclass, add-direct-subclass)
19562	(ensure-class-using-class, reader-method-class, writer-method-class)
19563	(remove-direct-subclass, class-direct-subclasses, compute-slots)
19564	(compute-class-precedence-list, compute-effective-slot-definition)
19565	(compute-effective-slot-definition-initargs, compute-default-initargs):
19566	use PREDEFUN instead of DEFUN
19567	* clos-genfun1.lisp (print-object, generic-function-methods)
19568	(generic-function-method-class, generic-function-signature)
19569	(generic-function-undeterminedp, generic-function-method-combination)
19570	(generic-function-argorder, generic-function-declarations): ditto
19571	* clos-genfun2a.lisp (compute-applicable-methods)
19572	(compute-applicable-methods-using-classes): ditto
19573	* clos-genfun2b.lisp (compute-discriminating-function)
19574	(add-method, remove-method): ditto
19575	* clos-methcomb2.lisp (compute-effective-method)
19576	(find-method-combination): ditto
19577	* clos-method1.lisp (method-function, method-qualifiers)
19578	(method-lambda-list, method-signature, method-specializers)
19579	(method-generic-function, (setf method-generic-function)): ditto
19580	* defs1.lisp (expand-form): moved here from init.lisp
19581	* defs2.lisp (default-directory, date-format, date-string, dir):
19582	moved here from init.lisp
19583	* init.lisp (in-package, the-environment, load, defmacro, defun):
19584	call SYS::CHECK-REDEFINITION explicitly at top-level
19585	(expand-form, default-directory, date-format, date-string, dir):
19586	move to defs*.lisp so that they are defined with full DEFUN
19587
195882007-05-04  Sam Steingold  <sds@gnu.org>
19589
19590	* init.lisp (sys::check-redefinition): WHAT is a string,
19591	so use CALLER instead
19592	* places.lisp (define-setf-expander, defsetf):
19593	pass a string as WHAT to CHECK-REDEFINITION
19594	* clos-class2.lisp ((setf find-class)):
19595	call TEXT on WHAT in the CHECK-REDEFINITION call
19596	* clos-methcomb2.lisp (define-method-combination): ditto
19597	* clos-method2.lisp (analyze-method-description): ditto
19598	* cmacros.lisp (define-compiler-macro): ditto
19599	* trace.lisp (check-traceable): ditto
19600
196012007-04-28 Shawn Betts  <sabetts@vcn.bc.ca>
19602	Sam Steingold  <sds@gnu.org>
19603
19604	* modules/clx/new-clx/clx.f (encode_event): because some slots point
19605	to the same C structure slot (:WINDOW and :EVENT-WINDOW mostly),
19606	the way encode_event is written :EVENT-WINDOW will overwrite :WINDOW.
19607	If :WINDOW is supplied and :EVENT-WINDOW is not, then the xevent
19608	slot will be set to 0, instead of the proper value.
19609	This patch memsets the whole structure to 0 and gets rid of the
19610	else clauses.
19611
196122007-04-28  Sam Steingold  <sds@gnu.org>
19613
19614	* spvw.d (fehler_notreached): refer to
19615	http://clisp.cons.org/impnotes/faq.html#faq-bugs
19616	instead of asking for private e-mail
19617
196182007-04-23  Sam Steingold  <sds@podval.org>
19619
19620	* modules/libsvm: upgraded to upstream 2.84
19621
196222007-04-04  Vadim Konovalov  <vadim@vkonovalov.ru>
19623	Sam Steingold  <sds@gnu.org>
19624
19625	* lispbibl.d (unspecified) [MICROSOFT]: define to 0, like for GCC
19626
196272007-03-07  Sam Steingold  <sds@gnu.org>
19628
19629	fix bug#405: [AIX 5.3] Problem finding connect
19630	* m4/socklen_t.m4, configure.in, socket.d, stream.d, win32.d:
19631	* modules/rawsock/rawsock.c: replace SOCKLEN_T with CLISP_SOCKLEN_T
19632	because AIX defines SOCKLEN_T internally
19633	Reported by Laurent Vaucher <laurentvaucher@users.sourceforge.net>.
19634
196352007-02-27  Shawn Betts  <sabetts@vcn.bc.ca>
19636	Sam Steingold  <sds@gnu.org>
19637
19638	* modules/clx/new-clx/clx.f:
19639	use enum instead of #define for slot_DISPLAY_*
19640	(slot_DISPLAY_DISPLAY, display_structure_size): add
19641	(make_display): accept display_number
19642	(OPEN-DISPLAY): pass it to make_display()
19643	(DISPLAY-DISPLAY): return the new display slot
19644	* modules/clx/new-clx/clx.lisp (display): add DISPLAY slot
19645
196462007-02-22  Sam Steingold  <sds@gnu.org>
19647
19648	fix bug#403: EXT::LAUNCH crash
19649	again: cannot do pushSTACK(foo()) if foo() manipulates STACK
19650	* stream.d (make_pipe): new function
19651	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
19652	(mkops_from_handles, mkips_from_handles): use it
19653	(mkops_from_handles, mkips_from_handles): return value without STACK
19654	* lispbibl.d (mkops_from_handles, mkips_from_handles): update prototypes
19655	* pathname.d (make_launch_pipe): pass stack location instead of
19656	index as the first argument
19657	(LAUNCH): use L_to_I() for PID, not fixnum()
19658
196592007-02-22  Sam Steingold  <sds@gnu.org>
19660
19661	fix new-clx "--with-debug" compilation
19662	* modules/clx/new-clx/clx.f (get_client_message_data): declare void
19663	(encode_event): use skipSTACK instead of popSTACK to avoid a warning
19664	(xlib_error_handler): make_bool() accept an int, not an object
19665
196662007-02-15  Sam Steingold  <sds@gnu.org>
19667
19668	* modules/clx/mit-clx/dependent.lisp (buffer-input-wait-default):
19669	SOCKET-STATUS accepts non-integer timeout
19670
196712007-02-15  Mattias Nilsson  <mattiasn@bredband.net>
19672	Sam Steingold  <sds@gnu.org>
19673
19674	* modules/clx/mit-clx/dependent.lisp (buffer-input-wait-default):
19675	only check the :input direction
19676
196772007-01-05  Evgeny Zubok  <zubok@users.sourceforge.net>
19678	Sam Steingold  <sds@gnu.org>
19679
19680	* modules/clx/mit-clx/display.lisp (read-xauth-entry): fix for McCLIM
19681	See patch#23: McCLIM/mit-clx: fail to connect to X server
19682
196832007-02-05  Sam Steingold  <sds@gnu.org>
19684
19685	* modules/oracle/oracle.lisp, modules/fastcgi/fastcgi.lisp:
19686	(hex-value): better error reporting
19687	(hex-byte-value): accept 2 arguments
19688	(hex-to-byte-array): optimized (less consing, 60% faster)
19689
196902007-02-05  Sam Steingold  <sds@gnu.org>
19691
19692	fix NO_UNICODE + WIN32_NATIVE (mingw) compilation
19693	* encoding.d (fehler_incomplete) [!UNICODE]: made available for
19694	CONVERT-STRING-FROM-BYTES
19695	* stream.d (rd_ch_keyboard, wr_ch_array_window) [WIN32_NATIVE]:
19696	fix cint/chart conversion
19697	Thanks to Michael Kappert <michael.kappert@gmx.net> for testing.
19698
196992007-02-03  Sam Steingold  <sds@gnu.org>
19700
19701	* modules/fastcgi/fastcgi.lisp (byte-array-to-string): optimized
19702
197032007-01-22  John Hinsdale <hin@alma.com>
19704
19705	Allow binary file uploads via FastCGI
19706	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c: handle binary
19707	data via STDIN on POST request.  Reported by Mike.Halloran@gmail.com
19708
197092007-01-22  Shawn Betts  <sabetts@vcn.bc.ca>
19710	Sam Steingold  <sds@gnu.org>
19711
19712	New-CLX supports stumpwm
19713	* modules/clx/new-clx/clx.f (SET-SELECTION-OWNER): fix argument order
19714	(encode_event): set the event type; fix STACK handling
19715	:EVENT-WINDOW is sometimes just a synonym for :WINDOW, sometimes
19716	not; correctly map :EVENT-WINDOW to the corresponding XEvent slot
19717	(:REPARENT-NOTIFY): add :OVERRIDE-REDIRECT-P
19718	(ungrab_X): fix STACK handling
19719	(xlib_error_handler): pass :ASYNCHRONOUS up
19720	(XLIB:MAPPING-NOTIFY): implement
19721	(travel_queque): used to peek the event and called the event
19722	handler which meant calling PROCESS-EVENTS inside that event
19723	handler got the same event (this doesn't happen in mit-clx or
19724	portable-clx). So travel_queque now just calls XNextEvent()
19725	* modules/clx/new-clx/clx.lisp (SET-SELECTION-OWNER): export
19726	implement error conditions (copied from mit-clx)
19727
197282007-01-01  Sam Steingold  <sds@gnu.org>
19729
19730	* spvw_debug.d (TheLfloat_) [DEBUG_SPVW]: add
19731
197322007-01-10  Sam Steingold  <sds@gnu.org>
19733
19734	* encoding.d (fehler_buffer_parity): rename to fehler_incomplete()
19735	(handle_incomplete): new function
19736	(uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs)
19737	(uni32le_mbstowcs): use it
19738
197392007-01-10  Sam Steingold  <sds@podval.org>
19740
19741	fix bug#400: CONVERT-STRING-FROM-BYTES does not check
19742	incomplete byte sequences
19743	* encoding.d (CONVERT-STRING-FROM-BYTES): signal an error when the
19744	vector is not used completely
19745
197462007-01-10  Sam Steingold  <sds@podval.org>
19747
19748	fix bug#399: unicode-16 et al cannot be used
19749	with unbuffered streams
19750	* encoding.d (uni16be_mbstowcs, uni16le_mbstowcs, uni32be_mbstowcs)
19751	(uni32le_mbstowcs): signal an error only when at least one char
19752	was found to enable single byte increments in rd_ch_unbuffered()
19753
197542007-01-08  Mike McMahon  <mmcm@users.sourceforge.net>
19755	Sam Steingold  <sds@podval.org>
19756
19757	fix bug#366: CRLF handling does not work for UNICODE-16
19758	* stream.d (strm_channel_extrafields_t): move ignore_next_LF from ...
19759	(strm_unbuffered_extrafields_t): ... here
19760	(ChannelStream_ignore_next_LF): add
19761	(UnbufferedStream_ignore_next_LF): remove
19762	(low_clear_input_unbuffered_handle, rd_ch_unbuffered)
19763	(listen_char_unbuffered, rd_ch_array_unbuffered)
19764	(make_unbuffered_stream, stream_reset_eltype)
19765	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): use
19766	ChannelStream_ignore_next_LF instead of UnbufferedStream_ignore_next_LF
19767	(rd_ch_buffered, rd_ch_array_buffered):
19768	set and test ChannelStream_ignore_next_LF
19769
197702007-01-04  Sam Steingold  <sds@podval.org>
19771
19772	* stream.d (STREAM-EXTERNAL-FORMAT): compare encodings using EQUALP
19773
197742007-01-04  Sam Steingold  <sds@podval.org>
19775
19776	* stream.d (SET-STREAM-EXTERNAL-FORMAT): use check_encoding()
19777	instead of test_external_format_arg() because the encoding
19778	is NOT an :EXTERNAL-FORMAT keyword argument
19779
197802007-01-03  Sam Steingold  <sds@podval.org>
19781
19782	* constobj.d (ansi_user_package_name, base10_radixnil)
19783	(common_lisp_string): remove unused objects
19784	(modern_user_package): add
19785	* package.d (init_packages): set it to CS-COMMON-LISP-USER
19786	* spvw.d (main_actions): use it for *PACKAGE* in -modern
19787
197882007-01-02  Sam Steingold  <sds@podval.org>
19789
19790	* configure (STACK_LIMIT): set to 16384 because of power5, see
19791	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=166347
19792
197932006-12-24  Bruno Haible  <bruno@clisp.org>
19794
19795	Make it work with gcc-4.3 snapshots.
19796	* intparam.c (main1): Rename get_integer_bitsize to
19797	get_unsigned_integer_bitsize. New macro get_signed_integer_bitsize.
19798	* lispbibl.d (bit, bitm): Change return type to 'unsigned long' instead
19799	of 'long'.
19800
198012007-01-02  Sam Steingold  <sds@podval.org>
19802
19803	* hashtabl.d (hashcode_tree_rec): rename from hashcode_tree
19804	(hashcode_tree): use it
19805	(gcinvariant_hashcode_tree_p_rec): rename from
19806	gcinvariant_hashcode_tree_p
19807	(gcinvariant_hashcode_tree_p): use it
19808	(HASHCODE_TREE_MAX_LEVEL, HASHCODE_TREE_NEED_LEAVES):
19809	undef after they are no longer used
19810	(hashcode3, hashcode3stable, hashcode4, sxhash)
19811	(gcinvariant_hashcode3_p, gcinvariant_hashcode3stable_p)
19812	(gcinvariant_hashcode4_p): simplify
19813
198142006-12-29  Sam Steingold  <sds@podval.org>
19815
19816	discard macro lambda list when (OPTIMIZE SPACE) is 3
19817	* init.lisp (sys::maybe-arglist): add
19818	(defmacro): use it
19819	* compiler.lisp (compile): ditto
19820	* record.d (MACRO-LAMBDA-LIST): signal an error when the lambda
19821	list is not available due to the compiler optimization settings
19822	* describe.lisp (describe-object@MACRO): call DESCRIBE-ARGLIST
19823	(describe-arglist): handle possible errors in ARGLIST
19824
198252006-12-29  Sam Steingold  <sds@podval.org>
19826
19827	* backquote.lisp (BACKQUOTE): pass a 2nd argument to MAKE-MACRO
19828	* compiler.lisp (compile): ditto
19829	* places.lisp ((setf MACRO-FUNCTION)): ditto
19830	* trace.lisp (trace1): ditto
19831
198322006-12-28  Sam Steingold  <sds@podval.org>
19833
19834	fix bug#208: hashcode[34]_cons weakness
19835	* hashtabl.d (hashcode_tree, gcinvariant_hashcode_tree_p): add
19836	(hashcode3_cons0, hashcode3_cons1, hashcode3_cons2, hashcode3_cons3)
19837	(gcinvariant_hashcode3_cons0_p, gcinvariant_hashcode3_cons1_p)
19838	(gcinvariant_hashcode3_cons2_p, gcinvariant_hashcode3_cons3_p)
19839	(hashcode3stable_cons0, hashcode3stable_cons1, hashcode3stable_cons2)
19840	(hashcode3stable_cons3, gcinvariant_hashcode3stable_cons0_p)
19841	(gcinvariant_hashcode3stable_cons1_p, hashcode4_cons0)
19842	(gcinvariant_hashcode3stable_cons2_p, hashcode4_cons1)
19843	(gcinvariant_hashcode3stable_cons3_p, hashcode4_cons2)
19844	(hashcode4_cons3, gcinvariant_hashcode4_cons0_p)
19845	(gcinvariant_hashcode4_cons1_p, gcinvariant_hashcode4_cons2_p)
19846	(gcinvariant_hashcode4_cons3_p, sxhash_cons0, sxhash_cons1)
19847	(sxhash_cons2, sxhash_cons3): remove
19848	(hashcode3, hashcode3stable, hashcode4, sxhash): use hashcode_tree()
19849	(gcinvariant_hashcode3_p, gcinvariant_hashcode3stable_p)
19850	(gcinvariant_hashcode4_p): use gcinvariant_hashcode_tree_p()
19851
198522006-12-28  Sam Steingold  <sds@podval.org>
19853
19854	fix bug#255: hashcode_bignum weakness
19855	* hashtabl.d (hashcode_bignum): use all digits
19856
198572006-12-27  Sam Steingold  <sds@podval.org>
19858
19859	ARGLIST now works for macros too
19860	* constsym.d (macro_lambda_list): add
19861	* defmacro.lisp (make-macro-expander, make-funmacro-expander):
19862	pass lambdalist to MAKE-MACRO
19863	* init.lisp (defun, in-package, the-environment, do, dotimes)
19864	(defmacro): ditto
19865	* describe.lisp (describe-object@macro): suggest SYS::MACRO-LAMBDA-LIST
19866	(arglist): handle macros
19867	* lispbibl.d (Macro): add slot macro_lambda_list
19868	* record.d (MAKE-MACRO): accept second argument
19869	(check_macro): new function
19870	(MACRO-EXPANDER): use it
19871	(MACRO-LAMBDA-LIST): add
19872	* subr.d (make_macro): update
19873	(macro_lambda_list): add
19874
198752006-12-27  Sam Steingold  <sds@podval.org>
19876
19877	fix bug#338: socket's stream-external-format always :default
19878	* stream.d (STREAM-EXTERNAL-FORMAT): return :DEFAULT for two-way
19879	and echo streams only if the external formats of the constituent
19880	streams are different
19881
198822006-12-27  Sam Steingold  <sds@podval.org>
19883
19884	fix bug#397:
19885	broken (setf (stream-external-format stream direction) enc)
19886	* places.lisp (stream-external-format): fix argument handling
19887
198882006-12-27  Sam Steingold  <sds@podval.org>
19889
19890	fix bug#314: format/*print-pretty* interaction: extra newlines
19891	* io.d (pr_enter_1): respect *PPRINT-FIRST-NEWLINE* in all cases
19892
198932006-12-27  Sam Steingold  <sds@podval.org>
19894
19895	fix bug#336: confusing format error report, cause fill-stream
19896	* format.lisp (format-error): use ~T for indentation and ~S to
19897	print format string so that the spacing is preserved
19898	* constsym.d (stream_start_s_expression, stream_end_s_expression): add
19899	* io.d (write_spaces): use check_posfixnum
19900	(FORMAT-TABULATE): use check_posfixnum
19901	call STREAM-START-S-EXPRESSION and STREAM-END-S-EXPRESSION around
19902	spaces() to ensure that the spaces are preserved
19903
199042006-12-26  Sam Steingold  <sds@podval.org>
19905
19906	fix bug#396: DESCRIBE: confusing spacing
19907	* fill-out.lisp (with-stream-s-expression): new macro
19908	* describe.lisp (describe1): use it
19909
199102006-12-19  Sam Steingold  <sds@podval.org>
19911
19912	fix bug#394: broken compiler warning for invalid
19913	optimize quality
19914	* compiler.lisp (parse-optimize-quality): fix the c-warn call
19915
199162006-12-18  Sam Steingold  <sds@podval.org>
19917
19918	fix bug#389: DEFPACKAGE code executed during non
19919	top-level compilation
19920	* defpackage.lisp (defpackage): use ANSI situations for EVAL-WHEN
19921
199222006-12-17  Sam Steingold  <sds@gnu.org>
19923
19924	* compiler.lisp (c-SYMBOL-MACROLET): uniform message syntax:
19925	"declare SPECIAL"
19926
199272006-12-17  Sam Steingold  <sds@gnu.org>
19928
19929	* init.lisp (date-string): add
19930	* dribble.lisp (dribble-toggle): use it
19931	* compiler.lisp (compile-file): ditto
19932
199332006-12-17  Sam Steingold  <sds@gnu.org>
19934
19935	* dribble.lisp (dribble-toggle): open the target file with the
19936	:EXTERNAL-FORMAT of the source stream
19937	Reported by Pascal Bourguignon <pjb@informatimago.com>
19938
199392006-12-11  Sam Steingold  <sds@podval.org>
19940
19941	fix bug#392: extra space in unreadable output
19942	* io.d (pr_unreadably): do not print a space after string when the
19943	printer is pr_record_ab_00
19944
199452006-12-10  Sam Steingold  <sds@gnu.org>
19946
19947	fix bug#391: IMPORT into the KEYWORD package does not
19948	make a symbol a constant variable
19949	* error.d (check_symbol_not_symbol_macro)
19950	(check_symbol_not_global_special): implement
19951	* lispbibl.d (check_symbol_not_symbol_macro)
19952	(check_symbol_not_global_special): declared
19953	* control.d (PROCLAIM): use check_symbol_not_symbol_macro()
19954	* macros2.lisp (define-symbol-macro): call
19955	SYSTEM::%PROCLAIM-SYMBOL-MACRO before SYSTEM::%PUT,
19956	do not call CHECK-NOT-SPECIAL-VARIABLE-P at all
19957	(check-not-special-variable-p): obsolete
19958	* symbol.d (SYS::%PROCLAIM-SYMBOL-MACRO): use
19959	check_symbol_not_global_special()
19960	(SYS::%PROCLAIM-CONSTANT): use check_symbol_not_symbol_macro()
19961	* package.d (make_present): use check_symbol_not_symbol_macro(),
19962	do not make symbol a constant unless it was uninterned
19963
199642006-12-04  Sam Steingold  <sds@podval.org>
19965
19966	* modules/libsvm: upgraded to upstream 2.83
19967
199682006-12-03  Anton Vodonosov  <avodonosov@users.sourceforge.net>
19969	    Sam Steingold  <sds@gnu.org>
19970
19971	fix bug#387: LISTEN does not call STREAM-LISTEN
19972	* io.d (LISTEN): call STREAM-LISTEN
19973	* constsym.d (STREAM-LISTEN): add
19974
199752006-11-28  Sam Steingold  <sds@gnu.org>
19976
19977	fix bug#384: (SETF DOCUMENTATION) and COMPILE
19978	* record.d (CLOSURE-SET-DOCUMENTATION): allow NIL argument
19979	* compiler.lisp (compile): reset the documentation in the compiled
19980	closure because it might have been reset by (setf documentation)
19981	and is now different from the literal in the lambdabody
19982
199832006-11-28  Sam Steingold  <sds@gnu.org>
19984
19985	* comptran.d (R_R_atanh_R_R): fix IMAGPART sign for real arguments
19986
199872006-11-27  Sam Steingold  <sds@podval.org>
19988
19989	fix bug#383: Loading a compiled file does not reset the
19990	first value of FUNCTION-LAMBDA-EXPRESSION
19991	* init.lisp (sys::remove-old-definitions): discard function lambda
19992	expression too because loading a compiled file does not set it
19993
199942006-11-21  Sam Steingold  <sds@podval.org>
19995
19996	export structure MOP
19997	* defstruct.lisp (structure-keyword-constructor): rename from
19998	structure-kconstructor
19999	* init.lisp (structure-slots, structure-direct-slots)
20000	(structure-keyword-constructor, structure-boa-constructors)
20001	(structure-copier, structure-predicate): export
20002	* exporting.lisp (export-structure-accessories): the above are now
20003	external in EXT, not internal in SYS
20004
200052006-11-20  Sam Steingold  <sds@podval.org>
20006
20007	fix bug#324: atanh branch cut strangeness
20008	* comptran.d (R_R_atanh_R_R): fix branch cuts logic
20009
200102006-11-20  Sam Steingold  <sds@podval.org>
20011
20012	fix bug#332: clisp-link run does not work w/o dynamic modules
20013	* clisp-link.in (run): remove $destinationdir before add-module-sets
20014
200152006-11-17  Bruno Haible  <bruno@clisp.org>
20016
20017	fix bug#373: print-read-consistency of strings
20018	containing #\Return characters
20019	* io.d (closure_reader): Recognize #0Y"..." syntax.
20020	(pr_sstring_ab): Write using #0Y"..." syntax if *print-readably* is
20021	true and the string contains #\Return characters.
20022
200232006-11-17  Sam Steingold  <sds@gnu.org>
20024
20025	fix bug#339: automatic pretty-printing of symbols in conses
20026	fix bug#382: PPRINT dispatch not honored for nested objects
20027	* io.d (pretty_print_call): remove
20028	(pr_enter_1): call pr_xxx directly
20029	(prin_object_ki): abstract from prin_object and pprin_object
20030	(prin_object, pprin_object): use prin_object_ki
20031	(prin_object_dispatch_low): rename from prin_object_dispatch
20032	(prin_object_dispatch_pretty): convert from pretty_print_call
20033	(prin_object_dispatch): call either of the above
20034
200352006-11-13  Magnus Henoch  <mange@freemail.hu>
20036	    Sam Steingold  <sds@gnu.org>
20037
20038	* modules/clx/mit-clx/clx.lisp (*protocol-families*): Add :internet6.
20039	* modules/clx/mit-clx/display.lisp (read-xauth-entry): Likewise.
20040
200412006-11-13  Sam Steingold  <sds@gnu.org>
20042
20043	* modules/fastcgi/fastcgi.h: remove unused file
20044
200452006-11-13  Sam Steingold  <sds@gnu.org>
20046
20047	fix bug#381: bad base64 error report
20048	* encoding.d (base64_wcstombs): do not access invalid memory
20049
200502006-11-11  Jörg Höhle  <hoehle@users.sourceforge.net>
20051
20052	fix bug#370: utf-8 conversion error
20053	* encoding.d (utf8_wcslen): support up to 4 bytes/character.
20054
200552006-11-12  Sam Steingold  <sds@gnu.org>
20056
20057	* io.d (pr_unreadably): new function (similar to old pr_other_obj)
20058	(pr_unreadably_2, pr_record_ab_00): add
20059	(pr_hex6_obj, pr_other_obj): remove
20060	(pr_machine, pr_system): use pr_unreadably instead of pr_hex6_obj
20061	(pr_orecord) [Rectype_Readtable]: use pr_unreadably instead of
20062	pr_hex6_obj
20063	[Rectype_Byte, Rectype_Symbolmacro, Rectype_GlobalSymbolmacro]:
20064	[Rectype_Macro, Rectype_FunctionMacro, Rectype_Weakpointer]:
20065	[Rectype_WeakAnd, Rectype_WeakOr]:
20066	use pr_unreadably instead of inline code
20067	[Rectype_Weakmapping, Rectype_WeakAndMapping, Rectype_WeakOrMapping]:
20068	use pr_unreadably_2 instead of inline code
20069	(pr_subr, pr_fsubr, pr_cclosure): use pr_unreadably instead of
20070	pr_other_obj
20071
200722006-11-09  Bruno Haible  <bruno@clisp.org>
20073
20074	fix bug#377: typep and subtypep fail ...
20075	* subtypep.lisp (indefinite-subclassp): New function.
20076	(STANDARD-OBJECT): Use it.
20077
200782006-11-09  Jörg Höhle  <hoehle@users.sourceforge.net>
20079
20080	* stream.d (finish_tty_output) [UNIX]: try fsync(), tcdrain() or
20081	ioctl() until success, not all of them.
20082
200832006-11-08  Sam Steingold  <sds@gnu.org>
20084
20085	* spvw.d (print_banner): print version and instructions on getting help
20086	* reploop.lisp (commands0): tweak help message
20087
200882006-11-08  Sam Steingold  <sds@podval.org>
20089
20090	fix bug#376: ROUND is broken for long floats [even+1/2]
20091	* lfloat.d (LF_fround_LF): adjust mask when rounding to match comments
20092
200932006-11-06  Sam Steingold  <sds@podval.org>
20094
20095	* io.d (read_vector_length_check): extract the common part of
20096	BIT-VECTOR-READER and VECTOR-READER
20097	(BIT-VECTOR-READER, VECTOR-READER): use it
20098
200992006-11-04  José H. Espinosa  <jose.h.espinosa@gmail.com>
20100	    Sam Steingold  <sds@gnu.org>
20101
20102	* makemake.in (XCC_CREATESHARED) [darwin]: define
20103
201042006-11-01  Sam Steingold  <sds@gnu.org>
20105
20106	* modules/gtk2/gtk.lisp (glade-load): add
20107	(run-glade-file, gui-from-file): use it
20108
201092006-10-26  Sam Steingold  <sds@gnu.org>
20110
20111	* modules/gtk2/gtk.lisp (GladeXMLConnectFunc, GladeNewFunc)
20112	(GladeXMLCustomWidgetHandler, GladeBuildChildrenFunc)
20113	(GladeFindInternalChildFunc, GladeApplyCustomPropFunc):
20114	no need for C-POINTER indirection
20115	(gui-from-file): call glade_xml_signal_autoconnect_full
20116
201172006-10-22  Sam Steingold  <sds@gnu.org>
20118
20119	* threads.lisp (process-unlock): fix TEXT call
20120	(yes-or-no-p-timeout): add
20121	* xthread.d: "extern inline" --> "static inline"
20122
201232006-10-21  "José H. Espinosa"  <jose.h.espinosa@gmail.com>
20124	    Sam Steingold  <sds@gnu.org>
20125
20126	* makemake.in (MODULE_CPPFLAGS) [with_dynamic_modules]:
20127	remove a spurious space that caused
20128	"error: `CPPFLAGS' has changed since the previous run"
20129
201302006-10-19  Sam Steingold  <sds@podval.org>
20131
20132	* makemake.in (docdir) [redhat]: replaced CLISP_VERSION with TOPDIR
20133	(VERSION, VERSION_SUFFIX, TOPDIR): moved up to the configurable section
20134	(lisplibdir): append TOPDIR to enable multiple CLISP version
20135	installed on the same system simultaneously
20136	Suggested by Nelson H. F. Beebe <beebe@math.utah.edu>
20137
201382006-10-18  Jörg Höhle  <hoehle@users.sourceforge.net>
20139
20140	* modules/fastcgi/fastcgi.lisp (FASTCGI:GETENV): can be called
20141	outside server loop.
20142
201432006-10-17  Sam Steingold  <sds@gnu.org>
20144
20145	* configure (--install): when ${prefix} or ${exec_prefix} are not
20146	writable, run "make install" using su
20147
201482006-10-16  Sam Steingold  <sds@gnu.org>
20149
20150	* modules/bindings/win32/win32.lisp: use default-foreign-library
20151
201522006-10-16  Sam Steingold  <sds@gnu.org>
20153
20154	* modules/libsvm/libsvm.lisp (finalize-model): accept an optional
20155	pointer arg
20156	(train): make model depend on problem so that problem cannot be
20157	GCed unless the model is GCed
20158	(make-problem): finalize the problem with destroy-problem
20159
201602006-10-16  Jörg Höhle  <hoehle@users.sourceforge.net>
20161
20162	* eval.d (get_closure): regularize nearly duplicate gettext message
20163	* po/de.po, po/fr.po: fix several tilde format errors and
20164	translations.  Many translations still erroneous or missing.
20165
201662006-10-16  Sam Steingold  <sds@gnu.org>
20167
20168	* Makefile.devel (src--distrib, doc--distrib): remove
20169	(tp-mail): add target to send a note to translation@IRO.UMontreal.CA
20170
201712006-10-16  Sam Steingold  <sds@gnu.org>
20172
20173	module doc&interface unification
20174	* modules/i18n/i18n.lisp: do not lock
20175	CUSTOM:*SYSTEM-PACKAGE-LIST*, it is done by EXT:SAVEINITMEM
20176	* modules/matlab/matlab.lisp: add :MATLAB to *FEATURES*,
20177	add "MATLAB" to CUSTOM:*SYSTEM-PACKAGE-LIST*
20178	* modules/netica/netica.lisp: add :NETICA to *FEATURES*,
20179	add "NETICA" to CUSTOM:*SYSTEM-PACKAGE-LIST*
20180	* modules/zlib/zlib.lisp: do not lock "ZLIB",
20181	it is done by EXT:SAVEINITMEM
20182
201832006-10-15  Sam Steingold  <sds@gnu.org>
20184
20185	* Makefile.devel (MODULES): add gtk2
20186	* modules/gtk2: new module based on http://dgym.homeunix.net/clisp-gtk2/
20187
201882006-10-13  Sam Steingold  <sds@gnu.org>
20189
20190	* version.sh: clisp 2.41 release (Friday the 13th!)
20191
201922006-10-13  Sam Steingold  <sds@gnu.org>
20193
20194	* init.lisp, compiler.lisp: replaced
20195	FFI::*DEFAULT-FOREIGN-LIBRARY* with FFI::*FOREIGN-LIBRARY*
20196	* foreign1.lisp (DEFAULT-FOREIGN-LIBRARY): new macro, set
20197	FFI::*FOREIGN-LIBRARY* inside EVAL-WHEN
20198
201992006-10-13  Sam Steingold  <sds@gnu.org>
20200
20201	* modules/pcre/cpcre.c (fullinfo_firsttable): avoid a gcc warning
20202
202032006-10-13  Sam Steingold  <sds@gnu.org>
20204
20205	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): call NOTE-C-VAR and
20206	NOTE-C-FUN depending on the value of library at run time, not
20207	macroexpansion time
20208
202092006-10-13  Sam Steingold  <sds@gnu.org>
20210
20211	* modules/libsvm/Makefile (svm.so): pass -fPIC to $(CXX)
20212
202132006-10-12  Sam Steingold  <sds@podval.org>
20214
20215	fix bug#372: broken COMPILE of APPLY in LABELS
20216	* compiler.lisp (c-APPLY): handle not-yet compiled local functions
20217
202182006-10-12  Sam Steingold  <sds@podval.org>
20219
20220	* foreign1.lisp (*default-foreign-library*): defvar and export
20221	(get-assoc): new helper
20222	(DEF-C-VAR, DEF-CALL-OUT): use *DEFAULT-FOREIGN-LIBRARY* as the
20223	default :LIBRARY argument
20224	* compiler.lisp (with-compilation-unit): bind *DEFAULT-FOREIGN-LIBRARY*
20225	* init.lisp (*default-foreign-library*): init & proclaim special
20226	(load): bind *DEFAULT-FOREIGN-LIBRARY*
20227	* modules/libsvm/libsvm.lisp: set *DEFAULT-FOREIGN-LIBRARY* at top-level
20228	instead of passing (:LIBRARY ...) to each DEF-CALL-OUT
20229
202302006-10-12  Jörg Höhle  <hoehle@users.sourceforge.net>
20231
20232	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c (fcgi_env):
20233	Fix memory leak via :malloc-free allocation, check malloc(),
20234	untabify, reindent, small Lisp and C tweaks.
20235
202362006-10-12  Sam Steingold  <sds@gnu.org>
20237
20238	* configure.in: call AC_CONFIG_AUX_DIR, AC_PROG_LIBTOOL,
20239	AC_LIBTOOL_WIN32_DLL
20240
202412006-10-12  Sam Steingold  <sds@gnu.org>
20242
20243	* libcharset/build-aux/config.guess, libcharset/build-aux/config.sub:
20244	* libcharset/build-aux/install-sh, libcharset/build-aux/ltmain.sh:
20245	* ffcall/build-aux/config.guess, ffcall/build-aux/config.sub:
20246	* ffcall/build-aux/ltmain.sh, m4/libtool.m4: update
20247	* build-aux/config.dynamic: replace with ...
20248	* build-aux/ltmain.sh: add
20249
202502006-10-11  Sam Steingold  <sds@podval.org>
20251
20252	fix FFI callbacks, broken since the 2005-10-02 patch
20253	* lispbibl.d (mallocing, nomalloc): declare for clisp.h
20254	* foreign.d (mallocing, nomalloc): declare global
20255	(converter_malloc_t): remove one level of indirection
20256	* foreign1.lisp (convert-to-foreign-C, note-c-call-in): output
20257	convert_to_foreign() with the appropriate 4th argument
20258
202592006-10-10  Sam Steingold  <sds@gnu.org>
20260
20261	* modules/libsvm/libsvm.lisp (predict-probability): prob_estimates
20262	is a DOUBLE-FLOAT vector, not an INT one
20263
202642006-10-10  Sam Steingold  <sds@gnu.org>
20265
20266	* _clisp.c (main): fix handling of "--" option terminator
20267	Reported by François-René ÐVB Rideau <fahree@gmail.com>
20268
202692006-10-10  Sam Steingold  <sds@podval.org>
20270
20271	* clhs.lisp (start-message): helper extracted from read-from-file
20272	(read-from-file): use it
20273	* modules/libsvm/libsvm.lisp (load-problem, save-problem): ditto
20274
202752006-10-09  Sam Steingold  <sds@gnu.org>
20276
20277	* modules/libsvm/libsvm.lisp (problem-y-n, problem-x-n): add
20278	(problem-list, problem-slots): remove
20279	(cross-validation): call `check-parameter'
20280
202812006-10-09  John Hinsdale  <hin@alma.com>
20282
20283	* modules/fastcgi/fastcgi.lisp, fastcgi_wrappers.c, fastcgi.h:
20284	New function FASTCGI:ENV to return the entire environment
20285	Useful enhancement, suggested by Don Cohen
20286
20287	* modules/fastcgi/fastcgi.lisp:
20288	Compatible behavior to EXT:GETENV, behaving appropriately
20289	based on "true CGI" vs. "FastCGI" mode.
20290
202912006-10-08  Sam Steingold  <sds@gnu.org>
20292
20293	* modules/libsvm/libsvm.lisp (problem-slots, problem-list): add
20294	(problem-l, problem-y, problem-x): use `problem-slots'
20295	(save-problem): use `problem-list'
20296
202972006-10-05  Sam Steingold  <sds@gnu.org>
20298
20299	* modules/libsvm/libsvm.lisp: use C-POINTER instead of C-PTR to
20300	avoid needless conversions between Lisp and C
20301	(destroy-parameter, destroy-problem): pass :FULL T to FOREIGN-FREE
20302	to match ALLOCATE-DEEP
20303	(finalize-model): new function, use SET-FOREIGN-POINTER to avoid
20304	the "invalidating session pointer" error
20305	Suggested by Jörg Höhle
20306
203072006-10-05  Sam Steingold  <sds@gnu.org>
20308
20309	* Makefile.devel (gnu-distrib): use basename to strip off
20310	../archives/<VER>/
20311	(GPG): --yes, not -yes
20312
203132006-10-05  Sam Steingold  <sds@podval.org>
20314
20315	merged LOOKUP-FOREIGN-FUNCTION & FOREIGN-LIBRARY-FUNCTION into
20316	FIND-FOREIGN-FUNCTION; LOOKUP-FOREIGN-VARIABLE &
20317	FOREIGN-LIBRARY-VARIABLE into FIND-FOREIGN-VARIABLE
20318	* foreign.d (check_foreign_function_type): new function
20319	(FOREIGN-FUNCTION): use it
20320	(lookup_foreign_variable): extract from LOOKUP-FOREIGN-VARIABLE
20321	(LOOKUP-FOREIGN-VARIABLE): use it (kept as legacy to avoid
20322	changing O(version))
20323	(FIND-FOREIGN-VARIABLE): new function, calls either
20324	lookup_foreign_variable or foreign_library_variable
20325	(lookup_foreign_function): extract from LOOKUP-FOREIGN-FUNCTION
20326	(LOOKUP-FOREIGN-FUNCTION): use it (kept as legacy to avoid
20327	changing O(version))
20328	(FIND-FOREIGN-FUNCTION): new function, calls either
20329	lookup_foreign_function or foreign_library_function
20330	(find_library_by_name): rename from find_library
20331	(find_library_by_address): new function
20332	(check_library): rewrote to absorb most of FOREIGN-LIBRARY
20333	(FOREIGN-LIBRARY): use it
20334	(foreign_library_check, push_foreign_library_object): new helpers
20335	(foreign_library_variable): extract from FOREIGN-LIBRARY-VARIABLE,
20336	signal an error on platforms without dlsym
20337	(FOREIGN-LIBRARY-VARIABLE): use it (kept as legacy to avoid
20338	changing O(version))
20339	(foreign_library_function): extract from FOREIGN-LIBRARY-FUNCTION,
20340	signal an error on platforms without dlsym
20341	(FOREIGN-LIBRARY-FUNCTION): use it (kept as legacy to avoid
20342	changing O(version))
20343	* foreign1.lisp (DEF-C-VAR): use FIND-FOREIGN-VARIABLE instead of
20344	FOREIGN-LIBRARY-VARIABLE and LOOKUP-FOREIGN-VARIABLE
20345	(DEF-CALL-OUT, DEF-LIB-CALL-OUT): use FIND-FOREIGN-FUNCTION
20346	instead of FOREIGN-LIBRARY-FUNCTION and LOOKUP-FOREIGN-FUNCTION
20347	* constsym.d, subr.d (find_foreign_variable)
20348	(find_foreign_function): add
20349
203502006-10-03  Sam Steingold  <sds@gnu.org>
20351
20352	* modules/libsvm: new module to interface to LibSVM
20353	http://www.csie.ntu.edu.tw/~cjlin/libsvm
20354
203552006-10-03  Sam Steingold  <sds@gnu.org>
20356
20357	fix bug#369: on some platforms SUBR is not a record
20358	* documentation.lisp (function-documentation)
20359	(set-function-documentation): do not fallthrough on subr
20360
203612006-10-01  Sam Steingold  <sds@gnu.org>
20362
20363	* Makefile.devel (release): new target
20364	(gnu-distrib): pass --use-agent -yes to gpg
20365
203662006-09-23  Sam Steingold  <sds@podval.org>
20367
20368	* version.sh: clisp 2.40 release
20369
203702006-10-01  Sam Steingold  <sds@gnu.org>
20371
20372	* makemake.in (hln): do NOT use $(SHELL) and
20373	--cache-file=../config.cache to avoid error "`CFLAGS' has changed
20374	since the previous run" (this reverts the 2006-07-17 patch)
20375
203762006-10-01  Sam Steingold  <sds@gnu.org>
20377
20378	* documentation.lisp (function-documentation)
20379	(set-function-documentation): handle FSUBR
20380
203812006-09-29  Sam Steingold  <sds@podval.org>
20382
20383	* sequence.d (end_minus_start): new function
20384	(seq_filterop, remove_op, delete_op, seq_duplicates)
20385	(substitute_op): use it
20386
203872006-09-28  Sam Steingold  <sds@podval.org>
20388
20389	fix bug#368: set-difference ... :test 'equalp
20390	* defs1.lisp (list-to-ht): there is no separate fasthash &
20391	stablehash for EQUALP
20392
203932006-09-27  Sam Steingold  <sds@podval.org>
20394
20395	fix bug#367: assoc error when combining compiled and
20396	interpreted code
20397	* compiler.lisp (declared-optimize): do not use ASSOC because a
20398	combination of interpreted and compiled code - e.g., via
20399	the (COMPILE) declaration - will break since the declarations in
20400	the interpreted code are not canonicalized
20401
204022006-09-26  Sam Steingold  <sds@podval.org>
20403
20404	* spvw.d (init_symbol_functions): fix g++ compilation
20405	* record.d (CLOSURE-DOCUMENTATION, CLOSURE-LAMBDA-LIST): ditto
20406	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): ditto
20407	* lispbibl.d (chart, as_chart): ditto, as recommended by
20408	http://groups.google.com/group/comp.lang.c++/msg/a81d13be2aa78176
20409
204102006-09-22  Jörg Höhle  <hoehle@users.sourceforge.net>
20411
20412	* stream.d (publish_host_data): do-not-resolve-p in
20413	SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL behaves again as
20414	documented, like prior to inversion introduced 2005-12-14.
20415
204162006-09-19  Sam Steingold  <sds@podval.org>
20417
20418	* foreign.d (convert_from_foreign, convert_to_foreign):
20419	check data==NULL and issue an error instead of a segfault
20420
204212006-09-15  Sam Steingold  <sds@podval.org>
20422
20423	more meaningful error message on top-level READ with a non-NIL
20424	recursive-p argument
20425	* io.d (check_read_reference_table): new function
20426	(make_references, lookup_label): use it
20427
204282006-09-10  Sam Steingold  <sds@podval.org>
20429
20430	* modules/rawsock/configure.in (net/if.h): need <sys/types.h> on *BSD
20431	* modules/rawsock/rawsock.c (RAWSOCK:IFADDRS): also require <net/if.h>
20432	(check_iff): add *BSD macros
20433
204342006-09-10  Sam Steingold  <sds@podval.org>
20435
20436	fix bug#364: cannot create pathnames with :wild-inferiors
20437	* pathname.d (PARSE-NAMESTRING) [WIN32_NATIVE]: when converting
20438	/cygdrive/c to C: check that the first directory component is a string
20439	Thanks to Yaroslav Kavenchuk <kavenchuk@tut.by> for debugging.
20440
204412006-09-09  Sam Steingold  <sds@podval.org>
20442
20443	* modules/rawsock/rawsock.c (sockaddr_to_lisp): add
20444	(RAWSOCK:IFADDRS): implement
20445	* modules/rawsock/sock.lisp (ifaddrs): add defstruct
20446
204472006-09-09  Sam Steingold  <sds@podval.org>
20448
20449	* io.d (fehler_invalid_value): new function
20450	(make_references, lookup_label, circle_p): use it
20451
204522006-09-07  Sam Steingold  <sds@podval.org>
20453
20454	* modules/rawsock/sock.lisp (open-unix-socket, open-unix-socket-stream):
20455	export; fix socket calls (:AF_UNIX -> :UNIX, :SOCK_STREAM -> :STREAM)
20456
204572006-09-07  Sam Steingold  <sds@podval.org>
20458
20459	* foreign.d (FOREIGN-LIBRARY-FUNCTION): fix last patch
20460	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
20461
204622006-09-05  Sam Steingold  <sds@podval.org>
20463
20464	* modules/rawsock/rawsock.c (RAWSOCK:IF-NAME-INDEX): new function
20465
204662006-09-03  Sam Steingold  <sds@podval.org>
20467
20468	When the OPTIMIZE SPACE level is low enough, keep function
20469	documentation and lambda list.
20470	* compiler.lisp (make-closure): accept documentation and pass it
20471	on to SYS::%MAKE-CLOSURE
20472	(parse-optimize-quality): do not support interpreted code (reverses
20473	the 2005-02-11 patch)
20474	(fnode): add slots LAMBDA-LIST and DOCUMENTATION
20475	(c-LAMBDABODY): fill them
20476	(create-fun-obj): pass them to MAKE-CLOSURE when the OPTIMIZE
20477	SPACE level is right, using...
20478	(non-user-symbol-p, generatedp): new functions
20479	... to avoid wasting space for gensyms and lambdas
20480	* constobj.d (version): bump
20481	* constsym.d (closure_documentation, closure_set_documentation)
20482	(closure_lambda_list): add
20483	* describe.lisp (describe-object@FUNCTION): use
20484	DESCRIBE-ARGLIST and DESCRIBE-DOCUMENTATION
20485	(arglist): use SYS::CLOSURE-LAMBDA-LIST
20486	(describe-arglist, describe-documentation): add
20487	(describe-signature): remove
20488	* documentation.lisp (function-documentation): use
20489	SYS::CLOSURE-DOCUMENTATION and Foreign-Function properties
20490	(documentation@symbol): use it
20491	(set-function-documentation): use SYS::CLOSURE-SET-DOCUMENTATION
20492	and Foreign-Function properties
20493	((setf documentation)@symbol): use it
20494	* eval.d (parse_dd): do not call NOTE-OPTIMIZE (reverses the
20495	2005-02-11 patch) because local DECLARE should not change the
20496	global OPTIMIZE settings
20497	* foreign.d (LOOKUP-FOREIGN-FUNCTION, FOREIGN-LIBRARY-FUNCTION):
20498	accept an additional PROPERTIES argument
20499	* foreign1.lisp (DEF-CALL-OUT): pass PROPERTIES to
20500	LOOKUP-FOREIGN-FUNCTION and FOREIGN-LIBRARY-FUNCTION,
20501	do not call (SETF DOCUMENTATION)
20502	* init.lisp (defmacro, defun): do not call SYSTEM::%SET-DOCUMENTATION
20503	* io.d (CLOSURE-READER): consts is a list, expect optional
20504	LAMBDA-LIST and DOCUMENTATION
20505	(pr_cclosure_lang): print consts as a list,
20506	also print LAMBDA-LIST and DOCUMENTATION, if any
20507	* lispbibl.d (Ffunction): add ff_properties slot
20508	(Cclosure_last_const, ccv_flags_lambda_list_p)
20509	(ccv_flags_documentation_p): new CPP macros: use bit(2) as an
20510	indicator for DOCUMENTATION and bit(1) for LAMBDA-LIST
20511	* record.d (CLOSURE-CONSTS): use them to keep DOCUMENTATION
20512	and LAMBDA-LIST separate from consts
20513	(%MAKE-CLOSURE): accept LAMBDA-LIST and DOCUMENTATION
20514	(MAKE-CONSTANT-INITFUNCTION): pass 6 arguments to %MAKE-CLOSURE
20515	(CLOSURE-DOCUMENTATION, CLOSURE-SET-DOCUMENTATION)
20516	(CLOSURE-LAMBDA-LIST): implement
20517	* spvw_debug.d (TheCclosure_, Cclosure_length_): add
20518	* subr.d (make_closure, lookup_foreign_function)
20519	(foreign_library_function): update
20520	(closure_documentation, closure_set_documentation)
20521	(closure_lambda_list): add
20522
205232006-09-03  Sam Steingold  <sds@podval.org>
20524
20525	* configure: accept FOO=BAR argument to set the shell variable
20526
205272006-09-03  Stephen Compall  <s11001001@users.sourceforge.net>
20528	Sam Steingold  <sds@podval.org>
20529
20530	fix bug#363: make-pathname ignores explicit :DIRECTORY NIL
20531	* pathname.d (merge_dirs, MERGE-PATHNAMES): :DIRECTORY NIL
20532	overrides :DEFAULTS
20533
205342006-09-03  Magnus Henoch  <mange@freemail.hu>
20535	Sam Steingold  <sds@podval.org>
20536
20537	* ffcall/callback/trampoline_r/proto.c,
20538	* ffcall/callback/vacall_r/vacall-powerpc.c (env) [__NetBSD__]:
20539	use r13 instead of r11
20540	* ffcall/callback/vacall_r/Makefile.in (vacall-powerpc.lo): depend
20541	on vacall-powerpc-netbsd.s
20542	* ffcall/callback/vacall_r/vacall-powerpc-netbsd.s: add
20543
205442006-08-24  Sam Steingold  <sds@podval.org>
20545
20546	* clhs.lisp (*browsers*): add :FIREFOX, :FIREFOX-WINDOW, :FIREFOX-TAB,
20547	:NETSCAPE-TAB, :MOZILLA-TAB; rename :NETSCAPE-REMOTE and
20548	:MOZILLA-REMOTE to :NETSCAPE-WINDOW and :MOZILLA-WINDOW respectively
20549
205502006-08-15  Sam Steingold  <sds@podval.org>
20551
20552	* Makefile.devel (update-docbook-utils): delegate to doc/Makefile
20553
205542006-08-15  Sam Steingold  <sds@podval.org>
20555
20556	support case-sensitive packages
20557	* modprep.lisp (*package-properties*): new parameter
20558	(defmodule-p): accept module properties as the 3rd argument
20559	(case-sensitive-package-p): new function
20560	(string-upcase-verbose): use it
20561
205622006-08-10  Sam Steingold  <sds@podval.org>
20563
20564	fix bug#360: ADJUST-ARRAY on non-adjustable vectors
20565	without a fill pointer
20566	* array.d (fehler_no_fillp): new function
20567	(get_fill_pointer): use it
20568	(ADJUST-ARRAY): use it to signal an error instead of creating a new
20569	array with fill pointer from an array without one
20570
205712006-08-10  Sam Steingold  <sds@podval.org>
20572
20573	support PCREv6 pcre_dfa_exec()
20574	* modules/pcre/cpcre.c (pcre_error): handle DFA errors
20575	(pcre_exec_flags): handle DFA flags
20576	(PCRE-EXEC): accept :WORK-SPACE :DFA :PARTIAL :DFA-SHORTEST :DFA-RESTART
20577	when pcre_exec returns 0, retry with doubled ovector_size
20578	* modules/pcre/configure.in: check for pcre_dfa_exec
20579
205802006-08-01  Sam Steingold  <sds@podval.org>
20581
20582	* makemake.in (XCFLAGS) [ia64]: no special treatment is necessary
20583	anymore, according to Dr. Werner Fink <werner@suse.de> in
20584	<http://article.gmane.org/gmane.lisp.clisp.general:11358>
20585	<https://sourceforge.net/p/clisp/mailman/message/13173105/>
20586
205872006-08-01  Sam Steingold  <sds@podval.org>
20588
20589	* spvw_memfile.d (loadmem_from_handle): avoid a GCC warning
20590
205912006-08-01  John Hinsdale  <hin@alma.com>
20592
20593	* modules/oracle/oracle.lisp:  Fix incorrect loop termination and
20594	premature advancing of database cursor in ORACLE:FETCH-ALL
20595	Thanks to Feng Hou <houfen@gmail.com> for report, test case and fix.
20596
205972006-07-31  Sam Steingold  <sds@podval.org>
20598
20599	* modules/berkeley-db/bdb.c (asciz_to_string0): turn into a CPP macro
20600	this fixes the NO_UNICODE build (the encoding argument is not evaluated)
20601	Reported by Reini Urban <rurban@x-ray.at>
20602
206032006-07-31  Sam Steingold  <sds@podval.org>
20604
20605	* spvw.d (find_name): reorder conditionals for WIN32_NATIVE
20606	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
20607
206082006-07-27  Sam Steingold  <sds@podval.org>
20609
20610	fix bug#337: print-object built-in object: no-applicable-method
20611	* clos-print.lisp (print-object): add a method for built-in objects
20612
206132006-07-27  Sam Steingold  <sds@podval.org>
20614
20615	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): made restartable
20616
206172006-07-26  Sam Steingold  <sds@podval.org>
20618
20619	fix bug#355: rawsock is broken on big-endian
20620	* socket.d (resolve_host): use UI_to_LEbytes() instead of I_to_uint32()
20621	for uint32 argument so that it will work on big-endian machines
20622	* modules/rawsock/rawsock.c (RAWSOCK:CONVERT-ADDRESS): ditto
20623
206242006-07-26  Sam Steingold  <sds@podval.org>
20625
20626	* configure, makemake.in: accept --elispdir and install emacs
20627	files there (datadir/emacs/site-lisp/ by default)
20628
206292006-07-25  Sam Steingold  <sds@podval.org>
20630
20631	* configure: when CONFIG_SHELL is bash and /bin/sh is not, re-exec the
20632	configure script with CONFIG_SHELL to enable sourcing of config.cache
20633
206342006-07-25  Dr. Werner Fink  <werner@suse.de>
20635	Sam Steingold  <sds@podval.org>
20636
20637	fix executable images on ia64
20638	* spvw_memfile.d (loadmem_from_handle): when mem_searched, call
20639	set_file_offset(mem_start), not set_file_offset(0)
20640
206412006-07-25  Sam Steingold  <sds@podval.org>
20642
20643	fix bug#353: Reinitialization of class does not call
20644	finalize-inheritance
20645	* clos-class3.lisp (reinitialize-instance-<defined-class>): call
20646	FINALIZE-INHERITANCE
20647	* gray.lisp (fundamental-stream): bind CLOS::*ALLOW-MIXING-METACLASSES*
20648	also with EXT:COMPILER-LET; remove EVAL-WHEN
20649
206502006-07-25  Sam Steingold  <sds@podval.org>
20651
20652	fix bug#354: sigsegv: make-instance of named anonymous class
20653	* clos-package.lisp: import sys::check-symbol
20654	* clos-class1.lisp (shared-initialize-<potential-class>): use it
20655
206562006-07-24  Sam Steingold  <sds@podval.org>
20657
20658	* spvw.d (find_name) [!RTLD_DEFAULT]: emulate RTLD_DEFAULT
20659	whenever it is not defined (e.g., on AIX in addition to FreeBSD)
20660	(libc_handle): defined at static inside find_name()
20661	Reported by Nirendra Maharaj <nirendram@fastmail.fm>
20662
206632006-07-23  Sam Steingold  <sds@podval.org>
20664
20665	* modules/syscalls/calls.c (POSIX::USER-INFO):
20666	use S(Kdefault) instead of `:DEFAULT`
20667
206682006-07-21  Sam Steingold  <sds@podval.org>
20669
20670	* modules/syscalls/calls.c (POSIX::STAT-VFS): require
20671	HAVE_SYS_STATVFS_H in addition to HAVE_STATVFS
20672
206732006-07-20  Sam Steingold  <sds@podval.org>
20674
20675	fix bug#351: initially not executed in loop
20676	* loop.lisp (loop-initialization): new slot preamble
20677	(revadd): new macro
20678	(expand-loop): merge INITIALLY-CODE and STARTUP-CODE into a single
20679	annotated list PREAMBLE (elements are marked on whether they come
20680	from :INITIALLY or :START) - this ensures that the initialization
20681	and :INITIALLY forms are evaluated in the right order
20682
206832006-07-19  Sam Steingold  <sds@podval.org>
20684
20685	* makemake.in (encflags): make -E 1:1 the first argument to ensure
20686	that no encoding variable is ever left as ASCII (the default for
20687	the C locale)
20688
206892006-07-19  Sam Steingold  <sds@podval.org>
20690
20691	fix bug#344: open-url fails to recognize file:/// (unix)
20692	* clhs.lisp (open-url): restore the leading #\/ on unix
20693	[win32|cygwin]: try the version without the leading #\/ first
20694
206952006-07-17  Sam Steingold  <sds@podval.org>
20696
20697	* makemake.in (hln): use $(SHELL) and --cache-file=../config.cache
20698
206992006-07-17  Sam Steingold  <sds@podval.org>
20700
20701	* Makefile.devel (REL, GNU_SYM): new variables
20702	(upload): also upload symlink directive
20703	(gnu-distrib): also create symlink directive
20704	(tag-release): new target
20705
207062006-07-16  Sam Steingold  <sds@podval.org>
20707
20708	* version.sh: clisp 2.39 release
20709
207102006-07-14  Thiemo Seufer  <ica2_ts@csv.ica.uni-stuttgart.de>
20711	Sam Steingold  <sds@podval.org>
20712
20713	* m4/general.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL):
20714	re-enable FFI for mips/mipsel
20715	<http://article.gmane.org/gmane.lisp.cl-debian/1493>
20716	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377722>
20717
207182006-07-14  Peter Van Eynde  <pvaneynd@debian.org>
20719	Sam Steingold  <sds@podval.org>
20720
20721	fix bug#349: build fails with gcc-4.1 on ia64
20722	* makemake.in (XCFLAGS) [ia64]: -O0, not -O2
20723
207242006-06-30  Sam Steingold  <sds@podval.org>
20725
20726	* modules/syscalls/posix.lisp (ffs): add a Lisp implementation of
20727	http://www.opengroup.org/onlinepubs/009695399/functions/ffs.html
20728
207292006-06-30  Sam Steingold  <sds@podval.org>
20730
20731	* configure, makemake.in: accept --with-gmalloc
20732	* configure.in: do not call CL_GMALLOC
20733	* m4/gmalloc.m4: remove
20734	* malloc/getpagesize.h, malloc/gmalloc.c: update from Emacs
20735
207362006-06-30  Sam Steingold  <sds@podval.org>
20737
20738	* makemake.in (anymodule): use $(SHELL) to run sub-configure scripts
20739
207402006-06-29  Sam Steingold  <sds@podval.org>
20741
20742	use symbolic error codes when possible
20743	* modules/berkeley-db/bdb.c (bdb_errno): new checker
20744	* modules/berkeley-db/dbi.lisp (bdb-error): rename "number" to "code"
20745
207462006-06-29  Sam Steingold  <sds@podval.org>
20747
20748	* modules/rawsock/sock.lisp: import EXPORTING:DEFINE-CONDITION
20749
207502006-06-29  Sam Steingold  <sds@podval.org>
20751
20752	* modules/berkeley-db/bdb.c (BDB:DBC-GET): fix last patch -
20753	accept :READ-COMMITTED and :READ-UNCOMMITTED
20754
207552006-06-29  Sam Steingold  <sds@podval.org>
20756
20757	use gai_strerror() to signal errors in getaddrinfo() and getnameinfo()
20758	* modules/rawsock/rawsock.c (error_eai): new function
20759	(RAWSOCK::GETNAMEINFO, RAWSOCK::GETADDRINFO): use it
20760	* modules/rawsock/sock.lisp (eai): new condition type
20761	* modules/rawsock/configure.in: check for gai_strerror()
20762
207632006-06-29  Sam Steingold  <sds@podval.org>
20764
20765	* modules/syscalls/calls.c (POSIX::GROUP-INFO, POSIX::USER-INFO):
20766	set errno to 0 before system calls to separate errors from "not found"
20767
207682006-06-27  Sam Steingold  <sds@podval.org>
20769
20770	* m4/test.m4: use sub-shell "()" instead of "eval" (needed on Solaris)
20771
207722006-06-27  Sam Steingold  <sds@podval.org>
20773
20774	* m4/bold.m4: from libsigsegv
20775	* configure.in, modules/berkeley-db/configure.in:
20776	* modules/clx/new-clx/configure.in, modules/dirkey/configure.in:
20777	* modules/i18n/configure.in, modules/pari/configure.in:
20778	* modules/pcre/configure.in, modules/postgresql/configure.in:
20779	* modules/rawsock/configure.in, modules/readline/configure.in:
20780	* modules/regexp/configure.in, modules/syscalls/configure.in:
20781	* modules/wildcard/configure.in, modules/zlib/configure.in:
20782	use BOLD_MSG instead of AC_MSG_NOTICE
20783
207842006-06-23  Sam Steingold  <sds@podval.org>
20785
20786	* modules/syscalls/calls.c (POSIX::PATHCONF): new function
20787
207882006-06-21  Sam Steingold  <sds@podval.org>
20789
20790	fix bug#323: rawsock :end vs. :size confusion
20791	* charstrg.d (test_vector_limits): no return value, remove just 2
20792	STACK elements: :START and :END (not vector)
20793	(test_string_limits_ro): adjusted the call to test_vector_limits()
20794	* encoding.d (CONVERT-STRING-TO-BYTES): ditto
20795	* lispbibl.d (test_vector_limits): update prototype
20796	(stringarg, test_vector_limits): export to clisp.h
20797	* modules/rawsock/rawsock.c (parse_buffer_arg, check_iovec_arg):
20798	use test_vector_limits()
20799	update their callers because now parse_buffer_arg() and
20800	check_iovec_arg() remove :START and :END from STACK
20801
208022006-06-20  Sam Steingold  <sds@podval.org>
20803
20804	fix bug#343: i18n does not build on cf:alpha
20805	* utils/modprep.lisp (*tag-length-limit*): new variable
20806	(init-to-tag): use it to limit the size of C identifiers
20807
208082006-06-19  Sam Steingold  <sds@podval.org>
20809
20810	* makemake.in (CLISP_VERSION): remove, use TOPDIR instead
20811	(VERSION_SUFFIX): new user variable for custom distributions
20812
208132006-06-19  John Hinsdale <hin@alma.com>
20814
20815	* modules/oracle/orafns.c: call OCILogoff so as to not leak connections
20816	Thanks to Feng Hou <houfen@gmail.com> for report and patch.
20817
208182006-06-18  Peter Van Eynde  <pvaneynd@debian.org>
20819	Sam Steingold  <sds@podval.org>
20820
20821	fix bug#350: #define unused (void) breaks clisp 2.38 on arm
20822	* modules/syscalls/calls.c (unused): undefine before #include <signal.h>
20823
208242006-06-15  Sam Steingold  <sds@podval.org>
20825
20826	* m4/test.m4: redirect test output to log, not /dev/null
20827
208282006-06-15  Sam Steingold  <sds@podval.org>
20829
20830	fix bug#311: (disassemble 'car) hangs on openpower-linux1
20831	* spvw.d (init_symbol_values) [UNIX_LINUX & POWERPC]: set
20832	SYS::*DISASSEMBLE-USE-LIVE-PROCESS* to NIL
20833
208342006-06-14  Sam Steingold  <sds@podval.org>
20835
20836	fix bug#345: clisp/src/m4/x11.m4 fails to detect x11 on FC5
20837	* m4/x11.m4: remove
20838	* configure.in, makemake.in, modules/clx/new-clx/Makefile.in:
20839	* modules/clx/new-clx/configure.in, modules/clx/new-clx/link.sh.in:
20840	use AC_PATH_XTRA instead of CL_FIND_X
20841	This reverts parts of the 2005-09-16 patch
20842
208432006-06-14  Sam Steingold  <sds@podval.org>
20844
20845	* foreign1.lisp (ffi-module@constant-table): fix :value declaration
20846	(DEF-CALL-OUT): fix a typo in the 2006-01-30 patch, this fixes
20847	bug#340: build error in ffi modules
20848
208492006-06-14  Sam Steingold  <sds@podval.org>
20850
20851	* modules/bindings/win32/win32.lisp: add clipboard access functions
20852
208532006-05-30  John Hinsdale <hin@alma.com>
20854
20855	* modules/oracle/orafns.c: Support for Oracle 10g date/time types
20856
208572006-05-29  Sam Steingold  <sds@podval.org>
20858
20859	* modules/pari/pari.lisp (pari-nil): remove, gnil not found in pari CVS
20860
208612006-05-29  Sam Steingold  <sds@podval.org>
20862
20863	* modules/syscalls/configure.in: remove CL_LSTAT
20864
208652006-05-23  Bruno Haible  <bruno@clisp.org>
20866
20867	* unix.d (gettimeofday): Remove workaround for Cygwin bug. It was
20868	fix on 1997-05-27.
20869
208702006-05-20  Bruno Haible  <bruno@clisp.org>
20871
20872	* lispbibl.d: Treat DragonFly BSD like FreeBSD.
20873	* asmi386.hh (DECLARE_FUNCTION): Likewise.
20874
208752006-05-19  Sam Steingold  <sds@podval.org>
20876
20877	* list.d (LIST-LENGTH-IN-BOUNDS-P): fix last fix
20878
208792006-05-18  Sam Steingold  <sds@podval.org>
20880
20881	* stream.d (TERMINAL-RAW) [!KEYBOARD]: fix compilation
20882
208832006-05-17  Sam Steingold  <sds@podval.org>
20884
20885	* list.d (LIST-LENGTH-IN-BOUNDS-P): fix g++ compilation,
20886	error was "jump to label 'no' crosses initialization of uintV m"
20887
208882006-05-17  Jörg Höhle  <hoehle@users.sourceforge.net>
20889
20890	Readline completion now works with UTF-8 terminal encoding.
20891	* stream.d (lisp_completion) [UNICODE]: Convert byte index to
20892	string index.
20893	(make_keyboard_stream) [WIN32_NATIVE]: add missing begin_system_call()
20894
208952006-05-05  Jörg Höhle  <hoehle@users.sourceforge.net>
20896
20897	* keyboard.lisp (exec-with-keyboard): Do not rely
20898	on *terminal-io*, call (terminal-raw *keyboard-input*)
20899	* stream.d (terminal-raw): Recognize *keyboard-input*.
20900	Reported by Dave Roberts <dave@vyatta.com>
20901
209022006-05-16  Bruno Haible  <bruno@clisp.org>
20903
20904	* stream.d (finish_tty_output, force_tty_output) [UNIX_CYGWIN]:
20905	Ignore error EBADRQC.
20906	Fixes: clisp -norc -x '(sys::exit nil)' > /dev/null
20907
209082006-05-16  Bruno Haible  <bruno@clisp.org>
20909
20910	* unix.d [UNIX_CYGWIN]: Undefine WIN32 after including <windows.h>.
20911	* lispbibl.d [UNIX_CYGWIN]: Likewise.
20912
209132006-05-10  Bruno Haible  <bruno@clisp.org>
20914
20915	* makemake.in: Respect the value of the environment variable CFLAGS
20916	given at configure time.
20917
209182006-05-07  Bruno Haible  <bruno@clisp.org>
20919
20920	* spvwtabf.d (subr_tab_data): Align correctly also when using the
20921	SunPRO C compiler.
20922	* spvwtabs.d (symbol_tab_data): Likewise.
20923
209242006-05-15  Petr Salinger  <Petr.Salinger@t-systems.cz>
20925	    Jörg Höhle  <hoehle@users.sourceforge.net>
20926
20927	* makemake.in (XCC_CREATESHARED): Recognize k*bsd* OS type.
20928
209292006-05-07  Bruno Haible  <bruno@clisp.org>
20930
20931	* stream.d (FILE-POSITION): Fix handling of non-empty broadcast-streams
20932	(bug introduced on 2004-02-15).
20933
209342006-05-05  Arseny Slobodyuk  <ampy@users.sourceforge.net>
20935
20936	* modules/calls.c: do not use IPropertyStorage related
20937	constants not declared by modern mingw win32 headers.
20938	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
20939
209402006-05-03  Jörg Höhle  <hoehle@users.sourceforge.net>
20941
20942	* spvw.d (quit): do not duplicate call to done_win32(), leave it
20943	to fini_lowest_level() alone.
20944
209452006-05-02  Jörg Höhle  <hoehle@users.sourceforge.net>
20946
20947	Must use #if STACKCHECKxyz, not #if defined(STACKCHECKxyz)
20948	* eval.d (interpret_bytecode_): fix
20949	* lispbibl.d (with_saved_backtrace): fix
20950	* record.d (update_instance): fix
20951
209522006-04-29  Bruno Haible  <bruno@clisp.org>
20953
20954	* makemake.in (XCFLAGS): Add -falign-functions=4 not only when
20955	debugging. But add it only for i386 CPUs.
20956
209572006-04-29  Bruno Haible  <bruno@clisp.org>
20958
20959	* makemake.in (check-doc): Use lynx or curl as fallback when wget
20960	doesn't exist.
20961
209622006-04-29  Arseny Slobodyuk  <ampy@users.sourceforge.net>
20963
20964	GREAT socket speedup on win32
20965	* win32aux.d (interruptible_call_event, interruptible_return_event)
20966	(interruptible_routine, interruptible_arg)
20967	(interruptible_result): new static variables.
20968	(DoInterruptible): do not start new thread each time DoInterruptible
20969	is called. Use events to signal thread started once. Abort thread
20970	only when Ctrl-C or Ctrl-Break is pressed.
20971	(temp_interrupt_handler): close event handles as well as thread ones.
20972	(standbythreadf): "stand-by thread" function.
20973	(done_win32): terminate thread, close events.
20974
209752006-04-28  Sam Steingold  <sds@gnu.org>
20976
20977	* modules/berkeley-db/configure.in, modules/pari/configure.in:
20978	* modules/pcre/configure.in, modules/postgresql/configure.in:
20979	* modules/zlib/configure.in: add $LIB<mod> to $LIB (not $LTLIB<mod>)
20980	Reported by Albert Chin <clisp-devel@mlists.thewrittenword.com> in
20981	<http://article.gmane.org/gmane.lisp.clisp.devel:15576>
20982	<https://sourceforge.net/p/clisp/mailman/message/14252030/>
20983
209842006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>
20985
20986	* spvw_sigsegv.d (stackoverflow_handler) [UNIX]: libsigsegv doc
20987	says to restore normal signal mask prior to leaving handler.
20988
209892006-04-25  Jörg Höhle  <hoehle@users.sourceforge.net>
20990
20991	Increase memory sizes for builds/tests with fix memory size.
20992	* spvw.d (parse_options): default -m 3MB
20993	* makemake.in (interpreted.mem, halfcompiled.mem): Grant 1800 KW.
20994	(stage/*.fas): Grant 1000 KW.
20995
209962006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>
20997
20998	(code-char #\Rubout) has value 127 since at least 1998.
20999	* constobj.d (charname_127) [WIN32_PATHNAMES]: rename from
21000	charname_8bis, value unchanged.
21001
210022006-04-26  Jörg Höhle  <hoehle@users.sourceforge.net>
21003
21004	* charstrg.d (charname_table_codes) [WIN32_PATHNAMES]: Add #\Esc
21005	as synonym to #\Escape for interoperability.
21006	* constobj.d (charname_27bis) [WIN32_PATHNAMES]: add
21007	Suggested by Frank Buss <fb@frank-buss.de>
21008
210092006-04-26  Sam Steingold  <sds@gnu.org>
21010
21011	* modules/pcre/configure.in: fix a typo
21012	Reported by Albert Chin <clisp-devel@mlists.thewrittenword.com>
21013
210142006-04-26  Bruno Haible  <bruno@clisp.org>
21015
21016	* build-aux/config.guess, build-aux/config.sub: Update to GNU version
21017	2006-04-26.
21018
210192006-04-21  Jörg Höhle  <hoehle@users.sourceforge.net>
21020
21021	* spvw_garcol.d (gar_col_normal): delay close_some_files()
21022	until within gar_col_done().
21023
210242006-04-22  Bruno Haible  <bruno@clisp.org>
21025
21026	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Recognize powerpc64 / powerpc
21027	and x86_64 / i386 depending on the compiler.
21028	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Likewise.
21029
210302006-04-21  Bruno Haible  <bruno@clisp.org>
21031
21032	* clos-class6.lisp ((setf class-valid-initargs-from-slots)): Clear
21033	caches when the value actually changes.
21034	Fixes bug#333, reported by Kim-Minh Kaplan.
21035
210362006-04-19  Bruno Haible  <bruno@clisp.org>
21037
21038	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Map rs6000 -> powerpc,
21039	not vice versa.
21040	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Likewise.
21041	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Update.
21042
210432006-04-16  Jörg Höhle  <hoehle@users.sourceforge.net>
21044
21045	* describe.lisp (describe-object@global-symbol-macro):
21046	complete 2005-01-05.  When adding internal types, please
21047	update DESCRIBE for it uses ECASE (TYPE-OF x).
21048
210492006-03-31  Jörg Höhle  <hoehle@users.sourceforge.net>
21050
21051	* debug.d (EXT:GC): use uintM_to_I(free_space()), not UL_to_I().
21052
210532006-03-19  Jörg Höhle  <hoehle@users.sourceforge.net>
21054
21055	* xcharin.lisp (fehler-char-arg): fix format string.
21056
210572006-04-16  Bruno Haible  <bruno@clisp.org>
21058
21059	* lispbibl.d (POWERPC): Rename from RS6000.
21060	* intlog.d: Update.
21061
210622006-04-15  Bruno Haible  <bruno@clisp.org>
21063
21064	Report circular and dotted lists in macro forms and type specifiers.
21065	Allow circular and dotted lists in DESTRUCTURING-BIND.
21066	* list.d (sys::list-length-in-bounds-p)
21067	(sys::proper-list-length-in-bounds-p): New functions.
21068	* defmacro.lisp (macro-call-error): Provide different error messages
21069	for the case of a circular or dotted list.
21070	(%proper-list-p): New special variable.
21071	(make-length-test): Remove accept-dotted optional argument. Use
21072	%proper-list-p instead. If %proper-list-p is true, also emit a check
21073	whether the form is a proper list. If %proper-list-p is false, emit
21074	code that doesn't traverse the entire list.
21075	(make-macro-expansion): Bind %proper-list-p to t.
21076	* macros2.lisp (deftype): Bind %proper-list-p to t.
21077	* places.lisp (define-setf-expander): Bind %proper-list-p to t.
21078	* defs2.lisp (destructuring-bind): Bind %proper-list-p to nil.
21079	(destructing-error): Provide different error message for the case of a
21080	circular list.
21081
210822006-04-14  Bruno Haible  <bruno@clisp.org>
21083
21084	Fix compiler macro handling.
21085	* cmacros.lisp (compiler-macro-function, (setf compiler-macro-function)):
21086	Simplify by use of get-funname-symbol.
21087	* compiler.lisp (expand-compiler-macro): Call the compiler-macro
21088	function directly, not through *macroexpand-hook*. Recognize special
21089	return value NIL.
21090	(c-form): If expand-compiler-macro did something, just recurse. Fixes
21091	bug#318.
21092
210932006-04-10  Bruno Haible  <bruno@clisp.org>
21094
21095	Make it possible to use :method-combination as default-initarg for a
21096	generic-function class.
21097	* clos-genfun3.lisp (make-generic-function): Add method-combination-p
21098	argument. If false, move the :method-combination keyword argument to
21099	the end.
21100	(analyze-defgeneric): Return method-combination-p as 5th value.
21101	(defgeneric): When :method-combination was not specified, move the
21102	:method-combination keyword argument to the end.
21103	(make-generic-function-form): Update.
21104
211052006-04-10  Bruno Haible  <bruno@clisp.org>
21106
21107	Complete Sam's 2005-11-21 patch.
21108	* clos-class3.lisp (defclass): Verify that a slot's :ALLOCATION value
21109	is a symbol. Do not treat the symbol NIL specially.
21110
211112006-04-10  Bruno Haible  <bruno@clisp.org>
21112
21113	* clos-class1.lisp: Undo read-macro hacks by Sam 2005-11-28.
21114	* clos-class3.lisp: Likewise.
21115	* clos-genfun2b.lisp: Likewise.
21116	* clos-genfun3.lisp: Likewise.
21117	Maintainability is more important than a few bytes of source code.
21118	The right place for unifying immutable strings across a file is io.d.
21119
211202006-04-10  Bruno Haible  <bruno@clisp.org>
21121
21122	* clos-genfun3.lisp: Undo a de-internationalization by Sam 2005-11-28.
21123	Needed for French.
21124
211252006-04-10  Bruno Haible  <bruno@clisp.org>
21126
21127	* Makefile.devel (ANSITESTS_CVS_ROOT): Update after savannah reorg.
21128
211292006-03-22  Jörg Höhle  <hoehle@users.sourceforge.net>
21130
21131	* array.d (ADJUST-ARRAY) [HAVE_SMALL_SSTRING]: Fix bug#326
21132	ADJUST-ARRAY of 0-length adjustable string failed.
21133	Reported by David Tolpin
21134
211352006-03-22  Jörg Höhle  <hoehle@users.sourceforge.net>
21136
21137	* misc.d (registry) [WIN32_NATIVE]: refix 2000-12-04,
21138	do not goto outside `with_string_0'.
21139
211402006-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>
21141
21142	* spvw.d (init_memory) [DEBUG_SPVW]: fix stack depth reporting.
21143
211442006-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>
21145
21146	* clhs.lisp: add #+ for documentation of optional packages.
21147
211482006-03-06  Bruno Haible  <bruno@clisp.org>
21149
21150	* backquote.lisp (bq-append): Do not optimize if form1 has the
21151	shape (QUOTE (SYS::UNQUOTE ...)). Fixes bug#272.
21152	Based on proposed fix by Matthew Cross <mcross@irobot.com>.
21153
211542006-03-03  Jörg Höhle  <hoehle@users.sourceforge.net>
21155
21156	gcc-3.3.3 on Sparc64 barfs on ({ var x=y; {var z...; value;}})
21157	* intlog.d (I_logcount_I): remove superfluous second {} block.
21158	* arilev0.d (mulu32_64) [SPARC]: ditto.
21159	Reported by Magnus Henoch <mange@freemail.hu>
21160
211612006-03-01  Jörg Höhle  <hoehle@users.sourceforge.net>
21162
21163	* defs2.lisp (destructuring-bind): Forgotten by 2004-05-23
21164	patch to allow () to match NIL in destructuring lambda lists.
21165	%ignored is no more, %null-tests is there.
21166	Reported by Rob Warnock <rpw3@rpw3.org> and
21167	Kaz Kylheku <kkylheku@gmail.com>
21168
211692006-02-28  Jörg Höhle  <hoehle@users.sourceforge.net>
21170
21171	* time.d (%%TIME): complete 2004-11-27, use uintM with used_space().
21172	Reported by Don Cohen that TIME fails when allocated memory
21173	crosses the 4GB boundary.
21174
211752006-02-23  Sam Steingold  <sds@gnu.org>
21176
21177	fix bug#304: Failure of socket tests on Mac OS X
21178	* socket.d (FILL0): new macro
21179	(with_host_port, connect_to_x_server, socket_getlocalname_aux)
21180	(socket_getpeername, create_server_socket_by_socket)
21181	(accept_connection): use it to zero-out sockaddr before use
21182
211832006-02-23  Jörg Höhle  <hoehle@users.sourceforge.net>
21184
21185	* stream.d (listen_byte_ia8_buffered): use persev_immediate as in
21186	listen_char_buffered() to avoid hanging on sockets.
21187	Reported by Don Cohen
21188
211892006-02-22  Jörg Höhle  <hoehle@users.sourceforge.net>
21190
21191	* stream.d (SOCKET-SERVER): revisit 2006-01-25, avoid calling
21192	create_server_socket_by_string() twice when interface is supplied.
21193	Reported by Don Cohen
21194
211952006-02-21  Jörg Höhle  <hoehle@users.sourceforge.net>
21196
21197	Check compilation with MSVC6
21198	* win32aux.d (with_file_id): fix a typo from 2005-12-18.
21199	* makemake.in [win32msvc]: for MS shell quoting, use template
21200	echotab '$(RUN) -x "(print \"hi\")"'
21201	(libcharset.h) [win32msvc]: complete 2005-07-01 copying
21202	localcharset.h together with libcharset.h (no new dependency)
21203
212042006-02-05  Jörg Höhle  <hoehle@users.sourceforge.net>
21205
21206	fix bug#299: FFI:uint64 maps to long long when supported
21207	* foreign.d [HAVE_LONG_LONG]: use av_start_longlong,
21208	va_return_longlong etc.  Otherwise, continue to pass a struct of
21209	two uint32: this is compatible with MSVC's __int64 handling.
21210
212112006-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>
21212
21213	fix bug#320: CPP macros using "do{}while(0)" do not
21214	work with statement arguments containing break or continue
21215	* lisparit.d (check_real_replacement, check_rational_replacement):
21216	remove break from calls to if_realp(), if_rationalp()
21217
212182006-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>
21219
21220	* foreign.d (foreign-address-unsigned): revisit last patch. Do not
21221	yet introduce uintP_to_I abstraction, use ulong_to_I() for now.
21222
212232006-02-03  Jörg Höhle  <hoehle@users.sourceforge.net>
21224
21225	* foreign.d (foreign-address-unsigned, unsigned-foreign-address)
21226	[WIDE]: uintP does not fit into 32 bits, use I_to_UQ/UQ_to_I().
21227	Reported by James Bielman <jamesjb@jamesjb.com>
21228
212292006-02-02  Jörg Höhle  <hoehle@users.sourceforge.net>
21230
21231	* ffcall/avcall, ffcall/vacall [HAVE_LONG_LONG]: complete switch
21232	from HAVE_LONGLONG to HAVE_LONG_LONG, bug#296
21233	* foreign.d [_MSC_VER]: Incidentally, this prevents
21234	#undef HAVE_LONGLONG in avcall.h with MSVC, so the FFI now
21235	provides FFI:UINT64/SINT64 conversions.
21236
212372006-01-30  Jörg Höhle  <hoehle@users.sourceforge.net>
21238
21239	fix bug#256: preserve object identity of FFI types
21240	* foreign1.lisp (def-call-out): no side effects during macro-
21241	expansion, minimize number of calls to parse-c-type (from Sam
21242	Steingold's wishlist) and do not inline the value of
21243	parse-c-function, to preserve EQ tests (cf. foreign.d:equal_fvd).
21244	* foreign1.lisp (note-c-fun): change API, but I argue not ABI
21245	* foreign1.lisp (argvector-to-signature): remove
21246
212472006-01-26  Sam Steingold  <sds@gnu.org>
21248
21249	* savemem.lisp (saveinitmem): accept :DOCUMENTATION
21250	* constsym.d (image_doc): add
21251	* spvw.d (init_symbol_values): init it
21252	(usage): document -help-image
21253	(argv_actions): add argv_help_image
21254	(parse_options): handle -help-image
21255	(main_actions): ditto: print *IMAGE-DOC* and *SCRIPT*
21256
212572006-01-26  Sam Steingold  <sds@gnu.org>
21258
21259	* spvw.d (main_actions): for "-x": use SYS::MAIN-LOOP instead of
21260	SYS::*DRIVER* so that even user images offer full CLISP functionality
21261	* constsym.d (main_loop): add
21262
212632006-01-26  Sam Steingold  <sds@gnu.org>
21264
21265	SAVEINITMEM now accepts :SCRIPT argument that disables
21266	interpreting the first positional argument as the script name.
21267	* savemem.lisp (saveinitmem): accept :SCRIPT
21268	* constsym.d (*script*): add
21269	* spvw.d (init_symbol_values): init it
21270	(main_actions): when it is NIL, push the script argument onto
21271	*ARGS* to be processed by the image's init function
21272
212732006-01-26  Sam Steingold  <sds@gnu.org>
21274
21275	* build-aux/config.sub, build-aux/config.guess: upgrade to 2006-01-02
21276
212772006-01-26  Sam Steingold  <sds@gnu.org>
21278
21279	* makemake.in (install) [cygwin]: clisp-<ver>.README goes to
21280	/usr/share/doc/Cygwin/, not to /usr/share/doc/clisp-<ver>/Cygwin/
21281
212822006-01-25  Sam Steingold  <sds@gnu.org>
21283
21284	* stream.d (SOCKET-SERVER): avoid calling
21285	create_server_socket_by_string() twice when interface is supplied;
21286	restore the default interface to "0.0.0.0" for backwards compatibility
21287
212882006-01-25  Sam Steingold  <sds@gnu.org>
21289
21290	* makemake.in (EVERY_INCLUDES_H) [unix|win32gcc]: add unixconf.h
21291
212922006-01-24  Sam Steingold  <sds@gnu.org>
21293
21294	* Makefile.devel (gnu-distrib): new target
21295	(distrib): depend on gnu-distrib
21296	(upload): also upload to gnu.org
21297
212982006-01-24  Sam Steingold  <sds@gnu.org>
21299
21300	* version.sh: clisp 2.38 release
21301
213022006-01-23  Sam Steingold  <sds@gnu.org>
21303
21304	* makemake.in (clean0): also remove *.core and *.stackdump
21305
213062006-01-23  Sam Steingold  <sds@gnu.org>
21307
21308	* spvw_memfile.d (find_memdump): when 'image size' fails,
21309	reset mem_start to -1
21310
213112006-01-22  Sam Steingold  <sds@gnu.org>
21312
21313	* modules/berkeley-db/bdb.c, modules/berkeley-db/configure.in:
21314	support Berkeley DB 4.4
21315
213162006-01-22  Sam Steingold  <sds@gnu.org>
21317
21318	fix bug#313: buffer overflow in stream handling code
21319	* w32shell.c (real_path): check length of namein
21320
213212006-01-22  Sam Steingold  <sds@gnu.org>
21322
21323	* spvw_memfile.d (find_memdump) [!LOADMEM_TRY_SEARCH]: disable
21324	find_marker()
21325
213262006-01-20  Sam Steingold  <sds@gnu.org>
21327
21328	* Makefile.devel (distrib): also depend on doc-distrib
21329	(SRC_DIST, SRC_DIST1): go to $(ARCHIVE)
21330	(doc-distrib, doc--distrib): new targets
21331	(upload): also upload $(DOC_DIST)
21332	(src-distrib): do not depend on potfiles because they are already
21333	created by "all" and thus should not be re-created by "src-distrib"
21334
213352006-01-20  Sam Steingold  <sds@gnu.org>
21336
21337	* built.d (built_flags): report readline version
21338
213392006-01-19  Sam Steingold  <sds@gnu.org>
21340
21341	* makemake.in (check-exec-image): new target
21342	(CHECK_DEPS): add check-exec-image
21343
213442006-01-19  Sam Steingold  <sds@gnu.org>
21345
21346	* spvw_memfile.d (find_memdump): reduce the portion of
21347	memdump_header_t used as marker to comply with loadmem_from_handle();
21348	use an intermediate variable to ensure that the second argument to
21349	lseek(SEEK_END) is indeed negative
21350
213512006-01-18  Sam Steingold  <sds@gnu.org>
21352
21353	speed-up image-in-executable loading
21354	* spvw_memfile.d (savemem_with_runtime): set mem_start if it was -1
21355	(savemem): append mem_start to the image
21356	(loadmem_from_handle): assume that the image end with mem_start
21357	use ABORT_SYS, ABORT_INI, ABORT_MEM instead of abort[123]
21358	(find_memdump): try to find mem_start at the end of the image first;
21359	use the time-consuming (~1sec) find_marker() as a last resort
21360
213612006-01-18  Sam Steingold  <sds@gnu.org>
21362
21363	* execname.c (find_executable) [UNIX_CYGWIN32]: cygwin's
21364	realpath() does not append ".exe", so we have to do it here
21365
213662006-01-18  Sam Steingold  <sds@gnu.org>
21367
21368	* makemake.in (setup.hint) [cygwin]: depend on SUMMARY
21369	remove duplicate entries in the "require:" line
21370
213712006-01-18  Sam Steingold  <sds@gnu.org>
21372
21373	* spvw_memfile.d (loadmem_from_executable): check the return value
21374	of open_filename(), just in case cygwin breaks find_executable again
21375
213762006-01-18  Sam Steingold  <sds@gnu.org>
21377
21378	* modules/i18n/gettext.c (bool_char_lconv): WARN instead of
21379	NOTREACHED when the value is invalid
21380	(CHAR_MAX): defined in <limits.h>, do not redefine it here
21381
213822006-01-16  Sam Steingold  <sds@gnu.org>
21383
21384	* win32.d (HAVE_ICONV): Yaroslav Kavenchuk reports no problems
21385	with clisp/libiconv/mingw, so do not unconditionally disable ICONV
21386	here (reverts a part of the 2005-05-28 patch)
21387
213882006-01-16  Sam Steingold  <sds@gnu.org>
21389
21390	* constsym.d, init.lisp (*eq-hashfunction*, *eql-hashfunction*)
21391	(*equal-hashfunction*): export from CUSTOM
21392	Reported by Tomas Zellerin <zellerin@gmail.com>
21393
213942006-01-13  Sam Steingold  <sds@gnu.org>
21395
21396	* savemem.lisp (saveinitmem): accept :norc
21397	* constsym.d (*norc*): add
21398	* spvw.d (init_symbol_values): init *norc*
21399	(main_actions): do not load RC-file if *norc* is non-NIL
21400
214012006-01-13  Sam Steingold  <sds@gnu.org>
21402
21403	* spvw.d: executable image should load RC-file by default
21404	(parse_options): do not reset argv_norc when argv_memfile is NULL
21405	(init_memory): set argv_memfile to executable_name, not "self"
21406	(main_actions): check argv_memfile in addition to argv_norc when
21407	loading the RC-file
21408
214092006-01-13  Sam Steingold  <sds@gnu.org>
21410
21411	Ensure that the executable image contains just one memdump
21412	* spvw_memfile.d (find_memdump): new function
21413	(mem_searched): new variable
21414	(savemem_with_runtime): call find_memdump if it has not been
21415	called already so that an image saved by an executable image
21416	called with -M does not include 2 images
21417	(loadmem_from_executable): call find_memdump(); close the handle
21418
214192006-01-12  Sam Steingold  <sds@gnu.org>
21420
21421	use memdump_header as the marker instead of runtime_size
21422	for creating executable images
21423	* spvw.d (init_memory): remove marker and runtime_size
21424	* spvw_memfile.d (mem_start): new static, replaces runtime_size
21425	(savemem_with_runtime): when mem_start is 0, copy the whole executable
21426	(fill_memdump_header): extract from savemem()
21427	(savemem): use it
21428	(find_marker): moved here from utils/filesize.c
21429	(loadmem_from_executable): use it instead of runtime_size
21430	* makemake.in, _distmakefile: remove filesize
21431	* utils/filesize.c: remove
21432
214332006-01-12  Sam Steingold  <sds@gnu.org>
21434
21435	* modules/postgresql/configure.in: look for
21436	<postgresql/postgres_ext.h> in addition to <postgres_ext.h>
21437	* modules/postgresql/postgresql.lisp: include either
21438	Reported by Jeff Bowman <wolfjb@bigfoot.com> that debian unstable
21439	installs all of the postgres include files in /usr/include/postgresql/
21440
214412006-01-12  Sam Steingold  <sds@gnu.org>
21442
21443	fix bug#305: cannot append to a file
21444	the 2005-12-13 patch that fix bug#291 introduced this one
21445	* pathname.d (open_output_file): open handle WRONLY only on UNIX
21446	and only if the underlying file exists and is special; this allows
21447	buffer filling for regular files (there are no special files on WIN32)
21448	* stream.d (low_fill_buffered_handle): assume that a non-readable
21449	stream with a regular handle has a readable handle
21450	(position_file_buffered): reverse last patch
21451
214522006-01-11  Sam Steingold  <sds@gnu.org>
21453
21454	fix bug#306: socket-status ignores microseconds in timeout
21455	* stream.d (sec_usec): fix a typo in TV_SEC
21456
214572006-01-07  Sam Steingold  <sds@gnu.org>
21458
21459	make utils/filesize idempotent
21460	* utils/filesize.c: append file size to marker instead of
21461	overwriting it, write file size in hex
21462	* spvw.d (init_memory): use stroul() instead of atol()
21463
214642006-01-07  Sam Steingold  <sds@gnu.org>
21465
21466	* defs1.lisp (encode-universal-time): handle correctly early
21467	1900-01-01 GMT (which is 1899-12-31 EST)
21468
214692006-01-07  Sam Steingold  <sds@gnu.org>
21470
21471	* makemake.in (XCFLAGS) [disable-mmap]: add -DNO_MULTIMAP_SHM
21472	-DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP
21473
214742006-01-05  Sam Steingold  <sds@gnu.org>
21475
21476	fix bug#303: bad read from make-xterm-io-stream
21477	* modules/syscalls/posix.lisp (make-xterm-io-stream): fix bitrot
21478
214792005-12-22  Jörg Höhle  <hoehle@users.sourceforge.net>
21480
21481	* modules/syscalls/calls.c (POSIX:SYSLOG): use
21482	syslog(priority,"%s",string) to disable % processing and avoid crashes
21483
214842006-01-05  Sam Steingold  <sds@gnu.org>
21485
21486	* modules/i18n/i18n.lisp, modules/syscalls/posix.lisp: do not define
21487	impnotes documentation in lisp, do it in libdir/Symbol-Table.text
21488
214892006-01-04  Sam Steingold  <sds@gnu.org>
21490
21491	* makemake.in: strip runtime on no-debug woe32
21492	because woe32 users do not have gdb anyway
21493
214942006-01-03  Sam Steingold  <sds@gnu.org>
21495
21496	* utils/filesize.c (main): check that the marker is found just once
21497
214982006-01-03  Sam Steingold  <sds@gnu.org>
21499
21500	* misc.d (clisp_setenv) [WIN32_NATIVE]: use setenv_via_environ()
21501	when value is "" because putenv("NAME=") unsets NAME instead of
21502	setting it to ""
21503
215042006-01-03  Sam Steingold  <sds@gnu.org>
21505
21506	* spvw_language.d (init_language): pass NULL as the second
21507	argument to clisp_setenv() to unset a variable
21508
215092006-01-03  Sam Steingold  <sds@gnu.org>
21510
21511	* modules/syscalls/posix.lisp (make-xterm-io-stream): accept :title
21512
215132006-01-03  Sam Steingold  <sds@gnu.org>
21514
21515	* utils/filesize.c (find_marker): fread() returns size_t, not ssize_t
21516
215172006-01-03  Sam Steingold  <sds@gnu.org>
21518
21519	* spvw_memfile.d (loadmem_from_executable): use fd_read() instead
21520	of read() to fix woe32
21521
215222006-01-03  Sam Steingold  <sds@gnu.org>
21523
21524	SAVEINITMEM can create standalone executables
21525	* spvw.d (runtime_size): new static
21526	(init_memory): when runtime_size is non-0, try to load image from
21527	the end of the executable, and set argv_memfile to "self"
21528	* spvw_memfile.d (savemem): accept exec_p, call savemem_with_runtime
21529	(savemem_with_runtime, loadmem_from_executable): new functions
21530	(CLOSE_HANDLE): new macro
21531	(loadmem, loadmem_from_handle): use it
21532	* configure.in: check for fchmod
21533	* execname.c (get_executable_name): new function,
21534	returns executable_name
21535	* lispbibl.d (savemem): update the prototype
21536	* makemake.in (UTILS): add filesize
21537	(lisp.run): call filesize
21538	(distrib) [!BINARY_DISTRIB]: distribute filesize.c
21539	* _distmakefile [!UNIX_BINARY_DISTRIB]: call filesize on executables
21540	* pathname.d, subr.d (SAVEMEM): accept EXEC-P
21541	* savemem.lisp (%saveinitmem): pass NIL as EXEC-P to SAVEMEM
21542	(saveinitmem): accept :EXECUTABLE
21543	* utils/filesize.c: new file, replace "my magic marker"
21544	with the file size in decimal
21545
215462006-01-02  Jörg Höhle  <hoehle@users.sourceforge.net>
21547
21548	* spvw.d (parse_options): have lisp.run --version print information
21549	even without image file (no -M lispinit.mem).
21550
215512006-01-02  Sam Steingold  <sds@gnu.org>
21552
21553	* clisp-link.in (make_lisprun): new shortcut
21554
215552006-01-02  Sam Steingold  <sds@gnu.org>
21556
21557	* version.sh: clisp 2.37 release
21558
215592006-01-02  Sam Steingold  <sds@gnu.org>
21560
21561	* clhs.lisp (documentation@symbol): handle uninterned symbols
21562
215632006-01-01  Sam Steingold  <sds@gnu.org>
21564
21565	* constsym.d, execname.c, lispbibl.d, misc.d, pathname.d, spvw.d:
21566	* subr.d: remove HAVE_DISASSEMBLER
21567
215682006-01-01  Sam Steingold  <sds@gnu.org>
21569
21570	better handle numbers that are exactly the midpoint between their
21571	possible binary approximations, like 1d23 (bug#300)
21572	* format.lisp (format-scale-exponent): use exact values as
21573	arguments to FORMAT-SCALE-EXPONENT-AUX
21574
215752006-01-01  Sam Steingold  <sds@gnu.org>
21576
21577	* time.d (DEFAULT-TIME-ZONE) [WIN32]: decrease time_max by 24 so that
21578	the second call to seconds_west() will receive an acceptable argument
21579
215802006-01-01  Sam Steingold  <sds@gnu.org>
21581
21582	* configure: replaced --list-modules with --help-modules
21583	and print more information
21584
215852005-12-27  Sam Steingold  <sds@gnu.org>
21586
21587	* m4/make.m4 (cl_cv_gnu_make): send make error output to 5
21588
215892005-12-23  Sam Steingold  <sds@gnu.org>
21590
21591	* modules/syscalls/calls.c (RLIMIT): never signal an error when
21592	"what" is missing and the alist is returned
21593
215942005-12-22  Sam Steingold  <sds@gnu.org>
21595
21596	* lispbibl.d, socket.d, stream.d: "interface" is a win32 keyword
21597
215982005-12-21  Jörg Höhle  <hoehle@users.sourceforge.net>
21599
21600	* clhs.lisp (http-proxy): downcase environment variable http_proxy
21601
216022005-12-21  Sam Steingold  <sds@gnu.org>
21603
21604	* makemake.in (check-doc): explicitly check for the internet connection
21605
216062005-12-21  Sam Steingold  <sds@gnu.org>
21607
21608	* m4/test.m4: use eval to avoid errors
21609
216102005-12-21  Sam Steingold  <sds@gnu.org>
21611
21612	* configure.in: call CL_PROG_MAKE
21613	* m4/make.m4: add
21614	* makemake.in: benchmarks & --enable-maintainer-mode require GNU make
21615
216162005-12-21  Dr. Werner Fink  <werner@suse.de>
21617
21618	fix bug#290: factorial broken on 64bit cpu
21619	* intmal.d (FN_fak_I): uintL is not uintV on 64-bit platforms
21620
216212005-12-19  Tomas Zellerin  <zellerin@gmail.com>
21622
21623	* constsym.d: new keywords :INTERFACE, :BACKLOG
21624	* lispbibl.d, socket.d: create_server_socket split to
21625	create_server_socket_by_string and create_server_socket_by_socket
21626	* socket.d (bindlisten_via_ip): accept pointer to backlog
21627	* stream.d (SOCKET-SERVER): accept keywords :INTERFACE :BACKLOG
21628	* subr.d, subrkw.d (SOCKET-SERVER): changed signature
21629
216302005-12-19  Sam Steingold  <sds@gnu.org>
21631
21632	* stream.d (find_open_file): fix compilation with gcc4
21633
216342005-12-18  Sam Steingold  <sds@gnu.org>
21635
21636	base check_file_re_open() on unique file ID, not truenames that
21637	can be fooled by hard links
21638	* win32.d, unix.d (file_id, with_file_id, errno_t, handle_file_id)
21639	(file_id_eq): declare
21640	* win32aux.d, unixaux.d (with_file_id, handle_file_id)
21641	(file_id_eq): implement
21642	* pathname.d (check_file_re_open): use with_file_id & &find_open_file
21643	* stream.d (strm_channel_extrafields_t): add fid field
21644	(ChannelStream_file_id): new macro
21645	(find_open_file): implement
21646	(make_file_stream): fill ChannelStream_file_id
21647
216482005-12-16  Sam Steingold  <sds@gnu.org>
21649
21650	* modules/syscalls/calls.c (POSIX::FILE-STAT): use SIZEOF_INO_T to
21651	determine how to convert inode number to Lisp
21652	* configure.in: use CL_STAT instead of explicit checks
21653	* modules/syscalls/configure.in: ditto
21654	* m4/stat.m4 (CL_STAT): rename from CL_LSTAT;
21655	concentrate all sys/stat.h and sys/statvfs.h checks here
21656
216572005-12-16  Sam Steingold  <sds@gnu.org>
21658
21659	* describe.lisp (describe-object@funcallable-standard-object):
21660	add the method
21661	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
21662
216632005-12-16  Sam Steingold  <sds@gnu.org>
21664
21665	* makemake.in (clisp.dvi, clisp.ps, clisp.pdf): I am sick of telling
21666	people to ignore clisp.dvi errors, so now these errors are ignored
21667
216682005-12-16  Dr. Werner Fink  <werner@suse.de>
21669	    Sam Steingold  <sds@gnu.org>
21670
21671	* foreign.d (check_faddress_valid): do not declare inline, g++ 4
21672	cannot link global inline on linux
21673	* lispbibl.d (check_faddress_valid): ditto
21674
216752005-12-15  Sam Steingold  <sds@gnu.org>
21676
21677	* stream.d (position_file_buffered): when the file is not
21678	readable, do not call buffered_nextbyte()
21679
216802005-12-15  Sam Steingold  <sds@gnu.org>
21681
21682	* pathname.d (direction_symbol, check_file_re_open): add
21683	(open_file): use check_file_re_open() to ensure that we are not
21684	opening a file twice
21685	* constsym.d (file_error): add
21686
216872005-12-15  Sam Steingold  <sds@gnu.org>
21688
21689	* socket.d (socket_getlocalname_aux, socket_getpeername): assume
21690	that unknown sa_family means local connection (AF_UNIX, AF_LOCAL)
21691
216922005-12-15  Sam Steingold  <sds@gnu.org>
21693
21694	* modules/bindings/win32/win32.lisp (with-handle): fix
21695
216962005-12-15  Sam Steingold  <sds@gnu.org>
21697
21698	* stream.d (publish_host_data): do not invoke test_socket_stream twice
21699
217002005-12-14  Sam Steingold  <sds@gnu.org>
21701
21702	* stream.d (publish_host_data): fix STACK handling
21703	Reported by Lennart Staflin <lenst@lysator.liu.se>
21704
217052005-12-14  Sam Steingold  <sds@gnu.org>
21706
21707	* spvw_objsize.d (objsize_iarray, objsize_s8string, objsize_s16string)
21708	(objsize_s32string, objsize_sstring): return uintM instead of uintL
21709	Reported by Dr. Werner Fink <werner@suse.de> on IA64 with g++
21710
217112005-12-13  Sam Steingold  <sds@gnu.org>
21712
21713	fix bug#291: OPEN :DIRECTION :OUTPUT now creates
21714	write-only handles and handles named pipes correctly
21715	* stream.d (low_fill_buffered_handle): when the stream is not
21716	readable, do not try to read from it
21717	* pathname.d (open_output_file): accept wronly argument
21718	(open_file): pass wronly to open_output_file()
21719
217202005-12-12  Sam Steingold  <sds@gnu.org>
21721
21722	* lispbibl.d (defined_class_length): cast address to aint instead
21723	of ULONG to avoid the g++ warning "cast from pointer to integer of
21724	different size" on amd64
21725
217262005-12-12  Sam Steingold  <sds@gnu.org>
21727
21728	* spvw.d: use while instead of dotimes and do/while instead of
21729	dotimesp to simplify debugging with gdb
21730
217312005-12-11  Sam Steingold  <sds@gnu.org>
21732
21733	* lispbibl.d (I_to_uint64, I_to_sint64) [!HAVE_FFI]: define for STREAM
21734	Reported by Lennart Staflin <lenst@lysator.liu.se> on MacOS X 10.3.9
21735
217362005-12-09  Sam Steingold  <sds@gnu.org>
21737
21738	* constobj.d (type_hashtable_size): use ASH instead of FLOOR,
21739	use upper case uniformly
21740
217412005-12-09  Sam Steingold  <sds@gnu.org>
21742
21743	* spvw.d (init_object_tab): handle "." specially to save time
21744
217452005-12-09  Sam Steingold  <sds@gnu.org>
21746
21747	* encoding.d (base64_range): declare "signed char" because we
21748	store -1 (triggers a bug on PowerPC where "char" = "unsigned char")
21749	Reported by Magnus Henoch <mange@freemail.hu>
21750
217512005-12-09  Sam Steingold  <sds@gnu.org>
21752
21753	* m4/readline.m4 (CL_READLINE): check for <readline/readline.h>
21754
217552005-12-09  Sam Steingold  <sds@gnu.org>
21756
21757	* encoding.d (CHARSET-TYPEP): use Sstring_length instead of
21758	Svector_length for the range string because Svector_length returns
21759	non-0 value for "" on AMD64-Linux
21760
217612005-12-08  Sam Steingold  <sds@gnu.org>
21762
21763	* misc.d (clisp_setenv): add a cast for C++ compilation
21764
217652005-12-08  Sam Steingold  <sds@gnu.org>
21766
21767	* encoding.d (base64_range): do not use a literal string for
21768	initialization because it allocates an extra element for 0
21769
217702005-12-07  Sam Steingold  <sds@gnu.org>
21771
21772	* clhs.lisp (documentation@package): prepend (impnotes-root) to the doc
21773
217742005-12-07  Sam Steingold  <sds@gnu.org>
21775
21776	* defs1.lisp (*system-package-list*): use "COMMON-LISP"
21777	instead of "LISP"
21778
217792005-12-06  Sam Steingold  <sds@gnu.org>
21780
21781	* m4/termcap.m4 (CL_TERMCAP): avoid "case x in (..) ;; esac"
21782	1-line syntax as it is not understood by the Solaris /bin/sh
21783
217842005-12-06  Sam Steingold  <sds@gnu.org>
21785
21786	* clhs.lisp (open-url): new function
21787	(ensure-clhs-map, ensure-impnotes-map): use it
21788
217892005-12-05  Sam Steingold  <sds@gnu.org>
21790
21791	* m4/putenv.m4 (CL_PUTENV): check unsetenv() declared return value
21792	* misc.d (cat_env_var): value must be non-NULL
21793	(setenv_via_environ): extract from clisp_setenv()
21794	(clisp_setenv): use it to unset the variable
21795
217962005-12-05  Sam Steingold  <sds@gnu.org>
21797
21798	* m4/readline.m4 (CL_READLINE): pass filename_completion_function
21799	to CL_PROTO to avoid ugly messages
21800
218012005-12-05  Sam Steingold  <sds@gnu.org>
21802
21803	* m4/x11.m4: fix overlapping messages, do not use broken CL_SILENT
21804	* m4/general.m4 (CL_SILENT): remove broken macro
21805
218062005-12-05  Sam Steingold  <sds@gnu.org>
21807
21808	* makemake.in (HSDEFAULT): drop trailing slash
21809	(clisp-1.html): substitute @PLATFORM@
21810
218112005-12-05  Sam Steingold  <sds@gnu.org>
21812
21813	* inspect.lisp (inspect-frontend@:http): use UNWIND-PROTECT to
21814	ensure that SOCK and SERVER are closed
21815	Suggested by Tomas Zellerin <zellerin@gmail.com>
21816
218172005-12-05  Sam Steingold  <sds@gnu.org>
21818
21819	* misc.d (clisp_setenv) [HAVE_UNSETENV]: use unsetenv
21820
218212005-12-04  Sam Steingold  <sds@gnu.org>
21822
21823	* spvw.d (main_actions): remove the legacy warning about RC file
21824	name (_clisprc -> .clisprc) transition
21825
218262005-12-04  Sam Steingold  <sds@gnu.org>
21827
21828	* m4/putenv.m4 (CL_PUTENV): check for unsetenv
21829
218302005-12-04  Sam Steingold  <sds@gnu.org>
21831
21832	* makemake.in (UNAME_R): strip everything after [^A-Za-z0-9.]
21833
218342005-12-04  Sam Steingold  <sds@gnu.org>
21835
21836	* m4/readline.m4: fix last patch that was totally broken
21837
218382005-12-04  Sam Steingold  <sds@gnu.org>
21839
21840	* version.sh: clisp 2.36 release
21841
218422005-12-04  Sam Steingold  <sds@gnu.org>
21843
21844	* spvw_circ.d (get_circ_mark, get_circ_unmark):
21845	use the appropriate flavor of dotimes
21846	Reported by Peter Van Eynde <pvaneynd@debian.org> [on m68k]
21847
218482005-12-03  Sam Steingold  <sds@gnu.org>
21849
21850	* pseudofun.d (base64_mblen, base64_mbstowcs, base64_wcslen)
21851	(base64_wcstombs, base64_range): declare
21852
218532005-12-03  Sam Steingold  <sds@gnu.org>
21854
21855	* spvw_debug.d (nobject_out1): print encodings
21856
218572005-12-03  Sam Steingold  <sds@gnu.org>
21858
21859	* encoding.d (base64_range): fix for "-1" in table_base64
21860
218612005-12-02  Sam Steingold  <sds@gnu.org>
21862
21863	* defs1.lisp (encode-universal-time): revert part of the 2005-11-30
21864	patch: no need to adjust the return value of DEFAULT-TIME-ZONE
21865	* time.d (seconds_west): fix a bug in the last patch:
21866	now_gm and now_local must be structures, not pointers, because
21867	gmtime and localtime return pointers to the same memory ares.
21868	also note that seconds_west is NOT the same as (mktime(&now_gm) -
21869	mktime(&now_local)) during DST
21870
218712005-12-01  Sam Steingold  <sds@gnu.org>
21872
21873	* spvw_debug.d (nobject_out1): output more information for streams
21874
218752005-11-30  Sam Steingold  <sds@gnu.org>
21876
21877	Fix a bug in ENCODE-UNIVERSAL-TIME that made it an imperfect
21878	inverse for DECODE-UNIVERSAL-TIME because it passed non-UT hours
21879	to DEFAULT-TIME-ZONE which required UT hours
21880	* time.d (seconds_west): new function, extracted from...
21881	(DEFAULT-TIME-ZONE): require 2 arguments: time in hours and UT-P
21882	call seconds_west() and then again if UT-P is false
21883	* subr.d (default_time_zone): requires 2 arguments
21884	* defs1.lisp (decode-universal-time, encode-universal-time):
21885	pass 2 arguments to DEFAULT-TIME-ZONE
21886
218872005-11-30  Sam Steingold  <sds@gnu.org>
21888
21889	* modules/i18n/gettext.c: include <limits.h> to define CHAR_MAX
21890	Reported by Magnus Henoch <mange@freemail.hu>
21891
218922005-11-30  Sam Steingold  <sds@gnu.org>
21893
21894	fix bug#288: invalid slot :ALLOCATION causes segfault
21895	* record.d (ptr_to_slot): do not assume that slotinfo is valid,
21896	signal an error if it is not, accept slotname for error reporting
21897	(slot_using_class_up, SLOT-VALUE, SET-SLOT-VALUE, SLOT-BOUNDP)
21898	(SLOT-MAKUNBOUND, %SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
21899	(do_initialize_instance): pass slot to ptr_to_slot
21900
219012005-11-29  Sam Steingold  <sds@gnu.org>
21902
21903	* misc.d (cat_env_var) [woe32]: putenv("FOO=") removes FOO,
21904	[posix]: putenv("FOO") removes FOO
21905	(clisp_setenv) [WIN32_NATIVE]: ignore ERROR_ENVVAR_NOT_FOUND when
21906	passing NULL value to SetEnvironmentVariableA()
21907
219082005-11-28  Sam Steingold  <sds@gnu.org>
21909
21910	* init.lisp (loading-message): new function
21911	(load): use it
21912	* defs1.lisp (load-lpt-many, load-lpt-one): ditto
21913	(load-logical-pathname-translations): use search-file exclusively
21914
219152005-11-28  Sam Steingold  <sds@gnu.org>
21916
21917	* foreign1.lisp (convert-to-foreign-C): add
21918	(note-c-call-in): use it
21919
219202005-11-28  Sam Steingold  <sds@gnu.org>
21921
21922	* makemake.in (lispbibl.h): depend on unixconf.h
21923
219242005-11-28  Sam Steingold  <sds@gnu.org>
21925
21926	* clhs.lisp, clos-class1.lisp, clos-class3.lisp, clos-genfun2b.lisp:
21927	* clos-genfun3.lisp, clos-methcomb2.lisp, compiler.lisp, defmacro.lisp:
21928	* defs1.lisp, describe.lisp, format.lisp, type.lisp, condition.lisp:
21929	read-macro micro-optimizations
21930
219312005-11-26  Sam Steingold  <sds@gnu.org>
21932
21933	* stream.d (error_eof_p): new function; on woe32, WSAESHUTDOWN is
21934	signaled when the other end is shutdown, so take it to mean EOF
21935	(low_read_array_unbuffered_handle, low_fill_buffered_handle)
21936	(low_read_unbuffered_socket, low_listen_unbuffered_socket)
21937	(low_read_array_unbuffered_socket, low_fill_buffered_socket): use it
21938	Reported by Vasilis M. <vasilism@hotmail.com>
21939
219402005-11-26  Sam Steingold  <sds@gnu.org>
21941
21942	* .gdbinit: ensure that all invocations get -E 1:1
21943
219442005-11-26  Sam Steingold  <sds@gnu.org>
21945
21946	New charset BASE64
21947	* encoding.d (base64_mblen, base64_mbstowcs, base64_wcslen)
21948	(base64_wcstombs, base64_range, base64_table, table_base64)
21949	(base64_to_bytes, base64_to_chars): add
21950	(init_encodings_1): unit BASE64
21951	* constsym.d (BASE64): add
21952	* clhs.lisp (*base64-table*, base64-encode, *table-base64*)
21953	(base64-decode): remove
21954	(open-http): use CHARSET:BASE64 instead of BASE64-ENCODE
21955
219562005-11-26  Sam Steingold  <sds@gnu.org>
21957
21958	* .gdbinit (run_test, run_all_tests): suite --> tests (typo)
21959
219602005-11-26  Sam Steingold  <sds@gnu.org>
21961
21962	* makemake.in (LN_HARD): set from @LN@, also set a Makefile variable
21963	with the same name so that the AFS users can change it at run time
21964
219652005-11-26  Sam Steingold  <sds@gnu.org>
21966
21967	* lispbibl.d (Snstring): export to clisp.h to make module i18n
21968	build --without-unicode
21969
219702005-11-25  Sam Steingold  <sds@gnu.org>
21971
21972	* modules/syscalls/posix.lisp: set documentation sys::process-id
21973	to point to impnotes#process-id
21974
219752005-11-23  Sam Steingold  <sds@gnu.org>
21976
21977	* makemake.in (check-doc): new target to check Symbol-Table.text
21978
219792005-11-23  Sam Steingold  <sds@gnu.org>
21980
21981	* clhs.lisp (base64-encode, base64-decode): stolen from CLLIB
21982	(http-proxy): do not separate username with password
21983	(open-http): send "Authorization" when proxy user:pass is specified
21984
219852005-11-22  Sam Steingold  <sds@gnu.org>
21986
21987	fix bug#287: infinite loop in regexp-split
21988	* modules/regexp/regexp.lisp (regexp-split): avoid an infinite loop
21989	by signaling an error when the pattern matches an empty string
21990
219912005-11-22  Sam Steingold  <sds@gnu.org>
21992
21993	* init.lisp (*http-proxy*): export
21994	* clhs.lisp (*http-proxy*): new variable
21995	(http-proxy): new function
21996	(open-http): use it
21997	(ensure-impnotes-map): handle errors in Symbol-Table.text
21998
219992005-11-22  Sam Steingold  <sds@gnu.org>
22000
22001	* modules/syscalls/posix.lisp (SOCKET-SERVICE-PORT):
22002	avoid package lock warnings
22003
220042005-11-22  Sam Steingold  <sds@gnu.org>
22005
22006	* modules/i18n/i18n.lisp (i18n:locale-conv, i18n:set-locale)
22007	(i18n:language-information): add impnotes documentation
22008
220092005-11-22  Sam Steingold  <sds@gnu.org>
22010
22011	* makemake.in (.SHELL): add on all *bsd* systems
22012
220132005-11-21  Sam Steingold  <sds@gnu.org>
22014
22015	fix bug#286: :ALLOCATION kind not extensible
22016	* clos-class3.lisp (defclass): permit user-defined :allocation
22017	(checked-compute-slots): require non-NIL location only from slots
22018	with standard :ALLOCATION (:CLASS or :INSTANCE)
22019
220202005-11-21  Sam Steingold  <sds@gnu.org>
22021
22022	* configure: suggest setting CC when printing libsigsegv building
22023	recommendations
22024
220252005-11-21  Sam Steingold  <sds@gnu.org>
22026
22027	* m4/readline.m4 (CL_READLINE): fail when --with-readline was
22028	specified, but a modern readline cannot be found
22029
220302005-11-21  Sam Steingold  <sds@gnu.org>
22031
22032	* foreign1.lisp (DEF-C-CONST): rewrote
22033	(note-c-const): remove
22034	(c-const-value): add
22035
220362005-11-20  Sam Steingold  <sds@gnu.org>
22037
22038	* clhs.lisp: set package/impnotes documentation for packages
22039	EXT, CLOS, AFFI
22040
220412005-11-19  Sam Steingold  <sds@gnu.org>
22042
22043	* clhs.lisp (ensure-clhs-map, ensure-impnotes-map): use a separate
22044	variable to record whether the map is good
22045
220462005-11-19  Sam Steingold  <sds@gnu.org>
22047
22048	* describe.lisp (launch-doc): launch the browser only on top-level
22049
220502005-11-19  Sam Steingold  <sds@gnu.org>
22051
22052	* clhs.lisp, exporting.lisp: document package EXPORTING in
22053	exporting.lisp, not in clhs.lisp
22054
220552005-11-19  Sam Steingold  <sds@gnu.org>
22056
22057	* clhs.lisp (impnotes-map-source) [woe32]: #\\ is also a path separator
22058
220592005-11-19  Sam Steingold  <sds@gnu.org>
22060
22061	* foreign1.lisp (DEF-C-CONST): call PREPARE-MODULE before the
22062	first reference to *name*; do not evaluate NOTE-C-CONST at
22063	macroexpansion time
22064	(note-c-const): do not call PREPARE-MODULE here
22065
220662005-11-18  Sam Steingold  <sds@gnu.org>
22067
22068	* modules/syscalls/calls.c (POSIX:STRING-TIME): implement
22069	* modules/syscalls/posix.lisp (STRING-TIME) [unix]: exported
22070	* modules/syscalls/configure.in (strptime, strftime, mktime): check
22071
220722005-11-18  Sam Steingold  <sds@gnu.org>
22073
22074	* modules/bindings/win32/win32.lisp (with-handle): declare the
22075	HANDLE variable READ-ONLY
22076	(MessageBoxA): new function
22077
220782005-11-18  Sam Steingold  <sds@gnu.org>
22079
22080	* condition.lisp (find-subclasses-of-type): add
22081	(make-condition): use it to enable TYPE arguments that do not
22082	name a specific class
22083	* utils/clispload.lsp (*expected-failures*): remove
22084	MAKE-CONDITION.3 and MAKE-CONDITION.4
22085
220862005-11-17  Sam Steingold  <sds@gnu.org>
22087
22088	* defs1.lisp (*system-package-list*): remove "CUSTOM": the
22089	variables and functions in this package are for the users to change
22090
220912005-11-17  Sam Steingold  <sds@gnu.org>
22092
22093	DESCRIBE can now point the browser to impnotes
22094	* package.d ((SETF PACKAGE-DOCUMENTATION)): package documentation
22095	is either a doc-string or a list (doc-string impnotes-id)
22096	* documentation.lisp (documentation): ditto
22097	* makemake.in (DATA_FILES): add Symbol-Table.text
22098	* init.lisp (clhs-root): moved from EXT to CUSTOM to avoid locking
22099	(*impnotes-root-default*, impnotes-root): export from CUSTOM
22100	* describe.lisp (launch-doc): new function
22101	(describe): use it for symbols and packages for CLHS and impnotes
22102	* clhs.lisp (open-http): catch connection errors when
22103	:IF-DOES-NOT-EXIST is not :ERROR
22104	(ensure-clhs-map): reset clhs-map-source early to avoid re-running
22105	again and again after a failure
22106	(get-string-map, ensure-impnotes-map): add
22107	(documentation@symbol/clhs): call ENSURE-CLHS-MAP only for symbols
22108	in the COMMON-LISP package
22109	(documentation@symbol/impnotes, documentation@package/impnotes): add
22110	set package/impnotes documentation for packages GRAY, CL-USER, CS-CL,
22111	CS-CL-USER, SCREEN, SOCKET, GSTREAM, I18N, FFI, CHARSET, EXPORTING
22112	* cfgunix.lisp, cfgsunux.lisp, cfgwin32.lisp
22113	(*impnotes-root-default*): defvar
22114	(impnotes-root): defun
22115	* modules/berkeley-db/dbi.lisp: add impnotes doc for package BDB
22116	* modules/dirkey/dirkey1.lisp: add impnotes doc for package LDAP
22117	* modules/fastcgi/fastcgi.lisp: add impnotes doc for package FASTCGI
22118	* modules/matlab/matlab.lisp: add impnotes doc for package MATLAB
22119	* modules/netica/netica.lisp: add impnotes doc for package NETICA
22120	* modules/oracle/oracle.lisp: add impnotes doc for package ORACLE
22121	* modules/pari/pari.lisp: add impnotes doc for package PARI
22122	* modules/pcre/pcre.lisp: add impnotes doc for package PCRE
22123	* modules/postgresql/postgresql.lisp: add impnotes doc for package SQL
22124	* modules/rawsock/sock.lisp: add impnotes doc for package RAWSOCK
22125	* modules/readline/readline.lisp: add impnotes doc for package
22126	READLINE
22127	* modules/regexp/regexp.lisp: add impnotes doc for package REGEXP
22128	* modules/syscalls/posix.lisp: add impnotes doc for package POSIX
22129	* modules/wildcard/wildcard.lisp: add impnotes doc for package
22130	WILDCARD
22131	* modules/zlib/zlib.lisp: add impnotes doc for package ZLIB
22132
221332005-11-17  Sam Steingold  <sds@gnu.org>
22134
22135	* makemake.in (.SHELL) [netbsd]: new target to ensure make uses $(SHELL)
22136
221372005-11-17  Sam Steingold  <sds@gnu.org>
22138
22139	* modules/syscalls/configure.in: check for <netinet/in.h>
22140	* modules/syscalls/calls.c: include <netinet/in.h> before
22141	<arpa/inet.h> to avoid warnings on FreeBSD
22142
221432005-11-17  Sam Steingold  <sds@gnu.org>
22144
22145	New declaration EXT:NOTSPECIAL undoes the effects of DEFVAR et al
22146	* compiler.lisp (c-PROCLAIM): handle NOTSPECIAL declarations
22147	* control.d (PROCLAIM): ditto
22148	* constsym.d (EXT:NOTSPECIAL): add
22149	* init.lisp (EXT:NOTSPECIAL): export
22150
221512005-11-16  Sam Steingold  <sds@gnu.org>
22152
22153	New function EXT:OPEN-HTTP and macro EXT:WITH-HTTP-INPUT.
22154	Function EXT:CLHS is now deprecated in favor of DESCRIBE.
22155	* clhs.lisp (*browsers*) [cygwin macos]: add :DEFAULT browser
22156	(*clhs-table*): remove
22157	(browse-url): do not handle NIL browser specially; still need to
22158	special-case :DEFAULT on woe32
22159	(with-http-input): new macro
22160	(open-http, get-clhs-map, ensure-clhs-map): new functions
22161	(documentation@symbol/clhs): new method
22162	(clhs): use them, deprecate
22163	* describe.lisp (describe-object@symbol): when CLHS doc is
22164	available, print it or launch the browser (depending on *browser*)
22165	* makemake.in (DATA_FILES, DATA_FILES_TOP_PATH): remove clhs.txt
22166
221672005-11-16  Sam Steingold  <sds@gnu.org>
22168
22169	* macros2.lisp (with-open-stream): close VAR only when it is not NIL
22170
221712005-11-15  Sam Steingold  <sds@gnu.org>
22172
22173	* modules/clx/new-clx/clx.f (XLIB:CHANGE-KEYBOARD-MAPPING)
22174	(XLIB:KEYCODE->CHARACTER): fix C++ compilation
22175
221762005-11-15  Sam Steingold  <sds@gnu.org>
22177
22178	* modules/rawsock/rawsock.c (check_socket_domain)
22179	(check_socket_protocol): add some woe32 constants
22180
221812005-11-14  Sam Steingold  <sds@gnu.org>
22182
22183	* compiler.lisp (traverse-anode): use make-array/dotimes instead
22184	of coerce/mapcap/list/coerce (avoids some consing)
22185
221862005-11-14  Sam Steingold  <sds@gnu.org>
22187
22188	* subtypep.lisp (STANDARD-OBJECT): fix handling of (AND ...)
22189
221902005-11-14  Sam Steingold  <sds@gnu.org>
22191
22192	* array.d (fill_initial_element): extract from make_storagevector()
22193	(ADJUST-ARRAY): call if for strings when the data vector is not
22194	created using make_storagevector() to ensure that the
22195	:INITIAL-ELEMENT argument is not ignored
22196
221972005-11-14  Sam Steingold  <sds@gnu.org>
22198
22199	fix bug#285: read labels are not resolved in #2A
22200	* io.d (ARRAY-READER): disentangle references in generic arrays
22201	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
22202
222032005-11-12  Sam Steingold  <sds@gnu.org>
22204
22205	* modules/rawsock/configure.in: include <sys/types.h> before
22206	<sys/uio.h> when checking for struct iovec so that size_t is defined
22207
222082005-11-11  Sam Steingold  <sds@gnu.org>
22209
22210	* modules/rawsock/rawsock.c (GETNAMEINFO, GETADDRINFO): support woe32:
22211	(error_missing): new function
22212	(getnameinfo_t, getaddrinfo_t, freeaddrinfo_t): new types
22213	(my_getnameinfo, my_getaddrinfo, my_freeaddrinfo): new functions
22214	(getnameinfo_f, getaddrinfo_f, freeaddrinfo_f): new variables
22215	(module__rawsock__init_function_2): init them
22216
222172005-11-11  Sam Steingold  <sds@gnu.org>
22218
22219	* modules/syscalls/calls.c (module__syscalls__init_function_2):
22220	moved ole32 and kernel32 here (not static anymore)
22221
222222005-11-11  Sam Steingold  <sds@gnu.org>
22223
22224	* modules/syscalls/posix.lisp (service): do not check type of PROTOCOL
22225
222262005-11-10  Sam Steingold  <sds@gnu.org>
22227
22228	* modules/rawsock/rawsock.c [win32]: include <ws2tcpip.h> for
22229	getaddrinfo, freeaddrinfo, getnameinfo
22230	(SETSOCKOPT_ARG_T) [win32]: define to char* (unix: from CL_TCPCONN)
22231	* modules/rawsock/configure.in, modules/syscalls/configure.in:
22232	use CL_SOCKET for solaris
22233
222342005-11-09  Sam Steingold  <sds@gnu.org>
22235
22236	SOCKET:SOCKET-SERVICE-PORT is now deprecated in favor of OS:SERVICE
22237	* modules/syscalls/calls.c (POSIX:SERVICE): implement
22238	* modules/syscalls/posix.lisp (service): new structure
22239	* beossock.lisp: remove
22240	* constsym.d, subr.d (socket_service_port): remove
22241	* init.lisp (socket-service-port): remove; do not load beossock
22242	* socket.d (socket-service-port): remove
22243	* makemake.in (LPARTS): remove beossock
22244
222452005-11-09  Sam Steingold  <sds@gnu.org>
22246
22247	* modules/syscalls/posix.lisp (group-info): new structure
22248	* modules/syscalls/calls.c (group-info): implement
22249	(user-info): rename from user-data
22250
222512005-11-09  Sam Steingold  <sds@gnu.org>
22252
22253	* makemake.in (encflags): add -Emisc 1:1 to avoid encoding errors
22254
222552005-11-08  Sam Steingold  <sds@gnu.org>
22256
22257	* modules/syscalls/calls.c (passwd_to_lisp): replaces PASSWD_TO_STACK
22258	(USER-DATA): use passwd_to_lisp() instead of PASSWD_TO_STACK()
22259	user argument is now optional, as documented
22260
222612005-11-08  Sam Steingold  <sds@gnu.org>
22262
22263	* defpackage.lisp (defpackage): :SHADOWING-IMPORT-FROM, :USE,
22264	:IMPORT-FROM accept package designators, not just package names
22265
222662005-11-08  Sam Steingold  <sds@gnu.org>
22267
22268	* m4/test.m4 (CL_TEST_NT): TEST_NT defaults to "no"
22269
222702005-11-07  Sam Steingold  <sds@gnu.org>
22271
22272	* makemake.in (SACLA_CLISP): run in ANSI mode
22273
222742005-11-07  Sam Steingold  <sds@gnu.org>
22275
22276	* loop.lisp (expand-loop/compatible-p): handle "ing" keyword variants
22277
222782005-11-07  Sam Steingold  <sds@gnu.org>
22279
22280	* stream.d (parse_sock_list): handle socket servers as documented
22281	Reported by Johan Liseborn <johan@liseborn.se>
22282
222832005-11-01  Sam Steingold  <sds@gnu.org>
22284
22285	* m4/readline.m4 (CL_READLINE): check for rl_gnu_readline_p and
22286	refuse to use readline if it is not defined - this should take
22287	care of the OSX broken readline (see unix/PLATFORMS)
22288	* modules/readline/configure.in: do not check rl_gnu_readline_p here
22289
222902005-11-01  Sam Steingold  <sds@gnu.org>
22291
22292	* makemake.in (CHECK_DEPS): add check-script
22293	(check-script): new target
22294
222952005-11-01  Sam Steingold  <sds@gnu.org>
22296
22297	* m4/test.m4: stricter test to catch *BSD sh/test breakage
22298
222992005-10-31  Sam Steingold  <sds@gnu.org>
22300
22301	* spvw_debug.d (nobject_out1): handle Foreign-Address only when
22302	DYNAMIC_FFI is defined
22303
223042005-10-31  Sam Steingold  <sds@gnu.org>
22305
22306	* spvw.d (main_actions): when argv_execute_file=="-", use the
22307	value of *STANDARD-INPUT*, not the symbol itself (bug#282)
22308
223092005-10-30  Sam Steingold  <sds@gnu.org>
22310
22311	ensure that make uses the same shell that configure tests
22312	* configure.in: write CONFIG_SHELL into makemake
22313	* makemake.in: set SHELL to CONFIG_SHELL
22314
223152005-10-29  Sam Steingold  <sds@gnu.org>
22316
22317	* package.d (get_current_package): issue a CERROR when resetting
22318	the package
22319	* lispbibl.d (get_current_package): declare maygc
22320	* io.d (write_sstring_case, pr_symbol, pr_like_symbol):
22321	save objects around get_current_package()
22322
223232005-10-28  Sam Steingold  <sds@gnu.org>
22324
22325	* stream.d (publish_host_data): accept raw sockets
22326	(STREAM-HANDLES): replaces SOCKET-STREAM-HANDLES, returns both
22327	input and output handles as two values
22328	* subr.d, constsym.d (stream_handles): ditto
22329	* init.lisp (stream-handles): always export it
22330
223312005-10-27  Sam Steingold  <sds@gnu.org>
22332
22333	* spvw_typealloc.d (reallocate_small_string) [DEBUG_SPVW]: use
22334	varobject_bytelength() instead of objsize() to compile with SPVW_PURE
22335	* spvw_page.d (oint_addr_relevant_len): define to 32 by default
22336	* lispbibl.d (oint_type_* &c) [AMD64]: define the same way on all
22337	platforms: works on BSD* with -DNO_TRIVIALMAP -DNO_MULTIMAP_SHM
22338	-DNO_MULTIMAP_FILE -DNO_SINGLEMAP
22339
223402005-10-25  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
22341	    Sam Steingold  <sds@gnu.org>
22342
22343	* makemake.in (NEED_RECONFIGURE) [!TEST_NT]: fix a typo
22344
223452005-10-25  Sam Steingold  <sds@gnu.org>
22346
22347	* .gdbinit (OS_error, OS_file_error, OS_filestream_error): break
22348
223492005-10-25  Sam Steingold  <sds@gnu.org>
22350
22351	* modules/rawsock/configure.in: check "struct iovec"
22352	* modules/rawsock/rawsock.c (struct iovec) [!HAVE_STRUCT_IOVEC]: define
22353	(read, write) [win32]: use recv/send instead
22354	(readv) [!HAVE_READV]: implement
22355	(writev) [!HAVE_WRITEV]: implement
22356	(SOCKETPAIR) [!HAVE_SOCKETPAIR]: implement
22357	(SOCK-READ, SOCK-WRITE): use readv and writev even when the OS
22358	does not offer them
22359	* modules/rawsock/sock.lisp (describe-object@sockaddr): new
22360	method, calls getnameinfo
22361
223622005-10-24  Sam Steingold  <sds@gnu.org>
22363
22364	* modules/rawsock/rawsock.c (check_socket_protocol): add
22365	IPPROTO-RSVP IPPROTO-GRE IPPROTO-PIM IPPROTO-COMP
22366
223672005-10-24  Sam Steingold  <sds@gnu.org>
22368
22369	* modules/postgresql/postgresql.lisp, modules/readline/readline.lisp:
22370	do not #include <clisp.h> - it is done automatically
22371
223722005-10-23  Sam Steingold  <sds@gnu.org>
22373
22374	* modules/clx/new-clx/clx.f (XLIB:CHANGE-KEYBOARD-MAPPING)
22375	(XLIB:SHAPE-EXTENTS, XLIB:SHAPE-RECTANGLES, XLIB:DEFAULT-KEYSYM-INDEX)
22376	(XLIB:KEYBOARD-MAPPING, XLIB:KEYSYM-NAME, XLIB:KEYCODE->CHARACTER):
22377	implement
22378	* modules/clx/new-clx/clx.lisp (gcontext): add a %timestamp slot
22379	for the sake of clue/clio
22380
223812005-10-22  Sam Steingold  <sds@gnu.org>
22382
22383	* screen.lisp (*new-window*, read-keyboard-char): remove
22384	undocumented and unused symbols
22385
223862005-10-22  Sam Steingold  <sds@gnu.org>
22387
22388	avoid configure errors on woe32
22389	* m4/eloop.m4: check that conftest exists before running it
22390	* m4/poll.m4: if AC_CHECK_FUNC does not find poll,
22391	cl_cv_func_poll will not be set
22392
223932005-10-21  Sam Steingold  <sds@gnu.org>
22394
22395	* modules/rawsock/rawsock.c (SOCK-LISTEN): backlog is optional
22396	and defaults to SOMAXCONN
22397
223982005-10-21  Sam Steingold  <sds@gnu.org>
22399
22400	fix user-defined HT tests
22401	* lispbibl.d (hashtable_length): fix the wrong value
22402	* hashtabl.d (rehash): fix user-defined ht-test handling
22403	(hash_prepare_store): fix `cacheable' logic
22404
224052005-10-20  Sam Steingold  <sds@gnu.org>
22406
22407	* modules/berkeley-db/bdb.c: avoid void* pointer arithmetics
22408
224092005-10-20  Sam Steingold  <sds@gnu.org>
22410
22411	* modules/rawsock/rawsock.c (RAWSOCK:SENDMSG): call fill_msghdr()
22412	(NETWORK, SOCK-READ, SOCK-WRITE): add casts to pacify G++
22413	(RAWSOCK:GETADDRINFO): fix argument order and stack cleanup
22414
224152005-10-20  Sam Steingold  <sds@gnu.org>
22416
22417	* hashtabl.d (hash_store): user-defined hash tables do not have to
22418	be rehashed due to GC
22419	(hash_prepare_store): fix a GC-safety bug: hashcode_raw() may
22420	trigger GC for user-defined hash tables
22421	* spvw_debug (TheHashtable_) [DEBUG_SPVW]: add
22422
224232005-10-20  Sam Steingold  <sds@gnu.org>
22424
22425	* modules/rawsock/rawsock.c (check_socket_type):
22426	default=0 for the sake of getaddrinfo()
22427	(RAWSOCK:GETADDRINFO): ai_canonname may be NULL
22428	(RAWSOCK:RECVMSG, RAWSOCK:SENDMSG): fix typo in the conditionals,
22429	fix some typos;
22430	accept :START and :END to conform with other SEND/RECV functions
22431
224322005-10-20  Sam Steingold  <sds@gnu.org>
22433
22434	* modules/readline/readline.lisp: remove "RL_" prefix from the
22435	Lisp names of the STATE-* constants
22436
224372005-10-20  Sam Steingold  <sds@gnu.org>
22438
22439	* foreign1.lisp (to-c-name): downcase all-upper-case names only in
22440	case-insensitive packages so that (def-c-const ENOENT) will work
22441	in modules/bindings/glibc/linux.lisp
22442	(def-c-const): simplified :DOCUMENTATION handling, fix :TYPE
22443	handling, issue a warning when the constant cannot be defined,
22444	tweak f-name case
22445
224462005-10-20  Sam Steingold  <sds@gnu.org>
22447
22448	* lispbibl.d (WIDE_HARD): define oint_data_* to oint_addr_* when
22449	they are the same, for clarity
22450
224512005-10-20  Sam Steingold  <sds@gnu.org>
22452
22453	* modules/rawsock/rawsock.c (parse_buffer): start is uintL, not uintV
22454	(parse_buffer_arg, check_struct_data, fill_iovec, fill_msghdr):
22455	avoid void* pointer arithmetics
22456	(check_addrinfo_flags): bitmasks=both
22457	(GETADDRINFO): typo: value1, not values1
22458
224592005-10-20  Sam Steingold  <sds@gnu.org>
22460
22461	* modules/clx/new-clx/clx.f (XLIB:ACCESS-HOSTS, lisp_to_XHostAddress):
22462	check FamilyInternet6 in addition to HAVE_IPV6
22463
224642005-10-20  Sam Steingold  <sds@gnu.org>
22465
22466	* exporting.lisp (def-c-const): add
22467	* foreign1.lisp (def-c-const, note-c-const): add
22468	(ffi-module): add slot CONSTANT-TABLE
22469	(finalize-coutput-file): output constant map functions
22470	* modules/bindings/glibc/linux.lisp, modules/readline/readline.lisp:
22471	* modules/wildcard/wildcard.lisp, modules/pari/pari.lisp:
22472	use DEF-C-CONST instead of DEFCONSTANT with explicit values
22473
224742005-10-20  Sam Steingold  <sds@gnu.org>
22475
22476	* lispbibl.d (oint_type_len): #error when undefined
22477
224782005-10-19  Sam Steingold  <sds@gnu.org>
22479
22480	* execname.c (MAXPATHLEN): define when it is not defined
22481	Reported by Soeren D. Schulze <soeren.d.schulze@gmx.de>
22482
224832005-10-19  Sam Steingold  <sds@gnu.org>
22484
22485	* modules/rawsock/configure.in (getnameinfo, getaddrinfo)
22486	(freeaddrinfo): check
22487	* modules/rawsock/sock.lisp (msghdr): remove
22488	(getnameinfo, getaddrinfo): export
22489	(message, addrinfo): add
22490	(defstruct): import from EXPORTING
22491	* modules/rawsock/rawsock.c (GETNAMEINFO, GETADDRINFO): implement
22492	(RECVMSG, SENDMSG): use MESSAGE instead of MSGHDR
22493
224942005-10-19  Sam Steingold  <sds@gnu.org>
22495
22496	* modules/clx/new-clx/clx.lisp (undefined): do not use package prefix
22497
224982005-10-19  Sam Steingold  <sds@gnu.org>
22499
22500	* foreign.d: uniform use of articles in messages
22501
225022005-10-19  Sam Steingold  <sds@gnu.org>
22503
22504	* m4/test.m4 (CL_TEST_NT): check that test(1) can serve as make(1)
22505	* configure.in: call CL_TEST_NT
22506	* makemake.in (anymodule): use "test -nt" only when supported
22507
225082005-10-17  Sam Steingold  <sds@gnu.org>
22509
22510	* modules/clx/new-clx/clx.lisp (DRAW-GLYPH): undefined;
22511	use MACROLET instead of EVAL-WHEN+DEFMACRO
22512
225132005-10-17  Sam Steingold  <sds@gnu.org>
22514
22515	* modules/readline/readline.lisp (readline-reader): return NIL on EOF
22516	(resize-terminal, set-screen-size, get-screen-size): add
22517	(readline-state): new variable together with its constants
22518	* modules/readline/configure.in: check everything forgotten by Tom
22519
225202005-10-17  Sam Steingold  <sds@gnu.org>
22521
22522	* complete.lisp (completion): define even when not on UNIX
22523
225242005-10-11  Tomas Zellerin  <zellerin@gmail.com>
22525
22526	* modules/readline/readline.lisp: more ffi functions and variables;
22527	package, some functions and variables documented;
22528	(*readline-input-stream*): new stream
22529	* modules/readline/configure.in: all declared functions tested
22530	* modules/readline/test.tst: add functionality tests
22531
225322005-10-17  Sam Steingold  <sds@gnu.org>
22533
22534	* spvw_sigterm.d (install_sigterm_handler): ignore SIGTTOU to avoid
22535	being stopped on a terminating signal when running in the background
22536
225372005-10-17  Sam Steingold  <sds@gnu.org>
22538
22539	* modules/rawsock/configure.in: check for msghdr.msg_flags when
22540	sys/socket.h is present
22541	* modules/rawsock/rawsock.c (RECVMSG, SENDMSG): implement only
22542	when the system implementation is POSIX, i.e., has msg_flags
22543
225442005-10-17  Sam Steingold  <sds@gnu.org>
22545
22546	* lispbibl.d (STACK_to_mv): export to clisp.h
22547	* modules/syscalls/calls.c (hostent_to_lisp): new public function
22548	converted from hostent_to_stack()
22549	(RESOLVE-HOST-IPADDR): update to use hostent_to_lisp()
22550	* modules/clx/new-clx/configure.in: check for socket headers
22551	* modules/clx/new-clx/clx.lisp (ACCESS-CONTROL): new defsetf
22552	mark non-implemented functions with compiler macros
22553	* modules/clx/new-clx/clx.f (POINTER-CONTROL): fix STACK cleanup
22554	(check_on_off): YES->ON
22555	(MODIFIER-MAPPING): C arrays are base 0, not base 1
22556	(SET-MODIFIER-MAPPING, KEYSYM->KEYCODES, ACCESS-HOSTS)
22557	(ADD-ACCESS-HOST, REMOVE-ACCESS-HOST): implement
22558	(SET-ACCESS-CONTROL): fix argument order
22559	* modules/clx/new-clx/test.tst: add
22560
225612005-10-16  Sam Steingold  <sds@gnu.org>
22562
22563	* spvw_sigwinch.d: rl_resize_terminal() should be called only if
22564	readline has been already initialized
22565	(sigwinch_handler) [HAVE_READLINE]: call rl_resize_terminal()
22566	(update_linelength) [HAVE_READLINE]: do not call rl_resize_terminal()
22567
225682005-10-16  Sam Steingold  <sds@gnu.org>
22569
22570	* configure (--version): call src/configure instead of sourcing
22571	version.sh which is not included in the source distribution
22572	Reported by T. Kurt Bond <tkb@tkb.mpl.com>
22573
225742005-10-14  Sam Steingold  <sds@gnu.org>
22575
22576	* spvw_sigwinch.d (update_linelength) [HAVE_READLINE]:
22577	call rl_resize_terminal()
22578
225792005-10-15  Sam Steingold  <sds@gnu.org>
22580
22581	* modules/clx/new-clx/clx.f (CHANGE-KEYBOARD-CONTROL): implement
22582
225832005-10-14  Sam Steingold  <sds@gnu.org>
22584
22585	fix bug#276: Gray streams ==> stack overflow and segfault
22586	* stream.d (read_char): fix recursion: cannot assume that the
22587	constituent streams of constructed streams are built-in
22588
225892005-10-14  Sam Steingold  <sds@gnu.org>
22590
22591	C-level CLOSE functions accept abort argument to ensure that
22592	auto-close (in GC and quit) cannot fail
22593	* lispbibl.d (builtin_stream_close): accept abort
22594	* stream.d (close_synonym, close_str_in, close_buff_in, close_buff_out)
22595	(close_generic, strm_channel_extrafields_t.low_close, low_close_handle)
22596	(close_ichannel, close_ochannel, close_buffered, low_close_console)
22597	(close_window, term_nlunraw, end_term, low_close_socket)
22598	(low_close_socket_nop, builtin_stream_close): ditto
22599	(close_some_files): pass abort=1 to builtin_stream_close()
22600	(BUILT-IN-STREAM-CLOSE): pass :ABORT to builtin_stream_close()
22601	(low_flush_buffered_handle, make_buffered_stream, make_file_stream):
22602	pass abort=0 to builtin_stream_close()
22603	* debug.d (LOAD): ditto
22604	* misc.d (MACHINE-TYPE, MACHINE-VERSION): ditto
22605	* pathname.d (DELETE-FILE): ditto
22606	* spvw_memfile.d (WRITE, savemem): ditto
22607	* modules/syscalls/calls.c (copy_attributes_and_close, copy_file_low)
22608	(copy_one_file): ditto
22609
226102005-10-10  Sam Steingold  <sds@gnu.org>
22611
22612	* m4/termcap.m4 (CL_TERMCAP): accept --with-termcap-prefix
22613	* makemake.in (INCTERMCAP, LIBTERMCAP): add to XCFLAGS & XLDFLAGS
22614	allow readline on mingw
22615
226162005-10-14  Yaroslav Kavenchuk  <kavenchuk@jenty.by>
22617	    Sam Steingold  <sds@gnu.org>
22618
22619	* modules/bindings/win32/win32.lisp (GetConsoleScreenBufferInfo)
22620	(GetConsoleWindow): add
22621
226222005-10-12  T. Kurt Bond  <tkb@tkb.mpl.com>
22623
22624	* lispbibl.d (PC386): also define on FreeBSD, NetBSD, and OpenBSD
22625
226262005-10-12  Sam Steingold  <sds@gnu.org>
22627
22628	* modules/rawsock/rawsock.c (check_socket_protocol): no prefix,
22629	accept IPPROTO-* in addition to ETH-P-*
22630	(get_socket_protocol): new function, use getprotobyname() when it
22631	is available in addition to check_socket_protocol()
22632	(SOCKET, SOCKETPAIR): use get_socket_protocol()
22633
226342005-10-12  Sam Steingold  <sds@gnu.org>
22635
22636	* lispbibl.d (Atype_T): export to clisp.h
22637	* modules/rawsock/configure.in: check <sys/uio.h>, readv, writev,
22638	sizeof ssize_t and size_t
22639	* modules/rawsock/rawsock.c (SOCK-READ, SOCK-WRITE) [HAVE_SYS_UIO_H]:
22640	call readv/writev when buffer is a vector of vectors
22641	(check_iovec_arg, fill_iovec) [HAVE_SYS_UIO_H]: new functions
22642
226432005-10-11  Sam Steingold  <sds@gnu.org>
22644
22645	* error.d (check_vector_replacement): new function
22646	* encoding.d (CONVERT-STRING-FROM-BYTES):
22647	use it instead of fehler_vector()
22648	* array.d (VECTOR-ENDTEST, VECTOR-FE-INIT, VECTOR-LENGTH)
22649	(VECTOR-INIT-START, VECTOR-FE-INIT-END): ditto
22650	* lispbibl.d (check_vector_replacement, check_vector): export
22651
226522005-10-11  Sam Steingold  <sds@gnu.org>
22653
22654	* makemake.in (anymodule): call configure not just when config.status
22655	is not present, but also when configure is newer than config.status
22656	* modules/dirkey/Makefile.in, modules/i18n/Makefile.in:
22657	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
22658	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
22659	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
22660	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
22661	* modules/zlib/Makefile.in, modules/berkeley-db/Makefile.in:
22662	(config.status, config.h, Makefile): remove targets:
22663	config.status failed with
22664	error: `CFLAGS' was not set in the previous run
22665	This is a partial reversal of the 2005-10-07 patch (dependency of
22666	C files on config.h are kept).
22667
226682005-10-11  Sam Steingold  <sds@gnu.org>
22669
22670	* modules/rawsock/configure.in: check getnetent*
22671	* modules/rawsock/rawsock.c (netent_to_network, NETWORK): add
22672	* modules/rawsock/sock.lisp (network): new defstruct
22673
226742005-10-11  Sam Steingold  <sds@gnu.org>
22675
22676	fix bug#279: when killed, clisp does not execute cleanup forms
22677	* spvw.d (main): call install_sigterm_handler(), include spvw_sigterm.c
22678	* spvw_sigterm.c: new file
22679	* makemake.in (SPVW_INCLUDES): add spvw_sigterm
22680	* po/Makefile.devel (DSOURCES): ditto
22681
226822005-10-11  Sam Steingold  <sds@gnu.org>
22683
22684	* modules/rawsock/configure.in: check <netdb.h> and getproto*
22685	do not check poll() and select(), we already have SOCKET-STATUS
22686	* modules/rawsock/rawsock.c (protoent_to_protocol, PROTOCOL): add
22687	* modules/rawsock/sock.lisp (protocol): new defstruct
22688
226892005-10-10  Sam Steingold  <sds@gnu.org>
22690
22691	* modules/syscalls/calls.c (FILE-PROPERTIES): use my_malloc()
22692	instead of malloc() and add begin_system_call()/end_system_call()
22693
226942005-10-10  Sam Steingold  <sds@gnu.org>
22695
22696	* lispbibl.d (handle_fault_range, PROT_READ_WRITE, PROT_READ):
22697	exported to clisp.h
22698	* modules/berkeley-db/bdb.c (fill_dbt, dbt_to_object): call it
22699	before memcpy() on lisp object data
22700	* modules/pcre/cpcre.c (fullinfo_firsttable): ditto
22701	* modules/rawsock/rawsock.c (parse_buffer_arg, check_struct_data): ditto
22702
227032005-10-10  Sam Steingold  <sds@gnu.org>
22704
22705	* stream.d (handle_set): do not call stream_isbuffered on non-streams
22706
227072005-10-09  Sam Steingold  <sds@gnu.org>
22708
22709	* modules/netica/wrap.lisp (*verbose*): init to NIL to avoid
22710	saving a closed terminal stream into the image (like with *sql-log*)
22711	(net-info, node-info): accept :OUT
22712
227132005-10-09  Sam Steingold  <sds@gnu.org>
22714
22715	make sure that SOCKET-STATUS handles buffered streams properly
22716	* stream.d (handle_set): accept non_empty_buffers_p
22717	(handle_isset): call listen_char() and listen_byte() on buffered
22718	input streams even when FD_ISSET is false
22719	(SOCKET-STATUS): pass non_empty_buffers_p to handle_set() and
22720	reset timeout to 0 when non_empty_buffers_p is true
22721	(stream_isbuffered_low): derived from stream_isbuffered() to
22722	return the amount of data available in the input buffer
22723	(stream_isbuffered): call stream_isbuffered_low()
22724
227252005-10-08  Sam Steingold  <sds@gnu.org>
22726
22727	* modules/clx/new-clx/clx.f (XLIB:SET-DISPLAY-ERROR-HANDLER):
22728	fix argument order
22729	Reported by Magnus Henoch <mange@freemail.hu>
22730
227312005-10-07  Sam Steingold  <sds@gnu.org>
22732
22733	* modules/dirkey/Makefile.in, modules/i18n/Makefile.in:
22734	* modules/pari/Makefile.in, modules/pcre/Makefile.in:
22735	* modules/postgresql/Makefile.in, modules/rawsock/Makefile.in:
22736	* modules/readline/Makefile.in, modules/regexp/Makefile.in:
22737	* modules/syscalls/Makefile.in, modules/wildcard/Makefile.in:
22738	* modules/zlib/Makefile.in, modules/berkeley-db/Makefile.in:
22739	(config.status, config.h, Makefile): new targets:
22740	no need to "rm -rf" module dir when configure changes
22741
227422005-10-07  Sam Steingold  <sds@gnu.org>
22743
22744	* modules/syscalls/calls.c (my_utime): use convert_time_to_universal()
22745	(my_utime) [WIN32_NATIVE]: a separate implementation to avoid the
22746	woe32 DST bugs (http://www.codeproject.com/datetime/dstbugs.asp)
22747	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
22748	(find_first_file, get_file_time) [WIN32_NATIVE]: new functions
22749	(SET-FILE-STAT): use get_file_time() and convert_time_to_universal()
22750	(FILE-INFO): accept an optional argument ALL-P, use find_first_file()
22751
227522005-10-06  Sam Steingold  <sds@gnu.org>
22753
22754	* foreign.d (object_handle, object_address): name is an object
22755	(update_library, validate_fpointer): rework to avoid GC safety issues
22756
227572005-10-06  Sam Steingold  <sds@gnu.org>
22758
22759	* modules/postgresql/configure.in: check all functions interfaced to
22760	do not abort when PQserverVersion() is not found
22761	* modules/postgresql/postgresql.lisp: include <clisp.h> & <config.h>
22762
227632005-10-06  Sam Steingold  <sds@gnu.org>
22764
22765	* modules/i18n/gettext.c (SET-TEXTDOMAINDIR): fix a GC-safety bug
22766	(LOCALE-CONV): p_sep_by_space, n_sep_by_space, p_sign_posn,
22767	n_sign_posn, int_p_sep_by_space, int_n_sep_by_space,
22768	int_p_sign_posn, int_n_sign_posn are integers, not booleans
22769
227702005-10-06  Sam Steingold  <sds@gnu.org>
22771
22772	* foreign.d (update_library): fix a GC-safety bug
22773
227742005-10-06  Sam Steingold  <sds@gnu.org>
22775
22776	* misc.d (MODULE-INFO): fix a GC-safety bug
22777	* modules/berkeley-db/test.tst, modules/i18n/test.tst:
22778	* modules/pcre/test.tst, modules/rawsock/test.tst:
22779	* modules/regexp/test.tst, modules/syscalls/test.tst: call MODULE-INFO
22780
227812005-10-06  Sam Steingold  <sds@gnu.org>
22782
22783	* modules/rawsock/rawsock.c (SOCK-LISTEN): rename from LISTEN
22784	* modules/rawsock/sock.lisp (LISTEN): do not shadow the CL symbol
22785	(SOCK-LISTEN): export
22786
227872005-10-05  Sam Steingold  <sds@gnu.org>
22788
22789	* modules/readline/configure.in: abort when readline is not used
22790	test for all functions and variables interfaced to
22791	* modules/readline/test.tst: new file
22792	* modules/readline/readline.lisp: include config.h
22793	(*foreign-guard*) [compilation]: set to T
22794	(add-defun): fix "name" argument allocation
22795	(readline-name): fix :ALLOC
22796	* modules/postgresql/configure.in: check for PQinitSSL()
22797	* modules/postgresql/postgresql.lisp: interface to PQinitSSL()
22798	(*foreign-guard*) [compilation]: set to T
22799	* modules/bindings/win32/win32.lisp: interface to longhorn
22800	functions GetProcessId(), GetProcessIdOfThread(), GetThreadId()
22801	(*foreign-guard*) [compilation]: set to T
22802	* modules/bindings/win32/test.tst: enabled tests for longhorn functions
22803
228042005-10-05  Sam Steingold  <sds@gnu.org>
22805
22806	* modules/i18n/i18n.lisp (locale-conv-p): export
22807	* modules/i18n/test.tst: new file
22808
228092005-10-05  Sam Steingold  <sds@gnu.org>
22810
22811	* stream.d (init_streamvars) [HAVE_DECL_RL_READLINE_NAME]:
22812	init rl_readline_name
22813	* m4/readline.m4 (CL_READLINE): fix the rl_readline_name test
22814
228152005-10-05  Sam Steingold  <sds@gnu.org>
22816
22817	FFI modules can now take advantage of autoconf feature detection.
22818	* foreign.d (LOOKUP-FOREIGN-VARIABLE, LOOKUP-FOREIGN-FUNCTION)
22819	(object_handle): signal a continuable error when the foreign
22820	object cannot be found
22821	(update_library, object_address): update for the changes in
22822	object_handle()
22823	(FOREIGN-LIBRARY-VARIABLE, FOREIGN-LIBRARY-FUNCTION): return NIL when
22824	the foreign object cannot be found and the CONTINUE restart was invoked
22825	* foreign1.lisp (*foreign-guard*): new variable
22826	(finalize-coutput-file): when it is non-NIL, guard the forms with
22827	CPP #if conditionals
22828	(def-c-var, def-call-out): do nothing when the foreign object
22829	cannot be found and the CONTINUE restart was invoked
22830
228312005-10-03  Sam Steingold  <sds@gnu.org>
22832
22833	functions that take a BUFFER, also take :START and :END
22834	* modules/rawsock/rawsock.c (parse_buffer_arg):
22835	check STACK_0, STACK_1: START & END
22836	(RECV, RECVFROM, SOCK-READ, SEND, SENDTO, SOCK-WRITE)
22837	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): accept :START & :END
22838
228392005-10-03  Sam Steingold  <sds@gnu.org>
22840
22841	* configure.in: $ac_cv_use_readline is tested in CL_READLINE
22842	already, do not test it here too
22843	* m4/readline.m4 (CL_READLINE): check for rl_readline_name
22844
228452005-10-02  Sam Steingold  <sds@gnu.org>
22846
22847	* stream.d (handle_isset): do not call listen_byte() on raw sockets
22848	Reported by Don Cohen
22849
228502005-10-02  Sam Steingold  <sds@gnu.org>
22851
22852	foreign.d data walkers is now reentrant (no static data)
22853	* lispbibl.d (converter_malloc_t): typedef & export to clisp.h
22854	(convert_to_foreign_mallocing, convert_to_foreign_nomalloc):
22855	remove prototypes
22856	(convert_to_foreign): prototype
22857	* foreign.d (foreign_layout): new structure type
22858	(data_size, data_alignment, data_splittable): remove statics
22859	(foreign_layout, convert_to_foreign_needs):
22860	accept a pointer to struct foreign_layout
22861	(foreign_size): new inline
22862	(%SIZEOF, %BITSIZEOF, convert_from_foreign, LOOKUP-FOREIGN-VARIABLE)
22863	(FOREIGN-VARIABLE, SET-FOREIGN-VALUE, SLOT, DEREF, CAST, OFFSET)
22864	(EXEC-ON-STACK, FOREIGN-ALLOCATE, FOREIGN-CALL-OUT, do_va_arg, callback)
22865	(FOREIGN-LIBRARY-VARIABLE): update for the new foreign_layout()
22866	(walk_foreign): new structure type
22867	(walk_foreign_null_terminates, walk_foreign_pre_hook)
22868	(walk_foreign_post_hook, walk_foreign_function_hook): remove statics
22869	(walk_foreign_pointers, free_walk_pre, free_walk_post)
22870	(free_walk_function): accept a pointer to struct walk_foreign
22871	(free_foreign): update for the new walk_foreign_pointers()
22872	(walk_lisp): new structure type
22873	(walk_lisp_nil_terminates, walk_lisp_pre_hook, walk_lisp_post_hook)
22874	(walk_lisp_function_hook, walk_counter, walk_alignment): remove statics
22875	(walk_lisp_pointers, count_walk_pre, count_walk_post):
22876	accept a pointer to struct walk_lisp
22877	(converter_malloc): remove a static
22878	(convert_to_foreign): accept a converter_malloc_t
22879	(convert_to_foreign_allocaing, convert_to_foreign_mallocing)
22880	(convert_to_foreign_nomalloc): remove
22881	(libc_handle): remove old unused junk
22882
228832005-10-02  Sam Steingold  <sds@gnu.org>
22884
22885	* pathname.d (PARSE-NAMESTRING) [cygwin]: fix GC-safety bug
22886
228872005-10-01  Sam Steingold  <sds@gnu.org>
22888
22889	GC-safety bug: validate fpointers lazily, not eagerly
22890	* foreign.d (foreign_address): fix GCTRIGGER_IF statement
22891	(free_foreign_callin): call free_callback() only on valid pointers
22892	(check_faddress_valid): new function
22893	(SET-FOREIGN-POINTER, FOREIGN-FUNCTION, convert_to_foreign)
22894	(LOOKUP-FOREIGN-VARIABLE, FOREIGN-VARIABLE, FOREIGN-VALUE)
22895	(SET-FOREIGN-VALUE, DEREF, READ-MEMORY-AS, WRITE-MEMORY-AS)
22896	(FOREIGN-FREE, FOREIGN-CALL-OUT): call it
22897	(validate_fpointer): local, maygc
22898	* io.d (pr_orecord): use Faddress_value, not Fpointer_value_no_check
22899	* lispbibl.d (Fpointer_value, Faddress_value):
22900	do not validate the argument
22901	(check_faddress_valid): declare
22902	* misc.d (CODE-ADDRESS-OF): explicitly validate faddress
22903
229042005-10-02  Sam Steingold  <sds@gnu.org>
22905
22906	* stream.d (SOCKET-STREAM-SHUTDOWN): handle is uint, not uint32
22907	(SOCKET-CONNECT, sock_opt_int, SOCKET-OPTIONS):
22908	use check_uint() instead of fehler_uint()
22909
229102005-09-30  Sam Steingold  <sds@gnu.org>
22911
22912	clisp -v -v sets *LOAD-ECHO* to T
22913	* constsym.d (load_echo): add
22914	* spvw.d (init_symbol_values): init *load-echo* to NIL
22915	(main_actions): when argv_verbose > 3, set *load-echo* to T
22916
229172005-09-30  Sam Steingold  <sds@gnu.org>
22918
22919	* foreign.d (open_library): quite a few platforms do not define
22920	RTLD_DEFAULT, but accept NULL as a library handle to mean the
22921	same (e.g., WIN32, FreeBSD, MacOSX), so we always accept :DEFAULT
22922
229232005-09-29  Sam Steingold  <sds@gnu.org>
22924
22925	enable saving callbacks into memory images
22926	* foreign.d (convert_function_to_foreign): when the Ffunction
22927	found in O(foreign_callin_table) is invalid, renew it
22928	Reported by Tomas Zellerin <zellerin@gmail.com>
22929
229302005-09-30  Sam Steingold  <sds@gnu.org>
22931
22932	* makemake.in (BASE_MODULES): fix last patch:
22933	add "readline" only when libreadline is actually available
22934
229352005-09-29  Sam Steingold  <sds@gnu.org>
22936
22937	* Makefile.devel (MODULES): add readline
22938	* makemake.in (BASE_MODULES): add readline
22939	when both readline and FFI are present
22940	* modules/readline: new module directory
22941
229422005-09-29  Sam Steingold  <sds@gnu.org>
22943
22944	* stream.d (get_standard_output_file_stream)
22945	(get_standard_error_file_stream): return a synonym stream instead
22946	of a terminal stream for the benefit of dribble
22947
229482005-09-29  Sam Steingold  <sds@gnu.org>
22949
22950	* spvw_debug.d (nobject_out1): handle Foreign-Address
22951
229522005-09-28  Sam Steingold  <sds@gnu.org>
22953
22954	* modules/clx/new-clx/demos/sokoban.lisp (sokoban-usage): rename
22955	from USAGE to avoid a conflict with POSIX
22956	* modules/clx/new-clx/clx.f (travel_queque): timeout is struct timeval
22957	(get_timeout): remove
22958	(PROCESS-EVENT, EVENT-LISTEN): use sec_usec() instead of get_timeout()
22959	* modules/clx/new-clx/demos/clx-demos.lisp: load "koch"
22960	* modules/clx/new-clx/demos/koch.lisp: new demo
22961	* modules/clx/new-clx/clx.lisp (*keyword-package*): remove
22962	(kintern): do not use it
22963	(EVENT-COND): remove some gunk
22964
229652005-09-27  Sam Steingold  <sds@gnu.org>
22966
22967	use map_sequence() instead of ELT
22968	* modules/clx/new-clx/clx.f (get_seq_len, set_seq): new functions
22969	(struct seq_rectangle, coerce_into_rectangle): MAP infrastructure
22970	(SET-GCONTEXT-CLIP-MASK, DRAW-RECTANGLES, SHAPE-COMBINE): use it
22971	(struct seq_point, coerce_into_point): MAP infrastructure
22972	(DRAW-POINTS): use it
22973	(struct seq_segment, coerce_into_segment): MAP infrastructure
22974	(DRAW-SEGMENTS): use it
22975	(struct seq_arc, coerce_into_arc): MAP infrastructure
22976	(DRAW-ARCS): use it
22977	(struct seq_path, coerce_into_path): MAP infrastructure
22978	(SET-FONT-PATH): use it
22979	(struct seq_pixel, coerce_into_pixel): MAP infrastructure
22980	(FREE-COLORS): use it
22981	(struct seq_color, coerce_into_color): MAP infrastructure
22982	(QUERY-COLORS): use it
22983	(struct seq_pixel_color, coerce_into_pixel_color): MAP infrastructure
22984	(STORE-COLORS): use it
22985	(struct seq_map, coerce_into_map): MAP infrastructure
22986	(CHANGE-PROPERTY): use it
22987	(struct seq_xatom, coerce_into_xatom): MAP infrastructure
22988	(ROTATE-PROPERTIES): use it
22989	(struct seq_uint8, coerce_into_uint8): MAP infrastructure
22990	(SET-POINTER-MAPPING): use it
22991	* modules/clx/new-clx/demos/sokoban.lisp (find-outers): pass a
22992	flat list to SHAPE-COMBINE instead of a list of lists
22993
229942005-09-27  Sam Steingold  <sds@gnu.org>
22995
22996	* lispbibl.d (map_sequence_function_t): do not use
22997	emit_typedef_f() because g++ complains:
22998	error: invalid application of `sizeof' to a function type
22999
230002005-09-27  Sam Steingold  <sds@gnu.org>
23001
23002	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): DATA is optional and
23003	can be an integer specifying the data size (0 content)
23004
230052005-09-26  Sam Steingold  <sds@gnu.org>
23006
23007	* lispbibl.d (map_sequence_function_t, map_sequence): export to clisp.h
23008	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): use them to accept
23009	arbitrary sequences as DATA instead of requiring a byte vector
23010
230112005-09-26  Sam Steingold  <sds@gnu.org>
23012
23013	* modules/rawsock/rawsock.c (check_buffer_arg): remove
23014	(parse_buffer_arg): accept arbitrary vectors
23015	(BUFFER, RESIZE-BUFFER): remove
23016	(MAKE-SOCKADDR, RECVFROM, SENDTO): modified for the
23017	parse_buffer_arg() change
23018	(IPCSUM, ICMPCSUM, TCPCSUM, UDPCSUM): buffer argument is now required
23019	* modules/rawsock/sock.lisp (sockaddr-data): return a vector
23020	displaced to the underlying data structure
23021
230222005-09-26  Sam Steingold  <sds@gnu.org>
23023
23024	* socket.d (resolve_host): init offset before array_displace_check()
23025	* modules/berkeley-db/bdb.c (check_gid): ditto
23026
230272005-09-26  Sam Steingold  <sds@gnu.org>
23028
23029	* error.d (check_byte_vector_replacement): add
23030	* lispbibl.d (MAKE_CHECK_LOW): tweak to be more general
23031	(check_byte_vector_replacement): prototype and export to clisp.h
23032	* stream.d (test_n_bytes_args): use check_uint32() and
23033	check_byte_vector()
23034	* modules/berkeley-db/bdb.c (check_byte_vector): replaced with
23035	check_byte_vector_len(), use check_byte_vector()
23036
230372005-09-25  Sam Steingold  <sds@gnu.org>
23038
23039	* modules/syscalls/calls.c (GETUID, %SETUID, GETGID, %SETGID)
23040	(GETEUID, %SETEUID, GETEGID, %SETEGID): implement
23041	* modules/syscalls/posix.lisp (getuid, getgid, geteuid, getegid):
23042	exported and DEFSETFed
23043	* modules/syscalls/configure.in (gid_t, uid_t): AC_CHECK_SIZEOF
23044	(getegid, geteuid, getgid, getuid, setegid, seteuid, setgid, setuid):
23045	AC_CHECK_FUNCS
23046
230472005-09-25  Sam Steingold  <sds@gnu.org>
23048
23049	* modules/rawsock/sock.lisp (resize-buffer): export
23050	* modules/rawsock/rawsock.c (SENDTO): fix STACK cleanup
23051	(RECV, RECVFROM, RECVMSG, SEND, SENDMSG, SENDTO): remove "MSG_"
23052	prefix from the &key arguments
23053
230542005-09-23  Sam Steingold  <sds@gnu.org>
23055
23056	* array.d (VECTOR-PUSH-EXTEND): set extension to inc when it is
23057	not supplied (for error reporting)
23058
230592005-09-21  Sam Steingold  <sds@gnu.org>
23060
23061	* foreign.d (foreign_address): use GCTRIGGER_IF(allocate_p)
23062	instead of a blanket maygc, as appropriate
23063	(open_library): always restart on error
23064	(update_library): mark as maygc
23065
230662005-09-21  Sam Steingold  <sds@gnu.org>
23067
23068	* functions.lisp (function-lambda-expression):
23069	handle compiled (SETF FOO)
23070	Reported by Pascal Bourguignon <pjb@informatimago.com>
23071
230722005-09-21  Sam Steingold  <sds@gnu.org>
23073
23074	* misc.d (map_lisp_to_c, map_c_to_lisp): fix EXPECTED-TYPE
23075
230762005-09-20  Sam Steingold  <sds@gnu.org>
23077
23078	instead of DEFCHECKER creating a bunch of undebuggable identical
23079	functions, it now creates a data structure that is passed to a few
23080	standard built-in functions
23081	* misc.d (map_to_alist, map_lisp_to_c, map_c_to_lisp, map_c_to_list)
23082	(map_list_to_c): implement
23083	* lispbibl.d (c_lisp_pair_t, c_lisp_map_t): add, export to clisp.h
23084	* utils/modprep.lisp (print-tables-1): instead of checker
23085	functions, output #defines using map_* functions
23086	* modules/berkeley-db/bdb.c, modules/i18n/gettext.c:
23087	* modules/pcre/cpcre.c, modules/rawsock/rawsock.c:
23088	* modules/syscalls/calls.c: update to use the map_* functions
23089
230902005-09-20  Sam Steingold  <sds@gnu.org>
23091
23092	* modules/syscalls/posix.lisp: do (ext:re-export "POSIX" "EXT") at
23093	the end of the file to re-export all POSIX symbols
23094
230952005-09-19  Sam Steingold  <sds@gnu.org>
23096
23097	* modules/bindings/win32/win32.lisp (GetProcessVersion)
23098	(GetThreadPriority, GetThreadPriorityBoost, GetProcessPriorityBoost)
23099	(with-handle): add
23100
231012005-09-19  Sam Steingold  <sds@gnu.org>
23102
23103	* modules/rawsock/rawsock.c (MAKE-SOCKADDR): do not make
23104	unwarranted assumptions about struct sockaddr structure
23105	(SENDTO): pass size to sendto()
23106
231072005-09-17  Sam Steingold  <sds@gnu.org>
23108
23109	* utils/modprep.lisp (print-tables-1): do not use NOTREACHED,
23110	issue a TYPE-ERROR instead
23111
231122005-09-16  Sam Steingold  <sds@gnu.org>
23113
23114	remove the implicit assumption that struct sockaddr consists
23115	of 2 slots sa_family and sa_data with no padding - fixes BSD
23116	* modules/rawsock/rawsock.c (my_check_argument): use GETTEXT
23117	(SOCKADDR-FAMILY-SIZE): remove
23118	(SOCKADDR-SLOT): new function, replaces SOCKADDR-FAMILY-SIZE;
23119	not exported
23120	* modules/rawsock/sock.lisp (sockaddr-data): use SOCKADDR-SLOT;
23121	use EXPORTING:DEFUN, export SOCKADDR-P and MSGHDR-P
23122
231232005-09-16  Sam Steingold  <sds@gnu.org>
23124
23125	* modules/syscalls/calls.c (check_ut_type):
23126	add RUN-LVL and ACCOUNTING
23127
231282005-09-16  Sam Steingold  <sds@gnu.org>
23129
23130	* modules/clx/new-clx/configure.in (XGetAtomNames): fix the test
23131	use CL_FIND_X instead of AC_PATH_XTRA
23132	* modules/clx/new-clx/link.sh, modules/clx/new-clx/Makefile.in:
23133	update to use CL_FIND_X instead of AC_PATH_XTRA
23134
231352005-09-15  Sam Steingold  <sds@gnu.org>
23136
23137	* lispbibl.d: use puts() instead of printf() when possible
23138	(MAKE_CHECK_LOW, MAKE_CHECK, MAKE_CHECK_): new macros
23139	(with_string_0_help_, with_sstring_0_help_): take both "A" for
23140	cstombs_help_() and "NR" for unpack_sstring_alloca_help_()
23141	* genclisph.d (export_literal): add
23142
231432005-09-15  Sam Steingold  <sds@gnu.org>
23144
23145	* modules/bindings/win32/win32.lisp (GetCurrentThreadId): add
23146	* modules/bindings/win32/test.tst: new file
23147
231482005-09-15  Sam Steingold  <sds@gnu.org>
23149
23150	* configure: document --enable-maintainer-mode
23151	* makemake.in: handle --enable-maintainer-mode
23152	the only developer target (affected by --enable-maintainer-mode)
23153	is remaking src/configure using autoconf
23154
231552005-09-15  Sam Steingold  <sds@gnu.org>
23156
23157	(clisp.h): ensure that __FILE__ and __LINE__ are expanded
23158	after the file is included, not when it is generated
23159	* lispbibl.d (NOTREACHED, ASSERT, OBJECT_OUT): do not use
23160	export_def() to avoid putting string "lispbibl.d" into clisp.h
23161	(cstombs, unpack_sstring_alloca): define using *_help_()
23162	for the same reason
23163	(with_string_0_help_, with_sstring_0_help_): ditto
23164	* makemake.in (clisp.h): check that the string "lispbibl.d" is not there
23165
231662005-09-14  Sam Steingold  <sds@gnu.org>
23167
23168	* lispbibl.d (GCself, varobject_type): fix export conditional
23169
231702005-09-14  Sam Steingold  <sds@gnu.org>
23171
23172	* stream.d (sec_usec): support 64-bit struct timeval
23173	(sec_usec_number): new function
23174	* lispbibl.d (sec_usec_number): export
23175	* configure.in (struct timeval): check sizeof
23176	* modules/rawsock/rawsock.c (timeval_to_number): remove
23177	(get_sock_opt): use sec_usec_number() instead of timeval_to_number()
23178	* modules/syscalls/calls.c (utmpx_to_lisp): use sec_usec_number()
23179	* modules/syscalls/test.tst: add a GETUTXENT test
23180	* modules/syscalls/configure.in: remove unused sizeof tests
23181
231822005-09-14  Sam Steingold  <sds@gnu.org>
23183
23184	* lispbibl.d (GETTEXT): properly define in clisp.h on woe32
23185
231862005-09-14  Sam Steingold  <sds@gnu.org>
23187
23188	* modules/berkeley-db/bdb.c (BDB:DB-VERSION): fix a GC-safety bug
23189
231902005-09-14  Sam Steingold  <sds@gnu.org>
23191
23192	* modules/postgresql/sql.lisp (*sql-login*, *sql-password*):
23193	new variables
23194	(sql-connect): default login and password to them instead of a literal
23195
231962005-09-13  Sam Steingold  <sds@gnu.org>
23197
23198	* modules/postgresql/sql.lisp (*sql-log*): init to NIL to avoid
23199	saving a closed terminal stream into the image
23200	(with-sql-connection): accept :LOG and bind *sql-log*
23201	* modules/postgresql/postgresql.lisp ("SQL"): make DEFVAR exporting
23202	Reported by Richard Ray <rray@mstc.state.ms.us>
23203	* modules/postgresql/sql.lisp: moved tests into ...
23204	* modules/postgresql/test.tst: new file
23205
232062005-09-13  "Dr. Werner Fink"  <werner@suse.de>
23207
23208	* modules/clx/new-clx/demos/sokoban.lisp (find-outers):
23209	call DISPLAY-FORCE-OUTPUT
23210	* modules/clx/new-clx/clx.f (PUT-IMAGE): do not call XSync()
23211	(x_open_display): install error handlers here before
23212	XOpenDisplay() to catch errors there too
23213	(OPEN-DISPLAY): do not install error handlers
23214
232152005-09-12  Sam Steingold  <sds@gnu.org>
23216
23217	* modules/syscalls/test.tst: SHOW the results for FILE-OWNER
23218	physical-memory: guard against broken unixes, like FreeBSD 4.10-BETA
23219	stat-vfs: FreeBSD lacks this too
23220
232212005-09-12  Sam Steingold  <sds@gnu.org>
23222
23223	* modules/clx/new-clx/clx.f (%DISPLAY-XID): wrap XAllocID in X_CALL
23224	(image_put_and_destroy): wrapper for XPutImage & XDestroyImage
23225	(handle_image_z, PUT-IMAGE): use it
23226	(foreign_slot): wrapper for SLOT-VALUE & check_fpointer
23227	(get_ptr_object_and_display, get_font_info_and_display)
23228	(DISCARD-FONT-INFO): use it
23229	(create_image): wrapper for XCreateImage
23230	(handle_image_z, PUT-IMAGE): use it
23231
232322005-09-12  Sam Steingold  <sds@gnu.org>
23233
23234	* genclisph.d (export_def): add
23235	(emit_define1): remove
23236	* lispbibl.d: use export_def() instead of emit_define() and
23237	emit_define1() most of the time.
23238	BENFIT: reliably correct definitions are exported
23239	COST: the definitions are not always readable
23240	TODO: use "gcc -E -dM" -- like with lispbibl.h -- instead
23241
232422005-09-12  Sam Steingold  <sds@gnu.org>
23243
23244	* modules/clx/new-clx/clx.f (FORCE-GCONTEXT-CHANGES): clean-up STACK
23245	(SHAPE-COMBINE): accept :SOURCE-KIND
23246
232472005-09-12  "Dr. Werner Fink"  <werner@suse.de>
23248
23249	* modules/clx/new-clx/clx.f (GCONTEXT-ID, FORCE-GCONTEXT-CHANGES)
23250	(PUT-IMAGE, ALLOC-COLOR-PLANES, ensure_shape_extension)
23251	(SHAPE-VERSION, SHAPE-COMBINE, SHAPE-OFFSET, ICONIFY-WINDOW)
23252	(WITHDRAW-WINDOW): wrap X calls in X_CALL
23253
232542005-09-08  Sam Steingold  <sds@gnu.org>
23255
23256	* modules/clx/new-clx/clx.f (XLIB:CHANGE-POINTER-CONTROL): use
23257	Fixnum_minus1 instead of fixnum(-1) which is actually illegal
23258
232592005-09-08  Sam Steingold  <sds@gnu.org>
23260
23261	* genclisph.d (emit_define_test, emit_define): new functions
23262	(emit_define1): new macro
23263	(define_count): new static variable
23264	(main): use it in stat output
23265	* lispbibl.d: use emit_define and emit_define1 in _some_ places
23266	cannot use it for fixnum() and The[Type] yet
23267
232682005-09-08  Sam Steingold  <sds@gnu.org>
23269
23270	* modules/syscalls/test.tst: check that OPEN :IF-EXISTS
23271	:RENAME-AND-DELETE produces a file with a new INODE (bug#263)
23272
232732005-09-08  Sam Steingold  <sds@gnu.org>
23274
23275	* lispbibl.d (record_) [TYPECODES]: rectype and recflags should
23276	come in the same order in lispbibl.d and clisp.h
23277	same for SRECORD_HEADER and XRECORD_HEADER
23278	Reported by Dr. Werner Fink <werner@suse.de>
23279
232802005-09-07  Sam Steingold  <sds@gnu.org>
23281
23282	* modules/syscalls/test.tst: test file locking by starting and
23283	controlling via pipes two sub-processes
23284	(flush-stream, proc-send): new functions
23285
232862005-09-07  Sam Steingold  <sds@gnu.org>
23287
23288	* genclisph.d (emit_typedef_f): increment typedef_count, not test_count
23289
232902005-09-06  Sam Steingold  <sds@gnu.org>
23291
23292	* modules/syscalls/calls.c (POSIX::STREAM-LOCK) [!WIN32_NATIVE]:
23293	when LOCK-P is NIL, actually do unlock
23294	[WIN32_NATIVE]: fix :BLOCK handling
23295	always use OS to get file size instead of calling FILE-LENGTH
23296	because on win32 FILE-LENGTH will fail with ERROR_LOCK_VIOLATION
23297	when the underlying file is locked
23298
232992005-09-05  Sam Steingold  <sds@gnu.org>
23300
23301	* makemake.in (DISTFILE): use ${host} as discovered by configure
23302
233032005-09-04  Sam Steingold  <sds@gnu.org>
23304
23305	* configure: when libsigsegv is not found, print instructions on
23306	getting/building libsigsegv and bail out;
23307	override with --ignore-absence-of-libsigsegv
23308
233092005-09-05  Sam Steingold  <sds@gnu.org>
23310
23311	* makemake.in (LISPBIBL_INCLUDES): remove, modules use clisp.h now
23312
233132005-09-05  Sam Steingold  <sds@gnu.org>
23314
23315	* modules/syscalls/calls.c (POSIX::STREAM-LOCK) [!WIN32_NATIVE]:
23316	SHARED defaults to NIL
23317
233182005-09-05  Sam Steingold  <sds@gnu.org>
23319
23320	* modules/clx/new-clx/configure.in: bail out when X is not found
23321
233222005-09-04  Sam Steingold  <sds@gnu.org>
23323
23324	* modules/syscalls/configure.in: add AC_CHECK_SIZEOF(off_t)
23325	* modules/syscalls/calls.c (I_to_offset): define
23326	(STREAM-LOCK): use it
23327
233282005-06-06  Bruno Haible  <bruno@clisp.org>
23329
23330	* makemake.in (MODULES): Do not use with_module_* variables any more.
23331
233322005-09-01  Sam Steingold  <sds@gnu.org>
23333
23334	* modules/rawsock/rawsock.c (set_sock_opt_many): new function
23335	(SET-SOCKET-OPTION): use it; also use endp() and
23336	fehler_plist_odd() to report argument errors
23337
233382005-09-01  Sam Steingold  <sds@gnu.org>
23339
23340	capture failed test output into the log file
23341	* tests/tests.lisp (*eval-out*, *eval-err*): new variables
23342	(my-eval): reset their streams before evaluating the form
23343	(do-test, do-errcheck): write them to log on test failure
23344	(run-test): bind *EVAL-OUT* and *EVAL-ERR* to string streams
23345	and *ERROR-OUTPUT* and  *STANDARD-OUTPUT* to broadcast streams
23346
233472005-09-01  Sam Steingold  <sds@gnu.org>
23348
23349	* error.d (fehler_plist_odd): moved here from symbol.d,
23350	do not accept caller argument, use subr_self instead
23351	* symbol.d (fehler_plist_odd): moved to error.d
23352	(GETF, PUTF, REMF, GET-PROPERTIES): update calls to fehler_plist_odd()
23353	* lispbibl.d (fehler_plist_odd): add the prototype
23354
233552005-08-30  Sam Steingold  <sds@gnu.org>
23356
23357	* utils/modprep.lisp (print-tables-1, print-tables-2):
23358	name all types (even those used just once) to avoid the GCC 4 warning
23359	"non-local variable '<anonymous struct> ...' uses anonymous type"
23360	(modprep): use "~&" to avoid an extra blank line
23361	* modules.d (MODULE): avoid the GCC 4 warning
23362	"non-local variable '<anonymous struct> ...' uses anonymous type"
23363
233642005-08-30  Sam Steingold  <sds@gnu.org>
23365
23366	* lispbibl.d (HAVE_SIGNALS): pass on to clisp.h for clx/new-clx
23367	* modules/clx/new-clx/clx.f (writing_to_subprocess):
23368	define as "extern" without checking for SIGPIPE
23369
233702005-08-30  Sam Steingold  <sds@gnu.org>
23371
23372	* clisp-link.in (fail, check_dir, make_dest, check_linkset)
23373	(check_module): new functions; use them throughout the file
23374	(verbose): call exit (using fail) if the command fails
23375	avoid sub-shells to exit on the first failure
23376
233772005-08-30  Sam Steingold  <sds@gnu.org>
23378
23379	* configure: when --with-dynamic-ffi is supplied, but the FFI
23380	fails to build, issue an error message and fail
23381
233822005-08-30  Sam Steingold  <sds@gnu.org>
23383
23384	* makemake.in (LDFLAGS): fix handling (were effectively ignored)
23385
233862005-08-30  Sam Steingold  <sds@gnu.org>
23387
23388	* Makefile.devel (PACK, PACKOPT, PACKEXT): remove,
23389	assume tar/bzip2/gzip are present on the developer's machine
23390	(linux-distrib, linux--distrib): remove (unused)
23391	(distrib): do not depend on linux-distrib
23392
233932005-08-29  Sam Steingold  <sds@gnu.org>
23394
23395	* makemake.in (PWDCMD): remove
23396	(distrib) [cygwin]: fix tar.bz2 location
23397
233982005-08-29  Sam Steingold  <sds@gnu.org>
23399
23400	* version.sh: clisp 2.35 release
23401
234022005-08-29  Sam Steingold  <sds@gnu.org>
23403
23404	* m4/floatparam.m4: require gt_TYPE_LONGDOUBLE instead of CL_LONGDOUBLE
23405	use $gt_cv_c_long_double instead of $cl_cv_c_longdouble
23406	* m4/intparam.m4: require gl_AC_TYPE_LONG_LONG and gt_TYPE_LONGDOUBLE
23407	instead of CL_LONGLONG and CL_LONGDOUBLE
23408	use $ac_cv_type_long_long and $gt_cv_c_long_double
23409	instead of $cl_cv_c_longlong and $cl_cv_c_longdouble
23410
234112005-08-27  Bruno Haible  <bruno@clisp.org>
23412
23413	Make the long-float overflow check work on 64-bit platforms.
23414	* aridecl.d (LF_exp_mid, LF_exp_high): Define as 'unsigned int',
23415	not 'unsigned long'.
23416
234172005-08-27  Bruno Haible  <bruno@clisp.org>
23418
23419	More cross-compilation support.
23420	* m4/intparam.m4: New file.
23421	* m4/floatparam.m4: New file.
23422	* m4/param.m4: Rename from m4/intparam.m4.
23423	(CL_MACHINE): Add an additional CROSS_MACRO parameter.
23424	* configure.in (CL_MACHINE): When cross-compiling, use
23425	CL_INTPARAM_CROSS and CL_FLOATPARAM_CROSS.
23426
234272005-08-27  Bruno Haible  <bruno@clisp.org>
23428
23429	* m4/rusage.m4 (CL_RUSAGE): Fix error when cross-compiling.
23430
234312005-08-29  Sam Steingold  <sds@gnu.org>
23432
23433	* Makefile.devel (src/configure): depend on version.sh
23434
234352005-08-28  Sam Steingold  <sds@gnu.org>
23436
23437	* noreadline.d: add prototypes to avoid warnings
23438
234392005-08-28  Sam Steingold  <sds@gnu.org>
23440
23441	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
23442	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
23443	* modules/regexp/test.tst: fix the tests whose behavior changed
23444	during the transition from uni-byte to the multi-byte version
23445
234462005-08-28  Sam Steingold  <sds@gnu.org>
23447
23448	Danish messages from Dennis Decker Jensen <dennisdjensen@tiscali.dk>
23449	* configure.in (ALL_LINGUAS): add `da'
23450	* constsym.d (danish): add
23451	* init.lisp (danish.lisp) [GETTEXT UNICODE]: load
23452	* danish.lisp: new file
23453	* spvw_language.d (language_danish): add
23454	(current_language_o, init_language): handle it
23455	(init_language_from): check for Danish
23456	* makemake.in (LPARTS) [$with_unicode]: add danish
23457
234582005-08-28  Sam Steingold  <sds@gnu.org>
23459
23460	* describe.lisp (describe-object): use "~:p" instead of "~:*~[~;~:;s~]"
23461
234622005-08-28  Sam Steingold  <sds@gnu.org>
23463
23464	moved PARI i/o from Lisp to C to enable C++ compilation ("const" issues)
23465	* modules/pari/cpari.c (clispPutc, clispPuts, clispFlush)
23466	(clispErrPutc, clispErrPuts, clispErrFlush, clispErrDie): add
23467	* modules/pari/pari.lisp (pari-putc, pari-puts, pari-flush)
23468	(pari-err-putc, pari-err-puts, pari-err-flush, pari-err-die): remove
23469
234702005-08-26  Sam Steingold  <sds@gnu.org>
23471
23472	* lispbibl.d (Handle) [UNIX]: use emit_typedef and define to int
23473
234742005-08-26  Sam Steingold  <sds@gnu.org>
23475
23476	* lispbibl.d, errunix.d, errwin32.d (errno_out_low):
23477	rename from errno_out(), accept __FILE__ and __LINE__
23478	* error.d: do not #undef errno_out
23479	* lispbibl.d (errno_out): define always,
23480	passing __FILE__ and __LINE__ to errno_out_low()
23481
234822005-08-26  Sam Steingold  <sds@gnu.org>
23483
23484	* Makefile.devel (makemake): substitute @PACKAGE_VERSION@
23485
234862005-08-26  Sam Steingold  <sds@gnu.org>
23487
23488	* makemake.in: avoid putting ${} into Makefile, use $() instead
23489
234902005-08-26  John Hinsdale <hin@alma.com>
23491
23492	* modules/oracle/oracle.lisp, orafns.c: Handle Oracle BLOB data
23493	on output as array of (UNSIGNED-BYTE 8) and allow embedded NUL bytes.
23494	Reported by Tomas Hlavaty <kvietaag@seznam.cz>
23495
234962005-08-25  Sam Steingold  <sds@gnu.org>
23497
23498	* makemake.in: instead of having the user edit Makefile and select
23499	the packer, check for gzip/compress and assume that tar is present
23500	* configure.in: check for gzip/compress
23501
235022005-08-25  Sam Steingold  <sds@gnu.org>
23503
23504	* m4/regex.m4, modules/regexp/regcomp.c, modules/regexp/regex.h:
23505	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
23506	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
23507	G++ finally can compile regex!
23508
235092005-08-25  Sam Steingold  <sds@gnu.org>
23510
23511	* errunix.d, errwin32.d (errno_out): print newline beforehand
23512	* lispbibl.d (errno_out) [DEBUG_OS_ERROR]: print file:line
23513	* error.d: #undef errno_out
23514	* spvw_memfile.d (loadmem): do not print newline before errno_out()
23515	* spvw_mmap.d (mmap_zeromap): ditto
23516	* spvw_multimap.d (fdmap): ditto
23517
235182005-08-25  Sam Steingold  <sds@gnu.org>
23519
23520	* makemake.in: do note create rules for development targets
23521	unless the user is working from the CVS
23522
235232005-08-25  Sam Steingold  <sds@gnu.org>
23524
23525	* modules/syscalls/configure.in, modules/syscalls/calls.c:
23526	assume <sys/types.h> exists, just like in unix.d
23527
235282005-08-25  Sam Steingold  <sds@gnu.org>
23529
23530	* unixaux.d (close_all_fd): also try getrlimit() before OPEN_MAX
23531	* unix.d: include <time.h> and <sys/time.h> as recommended by the
23532	autoconf manual (see AC_HEADER_TIME); include <sys/resource.h>
23533	* configure.in: call AC_CHECK_FUNCS and AC_CHECK_HEADERS just once;
23534	use AC_HEADER_TIME to check for <time.h> and <sys/time.h>
23535
235362005-08-25  Sam Steingold  <sds@gnu.org>
23537
23538	* m4/regex.m4, modules/regexp/regcomp.c, modules/regexp/regex.h:
23539	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
23540	* modules/regexp/regexec.c, modules/regexp/regex.c: sync with gnulib
23541	* modules/regexp/configure.in: add AC_GNU_SOURCE,
23542	use gl_REGEX instead of gl_INCLUDED_REGEX
23543
235442005-08-25  Sam Steingold  <sds@gnu.org>
23545
23546	* Makefile.devel (src/autoconf/aclocal.m4): prepend AC_GNU_SOURCE
23547	to configure.ac and strip it from configures
23548	Suggested by Stepan Kasal <kasal@ucw.cz> in
23549	<http://article.gmane.org/gmane.comp.lib.gnulib.bugs:4165>
23550	<http://lists.gnu.org/archive/html/bug-gnulib/2005-08/msg00176.html>
23551
235522005-08-24  Sam Steingold  <sds@gnu.org>
23553
23554	explicitly close all file descriptors before exec()
23555	* socket.d (connect_to_x_server): do not set FD_CLOEXEC
23556	* configure.in: check for sysconf and
23557	* unixaux.d (close_all_fd): new function
23558	* unix.d (close_all_fd): declare it
23559	* stream.d (create_input_pipe, create_output_pipe, create_io_pipe):
23560	call it before execl()
23561	* pathname.d (EXECUTE, LAUNCH): call it before execv() and execvp()
23562
235632005-08-23  Sam Steingold  <sds@gnu.org>
23564
23565	* modules/syscalls/calls.c (POSIX::STREAM-OPTIONS): implement
23566	* modules/syscalls/posix.lisp (POSIX::STREAM-OPTIONS): export
23567
235682005-08-22  Sam Steingold  <sds@gnu.org>
23569
23570	* utils/modprep.lisp (print-tables-1): *_to_list():
23571	when c_const is 0, do not put l_const into the list
23572
235732005-08-22  Sam Steingold  <sds@gnu.org>
23574
23575	* makemake.in: issue a warning on --with-module=base-module
23576
235772005-08-22  Sam Steingold  <sds@gnu.org>
23578
23579	* modules/regexp/regcomp.c, modules/regexp/regex.h:
23580	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
23581	* modules/regexp/regexec.c, m4/regex.m4: sync with gnulib
23582
235832005-08-19  Sam Steingold  <sds@gnu.org>
23584
23585	* stream.d (stream_lend_handle): propagate up the possible change
23586	in the first argument coming from check_value()
23587	* lispbibl.d (stream_lend_handle): update the declaration
23588	* pathname.d (init_launch_streamarg):
23589	update the call to stream_lend_handle()
23590	* modules/syscalls/calls.c (stream_get_handle): propagate up the
23591	possible change in the first argument coming from stream_lend_handle()
23592	(error_OS_stream): new function
23593	(STREAM-LOCK): use it
23594	(SYNC): use stream_get_handle()
23595	(FILE-STAT): update call to stream_get_handle()
23596	(copy_attributes_and_close, copy_file_low):
23597	update call to stream_lend_handle()
23598
235992005-08-18  Sam Steingold  <sds@gnu.org>
23600
23601	* lispbibl.d (attribute_aligned_object): use "#define" instead of
23602	a constant variable declaration "const char*" for gen.lispbibl.c
23603
236042005-08-18  Sam Steingold  <sds@gnu.org>
23605
23606	* makemake.in (PROC): handle OpenBSD 3.4 where `uname -p` prints
23607	"Intel Pentium III (Coppermine) ("GenuineIntel" 686-class)"
23608
236092005-08-18  Sam Steingold  <sds@gnu.org>
23610
23611	* spvw.d (libopen) [!WIN32_NATIVE]: pass RTLD_GLOBAL to dlopen()
23612
236132005-08-18  John Hinsdale <hin@alma.com>
23614
23615	* modules/oracle/orafns.c, oracle.lisp: handle floats as double
23616	precision by default; allow multiple connects to the same
23617	server via connection IDs
23618
236192005-08-18  Sam Steingold  <sds@gnu.org>
23620
23621	* modules/rawsock/configure.in: call AC_HEADER_TIME
23622	* modules/rawsock/rawsock.c: include <time.h>
23623	so that "struct timeval" will be available on OSX too
23624	(optional_sockaddr_argument): declare static to avoid a warning
23625
236262005-08-16  Sam Steingold  <sds@gnu.org>
23627
23628	* modules/regexp/regex.h: sync with gnulib (support G++)
23629
236302005-08-15  Sam Steingold  <sds@gnu.org>
23631
23632	* documentation.lisp (documentation, (setf documentation)): specialize
23633	on CONS, not on NIL, to ensure that NIL is treated as a SYMBOL
23634
236352005-08-13  Arseny Slobodyuk  <ampy@users.sourceforge.net>
23636
23637	* utils/comment5.c (main): init outfilenamebuffer so it
23638	won't contain trash when piping to exiting program occurs.
23639	Close infile before exit.
23640
236412005-08-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>
23642
23643	* w32shell.c (real_path): fix a bug with root directory
23644	checking on Win32 (bug#266).
23645
236462005-08-11  Sam Steingold  <sds@gnu.org>
23647
23648	* makemake.in (DEVPREFIX): simplified
23649
236502005-08-10  Sam Steingold  <sds@gnu.org>
23651
23652	* m4/onceonly.m4: use gnulib/m4/onceonly_2_57.m4
23653
236542005-08-10  Sam Steingold  <sds@gnu.org>
23655
23656	* init.lisp (char-invertcase, string-invertcase)
23657	(nstring-invertcase): export
23658	* charstrg.d (STRING-INVERTCASE): accept :START and :END
23659	(NSTRING-INVERTCASE): implement
23660	* constsym.d (NSTRING-INVERTCASE): add
23661	(char-invertcase, string-invertcase): moved from SYS to EXT
23662	* subr.d (string-invertcase): accept :START and :END
23663	(nstring-invertcase): add
23664	* subrkw.d (string-invertcase, nstring-invertcase): add
23665
236662005-08-05  Sam Steingold  <sds@gnu.org>
23667
23668	* compiler.lisp (compile-file): put source line number into the
23669	name of the compiled top-level form
23670	* init.lisp (*current-source-line-1*, *current-source-line-2*): add
23671	(sys::check-redefinition): FILE doc is now (file start-line end-line)
23672	(eval-loaded-form-low): set *CURRENT-SOURCE-LINE-[12]* from the
23673	compiled top-level form
23674	(load): bind and set *CURRENT-SOURCE-LINE-[12]*
23675
236762005-08-05  Sam Steingold  <sds@gnu.org>
23677
23678	* macros3.lisp (compiled-file-p): implement CLRFI-2
23679	<http://clrfi.alu.org/clrfi/clrfi-2-compiled-file-p>
23680
236812005-08-04  Sam Steingold  <sds@gnu.org>
23682
23683	make configure creation process more robust
23684	* Makefile.devel (MODULES, MOD_CONFIGURES, MOD_CONFIG_H_IN)
23685	(CLISP_CONFIGURES, FFCALL, FFCALL_CONFIGURES): new variables
23686	(CONFIGURES, CONFIG_H_IN): use them
23687	(autoconf/aclocal.m4): depend only on CLISP_CONFIGURES
23688
236892005-08-04  Sam Steingold  <sds@gnu.org>
23690
23691	update bundled regex to the latest gnulib version
23692	* configure.in: call gl_USE_SYSTEM_EXTENSIONS
23693	* modules/regexp/configure.in: use gl_INCLUDED_REGEX instead of
23694	CL_REGEXP; do not call AC_AIX (done by toplevel)
23695	* modules/wildcard/configure.in: do not call AC_AIX (done by toplevel)
23696	* modules/regexp/regex.c, modules/regexp/regex.h: update
23697	* modules/regexp/regex_internal.c, modules/regexp/regex_internal.h:
23698	* modules/regexp/regexec.c, modules/regexp/regcomp.c:
23699	* m4/extensions.m4, m4/onceonly.m4, m4/regex.m4: add
23700	* m4/regexp.m4: remove
23701	* modules/regexp/link.sh.in: remove all gnulib regex files when
23702	using the system-wide regex implementation
23703	* modules/syscalls/calls.c: do not define __EXTENSIONS__, this is
23704	taken care of by gl_USE_SYSTEM_EXTENSIONS
23705
237062005-08-04  Sam Steingold  <sds@gnu.org>
23707
23708	* modules/fastcgi/configure.in, modules/oracle/configure.in:
23709	generate config.h
23710
237112005-08-03  Sam Steingold  <sds@gnu.org>
23712
23713	* makemake.in (check): fix the test for sacla-tests and ansi-tests
23714
237152005-08-03  Sam Steingold  <sds@gnu.org>
23716
23717	* spvw_memfile.d (loadmem): add a cast for C++ compilation
23718
237192005-08-03  Sam Steingold  <sds@gnu.org>
23720
23721	* documentation.lisp (function-documentation):
23722	pass NAME, not X, to SYS::GET-FUNNAME-SYMBOL
23723
237242005-08-03  Sam Steingold  <sds@gnu.org>
23725
23726	* defs1.lisp (decode-universal-time) [!(UNIX|WIN32)]:
23727	call FLOOR just once instead of twice
23728
237292005-08-02  Sam Steingold  <sds@gnu.org>
23730
23731	* encoding.d (init_dependent_encodings, SET-FOREIGN-ENCODING):
23732	partially reversed the 2005-07-30 patch: O(foreign_8bit_encoding)
23733	must agree with O(foreign_encoding) and only ASCII agrees with
23734	_all_ encodings, so use ASCII instead of DEFAULT_1_1_ENCODING
23735
237362005-08-02  Sam Steingold  <sds@gnu.org>
23737
23738	use symbol property lists instead of the global *DOCUMENTATION*
23739	hash table: the table is not weak, so it is not cleaned up
23740	this also reduced the size of lispinit.mem by almost 10% (15k)
23741	* init.lisp (get-funname-symbol): moved up
23742	(get-doc-entity-symbol): new function
23743	(%set-documentation, check-redefinition):
23744	use it with GET instead of GETHASH
23745	* describe.lisp (describe1): do not use *DOCUMENTATION*
23746	* documentation.lisp (documentation, (setf documentation)): ditto
23747	also, CHECK-FUNCTION-NAME may return a symbol when given a list
23748	(function-documentation, set-function-documentation): new functions
23749
237502005-08-02  Sam Steingold  <sds@gnu.org>
23751
23752	* package.d (cerror_package_locked): PACKAGE-ERROR slot PACKAGE
23753	must be a PACKAGE, not a list thereof (coming from CHECK-REDEFINITION)
23754
237552005-08-02  Sam Steingold  <sds@gnu.org>
23756
23757	* modules/berkeley-db/test.tst (show): moved to tests/tests.lisp
23758	* modules/rawsock/test.tst, modules/zlib/test.tst:
23759	use SHOW instead of PRINT
23760
237612005-08-01  Sam Steingold  <sds@gnu.org>
23762
23763	when the specified memory image does not exist, try appending ".mem"
23764	* spvw_memfile.d (open_filename): new function (extracted from loadmem)
23765	(loadmem): use it, and retry with filename".mem" on failure
23766
237672005-08-01  Sam Steingold  <sds@gnu.org>
23768
23769	* spvw_global.d (check_pack_consistency): made static to avoid warning
23770
237712005-08-01  Sam Steingold  <sds@gnu.org>
23772
23773	* savemem.lisp (saveinitmem): ensure that *PACKAGE*
23774	is bound to a package
23775
237762005-08-01  Sam Steingold  <sds@gnu.org>
23777
23778	* pathname.d (directory_trivial_p): check whether (CAR DIR) is a CONS
23779	This caused a crash on Sparc/Solaris 10.
23780	Reported by Nelson H. F. Beebe <beebe@math.utah.edu>
23781
237822005-07-30  Sam Steingold  <sds@gnu.org>
23783
23784	* encoding.d (DEFAULT_1_1_ENCODING): iso-8859-1 (corresponds to
23785	the CLISP CODE-CHAR/CHAR-CODE conversion on the first 255 bytes)
23786	(encoding_from_name): when `name' does not name a known encoding,
23787	use the locale default instead of ASCII/UTF-8 (for CLISP contexts)
23788	and DEFAULT_1_1_ENCODING when context=locale (e.g., name=ISO8859-1)
23789	-E "1:1" and "8bit" now mean DEFAULT_1_1_ENCODING
23790	(init_dependent_encodings, SET-FOREIGN-ENCODING):
23791	O(foreign_8bit_encoding) defaults to DEFAULT_1_1_ENCODING, not to ASCII
23792
237932005-07-29  Sam Steingold  <sds@gnu.org>
23794
23795	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS):
23796	dbe->set_verbose() does not accept bit flag combinations
23797
237982005-07-29  Sam Steingold  <sds@gnu.org>
23799
23800	* makemake.in (gen.lispbibl.c): fix the sed(1) expression to work on
23801	solaris, darwin, openbsd, msys (gnu sed 3), cygwin&linux (gnu sed 4)
23802	Suggested by rouben@pc18.math.umbc.edu (Rouben Rostamian)
23803
238042005-07-27  Sam Steingold  <sds@gnu.org>
23805
23806	* spvw_debug.d (TheCons_): a new debugging prop
23807
238082005-07-26  Sam Steingold  <sds@gnu.org>
23809
23810	* stream.d (SOCKET-STREAM-SHUTDOWN): never call close(2), just
23811	shutdown(2) in the appropriate direction; accept raw sockets
23812	(builtin_stream_close): decide on which stream channel to close
23813	based on the channel value and not on strmflags
23814	* modules/rawsock/rawsock.c (SHUTDOWN): remove
23815	* modules/rawsock/sock.lisp (shutdown): remove
23816
238172005-07-27  Sam Steingold  <sds@gnu.org>
23818
23819	* condition.lisp (eval-loaded-form): accept a FILE argument and
23820	make the :REPORTs more informative
23821	* init.lisp (eval-loaded-form) [preliminary]: accept and ignore FILE
23822	(load): pass *LOAD-TRUENAME* to EVAL-LOADED-FORM as FILE
23823
238242005-07-25  Sam Steingold  <sds@gnu.org>
23825
23826	* modules/clx/new-clx/clx.f (ensure_living_display): avoid
23827	"Unprintable error message" by always returning when the argument
23828	is a DISPLAY
23829
238302005-07-25  Sam Steingold  <sds@gnu.org>
23831
23832	* modules/queens/link.sh (INCLUDES): no need for '-I'
23833	Reported by Dr. Werner Fink <werner@suse.de>
23834
238352005-07-22  Sam Steingold  <sds@gnu.org>
23836
23837	* makemake.in (check): ansi-tests and sacla-tests are for
23838	developers only and are not included in the source distribution,
23839	so check should not depend on them;
23840	for developers, it should also depend on benchmarks
23841
238422005-07-22  Sam Steingold  <sds@gnu.org>
23843
23844	Fix win32 bug: when "foo" is a file, (directory "foo/") returned
23845	non-NIL and this prevented loading ~/.clisprc
23846	* pathname.d (check_stat_directory): remove
23847	(copy_pathname_and_add_subdir): extract from
23848	directory_search_1subdir()
23849	(check_sub_directory): replaces check_stat_directory()
23850	(directory_search_1subdir): call it
23851
238522005-07-22  Sam Steingold  <sds@gnu.org>
23853
23854	* makemake.in (clisp.1, clisp.html): substitute ${host} (on unix)
23855	or ${TSYS} (on win32) for @PLATFORM@
23856	* doc/Makefile (FILLIN): do not substitute @PLATFORM@ here
23857
238582005-07-21  Sam Steingold  <sds@gnu.org>
23859
23860	* win32.d (HAVE_STRERROR): define to 1 to avoid a warning
23861
238622005-07-21  Sam Steingold  <sds@gnu.org>
23863
23864	* subtypep.lisp (get-charset-range): do not fill the cache here
23865
238662005-07-21  Sam Steingold  <sds@gnu.org>
23867
23868	* utils/fix-perms.sh: follow symlinks and also "-x" HTML and PNG
23869
238702005-07-21  Sam Steingold  <sds@gnu.org>
23871
23872	* makemake.in (distrib) [cygwin]: fix CLISP_VR; use /tmp for DEST_TMP
23873	do not put curr/prev/test into setup.hint - normally they are not needed
23874
238752005-07-21  Sam Steingold  <sds@gnu.org>
23876
23877	* modules/clx/mit-clx/link.sh (TO_LOAD): remove split-sequence
23878	* modules/clx/mit-clx/Makefile (ALLLISP, ALLFAS): ditto
23879
238802005-07-20  Sam Steingold  <sds@gnu.org>
23881
23882	* version.sh: clisp 2.34 release
23883
238842005-07-20  Sam Steingold  <sds@gnu.org>
23885
23886	* makemake.in (VERSION): remove
23887
238882005-07-20  Sam Steingold  <sds@gnu.org>
23889
23890	* lispbibl.d: do not put "var" into clisp.h
23891
238922005-07-20  Sam Steingold  <sds@gnu.org>
23893
23894	* m4/libtool.m4: upgrade to libtool-1.5.18 + clisp 2005-07-08 patch
23895
238962005-07-20  Sam Steingold  <sds@gnu.org>
23897
23898	* lispbibl.d (var): do not put into clisp.h
23899	(elif, loop, until): deprecated
23900
239012005-07-20  Sam Steingold  <sds@gnu.org>
23902
23903	* Makefile.devel: remove the last vestiges of DOS support
23904	update release procedure
23905	* clisp.spec: ditto
23906
239072005-07-20  Sam Steingold  <sds@gnu.org>
23908
23909	* utils/fix-perms.sh: make configure files executable
23910
239112005-07-18  Sam Steingold  <sds@gnu.org>
23912
23913	* spvw.d (usage): made the message more consistent
23914
239152005-07-15  Sam Steingold  <sds@gnu.org>
23916
23917	* utils/varbrace.d (convert): declare static to avoid a warning
23918
239192005-07-15  Sam Steingold  <sds@gnu.org>
23920
23921	* modules/berkeley-db/bdb.c: use msgcall and msgfile (Berkeley-DB 4.3)
23922	(struct messages): new type
23923	(make_messages, free_messages, close_messages, extract_messages)
23924	(add_message): operate on the messages
23925	(message_callback): callback for msgcall
23926	(DBE-CREATE): init msgcall
23927	(close_msgfile, reset_msgfile, dbe_get_msgfile): add
23928	(BDB:DBE-MESSAGES): new function
23929	(DBE-SET-OPTIONS, DB-SET-OPTIONS, DBE-GET-OPTIONS, DB-GET-OPTIONS):
23930	accept :MSGFILE
23931	* modules/berkeley-db/dbi.lisp (BDB:DBE-MESSAGES): export
23932
239332005-07-15  Sam Steingold  <sds@gnu.org>
23934
23935	support Berkeley-DB 4.3
23936	* modules/berkeley-db/bdb.c (BDB:DB-VERSION): also return
23937	LOGVERSION, TXNVERSION, SEQUENCE_VERSION
23938	(DBE-SET-OPTIONS): also accept DSYNC-LOG LOG-AUTOREMOVE LOG-INMEMORY
23939	(DB-GET, MAKE-DBC, TXN-BEGIN): also accept DEGREE-2
23940	(DB-STAT): also accept TRANSACTION
23941	(DB-SET-OPTIONS): also accept INORDER
23942	* modules/berkeley-db/configure.in: check for DB_ENV.set_msgcall,
23943	DB->stat/TXN, DB_ENV->set_errcall/DBE, get_transactional
23944
239452005-07-15  Sam Steingold  <sds@gnu.org>
23946
23947	* configure (--list-modules): new option
23948
239492005-07-15  Sam Steingold  <sds@gnu.org>
23950
23951	* makemake.in (DEVPREFIX): "cd c:" --> "cd c:/" to avoid a cygwin error
23952	./makemake: line 724: cd: c:: No such file or directory
23953
239542005-07-15  Devon Sean McCullough  <Lisp-Hacker@Jovi.Net>
23955
23956	* makemake.in (gen.lispbibl.c): fix the sed(1) expression to
23957	work on macos-10.4-darwin-8.2.0
23958
239592005-07-13  Sam Steingold  <sds@gnu.org>
23960
23961	* makemake.in (setup.hint) [cygwin]: fix curr/test output
23962
239632005-07-12  Sam Steingold  <sds@gnu.org>
23964
23965	* modules/pari/pari.lisp: update obsolete names
23966
239672005-07-12  Sam Steingold  <sds@gnu.org>
23968
23969	* makemake.in (MSVCDIR): output sample values for all versions
23970	Reported by Ury Marshak <urym@two-bytes.com>
23971
239722005-07-11  Sam Steingold  <sds@gnu.org>
23973
23974	* modules/bindings/win32/win32.lisp (SetStdHandle): add
23975
239762005-07-11  Sam Steingold  <sds@gnu.org>
23977
23978	* spvw.d (parse_options): print (EXT:MODULE-INFO) for --version
23979
239802005-07-11  Sam Steingold  <sds@gnu.org>
23981
23982	* modules/i18n/i18n.lisp (*features*): add :I18N
23983
239842005-07-11  Sam Steingold  <sds@gnu.org>
23985
23986	* modules/pcre/pcre.lisp, modules/zlib/zlib.lisp:
23987	* modules/syscalls/posix.lisp, modules/rawsock/sock.lisp:
23988	* modules/berkeley-db/dbi.lisp, modules/dirkey/dirkey1.lisp:
23989	*SYSTEM-PACKAGE-LIST* is in CUSTOM
23990
239912005-07-10  Sam Steingold  <sds@gnu.org>
23992
23993	* modules/bindings/win32/win32.lisp (DestroyIcon): new function
23994
239952005-07-08  Sam Steingold  <sds@gnu.org>
23996
23997	* modules/bindings/win32/win32.lisp: do NOT use full paths for
23998	:LIBRARY arguments (reverses the 2005-06-06 patch) for portability
23999	of binary distributions [it now works on cygwin, go figure...]
24000	(GetStdHandle, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE)
24001	(ReadFile, WriteFile, ReadConsoleA, WriteConsoleA): add i/o interface
24002
240032005-07-08  Jörg Höhle  <hoehle@users.sourceforge.net>
24004
24005	* modules/bindings/win32/win32.lisp: WINAPI means :stdc-stdcall
24006
240072005-07-08  Bruno Haible  <bruno@clisp.org>
24008
24009	* m4/libtool.m4 (postinstall_cmds) [cygwin,mingw,pw32]: Make DLL
24010	executable after installing it.
24011
240122005-07-07  Sam Steingold  <sds@gnu.org>
24013
24014	* places.lisp (get-setf-expansion): do not return CLISP-specific
24015	form ((SETF ...) ...) to avoid confusing 3rd party code walkers
24016
240172005-07-07  Sam Steingold  <sds@gnu.org>
24018
24019	* utils/clispload.lsp (*expected-failures*): add MAKE-CONDITION.[34]
24020
240212005-07-07  Sam Steingold  <sds@gnu.org>
24022
24023	* places.lisp (get-setf-expansion): user may pass env=NIL to mean
24024	null lexical environment
24025
240262005-07-07  Sam Steingold  <sds@gnu.org>
24027
24028	* makemake.in [win32msvc]: use rc+cvtres to add the icon to clisp.exe
24029	(anymodule): use {MODULESDIR_} for ./configure --srcdir
24030	(needs): fix quoting
24031
240322005-07-07  Jörg Höhle  <hoehle@users.sourceforge.net>
24033
24034	* execname.c (default_executable_name) [WIN32_NATIVE]: default to
24035	lisp.exe, not lisp.run
24036	* _clisp.c [!UNIX]: do not #include files specific to UNIX
24037
240382005-07-06  Sam Steingold  <sds@gnu.org>
24039
24040	fix "./configure --build foo/bar/baz"
24041	* configure (maybe_mkdir): pass "-p" to mkdir
24042	(makemake_args): pass subdir_srcdir_args down to makemake
24043	* makemake.in (anymodule): pass srcdir to module configure
24044	Reported by Will Newton
24045
240462005-07-06  Sam Steingold  <sds@gnu.org>
24047
24048	* makemake.in (OUT): new variable
24049	(clisp): fix msvc rule
24050	Reported by Jörg Höhle
24051
240522005-07-06  Sam Steingold  <sds@gnu.org>
24053
24054	* makemake.in: remove the last(?) vestiges of DOS support
24055
240562005-07-06  Sam Steingold  <sds@gnu.org>
24057
24058	* modules/pari/pari.lisp (binomial-coefficient): commented out
24059	because `binomial' is not found in libpari-2.2.dll at link time
24060
240612005-07-06  Sam Steingold  <sds@gnu.org>
24062
24063	* modules/berkeley-db/bdb.c (error_callback, error_message_reset):
24064	declare static to avoid warnings
24065	(module__bdb__init_function_2): add a prototype
24066	* modules/pcre/cpcre.c (module__pcre__init_function_2): ditto
24067
240682005-07-06  Sam Steingold  <sds@gnu.org>
24069
24070	* version.sh: bumped because of many bug fixes
24071
240722005-07-05  Sam Steingold  <sds@gnu.org>
24073
24074	* foreign.d (MEMORY-AS): fix a cast for g++ compilation
24075
240762005-07-01  Sam Steingold  <sds@gnu.org>
24077
24078	* makemake.in: copy localcharset.h to the build directory on msvc too
24079	Reported by Jörg Höhle <hoehle@users.sourceforge.net>
24080
240812005-07-01  Jörg Höhle  <hoehle@users.sourceforge.net>
24082
24083	* foreign1.lisp (c-ident-p): accept @ in foreign names,
24084	useful for some libraries using :STDC-STDCALL.
24085	* errunix.d (strerror) [!HAVE_STRERROR]: fix typo.
24086	* win32.d (HAVE_STRERROR): #define (errunix.d needs it)
24087
240882005-06-28  Sam Steingold  <sds@gnu.org>
24089
24090	* init.lisp (%return-p): quoted constants cannot contain
24091	RETURN-FROM forms (this fixes a bug whereby quoted circular list
24092	hang the evaluator)
24093	Reported by Devon Sean McCullough <Lisp-Hacker@Jovi.Net>
24094
240952005-06-26  Sam Steingold  <sds@gnu.org>
24096
24097	* compiler.lisp (c-OR): handle empty codelist
24098	Reported by Dan Corkill <dancorkill@comcast.net> & bug#259
24099
241002005-06-24  Sam Steingold  <sds@gnu.org>
24101
24102	* makemake.in (config.status): does not depend on version.sh
24103
241042005-06-24  Sam Steingold  <sds@gnu.org>
24105
24106	RFE#18: configure shall report essential findings
24107	* configure: report configure findings
24108
241092005-06-24  Sam Steingold  <sds@gnu.org>
24110
24111	* foreign.d (CALL-WITH-FOREIGN-STRING): use check_posfixnum()
24112
241132005-06-22  Sam Steingold  <sds@gnu.org>
24114
24115	* foreign1.lisp (exec-with-foreign-string): ENCODING-ZEROES is
24116	defined both with and without UNICODE
24117
241182005-06-22  Jörg Höhle  <hoehle@users.sourceforge.net>
24119
24120	* foreign.d (read_memory_as, write_memory_as): low-level accessors
24121	* subr.d, constsym.d (read_memory_as, write_memory_as): add
24122	* foreign1.lisp (MEMORY-AS): export and define (SETF MEMORY-AS)
24123
241242005-06-21  Sam Steingold  <sds@gnu.org>
24125
24126	* charstrg.d (coerce_char): no INPUT-CHARACTER without KEYBOARD
24127	Reported by Roland Averkamp <roland.averkamp@gmx.de>
24128
241292005-06-21  Sam Steingold  <sds@gnu.org>
24130
24131	* defs1.lisp (logical-pathname-translations "SYS"): update
24132	for the 2005-05-06 #p"" ==> :DIRECTORY NIL patch
24133
241342005-06-21  Sam Steingold  <sds@gnu.org>
24135
24136	* documentation.lisp ((setf documentation), documentation):
24137	remove the unnecessary (ignore doc-type) declarations (avoids warnings)
24138
241392005-06-20  Sam Steingold  <sds@gnu.org>
24140
24141	* pathname.d (FullName): declare static to avoid a warning
24142	(handle_dup): fix local variable type
24143	* w32shell.c (resolve_shell_shortcut, resolve_shell_shortcut_more)
24144	(resolve_shell_symlink): declare static to avoid warnings
24145	* _clisp.c (shell_quote, real_path, find_executable): add
24146	prototypes to avoid warnings
24147	* utils/ccmp2c.c (new_statement): declare main%d static
24148	to avoid warnings
24149	* modules/clx/new-clx/clx.f (get_font_info_and_display, get_font_name)
24150	(make_visual_info, x_open_display, general_draw_text, font_char_info)
24151	(module__clx__init_function_2): declare static to avoid warnings
24152	(xlib_error_handler, xlib_io_error_handler, xlib_after_function):
24153	global prototypes to avoid warnings
24154
241552005-06-20  Sam Steingold  <sds@gnu.org>
24156
24157	* makemake.in (UTILCC): new makefile variable: simplifies the hack
24158	necessary to make some utilities (comment5 and txt2c) that must
24159	understand symbolic links to permit building in a separate
24160	directory on woe32/cygwin/mingw
24161
241622005-06-20  Sam Steingold  <sds@gnu.org>
24163
24164	* socket.d (resolve_host) [HAVE_IPV6]: handle numeric IPv6 addresses
24165
241662005-06-20  Sam Steingold  <sds@gnu.org>
24167
24168	* error.d (check_uint32_replacement, check_sint32_replacement)
24169	(check_uint64_replacement, check_sint64_replacement):
24170	fix the message: use the correct article
24171
241722005-06-18  Bruno Haible  <bruno@clisp.org>
24173
24174	* lispbibl.d (oint_data_len, oint_data_mask): On 64-bit platforms,
24175	always set oint_data_len to 48, not 40 or 32.
24176	(oint_type_*) [MIPS64]: Use only 16 bits for the type.
24177
241782005-06-15  Bruno Haible  <bruno@clisp.org>
24179
24180	* socket.d (string_to_addr): Mark as maygc.
24181
241822005-06-15  Jörg Höhle  <hoehle@users.sourceforge.net>
24183
24184	* defs1.lisp (memoized): export it from EXT.
24185
241862005-06-14  Sam Steingold  <sds@gnu.org>
24187
24188	make executables built on NT run on w95
24189	* modules/syscalls/calls.c (LockFileExFuncType, UnlockFileExFuncType):
24190	new typedefs
24191	(LockFileExFunc, UnlockFileExFunc): new statis variables
24192	(STREAM-LOCK): use them instead of the NT functions
24193	(module__syscalls__init_function_2): init them
24194
241952005-06-12  Bruno Haible  <bruno@clisp.org>
24196
24197	Avoid "gcc -missing-declarations" warnings.
24198	* modules/syscalls/calls.c (module__syscalls__init_function_2): Declare.
24199
242002005-06-12  Bruno Haible  <bruno@clisp.org>
24201
24202	Make PROVIDE, REQUIRE work as expected in case-inverted packages.
24203	* defs1.lisp (module-name): New function.
24204	(provide, require): Use it instead of #'string.
24205	* compiler.lisp (c-PROVIDE, c-REQUIRE): Likewise.
24206
242072005-06-12  Bruno Haible  <bruno@clisp.org>
24208
24209	* constobj.d: Rename O(type_designator_function_name) to
24210	O(type_function_name).
24211	* error.d: Update.
24212
242132005-06-12  Bruno Haible  <bruno@clisp.org>
24214
24215	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
24216	Change calling convention, to avoid use of sys::%unbound.
24217	(backquote-reader): Update.
24218
242192005-06-10  Sam Steingold  <sds@gnu.org>
24220
24221	* modules/pari/pari.lisp: update for pari 2.2.11
24222	(ell-local-reduction): use elllocalred
24223	(ell-global-reduction): use ellglobalred
24224	(ell-modular-parametrization): use elltaniyama
24225
242262005-06-10  Sam Steingold  <sds@gnu.org>
24227
24228	* foreign1.lisp (note-c-call-in): emit prototypes
24229	* modules/pari/pari.lisp (clisp_get_prec, clisp_set_prec)
24230	(get_entry_doc, subres0): ditto
24231
242322005-06-10  Sam Steingold  <sds@gnu.org>
24233
24234	* makemake.in (XCFLAGS) [CC_CPLUSPLUS=true]: do not add
24235	-Wmissing-declarations: 'cc1plus: warning: command line option
24236	"-Wmissing-declarations" is valid for C/ObjC but not for C++'
24237
242382005-06-10  Sam Steingold  <sds@gnu.org>
24239
24240	avoid -Wstrict-prototypes warnings in modules
24241	* foreign1.lisp (finalize-coutput-file): emit init/fini prototypes
24242	* utils/modprep.lisp (print-tables-2): ditto
24243	* genclisph.d (LISPFUN_B): emit subr prototype
24244
242452005-06-08  Jörg Höhle  <hoehle@users.sourceforge.net>
24246
24247	* modules/bindings/glibc/linux.lisp (errno): Remove dependency on
24248	__errno_location().
24249
242502005-06-07  Bruno Haible  <bruno@clisp.org>
24251
24252	* genclisph.d (print_printf_arg, printf_with_args, print_file)
24253	(emit_typedef_test, emit_typedef, emit_typedef_f): Declare as local.
24254
242552005-06-07  Bruno Haible  <bruno@clisp.org>
24256
24257	* Makefile.devel (EXCLUDE): Exclude also the 'queued' directory.
24258
242592005-06-07  Bruno Haible  <bruno@clisp.org>
24260
24261	* win32.d [MINGW]: Include <io.h> before redefining lseek, isatty.
24262
242632005-06-06  Bruno Haible  <bruno@clisp.org>
24264
24265	* modules/berkeley-db/bdb.c (fill_dbt): Call I_to_LEbytes
24266	differently, avoiding a prior memset().
24267
242682005-06-06  Bruno Haible  <bruno@clisp.org>
24269
24270	* makemake.in: Ignore --with-module=... options for modules that are
24271	already contained in BASE_MODULES.
24272	Reported by <bsd1628@bwphotog.net>.
24273
242742005-06-04  Bruno Haible  <bruno@clisp.org>
24275
24276	* modules/syscalls/calls.c: Assume stdlib.h exists.
24277	(POSIX::STREAM-LOCK): Use a 64-bit variable for the length on
24278	systems with 64-bit off_t and on Woe32. Fix wrong assigment from
24279	GetLastError() to 'bool'.
24280
242812005-06-04  Bruno Haible  <bruno@clisp.org>
24282
24283	* modules/regexp/regex.c: Undo 2005-03-18 patch.
24284	* modules/regexp/alloca_.h: New file, from gnulib.
24285	* modules/regexp/alloca.c: New file, from gnulib.
24286	* m4/alloca.m4: New file, from gnulib.
24287	* m4/restrict.m4: New file, from gnulib.
24288	* modules/regexp/configure.in: Invoke 'restrict' and 'alloca'
24289	requisites. Set ALLOCA to empty if we do not need it.
24290	* modules/regexp/Makefile.in (ALLOCA_H): New variable.
24291	(DISTRIBFILES): Add alloca.o if needed.
24292	(all): Depend on alloca.o if needed.
24293	(regex.o): Depend on $(ALLOCA_H).
24294	(alloca.o, alloca.h): New rules.
24295	(clean): Also remove alloca.h.
24296	* modules/regexp/link.sh.in (NEW_FILES, NEW_LIBS): Add alloca.o if
24297	needed.
24298
242992005-06-04  Bruno Haible  <bruno@clisp.org>
24300
24301	* modules/rawsock/rawsock.c (RAWSOCK:HTONL): Make it work also if the
24302	system doesn't have the htonl() function.
24303	(RAWSOCK:NTOHL): Likewise for ntohl().
24304	(RAWSOCK:HTONS): Likewise for htons().
24305	(RAWSOCK:NTOHS): Likewise for ntohs().
24306
243072005-06-04  Bruno Haible  <bruno@clisp.org>
24308
24309	Emulate Unix APIs on Woe32, not vice versa.
24310	* lispbibl.d (handle_dup): Remove declaration.
24311	(INVALID_HANDLE_VALUE, HNULLP): Remove macro.
24312	(handle_dup1): Remove macro.
24313	(handle_dup): New declaration, replaces handle_dup1.
24314	(handle_dup2): New declaration, replaces a case of handle_dup.
24315	* unix.d (Handle): Change to 'int'.
24316	(INVALID_HANDLE): New macro.
24317	* win32.d (INVALID_HANDLE): New macro.
24318	* pathname.d (handle_dup, handle_dup2): Replace old function
24319	handle_dup.
24320	(nullfile): Remove unused initializer.
24321	(mkpipe, init_launch_streamarg, make_launch_pipe, LAUNCH): Update.
24322	(LAUNCH) [UNIX]: Call dup2, not handle_dup2, since handle_dup2 does
24323	unwanted error handling.
24324	* stream.d (handle_to_stream): Update.
24325	* modules/syscalls/calls.c (POSIX::DUPLICATE-HANDLE): Update.
24326
243272005-06-04  Bruno Haible  <bruno@clisp.org>
24328
24329	Compile with gcc -Wmissing-declarations.
24330	* makemake.in (XCFLAGS): Add -Wmissing-declarations.
24331	* lispbibl.d: Include pseudofun.c with PSEUDO_C.
24332	(fehler_unencodable, mkops_from_handles, mkips_from_handles)
24333	(hashcode_lfloat, sigsegv_handler_failed, ext_show_stack): New
24334	declarations.
24335	* io.d (print): Make local.
24336	* pathname.d (fehler_pathname_designator): Make local.
24337	(mkops_from_handles, mkips_from_handles): Remove declarations.
24338	* stream.d (lisp_completion): Make local.
24339	Move pseudofun.c include with PSEUDO_C to lispbibl.d.
24340	* foreign.d (convert_to_foreign_allocaing): Make local.
24341
243422005-06-04  Bruno Haible  <bruno@clisp.org>
24343
24344	Remove warnings emitted by gcc -Wstrict-prototypes.
24345	* unix.d (errno): Do not declare. Assume <errno.h> does it.
24346	* spvw.d (print_banner): Define with void argument list.
24347	* stream.d (get_col): Likewise.
24348	* pathname.d (fix_parse_namestring_dot_file, nullfile)
24349	(interpret_launch_priority): Likewise.
24350	* hashtabl.d (get_eq_hashfunction, get_eql_hashfunction)
24351	(get_equal_hashfunction): Likewise.
24352	* debug.d (ext_show_stack): Likewise.
24353	* realtran.d (sin_stack, cos_stack): Likewise.
24354
243552005-06-04  Bruno Haible  <bruno@clisp.org>
24356
24357	* lispbibl.d (Encoding, Encoding_wcslen, Encoding_wcstombs, cslen)
24358	(cstombs, TheEncoding, TheMachineCode, ThePseudofun, Pseudofun):
24359	Emit to clisp.h.
24360	(with_string_0, with_sstring_0): Use cslen instead of cslen_f,
24361	cstombs instead of cstombs_f.
24362	* encoding.d (cslen_f, cslen_ff, cstombs_f, cstombs_ff): Remove
24363	functions.
24364	* genclisph.d (main): Do not emit cslen_f, cslen_ff, cstombs_f,
24365	cstombs_ff.
24366	* modules/syscalls/calls.c (LispToPropVariant, PropSpecSetStr)
24367	(with_string_0w): Use cslen instead of cslen_f, cstombs instead of
24368	cstombs_f.
24369	* modules/clx/new-clx/clx.f (to_XChar2b): Use cstombs instead of
24370	cstombs_f.
24371
243722005-06-06  Sam Steingold  <sds@gnu.org>
24373
24374	* socket.d (MACHINE-INSTANCE, socket_getlocalname_aux)
24375	(socket_getpeername): avoid a GCC warning "value computed is not used"
24376
243772005-06-06  Sam Steingold  <sds@gnu.org>
24378
24379	* modules/bindings/win32/win32.lisp: use full paths for :LIBRARY
24380	arguments (needed on cygwin)
24381
243822005-06-06  Bruno Haible  <bruno@clisp.org>
24383
24384	* spvw_language.d (init_language): When argv_localedir is NULL, do not
24385	use any message catalogs, not even those in the default location
24386	/usr/share/locale.
24387
243882005-06-06  Bruno Haible  <bruno@clisp.org>
24389
24390	* clispload.lsp (*expected-failures*): Add DECLARATION.[4-11].
24391
243922005-06-06  Sam Steingold  <sds@gnu.org>
24393
24394	* compelem.d (N_imagpart): use the normal Rational/Float contagion
24395	rules for reals
24396	* clispload.lsp (*expected-failures*): remove MISC.598
24397
243982005-06-06  Bruno Haible  <bruno@clisp.org>
24399
24400	* win32.d (_UWIN): Remove macro.
24401	(lseek, isatty) [MINGW]: Define to clisp-private names.
24402
244032005-06-04  Bruno Haible  <bruno@clisp.org>
24404
24405	* lispbibl.d: Include the C code for generating clisp.h, with %%.
24406	* genclisph.d (main): Remove most statements. Include gen.lispbibl.c.
24407	Emit convert_time_to_universal_w32, convert_time_from_universal_w32 as
24408	inline functions.
24409	* makemake.in (CFILES): Add gen.lispbibl.
24410	(lispbibl.c): Blank out the %% lines.
24411	(gen.lispbibl.c): New rule.
24412	(genclisph.[oi]): Depend on gen.lispbibl.c.
24413
244142005-06-04  Bruno Haible  <bruno@clisp.org>
24415
24416	* unix.d (time_t_from_filetime, time_t_to_filetime) [UNIX_CYGWIN32]:
24417	New declarations.
24418
244192005-06-04  Bruno Haible  <bruno@clisp.org>
24420
24421	* lispbibl.d (convert_time_from_universal): New declaration.
24422
244232005-06-04  Bruno Haible  <bruno@clisp.org>
24424
24425	* lispbibl.d (my_realloc): New declaration.
24426
244272005-06-04  Bruno Haible  <bruno@clisp.org>
24428
24429	* lispbibl.d (stream_handles): New declaration.
24430
244312005-06-04  Bruno Haible  <bruno@clisp.org>
24432
24433	* lispbibl.d (open_file_stream_handle, file_stream_truename): New
24434	declarations.
24435
244362005-06-04  Bruno Haible  <bruno@clisp.org>
24437
24438	* lispbibl.d (addr_to_string, nonintr_connect, string_to_addr)
24439	(resolve_host, connect_to_x_server, socket_getlocalname)
24440	(socket_getpeername, create_server_socket, accept_connection)
24441	(create_client_socket): New declarations.
24442	* socket.d: Improve documentation.
24443	(create_server_socket, create_client_socket): Remove redundant
24444	declarations.
24445
244462005-06-04  Bruno Haible  <bruno@clisp.org>
24447
24448	* lispbibl.d (check_classname): New declaration.
24449	* error.d (check_classname): Fix documentation.
24450
244512005-06-04  Bruno Haible  <bruno@clisp.org>
24452
24453	* lispbibl.d (to_double, to_int): New declarations.
24454	* lisparit.d (to_double, to_int): Fix missing documentation.
24455	(to_double): Simplify.
24456
244572005-06-04  Bruno Haible  <bruno@clisp.org>
24458
24459	* lispbibl.d (physical_namestring): New declaration.
24460	* pathname.d (physical_namestring): Improve documentation.
24461
244622005-06-04  Bruno Haible  <bruno@clisp.org>
24463
24464	* pathname.d (MAKE-PATHNAME): Remove useless code introduced on
24465	2005-05-16.
24466
244672005-06-04  Bruno Haible  <bruno@clisp.org>
24468
24469	* lispbibl.d (if_does_not_exist_symbol, if_exists_symbol): New
24470	declarations.
24471
244722005-06-05  Sam Steingold  <sds@gnu.org>
24473
24474	* clispload.lsp (*expected-failures*): add MISC.598 (assumes
24475	that complex numbers have the same Re & Im types)
24476
244772005-06-03  Bruno Haible  <bruno@clisp.org>
24478
24479	* spvw.d (main_actions): Do not increase argv_verbose.
24480	Reported by David Tolpin <dvd@davidashen.net>.
24481
244822005-06-03  Bruno Haible  <bruno@clisp.org>
24483
24484	* utils/fix-perms.sh: New file.
24485	* Makefile.devel (fixperms): New target.
24486	(all, distrib): Depend on it.
24487
244882005-06-02  Bruno Haible  <bruno@clisp.org>
24489
24490	* win32.d: Include <errno.h>.
24491
244922005-06-01  Bruno Haible  <bruno@clisp.org>
24493
24494	* spvw_language.d (init_language): Fix syntax error in last patch.
24495
244962005-06-01  Bruno Haible  <bruno@clisp.org>
24497
24498	* m4/poll.m4 (CL_POLL): Check against MacOS X 10.4.0 poll() bug.
24499
245002005-05-30  Bruno Haible  <bruno@clisp.org>
24501
24502	* hashtabl.d (SXHASH): Fix compilation error on platforms where
24503	24 < oint_data_len < 32, introduced on 2005-05-24.
24504
245052005-05-30  Bruno Haible  <bruno@clisp.org>
24506
24507	Restore portability to Windows 95/98/ME/NT/2000.
24508	* win32.d (lseek): Declare as a function.
24509	* win32aux.d (lseek): New function.
24510	* spvw_memfile.d (loadmem_from_handle): Undo 2005-05-12 patch. Use the
24511	extended form of GetFileSize() instead.
24512	* stream.d (handle_lseek) [WIN32_NATIVE]: Use lseek.
24513
245142005-05-30  Bruno Haible  <bruno@clisp.org>
24515
24516	* win32aux.d (lowlevel_fd_read, fd_write): Remove useless assignment.
24517
245182005-05-29  Bruno Haible  <bruno@clisp.org>
24519
24520	Store the documentation string of interpreted functions in the
24521	function object. Make DOCUMENTATION work for traced functions.
24522	* init.lisp (sys::%set-documentation): Undo last patch.
24523	(defun): Add the doc string back to the function's lambdabody.
24524	* functions.lisp (unwrapped-fdefinition): New function.
24525	* documentation.lisp (documentation): Undo last patch. Use
24526	unwrapped-fdefinition instead of fdefinition. Look for the docstring
24527	of a function first in the function object.
24528	((setf documentation)): Use unwrapped-fdefinition instead of
24529	fdefinition. Store the docstring also in the function object.
24530
245312005-05-29  Bruno Haible  <bruno@clisp.org>
24532
24533	* compiler.lisp (*compile-file-resolved-pathname*): New variable.
24534	(compile-file): Bind it.
24535
245362005-05-29  Bruno Haible  <bruno@clisp.org>
24537
24538	* compiler.lisp (c-OR): Rearrange 2005-05-20 patch for better
24539	maintainability.
24540
245412005-05-29  Bruno Haible  <bruno@clisp.org>
24542
24543	Fix a bug of DEBUG_GCSAFETY with modules.
24544	* genclisph.d (main): In nonimmprobe, do not optimize away inside_gc.
24545	Needed because gcv_object_t::gcv_object_t uses nonimmprobe, and all
24546	definitions of gcv_object_t::gcv_object_t must be equivalent, because
24547	the linker picks one of them at random.
24548
245492005-05-29  Bruno Haible  <bruno@clisp.org>
24550
24551	Fix omission in 2004-06-20 patch.
24552	* spvw_garcol.d (gc_sweep1_instance_forward)
24553	(gc_sweep1_instance_target) [TYPECODES]: Make it work for
24554	closure_type as well.
24555
245562005-05-29  Bruno Haible  <bruno@clisp.org>
24557
24558	Optimize the caching of the expansion of FUNCTION-MACRO-LET
24559	macroexpanders.
24560	* defmacro.lisp (make-macro-expansion): Return an additional second
24561	value, the expansion's lambdabody.
24562	(make-funmacro-full-lambdabody, make-funmacro-expander): New functions.
24563	* clos-methcomb2.lisp (add-next-method-local-functions): Insert the
24564	macroexpander's full lambdabody instead of the unprocessed lambdabody.
24565	* control.d (SYSTEM::FUNCTION-MACRO-LET): Call make-funmacro-expander
24566	instead of make-macro-expander.
24567	* compiler.lisp (c-FUNCTION-MACRO-LET): Likewise.
24568	* init.lisp (%expand-funmacdefs-2): Expand the macroexpander in the
24569	null lexical environment.
24570	(defmacro): Update.
24571	* macros1.lisp (defmacro-special): Update.
24572	* cmacros.lisp (define-compiler-macro): Update.
24573
245742005-05-29  Bruno Haible  <bruno@clisp.org>
24575
24576	Speedup creation of interpreted.mem and halfcompiled.mem.
24577	* init.lisp (%expand-lexical-variables, %expand-special-declarations):
24578	Declare inner lambdas as being already expanded.
24579
245802005-05-29  Bruno Haible  <bruno@clisp.org>
24581
24582	* pathname.d (PARSE-NAMESTRING): Fix three GC-safety bugs introduced on
24583	2005-05-06.
24584
245852005-05-14  Bruno Haible  <bruno@clisp.org>
24586
24587	* makemake.in (ansi-tests): Undo 2005-05-05 patch.
24588
245892005-05-28  Bruno Haible  <bruno@clisp.org>
24590
24591	Fix unmaintainable hack introduced on 2005-05-16.
24592	* defmacro.lisp (make-macro-expansion): Add valid-name-p argument.
24593	* cmacros.lisp (define-compiler-macro): Pass valid-name-p argument.
24594	(strip-funcall-form): Mark as ABI.
24595
245962005-05-28  Bruno Haible  <bruno@clisp.org>
24597
24598	Supplement to 2005-05-23 patch.
24599	* makemake.in (clisp): Remove COMPILE_STANDALONE from the compilation
24600	flags.
24601
246022005-05-28  Bruno Haible  <bruno@clisp.org>
24603
24604	* .gdbinit: Add comments reflecting 2005-05-17 change.
24605
246062005-05-28  Bruno Haible  <bruno@clisp.org>
24607
24608	* makemake.in (XCFLAGS): Do not force HEAPCODES when DEBUG_GCSAFETY is
24609	used.
24610
246112005-05-28  Bruno Haible  <bruno@clisp.org>
24612
24613	Fix a bug introduced on 2002-02-22.
24614	* spvw_language.d (init_language): Do not set O(current_language).
24615	Fixes a crash in TYPECODES && MAP_MEMORY && DEBUG_GCSAFETY builds.
24616	It is forbidden to work with 'object's before init_memory().
24617
246182005-05-28  Bruno Haible  <bruno@clisp.org>
24619
24620	Make DEBUG_GCSAFETY work with TYPECODES.
24621	* lispbibl.d (pointable, type_pointable, types_pointable): Move up.
24622	(pointable_unchecked): Rename from pointable. Use
24623	pointable_address_unchecked.
24624	(pointable_address_unchecked): New macro.
24625	(pointable): Rename from gcsafety_pointable.
24626	(nonimmprobe): Use pointable_address_unchecked.
24627	(hfintsize, hfint): Use a full word if DEBUG_GCSAFETY. When using a
24628	full word, use an uintP, not an uintL.
24629	(VAROBJECT_HEADER) [TYPECODES]: If DEBUG_GCSAFETY, do not wrap _GCself
24630	in a union.
24631	(GCself, header_flags) [TYPECODES]: Define differently if
24632	DEBUG_GCSAFETY.
24633	(cgci_pointable, pgci_pointable, ngci_pointable): Define also if
24634	TYPECODES.
24635	(cgci_types_pointable, pgci_types_pointable, ngci_types_pointable): New
24636	macros.
24637	(TheCons, TheRatio, TheComplex, TheSymbol, TheSymbolflagged, TheBignum)
24638	(TheFfloat, TheDfloat, TheLfloat, TheSarray, TheSbvector, TheCodevec)
24639	(TheS8string, TheS16string, TheS32string, TheSnstring, TheSistring)
24640	(TheSstring, TheSvector, TheIarray, TheRecord, TheLrecord, TheSrecord)
24641	(TheXrecord, ThePackage, TheHashtable, TheReadtable, ThePathname)
24642	(TheLogpathname, The_Random_state, TheByte, TheFsubr, TheLoadtimeeval)
24643	(TheSymbolmacro, TheGlobalSymbolmacro, TheMacro, TheFunctionMacro)
24644	(TheBigReadLabel, TheEncoding, TheFpointer, TheFaddress, TheFvariable)
24645	(TheFfunction, TheWeakpointer, TheMutableWeakList, TheWeakList)
24646	(TheWeakAnd, TheWeakOr, TheWeakmapping, TheWeakAndMapping)
24647	(TheWeakOrMapping, TheMutableWeakAlist, TheWeakAlist)
24648	(TheWeakHashedAlist, TheFinalizer, TheSocketServer, TheYetanother)
24649	(TheStream, TheStructure, TheClosure, TheIclosure, TheCclosure)
24650	(TheInstance, TheVarobject): Define using ngci_types_pointable.
24651	(TheSubr, TheFramepointer, TheMachine): Define using
24652	cgci_types_pointable.
24653	(ThePointer): Define using pgci_types_pointable.
24654	* subr.d (LISPFUN_F, LISPFUN_G) [TYPECODES]: Provide different
24655	definition if DEBUG_GCSAFETY.
24656	* constsym.d (LISPSYM_B) [TYPECODES]: Provide different definition
24657	if DEBUG_GCSAFETY.
24658	* genclisph.d (main): Update. Provide definitions for
24659	pointable_unchecked, pointable_address_unchecked, symbol_tab.
24660
246612005-05-28  Bruno Haible  <bruno@clisp.org>
24662
24663	Fix compilation with g++ 3.3/3.4 if TYPECODES && OBJECT_STRUCT
24664	&& !DEBUG_GCSAFETY.
24665	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB):
24666	Do not define if OBJECT_STRUCT and g++ 3.3/3.4.
24667
246682005-05-28  Bruno Haible  <bruno@clisp.org>
24669
24670	* intserial.d (LEbytes_to_UI, LEbytes_to_I) [TYPECODES]: Fix
24671	compilation error in C++ mode with g++ 3.3 and 3.4.
24672
246732005-05-28  Bruno Haible  <bruno@clisp.org>
24674
24675	* hashtabl.d (MAKE-HASH-TABLE) [TYPECODES]: Fix a compilation error
24676	in C++ mode.
24677
246782005-05-28  Bruno Haible  <bruno@clisp.org>
24679
24680	Make it possible to use iconv() on platforms other than Unix. Fixes
24681	2005-03-01 patch.
24682	* lispbibl.d (ANSIC_error): New declaration.
24683	* errunix.d [!UNIX]: Define only OS_error.
24684	* error.d [!UNIX]: Include errunix.c, to define ANSIC_error.
24685	* stream.d (open_iconv, check_charset, iconv_mblen, iconv_mbstowcs)
24686	(iconv_wcslen, iconv_wcstombs, iconv_range, ChannelStream_fini):
24687	Undo 2005-03-01 patch. Call ANSIC_error instead of OS_error.
24688	* makemake.in (ERROR_INCLUDES): Add errunix unconditionally.
24689
24690	* win32.d: Undefine HAVE_ICONV, in case it's set by unixconf.h (on
24691	mingw).
24692
246932005-05-27  Sam Steingold  <sds@gnu.org>
24694
24695	* spvw_language.d (init_language) [WIN32_NATIVE]: avoid a mingw
24696	crash by setting argv_localedir to "" when it is NULL
24697
246982005-05-26  Sam Steingold  <sds@gnu.org>
24699
24700	* _clisp.c [WIN32_NATIVE]: include <windows.h>
24701
247022005-05-26  Sam Steingold  <sds@gnu.org>
24703
24704	* modules/syscalls/calls.c (MKDTEMP): new function
24705	* modules/syscalls/posix.lisp (MKDTEMP): export
24706	* modules/syscalls/configure.in (mkdtemp): check
24707
247082005-05-25  Sam Steingold  <sds@gnu.org>
24709
24710	* compiler.lisp (c-OR): fix last patch
24711
247122005-05-25  Sam Steingold  <sds@gnu.org>
24713
24714	* defseq.lisp (LIST): use LIST-LENGTH-PROPER instead of LIST-LLENGTH
24715	* list.d, constsym.d, subr.d (list_llength): remove
24716
247172005-05-25  Sam Steingold  <sds@gnu.org>
24718
24719	* control.d (PROCLAIM): forbid dotted declaration-specifier lists
24720
247212005-05-25  Sam Steingold  <sds@gnu.org>
24722
24723	* documentation.lisp (documentation): return NIL for NIL
24724	because NIL = (FUNCTION-NAME (COMPILE NIL (LAMBDA () ...)))
24725	* init.lisp (%set-documentation): ditto
24726
247272005-05-24  Sam Steingold  <sds@gnu.org>
24728
24729	* hashtabl.d (SXHASH): when fixnums are large enough, do not fold
24730	the value to fit into 24 bits: consider (SXHASH (1- (ASH 1 32))):
24731	On 32-bit platforms, hashcode_bignum() is used (returns 3 ==> 3).
24732	On 64-bit platforms, hashcode_fixnum() is used (4294967175 ==> 135).
24733	Therefore, limiting ourselves to 24 bits on all platforms
24734	does not buy us anything anyway.
24735
247362005-05-24  Sam Steingold  <sds@gnu.org>
24737
24738	pcre 3 lacks pcre_config()
24739	* modules/pcre/configure.in: check for pcre_config()
24740	* modules/pcre/cpcre.c (pcre-config) [HAVE_PCRE_CONFIG]: add condition
24741
247422005-05-24  Bruno Haible  <bruno@clisp.org>
24743
24744	* spvw_sigsegv.d (stackoverflow_handler): Treat WIN32_NATIVE like
24745	UNIX_CYGWIN.
24746	Based on a patch by Doug Currie <e@flavors.com>.
24747
247482005-05-23  Sam Steingold  <sds@gnu.org>
24749
24750	* makemake.in (distrib) [!BINARY_DISTRIB]: do not expect gnu tr
24751	* _clisp.c: do not include lispbibl.c because it is not included
24752	with a binary distribution; include execname.c textually
24753	* execname.c (maybe_executable): do not use boolean constants
24754	(find_executable): use "unsigned long" instead of "uintL"
24755
247562005-05-22  Bruno Haible  <bruno@clisp.org>
24757
24758	* stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs.
24759	(INT64_MIN): Fix definition.
24760	Suggested by Paul Eggert <eggert@cs.ucla.edu>.
24761
24762	* stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Rename from
24763	NEED_SIGNED_INT_TYPES.
24764
24765	* stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Rename from
24766	HAVE_SYSTEM_INTTYPES.
24767
247682005-05-22  Bruno Haible  <bruno@clisp.org>
24769
24770	* m4/ffcall-smallstruct.m4 (CL_SMALL_STRUCT_RETURN): Use 'long'
24771	instead of 'int'. Needed because on sparc64, 'int' has 32 bits,
24772	a function returning a 'struct { int x; }' returns the result in the
24773	32 _high_ bits of %o0, whereas a function returning 'int' returns the
24774	result in the 32 _low_ bits of %o0 (sign-extended to 64 bits).
24775	Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.
24776
247772005-05-22  Sam Steingold  <sds@gnu.org>
24778
24779	* modules/clx/new-clx/clx.f (make_display): when fixnum size is less
24780	than 29, use STABLEHASH-EQUAL hash table, otherwize STABLEHASH-EQ
24781	(xlib_a_cons): not needed when fixnum can hold XID
24782	(XID_to_object_old, XID_to_object_new): define differently depending on
24783	whether fixnum can hold XID or not
24784	(lookup_xid, delete_resource_id): use XID_to_object_old
24785	(set_resource_id): use XID_to_object_new
24786
247872005-05-20  Sam Steingold  <sds@gnu.org>
24788
24789	* spvw.d (init_symbol_values): UNIX_CYGWIN -> UNIX_CYGWIN32
24790
247912005-05-20  Sam Steingold  <sds@gnu.org>
24792
24793	* modules/rawsock/sock.lisp (SOCKET-OPTION): simplified DEFSETF
24794	* modules/syscalls/calls.c (SET-PRIORITY): made value the first
24795	argument, it is easier to return it this way
24796	* modules/syscalls/posix.lisp (PRIORITY): update DEFSETF
24797
247982005-05-20  Bruno Haible  <bruno@clisp.org>
24799
24800	* spvw.d (print_license): Update FSF postal address.
24801
248022005-05-20  Sam Steingold  <sds@gnu.org>
24803
24804	* compiler.lisp (compile-file): as per the ANSI CL spec,
24805	bind *COMPILE-FILE-PATHNAME* to (merge-pathnames file)
24806
248072005-05-20  Sam Steingold  <sds@gnu.org>
24808
24809	* makemake.in: remove duplicated link options only needed for early
24810	versions of Solaris
24811
248122005-05-20  Sam Steingold  <sds@gnu.org>
24813
24814	* compiler.lisp (c-OR): (or ... (foo) nil) ==> (or ... (values (foo)))
24815	this permits a better optimization of (COND ((...))),
24816	i.e., when a clause consists of just the test form.
24817	This adds 71 bytes to compiler.fas (0.01%) and removes 91 bytes
24818	total from all the other files, for a net change of 20 bytes (0.0005%)
24819
248202005-05-20  Sam Steingold  <sds@gnu.org>
24821
24822	* modules/rawsock/rawsock.c (SHUT_RD, SHUT_WR, SHUT_RDWR)
24823	[WIN32_NATIVE]: defined
24824	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
24825
248262005-05-19  Sam Steingold  <sds@gnu.org>
24827
24828	* stream.d (stream_handles): made global for modules;
24829	respect check_open for streams
24830	* genclisph.d (SOCKET) [UNIX]: emit typedef
24831	[WIN32_NATIVE]: include winsock2.h for SOCKET
24832	(stream_handles): export
24833	* modules/rawsock/rawsock.c (RAWSOCK:SOCKET-OPTION)
24834	(RAWSOCK::SET-SOCKET-OPTION): use stream_handles()
24835
248362005-05-19  Sam Steingold  <sds@gnu.org>
24837
24838	* modules/rawsock/rawsock.c (RAWSOCK:SOCKET-OPTION)
24839	(RAWSOCK::SET-SOCKET-OPTION): new functions
24840	* modules/rawsock/sock.lisp (RAWSOCK:SOCKET-OPTION): new defsetf
24841
248422005-05-19  Sam Steingold  <sds@gnu.org>
24843
24844	* modules/rawsock/sock.lisp (open-unix-socket): add the package
24845	prefix for EXT:ABSOLUTE-PATHNAME
24846	(open-unix-socket-stream): ditto for EXT:FINALIZE
24847
248482005-05-18  Sam Steingold  <sds@gnu.org>
24849
24850	* utils/modprep.lisp (split-option): remove an absurd check
24851	(split-command): do not call SPLIT-OPTION on all ARGS
24852	(def-something-p): call SPLIT-OPTION just on the options
24853	(split-command, extract-argument-string, check-signature, new-checker):
24854	standardized error message
24855
248562005-05-18  Sam Steingold  <sds@gnu.org>
24857
24858	* genclisph.d (sec_usec): export
24859
248602005-05-18  Sam Steingold  <sds@gnu.org>
24861
24862	* m4/tcpconn.m4 (CL_TCPCONN): check for getsockopt() here
24863	* configure.in: do not check for getsockopt() here
24864	* modules/rawsock/configure.in: use CL_TCPCONN
24865
248662005-05-17  Sam Steingold  <sds@gnu.org>
24867
24868	* .gdbinit (ansi_tests_compiled): new command
24869	(SIGSEGV, SIGBUS): do not handle (commented out): gdb 6+ does not
24870	stop .gdbinit processing after a failed command, so SIGSEGV
24871	remained handled even on platforms without GENERATIONAL_GC
24872
248732005-05-16  Sam Steingold  <sds@gnu.org>
24874
24875	* init.lisp (open-for-load): return FILENAME as is only if it is
24876	an open input stream, symmetric to COMPILE-FILE-PATHNAME-HELPER
24877
248782005-05-16  Sam Steingold  <sds@gnu.org>
24879
24880	* pathname.d (MAKE-PATHNAME): accept :DEVICE :UNSPECIFIC to mean
24881	NIL because of COMPILE-FILE-PATHNAME with logical :OUTPUT-FILE
24882
248832005-05-16  Sam Steingold  <sds@gnu.org>
24884
24885	* defmacro.lisp (make-macro-expansion): when PRE-PROCESS is supplied,
24886	this is a DEFINE-COMPILER-MACRO call, so name could be a (SETF symbol)
24887
248882005-05-16  Sam Steingold  <sds@gnu.org>
24889
24890	* documentation.lisp (documentation): return NIL for KEYWORDs
24891	because :LAMBDA = (FUNCTION-NAME (LAMBDA () ...)) for all LAMBDAs
24892	* init.lisp (%set-documentation): ditto
24893
248942005-05-16  Sam Steingold  <sds@gnu.org>
24895
24896	* pathname.d (ENOUGH-NAMESTRING): check consp() before taking Car()
24897
248982005-05-16  Sam Steingold  <sds@gnu.org>
24899
24900	* compiler.lisp (compile-file): return the FAS file truename as per ANSI
24901
249022005-05-14  Sam Steingold  <sds@gnu.org>
24903
24904	* modules/berkeley-db/Makefile.in (bdb.o): depend on clisp.h
24905	* modules/clx/new-clx/Makefile.in (clx.o): ditto
24906	* modules/dirkey/Makefile.in (dirkey.o): ditto
24907	* modules/i18n/Makefile.in (gettext.o): ditto
24908	* modules/queens/Makefile.in (callqueens.o): ditto
24909	* modules/rawsock/Makefile.in (rawsock.o): ditto
24910	* modules/regexp/Makefile.in (regexi.o): ditto
24911	* modules/syscalls/Makefile.in (calls.o): ditto
24912	* modules/postgresql/Makefile.in (.o): ditto
24913	* modules/bindings/glibc/Makefile.in (linux.o): ditto
24914	* modules/bindings/win32/Makefile.in (win32.o): ditto
24915	* modules/matlab/Makefile.in (matlab.o): ditto
24916	* modules/netica/Makefile.in (netica.o): ditto
24917	* modules/pari/Makefile.in (pari.o): ditto
24918	* modules/wildcard/Makefile.in (wildcard.o): ditto
24919	* modules/zlib/Makefile.in (zlib.o): ditto
24920	* modules/regexp/regexi.c: include "clisp.h", not <clisp.h>
24921
249222005-05-14  Sam Steingold  <sds@gnu.org>
24923
24924	when lndir copies or hard links, "cvs up" required "rm -rf module-dir"
24925	* makemake.in (anymodule): always call lndir, even when
24926	destination exists
24927	* lndir: when destination exists, update it
24928
249292005-05-13  Bruno Haible  <bruno@clisp.org>
24930
24931	* makemake.in (clisp): Set COMPILE_STANDALONE. Fixes link error
24932	introduced on 2005-03-10.
24933
249342005-05-13  Bruno Haible  <bruno@clisp.org>
24935
24936	* genclisph.d (main): Make VAROBJECT_HEADER definition consistent with
24937	lispbibl.d. Undo LISPFUN_F modification from 2005-03-29.
24938
249392005-05-13  Bruno Haible  <bruno@clisp.org>
24940
24941	* spvw.d (main) [UNIX_DARWIN && TYPECODES && TRIVIALMAP_MEMORY]:
24942	Provide a good location of heaps.
24943
249442005-05-13  Bruno Haible  <bruno@clisp.org>
24945
24946	Make it possible to use 64-bit integer types with MSVC.
24947	* stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t)
24948	(int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX)
24949	(UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX)
24950	(INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN)
24951	(INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C):
24952	Add support for 64-bit integers in the MSVC compiler.
24953	* lispbibl.d (LL, ULL): New macros.
24954	(oint_type_mask, oint_addr_mask) [WIDE_SOFT]: Use ULL macro.
24955	(vbit, vbitm, minus_vbit, wbit, wbitm, minus_wbit): Use ULL macro.
24956	* genclisph.d (main): Emit definitions for LL, ULL. Update vbit,
24957	vbitm, minus_vbit, wbit, wbitm, minus_wbit.
24958	* unixaux.d (FACTOR, NSPERSEC): Use LL macro.
24959	* arilev0.d (divu_6464_6464): Use cast instead of ULL.
24960	* aridecl.d (wbitc): Define also if MICROSOFT. Use ULL macro.
24961	* intlog.d (logcount_64): Use ULL macro.
24962	* intmal.d (FN_fak_I): Use ULL macro.
24963
249642005-05-11  Bruno Haible  <bruno@clisp.org>
24965
24966	Support for 48-bit wide fixnums.
24967	* lispbibl.d (WIDE_SOFT): Set if WIDE_SOFT_LARGEFIXNUM is set.
24968	(dotimesV, dotimespV): New macros.
24969	(WIDE_STRUCT): Do not define if WIDE_SOFT_LARGEFIXNUM.
24970	(oint_data_len): Increase from 32 to 40 or 48 where possible.
24971	(oint_data_mask): Update accordingly.
24972	(oint_type_len, oint_addr_len) [WIDE_SOFT]: Define differently if
24973	WIDE_SOFT_LARGEFIXNUM is set.
24974	(intVsize): New macro.
24975	(uintV, sintV): New types.
24976	(GENERATIONAL_GC): Do not define if WIDE_SOFT_LARGEFIXNUM is set.
24977	(vbit, vbitm, vbit_test, minus_vbit): New macros.
24978	(Fixnum_minus1): Use vbit* macros.
24979	(posfixnum_to_V): Rename from posfixnum_to_L. Return an uintV value.
24980	(negfixnum_to_V): Rename from negfixnum_to_L. Return an uintV value.
24981	(negfixnum_abs_V): Rename from negfixnum_abs_L. Return an uintV value.
24982	(fixnum_to_V): Rename from fixnum_to_L. Return a sintV value.
24983	(fixnum_to_Q): Cast to sintQ.
24984	(make_small_read_label, small_read_label_integer_p)
24985	(small_read_label_value): Use uintV type and vbit* macros.
24986	(make_system): Likewise.
24987	(TheHandle): Use posfixnum_to_V instead of posfixnum_to_L.
24988	(arraysize_limit_1): Define as 2^32-1 if oint_data_len > 32.
24989	(array_displace_check): Change second argument type to uintV.
24990	(map_hashtable, map_hashtable_nogc): Use posfixnum_to_V instead of
24991	posfixnum_to_L.
24992	(fehler_stringsize): Change argument type to uintV.
24993	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
24994	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64): New
24995	declarations.
24996	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong): New macros.
24997	(L2_to_I, UL2_to_I): Define as macros if intVsize>32.
24998	(Q_to_I, UQ_to_I): Declare also if intVsize>32.
24999	(V_to_I, UV_to_I): New macros.
25000	(uint64_to_I, sint64_to_I): Define also if intVsize>32.
25001	(I_to_uint, I_to_sint): Define always.
25002	* genclisph.d (main): Emit definitions of uintV, sintV. Update for
25003	Fixnum_minus1. Emit posfixnum_to_V, negfixnum_to_V, fixnum_to_V
25004	instead of posfixnum_to_L, negfixnum_to_L, fixnum_to_L. Update for
25005	make_system, array_displace_check. Emit declarations for
25006	fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16,
25007	fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64,
25008	fehler_uint, fehler_sint, fehler_ulong, fehler_slong, L2_to_I, UL2_to_I,
25009	Q_to_I, UQ_to_I. Emit definitions for V_to_I, UV_to_I. Update for
25010	uint64_to_I, sint64_to_I.
25011	Emit check_uint_defaulted instead of posfixnum_default2.
25012	Emit check_uint_default0 instead of posfixnum_default.
25013	* error.d (begin_error): Use posfixnum_to_V instead of posfixnum_to_L.
25014	(fehler_stringsize): Change argument type to uintV.
25015	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
25016	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64): New
25017	functions.
25018	* arilev0.d (high32, low32, highlow64, highlow64_0): New macros.
25019	(mulu32_64): New macro.
25020	(divu_6432_6432, divu_6464_6464): New macros.
25021	* intelem.d (get_maxV_Dptr): New macro.
25022	(FN_to_V): Rename from FN_to_L.
25023	(FN_V_zerop): Rename from FN_L_zerop.
25024	(FN_V_minusp): Rename from FN_L_minusp.
25025	(I_to_UL): When intVsize>32, reject values >= 2^32.
25026	(I_to_L): When intVsize>32, reject values >= 2^31 or < -2^31.
25027	(I_to_UQ): Use posfixnum_to_V instead of posfixnum_to_L.
25028	(I_to_Q): Likewise. Use negfixnum_to_V instead of negfixnum_to_L.
25029	(L2_to_I, UL2_to_I): Comment out if intVsize>32.
25030	(Q_to_I): Enable if intVsize>32. Use wbitc macro.
25031	(UQ_to_I): Enable if intVsize>32.
25032	(NDS_to_I): If intVsize>32, use 64-bit variables.
25033	(pFN_maxlength_digits_at): Return a value of type uintV instead of
25034	uint32.
25035	* intlog.d (I_to_DS_n_): Use uintV instead of uint32.
25036	(I_I_logand_I, I_I_lognand_I, I_I_logandc2_I, I_I_logtest, I_I_logbitp)
25037	(I_I_ash_I): Use uintV instead of uint32. Use vbit* macros.
25038	(logcount_64): New macro.
25039	(I_logcount_I): Use uintV instead of uint32. Use logcount_64 if
25040	intVsize>32.
25041	(integerlength64): New macro.
25042	(I_integer_length, I_integer_length_I): Use uintV instead of uint32.
25043	Use integerlength64 if intVsize>32.
25044	(ord2_64): New macro.
25045	(I_ord2): Use uintV instead of uint32. Use ord2_64 if intVsize>32.
25046	(I_power2p): Use uintV instead of uint32. Use integerlength64 if
25047	intVsize>32.
25048	* intplus.d (I_I_plus_I, I_minus_I, I_I_minus_I): Use FN_to_V/V_to_I
25049	instead of FN_to_L/L_to_I. Use sintV instead of sint32.
25050	* intbyte.d (Byte_to_V_V): Rename from Byte_to_L_L. Use posfixnum_to_V
25051	instead of posfixnum_to_L.
25052	(fullbyte_I): Change argument types to uintV.
25053	(I_Byte_ldb_I, I_Byte_ldb_test, I_Byte_mask_field_I): Use uintV instead
25054	of uintL.
25055	* intmal.d (I_square_I, I_I_mal_I): Use sintV instead of sint32.
25056	(prod_ungerade): Change argument types to uintV.
25057	(FN_fak_I): Extend table. Use uintV instead of uintL.
25058	* intdiv.d (I_I_divide_I_I): Handle case intVsize>32 when dividing
25059	fixnums.
25060	* intgcd.d (UV_UV_gcd_UV): Rename from UL_UL_gcd_UL. Change argument
25061	types to uintV.
25062	(I_I_gcd_I): Update.
25063	* intserial.d (LESbvector_to_UI, LESbvector_to_I): Use uintV instead of
25064	uintL.
25065	(UI_to_LEbytes, I_to_LEbytes): Likewise.
25066	* sfloat.d (RA_to_SF): Use posfixnum_to_V instead of posfixnum_to_L.
25067	* ffloat.d (RA_to_FF): Use posfixnum_to_V instead of posfixnum_to_L.
25068	* flo_rest.d (SF_I_scale_float_SF, FF_I_scale_float_FF)
25069	(DF_I_scale_float_DF, LF_I_scale_float_LF): Use uintV instead of uintL.
25070	* realtran.d (R_sin_R, R_cos_R, R_cos_sin_R_R): Use posfixnum_to_V
25071	instead of posfixnum_to_L.
25072	* comptran.d (N_N_expt_N): Use uintV instead of uintL.
25073	* lisparit.d (FLOAT-DIGITS): Use uintV instead of uintL.
25074	(SYS::RANDOM-POSFIXNUM): When oint_data_len>32, call random_L twice.
25075	((SETF LONG-FLOAT-DIGITS), log_digits): Use uintV instead of uintL.
25076	* affi.d (affi_callit, affi_call_argsa): Use fixnum_to_V instead of
25077	fixnum_to_L.
25078	(SYSTEM::MEM-READ, SYSTEM::MEM-WRITE): Use posfixnum_to_V instead of
25079	posfixnum_to_L. Use negfixnum_to_V instead of negfixnum_to_L.
25080	* array.d (array_displace_check): Change second argument type to uintV.
25081	(test_subscripts, test_index): Use uintV instead of uintL.
25082	(storagevector_store): Likewise.
25083	(ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE): Likewise.
25084	(ARRAY-DIMENSION, ARRAY-IN-BOUNDS-P): Likewise.
25085	(SET-FILL-POINTER, VECTOR-PUSH-EXTEND): Likewise.
25086	(test_dims): Verify that each dimension is < 2^32.
25087	(test_displaced, test_fillpointer): Use uintV instead of uintL.
25088	(MAKE-ARRAY, reshape, ADJUST-ARRAY): Use posfixnum_to_V instead of
25089	posfixnum_to_L.
25090	(SYS::VECTOR-INIT-START, SYS::VECTOR-FE-INIT-END): Likewise.
25091	(SYS::MAKE-BIT-VECTOR): Verify that the argument is < 2^32.
25092	* charstrg.d (coerce_char): Use uintV instead of uintL.
25093	(test_radix_arg): Likewise.
25094	(CODE-CHAR, DIGIT-CHAR, INT-CHAR): Likewise.
25095	(test_index): Expect an assignment to an uintV. Use posfixnum_to_V
25096	instead of posfixnum_to_L.
25097	(test_index_arg, test_vector_limits, test_1_stringsym_limits)
25098	(test_2_stringsym_limits): Use uintV instead of uintL.
25099	(MAKE-STRING, SUBSTRING): Likewise.
25100	* debug.d (read_form): Use posfixnum_to_V instead of posfixnum_to_L.
25101	(test_mode_arg): Use uintV instead of uintL.
25102	(top_of_back_trace_frame): Use posfixnum_to_V instead of
25103	posfixnum_to_L.
25104	(SHOW-STACK): Use uint32_p/I_to_uint32 instead of
25105	posfixnump/posfixnum_to_L.
25106	* control.d (SYSTEM::%EXIT): Use uint_p/I_to_uint instead of
25107	posfixnump/posfixnum_to_L.
25108	(SYS::UNWIND-TO-DRIVER): Use uint32_p/I_to_uint32 instead of
25109	posfixnump/posfixnum_to_L.
25110	* encoding.d (SYSTEM::CHARSET-RANGE): Use uint32_p/I_to_uint32 instead
25111	of posfixnump/posfixnum_to_L.
25112	* eval.d (SYS::%FUNTABREF): Use uintV instead of uintL.
25113	(invoke_handlers): Use posfixnum_to_V instead of posfixnum_to_L.
25114	(get_closure, funcall_iclosure, eval_fsubr): Likewise.
25115	(interpret_bytecode_): Use fixnum_to_V instead of fixnum_to_L. Use
25116	posfixnum_to_V instead of posfixnum_to_L. Use uintV instead of uintL.
25117	Use vbit* macros.
25118	* foreign.d (convert_function_to_foreign): Use uintV instead of uintL.
25119	(FFI::LOOKUP-FOREIGN-VARIABLE): Use posfixnum_to_V instead of
25120	posfixnum_to_L.
25121	(FFI::%ELEMENT, FFI::CALL-WITH-FOREIGN-STRING): Use uintV instead of
25122	uintL.
25123	(FFI::FOREIGN-CALL-OUT, callback): Use posfixnum_to_V instead of
25124	posfixnum_to_L.
25125	* hashtabl.d (hashcode1stable): Use posfixnum_to_V instead of
25126	posfixnum_to_L.
25127	(rehash, hash_lookup_builtin, hash_lookup_user, hash_store): Likewise.
25128	(prepare_resize): Use uintV instead of uintL.
25129	(resize, clrhash, MAKE-HASH-TABLE, REMHASH, MAPHASH)
25130	(SYSTEM::HASH-TABLE-ITERATE, (SETF HASH-TABLE-WEAK-P))
25131	(CLOS::CLASS-GETHASH, hashcode_tuple, CLOS::CLASS-TUPLE-GETHASH):
25132	Use posfixnum_to_V instead of posfixnum_to_L.
25133	* io.d (syntax_table_get_notinline): Use posfixnum_to_V instead of
25134	posfixnum_to_L.
25135	(SET-MACRO-CHARACTER, GET-MACRO-CHARACTER, RTCase): Likewise.
25136	(get_base): Use uintV instead of uintL.
25137	(bit_vector_reader, vector_reader): Use uintV instead of uintL.
25138	Signal error if n >= 2^32.
25139	(lookup_label): Use posfixnum_to_V instead of posfixnum_to_L.
25140	(closure_reader): Use uintV instead of uintL. Signal error if n >= 2^32.
25141	(PARSE-INTEGER): Use uintV instead of uintL.
25142	(spaces): Use uintV instead of uintL.
25143	(format_tab): Use posfixnum_to_V instead of posfixnum_to_L.
25144	(pprint_prefix): Change return type to uintV.
25145	(right_margin, klammer_zu): Use uintV instead of uintL.
25146	(justify_end_fill): Use posfixnum_to_V instead of posfixnum_to_L.
25147	(justify_end_linear): Use uintV instead of uintL.
25148	(indent_start): Change argument type to uintV.
25149	(indentprep_end): Change return type to uintV.
25150	(level_check): Use posfixnum_to_V instead of posfixnum_to_L.
25151	(get_print_length): Likewise.
25152	(check_lines_limit, circle_p, pr_circle, space_available): Use uintV
25153	instead of uintL.
25154	(string_fit_line_p): Use posfixnum_to_V instead of posfixnum_to_L.
25155	(pr_enter_1): Use uintV instead of uintL.
25156	(get_indent_lists): Change return type to uintV.
25157	(pr_array): Use uintV instead of uintL.
25158	(pr_orecord): Use posfixnum_to_V instead of posfixnum_to_L.
25159	(pr_cclosure_codevector): Use uintV instead of uintL.
25160	(PPRINT-INDENT): Use sintV instead of int. Verify range when using
25161	fixnum_to_V. Use uintV instead of uintL.
25162	* list.d (get_integer_truncate): If intVsize>32, check whether the
25163	argument is >= 2^32.
25164	* package.d (rehash_symtab, symtab_lookup, symtab_find, symtab_insert)
25165	(symtab_delete, map_symtab, map_symtab_c, SYSTEM::PACKAGE-ITERATE):
25166	Use posfixnum_to_V instead of posfixnum_to_L.
25167	* predtype.d (hash_table_equalp): Use posfixnum_to_V instead of
25168	posfixnum_to_L.
25169	(expand_deftype): Use uintV instead of uintL.
25170	(init_hs_locals, with_gc_statistics): Use posfixnum_to_V instead of
25171	posfixnum_to_L.
25172	* record.d (record_up): Use uintV instead of uintL.
25173	(test_record_length): Expect an uintV variable.
25174	(structure_up, SYS::%MAKE-STRUCTURE, SYS::MAKE-CODE-VECTOR)
25175	(CLOS::ALLOCATE-METAOBJECT-INSTANCE, CLOS::ALLOCATE-STD-INSTANCE)
25176	(CLOS::ALLOCATE-FUNCALLABLE-INSTANCE): Use uintV instead of uintL.
25177	(ptr_to_slot): Use posfixnum_to_V instead of posfixnum_to_L.
25178	(slot_access_up, update_instance): Use uintV instead of uintL.
25179	(CLOS::%CHANGE-CLASS): Use posfixnum_to_V instead of posfixnum_to_L.
25180	* sequence.d (copy_seqpart_into): Use uintV instead of uintL.
25181	(seq_check_index): Use posfixnum_to_V instead of posfixnum_to_L.
25182	(REVERSE, NREVERSE): Use uintV instead of uintL.
25183	(MAKE-SEQUENCE): Use elt_fill only if the size is < 2^32.
25184	(MAP-INTO): Use posfixnum_to_V instead of posfixnum_to_L.
25185	(FILL): Use uintV instead of uintL.
25186	(help_function): Change argument types to uintV.
25187	(seq_filterop): Use uintV instead of uintL.
25188	(remove_help, delete_help): Change argument types to uintV.
25189	(remove_op, delete_op): Use uintV instead of uintL.
25190	(remove_duplicates_list_from_start, delete_duplicates_list_from_start)
25191	(delete_duplicates_list_from_end):
25192	Change argument type to uintV.
25193	(seq_duplicates): Use uintV instead of uintL.
25194	(substitute_help): Change argument types to uintV.
25195	(substitute_op): Use uintV instead of uintL.
25196	(nsubstitute_fe_help): Change argument types to uintV.
25197	(READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE)
25198	(WRITE-BYTE-SEQUENCE): Use uintV instead of uintL.
25199	* spvw.d (define_constant_UL1): Use UV_to_I instead of UL_to_I.
25200	(print_banner): Use posfixnum_to_V instead of posfixnum_to_L.
25201	(main): Use vbit* macros.
25202	* spvw_debug.d (nobject_out1): Use posfixnum_to_V instead of
25203	posfixnum_to_L.
25204	* spvw_garcol.d (uintVLA): Rename from uintV.
25205	(move_aligned_p1_p2): Update.
25206	* spvw_weak.d (weak_hashed_alist_update_one): Use posfixnum_to_V
25207	instead of posfixnum_to_L.
25208	* stream.d (wr_ss_lpos): Use uintV instead of uintL.
25209	(stream_get_lastchar, stream_set_lastchar): Use posfixnum_to_V instead
25210	of posfixnum_to_L.
25211	(read_byte_array, write_byte_array, read_char_array): Use uintV instead
25212	of uintL.
25213	(write_char, write_char_array, harden_elastic_newline): Use
25214	posfixnum_to_V instead of posfixnum_to_L.
25215	(rd_ch_str_in, rd_ch_array_str_in, listen_char_str_in, rd_ch_buff_in)
25216	(listen_char_buff_in, test_eltype_arg): Use uintV instead of uintL.
25217	(wr_by_iau8_unbuffered, wr_by_iau8_buffered): Use posfixnum_to_V
25218	instead of posfixnum_to_L.
25219	(make_file_stream): Use uintV instead of uintL.
25220	(rd_ch_terminal2): Likewise.
25221	(listen_char_terminal2): Use posfixnum_to_V instead of posfixnum_to_L.
25222	(rd_ch_terminal3): Use uintV instead of uintL.
25223	(listen_char_terminal3): Use posfixnum_to_V instead of posfixnum_to_L.
25224	(SCREEN::SET-WINDOW-CURSOR-POSITION): Likewise.
25225	(SYS::MAKE-SOCKET-STREAM): Use uint16_p/I_to_uint16 instead of
25226	posfixnump/posfixnum_to_L.
25227	(test_n_bytes_args): Use uint32_p/fehler_uint32 instead of
25228	posfixnump/fehler_posfixnum.
25229	(create_server_socket): Use uint16_p/I_to_uint16 instead of
25230	posfixnump/posfixnum_to_L.
25231	(sec_usec): Use uint32_p/fehler_uint32 instead of
25232	posfixnump/fehler_posfixnum.
25233	(SOCKET-CONNECT): Use uint16_p/I_to_uint16 instead of
25234	posfixnump/posfixnum_to_L.
25235	(stream_handles): Use uint_p/I_to_uint instead of
25236	posfixnump/posfixnum_to_L.
25237	(sock_opt_int): Mark as maygc. Use uint_to_I instead of posfixnum.
25238	Use uint_p/I_to_uint instead of posfixnump/posfixnum_to_L.
25239	(SOCKET-OPTIONS): Use uint_p/I_to_uint/fehler_uint instead of
25240	posfixnump/posfixnum_to_L/fehler_posfixnum.
25241	(MAKE-STREAM): Use uint_p/I_to_uint instead of
25242	posfixnump/posfixnum_to_L.
25243	(get_line_position): Use uintV instead of uintL.
25244	(elastic_newline_pending_p, elastic_newline, stream_get_read_eval)
25245	(stream_set_read_eval): Use posfixnum_to_V instead of posfixnum_to_L.
25246	* time.d (SYS::DEFAULT-TIME-ZONE, SYSTEM::%SLEEP): Use posfixnum_to_V
25247	instead of posfixnum_to_L.
25248	(SYS::DELTA4): Use uintV instead of uintL.
25249	* weak.d (WEAK-LIST-LIST, WEAK-ALIST-CONTENTS, (SETF WEAK-ALIST-VALUE)):
25250	Use posfixnum_to_V instead of posfixnum_to_L.
25251	* modules/berkeley-db/bdb.c (BDB:DBE-CREATE): Use uint_p/I_to_uint
25252	instead of posfixnump/posfixnum_to_L.
25253	(BDB:DBE-OPEN): Update.
25254	(BDB:DBE-SET-OPTIONS): Use check_uint/I_to_uint instead of
25255	check_posfixnum/posfixnum_to_L.
25256	(BDB:DB-OPEN): Update.
25257	(BDB:DB-JOIN): Use posfixnum_to_V instead of posfixnum_to_L.
25258	(BDB:DB-SET-OPTIONS): Use check_uint/I_to_uint instead of
25259	check_posfixnum/posfixnum_to_L.
25260	(BDB:TXN-CHECKPOINT): Update.
25261	* modules/clx/new-clx/clx.f (get_fixnum): Use fixnum_to_V instead of
25262	fixnum_to_L.
25263	* modules/dirkey/dirkey.c (state_next_key, LDAP::DKEY-SEARCH-NEXT-ATT):
25264	Use posfixnum_to_V instead of posfixnum_to_L.
25265	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): Update.
25266	* modules/i18n/gettext.c (I18N:NGETTEXT): Use uint32_p/I_to_uint32
25267	instead of posfixnump/posfixnum_to_L.
25268	* modules/queens/callqueens.c (USER::QUEENS): Use check_uint/I_to_uint
25269	instead of check_posfixnum/posfixnum_to_L. Change result type from
25270	uint32 to 'unsigned int'.
25271	* modules/rawsock/rawsock.c (RAWSOCK:SOCKATMARK, RAWSOCK:ACCEPT)
25272	(RAWSOCK:BIND, RAWSOCK:CONNECT, RAWSOCK:GETPEERNAME)
25273	(RAWSOCK:GETSOCKNAME, RAWSOCK:LISTEN, RAWSOCK:RECV, RAWSOCK:RECVFROM)
25274	(RAWSOCK:RECVMSG, RAWSOCK:SOCK-READ, RAWSOCK:SEND, RAWSOCK:SENDMSG)
25275	(RAWSOCK:SENDTO, RAWSOCK:SOCK-WRITE, RAWSOCK:SOCK-CLOSE)
25276	(RAWSOCK:SHUTDOWN, RAWSOCK:CONFIGDEV): Use check_uint/I_to_uint
25277	instead of check_posfixnum/posfixnum_to_L.
25278	* modules/regexp/regexi.c (REGEXP::REGEXP-EXEC): Update.
25279	* modules/syscalls/calls.c (POSIX::STREAM-LOCK): Use uint_p/I_to_uint
25280	instead of posfixnump/posfixnum_to_L.
25281	(POSIX:GETSID, POSIX:GETPGRP, POSIX:SETPGID, POSIX:KILL, OS:PRIORITY)
25282	(OS:SET-PRIORITY): Use check_uint32/I_to_uint32 instead of
25283	check_posfixnum/posfixnum_to_L.
25284	(POSIX::USER-DATA, POSIX::SET-FILE-STAT, POSIX::CONVERT-MODE): Use
25285	check_uint32/I_to_uint32 instead of check_posfixnum/posfixnum_to_L.
25286	(POSIX::CONVERT-MODE): Use integerp instead of posfixnump, uint32_to_I
25287	instead of fixnum.
25288	(POSIX::DUPLICATE-HANDLE): Use check_uint/I_to_uint instead of
25289	check_posfixnum/posfixnum_to_L.
25290	(POSIX::CONVERT-ATTRIBUTES, POSIX::MAKE-SHORTCUT): Use
25291	check_uint32/I_to_uint32 instead of check_posfixnum/posfixnum_to_L.
25292
252932005-05-11  Bruno Haible  <bruno@clisp.org>
25294
25295	* intelem.d (FN_MSD): Define in a way that doesn't require the sintDD
25296	type.
25297
252982005-05-11  Bruno Haible  <bruno@clisp.org>
25299
25300	Fix bug introduced on 2005-01-27.
25301	* lispbibl.d (defined_class_length): New macro.
25302	(built_in_class_length): Define based on defined_class_length.
25303
253042005-05-13  Sam Steingold  <sds@gnu.org>
25305
25306	* modules/pcre/cpcre.c: update for PCRE5
25307
253082005-05-13  Sam Steingold  <sds@gnu.org>
25309
25310	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
25311	avoid bootstrapping problems by not using LOAD-TIME-EVAL
25312
253132005-05-12  Sam Steingold  <sds@gnu.org>
25314
25315	support 4GB+ files on woe32
25316	* lispbibl.d (off_to_I): new macro
25317	* win32.d (off_t): define to sint64
25318	(SIZEOF_OFF_T): define to 8
25319	* pathname.d (READDIR_entry_size): return a 64-bit number
25320	(directory_search_scandir) [WIN32_NATIVE]:
25321	entry_size is off_t, not uintL
25322	(loadmem_from_handle) [WIN32_NATIVE]:
25323	use GetFileSizeEx() instead of GetFileSize()
25324	* stream.d (handle_lseek) [WIN32_NATIVE]: use SetFilePointerEx()
25325	instead of SetFilePointer()
25326
253272005-05-12  Sam Steingold  <sds@gnu.org>
25328
25329	* io.d (signal_reader_error): expect STREAM in sp
25330	(read_internal): pass stream_ in sp
25331
253322005-05-11  Bruno Haible  <bruno@clisp.org>
25333
25334	Make it possible to use 'aint' = 'uint64' on 32-bit machines.
25335	* lispbibl.d (type_pointer_object) [TYPECODES]: If WIDE_SOFT, cast
25336	the address to uintP first, to force zero-extend instead of sign-extend.
25337	* genclisph.d (main): Likewise.
25338
253392005-05-11  Bruno Haible  <bruno@clisp.org>
25340
25341	Fix bug in handling of reallocated simple-strings with TYPECODES,
25342	introduced on 2004-02-18.
25343	* lispbibl.d (sstring_flags) [TYPECODES]: Include the forwarded_B bit.
25344
253452005-05-12  Sam Steingold  <sds@gnu.org>
25346
25347	* stream.d (finish_tty_output) [UNIX_DARWIN]:
25348	ignore EOPNOTSUPP and ENODEV, just like in clear_tty_output()
25349	Reported by Pascal Costanza <pc@p-cos.net>
25350
253512005-05-12  Sam Steingold  <sds@gnu.org>
25352
25353	* compiler.lisp (compile-file-pathname-helper): return OUTPUT-FILE
25354	as is only if it is an open output stream
25355
253562005-05-12  Sam Steingold  <sds@gnu.org>
25357
25358	* io.d (pr_orecord): enable saving pathnames into *.fas files even
25359	when *PRINT-PATHNAMES-ANSI* is non-NIL
25360
253612005-05-11  Sam Steingold  <sds@gnu.org>
25362
25363	* utils/clispload.lsp (*expected-failures*): add DISASSEMBLE.ERROR.3:
25364	CLISP extends DISASSEMBLE to accept STRINGs, METHODs, and forms
25365
253662005-05-11  Sam Steingold  <sds@gnu.org>
25367
25368	* error.d (end_error): READER-ERROR also accepts :STREAM
25369	* backquote.lisp (backquote-reader, comma-reader)
25370	(bq-non-list-splice-error, bq-dotted-splice-error): ditto
25371
253722005-05-11  Sam Steingold  <sds@gnu.org>
25373
25374	* modules/syscalls/calls.c (utmpx_to_lisp):
25375	add casts to avoid C++ warnings
25376	* modules/syscalls/configure.in (time_t, suseconds_t): AC_CHECK_SIZEOF
25377	(utmpx.ut_host): check only when <utmpx.h> is present
25378
253792005-05-10  Sam Steingold  <sds@gnu.org>
25380
25381	* places.lisp (define-setf-expander, defsetf): pass
25382	SETF-EXPANDER instead of "SETF expander" to CHECK-REDEFINITION
25383	* init.lisp (check-redefinition): when WHAT is SETF-EXPANDER,
25384	avoid unnecessary warnings for SUBRs
25385
253862005-05-10  Sam Steingold  <sds@gnu.org>
25387
25388	* makemake.in (PATH) [win32gcc]: add /mingw/bin
25389
253902005-05-10  Sam Steingold  <sds@gnu.org>
25391
25392	* lispbibl.d, intelem.d (I_to_Q, I_to_UQ) [HAVE_LONGLONG]: always define
25393
253942005-05-10  Sam Steingold  <sds@gnu.org>
25395
25396	better error checking for UNION at al
25397	* list.d (LIST-LENGTH-PROPER): new function
25398	* constsym.d, subr.d (list_length_proper): add
25399	* init.lisp (list-length-proper): export
25400	* error.d (fehler_proper_list_dotted): EXPECTED-TYPE = PROPER-LIST
25401	* defs1.lisp (list-to-ht): use LIST-LENGTH-PROPER instead of LENGTH
25402
254032005-05-10  Sam Steingold  <sds@gnu.org>
25404
25405	fix EXPECTED-TYPE in function-name errors
25406	* constobj.d (type_designator_function_name): add
25407	* error.d (check_funname_replacement):
25408	use it instead of type_designator_function
25409
254102005-05-10  Sam Steingold  <sds@gnu.org>
25411
25412	* defs1.lisp (encode-universal-time): time zone is specified by
25413	ANSI in [-24;24], not [-13;12]; use ISO date format for error reporting
25414
254152005-05-09  Sam Steingold  <sds@gnu.org>
25416
25417	* modules/rawsock/rawsock.c [WIN32_NATIVE]: fix C++ compilation
25418	(BUF_TYPE_T): new CPP define
25419	(RECV, RECVFROM, SEND, SENDTO): cast buffer
25420
254212005-05-09  Sam Steingold  <sds@gnu.org>
25422
25423	* pathname.d (ENOUGH-NAMESTRING): fix for possible NIL directory
25424
254252005-05-09  Sam Steingold  <sds@gnu.org>
25426
25427	* init.lisp (load): bind *LOAD-PATHNAME* to the result of
25428	MERGE-PATHNAMES as per ANSI CL spec
25429	Found by Paul Dietz's ansi-tests test suite.
25430
254312005-05-09  Sam Steingold  <sds@gnu.org>
25432
25433	* modules/syscalls/calls.c (STREAM-LOCK, MKSTEMP, FILE-STAT, MKNOD)
25434	(sid_cache_put) [WIN32_NATIVE]: fix C++ compilation
25435
254362005-05-09  Sam Steingold  <sds@gnu.org>
25437
25438	* modules/i18n/gettext.c (get_locale_info, DECLARE_RES):
25439	add casts for C++ compilation
25440
254412005-05-09  Pascal J.Bourguignon  <pjb@informatimago.com>
25442
25443	* modules/syscalls/calls.c (OPENLOG): allocate ident and keep it
25444	in a static variable
25445	(CLOSELOG): release it
25446
254472005-05-09  Sam Steingold  <sds@gnu.org>
25448
25449	* modules/clx/mit-clx/dependent.lisp (host-address): use
25450	READ-FROM-STRING instead of SLIT-SEQUENCE
25451	* modules/clx/mit-clx/defsystem.lisp (dependent, load-clx):
25452	remove split-sequence
25453	* modules/clx/mit-clx/split-sequence.lisp: remove
25454
254552005-05-09  Sam Steingold  <sds@gnu.org>
25456
25457	* modules/clx/mit-clx/dependent.lisp (host-address): use
25458	POSIX::HOSTENT-ADDRTYPE instead of POSIX::HOSTENT-ADDR-TYPE
25459	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
25460
254612005-05-09  Sam Steingold  <sds@gnu.org>
25462
25463	* pathname.d (use_default_dir) [PATHNAME_WIN32]: fix a GC-safety bug
25464
254652005-05-09  Sam Steingold  <sds@gnu.org>
25466
25467	* lispbibl.d, intelem.d (I_to_UQ): define on WIN32_NATIVE
25468	for convert_time_from_universal()
25469	* time.d (convert_time_from_universal): use I_to_UQ() instead of
25470	its alias I_to_uint64()
25471
254722005-05-09  Sam Steingold  <sds@gnu.org>
25473
25474	* execname.c (find_executable): add a cast for C++ compilation
25475	* pathname.d (use_default_dir): ditto
25476	* socket.d (resolve_host1): ditto
25477
254782005-05-09  Sam Steingold  <sds@gnu.org>
25479
25480	* pathname.d (merge_dirs): fix logic for NIL defaults
25481
254822005-05-09  Sam Steingold  <sds@gnu.org>
25483
25484	* places.lisp (*ansi*): fix the doc string: mention all 13 variables
25485	and avoid non-ASCII characters to ensure non-UTF8 terminal compatibility
25486
254872005-05-06  Sam Steingold  <sds@gnu.org>
25488
25489	* modules/clx/new-clx/image.lisp, modules/clx/new-clx/resource.lisp:
25490	pass a string to REQUIRE to avoid case conversion issues
25491	* modules/clx/new-clx/clx.lisp: PROVIDE whatever was REQUIREd
25492
254932005-05-06  Sam Steingold  <sds@gnu.org>
25494
25495	* defstruct.lisp: keep direct slot information
25496	(*defstruct-description-direct-slots-location*): new constant
25497	(make-load-form-slot-list): new function
25498	(defstruct): use it; save direct slot information
25499	(structure-direct-slots): new function
25500	(structure-undefine-accessories): use it to remove slot accessors
25501	* exporting.lisp (export-structure-accessories): use
25502	STRUCTURE-DIRECT-SLOTS instead of CLASS-ACCESSOR-SYMBOLS
25503	* io.d (STRUCTURE-READER): DEFSTRUCT-DESCRIPTION has length 8
25504	* clos-class3.lisp (define-structure-class):
25505	pass DEFCLASS-FORM 'DEFSTRUCT to MAKE-INSTANCE
25506	(initialize-instance-<structure-class>): do not call
25507	INSTALL-CLASS-DIRECT-ACCESSORS to avoid slot accessor redefinitions
25508	* clos-class6.lisp (initialize-instance@structure-class): new method,
25509	uses the DEFCLASS-FORM argument to avoid slot accessor redefinitions
25510	* constobj.d (version): bumped
25511
255122005-05-06  Sam Steingold  <sds@gnu.org>
25513
25514	* condition.lisp (without-global-handlers): new macro
25515
255162005-05-06  Sam Steingold  <sds@gnu.org>
25517
25518	* eval.d (SUBR-INFO): add a cast for C++ compilation
25519	* pathname.d (use_default_dir): ditto
25520
255212005-05-06  Sam Steingold  <sds@gnu.org>
25522
25523	* pathname.d (PARSE-NAMESTRING): "" ==> :DIRECTORY NIL
25524	(directory_namestring_parts): :DIRECTORY (:RELATIVE) => "./"
25525	(merge_dirs, MERGE-PATHNAMES, directory_match, directory_diff)
25526	(translate_directory, use_default_dir):
25527	treat NIL directory just like (:RELATIVE)
25528	(SAMPLE_UNBOUND_CHECK): remove
25529	(MAKE-PATHNAME): :DIRECTORY defaults to NIL
25530	(has_directory_wildcards): :DIRECTORY may be NIL
25531	* constobj.d (directory_default): remove
25532	* utils/clispload.lsp (*expected-failures*): update
25533
255342005-05-05  Sam Steingold  <sds@gnu.org>
25535
25536	* stream.d (force_tty_output) [UNIX_DARWIN]:
25537	ignore EOPNOTSUPP and ENODEV, just like in clear_tty_output()
25538	Reported by Pascal Costanza <pc@p-cos.net>
25539
255402005-05-05  Sam Steingold  <sds@gnu.org>
25541
25542	* makemake.in (ANSITESTSDIR): do update-ansi-tests first
25543
255442005-05-04  Sam Steingold  <sds@gnu.org>
25545
25546	* modules/zlib/configure.in: use AC_LIB_LINKFLAGS([z])
25547
255482005-05-04  Sam Steingold  <sds@gnu.org>
25549
25550	* install.lisp (clisp-cmd): quote *CLISP-DRIVER* when it contains spaces
25551
255522005-05-03  Sam Steingold  <sds@gnu.org>
25553
25554	* compiler.lisp (compile-file-pathname-helper): use read-time
25555	instead of run-time to produce a constant pathname
25556
255572005-05-03  Sam Steingold  <sds@gnu.org>
25558
25559	* eval.d (funcall): pass args_on_stack to with_saved_back_trace_subr
25560
255612005-05-02  Sam Steingold  <sds@gnu.org>
25562
25563	* compiler.lisp (c-PROVIDE, c-REQUIRE):
25564	use STRING instead of MODULE-NAME
25565	* defs1.lisp (provide, require): ditto
25566	(module-name): remove
25567	This partly reverts the 2002-07-15 patch. This is necessary
25568	because case converting module names is not permitted by ANSI.
25569
255702005-05-02  Sam Steingold  <sds@gnu.org>
25571
25572	* defs1.lisp (require): avoid duplication in *LOAD-PATHS*
25573	to minimize disk access on recursive REQUIREs
25574
255752005-05-02  Sam Steingold  <sds@gnu.org>
25576
25577	* defs1.lisp (module-name): reverted the 2002-07-21 patch:
25578	STRING already accepts only strings, symbols, and characters
25579
255802005-05-02  Sam Steingold  <sds@gnu.org>
25581
25582	* type.lisp (PLIST): use LIST-LENGTH-DOTTED instead of LISTP+LENGTH
25583
255842005-05-02  Sam Steingold  <sds@gnu.org>
25585
25586	* modules/berkeley-db/dbi.lisp, modules/syscalls/posix.lisp:
25587	use EXPORTING to export structure slot accessors
25588
255892005-05-02  Sam Steingold  <sds@gnu.org>
25590
25591	* exporting.lisp (define-condition): use MOP
25592
255932005-04-30  Sam Steingold  <sds@gnu.org>
25594
25595	* init.lisp (open-for-load): do not append "/" to a logical pathname
25596	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
25597
255982005-05-01  Sam Steingold  <sds@gnu.org>
25599
25600	* defstruct.lisp (defstruct): save accessor names in :READER and
25601	:WRITER slots of the DIRECT-SLOT-DEFINITION: we cannot recover
25602	accessor names later because of the :CONC-NAME option
25603	* exporting.lisp (export-structure-accessories):
25604	use CLASS-ACCESSOR-SYMBOLS
25605
256062005-04-28  Sam Steingold  <sds@gnu.org>
25607
25608	* modules/syscalls/calls.c (stat_obj): new function
25609	(my_chmod) [WIN32_NATIVE]: call SetFileAttributes()
25610	(SET-FILE-STAT) [WIN32_NATIVE]: use check_file_attributes_parse()
25611	and stat_obj()
25612	(copy_attributes_and_close): ported to WIN32_NATIVE
25613	close streams before utime() (it modifies atime&mtime)
25614	wrap system calls with begin_system_call()/end_system_call()
25615
256162005-04-28  Bruno Haible  <bruno@clisp.org>
25617
25618	* clos-genfun2b.lisp (reinitialize-instance-<generic-function>): When
25619	removing old defgeneric-originated methods, also call
25620	remove-direct-method on the specializers.
25621	Reported by Paul F. Dietz <dietz@dls.net>.
25622
256232005-04-27  Sam Steingold  <sds@gnu.org>
25624
25625	* utils/modprep.lisp (string-rest): check POS
25626
256272005-04-27  Sam Steingold  <sds@gnu.org>
25628
25629	* utils/modprep.lisp (checker): add slot DELIM
25630	(to-C-name, new-checker): accept DELIM
25631	* modules/syscalls/calls.c (check_chmod_mode, mknod_type_check):
25632	prefix=S_I, void delim
25633	(mknod): use :FIFO instead of :IFIFO &c
25634	* modules/syscalls/posix.lisp (make-xterm-io-stream): ditto
25635
256362005-04-27  Sam Steingold  <sds@gnu.org>
25637
25638	* modules/syscalls/calls.c (POSIX::MKNOD): when mknod() is not
25639	present, use mkfifo(), mkdir(), and creat()
25640	* modules/syscalls/configure.in (mkfifo, mkdir, creat): check
25641
256422005-04-27  Sam Steingold  <sds@gnu.org>
25643
25644	fix bug#254: no mknod p on OS/X
25645	* reploop.lisp (make-xterm-io-stream): moved to syscalls module
25646	* modules/syscalls/posix.lisp (make-xterm-io-stream): use
25647	POSIX:MKNOD and POSIX:MKSTEMP instead of the shell commands
25648
256492005-04-25  Sam Steingold  <sds@gnu.org>
25650
25651	* modules/berkeley-db/bdb.c, modules/berkeley-db/dbi.lisp:
25652	use dash instead of underscore for all keywords
25653
256542005-04-25  Sam Steingold  <sds@gnu.org>
25655
25656	* modules/berkeley-db/bdb.c (fill_dbt): re_len==-1 ==> integer object
25657	(db_key_type): accept second action argument
25658	(DB-GET, DBC-GET): handle :SET-RECNO and :GET-RECNO actions
25659	(DB-PUT, DB-KEY-RANGE, DBC-PUT):
25660	pass 0 as the second argument to db_key_type()
25661
256622005-04-25  Sam Steingold  <sds@gnu.org>
25663
25664	* utils/clispload.lsp (*expected-failures*): update
25665
256662005-04-24  Sam Steingold  <sds@gnu.org>
25667
25668	* init.lisp (search-file): use MAKE-PRELIMINARY to avoid a warning
25669
256702005-04-22  Sam Steingold  <sds@gnu.org>
25671
25672	prevent accidental EXT:! redefinition by users
25673	* eval.d (SUBR-INFO): pass false to coerce_sequence() to avoid
25674	bootstrap problems
25675	* init.lisp (sys::check-redefinition): use SUBR-INFO to check
25676	whether the function has been already defined in C
25677
256782005-04-24  Sam Steingold  <sds@gnu.org>
25679
25680	* sequence.d (coerce_sequence): fix STACK clean-up on !error_p
25681
256822005-04-21  Bruno Haible  <bruno@clisp.org>
25683
25684	* clos-genfun2a.lisp (safe-gf-methods): Avoid endless recursion also
25685	for #'compute-discriminating-function and
25686	#'compute-applicable-methods-using-classes.
25687	* clos-genfun2b.lisp (add-method, remove-method): New preliminary
25688	functions.
25689	(initialize-instance-<generic-function>): Call add-method instead of
25690	std-add-method.
25691	(reinitialize-instance-<generic-function>): Likewise.
25692	* clos-genfun3.lisp (make-generic-function, do-defmethod): Likewise.
25693	* clos-genfun4.lisp (add-method, remove-method): Allow erasing
25694	preliminary definition.
25695	Reported by Pascal Costanza <pc@p-cos.net>.
25696
256972005-04-21  Bruno Haible  <bruno@clisp.org>
25698
25699	* genclisph.d (main): Emit check_array etc. conditionally, not if
25700	COMPILE_STANDALONE is defined. Needed to avoid link errors with
25701	compilers that do not eliminate inline functions.
25702
257032005-04-21  Bruno Haible  <bruno@clisp.org>
25704
25705	* foreign.d (dlerror_string): Use 'const char*' instead of 'char*'.
25706	Avoids a gcc warning on MacOS X.
25707
257082005-04-21  Bruno Haible  <bruno@clisp.org>
25709
25710	* arilev0.d (divu_3232_3232_): Use 'unused'. Avoids a gcc warning
25711	"statement without effect".
25712
257132005-04-21  Bruno Haible  <bruno@clisp.org>
25714
25715	* lispbibl.d (nonreturning_function, SP_register): Test for
25716	__APPLE_CC__ > 1.
25717	* eval.d (FAST_DISPATCH, FAST_DISPATCH_THREADED): Likewise.
25718	* genclisph.d (main): For nonreturning_function, test for
25719	__APPLE_CC__ > 1.
25720	Needed because gcc-4.0 supports all the GCC features but defines
25721	__APPLE_CC__ to 1.
25722
257232005-04-21  Bruno Haible  <bruno@clisp.org>
25724
25725	* noreadline.d (NULL): Define as void*, not char*. Avoids gcc warning.
25726
257272005-04-21  Sam Steingold  <sds@gnu.org>
25728
25729	clean-up the LEbytes_to_I breakage
25730	* modules/berkeley-db/bdb.c (db_recno_p, db_recno_to_I, I_to_db_recno):
25731	define depending on SIZEOF_DB_RECNO_T
25732	(fill_dbt): re_len==-1 means this is a key and thus db_recno_t
25733	must be handled specially; fix the bitsize argument to I_to_LEbytes()
25734	(dbt_to_object): add the key_type argument, symmetric to re_len==-1
25735	(db_key_type): new function
25736	(DB-DEL, DB-GET, DB-PUT, DB-KEY-RANGE, DBC-GET, DBC-PUT): pass
25737	db_key_type() to fill_dbt(key) and dbt_to_object()
25738	(fill_or_init): re_len is int, not u_int32_t
25739	* modules/berkeley-db/configure.in (db_recno_t): check SIZEOF
25740
257412005-04-21  Sam Steingold  <sds@gnu.org>
25742
25743	* makemake.in (base-mod-check, mod-check):
25744	handle the case when there are no test files
25745
257462005-04-21  Sam Steingold  <sds@gnu.org>
25747
25748	* modules/berkeley-db/bdb.c (check_dbe_open_flags): new DEFCHECKER
25749	(DBE-OPEN): accept :FLAGS
25750	(dbe_get_open_flags): use check_dbe_open_flags_to_list()
25751	(check_db_open_flags): new DEFCHECKER
25752	(DB-OPEN): accept :FLAGS
25753	(db_get_open_flags): new function (uses check_db_open_flags_to_list())
25754	(DB-GET-OPTIONS): accept :OPEN
25755	(bdb_ac_flags): replaces db_put_flags()
25756	(DBE-DBREMOVE, DBE-DBRENAME, DB-DEL, DB-TRUNCATE, DB-PUT): use it
25757	(DBE-REMOVE): invalidate the handle
25758
257592005-04-21  Sam Steingold  <sds@gnu.org>
25760
25761	* utils/modprep.lisp (print-tables-1): output C-NAME_parse()
25762	* modules/syscalls/calls.c (parse_mode): remove
25763	(SET-FILE-STAT, UMASK, MKNOD): use check_chmod_mode_parse instead
25764
257652005-04-20  Sam Steingold  <sds@gnu.org>
25766
25767	* modules/berkeley-db/bdb.c (asciz_to_string0): new inline
25768	(dbe_get_errpfx, get_lg_dir, get_tmp_dir, get_re_source): use it
25769	(txn_check_sync): restore default=0
25770	(db_get_dbname, db_get_transactional): new functions
25771	(DB-GET-OPTIONS): accept :DBNAME and :TRANSACTIONAL
25772	* modules/berkeley-db/test.tst (show): new function,
25773	use instead of PRINT for better spacing
25774	collect bad items instead of using ASSERT
25775
257762005-04-19  Sam Steingold  <sds@gnu.org>
25777
25778	* modules/berkeley-db/dbi.lisp (with-dbe): new exported macro
25779	(with-db): accept :CREATE :OPTIONS :OPEN and pass them to
25780	DB-CREATE, DB-SET-OPTIONS, DB-OPEN respectively
25781
257822005-04-18  Sam Steingold  <sds@gnu.org>
25783
25784	* modules/syscalls/calls.c: include <utmpx.h> and <signal.h> in
25785	the preamble because they define CPP constants used by DEFCHECKERs
25786
257872005-04-18  Sam Steingold  <sds@gnu.org>
25788
25789	* makemake.in (base-mod-check): new target
25790	(mod-check): rename from full-check; fix RUN-SOME-TESTS call
25791	targets fail when RUN-SOME-TESTS return non-0
25792
257932005-04-18  Sam Steingold  <sds@gnu.org>
25794
25795	* makemake.in (echo_dist_modules): end directory name with a slash
25796	(distrib) [win32]: remove $distdir before populating it
25797	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
25798
257992005-04-18  Sam Steingold  <sds@gnu.org>
25800
25801	* modules/syscalls/calls.c (utmpx_to_lisp): GLIBC 2.3.2 uses
25802	32-bit slots for the utmpx->ut_tv even on 64-bit platforms, so
25803	SIZEOF_STRUCT_TIMEVAL is useless here; resort to run-time sizeof()
25804	and hope that the compiler will optimize that away
25805
258062005-04-18  Sam Steingold  <sds@gnu.org>
25807
25808	* modules/pcre/cpcre.c (PCRE:PCRE-NAME-TO-INDEX): older PCRE
25809	versions did dot have pcre_get_stringnumber()
25810	* modules/pcre/configure.in: check for pcre_get_stringnumber()
25811
258122005-04-18  Sam Steingold  <sds@gnu.org>
25813
25814	* modules/clx/new-clx/clx.f (SET-GCONTEXT-DISPLAY): use foreign
25815	pointers instead of 32-bit integers to accommodate 64-bit platforms
25816	(general_draw_text, TEXT-EXTENTS, TEXT-WIDTH):
25817	fix 2nd and 3rd arguments to unpack_string_ro()
25818
258192005-04-18  Sam Steingold  <sds@gnu.org>
25820
25821	* modules/berkeley-db/bdb.c (fill_dbt, check_gid):
25822	fix the 3rd argument to array_displace_check()
25823	* modules/berkeley-db/configure.in: check for Berkeley-DB 4.2+
25824	* modules/postgresql/configure.in: fix check for PostgreSQL 8.0+
25825	* modules/zlib/configure.in: check for ZLIB 1.2+
25826
258272005-04-15  Sam Steingold  <sds@gnu.org>
25828
25829	* modules/syscalls/calls.c (statvfs) [WIN32_NATIVE]: fix last patch
25830	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
25831
258322005-04-14  Sam Steingold  <sds@gnu.org>
25833
25834	* modules/syscalls/posix.lisp (utmpx-p, rlimit-p)
25835	(shortcut-info-p): export
25836
258372005-04-13  Sam Steingold  <sds@gnu.org>
25838
25839	* modules/syscalls/configure.in (sys/statfs.h, sys/vfs.h):
25840	do not check unused headers
25841	(HAVE_SCALAR_FSID): do not check without <sys/statvfs.h>
25842	(fsblkcnt_t, fsfilcnt_t): check SIZEOF
25843	(struct stat): do not check whithout <sys/stat.h>
25844	* modules/syscalls/calls.c (STAT-VFS): convert
25845	f_blocks/f_bfree/f_bavail according to SIZEOF_FSBLKCNT_T and
25846	f_files/f_ffree/f_favail according to SIZEOF_FSBLKCNT_T
25847	(vfs_flags): add FILE_SUPPORTS_ENCRYPTION
25848
258492005-04-13  Sam Steingold  <sds@gnu.org>
25850
25851	* makemake.in [win32gcc]: distribute module sources
25852	(echo_dist_modules): new function
25853	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
25854
258552005-04-13  Sam Steingold  <sds@gnu.org>
25856
25857	* modules/syscalls/calls.c (STAT-VFS) [WIN32_NATIVE]: implement
25858	using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation
25859	* modules/syscalls/posix.lisp (STAT-VFS): export always
25860	add vol-name and fs-type slots
25861
258622005-04-12  Bruno Haible  <bruno@clisp.org>
25863
25864	* weak.d (MAKE-WEAK-ALIST, WEAK-ALIST-TYPE): Use :key-and-value instead
25865	of :either, :key-or-value instead of :both.
25866	* hashtabl.d (hash_table_weak_type): Return :key-and-value instead
25867	of :either, :key-or-value instead of :both.
25868	(allocate_kvt, prepare_resize, check_weak): Accept :key-and-value
25869	instead of :either, :key-or-value instead of :both.
25870	* describe.lisp (describe-object@t): Update for change :either ->
25871	:key-and-value, :both -> :key-or-value.
25872
258732005-04-12  Sam Steingold  <sds@gnu.org>
25874
25875	* modules/syscalls/calls.c (POSIX:SYNC): implement
25876	* modules/syscalls/posix.lisp (SYNC): export
25877	* modules/syscalls/configure.in (sync, fsync): check
25878
258792005-04-10  Sam Steingold  <sds@gnu.org>
25880
25881	* modules/berkeley-db/dbi.lisp (db-stat): add slot TYPE
25882	(mkdbstat-hash, mkdbstat-btree, mkdbstat-queue): accept TYPE
25883	* modules/berkeley-db/bdb.c (check_dbt_type, check_dbtype):
25884	define with DEFCHECKER
25885	(DB-STAT): use check_dbtype_reverse() for TYPE
25886
258872005-04-10  Sam Steingold  <sds@gnu.org>
25888
25889	* utils/modprep.lisp (print-tables-1): do not wrap DEFAULT
25890	with #ifdef when the return type is an enum
25891
258922005-04-10  Sam Steingold  <sds@gnu.org>
25893
25894	* modules/berkeley-db/bdb.c (dbe_set_encryption, db_get_action)
25895	(db_put_action): restored 0 defaults, as per the spec
25896	(my_fopen): check fopen() return value
25897
258982005-04-09  Sam Steingold  <sds@gnu.org>
25899
25900	* modules/berkeley-db/bdb.c (check_lk_detect): add DB_LOCK_NORUN
25901	(reset_errpfx): use my_malloc() instead of just malloc()
25902	(error_callback): insert ": " between error prefix and message
25903	allocate an extra byte for NULL
25904
259052005-04-09  Sam Steingold  <sds@gnu.org>
25906
25907	* genclisph.d (srecord_): recdata is gcv_object_t, not object
25908
259092005-04-09  Sam Steingold  <sds@gnu.org>
25910
25911	* condition.lisp (set-global-handler): use load-time value (#,)
25912	instead of read-time value (#.) to avoid an error on check-recompile
25913
259142005-04-09  Sam Steingold  <sds@gnu.org>
25915
25916	* modules/regexp/regexi.c (REGEXP-COMPILE): fix a GC-safety bug
25917
259182005-04-08  Sam Steingold  <sds@gnu.org>
25919
25920	* modules/syscalls/posix.lisp (file-info): 1 slot size instead of hi&lo
25921	(file-info) [UNIX && !UNIX_CYGWIN32]: implement
25922	* modules/syscalls/calls.c (wfd_to_file_info): rename from
25923	wfd_to_stack; 1 slot size instead of hi&lo
25924
259252005-04-08  Sam Steingold  <sds@gnu.org>
25926
25927	* modules/syscalls/posix.lisp (convert-attributes): export
25928	* modules/syscalls/calls.c (FILE-STAT) [WIN32_NATIVE]: use
25929	GetFileInformationByHandle() instead of fstat() because woe32 fstat()
25930	does not accept a file handle, only an integer of an unknown nature;
25931	return a list as :MODE, not a number
25932	(check_file_attributes) [WIN32_NATIVE||UNIX_CYGWIN32]: new DEFCHECKER
25933	(CONVERT-ATTRIBUTES) [WIN32_NATIVE||UNIX_CYGWIN32]: new DEFUN
25934
259352005-04-07  Sam Steingold  <sds@gnu.org>
25936
25937	* modules/syscalls/calls.c (stream_get_handle, FILE-STAT, STAT-VFS):
25938	fix GC-safety bugs
25939
259402005-04-07  Sam Steingold  <sds@gnu.org>
25941
25942	* modules/syscalls/calls.c: ported MKSTEMP to win32
25943	(temp_name) [!HAVE_MKSTEMP && (HAVE_TEMPNAM || WIN32_NATIVE)]: add
25944	(MKSTEMP)[!HAVE_MKSTEMP && (HAVE_TEMPNAM || WIN32_NATIVE)]: use it
25945	* modules/syscalls/configure.in: check for tempnam()
25946
259472005-04-07  Sam Steingold  <sds@gnu.org>
25948
25949	* modules/syscalls/calls.c (check_chmod_mode): fix symbol names
25950	(parse_mode): new function
25951	(SET-FILE-STAT, UMASK, MKNOD): use it
25952
259532005-04-07  Sam Steingold  <sds@gnu.org>
25954
25955	* genclisph.d (allocate_handle, make_file_stream): export
25956	* modules/syscalls/calls.c (MKSTEMP): implement
25957	* modules/syscalls/configure.in: check for <stdlib.h> and mkstemp()
25958	* modules/syscalls/posix.lisp (mkstemp, hostent-p, user-data-p)
25959	(file-stat-p, stat-vfs-p, uname-p, system-info-p, version-p)
25960	(memory-status-p): export
25961
259622005-04-07  Sam Steingold  <sds@gnu.org>
25963
25964	* utils/modprep.lisp (print-tables-1): add casts for C++ compilation
25965	* modules/berkeley-db/bdb.c: ditto
25966	* modules/pcre/cpcre.c: ditto
25967
259682005-04-07  Bruno Haible  <bruno@clisp.org>
25969
25970	* .gdbinit (boot, base, full, interpreted, run_test, run_all_tests)
25971	(ansi_tests): Add -N locale option.
25972
259732005-04-06  Sam Steingold  <sds@gnu.org>
25974
25975	* modules/syscalls/calls.c (SETPGRP) [!HAVE_SETPGRP_POSIX]:
25976	call setpgrp(0,0) BSD-style
25977	(SETPGID): new function
25978	* modules/syscalls/posix.lisp (setpgid): export
25979	* modules/syscalls/configure.in: check whether setpgrp() is POSIX
25980	Reported by Lars Rosengreen <lars@margay.org>
25981
259822005-04-06  Sam Steingold  <sds@gnu.org>
25983
25984	* modules/clx/new-clx/resource.lisp: add (from mit-clx with
25985	minor adaptations)
25986
259872005-04-06  Sam Steingold  <sds@gnu.org>
25988
25989	* modules/clx/new-clx/clx.f (set_resource_id, delete_resource_id): add
25990	(make_xid_obj_2): use set_resource_id()
25991	(XLIB::SAVE-ID, XLIB::DEALLOCATE-RESOURCE-ID, XLIB:KEYSYM)
25992	(XLIB::SET-GCONTEXT-DISPLAY): for CLUE
25993	(XLIB:KEYSYM->CHARACTER): use int_char()
25994	* modules/clx/new-clx/clx.lisp (GCONTEXT-DISPLAY): defsetf for CLUE
25995
259962005-04-06  Sam Steingold  <sds@gnu.org>
25997
25998	* .gdbinit (full): add commented-out module debugging infrastructure
25999
260002005-04-06  Sam Steingold  <sds@gnu.org>
26001
26002	* modules/clx/new-clx/clx.f (XLIB::%DISPLAY-XID): new function
26003	(XLIB:DISPLAY-XID): return it
26004	(display_hash_table): pass the arguments the usual way, not via STACK
26005	(lookup_xid): new function (mostly extracted from make_xid_obj_2)
26006	(make_xid_obj_2): use make_xid_obj_2()
26007	(XLIB::LOOKUP-RESOURCE-ID): implement using lookup_xid()
26008
260092005-04-05  Sam Steingold  <sds@gnu.org>
26010
26011	* case-sensitive.lisp: add CS-COMMON-LISP to *SYSTEM-PACKAGE-LIST*
26012	* exporting.lisp: add EXPORTING to *SYSTEM-PACKAGE-LIST*
26013	* modules/bindings/win32/win32.lisp: add WIN32 to *SYSTEM-PACKAGE-LIST*
26014	* modules/clx/mit-clx/package.lisp: add XLIB to *SYSTEM-PACKAGE-LIST*
26015	* modules/clx/new-clx/clx.lisp: add XLIB & XPM to *SYSTEM-PACKAGE-LIST*
26016	* modules/pari/pari.lisp: add PARI to *SYSTEM-PACKAGE-LIST*
26017
260182005-04-05  Sam Steingold  <sds@gnu.org>
26019
26020	* modules/postgresql/link.sh.in (TO_LOAD): add sql
26021	* modules/postgresql/sql.lisp: rewrite to export
26022	higher-level functionality
26023
260242005-04-05  Sam Steingold  <sds@gnu.org>
26025
26026	* modules/matlab/Makefile (DISTRIBFILES): add test.tst
26027
260282005-04-04  Sam Steingold  <sds@gnu.org>
26029
26030	* modules/matlab/wrap.lisp (copy-lisp-to-mxArray):
26031	rename from copy-lisp-to-matlab
26032	(copy-mxArray-to-lisp): rename from copy-matlab-to-lisp
26033	check that mxArrays have data
26034	(copy-lisp-to-matlab, copy-matlab-to-lisp): call them to copy variables
26035	(invert-matrix): reuse the engine
26036	* modules/matlab/matlab.lisp (engGetVisible, engSetVisible)
26037	(engOpenSingleUse): win32-only
26038	(mx_aref, set_mx_aref): fix 2dim<->1dim conversion
26039	(mx-aref-i): access the imaginary part
26040
260412005-04-03  Sam Steingold  <sds@gnu.org>
26042
26043	* modules/syscalls/posix.lisp (utmpx): new defstruct
26044	* modules/syscalls/calls.c (endutxent, getutxent, getutxid)
26045	(getutxline, pututxline, setutxent): implement
26046	* modules/syscalls/configure.in (endutxent, getutxent, getutxid)
26047	(getutxline, pututxline, setutxent): check
26048
260492005-04-02  Sam Steingold  <sds@gnu.org>
26050
26051	* modules/syscalls/posix.lisp (physical-memory) [unix]: fix
26052	SYSCONF arguments
26053
260542005-04-01  Sam Steingold  <sds@gnu.org>
26055
26056	* modules/matlab/matlab.lisp ("MATLAB"): exporting DEFVAR too
26057	(mx-aref): fix DEFSETF
26058	* modules/matlab/wrap.lisp (*command*, *engine*): new variables
26059	(with-engine, with-MATfile): new macros
26060	(engine, copy-lisp-to-matlab, copy-matlab-to-lisp, invert-matrix):
26061	new functions
26062	* modules/matlab/link.sh (PATH): set
26063
260642005-04-01  Sam Steingold  <sds@gnu.org>
26065
26066	* package.d (intern): when STRING comes from READ, it points to a
26067	re-usable buffer that will be overwritten during the CERROR i/o
26068	therefore we must copy and save it before CERROR
26069
260702005-04-01  Sam Steingold  <sds@gnu.org>
26071
26072	implement global error handlers
26073	* eval.d (invoke_handlers): call GLOBAL-HANDLER at the end
26074	* constsym.d (APPEASE-CERRORS, BATCHMODE-ERRORS, ABORT-ERRORS, LOOP):
26075	remove
26076	(APPEASE-CERROR, EXITUNCONDITIONALLY, EXITONERROR, ABORTONERROR)
26077	(INTERRUPT-CONDITION, SERIOUS-CONDITION, SET-GLOBAL-HANDLER)
26078	(GLOBAL-HANDLER): add
26079	* condition.lisp (set-global-handler): new exported function
26080	(batchmode-errors, abort-errors): remove
26081	* savemem.lisp (saveinitmem): accept :KEEP-GLOBAL-HANDLERS
26082	* spvw.d (appease_form): replaced with ...
26083	(install_global_handlers): new function
26084	(main_actions): call it just once; do not wrap anything
26085
260862005-04-01  Sam Steingold  <sds@gnu.org>
26087
26088	* modules/syscalls/calls.c (POSIX:SET-FILE-STAT):
26089	use I_to_UL() instead for I_to_L() for time conversion
26090	Reported by Aurelio Bignoli <clisp@bignoli.it>
26091
260922005-03-29  Sam Steingold  <sds@gnu.org>
26093
26094	* modules/syscalls/posix.lisp (getpgid, setpgrp, getsid, setsid, kill):
26095	export
26096	* modules/syscalls/calls.c (getpgid, setpgrp, getsid, setsid, kill):
26097	implement
26098	* modules/syscalls/configure.in: check for the above
26099
261002005-03-29  Sam Steingold  <sds@gnu.org>
26101
26102	* m4/alloca.m4: remove
26103	* configure.in: use AC_FUNC_ALLOCA instead of CL_ALLOCA
26104
261052005-03-29  Sam Steingold  <sds@gnu.org>
26106
26107	* modules/rawsock/rawsock.c (RAWSOCK:SOCKATMARK): add
26108	* modules/rawsock/configure.in: check for sockatmark()
26109	* modules/rawsock/sock.lisp (sockatmark): export
26110
261112005-03-29  Sam Steingold  <sds@gnu.org>
26112
26113	* genclisph.d (LISPFUN_F) [TYPECODES]: do no wrap gcv_nullobj
26114	with {} to avoid a gcc warning
26115
261162005-03-28  Sam Steingold  <sds@gnu.org>
26117
26118	* modules/clx/new-clx/clx.f (xlib_error_handler): use switch, not if
26119	(DEFINE_INTEGER_GETTER): also define get_##type_0 (default to 0)
26120	(get_ordering): default=Unsorted
26121	(get_modifier_mask): unbound -> 0
26122	(XLIB:SET-GCONTEXT-CLIP-MASK): rely on get_ordering() default
26123	(XLIB:CLEAR-AREA, XLIB:PUT-IMAGE, XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH)
26124	(XLIB:ALLOC-COLOR-CELLS, XLIB:ALLOC-COLOR-PLANES, XLIB:GET-PROPERTY)
26125	(XLIB:WARP-POINTER-IF-INSIDE, XLIB:WARP-POINTER-RELATIVE-IF-INSIDE)
26126	(XLIB:BELL): use get_##type_0
26127	(XLIB:GRAB-BUTTON, XLIB:UNGRAB-BUTTON, XLIB:GRAB-KEY, XLIB:UNGRAB-KEY):
26128	rely on get_modifier_mask() default
26129	(get_shape_kind): default=ShapeBounding
26130	(get_shape_operation): default=ShapeSet
26131	(XLIB:SHAPE-COMBINE): rely on these defaults
26132	(general_draw_text, XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH):
26133	remove the SIMPLE-STRING limitation
26134
261352005-03-28  Sam Steingold  <sds@gnu.org>
26136
26137	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): accept :DOCUMENTATION
26138	Suggested by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26139
261402005-03-26  Sam Steingold  <sds@gnu.org>
26141
26142	replaced -interactive-debug with -on-error <action>
26143	* spvw.d (usage): update
26144	(init_symbol_values): define_variable(report_error_print_backtrace)
26145	(on_error_t): new enum type
26146	(appease_form): first argument is an on_error_t
26147	(argv_actions): replaced argv_interactive_debug with argv_on_error
26148	(parse_options): parse -on-error
26149	(main_actions): wrap the REPL according to argv_on_error
26150	* constsym.d (report_error_print_backtrace, abort_errors, lloop): add
26151	* condition.lisp (*report-error-print-backtrace*): add
26152	(report-error): new function
26153	(exitunconditionally): use it
26154	(abort-on-error, abort-errors): add
26155	* reploop.lisp (*debug-mode*): init in defvar
26156	(print-backtrace): extract from DEBUG-BACKTRACE
26157	(debug-backtrace): use it
26158	(break-loop, step-hook-fn): bind *DEBUG-MODE* to self
26159
261602005-03-27  Sam Steingold  <sds@gnu.org>
26161
26162	* modules/syscalls/configure.in: use CL_RLIMIT instead of
26163	checking for getrlimit() and setrlimit() explicitly
26164	* modules/syscalls/calls.c (I_to_rlim, rlim_to_I): new functions
26165	(POSIX::RLIMIT, POSIX::SET-RLIMIT, check_rlimit): use them
26166
261672005-03-25  Sam Steingold  <sds@gnu.org>
26168
26169	* m4/rlimit.m4 (CL_RLIMIT): pre-compute sizeof(rlim_t)
26170
261712005-03-25  Bruno Haible  <bruno@clisp.org>
26172
26173	Fix clisp.c on Unix.
26174	* makemake.in (clisp): Set ENABLE_RELOCATABLE.
26175	* _clisp.c: Use ENABLE_RELOCATABLE to determine whether to call
26176	find_executable.
26177	(room_from_lisplibdir, room_for_localedir): Do not define when
26178	ENABLE_RELOCATABLE is given.
26179	(main): If find_executable fails, exit with code 1, not -1. Do not
26180	pollute Unix code with backslash handling. Perform a single memory
26181	allocation instead of two.
26182
261832005-03-25  Bruno Haible  <bruno@clisp.org>
26184
26185	* m4/general.m4 (CL_CANONICAL_HOST_CPU): Set host_cpu_instructionset
26186	instead of modifying host_cpu.
26187	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Set host_cpu_abi instead of
26188	modifying host_cpu.
26189	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Use host_cpu_abi instead of
26190	host_cpu.
26191
261922005-03-16  Bruno Haible  <bruno@clisp.org>
26193
26194	* m4/stdint.m4: Update from gnulib.
26195	* stdint_.h: New file, from gnulib.
26196	* stdint.h.in: Remove file.
26197	* makemake.in (stdint.h): Generate from stdint_.h instead of stdint.h.
26198	Substitute HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT.
26199	* configure.in: Call gl_STDINT_H instead of gt_STDINT_H.
26200
262012005-03-24  Sam Steingold  <sds@gnu.org>
26202
26203	* pathname.d (parse_logical_pathnamestring): when version is blank,
26204	parse_logical_word() returns NIL, but all_digits() assumes a string
26205	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
26206
262072005-03-22  Sam Steingold  <sds@gnu.org>
26208
26209	fix bug#250: Compiler bug, Occurred in SP-DEPTH at <0.
26210	* compiler.lisp (optimize-short): do not short the same refindex twice
26211
262122005-03-22  Sam Steingold  <sds@gnu.org>
26213
26214	* modules/berkeley-db/dbi.lisp, modules/bindings/glibc/wrap.lisp:
26215	* modules/dirkey/dirkey1.lisp, modules/matlab/wrap.lisp:
26216	* modules/netica/wrap.lisp, modules/rawsock/sock.lisp:
26217	* modules/regexp/regexp.lisp, modules/syscalls/posix.lisp:
26218	* modules/zlib/zlib.lisp: use PUSHNEW, not PUSH
26219	when adding to CUSTOM:*SYSTEM-PACKAGE-LIST*
26220
262212005-03-22  Sam Steingold  <sds@gnu.org>
26222
26223	* modules/wildcard/wildcard.lisp (*features*): add :WILDCARD
26224	Suggested by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26225
262262005-03-22  Bruno Haible  <bruno@clisp.org>
26227
26228	* build-aux: New directory, taking most files from autoconf/.
26229	* configure.in (CL_CANONICAL_HOST): Update.
26230	* modules/berkeley-db/configure.in (AC_CONFIG_AUX_DIR): Update.
26231	* modules/pcre/configure.in (AC_CONFIG_AUX_DIR): Update.
26232	* modules/postgresql/configure.in (AC_CONFIG_AUX_DIR): Update.
26233	* modules/pari/configure.in (AC_CONFIG_AUX_DIR): Update.
26234	* modules/regexp/configure.in (AC_CONFIG_AUX_DIR): Update.
26235
262362005-03-22  Sam Steingold  <sds@gnu.org>
26237
26238	* makemake.in (distrib) [win32]: fix 2005-03-10 patch: missing "; \\"
26239	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26240
262412005-03-21  Sam Steingold  <sds@gnu.org>
26242
26243	* modules/queens/queens.c, modules/queens/callqueens.c:
26244	use "modern" tools and formatting
26245
262462005-03-21  Sam Steingold  <sds@gnu.org>
26247
26248	* spvw.d (init_module_2): do not allow redefinition of symbols in
26249	locked packages
26250	this should prevent bugs like the LISTEN bug also fixed today
26251
262522005-03-21  Sam Steingold  <sds@gnu.org>
26253
26254	* modules/wildcard/wildcard.lisp: include <config.h>
26255	because it defines fnmatch as an alias to posix_fnmatch
26256	when the included fnmatch implementation is used
26257	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26258
262592005-03-21  Sam Steingold  <sds@gnu.org>
26260
26261	* modules/rawsock/rawsock.c (HTONL, NTOHL, HTONS, NTOHS): define
26262	even when the OS lacks the C functions; in that case, return the
26263	argument on the assumption that the host order is the same as the
26264	network order
26265
262662005-03-21  Sam Steingold  <sds@gnu.org>
26267
26268	* modules/rawsock/sock.lisp: shadow LISTEN
26269	* modules/rawsock/preload.lisp: ditto
26270	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26271
262722005-03-21  Sam Steingold  <sds@gnu.org>
26273
26274	* modules/postgresql/postgresql.lisp (PQinitSSL):
26275	commented out: not found in libpq 8.0
26276
262772005-03-21  Sam Steingold  <sds@gnu.org>
26278
26279	* modules/pcre/configure.in: use AC_LIB_LINKFLAGS([pcre])
26280	* modules/pcre/Makefile.in: use PCRECPPFLAGS instead of
26281	CPPFLAGS to pass the result of --with-pcre-prefix to CC
26282
262832005-03-21  Sam Steingold  <sds@gnu.org>
26284
26285	* modules/syscalls/posix.lisp (with-stream-lock): new macro
26286
262872005-03-20  Sam Steingold  <sds@gnu.org>
26288
26289	* modules/syscalls/calls.c (POSIX::DUPLICATE-HANDLE):
26290	fix STACK handling
26291
262922005-03-20  Sam Steingold  <sds@gnu.org>
26293
26294	* modules/syscalls/calls.c (POSIX:FILE-INFO):
26295	wrap FindClose() in begin_system_call()/end_system_call()
26296
262972005-03-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>
26298
26299	* modules/syscalls/calls.c (OS:PRIORITY): fix compilation
26300	on cygwin without HAVE_GETPRIORITY.
26301
263022005-03-18  Sam Steingold  <sds@gnu.org>
26303
26304	* makemake.in (EMACS_FILES): add clhs.el and clisp-ffi.el
26305
263062005-03-18  Sam Steingold  <sds@gnu.org>
26307
26308	* makemake.in (DEEMA): permit spaces in empty macro arguments
26309
263102005-03-18  Sam Steingold  <sds@gnu.org>
26311
26312	* execname.c (find_executable): avoid declaring variables in the
26313	middle of a block (OSX portability)
26314
263152005-03-18  Sam Steingold  <sds@gnu.org>
26316
26317	* spvw.d: DYNAMIC_FFI does not imply that dlopen() is present,
26318	need to check for HAVE_DLOPEN or WIN32_NATIVE
26319
263202005-03-18  Sam Steingold  <sds@gnu.org>
26321
26322	* modules/regexp/regex.c: check HAVE_ALLOCA_H before #include <alloca.h>
26323
263242005-03-18  Bruno Haible  <bruno@clisp.org>
26325
26326	* configure.in (AC_INIT): Use esyscmd to retrieve the version number.
26327	Suggested by Alexandre Duret-Lutz and Sam Steingold.
26328
263292005-03-17  Sam Steingold  <sds@gnu.org>
26330
26331	* makemake.in (distrib) [cygwin]: remove the target before ln
26332
263332005-03-17  Sam Steingold  <sds@gnu.org>
26334
26335	* modules/syscalls/calls.c (SET-FILE-STAT): add a cast to avoid
26336	a woe32 and MacOS X warning (and fix a bug)
26337
263382005-03-17  Sam Steingold  <sds@gnu.org>
26339
26340	* version.sh: bumped for yet another woe32/cygwin pre-test
26341
263422005-03-17  Sam Steingold  <sds@gnu.org>
26343
26344	* makemake.in (cygwin_check): fix the logic
26345
263462005-03-17  Sam Steingold  <sds@gnu.org>
26347
26348	* execname.c (find_executable) [LINUX|CYGWIN]: use
26349	"/proc/self/exe" instead of sprintf()+getpid()
26350
263512005-03-17  Sam Steingold  <sds@gnu.org>
26352
26353	* configure.in: test for realpath()
26354	* pathname.d (realpath): use the OS-supplied realpath()
26355	implementation when it is available (we can add a workability test
26356	when/if necessary)
26357
263582005-03-14  Bruno Haible  <bruno@clisp.org>
26359
26360	* debug.d (read_form): Do not delete input until EOL if the last char
26361	read from the stream was a newline. This fixes a multiline paste
26362	problem on MacOS X.
26363
263642005-03-14  Bruno Haible  <bruno@clisp.org>
26365
26366	* lispbibl.d (stream_get_lastchar): New declaration.
26367	* stream.d (stream_get_lastchar, stream_set_lastchar): New functions.
26368	(read_char): Update $lastchar after calling STREAM-READ-CHAR.
26369	(unread_char): Update $lastchar after calling STREAM-UNREAD-CHAR.
26370	(read_char_array): Update $lastchar after calling
26371	STREAM-READ-CHAR-SEQUENCE.
26372	(read_line): Update $lastchar after calling STREAM-READ-LINE.
26373	* gray.lisp (fundamental-character-input-stream): Add slot $lastchar.
26374
263752005-03-16  Sam Steingold  <sds@gnu.org>
26376
26377	* modules/syscalls/calls.c (STREAM-LOCK): fix STACK handling
26378
263792005-03-16  Sam Steingold  <sds@gnu.org>
26380
26381	* modules/postgresql/postgresql.lisp (PQgetCancel, PQfreeCancel)
26382	(PQcancel, PQserverVersion, PQgetssl, PQinitSSL, PQdsplen):
26383	add v8 functions
26384	* modules/postgresql/configure.in: check for v8
26385	do not check for crypt
26386
263872005-03-16  Sam Steingold  <sds@gnu.org>
26388
26389	* modules/clx/new-clx/clx.f (make_key_vector, XLIB:KEYBOARD-CONTROL)
26390	(XLIB:%RESTORE-GCONTEXT-COMPONENTS): wrap memcpy() with X_CALL
26391
263922005-03-15  Sam Steingold  <sds@gnu.org>
26393
26394	* modules/clx/new-clx/clx.f (get_enum, enum_error, DEF_ENUM_MAKER)
26395	(DEF_ENUM_GETTER, DEF_ENUM): remove
26396	use DEFCHECKER instead throughout the file
26397	(get_gcontext_key): replaced with a DEFCHECKER
26398	(check_modifier, check_event_mask): new DEFCHECKERs
26399	(get_modifier_mask, get_event_mask): use them
26400	(XLIB:MAKE-EVENT-KEYS): use check_event_mask_to_list()
26401	(XLIB:MAKE-EVENT-MASK): avoid consing
26402	(XLIB:MAKE-STATE-KEYS): use check_modifier_to_list()
26403	(XLIB:MAKE-STATE-MASK): use check_modifier()
26404	(check_propmode): new DEFCHECKER
26405	(XLIB:CHANGE-PROPERTY): use it
26406	(check_revert_focus): new DEFCHECKER
26407	(XLIB:SET-INPUT-FOCUS, XLIB:INPUT-FOCUS): use it
26408	(check_allow_events): new DEFCHECKER
26409	(XLIB:ALLOW-EVENTS): use it
26410	(check_yes_no): new DEFCHECKER
26411	(XLIB:SCREEN-SAVER, XLIB:SET-SCREEN-SAVER): use it
26412
264132005-03-14  Sam Steingold  <sds@gnu.org>
26414
26415	* utils/modprep.lisp (checker): new slot bitmasks
26416	(new-checker): accept bitmasks
26417	(print-tables-1): when bitmasks is supplied,
26418	output *_to_list() and *_from_list()
26419	* modules/syscalls/calls.c (check_chmod_mode): bitmasks=both
26420	(CONVERT-MODE): use check_chmod_mode_to_list()
26421	and check_chmod_mode_from_list()
26422
264232005-03-16  Sam Steingold  <sds@gnu.org>
26424
26425	* modules/regexp/Makefile.in (regex.o): remove -Dclisp
26426
264272005-03-14  Bruno Haible  <bruno@clisp.org>
26428
26429	* modules/syscalls/calls.c (POSIX::STREAM-LOCK): Make it compile
26430	with g++ 3.3 and 3.4.
26431
264322005-03-14  Bruno Haible  <bruno@clisp.org>
26433
26434	* spvw.d (init_module_2): Fix GC-safety bug.
26435
264362005-03-13  Bruno Haible  <bruno@clisp.org>
26437
26438	Make DEBUG_GCSAFETY work with modules.
26439	* lispbibl.d (gcv_nullobj): New macro.
26440	* subr.d (LISPFUN_F): Use gcv_nullobj instead of nullobj.
26441	* genclisph.d (main): Add definitions of gcinvariant_oint_p,
26442	gcinvariant_type_p, gcinvariant_type_sum, gcinvariant_type_aux,
26443	gcinvariant_object_p, nonimmsubrp, gcv_nullobj. Update definitions of
26444	gcv_object_t::operator object, gcv_object_t::gcv_object_t,
26445	pgci_pointable, ngci_pointable, LISPFUN_F.
26446
264472005-03-13  Bruno Haible  <bruno@clisp.org>
26448
26449	* genclisph.d (main): Reorder, to match the order of lispbibl.d.
26450
264512005-03-15  Sam Steingold  <sds@gnu.org>
26452
26453	* modules/clx/new-clx/clx.f (XPM:READ-FILE-TO-PIXMAP): use
26454	physical_namestring() instead of TRUENAME+NAMESTRING
26455	(xlib_rgb): new DEFFLAGSET
26456	(XLIB:STORE-COLOR, XLIB:STORE-COLORS): use it
26457
264582005-03-15  Bruno Haible  <bruno@clisp.org>
26459
26460	* makemake.in (pathname): Depend on execname.c also on Unix.
26461
264622005-03-15  Bruno Haible  <bruno@clisp.org>
26463
26464	* modules/regexp/regex.c: Upgrade from gnulib.
26465
264662005-03-14  Sam Steingold  <sds@gnu.org>
26467
26468	* condition.lisp (exitunconditionally): use PRETTY-PRINT-CONDITION
26469	instead of PRINT-CONDITION, like in reploop.lisp:BREAK-LOOP
26470
264712005-03-14  Sam Steingold  <sds@gnu.org>
26472
26473	* utils/modprep.lisp (string-upcase-verbose): do not upcase strings
26474
264752005-03-14  Sam Steingold  <sds@gnu.org>
26476
26477	* modules/syscalls/calls.c (SET-FILE-STAT): available when at
26478	least one of chmod(), chown() and utime() is available
26479	(my_chmod, my_chown, my_utime): auxiliaries
26480
264812005-03-14  Sam Steingold  <sds@gnu.org>
26482
26483	* modules/syscalls/posix.lisp (rlimit): add DEFSETF
26484	* modules/syscalls/calls.c (SET-RLIMIT): implement
26485
264862005-03-14  Sam Steingold  <sds@gnu.org>
26487
26488	* makemake.in (cygwin_check): make sure that no cygwin
26489	dependencies creep into the mingw builds
26490
264912004-03-12  Bruno Haible  <bruno@clisp.org>
26492
26493	* modules/regexp/configure.in: Add AC_CONFIG_AUX_DIR invocation.
26494
264952004-03-12  Bruno Haible  <bruno@clisp.org>
26496
26497	* modules/regexp/configure.in: Invoke AM_GNU_GETTEXT.
26498	* modules/regexp/regex.c: Do not include clisp.h.
26499
265002004-03-14  Bruno Haible  <bruno@clisp.org>
26501
26502	* m4/codeset.m4, m4/gettext.m4, m4/glibc2.m4, m4/glibc21.m4:
26503	* m4/iconv.m4, m4/intdiv0.m4, m4/intmax.m4, m4/inttypes.m4:
26504	* m4/inttypes_h.m4, m4/inttypes-pri.m4, m4/isc-posix.m4:
26505	* m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4:
26506	* m4/longdouble.m4, m4/longlong.m4, m4/nls.m4, m4/po.m4:
26507	* m4/printf-posix.m4, m4/progtest.m4, m4/signed.m4, m4/size_max.m4:
26508	* m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, m4/wchar_t.m4:
26509	* m4/wint_t.m4, m4/xsize.m4:
26510	Upgrade to gettext-0.14.3.
26511	* configure.in: Use gt_LC_MESSAGES instead of AM_LC_MESSAGES.
26512	Invoke gl_AC_TYPE_LONG_LONG instead of CL_LONGLONG.
26513	* m4/fenv_default.m4: Update for changed m4/longdouble.m4.
26514	* floatparam.c: Test HAVE_LONG_DOUBLE instead of HAVE_LONGDOUBLE.
26515
265162005-03-14  Sam Steingold  <sds@gnu.org>
26517
26518	* genclisph.d (endp): export
26519
265202005-03-14  Sam Steingold  <sds@gnu.org>
26521
26522	* modules/syscalls/configure.in (stat): check for struct members
26523	st_rdev, st_blksize and st_blocks
26524	* modules/syscalls/posix.lisp (file-stat): not just on Unix
26525	* modules/syscalls/calls.c (file-stat): when lstat() is not
26526	available, use stat() instead
26527	(check_chmod_mode): use DEFCHECKER
26528	(CONVERT-MODE): use check_chmod_mode_table
26529
265302005-03-14  Doug Currie  <e@flavors.com>
26531	    Sam Steingold  <sds@gnu.org>
26532
26533	* makemake.in: work around the woe32 stat(".../") bug: make sure
26534	that the -I argument does not end with a slash
26535	* berkeley-db/Makefile.in, bindings/win32/Makefile, dirkey/Makefile.in:
26536	* i18n/Makefile.in, matlab/Makefile, netica/Makefile, pcre/Makefile.in:
26537	* postgresql/Makefile.in, rawsock/Makefile.in, regexp/Makefile.in:
26538	* syscalls/Makefile.in, wildcard/Makefile.in, zlib/Makefile.in:
26539	(INCLUDES): remove the trailing slash
26540
265412005-03-14  Sam Steingold  <sds@gnu.org>
26542
26543	* modules/syscalls/calls.c (NZERO) [!NZERO]: define in the
26544	preamble so that it is defined before DEFCHECKER output
26545
265462005-03-14  Sam Steingold  <sds@gnu.org>
26547
26548	* modules/berkeley-db/configure.in: add AC_LIB_LINKFLAGS([db])
26549	* modules/berkeley-db/Makefile.in: pass DBCPPFLAGS to CC
26550	when building bdb.o
26551
265522005-03-12  Bruno Haible  <bruno@clisp.org>
26553
26554	* makemake.in (SHREXT): Rename from DLL.
26555	* clisp-link.in: Use @SHREXT@ instead of @DLL@.
26556
265572005-03-12  Bruno Haible  <bruno@clisp.org>
26558
26559	* modules/syscalls/calls.c: Assume limits.h exists.
26560	* modules/syscalls/configure.in: Do not test whether limits.h exists.
26561
265622005-03-12  Bruno Haible  <bruno@clisp.org>
26563
26564	* clisp-link.in (prepare_dynamic_module): Indentation.
26565
265662005-03-12  Arseny Slobodyuk  <ampy@users.sourceforge.net>
26567
26568	* makemake.in (ARGQ1, QQUOT): new variables.
26569	(clisp.1): fix for MSVC.
26570	(clisp.html): use the new vars to remove conditional.
26571
265722005-03-10  Sam Steingold  <sds@gnu.org>
26573
26574	relocatable driver on win32
26575	* pathname.d (find_executable): extract to ...
26576	* execname.c: new file
26577	* _clisp.c: include it
26578	* install.lisp, install.bat: use driver instead of batch file
26579	and runtime
26580	* makemake.in (pathname, clisp): depend on execname.c
26581	(clisp): build relocatable
26582	(distrib) [win32]: distribute clisp.exe, locale (when USE_GETTEXT)
26583	* version.sh: bumped
26584
265852005-03-10  Sam Steingold  <sds@gnu.org>
26586
26587	* m4/readline.m4 (CL_READLINE): add AC_ARG_WITH([readline])
26588	* configure.in: remove AC_ARG_WITH([readline])
26589
265902005-03-10  Sam Steingold  <sds@gnu.org>
26591
26592	* configure.in (AC_INIT): moved PACKAGE_NAME, PACKAGE_TARNAME and
26593	PACKAGE_BUGREPORT here
26594
265952005-03-08  Sam Steingold  <sds@gnu.org>
26596
26597	* lisparit.d (RANDOM): do not accept RATIOs
26598
265992005-03-08  Sam Steingold  <sds@gnu.org>
26600
26601	* modules/postgresql/configure.in: restore the second argument
26602	to AC_SEARCH_LIBS
26603
266042005-03-07  Sam Steingold  <sds@gnu.org>
26605
26606	* modules/regexp/regex.c [clisp]: include "clisp.h"
26607	* modules/regexp/gettext.h: add
26608	* modules/regexp/Makefile.in (regex.o): pass -I$(INCLUDES) -Dclisp
26609
266102005-03-07  Sam Steingold  <sds@gnu.org>
26611
26612	* m4/regexp.m4 (CL_REGEXP): add AC_ARG_WITH and some more tests
26613	* modules/regexp/configure.in: AC_ARG_WITH is in CL_REGEXP now
26614	the option is rename to included-regexp from sysre
26615
266162005-03-07  Sam Steingold  <sds@gnu.org>
26617
26618	* modules/syscalls/configure.in: use AC_FUNC_CHOWN
26619
266202005-03-07  Sam Steingold  <sds@gnu.org>
26621
26622	* m4/alloca.m4 (CL_ALLOCA): define HAVE_ALLOCA_H to 1 for
26623	compatibility with AC_FUNC_ALLOCA
26624
266252005-03-07  Sam Steingold  <sds@gnu.org>
26626
26627	* modules/regexp/regex.c, modules/regexp/regex.h:
26628	upgraded to gnulib CVS head
26629
266302005-03-07  Sam Steingold  <sds@gnu.org>
26631
26632	* debug.d, subr.d, constsym.d (CRASH): rename from DEBUG for
26633	better separation from CL
26634	* init.lisp: do not shadow SYS::DEBUG
26635	* compiler.lisp (parse-optimize-quality): no need for package
26636	prefix for DEBUG
26637
266382005-03-07  Bruno Haible  <bruno@clisp.org>
26639
26640	* lispbibl.d (UL_to_I) [DEBUG_GCSAFETY]: Define as a function, not as
26641	a macro.
26642	* intelem.d (UL_to_I): Update.
26643
266442005-03-07  Bruno Haible  <bruno@clisp.org>
26645
26646	* intelem.d (Q_to_I): Use minus_bit instead of -bit, to avoid a gcc
26647	warning.
26648
266492005-03-07  Bruno Haible  <bruno@clisp.org>
26650
26651	* stream.d (iconv_wcstombs): Fix 2005-03-01 patch that broke
26652	compilation when CC=g++.
26653
266542005-03-07  Bruno Haible  <bruno@clisp.org>
26655
26656	* arilev0.d (mulu32_, mulu32_unchecked, divu_3232_3232_)
26657	(divu_6432_3232_): Use ANSI C function declaration. Needed when CC=g++.
26658
266592005-03-07  Bruno Haible  <bruno@clisp.org>
26660
26661	Make HEAPCODES work on 64-bit platforms.
26662	* lispbibl.d (oint_type_shift, oint_type_len, oint_type_mask)
26663	(oint_data_shift, oint_data_len, oint_data_mask, garcol_bit_o)
26664	[HEAPCODES && WIDE_HARD]: Define appropriately.
26665	* misc.d (SYS::ADDRESS-OF): Make it work if HEAPCODES && WIDE.
26666	* intlog.d (I_ord2): Fix bug on 64-bit platforms.
26667
266682005-03-06  Sam Steingold  <sds@gnu.org>
26669
26670	* modules/syscalls/calls.c (OPENLOG, SETLOGMASK, %SYSLOG, CLOSELOG):
26671	implement a <syslog.h> interface
26672	* modules/syscalls/posix.lisp (openlog, setlogmask, syslog, closelog):
26673	export
26674	(syslog): thin wrapper over %SYSLOG, calling FORMAT
26675	* modules/syscalls/configure.in: check for the syslog facilities
26676
266772005-03-06  Sam Steingold  <sds@gnu.org>
26678
26679	fix bug#248: (optimize (debug 3)) fails
26680	* compiler.lisp (parse-optimize-quality): extract code from
26681	PROCESS-DECLARATIONS; use CL:DEBUG instead of DEBUG
26682	(process-declarations): use parse-optimize-quality
26683
266842005-03-03  Sam Steingold  <sds@gnu.org>
26685
26686	* built.d (built_flags): add libiconv version
26687
266882005-03-03  Sam Steingold  <sds@gnu.org>
26689
26690	ported DYNAMIC_MODULES to WIN32_NATIVE
26691	* spvw.d (libopen, find_name): moved here from foreign.d
26692	(get_module_symbol): new function
26693	(dynload_modules): use them (instead of dlopen and dlsym)
26694	* lispbibl.d (libopen, find_name): declare
26695	* foreign.d (libopen, find_name): moved to spvw.d
26696	(object_handle): surround find_name() with
26697	begin_system_call()/end_system_call()
26698
266992005-03-03  Sam Steingold  <sds@gnu.org>
26700
26701	* stream.d (oconv_unshift_output_unbuffered_)
26702	(oconv_unshift_output_buffered_): use OS_errno instead of errno
26703
267042005-03-02  Sam Steingold  <sds@gnu.org>
26705
26706	* modules/postgresql/postgresql.lisp (PQprepare, PQsendPrepare): add
26707	* modules/postgresql/sql.lisp: GETENV is in EXT, not SYS
26708
267092005-03-02  Sam Steingold  <sds@gnu.org>
26710
26711	* modules/syscalls/calls.c (check_priority_value): define
26712	separately on WIN32_NATIVE and UNIX: the former has a strict
26713	symbol-number map and pre-defined constants, while the latter has
26714	a lax reverse map and symbolic values are defined in-place
26715
267162005-03-02  Sam Steingold  <sds@gnu.org>
26717
26718	* utils/modprep.lisp (split-option): split only if #\= is unique
26719	(split-command): search for the final #\) :FROM-END
26720	(to-C-name, new-checker): cpp-name can be (:KEYWORD EXPRESSION)
26721	(word-list): call SPLIT-OPTION
26722	(print-tables-1): (:KEYWORD EXPRESSION) does not need #ifdef
26723
267242005-03-02  Sam Steingold  <sds@gnu.org>
26725
26726	* modules/syscalls/calls.c (check_priority_value): reverse=sint_to_I
26727	(OS:PRIORITY): use check_priority_value_reverse() as the return value
26728
267292005-03-02  Sam Steingold  <sds@gnu.org>
26730
26731	* utils/modprep.lisp (checker): add slot reverse
26732	(new-checker): accept reverse
26733	(print-tables-1): use reverse
26734
267352005-03-01  Sam Steingold  <sds@gnu.org>
26736
26737	* utils/modprep.lisp (checker): add slot suffix
26738	(to-C-name, new-checker): accept suffix
26739	(print-tables-1): use suffix
26740
267412005-03-01  Sam Steingold  <sds@gnu.org>
26742
26743	* modules/syscalls/configure.in: check for limits.h,
26744	getpriority and setpriority
26745	* modules/syscalls/posix.lisp (priority, process-id): export
26746	(priority): defsetf
26747	* modules/syscalls/calls.c (priority, set-priority): implement
26748
267492005-03-01  Sam Steingold  <sds@gnu.org>
26750
26751	* pathname.d (find_executable) [UNIX_CYGWIN32]: try to use
26752	/proc/<pid>/exe like on Linux
26753
267542005-03-01  Sam Steingold  <sds@gnu.org>
26755
26756	* misc.d (PROCESS-ID): rename from PROGRAM-ID for semantic
26757	compatibility with getpid and GetCurrentProcessId
26758	* constsym.d, subr.d: ditto
26759	* disassem.lisp (disassemble): ditto
26760
267612005-03-01  Sam Steingold  <sds@gnu.org>
26762
26763	* lispbibl.d [__MINGW32__]: include unixconf.h
26764
267652005-03-01  Sam Steingold  <sds@gnu.org>
26766
26767	* makemake.in: handle gettext identically on unix and windows
26768	(LIB) [win32gcc]: add $LIBICONV
26769	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26770
267712005-03-01  Sam Steingold  <sds@gnu.org>
26772
26773	* stream.d (open_iconv, iconv_mblen, iconv_mbstowcs, iconv_wcslen)
26774	(iconv_wcstombs, iconv_range): do not assume that errno is
26775	present, use OS_errno instead
26776	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
26777
267782005-02-28  Sam Steingold  <sds@gnu.org>
26779
26780	* comptran.d (N_N_expt_N): fix a GC-safety bug
26781
267822005-02-28  Sam Steingold  <sds@gnu.org>
26783
26784	fix c++ compilation
26785	* comptran.d (maybe_rebind): new macro, used throughout
26786
267872005-02-28  Bruno Haible  <bruno@clisp.org>
26788
26789	* pathname.d (find_executable) [WIN32]: Fix malloc usage bug introduced
26790	on 2005-02-24.
26791
267922005-02-28  Sam Steingold  <sds@gnu.org>
26793
26794	* win32.d (STDC_HEADERS): define to 1 explicitly for compatibility
26795	with autoconf
26796
267972005-02-28  Sam Steingold  <sds@gnu.org>
26798
26799	* autoconf/install-sh: add (from autoconf 2.59);
26800	required by AC_LIB_LINKFLAGS
26801
268022005-02-28  Sam Steingold  <sds@gnu.org>
26803
26804	* modules/postgresql/configure.in: use AC_LIB_LINKFLAGS([pq])
26805	* modules/postgresql/Makefile.in: use PQCPPFLAGS instead of
26806	CPPFLAGS to pass the result of --with-pq-prefix to CC
26807	* modules/pari/configure.in: use AC_LIB_LINKFLAGS instead of
26808	AC_LIB_LINKFLAGS_BODY
26809	* modules/pari/Makefile.in: use PARICPPFLAGS instead of CPPFLAGS
26810	to pass the result of --with-pari-prefix to CC
26811
268122005-02-28  Sam Steingold  <sds@gnu.org>
26813
26814	* modules/i18n/gettext.c (SET-LOCALE, LOCALE-CONV, res_to_obj)
26815	(locale_string_to_STACK): use *MISC-ENCODING* instead of UTF-8
26816	(get_locale_info) [WIN32_NATIVE]: do not use LOCALE_USE_CP_ACP
26817
268182005-02-27  Sam Steingold  <sds@gnu.org>
26819
26820	* clisp-link.in (link): rm $2 to avoid an error on Solaris
26821	this fixes one of the problems reported in bug#247
26822
268232005-02-20  Bruno Haible  <bruno@clisp.org>
26824
26825	* realtran.d (R_cosh_sinh_R_R): Remove start_p argument.
26826	(R_tanh_R): Update.
26827	* comptran.d (N_sin_N, N_cos_N, N_tan_N, N_sinh_N, N_cosh_N, N_tanh_N):
26828	Update.
26829
268302005-02-20  Bruno Haible  <bruno@clisp.org>
26831
26832	* realtran.d (R_ln_R): Remove start_p argument.
26833	(R_R_log_R): Update.
26834	* comptran.d (N_log_N, N_N_log_N, R_R_atanh_R_R, R_R_asinh_R_R)
26835	(N_acos_N, N_acosh_N): Update.
26836	* lisparit.d (log_digits): Update.
26837
268382005-02-20  Bruno Haible  <bruno@clisp.org>
26839
26840	* comptran.d (N_log_N): Remove start_p argument.
26841	(N_N_log_N, N_N_expt_N): Update.
26842	* lisparit.d (LOG): Update.
26843
268442005-02-24  Sam Steingold  <sds@gnu.org>
26845
26846	* lispbibl.d (HAVE_DISASSEMBLER): define always
26847	* misc.d (PROGRAM-ID): add a WIN32_NATIVE implementation
26848	* pathname.d (maybe_executable): only on UNIX
26849	(find_executable) [WIN32_NATIVE]: use GetModuleFileName()
26850	instead of GetCommandLine()
26851	* spvw.d (init_lowest_level): predicate find_executable() on
26852	HAVE_DISASSEMBLER, not on UNIX
26853
268542005-02-24  Bruno Haible  <bruno@clisp.org>
26855
26856	* makemake.in (ALL_LINGUAS): Look for configure.in in the right
26857	directory. Update default value. Do not enclose default value in
26858	double-quotes.
26859
268602005-02-22  Sam Steingold  <sds@gnu.org>
26861
26862	* modules/pari/pari.lisp (pari-1): gen_1 instead of gone
26863	(pari-2): gen_2 instead of gtwo
26864	(pari--1): gen_m1 instead of gminusone
26865
268662005-02-22  Sam Steingold  <sds@gnu.org>
26867
26868	* makemake.in (config.status): remove config.cache
26869	* configure: do not remove config.cache (this undoes the
26870	2002-07-21 change)
26871
268722005-02-22  Bruno Haible  <bruno@clisp.org>
26873
26874	* m4/mprotect.m4 (CL_MPROTECT): Actually invoke GL_NOCRASH.
26875
268762005-02-21  Sam Steingold  <sds@gnu.org>
26877
26878	* makemake.in (XCC_CREATESHARED): treat cygwin like linux and gnu
26879
268802005-02-21  Sam Steingold  <sds@gnu.org>
26881
26882	* modules/pari/configure.in, modules/pari/Makefile.in:
26883	AC_LIB_LINKFLAGS_BODY should work since 2005-02-16
26884
268852005-02-21  Sam Steingold  <sds@gnu.org>
26886
26887	* defpackage.lisp (defpackage): use SYS::%FIND-PACKAGE instead of
26888	FIND-PACKAGE to give a meaningful error for non-existent packages
26889
268902005-02-20  Bruno Haible  <bruno@clisp.org>
26891
26892	Fix wrong intermediate precision used in many transcendental function
26893	computations since 2002-09-11. Avoid unjustified contagion warnings.
26894	* realelem.d (R_float_digits): New function.
26895	* realtran.d (R_tan_R): New function, extracted from N_tan_N.
26896	(R_ln_R): Avoid computing 0*ln(2).
26897	(R_cosh_sinh_R_R): Small optim.
26898	(R_tanh_R): New function, extracted from N_tanh_N.
26899	* comptran.d (N_exp_N): Do not use F_extend2_F to extend b's precision;
26900	instead let R_cos_sin_R_R do it. Let R_exp_R increase the precision
26901	always. Avoid unjustified contagion warnings.
26902	(N_log_N): Do not use F_extend2_F to extend the precision; instead use
26903	F_extend_F. Small optim.
26904	(N_N_expt_N): Compute the needed precision correctly. Fix bug
26905	introduced on 2002-09-11: Do not waste time if x is a very long float
26906	and y is a short float.
26907	(N_sin_N): Fix bug introduced on 2002-09-11: If (realpart x) is the
26908	exact 0, return a complex number with realpart exact 0. Avoid
26909	unjustified contagion warnings.
26910	(N_cos_N): Handle the case of (realpart x) = 0 separately. Avoid
26911	unjustified contagion warnings.
26912	(N_tan_N): Use R_tan_R. Fix bug introduced on 2002-09-11: If
26913	(realpart x) is the exact 0, return a complex number with realpart
26914	exact 0. Avoid unjustified contagion warnings.
26915	(N_cis_N): Handle the case of (realpart x) = 0 separately. Fix bug
26916	introduced on 2002-09-11: (exp (- b)) was computed with too small
26917	precision. Avoid unjustified contagion warnings.
26918	(N_sinh_N): Fix bug introduced on 2002-09-11: If (realpart x) is the
26919	exact 0, return a complex number with realpart exact 0. Avoid
26920	unjustified contagion warnings.
26921	(N_cosh_N): Handle the case of (realpart x) = 0 separately. Avoid
26922	unjustified contagion warnings.
26923	(N_tanh_N): Use R_tanh_R. Fix bug introduced on 2002-09-11: If
26924	(realpart x) is the exact 0, return a complex number with realpart
26925	exact 0. Avoid unjustified contagion warnings.
26926	(R_R_atanh_R_R): Use F_extend_F instead of F_extend2_F.
26927
269282005-02-20  Bruno Haible  <bruno@clisp.org>
26929
26930	* describe.lisp (describe-object@package): Print information about
26931	case-sensitive or case-inverted packages.
26932	Suggested by Duane Rettig <duane@franz.com>.
26933
269342005-02-20  Bruno Haible  <bruno@clisp.org>
26935
26936	* package.d (init_packages): Add nickname "CS-USER" to package
26937	CS-COMMON-LISP-USER. Add nickname "CS-LISP" to package CS-COMMON-LISP.
26938	Suggested by Duane Rettig <duane@franz.com>.
26939
269402005-02-18  Bruno Haible  <bruno@clisp.org>
26941
26942	* utils/modprep.lisp (new-checker): Do not make the first enum element
26943	the default.
26944	* i18n/gettext.c (check_locale_category): Use LC_MESSAGES as default.
26945	* berkeley-db/bdb.c: Make all DEFCHECKER defaults explicit.
26946	* rawsock/rawsock.c: Likewise.
26947
269482005-01-23  Bruno Haible  <bruno@clisp.org>
26949
26950	* compiler.lisp (c-MULTIPLE-VALUE-SETQ): Eliminate assignments to
26951	symbols that occur later again in the symbol list.
26952	Found by Paul Dietz's ansi-tests test suite.
26953
269542005-02-17  Sam Steingold  <sds@gnu.org>
26955
26956	* makemake.in (anymodule): do not assume bash, just sh, when
26957	exporting a variable (fixed 2005-02-11 patch)
26958
269592005-02-17  Sam Steingold  <sds@gnu.org>
26960
26961	* modules/syscalls/calls.c (__EXTENSIONS__) [__sun]: define to
26962	enable confstr() prototype and avoid a gcc warning
26963
269642005-01-23  Bruno Haible  <bruno@clisp.org>
26965
26966	* compiler.lisp (test-argument-syntax): When NIL is passed instead
26967	of a keyword, to a function expecting keyword arguments, signal it
26968	and return NIL instead of STATIC-KEYS.
26969	Found by Paul Dietz's ansi-tests test suite.
26970
269712005-02-17  Bruno Haible  <bruno@clisp.org>
26972
26973	* makemake.in (VERSION, CLISP_VERSION, BASE_MODULES): Move out of the
26974	customizable section.
26975
269762005-02-16  Bruno Haible  <bruno@clisp.org>
26977
26978	* configure: Accept --enable and --disable options and pass them down.
26979	* makemake.in: Accept --enable and --disable options.
26980	(module_configure_flags): New variable.
26981	(MODULE_CONFIGURE_FLAGS): New variable.
26982	(anymodule): Pass MODULE_CONFIGURE_FLAGS to subordinate configure.
26983
269842005-02-16  Bruno Haible  <bruno@clisp.org>
26985
26986	Make it possible again to use Makefile.devel without having clisp
26987	installed.
26988	* Makefile.devel (GCC_INSTALL_DIR): Define as a macro, not as a
26989	variable.
26990	(install-gcc): Use it once only.
26991	Reported by Duane Rettig <duane@franz.com>.
26992
269932005-02-16  Bruno Haible  <bruno@clisp.org>
26994
26995	* makemake.in: Use the config.cache in the main build dir only if it
26996	exists. Fixes bug introduced on 2005-02-11.
26997
269982005-02-17  Bruno Haible  <bruno@clisp.org>
26999
27000	Simplify the version handling.
27001	* version.sh: New file.
27002	* configure.in: Source the version.sh file. Call AC_INIT without
27003	arguments. Set PACKAGE_NAME, PACKAGE_TARNAME, PACKAGE_VERSION,
27004	PACKAGE_STRING, PACKAGE_BUGREPORT ourselves.
27005	* makemake.in (version): Remove variable.
27006	(VERSION): Define using the PACKAGE_VERSION, not the src/VERSION file.
27007	(Makefile): Do not depend on VERSION.
27008	(config.status): Depend on version.sh.
27009	(VERSION): Remove rule.
27010	(clisp.html, clisp.1, clisp-1.html): Do not depend on VERSION.
27011	(install-doc): Use the VERSION variable from this Makefile.
27012	(TOPDIR): Define using the PACKAGE_VERSION, not the src/VERSION file.
27013	(distrib): Use the VERSION variable from this Makefile.
27014	(clean7): Do not remove VERSION.
27015	* configure: Use version.sh, not VERSION. Do not symlink VERSION.
27016	* Makefile.devel (all): Remove src/VERSION.
27017	(src/VERSION): Remove rule.
27018	(src/version.h): Generate from version.sh, not using src/configure.
27019	(VER): Define using version.sh.
27020	(src-distrib): Do not depend on src/VERSION.
27021	(src--distrib): Do not touch src/VERSION.
27022	* po/po_header: Use version.sh, not VERSION.
27023	* po/Makefile.devel (clisp.pot, en.po, clisplow.pot): Depend on
27024	version.sh, not VERSION.
27025
270262005-02-16  Sam Steingold  <sds@gnu.org>
27027
27028	* modules/rawsock/rawsock.c: use SOCKLEN_T instead of socklen_t
27029	and uint.. instead of uint.._t
27030
270312005-02-16  Sam Steingold  <sds@gnu.org>
27032
27033	DEFCHECKER now accepts option-like arguments foo=bar
27034	* utils/modprep.lisp (split-option): new function
27035	(split-command): use it
27036	(new-flag-set): do not accept :TYPE and :PREFIX
27037	(checker): new slots ENUM-P and DEFAULT
27038	(new-checker): accept :DEFAULT and :ENUM
27039	(def-something-p): simplified
27040	(formatln): new macro
27041	(print-tables-1): reinstated defaults
27042	(check-signature): generated errors call GETTEXT
27043	and use ~S instead of ~
27044	* modules/berkeley-db/bdb.c, modules/i18n/gettext.c:
27045	* modules/rawsock/rawsock.c, modules/syscalls/calls.c: update
27046
270472005-02-16  Sam Steingold  <sds@gnu.org>
27048
27049	* modules/regexp/regexi.c (regexp_exec_flags): new DEFFLAGSET
27050	(REGEXP-EXEC): use it and posfixnum_default2()
27051
270522005-01-23  Bruno Haible  <bruno@clisp.org>
27053
27054	* compiler.lisp (c-DEPOSIT-FIELD): Fix bug introduced on 2004-04-04.
27055	Found by Paul Dietz's ansi-tests test suite.
27056
270572005-02-16  Bruno Haible  <bruno@clisp.org>
27058
27059	* clos-package.lisp: Add "MOP" as nickname of package "CLOS".
27060
270612005-02-15  Bruno Haible  <bruno@clisp.org>
27062
27063	* autoconf/config.dynamic: New file, based on libtool-1.5.10.
27064
270652005-02-15  Sam Steingold  <sds@gnu.org>
27066
27067	* init.lisp (open-for-load): use DIRECTORY instead of PROBE-DIRECTORY
27068
270692005-02-15  Bruno Haible  <bruno@clisp.org>
27070
27071	* error.d (write_errorstring): Undo 2004-12-24 change: Do not call
27072	elastic_newline here.
27073	(end_error): Call elastic_newline here.
27074
270752005-01-23  Bruno Haible  <bruno@clisp.org>
27076
27077	* compiler.lisp (c-error): Fix bug introduced on 2005-01-13.
27078	Found by Paul Dietz's ansi-tests test suite.
27079
270802005-02-14  Sam Steingold  <sds@gnu.org>
27081
27082	* init.lisp (open-for-load): open the file only if there is no
27083	directory with this name
27084
270852005-02-14  Sam Steingold  <sds@gnu.org>
27086
27087	* modules/pcre/Makefile.in, modules/regexp/Makefile.in:
27088	* modules/rawsock/Makefile.in (DISTRIBFILES): add preload.lisp
27089
270902005-02-14  Sam Steingold  <sds@gnu.org>
27091
27092	* defs1.lisp (require): search in *LIB-DIRECTORY*/dynmod too
27093	* makemake.in (install): install dynmod
27094	(distrib): distribute dynmod
27095	* clisp-link.in (prepare_dynamic_module): new function: prepare
27096	the loading infrastructure for the current dynamic module
27097	(add-module-set, add-module-sets): call it
27098
270992005-02-14  Sam Steingold  <sds@gnu.org>
27100
27101	* makemake.in (DLL): new platform-dependent variable
27102	(clisp-link): substitute it
27103	* clisp-link.in: use @DLL@ instead of the literal `.so'
27104
271052005-02-14  Sam Steingold  <sds@gnu.org>
27106
27107	* eval.d (parse_dd): declaration processing should not modify code
27108
271092005-02-13  Bruno Haible  <bruno@clisp.org>
27110
27111	* utils/modprep.lisp (print-tables-1): For DEFCHECKER, do not do a
27112	unbound to 0 conversion and a 0 to NIL conversion.
27113
271142005-02-13  Bruno Haible  <bruno@clisp.org>
27115
27116	* i18n/gettext.c (I18N:GETTEXT): Let the category argument default
27117	to LC_MESSAGES.
27118	(I18N:NGETTEXT): Likewise. Small optimizations.
27119
271202005-02-13  Bruno Haible  <bruno@clisp.org>
27121
27122	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Assume that only AIX on RS6000
27123	have non-executable malloc'ed memory, not other operating systems.
27124	For MacOS X.
27125
271262005-02-13  Bruno Haible  <bruno@clisp.org>
27127
27128	Avoid core dumps during autoconfiguration.
27129	* m4/nocrash.m4: New file.
27130	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Use GL_NOCRASH.
27131	* m4/ffcall-ireg.m4 (CL_IREG_FLOAT_RETURN): Use GL_NOCRASH.
27132	* m4/ffcall-pccstruct.m4 (CL_PCC_STRUCT_RETURN): Use GL_NOCRASH.
27133	* m4/ffcall-smallstruct.m4 (CL_SMALL_STRUCT_RETURN): Use GL_NOCRASH.
27134	* m4/mmap.m4 (CL_MMAP): Use GL_NOCRASH.
27135	* m4/mprotect.m4 (CL_MPROTECT): Use GL_NOCRASH.
27136
271372005-02-13  Bruno Haible  <bruno@clisp.org>
27138
27139	* stream.d (finish_tty_output, clear_tty_output): On MacOS X, ignore
27140	ENODEV as well. It occurs for a handle pointing to /dev/null.
27141
271422005-01-23  Bruno Haible  <bruno@clisp.org>
27143
27144	* .gdbinit (ansi_tests): Remove unneeded *disassemble-use-live-process*
27145	setting.
27146
271472005-01-23  Bruno Haible  <bruno@clisp.org>
27148
27149	* compiler.lisp (process-declarations): Add syntax check for most other
27150	declaration types.
27151
271522005-02-13  Sam Steingold  <sds@gnu.org>
27153
27154	* stream.d (error_unless_invalid) [WIN32_NATIVE]: new function:
27155	ignore ERROR_INVALID_PARAMETER in addition to ERROR_INVALID_HANDLE
27156	and ERROR_INVALID_FUNCTION
27157	(clear_tty_input, clear_tty_output) [WIN32_NATIVE]: use it
27158	Found by Paul Dietz's ansi-tests test suite.
27159
271602005-01-22  Bruno Haible  <bruno@clisp.org>
27161
27162	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Generate references to CAR,
27163	CDR, SVREF with *denv*.
27164	(c-VAR, c-FUNCTION): Update.
27165	(simplify): Do not drop (CAR), (CDR), (SVREF) in non-for-value position
27166	if SAFETY = 3.
27167	Found by Paul Dietz's ansi-tests test suite.
27168
271692005-02-11  Sam Steingold  <sds@gnu.org>
27170
27171	* stream.d (get_standard_output_file_stream): in batch mode on
27172	win32 terminal_stream may be _closed_, so restore my 2005-01-31
27173	fix which was remove on 2005-02-04
27174
271752005-02-11  Sam Steingold  <sds@gnu.org>
27176
27177	* makemake.in (anymodule): pass CC to configure only if it was
27178	actually set (fixed the 2004-03-15 patch)
27179
271802005-02-11  Sam Steingold  <sds@gnu.org>
27181
27182	* compiler.lisp (parse-optimize-quality): work in interpreter too
27183	* eval.d (parse_dd): call NOTE-OPTIMIZE
27184
271852005-01-22  Bruno Haible  <bruno@clisp.org>
27186
27187	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Generate a SYMBOL-FUNCTION
27188	instruction with reference to *denv*.
27189	(c-FUNCTION): Likewise with null environment.
27190	(simplify): Do not drop (SYMBOL-FUNCTION) in non-for-value position if
27191	SAFETY = 3.
27192	Found by Paul Dietz's ansi-tests test suite.
27193
271942005-02-10  Sam Steingold  <sds@gnu.org>
27195
27196	handle OPTIMIZE PROCLAIMations
27197	* control.d (PROCLAIM): handle OPTIMIZE declarations
27198	* constsym.d (note_optimize): add for PROCLAIM
27199	* compiler.lisp (*optimize*): new: keep OPTIMIZE PROCLAIMations here
27200	(parse-optimize-quality): new: check OPTIMIZE declaration
27201	(declared-optimize): use *OPTIMIZE* for global settings;
27202	use ASSOC because PROCESS-DECLARATIONS calls PARSE-OPTIMIZE-QUALITY
27203	(process-declarations): use CASE instead of COND
27204	use PARSE-OPTIMIZE-QUALITY to canonicalize OPTIMIZE declarations
27205	(note-optimize): new: record global OPTIMIZE declarations in *OPTIMIZE*
27206	(c-PROCLAIM): handle OPTIMIZE PROCLAIMations using NOTE-OPTIMIZE
27207
272082005-02-10  Bruno Haible  <bruno@clisp.org>
27209
27210	* compiler.lisp (declared-declaration): New function.
27211	(process-declarations): Use it.
27212
272132005-01-22  Bruno Haible  <bruno@clisp.org>
27214
27215	* compiler.lisp (c-GLOBAL-FUNCTION-CALL): Fix bug introduced on
27216	2003-12-30.
27217
272182005-02-09  Bruno Haible  <bruno@clisp.org>
27219
27220	* type.lisp (%the): Add comments about the (VALUES ...) type specifier.
27221
272222005-02-10  Bruno Haible  <bruno@clisp.org>
27223
27224	* compiler.lisp (declared-optimize): Revert last patch: Do not use POP.
27225
272262005-02-09  Sam Steingold  <sds@gnu.org>
27227
27228	* compiler.lisp (declared-optimize): use POP
27229	(c-GLOBAL-FUNCTION-CALL): simplified control flow
27230
272312005-02-09  Sam Steingold  <sds@gnu.org>
27232
27233	* charstrg.d (coerce_char): accept SYS::INPUT-CHARACTER
27234	* constsym.d (input_character, input_character_char): add
27235	* init.lisp (char-key): export
27236	* xcharin.lisp (char-key): implement
27237
272382005-02-08  Bruno Haible  <bruno@clisp.org>
27239
27240	* type.lisp (safe-typep): Accept an env argument and return a second
27241	value, like SUBTYPEP does.
27242	* subtypep.lisp (STANDARD-OBJECT): Handle (FUNCTION ...) types.
27243	(canonicalize-type): Accept (FUNCTION ...) and (VALUES ...) type
27244	specifiers.
27245	(canonicalized-types-equal-p): Accept (FUNCTION ...) and (VALUES ...)
27246	type specifiers.
27247	(subtypep, subtypep-logic): Call safe-typep instead of typep and
27248	handle the possibility of unknown subresults.
27249
272502005-01-22  Bruno Haible  <bruno@clisp.org>
27251
27252	* compiler.lisp: Fix comments that confused the seclass of an anode
27253	with the seclass of a function.
27254	(declared-optimize): New function.
27255	(f-side-effect): If SAFETY = 3, assume the worst.
27256	(c-GLOBAL-FUNCTION-CALL): Likewise.
27257	Found by Paul Dietz's ansi-tests test suite.
27258
272592005-01-22  Bruno Haible  <bruno@clisp.org>
27260
27261	* compiler.lisp (c-TEST/TEST-NOT): Rewrite. Fixes multiple invalid
27262	optimizations.
27263	Found by Paul Dietz's ansi-tests test suite.
27264
272652005-02-08  Bruno Haible  <bruno@clisp.org>
27266
27267	* m4/libtool.m4: Upgrade to libtool-1.5.12.
27268
272692005-02-07  Sam Steingold  <sds@gnu.org>
27270
27271	* spvw.d (parse_options): fix "--help" and "-help"
27272
272732005-02-07  Bruno Haible  <bruno@clisp.org>
27274
27275	* built.d (built_flags): Use DYNAMIC_ARRAY instead of alloca().
27276
272772005-02-07  Bruno Haible  <bruno@clisp.org>
27278
27279	* foreign.d (FFI:CLOSE-FOREIGN-LIBRARY): Assign value1 only after
27280	calling close_library().
27281
272822005-02-07  Bruno Haible  <bruno@clisp.org>
27283
27284	* foreign.d (object_handle): Fix the GCTRIGGER statement.
27285
272862005-02-07  Bruno Haible  <bruno@clisp.org>
27287
27288	* spvw_sigsegv.d (print_mem_stats): Fix fprintf statements for 64-bit
27289	platforms.
27290
272912005-02-07  Bruno Haible  <bruno@clisp.org>
27292
27293	* spvw.d (INVALID_ARG): Rename from ILLEGAL_ARG.
27294	(parse_options): Use term "invalid" instead of "illegal".
27295
272962005-02-07  Bruno Haible  <bruno@clisp.org>
27297
27298	* spvw.d (init_module_2, usage, arg_error): Use symmetric quotes,
27299	instead of `...'.
27300
273012005-01-22  Bruno Haible  <bruno@clisp.org>
27302
27303	* compiler.lisp (c-DIRECT-FUNCTION-CALL): Fix error and wrong warning
27304	when a call is compiled that has :ALLOW-OTHER-KEYS T and other keyword
27305	arguments.
27306	Found by Paul Dietz's ansi-tests test suite.
27307
273082005-02-06  Sam Steingold  <sds@gnu.org>
27309
27310	* configure: accept --with-dynamic-modules
27311
273122005-02-05  Sam Steingold  <sds@gnu.org>
27313
27314	* control.d (SYMBOL-MACROLET, LET*, MULTIPLE-VALUE-BIND):
27315	always activate all SPECIAL declarations
27316	* eval.d (funcall_iclosure): ditto
27317
273182005-02-05  Sam Steingold  <sds@gnu.org>
27319
27320	* cfgwin32.lisp (*load-paths*): use the common "**" instead of
27321	the CLISP-specific "..." for :WILD-INFERIORS
27322
273232005-02-05  Sam Steingold  <sds@gnu.org>
27324
27325	free the mallocs!
27326	* built.d (built_flags): return an object,
27327	use alloca() instead of malloc()
27328	* lispbibl.d (built_flags): update the prototype
27329	* spvw.d (init_object_tab): update the built_flags() invocation
27330
273312005-02-04  Bruno Haible  <bruno@clisp.org>
27332
27333	* built.d (built_flags): Append libsigsegv version if known.
27334
273352005-02-04  Bruno Haible  <bruno@clisp.org>
27336
27337	* init.lisp: Export clos:standard-accessor-method.
27338	* clos-package.lisp: Likewise.
27339	Reported by Pascal Costanza <pc@p-cos.net>.
27340
273412005-01-27  Bruno Haible  <bruno@clisp.org>
27342
27343	* clos-class1.lisp (built-in-class): Add slot $prototype.
27344	(*<built-in-class>-prototype-location*): New constant.
27345	(*<built-in-class>-instance-size*): Increment.
27346	(structure-class): Add slot $prototype.
27347	(*<structure-class>-prototype-location*): New constant.
27348	(*<structure-class>-instance-size*): Increment.
27349	* clos-class3.lisp (shared-initialize-<built-in-class>): Add prototype
27350	argument. Initialize the $prototype slot with it.
27351	(shared-initialize-<structure-class>): Initialize the $prototype slot
27352	to nil.
27353	(<t>, <character>, <function>, ...): Initialize with a prototype.
27354	* clos-class4.lisp (shared-initialize@built-in-class): Add prototype
27355	argument.
27356	* clos-class6.lisp (class-prototype): Accept also built-in-class and
27357	structure-class instances.
27358
273592005-01-22  Bruno Haible  <bruno@clisp.org>
27360
27361	* compiler.lisp (compile): If there were errors, return an error-
27362	signaling closure, not NIL.
27363	(compiled-with-errors): New function.
27364	Found by Paul Dietz's ansi-tests test suite.
27365
273662005-02-04  Bruno Haible  <bruno@clisp.org>
27367
27368	* stream.d (get_standard_output_file_stream): Reuse terminal stream
27369	only if it allows character output.
27370
273712005-02-02  Sam Steingold  <sds@gnu.org>
27372
27373	* pathname.d: reverted some of the 2005-01-31 patch
27374	(substitute_resolved_path): remove
27375	(assure_dir_exists) [WIN32_NATIVE]: use MERGE-PATHNAMES instead
27376	[UNIX]: reverted
27377
273782005-02-02  Sam Steingold  <sds@gnu.org>
27379
27380	* genclisph.d (perseverance_t): ensure the constants have the
27381	right values (like with all the other enums)
27382
273832005-02-01  Sam Steingold  <sds@gnu.org>
27384
27385	* foreign.d (close_library): new function
27386	(exit_ffi): use it
27387	(FFI:CLOSE-FOREIGN-LIBRARY): implement
27388	* constsym.d, subr.d (close_foreign_library): add
27389	* foreign1.lisp (FFI:CLOSE-FOREIGN-LIBRARY): export
27390
273912005-02-01  Sam Steingold  <sds@gnu.org>
27392
27393	* foreign.d (find_library): extract from FFI::FOREIGN-LIBRARY
27394	(FFI::FOREIGN-LIBRARY): use it; fix a GC-safety bug
27395	(object_handle): maygc only if retry_p is true
27396
273972005-02-01  Sam Steingold  <sds@gnu.org>
27398
27399	* modules/syscalls/calls.c (POSIX::LGAMMA): finished the
27400	2005-01-24 patch: HAVE_DECL_* is always defined to either 0 or 1
27401
274022005-02-01  Sam Steingold  <sds@gnu.org>
27403
27404	* modules/i18n/gettext.c (get_locale_info) [WIN32_NATIVE]: define
27405	for I18N:LANGUAGE-INFORMATION even when HAVE_LOCALECONV is defined
27406	which can happen on mingw which has localeconv() but not
27407	nl_langinfo(); do not require begin_system_call()/end_system_call()
27408	wrap and use my_realloc() and my_malloc()
27409	Reported by Yaroslav Kavenchuk <kavenchuk@jenty.by>
27410	(my_atoi) [WIN32_NATIVE]: new function
27411	(thousands_sep_to_STACK, locale_int_to_STACK)
27412	(locale_bool_to_STACK): use it
27413
274142005-02-01  Sam Steingold  <sds@gnu.org>
27415
27416	* spvw.d (my_realloc): new function for modules
27417	* genclisph.d (my_realloc): export
27418
274192005-02-01  Sam Steingold  <sds@gnu.org>
27420
27421	* modules/syscalls/calls.c (getrlimit_arg): do not define unless
27422	HAVE_GETRLIMIT is defined
27423
274242005-01-31  Sam Steingold  <sds@gnu.org>
27425
27426	* modules/clx/new-clx/clx.f: use skipSTACK() instead of popSTACK()
27427	to avoid a gcc warning
27428
274292005-01-31  Sam Steingold  <sds@gnu.org>
27430
27431	* exporting.lisp (export-structure-accessories): reverted the
27432	2005-01-27 patch: export accessors for direct slots, not effective
27433	slots: first, the indirect slots may be "private" - defined
27434	elsewhere and not under exporting.lisp; second, there is no way to
27435	get accessors names from an EFFECTIVE-SLOT-DEFINITION
27436
274372005-01-31  Sam Steingold  <sds@gnu.org>
27438
27439	* stream.d (rd_ch_keyboard) [WIN32_NATIVE]: recognize many more keys
27440
274412005-01-31  Sam Steingold  <sds@gnu.org>
27442
27443	* spvw_sigsegv.d (print_mem_stats): new function
27444	(sigsegv_handler_failed, stackoverflow_handler): call it
27445
274462005-01-31  Sam Steingold  <sds@gnu.org>
27447
27448	fix TRUENAME on WIN32: it used to lose :VERSION :NEWEST
27449	* pathname.d (substitute_resolved_path): new function, extracted
27450	from assure_dir_exists/unix
27451	(assure_dir_exists): use it on both UNIX and WIN32
27452
274532005-01-31  Sam Steingold  <sds@gnu.org>
27454
27455	* stream.d (get_standard_output_file_stream): reuse
27456	terminal_stream only if it is still open
27457
274582005-01-31  Sam Steingold  <sds@gnu.org>
27459
27460	print diagnostics instead of usage on argument error
27461	* spvw.d (arg_error, ILLEGAL_ARG): add
27462	(parse_options): call them instead of usage()
27463
274642005-01-30  Sam Steingold  <sds@gnu.org>
27465
27466	* lispbibl.d (activate_specdecl, specdecled_p): moved here from
27467	* control.d: here
27468	(specdecled_): global
27469	* eval.d (funcall_iclosure): activate SPECDECL bindings together
27470	with the variable bindings
27471
274722005-01-30  Sam Steingold  <sds@gnu.org>
27473
27474	* lispbibl.d (SET_BIT, CLR_BIT): moved here from ...
27475	* control.d: here
27476	* eval.d: use SET_BIT & CLR_BIT
27477
274782005-01-30  Sam Steingold  <sds@gnu.org>
27479
27480	activate SPECDECL bindings
27481	* control.d (specdecled_): extract from make_variable_frame()
27482	(specdecled_p, activate_specdecl): new macros
27483	(make_variable_frame): also return SPECDECL bindings pointer and count
27484	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND):
27485	also activate SPECDECL bindings
27486
274872005-01-29  Sam Steingold  <sds@gnu.org>
27488
27489	* modules/berkeley-db/bdb.c (fill_dbt): use I_to_LEbytes()
27490	(dbt_to_object): use LEbytes_to_I()
27491
274922005-01-29  Sam Steingold  <sds@gnu.org>
27493
27494	* genclisph.d (I_integer_length): export
27495
274962005-01-23  Bruno Haible  <bruno@clisp.org>
27497
27498	* foreign1.lisp (with-defining-c-type): Put the declarations from
27499	the body at the right place, so they can affect the c-type binding.
27500
275012005-01-23  Bruno Haible  <bruno@clisp.org>
27502
27503	* macros2.lisp (with-output-to-string): Evaluate the element-type
27504	form outside, not inside, the scope of the declarations.
27505	Found by Paul Dietz's ansi-tests test suite.
27506
275072005-01-22  Bruno Haible  <bruno@clisp.org>
27508
27509	Improved error checking for the handling of references from local macro
27510	definitions to bindings and declarations in the outer lexical
27511	environment.
27512	* control.d (macrolet): Add a marker to the venv and fenv being
27513	passed to make-macro-expander.
27514	* defmacro.lisp (make-macro-expander): Add a marker to the venv and
27515	fenv being constructed.
27516	* eval.d (symbol_env_search, sym_function): Respect the MACROLET
27517	markers. Signal an error if an invalid reference from inside a
27518	macroexpander is seen.
27519	* init.lisp (fenv-assoc, venv-assoc): Likewise.
27520	* compiler.lisp (fenv-search, venv-search): Likewise.
27521
275222005-01-27  Bruno Haible  <bruno@clisp.org>
27523
27524	* clos-class3.lisp (checked-compute-slots): Tweak an error message.
27525
275262005-01-28  Bruno Haible  <bruno@clisp.org>
27527
27528	* socket.d (host_fn_t, with_host, string_to_addr1, string_to_addr)
27529	(resolve_host1): Use const where appropriate.
27530	* genclisph.d (main): Update.
27531
275322005-01-28  Bruno Haible  <bruno@clisp.org>
27533
27534	* lispbibl.d (udigits_to_I): Remove declaration.
27535	* intelem.d (udigits_to_I): Remove function.
27536	* socket.d (string_to_addr1): Call LEbytes_to_UI instead of
27537	udigits_to_I.
27538	* genclisph.d (main): Do not emit udigits_to_I declaration.
27539
275402005-01-28  Bruno Haible  <bruno@clisp.org>
27541
27542	* lispbibl.d (FAKE_8BIT_VECTOR): New macro.
27543	(LEbytes_to_UI, LESbvector_to_UI, LEbytes_to_I, LESbvector_to_I)
27544	(UI_to_LEbytes, I_to_LEbytes): New declarations.
27545	* intserial.d: New file, mostly extracted from stream.d.
27546	* lisparit.d: Include intserial.c.
27547	* stream.d (bitbuff_iu_I): Use LESbvector_to_UI.
27548	(bitbuff_is_I): Use LESbvector_to_I.
27549	(bitbuff_ixu_sub): Remove bytesize argument. Use UI_to_LEbytes.
27550	Do not call ASSERT_wr_int here.
27551	(wr_by_ixu_sub): Call ASSERT_wr_int here. Update.
27552	(bitbuff_ixs_sub): Remove bytesize argument. Use I_to_LEbytes.
27553	Do not call ASSERT_wr_int here.
27554	(wr_by_ixs_sub): Call ASSERT_wr_int here. Update.
27555	(WRITE-INTEGER): Update.
27556	* genclisph.d (main): Emit declarations for LEbytes_to_UI,
27557	LEbytes_to_I, UI_to_LEbytes, I_to_LEbytes.
27558	* makemake.in (LISPARIT_SUBFILES): Add intserial.
27559	* po/Makefile.devel (DSOURCES): Add intserial.
27560
275612005-01-28  Bruno Haible  <bruno@clisp.org>
27562
27563	* io.d (pr_readlabel): Fix C++ compilation.
27564
275652005-01-28  Bruno Haible  <bruno@clisp.org>
27566
27567	* makemake.in (check-fresh-line): Reduce the scope of the test on
27568	Woe32.
27569
275702005-01-23  Bruno Haible  <bruno@clisp.org>
27571
27572	* clos-methcomb2.lisp (build-effective-method-function-form): Do not
27573	use the single method's fast-function as effective-method if the
27574	effective-method must also do keyword argument checking or if the
27575	method occurs among the duplicates set of the method-combination.
27576	Found by Paul Dietz's ansi-tests test suite.
27577
275782005-01-23  Bruno Haible  <bruno@clisp.org>
27579
27580	Make it possible to macroexpand a TRACE form referring to functions
27581	that are not yet defined.
27582	* trace.lisp (trace): Move the check-traceable to execution time.
27583	Remove the check-traceable call.
27584	(trace1): Perform the check-traceable call here.
27585	Found by Paul Dietz's ansi-tests test suite.
27586
275872005-01-23  Bruno Haible  <bruno@clisp.org>
27588
27589	New condition type ARGUMENT-LIST-DOTTED.
27590	* lispbibl.d (argument_list_dotted): New enum value.
27591	* error.d (end_error): For type argument-list-dotted, expect the
27592	:datum argument on the stack.
27593	* eval.d (fehler_apply_zuwenig): Add 'tail' argument.
27594	(fehler_subr_zuwenig, fehler_closure_zuwenig): Likewise.
27595	(apply_subr, apply_closure): Pass the remaining args atom as tail.
27596	(funcall_subr, funcall_closure): Pass NIL as tail.
27597	(interpret_bytecode_): For UNLIST, UNLIST*, pass the tail.
27598	* condition.lisp (argument-list-dotted, simple-argument-list-dotted):
27599	New condition classes.
27600	(%defclcs call): Update.
27601	Found by Paul Dietz's ansi-tests test suite.
27602
276032005-01-23  Bruno Haible  <bruno@clisp.org>
27604
27605	* format.lisp (formatter-main-1): Implement handling of ~^ inside
27606	~<...~>.
27607	Found by Paul Dietz's ansi-tests test suite.
27608
276092005-01-22  Bruno Haible  <bruno@clisp.org>
27610
27611	Make the handling of references from local macro definitions to
27612	SPECIAL declarations in the outer lexical environment ANSI CL
27613	compliant.
27614	* compiler.lisp (venv-search): Verify that only non-special VAR structs
27615	occur in *venv*.
27616	(push-*venv*): For special variable bindings or SPECIAL declarations,
27617	push #<SPECDECL>, not a VAR struct.
27618
276192005-01-27  Bruno Haible  <bruno@clisp.org>
27620
27621	* pathname.d (parse_logical_host_prefix): Fix STACK corruption bug
27622	introduced on 2002-12-20.
27623
276242005-01-27  Bruno Haible  <bruno@clisp.org>
27625
27626	* makemake.in (interpreted.mem, halfcompiled.mem, lispinit.mem)
27627	(lispinit2.mem): Exit with error code if an error occurs.
27628
276292005-01-27  Bruno Haible  <bruno@clisp.org>
27630
27631	* clos-class3.lisp (structure-undefine-accessories): Remove function,
27632	moved to defstruct.lisp.
27633	* defstruct.lisp (structure-undefine-accessories): Remove preliminary
27634	definition.
27635	(defstruct): Update.
27636	(structure-slots, structure-instance-size, structure-kconstructor)
27637	(structure-boa-constructors, structure-copier, structure-predicate):
27638	New functions.
27639	(structure-undefine-accessories): Moved here from clos-class3.lisp.
27640	Do nothing if name is not currently defined as a structure type.
27641	* clos-class6.lisp (class-direct-slots@symbol): Remove method.
27642	((setf class-direct-slots)): Back to a plain function expecting a
27643	<defined-class> instance.
27644	(class-instance-size, (setf class-instance-size)): Likewise.
27645	(class-kconstructor, (setf class-kconstructor)): Turn into a plain
27646	function expecting a <structure-class> instance.
27647	(class-boa-constructors, (setf class-boa-constructors)): Likewise.
27648	(class-copier, (setf class-copier)): Likewise.
27649	(class-predicate, (setf class-predicate)): Likewise.
27650	* exporting.lisp (export-structure-accessories): Rename from
27651	export-accessories. Use the list of effective slot names, not the
27652	list of direct slot names.
27653	(defstruct, def-c-struct): Update.
27654
276552005-01-27  Sam Steingold  <sds@gnu.org>
27656
27657	* stream.d (check_endianness_arg): rename from test_endianness_arg()
27658	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT): call
27659	check_endianness_arg() before check_stream() for GC-safety
27660
276612005-01-26  Sam Steingold  <sds@gnu.org>
27662
27663	* stream.d (same_handle_p): add debugging infrastructure
27664
276652005-01-22  Bruno Haible  <bruno@clisp.org>
27666
27667	* init.lisp (in-package): Execute at compile-time only if it occurs
27668	as a top-level form.
27669	Found by Paul Dietz's ansi-tests test suite.
27670
276712005-01-22  Bruno Haible  <bruno@clisp.org>
27672
27673	* makemake.in (check-ansi-tests-debug): Make more similar to the
27674	check-ansi-tests target.
27675	(check-ansi-tests-compiled, check-ansi-tests-compiled-debug): New
27676	targets.
27677	(check): Depend on check-ansi-tests-compiled.
27678
276792005-01-22  Bruno Haible  <bruno@clisp.org>
27680
27681	* compiler.lisp (c-FUNCALL-INLINE): Fix long-standing bug in the
27682	handling of SPECIAL-declared optional variables: If the initforms
27683	of these variables come from the lambdalist, use sequential calls to
27684	c-bind-movable-var-anode instead of c-parallel-bind-movable-var-anode.
27685
276862005-01-22  Bruno Haible  <bruno@clisp.org>
27687
27688	Allow bignums as read-label values.
27689	* lispbibl.d (Rectype_BigReadLabel): New enum item.
27690	(BigReadLabel): New type.
27691	(bigreadlabel_length): New macro.
27692	(small_read_label_value): New macro.
27693	(TheBigReadLabel): New macro.
27694	(big_read_label_p, allocate_big_read_label): New macros.
27695	* spvw_circ.d (subst, subst_circ_mark): Support BigReadLabel.
27696	(subst_circ_unmark): Update.
27697	* io.d (lookup_label): Support big integers as well. Can trigger GC
27698	now.
27699	(label_definition_reader): Update.
27700	(pr_readlabel): Use small_read_label_value. Add support for
27701	BigReadLabel.
27702	(pr_orecord): Support BigReadLabel.
27703	* predtype.d (TYPE-OF, CLASS-OF): Add support for BigReadLabel.
27704	(enum_hs_big_read_label): New enum value.
27705	(heap_statistics_mapper): Add support for BigReadLabel.
27706	Found by Paul Dietz's ansi-tests test suite.
27707
277082005-01-26  Bruno Haible  <bruno@clisp.org>
27709
27710	* places.lisp (setf): Handle (SETF (VALUES-LIST ...) ...) correctly,
27711	although there can be no SETF expander for VALUES-LIST.
27712
277132005-01-25  Sam Steingold  <sds@gnu.org>
27714
27715	* stream.d (MAKE-STREAM): handle_to_stream() already duplicates
27716	the handle, do not do it here
27717
277182005-01-25  Sam Steingold  <sds@gnu.org>
27719
27720	* install.lisp: use EXT:STRING-CONCAT instead of CONCATENATE 'STRING
27721	(*clisp-linkset*): new variable
27722	(*clisp-runtime*, *clisp-args*): use it
27723
277242005-01-25  Bruno Haible  <bruno@clisp.org>
27725
27726	* i18n/configure.in: Do not test for locale.h and setlocale.
27727	* i18n/gettext.c: Assume <string.h>, <locale.h>, setlocale() exist.
27728
277292005-01-24  Bruno Haible  <bruno@clisp.org>
27730
27731	* stream.d (read_byte, wr_ch_unbuffered_unix)
27732	(wr_ch_array_unbuffered_unix, wr_ch_unbuffered_mac)
27733	(wr_ch_array_unbuffered_mac, wr_ch_unbuffered_dos)
27734	(wr_ch_array_unbuffered_dos, wr_ch_buffered_unix)
27735	(wr_ch_array_buffered_unix, wr_ch_buffered_mac)
27736	(wr_ch_array_buffered_mac, wr_ch_buffered_dos)
27737	(wr_ch_array_buffered_dos): Do not assume that when the input of
27738	Encoding_wcstombs is nonempty, the output is nonempty as well.
27739	For example, glibc converts #\U000E0000 to an empty multibyte
27740	sequence for most encodings.
27741	Reported by Pascal Bourguignon.
27742
277432005-01-24  Bruno Haible  <bruno@clisp.org>
27744
27745	* intelem.d (udigits_to_I): Use 'var'.
27746	* utils/gctrigger.d (convert): Likewise.
27747
277482005-01-24  Bruno Haible  <bruno@clisp.org>
27749
27750	* configure.in: Add check for dvipdf.
27751	* makemake.in: Generate and install clisp.pdf only if DVIPDF is
27752	nonempty.
27753
277542005-01-24  Bruno Haible  <bruno@clisp.org>
27755
27756	* syscalls/configure.in: Check whether lgamma_r is declared, assuming
27757	that it is defined in this case.
27758	* syscalls/calls.c (POSIX:LGAMMA): Use lgamma_r only if it's declared.
27759	Needed for FreeBSD 4.0, which has lgamma and lgamma_r, but declares
27760	lgamma_r only if _REENTRANT is defined.
27761
277622005-01-24  Bruno Haible  <bruno@clisp.org>
27763
27764	* i18n/gettext.c (do_gettext, do_ngettext): Do not define if
27765	GNU_GETTEXT is not defined. Needed for platforms without gettext().
27766	* makemake.in (BASE_MODULES): Add i18n always.
27767
277682005-01-22  Bruno Haible  <bruno@clisp.org>
27769
27770	* lispbibl.d (small_read_label_type): Rename from read_label_type.
27771	(make_small_read_label): Rename from make_read_label.
27772	(small_read_label_integer_p): Rename from read_label_integer_p.
27773	(small_read_label_p): Rename from read_label_p.
27774	* spvw_circ.d (subst_circ_mark, subst_circ_unmark, subst): Update.
27775	* io.d (lookup_label, prin_object_dispatch): Update.
27776	* hashtabl.d (sxhash_atom): Update.
27777	* predtype.d (TYPE-OF, CLASS-OF): Update.
27778
277792005-01-23  Bruno Haible  <bruno@clisp.org>
27780
27781	Implement the scope of other free declarations as ANSI CL 3.3.4
27782	specifies it. ANSI CL issue <DECLARATION-SCOPE:NO-HOISTING>.
27783	* compiler.lisp (process-declarations): Return the other declspecs as a
27784	fifth value.
27785	(push-*denv*): New function.
27786	(c-LAMBDABODY, c-LET/LET*, c-LOCALLY, c-MULTIPLE-VALUE-BIND)
27787	(c-SYMBOL-MACROLET, c-FUNCALL-INLINE): Call push-*denv* immediately
27788	before compiling the body-forms.
27789
277902005-01-21  Bruno Haible  <bruno@clisp.org>
27791
27792	Implement the scope of free SPECIAL declarations as ANSI CL 3.3.4
27793	specifies it. ANSI CL issue <DECLARATION-SCOPE:NO-HOISTING>.
27794	* compiler.lisp (c-LAMBDABODY,c-LET/LET*, c-MULTIPLE-VALUE-BIND)
27795	(c-FUNCALL-INLINE): Call push-specials immediately before
27796	compiling the body-forms, not at the beginning.
27797
277982005-01-24  Sam Steingold  <sds@gnu.org>
27799
27800	* defpackage.lisp (defpackage): duplicate USE-PACKAGE is OK
27801
278022005-01-24  Bruno Haible  <bruno@clisp.org>
27803
27804	* defpackage.lisp (defpackage): Let :case-sensitive and :case-inverted
27805	options override the default provided by :modern.
27806
278072005-01-24  Sam Steingold  <sds@gnu.org>
27808
27809	* modules/bindings/glibc/linux.lisp, modules/bindings/win32/win32.lisp:
27810	* modules/matlab/matlab.lisp, modules/netica/netica.lisp:
27811	* modules/pari/pari.lisp, modules/postgresql/postgresql.lisp:
27812	* modules/wildcard/wildcard.lisp: use :MODERN in DEFPACKAGE
27813
278142005-01-24  Sam Steingold  <sds@gnu.org>
27815
27816	* defpackage.lisp (defpackage): accept :MODERN argument
27817
278182005-01-24  Sam Steingold  <sds@gnu.org>
27819
27820	* makemake.in (BASE_MODULES): add i18n only when USE_GETTEXT is true
27821
278222005-01-24  Sam Steingold  <sds@gnu.org>
27823
27824	* makemake.in (clisp.rc) [win32]: depend on clisp.ico
27825
278262005-01-23  Bruno Haible  <bruno@clisp.org>
27827
27828	* utils/clispload.lisp (*expected-failures*): Update.
27829
278302005-01-23  Bruno Haible  <bruno@clisp.org>
27831
27832	Move long strings out of macroexpansions.
27833	* pprint.lisp (pprint-logical-block-both-error)
27834	(pprint-logical-block-prefix-not-string-error)
27835	(pprint-logical-block-suffix-not-string-error): New functions,
27836	extracted from pprint-logical-block.
27837	(pprint-logical-block): Use them.
27838
278392005-01-23  Bruno Haible  <bruno@clisp.org>
27840
27841	* fill-out.lisp (with-fill-stream): Simplify a no-op.
27842
278432005-01-23  Bruno Haible  <bruno@clisp.org>
27844
27845	* compiler.lisp (*declaration-types*): Add cs-cl:string.
27846
278472005-01-22  Bruno Haible  <bruno@clisp.org>
27848
27849	* stream.d (streamp): Change seclass from seclass-foldable to
27850	seclass-read.
27851
278522005-01-22  Bruno Haible  <bruno@clisp.org>
27853
27854	* init.lisp: Export the type ext:global-symbol-macro.
27855
278562005-01-22  Bruno Haible  <bruno@clisp.org>
27857
27858	* io.d (pr_readlabel): Use oint_data_shift, not oint_addr_shift.
27859
278602005-01-22  Bruno Haible  <bruno@clisp.org>
27861
27862	* compiler.lisp: Indentation fixes.
27863
278642005-01-22  Bruno Haible  <bruno@clisp.org>
27865
27866	* compiler.lisp (*toplevel-name*): New variable.
27867	(compile-toplevel-form): Drop (declare (special *toplevel-name*)).
27868
278692005-01-23  Bruno Haible  <bruno@clisp.org>
27870
27871	* exporting.lisp (export-accessories): Also export the copier's name.
27872	Fixes bug introduced on 2005-01-04.
27873
278742005-01-23  Bruno Haible  <bruno@clisp.org>
27875
27876	* describe.lisp (apropos): Terminate the output with an elastic-newline,
27877	not a fresh-line. But output nothing if the symbol list is empty.
27878
278792005-01-23  Bruno Haible  <bruno@clisp.org>
27880
27881	* foreign1.lisp (do-c-lines): Fully check the first argument already
27882	in the first etypecase. Allow format-control functions instead of a
27883	format string.
27884
278852005-01-23  Bruno Haible  <bruno@clisp.org>
27886
27887	* spvw.d (print_license, print_banner): Optimize: Use fresh_line as C
27888	function.
27889
278902005-01-23  Bruno Haible  <bruno@clisp.org>
27891
27892	* io.d (interpret_feature, FEATUREP): Optimize 2005-01-12 patch:
27893	Use boundp instead of streamp. Also fix comment.
27894
278952005-01-23  Bruno Haible  <bruno@clisp.org>
27896
27897	* io.d (SYS::SET-READTABLE-CASE): Optimize after 2004-12-18 patch.
27898
278992005-01-02  Bruno Haible  <bruno@clisp.org>
27900
27901	* condition.lisp (appease-cerror): Do not convert the error message
27902	to a string before signaling it, as this leads to ugly output.
27903	Example: (appease-cerrors
27904	           (cerror "foo" "bar ~S"
27905	             (make-sequence 'list 30 :initial-element 0 :update #'1+)))
27906
279072005-01-21  Sam Steingold  <sds@gnu.org>
27908
27909	* spvw_fault.d (handle_read_fault): fix the mingw build by using
27910	OS_set_errno(0) instead of errno=0
27911
279122005-01-21  Sam Steingold  <sds@gnu.org>
27913
27914	* control.d (make_variable_frame): fix the check whether the
27915	variable is special
27916
279172005-01-21  Sam Steingold  <sds@gnu.org>
27918
27919	* control.d (SET_BIT): new macro
27920	(make_variable_frame, activate_bindings, LET*, SYMBOL-MACROLET):
27921	(MULTIPLE-VALUE-BIND): use it
27922
279232005-01-21  Sam Steingold  <sds@gnu.org>
27924
27925	* condition.lisp (handler-bind): use the function syntax for
27926	%HANDLER-BIND
27927	* compiler.lisp (quote-p): new function
27928	(l-constantp, c-constantp): use it
27929	(c-form-table): do not handle HANDLER-BIND specially
27930	(c-HANDLER-BIND): handle HANDLER-BIND in function syntax
27931	* init.lisp (%expand-form): do not handle %HANDLER-BIND specially
27932	* clos-class3.lisp (reinitialize-instance-<defined-class>):
27933	use the function syntax for %HANDLER-BIND
27934	* clos-genfun4.lisp (generic-function-undeterminedp): ditto
27935	* clos-methcomb2.lisp (any-method-combination-check-options): ditto
27936
279372005-01-21  Sam Steingold  <sds@gnu.org>
27938
27939	fix bug#239: strange soft links in subdirectory full
27940	* clisp-link.in (CDPATH): unset
27941
279422005-01-20  Bruno Haible  <bruno@clisp.org>
27943
27944	* stream.d (get_standard_output_file_stream)
27945	(get_standard_error_file_stream): Return *terminal-io* if this is
27946	needed to avoid a FRESH-LINE bug.
27947	* makemake.in (check-fresh-line): New rule.
27948	(check): Depend on it.
27949
279502005-01-20  Bruno Haible  <bruno@clisp.org>
27951
27952	* init.lisp (symbol-to-keyword): Rename from symbol-keyword.
27953	* defmacro.lisp (analyze-key): Update.
27954	* lambdalist.lisp (analyze-lambdalist)
27955	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist):
27956	Update.
27957	* type.lisp (%the): Update.
27958	* defstruct.lisp (defstruct): Update.
27959	* foreign1.lisp (c-struct-constructor): Update.
27960
279612005-01-20  Bruno Haible  <bruno@clisp.org>
27962
27963	* stream.d (terminal_stream_p): Avoid crash when the stream is a
27964	Gray stream.
27965
279662005-01-20  Bruno Haible  <bruno@clisp.org>
27967
27968	* format.lisp (format-character): Fix bug introduced on 2004-12-21.
27969
279702004-12-24  Bruno Haible  <bruno@clisp.org>
27971
27972	* clx/mit-clx/dependent.lisp (open-x-stream): Fix when display /= 0.
27973
279742005-01-15  Bruno Haible  <bruno@clisp.org>
27975
27976	* clos-class1.lisp (print-object-<potential-class>): Improve
27977	output when *package* is a case-sensitive package.
27978
279792005-01-02  Bruno Haible  <bruno@clisp.org>
27980
27981	* condition.lisp (maybe-continue): Remove function.
27982	(muffle-cerror, appease-cerror): Inline maybe-continue.
27983
279842005-01-20  Sam Steingold  <sds@gnu.org>
27985
27986	* control.d (activate_bindings): new function (extracted from LET)
27987	(LET, LOCALLY): use it
27988
279892005-01-20  Sam Steingold  <sds@gnu.org>
27990
27991	* control.d (LET, LET*, MULTIPLE-VALUE-BIND): simplified control flow
27992
279932005-01-20  Bruno Haible  <bruno@clisp.org>
27994
27995	* eval.d (symbol_env_search): Fix definition of binds_sym_p.
27996
279972005-01-20  Bruno Haible  <bruno@clisp.org>
27998
27999	* stream.d (listen_handle): Use 'var'.
28000
280012005-01-20  Bruno Haible  <bruno@clisp.org>
28002
28003	* makemake.in (cflags.h.stamp): Use $(MV), not $(CP).
28004
280052005-01-20  Bruno Haible  <bruno@clisp.org>
28006
28007	* io.d (structure_reader): Accept also strings and characters as slot
28008	names, and use test_stringsymchar_arg for converting them to a string.
28009
280102005-01-20  Bruno Haible  <bruno@clisp.org>
28011
28012	* charstrg.d (test_stringsymchar_arg): Remove redundant code.
28013
280142005-01-20  Bruno Haible  <bruno@clisp.org>
28015
28016	* utils/clispload.lsp (*expected-failures*): Update.
28017
280182005-01-20  Bruno Haible  <bruno@clisp.org>
28019
28020	* io.d (list2_reader): If *read-suppress* is true, return NIL.
28021
280222005-01-19  Sam Steingold  <sds@gnu.org>
28023
28024	* control.d (make_variable_frame): the initial special binding is
28025	inactive
28026
280272005-01-19  Sam Steingold  <sds@gnu.org>
28028
28029	* eval.d (funcall_iclosure): when reserving space for variable
28030	bindings, the actual size depends on varframe_binding_size
28031
280322005-01-19  Arseny Slobodyuk  <ampy@users.sourceforge.net>
28033
28034	Fix MSVC build
28035	* makemake.in (cflags.h.stamp): simplified for nmake.
28036	* win32.d: ssize_t defined for MICROSOFT.
28037	* stream.d (listen_handle): do not declare a variable in the
28038	middle of a code block.
28039	* utils/gctrigger.d (convert): the same.
28040
280412005-01-02  Bruno Haible  <bruno@clisp.org>
28042
28043	* condition.lisp (find-noninteractively-invokable-continue-restart):
28044	New function.
28045	(maybe-continue, exitonerror): Use it.
28046
280472005-01-01  Bruno Haible  <bruno@clisp.org>
28048
28049	* condition.lisp (maybe-continue): For a restart that requires user
28050	interaction, do not duplicate the break-loop's functionality; let the
28051	break-loop do it.
28052
280532005-01-17  John Hinsdale  <hin@alma.com>
28054
28055	* modules/oracle/orafns.c, oracle.lisp: Support RowId data type
28056
280572005-01-17  Sam Steingold  <sds@gnu.org>
28058
28059	DEFCHECKER now accepts new "PREFIX" argument
28060	* utils/modprep.lisp (prev-non-blank): made more robust
28061	(*commands*, split-command, argument-string)
28062	(ensure-argument-string): add
28063	(defmodule-p): use SPLIT-COMMAND
28064	(checker): new slot PREFIX
28065	(to-C-name): new function
28066	(new-flag-set, new-checker): :CONDITION is now a &KEY argument;
28067	also accept :TYPE & :PREFIX
28068	(word-list): rewrote; return the un-reversed list
28069	(def-something-p): accept a NAME->CONSTRUCTOR alist; pass TYPE and
28070	PREFIX to constructor
28071	(parse): call DEF-SOMETHING-P just once
28072	(print-tables-1): respect PREFIX when printing checkers
28073	* modules/i18n/gettext.c (check_locale_category): use prefix "LC"
28074	* modules/rawsock/rawsock.c (check_socket_domain): use prefix "AF"
28075	(check_socket_type): use prefix "SOCK"
28076	(check_socket_protocol): use prefix "ETH_P"
28077	* modules/syscalls/calls.c (sysconf_arg): use prefix "_SC"
28078	(confstr_arg): use prefix "_CS"
28079	(getrlimit_arg): use prefix "RLIMIT"
28080	(mknod_type_check): use prefix "S"
28081	* modules/berkeley-db/bdb.c (txn_check_sync): use prefix "DB_TXN"
28082	(check_lk_detect, check_lockmode): use prefix "DB_LOCK"
28083	(dbe_encryption_check, db_get_action, db_put_action, dbc_get_action)
28084	(dbc_put_flag, logc_get_action): use prefix "DB"
28085	(txn_timeout_check): use prefix "DB_SET"
28086
280872005-01-01  Bruno Haible  <bruno@clisp.org>
28088
28089	* condition.lisp (exitonerror): Treat non-meaningful or interactive
28090	CONTINUE restarts like absent.
28091
280922005-01-01  Bruno Haible  <bruno@clisp.org>
28093
28094	* condition.lisp (maybe-continue): Ignore the CONTINUE restart if it
28095	is not meaningful: In a handler, it's better to decline than to call
28096	invoke-debugger.
28097
280982005-01-13  Sam Steingold  <sds@gnu.org>
28099
28100	* compiler.lisp: use STRING-CONCAT instead of (CONCATENATE 'STRING)
28101
281022005-01-13  Sam Steingold  <sds@gnu.org>
28103
28104	* compiler.lisp (c-comment): call FRESH-LINE & ELASTIC-NEWLINE here
28105	(c-warn, c-error, match-known-unknown-functions, c-report-problems):
28106	do not prepend "~&" nor append "~." to the format string
28107	This fixes a bug when C-WARN did not terminate with an ELASTIC-NEWLINE.
28108
281092005-01-13  Sam Steingold  <sds@gnu.org>
28110
28111	* stream.d (stream_handles): handle SYNONYM-STREAMs
28112	Reported by <ayan@ayan.net>
28113
281142005-01-13  Sam Steingold  <sds@gnu.org>
28115
28116	* inspect.lisp (inspect-frontend): use (FORMAT "~&~S~%") instead
28117	of PRIN1 for :M & :E; print conditions with ~A
28118
281192005-01-01  Bruno Haible  <bruno@clisp.org>
28120
28121	Make APPEASE-CERRORS and MUFFLE-CERRORS treat conditions with a
28122	nontrivial :interactive function the same as assert-restart-prompt.
28123	* condition.lisp (assert-failed): Drop explicit name for interactive
28124	function.
28125	(maybe-continue): Test the restart-interactive function against the
28126	trivial one. Generalize the special case for assert-restart-prompt.
28127
281282005-01-12  Sam Steingold  <sds@gnu.org>
28129
28130	* .gdbinit (boot): new command (formerly known as "base")
28131	(base): new command (similar to full)
28132
281332005-01-12  Sam Steingold  <sds@gnu.org>
28134
28135	add FEATUREP (http://clrfi.alu.org/clrfi/clrfi-1-featurep)
28136	* io.d (interpret_feature): STACK_1 may not be a stream
28137	(FEATUREP): implement
28138	* constsym.d, subr.d (featurep): add
28139	* init.lisp (featurep): export
28140
281412005-01-12  Sam Steingold  <sds@gnu.org>
28142
28143	* makemake.in (BASE_MODULES): add syscalls and regexp
28144
281452005-01-09  Bruno Haible  <bruno@clisp.org>
28146
28147	Put the i18n module into the 'base' linking set. Needed for all kinds
28148	of internationalized programs and the GNU gettext test suite.
28149	* makemake.in (BASE_MODULES): New variable.
28150	(all): Depend on both 'boot' and 'base'.
28151	(boot): New target, like old 'base'.
28152	(base): New target, similar to 'full'.
28153	(distmakefile): Do not replace BASE_LIBS and BASE_FILES.
28154	(distrib): Treat 'base' like 'full'. Replace BASE_LIBS and BASE_FILES
28155	in distmakefile here.
28156	(clean1): Remove boot.
28157	(clean3): Clean BASE_MODULES as well.
28158
281592005-01-01  Bruno Haible  <bruno@clisp.org>
28160
28161	* condition.lisp (maybe-continue): Do not call exitunconditionally.
28162	Instead, decline the condition. Fixes bug introduced on 2002-04-22.
28163
281642005-01-11  Sam Steingold  <sds@gnu.org>
28165
28166	* modules/syscalls/configure.in: check for <wchar.h>
28167	* modules/syscalls/calls.c: include it when present
28168
281692005-01-11  Sam Steingold  <sds@gnu.org>
28170
28171	* socket.d (host_fn_t): new typedef
28172	(with_host, string_to_addr1t): new functions
28173	(string_to_addr): re-written using them
28174	(resolve_host1): simplified
28175	(resolve_host): use with_host()
28176	(with_host_port): rename from with_hostname()
28177
281782005-01-11  Sam Steingold  <sds@gnu.org>
28179
28180	* lispbibl.d (array_atype): declare
28181
281822005-01-11  Sam Steingold  <sds@gnu.org>
28183
28184	* intelem.d (udigits_to_I): new helper function for modules
28185	* lispbibl.d, genclisph.d (udigits_to_I): export
28186	* modules/berkeley-db/bdb.c (dbt_to_object): use it
28187
281882005-01-11  Sam Steingold  <sds@gnu.org>
28189
28190	unified cygwin/woe32 time conversion
28191	* unixaux.d (time_t_to_filetime) [UNIX_CYGWIN32]: new function
28192	(time_t_from_filetime) [UNIX_CYGWIN32]: rename from to_time_t_()
28193	* genclisph.d (time_t_to_filetime) [UNIX_CYGWIN32]: export
28194	(time_t_from_filetime) [UNIX_CYGWIN32]: rename from to_time_t_()
28195	(convert_time_to_universal_w32, convert_time_from_universal_w32)
28196	[UNIX_CYGWIN32]: new inline functions
28197	[WIN32_NATIVE]: new aliases
28198	* modules/dirkey/dirkey.c (LDAP::DKEY-INFO):
28199	use convert_time_to_universal_w32()
28200	* modules/syscalls/calls.c (wfd_to_stack, PropVariantToLisp):
28201	use convert_time_to_universal_w32()
28202	(LispToPropVariant): use convert_time_from_universal_w32()
28203
282042005-01-11  Sam Steingold  <sds@gnu.org>
28205
28206	* modules/matlab/matlab.lisp (mxIsLogicalScalar): remove
28207	* modules/matlab/wrap.lisp (matfile-content): remove unnecessary
28208	package prefixes
28209
282102005-01-11  Bruno Haible  <bruno@clisp.org>
28211
28212	* spvw.d (main): Init O(argv) only after locale_encoding is initialized.
28213	Fix a GC-safety bug. Fixes bugs introduced on 2004-02-09.
28214	Reported by Juliusz Chroboczek <jch@pps.jussieu.fr> and
28215	Mike Fabian <mfabian@suse.de>.
28216
282172005-01-10  Bruno Haible  <bruno@clisp.org>
28218
28219	* foreign1.lisp (to-c-name): For symbols from a case-sensitive package,
28220	use function cs-cl:string.
28221
282222005-01-10  Bruno Haible  <bruno@clisp.org>
28223
28224	* stream.d (fresh_line): Add special code to care for the case that
28225	*standard-output* and *error-output* are aliased.
28226
282272005-01-09  Bruno Haible  <bruno@clisp.org>
28228
28229	* configure: Document and implement options --bindir, --libdir,
28230	--includedir, --datadir, --localedir, --docdir, --mandir, --htmldir,
28231	--dvidir, --psdir, --pdfdir, for consistency with other GNU programs.
28232	* makemake.in: Likewise.
28233	(PREFIX): On Unix, do not ignore @prefix@.
28234	(EXEC_PREFIX): On Unix, do not ignore @exec_prefix@.
28235	(bindir, BINDIR): New variables. On Unix, do not ignore @bindir@.
28236	(libdir, LIBDIR): New variables. On Unix, do not ignore @libdir@.
28237	(includedir, INCLUDEDIR): New variables. On Unix, do not ignore
28238	@includedir@.
28239	(datadir, DATADIR, localedir, LOCALEDIR): New variables. On Unix,
28240	do not ignore @datadir@.
28241	(docdir): Remove variable.
28242	(docdir): New variable, rename from lispdocdir.
28243	(SRCDOCDIR): Rename from DOCDIR.
28244	(SRCDOCDIR_): Rename from DOCDIR_.
28245	(SRCDOCDIR_M): Rename from DOCDIR_M.
28246	(DOCDIR): New variable.
28247	(mandir, MANDIR, htmldir, HTMLDIR, dvidir, DVIDIR, psdir, PSDIR)
28248	(pdfdir, PDFDIR): New variables.
28249	(brace_to_paren): New variable.
28250	(datadir): Rename from shared.
28251	* _distmakefile (datadir): Rename from shared.
28252	(docdir): Remove variable.
28253	(docdir): New variable, rename from lispdocdir.
28254	(install-doc, uninstall): Update.
28255
282562005-01-09  Bruno Haible  <bruno@clisp.org>
28257
28258	* po/Makefile.in.in (datadir): Use @datadir@.
28259
282602005-01-01  Bruno Haible  <bruno@clisp.org>
28261
28262	* condition.lisp (maybe-continue): Remove useless code.
28263
282642005-01-10  Bruno Haible  <bruno@clisp.org>
28265
28266	* Makefile.devel (GCC_VERSION, GCC_SOURCE_FILE, GCC_SOURCE_URL): New
28267	variable.
28268	(GCC_INSTALL_DIR): New computed variable.
28269	(install-gcc): New target.
28270
282712005-01-09  Bruno Haible  <bruno@clisp.org>
28272
28273	Distribute the manual page also in PDF format.
28274	* makemake.in (pdfdir): New variable.
28275	(manual_dvi): Add clisp.pdf.
28276	(clisp.pdf): New rule.
28277	(installdirs): Create $(pdfdir).
28278	(install-man): Install also clisp.pdf.
28279	(uninstall-man): Uninstall also clisp.pdf.
28280	(clean1): Remove clisp.pdf.
28281	* _distmakefile (pdfdir): New variable.
28282	(install-man): Install also clisp.pdf.
28283	(uninstall): Uninstall clisp.pdf.
28284
282852005-01-09  Bruno Haible  <bruno@clisp.org>
28286
28287	* clisp-link.in (func_tmpdir): New function.
28288	(run): Use it for all temporary files and directories.
28289
282902005-01-03  Bruno Haible  <bruno@clisp.org>
28291
28292	* spvw.d (SP_ueber, STACK_ueber): Output a newline before reset(1).
28293	* spvw_alloca.d (malloca): Likewise.
28294	* spvw_allocate.d (error_speicher_voll): Likewise.
28295
282962005-01-02  Bruno Haible  <bruno@clisp.org>
28297
28298	* debug.d (SYS::DESCRIBE-FRAME): Call print_stack_trace with the same
28299	logic as show_stack() does.
28300
283012005-01-02  Bruno Haible  <bruno@clisp.org>
28302
28303	* debug.d (show_stack): Call print_stack_trace with the same logic
28304	in the frame_up_x != NULL case as in the frame_up_x == NULL case.
28305
283062005-01-02  Bruno Haible  <bruno@clisp.org>
28307
28308	* spvw_debug.d (bt_out): Fix an invalid use of STACK_item_count.
28309
283102005-01-01  Bruno Haible  <bruno@clisp.org>
28311
28312	Generalize the assert-restart-no-prompts hack.
28313	* condition.lisp (restart): Add slot 'meaningfulp'.
28314	(make-restart-form): Take an additional meaningfulp argument.
28315	(restart-bind, expand-restart-case): Accept MEANINGFULP restart option.
28316	(assert-restart-no-prompts): Remove function.
28317	(simple-assert-failed): Mark continue restart as not meaningful.
28318	(check-value, retry-function-call): Remove useless option from RETRY
28319	restart - useless since 2004-06-03.
28320	(maybe-continue): Test meaningfulp instead of comparing the interactive
28321	function against assert-restart-no-prompts.
28322	* reploop.lisp (break-loop): Likewise.
28323
283242005-01-10  Arseny Slobodyuk  <ampy@users.sourceforge.net>
28325
28326	* modules/syscalls/calls.c (CRYPT, ENCRYPT, SETKEY):
28327	do not define on WIN32_NATIVE because it makes mingw
28328	version depending on cygcrypt-0.dll and cygwin1.dll.
28329
283302005-01-10  Bruno Haible  <bruno@clisp.org>
28331	    Arseny Slobodyuk  <ampy@ich.dvo.ru>
28332
28333	* modules/syscalls/calls.c (get_owner): new local functions on
28334	UNIX and WIN32_NATIVE.
28335	(GetSecurityInfoFunc, LookupAccountSidFunc, GetLengthSidFunc)
28336	(CopySidFunc, EqualSidFunc, ConvertSidToStringSidFunc)
28337	(initialized_sid_apis, sid_cache_entry, sid_cache_count)
28338	(sid_cache_allocated) [WIN32_NATIVE]: new variables to support
28339	get_owner on Win32.
28340	(sid_cache_entry) [WIN32_NATIVE]: new stuct.
28341	(sid_cache_get, sid_cache_put) [WIN32_NATIVE]: new local functions.
28342	(OS::FILE-OWNER): new DEFUN.
28343	* modules/syscalls/posix.lisp: export FILE-OWNER.
28344	* modules/syscalls/preload.lisp: set a nickname ("OS") in make-package.
28345
283462005-01-01  Bruno Haible  <bruno@clisp.org>
28347
28348	Fix check-type, assert, ctypecase, ccase when used on locally defined
28349	places.
28350	* condition.lisp (prompt-for-new-value): Add new argument
28351	place-numvalues.
28352	(check-type): Pass number of value to check-type-failed.
28353	(check-type-failed): Add new argument place-numvalues.
28354	(assert): Pass number of values to prompt-for-new-value. Pass
28355	environment to get-setf-expansion.
28356	(check-value, retry-function-call): Update.
28357	(ctypecase, ccase): Pass number of value to ctypecase-failed.
28358	(ctypecase-failed): Add new argument place-numvalues.
28359
283602005-01-05  Bruno Haible  <bruno@clisp.org>
28361
28362	* lispbibl.d (constant_bit_t, special_bit_t): Remove macros.
28363	(var_bit0_t, var_bit1_t): New macros.
28364	(constant_bit_f, special_bit_f): Remove macros.
28365	(var_bit0_f, var_bit1_f): New macros.
28366	(constant_bit_hf, special_bit_hf): Remove macros.
28367	(var_bit0_hf, var_bit1_hf): New macros.
28368	(Rectype_GlobalSymbolmacro): New enum value.
28369	(constant_var_p): Rename from constantp. Change to use var_bit0,
28370	var_bit1.
28371	(special_var_p): Change to use var_bit0, var_bit1.
28372	(symmacro_var_p): New macro.
28373	(set_const_flag, clear_const_flag): Change to use var_bit0, var_bit1.
28374	(set_special_flag, clear_special_flag): Likewise.
28375	(set_symmacro_flag, clear_symmacro_flag): New macros.
28376	(GlobalSymbolmacro): New type.
28377	(globalsymbolmacro_length): New macro.
28378	(TheGlobalSymbolmacro): New macro.
28379	(globalsymbolmacrop, allocate_globalsymbolmacro): New macros.
28380	(check_symbol_non_constant): Update.
28381	* spvw_objsize.d (case_symbolwithflags): Update.
28382	* eval.d (SYS::SPECIAL-VARIABLE-P): constant_var_p now implies
28383	special_var_p.
28384	(sym_value_place): Remove function.
28385	(sym_value): Turned into a function again. Add a symbolmacro_ argument.
28386	Handle symbol-macros in more detail.
28387	(check_local_symbol_value): Remove function.
28388	(sym_macrop, setq, macroexp0): Change symbol-macro handling.
28389	(eval1): Inline old check_local_symbol_value function. Change
28390	symbol-macro handling.
28391	(interpret_bytecode_): Update.
28392	* control.d (SYS::%SYMBOL-VALUE): Remove function.
28393	(SYMBOL-VALUE, SET): Do not test for symbol-macro. Access the value cell
28394	always.
28395	(make_variable_frame): constant_var_p now implies special_var_p.
28396	Update.
28397	(PROCLAIM): Signal an error when a symbol-macro is being proclaimed
28398	special.
28399	(form_constant_p): Update.
28400	(SYS::GLOBAL-SYMBOL-MACRO-P): New function.
28401	* symbol.d (SYS::%PROCLAIM-CONSTANT): Signal an error when a
28402	symbol-macro is being proclaimed constant.
28403	(SYS::%PROCLAIM-SYMBOL-MACRO): New function.
28404	* package.d (make_present): Signal an error when a symbol-macro is
28405	being imported into the KEYWORD package. Use set_const_flag.
28406	* record.d (SYMBOL-MACRO-EXPAND): Look for the symbol-macro definition
28407	on the property list.
28408	(SYS::MAKE-GLOBAL-SYMBOL-MACRO): New function.
28409	(SYS::GLOBAL-SYMBOL-MACRO-DEFINITION): New function.
28410	* io.d (pr_orecord): Handle GlobalSymbolmacro.
28411	* predtype.d (TYPE-OF, CLASS-OF): Handle GlobalSymbolmacro.
28412	(enum_hs_global_symbol_macro): New enum item.
28413	(heap_statistics_mapper): Handle GlobalSymbolmacro.
28414	* error.d (check_symbol_non_constant_replacement, check_encoding):
28415	Update.
28416	* encoding.d (MAKE-ENCODING): Update.
28417	* init.lisp (venv-assoc): Use symbol-macro-expand and
28418	global-symbol-macro-definition instead of %symbol-value.
28419	* macros2.lisp (define-symbol-macro): Put the definition on the
28420	property-list, not in the value cell. Call %proclaim-symbol-macro.
28421	* defs1.lisp (copy-symbol): Use symbol-value instead of %symbol-value.
28422	* describe.lisp (apropos, describe-object@symbol): Symbol-macros are
28423	now orthogonal to the contents of the value cell. Update.
28424
284252005-01-06  Sam Steingold  <sds@gnu.org>
28426
28427	* time.d (convert_time_from_universal): new function
28428	* genclisph.d (convert_time_from_universal): declare
28429	* modules/syscalls/calls.c (LispToPropVariant): use it
28430	(PropVariantToLisp): use convert_time_to_universal()
28431	(kwtopropid, PropSpecSetStr, propspeclistp, PropSpecSet):
28432	do not change STACK
28433
284342005-01-06  Sam Steingold  <sds@gnu.org>
28435
28436	* socket.d (string_to_addr): new function
28437	* genclisph.d (string_to_addr): declare
28438	* modules/rawsock/rawsock.c (CONVERT-ADDRESS): implement
28439	* modules/rawsock/sock.lisp (CONVERT-ADDRESS): export
28440
284412004-12-24  Bruno Haible  <bruno@clisp.org>
28442
28443	* debug.d (print_back_trace, print_stackitem): Do not print a newline at
28444	the beginning.
28445	(SYS::DESCRIBE-FRAME, show_stack): Print the newlines here instead.
28446	Use fresh-line at the beginning and elastic-newline at the end.
28447
284482004-12-24  Bruno Haible  <bruno@clisp.org>
28449
28450	* describe.lisp (describe1): Add a fresh-line call after the
28451	describe-object call, and a blank line before the documentation.
28452
284532004-12-24  Bruno Haible  <bruno@clisp.org>
28454
28455	* compiler.lisp (disassemble-closure): Start with fresh-line, end with
28456	elastic-newline.
28457
284582004-12-24  Bruno Haible  <bruno@clisp.org>
28459
28460	* compiler.lisp (c-warn, c-error): Use ~& at the beginning and ~. at
28461	the end of the output.
28462	(match-known-unknown-functions): Likewise.
28463	(c-report-problems): Likewise. Remove blank line at the end.
28464	(compile-file): Use fresh-line before and elastic-newline after the
28465	output. Remove blank lines.
28466
284672004-12-24  Bruno Haible  <bruno@clisp.org>
28468
28469	Remove a redundant blank line at the beginning of DIR's output.
28470	* init.lisp (dir): Use fresh-line at the beginning and an elastic
28471	newline after each filename.
28472
284732004-12-24  Bruno Haible  <bruno@clisp.org>
28474
28475	Remove an extra blank line at the beginning of trace output, and
28476	also after trace output if the program is using newline convention A.
28477	* trace.lisp (trace-pre-output): Use fresh-line instead of terpri at
28478	the beginning, and elastic-newline at the end.
28479	(trace-post-output): Use fresh-line instead of terpri at the beginning,
28480	and rely on trace-print for the final elastic newline.
28481	(trace-print): Use fresh-line instead of terpri at the beginning, and
28482	emit an elastic newline at the end.
28483
284842004-12-24  Bruno Haible  <bruno@clisp.org>
28485
28486	Remove redundant blank lines in stepper output when a program uses
28487	newline convention A.
28488	* reploop.lisp (step-values): Use fresh-line before and elastic-newline
28489	after the output.
28490
284912004-11-05  Bruno Haible  <bruno@clisp.org>
28492
28493	* query.lisp (y-or-n-p, yes-or-no-p): Remove extra blank line between
28494	wrong answer and complaint.
28495
284962004-12-24  Bruno Haible  <bruno@clisp.org>
28497
28498	* debug.d (read_form): Use fresh-line instead of terpri before the
28499	prompt.
28500	(SYS::READ-EVAL-PRINT): Add an elastic newline after printing the
28501	values.
28502	* reploop.lisp (get-frame-limit): Use fresh-line before and
28503	elastic-newline after the output.
28504	(print-error): Likewise.
28505	(break-loop): Likewise. Remove extra newline after all helpstrings.
28506
285072004-12-24  Bruno Haible  <bruno@clisp.org>
28508
28509	* error.d (begin_error): Use fresh-line, not terpri.
28510	(write_errorstring): Output an elastic newline at the end.
28511	(ERROR, SYS::ERROR-OF-TYPE): Output an elastic newline after the error
28512	message.
28513	(tast_break): Use fresh-line, not terpri.
28514	* init.lisp (cerror, warn): Use fresh-line before and elastic-newline
28515	after the output.
28516	* macros2.lisp (prompt-for-new-value-string): Start with ~& instead of
28517	~%.
28518	* condition.lisp (prompt-for-new-value): Start with fresh-line instead
28519	of terpri.
28520	(break, cerror, warn, maybe-continue, exitunconditionally): Use
28521	fresh-line before and elastic-newline after the output.
28522
285232004-12-24  Bruno Haible  <bruno@clisp.org>
28524
28525	* defs1.lisp (%time): Avoid printing a blank line before the statistics
28526	in some cases. Print an elastic newline afterwards.
28527
285282004-11-04  Bruno Haible  <bruno@clisp.org>
28529
28530	* inspect.lisp (inspect-frontend@inspection@:tty): Do not print a
28531	blank line before the output of the :e and :m commands.
28532
285332004-12-24  Bruno Haible  <bruno@clisp.org>
28534
28535	* edit.lisp (ed): Do not start the file with a blank line. Do not
28536	print a blank line; instead print a newline after each function name.
28537
285382004-12-24  Bruno Haible  <bruno@clisp.org>
28539
28540	* init.lisp (load): Print an elastic newline after each line.
28541
285422005-01-05  Sam Steingold  <sds@gnu.org>
28543
28544	* modules/rawsock/test.tst (host->sa): call RAWSOCK:HTONS on PORT
28545	do not call RAWSOCK:BIND when local host is resolved to 127.0.0.1
28546	now the test passes on Linux too, in addition to Cygwin and Solaris
28547
285482005-01-05  Bruno Haible  <bruno@clisp.org>
28549
28550	* autoconf/config.rpath: Upgrade to current copy from GNU gettext.
28551
285522005-01-05  Bruno Haible  <bruno@clisp.org>
28553
28554	* m4/libtool.m4: Upgrade to libtool-1.5.10.
28555
285562005-01-05  Bruno Haible  <bruno@clisp.org>
28557
28558	* configure: Unset CDPATH in a more robust way.
28559
285602004-01-05  Bruno Haible  <bruno@clisp.org>
28561
28562	* utils/clispload.lsp (*expected-failures*): Update.
28563
285642005-01-05  Bruno Haible  <bruno@clisp.org>
28565
28566	* io.d (read_internal): Signal an error when an attribute a_illg is
28567	present.
28568
285692005-01-05  Bruno Haible  <bruno@clisp.org>
28570
28571	* format.lisp (next-arg): Signal a TYPE-ERROR when the argument list is
28572	dotted.
28573
285742005-01-02  Bruno Haible  <bruno@clisp.org>
28575
28576	Fix SHOW-STACK to show invocation activation at the right place, not
28577	randomly interspersed in the stack.
28578	* lispbibl.d (top_of_back_trace_frame): New declaration.
28579	(bt_beyond_stack_p): Use it instead of bt_stack.
28580	(with_saved_back_trace): Add stack argument.
28581	(with_saved_back_trace_fsubr, with_saved_back_trace_subr)
28582	(with_saved_back_trace_cclosure, with_saved_back_trace_iclosure): New
28583	macros.
28584	* debug.d (driver): Correct bt_stack value.
28585	(break_driver): Correct bt_stack and bt_function values.
28586	(top_of_back_trace_frame): New function.
28587	(SYS::DESCRIBE-FRAME): Use top_of_back_trace_frame instead of bt_stack.
28588	* spvw.d (main): Correct bt_stack value.
28589	* eval.d (interpret_bytecode): Use with_saved_back_trace_cclosure.
28590	(eval_fsubr): Use with_saved_back_trace_fsubr.
28591	(eval_subr): Use with_saved_back_trace_subr. Fix the argument count
28592	in the &rest case.
28593	(eval_closure): Use with_saved_back_trace_iclosure.
28594	(apply_subr): Use with_saved_back_trace_subr. Fix the argument count
28595	in the &rest case.
28596	(apply_closure): Use with_saved_back_trace_iclosure.
28597	(funcall_subr): Use with_saved_back_trace_subr. Fix the argument count
28598	in the &rest case.
28599	(funcall_closure): Use with_saved_back_trace_iclosure.
28600	(interpret_bytecode_): In JSR, use with_saved_back_trace_cclosure.
28601	In CALLS1, CALLS2, CALLSR, use with_saved_back_trace_subr. In CAR,
28602	CDR, CHECK_FDEF, INC, DEC, use with_saved_back_trace_subr.
28603	* pathname.d (ENOUGH-NAMESTRING, assume_dir_exists): Use
28604	with_saved_back_trace_subr.
28605	* sequence.d (copy_seqpart_into, FILL): Likewise.
28606	* stream.d (read_line): Likewise.
28607	* foreign.d (convert_function_to_foreign): Likewise.
28608	* spvw_debug.d (bt_out): Use top_of_back_trace_frame instead of
28609	bt_stack.
28610
286112005-01-01  Bruno Haible  <bruno@clisp.org>
28612
28613	Reduce code size of some macro expansions.
28614	* condition.lisp (check-type-failed): New function.
28615	(check-type): Use it in the macroexpansion.
28616	(assert-failed, simple-assert-failed): New functions, extracted from
28617	assert.
28618	(assert): Use them in the macroexpansion.
28619	(etypecase-failed, ctypecase-failed): New functions.
28620	(etypecase, ctypecase, ecase, ccase): Use them in the macroexpansion.
28621
286222004-12-24  Bruno Haible  <bruno@clisp.org>
28623
28624	New format directive "~.".
28625	* format.lisp (format-parse-cs): Add support for ~..
28626	(format-elastic-newline): New function.
28627	(formatter-main-1): Add support for ~..
28628
286292005-01-04  Sam Steingold  <sds@gnu.org>
28630
28631	* foreign1.lisp: import SYS:SYMBOL-KEYWORD
28632	* defstruct.lisp (*defstruct-description-type-location*): fix value
28633	(defstruct): set PREDICATE-OPTION to NIL before saving it into
28634	DEFSTRUCT-DESCRIPTION; fix the creation of DEFSTRUCT-DESCRIPTION
28635	(*defstruct-description-type-location*)
28636	(*defstruct-description-size-location*)
28637	(*defstruct-description-kconstructor-location*)
28638	(*defstruct-description-slots-location*)
28639	(*defstruct-description-boa-constructors-location*)
28640	(*defstruct-description-copier-location*)
28641	(*defstruct-description-predicate-location*): PROCLAIM
28642	CONSTANT-INLINE to pass "make check-recompile"
28643
286442005-01-04  Sam Steingold  <sds@gnu.org>
28645
28646	* exporting.lisp (export-accessories): new function
28647	(defstruct, def-c-struct): use it
28648
286492005-01-04  Sam Steingold  <sds@gnu.org>
28650
28651	carry predicate with the structure metaobject
28652	* clos-class1.lisp (*<structure-class>-defclass*): new slot:
28653	$predicate
28654	(*<structure-class>-predicate-location*): new constant
28655	(class-predicate, (setf class-predicate)): new predefuns
28656	(*<structure-class>-instance-size*): increased by 1
28657	* clos-class3.lisp (make-instance-<structure-class>):
28658	accept and ignore 'predicate argument
28659	(shared-initialize-<structure-class>): accept and use
28660	'predicate argument
28661	(define-structure-class): accept and use predicate argument
28662	* clos-class4.lisp (shared-initialize@structure-class):
28663	accept and ignore 'predicate argument
28664	* clos-class6.lisp (class-predicate, (setf class-predicate)): add
28665	(class-direct-slots): handle structures too
28666	((setf class-direct-slots)): turn into a defgeneric
28667	* constobj.d (version): bumped
28668	* defstruct.lisp (*defstruct-description-predicate-location*): add
28669	(defstruct): pass predicate to DEFINE-STRUCTURE-CLASS
28670	* io.d (STRUCTURE-READER): structure descriptors have length 7
28671
286722005-01-04  Sam Steingold  <sds@gnu.org>
28673
28674	* defstruct.lisp (defstruct): avoid unnecessary warnings on
28675	predicate-accessor conflict
28676
286772005-01-01  Bruno Haible  <bruno@clisp.org>
28678
28679	Improve prompt after assert failure.
28680	* macros2.lisp (report-new-values-string): Change to a format string
28681	that accepts more than 1 argument.
28682	(assert): Pass the places individually to the format string, not as
28683	a list of places.
28684	* condition.lisp (assert): Likewise.
28685
286862005-01-01  Bruno Haible  <bruno@clisp.org>
28687
28688	* condition.lisp (assert): Simplify macroexpansion by use of wrap-let*.
28689
286902005-01-01  Bruno Haible  <bruno@clisp.org>
28691
28692	* condition.lisp (assert): Simplify.
28693	(check-value): Comments.
28694
286952004-12-24  Bruno Haible  <bruno@clisp.org>
28696
28697	* foreign.d (convert_to_foreign): When converting to
28698	(C-ARRAY CHARACTER ...), (C-ARRAY-MAX CHARACTER ...),
28699	(C-ARRAY-PTR CHARACTER), accept a non-string array of ASCII characters.
28700
287012004-12-24  Bruno Haible  <bruno@clisp.org>
28702
28703	New function EXT:ELASTIC-NEWLINE.
28704	* lispbibl.d (Stream): Add fields strm_wr_ch_npnl,
28705	strm_wr_ch_array_npnl.
28706	(fresh_line, elastic_newline): New declarations.
28707	* stream.d (wr_ch_pending_newline): New function.
28708	(write_char): When writing to a Gray stream, output pending newline.
28709	(wr_ch_array_pending_newline): New function.
28710	(write_char_array): When writing to a Gray stream, output pending
28711	newline.
28712	(harden_elastic_newline): New functions.
28713	(stream_dummy_fill, make_synonym_stream, make_broadcast_stream)
28714	(make_twoway_stream, make_echo_stream, make_string_output_stream)
28715	(MAKE-STRING-OUTPUT-STREAM, SYSTEM::MAKE-STRING-PUSH-STREAM)
28716	(make_pphelp_stream, MAKE-BUFFERED-OUTPUT-STREAM, MAKE-GENERIC-STREAM)
28717	(fill_pseudofuns_unbuffered, fill_pseudofuns_buffered)
28718	(make_terminal_stream_, MAKE-WINDOW, make_socket_stream): Fill the
28719	strm_wr_ch_npnl, strm_wr_ch_array_npnl fields as well.
28720	(get_output_stream_string, builtin_stream_close, finish_output)
28721	(force_output): Call harden_elastic_newline().
28722	(get_line_position): On a Gray stream, look at the $penl slot.
28723	(elastic_newline_pending_p, fresh_line, elastic_newline): New
28724	functions.
28725	* io.d (FRESH-LINE): Use fresh_line.
28726	(EXT:ELASTIC-NEWLINE): New function.
28727	* debug.d (SYS::READ-EVAL-PRINT): Use fresh_line().
28728	* pseudofun.d: Update.
28729	* init.lisp: Export ext:elastic-newline.
28730	* gray.lisp (fundamental-stream): Add $penl slot.
28731	(close@fundamental-stream): Output pending newline.
28732
287332005-01-04  Sam Steingold  <sds@gnu.org>
28734
28735	carry BOA-constructors and copier with the structure metaobject
28736	* clos-class1.lisp (*<structure-class>-defclass*): new slots:
28737	$boa-constructors and $copier
28738	(*<structure-class>-boa-constructors-location*)
28739	(*<structure-class>-copier-location*): new constants
28740	(class-boa-constructors, (setf class-boa-constructors))
28741	(class-copier, (setf class-copier)): new predefuns
28742	(*<structure-class>-instance-size*): increased by 2
28743	* clos-class3.lisp (make-instance-<structure-class>):
28744	accept and ignore 'boa-constructors and 'copier arguments
28745	(shared-initialize-<structure-class>): accept and use
28746	'boa-constructors and 'copier arguments
28747	(define-structure-class): accept and use
28748	boa-constructors and copier arguments
28749	(structure-undefine-accessories): new ABI function
28750	* clos-class4.lisp (shared-initialize@structure-class):
28751	accept and ignore 'boa-constructors and 'copier arguments
28752	* clos-class6.lisp (class-instance-size, (setf class-instance-size)):
28753	(class-kconstructor, (setf class-kconstructor)):
28754	turned into generic functions
28755	(class-boa-constructors, (setf class-boa-constructors))
28756	(class-copier, (setf class-copier)): add
28757	* constobj.d (version): bumped
28758	* defstruct.lisp (*defstruct-description-type-location*)
28759	(*defstruct-description-size-location*)
28760	(*defstruct-description-kconstructor-location*)
28761	(*defstruct-description-slots-location*)
28762	(*defstruct-description-boa-constructors-location*)
28763	(*defstruct-description-copier-location*): add constants
28764	(ds-typep, ds-typep-expansion, ds-canonicalize-type)
28765	(find-structure-slot-initfunction): use them
28766	(clos::structure-undefine-accessories): add a predefun
28767	(defstruct): call it; pass copier and boa-constructors to
28768	DEFINE-STRUCTURE-CLASS
28769	* io.d (STRUCTURE-READER): structure descriptors have length 6
28770
287712005-01-03  Sam Steingold  <sds@gnu.org>
28772
28773	* init.lisp (symbol-keyword): new function
28774	* defmacro.lisp (analyze-key): use it
28775	* defstruct.lisp (defstruct): ditto
28776	* foreign1.lisp (c-struct-constructor): ditto
28777	* lambdalist.lisp (analyze-lambdalist, analyze-defsetf-lambdalist)
28778	(analyze-generic-function-lambdalist): ditto
28779	* type.lisp (%the): ditto
28780	* clos-package.lisp ("CLOS"): do not import SYS::*KEYWORD-PACKAGE*
28781
287822005-01-03  Sam Steingold  <sds@gnu.org>
28783
28784	* defstruct.lisp (defstruct): more grammatical error message
28785
287862005-01-03  Sam Steingold  <sds@gnu.org>
28787
28788	* clos-package.lisp (*features*): add :MOP
28789
287902005-01-02  Bruno Haible  <bruno@clisp.org>
28791
28792	* lispbibl.d (backtrace_t): Rename field bt_caller to bt_function.
28793	(with_saved_back_trace, subr_self): Update.
28794	* spvw.d (main): Update.
28795	* spvw_update.d (update_back_traces): Update.
28796	* spvw_garcol.d (gc_markphase): Update.
28797	* spvw_debug.d (bt_out): Update.
28798	* debug.d (driver, break_driver, print_back_trace): Update.
28799	* genclisph.d (main): Update.
28800
288012005-01-02  Bruno Haible  <bruno@clisp.org>
28802
28803	* lisparit.d (init_arith): Change initial value of
28804	*WARN-ON-FLOATING-POINT-CONTAGION* and
28805	*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* to NIL.
28806	* utils/clispload.lsp: Remove setting of
28807	*WARN-ON-FLOATING-POINT-CONTAGION* and
28808	*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION*.
28809
288102005-01-01  Bruno Haible  <bruno@clisp.org>
28811
28812	* init.lisp (cerror): Internationalize.
28813	* condition.lisp (cerror, maybe-continue): Likewise.
28814	(break-loop): Likewise.
28815	* reploop.lisp (break-loop): Likewise.
28816
288172005-01-01  Bruno Haible  <bruno@clisp.org>
28818
28819	Avoid a possible collision with SP in libncurses.
28820	* lispbibl.d (SP): Alias to getSP in all cases.
28821	(NEED_OWN_GETSP): New macro.
28822	* spvw.d (getSP): Rename from SP. Define if NEED_OWN_GETSP.
28823
288242005-01-01  Bruno Haible  <bruno@clisp.org>
28825
28826	* spvw_language.d (init_language): Invalidate the gettext internal
28827	caches.
28828
288292005-01-01  Bruno Haible  <bruno@clisp.org>
28830
28831	* spvw.d (print_banner): Extend copyright years.
28832
288332004-12-24  Bruno Haible  <bruno@clisp.org>
28834
28835	* foreign1.lisp: Indentation fixes.
28836
288372004-12-24  Bruno Haible  <bruno@clisp.org>
28838
28839	Support multibyte encodings in FFI:*FOREIGN-ENCODING*.
28840	* encoding.d (init_dependent_encodings): Remove warning if
28841	*FOREIGN-ENCODING* is not 1:1. Initialize O(foreign_8bit_encoding).
28842	(SYSTEM::SET-FOREIGN-ENCODING): Update O(foreign_8bit_encoding).
28843	* foreign.d (convert_from_foreign_array_fill): For characters, use
28844	O(foreign_8bit_encoding).
28845	(convert_from_foreign): Likewise. Add special conversion routines for
28846	(C-ARRAY CHARACTER dim1), (C-ARRAY-MAX CHARACTER maxdim),
28847	(C-ARRAY-PTR CHARACTER).
28848	(count_walk_pre): For C-STRING and (C-ARRAY-PTR CHARACTER ...), compute
28849	the amount of needed memory.
28850	(convert_to_foreign): For characters, use O(foreign_8bit_encoding).
28851	Add special conversion routines for (C-ARRAY CHARACTER dim1),
28852	(C-ARRAY-MAX CHARACTER maxdim), (C-ARRAY-PTR CHARACTER).
28853
288542004-12-23  Bruno Haible  <bruno@clisp.org>
28855
28856	* lispbibl.d (stream_get_read_eval, stream_set_read_eval): Mark as
28857	"can trigger GC".
28858	* stream.d (stream_get_read_eval, stream_set_read_eval): Likewise.
28859	* io.d (read_eval_reader, load_eval_reader, pr_orecord, pr_subr): Fix
28860	GC-safety bug introduced on 2004-04-12.
28861
288622004-12-19  Bruno Haible  <bruno@clisp.org>
28863
28864	More powerful optimizations on places.
28865	* places.lisp (occurs-in-p, commuting-forms-p)
28866	(simple-occurrence-in-basic-block-p, optimized-wrap-let*)
28867	(optimized-wrap-multiple-value-bind): New functions.
28868	(push): Do not use simple-assignment-p, subst-in-form, sublis-in-form.
28869	Instead use optimized-wrap-let*.
28870	(pop): Likewise.
28871	(pushnew): Likewise.
28872	(remf): Do not use simple-assignment-p, subst-in-form. Instead simplify
28873	differently in all cases.
28874	(define-modify-macro): Do not use simple-assignment-p, subst-in-form.
28875	Instead use optimized-wrap-let*.
28876	(setf): Fix condition leading to error message. Do not use subst-in-form.
28877	Instead use optimized-wrap-let*.
28878
288792004-12-23  Sam Steingold  <sds@gnu.org>
28880
28881	* modules/matlab/matlab.lisp: add many mx functions
28882
288832004-12-19  Bruno Haible  <bruno@clisp.org>
28884
28885	* places.lisp (remove-plist): Use more built-in functions.
28886
288872004-12-19  Bruno Haible  <bruno@clisp.org>
28888
28889	* places.lisp (simple-assignment-p): Add env argument. Recognize
28890	assignments to symbol-macros.
28891	(push, pop, pushnew, remf, define-modify-macro, setf): Pass environment
28892	to simple-assignment-p.
28893
288942004-12-19  Bruno Haible  <bruno@clisp.org>
28895
28896	Optimize away empty LET* in place macro expansions.
28897	* places.lisp (wrap-let*): New function.
28898	(push, pop, psetf, pushnew, remf, define-modify-macro, setf)
28899	(multiple-value-setf): Use it.
28900
289012004-12-19  Bruno Haible  <bruno@clisp.org>
28902
28903	get-setf-method must reject dotted lists.
28904	* defmacro.lisp (make-length-test): Add optional argument accept-dotted.
28905	Use LIST-LENGTH if dotted lists must be rejected.
28906	* places.lisp (get-setf-expansion): Use endp instead of atom.
28907	(define-setf-expander): Pass accept-dotted = nil to make-length-test.
28908	(setf-VALUES-aux): Use endp instead of atom.
28909
289102004-12-18  Bruno Haible  <bruno@clisp.org>
28911
28912	* places.lisp (subst-in-form, sublis-in-form): New functions.
28913	(push, pop, pushnew, remf, define-modify-macro, setf, the, if): Use
28914	them instead of subst, sublis.
28915	* macros3.lisp (expand-LETF*, expand-LETF): Likewise.
28916
289172004-12-21  Bruno Haible  <bruno@clisp.org>
28918
28919	* predtype.d (COERCE): Accept cs-cl:string as equivalent to cl:string.
28920	* sequence.d (valid_type1): Likewise.
28921	* subtypep.lisp (canonicalize-type): Likewise.
28922
289232004-12-21  Bruno Haible  <bruno@clisp.org>
28924
28925	* format.lisp (format-error): Take additional arguments specifying
28926	the error type and initargs.
28927	(format-parse-cs, next-arg, format-old-roman, format-new-roman)
28928	(format-cardinal, format-radix, format-character)
28929	(format-indirection-cserror, format-indirection-lerror)
28930	(format-conditional, format-conditional-error, format-iteration)
28931	(format-logical-block, format-logical-block-parse, formatter-main-1):
28932	Pass error type and initargs to format-error.
28933
289342004-12-19  Bruno Haible  <bruno@clisp.org>
28935
28936	* modules/wildcard/wildcard.lisp: Define package as case-inverted.
28937
28938	* modules/regexp/regexp.lisp: Modernize package declaration. Improve
28939	indentation.
28940
289412004-12-18  Bruno Haible  <bruno@clisp.org>
28942
28943	* places.lisp (get-setf-method, push, pop, psetf, pushnew, remf)
28944	(rotatef, define-modify-macro, setf, shiftf, getf, char-bit, ldb)
28945	(mask-field, the, apply, progn, locally, if, values, setf-VALUES-aux)
28946	(multiple-value-setf): Use reasonable variable names.
28947	* condition.lisp (assert): Likewise.
28948	* macros3.lisp (expand-LETF*, expand-LETF): Likewise.
28949
289502004-12-20  Sam Steingold  <sds@gnu.org>
28951
28952	* exporting.lisp ("EXPORTING"): remove XP nickname because it is
28953	already used for a portable pretty-printer
28954
289552004-12-19  Bruno Haible  <bruno@clisp.org>
28956
28957	* exporting.lisp: New file.
28958	* init.lisp: Load it.
28959	* makemake.in (LPARTS): Add exporting.
28960	(exporting.fas): Remove target.
28961	(LINKKIT, anymodule): Remove special handling of exporting.lisp.
28962	* po/Makefile.devel (LISPSOURCES): Add exporting.
28963	* modules/exporting.lisp: Remove file.
28964
28965	* modules/bindings/glibc/linux.lisp: Define package as case-inverted.
28966	Use some symbols from package EXPORTING; drop old exporting code.
28967	* modules/bindings/glibc/wrap.lisp: Remove contradictory defpackage
28968	declaration. Use in-package instead. Remove many useless package
28969	prefixes.
28970
28971	* modules/bindings/win32/win32.lisp: Define package as case-inverted.
28972	Use some symbols from package EXPORTING; drop old exporting code.
28973
28974	* modules/matlab/matlab.lisp: Define package as case-inverted.
28975	Use some symbols from package EXPORTING; drop old exporting code.
28976	* modules/matlab/wrap.lisp: Remove contradictory defpackage
28977	declaration. Use in-package instead. Remove package-lock hacking.
28978
28979	* modules/netica/netica.lisp: Define package as case-inverted.
28980	Use some symbols from package EXPORTING; drop old exporting code.
28981	* modules/netica/wrap.lisp: Remove contradictory defpackage
28982	declaration. Use in-package instead. Remove many useless package
28983	prefixes. Remove package-lock hacking.
28984
28985	* modules/postgresql/postgresql.lisp: Define package as case-inverted.
28986	Use some symbols from package EXPORTING; drop old exporting code.
28987
289882004-12-19  Bruno Haible  <bruno@clisp.org>
28989
28990	* utils/clispload.lsp (*expected-failures*): Revisited.
28991
289922004-12-19  Bruno Haible  <bruno@clisp.org>
28993
28994	* format.lisp (formatter-main-1): In ~{, when the max-n-iterations
28995	prefix is not known to be a number, test it against nil before
28996	comparing it.
28997
289982004-12-19  Bruno Haible  <bruno@clisp.org>
28999
29000	* format.lisp (format-goto-arg): If the argument is nil, use 0 or 1
29001	instead.
29002
290032004-12-19  Bruno Haible  <bruno@clisp.org>
29004
29005	Make calls to EXT:SPECIAL-VARIABLE-P compilable and usable in macro-
29006	expanders.
29007	* eval.d (EXT:SPECIAL-VARIABLE-P): Do not accept T and venv vectors as
29008	environment. Instead, accept macroexpansion environments.
29009	* compiler.lisp (ext:special-variable-p): Remove compiler macro.
29010
290112004-12-19  Bruno Haible  <bruno@clisp.org>
29012
29013	* defs2.lisp (nth-value): Move macro from here...
29014	* macros2.lisp (nth-value): ... to here.
29015
290162004-12-19  Bruno Haible  <bruno@clisp.org>
29017
29018	* disassem.lisp (disassemble@symbol): Use ext: package prefix.
29019	* macros3.lisp (expand-LETF*, expand-LETF): Add env argument. Handle
29020	locally defined symbol-macros correctly.
29021	(LETF*, LETF): Pass environment to expand-LETF*, expand-LETF.
29022
290232004-12-18  Bruno Haible  <bruno@clisp.org>
29024
29025	* places.lisp (define-modify-macro): Implement the evaluation order
29026	according to ANSI CL 5.1.3.
29027
290282004-12-19  Sam Steingold  <sds@gnu.org>
29029
29030	* describe.lisp (apropos): finish with FRESH-LINE instead of
29031	TERPRI to avoid extra vertical space when nothing is found
29032
290332004-12-19  Sam Steingold  <sds@gnu.org>
29034
29035	* pathname.d (test_optional_host): :UNSPECIFIC means NIL because
29036	USER-HOMEDIR-PATHNAME is required to accept :UNSPECIFIC as argument
29037
290382004-12-18  Sam Steingold  <sds@gnu.org>
29039
29040	* io.d (SET-SYNTAX-FROM-CHAR): fix a GC-safety bug (from sacla-tests)
29041
290422004-12-18  Sam Steingold  <sds@gnu.org>
29043
29044	* package.d (%IN-PACKAGE): fix yet another GC-safety bug
29045
290462004-12-18  Sam Steingold  <sds@gnu.org>
29047
29048	* io.d (SET-READTABLE-CASE): fix a GC-safety bug (from sacla-tests)
29049
290502004-12-18  Sam Steingold  <sds@gnu.org>
29051
29052	* spvw_debug.d (nobject_out1): always use pack_shortest_name for symbols
29053
290542004-12-18  Bruno Haible  <bruno@clisp.org>
29055
29056	* modules/clx/mit-clx/dependent.lisp (current-process): Return nil.
29057	(get-host-name): Do not always signal an error.
29058
290592004-12-18  Bruno Haible  <bruno@clisp.org>
29060
29061	* stream.d (stream_handles): Support also the X11-socket streams.
29062
290632004-12-17  Sam Steingold  <sds@gnu.org>
29064
29065	* modules/pari/pari.lisp (entree): fix declaration
29066
290672004-12-17  Bruno Haible  <bruno@clisp.org>
29068
29069	* _clisp.c (main): Fix handling of option -E.
29070	Reported by John K. Hinsdale <hin@alma.com>.
29071
290722004-12-08  Bruno Haible  <bruno@clisp.org>
29073
29074	Allocate narrow strings by default, instead of wide UCS-4 strings.
29075	* charstrg.d (MAKE-STRING): Call allocate_s8string instead of
29076	allocate_string.
29077
290782004-12-16  John Hinsdale  <hin@alma.com>
29079
29080	* modules/oracle/orafns.c: Better error reporting of parse errors
29081
290822004-12-16  Sam Steingold  <sds@gnu.org>
29083
29084	* spvw_memfile.d (loadmem_from_handle): clarified an error message
29085
290862004-12-15  Sam Steingold  <sds@gnu.org>
29087
29088	* modules/pari/pari.lisp: major re-write (use "modern" package)
29089
290902004-12-15  Sam Steingold  <sds@gnu.org>
29091
29092	* defpackage.lisp (defpackage): always pass :CASE-SENSITIVE
29093	and :CASE-INVERTED to %IN-PACKAGE
29094
290952004-12-15  Sam Steingold  <sds@gnu.org>
29096
29097	* foreign1.lisp (do-c-lines): fix last patch
29098	* package.d (%IN-PACKAGE): fix last patch
29099
291002004-12-12  Bruno Haible  <bruno@clisp.org>
29101
29102	Avoid warnings on glibc systems.
29103	* intparam.c: Do not include stdlib.h.
29104	(main): Provide the exit code through return, not exit.
29105	* floatparam.c: Do not include stdlib.h.
29106	(main): Provide the exit code through return, not exit.
29107
291082004-12-09  Bruno Haible  <bruno@clisp.org>
29109
29110	More invariant checking for generational GC.
29111	* lispbibl.d (SP_anchor): New declaration.
29112	* spvw.d (SP_anchor): New variable.
29113	(main): Initialize it.
29114	* spvw_debug.d (DEBUG_SPVW_ASSERT): New macro.
29115	* spvw_global.d (is_valid_varobject_address, is_valid_cons_address)
29116	(is_valid_heap_object_address, is_valid_stack_address): New macros.
29117	* spvw_garcol.d (update) [DEBUG_SPVW]: Check that the pointers being
29118	written to memory are valid.
29119	* spvw_genera1.d (rebuild_old_generation_cache) [DEBUG_SPVW]: Check
29120	that the pointers being put into the physpage cache are valid.
29121	* spvw_genera2.d (gc_mark_old_generation) [DEBUG_SPVW]: Check that the
29122	pointers taken from the physpage cache are valid.
29123	* spvw_genera3.d (update_old_generation) [DEBUG_SPVW]: Check that the
29124	pointers in the physpage cache are valid and not pointing into the
29125	wrong heap.
29126	* spvw_fault.d (handle_read_fault): [DEBUG_SPVW]: Check that the
29127	pointers in the physpage cache are valid and not pointing into the
29128	wrong heap.
29129
291302004-12-14  Sam Steingold  <sds@gnu.org>
29131
29132	case-sensitive/case-inverted package properties are now mutable
29133	* lispbibl.d (mark_pack_caseinsensitive, mark_pack_casepreserved): add
29134	* package.d ((SETF EXT:PACKAGE-CASE-SENSITIVE-P))
29135	((SETF EXT:PACKAGE-CASE-INVERTED-P)): implement
29136	(SYSTEM::%IN-PACKAGE): reset case-sensitive/case-inverted
29137	properties and issue a warning
29138	* constsym.d, subr.d (set_package_case_sensitive_p)
29139	(set_package_case_inverted_p): add
29140	* places.lisp (package-case-inverted-p, package-case-sensitive-p): add
29141
291422004-12-12  Bruno Haible  <bruno@clisp.org>
29143
29144	Command-line option -modern.
29145	* spvw.d (usage): Mention option -modern.
29146	(struct argv_actions): Add argv_modern field.
29147	(parse_options): Initialize it. Recognize -modern.
29148	(main_actions): Handle argv_modern option.
29149
291502004-12-12  Bruno Haible  <bruno@clisp.org>
29151
29152	Support for :case-inverted packages and package CS-COMMON-LISP.
29153	* lispbibl.d (mark_pack_caseinverted, pack_caseinvertedp): New macros.
29154	(mark_pack_locked, mark_pack_unlocked, pack_locked_p): Use bit 2.
29155	(invert_case, string_gleich_inverted, string_invertcase): New
29156	declarations.
29157	(test_stringsymchar_arg, find_external_symbol, intern): Add invert
29158	argument.
29159	* package.d (string_hashcode): Add invert argument.
29160	(newinsert): Update.
29161	(symtab_lookup): Add invert argument.
29162	(symtab_find, symtab_insert, symtab_delete): Update.
29163	(package_lookup_ext, package_lookup_int): Add invert argument.
29164	(inherited_lookup): Likewise.
29165	(make_package): Likewise.
29166	(shadowing_lookup, shadowing_delete): Likewise.
29167	(accessiblep): Update.
29168	(find_external_symbol, find_symbol, intern): Add invert argument.
29169	(intern_keyword): Update.
29170	(package_lookup): Add invert argument.
29171	(shadowing_import): Update.
29172	(do_shadow): Rename from shadow. Add invert argument.
29173	(shadow, cs_shadow): New functions.
29174	(unintern, import, export, use_package_aux, test_package_arg): Update.
29175	(FIND-PACKAGE): Update.
29176	(test_names_args, RENAME-PACKAGE): Update.
29177	(EXT:PACKAGE-CASE-INVERTED-P): New function.
29178	(do_intern): New function, extracted from INTERN.
29179	(INTERN): Call it.
29180	(CS-COMMON-LISP:INTERN): New function.
29181	(do_find_symbol): New function, extracted from FIND-SYMBOL.
29182	(FIND-SYMBOL): Call it.
29183	(CS-COMMON-LISP:FIND-SYMBOL): New function.
29184	(apply_symbols): Update.
29185	(CS-COMMON-LISP:SHADOW): New function.
29186	(correct_packname): Update.
29187	(in_make_package): Add case_inverted argument.
29188	(MAKE-PACKAGE): Add :CASE-INVERTED argument.
29189	(CS-COMMON-LISP:MAKE-PACKAGE): New function.
29190	(SYSTEM::%IN-PACKAGE): Add :CASE-INVERTED argument.
29191	(do_find_all_symbols): New function, extracted from FIND-ALL-SYMBOLS.
29192	(FIND-ALL-SYMBOLS): Call it.
29193	(CS-COMMON-LISP:FIND-ALL-SYMBOLS): New function.
29194	(map_symbols_aux): Update.
29195	(SYSTEM::PACKAGE-ITERATE): Update.
29196	(init_packages): Reorganize. Creates packages CS-COMMON-LISP and
29197	CS-COMMON-LISP-USER too.
29198	* charstrg.d (invert_case): New function.
29199	(SYS::CHAR-INVERTCASE): New function.
29200	(string_eqcomp_inverted, string_gleich_inverted): New functions.
29201	(nstring_invertcase, string_invertcase): New functions.
29202	(SYS::STRING-INVERTCASE): New function.
29203	(test_stringsymchar_arg): Add invert argument.
29204	(test_1_stringsym_limits, test_2_stringsym_limits): Likewise.
29205	(STRING=): Update.
29206	(CS-COMMON-LISP:STRING=): New function.
29207	(STRING/=): Update.
29208	(CS-COMMON-LISP:STRING/=): New function.
29209	(STRING<): Update.
29210	(CS-COMMON-LISP:STRING<): New function.
29211	(STRING>): Update.
29212	(CS-COMMON-LISP:STRING>): New function.
29213	(STRING<=): Update.
29214	(CS-COMMON-LISP:STRING<=): New function.
29215	(STRING>=): Update.
29216	(CS-COMMON-LISP:STRING>=): New function.
29217	(STRING-EQUAL): Update.
29218	(CS-COMMON-LISP:STRING-EQUAL): New function.
29219	(STRING-NOT-EQUAL): Update.
29220	(CS-COMMON-LISP:STRING-NOT-EQUAL): New function.
29221	(STRING-LESSP): Update.
29222	(CS-COMMON-LISP:STRING-LESSP): New function.
29223	(STRING-GREATERP): Update.
29224	(CS-COMMON-LISP:STRING-GREATERP): New function.
29225	(STRING-NOT-GREATERP): Update.
29226	(CS-COMMON-LISP:STRING-NOT-GREATERP): New function.
29227	(STRING-NOT-LESSP): Update.
29228	(CS-COMMON-LISP:STRING-NOT-LESSP): New function.
29229	(SYS::SEARCH-STRING=): Update.
29230	(SYS::SEARCH-STRING-EQUAL): Update.
29231	(SYS::STRING-BOTH-TRIM): Add an invertp argument.
29232	(STRING-UPCASE, STRING-DOWNCASE, STRING-CAPITALIZE): Update.
29233	(STRING): Update.
29234	(CS-COMMON-LISP:STRING): New function.
29235	(NAME-CHAR): Update.
29236	(SUBSTRING): Update.
29237	* io.d (read_internal): Use the package's case-inverted bit.
29238	(write_sstring_invert): New function.
29239	(write_sstring_case_ext): New function, extracted from
29240	write_sstring_case, with an add case_inverted argument.
29241	(write_sstring_case): Call it.
29242	(pr_symbol): Use the package's case-inverted bit.
29243	(pr_symbol_part): Add case_inverted argument.
29244	(pr_like_symbol): Use the package's case-inverted bit.
29245	* symbol.d (CS-COMMON-LISP:SYMBOL-NAME): New function.
29246	* spvw.d (init_symbol_tab_2): Support packages CS-COMMON-LISP and
29247	CS-COMMON-LISP-USER too.
29248	* constpack.d (LISPPACK): Update.
29249	* encoding.d (MAKE-ENCODING): Update.
29250	* defs1.lisp (string-trim): Update.
29251	(cs-cl::string-trim): New function.
29252	(string-left-trim): Update.
29253	(cs-cl::string-left-trim): New function.
29254	(string-right-trim): Update.
29255	(cs-cl::string-right-trim): New function.
29256	* defpackage.lisp (defpackage): Support case-inverted option.
29257	(find-symbol-cerror): Add invert argument.
29258	(shadowing-import-cerror, import-cerror, intern-export): Likewise.
29259	* case-sensitive.lisp: New file.
29260	* init.lisp: Export package-case-inverted-p.
29261	Load case-sensitive.lisp.
29262	* runprog.lisp (xstring): Handle symbols according to *PRINT-CASE*
29263	and its package.
29264	* complete.lisp (completion): Reorganize. Support case-inverted
29265	packages.
29266	* makemake.in (LPARTS): Add case-sensitive.
29267	* po/Makefile.devel (LISPSOURCES): Add case-sensitive.
29268
292692004-07-14  Bruno Haible  <bruno@clisp.org>
29270
29271	* lispbibl.d (X3J13_161): Undefine.
29272	* package.d (shadow, apply_symbols): Assume X3J13_161 to be true.
29273
292742004-12-14  Bruno Haible  <bruno@clisp.org>
29275
29276	* configure: Unset CDPATH.
29277	Reported by Robert Olney <rolney@pcug.org.au>.
29278
292792004-12-13  Bruno Haible  <bruno@clisp.org>
29280
29281	* utils/clispload.lsp: Call disable-note.
29282	(*expected-failures*): Update.
29283
292842004-12-13  Bruno Haible  <bruno@clisp.org>
29285
29286	* places.lisp (remf): Reorder bindings according to ANSI CL 5.1.3.
29287
292882004-12-13  Bruno Haible  <bruno@clisp.org>
29289
29290	* format.lisp (format-iteration): In the cases without colon, a
29291	*FORMAT-UP-AND-OUT* = :TERMINATE terminates the entire construct.
29292
292932004-11-28  Bruno Haible  <bruno@clisp.org>
29294
29295	Do not recursively compile-file modules that have already been loaded.
29296	* compiler.lisp (c-REQUIRE): Look for the module in both *modules* and
29297	*compiled-modules*, not just *compiled-modules*.
29298
292992004-12-12  Bruno Haible  <bruno@clisp.org>
29300
29301	* win32.d: Move include of <sys/types.h>.
29302
293032004-12-12  Bruno Haible  <bruno@clisp.org>
29304
29305	Fix the error checking of stdout. When writing to a full disk over an
29306	NFS or CODA file system, write() writes into a operating system's
29307	buffer, fflush() succeeds, and only fclose() fails.
29308	* intparam.c (main): Check the error status of fclose(stdout).
29309	* floatparam.c (main): Likewise.
29310	* utils/ccmp2c.c (main): Check the error status of fclose(stdout)
29311	instead of fflush(stdout).
29312	* utils/ccpaux.c (main): Likewise.
29313	* utils/deema.c (main): Likewise.
29314	* utils/txt2c.c (main): Likewise.
29315	* utils/comment5.c (main): Likewise. No need to fclose(stdin).
29316	* utils/varbrace.d (main): Likewise.
29317	* utils/gctrigger.d (main): No need to call fflush(stdout) before
29318	fclose(stdout).
29319	Reported by Jim Meyering.
29320
293212004-12-09  Bruno Haible  <bruno@clisp.org>
29322
29323	Make DEBUG_GCSAFETY work with GENERATIONAL_GC && MORRIS_GC.
29324	* lispbibl.d (inside_gc): New declaration.
29325	(nonimmprobe, nonimmsubrp): Do not access memory if inside_gc.
29326	* spvw_global.d (inside_gc): New variable.
29327	* spvw_garcol.d (gar_col_normal, gar_col_compact): Set and reset
29328	inside_gc.
29329	* spvw_fault.d (handle_read_fault): Verify that this isn't called
29330	inside_gc.
29331
293322004-12-09  Bruno Haible  <bruno@clisp.org>
29333
29334	* lispbibl.d (ASM_get_SP_register, SP) [SPARC64]: Respect the bias of
29335	2048 bytes.
29336
293372004-12-09  Bruno Haible  <bruno@clisp.org>
29338
29339	Make DEBUG_SPVW work in g++ && GENERATIONAL_GC mode.
29340	* spvw_genera1.d (gc_check_ptr_at): New function.
29341	(gc_overall_check): Use it instead of gc_check_at.
29342
293432004-12-09  Bruno Haible  <bruno@clisp.org>
29344
29345	Make DEBUG_SPVW work in HEAPCODES && GENERATIONAL_GC mode.
29346	* spvw_genera1.d (gc_check_at): Add support for HEAPCODES mode.
29347
293482004-12-08  Bruno Haible  <bruno@clisp.org>
29349
29350	* spvw.d (init_object_tab): Make the :CLISP-DEBUG feature depend on
29351	DEBUG_COMPILER, not DEBUG_SPVW.
29352
293532004-12-13  Sam Steingold  <sds@gnu.org>
29354
29355	* stream.d (clear_output_terminal3): fix a GC-safety bug
29356
293572004-12-13  Sam Steingold  <sds@gnu.org>
29358
29359	* spvw.d (print_license, print_banner): (FRESH-LINE *STANDARD-OUTPUT*)
29360	to clean up after *INIT-HOOKS*
29361
293622004-12-13  Sam Steingold  <sds@gnu.org>
29363
29364	* .gdbinit (ansi_tests): wrap setting of an internal variable in
29365	WITHOUT-PACKAGE-LOCK
29366
293672004-12-13  Sam Steingold  <sds@gnu.org>
29368
29369	* io.d (space_available): mark as "maygc"
29370	(string_fit_line_p): ditto + fix a GC-safety bug
29371	(pr_enter_1): update for string_fit_line_p() changes
29372
293732004-12-13  Sam Steingold  <sds@gnu.org>
29374
29375	* eval.d (progv): fix a GC-safety bug
29376
293772004-12-12  Bruno Haible  <bruno@clisp.org>
29378
29379	* spvw.d (main_actions): Fix GC-safety bug in argv_package handling.
29380
293812004-12-11  Bruno Haible  <bruno@clisp.org>
29382
29383	* control.d (parse_doc_decl): Fix GC-safety bug introduced on
29384	2004-05-27.
29385
293862004-12-08  Bruno Haible  <bruno@clisp.org>
29387
29388	* lispbibl.d (symbol_length): New macro.
29389	* constsym.d (LISPSYM_B): Use it. Fixes bug introduced on 2004-05-15.
29390
293912004-12-08  Bruno Haible  <bruno@clisp.org>
29392
29393	* lispbibl.d (init_ffi): Mark as "can trigger GC".
29394	* foreign.d (init_ffi): Likewise.
29395
293962004-12-08  Bruno Haible  <bruno@clisp.org>
29397
29398	* stream.d (FILE-POSITION): Avoid a false GC-safety bug alert: Call
29399	SET-FILL-POINTER directly, without going through funcall.
29400
294012004-12-08  Bruno Haible  <bruno@clisp.org>
29402
29403	* stream.d (make_buffered_stream): Avoid a false GC-safety bug alert.
29404	(It's not worth exploiting the fact that builtin_stream_close doesn't
29405	cons for a file/pipe/socket stream.)
29406
294072004-12-08  Bruno Haible  <bruno@clisp.org>
29408
29409	* lispbibl.d (shifthash): Add allowgc argument.
29410	* hashtabl.d (shifthash): Add allowgc argument.
29411	* io.d (perchar_table_put, copy_perchar_table)
29412	(syntax_table_put_notinline, copy_readtable_contents): Pass allowgc =
29413	true.
29414	* sequence.d (seq_duplicates): Likewise.
29415	* pathname.d (TRANSLATE-LOGICAL-PATHNAME, directory_search): Likewise.
29416	* foreign.d (register_foreign_variable, register_foreign_function)
29417	(convert_function_to_foreign): Pass allowgc = true.
29418	(free_foreign_callin): Pass allowgc = false.
29419
294202004-12-08  Bruno Haible  <bruno@clisp.org>
29421
29422	* realelem.d (R_I_expt_R): Avoid a false GC-safety bug alert.
29423
294242004-12-08  Bruno Haible  <bruno@clisp.org>
29425
29426	* encoding.d (CONVERT-STRING-FROM-BYTES): Avoid a false GC-safety bug
29427	alert.
29428
294292004-12-08  Bruno Haible  <bruno@clisp.org>
29430
29431	* array.d (elt_copy_T_Char, elt_copy_Char_Char): Avoid calling
29432	sstring_store when the character already fits into dv2.
29433
294342004-12-08  Bruno Haible  <bruno@clisp.org>
29435
29436	* control.d (form_constant_p): Inline the useful part of
29437	funname_to_symbol. Handle the case of an undefined function (setf foo).
29438	Call check_SP.
29439	(FUNCTION-SIDE-EFFECT): Inline the useful part of funname_to_symbol.
29440
294412004-12-08  Bruno Haible  <bruno@clisp.org>
29442
29443	* stream.d (stream_get_read_eval, stream_set_read_eval): Use the
29444	forwarded instance for the access. Fixes bug introduced on 2004-04-12.
29445
294462004-12-12  Sam Steingold  <sds@gnu.org>
29447
29448	new module PARI for interface to <http://pari.math.u-bordeaux.fr/>
29449	* modules/pari: new directory
29450
294512004-12-12  Sam Steingold  <sds@gnu.org>
29452
29453	* spvw.d (parse_options): no longer accept "-a": 3.5 years is enough
29454
294552004-12-11  Bruno Haible  <bruno@clisp.org>
29456
29457	* macros3.lisp (expand-LETF*, expand-LETF): Handle symbol-macros
29458	correctly.
29459
294602004-12-08  Bruno Haible  <bruno@clisp.org>
29461
29462	* utils/gctrigger.d: New file.
29463	* makemake.in (GCTRIGGER): New variable.
29464	(XDECL_FILTER, XDECL_DEPENDENCIES): Invoke gctrigger.
29465	(UTILS): Add gctrigger.
29466	* lispbibl.d (maygc): New macro.
29467	(inc_allocstamp): New overloaded function.
29468	(GCTRIGGER, GCTRIGGER1, GCTRIGGER2, GCTRIGGER3, GCTRIGGER4, GCTRIGGER5)
29469	(GCTRIGGER6, GCTRIGGER_IF): New macros.
29470	* lispbibl.d: Use maygc declaration where possible.
29471	* spvw.d: Likewise.
29472	* spvw_circ.d: Likewise.
29473	* spvw_debug.d: Likewise.
29474	* spvw_language.d: Likewise.
29475	* spvw_garcol.d: Likewise.
29476	* spvw_memfile.d: Likewise.
29477	* spvw_module.d: Likewise.
29478	* spvw_typealloc.d: Likewise.
29479	* array.d: Likewise.
29480	* charstrg.d: Likewise.
29481	* control.d: Likewise.
29482	* debug.d: Likewise.
29483	* encoding.d: Likewise.
29484	* error.d: Likewise.
29485	* eval.d: Likewise.
29486	* foreign.d: Likewise.
29487	* hashtabl.d: Likewise.
29488	* io.d: Likewise.
29489	* list.d: Likewise.
29490	* misc.d: Likewise.
29491	* package.d: Likewise.
29492	* pathname.d: Likewise.
29493	* predtype.d: Likewise.
29494	* record.d: Likewise.
29495	* sequence.d: Likewise.
29496	* socket.d: Likewise.
29497	* stream.d: Likewise.
29498	* time.d: Likewise.
29499	* weak.d: Likewise.
29500	* zthread.d: Likewise.
29501	* lisparit.d: Likewise.
29502	* compelem.d: Likewise.
29503	* comptran.d: Likewise.
29504	* dfloat.d: Likewise.
29505	* ffloat.d: Likewise.
29506	* flo_konv.d: Likewise.
29507	* flo_rest.d: Likewise.
29508	* intbyte.d: Likewise.
29509	* intdiv.d: Likewise.
29510	* intelem.d: Likewise.
29511	* intgcd.d: Likewise.
29512	* intlog.d: Likewise.
29513	* intmal.d: Likewise.
29514	* intplus.d: Likewise.
29515	* intread.d: Likewise.
29516	* intsqrt.d: Likewise.
29517	* lfloat.d: Likewise.
29518	* rational.d: Likewise.
29519	* realelem.d: Likewise.
29520	* realrand.d: Likewise.
29521	* realtran.d: Likewise.
29522	* sfloat.d: Likewise.
29523	* lispbibl.d (subsstring): Mark as "can trigger GC".
29524	* io.d (syntax_table_get, syntax_table_put): Turn into inline
29525	functions.
29526	* hashtabl.d (sxhash): Cannot trigger GC.
29527
295282004-12-10  Sam Steingold  <sds@gnu.org>
29529
29530	* lispbibl.d (maygc): expand to nothing
29531
295322004-12-07  Bruno Haible  <bruno@clisp.org>
29533
29534	Delay warn_forced_gc_rehash call if needed.
29535	* lispbibl.d (ht_test_code): Remove a bit.
29536	(ht_test_code_user_p): New macro.
29537	* hashtabl.d (htflags_test_builtin_B): New macro.
29538	(htflags_test_eq_B, htflags_test_eql_B, htflags_test_equal_B)
29539	(htflags_test_equalp_B): Define using fewer bits.
29540	(htflags_test_user_B): New macro.
29541	(htflags_stablehash_B): Update.
29542	(htflags_pending_warn_forced_gc_rehash): New macro.
29543	(hashcode_raw, hashcode_builtin, rehash): Update.
29544	(hash_lookup_builtin): Delay warn_forced_gc_rehash call if needed.
29545	Execute pending warn_forced_gc_rehash call if possible.
29546	(hash_lookup_builtin_with_rehash): Delay warn_forced_gc_rehash call if
29547	needed.
29548	(hash_prepare_store, MAKE-HASH-TABLE, hash_table_test): Update.
29549	* predtype.d (hash_table_equalp): Update.
29550	* spvw_debug.d (nobject_out1): Update.
29551	* pseudofun.d: Update.
29552
295532004-12-07  Bruno Haible  <bruno@clisp.org>
29554
29555	* lispbibl.d (gethash): Add allowgc argument.
29556	(if_potential_class_p, if_defined_class_p): Pass allowgc = false.
29557	(instanceof): Likewise.
29558	* hashtabl.d (lookup_Pseudofun): Add allowgc argument.
29559	(hash_lookup_builtin, hash_lookup_builtin_with_rehash)
29560	(hash_lookup_user, hash_lookup): Likewise.
29561	(MAKE-HASH-TABLE): Pass allowgc = true.
29562	(gethash): Add allowgc argument.
29563	(GETHASH, SYSTEM::PUTHASH, shifthash, REMHASH): Pass allowgc = true.
29564	* predtype.d (hash_table_equalp): Return false if either hash table
29565	has a user-defined test. Pass allowgc = false.
29566	(typep_class, typep_classname): Pass allowgc = false.
29567	* eval.d (interpret_bytecode_): Pass allowgc = false.
29568	* io.d (perchar_table_get, syntax_table_get_notinline): Likewise.
29569	* stream.d (stream_get_read_eval, stream_set_read_eval): Likewise.
29570	* pathname.d (logical_host_p, TRANSLATE-LOGICAL-PATHNAME): Likewise.
29571	* record.d (CLOS:SLOT-VALUE, CLOS::SET-SLOT-VALUE, CLOS:SLOT-BOUNDP)
29572	(CLOS:SLOT-MAKUNBOUND, CLOS:SLOT-EXISTS-P): Pass allowgc = false.
29573	(CLOS::%REINITIALIZE-INSTANCE): Likewise.
29574	(CLOS::%INITIALIZE-INSTANCE): Pass allowgc = true.
29575	(CLOS::%MAKE-INSTANCE): Pass allowgc = false.
29576	* foreign.d (register_foreign_variable, register_foreign_function)
29577	(convert_function_to_foreign, free_foreign_callin)
29578	(FFI::LOOKUP-FOREIGN-VARIABLE, FFI::LOOKUP-FOREIGN-FUNCTION): Pass
29579	allowgc = false.
29580	* genclisph.d (main): Update gethash declaration.
29581	* modules/clx/new-clx/clx.f (make_xid_obj_2): Update.
29582
295832004-12-07  Bruno Haible  <bruno@clisp.org>
29584
29585	* hashtabl.d (SYSTEM::PUTHASH, REMHASH): If the argument was not a
29586	hash-table and check_hashtable provided a replacement, use the
29587	replacement, not the original argument. Fixes bug introduced on
29588	2003-05-13.
29589
295902004-12-07  Bruno Haible  <bruno@clisp.org>
29591
29592	* array.d (storagevector_store): Rename local variable 'maygc'.
29593
295942004-11-29  Bruno Haible  <bruno@clisp.org>
29595
29596	* describe.lisp (describe-stream): New class.
29597	(describe): Use it instead of fill-stream.
29598
295992004-12-07  Bruno Haible  <bruno@clisp.org>
29600
29601	* stream.d (same_handle_p): Parenthesize the TIME_EQ arguments.
29602
296032004-12-09  Bruno Haible  <bruno@clisp.org>
29604
29605	* stream.d (rd_ch_array_str_in): Fix GC-safety bug introduced on
29606	2002-05-22.
29607
296082004-12-08  Bruno Haible  <bruno@clisp.org>
29609
29610	* lisparit.d (LOG): Fix GC-safety bug introduced on 2002-10-06.
29611
296122004-12-08  Bruno Haible  <bruno@clisp.org>
29613
29614	* foreign.d (object_address): Fix GC-safety bug introduced on 2003-08-07.
29615
296162004-12-08  Bruno Haible  <bruno@clisp.org>
29617
29618	* foreign.d (convert_function_to_foreign): Fix long-standing GC-safety
29619	bug.
29620
296212004-12-08  Bruno Haible  <bruno@clisp.org>
29622
29623	* foreign.d (SET-FOREIGN-POINTER): Fix GC-safety bug introduced on
29624	2003-03-14.
29625
296262004-12-10  Sam Steingold  <sds@gnu.org>
29627
29628	New user variable CUSTOM:*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
29629	allows using the shortest package (nick)name as the symbol prefix
29630	* lispbibl.d, genclisph.d (Package): new slot pack_shortest_name
29631	* package.d (ensure_pack_shortest_name): new function
29632	(make_package, RENAME-PACKAGE): call it
29633	(EXT:PACKAGE-SHORTEST-NAME): new function
29634	* constsym.d, subr.d (package_shortest_name): add
29635	* constsym.d (*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*): add
29636	* spvw.d (init_symbol_values): initialize it
29637	* reploop.lisp (package-short-name): remove
29638	(*prompt-body*): use PACKAGE-SHORTEST-NAME
29639	* io.d (pr_symbol): when *PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
29640	and not *PRINT-READABLY*, use pack_shortest_name instead of pack_name
29641	* init.lisp (EXT:PACKAGE-SHORTEST-NAME): export
29642
296432004-12-08  Bruno Haible  <bruno@clisp.org>
29644
29645	* lispbibl.d (list_length): Mark as "can trigger GC".
29646	* list.d (list_length): Likewise. Fix GC-safety bug introduced on
29647	2004-02-17.
29648
296492004-12-08  Bruno Haible  <bruno@clisp.org>
29650
29651	* array.d (SYS::STORE): Fix GC-safety bug introduced on 2002-05-22.
29652	(SYS::ROW-MAJOR-STORE): Put the array into STACK_0, for error messages;
29653	fixes a long-standing bug. Fix GC-safety bug introduced on 2002-05-22.
29654
296552004-12-08  Bruno Haible  <bruno@clisp.org>
29656
29657	* predtype.d (heap_statistics_record): New function.
29658	(heap_statistics_result): Use it. Fixes GC-safety bug when the heap
29659	size is big.
29660
296612004-12-08  Bruno Haible  <bruno@clisp.org>
29662
29663	* sequence.d (MAKE-SEQUENCE): Avoid potential GC-safety bug: since now
29664	elt_fill can trigger GC.
29665
296662004-12-08  Bruno Haible  <bruno@clisp.org>
29667
29668	* comptran.d (N_N_expt_N): Fix GC-safety bug introduced on 2002-09-11.
29669
296702004-12-08  Bruno Haible  <bruno@clisp.org>
29671
29672	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix possible
29673	GC-safety bug.
29674
296752004-12-08  Bruno Haible  <bruno@clisp.org>
29676
29677	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Use the encoding
29678	provided by test_external_format_arg, not the original argument; fixes
29679	bug introduced on 2003-05-07.
29680
29681	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix GC-safety bug
29682	introduced on 2002-01-17.
29683
296842004-12-08  Bruno Haible  <bruno@clisp.org>
29685
29686	* hashtabl.d (MAKE-HASH-TABLE): Fix GC-safety bug when using
29687	:INITIAL-CONTENTS with user-defined test, introduced on 2003-05-13.
29688
296892004-12-08  Bruno Haible  <bruno@clisp.org>
29690
29691	* pathname.d (use_default_dir): Fix GC-safety bug introduced on
29692	2002-01-09.
29693
296942004-12-10  Arseny Slobodyuk  <ampy@ich.dvo.ru>
29695
29696	* win32.d: fix mingw build - include sys/types.h before using of
29697	ssize_t.
29698
296992004-12-09  Sam Steingold  <sds@gnu.org>
29700
29701	* genclisph.d (TESTOUT): check some constants (nullobj, unbound &c)
29702
297032004-12-09  Sam Steingold  <sds@gnu.org>
29704
29705	* modules/rawsock/rawsock.c (check_struct_data, SOCKADDR-FAMILY)
29706	(optional_sockaddr_argument, BIND, CONNECT, RECVMSG, SENDMSG, SENDTO):
29707	avoid warnings on AMD64 by using socklen_t instead of size_t
29708
297092004-12-09  Sam Steingold  <sds@gnu.org>
29710
29711	* modules/rawsock/rawsock.c (htonl, htons, ntohl, ntohs): implement
29712	* modules/rawsock/sock.lisp (htonl, htons, ntohl, ntohs): export
29713
297142004-12-07  Sam Steingold  <sds@gnu.org>
29715
29716	* compiler.lisp (compile): always return 3 values as specified by ANSI
29717	Reported by Michael Kappert <michael.kappert@gmx.net>
29718
297192004-12-06  Sam Steingold  <sds@gnu.org>
29720
29721	* modules/syscalls/calls.c (POSIX::SET-FILE-STAT): also set ATIME
29722	and MTIME using utime(2)
29723	(copy_attributes_and_close): use utime(2) instead of the
29724	deprecated utimes(2)
29725
297262004-12-06  Sam Steingold  <sds@gnu.org>
29727
29728	* modules/syscalls/calls.c (OS:FILE-PROPERTIES): support cygwin
29729	* modules/syscalls/posix.lisp (FILE-PROPERTIES) [win32|cygwin]: export
29730	* modules/syscalls/configure.in (LIBS) [win32|cygwin]: add oleaut32
29731
297322004-12-06  Sam Steingold  <sds@gnu.org>
29733
29734	* modules/syscalls/calls.c (check_chmod_mode): new function
29735	(POSIX::CONVERT-MODE): use it, permit symbol arguments
29736
297372004-12-06  Sam Steingold  <sds@gnu.org>
29738
29739	* eval.d (progv): do not modify the source code:
29740	when symlist contains bad symbols, copy it
29741
297422004-12-06  Arseny Slobodyuk  <ampy@ich.dvo.ru>
29743
29744	IPropertyStorage interface on WIN32_NATIVE.
29745	* makemake.in: add liboleaut32 to libraries on cygwin.
29746	* modules/syscalls/calls.c (StgOpenStorageExFuncType): new type.
29747	(StgOpenStorageExFunc, ole32): new global static variables.
29748	(module__syscalls__init_function_2): load ole32.dll and
29749	  get the StgOpenStorageEx address.
29750	(PropVariantToLisp, LispToPropVariant, kwtopropid, PropSpecSetStr)
29751	(propspeclistp, PropSpecSet, DecodeHRESULT): new static
29752	helper functions.
29753	(with_string_0w, MyPropVariantInit) new defines.
29754	Add a number of IPropertyStorage API defines missing in
29755	cygwin headers.
29756	(POSIX::FILE-PROPERTIES): new DEFUN.
29757
297582004-12-05  Bruno Haible  <bruno@clisp.org>
29759
29760	Sequence constructing functions must check whether the result belongs
29761	to the given type.
29762	* sequence.d (valid_type1): Expect the type on the stack. Write back
29763	the expanded type.
29764	(valid_type): Likewise.
29765	(MAKE-SEQUENCE, coerce_sequence, SYSTEM::COERCED-SUBSEQ, CONCATENATE)
29766	(MAP, MERGE): Update. Invoke SEQTYPE_LENGTH_MATCH only if the
29767	type-length is an integer. At the end, verify using TYPEP.
29768	* predtype.d (COERCE): Try coerce_sequence also for non-atom types.
29769
297702004-12-05  Bruno Haible  <bruno@clisp.org>
29771
29772	* lispbibl.d (execute): Remove declaration (leftover from Atari ST).
29773
297742004-12-05  Bruno Haible  <bruno@clisp.org>
29775
29776	* lispbibl.d (DYNAMIC_8BIT_VECTOR, DYNAMIC_STRING): Use 'var'.
29777
297782004-12-05  Bruno Haible  <bruno@clisp.org>
29779
29780	* hashtabl.d (check_weak): DO NOT USE LOCAL VARIABLES OF TYPE
29781	gcv_object_t.
29782
297832004-12-05  Bruno Haible  <bruno@clisp.org>
29784
29785	* lispbibl.d (mv_to_list, implicit_progn): Cosmetics.
29786	* io.d (LINES_INC): Likewise.
29787
297882004-12-05  Bruno Haible  <bruno@clisp.org>
29789
29790	* lispbibl.d (init_packages, unread_char, write_byte_array)
29791	(write_char_array): Mark as "can trigger GC".
29792	(convert_to_foreign_mallocing, convert_to_foreign_nomalloc): Likewise.
29793	* spvw_language.d (CLSTEXT, CLOTEXT): Likewise.
29794	* charstrg.d (subsstring): Mark as "can trigger GC".
29795	* stream.d (write_byte_array, unread_char, write_char_array): Likewise.
29796
297972004-12-05  Bruno Haible  <bruno@clisp.org>
29798
29799	* realelem.d (R_R_comp): Fix GC-safety bug introduced on 2004-09-18.
29800
298012004-12-05  Bruno Haible  <bruno@clisp.org>
29802
29803	* stream.d (FILE-POSITION): Fix GC-safety bug introduced on 2004-02-15.
29804
298052004-12-05  Bruno Haible  <bruno@clisp.org>
29806
29807	* charstrg.d (test_string_limits_rw): Mark as "can trigger GC". Fixes
29808	leftover from 2003-05-01.
29809
298102004-12-05  Bruno Haible  <bruno@clisp.org>
29811
29812	* foreign.d (convert_to_foreign_*): Mark as "can trigger GC".
29813	(FFI::EXEC-ON-STACK): Fix GC-safety bug introduced on 2002-04-23.
29814	(FFI::FOREIGN-CALL-OUT): Fix several long-standing GC-safety bugs.
29815
298162004-12-05  Bruno Haible  <bruno@clisp.org>
29817
29818	* foreign.d (FFI::%OFFSET): Fix GC-safety bug introduced on 2003-05-12.
29819
298202004-12-05  Bruno Haible  <bruno@clisp.org>
29821
29822	* debug.d (read_form): Fix GC-safety bug introduced on 2003-01-21.
29823
298242004-12-05  Bruno Haible  <bruno@clisp.org>
29825
29826	* io.d (pretty_print_call): Fix GC-safety bug introduced on 2001-08-17.
29827	Avoid goto.
29828
298292004-12-05  Bruno Haible  <bruno@clisp.org>
29830
29831	* io.d (test_disp_sub_char): Expect readtable on the STACK. Fix
29832	GC-safety bug introduced on 2004-06-02.
29833	(SET-DISPATCH-MACRO-CHARACTER, GET-DISPATCH-MACRO-CHARACTER): Update.
29834
298352004-12-05  Bruno Haible  <bruno@clisp.org>
29836
29837	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Fix GC-safety bug
29838	introduced on 2003-05-07.
29839
298402004-12-05  Bruno Haible  <bruno@clisp.org>
29841
29842	* stream.d (test_input_stream_args, test_output_stream_args): Fix
29843	GC-safety bug introduced on 2004-06-02.
29844
298452004-12-05  Bruno Haible  <bruno@clisp.org>
29846
29847	* eval.d (interpret_bytecode_ PROGV): Fix GC-safety bug introduced on
29848	2003-05-20.
29849
298502004-12-05  Bruno Haible  <bruno@clisp.org>
29851
29852	* stream.d (SYS::MAKE-SOCKET-STREAM, SOCKET-ACCEPT, SOCKET-CONNECT):
29853	Do not declare variables earlier than needed. (Deprecated BSD style.)
29854
298552004-12-04  Bruno Haible  <bruno@clisp.org>
29856
29857	Prepare for using DEBUG_GCSAFETY with modules.
29858	* genclisph.d (main): Fix VAROBJECT_HEADER definition.
29859	* utils/modprep.lisp (print-tables-1): Change element type of the
29860	object-tab to gcv_object_t.
29861	* modules/clx/new-clx/clx.f (with_stringable_0_tc): Add casts in
29862	conditional expression.
29863	(XLIB:CREATE-PIXMAP): Likewise.
29864
298652004-12-04  Bruno Haible  <bruno@clisp.org>
29866
29867	Make it possible to use CC=g++ with modules.
29868	* genclisph.d (main): Fix the declaration of fd_read, fd_write on Unix.
29869	* utils/modprep.lisp (print-tables-1): Use "extern" in the forward
29870	declaration on the subr-tab.
29871	* modules/clx/new-clx/clx.f (pop_display): Add a cast.
29872	(get_font_info_and_display): Likewise.
29873	(make_visual_info): Use field name 'c_class' in C++ mode.
29874	(XLIB:SCREEN-DEPTHS): Do not use 'template' as an identifier.
29875	(XLIB:CREATE-WINDOW): Do not use 'class' as an identifier.
29876	(XLIB:WINDOW-CLASS): Use field name 'c_class' in C++ mode.
29877	(handle_image_z, XLIB:PUT-IMAGE): Add a cast.
29878	(XLIB:DISCARD-FONT-INFO, XLIB:SET-FONT-PATH): Likewise.
29879	(XLIB:GET-PROPERTY): Do not use 'delete' as an identifier.
29880	(DEF_EVENT COLORMAP-NOTIFY): Use field name 'c_new' in C++ mode.
29881	(XLIB:PROCESS-EVENT): Add a cast.
29882	(grasp): New function, extracted out of encode_event.
29883	(encode_event): Update.
29884	(XLIB:QUERY-KEYMAP): Add casts.
29885	(XVisualIDToVisual): Do not use 'template' as an identifier.
29886	* modules/queens/queens.c (queens): Use ANSI C declaration syntax.
29887	Do not use 'try' as an identifier.
29888	* modules/rawsock/rawsock.c (RAWSOCK:MAKE-SOCKADDR): Add a cast.
29889	* modules/syscalls/calls.c (POSIX::CONFSTR): Add a cast.
29890	(POSIX::CONVERT-MODE): Move error-signaling code out of inner block.
29891
298922004-12-02  Bruno Haible  <bruno@clisp.org>
29893
29894	Fix compilation errors with DEBUG_GCSAFETY.
29895	* foreign.d (FFI:FOREIGN-VARIABLE): Add cast in conditional expression.
29896	(open_library): Expect the name argument to be on the STACK.
29897	(update_library): Fix GC-safety bugs.
29898
298992004-12-02  Bruno Haible  <bruno@clisp.org>
29900
29901	Make it possible again to do "make install" with a different user id
29902	even when Makefile is newer than cflags.h.
29903	* makemake.in (cflags.h.stamp): Rename from cflags.h.
29904	(cflags.h): New rule.
29905	(clean4): Remove also cflags.h.stamp.
29906
299072004-12-01  Sam Steingold  <sds@gnu.org>
29908
29909	* describe.lisp (arglist): COERCE the argument to FUNCTION
29910	so that (ARGLIST 'PRINT-OBJECT) returns meaningful variable names
29911
299122004-11-29  Sam Steingold  <sds@gnu.org>
29913
29914	* stream.d (low_read_array_unbuffered_handle)
29915	(low_read_unbuffered_handle, low_read_unbuffered_handle)
29916	(low_fill_buffered_handle, low_read_unbuffered_socket)
29917	(low_listen_unbuffered_socket, low_read_array_unbuffered_socket)
29918	(low_fill_buffered_socket): fd_read() returns ssize_t, not sintL
29919	(low_write_array_unbuffered_handle, low_flush_buffered_handle)
29920	(low_flush_buffered_pipe, low_write_array_unbuffered_pipe)
29921	(low_write_array_unbuffered_socket, low_flush_buffered_socket)
29922	(low_write_unbuffered_socket, low_write_unbuffered_handle):
29923	fd_write() returns ssize_t, not sintL
29924
299252004-11-29  Bruno Haible  <bruno@clisp.org>
29926
29927	* spvw_memfile.d (loadmem_from_handle): More uses of sintM and ssize_t
29928	instead of sintL.
29929
299302004-11-29  Sam Steingold  <sds@gnu.org>
29931
29932	* spvw_memfile.d (loadmem_from_handle): full_read() returns
29933	ssize_t, not sintL
29934
299352004-11-27  Sam Steingold  <sds@gnu.org>
29936
29937	* foreign1.lisp (c-init-once, c-init-always, c-fini, do-c-init-once)
29938	(do-c-init-always, do-c-fini): remove
29939	(do-c-lines): when FORMAT-STRING is a symbol, add the code to the
29940	appropriate init/fini function
29941
299422004-11-27  Bruno Haible  <bruno@clisp.org>
29943
29944	* lispbibl.d (uintM, sintM): Fix conditional.
29945	(static_space, used_space, free_space): Change return value type to
29946	uintM.
29947
299482004-11-26  Sam Steingold  <sds@gnu.org>
29949
29950	* compiler.lisp (try-eval): extracted from c-DIRECT-FUNCTION-CALL
29951	(c-DIRECT-FUNCTION-CALL): use it
29952	(c-PLUS, c-STAR, c-MINUS, c-SLASH): use it to avoid turning run-time
29953	errors into compile-time errors: issue a warning instead
29954
299552004-11-20  Bruno Haible  <bruno@clisp.org>
29956
29957	* clos-genfun4.lisp (add-extended-method-check): Ignore the values of
29958	:after/:before methods.
29959
299602004-11-20  Bruno Haible  <bruno@clisp.org>
29961
29962	Do not bypass the finalize-inheritance generic function.
29963	* clos-class2.lisp (class-pretty): New function.
29964	* clos-class3.lisp (shared-initialize-<semi-standard-class>): Call
29965	finalizable-p and finalize-inheritance instead of finalize-class.
29966	(finalize-class): Remove function.
29967	(finalizable-p): New function.
29968	(finalize-inheritance): Call finalize-inheritance-<semi-standard-class>
29969	instead of finalize-class.
29970	(finalize-inheritance-<semi-standard-class>): New function.
29971	* clos-class6.lisp (finalize-inheritance@semi-standard-class): Call
29972	finalize-inheritance-<semi-standard-class> instead of finalize-class.
29973
299742004-11-20  Bruno Haible  <bruno@clisp.org>
29975
29976	* clos-class3.lisp (defclass): Warn about a syntax error that beginners
29977	often do.
29978
299792004-11-24  Bruno Haible  <bruno@clisp.org>
29980
29981	Support heaps > 4 GB.
29982	* lispbibl.d (intMsize): New macro.
29983	(uintM, sintM): New types.
29984	(map_heap_function_t): Use uintM.
29985	(varobject_bytelength): Return uintM.
29986	(uintM_to_I, sintM_to_I): New macros.
29987	* spvw.d (argv_initparams): Change type of argv_memneed to uintM.
29988	(parse_options): Produce an uintM for argv_memneed. Accept GB as
29989	denoting "Giga".
29990	(init_memory): Use uintM.
29991	(dynload_modules): Likewise.
29992	* spvw_mmap.d (mmap_zeromap, mmap_filemap): Take an uintM.
29993	(mmap_prepare): Use uintM.
29994	* spvw_multimap.d (mmap_interval_t): Change the type of mm_len to
29995	uintM.
29996	(remember_mmap_interval, fdmap, zeromap, open_temp_fd, fdsave)
29997	(open_shmid, shmsave): Take an uintM.
29998	(multimap): Update.
29999	* spvw_singlemap.d (filemap): Take an uintM.
30000	* spvw_page.d (_Page): Change type of gcpriv.l to uintM.
30001	(spvw AVL_ELEMENT): Use uintM.
30002	* spvw_heap.d (Heap): Change the type of misaligned to uintM.
30003	* spvw_global.d (mem): Change the type of total_room,
30004	last_gcend_space0, last_gcend_space1, total_space, used_space,
30005	last_gcend_space, gctrigger_space to uintM.
30006	(check_gc_consistency, check_gc_consistency_2): Update.
30007	* spvw_gcstat.d (inc_gc_space): Take an uintM.
30008	* spvw_space.d (static_space, used_space, free_space): Return uintM.
30009	(recalc_space): Update.
30010	* spvw_objsize.d (varobject_bytelength): Return uintM.
30011	(size_svector): Likewise.
30012	(objsize, objsize_symbol, objsize_sbvector, objsize_sb2vector)
30013	(objsize_sb4vector, objsize_sb8vector, objsize_sb16vector)
30014	(objsize_sb32vector, objsize_svector, objsize_sxrecord, objsize_lrecord)
30015	(objsize_bignum, objsize_ffloat, objsize_dfloat, objsize_lfloat)
30016	(objsize_func_t): Likewise.
30017	* spvw_update.d (update_varobject, update_svector): Use uintM.
30018	* spvw_fault.d (xmprotect, xmmprotect): Take an uintM.
30019	* spvw_garcol.d (gc_sweep1_varobject_page): Update.
30020	(move_aligned_p1_p2): Take an uintM.
30021	(gc_sweep2_varobject_page, free_some_unused_pages): Update.
30022	(gar_col_normal): Update.
30023	(spvw SORT_KEY): Use uintM.
30024	(gc_compact_from_varobject_page, gc_compact_from_cons_page): Update.
30025	(gar_col_compact): Update.
30026	(move_conses): Take a sintM.
30027	* spvw_weak.d (markwatchset_allocated, markwatchset_size): Change type
30028	to uintM.
30029	(activate_weak): Update.
30030	* spvw_allocate.d (relax_reserve, mymalloc): Take an uintM.
30031	(not_enough_room_p, make_space, make_space_gc, make_space_true)
30032	(make_space_false, make_space_using_malloc): Likewise.
30033	* spvw_typealloc.d (allocate_vector): Use uintM.
30034	* spvw_walk.d (map_heap_objects): Update.
30035	* spvw_memfile.d (savemem, loadmem_from_handle): Use uintM.
30036	* predtype.d (hs_record_t): Change type of n_bytes to sintM.
30037	(heap_statistics_mapper, heap_statistics_result): Update.
30038	* debug.d (SYSTEM::%ROOM): Use uintM and uintM_to_I.
30039
300402004-11-24  Sam Steingold  <sds@gnu.org>
30041
30042	* stream.d (listen_handle) [WIN32_NATIVE]: use full_read() instead
30043	of read() to avoid a gcc warning
30044
300452004-11-19  Bruno Haible  <bruno@clisp.org>
30046
30047	Repair the rest of the forward-referenced-class misdesign.
30048	* clos-class1.lisp (super-class): New class.
30049	(*<super-class>-defclass*): New variable.
30050	(potential-class): Inherit all slots from super-class.
30051	(class-direct-subclasses-table): Make it work also for objects
30052	that are not of type <potential-class>.
30053	(forward-referenced-class): Remove class.
30054	(*<forward-referenced-class>-defclass*): Remove variable.
30055	(forward-reference-to-class): New class.
30056	(*<forward-reference-to-class>-defclass*): New variable.
30057	(misdesigned-forward-referenced-class): New class.
30058	(*<misdesigned-forward-referenced-class>-defclass*): New variable.
30059	(shared-initialize-<defined-class>): Test for defined-class or
30060	forward-reference-to-class, instead of for potential-class.
30061	(forward-reference-to-class-p): New function.
30062	(print-object-<forward-reference-to-class>): New function.
30063	* clos-class2.lisp (<forward-referenced-class>): Remove variable.
30064	(<forward-reference-to-class>, <misdesigned-forward-referenced-class>):
30065	New variables.
30066	((setf find-class)): Use forward-reference-to-class-p instead of typep.
30067	* clos-class3.lisp (ensure-class-using-class-<t>): Test for
30068	defined-class or forward-reference-to-class, instead of for
30069	potential-class.
30070	(reinitialize-instance-<defined-class>): Likewise.
30071	(finalize-class): Likewise.
30072	Define <super-class>.
30073	Define <forward-reference-to-class>,
30074	<misdesigned-forward-referenced-class> instead of
30075	<forward-referenced-class>.
30076	* clos-class6.lisp (class-name@forward-reference-to-class): Rename
30077	from class-name@forward-referenced-class. Do not use class-classname.
30078	(class-direct-subclasses-table): Make it work also for objects that are
30079	not of type <potential-class>.
30080	(class-direct-subclasses@forward-reference-to-class): Rename from
30081	class-direct-subclasses@forward-referenced-class.
30082	(class-direct-superclasses@forward-reference-to-class): Rename from
30083	class-direct-superclasses@forward-referenced-class. Do not use
30084	class-classname.
30085	(class-direct-slots@forward-reference-to-class): Rename from
30086	class-direct-slots@forward-referenced-class. Do not use class-classname.
30087	(class-direct-default-initargs@forward-reference-to-class): Rename
30088	from class-direct-default-initargs@forward-referenced-class. Do not use
30089	class-classname.
30090	(class-finalized-p@forward-reference-to-class): Rename from
30091	class-finalized-p@forward-referenced-class.
30092	(add-direct-subclass@super-class@potential-class): Rename from
30093	add-direct-subclass@potential-class@potential-class.
30094	(remove-direct-subclass@super-class@potential-class): Rename from
30095	remove-direct-subclass@potential-class@potential-class.
30096	* clos-print.lisp (print-object@forward-reference-to-class): New
30097	method.
30098	* clos-custom.lisp ((setf <forward-referenced-class>-under-<class>)):
30099	Call also set-<forward-referenced-class>-...
30100	(set-<class>-<potential-class>, set-<class>-<defined-class>): Disable
30101	package lock.
30102	(set-<forward-referenced-class>-<misdesigned-forward-referenced-class>)
30103	(set-<forward-referenced-class>-<forward-reference-to-class>): New
30104	functions.
30105
301062004-11-18  Bruno Haible  <bruno@clisp.org>
30107
30108	Repair part of the forward-referenced-class misdesign.
30109	* lispbibl.d (if_potential_class_p): Rename from if_class_p.
30110	* predtype.d (CLOS::%DEFCLOS): Update.
30111	(CLOS::POTENTIAL-CLASS-P): Rename from CLOS::CLASS-P.
30112	* clos-class1.lisp (potential-class): Rename from class.
30113	(*<potential-class>-defclass*): Rename from *<class>-defclass*.
30114	(*<potential-class>-...-location*): Rename from *<class>-...-location*.
30115	(class-classname, class-direct-subclasses-table): Update.
30116	(shared-initialize-<potential-class>): Rename from
30117	shared-initialize-<class>.
30118	(forward-referenced-class, defined-class): Update.
30119	(shared-initialize-<defined-class>): Update. Use potential-class-p
30120	instead of class-p.
30121	(potential-class type): Rename from class.
30122	(print-object-<potential-class>): Rename from print-object-<class>.
30123	(print-object): Use potential-class-p instead of class-p.
30124	* clos-class2.lisp (<potential-class>): Rename from <class>.
30125	* clos-class3.lisp (ensure-class-using-class-<t>): Use defined-class
30126	instead of class, potential-class-p instead of class-p.
30127	(reinitialize-instance-<defined-class>): Use potential-class-p instead
30128	of class-p.
30129	(std-compute-superclasses): Update.
30130	(finalize-class): Use potential-class-p instead of class-p.
30131	(list-all-finalized-subclasses): Update.
30132	Define <potential-class> instead of <class>.
30133	Update %defclos call.
30134	* clos-genfun1.lisp (print-object): Use potential-class-p instead of
30135	class-p.
30136	* clos-genfun2a.lisp
30137	(compute-applicable-methods-using-classes-<generic-function>): Use
30138	defined-class-p instead of class-p.
30139	(compute-applicable-methods-for-set): Likewise.
30140	* clos-slots2.lisp (invalidate-slot-value-info): Use defined-class-p
30141	instead of class-p.
30142	* clos-class4.lisp (shared-initialize@potential-class): Rename from
30143	shared-initialize@class.
30144	* clos-class5.lisp (*make-instance-table*)
30145	(*reinitialize-instance-table*)
30146	(*update-instance-for-redefined-class-table*): Update.
30147	(note-ai-change): Use defined-class-p instead of class-p.
30148	(update-instance-for-different-class@potential-class@standard-object):
30149	Rename from update-instance-for-different-class@class@standard-object.
30150	* clos-class6.lisp (class-classname): Update.
30151	((setf class-name)@potential-class): Rename from
30152	(setf class-name)@potential-class.
30153	(class-direct-subclasses-table): Update.
30154	(ensure-class-using-class@potential-class): Rename from
30155	ensure-class-using-class@class.
30156	(validate-superclass@potential-class@potential-class): Rename from
30157	validate-superclass@class@class.
30158	(add-direct-subclass@potential-class@potential-class): Rename from
30159	add-direct-subclass@class@class.
30160	(remove-direct-subclass@potential-class@potential-class): Rename from
30161	remove-direct-subclass@class@class.
30162	* clos-print.lisp (print-object@potential-class): Rename from
30163	print-object@class.
30164	* clos-custom.lisp: New file.
30165	* documentation.lisp (documentation, (setf documentation)): Use
30166	defined-class instead of class.
30167	* loadform.lisp (make-load-form@defined-class): Rename from
30168	make-load-form@class.
30169	* clos.lisp: Load clos-custom.
30170	* makemake.in (LPARTS): Add clos-custom.
30171	* po/Makefile.devel (LISPSOURCES): Add clos-custom.
30172
301732004-11-23  Sam Steingold  <sds@gnu.org>
30174
30175	* lispbibl.d (PC386) [AMD64]: define
30176
301772004-11-23  Sam Steingold  <sds@gnu.org>
30178
30179	revert the 2003-10-10 patch and fix the problem differently:
30180	since the problem is that COMPILE/LOAD-TIME-VALUE must work even
30181	inside COMPILE-FILE, *FASOUTPUT-STREAM* should be bound there
30182	* compiler.lisp (compile): bind *FASOUTPUT-STREAM* to NIL
30183	(c-EVAL-WHEN): do not bind *FASOUTPUT-STREAM*
30184	* reploop.lisp (break-loop): ditto
30185	Suggested by Don Cohen in
30186	<http://article.gmane.org/gmane.lisp.clisp.devel/13127>
30187	<https://sourceforge.net/p/clisp/mailman/message/13749992/>
30188
301892004-11-23  Bruno Haible  <bruno@clisp.org>
30190
30191	* package.d (rehash_symtab): If the vector length supports 32 bits, use
30192	2^32-1 as maximum size, not 2^24-1.
30193
301942004-11-23  Bruno Haible  <bruno@clisp.org>
30195
30196	* clhs.lisp (browse-url): On MacOS X, use the system's browser by
30197	default.
30198	Suggested by Pascal Costanza <pc@p-cos.net>.
30199
302002004-11-23  Bruno Haible  <bruno@clisp.org>
30201
30202	* spvw.d (init_object_tab): Add :MACOS to *FEATURES* on MacOS X.
30203
302042004-11-17  Bruno Haible  <bruno@clisp.org>
30205
30206	Use forward-referenced-class instances instead of symbols in the
30207	direct-superclasses list.
30208	* clos-class1.lisp (shared-initialize-<defined-class>): Do not accept
30209	symbols in the direct-superclasses list any more.
30210	* clos-class2.lisp (<forward-referenced-class>): New variable.
30211	((setf find-class)): When replacing a forward-referenced class, move
30212	the list of subclasses from the old class object to the new one.
30213	* clos-class3.lisp (ensure-class-using-class-<t>): Convert symbols in
30214	the direct-superclasses list to forward-referenced-class instances.
30215	(reinitialize-instance-<defined-class>): Likewise. Handle the change
30216	from a forward-referenced-class to a defined-class.
30217	(update-subclasses-sets): Treat the forward-referenced-class the same
30218	way.
30219	(finalize-class): Handle the case where the argument is a
30220	forward-referenced-class. Handle the change from a
30221	forward-referenced-class to a defined-class.
30222	(<forward-referenced-class>): Initialize.
30223
302242004-11-22  Bruno Haible  <bruno@clisp.org>
30225
30226	* stream.d (low_read_unbuffered_handle): Use full_read instead of read.
30227	Do not interpret EINTR on Unix as being a consequence of SIGINT.
30228	(low_write_unbuffered_handle): Use full_write instead of write. Do not
30229	interpret EINTR on Unix as being a consequence of SIGINT.
30230
302312004-11-22  Sam Steingold  <sds@gnu.org>
30232
30233	* stream.d (same_handle_p) [WIN32_NATIVE]: use TIME_EQ to compare
30234	FILETIME; fix a syntax(!) error in the last patch
30235
302362004-11-22  Sam Steingold  <sds@gnu.org>
30237
30238	* m4/regexp.m4 (CL_REGEXP): check for regoff_t and treat rm_so &
30239	rm_eo as regoff_t (which may be 64-bit!)
30240
302412004-11-21  Bruno Haible  <bruno@clisp.org>
30242
30243	Make FRESH-LINE work correctly in batch-mode when stdout and stderr
30244	point to the same target.
30245	* spvw_memfile.d (loadmem_from_handle): Reset
30246	O(standard_{input,output,error}_file_stream) to NIL.
30247	* stream.d (same_handle_p): New function.
30248	(make_standard_input_file_stream): Rename from make_standard_input.
30249	Turn into a function.
30250	(make_standard_output_file_stream): Rename from make_standard_output.
30251	Turn into a function.
30252	(make_standard_error_file_stream): New function.
30253	(get_standard_input_file_stream, get_standard_output_file_stream)
30254	(get_standard_error_file_stream): New functions.
30255	(make_terminal_io): Use get_standard_{input,output}_file_stream instead
30256	of make_standard_{input,output}.
30257	(terminal_io_input_stream): New function, replaces init_standard_input.
30258	(terminal_io_output_stream): New function, replaces
30259	init_standard_output.
30260	(init_standard_input, init_standard_output): Remove functions.
30261	(init_standard_io): Remove macro.
30262	(init_streamvars): Update.
30263	(fehler_value_stream): Update.
30264
302652004-11-16  Bruno Haible  <bruno@clisp.org>
30266
30267	Implement forward-referenced-class.
30268	* lispbibl.d (Class): Move direct_subclasses field to front.
30269	(if_class_p): Rename from if_classp.
30270	(if_defined_class_p): New macro.
30271	* io.d (structure_reader, pr_structure_default): Use if_defined_class_p
30272	instead of if_classp.
30273	* sequence.d (valid_type1): Use if_defined_class_p instead of
30274	if_classp.
30275	* predtype.d (%defclos): Accept one more argument, <defined-class>.
30276	(CLOS::CLASS-P): Update.
30277	(CLOS::DEFINED-CLASS-P): New function.
30278	(CLASS-OF): Use if_defined_class_p instead of if_classp.
30279	(CLOS:FIND-CLASS): Likewise.
30280	(CLOS::TYPEP-CLASS, COERCE): Likewise.
30281	* record.d (CLOS::ALLOCATE-FUNCALLABLE-INSTANCE)
30282	(CLOS::ALLOCATE-STD-INSTANCE): Use if_defined_class_p instead
30283	of if_classp.
30284	* init.lisp: Export forward-referenced-class.
30285	* clos-package.lisp: Export forward-referenced-class.
30286	* clos-macros.lisp (error-accessor-typecheck): Use defined-class-p
30287	instead of class-p.
30288	* clos-class0.lisp (*dummy-class*): Update.
30289	* clos-class1.lisp (defined-class): New class.
30290	(class): Move most slots down to defined-class.
30291	(forward-referenced-class): New class.
30292	(*<forward-referenced-class>-defclass*): New variable.
30293	(*<defined-class>-defclass*): New variable.
30294	(*<defined-class>-...-location*): Rename from *<class>-...-location*.
30295	(class-direct-superclasses, class-all-superclasses)
30296	(class-precedence-list, class-direct-slots, class-slots)
30297	(class-slot-location-table, class-direct-default-initargs)
30298	(class-default-initargs, class-documentation, class-listeners)
30299	(class-initialized): Update.
30300	(shared-initialize-<class>): New function.
30301	(shared-initialize-<defined-class>): Rename from
30302	shared-initialize-<class>.
30303	(built-in-class, slotted-class): Inherit from defined-class instead of
30304	class.
30305	(shared-initialize-<slotted-class>): Call
30306	shared-initialize-<defined-class> instead of shared-initialize-<class>.
30307	(defined-class): New atomic type.
30308	(print-object-<class>): Use defined-class-p.
30309	* clos-class2.lisp (<defined-class>): New variable.
30310	((setf find-class)): Use defined-class-p instead of class-p.
30311	* clos-class3.lisp (%defclos): Pass defined-class as well.
30312	(ensure-class-using-class-<t>): Use defined-class-p instead of class-p.
30313	(ensure-class): Likewise.
30314	(reinitialize-instance-<defined-class>): Rename from
30315	reinitialize-instance-<class>. Use defined-class-p instead of class-p.
30316	(map-dependents-<defined-class>): Rename from map-dependents-<class>.
30317	(checked-class-direct-subclasses): Use defined-class-p instead of
30318	class-p.
30319	(compute-class-precedence-list-<defined-class>): Rename from
30320	compute-class-precedence-list-<class>.
30321	(compute-class-precedence-list): Update.
30322	(checked-compute-class-precedence-list): Use defined-class-p instead of
30323	class-p.
30324	(compute-effective-slot-definition-initargs-<defined-class>): Rename
30325	from compute-effective-slot-definition-initargs-<class>.
30326	(compute-effective-slot-definition-initargs): Update.
30327	(compute-effective-slot-definition-<defined-class>): Rename from
30328	compute-effective-slot-definition-<class>. Use defined-class-p instead
30329	of class-p.
30330	(compute-effective-slot-definition): Update.
30331	(compute-slots-<defined-class>-primary): Rename from
30332	compute-slots-<class>-primary.
30333	(compute-slots): Update.
30334	(compute-default-initargs-<defined-class>): Rename from
30335	compute-default-initargs-<class>.
30336	(compute-default-initargs): Update.
30337	(install-class-direct-accessors): Use defined-class-p instead of
30338	class-p.
30339	(shared-initialize-<built-in-class>): Call
30340	shared-initialize-<defined-class> instead of shared-initialize-<class>.
30341	(shared-initialize-<structure-class>): Update.
30342	(finalize-class): Use defined-class-p instead of class-p.
30343	(<defined-class>, forward-referenced-class): Define classes.
30344	* clos-slotdef1.lisp (convert-direct-slots): Use defined-class-p
30345	instead of class-p.
30346	* type.lisp (clos-class): Use defined-class-p instead of class-p.
30347	(typep, subtype-integer, subtype-sequence): Likewise.
30348	(type-expand): Likewise.
30349	* subtypep.lisp (type-category, canonicalize-type): Use defined-class-p
30350	instead of class-p.
30351	* defstruct.lisp (find-structure-slot-initfunction, defstruct): Test
30352	whether the closclass property is really a defined-class.
30353	* clos-class4.lisp (shared-initialize@class): New method.
30354	(shared-initialize@defined-class): Rename from
30355	shared-initialize@class.
30356	(reinitialize-instance@defined-class): Rename from
30357	reinitialize-instance@class.
30358	* clos-class6.lisp (initialize-instance@defined-class): Rename from
30359	initialize-instance@class.
30360	(class-name@defined-class): Rename from class-name@class.
30361	(class-name@forward-referenced-class): New method.
30362	(class-direct-subclasses@defined-class): Rename from
30363	class-direct-subclasses@class.
30364	(class-direct-subclasses@forward-referenced-class): New method.
30365	(class-direct-superclasses@defined-class): Rename from
30366	class-direct-superclasses@class.
30367	(class-direct-superclasses@forward-referenced-class): New method.
30368	(class-all-superclasses): Update.
30369	(class-precedence-list@defined-class): Rename from
30370	class-precedence-list@class.
30371	(class-direct-slots@defined-class): Rename from
30372	class-direct-slots@class.
30373	(class-direct-slots@forward-referenced-class): New method.
30374	(class-slots@defined-class): Rename from class-slots@class.
30375	(class-slot-location-table): Update.
30376	(class-direct-default-initargs@defined-class): Rename from
30377	class-direct-default-initargs@class.
30378	(class-direct-default-initargs@forward-referenced-class): New method.
30379	(class-default-initargs@defined-class): Rename from
30380	class-default-initargs@class.
30381	(class-documentation, class-listeners, class-initialized): Update.
30382	(compute-direct-slot-definition-initargs@defined-class): Rename from
30383	compute-direct-slot-definition-initargs@class.
30384	(class-finalized-p@defined-class): Rename from
30385	class-finalized-p@class.
30386	(class-finalized-p@forward-referenced-class): New method.
30387	(finalize-inheritance@defined-class): Rename from
30388	finalize-inheritance@class.
30389	(compute-class-precedence-list@defined-class): Rename from
30390	compute-class-precedence-list@class.
30391	(compute-effective-slot-definition-initargs@defined-class): Rename
30392	from compute-effective-slot-definition-initargs@class.
30393	(compute-effective-slot-definition@defined-class): Rename from
30394	compute-effective-slot-definition@class.
30395	(compute-slots): Update.
30396	(compute-default-initargs@defined-class): Rename from
30397	compute-default-initargs@class.
30398	(reader-method-class@defined-class): Rename from
30399	reader-method-class@class.
30400	(writer-method-class@defined-class): Rename from
30401	writer-method-class@class.
30402	* clos-method1.lisp (initialize-instance-<standard-method>): Reject
30403	specializers which are not defined classes.
30404	* clos-genfun2a.lisp
30405	(compute-applicable-methods-using-classes-<generic-function>): Use
30406	defined-class-p instead of class-p.
30407	(check-method-only-standard-specializers): Likewise.
30408	* clos-genfun2b.lisp (shared-initialize-<standard-generic-function>):
30409	Use defined-class-p instead of class-p.
30410	* clos-method2.lisp (analyze-method-description): Use defined-class-p
30411	instead of class-p.
30412	* clos-genfun3.lisp (ensure-generic-function-using-class-<t>): Use
30413	defined-class-p instead of class-p.
30414	* clos-genfun4.lisp (mop-standardized-p): Use defined-class-p instead
30415	of class-p.
30416	* clos-dependent.lisp (add-dependent@defined-class): Rename from
30417	add-dependent@class.
30418	(remove-dependent@defined-class): Rename from remove-dependent@class.
30419	(map-dependents@defined-class): Rename from map-dependents@class.
30420	* compiler.lisp (c-TYPEP): Use defined-class-p instead of class-p.
30421	* describe.lisp (describe-object@symbol): Test whether the closclass
30422	property is really a defined-class.
30423	(describe-object@generic-function): Use defined-class-p instead of
30424	class-p.
30425
304262004-11-21  Sam Steingold  <sds@gnu.org>
30427
30428	* places.lisp (get-setf-method): fix the error message: the
30429	number of store variables may be 0, e.g., (PROGN (VALUES))
30430	(defsetf): permit missing store variables as specified by ANSI
30431	CL: (defsetf access-fn lambda-list (store-variable*) ...)
30432	Reported by Kalle Olavi Niemitalo <kon@iki.fi>
30433
304342004-11-20  Sam Steingold  <sds@gnu.org>
30435
30436	* m4/regexp.m4: new file
30437	* modules/regexp/configure.in: use CL_REGEXP
30438
304392004-11-19  Sam Steingold  <sds@gnu.org>
30440
30441	* modules/regexp/regexi.c (REGEXP-FREE): invalidate the fpointer
30442
304432004-11-13  Bruno Haible  <bruno@clisp.org>
30444
30445	* clos-genfun3.lisp (make-generic-function): Add method-class-p,
30446	declspecs-p, documentation-p arguments. Put the defaults for
30447	:method-class, :declarations, :documentation after the user-defined
30448	args, not before.
30449	(analyze-defgeneric): Produce additional values method-class-p,
30450	declspecs-p, docstring-p.
30451	(defgeneric): Put the default key/argument pairs for :method-class,
30452	:documentation, :declarations after the default initargs from the
30453	generic-function-class, not before.
30454	(make-generic-function-form): Update.
30455	Reported by Pascal Costanza.
30456
304572004-11-13  Bruno Haible  <bruno@clisp.org>
30458
30459	* clos-class3.lisp (defclass): Put the default key/argument pairs
30460	for :direct-default-initargs, :documentation, :generic-accessors
30461	after the default initargs from the metaclass, not before.
30462
304632004-11-08  Bruno Haible  <bruno@clisp.org>
30464
30465	Do not call initialize-instance for dummy generic-function instances.
30466	* clos-genfun2b.lisp (allocate-generic-function-instance)
30467	(make-generic-function-prototype): New functions.
30468	* clos-genfun3.lisp (analyze-defgeneric): Use
30469	make-generic-function-prototype instead of
30470	make-generic-function-instance.
30471	* clos-genfun5.lisp (allocate-generic-function-instance): New function.
30472	Reported by Pascal Costanza <costanza@web.de>.
30473
304742004-11-17  John Hinsdale  <hin@alma.com>
30475
30476	* oracle.lisp: fix default for truncation parameter
30477	* orafns.c: handle truncation cases correctly
30478
304792004-11-09  Bruno Haible  <bruno@clisp.org>
30480
30481	Implement notification from class redefinition to generic functions,
30482	part 2.
30483	* clos-class3.lisp (update-subclass-cpl-specializer-generic-functions):
30484	New function.
30485	(reinitialize-instance-<class>): Call it.
30486
304872004-11-07  Bruno Haible  <bruno@clisp.org>
30488
30489	Implement notification from class redefinition to generic functions,
30490	part 1.
30491	* lispbibl.d (Class): Add direct_instance_specializers field.
30492	* clos-specializer1.lisp (add-direct-method-<specializer>-<method>):
30493	New function.
30494	(add-direct-method): Use it.
30495	* clos-class1.lisp (semi-standard-class): Add
30496	direct-instance-specializers slot.
30497	(*<semi-standard-class>-direct-instance-specializers-location*): New
30498	constant.
30499	(class-direct-instance-specializers-table): New accessor.
30500	(*<standard-class>-instance-size*): Increment.
30501	* clos-class3.lisp (reinitialize-instance-<class>): Call
30502	update-subclass-instance-specializer-generic-functions when the CPL
30503	changed.
30504	(shared-initialize-<semi-standard-class>): Initialize the
30505	direct-instance-specializers slot to empty.
30506	(update-subclass-instance-specializer-generic-functions): New function.
30507	(add-direct-instance-specializer, remove-direct-instance-specializer)
30508	(list-direct-instance-specializers): New functions.
30509	* clos-genfun1.lisp (<funcallable-standard-class>-instance-size*):
30510	Increment.
30511	* clos-class5.lisp (do-change-class): Update the old class' and the new
30512	class's direct-instance-specializer set.
30513	* clos-specializer3.lisp (add-direct-method): Use
30514	add-direct-method-<specializer>-<method>.
30515	* clos-class6.lisp (class-direct-instance-specializers-table): New
30516	accessor.
30517
305182004-11-12  Bruno Haible  <bruno@clisp.org>
30519
30520	* clos-genfun3.lisp (defmethod, defgeneric): Simplify the macro-
30521	expansion in the frequent case that the funname is a symbol.
30522	(Problem introduced on 2004-10-18 and 2004-10-19.)
30523
305242004-11-07  Bruno Haible  <bruno@clisp.org>
30525
30526	Implement notification from change-class to generic functions.
30527	* clos-specializer1.lisp (existing-eql-specializer): New function.
30528	* clos-class5.lisp (do-change-class): Notify all generic functions
30529	which use an EQL specializer on the given object.
30530
305312004-11-12  Sam Steingold  <sds@gnu.org>
30532
30533	* m4/connect.m4 (CL_CONNECT): check whether connect() exists
30534	before attempting to determine its prototype - needed for mingw32
30535	* m4/tcpconn.m4 (CL_TCPCONN): check inet_addr() and setsockopt()
30536	before prototype checks - for mingw32
30537
305382004-11-07  Bruno Haible  <bruno@clisp.org>
30539
30540	* clos-class5.lisp (update-instance-for-different-class@generic-function):
30541	Update the generic function.
30542
305432004-11-07  Bruno Haible  <bruno@clisp.org>
30544
30545	* clos-class5.lisp (update-instance-for-different-class@method):
30546	Update the generic function to which the method belongs.
30547
305482004-11-11  Bruno Haible  <bruno@clisp.org>
30549
30550	* m4/ioctl.m4 (CL_IOCTL): Test whether ioctl exists at all before
30551	attempting to determine its prototype. Needed for mingw32.
30552	* unix.d (ioctl): Declare only if HAVE_IOCTL.
30553
305542004-11-11  Sam Steingold  <sds@gnu.org>
30555
30556	* spvw.d (main_actions) [PATHNAME_WIN32]: always try to load
30557	~/.clisprc first, and try ~/_clisprc only when the former does not
30558	exist; issue a warning when the latter is found.
30559	This code is to be remove after the next release.
30560
305612004-11-01  Bruno Haible  <bruno@clisp.org>
30562
30563	Change the meaning of :BUFFERED :DEFAULT to mean T on the input side.
30564	* lispbibl.d (stream_isbuffered): Change return type to uintB.
30565	* stream.d (MAKE-PIPE-INPUT-STREAM): Treat buffered = 0 like
30566	buffered > 0.
30567	(MAKE-PIPE-OUTPUT-STREAM): Nop.
30568	(mkips_from_handles): Treat buffered = 0 like buffered > 0.
30569	(MAKE-PIPE-IO-STREAM): On the input side, treat buffered = 0 like
30570	buffered > 0.
30571	(make_socket_stream): If buffered = 0, combine a buffered input stream
30572	with an unbuffered output stream.
30573	(stream_isbuffered): Change return value to be the combination of
30574	two bits.
30575	* io.d (pr_stream): Print "INPUT-BUFFERED" if the stream combines a
30576	buffered input stream with an unbuffered output stream.
30577
305782004-10-27  Bruno Haible  <bruno@clisp.org>
30579
30580	* init.lisp: Export compute-direct-slot-definition-initargs.
30581	* clos-package.lisp: Likewise.
30582	* clos-slotdef1.lisp (compute-direct-slot-definition-initargs): New
30583	preliminary function.
30584	(convert-direct-slots): Use compute-direct-slot-definition-initargs.
30585	* clos-class6.lisp (compute-direct-slot-definition-initargs): New
30586	generic function.
30587	* clos-genfun2b.lisp (*dynamically-modifiable-generic-function-names*):
30588	Add it.
30589
305902004-11-10  Bruno Haible  <bruno@clisp.org>
30591
30592	* clos-print.lisp (*print-object-method-warning*): Comment out.
30593	(print-object-method-warning): Comment out.
30594	(compute-effective-method@(eql #'print-object)): Comment out.
30595	Suggested by Jörg Höhle.
30596
305972004-10-31  Bruno Haible  <bruno@clisp.org>
30598
30599	Avoid poll(), select() and non-blocking I/O on regular files.
30600	* stream.d (struct strm_channel_extrafields_t): Add 'regular' field.
30601	(ChannelStream_regular): New macro.
30602	(low_read_array_unbuffered_handle): For regular file handles, use
30603	persev_partial instead of persev_immediate or persev_bonus.
30604	(low_write_array_unbuffered_handle): Likewise.
30605	(make_unbuffered_stream): Add handle_regular argument.
30606	(struct strm_buffered_extrafields_t): Remove 'regular' field.
30607	(BufferedStream_regular): Remove macro.
30608	(low_fill_buffered_handle): For regular file handles, use
30609	persev_partial instead of persev_immediate or persev_bonus.
30610	(make_buffered_stream, make_file_stream, finish_output_buffered)
30611	(make_keyboard_stream, make_terminal_stream_, SCREEN:MAKE-WINDOW)
30612	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, mkops_from_handles)
30613	(mkips_from_handles, MAKE-PIPE-IO-STREAM, SYS::MAKE-SOCKET-STREAM)
30614	(make_socket_stream): Update.
30615
306162004-10-24  Bruno Haible  <bruno@clisp.org>
30617
30618	Merge method allocation and initialization into a single step again.
30619	* clos-class3.lisp (install-class-direct-accessors): Pass the
30620	method-class, not the method, to method-function-initargs. Call
30621	make-instance instead of allocate-instance and initialize-instance.
30622	* clos-method1.lisp (initialize-instance-<method>): Add backpointer
30623	argument.
30624	(initialize-instance-<standard-method>): Likewise.
30625	(allocate-method-instance, initialize-method-instance): Remove
30626	functions.
30627	(make-method-instance): New function.
30628	* clos-methcomb2.lisp (method-function-initargs): Take the method's
30629	class as argument, not the method.
30630	(add-next-method-local-functions): Rename argument self to backpointer.
30631	(effective-method-code-bricks): Emit code to use make-method-instance
30632	instead of allocate-method-instance, initialize-method-instance, and
30633	pass the method-class, not the method, to method-function-initargs.
30634	* clos-method2.lisp (analyze-method-description): Rename self to
30635	backpointer.
30636	* clos-genfun3.lisp (%call-next-method): Take the backpointer, not the
30637	method, as first argument.
30638	(do-defmethod, analyze-defgeneric): Use make-method-instance instead of
30639	allocate-method-instance, initialize-method-instance. Pass the
30640	method-class, not the method, to method-function-initargs.
30641	* clos-genfun4.lisp (%no-next-method): Take the backpointer, not the
30642	method, as first argument.
30643	* clos-method3.lisp (initialize-instance@method)
30644	(initialize-instance@standard-method): Add backpointer argument.
30645	* clos-method4.lisp (allocate-method-instance)
30646	(initialize-method-instance): Remove functions.
30647	(make-method-instance): New function.
30648
306492004-11-03  Bruno Haible  <bruno@clisp.org>
30650
30651	Provide explanations in deprecation warnings.
30652	* compiler.lisp (*deprecated-functions-alist*): New variable, replaces
30653	*deprecated-functions-list*.
30654	(note-function-used, c-report-problems): Update.
30655	* deprecated.lisp (deprecate, ffi::foreign-address-null): Provide
30656	textual explanation.
30657	* describe.lisp (describe-object@symbol): Update.
30658
306592004-11-02  Bruno Haible  <bruno@clisp.org>
30660
30661	* gray.lisp: Use class-name instead of clos::class-classname.
30662
306632004-10-31  Bruno Haible  <bruno@clisp.org>
30664
30665	* stream.d (low_fill_buffered_handle): Do not call listen_handle;
30666	fd_read cares about the perseverance. Do not set
30667	BufferedStream_have_eof_p twice.
30668	(buffered_nextbyte): Simplify.
30669
306702004-10-24  Bruno Haible  <bruno@clisp.org>
30671
30672	* init.lisp: Export compute-effective-method-as-function.
30673	* clos-package.lisp: Likewise.
30674	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
30675	Add an argument and bind *method-combination-arguments* here.
30676	* clos-genfun2b.lisp (compute-applicable-methods-effective-method)
30677	(compute-applicable-methods-effective-method-for-set): Do not check
30678	against empty method list. Do not bind *method-combination-arguments*.
30679	Instead, pass the arguments to compute-effective-method-as-function.
30680	(compute-effective-method-as-function): Add args argument, pass it
30681	to compute-effective-method-as-function-form. Remove method-combination
30682	argument. Check against empty method list.
30683
306842004-10-31  Bruno Haible  <bruno@clisp.org>
30685
30686	* unixaux.d (fd_read, fd_write, sock_write): Save errno around
30687	END_NO_BLOCK.
30688	* stream.d (listen_handle): Likewise.
30689
306902004-10-23  Bruno Haible  <bruno@clisp.org>
30691
30692	New generic function compute-effective-slot-definition-initargs.
30693	* init.lisp: Export compute-effective-slot-definition-initargs.
30694	* clos-package.lisp: Likewise.
30695	* clos-slotdef1.lisp (<direct-slot-definition>): New variable.
30696	(direct-slot-definition-p): New function.
30697	* clos-class3.lisp (compute-effective-slot-definition-initargs-<class>):
30698	New function.
30699	(compute-effective-slot-definition-initargs): New preliminary function.
30700	(compute-effective-slot-definition-<class>): Call it.
30701	(<direct-slot-definition>): Initialize.
30702	* clos-genfun2b.lisp (*dynamically-modifiable-generic-function-names*):
30703	Add compute-effective-slot-definition-initargs.
30704	* clos-class6.lisp (compute-effective-slot-definition-initargs): New
30705	generic function.
30706
307072004-11-07  Bruno Haible  <bruno@clisp.org>
30708
30709	* clos-class6.lisp (class-funcallablep): Fix function name in error
30710	message.
30711
307122004-11-07  Bruno Haible  <bruno@clisp.org>
30713
30714	* lispbibl.d (Fpointer_value): Cast the conditional expression to void.
30715	Avoids a warning with g++-3.4.3.
30716
307172004-11-07  Bruno Haible  <bruno@clisp.org>
30718
30719	* lispbibl.d (p_backtrace_t): Define as a struct only if
30720	DEBUG_BACKTRACE. Remove operator bool, because it leads to warnings
30721	when comparing a p_backtrace_t with NULL. Tweak operator=.
30722
307232004-11-07  Bruno Haible  <bruno@clisp.org>
30724
30725	* m4/putenv.m4 (CL_PUTENV): Include stdlib.h before attempting to
30726	call putenv. Needed in C++ mode.
30727
307282004-11-07  Bruno Haible  <bruno@clisp.org>
30729
30730	* m4/putenv.m4 (CL_PUTENV): Require AC_GNU_SOURCE. Needed for the
30731	declaration of 'environ' on glibc systems.
30732	* configure.in: Invoke AC_GNU_SOURCE.
30733
307342004-11-07  Bruno Haible  <bruno@clisp.org>
30735
30736	* stream.d (unread_char): Fix GC-safety bug and gcc warning introduced
30737	on 2004-07-28.
30738
307392004-11-06  Bruno Haible  <bruno@clisp.org>
30740
30741	Eliminate warnings during bootstrapping.
30742	* init.lisp (fbound-string): For a preliminary macro, return nil,
30743	not "function".
30744	(eval-loaded-form, cerror): Define as preliminary.
30745	* type.lisp (clos::builtin-class-p): Define as preliminary.
30746	* defs2.lisp (dispatch-reader): Refer to #'dispatch-reader outside
30747	the compiled block, not inside.
30748
307492004-11-06  Sam Steingold  <sds@gnu.org>
30750
30751	* makemake.in (clean3): also remove FAS files in modules
30752
307532004-10-31  Bruno Haible  <bruno@clisp.org>
30754
30755	* stream.d (low_read_array_unbuffered_handle): Do not call
30756	low_listen_unbuffered_handle; the perseverance is now completely
30757	handled by fd_read.
30758	(low_read_array_unbuffered_socket): Do not call
30759	low_listen_unbuffered_socket; the perseverance is now completely
30760	handled by sock_read.
30761
307622004-10-17  Bruno Haible  <bruno@clisp.org>
30763
30764	* init.lisp (custom:*suppress-check-redefinition*): Initialize to nil.
30765
307662004-10-17  Bruno Haible  <bruno@clisp.org>
30767
30768	Notion of preliminary function and macro definitions.
30769	* record.d ((setf sys::closure-name)): New function.
30770	* init.lisp: Export ext:preliminary.
30771	(sys::make-preliminary): New function.
30772	(format, cerror): Define as preliminary.
30773	(sys::preliminary-p): New function.
30774	(sys::fbound-string): Return nil for preliminary functions and for
30775	preliminary macros.
30776	(sys::remove-old-definitions): Accept an optional argument. Do not call
30777	sys::check-redefinition when defining a preliminary entity.
30778	(global-in-fenv-p, warn, eval-when-compile): Define as preliminary.
30779	(sys::predefmacro, sys::predefun): New macros.
30780	* macros1.lisp (loop): Define using predefmacro.
30781	* macros2.lisp (check-type, assert, etypecase, ctypecase, ecase)
30782	(ccase): Define using predefmacro.
30783	* places.lisp (system::closure-name): Add setf definition.
30784	* clos-package.lisp: Import sys::predefun.
30785	* clos-class0.lisp (print-object): Define using predefun.
30786	* clos-slotdef1.lisp (slot-definition-*)
30787	(structure-effective-slot-definition-readonly)
30788	(direct-slot-definition-class, equal-direct-slot)
30789	(effective-slot-definition-class): Define using predefun.
30790	* clos-specializer1.lisp (specializer-direct-methods-table)
30791	(eql-specializer-singleton, specializer-direct-generic-functions)
30792	(add-direct-method, remove-direct-method, specializer-direct-methods):
30793	Define using predefun.
30794	* clos-class1.lisp (class-*, print-object): Define using predefun.
30795	* defstruct.lisp (clos::defstruct-remove-print-object-method): Define
30796	using predefun.
30797	* compiler.lisp (closure-name): Remove setf definition.
30798	(finalize-coutput-file): Define using predefun.
30799	* edit.lisp (editor-name, editor-tempfile, edit-file): Define using
30800	predefun.
30801
308022004-10-31  Bruno Haible  <bruno@clisp.org>
30803
30804	* unixaux.d (fd_read, fd_write, sock_read, sock_write): When returning
30805	0, set errno to indicate whether EOF or EOWF is reached.
30806	* win32.d (WSAEAGAIN, WSAENOENT): New macros.
30807	* win32aux.d (lowlevel_fd_read): When returning 0, set errno to
30808	indicate whether EOF is reached.
30809	(do_fd_read, fd_read): Transmit the error code also when result==0.
30810	(fd_write): When returning 0, set errno to indicate whether EOWF is
30811	reached.
30812	(lowlevel_sock_read): When returning 0, set errno to indicate whether
30813	EOF is reached.
30814	(do_sock_read, sock_read): Transmit the error code also when result==0.
30815	(lowlevel_sock_write): When returning 0, set errno to indicate whether
30816	EOWF is reached.
30817	(do_sock_write, sock_write): Transmit the error code also when
30818	result==0.
30819	* stream.d (low_read_array_unbuffered_handle): When EOF has been seen,
30820	store this information in the stream.
30821	(low_fill_buffered_handle): Likewise.
30822	(low_read_unbuffered_socket, low_listen_unbuffered_socket): Verify
30823	that EOF has really been seen.
30824	(low_read_array_unbuffered_socket): When EOF has been seen, store this
30825	information in the stream.
30826	(low_fill_buffered_socket): Likewise.
30827
308282004-10-17  Bruno Haible  <bruno@clisp.org>
30829
30830	* defstruct.lisp (defstruct): Set the readers and writers slot of the
30831	structure-direct-slot-definition instances to empty.
30832
308332004-10-17  Bruno Haible  <bruno@clisp.org>
30834
30835	* clos-class3.lisp (install-class-direct-accessors): Optimize the
30836	accessors also in the case of structure-class.
30837
308382004-11-04  Sam Steingold  <sds@gnu.org>
30839
30840	* genclisph.d [WIN32_NATIVE]: #include <windows.h> before the
30841	first use of HANDLE
30842
308432004-11-04  Sam Steingold  <sds@gnu.org>
30844
30845	* win32aux.d (fd_read, fd_write): fix the definition
30846	to conform with the declaration
30847
308482004-10-31  Bruno Haible  <bruno@clisp.org>
30849
30850	* unixaux.d (fd_read_will_hang_p): New function, extracted from
30851	fd_read.
30852	(fd_read): Use it. Handle persev_bonus correctly.
30853	(fd_write_will_hang_p): New function, extracted from fd_write.
30854	(fd_write): Use it. Handle persev_bonus correctly.
30855	(sock_read_will_hang_p): New function, extracted from sock_read.
30856	(sock_read): Use it.
30857	(sock_write_will_hang_p): New function, extracted from sock_write.
30858	(sock_write): Use it. Handle persev_bonus correctly.
30859	* win32.d (fd_read_wont_hang_p): New declaration.
30860	* win32aux.d (fd_read_wont_hang_p): New function, extracted from
30861	listen_handle.
30862	(lowlevel_fd_read): Use it. Handle persev_immediate, persev_bonus
30863	correctly.
30864	(fd_write_will_hang_p): New function.
30865	(fd_write): Use it. Handle persev_immediate, persev_bonus correctly.
30866	(sock_read_will_hang_p): New function, extracted from
30867	lowlevel_sock_read.
30868	(lowlevel_sock_read): Use it.
30869	(sock_write_will_hang_p): New function, extracted from
30870	lowlevel_sock_write.
30871	(lowlevel_sock_write): Use it. Handle persev_bonus correctly.
30872	* stream.d (listen_handle) [WIN32_NATIVE]: Use fd_read_will_hang_p.
30873
308742004-10-17  Bruno Haible  <bruno@clisp.org>
30875
30876	Remove initff slot from structure-effective-slot-definition.
30877	* clos-slotdef1.lisp (structure-effective-slot-definition): Remove slot
30878	initff.
30879	(structure-effective-slot-definition-initff): Remove accessor.
30880	(structure-effective-slot-definition-readonly): Update.
30881	(initialize-instance-<structure-effective-slot-definition>): Remove
30882	initff argument.
30883	(make-instance-<structure-effective-slot-definition>): Update.
30884	(make-load-form-<structure-effective-slot-definition>): Use
30885	optional argument always.
30886	* clos-slotdef2.lisp (structure-effective-slot-definition-initff):
30887	Remove accessor.
30888	* defstruct.lisp (make-ds-slot): Remove initff argument.
30889	(copy-<structure-effective-slot-definition>): Update.
30890	(defstruct): Change slotlist and slotdefaultslots to contain the
30891	initff separately.  Always pass a form to
30892	make-load-form-<structure-effective-slot-definition>
30893	(ds-make-pred, ds-arg-default, ds-make-constructor-body)
30894	(ds-arg-with-default, ds-make-boa-constructor)
30895	(ds-make-keyword-constructor, ds-make-readers, ds-make-writers): Update.
30896
308972004-11-03  Sam Steingold  <sds@gnu.org>
30898
30899	* init.lisp (load): do not call COMPILER::C-REPORT-PROBLEMS
30900	unless *LOAD-VERBOSE* and *COMPILE-VERBOSE* are true:
30901	this fixes a "clisp -q -q -C -i foo" error
30902
309032004-11-03  Sam Steingold  <sds@gnu.org>
30904
30905	* clos-slotdef3.lisp (slot-equal-using-class):
30906	avoid a compilation warning
30907
309082004-11-03  Sam Steingold  <sds@gnu.org>
30909
30910	* foreign1.lisp, lispbibl.d, genclisph.d, spvw.d, utils/modprep.lisp:
30911	* modules.d: rename exitfunction to finifunction for consistency
30912
309132004-11-03  Sam Steingold  <sds@gnu.org>
30914
30915	* modules/syscalls/calls.c (copy_file_low): use fd_read() and
30916	fd_write() instead of read_helper() and write_helper()
30917	* modules/bindings/glibc/linux.lisp: ditto
30918
309192004-11-03  Sam Steingold  <sds@gnu.org>
30920
30921	* constsym.d (*FINI-HOOKS*): new symbol
30922	* spvw.d (init_symbol_values): init it
30923	(run_hooks): new function
30924	(main, quit): use it
30925
309262004-10-31  Bruno Haible  <bruno@clisp.org>
30927
30928	* unix.d (fd_read): Rename from read_helper.
30929	(fd_write): Rename from write_helper.
30930	* win32.d (fd_read): Rename from read_helper.
30931	(fd_write): Rename from write_helper.
30932	* genclisph.d: Declare fd_read, fd_write instead of read_helper,
30933	write_helper.
30934	* unixaux.d (fd_read): Rename from read_helper.
30935	(fd_write): Rename from write_helper.
30936	* win32aux.d (lowlevel_fd_read): Rename from low_read_helper.
30937	(fd_read_params): Rename from full_read_params.
30938	(do_fd_read): Rename from do_read_helper.
30939	(fd_read): Rename from read_helper.
30940	(fd_write): Rename from write_helper.
30941	* stream.d (low_read_array_unbuffered_handle)
30942	(low_write_array_unbuffered_handle, low_fill_buffered_handle)
30943	(low_write_array_unbuffered_pipe): Update.
30944
309452004-10-31  Bruno Haible  <bruno@clisp.org>
30946
30947	* unixaux.d (read_helper, write_helper, sock_read, sock_write):
30948	Prefer poll or select over O_NONBLOCK. Do not call fcntl F_GETFL if
30949	persev != persev_immediate && persev != persev_bonus.
30950	Do nothing if nbyte==0.
30951	* win32aux.d (read_helper_low, write_helper): Do nothing if nbyte==0.
30952	(lowlevel_sock_read, lowlevel_sock_write): Implement persev_immediate
30953	and persev_bonus behaviour. Do nothing if nbyte==0.
30954
309552004-10-17  Bruno Haible  <bruno@clisp.org>
30956
30957	Remove initff slot from structure-direct-slot-definition.
30958	* clos-slotdef1.lisp (structure-direct-slot-definition): Remove initff
30959	slot.
30960	(structure-direct-slot-definition-initff): Remove accessor.
30961	(initialize-instance-<structure-direct-slot-definition>): Remove initff
30962	argument.
30963	(make-instance-<structure-direct-slot-definition>): Update.
30964	(make-load-form-<structure-direct-slot-definition>): Use optional
30965	argument always.
30966	* defstruct.lisp (defstruct): Change directslotlist and
30967	slotdefaultdirectslots to contain the initff separately. Always pass
30968	a form to make-load-form-<structure-direct-slot-definition>.
30969
309702004-11-02  Sam Steingold  <sds@gnu.org>
30971
30972	allow the user to define his own init-once function
30973	* utils/modprep.lisp (*init-1-name*): new variable
30974	(defmodule-p): initialize it
30975	(parse): check for it
30976	(print-tables-2): use it with writing init-once function
30977
309782004-11-02  Sam Steingold  <sds@gnu.org>
30979
30980	* spvw.d (quit): when running as a script, *STANDARD-OUTPUT*,
30981	*ERROR-OUTPUT* and *TERMINAL-IO* must be finished separately
30982
309832004-11-02  Sam Steingold  <sds@gnu.org>
30984
30985	Modules now have an exit function.
30986	* foreign1.lisp (ffi-module): new slot FINALIZE
30987	(*c-finalize*): new symbol macro
30988	(finalize-coutput-file): write its contents into exitfunction
30989	(C-FINALIZE): new public macro
30990	(do-c-finalize): new aux function
30991	* lispbibl.d, genclisph.d (module_t): add slot exitfunction
30992	* modules.d (MODULE, modules): ditto
30993	* spvw.d (quit): call exitfunction() for all modules
30994	(dynload_modules): init the exitfunction slot
30995	* utils/modprep.lisp (*exit-name*): new variable
30996	(defmodule-p): initialize it
30997	(parse): check for it
30998	(print-tables-2): write a dummy exitfunction
30999
310002004-11-02  Sam Steingold  <sds@gnu.org>
31001
31002	New FFI macros C-INIT-ONCE and C-INIT-ALWAYS.
31003	* foreign1.lisp (ffi-module): new slots INIT-ONCE and INIT-ALWAYS
31004	(*init-once*, *init-always*): new symbol macros
31005	(finalize-coutput-file): write their contents into initfunction[12]
31006	(C-INIT-ONCE, C-INIT-ALWAYS): new public macros
31007	(do-c-init-once, do-c-init-always): new aux functions
31008
310092004-10-31  Bruno Haible  <bruno@clisp.org>
31010
31011	Portability to BeOS.
31012	* m4/select.m4 (CL_SELECT): Fix detection test for BeOS, where fd_set
31013	is defined in <sys/socket.h>, not <sys/time.h>.
31014
310152004-10-30  Bruno Haible  <bruno@clisp.org>
31016
31017	A third way of reading input.
31018	* lispbibl.d (perseverance_t): New type.
31019	(read_byte_array, write_byte_array): Take a perseverance argument
31020	instead of a no_hang argument.
31021	* unix.d (read_helper, write_helper): Take a perseverance argument
31022	instead of a no_hang argument.
31023	(full_read, full_write): Update.
31024	(safe_read, safe_write): Pass persev_partial, not no_hang=true.
31025	(sock_read): Add a perseverance argument.
31026	(sock_write): Take a perseverance argument instead of a no_hang
31027	argument.
31028	* win32.d (read_helper, write_helper): Take a perseverance argument
31029	instead of a no_hang argument. Change type of nbyte argument.
31030	(full_read, full_write): Update.
31031	(safe_read, safe_write): Pass persev_partial, not no_hang=true.
31032	(sock_read): Add a perseverance argument.
31033	(sock_write): Take a perseverance argument instead of a no_hang
31034	argument.
31035	* unixaux.d (read_helper): Take a perseverance argument instead of a
31036	no_hang argument. Bug fixes: Handle EWOULDBLOCK like EAGAIN. Do not
31037	forget to call END_NO_BLOCK in case of an error.
31038	(write_helper): Take a perseverance argument instead of a no_hang
31039	argument. Bug fixes: Handle EWOULDBLOCK like EAGAIN. Do not cast a
31040	negative int to a size_t.
31041	(sock_read): Add a perseverance argument.
31042	(sock_write): Take a perseverance argument instead of a no_hang
31043	argument.
31044	* win32aux.d (read_helper_low): Take a perseverance argument instead of
31045	a no_hang argument. Change type of nbyte argument. When no blocking
31046	is required, call GetOverlappedResult with wait=false. Continue the
31047	loop when limited_nbyte == MAX_IO.
31048	(full_read_params): Replace no_hang with perseverance. Change type of
31049	nbyte field.
31050	(do_read_helper): Update.
31051	(read_helper): Take a perseverance argument instead of a no_hang
31052	argument. Change type of nbyte argument.
31053	(write_helper): Take a perseverance argument instead of a no_hang
31054	argument. Change type of nbyte argument. When no blocking is required,
31055	call GetOverlappedResult with wait=false, instead of skipping it.
31056	Continue the loop when limited_nbyte == MAX_IO.
31057	(lowlevel_sock_read): Add a perseverance argument. Change type of nbyte
31058	argument. Continue the loop when limited_nbyte == MAX_IO.
31059	(sock_read_params): Add perseverance. Change type of nbyte field.
31060	(do_sock_read): Update.
31061	(sock_read): Add a perseverance argument. Change type of nbyte
31062	argument.
31063	(lowlevel_sock_write): Take a perseverance argument instead of a
31064	no_hang argument. Change type of nbyte argument. Continue the loop when
31065	limited_nbyte == MAX_IO.
31066	(sock_write_params): Replace no_hang with perseverance. Change type of
31067	nbyte field.
31068	(do_sock_write): Update.
31069	(sock_write): Take a perseverance argument instead of a no_hang
31070	argument. Change type of nbyte argument.
31071	* stream.d (rd_by_array_Pseudofun, wr_by_array_Pseudofun): Take a
31072	perseverance argument instead of a no_hang argument.
31073	(rd_by_array_error): Update.
31074	(rd_by_array_dummy): Update. Implement persev_partial too.
31075	(wr_by_array_error): Update.
31076	(wr_by_array_dummy): Update.
31077	(read_byte_array): Update. Pass a 6th argument to
31078	GRAY:STREAM-READ-BYTE-SEQUENCE.
31079	(write_byte_array): Update. Pass a 6th argument to
31080	GRAY:STREAM-WRITE-BYTE-SEQUENCE.
31081	(rd_by_array_synonym, wr_by_array_synonym): Update.
31082	(wr_by_array_broad): Update.
31083	(rd_by_array_concat): Update.
31084	(wr_by_array_twoway): Update.
31085	(rd_by_array_twoway): Update.
31086	(rd_by_array_echo): Update.
31087	(struct strm_unbuffered_extrafields_t): Change low_read_array,
31088	low_write_array methods to take a perseverance argument instead of a
31089	no_hang argument.
31090	(low_read_array_unbuffered_handle): Update.
31091	(rd_by_aux_iax_unbuffered, rd_by_array_iau8_unbuffered): Update.
31092	(rd_ch_array_unbuffered): Update.
31093	(low_write_array_unbuffered_handle): Update.
31094	(wr_by_aux_ia_unbuffered, wr_by_array_iau8_unbuffered): Update.
31095	(wr_ch_unbuffered_unix, wr_ch_array_unbuffered_unix): Update.
31096	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac): Update.
31097	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos): Update.
31098	(oconv_unshift_output_unbuffered_): Update.
31099	(struct strm_buffered_extrafields_t): Change low_fill method to take
31100	a perseverance argument instead of a no_hang argument.
31101	(low_fill_buffered_handle): Update. When a byte has already been read,
31102	use persev_immediate also if no_hang=false.
31103	(buffered_nextbyte): Take a restricted perseverance argument instead of
31104	a no_hang argument.
31105	(buffered_writebyte, position_file_buffered): Update.
31106	(read_byte_array_buffered, write_byte_array_buffered): Take a
31107	perseverance argument instead of a no_hang argument.
31108	(rd_ch_buffered, listen_char_buffered, rd_ch_array_buffered): Update.
31109	(wr_ch_buffered_unix, wr_ch_array_buffered_unix): Update.
31110	(wr_ch_buffered_mac, wr_ch_array_buffered_mac): Update.
31111	(wr_ch_buffered_dos, wr_ch_array_buffered_dos): Update.
31112	(oconv_unshift_output_buffered_): Update.
31113	(position_file_i_buffered, rd_by_aux_iax_buffered)
31114	(rd_by_aux_ibx_buffered, rd_by_aux_icx_buffered, rd_by_iau8_buffered)
31115	(rd_by_array_iau8_buffered, listen_byte_ia8_buffered): Update.
31116	(wr_by_aux_ia_buffered, WRITE_LAST_BYTE, wr_by_aux_ib_buffered)
31117	(wr_by_aux_ic_buffered, wr_by_array_iau8_buffered): Update.
31118	(logical_position_file_end): Update.
31119	(make_file_stream): Update.
31120	(low_write_array_unbuffered_pipe): Update.
31121	(low_read_unbuffered_socket, low_listen_unbuffered_socket): Update.
31122	(low_read_array_unbuffered_socket): Update.
31123	(low_write_unbuffered_socket): Update.
31124	(low_write_array_unbuffered_socket): Update. Fix the safety check.
31125	(SYS::READ-N-BYTES, SYS::WRITE-N-BYTES): Update.
31126	(low_fill_buffered_socket): Take a perseverance argument instead of a
31127	no_hang argument.
31128	(low_flush_buffered_socket): Update.
31129	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT): Update.
31130	* sequence.d (READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Add
31131	:interactive argument.
31132	* genclisph.d (main): Emit perseverance_t. Emit include of sys/types.h.
31133	Fix declations of read_helper, write_helper to be consistent with those
31134	in unix.d. Update declarations of read_byte_array, write_byte_array.
31135	* gray.lisp (stream-read-byte-sequence): Add interactive argument.
31136	(stream-write-byte-sequence): Likewise.
31137
311382004-10-17  Bruno Haible  <bruno@clisp.org>
31139
31140	* defstruct.lisp (defstruct): Simplify directslotlist iteration.
31141
311422004-10-17  Bruno Haible  <bruno@clisp.org>
31143
31144	* defstruct.lisp (ds-initfunction-fetcher): New function.
31145	(defstruct): Use it.
31146
311472004-10-17  Bruno Haible  <bruno@clisp.org>
31148
31149	Remove redundant data from a defstruct-description.
31150	* io.d (structure_reader): Expect a vector of size = 4.
31151	* defstruct.lisp (find-structure-slot-initfunction): New function.
31152	(defstruct): Use it to recover the initfunctions, not svref on the
31153	defstruct-description. Do not put the initfunctions into the
31154	defstruct-description.
31155
311562004-11-01  Sam Steingold  <sds@gnu.org>
31157
31158	* modules/rawsock/configure.in: check for select() with CL_SELECT;
31159	check for poll() with CL_POLL instead of AC_CHECK_FUNCS()
31160
311612004-10-31  Bruno Haible  <bruno@clisp.org>
31162
31163	Portability to BeOS.
31164	* configure.in: Add test for getsockopt.
31165	* stream.d (sock_opt_bool): Define also when only SO_DEBUG exists.
31166	When getsockopt doesn't exist, push no values.
31167	(sock_opt_int, sock_opt_time): When getsockopt doesn't exist, push no
31168	values.
31169	(SOCKET-OPTIONS): Likewise. Check against stack overflow.
31170
311712004-10-31  Bruno Haible  <bruno@clisp.org>
31172
31173	Portability to FreeBSD 4.0.
31174	* foreign.d (open_library): Handle FreeBSD as well. Improved error
31175	messages.
31176	(libc_handle) [UNIX_FREEBSD]: New variable.
31177	(find_name): On UNIX_FREEBSD, emulate RTLD_DEFAULT.
31178
311792004-10-31  Bruno Haible  <bruno@clisp.org>
31180
31181	* init.lisp (load): Do not "return-from load" because defun doesn't
31182	establish a block when init.lisp is loaded interpreted.
31183
311842004-10-31  Bruno Haible  <bruno@clisp.org>
31185
31186	* spvw.d (init_symbol_values): Initialize
31187	*disassemble-use-live-process* with support for FreeBSD.
31188	* disassem.lisp (*disassemble-use-live-process*): Remove variable.
31189
311902004-10-30  Bruno Haible  <bruno@clisp.org>
31191
31192	* stream.d (SYSCALL): Use the first argument, not the variable that
31193	happens to be called 'result'.
31194
311952004-10-30  Bruno Haible  <bruno@clisp.org>
31196
31197	Prefer poll() over select() when both exist and poll() is not worse.
31198	* m4/select.m4 (CL_SELECT): Test whether select() works on regular
31199	files. Do not test for poll here conditionally.
31200	* m4/poll.m4: New file.
31201	* configure.in: Invoke CL_POLL.
31202	* unixconf.h.in: Regenerated.
31203	* unix.d (poll): Comment out declaration.
31204	* stream.d (listen_handle): Use poll() when available and is not
31205	worse on files than select().
31206	(rd_ch_keyboard): Use poll() when available.
31207
312082004-10-30  Bruno Haible  <bruno@clisp.org>
31209
31210	* unixaux.d (select): Fix wrong argument order passed to poll().
31211
312122004-10-30  Bruno Haible  <bruno@clisp.org>
31213
31214	* stream.d (listen_handle, rd_ch_keyboard)
31215	(low_listen_unbuffered_socket): Rename local variable handle_menge
31216	to handle_set.
31217
312182004-10-29  Bruno Haible  <bruno@clisp.org>
31219
31220	Allow handlers to override outer handlers.
31221	* error.d (SIGNAL): Establish a catch frame around invoke_handlers()
31222	invocation.
31223
312242004-10-17  Bruno Haible  <bruno@clisp.org>
31225
31226	* inspect.lisp (inspect-backend@structure-object): Protect against
31227	unbound slots. (Can occur in objects created through make-instance.)
31228
312292004-10-17  Bruno Haible  <bruno@clisp.org>
31230
31231	* clos-class3.lisp (shared-initialize-<structure-class>): Do not use
31232	the superclass' slots unmodified, since the initform may be different
31233	in the class being defined than in the superclass.
31234	* defstruct.lisp (defstruct): Create direct-slot-definitions also for
31235	the slot descriptions in the :include option. Create the
31236	direct-slot-definitions with the right initff. Reverse the list of
31237	direct-slot-definitions finally.
31238
312392004-10-31  Sam Steingold  <sds@gnu.org>
31240
31241	* defs1.lisp (list-to-ht): use a heuristic to decide whether
31242	HASH-TABLEs are better than LISTs in a particular case
31243	(sys::member1): remove
31244	(sys::member2): replaced with MEMBER? which does not cons
31245
312462004-10-30  Sam Steingold  <sds@gnu.org>
31247
31248	fix bug#232: socket:socket-status modifies stream
31249	* stream.d (listen_char_unbuffered): when ignore_next_LF is set,
31250	discard NL from buf
31251
312522004-10-29  Sam Steingold  <sds@gnu.org>
31253
31254	* loop.lisp (expand-loop): since RESULTS can contain forms,
31255	search the alist with :TEST #'EQUAL
31256
312572004-10-29  Sam Steingold  <sds@gnu.org>
31258
31259	use HASH-TABLEs when possible to speed-up SET functions
31260	* defs1.lisp (list-to-ht): new function
31261	(union, nunion, intersection, nintersection, set-difference)
31262	(nset-difference, subsetp): use it
31263
312642004-10-29  Bruno Haible  <bruno@clisp.org>
31265
31266	fix bug#227: run-time broken when it does not fit in 32bit
31267	* aridecl.d (wbitc): New macro.
31268	* intelem.d (UQ_to_I): Use it instead of bitc.
31269
312702004-10-29  Sam Steingold  <sds@gnu.org>
31271
31272	* defs1.lisp (sys::member1): do not call IDENTITY
31273
312742004-10-29  Sam Steingold  <sds@gnu.org>
31275
31276	* loop.lisp (expand-loop): check that the accumulation variables
31277	are re-used compatibly, as described in
31278	<http://www.lisp.org/HyperSpec/Body/sec_6-1-3.html>;
31279	give a better message for ambiguous results
31280
312812004-10-16  Bruno Haible  <bruno@clisp.org>
31282
31283	* defstruct.lisp (ds-arg-default): Handle the case of a slot
31284	without initializer.
31285	(defstruct): Likewise. Set the initff values of the inherited slots.
31286
312872004-10-28  Sam Steingold  <sds@gnu.org>
31288
31289	* spvw_debug.d (nobject_out1): handle instances
31290
312912004-10-28  Bruno Haible  <bruno@clisp.org>
31292
31293	* Makefile.devel (SBCL_VERSION, SBCL_SOURCE_FILE, SBCL_SOURCE_URL):
31294	New variables.
31295	(check-sbcl): New target.
31296
312972004-10-27  Bruno Haible  <bruno@clisp.org>
31298
31299	* reploop.lisp (break-loop): Change Ctrl-D's behaviour when the
31300	CONTINUE restart comes from ASSERT with no places.
31301
313022004-10-26  Bruno Haible  <bruno@clisp.org>
31303
31304	Fix two long-standing bugs whose combination leads to curious effects.
31305	* eval.d (interpret_bytecode_): Respect the inhibition flag in the
31306	FUNCALL&SKIP&RETGF instruction.
31307	* clos-genfun3.lisp (%call-next-method): Ensure the dispatch function
31308	is a real one before calling twice. Add safety check.
31309
313102004-10-16  Bruno Haible  <bruno@clisp.org>
31311
31312	* clos-class3.lisp (define-structure-class): Remove redundant code.
31313	* defstruct.lisp (ds-make-constructor-body, ds-make-boa-constructor)
31314	(ds-make-keyword-constructor, ds-make-readers, ds-make-writers)
31315	(defstruct): For type = T, all slots are "real"; do not call
31316	ds-real-slot-p in this case.
31317
313182004-10-16  Bruno Haible  <bruno@clisp.org>
31319
31320	* defstruct.lisp: Simplify package prefixes.
31321
313222004-10-16  Bruno Haible  <bruno@clisp.org>
31323
31324	* defstruct.lisp (ds-typep, ds-typep-expansion, ds-canonicalize-type):
31325	Drop the case type = T.
31326	* compiler.lisp (c-TYPEP): For structure classes, emit a call to
31327	%STRUCTURE-TYPE-P.
31328
313292004-10-27  Sam Steingold  <sds@gnu.org>
31330
31331	* clisp.spec (modules): add i18n and zlib
31332
313332004-10-27  Sam Steingold  <sds@gnu.org>
31334
31335	* control.d (MULTIPLE-VALUE-SETQ): fix G++ compilation
31336
313372004-10-27  Bruno Haible  <bruno@clisp.org>
31338
31339	* spvw_debug.d (nobject_out1): Use %lx to print addresses.
31340	* spvw.d (fehler_code_alignment, init_memory): Likewise.
31341	* spvw_fault.d (handle_fault, xmprotect): Likewise.
31342	* spvw_garcol.d (gc_mark_stack): Likewise.
31343	* spvw_mmap.d (mmap_zeromap, mmap_prepare): Likewise.
31344	* spvw_multimap.d (msync_mmap_intervals, fdmap, idmap): Likewise.
31345	* spvw_sigsegv.d (sigsegv_handler_failed): Likewise.
31346	* avl.d (out): Likewise.
31347
313482004-10-27  Sam Steingold  <sds@gnu.org>
31349
31350	* makemake.in: the correct redirection order is ">/dev/null 2>&1"
31351
313522004-10-27  Bruno Haible  <bruno@clisp.org>
31353
31354	* Makefile.devel (DOCBOOK_XML_DOWNLOAD): New variable.
31355	(update-docbook-utils): New target.
31356	(all): Depend on it.
31357
313582004-10-17  Bruno Haible  <bruno@clisp.org>
31359
31360	* format.lisp: Remove obsolete removal of defstruct-description.
31361	* compiler.lisp: Likewise.
31362	* loop.lisp: Likewise.
31363
313642004-10-16  Bruno Haible  <bruno@clisp.org>
31365
31366	Stop creating a defstruct-description property for structure classes.
31367	* defstruct.lisp (defstruct): When creating a structure class, remove
31368	the DEFSTRUCT-DESCRIPTION property.
31369	* clos-class3.lisp: Likewise for structure-object itself.
31370
313712004-10-16  Bruno Haible  <bruno@clisp.org>
31372
31373	* defstruct.lisp (find-structure-class-slot-initfunction): New
31374	function.
31375	(defstruct): Change the initfunctionform to refer to the class instead
31376	of the defstruct-description, if defining a class.
31377
313782004-10-25  Sam Steingold  <sds@gnu.org>
31379
31380	* makemake.in (cflags.h): do not touch cflags.h when the changes
31381	to Makefile do not modify it.
31382	Cost: maybe a few extra "echo"s on each make
31383	Benefit: lispinit.mem is not re-dumped when we add something to MODULES
31384
313852004-10-25  Sam Steingold  <sds@gnu.org>
31386
31387	* modules/i18n/i18n.lisp (locale-conv): new defstruct
31388	* modules/i18n/gettext.c (locale-conv): new function
31389
313902004-10-18  Bruno Haible  <bruno@clisp.org>
31391
31392	* compiler.lisp (c-WITHOUT-PACKAGE-LOCK): Call macroexpand-1 instead
31393	of macroexpand.
31394
313952004-10-17  Bruno Haible  <bruno@clisp.org>
31396
31397	* defs1.lisp (with-no-package-lock-internal, without-package-lock):
31398	Use *system-package-list* if the non-evaluated package list is empty,
31399	not when the evaluated package list is empty. For consistency with
31400	c-WITHOUT-PACKAGE-LOCK.
31401
314022004-10-16  Bruno Haible  <bruno@clisp.org>
31403
31404	* defstruct.lisp (defstruct): Use gensym'ed variable to hold the
31405	initfunctions of all non-constant inherited slots, not just of those
31406	for which a new initform is declared.
31407
314082004-10-24  Sam Steingold  <sds@gnu.org>
31409
31410	* modules/i18n/gettext.c (LANGUAGE-INFORMATION): new function
31411
314122004-10-23  Sam Steingold  <sds@gnu.org>
31413
31414	new module I18N for user program internationalization
31415	* modules/i18n: new directory
31416	* subr.d, constsym.d (i18n_gettext, i18n_ngettext, i18n_textdomain)
31417	(i18n_set_textdomain, i18n_textdomaindir, i18n_set_textdomaindir):
31418	remove
31419	* constsym.d (Klc_messages, Klc_ctype, Klc_time, Klc_collate)
31420	(Klc_monetary): remove
31421	* constobj.d (type_category): remove
31422	* genclisph.d (R_minusp, check_pos_integer, pathname_to_OSdir)
31423	(OSdir_to_pathname): export
31424	include <libintl.h>
31425	* i18n.d: remove "General internationalization, for Lisp programs too"
31426	* international.d: remove "Interface to GNU gettext"
31427
314282004-10-22  Sam Steingold  <sds@gnu.org>
31429
31430	* modules/bindings/glibc/linux.lisp (write-helper, read-helper):
31431	fix argument lists (they were swapped)
31432
314332004-10-22  Sam Steingold  <sds@gnu.org>
31434
31435	* utils/modprep.lisp (new-fundef): fix the package name case check
31436
314372004-10-22  Sam Steingold  <sds@gnu.org>
31438
31439	* stream.d (MAKE-STREAM): really duplicate the handle, as per the spec
31440	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
31441
314422004-10-15  Bruno Haible  <bruno@clisp.org>
31443
31444	* defstruct.lisp (defstruct): Take the slots list and instance size
31445	from the included class if possible.
31446
314472004-10-13  Bruno Haible  <bruno@clisp.org>
31448
31449	* clos-genfun2b.lisp
31450	(compute-discriminating-function-<generic-function>):
31451	Rename from compute-discriminating-function-<standard-generic-function>.
31452	* clos-genfun4.lisp (compute-discriminating-function): Generalize
31453	method from <standard-generic-function> to <generic-function>.
31454
314552004-10-13  Bruno Haible  <bruno@clisp.org>
31456
31457	Reorganize some CLOS code.
31458	* clos-genfun1.lisp (|#'compute-discriminating-function| etc.)
31459	(safe-gf-*): Move to clos-genfun2a.lisp.
31460	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
31461	Move to clos-genfun2a.lisp.
31462	* clos-genfun2a.lisp, clos-genfun2b.lisp: New files, from
31463	clos-genfun2.lisp.
31464	* clos-genfun2.lisp: Remove file.
31465	* clos.lisp: Load clos-genfun2{a,b}.lisp instead of clos-genfun2.lisp.
31466	* makemake.in (LPARTS): Add clos-genfun2{a,b}, remove clos-genfun2.
31467	* po/Makefile.devel (LISPSOURCES): Likewise.
31468
314692004-10-13  Bruno Haible  <bruno@clisp.org>
31470
31471	* clos-genfun2.lisp (compute-applicable-methods-<generic-function>):
31472	Rename from compute-applicable-methods-<standard-generic-function>.
31473	(compute-applicable-methods-using-classes-<generic-function>):
31474	Rename from
31475	compute-applicable-methods-using-classes-<standard-generic-function>.
31476	* clos-genfun4.lisp (compute-applicable-methods)
31477	(compute-applicable-methods-using-classes): Generalize the method from
31478	<standard-generic-function> to <generic-function>.
31479
314802004-10-12  Bruno Haible  <bruno@clisp.org>
31481
31482	* clos-methcomb2.lisp (compute-effective-method-<generic-function>):
31483	Rename from compute-effective-method-<standard-generic-function>.
31484	* clos-genfun4.lisp (compute-effective-method): Generalize method from
31485	<standard-generic-function> to <generic-function>.
31486
314872004-10-16  Bruno Haible  <bruno@clisp.org>
31488
31489	Mark functions that are part of the .fas file ABI.
31490
314912004-10-20  Sam Steingold  <sds@gnu.org>
31492
31493	* _distmakefile (all): also make the clisp driver
31494
314952004-10-19  Sam Steingold  <sds@gnu.org>
31496
31497	FILL-STREAM now indents S-expressions too
31498	* fill-out.lisp (*fill-indent-sexp*): new user variable
31499	(fill-stream): new slot SEXP-INDENT,
31500	changed INDENT-VAR :INITARG to :TEXT-INDENT
31501	(fill-stream-sexp-indent): new function
31502	(fill-stream-flush-buffer): respect SEXP-INDENT
31503	(stream-write-char-sequence): enlarge buffer once
31504	(stream-start-s-expression): return the new binding
31505	for *PRINT-RIGHT-MARGIN*
31506	(with-fill-stream): update for the FILL-STREAM slot change
31507	* describe.lisp (describe): ditto
31508	* reploop.lisp (print-error, break-loop): ditto
31509	* condition.lisp (pretty-print-condition): rename INDENT to TEXT-INDENT
31510	(warn, maybe-continue): update the call to PRETTY-PRINT-CONDITION
31511	* format.lisp (format-s-expression, formatter-main-1): bind
31512	*PRINT-RIGHT-MARGIN* to the return value of STREAM-START-S-EXPRESSION
31513
315142004-10-15  Bruno Haible  <bruno@clisp.org>
31515
31516	* defstruct.lisp: Remove names and directslotlist from the defstruct-
31517	description.
31518	(ds-typep, ds-typep-expansion, ds-canonicalize-type): Update.
31519	(defstruct): Cons up a new names list only when type = T. Take the
31520	names list from the class, not from the defstruct-description.
31521	* io.d (structure_reader): Update.
31522	* clos-class3.lisp (structure-object): Update.
31523
315242004-10-12  Bruno Haible  <bruno@clisp.org>
31525
31526	Respect user-defined methods on generic-function-lambda-list.
31527	* clos-genfun1.lisp (std-gf-undeterminedp): New function.
31528	(generic-function-undeterminedp): New preliminary function.
31529	(|#'generic-function-undeterminedp|): New variable.
31530	(safe-gf-undeterminedp): New function.
31531	* clos-genfun2.lisp (std-add-method, std-find-method, finalize-fast-gf)
31532	(gf-never-called-p, compute-dispatch)
31533	(compute-applicable-methods-effective-method)
31534	(compute-applicable-methods-<standard-generic-function>)
31535	(compute-applicable-methods-using-classes-<standard-generic-function>)
31536	(compute-applicable-methods-effective-method-for-set)
31537	(compute-applicable-methods-for-set): Call safe-gf-undeterminedp
31538	instead of std-gf-signature.
31539	(shared-initialize-<standard-generic-function>): Call
31540	safe-gf-undeterminedp to protect safe-gf-signature call.
31541	* clos-method2.lisp (analyze-method-description): Likewise.
31542	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
31543	(no-primary-method): Likewise.
31544	(generic-function-undeterminedp): New generic function.
31545	* describe.lisp (describe-object@generic-function): Call
31546	safe-gf-undeterminedp instead of std-gf-signature.
31547
31548	Respect user-defined methods on generic-function-declarations.
31549	* clos-genfun1.lisp (generic-function-declarations): New preliminary
31550	function.
31551	(|#'generic-function-declarations|): New variable.
31552	(safe-gf-declspecs): New function.
31553	* clos-genfun2.lisp
31554	(compute-discriminating-function-<standard-generic-function>):
31555	Call safe-gf-declspecs instead of std-gf-declspecs.
31556	* clos-genfun4.lisp (generic-function-declarations): Redefine smoothly.
31557	Initialize |#'generic-function-declarations|.
31558
31559	Respect user-defined methods on
31560	generic-function-argument-precedence-order.
31561	* clos-genfun1.lisp (generic-function-argorder): New preliminary
31562	function.
31563	(|#'generic-function-argorder|): New variable.
31564	(safe-gf-argorder): New function.
31565	* clos-genfun2.lisp
31566	(generic-function-argument-precedence-order-to-argorder): New
31567	function, extracted from check-gf-lambdalist+argorder.
31568	(check-gf-lambdalist+argorder): Use it.
31569	(compute-dispatch, compute-applicable-methods)
31570	(compute-applicable-methods-using-classes-<standard-generic-function>)
31571	(compute-applicable-methods-for-set): Call safe-gf-argorder instead of
31572	std-gf-argorder.
31573	* clos-genfun4.lisp (generic-function-argorder): New generic function.
31574	Initialize |#'generic-function-argorder|.
31575
31576	Respect user-defined methods on generic-function-method-combination.
31577	* clos-genfun1.lisp (generic-function-method-combination): New
31578	preliminary function.
31579	(|#'generic-function-method-combination|): New variable.
31580	(safe-gf-method-combination): New function.
31581	* clos-methcomb2.lisp (call-method-duplicates-error): Call
31582	safe-gf-method-combination instead of std-gf-method-combination.
31583	* clos-genfun2.lisp (check-method-qualifiers)
31584	(invalid-method-qualifiers-error)
31585	(shared-initialize-<standard-generic-function>)
31586	(compute-applicable-methods-effective-method)
31587	(compute-applicable-methods-effective-method-for-set): Call
31588	safe-gf-method-combination instead of std-gf-method-combination.
31589	* clos-genfun4.lisp (no-next-method): Likewise.
31590	(generic-function-method-combination): Redefine smoothly. Initialize
31591	|#'generic-function-method-combination|.
31592	* describe.lisp (describe-object@generic-function): Call
31593	generic-function-method-combination instead of
31594	std-gf-method-combination.
31595
31596	Respect user-defined methods on generic-function-lambda-list.
31597	* clos-genfun1.lisp (generic-function-signature): New preliminary
31598	function.
31599	(|#'generic-function-signature|): New variable.
31600	(safe-gf-signature): New function.
31601	* clos-methcomb2.lisp (effective-method-code-bricks)
31602	(build-effective-method-function-form): Call safe-gf-signature instead
31603	of std-gf-signature.
31604	* clos-genfun2.lisp (generic-function-lambda-list-to-signature): New
31605	function, extracted from check-gf-lambdalist+argorder.
31606	(check-gf-lambdalist+argorder): Use it.
31607	(check-signature-congruence)
31608	(shared-initialize-<standard-generic-function>, std-find-method)
31609	(finalize-fast-gf, gf-never-called-p, compute-dispatch)
31610	(compute-applicable-methods-effective-method)
31611	(compute-applicable-methods-<standard-generic-function>)
31612	(compute-applicable-methods-using-classes-<standard-generic-function>)
31613	(compute-applicable-methods-effective-method-for-set)
31614	(compute-applicable-methods-for-set): Call safe-gf-signature
31615	instead of std-gf-signature.
31616	* clos-method2.lisp (analyze-method-description): Likewise.
31617	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
31618	(no-next-method): Likewise.
31619	(generic-function-signature): New generic function. Initialize
31620	|#'generic-function-signature|.
31621
316222004-10-11  Bruno Haible  <bruno@clisp.org>
31623
31624	* clos-genfun4.lisp (generic-function-lambda-list)
31625	(generic-function-argument-precedence-order): Signal an error if
31626	the lambda-list is not yet initialized.
31627
316282004-10-11  Bruno Haible  <bruno@clisp.org>
31629
31630	* describe.lisp (describe-object@generic-function, arglist): For
31631	generic functions, use the lambda-list stored in it, instead of a
31632	list with artificially constructed variable names.
31633
316342004-10-11  Bruno Haible  <bruno@clisp.org>
31635
31636	Respect user-defined methods on generic-function-method-class.
31637	* clos-genfun1.lisp (generic-function-method-class): New preliminary
31638	function.
31639	(|#'generic-function-method-class|): New variable.
31640	(safe-gf-default-method-class): New function.
31641	* clos-methcomb2.lisp (effective-method-code-bricks): Call
31642	safe-gf-default-method-class instead of std-gf-default-method-class.
31643	* clos-genfun3.lisp (do-defmethod): Likewise.
31644	* clos-genfun4.lisp (generic-function-method-class): Redefine smoothly.
31645	Initialize |#'generic-function-method-class|.
31646
31647	Respect user-defined methods on generic-function-methods.
31648	* clos-genfun1.lisp (generic-function-methods): New preliminary
31649	function.
31650	(|#'generic-function-methods|): New variable.
31651	(safe-gf-methods): New function.
31652	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>)
31653	(std-add-method, std-remove-method, std-find-method)
31654	(reinitialize-instance-<generic-function>, compute-dispatch)
31655	(compute-applicable-methods-<standard-generic-function>)
31656	(compute-applicable-methods-using-classes-<standard-generic-function>)
31657	(compute-applicable-methods-for-set): Call safe-gf-methods instead
31658	of std-gf-methods.
31659	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
31660	(no-primary-method): Likewise.
31661	(generic-function-methods): Redefine smoothly. Initialize
31662	|#'generic-function-methods|.
31663	* clos-class5.lisp (valid-make-instance-keywords)
31664	(valid-reinitialize-instance-keywords)
31665	(valid-update-instance-for-redefined-class-keywords)
31666	(valid-update-instance-for-different-class-keywords): Call
31667	generic-function-methods instead of std-gf-methods.
31668	* describe.lisp (describe-object@generic-function): Likewise.
31669
316702004-10-19  Sam Steingold  <sds@gnu.org>
31671
31672	* init.lisp (eval-loaded-form-low): do not try to inline it:
31673	when condition.lisp is compiled, this function is not necessarily
31674	already compiled due to our bootstrapping process,
31675	so it will not be inlined there (in eval-loaded-form),
31676	therefore the "test" target (self-recompilation) will fail
31677
316782004-10-19  Sam Steingold  <sds@gnu.org>
31679
31680	* clos-genfun3.lisp (defmethod): when the function is being
31681	TRACEd, UNTRACE it to avoid an error
31682	(defgeneric): use UNTRACE1, not UNTRACE
31683
316842004-10-14  Bruno Haible  <bruno@clisp.org>
31685
31686	Access the structure type's keyword-constructor from the class.
31687	* io.d (structure_reader): Lookup the keyword-constructor both in
31688	the class and in the defstruct-description.
31689	(some_printable_slots): Remove function.
31690	(pr_structure_default): Lookup the keyword-constructor in the class.
31691	No need to skip slots without initargs.
31692	* foreign1.lisp (c-struct-constructor): Lookup the keyword-constructor
31693	in the class.
31694
31695	* clos-class1.lisp (structure-class): Add slot kconstructor.
31696	(*<structure-class>-kconstructor-location*): New constant.
31697	(class-kconstructor, (setf class-kconstructor)): New functions.
31698	(*<structure-class>-instance-size*): Increment.
31699	* clos-class3.lisp (make-instance-<structure-class>)
31700	(shared-initialize-<structure-class>): Add kconstructor argument.
31701	(define-structure-class): Accept four more arguments. Do not access the
31702	defstruct-description.
31703	* clos-class4.lisp (shared-initialize@structure-class): Add
31704	kconstructor argument.
31705	* clos-class6.lisp (class-kconstructor, (setf class-kconstructor)): New
31706	functions.
31707	* defstruct.lisp (defstruct): Pass four more arguments to
31708	define-structure-class.
31709
317102004-10-10  Bruno Haible  <bruno@clisp.org>
31711
31712	* clos-method1.lisp (initialize-instance-<standard-method>): Ignore
31713	fast-function if :function was specified.
31714
317152004-10-10  Bruno Haible  <bruno@clisp.org>
31716
31717	Support for custom method classes not inheriting from STANDARD-METHOD.
31718	* clos-class3.lisp (install-class-direct-accessors): Create method
31719	in two steps. Pass fast-function instead of initfunction initarg,
31720	using method-function-initargs.
31721	* clos-method1.lisp (initialize-instance-<standard-method>): Drop
31722	initfunction argument.
31723	* clos-methcomb2.lisp (method-function-substitute)
31724	(method-function-initargs): New functions.
31725	(effective-method-code-bricks): Emit code to create method in two
31726	steps, and pass fast-function instead of initfunction initarg, using
31727	method-function-initargs.
31728	* clos-method2.lisp (analyze-method-description): Return the
31729	function lambda as a separate value. Do not produce an initfunction
31730	initarg.
31731	* clos-genfun3.lisp (defmethod): Pass three arguments to do-defmethod.
31732	(do-defmethod): Accept three arguments. Create method in two steps.
31733	Pass fast-function instead of initfunction initarg, using
31734	method-function-initargs.
31735	(declaim-method): Update.
31736	(analyze-defgeneric): Emit code to create method in two steps, and
31737	pass fast-function instead of initfunction initarg, using
31738	method-function-initargs.
31739	* clos-genfun4.lisp (no-next-method, add-method, remove-method):
31740	Generalize method from <standard-method> to <method>.
31741	* clos-method3.lisp (initialize-instance@standard-method): Drop
31742	initfunction argument.
31743	* clos-slots2.lisp (slot-value-using-class)
31744	((setf slot-value-using-class), slot-boundp-using-class)
31745	(slot-makunbound-using-class): Pass fast-function instead of
31746	initfunction initarg.
31747	* clos-class5.lisp (shared-initialize, reinitialize-instance)
31748	(initialize-instance, allocate-instance, make-instance): Pass
31749	fast-function instead of initfunction initarg.
31750
317512004-10-10  Bruno Haible  <bruno@clisp.org>
31752
31753	Split method creation into separate allocation and initialization.
31754	* clos-method1.lisp (make-method-instance): Remove function.
31755	(allocate-method-instance, initialize-method-instance): New functions.
31756	* clos-methcomb2.lisp (effective-method-code-bricks): Emit code to use
31757	allocate-method-instance, initialize-method-instance instead of
31758	make-method-instance.
31759	* clos-genfun3.lisp (do-defmethod, analyze-defgeneric): Use
31760	allocate-method-instance, initialize-method-instance instead of
31761	make-method-instance.
31762	* clos-method4.lisp (make-method-instance): Remove function.
31763	(allocate-method-instance, initialize-method-instance): New functions.
31764
317652004-10-18  Sam Steingold  <sds@gnu.org>
31766
31767	* io.d (pr_system): permit readable output for #<UNBOUND>
31768	* constobj.d (printstring_unbound_readably): add
31769
317702004-10-18  Sam Steingold  <sds@gnu.org>
31771
31772	* clos-genfun3.lisp (defgeneric): when the function is being
31773	TRACEd, UNTRACE it to avoid an error
31774
317752004-10-18  Sam Steingold  <sds@gnu.org>
31776
31777	* clos-print.lisp (compute-effective-method@(eql #'print-object)):
31778	avoid a compiler warning
31779
317802004-10-18  Sam Steingold  <sds@gnu.org>
31781
31782	* fill-out.lisp (right-margin, fill-stream-text-indent): new functions
31783	(fill-stream, fill-stream-flush-buffer): use them
31784	(fill-stream-line-position): rename from LINE-POS
31785
317862004-10-16  Bruno Haible  <bruno@clisp.org>
31787
31788	* clos-class3.lisp (defclass): Remove a level of quoting for the slot
31789	initforms.
31790
317912004-10-14  Bruno Haible  <bruno@clisp.org>
31792
31793	* describe.lisp (describe-object@t): Handle the weak-list,
31794	weak-and-relation, weak-or-relation, weak-mapping, weak-and-mapping,
31795	weak-or-mapping, weak-alist types.
31796
317972004-10-14  Bruno Haible  <bruno@clisp.org>
31798
31799	* clos-class3.lisp (shared-initialize-<structure-class>): Do not make
31800	side-effects on empty-ht and on all other structure-class instances.
31801
318022004-10-10  Bruno Haible  <bruno@clisp.org>
31803
31804	* clos-genfun2.lisp (*dynamically-modifiable-generic-function-names*):
31805	Add many MOP generic function names.
31806	(need-gf-already-called-warning-p): Test membership with equal, not eq.
31807
318082004-10-10  Bruno Haible  <bruno@clisp.org>
31809
31810	* clos-method1.lisp (standard-method): Remove initfunction slot.
31811	(initialize-instance-<standard-method>): Update.
31812	* clos-genfun4.lisp (initialize-extended-method-check): Update.
31813	* disassem.lisp (disassemble@standard-method): Update.
31814
31815	Now that methods are never copied, move the initfunction invocation
31816	to the initializer.
31817	* clos-method1.lisp (initialize-instance-<standard-method>): Invoke
31818	the initfunction here.
31819	* clos-genfun2.lisp (std-add-method): ... not here.
31820	(std-remove-method): Use normal identity for comparing methods.
31821
318222004-10-15  Sam Steingold  <sds@gnu.org>
31823
31824	LOAD can now restart when it encounters errors
31825	* init.lisp (eval-loaded-form-low): new function
31826	(eval-loaded-form): dummy definition
31827	(load): use EVAL-LOADED-FORM
31828	* condition.lisp (eval-loaded-form): redefine with two restarts:
31829	SKIP and STOP
31830
318312004-10-10  Bruno Haible  <bruno@clisp.org>
31832
31833	New generic function (setf method-generic-function).
31834	* clos-method1.lisp ((setf method-generic-function)): New preliminary
31835	function.
31836	* clos-genfun2.lisp (std-add-method, std-remove-method)
31837	(reinitialize-instance-<generic-function>): Use it instead of
31838	(setf std-method-generic-function).
31839	* clos-method3.lisp ((setf method-generic-function)): New generic
31840	function.
31841
318422004-10-10  Bruno Haible  <bruno@clisp.org>
31843
31844	Move the from-defgeneric slot from <standard-method> up to <method>.
31845	* clos-method1.lisp (method): Add from-defgeneric slot.
31846	(initialize-instance-<method>): New function.
31847	(standard-method): Remove from-defgeneric slot.
31848	(initialize-instance-<standard-method>): Refer to
31849	initialize-instance-<method>. Do not initialize from-defgeneric.
31850	* clos-genfun2.lisp (std-remove-method)
31851	(reinitialize-instance-<generic-function>): Update.
31852	* clos-method3.lisp (initialize-instance@method): New method.
31853
318542004-10-10  Bruno Haible  <bruno@clisp.org>
31855
31856	Prepare for non-standard methods.
31857	* clos-methcomb2.lisp (method-list-to-continuation): Use
31858	method-function instead of std-method-function.
31859	* disassem.lisp (disassemble@method): New method.
31860
31861	Prepare for non-standard methods.
31862	* clos-genfun2.lisp (std-remove-method): Protect call to
31863	std-method-initfunction with a type check for <standard-method>.
31864
31865	Prepare for non-standard methods.
31866	* clos-methcomb2.lisp (method-list-to-continuation)
31867	(effective-method-code-bricks, build-effective-method-function-form):
31868	Protect all calls to std-method-fast-function,
31869	std-method-wants-next-method-p with a type check for <standard-method>.
31870	* clos-genfun2.lisp (std-add-method): Likewise.
31871
318722004-10-10  Bruno Haible  <bruno@clisp.org>
31873
31874	Optimize type checks.
31875	* clos-class3.lisp (compute-slots-<slotted-class>-around): Use
31876	typep-class instead of typep.
31877	* clos-methcomb2.lisp (check-em-duplicates-option)
31878	(callable-method-form-p, effective-method-code-bricks)
31879	(build-effective-method-function-form): Likewise.
31880	* clos-genfun3.lisp (analyze-defgeneric): Likewise.
31881
318822004-10-10  Bruno Haible  <bruno@clisp.org>
31883
31884	Respect user-defined methods on method-generic-function.
31885	* clos-genfun2.lisp (std-add-method): Call method-generic-function
31886	instead of std-method-generic-function.
31887	* clos-genfun3.lisp (%call-next-method): Likewise.
31888	* clos-genfun4.lisp (%no-next-method): Likewise.
31889	* clos-method3.lisp (method-generic-function): Redefine without
31890	fmakunbound.
31891
31892	Respect user-defined methods on method-lambda-list.
31893	* clos-genfun2.lisp (check-signature-congruence, std-add-method)
31894	(gf-keyword-arguments): Call method-signature instead of
31895	std-gf-signature.
31896	* clos-genfun3.lisp (defmethod): Likewise.
31897	* clos-method3.lisp (method-signature): Redefine without fmakunbound.
31898	(function-keywords): Call method-signature instead of std-gf-signature.
31899	* clos-class5.lisp (valid-initarg-keywords): Likewise.
31900
31901	Respect user-defined methods on method-lambda-list.
31902	* clos-genfun2.lisp (std-add-method): Call method-lambda-list instead
31903	of std-method-lambda-list.
31904	* clos-genfun3.lisp (do-defmethod): Likewise.
31905
31906	Respect user-defined methods on method-qualifiers.
31907	* clos-genfun1.lisp (|#'method-qualifiers|): New variable.
31908	(safe-method-qualifiers): New function.
31909	* clos-methcomb2.lisp (partition-method-list): Add gf argument. Call
31910	safe-method-qualifiers instead of std-method-qualifiers.
31911	(standard-method-combination-expander): Update.
31912	(standard-method-combination-check-method-qualifiers)
31913	(standard-method-combination-call-next-method-allowed)
31914	(short-form-method-combination-expander)
31915	(short-form-method-combination-check-method-qualifiers)
31916	(short-form-method-combination-call-next-method-allowed): Call
31917	method-qualifiers instead of std-method-qualifiers.
31918	* clos-genfun2.lisp (invalid-method-qualifiers-error, methods-agree-p)
31919	(std-find-method): Call method-qualifiers instead of
31920	std-method-qualifiers.
31921	* clos-genfun4.lisp (no-primary-method, no-next-method): Call
31922	method-qualifiers instead of std-method-qualifiers.
31923	* clos-method3.lisp (method-qualifiers): Redefine without fmakunbound.
31924	Initialize |#'method-qualifiers|.
31925	* describe.lisp (describe-object@generic-function): Call
31926	method-qualifiers instead of std-method-qualifiers.
31927
31928	Respect user-defined methods on method-specializers.
31929	* clos-genfun1.lisp (|#'method-specializers|): New variable.
31930	(safe-method-specializers): New function.
31931	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
31932	Add gf argument. Call safe-method-specializers instead of
31933	std-method-specializers.
31934	(long-form-method-combination-collect-duplicates): Call
31935	method-specializers instead of std-method-specializers.
31936	* clos-genfun2.lisp (methods-agree-p, std-add-method)
31937	(std-remove-method, std-find-method): Call method-specializers
31938	instead of std-method-specializers.
31939	(compute-dispatch): Call safe-method-specializers instead of
31940	std-method-specializers.
31941	(compute-applicable-methods-<standard-generic-function>): Update.
31942	(compute-applicable-methods-using-classes-<standard-generic-function>)
31943	(compute-applicable-methods-for-set)
31944	(check-method-only-standard-specializers): Call
31945	safe-method-specializers instead of std-method-specializers.
31946	* clos-genfun4.lisp (dispatching-arg-p, dispatching-arg-type): Call
31947	method-specializers instead of std-method-specializers.
31948	* clos-method3.lisp (method-specializers): Redefine without fmakunbound.
31949	Initialize |#'method-specializers|.
31950	* clos-class5.lisp (note-ai-change, note-ii-change, note-ri-change)
31951	(note-uirc-change, note-uidc-change, note-si-change)
31952	(valid-make-instance-keywords, valid-reinitialize-instance-keywords)
31953	(valid-update-instance-for-redefined-class-keywords)
31954	(valid-update-instance-for-different-class-keywords): Call
31955	method-specializers instead of std-method-specializers.
31956	* describe.lisp (describe-object@generic-function): Likewise.
31957
319582004-10-10  Bruno Haible  <bruno@clisp.org>
31959
31960	* clos-method1.lisp (method-lambda-list-to-signature): New function,
31961	extracted from initialize-instance-<standard-method>.
31962	(initialize-instance-<standard-method>): Use it.
31963	(method-function, method-qualifiers, method-lambda-list)
31964	(method-signature, method-specializers, method-generic-function): New
31965	preliminary functions.
31966	* clos-method3.lisp (method-function, method-qualifiers)
31967	(method-lambda-list, method-specializers, method-generic-function):
31968	Fmakunbound before defgeneric.
31969	(method-signature): New generic function.
31970
319712004-10-10  Bruno Haible  <bruno@clisp.org>
31972
31973	Respect user-defined methods on finalize-inheritance.
31974	* clos-class3.lisp (finalize-inheritance): New preliminary function.
31975	(subclassp, update-subclasses-for-redefined-class)
31976	(update-subclasses-for-redefined-class-nonrecursive): Use it
31977	instead of finalize-class.
31978
319792004-10-13  Bruno Haible  <bruno@clisp.org>
31980
31981	* lispbibl.d (unwind_back_trace): Remove unneeded #ifdef.
31982	* spvw_update.d (update_back_traces): Write if (bt != NULL), not just
31983	if (bt). Needed for Solaris C++.
31984	* spvw_garcol.d (gc_markphase): Likewise.
31985
319862004-10-13  Bruno Haible  <bruno@clisp.org>
31987
31988	* makemake.in (XCFLAGS): Do not add -fsingle when using a C++ compiler.
31989
319902004-10-10  Bruno Haible  <bruno@clisp.org>
31991
31992	Check that user-defined methods on many MOP generic functions behave
31993	correctly.
31994	* clos-genfun4.lisp (extended-method-check): New function.
31995	(*mop-standardized-packages*): New variable.
31996	(mop-standardized-p, add-extended-method-check): New functions.
31997	(*extended-method-check-method*): New variable.
31998	(initialize-extended-method-check): New function.
31999	(generic-function-*): Enable extended method check.
32000	* clos-method3.lisp (method-*): Likewise.
32001	* clos-slotdef3.lisp (slot-definition-*): Likewise.
32002	* clos-class6.lisp (class-*, finalize-inheritance): Likewise.
32003	* clos-methcomb4.lisp (find-method-combination): Likewise.
32004
320052004-10-09  Bruno Haible  <bruno@clisp.org>
32006
32007	Allow tracing of compute-applicable-methods et al.
32008	* clos-genfun1.lisp (|#'compute-discriminating-function|)
32009	(|#'compute-applicable-methods|)
32010	(|#'compute-applicable-methods-using-classes|)
32011	(|#'compute-effective-method|): New variables.
32012	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
32013	Use them.
32014	* clos-genfun2.lisp (install-dispatch)
32015	(compute-applicable-methods-effective-method): Likewise.
32016	* clos-genfun4.lisp: Initialize |#'compute-discriminating-function|,
32017	|#'compute-applicable-methods|,
32018	|#'compute-applicable-methods-using-classes|,
32019	|#'compute-effective-method|.
32020
320212004-10-09  Bruno Haible  <bruno@clisp.org>
32022
32023	Allow the user to override class-direct-subclasses.
32024	* clos-class3.lisp (class-direct-subclasses): New preliminary function.
32025	(checked-class-direct-subclasses): New function.
32026	(list-all-finalized-subclasses): Use it instead of
32027	list-direct-subclasses.
32028
320292004-10-09  Bruno Haible  <bruno@clisp.org>
32030
32031	Improved bootstrapping.
32032	* clos-class3.lisp (defclass): Hardwire the
32033	CLASS-VALID-INITIALIZATION-KEYWORDS result if the metaclass is
32034	STANDARD-CLASS or FUNCALLABLE-STANDARD-CLASS.
32035	(ensure-class-using-class-<t>): Test for subclass of
32036	<semi-standard-class>, not of <standard-class>.
32037	* clos-genfun1.lisp
32038	(*<funcallable-standard-class>-valid-initialization-keywords*): New
32039	constant.
32040	(funcallable-standard-object, generic-function)
32041	(standard-generic-function): Define through defclass instead of
32042	ensure-class.
32043
320442004-10-09  Bruno Haible  <bruno@clisp.org>
32045
32046	* clos-class3.lisp (reinitialize-instance-<class>): After restoring
32047	the backup copy, also restore the direct-subclasses pointers and the
32048	finalized-direct-subclasses pointers of any possible direct superclass.
32049
320502004-10-09  Bruno Haible  <bruno@clisp.org>
32051
32052	Warn about invalid print-object methods.
32053	* clos-print.lisp (*print-object-method-warning*): New variable.
32054	(print-object-method-warning): New function.
32055	(compute-effective-method@(eql #'print-object)): New method.
32056
320572004-10-09  Bruno Haible  <bruno@clisp.org>
32058
32059	* clos-print.lisp (print-object): Return the object as value of all
32060	methods, as required by ANSI CL.
32061	* condition.lisp (print-object@simple-condition, print-object@restart):
32062	Return the object after printing it.
32063
320642004-10-09  Bruno Haible  <bruno@clisp.org>
32065
32066	* clos-slotdef1.lisp (print-object-<slot-definition>): New function,
32067	taken from clos-print.lisp.
32068	* clos-specializer1.lisp (print-object-<eql-specializer>): Likewise.
32069	* clos-class1.lisp (print-object-<class>): Likewise.
32070	* clos-print.lisp (print-object): Use print-object-<slot-definition>,
32071	print-object-<eql-specializer>, print-object-<class>.
32072
320732004-10-09  Bruno Haible  <bruno@clisp.org>
32074
32075	Move code.
32076	* init.lisp (print-unreadable-object): Export it here.
32077	* macros2.lisp (print-unreadable-object): Moved to here.
32078	* defs2.lisp (print-unreadable-object): Remove from here.
32079
320802004-10-09  Bruno Haible  <bruno@clisp.org>
32081
32082	Forbid change-class for <class>, <slot-definition>.
32083	* clos-class5.lisp (update-instance-for-different-class): Add error
32084	signaling methods for <class>, <slot-definition>.
32085
320862004-10-11  Sam Steingold  <sds@gnu.org>
32087
32088	* misc.d (MODULE-INFO): return the DLL information for :FFI
32089	argument (instead of 0); all info when VERBOSE, names only otherwise
32090	* constsym (:FFI) [DYNAMIC_FFI & (WIN32_NATIVE | HAVE_DLOPEN)]: add
32091	Suggested by Jörg Höhle
32092
320932004-10-10  Bruno Haible  <bruno@clisp.org>
32094
32095	* control.d (parse_doc_decl): Fix GC-safety bug introduced on
32096	2004-05-27.
32097	* hashtabl.d (warn_forced_gc_rehash): Fix GC-safety bug introduced on
32098	2004-05-15.
32099	(warn_key_forces_gc_rehash): Fix GC-safety bug introduced on
32100	2004-05-12.
32101
321022004-10-10  Bruno Haible  <bruno@clisp.org>
32103
32104	* .gdbinit: Do not always execute the "base" command. It made it
32105	impossible to attach to an already running lisp.run process.
32106
321072004-10-10  Bruno Haible  <bruno@clisp.org>
32108
32109	Fix GC crash after a GC was triggered while a break loop was active.
32110	* lispbibl.d (bt_beyond_stack_p, with_saved_back_trace): Correctly
32111	parenthesize argument expressions.
32112	* debug.d (driver, break_driver): Initialize bt_next to back_trace,
32113	not NULL. Otherwise the bt_caller fields are not updated during GCs,
32114	and after the function is left the next GC crashes. Fixes bug
32115	introduced on 2002-11-15.
32116
321172004-10-09  Bruno Haible  <bruno@clisp.org>
32118
32119	* clos-class3.lisp (reinitialize-instance-<class>): Do not force a
32120	class to be unfinalized if finalization already succeeded.
32121
321222004-10-09  Bruno Haible  <bruno@clisp.org>
32123
32124	* clos-slots2.lisp (slot-unbound): Restore the error message that was
32125	thrown away on 2003-05-01.
32126
321272004-10-08  Jörg Höhle  <hoehle@users.sourceforge.net>
32128
32129	Usable control of sharing of FFI pointer validity (aka extent)
32130	* foreign.d (set_foreign_pointer): fix GC-safety bug; allow both
32131	entities to be foreign objects other than just foreign-pointer;
32132	return initial (modified) entity, which is incompatible with SETF
32133	requirements, but very handy.
32134	* foreign1.lisp (SETF FOREIGN-POINTER): remove
32135	(SET-FOREIGN-POINTER): export
32136
321372004-10-07  Bruno Haible  <bruno@clisp.org>
32138
32139	* clos-class1.lisp (shared-initialize-<class>): A clos::direct-slots
32140	argument overrides the :direct-slots argument.
32141
321422004-10-07  Bruno Haible  <bruno@clisp.org>
32143
32144	* debug.d (read_form): Do not use ls_avail_p to test whether the
32145	input stream is interactive, since the clear_input call has been
32146	remove on 2003-01-21.
32147
321482004-10-07  Bruno Haible  <bruno@clisp.org>
32149
32150	Fix crash after check_array() is used, introduced on 2004-05-12.
32151	* array.d (test_subscripts): Fix invocations of fehler_subscript_type,
32152	fehler_subscript_range.
32153	(fehler_index_type, fehler_index_range, test_index): Pass the array
32154	as argument, not on the STACK.
32155	(subscripts_to_index): Fix invalid STACK accesses.
32156	(SYS::STORE): Store the checked array in the STACK, for
32157	storagevector_store.
32158	(SVREF, SYS::SVSTORE, SYS::%SVSTORE, ROW-MAJOR-AREF)
32159	(SYS::ROW-MAJOR-STORE): Update.
32160	(ARRAY-IN-BOUNDS-P): Update. Fix invocation of fehler_subscript_type.
32161	(ARRAY-ROW-MAJOR-INDEX): Fix invalid STACK accesses.
32162	(fehler_bit_array): Pass the array as argument, not on the STACK.
32163	(BIT, SBIT, SYS::SET-FILL-POINTER): Update.
32164	* lispbibl.d (fehler_index_range): Pass the array as argument, not on
32165	the STACK.
32166	* stream.d (FILE-POSITION): Update.
32167	* sequence.d (fehler_vector_index_range, seq_check_index): Update.
32168
321692004-10-06  Bruno Haible  <bruno@clisp.org>
32170
32171	* time.d (SYS::DELTA4): Fix error message's argument. Signal an error
32172	if the shift is >= 32. Fix 64-bit computations.
32173	* defs1.lisp (%time): Use more verbose variable names.
32174
321752004-10-06  Bruno Haible  <bruno@clisp.org>
32176
32177	* control.d (MULTIPLE-VALUE-SETQ): Rewritten, to fix three bugs
32178	introduced since 2003-05-20: GC-safety bug when assigning Car(STACK_0),
32179	side effect on variable list given in the original form, GC-safety bug
32180	on return value.
32181
321822004-10-06  Sam Steingold  <sds@gnu.org>
32183
32184	* modules/rawsock/sock.lisp (open-unix-socket-stream): add
32185	&ALLOW-OTHER-KEYS to the lambda list; REMOVE-PLIST is non-destructive
32186	Reported by Jörg Höhle
32187
321882004-10-06  Jörg Höhle  <hoehle@users.sourceforge.net>
32189
32190	* foreign1.lisp (parse-c-type compiler-macro): leave
32191	(parse-c-type `(c-array ,foo ,len)) unchanged
32192
321932004-10-05  Sam Steingold  <sds@gnu.org>
32194
32195	The user commands can now be extended using CUSTOM:*USER-COMMANDS*
32196	* reploop.lisp (*user-commands*): new user variable
32197	(wrap-user-commands): new function
32198	(commands0, commands): activate user commands
32199
322002004-10-05  Sam Steingold  <sds@gnu.org>
32201
32202	* constobj.d (type_foreign_variable, type_foreign_function):
32203	new constants
32204	* foreign.d (FOREIGN-VARIABLE, FOREIGN-FUNCTION): use them instead
32205	of the illegal form pushSTACK(listof(3))
32206	(FOREIGN-FUNCTION): made argument type check restartable
32207
322082004-10-05  Jörg Höhle  <hoehle@users.sourceforge.net>
32209
32210	* foreign.d (FOREIGN-VARIABLE, FOREIGN-FUNCTION):
32211	new constructor functions.
32212	* subr.d, subrkw.d: add them
32213
322142004-10-05  Sam Steingold  <sds@gnu.org>
32215
32216	* lispbibl.d (unused): do not redefine (win32.d already defines it)
32217
322182004-10-05  Sam Steingold  <sds@gnu.org>
32219
32220	* pathname.d (LAUNCH): exit_code is unsigned,
32221	so use fixnum() instead of sfixnum() and avoid a GCC warning
32222
322232004-10-05  Sam Steingold  <sds@gnu.org>
32224
32225	* init.lisp: export ABSOLUTE-PATHNAME
32226
322272004-10-05  Sam Steingold  <sds@gnu.org>
32228
32229	* pathname.d (ABSOLUTE-PATHNAME, physical_namestring):
32230	do not call check_no_wildcards()
32231	(use_default_dir) [PATHNAME_WIN32]: check that the :DEVICE is not :WILD
32232
322332004-10-05  Sam Steingold  <sds@gnu.org>
32234
32235	* encoding.d (CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES):
32236	check_encoding() can trigger GC
32237	Reported by Jörg Höhle
32238
322392004-10-05  Jörg Höhle  <hoehle@users.sourceforge.net>
32240
32241	* foreign.d (fehler_foreign_variable, fehler_foreign_function):
32242	raise error of type type-error
32243
322442004-10-04  Sam Steingold  <sds@gnu.org>
32245
32246	* modules/rawsock/sock.lisp (open-unix-socket): use ABSOLUTE-PATHNAME
32247	(open-unix-socket-stream): new function, returns a STREAM
32248
322492004-10-04  Sam Steingold  <sds@gnu.org>
32250
32251	* modules/syscalls/calls.c (POSIX::CONFSTR): use my_malloc()
32252	instead of malloc() because of error handling
32253
322542004-10-03  Bruno Haible  <bruno@clisp.org>
32255
32256	* pathname.d (ABSOLUTE-PATHNAME): New function.
32257	(physical_namestring): Call check_no_wildcards.
32258	* edit.lisp (edit-file): Use absolute-pathname instead of
32259	translate-pathname.
32260	* cfgwin32.lisp (edit-file): Likewise.
32261	* runprog.lisp (xstring): Likewise.
32262
322632004-10-03  Bruno Haible  <bruno@clisp.org>
32264
32265	* modules/syscalls/calls.c (POSIX::MKNOD): Do not use two popSTACK()s
32266	in the same expression, as it has undefined behaviour.
32267
322682004-10-03  Bruno Haible  <bruno@clisp.org>
32269
32270	* modules/syscalls/calls.c (POSIX::SET-LIMITS): Give a meaningful
32271	error message.
32272
322732004-10-03  Bruno Haible  <bruno@clisp.org>
32274
32275	* modules/syscalls/calls.c (POSIX::CONFSTR): Do not use alloca.
32276
322772004-10-03  Bruno Haible  <bruno@clisp.org>
32278
32279	* modules/syscalls/calls.c: Include sys/resource.h early enough, so
32280	that getrlimit_arg can use it. Also include sys/types.h before
32281	sys/stat.h, not after it.
32282
322832004-10-03  Bruno Haible  <bruno@clisp.org>
32284
32285	* syscalls/calls.c: Do not set Solaris specific flags just temporarily
32286	for a few includes. We do not control their effect.
32287	* syscalls/Makefile.in (CPPFLAGS): Add Solaris specific flags here.
32288
322892004-10-03  Bruno Haible  <bruno@clisp.org>
32290
32291	* utils/modprep.lisp: Do not print modprep's timings.
32292	(modprep): Print a filename using ~A, not ~S.
32293
322942004-10-03  Bruno Haible  <bruno@clisp.org>
32295
32296	* utils/modprep.lisp (print-tables-1): Do not export the ..._table_size
32297	variables.
32298
322992004-10-03  Bruno Haible  <bruno@clisp.org>
32300
32301	* utils/modprep.lisp (print-tables-1): Declare 'index' as
32302	'unsigned int', not 'int'. Avoids gcc warnings.
32303	* modules/syscalls/calls.c (POSIX::LIMITS): Declare pos as
32304	'unsigned int', not 'int'.
32305
323062004-09-30  Bruno Haible  <bruno@clisp.org>
32307
32308	* type.lisp (subtype-integer): Signal an error if the argument is a
32309	circular or dotted list.
32310
323112004-09-30  Bruno Haible  <bruno@clisp.org>
32312
32313	* sequence.d (valid_type1): Call SYS::SUBTYPE-SEQUENCE as a last
32314	chance to determine the sequence type.
32315	* type.lisp (subtype-sequence, type-of-sequence, sequence-type-union)
32316	(sequence-type-intersection): New functions.
32317
323182004-09-30  Bruno Haible  <bruno@clisp.org>
32319
32320	* sequence.d (valid_type1, get_seq_type): Use sequence type 1 instead
32321	of BIT-VECTOR.
32322	(delete_help): Simplify accordingly.
32323	* defseq.lisp (BIT-VECTOR): Remove. Replaced by sequence type 1.
32324
323252004-09-29  Bruno Haible  <bruno@clisp.org>
32326
32327	* defmacro.lisp (macro-nonnull-element-error): New function.
32328	(empty-pattern): Use it in the macroexpansion.
32329
323302004-09-29  Bruno Haible  <bruno@clisp.org>
32331
32332	* fill-out.lisp (stream-start-s-expression, stream-end-s-expression):
32333	No need for EVAL-WHEN (COMPILE).
32334	* format.lisp (formatter-main-1): Do not call STREAM-START-S-EXPRESSION
32335	and STREAM-END-S-EXPRESSION twice when the ~S code dispatches to
32336	DO-FORMAT-S-EXPRESSION.
32337
323382004-09-20  Bruno Haible  <bruno@clisp.org>
32339
32340	* documentation.lisp (documentation, (setf documentation)): Define
32341	with reversed argument-precedence-order.
32342
323432004-09-28  Sam Steingold  <sds@gnu.org>
32344
32345	* format.lisp (formatter-main-1): call STREAM-START-S-EXPRESSION
32346	and STREAM-END-S-EXPRESSION for ~S
32347
323482004-09-28  Sam Steingold  <sds@gnu.org>
32349
32350	package locking should not interfere with SETQ return value
32351	* control.d (SETQ): restore value1 after setq()
32352	* eval.d (setq): return value
32353	* lispbibl.d (setq): update the declaration
32354	Reported by Jörg Höhle
32355
323562004-09-28  Bruno Haible  <bruno@clisp.org>
32357
32358	* utils/clispload.lsp (*expected-failures*): Remove DIRECTORY.[67],
32359	which are fix. Remove NAMESTRING.[34], which is commented out.
32360
323612004-09-28  Sam Steingold  <sds@gnu.org>
32362
32363	* fill-out.lisp (fill-stream-flush-buffer): even when BUFFER is
32364	empty, NEWLINE-P still has to be respected
32365
323662004-09-28  Sam Steingold  <sds@gnu.org>
32367
32368	* loop.lisp (loop): as per 6.1.1.1.1 and 6.1.1.1.2, LOOP is
32369	extended when it contains ATOMs, not just loop keywords
32370	Reported by Kalle Olavi Niemitalo <kon@iki.fi>
32371	* compiler.lisp (simplify): use TAGBODY instead of simple LOOP
32372	* subtypep.lisp (intervals-union): ditto
32373
323742004-09-28  Bruno Haible  <bruno@clisp.org>
32375
32376	Make (MAKE-SEQUENCE (FIND-CLASS 'LIST) n) work.
32377	* sequence.d (valid_type1): Recognize also built-in class objects.
32378	* clos-class3.lisp: Pass <list> to %defclos as well.
32379
323802004-09-28  Jörg Höhle  <hoehle@users.sourceforge.net>
32381
32382	* modules/bindings/glibc/linux.lisp:
32383	(seed48): provide exact definition now that prototyes are not
32384	written to the C output file anymore (see *output-c-functions*).
32385	The limitation in ffi::to-c-typedecl still exists: it produces
32386	uint16 (* (seed48) (uint16 (* arg2163)[3]))[3] as prototype...
32387	(execl,execlp): use DEFUN-based interface, call execv/p.
32388
323892004-09-19  Bruno Haible  <bruno@clisp.org>
32390
32391	Support for user-defined DEFGENERIC options.
32392	* clos-genfun3.lisp (make-generic-function): Add caller, whole-form,
32393	user-defined-args arguments. Perform checking of generic-function
32394	options.
32395	(analyze-defgeneric): Accept generic-function options that depend on
32396	the generic-function class. Remove the generic-function option checking
32397	from here. Return an additional value user-defined-args.
32398	(defgeneric): Perform checking of generic-function options at
32399	execution time.
32400	(make-generic-function-form): Update.
32401	* clos-genfun4.lisp (initialize-instance@generic-function): Remove
32402	&allow-other-keys.
32403
324042004-09-19  Bruno Haible  <bruno@clisp.org>
32405
32406	Support for user-defined DEFCLASS slot options.
32407	* clos-slotdef1.lisp (initialize-instance-<slot-definition>): Call
32408	%initialize-instance, to initialize user-defined slots.
32409	(initialize-instance-<direct-slot-definition>): Accept defclass-form
32410	argument.
32411	(convert-direct-slots): Do slot option checking here.
32412	* clos-slotdef2.lisp (initialize-instance@direct-slot-definition):
32413	Accept defclass-form argument.
32414	* clos-slotdef3.lisp (slot-equal-using-class): Do not constrain the
32415	direct-slot-definition subclass.
32416	* clos-class3.lisp (defclass): Accept slot options that depend on the
32417	direct-slot-definition class. Remove the slot option checking from
32418	here.
32419
324202004-09-27  Jörg Höhle  <hoehle@users.sourceforge.net>
32421
32422	* foreign.d (%deref): may be useful with (c-pointer <c-type>)
32423	(foreign_allocate): bind *print-circle* iff fvd shown.
32424
324252004-09-26  Sam Steingold  <sds@gnu.org>
32426
32427	* modules/bindings/win32/win32.lisp, modules/bindings/glibc/linux.lisp:
32428	* modules/postgresql/postgresql.lisp, modules/netica/netica.lisp:
32429	reverted the broken 2004-09-09 patch
32430
324312004-09-26  Sam Steingold  <sds@gnu.org>
32432
32433	FILL-STREAM no longer flattens all space inside S-expressions
32434	* fill-out.lisp (fill-stream): new slot INSIDE-SEXP
32435	(fill-stream-flush-buffer, stream-write-char): when INSIDE-SEXP,
32436	do not indent
32437	(stream-start-s-expression, stream-end-s-expression): new generic
32438	functions with methods for FILL-STREAM
32439	* format.lisp (format-s-expression): call them
32440
324412004-09-23  Sam Steingold  <sds@gnu.org>
32442
32443	* pathname.d (DEFAULT_VERSION): since all pathnames returned by
32444	DIRECTORY must be truenames, DEFAULT_VERSION must be :NEWEST
32445
324462004-09-23  Sam Steingold  <sds@gnu.org>
32447
32448	* describe.lisp (describe-object): fix bignum/fixnum classification
32449	Reported by Jörg Höhle
32450
324512004-09-23  Bruno Haible  <bruno@clisp.org>
32452
32453	* sequence.d (REVERSE): Fix wrong index check when the argument is a
32454	displaced vector. Fixes bug introduced on 1999-11-08.
32455
324562004-09-18  Bruno Haible  <bruno@clisp.org>
32457
32458	* pathname.d (signal_type_error): New function.
32459	(LOGICAL-PATHNAME): Signal an error of type TYPE-ERROR if the parsing
32460	leads to a PARSE-ERROR.
32461	* condition.lisp (valid-logical-pathname-string-p): New function.
32462
324632004-09-20  Bruno Haible  <bruno@clisp.org>
32464
32465	Treat the DEFCLASS :fixed-slot-locations option like user-defined
32466	options.
32467	* clos-class1.lisp (semi-standard-class): Provide an initarg and a
32468	default-initarg for the fixed-slot-locations slot.
32469	(*<standard-class>-valid-initialization-keywords*)
32470	(*<standard-class>-default-initargs*): New constants.
32471	* clos-class3.lisp (defclass): Do not special-case :fixed-slot-locations
32472	option. Use *<standard-class>-valid-initialization-keywords*,
32473	*<standard-class>-default-initargs*.
32474
324752004-09-20  Bruno Haible  <bruno@clisp.org>
32476
32477	Change syntax of DEFCLASS :fixed-slot-locations option.
32478	* clos-slotdef1.lisp (slot-definition, direct-slot-definition)
32479	(effective-slot-definition, standard-slot-definition)
32480	(standard-direct-slot-definition, standard-effective-slot-definition)
32481	(structure-direct-slot-definition, structure-effective-slot-definition):
32482	Provide a boolean argument to the :fixed-slot-locations option.
32483	* clos-stablehash1.lisp (standard-stablehash): Likewise.
32484	* clos-specializer1.lisp (specializer, eql-specializer): Likewise.
32485	* clos-class1.lisp (class, built-in-class, slotted-class)
32486	(structure-class, semi-standard-class, standard-class): Likewise.
32487	* clos-class3.lisp (reinitialize-instance-<class>)
32488	(shared-initialize-<semi-standard-class>): Convert the option, a list,
32489	to a boolean.
32490	* clos-method1.lisp (standard-method, standard-accessor-method)
32491	(standard-reader-method, standard-writer-method): Provide a boolean
32492	argument to the :fixed-slot-locations option.
32493	* clos-methcomb1.lisp (method-combination): Likewise.
32494	* clos-genfun1.lisp (funcallable-standard-class)
32495	(funcallable-standard-object, generic-function)
32496	(standard-generic-function): Likewise.
32497
324982004-09-22  Sam Steingold  <sds@gnu.org>
32499
32500	* fill-out.lisp (stream-write-char-sequence): use COUNT-IF to
32501	support all sequences, not just lists and vectors, avoid consing
32502	and quadraticity; return the sequence as prescribed by the ANSI
32503
325042004-09-18  Bruno Haible  <bruno@clisp.org>
32505
32506	Support for user-defined DEFCLASS options.
32507	* clos-class5.lisp (class-valid-initialization-keywords): New function.
32508	* clos-class3.lisp (defclass): Accept class options that depend on
32509	the metaclass. Move the verification of the class option checking from
32510	macroexpansion time to execution time.
32511
325122004-09-18  Bruno Haible  <bruno@clisp.org>
32513
32514	* clos-genfun4.lisp (shared-initialize@generic-function)
32515	(shared-initialize@standard-generic-function): Remove &allow-other-keys.
32516	* clos-specializer2.lisp (shared-initialize@eql-specializer): Likewise.
32517	* clos-class4.lisp (shared-initialize@class)
32518	(shared-initialize@built-in-class, shared-initialize@structure-class)
32519	(shared-initialize@standard-class)
32520	(shared-initialize@funcallable-standard-class): Likewise.
32521
325222004-09-18  Bruno Haible  <bruno@clisp.org>
32523
32524	* pathname.d (parse_as_logical): Fix incorrect comments.
32525	(LOGICAL-PATHNAME): Signal an error if the argument refers to a stream
32526	opened with a physical pathname.
32527
325282004-09-18  Bruno Haible  <bruno@clisp.org>
32529
32530	Avoid floating-point overflow in comparison of floats with rational
32531	numbers.
32532	* sfloat.d (I_to_SF, RA_to_SF): Add signal_overflow argument.
32533	* ffloat.d (I_to_FF, RA_to_FF): Add signal_overflow argument.
32534	* dfloat.d (I_to_DF, RA_to_DF): Add signal_overflow argument.
32535	* lfloat.d (I_to_LF, RA_to_LF): Add signal_overflow argument.
32536	* realelem.d (I_F_float_F): Update.
32537	(RA_F_float_F): Add signal_overflow argument.
32538	(R_F_float_F, R_to_SF, R_to_FF, R_to_DF, R_to_LF)
32539	(RA_F_exact_contagion_R, I_float_F, RA_float_F, RA_R_float_F)
32540	(GEN_R_op21): Update.
32541	(R_R_comp): Avoid floating-point overflow when comparing float with
32542	rational number.
32543	* realtran.d (pi_F_float_F, ln2_F_float_F, R_R_log_R): Update.
32544	* compelem.d (N_durch_N, R_R_hypot_R): Update.
32545	* comptran.d (N_N_log_N, R_R_atanh_R_R): Update.
32546	* lisparit.d (read_float, to_double, log_digits): Update.
32547
325482004-09-21  Jörg Höhle  <hoehle@users.sourceforge.net>
32549
32550	* foreign.d, foreign1.lisp, ffi.tst: Implement c-type
32551	'(c-pointer <c-type>) which does not convert data structures
32552	to/from Lisp and manipulates FOREIGN-VARIABLE objects instead.
32553	* modules/bindings/glibc/linux.lisp (errno): Use it.
32554
325552004-09-18  Bruno Haible  <bruno@clisp.org>
32556
32557	* lispbibl.d (Class): Rename field valid_initargs to
32558	valid_initargs_from_slots.
32559	* clos-class1.lisp (class): Rename slot valid-initargs to
32560	valid-initargs-from-slots.
32561	(*<slotted-class>-valid-initargs-from-slots-location*): Rename from
32562	*<slotted-class>-valid-initargs-location*.
32563	(class-valid-initargs-from-slots): Rename from class-valid-initargs.
32564	* clos-class3.lisp (shared-initialize-<structure-class>)
32565	(finalize-instance-semi-standard-class): Update.
32566	* clos-class5.lisp (valid-initarg-keywords): Update.
32567	* clos-class6.lisp (class-valid-initargs-from-slots): Rename from
32568	class-valid-initargs.
32569
325702004-09-18  Bruno Haible  <bruno@clisp.org>
32571
32572	* format.lisp (format-character): Do not string-capitalize the
32573	character name.
32574
325752004-09-18  Bruno Haible  <bruno@clisp.org>
32576
32577	* io.d (SYS::WRITE-UNREADABLE): Emit leading or trailing space if
32578	*PRINT-UNREADABLE-ANSI* is true.
32579	* misc.d (SYS::SET-ANSI): Set *PRINT-UNREADABLE-ANSI* too.
32580	* spvw.d (init_symbol_values): Initialize *PRINT-UNREADABLE-ANSI*.
32581	* places.lisp (*ansi*): Mention *PRINT-UNREADABLE-ANSI*.
32582
325832004-09-18  Bruno Haible  <bruno@clisp.org>
32584
32585	* io.d (pr_array): If *PRINT-READABLY* is true, ignore
32586	*PRINT-EMPTY-ARRAYS-ANSI*.
32587
325882004-09-18  Bruno Haible  <bruno@clisp.org>
32589
32590	* pathname.d (LOGICAL-PATHNAME): Signal an error if the argument is
32591	a string without host specification.
32592
325932004-09-18  Bruno Haible  <bruno@clisp.org>
32594
32595	* aridecl.d (SF_exp_mid, SF_exp_high): Use the IEEE single-float
32596	values.
32597	Fixes problem introduced on 1999-08-07.
32598
325992004-09-17  Bruno Haible  <bruno@clisp.org>
32600
32601	* clos-genfun4.lisp (shared-initialize@generic-function): New method.
32602	(shared-initialize@standard-generic-function): Accept :declare too.
32603
326042004-09-17  Bruno Haible  <bruno@clisp.org>
32605
32606	* clos-class3.lisp (define-structure-class): No need to fmakunbound.
32607
326082004-09-17  Bruno Haible  <bruno@clisp.org>
32609
32610	Treat (FUNCTION NIL) correctly.
32611	* cmacros.lisp (function-form-funform): Remove function.
32612	(function-form-p): New function.
32613	(simple-function-form-p): Update.
32614	* compiler.lisp (inline-callable-function-lambda-p)
32615	(inline-callable-function-p): Update.
32616	* loop.lisp (expand-loop): Update. Optimize #'(setf foo) the same way
32617	as #'foo.
32618
326192004-09-20  Sam Steingold  <sds@gnu.org>
32620
32621	* pathname.d (PARSE-NAMESTRING): fix second return value for
32622	displaced arguments
32623
326242004-09-20  Sam Steingold  <sds@gnu.org>
32625
32626	* describe.lisp (describe-object): print pathname components as
32627	is, not as pathnames with only this component, because :VERSION is
32628	never printed for non-logical pathnames and :NEWEST is thus
32629	printed as an empty string, which is confusing
32630
326312004-09-18  Bruno Haible  <bruno@clisp.org>
32632
32633	* utils/clispload.lsp (*expected-failures*): Revisit many failures.
32634
326352004-09-17  Bruno Haible  <bruno@clisp.org>
32636
32637	* clx/mit-clx/dependent.lisp (get-host-name): Implement correctly
32638	for clisp.
32639
32640	* clx/mit-clx/dependent.lisp (conditional-store): Rewrite to avoid
32641	multiple evaluation of subforms.
32642
32643	* clx/mit-clx/depdefs.lisp: Ensure that :CLX-LITTLE-ENDIAN is
32644	declared in *features* on little-endian platforms.
32645
326462004-09-18  Bruno Haible  <bruno@clisp.org>
32647
32648	* clos-class3.lisp (compute-slots-<slotted-class>-around)
32649	(create-shared-slots-vector): Fix bug in 2004-09-12 patch.
32650
326512004-09-17  Bruno Haible  <bruno@clisp.org>
32652
32653	* condition.lisp (print-object@condition): Fix typo in 2004-09-14
32654	patch.
32655
326562004-09-17  Bruno Haible  <bruno@clisp.org>
32657
32658	* condition.lisp (define-condition, handler-case, restart-bind): Pass
32659	both :FORM and :DETAIL when signaling a source-program-error.
32660
326612004-09-17  Bruno Haible  <bruno@clisp.org>
32662
32663	* constsym.d (CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*)
32664	(SYS::SPECIALIZED-LAMBDA-LIST-TO-ORDINARY): Align C names.
32665	* spvw.d (init_symbol_values): Update.
32666	* eval.d (get_closure): Update.
32667	* misc.d (SYS::SET-ANSI): Update.
32668
326692004-09-17  Bruno Haible  <bruno@clisp.org>
32670
32671	* init.lisp (remove-old-definitions, open-for-load)
32672	(specialized-lambda-list-to-ordinary, defun): Fix indentation. Use
32673	'when' instead of 'if' without else-branch.
32674
326752004-09-16  Bruno Haible  <bruno@clisp.org>
32676
32677	* init.lisp: Export metaobject, specializer, eql-specializer,
32678	compute-effective-method.
32679	* clos-package.lisp: Likewise.
32680
326812004-09-16  Bruno Haible  <bruno@clisp.org>
32682
32683	* utils/clispload.lsp (*expected-failures*): Many new failures to be
32684	revisited.
32685
326862004-09-16  Bruno Haible  <bruno@clisp.org>
32687
32688	* clos-slotdef1.lisp (structure-effective-slot-definition): Provide
32689	different initforms for efm-svuc etc.
32690	(initialize-instance-<structure-effective-slot-definition>): Initialize
32691	the slots efm-svuc etc.
32692	* clos-class3.lisp (compute-slot-location-table-entry): Make it work
32693	for STRUCTURE-CLASS classes.
32694
326952004-09-15  Sam Steingold  <sds@gnu.org>
32696
32697	* modules/bindings/win32/win32.lisp (SE_ERROR, SHOW_COMMAND): new enums
32698	(ShellExecuteA): new function
32699
327002004-09-15  Bruno Haible  <bruno@clisp.org>
32701
32702	Fix "make distclean".
32703	* makemake.in (OBSOLETE): Add Makefile~, clisp-test.c.
32704	(clean4): Also remove cflags.h, localcharset.h.
32705	(clean5): Also remove spvw_calendar.c, w32shell.c, exporting.lisp,
32706	modprep.lisp.
32707	(clean7): Also remove version.h.
32708
327092004-09-15  Sam Steingold  <sds@gnu.org>
32710
32711	* genclisph.d (main): define NULL differently for C & C++
32712	depending on include environment, not file generation environment
32713	Reported by Goffioul Michael <goffioul@imec.be>
32714
327152004-08-01  Bruno Haible  <bruno@clisp.org>
32716
32717	* record.d (check_initialization_argument_list): Internationalize
32718	error message.
32719
327202004-09-15  Bruno Haible  <bruno@clisp.org>
32721
32722	* constobj.d (version): Bump because of changes to CLOS macro
32723	expansions.
32724
327252004-09-12  Bruno Haible  <bruno@clisp.org>
32726
32727	Implement SLOT-VALUE-USING-CLASS and friends.
32728	* lispbibl.d (SlotDefinition): Add fields slotdef_efm_svuc,
32729	slotdef_efm_ssvuc, slotdef_efm_sbuc, slotdef_efm_smuc.
32730	* record.d (slot_using_class_up): New function.
32731	(CLOS::%SLOT-VALUE-USING-CLASS, CLOS::%SET-SLOT-VALUE-USING-CLASS)
32732	(CLOS::%SLOT-BOUNDP-USING-CLASS, CLOS::%SLOT-MAKUNBOUND-USING-CLASS):
32733	New functions.
32734	(slot_up): Remove function.
32735	(CLOS:SLOT-VALUE): Inline slot_up. Handle the general case slotinfo:
32736	call CLOS:SLOT-VALUE-USING-CLASS effective method if necessary.
32737	((SETF CLOS:SLOT-VALUE)): Handle the general case slotinfo:
32738	call (SETF CLOS:SLOT-VALUE-USING-CLASS) effective method if necessary.
32739	(CLOS:SLOT-BOUNDP): Inline slot_up. Handle the general case slotinfo.
32740	(CLOS:SLOT-MAKUNBOUND): Likewise.
32741	(CLOS::%SHARED-INITIALIZE): Handle the general case slotinfo.
32742	(CLOS::%REINITIALIZE-INSTANCE, do_initialize_instance): Likewise.
32743	* init.lisp: Export slot-value-using-class,
32744	slot-boundp-using-class, slot-makunbound-using-class.
32745	* clos-package.lisp: Likewise.
32746	* clos-slotdef1.lisp (effective-slot-definition): Add slots efm-svuc,
32747	efm-ssvuc, efm-sbuc, efm-smuc.
32748	(*<effective-slot-definition>-efm-...-location*): New constants.
32749	(slot-definition-efm-svuc, slot-definition-efm-ssvuc)
32750	(slot-definition-efm-sbuc, slot-definition-efm-smuc): New accessors.
32751	(make-instance-<standard-effective-slot-definition>)
32752	(structure-effective-slot-definition-initff)
32753	(structure-effective-slot-definition-readonly)
32754	(make-instance-<structure-effective-slot-definition>): Update.
32755	* clos-slotdef3.lisp (slot-definition-efm-svuc)
32756	(slot-definition-efm-ssvuc, slot-definition-efm-sbuc)
32757	(slot-definition-efm-smuc): New accessors.
32758	* clos-class3.lisp (compute-slots-<slotted-class>-around): Properly
32759	extract the location from the slot-location-table entry.
32760	(create-shared-slots-vector): Likewise.
32761	(compute-slot-location-table-entry): New function.
32762	(compute-slot-location-table): Use it.
32763	(list-all-finalized-subclasses): Make it work also for class <t>.
32764	* clos-genfun2.lisp (|#'slot-value-using-class|)
32765	(|#'(setf slot-value-using-class)|, |#'slot-boundp-using-class|)
32766	(|#'slot-makunbound-using-class|): New variables.
32767	(std-add-method, std-remove-method): Notify when one of these generic
32768	functions changes.
32769	* clos-slots2.lisp (invalidate-slot-value-info, note-svuc-change)
32770	(note-ssvuc-change, note-sbuc-change, note-smuc-change): New functions.
32771	(slot-value-using-class, (setf slot-value-using-class),
32772	slot-boundp-using-class, slot-makunbound-using-class): New generic
32773	functions.
32774
327752004-09-12  Bruno Haible  <bruno@clisp.org>
32776
32777	* clos-genfun2.lisp (compute-applicable-methods-for-set)
32778	(compute-applicable-methods-effective-method-for-set): New functions.
32779
327802004-09-14  Sam Steingold  <sds@gnu.org>
32781
32782	* foreign.d (object_handle): check that the new name is a string
32783
327842004-09-14  Sam Steingold  <sds@gnu.org>
32785
32786	support libsigsegv-2.1 on cygwin,
32787	which includes <windows.h> from <sigsegv.h>
32788	* lispbibl.d [UNIX_CYGWIN32]: undefine WIN32 and
32789	INVALID_HANDLE_VALUE after including <sigsegv.h>
32790	define unused after including <sigsegv.h> because it is used by woe32
32791	* pathname.d [UNIX_CYGWIN32]: do not redefine *_PRIORITY_CLASS
32792	* spvw_sigsegv.d (stackoverflow_handler) [UNIX_CYGWIN32]: use Ebx
32793
327942004-09-14  Bruno Haible  <bruno@clisp.org>
32795
32796	* compiler.lisp (c-report-problems): When reporting unknown functions,
32797	compare function names with EQUAL, not EQL.
32798
327992004-09-14  Bruno Haible  <bruno@clisp.org>
32800
32801	* condition.lisp (print-condition): Change from generic function to
32802	plain function. Call print-object.
32803	(print-object@condition): Do not call print-condition. Instead inline
32804	its earlier definition.
32805	(define-condition): Change the macroexpansion to define a method on
32806	print-object, not on print-condition.
32807	(print-condition@simple-condition): Remove.
32808	(print-object@simple-condition): New method.
32809
328102004-08-01  Bruno Haible  <bruno@clisp.org>
32811
32812	Make it possible to call class-precedence-list during compute-slots
32813	and compute-default-initargs.
32814	* record.d (do_allocate_instance, update_instance)
32815	(CLOS::%MAKE-INSTANCE): Test for finalized class by using the
32816	'initialized' field, not the 'precedence_list' field.
32817	* clos-class1.lisp (class): Change type of initialized slot to integer.
32818	(%class-precedence-list): Remove function.
32819	(shared-initialize-<class>): Set the initialized flag to 0 or 2,
32820	instead of nil and t.
32821	* clos-class3.lisp (subclassp): Test for finalized class by using the
32822	'initialized' slot, not the 'precedence-list' slot.
32823	(reinitialize-instance-<class>): Likewise.
32824	(std-compute-subclass-of-stablehash-p, compute-slots-<class>-primary)
32825	(compute-slots-<slotted-class>-around)
32826	(compute-default-initargs-<class>):
32827	Use class-precedence-list instead of %class-precedence-list.
32828	(shared-initialize-<built-in-class>)
32829	(shared-initialize-<structure-class>): Likewise. Set the
32830	initialized flag to 6.
32831	(shared-initialize-<semi-standard-class>): Set initialized flag to 2.
32832	(finalize-class): Test for finalized class by using the 'initialized'
32833	slot, not the 'precedence-list' slot.
32834	(finalize-instance-semi-standard-class): Use class-precedence-list
32835	instead of %class-precedence-list. Set the initialized flag to 6.
32836	(make-instances-obsolete-<semi-standard-class>)
32837	(make-instances-obsolete-<semi-standard-class>-nonrecursive):
32838	Test for finalized class by using the 'initialized' slot, not the
32839	'precedence-list' slot.
32840	(update-subclasses-for-redefined-class): Set initialized flag to 2.
32841	(update-subclasses-for-redefined-class-nonrecursive): Likewise. Test
32842	for finalized class by using the 'initialized' slot, not the
32843	'precedence-list' slot.
32844	* clos-class6.lisp (check-class-initialized): Add a level argument.
32845	(check-class-finalized): Add a level argument. Test for finalized class
32846	by using the 'initialized' slot, not the 'precedence-list' slot.
32847	(%class-precedence-list): Remove function.
32848	(class-precedence-list, class-slots, class-default-initargs)
32849	(class-prototype): Update.
32850	(class-finalized-p@class): Test for finalized class by using the
32851	'initialized' slot, not the 'precedence-list' slot.
32852	* clos-print.lisp (print-object@class): Likewise.
32853
328542004-09-13  Sam Steingold  <sds@gnu.org>
32855
32856	comply with <http://www.lisp.org/HyperSpec/Body/fun_compile-file.html>:
32857	 If verbose is true, compile-file prints a message in the form of
32858	 a comment (i.e., with a leading semicolon) to standard output
32859	 indicating what file is being compiled and other useful
32860	 information. If verbose is false, compile-file does not print
32861	 this information.
32862	* compiler.lisp (compile-file): prefix verbose output with ";; "
32863	 and send it to *STANDARD-OUTPUT*
32864
328652004-09-13  Sam Steingold  <sds@gnu.org>
32866
32867	* runprog.lisp (run-shell-command) [win32]: :INDIRECTP defaults to T
32868	Reported by Jörg Höhle
32869
328702004-09-13  Sam Steingold  <sds@gnu.org>
32871
32872	* makemake.in (cross/LPARS, full-check):
32873	make sure that ${someflags} is expanded
32874	Reported by Jörg Höhle
32875
328762004-09-13  Bruno Haible  <bruno@clisp.org>
32877
32878	* clos-class3.lisp (defclass): Pass the metaclass' default-initargs to
32879	ensure-class.
32880	* clos-genfun3.lisp (defgeneric): Pass the generic-function class'
32881	default-initargs to ensure-generic-function.
32882	Reported by Pascal Costanza.
32883
328842004-08-01  Bruno Haible  <bruno@clisp.org>
32885
32886	* clos-slotdef1.lisp (<effective-slot-definition>): New variable.
32887	(effective-slot-definition-p): New function.
32888	* clos-class3.lisp (compute-slots-<class>-primary): Check the return
32889	value of compute-effective-slot-definition.
32890
328912004-07-30  Bruno Haible  <bruno@clisp.org>
32892
32893	* clos-genfun2.lisp (compute-applicable-methods-effective-method):
32894	Check the return value from compute-applicable-methods-using-classes or
32895	compute-applicable-methods.
32896
328972004-07-30  Bruno Haible  <bruno@clisp.org>
32898
32899	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>):
32900	Clear the cache also when unknown user-defined arguments are passed.
32901	(install-dispatch): Check the return value from
32902	compute-discriminating-function.
32903
329042004-07-29  Bruno Haible  <bruno@clisp.org>
32905
32906	Implement the dependents protocol.
32907	* lispbibl.d (Class): Add field 'listeners'.
32908	* init.lisp: Export add-dependent, remove-dependent, map-dependents,
32909	update-dependent.
32910	* clos-package.lisp: Export add-dependent, remove-dependent,
32911	map-dependents, update-dependent.
32912	* clos-class1.lisp (class): Add slot 'listeners'.
32913	(*<...class>-...-location*): Update.
32914	(*<...class>-instance-size*): Increment.
32915	(class-listeners, (setf class-listeners)): New functions.
32916	(shared-initialize-<class>): Initialize the listeners.
32917	* clos-class3.lisp (reinitialize-instance-<class>): Invoke
32918	map-dependents.
32919	(map-dependents-<class>): New function.
32920	* clos-class6.lisp (class-listeners, (setf class-listeners)): New
32921	functions.
32922	* clos-genfun1.lisp (*<funcallable-standard-class>-instance-size*):
32923	Increment.
32924	(generic-function): Add slot 'listeners'.
32925	(shared-initialize-<generic-function>): Initialize the listeners.
32926	* clos-genfun2.lisp (map-dependents-<generic-function>): New function.
32927	(std-add-method, std-remove-method)
32928	(reinitialize-instance-<generic-function>): Invoke map-dependents.
32929	* clos-dependent.lisp: New file.
32930	* clos.lisp: Load it.
32931	* makemake.in (LPARTS): Add clos-dependent.
32932	* po/Makefile.devel (LISPSOURCES): Add clos-dependent.
32933
329342004-09-09  Sam Steingold  <sds@gnu.org>
32935
32936	* modules/bindings/win32/win32.lisp, modules/bindings/glibc/linux.lisp:
32937	* modules/postgresql/postgresql.lisp, modules/netica/netica.lisp:
32938	no need to wrap defconstant in eval-when: this prevents
32939	the symbols from being exported
32940
329412004-09-09  Bruno Haible  <bruno@clisp.org>
32942
32943	* makemake.in: Accept msvc6 and handle it like msvc5.
32944	* Makefile.devel (win32msvc/makefile.msvc6, win32msvc/makefile.msvc6d):
32945	New targets.
32946	(makefiles): Depend on them.
32947	Suggested by Jörg Höhle.
32948
329492004-07-12  Bruno Haible  <bruno@clisp.org>
32950
32951	* lispbibl.d (Class): Remove direct_generic_functions field.
32952	* clos-specializer1.lisp (specializer): Remove direct-generic-functions
32953	slot.
32954	(*<specializer>-direct-generic-functions-location*): Remove constant.
32955	(*<specializer>-direct-methods-location*): Update.
32956	(specializer-direct-generic-functions-table): Remove accessor.
32957	(shared-initialize-<specializer>): Update.
32958	(*<eql-specializer>-...-location*): Decrement by 1.
32959	(*<eql-specializer>-instance-size*): New constant.
32960	(make-instance-<eql-specializer>): Use it.
32961	(specializer-direct-generic-functions-table): Remove accessor.
32962	* clos-class1.lisp (*<class>-...-location*): Decrement by 1.
32963	(*<built-in-class>-instance-size*): Likewise.
32964	(*<slotted-class>-...-location*): Likewise.
32965	(*<structure-class>-...-location*): Likewise.
32966	(*<structure-class>-instance-size*): Likewise.
32967	(*<semi-standard-class>-...-location*): Likewise.
32968	(*<standard-class>-instance-size*): Likewise.
32969	* clos-genfun1.lisp (*<funcallable-standard-class>-instance-size*):
32970	Likewise.
32971
329722004-09-08  Sam Steingold  <sds@gnu.org>
32973
32974	* foreign.d (open_library): since name may be modified by
32975	check_string(), it must be passed by reference
32976	(update_library, FOREIGN-LIBRARY): pass name to open_library()
32977	by reference
32978	Reported by Jörg Höhle
32979
329802004-09-08  Sam Steingold  <sds@gnu.org>
32981
32982	* modules/exporting.lisp: PROVIDE "exporting"
32983	* modules/bindings/glibc/linux.lisp, modules/bindings/win32/win32.lisp:
32984	* modules/matlab/matlab.lisp, modules/netica/netica.lisp:
32985	* modules/postgresql/postgresql.lisp: REQUIRE "exporting" instead
32986	of an explicit LOAD to permit stand-alone loading
32987
329882004-09-08  Sam Steingold  <sds@gnu.org>
32989
32990	fix bug#226: file system traversing problems
32991	* makemake.in (someflags): new variable: encflags + -norc
32992	use it uniformly everywhere
32993
329942004-09-08  Sam Steingold  <sds@gnu.org>
32995
32996	* init.lisp (load): use the input-stream as the unique EOF object
32997
329982004-07-12  Bruno Haible  <bruno@clisp.org>
32999
33000	* clos-specializer1.lisp (add-direct-generic-function-internal)
33001	(remove-direct-generic-function-internal)
33002	(list-direct-generic-functions): Remove functions.
33003	(forget-direct-generic-functions, add-direct-generic-function):
33004	Remove functions.
33005	(compute-direct-generic-functions): Return just a plain list.
33006	(update-list-direct-generic-functions): Remove function.
33007	(specializer-direct-generic-functions): Use
33008	compute-direct-generic-functions.
33009	(add-direct-method-generic-function): Remove function.
33010	(add-direct-method, remove-direct-method): Undo last change.
33011	* clos-specializer3.lisp (specializer-direct-generic-functions): Use
33012	compute-direct-generic-functions.
33013	(add-direct-method, remove-direct-method): Undo last change.
33014	* clos-method1.lisp (method-generic-function): Remove function.
33015	* clos-method3.lisp (method-generic-function): Undo last change.
33016
330172004-07-12  Bruno Haible  <bruno@clisp.org>
33018
33019	Implement specializer-direct-generic-functions.
33020	* clos-specializer1.lisp (add-direct-generic-function-internal):
33021	Rename from add-direct-generic-function.
33022	(remove-direct-generic-function-internal): Rename from
33023	remove-direct-generic-function.
33024	(forget-direct-generic-functions, add-direct-generic-function)
33025	(compute-direct-generic-functions)
33026	(update-list-direct-generic-functions): New functions.
33027	(specializer-direct-generic-functions): Use
33028	update-list-direct-generic-functions.
33029	(add-direct-method-generic-function): New function.
33030	(add-direct-method, remove-direct-method): Also update the
33031	direct-generic-functions set.
33032	* clos-specializer3.lisp (specializer-direct-generic-functions): Use
33033	update-list-direct-generic-functions.
33034	(add-direct-method, remove-direct-method): Also update the
33035	direct-generic-functions set.
33036	* clos-method1.lisp (method-generic-function): New function.
33037	* clos-method3.lisp (method-generic-function): Use
33038	allow-making-generic.
33039
330402004-07-11  Bruno Haible  <bruno@clisp.org>
33041
33042	* init.lisp: Export add-direct-method, remove-direct-method.
33043	* clos-package.lisp: Likewise.
33044	* clos-specializer1.lisp (add-direct-method-internal): Rename from
33045	add-direct-method.
33046	(remove-direct-method-internal): Rename from remove-direct-method.
33047	(add-direct-method, remove-direct-method): New functions.
33048	* clos-specializer3.lisp (add-direct-method, remove-direct-method):
33049	New generic functions.
33050	* clos-method1.lisp (method): Inherit from standard-stablehash.
33051	(initialize-instance-<standard-method>): Invoke
33052	shared-initialize-<standard-stablehash>.
33053	* clos-genfun2.lisp (std-add-method): Use remove-method, as specified
33054	by the MOP. Call add-direct-method for each specializer.
33055	(std-remove-method): Call remove-direct-method for each specializer.
33056
330572004-09-06  Jörg Höhle  <hoehle@users.sourceforge.net>
33058
33059	* win32.d, win32aux.d (abort) [WIN32_NATIVE]: use nonreturning
33060	function declaration. BTW, win32aux.d redefines abort()
33061
330622004-09-06  Jörg Höhle  <hoehle@users.sourceforge.net>
33063
33064	* foreign.d (find_name) [WIN32_NATIVE]: ensure end_system_call()
33065	takes place in all execution paths.
33066
330672004-08-31  Bruno Haible  <bruno@clisp.org>
33068
33069	* spvw.d (parse_options): Do not do destructive side effects on argv[].
33070	(main_actions): Update.
33071
330722004-08-31  Bruno Haible <bruno@clisp.org>
33073
33074	* spvw.d (struct argv_actions): Remove argv_selection_array, add
33075	argv_init_files and argv_exprs.
33076	(parse_options, free_argv_actions): Update.
33077	(main_actions): New function, extracted from main().
33078	(main): Call main_actions.
33079
330802004-08-31  Bruno Haible  <bruno@clisp.org>
33081
33082	* spvw.d (init_memory): New function, extracted from main().
33083	(main): Call init_memory.
33084
330852004-08-31  Bruno Haible  <bruno@clisp.org>
33086
33087	* spvw_sigsegv.d (install_stackoverflow_handler): Define as a no-op
33088	when NOCOST_SP_CHECK is not defined.
33089	* spvw.d (main): Call install_stackoverflow_handler a little later.
33090
330912004-08-31  Bruno Haible  <bruno@clisp.org>
33092
33093	Assume the OS manages the C stack sufficiently well.
33094	* lispbibl.d (NO_SP_MALLOC): Remove macro.
33095	* spvw.d (usage): Remove documentation of option -s.
33096	(struct argv_initparams): Remove argv_stackneed.
33097	(parse_options): Drop support for option -s.
33098	(main): Do not reserve space for SP. Do not call setSP.
33099
331002004-08-31  Bruno Haible  <bruno@clisp.org>
33101
33102	Remove support for MiNT.
33103	* lispbibl.d (UNIX_MINT): Remove macro.
33104	* pathname.d (realpath): Remove MiNT support.
33105	* stream.d (clear_tty_input): Assume FREAD is defined when TIOCFLUSH is
33106	defined.
33107	(clear_tty_output): Assume FWRITE is defined when TIOCFLUSH is defined.
33108
331092004-08-30  Bruno Haible  <bruno@clisp.org>
33110
33111	* spvw.d (program_name): Change type to 'const char *'.
33112	(usage): Remove quit_sofort() call at the end.
33113	(init_lowest_level, fini_lowest_level): New functions.
33114	(struct argv_init_c): New type.
33115	(struct argv_initparams): New type.
33116	(struct argv_actions): New type.
33117	(argv_verbose, argv_wait_keypress, argv_license): Remove variables.
33118	(parse_options): New function, extracted from main(). Signal an error
33119	when an invalid option beginning with "-r" is seen.
33120	(free_argv_initparams, free_argv_actions): New functions.
33121	(argv1, argv2): New variables.
33122	(main): Use parse_options.
33123
331242004-07-11  Bruno Haible  <bruno@clisp.org>
33125
33126	* clos.lisp: Set *allow-making-generic* to t while bootstrapping.
33127	* clos-slotdef3.lisp: No need to use fmakunbound here.
33128	* clos-specializer3.lisp: Likewise.
33129	* clos-class6.lisp: No need to bind *allow-making-generic* or use
33130	fmakunbound here.
33131	* clos-methcomb4.lisp: No need to bind *allow-making-generic* here.
33132	* clos-genfun5.lisp: Likewise.
33133	* clos-print.lisp: No need to use fmakunbound here.
33134
331352004-07-11  Bruno Haible  <bruno@clisp.org>
33136
33137	* clos-genfun2.lisp (|#'allocate-instance|, |#'initialize-instance|)
33138	(|#'reinitialize-instance|, |#'update-instance-for-redefined-class|)
33139	(|#'update-instance-for-different-class|, |#'shared-initialize|)
33140	(*gf-warn-on-replacing-method*): New variables, moved here from
33141	clos-genfun3.lisp.
33142	(methods-agree-p, gf-lambdalist-from-first-method, std-add-method)
33143	(std-remove-method, std-find-method): New functions, moved here
33144	from clos-genfun3.lisp.
33145	(initialize-instance-<standard-generic-function>): Remove function.
33146	(initialize-instance-<generic-function>): New function, extracted from
33147	ensure-generic-function-using-class-<t>.
33148	(reinitialize-instance-<generic-function>): New function, extracted
33149	from ensure-generic-function-using-class-<t>.
33150	(make-instance-<standard-generic-function>): Update.
33151	* clos-genfun3.lisp (|#'allocate-instance|, |#'initialize-instance|)
33152	(|#'reinitialize-instance|, |#'update-instance-for-redefined-class|)
33153	(|#'update-instance-for-different-class|, |#'shared-initialize|)
33154	(*gf-warn-on-replacing-method*): Move to clos-genfun2.lisp.
33155	(methods-agree-p, gf-lambdalist-from-first-method, std-add-method)
33156	(std-remove-method, std-find-method): Move to clos-genfun2.lisp.
33157	(ensure-generic-function-using-class-<t>): For redefinition, use
33158	reinitialize-instance. For first definition, rely on
33159	initialize-instance to install the initial methods.
33160	* clos-genfun4.lisp (initialize-instance@generic-function)
33161	(reinitialize-instance@generic-function): New methods.
33162	* clos-genfun5.lisp (initialize-instance-<standard-generic-function>):
33163	Remove function.
33164
331652004-09-03  Sam Steingold  <sds@gnu.org>
33166
33167	restored support for older versions of woe32
33168	* foreign.d (find_name): find EnumProcessModules dynamically
33169	(fEnumProcessModules): new global static
33170	* makemake.in (LIBS) [win32]: do NOT link against psapi
33171	Reported by Jörg Höhle.
33172
331732004-09-02  Bruno Haible  <bruno@clisp.org>
33174
33175	* lispbibl.d (StablehashStructure): Rename field structure_types
33176	to _structure_types.
33177	Reported by Jörg Höhle.
33178
331792004-09-03  Jörg Höhle  <hoehle@users.sourceforge.net>
33180
33181	* lispbibl.d (if_classp): varbrace does not work inside macros,
33182	so must surround { var declarations with braces } by hand.
33183
331842004-09-02  Sam Steingold  <sds@gnu.org>
33185
33186	new module for interface to ZLIB http://www.zlib.org
33187	* modules/zlib: new directory
33188
331892004-07-10  Bruno Haible  <bruno@clisp.org>
33190
33191	* clos-methcomb2.lisp (method-combination-with-options): New function.
33192	(find-method-combination-<generic-function>-<symbol>): Use it.
33193	(coerce-to-method-combination): Remove function.
33194	* clos-genfun3.lisp (make-generic-function): Accept a
33195	method-combination object instead of a method-combination designator.
33196	(analyze-defgeneric): Return a lambda expression for producing the
33197	method-combination, instead of the method-combination designator.
33198	Improve checking of :method-combination option.
33199	(defgeneric, make-generic-function-form): Emit code to convert the
33200	method-combination designator to a method-combination object.
33201	* clos-methcomb4.lisp (find-method-combination): Define using
33202	allow-making-generic.
33203
332042004-09-01  Sam Steingold  <sds@gnu.org>
33205
33206	* foreign1.lisp (DEF-CALL-OUT, DEF-C-VAR):
33207	evaluate the :LIBRARY argument
33208
332092004-09-01  Sam Steingold  <sds@gnu.org>
33210
33211	* init.lisp (search-file): pathname.d:simplify_directory()
33212	replaces ".." in pathname-directory with :up, so we need to check
33213	for :up instead of ".."
33214	Reported by Jörg Höhle  <hoehle@users.sourceforge.net>
33215
332162004-09-01  Sam Steingold  <sds@gnu.org>
33217
33218	* foreign.d (find_name) [WIN32_NATIVE]: check the return values of
33219	both EnumProcessModules() calls
33220
332212004-07-10  Bruno Haible  <bruno@clisp.org>
33222
33223	* clos-genfun2.lisp (make-fast-gf): Remove function.
33224	* clos-genfun3.lisp (make-generic-function, do-defmethod): Use
33225	make-generic-function-instance instead of make-fast-gf.
33226
332272004-07-10  Bruno Haible  <bruno@clisp.org>
33228
33229	* clos-genfun2.lisp (%make-gf): Remove function.
33230	(make-fast-gf): Inline its previous definition.
33231
332322004-07-10  Bruno Haible  <bruno@clisp.org>
33233
33234	* clos-genfun3.lisp (do-defgeneric): Remove function.
33235	(defgeneric): Expand into a call to ensure-generic-function instead of
33236	do-defgeneric.
33237	* clos-genfun5.lisp (ensure-generic-function-using-class): Define using
33238	allow-making-generic.
33239
332402004-09-02  Jörg Höhle  <hoehle@users.sourceforge.net>
33241
33242	* foreign1.lisp (parse-c-type, with-c-var, with-foreign-object):
33243	Perform both optimizations in parse-c-type, so that all forms,
33244	e.g. cast and offset, benefit.
33245
332462004-09-01  Jörg Höhle  <hoehle@users.sourceforge.net>
33247
33248	* foreign1.lisp (parse-c-type): add define-compiler-macro
33249	to inline primitive types.
33250	* foreign1.lisp (with-c-var, with-foreign-object): optimize
33251	c-type `(c-array[-max] type ,foo) (typical variable-length array)
33252
332532004-08-31  Sam Steingold  <sds@gnu.org>
33254
33255	* describe.lisp (describe-object@integer): do not use TYPE-OF to
33256	print representation (fixnum vs bignum) because TYPE-OF returns a
33257	range like (INTEGER 0 16777215)
33258
332592004-08-31  Sam Steingold  <sds@gnu.org>
33260
33261	support (:library :default) on win32
33262	* foreign.d [WIN32_NATIVE]: include <psapi.h>
33263	(open_library) [WIN32_NATIVE]: accept :DEFAULT
33264	(find_name) [WIN32_NATIVE]: when handle is NULL, use
33265	EnumProcessModules() to search all loaded libraries
33266	* makemake.in (LIBS) [win32]: link against psapi
33267	(makevars): depend on Makefile
33268
332692004-06-24  Bruno Haible  <bruno@clisp.org>
33270
33271	* init.lisp: Export ensure-generic-function-using-class.
33272	* clos-package.lisp: Likewise.
33273	* clos-genfun2.lisp (check-signature-congruence)
33274	(check-method-qualifiers, invalid-method-qualifiers-error): New
33275	functions, moved here from clos-genfun3.lisp.
33276	(shared-initialize-<standard-generic-function>): During redefinition,
33277	check the new signature and the new method-combination against the
33278	existing methods. At the end, call finalize-fast-gf.
33279	(make-fast-gf): Do not call finalize-fast-gf here.
33280	* clos-genfun3.lisp (check-signature-congruence)
33281	(check-method-qualifiers, invalid-method-qualifiers-error): Moved to
33282	clos-genfun2.lisp.
33283	(ensure-generic-function-using-class-<t>): New function.
33284	(ensure-generic-function-using-class): New function.
33285	(ensure-generic-function): Completely rewritten.
33286	* clos-genfun5.lisp (ensure-generic-function-using-class): New generic
33287	function.
33288
332892004-08-30  Stefan Kain  <stefan.kain@freenet.de>
33290
33291	* debug.d: translate all comments
33292
332932004-08-30  Sam Steingold  <sds@gnu.org>
33294
33295	* modules/bindings/amigaos: remove
33296
332972004-08-30  Sam Steingold  <sds@gnu.org>
33298
33299	* modules/rawsock/configure.in: check for <winsock2.h> only when
33300	<sys/socket.h> is not found to avoid confusion on cygwin
33301	* modules/rawsock/test.tst [win32]: do not test socketpair()
33302
333032004-08-30  Sam Steingold  <sds@gnu.org>
33304
33305	* foreign.d (open_library): accept :DEFAULT and :NEXT when
33306	RTLD_DEFAULT and RTLD_NEXT are defined
33307	(FOREIGN-LIBRARY): do not check that the library name is a string:
33308	this is done in open_library() anyway
33309	(exit_ffi): do not try to close RTLD_DEFAULT and RTLD_NEXT
33310	* constsym.d (:NEXT): add
33311
333122004-08-30  Bruno Haible  <bruno@clisp.org>
33313
33314	* makemake.in: Tweak for portability: make it work with Solaris sed.
33315	Reported by Michael Livshin <clisp@cmm.kakpryg.net>.
33316
333172004-08-30  Sam Steingold  <sds@gnu.org>
33318
33319	* foreign.d (dlerror_string): fix a segfault: dlerror() may return NULL
33320
333212004-08-30  Sam Steingold  <sds@gnu.org>
33322
33323	check array dimensions at compile time
33324	* type.lisp (ensure-dim, ensure-rank): new macros
33325	(ARRAY, SIMPLE-ARRAY, VECTOR, SIMPLE-VECTOR, STRING, SIMPLE-STRING)
33326	(BASE-STRING, SIMPLE-BASE-STRING, BIT-VECTOR, SIMPLE-BIT-VECTOR):
33327	add CHECK-FORM using ENSURE-DIM and ENSURE-RANK
33328
333292004-08-24  Bruno Haible  <bruno@clisp.org>
33330
33331	* Makefile.devel (build-linux-x86-[1-10]): New targets.
33332	(multibuild-linux-x86): Depend on them.
33333	(multibuild-darwin-powerpc, build-darwin-powerpc-[1-10]): New targets.
33334
333352004-08-28  Bruno Haible  <bruno@clisp.org>
33336
33337	* stream.d (rd_by_aux_icx_buffered): Fill exactly the required number
33338	of bytes in the bitbuffer; do not clobber the header word of the next
33339	object in memory. Fixes a bug introduced on 2001-06-27. Also introduce
33340	a more efficient loop for the case that doesn't require shifting.
33341	Found by the ansi-tests on MacOS X.
33342
333432004-08-24  Bruno Haible  <bruno@clisp.org>
33344
33345	* stream.d (finish_tty_output, clear_tty_output) [UNIX_DARWIN]: Treat
33346	EOPNOTSUPP like EINVAL. Needed on Darwin 7.5.0 (MacOS X 10.3.5).
33347
333482004-08-27  Bruno Haible  <bruno@clisp.org>
33349
33350	* spvw.d (main): Change the SIZE_ARG macro such that too high values
33351	generate a warning, not an error.
33352
333532004-08-26  Bruno Haible  <bruno@clisp.org>
33354
33355	* lispbibl.d: Support TYPECODES_1 on Darwin/PowerPC.
33356
333572004-08-26  Bruno Haible  <bruno@clisp.org>
33358
33359	* init.lisp (format): Allow the control-string to be a function. Needed
33360	for bootstrapping halfcompiled.mem: when the .fas files are loaded, the
33361	compiler has already transformed control-strings to functions.
33362
333632004-08-26  Bruno Haible  <bruno@clisp.org>
33364
33365	Avoid a crash when using a hash-table as hash-table key in TYPECODES
33366	mode.
33367	* hashtabl.d (hashcode4_atom): Handle case_machine, case_subr,
33368	case_system.
33369	Found by the sacla-tests on MacOS X.
33370
333712004-08-26  Bruno Haible  <bruno@clisp.org>
33372
33373	Avoid link error when compiling without optimization.
33374	* makemake.in (clisp.h): Define COMPILE_STANDALONE also when using
33375	<clisp.h>.
33376	* genclisph.d (main): Wrap check_list and posfixnum_default2 in #ifndef
33377	COMPILE_STANDALONE.
33378
333792004-08-25  Bruno Haible  <bruno@clisp.org>
33380
33381	* clos-class6.lisp (initialize-instance@class): Avoid compiler warning.
33382	* clos-methcomb2.lisp (make-method): Avoid compiler warning.
33383
333842004-08-26  Bruno Haible  <bruno@clisp.org>
33385
33386	Make instance_of_stablehash_p work during bootstrapping.
33387	* clos-class0.lisp (*dummy-class*): New variable.
33388	(make-class-version): Use it as default.
33389
333902004-08-24  Bruno Haible  <bruno@clisp.org>
33391
33392	Update ISO-8859-7 converter to version 2003.
33393	* nls_iso8859_7.c (charset2uni, page03, page20): Add new mappings for
33394	0xA4, 0xA5, 0xAA.
33395
333962004-06-24  Bruno Haible  <bruno@clisp.org>
33397
33398	* clos-genfun2.lisp (finalize-fast-gf, gf-never-called-p)
33399	(compute-dispatch, compute-applicable-methods-effective-method)
33400	(compute-applicable-methods-<standard-generic-function>)
33401	(compute-applicable-methods-using-classes-<standard-generic-function>):
33402	Handle the case that the generic-function's lambda-list is not yet
33403	initialized.
33404	* clos-genfun3.lisp (gf-lambdalist-from-first-method): New function.
33405	(std-add-method, std-find-method): Handle the case that the
33406	generic-function's lambda-list is not yet initialized.
33407	(do-defmethod): Use gf-lambdalist-from-first-method.
33408	* clos-genfun4.lisp (no-applicable-method, missing-required-method)
33409	(no-primary-method): Handle the case that the generic-function's
33410	lambda-list is not yet initialized.
33411	* clos-method2.lisp (analyze-method-description): Likewise.
33412	* describe.lisp (describe-object@generic-function): Likewise.
33413
334142004-06-20  Bruno Haible  <bruno@clisp.org>
33415
33416	* clos-genfun2.lisp (finalize-fast-gf, gf-never-called-p): Use a
33417	prototype-factory-table instead of just a prototype-table. Use
33418	set-funcallable-instance-function.
33419
334202004-08-27  Sam Steingold  <sds@gnu.org>
33421
33422	* makemake.in (full-check): pass "-E utf-8" to clisp;
33423	find tests.lisp in ${TESTSDIR}
33424
334252004-06-24  Bruno Haible  <bruno@clisp.org>
33426
33427	* clos-class3.lisp (defclass): Check that the :READER and :ACCESSOR
33428	argument is a really a non-nil symbol.
33429
334302004-06-23  Bruno Haible  <bruno@clisp.org>
33431
33432	* clos-genfun3.lisp: Add the contents of clos-genfun4.lisp.
33433	* clos-genfun4.lisp: Move into clos-genfun3.lisp.
33434	* clos-genfun4.lisp: Rename from clos-genfun5.lisp.
33435	* clos-genfun5.lisp: Rename from clos-genfun6.lisp.
33436	* clos.lisp: Update.
33437	* makemake.in (LPARTS): Remove clos-genfun6.
33438	* po/Makefile.devel (LISPSOURCES): Likewise.
33439
334402004-06-23  Bruno Haible  <bruno@clisp.org>
33441
33442	Simplify handling of generic-function docstring.
33443	* clos-genfun2.lisp (%make-gf): Add documentation argument.
33444	(make-fast-gf): Likewise.
33445	* clos-genfun3.lisp (do-defmethod): Update.
33446	(defgeneric): Pass documentation string to do-defgeneric, instead of
33447	calling SYSTEM::%SET-DOCUMENTATION.
33448	(ensure-generic): Update.
33449	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Accept
33450	documentation argument.
33451	(make-generic-function-form): Pass the docstring to
33452	make-generic-function.
33453
334542004-06-23  Bruno Haible  <bruno@clisp.org>
33455
33456	Implement the :declarations, :declare option.
33457	* clos-genfun2.lisp (check-gf-declspecs): New function.
33458	(shared-initialize-<standard-generic-function>): Accept option :declare
33459	as well.
33460	(initialize-instance-<standard-generic-function>): Likewise.
33461	(make-instance-<standard-generic-function>): Likewise.
33462	(%make-gf, make-fast-gf): Add declspecs argument.
33463	(compute-discriminating-function-<standard-generic-function>): Use the
33464	generic-function's declspecs for optimizing the dispatch code.
33465	* clos-genfun3.lisp (do-defmethod): Update.
33466	(analyze-defgeneric): Check the DECLARE option using check-gf-declspecs
33467	and return the declspecs as an additional value.
33468	(defgeneric): Pass the declspecs to do-defgeneric.
33469	(ensure-generic-function): Superficially fix completely broken code.
33470	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Accept
33471	additional declspecs argument.
33472	(make-generic-function-form): Update.
33473	* clos-genfun5.lisp (shared-initialize@standard-generic-function):
33474	Accept option :declare as well.
33475
334762004-08-25  Bruno Haible  <bruno@clisp.org>
33477
33478	* m4/libtool.m4: Upgrade to libtool-1.5.6.
33479
334802004-06-20  Bruno Haible  <bruno@clisp.org>
33481
33482	* spvw_garcol.d (gc_sweep1_varobject_page): Reallocate also
33483	funcallable-standard-object instances.
33484	* spvw_update.d (do_update_sxrecord): Clear the forward-pointers bits
33485	also of funcallable-standard-object instances.
33486
334872004-06-20  Bruno Haible  <bruno@clisp.org>
33488
33489	* init.lisp: Export compute-discriminating-function.
33490	* clos-package.lisp: Likewise.
33491	* clos-genfun2.lisp (compute-discriminating-function)
33492	(compute-discriminating-function-<standard-generic-function>): New
33493	functions.
33494	(install-dispatch): Call compute-discriminating-function.
33495	* clos-genfun5.lisp (compute-discriminating-function): New generic
33496	function.
33497	* clos-methcomb2.lisp (compute-effective-method-as-function-form): Make
33498	an exception for #'compute-discriminating-function.
33499
335002004-06-20  Bruno Haible  <bruno@clisp.org>
33501
33502	* clos-genfun2.lisp (install-dispatch): Use
33503	set-funcallable-instance-function.
33504
335052004-08-24  Bruno Haible  <bruno@clisp.org>
33506
33507	* utils/clispload.lsp (*expected-failures*): Many new failures to be
33508	revisited.
33509
335102004-08-24  Bruno Haible  <bruno@clisp.org>
33511
33512	* constobj.d (printstring_closure, printstring_compiled_closure): Use
33513	the term FUNCTION instead of CLOSURE.
33514
335152004-06-20  Bruno Haible  <bruno@clisp.org>
33516
33517	Implement the :generic-function-class option.
33518	* clos-genfun2.lisp (make-generic-function-instance): New function.
33519	(%make-gf, make-fast-gf): Accept a generic-function-class argument.
33520	* clos-genfun3.lisp (do-defmethod): Update.
33521	(analyze-defgeneric): Return also a generic-function-class-form value.
33522	(defgeneric): Pass the generic-function-class to do-defgeneric.
33523	(ensure-generic-function): Likewise.
33524	* clos-genfun4.lisp (make-generic-function): Accept a
33525	generic-function-class argument.
33526	(do-defgeneric): Likewise. Call change-class if the old generic
33527	function's class is different.
33528	(make-generic-function-form): Update.
33529	* clos-genfun6.lisp (make-generic-function-instance): Replace with
33530	make-instance.
33531
335322004-08-23  Sam Steingold  <sds@gnu.org>
33533
33534	* modules/pcre/cpcre.c (PCRE-EXEC): allocate ovector of proper size
33535
335362004-06-20  Bruno Haible  <bruno@clisp.org>
33537
33538	* record.d (CLOS:STANDARD-INSTANCE-ACCESS)
33539	((SETF CLOS:STANDARD-INSTANCE-ACCESS)): New functions.
33540	* init.lisp: Export standard-instance-access.
33541	* clos-package.lisp: Likewise.
33542	* places.lisp (clos:standard-instance-access): Define setf function.
33543	* clos-stablehash1.lisp (shared-initialize-<standard-stablehash>):
33544	Use standard-instance-access instead of sys::%record-ref.
33545	* clos-class3.lisp (install-class-direct-accessors): Likewise.
33546	* clos-slots1.lisp (funcallable-standard-instance-access): New
33547	function.
33548
335492004-06-20  Bruno Haible  <bruno@clisp.org>
33550
33551	* clos-method1.lisp (make-method-instance): New function.
33552	* clos-method4.lisp (make-method-instance): Replace with make-instance.
33553	* clos-methcomb2.lisp (effective-method-code-bricks): Use
33554	make-method-instance instead of make-instance-<standard-method>.
33555	* clos-genfun3.lisp (do-defmethod, analyze-defgeneric): Likewise.
33556
335572004-08-22  Bruno Haible  <bruno@clisp.org>
33558
33559	* constobj.d: Make O(terminal_encoding) also available if !UNICODE.
33560	* encoding.d (init_dependent_encodings): Initialize it.
33561	* stream.d (make_keyboard_stream, make_terminal_stream_)
33562	(SCREEN:MAKE-WINDOW): Install O(terminal_encoding) as the stream's
33563	encoding also if !UNICODE.
33564	Fixes a bug introduced on 2004-05-21.
33565	Reported by Michael Livshin <clisp@cmm.kakpryg.net>.
33566
335672004-08-22  Bruno Haible  <bruno@clisp.org>
33568
33569	* makemake.in: Change the handling of --with and --without options to
33570	be like in GNU autoconf. Put the default of each with_* flag in one
33571	place, not at each use of the variable.
33572	* clisp-link.in: Update.
33573
335742004-08-21  Bruno Haible  <bruno@clisp.org>
33575
33576	Add a slot to the SOURCE-PROGRAM-ERROR condition.
33577	* control.d (MACROLET, SYSTEM::FUNCTION-MACRO-LET): Pass one more
33578	argument to sys::make-macro-expander.
33579	* error.d (end_error): Pass :DETAIL instead of :FORM.
33580	* init.lisp: Export ext:source-program-error-detail.
33581	(%uncompilable): Pass both :FORM and :DETAIL when signaling a
33582	source-program-error.
33583	(%whole-form): Proclaim special.
33584	(%expand-form): Bind %whole-form. Pass both :FORM and :DETAIL when
33585	signaling a source-program-error.
33586	(%expand-list, %expand-lambda, %expand-lambdalist, %expand-varspez)
33587	(%expand-varspez*, %expand-fundefs-1, %expand-funmacdefs-1): Pass both
33588	:FORM and :DETAIL when signaling a source-program-error.
33589	(defun, do): Likewise.
33590	(defmacro): Pass whole form to sys::make-macro-expansion.
33591	* defmacro.lisp (macro-call-error): Pass both :FORM and :DETAIL when
33592	signaling a source-program-error.
33593	(%whole-form): Proclaim special.
33594	(analyze-aux, get-supplied-p, analyze-rest): Pass both :FORM and
33595	:DETAIL when signaling a source-program-error.
33596	(empty-pattern): Add 'wholevar' argument. Pass both :FORM and :DETAIL
33597	when signaling a source-program-error.
33598	(analyze1, remove-env-arg): Expect %whole-var to be bound. Pass both
33599	:FORM and :DETAIL when signaling a source-program-error.
33600	(make-macro-expansion): Add 'whole' argument. Pass both :FORM and
33601	:DETAIL when signaling a source-program-error.
33602	(make-macro-expander): Add 'whole' argument.
33603	* macros1.lisp (defmacro-special): Pass whole form to
33604	make-macro-expansion.
33605	(defvar, defparameter, defconstant): Pass both :FORM and :DETAIL when
33606	signaling a source-program-error.
33607	(do/do*-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
33608	signaling a source-program-error.
33609	(do, do*): Update.
33610	(psetq): Pass both :FORM and :DETAIL when signaling a
33611	source-program-error.
33612	(case-expand): Add 'whole' argument. Pass both :FORM and :DETAIL when
33613	signaling a source-program-error.
33614	(fcase, case): Update.
33615	(cond): Pass whole form to ifify.
33616	(ifify): Add 'whole' argument. Pass both :FORM and :DETAIL when
33617	signaling a source-program-error.
33618	* macros2.lisp (typecase): Pass both :FORM and :DETAIL when signaling
33619	a source-program-error.
33620	(deftype): Likewise. Bind %whole-form for analyze1.
33621	(define-symbol-macro): Pass both :FORM and :DETAIL when signaling a
33622	source-program-error.
33623	* defs1.lisp (with-package-iterator): Pass both :FORM and :DETAIL when
33624	signaling a source-program-error.
33625	* places.lisp (get-setf-expansion, get-setf-method): Pass both :FORM
33626	and :DETAIL when signaling a source-program-error.
33627	(check-accessor-name): Add 'whole' argument. Pass both :FORM and
33628	:DETAIL when signaling a source-program-error.
33629	(define-setf-expander): Pass whole form to check-accessor-name. Bind
33630	%whole-form, for remove-env-arg.
33631	(defsetf): Pass whole form to check-accessor-name. Pass both :FORM and
33632	:DETAIL when signaling a source-program-error.
33633	(psetf, define-modify-macro, setf, shiftf, apply, funcall, if): Pass
33634	both :FORM and :DETAIL when signaling a source-program-error.
33635	* defpackage.lisp (defpackage): Pass both :FORM and :DETAIL when
33636	signaling a source-program-error.
33637	* clos-class3.lisp (defclass): Likewise.
33638	(finalize-class): Signal a program-error, not a source-program-error.
33639	* defstruct.lisp (ds-make-boa-constructor): Add 'whole' argument. Pass
33640	both :FORM and :DETAIL when signaling a source-program-error.
33641	(defstruct): Pass both :FORM and :DETAIL when signaling a
33642	source-program-error.
33643	* cmacros.lisp (define-compiler-macro): Pass whole form to
33644	sys::make-macro-expansion.
33645	* compiler.lisp (c-FUNCTION-MACRO-LET): Pass whole form to
33646	make-macro-expander.
33647	(c-GENERIC-FLET, c-GENERIC-LABELS): Pass whole form to
33648	defgeneric-lambdalist-callinfo and make-generic-function-form.
33649	(c-MACROLET): Pass whole form to make-macro-expander.
33650	(compile-lambda-helper): Pass both :FORM and :DETAIL when signaling a
33651	source-program-error.
33652	* defs2.lisp (destructuring-bind): Bind %whole-var for analyze1.
33653	* loop.lisp (loop-syntax-error, expand-loop): Pass both :FORM and
33654	:DETAIL when signaling a source-program-error.
33655	* clos-slots1.lisp (with-slots, with-accessors): Pass both :FORM and
33656	:DETAIL when signaling a source-program-error.
33657	* clos-method1.lisp (initialize-instance-<standard-method>): Update.
33658	* clos-method2.lisp (program-error-reporter): Signal a program-error,
33659	not a source-program-error.
33660	(analyze-method-description): Add 'whole' argument. Pass both :FORM and
33661	:DETAIL when signaling a source-program-error.
33662	* clos-methcomb2.lisp (invalid-sort-order-error): Signal a
33663	program-error, not a source-program-error.
33664	(any-method-combination-check-options): Likewise.
33665	(check-em-arguments-option, check-em-generic-function-option): Add
33666	'whole' argument. Pass both :FORM and :DETAIL when signaling a
33667	source-program-error.
33668	(call-method, make-method, make-method-error,): Pass both :FORM and
33669	:DETAIL when signaling a source-program-error.
33670	(call-method-arg1-error, call-method-arg2-error)
33671	(call-method-arg2elements-error): Likewise.
33672	(build-effective-method-function-form): Update for changed errfunc
33673	signature.
33674	(compute-effective-method-as-function-form): Update.
33675	(standard-method-combination-check-options): Signal a program-error,
33676	not a source-program-error.
33677	(standard-method-combination-check-method-qualifiers): Likewise.
33678	(short-form-method-combination-check-method-qualifiers): Likewise.
33679	(parse-method-groups): Add 'whole' argument. Pass both :FORM and
33680	:DETAIL when signaling a source-program-error.
33681	(define-method-combination): Pass both :FORM and :DETAIL when
33682	signaling a source-program-error.
33683	* clos-genfun3.lisp (invalid-method-qualifiers-error): Likewise.
33684	(defmethod, declaim-method): Pass the whole form to
33685	analyze-method-description.
33686	(analyze-defgeneric): Add 'whole' argument. Pass both :FORM and :DETAIL
33687	when signaling a source-program-error.
33688	(analyze-defgeneric-lambdalist): Likewise.
33689	(defgeneric-lambdalist-callinfo): Likewise.
33690	(defgeneric): Pass the whole form to analyze-defgeneric.
33691	(ensure-generic-function): Update.
33692	* clos-genfun4.lisp (make-generic-function-form): Add 'whole' argument.
33693	(analyze-generic-fundefs): Likewise. Pass both :FORM and :DETAIL when
33694	signaling a source-program-error.
33695	(generic-flet): Pass the whole form to analyze-generic-fundefs.
33696	(generic-labels): Likewise.
33697	* condition.lisp: Export ext:source-program-error-detail.
33698	(source-program-error): Slot $detail replaces $form. New slot $form.
33699	(expand-restart-case): Add 'whole' argument. Pass both :FORM and
33700	:DETAIL when signaling a source-program-error.
33701	(restart-case, with-restarts): Update.
33702	* foreign1.lisp (DEF-C-VAR): Pass both :FORM and :DETAIL when
33703	signaling a source-program-error.
33704	(element, deref, slot, cast, offset, c-var-object, c-var-address)
33705	(typeof): Likewise.
33706	* affi1.lisp (mlibcall): Pass both :FORM and :DETAIL when signaling a
33707	source-program-error.
33708	* macros3.lisp (LETF*): Pass whole form to expand-LETF*.
33709	(expand-LETF*): Add 'whole' argument. Pass both :FORM and :DETAIL when
33710	signaling a source-program-error.
33711	(LETF): Pass whole form to expand-LETF.
33712	(expand-LETF): Add 'whole' argument. Pass both :FORM and :DETAIL when
33713	signaling a source-program-error.
33714
337152004-08-21  Bruno Haible  <bruno@clisp.org>
33716
33717	* constsym.d (sys::check-symbol): Rename from sys::%check-symbol.
33718	(sys::check-function-name): Rename from sys::%check-function-name.
33719	* control.d: Likewise.
33720	* init.lisp (check-symbol, check-function-name): Remove macros.
33721	(defun): Use an explicit assignment instead of a macro with implicit
33722	side-effect.
33723	* defstruct.lisp (defstruct): Likewise.
33724	* compiler.lisp (compile): Likewise.
33725	* cmacros.lisp (compiler-macro-function, (setf compiler-macro-function)):
33726	Likewise.
33727	* trace.lisp (check-traceable): Likewise.
33728	* clos-genfun3.lisp (defmethod, declaim-method, analyze-defgeneric):
33729	Likewise.
33730	* documentation.lisp (documentation, (setf documentation)): Likewise.
33731	* foreign1.lisp (DEF-C-TYPE, DEF-C-VAR, DEF-CALL-OUT, DEF-LIB-CALL-OUT)
33732	(DEF-CALL-IN, def-c-enum): Likewise.
33733
337342004-08-21  Bruno Haible  <bruno@clisp.org>
33735
33736	* compiler.lisp (insert-combined-LAPs): Use assert instead of
33737	check-type.
33738
337392004-06-20  Bruno Haible  <bruno@clisp.org>
33740
33741	Implement the :method-class option.
33742	* clos-methcomb2.lisp (effective-method-code-bricks): Create
33743	auxiliary methods of the class given by the generic function.
33744	* clos-genfun2.lisp (%make-gf): Accept a method-class argument.
33745	(make-fast-gf): Likewise.
33746	* clos-genfun3.lisp (do-defmethod): Update.
33747	(analyze-defgeneric): As 4th value, return a form producing the
33748	method-class. Create methods of the class given by the :method-class
33749	option.
33750	(defgeneric): Pass the method-class to do-defgeneric.
33751	(ensure-generic-function): Likewise.
33752	* clos-genfun4.lisp (make-generic-function): Accept a method-class
33753	argument.
33754	(do-defgeneric): Likewise.
33755	(make-generic-function-form): Update.
33756
337572004-08-21  Bruno Haible  <bruno@clisp.org>
33758
33759	* m4/connect.m4 (CL_CONNECT): Bail out if the connect() declaration
33760	could not be found.
33761	* m4/ioctl.m4 (CL_IOCTL): Bail out if the ioctl() declaration could not
33762	be found. Undo last patch.
33763	* m4/select.m4 (CL_SELECT): Bail out if the select() declaration could
33764	not be found.
33765	* m4/tcpconn.m4 (CL_TCPCONN): Bail out if the inet_addr() or
33766	setsockopt() declaration could not be found.
33767
337682004-08-20  Sam Steingold  <sds@gnu.org>
33769
33770	* control.d (%CHECK-FUNCTION-NAME, %CHECK-SYMBOL): change the
33771	order of arguments to match that of CHECK-TYPE
33772	* init.lisp (CHECK-FUNCTION-NAME, CHECK-SYMBOL): ditto
33773	* clos-genfun3.lisp, cmacros.lisp, compiler.lisp, defstruct.lisp:
33774	* documentation.lisp, foreign1.lisp, trace.lisp: update callers
33775
337762004-08-20  Sam Steingold  <sds@gnu.org>
33777
33778	* configure.in: add "sysre" option to optionally disable
33779	the use of system-wide regexp library
33780
337812004-08-20  Sam Steingold  <sds@gnu.org>
33782
33783	ported RAWSOCK to win32
33784	* modules/rawsock/configure.in: check for <winsock2.h>,
33785	<ws2tcpip.h> and ws2_32
33786	* modules/rawsock/rawsock.c (rawsock_t): new typedef
33787	(socketpair, recvmsg, sendmsg, ifreq): not present on win32
33788
337892004-08-20  Sam Steingold  <sds@gnu.org>
33790
33791	* m4/ioctl.m4 (IOCTL_REQUEST_T): quote shell variable to avoid a
33792	bash warning
33793
337942004-08-20  Sam Steingold  <sds@gnu.org>
33795
33796	* control.d (make_variable_frame): clarified and unified messages
33797
337982004-08-19  Sam Steingold  <sds@gnu.org>
33799
33800	* init.lisp (source-program-error, source-program-error-form): export
33801	(%uncompilable, %expand-form, %expand-list, %expand-lambda)
33802	(%expand-lambdalist, %expand-varspez, %expand-varspez*)
33803	(%expand-fundefs-1, %expand-funmacdefs-1, defun, do):
33804	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33805	* affi.lisp (mlibcall): ditto
33806	* clos-class3.lisp (defclass, finalize-class): ditto
33807	* clos-genfun2.lisp (check-gf-lambdalist+argorder)
33808	(shared-initialize-<standard-generic-function>):
33809	errfunc accepts FORM as the first argument
33810	* clos-genfun3.lisp (invalid-method-qualifiers-error)
33811	(analyze-defgeneric, analyze-defgeneric-lambdalist):
33812	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
33813	errfunc accepts FORM as the first argument
33814	* clos-genfun4.lisp (analyze-generic-fundefs):
33815	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33816	* clos-methcomb2.lisp (invalid-sort-order-error)
33817	(any-method-combination-check-options, check-em-arguments-option)
33818	(check-em-generic-function-option, call-method, make-method)
33819	(make-method-error, call-method-arg1-error, call-method-arg2-error)
33820	(call-method-arg2elements-error, parse-method-groups)
33821	(standard-method-combination-check-options)
33822	(standard-method-combination-check-method-qualifiers)
33823	(short-form-method-combination-check-method-qualifiers)
33824	(define-method-combination):
33825	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
33826	errfunc accepts FORM as the first argument
33827	* clos-method1.lisp (initialize-instance-<standard-method>):
33828	errfunc accepts FORM as the first argument
33829	* clos-method2.lisp (decompose-specialized-lambda-list)
33830	(program-error-reporter, analyze-method-description):
33831	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
33832	errfunc accepts FORM as the first argument
33833	* clos-slots1.lisp (with-slots, with-accessors):
33834	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33835	* compiler.lisp (c-analyze-lambdalist):
33836	errfunc accepts FORM as the first argument
33837	(compile-lambda-helper): pass :FORM to ERROR-OF-TYPE
33838	SOURCE-PROGRAM-ERROR
33839	* condition.lisp (define-condition, handler-case, restart-bind)
33840	(expand-restart-case): pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33841	(source-program-error): add $FORM slot
33842	* constsym.d (:FORM): MAKE-CONDITION argument for SOURCE-PROGRAM-ERROR
33843	* control.d (FUNCTION, check_setq_body, check_varspec)
33844	(make_variable_frame, fehler_funspec, MACROLET, FUNCTION-MACRO-LET)
33845	(CASE, RETURN-FROM, TAGBODY, GO, DECLARE, %CHECK-SYMBOL):
33846	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33847	* defmacro.lisp (macro-call-error, analyze-aux, get-supplied-p)
33848	(analyze-rest, empty-pattern, analyze1, remove-env-arg)
33849	(make-macro-expansion): ditto
33850	* defpackage.lisp (defpackage): ditto
33851	* defs1.lisp (with-package-iterator): ditto
33852	* defstruct.lisp (ds-make-boa-constructor, defstruct):
33853	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
33854	errfunc accepts FORM as the first argument
33855	* error.d (end_error, check_symbol_non_constant_replacement)
33856	(check_symbol_special, check_funname_replacement):
33857	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33858	* eval.d (parse_dd, get_closure, eval1, fehler_eval_zuwenig)
33859	(fehler_eval_dotted, fehler_eval_zuviel): ditto
33860	* foreign1.lisp (DEF-C-VAR, flet/err): ditto
33861	* lambdalist.lisp (err-misplaced, err-invalid, analyze-lambdalist)
33862	(analyze-generic-function-lambdalist, analyze-defsetf-lambdalist)
33863	(analyze-modify-macro-lambdalist)
33864	(analyze-method-combination-lambdalist):
33865	errfunc accepts FORM as the first argument;
33866	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33867	* loop.lisp (loop-syntax-error, expand-loop):
33868	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR
33869	* macros1.lisp (defvar, defparameter, defconstant, do/do*-expand)
33870	(psetq, case-expand, ifify, cond): ditto
33871	* macros2.lisp (typecase, deftype, define-symbol-macro): ditto
33872	* macros3.lisp (expand-LETF*, expand-LETF): ditto
33873	* places.lisp (get-setf-expansion, get-setf-method, defsetf)
33874	(check-accessor-name, psetf, define-modify-macro, setf, shiftf)
33875	(apply, funcall, if):
33876	pass :FORM to ERROR-OF-TYPE SOURCE-PROGRAM-ERROR;
33877	errfunc accepts FORM as the first argument
33878
338792004-08-20  Bruno Haible  <bruno@clisp.org>
33880
33881	* error.d (check_funname_replacement): Improve error message.
33882
338832004-06-19  Bruno Haible  <bruno@clisp.org>
33884
33885	* clos-genfun1.lisp (standard-generic-function): New slot
33886	effective-method-cache.
33887	* clos-genfun2.lisp (shared-initialize-<standard-generic-function>):
33888	Initialize it.
33889	(compute-applicable-methods-effective-method): Cache the effective
33890	method in the effective-method-cache alist.
33891	* clos-genfun3.lisp (std-add-method, std-remove-method): Clear the
33892	effective-method-cache.
33893
338942004-08-19  Sam Steingold  <sds@gnu.org>
33895
33896	recoverable FUNCTION-NAME and SYMBOL source checks
33897	* constsym.d, subr.d (check_function_name, check_symbol): add
33898	* control.d (%CHECK-FUNCTION-NAME, %CHECK-SYMBOL): implement
33899	* init.lisp (check-symbol, check-function-name): new macros
33900	* clos-genfun3.lisp (defmethod, declaim-method, analyze-defgeneric):
33901	use CHECK-FUNCTION-NAME
33902	* compiler.lisp (compile): ditto
33903	* cmacros.lisp (compiler-macro-function)
33904	((setf compiler-macro-function)): CHECK-FUNCTION-NAME is now a macro
33905	* documentation.lisp (documentation): ditto
33906	* trace.lisp (check-traceable): ditto
33907	* functions.lisp (check-function-name): remove
33908
339092004-08-19  Sam Steingold  <sds@gnu.org>
33910
33911	* clos-class5.lisp (change-class): avoid a compilation warning
33912
339132004-08-19  Sam Steingold  <sds@gnu.org>
33914
33915	* clos-genfun3.lisp (analyze-defgeneric): fix a typo in error
33916	message: DEFSTRUCT -> DEFGENERIC
33917
339182004-08-19  Bruno Haible  <bruno@clisp.org>
33919
33920	* configure.in: Test for sys/inttypes.h, not sys/int_types.h.
33921	* stdint.h.in: Fix the reversed SKIP_LOCAL_DEFINITIONS logic.
33922	Rename SKIP_LOCAL_DEFINITIONS to HAVE_SYSTEM_INTTYPES. On Solaris,
33923	use <sys/inttypes.h>, not <sys/int_types.h>.
33924
339252004-08-19  Bruno Haible  <bruno@clisp.org>
33926
33927	* sequence.d (get_seq_type): Update the code for user-defined sequence
33928	types.
33929	Reported by Jörg Höhle.
33930
339312004-06-19  Bruno Haible  <bruno@clisp.org>
33932
33933	* init.lisp: Export compute-applicable-methods-using-classes.
33934	* clos-package.lisp: Likewise.
33935	* clos-methcomb2.lisp (sort-applicable-methods): Accept the classes of
33936	the required arguments, not the required arguments themselves.
33937	(compute-effective-method-as-function-form): Bootstrapping hack for
33938	compute-applicable-methods-using-classes.
33939	* clos-genfun2.lisp (compute-applicable-methods-using-classes)
33940	(compute-applicable-methods-using-classes-<standard-generic-function>):
33941	New functions.
33942	(check-method-only-standard-specializers): Add caller argument.
33943	(compute-applicable-methods-effective-method): Call
33944	compute-applicable-methods-using-classes before calling
33945	compute-applicable-methods.
33946	(compute-applicable-methods-<standard-generic-function>): Update.
33947	* clos-genfun5.lisp (compute-applicable-methods-using-classes): New
33948	generic function.
33949
339502004-08-18  Bruno Haible  <bruno@clisp.org>
33951
33952	* lispbibl.d (PC386): Define also on Cygwin.
33953
339542004-08-18  Sam Steingold  <sds@gnu.org>
33955
33956	* Makefile.devel (SSHUP): replaced gnudist and cons with podval
33957	(src/autoconf/aclocal.m4): use egrep instead of grep and filter
33958	out also _CANONICAL_ and AC_PREREQ; also pass full path to aclocal
33959	to create a stand-alone aclocal.m4 instead of the one full of
33960	include statements
33961
339622004-06-19  Bruno Haible  <bruno@clisp.org>
33963
33964	* init.lisp: Export compute-applicable-methods.
33965	* clos-package.lisp: Likewise.
33966	* clos-genfun2.lisp (compute-applicable-methods)
33967	(compute-applicable-methods-<standard-generic-function>)
33968	(check-method-only-standard-specializers): New functions.
33969	(compute-applicable-methods-effective-method): Use
33970	compute-applicable-methods.
33971	* clos-genfun5.lisp (compute-applicable-methods@standard-generic-function):
33972	Use compute-applicable-methods-<standard-generic-function>.
33973
339742004-08-18  Bruno Haible  <bruno@clisp.org>
33975
33976	Make it work with automake-1.9.
33977	* Makefile.devel (src/autoconf/aclocal.m4): Also filter out the
33978	AC_CONFIG_HEADER and AC_CONFIG_FILES lines.
33979	($(CONFIGURES)): Pass a second --include option to autoconf.
33980
339812004-08-16  Sam Steingold  <sds@gnu.org>
33982
33983	* eval.d (eval1): do not ignore the return value of check_fdefinition()
33984	Reported by Владимир Слепнев (Vladimir Slepnev) <slepnev_v@rambler.ru>
33985
339862004-08-16  Sam Steingold  <sds@gnu.org>
33987
33988	* install.lisp (*clisp-runtime*): always enclose pathname in quotes
33989	(*clisp-args*): fix slashes
33990	Reported by Владимир Слепнев (Vladimir Slepnev) <slepnev_v@rambler.ru>
33991
339922004-08-16  Sam Steingold  <sds@gnu.org>
33993
33994	* modules/postgresql/postgresql.lisp: update for PostgreSQL 7.4
33995
339962004-08-13  Sam Steingold  <sds@gnu.org>
33997
33998	* configure.in: check for <sys/int_types.h>
33999	* stdint.h.in [__sun]: include <sys/int_types.h> only when present
34000	Reported by Michael Livshin <clisp@cmm.kakpryg.net>
34001
340022004-08-12  Sam Steingold  <sds@gnu.org>
34003
34004	standard I/O streams are handle streams in batch mode
34005	* stream.d (init_standard_input, init_standard_output): accept
34006	second argument batch_p which ensures that the result is not a
34007	terminal stream and therefore can be made binary
34008	(init_streamvars): pass batch_p to init_standard_i/o
34009	* lispbibl.d (init_streamvars): update comments
34010
340112004-08-12  Sam Steingold  <sds@gnu.org>
34012
34013	* modules/bindings/glibc/Makefile, modules/bindings/win32/Makefile:
34014	* modules/fastcgi/Makefile.in, modules/matlab/Makefile:
34015	* modules/netica/Makefile, modules/oracle/Makefile.in:
34016	* modules/postgresql/Makefile.in: init CLISP and other make variables
34017	Reported by Steve Eichblatt <steve@eichblatt.us>
34018
340192004-08-11  Sam Steingold  <sds@gnu.org>
34020
34021	* reploop.lisp (make-xterm-io-stream): use :DIRECTION :IO
34022	instead of a TWO-WAY-STREAM
34023
340242004-08-11  Sam Steingold  <sds@gnu.org>
34025
34026	finished the *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* patch
34027	* init.lisp (specialized-lambda-list-to-ordinary): new function
34028	(*defun-accept-specialized-lambda-list*): enable just before the end
34029	(defun): use it when *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* is non-NIL
34030	* compiler.lisp (c-LAMBDABODY, c-LABELS, c-FUNCALL-INLINE): ditto
34031	* eval.d (get_closure): ditto
34032	* constsym.d (spelalist_to_ordinary): add
34033	* clos-method2.lisp (program-error-reporter): new helper macro
34034	(extract-lambda-list, extract-specializer-names): use it
34035
340362004-08-11  Sam Steingold  <sds@gnu.org>
34037
34038	ANSI compliance <http://www.lisp.org/HyperSpec/Body/sec_19-2-3.html>:
34039	"for functions that manipulate or inquire about files in the file
34040	 system, the pathname argument to such a function is merged with
34041	 *DEFAULT-PATHNAME-DEFAULTS* before accessing the file system"
34042	* pathname.d (merge_defaults): new function
34043	(TRUENAME, PROBE-FILE, PROBE-DIRECTORY, DELETE-FILE, RENAME-FILE)
34044	(OPEN, DIRECTORY, CD, shorter_directory, ENSURE-DIRECTORIES-EXIST)
34045	(FILE-WRITE-DATE, FILE-AUTHOR): call it
34046
340472004-08-11  Sam Steingold  <sds@gnu.org>
34048
34049	* record.d (SET-FUNCALLABLE-INSTANCE-FUNCTION): fix G++ compilation
34050
340512004-08-11  Sam Steingold  <sds@gnu.org>
34052
34053	* makemake.in: fix and completely unified -with-* processing
34054	* configure (with-debug): pass "--verbose=yes" to makemake
34055
340562004-06-20  Bruno Haible  <bruno@clisp.org>
34057
34058	* init.lisp: Export extract-lambda-list, extract-specializer-names.
34059	* clos-package.lisp: Likewise.
34060	* clos-method2.lisp (lambda-list-keyword-p): Remove function.
34061	(decompose-specialized-lambda-list): New function.
34062	(extract-lambda-list, extract-specializer-names): New functions.
34063	(analyze-method-description): Return a list of initargs forms instead
34064	of a method-producing form. Use decompose-specialized-lambda-list.
34065	Pass on the documentation string instead of dropping it.
34066	* clos-genfun3.lisp (defmethod): Update.
34067	(do-defmethod): Accept either a method or a list of initargs. In the
34068	latter case, create the method here.
34069	(declaim-method): Update.
34070	(analyze-defgeneric): Update.
34071
340722004-08-11  Bruno Haible  <bruno@clisp.org>
34073
34074	* makemake.in (*.fas): Grant more memory: 800KW instead of 750KW.
34075
340762004-08-10  Sam Steingold  <sds@gnu.org>
34077
34078	* stream.d (MAKE-STREAM): use an intelligent DIRECTION default
34079
340802004-08-10  Sam Steingold  <sds@gnu.org>
34081
34082	* configure.in: avoid identical repeated messages
34083
340842004-08-09  Sam Steingold  <sds@gnu.org>
34085
34086	* pathname.d (fehler_delete_open, fehler_rename_open): fix messages
34087
340882004-08-09  Sam Steingold  <sds@gnu.org>
34089
34090	* constsym.d (*loop-ansi*): new variable
34091	* spvw.d (init_symbol_values): initialize *LOOP-ANSI* to NIL
34092	* misc.d (SYS::SET-ANSI): reset *LOOP-ANSI*
34093	* loop.lisp (expand-loop): given CLtL2 syntax remove by ANSI,
34094	either warn or signal an error, depending on *LOOP-ANSI*
34095
340962004-08-09  Sam Steingold  <sds@gnu.org>
34097
34098	* init.lisp (*suppress-check-redefinition*): initialize to T
34099
341002004-08-09  Sam Steingold  <sds@gnu.org>
34101
34102	* modules/clx/new-clx/clx.f (get_event_mask): use
34103	fehler_proper_list_dotted() instead of fehler_proper_list()
34104
341052004-08-07  Bruno Haible  <bruno@clisp.org>
34106
34107	* lispbibl.d (list_length): New declarations.
34108	(fehler_proper_list_dotted): Rename from fehler_proper_list.
34109	(fehler_proper_list_circular): New declaration.
34110	(list_to_mv): Update.
34111	* genclisph.d (main): Emit fehler_proper_list_dotted instead of
34112	fehler_proper_list.
34113	* error.d (fehler_proper_list_dotted): Rename from fehler_proper_list.
34114	(fehler_proper_list_circular): New function.
34115	* list.d (endp, LIST-LENGTH, memq): Update.
34116	(list_length): Export.
34117	(SYS::LIST-LLENGTH): Instead of llength1, use list_length. Signal an
34118	error when the argument is a circular list.
34119	* sequence.d (LENGTH): Likewise.
34120
341212004-08-07  Bruno Haible  <bruno@clisp.org>
34122
34123	* clos-genfun2.lisp (gf-keyword-arguments): Enable keyword checking
34124	also when the generic function mentions &key but no method mentions it.
34125
341262004-08-07  Bruno Haible  <bruno@clisp.org>
34127
34128	* debug.d (GC): Use UL_to_I for representing the result.
34129
341302004-08-08  Bruno Haible  <bruno@clisp.org>
34131
34132	* utils/clispload.lsp (*expected-failures*): Many new failures to be
34133	revisited.
34134
341352004-08-08  Bruno Haible  <bruno@clisp.org>
34136
34137	* spvw.d (init_symbol_values): Initialize
34138	*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* to NIL.
34139
341402004-08-07  Bruno Haible  <bruno@clisp.org>
34141
34142	* io.d (pr_array_recursion): Check *PRINT-LEVEL* before calling
34143	pr_array_recursion recursively.
34144
341452004-08-07  Bruno Haible  <bruno@clisp.org>
34146
34147	* io.d (read_delimited_list): If *read-suppress* is true, return NIL.
34148
341492004-08-08  Bruno Haible  <bruno@clisp.org>
34150
34151	* io.d (read_token_1, read_macro, read_internal, make_references)
34152	(read_delimited_list_recursive, rpar_reader, fehler_dispatch_zahl)
34153	(char_reader, radix_2, radix_reader, complex_reader, uninterned_reader)
34154	(vector_reader, array_reader, lookup_label, label_definition_reader)
34155	(label_reference_reader, interpret_feature, structure_reader)
34156	(fehler_closure_badchar, closure_reader, ansi_pathname_reader): Signal
34157	READER-ERROR instead of STREAM-ERROR in all cases.
34158
341592004-08-07  Bruno Haible  <bruno@clisp.org>
34160
34161	* io.d (read_macro, read_internal, fehler_dot, bit_vector_reader)
34162	(fehler_read_eval_forbidden, not_readable_reader, syntax_error_reader):
34163	Signal READER-ERROR instead of STREAM-ERROR in some cases.
34164
341652004-08-07  Bruno Haible  <bruno@clisp.org>
34166
34167	Fix crash of (COPY-READTABLE NIL some-readtable).
34168	* io.d (COPY-READTABLE): Store from_readtable in the STACK. Fixes bug
34169	introduced on 2003-06-08.
34170
341712004-08-07  Bruno Haible  <bruno@clisp.org>
34172
34173	For invalid condition designators, signal a TYPE-ERROR.
34174	* condition.lisp (try-coerce-to-condition): Rename from
34175	coerce-to-condition.
34176	(valid-condition-designator-p): New function.
34177	(coerce-to-condition): New function.
34178
341792004-08-07  Bruno Haible  <bruno@clisp.org>
34180
34181	* package.d (apply_symbols): Interpret an argument of nil as an empty
34182	list, not as a single symbol.
34183	* defpackage.lisp (shadowing-import-cerror, import-cerror): Handle
34184	the NIL symbol accordingly.
34185
341862004-08-07  Bruno Haible  <bruno@clisp.org>
34187
34188	* places.lisp (setf-VALUES-aux): Use only the first store variable
34189	for each subform. Bind the others to nil.
34190
341912004-08-07  Bruno Haible  <bruno@clisp.org>
34192
34193	* sacla-tests: New directory.
34194	* makemake.in (SACLATESTSDIR): New variable.
34195	(check-sacla-tests, ${SACLATESTSDIR}): New targets.
34196	(check): Depend on sacla-tests.
34197	(clean1): Remove also the sacla-tests files.
34198
341992004-08-06  Bruno Haible  <bruno@clisp.org>
34200
34201	* compiler.lisp (make-trampoline): Make it work with #+CLISP-DEBUG too.
34202
342032004-06-16  Bruno Haible  <bruno@clisp.org>
34204
34205	* init.lisp: Export the generic-function-* accessors.
34206	* clos-package.lisp: Likewise.
34207
342082004-06-16  Bruno Haible  <bruno@clisp.org>
34209
34210	* documentation.lisp (documentation): For generic functions, take
34211	the doc string from the generic function object, not its name.
34212	((setf documentation)): For generic functions, store the doc string
34213	in the generic function object, not in *documentation*.
34214
342152004-06-16  Bruno Haible  <bruno@clisp.org>
34216
34217	* clos-genfun5.lisp ((setf generic-function-name)): New function.
34218
342192004-07-29  Bruno Haible  <bruno@clisp.org>
34220
34221	* lispbibl.d (genericlambda_function_p): Rename from genericfunctionp.
34222	* record.d (check_genericlambda_function_replacement): Rename from
34223	check_generic_function_replacement.
34224	(check_genericlambda_function): Rename from check_generic_function.
34225	(SYS::%COPY-GENERIC-FUNCTION)
34226	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): Update.
34227	* predtype.d (GENERIC-FUNCTION-P): Remove function.
34228	* eval.d (FUNTAB): Remove generic-function-p.
34229	* savemem.lisp (%saveinitmem): Use typep instead of generic-function-p.
34230	* type.lisp (GENERIC-FUNCTION, STANDARD-GENERIC-FUNCTION): No longer
34231	atomic types.
34232	* clos-genfun2.lisp (compute-dispatch): Do not declare
34233	GENERIC-FUNCTION-P inline.
34234	* clos-method2.lisp (analyze-method-description): Use typep-class
34235	instead of generic-function-p.
34236	* clos-genfun3.lisp (do-defmethod): Likewise.
34237	* clos-genfun4.lisp (do-defgeneric): Likewise.
34238
342392004-06-16  Bruno Haible  <bruno@clisp.org>
34240
34241	* clos-genfun1.lisp (print-object-<funcallable-standard-object>): New
34242	function.
34243	(print-object): New preliminary function.
34244	* clos-print.lisp (print-object@funcallable-standard-object): New
34245	method.
34246
342472004-06-19  Bruno Haible  <bruno@clisp.org>
34248
34249	* record.d (SYS::CLOSURE-CODEVEC): Return the code vector itself,
34250	do not convert it to a list.
34251	* compiler.lisp (signature): Convert the code vector to a list here.
34252
342532004-08-05  Sam Steingold  <sds@gnu.org>
34254
34255	* modules/syscalls/configure.in: check
34256	for <sys/utsname.h> with CL_UTSNAME,
34257	for getrusage() with CL_RUSAGE, and
34258	for lstat() with CL_LSTAT
34259	this avoids compile warnings by defining the corresponding
34260	constants identically in syscalls/config.h and unixconf.h
34261
342622004-08-05  Sam Steingold  <sds@gnu.org>
34263
34264	* modules/berkeley-db/bdb.c: use DB.dbenv when practical
34265	(close_errfile, reset_errfile): functions, not macros
34266	(close_errpfx): new function
34267	(BDB:DBE-CLOSE, BDB:DB-CLOSE): call it
34268	(dbe_get_errfile, dbe_get_errpfx): new functions
34269	(BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS, BDB:DB-SET-OPTIONS)
34270	(BDB:DB-GET-OPTIONS): accept :ERRPFX
34271
342722004-06-13  Bruno Haible  <bruno@clisp.org>
34273
34274	Make GENERIC-FUNCTION a subclass of FUNCALLABLE-STANDARD-OBJECT.
34275	* spvw_debug.d (nobject_out1): Print FUNCALLABLE-STANDARD-OBJECTs
34276	specially, instead of the old GENERIC-FUNCTIONs.
34277	* io.d (pr_cclosure): Remove special case of old generic-functions.
34278	* predtype.d (COMPILED-FUNCTION-P): Exclude all
34279	FUNCALLABLE-STANDARD-OBJECTs instead of the old GENERIC-FUNCTIONs.
34280	(TYPE-OF, CLOS:CLASS-OF): Remove special case of old generic-functions.
34281	(enum_hs_standard_generic_function): Remove enumeration item.
34282	(heap_statistics_mapper): Remove special case of old generic-functions.
34283	* subtypep.lisp (STANDARD-OBJECT, type-category): Remove special casing
34284	of GENERIC-FUNCTION and STANDARD-GENERIC-FUNCTION.
34285	(canonicalize-type): Convert FUNCTION to a class.
34286	* clos-class3.lisp: Do not pass <standard-generic-function> to %defclos.
34287	(<generic-function>, <standard-generic-function>): Do not initialize as
34288	built-in classes.
34289	* clos-genfun1.lisp (generic-function): New class.
34290	(<generic-function>): New variable.
34291	(shared-initialize-<generic-function>): New function.
34292	(standard-generic-function): New class.
34293	(<standard-generic-function>): New variable.
34294	(std-gf-signature): Rename from gf-signature.
34295	(std-gf-argorder): Rename from gf-argorder.
34296	(std-gf-methods): Rename from gf-methods.
34297	(std-gf-method-combination): Rename from gf-method-combination.
34298	(std-gf-default-method-class, std-gf-lambda-list, std-gf-documentation)
34299	(std-gf-declspecs, std-gf-initialized): New accessors.
34300	* clos-methcomb2.lisp (call-method-duplicates-error)
34301	(effective-method-code-bricks, build-effective-method-function-form):
34302	Update.
34303	* clos-genfun2.lisp (countup): New function, moved here from
34304	clos-genfun3.lisp.
34305	(check-gf-lambdalist+argorder): New function, partially extracted from
34306	analyze-defgeneric.
34307	(shared-initialize-<standard-generic-function>): New function.
34308	(initialize-instance-<standard-generic-function>): New function.
34309	(make-instance-<standard-generic-function>): New function.
34310	(%make-gf): Use make-instance-<standard-generic-function>.
34311	(make-fast-gf): Take a lambda-list and argument-precedence-order as
34312	arguments.
34313	(finalize-fast-gf, gf-never-called-p, compute-dispatch)
34314	(compute-applicable-methods-effective-method): Update.
34315	* clos-method2.lisp (analyze-method-description): Update.
34316	* clos-genfun3.lisp (check-signature-congruence)
34317	(check-method-qualifiers, std-add-method, std-remove-method)
34318	(std-find-method): Update.
34319	(do-defmethod): Create a GF lambda-list, not just a GF signature,
34320	from the initial method.
34321	(countup): Moved to clos-genfun2.lisp.
34322	(analyze-defgeneric): Change the second return value from argorder to
34323	an argument-precendence-order list. Use check-gf-lambdalist+argorder.
34324	(defgeneric): Update. Pass the argument-precendence-order and also the
34325	lambda-list to do-defgeneric.
34326	(ensure-generic-function): Likewise.
34327	* clos-genfun4.lisp (make-generic-function): Take a lambda-list and
34328	argument-precedence-order as arguments.
34329	(do-defgeneric): Likewise. Use
34330	shared-initialize-<standard-generic-function> to change an existing
34331	generic function.
34332	(make-generic-function-form): Update. Pass a lambda-list and
34333	argument-precedence-order to make-generic-function.
34334	* clos-genfun5.lisp (shared-initialize@generic-function)
34335	(shared-initialize@standard-generic-function): New functions.
34336	(no-applicable-method, missing-required-method, no-primary-method)
34337	(no-next-method): Update.
34338	(check-generic-function-initialized): New function.
34339	(generic-function-name, generic-function-methods)
34340	(generic-function-method-class, generic-function-lambda-list)
34341	(generic-function-method-combination)
34342	(generic-function-argument-precedence-order)
34343	(generic-function-declarations): New generic functions.
34344	(compute-applicable-methods): Update.
34345	* clos-class5.lisp (valid-make-instance-keywords)
34346	(valid-reinitialize-instance-keywords)
34347	(valid-update-instance-for-redefined-class-keywords)
34348	(valid-update-instance-for-different-class-keywords): Update.
34349	* clos-genfun6.lisp: New file.
34350	* clos.lisp: Load it.
34351	* describe.lisp (describe-object@generic-function): Update.
34352	* makemake.in (LPARTS): Add clos-genfun6.
34353	* po/Makefile.devel (LISPSOURCES): Likewise.
34354
343552004-08-04  Sam Steingold  <sds@gnu.org>
34356
34357	* modules/berkeley-db/bdb.c: include <time.h> and/or <sys/time.h>
34358	(time_stamp): new function
34359	(CLOSE_ERRFILE): call time_stamp() before fclose()
34360	(my_fopen): call time_stamp() after fopen()
34361	(BDB:DB-CLOSE): do not close errfile when DB has a parent
34362	* modules/berkeley-db/test.tst (finish-file): always return NIL
34363	* modules/berkeley-db/configure.in: check for gettimeofday(),
34364	localtime() and strftime(); also check for <sys/time.h> and <time.h>
34365
343662004-08-04  Sam Steingold  <sds@gnu.org>
34367
34368	* modules/rawsock/rawsock.c (parse_buffer_arg): new function
34369	(RECV, SOCK-READ, SEND, SOCK-WRITE): use it to correct STACK handling
34370	* modules/rawsock/test.tst: new file
34371
343722004-08-04  Sam Steingold  <sds@gnu.org>
34373
34374	* utils/modprep.lisp (print-tables-1): fix <checker>_table_size
34375
343762004-08-04  Bruno Haible  <bruno@clisp.org>
34377
34378	* lispbibl.d (built_in_class_length): New macro.
34379	* predtype.d (typep_class, typep_classname): Handle the case of
34380	built-in-class correctly.
34381	Reported by Sam Steingold.
34382
343832004-06-12  Bruno Haible  <bruno@clisp.org>
34384
34385	Implement funcallable instances.
34386	* lispbibl.d (Class): New field funcallablep.
34387	(closure_flags): Rename from cclosure_flags.
34388	(Closure_flags): Rename from Cclosure_flags.
34389	(Cclosure_seclass): Shift by 4 bits.
34390	(Cclosure_set_seclass): Likewise. Do not replace the entire
34391	record_flags.
34392	(closflags_instance_B, closure_instancep, Closure_instancep): New
34393	macros.
34394	(Closure_name): Add a conditional for the case of funcallable
34395	instances.
34396	(TheInstance): Can be closure_type as well.
34397	(regular_instance_p): Rename from instancep.
34398	(instancep, funcallable_instance_p): New macros.
34399	(allocate_cclosure_copy): Update.
34400	* genclisph.d (main): Emit definitions for closure_flags,
34401	closure_instancep, Closure_instancep, TheClosure. Update TheInstance,
34402	instancep.
34403	* eval.d (get_closure): Update.
34404	(init_cclosures): Construct O(endless_loop_code).
34405	* io.d (pr_closure): Treat the case of funcallable instances.
34406	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat the case of funcallable
34407	instances.
34408	(heap_statistics_mapper): Likewise.
34409	* hashtabl.d (sxhash_atom): Likewise.
34410	* record.d (SYS::%MAKE-CLOSURE): Update.
34411	(CLOS:SET-FUNCALLABLE-INSTANCE-FUNCTION): New function.
34412	(CLOS::FUNCALLABLE-INSTANCE-P): New function.
34413	(CLOS::ALLOCATE-FUNCALLABLE-INSTANCE): New function.
34414	(do_allocate_instance, update_instance): Use
34415	ALLOCATE-FUNCALLABLE-INSTANCE if the instances have to be funcallable.
34416	* init.lisp: Export funcallable-standard-class,
34417	funcallable-standard-object, set-funcallable-instance-function.
34418	* clos-package.lisp: Likewise.
34419	* clos-class1.lisp (semi-standard-class): New class.
34420	(<semi-standard-class>, *<semi-standard-class>-defclass*): New
34421	variables.
34422	(standard-class): Inherit from semi-standard-class.
34423	(class-current-version, class-fixed-slot-locations, class-instantiated)
34424	(class-finalized-direct-subclasses-table, class-prototype): Generalize
34425	to work on semi-standard-class.
34426	(class-funcallablep): New accessor.
34427	(*<standard-class>-instance-size*): Update.
34428	(<funcallable-standard-class>)
34429	(*<funcallable-standard-class>-class-version*)
34430	(<funcallable-standard-object>): New variables.
34431	(semi-standard-class-p): New function.
34432	* clos-class2.lisp (<funcallable-standard-class>)
34433	(<funcallable-standard-object>): New variables.
34434	* clos-class3.lisp (ensure-class-using-class-<t>): Add a special case
34435	for <funcallable-standard-class>.
34436	(default-direct-superclasses): Special case for
34437	<funcallable-standard-class>.
34438	(validate-superclass): Add special support for
34439	<funcallable-standard-object>.
34440	(compute-effective-slot-definition-<class>): Use semi-standard-class-p
34441	instead of standard-class-p.
34442	(compute-slots-<slotted-class>-around): Likewise.
34443	(install-class-direct-accessors): Likewise.
34444	(shared-initialize-<semi-standard-class>): Rename from
34445	shared-initialize-<standard-class>.
34446	(shared-initialize-<standard-class>): New function.
34447	(finalize-instance-semi-standard-class): Rename from
34448	finalize-instance-standard-class. Use semi-standard-class-p instead of
34449	standard-class-p. Initialize the funcallablep slot. Initialize the
34450	instance-size differently for funcallable objects.
34451	(make-instances-obsolete-<semi-standard-class>): Rename from
34452	make-instances-obsolete-standard-class.
34453	(make-instances-obsolete-<semi-standard-class>-nonrecursive): Rename
34454	from make-instances-obsolete-standard-class-nonrecursive.
34455	(update-subclasses-for-redefined-class): Use semi-standard-class-p
34456	instead of standard-class-p.
34457	(update-subclasses-for-redefined-class-nonrecursive): Likewise.
34458	Initialize <semi-standard-class>.
34459	* clos-class4.lisp (shared-initialize@funcallable-standard-class):
34460	New method.
34461	* clos-class5.lisp (allocate-instance, make-instance): Generalize
34462	the fallback method to class semi-standard-class.
34463	(do-change-class): New function.
34464	(change-class): Add more methods.
34465	(make-instances-obsolete): Update.
34466	* clos-class6.lisp (initialize-instance-<funcallable-standard-class>)
34467	(make-instance-<funcallable-standard-class>): Replace.
34468	(class-funcallablep, (setf class-funcallablep)): New functions.
34469	(class-current-version, class-fixed-slot-locations, class-instantiated)
34470	(class-finalized-direct-subclasses-table, class-prototype): Generalize
34471	to class semi-standard-class.
34472	(finalize-inheritance, compute-slots): Likewise.
34473	(validate-superclass): Add special support for
34474	<funcallable-standard-object>.
34475	* compiler.lisp (make-trampoline): New function.
34476	* clos-genfun1.lisp (funcallable-standard-class): New class.
34477	(<funcallable-standard-class>)
34478	(*<funcallable-standard-class>-class-version*)
34479	(*<funcallable-standard-class>-instance-size*): New variables.
34480	(make-instance-<funcallable-standard-class>)
34481	(initialize-instance-<funcallable-standard-class>)
34482	(shared-initialize-<funcallable-standard-class>): New functions.
34483	(funcallable-standard-object): New class.
34484	(<funcallable-standard-object>): New variable.
34485	* clos-slotdef1.lisp (convert-direct-slots): Use semi-standard-class-p
34486	instead of standard-class-p.
34487	* clos-slotdef3.lisp (direct-slot-definition-class)
34488	(effective-slot-definition-class): Generalize to class
34489	semi-standard-class.
34490	* clos-print.lisp (print-object@class): Use semi-standard-class-p
34491	instead of standard-class-p.
34492
344932004-08-03  Sam Steingold  <sds@gnu.org>
34494
34495	* modules/berkeley-db/bdb.c (CLOSE_ERRFILE): new macro
34496	(RESET_ERRFILE): use it
34497	(BDB:DBE-CLOSE, BDB:DB-CLOSE): close errfile
34498
344992004-08-03  Sam Steingold  <sds@gnu.org>
34500
34501	* genclisph.d (number_immediatep): export
34502	(positivep): use it
34503
345042004-06-12  Bruno Haible  <bruno@clisp.org>
34505
34506	* lispbibl.d (Closure, Cclosure): Rename field clos_name to
34507	clos_name_or_class_version.
34508	(Closure_name): New macro.
34509	* spvw_circ.d (get_circ_mark, get_circ_unmark): Use it.
34510	* spvw_debug.d (nobject_out1): Likewise.
34511	* eval.d (trace_call, match_cclosure_key, eval_closure): Likewise.
34512	(interpret_bytecode_): Likewise.
34513	* io.d (pr_cclosure, pr_cclosure_lang): Likewise.
34514	* record.d (SYS::CLOSURE-NAME): Likewise.
34515	(SYS::%MAKE-CLOSURE, SYS::CONSTANT-INITFUNCTION-P)
34516	(CLOS::%SHARED-INITIALIZE, do_initialize_instance)
34517	(CLOS::%MAKE-INSTANCE): Likewise.
34518	* control.d (FUNCTION-SIDE-EFFECT): Likewise. Check that Cdr(fdef) is
34519	a cons before accessing its Car.
34520	* functions.lisp (function-lambda-expression, function-name): Use
34521	sys::closure-name.
34522	* clos-genfun2.lisp (need-gf-already-called-warning-p): Likewise.
34523	* disassem.lisp (disassemble): Likewise.
34524	* edit.lisp (ed, uncompile): Likewise.
34525
345262004-08-02  Sam Steingold  <sds@gnu.org>
34527
34528	* modules/berkeley-db/bdb.c (object_handle): rename to ...
34529	(bdb_handle): ... to avoid a non-existent conflict with foreign.d
34530
345312004-06-10  Bruno Haible  <bruno@clisp.org>
34532
34533	* clos.lisp: Load clos-methcomb3, clos-methcomb4.
34534	* clos-methcomb1.lisp (method-combination): Define using defclass,
34535	as subclass of metaobject.
34536	(<method-combination>): New variable.
34537	(initialize-instance-<method-combination>)
34538	(make-instance-<method-combination>, copy-method-combination): New
34539	functions.
34540	* clos-methcomb2.lisp: Use make-instance-<method-combination> instead
34541	of make-method-combination.
34542	* clos-methcomb3.lisp: New file.
34543	* clos-methcomb4.lisp: New file.
34544	* clos-genfun3.lisp (analyze-defgeneric): Use typep instead of
34545	method-combination-p.
34546	* clos-genfun5.lisp (find-method-combination): Moved to
34547	clos-methcomb4.lisp.
34548	* makemake.in (LPARTS): Add clos-methcomb3, clos-methcomb4.
34549	* po/Makefile.devel (LISPSOURCES): Likewise.
34550
345512004-07-31  Sam Steingold  <sds@gnu.org>
34552
34553	* modules/berkeley-db/bdb.c (BDB:LOG-FILE): use BUFSIZ instead of
34554	non-existent MAX_PATH
34555	(BDB:DB-PUT): do not discard db->put() return value
34556
345572004-07-30  Sam Steingold  <sds@gnu.org>
34558
34559	* modules/syscalls/calls.c (POSIX:SYSCONF, POSIX:CONFSTR)
34560	(POSIX:LIMITS): accept an optional `what' argument
34561	(POSIX:MEMORY-STATUS) [win32]: new function
34562	* modules/syscalls/posix.lisp (physical-memory): new function
34563	(sysconf, confstr, limits) [unix]: remove structures
34564	(memory-status) [win32]: new structure
34565	* modules/syscalls/configure.in: check for GlobalMemoryStatusEx()
34566	and setrlimit()
34567
345682004-07-30  Sam Steingold  <sds@gnu.org>
34569
34570	* utils/modprep.lisp (print-tables-1): print the definition
34571	of "struct c_lisp_pair" outside of WITH-CONDITIONAL
34572
345732004-06-10  Bruno Haible  <bruno@clisp.org>
34574
34575	* init.lisp: Export method, standard-method, method-function,
34576	method-generic-function, method-lambda-list, method-specializers,
34577	method-qualifiers, accessor-method-slot-definition.
34578	* clos-package.lisp: Likewise.
34579
345802004-06-10  Bruno Haible  <bruno@clisp.org>
34581
34582	* clos-method1.lisp (standard-method): Rename function slot to
34583	fast-function. Add function slot.
34584	(initialize-instance-<standard-method>): Accept either :function or
34585	fast-function argument. Rename :wants-next-method-p keyword to
34586	clos::wants-next-method-p.
34587	* clos-methcomb2.lisp (method-list-to-continuation)
34588	(std-method-function-or-substitute): New functions.
34589	(callable-method-form-p, call-method-arg2elements-error): New
34590	functions.
34591	(effective-method-code-bricks): Use callable-method-form-p. Generate
34592	different code for CALL-METHOD on methods with slow calling convention.
34593	(build-effective-method-function-form): Do not optimize CALL-METHOD
34594	on methods with slow calling convention.
34595	* clos-genfun3.lisp (std-add-method): Store the initfunction's
34596	result in the fast-function. Do not use the initfunction if there is
34597	a slow function.
34598	* clos-class3.lisp (install-class-direct-accessors): Update.
34599	* clos-class5.lisp (shared-initialize, reinitialize-instance)
34600	(initialize-instance, allocate-instance, make-instance): Update.
34601	* clos-method2.lisp (analyze-method-description): Update.
34602	* clos-method3.lisp (initialize-instance@standard-method): Update.
34603	(method-function): New generic function.
34604	* disassem.lisp (disassemble@standard-method): Show the fast-function
34605	if available.
34606
346072004-07-29  Sam Steingold  <sds@gnu.org>
34608
34609	* modules/syscalls/calls.c (POSIX::USAGE):
34610	return all 16 slots of struct rusage
34611	(POSIX::LIMITS): return 11 slots
34612	* modules/syscalls/posix.lisp (POSIX::USAGE): slots SHARED-MEMORY,
34613	DATA-MEMORY, and STACK-MEMORY replace slot INT-RSS
34614	(POSIX::LIMITS): fix slots to comply with SUS
34615
346162004-07-29  Bruno Haible  <bruno@clisp.org>
34617
34618	* clos-slotdef1.lisp (slot-definition, direct-slot-definition)
34619	(effective-slot-definition, structure-direct-slot-definition)
34620	(structure-effective-slot-definition): Prefix all slot names with $.
34621	* clos-stablehash1.lisp (standard-stablehash): Likewise.
34622	* clos-specializer1.lisp (specializer, eql-specializer): Likewise.
34623	* clos-class1.lisp (class, slotted-class, structure-class)
34624	(standard-class): Likewise.
34625	* clos-method1.lisp (standard-method): Likewise.
34626	* clos-slotdef2.lisp (structure-effective-slot-definition-initff)
34627	(structure-effective-slot-definition-readonly): Update.
34628	* clos-slotdef3.lisp (equal-direct-slot): Update.
34629	* clos-print.lisp (print-object@class): Update.
34630
346312004-06-05  Bruno Haible  <bruno@clisp.org>
34632
34633	* clos-method1.lisp (standard-method): Rename slot origin to
34634	from-defgeneric.
34635	(std-method-from-defgeneric): Rename from std-method-origin.
34636	(initialize-instance-<standard-method>): Accept keyword
34637	clos::from-defgeneric instead of :origin.
34638	* clos-method2.lisp (analyze-method-description): Update.
34639	* clos-genfun3.lisp (std-remove-method): Set the from-generic flag
34640	of the old method to nil.
34641	* clos-genfun4.lisp (do-defgeneric): Update.
34642
346432004-06-05  Bruno Haible  <bruno@clisp.org>
34644
34645	* clos-method1.lisp (std-method-generic-function): Rename from
34646	std-method-gf.
34647	(initialize-instance-<standard-method>): Accept keyword clos::gf
34648	instead of :gf.
34649	* clos-method3.lisp (method-generic-function): New function.
34650	* clos-genfun3.lisp (%call-next-method, std-add-method)
34651	(std-remove-method): Update.
34652	* clos-genfun4.lisp (do-defgeneric): Update.
34653	* clos-genfun5.lisp (%no-next-method): Update.
34654
346552004-06-05  Bruno Haible  <bruno@clisp.org>
34656
34657	* clos-method1.lisp (initialize-instance-<standard-accessor-method>):
34658	Check the slot-definition argument.
34659
346602004-06-05  Bruno Haible  <bruno@clisp.org>
34661
34662	* clos-method1.lisp (standard-method): Add documentation slot.
34663	(initialize-instance-<standard-method>): Accept :documentation
34664	argument.
34665	* documentation.lisp (documentation@<standard-method>@t): Access the
34666	doc string in the standard-method object, not in the hash table.
34667
346682004-06-05  Bruno Haible  <bruno@clisp.org>
34669
34670	* clos-method1.lisp (print-object-<standard-method>): Do not
34671	signal an error if the method is not yet initialized.
34672
346732004-07-28  Sam Steingold  <sds@gnu.org>
34674
34675	composite streams operate on their constituent streams, not themselves
34676	* stream.d (unread_char): recursively unread for composite streams
34677	(read_char): recursively clear unread_B for composite streams
34678	This fixes the REPL bug whereby "1 ," signals an error
34679	while "1," does not.
34680	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
34681
346822004-07-28  Bruno Haible  <bruno@clisp.org>
34683
34684	* clos-method1.lisp (standard-method): Rename slot 'function' to
34685	$function.
34686	(standard-accessor-method): Rename slot 'slot-definition' to
34687	$slot-definition.
34688
34689	* clos-slotdef1.lisp (slot-definition): Rename slot 'type' to $type.
34690	Reported by Christophe Rhodes.
34691
346922004-07-28  Bruno Haible  <bruno@clisp.org>
34693
34694	* clos-method2.lisp (analyze-method-description): Complete the test
34695	whether a lambda-list entry is invalid.
34696
346972004-06-04  Bruno Haible  <bruno@clisp.org>
34698
34699	Use specializers in methods.
34700	* clos-specializer1.lisp (eql-specializer-p, specializer-pretty): New
34701	functions.
34702	* clos-method1.lisp (standard-method): Rename slot
34703	parameter-specializers to specializers.
34704	(std-method-specializers): Rename from
34705	std-method-parameter-specializers.
34706	(initialize-instance-<standard-method>): Accept :specializers argument,
34707	instead of :parameter-specializers argument.
34708	(print-object-<standard-method>): Update.
34709	* clos-method2.lisp (analyze-method-description): Generate calls to
34710	INTERN-EQL-SPECIALIZER. Pass :specializers argument, instead of
34711	:parameter-specializers argument.
34712	* clos-method3.lisp (method-specializers): New function.
34713	* clos-class3.lisp (install-class-direct-accessors): Pass :specializers
34714	argument, instead of :parameter-specializers argument.
34715	* clos-class5.lisp (note-ai-change, note-ii-change, note-ri-change)
34716	(note-uirc-change, note-uidc-change, note-si-change): Update.
34717	(valid-make-instance-keywords)
34718	(valid-update-instance-for-redefined-class-keywords)
34719	(valid-update-instance-for-different-class-keywords): Update.
34720	(shared-initialize, reinitialize-instance, initialize-instance)
34721	(allocate-instance, make-instance): Pass :specializers argument,
34722	instead of :parameter-specializers argument.
34723	* clos-class6.lisp (class-name): Do not undefine temporarily.
34724	* clos-methcomb2.lisp (method-applicable-p, sort-applicable-methods):
34725	Update.
34726	(same-specializers-p): Just compare with EQ.
34727	* clos-genfun2.lisp (compute-dispatch): Update. Use eql-specializer-p,
34728	eql-specializer-object.
34729	* clos-genfun3.lisp (methods-agree-p): Update.
34730	(std-find-method): Update. Convert (EQL object) lists to specializers.
34731	* clos-genfun4.lisp (*allow-making-generic*): New variable.
34732	(do-defgeneric): Do not signal an error if *allow-making-generic* is
34733	true.
34734	* clos-genfun5.lisp (dispatching-arg-p): Update.
34735	(dispatching-arg-type): Update.
34736	* describe.lisp (describe-object@generic-function): Update. Show a
34737	name instead of a class only if the class has a proper name.
34738
347392004-07-27  Sam Steingold  <sds@gnu.org>
34740
34741	* control.d (FUNCTION-SIDE-EFFECT): fix G++ compilation
34742	* record.d (update_instance): avoid a G++ warning
34743
347442004-07-26  Sam Steingold  <sds@gnu.org>
34745
34746	interface to the LOG subsystem
34747	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS):
34748	handle log options
34749	(dbe_get_tmp_dir, dbe_get_tx_max, dbe_get_tx_timestamp): define
34750	with DEFINE_DBE_GETTER1
34751	(dbe_get_lg_bsize, dbe_get_lg_dir, dbe_get_lg_max)
34752	(dbe_get_lg_regionmax, check_lsn, make_lsn): new functions
34753	(BDB:DB-STAT, BDB:LOCK-STAT, BDB:TXN-STAT): guard free()
34754	with begin_system_call()/end_system_call()
34755	(BDB:LOG-ARCHIVE, BDB:LOG-FILE, BDB:LOG-FLUSH, BDB:LOG-PUT)
34756	(BDB:LOG-STAT, BDB:LOG-CURSOR, BDB:LOGC-CLOSE, BDB:LOGC-GET)
34757	(BDB:LOG-COMPARE): implement
34758	(BDB:TXN-STAT): use make_lsn() and uint32_to_I()
34759	* modules/berkeley-db/dbi.lisp: export LOG symbols
34760	(db-lock-stat): remove the prefixes from slot names
34761	(db-log-stat): new struct
34762	(close): add a method for LOGC
34763
347642004-07-27  Sam Steingold  <sds@gnu.org>
34765
34766	* clos-method2.lisp (analyze-method-description): signal an error
34767	when a lambda-list entry is invalid
34768
347692004-06-04  Bruno Haible  <bruno@clisp.org>
34770
34771	* clos-method1.lisp (standard-method): Add lambda-list slot.
34772	(initialize-instance-<standard-method>): Accept :lambda-list argument.
34773	Check it. Compute the signature from it.
34774	* clos-method2.lisp (analyze-method-description): Add a :LAMBDA-LIST
34775	initializer to the generated form.
34776	* clos-method3.lisp (method-lambda-list): New function.
34777	* clos-class3.lisp (install-class-direct-accessors): Provide
34778	:lambda-list arguments for all methods.
34779	* clos-class5.lisp (shared-initialize, reinitialize-instance)
34780	(initialize-instance, allocate-instance, make-instance): Likewise.
34781
347822004-06-03  Bruno Haible  <bruno@clisp.org>
34783
34784	* clos-method1.lisp (initialize-instance-<standard-method>): Check the
34785	qualifiers argument.
34786
347872004-07-26  Sam Steingold  <sds@gnu.org>
34788
34789	* modules/berkeley-db/bdb.c (BDB:DBE-SET-OPTIONS): finish the
34790	set_lk_conflicts() interface
34791	* genclisph.d (main): export array_atype()
34792	* array.d (array_atype): global, not local
34793	* genclisph.d (main): export array_rank() and get_array_dimensions()
34794
347952004-07-26  Bruno Haible  <bruno@clisp.org>
34796
34797	* lispbibl.d (array_rank, get_array_dimensions): New declarations.
34798	* array.d (array_rank, get_array_dimensions): New functions.
34799
348002004-06-02  Bruno Haible  <bruno@clisp.org>
34801
34802	Make METHOD objects CLOS STANDARD-OBJECT instances.
34803	* clos.lisp: Include clos-method4.
34804	* clos-method1.lisp (method): Define through defclass.
34805	(<method>): New variable.
34806	(standard-method): Define through defclass.
34807	(<standard-method>): New variable.
34808	(initialize-instance-<standard-method>): New function.
34809	(make-instance-<standard-method>): New function.
34810	(print-object-<standard-method>): Rename from print-std-method.
34811	(standard-accessor-method): Define through defclass.
34812	(<standard-accessor-method>): New variable.
34813	(initialize-instance-<standard-accessor-method>): New function.
34814	(standard-reader-method): Define through defclass.
34815	(<standard-reader-method>): New variable.
34816	(make-instance-<standard-reader-method>): New function.
34817	(standard-writer-method): Define through defclass.
34818	(<standard-writer-method>): New variable.
34819	(make-instance-<standard-writer-method>): New function.
34820	* clos-methcomb2.lisp (compute-effective-method-function): Use
34821	make-instance-<standard-method> instead of make-standard-method.
34822	* clos-method2.lisp (analyze-method-description): Likewise.
34823	* clos-method3.lisp (initialize-instance@standard-method): New method.
34824	(initialize-instance@standard-accessor-method): New method.
34825	(reinitialize-instance@method): New method.
34826	* clos-class5.lisp (shared-initialize, reinitialize-instance)
34827	(initialize-instance, allocate-instance, make-instance): Use
34828	make-instance-<standard-method> instead of make-standard-method.
34829	* clos-method4.lisp: New file.
34830	* clos-print.lisp (print-object): Update.
34831	* makemake.in (LPARTS): Add clos-method4.
34832	* po/Makefile.devel (LISPSOURCES): Add clos-method4.
34833	* utils/clispload.lsp (*expected-failures*): Remove TYPES.3,
34834	STANDARD-METHOD-CPL.
34835
348362004-07-23  Sam Steingold  <sds@gnu.org>
34837
34838	interface to the LOCK subsystem
34839	* modules/berkeley-db/bdb.c (OH_INVALID_IS_NULL): new object_handle_t
34840	(object_handle): handle it
34841	(BDB:DBE-SET-OPTIONS, BDB:DBE-GET-OPTIONS): handle lock options
34842	(fill_dbt): use return instead of pointers to return type
34843	(BDB:LOCK-DETECT, BDB:LOCK-GET, BDB:LOCK-ID, BDB:LOCK-ID-FREE)
34844	(BDB:LOCK-PUT, BDB:LOCK-CLOSE, BDB:LOCK-STAT): implement
34845	* modules/berkeley-db/dbi.lisp (dblock, db-lock-stat): new structs
34846	(close): define a method for dblock
34847
348482004-07-23  Sam Steingold  <sds@gnu.org>
34849
34850	* utils/modprep.lisp: DEFCHECKER can now handle constants that
34851	come from "enum" and therefore not available to CPP
34852
348532004-07-22  Sam Steingold  <sds@gnu.org>
34854
34855	* genclisph.d (main): export CLSTEXT
34856
348572004-06-05  Bruno Haible  <bruno@clisp.org>
34858
34859	* clos-class3.lisp: Define <slot-definition> and its subclasses and
34860	<eql-specializer> here.
34861	* clos-slotdef2.lisp: Move the class definition forms to
34862	clos-class3.lisp.
34863	* clos-specializer2.lisp: Likewise.
34864
348652004-06-05  Bruno Haible  <bruno@clisp.org>
34866
34867	All specializers must be types.
34868	* type.lisp (typep, subtype-integer): Treat EQL-specializers like
34869	EQL forms.
34870	* subtypep.lisp (canonicalize-type): Likewise.
34871	* compiler.lisp (c-TYPEP): Likewise.
34872
348732004-06-04  Bruno Haible  <bruno@clisp.org>
34874
34875	* defs1.lisp (memoized): New macro.
34876	* clos-class3.lisp (install-class-direct-accessors): Use it.
34877
348782004-06-01  Bruno Haible  <bruno@clisp.org>
34879
34880	* clos-class3.lisp (install-class-direct-accessors): For slots at
34881	fixed slot locations, generate more efficient accessors that use
34882	SYS::%RECORD-REF instead of SLOT-VALUE.
34883
348842004-07-22  Sam Steingold  <sds@gnu.org>
34885
34886	* stream.d (bitbuff_ixs_sub): fix bitbufferptr initialization
34887	Reported by Randolph Udodenko <udodenko@users.sourceforge.net>
34888
348892004-06-01  Bruno Haible  <bruno@clisp.org>
34890
34891	Thinner type checks.
34892	* clos-macros.lisp (accessor-typecheck): New macro.
34893	(error-accessor-typecheck): New function, moved here from
34894	clos-class3.lisp.
34895	* clos-class3.lisp (error-accessor-typecheck): Move function away.
34896	* clos-slotdef3.lisp: Use error-accessor-typecheck instead of assert.
34897	* clos-specializer3.lisp: Likewise.
34898	* clos-class6.lisp: Likewise.
34899
349002004-05-31  Bruno Haible  <bruno@clisp.org>
34901
34902	* init.lisp: Export standard-slot-definition.
34903	* clos-package.lisp: Likewise.
34904	* clos-slotdef1.lisp (*<standard-slot-definition>-defclass*): New
34905	variable.
34906	(standard-direct-slot-definition, standard-effective-slot-definition):
34907	Inherit from standard-slot-definition.
34908	* clos-slotdef2.lisp: Define class <standard-slot-definition>.
34909
349102004-07-21  Sam Steingold  <sds@gnu.org>
34911
34912	CLOSE recursively closes all dependents
34913	* modules/berkeley-db/bdb.c (wrap_finalize): call MKHANDLE
34914	* modules/berkeley-db/dbi.lisp (dbe, db, dbc, txn, logc, mpoolfile):
34915	inherit from BDB-HANDLE
34916	* genclisph.d (main): export copy_list()
34917
349182004-07-21  John Hinsdale <hin@alma.com>
34919
34920	* modules/oracle/oracle.lisp: Handle FLOAT type properly
34921
349222004-05-31  Bruno Haible  <bruno@clisp.org>
34923
34924	Implement (SETF CLASS-NAME) as the MOP says.
34925	* clos-class3.lisp (ensure-class-using-class-<t>): Do not pass :name
34926	initializer to reinitialize-instance.
34927	(reinitialize-instance-<class>): Accept :name argument. Do not call
34928	install-class-direct-accessors when not needed.
34929	* clos-class6.lisp ((setf class-name)): Call reinitialize-instance.
34930
349312004-05-31  Bruno Haible  <bruno@clisp.org>
34932
34933	Let class redefinition go through REINITIALIZE-INSTANCE.
34934	* clos-class3.lisp (ensure-class-using-class-<t>): Call
34935	reinitialize-instance.
34936	(reinitialize-instance-<class>): New function, extracted from
34937	ensure-class-using-class-<t>.
34938	* clos-class4.lisp (reinitialize-instance@class): New method.
34939
349402004-07-20  Sam Steingold  <sds@gnu.org>
34941
34942	* modules/rawsock/rawsock.c (configdev): fix STACK references
34943
349442004-05-31  Bruno Haible  <bruno@clisp.org>
34945
34946	Move install-class-direct-accessors call to initialize-instance.
34947	* clos-class3.lisp (ensure-class-using-class-<t>): Do not call
34948	install-class-direct-accessors after making a new class.
34949	(initialize-instance-<built-in-class>)
34950	(initialize-instance-<structure-class>)
34951	(initialize-instance-<standard-class>): Call
34952	install-class-direct-accessors here.
34953	* clos-class6.lisp (initialize-instance@class): New method.
34954
349552004-05-31  Bruno Haible  <bruno@clisp.org>
34956
34957	Make it possible to choose between methods and functions as accessors.
34958	* lispbibl.d (Class): Add generic_accessors field.
34959	* clos-class1.lisp (slotted-class): Add generic-accessors slot.
34960	(class-generic-accessors, (setf class-generic-accessors)): New
34961	functions.
34962	(shared-initialize-<slotted-class>): Initialize generic-accessors slot.
34963	* clos-class3.lisp (DEFCLASS): Accept :GENERIC-ACCESSORS option. If
34964	nil, generate function declarations instead of method declarations.
34965	(*compile-accessor-functions*): New variable.
34966	(install-class-direct-accessors): If generic-accessors is nil, create
34967	normal functions instead of methods.
34968	(error-accessor-typecheck): New function.
34969	(shared-initialize-<structure-class>): Accept :generic-accessors
34970	argument.
34971	(define-structure-class): Pass :generic-accessors nil.
34972	(shared-initialize-<standard-class>): Accept :generic-accessors
34973	argument.
34974	* clos-class4.lisp (shared-initialize@structure-class): Accept
34975	:generic-accessors argument.
34976	(shared-initialize@standard-class): Likewise.
34977	* clos-class6.lisp (class-generic-accessors)
34978	((setf class-generic-accessors)): New generic functions.
34979	* compiler.lisp: Set *compile-accessor-functions* to nil temporarily.
34980
349812004-05-31  Bruno Haible  <bruno@clisp.org>
34982
34983	* lispbibl.d (Class): Move the direct_accessors field.
34984	* clos-class1.lisp (slotted-class): Add direct-accessors slot.
34985	(standard-class): Remove direct-accessors slot.
34986	(class-direct-accessors): Now belongs to slotted-class.
34987	(shared-initialize-<slotted-class>): Initialize direct-accessors slot.
34988	* clos-class3.lisp (shared-initialize-<standard-class>): Do not
34989	initialize direct-accessors slot here.
34990	* clos-class6.lisp (class-direct-accessors): Now belongs to
34991	slotted-class.
34992
349932004-07-19  Sam Steingold  <sds@gnu.org>
34994
34995	* spvw_language.d (init_language): save the whales, free the mallocs!
34996
349972004-07-19  Sam Steingold  <sds@gnu.org>
34998
34999	* modules/berkeley-db/bdb.c (fill_dbt): do not allocate data on
35000	stack when DBT size is divisible by sizeof(uintD)
35001	(BDB:CURSOR-GET, BDB:CURSOR-PUT): pass DBC->dbp to record_length()
35002	(BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS): handle BT_MINKEY,
35003	H_FFACTOR, H_NELEM and Q_EXTENTSIZE
35004
350052004-05-30  Bruno Haible  <bruno@clisp.org>
35006
35007	* clos-class3.lisp (install-class-direct-accessors)
35008	(remove-accessor-methods, add-accessor-methods): New functions,
35009	extracted from ensure-class-using-class-<t>.
35010	(ensure-class-using-class-<t>): Use them.
35011
350122004-06-13  Bruno Haible  <bruno@clisp.org>
35013
35014	* lambdalist.lisp (analyze-generic-function-lambdalist): New function.
35015	* clos-genfun3.lisp (analyze-defgeneric-lambdalist): Use it.
35016
350172004-05-30  Bruno Haible  <bruno@clisp.org>
35018
35019	Use SHARED-INITIALIZE instead of INITIALIZE-INSTANCE for the class
35020	initialization behaviour.
35021	* clos-stablehash1.lisp (shared-initialize-<standard-stablehash>):
35022	Replaces initialize-instance-<standard-stablehash>.
35023	* clos-stablehash2.lisp (shared-initialize@standard-stablehash):
35024	Replaces initialize-instance@standard-stablehash.
35025	* clos-specializer1.lisp (shared-initialize-<specializer>): Replaces
35026	initialize-instance-<specializer>.
35027	(shared-initialize-<eql-specializer>): Replaces
35028	initialize-instance-<eql-specializer>.
35029	(initialize-instance-<eql-specializer>): New function.
35030	* clos-specializer2.lisp (shared-initialize@specializer): Replaces
35031	initialize-instance@specializer.
35032	(shared-initialize@eql-specializer): Replaces
35033	initialize-instance@eql-specializer.
35034	* clos-specializer3.lisp (initialize-instance-<eql-specializer>):
35035	Set to #'initialize-instance.
35036	* clos-class1.lisp (shared-initialize-<class>): Replaces
35037	initialize-instance-<class>.
35038	(shared-initialize-<slotted-class>): Replaces
35039	initialize-instance-<slotted-class>.
35040	* clos-class3.lisp (DEFCLASS): Always pass :DEFAULT-INITARGS,
35041	:DOCUMENTATION, :FIXED-SLOT-LOCATIONS arguments.
35042	(ensure-class-using-class-<t>): In the redefinition case, call
35043	shared-initialize instead of initialize-instance.
35044	(shared-initialize-<built-in-class>): Replaces
35045	initialize-instance-<built-in-class>.
35046	(initialize-instance-<built-in-class>): New function.
35047	(shared-initialize-<structure-class>): Replaces
35048	initialize-instance-<structure-class>.
35049	(initialize-instance-<structure-class>): New function.
35050	(shared-initialize-<standard-class>): Replaces
35051	initialize-instance-<standard-class>.
35052	(initialize-instance-<standard-class>): New function.
35053	* clos-class4.lisp (shared-initialize@class): Replaces
35054	initialize-instance@class.
35055	(shared-initialize@built-in-class): Replaces
35056	initialize-instance@built-in-class.
35057	(shared-initialize@structure-class): Replaces
35058	initialize-instance@structure-class.
35059	(shared-initialize@standard-class): Replaces
35060	initialize-instance@standard-class.
35061	* clos-class6.lisp (initialize-instance-<built-in-class>)
35062	(initialize-instance-<structure-class>)
35063	(initialize-instance-<standard-class>): Set to #'initialize-instance.
35064
350652004-07-18  Sam Steingold  <sds@gnu.org>
35066
35067	invalidate Fpointer instead of making it NULL on close
35068	* modules/berkeley-db/bdb.c(object_handle_t): rename OH_ADDRESS
35069	to OH_INVALIDATE
35070	(object_handle): invalidate Fpointer on OH_INVALIDATE;
35071	(BDB:DB-CLOSE, BDB:CURSOR-CLOSE, BDB:TXN-ABORT, BDB:TXN-COMMIT)
35072	(BDB:TXN-DISCARD): use OH_INVALIDATE instead of OH_ADDRESS
35073
350742004-06-10  Bruno Haible  <bruno@clisp.org>
35075
35076	* clos-methcomb2.lisp (build-effective-method-function-form): Add
35077	generic-function-variable argument.
35078	(compute-effective-method-as-function-form): Handle :GENERIC-FUNCTION
35079	effective-method option.
35080
350812004-05-30  Bruno Haible  <bruno@clisp.org>
35082
35083	Make class definition and redefinition customizable.
35084	* init.lisp: Export ensure-class, ensure-class-using-class.
35085	* clos-package.lisp: Likewise.
35086	* clos-class3.lisp (ensure-class-using-class-<t>): New function,
35087	extracted from ensure-class.
35088	(ensure-class-using-class): New function.
35089	(ensure-class): Just call ensure-class-using-class.
35090	* clos-class6.lisp (ensure-class-using-class): New generic function.
35091
350922004-05-30  Bruno Haible  <bruno@clisp.org>
35093
35094	* clos-class5.lisp (finalize-inheritance): Move to ...
35095	* clos-class6.lisp (finalize-inheritance): ... here. Add method for
35096	CLASS.
35097
350982004-07-16  Sam Steingold  <sds@gnu.org>
35099
35100	* modules/berkeley-db/bdb.c (BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS):
35101	accept :RE_SOURCE
35102
351032004-06-13  Bruno Haible  <bruno@clisp.org>
35104
35105	* lambdalist.lisp (analyze-method-combination-lambdalist): New function.
35106	* clos-methcomb2.lisp (check-em-arguments-option): Use it instead of
35107	analyze-lambdalist.
35108	(build-effective-method-function-form): Likewise.
35109
351102004-06-10  Bruno Haible  <bruno@clisp.org>
35111
35112	Add error checking for effective-method options.
35113	* clos-methcomb2.lisp (check-em-arguments-option)
35114	(check-em-generic-function-option): New functions, extracted from
35115	define-method-combination.
35116	(check-em-duplicates-option): New function.
35117	(compute-effective-method-as-function-form): Call
35118	check-em-arguments-option and check-em-duplicates-option.
35119	(define-method-combination): Use check-em-arguments-option and
35120	check-em-generic-function-option.
35121
351222004-05-30  Bruno Haible  <bruno@clisp.org>
35123
35124	* clos-print.lisp (print-object): Add methods for slot-definition and
35125	eql-specializer.
35126
351272004-05-29  Bruno Haible  <bruno@clisp.org>
35128
35129	Make the reader/writer method classes customizable.
35130	* init.lisp: Export standard-reader-method, standard-writer-method,
35131	reader-method-class, writer-method-class.
35132	* clos-package.lisp: Likewise.
35133	* clos-class2.lisp (<standard-reader-method>, <standard-writer-method>):
35134	New variables.
35135	* clos-class3.lisp (ensure-class): Call reader-method-class to
35136	determine the class of reader methods, and writer-method-class to
35137	determine the class of writer methods. Add :slot-definition to the
35138	accessor method's initargs.
35139	(reader-method-class, writer-method-class): New functions.
35140	* clos-method1.lisp: Initialize <standard-reader-method>,
35141	<standard-writer-method>.
35142	* clos-class6.lisp (reader-method-class, writer-method-class): New
35143	generic functions.
35144
351452004-07-15  Sam Steingold  <sds@gnu.org>
35146
35147	support binary i/o for fixed-record-length databases
35148	* modules/berkeley-db/bdb.c (fill_dbt): accept r_len argument for
35149	writing numbers to fixed record length databases
35150	(record_length): new function
35151	(BDB:DB-PUT): fix for :QUEUE and :RECNO databases
35152	(gb_size): remove
35153	(giga_byte): new DEFVAR
35154	(size_to_giga_bytes): new function
35155	(BDB:DB-SET-OPTIONS): accept :CACHE for compatibility with
35156	BDB:DB-GET-OPTIONS and :RE_DELIM + :RE_PAD
35157	(DEFINE_DB_GETTER): rename to DEFINE_DB_GETTER1
35158	(DEFINE_DB_GETTER2): new macro
35159	(get_re_delim, get_re_len, get_re_pad): define with it
35160	(BDB:DB-GET-OPTIONS): accept :RE_DELIM + :RE_PAD
35161
351622004-07-15  Sam Steingold  <sds@gnu.org>
35163
35164	* makemake.in (distrib) [win32gcc]: distribute linkkit because
35165	the user may have mingw installed
35166
351672004-06-10  Bruno Haible  <bruno@clisp.org>
35168
35169	More DEFINE-METHOD-COMBINATION error checking.
35170	* clos-methcomb2.lisp (specializers-agree-p, same-specializers-p):
35171	New functions, from clos-genfun3.lisp.
35172	(call-method-duplicates-error): New function.
35173	(effective-method-code-bricks): Add a duplicates argument.
35174	(build-effective-method-function-form): Likewise.
35175	(compute-effective-method-as-function-form): Support a :DUPLICATES
35176	effective-method option.
35177	(long-form-method-combination-expander): Convert the long-expander's
35178	second value into a :DUPLICATES effective-method option.
35179	(long-form-method-combination-collect-duplicates): New function.
35180	(compute-method-partition-lambdas): Generate code to check for
35181	duplicates.
35182	* clos-genfun3.lisp (specializers-agree-p, same-specializers-p): Moved
35183	to clos-methcomb2.lisp.
35184
351852004-05-29  Bruno Haible  <bruno@clisp.org>
35186
35187	Move the definition of accessor methods from DEFCLASS to ENSURE-CLASS.
35188	* clos-class3.lisp (defclass): Do not generate accessor-def-forms.
35189	(ensure-class): Generate accessors here, for all direct slots.
35190
351912004-07-14  John Hinsdale <hin@alma.com>
35192
35193	* modules/oracle/orafns.c: On SQL error, truncate echoed bind
35194	parameters for readability and to avoid buffer overflows.
35195	Also grab parse error offset into a ub2, not ub4 (misread docs).
35196
351972004-07-14  Sam Steingold  <sds@gnu.org>
35198
35199	* genclisph.d (main): export mark_fp_invalid() & record_flags_set()
35200	* modules/pcre/cpcre.c (PCRE:PCRE-FREE): use it
35201
352022004-07-14  John Hinsdale <hin@alma.com>
35203
35204	* modules/oracle/orafns.c: Handle obscure Oracle requirement that
35205	implicit describes fetch column precision in two-byte destination.
35206	Allows Oracle module to work under Solaris (Oracle 8.1.7).
35207
352082004-07-13  Sam Steingold  <sds@gnu.org>
35209
35210	* genclisph.d (main): rename floor() to ifloor() to avoid
35211	conflict with POSIX <math.h> floor()
35212	Reported by John Hinsdale <hin@alma.com>
35213
352142004-07-13  John Hinsdale <hin@alma.com>
35215
35216	* modules/oracle/orafns.c: Fix bugs in error reporting; use better
35217	supported calls in OCI to initialize; report initialization errors
35218	better
35219
352202004-06-10  Bruno Haible  <bruno@clisp.org>
35221
35222	* defs2.lisp (simple-destructuring-bind): New macro.
35223	* clos-methcomb2.lisp (short-form-method-combination-expander): Inline
35224	compute-short-form-effective-method-form. Remove redundant qualifiers
35225	check. Use simple-destructuring-bind.
35226	(compute-short-form-effective-method-form): Remove function.
35227
352282004-05-29  Bruno Haible  <bruno@clisp.org>
35229
35230	Make the class-default-initargs computation customizable.
35231	* init.lisp: Export compute-default-initargs.
35232	* clos-package.lisp: Likewise.
35233	* clos-class3.lisp (compute-default-initargs-<class>): New function.
35234	(compute-default-initargs): New function.
35235	(checked-compute-default-initargs): New function.
35236	(initialize-instance-<structure-class>)
35237	(finalize-instance-standard-class): Call it.
35238	* clos-class6.lisp (compute-default-initargs): New generic function.
35239
352402004-07-13  Bruno Haible  <bruno@clisp.org>
35241
35242	* intelem.d (UDS_to_I, DS_to_I): Make global.
35243	* lispbibl.d (UDS_to_I, DS_to_I): New declarations,
35244	* genclisph.d (main): Declare UDS_to_I, DS_to_I. Do not declare
35245	allocate_bignum.
35246
352472004-07-12  Sam Steingold  <sds@gnu.org>
35248
35249	* modules/berkeley-db/bdb.c (wrap_finalize): third argument is an
35250	object, not gcv_object_t, because "&``" does not work with -O
35251	(BDB:ENV-SET-OPTIONS): accept :TIMEOUT for compatibility
35252	with BDB:ENV-GET-OPTIONS
35253	* genclisph.d (check_list): export
35254
352552004-07-12  Sam Steingold  <sds@gnu.org>
35256
35257	* init.lisp (defun): when *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*
35258	is non-nil, convert specialized lambda lists to type declarations
35259	* misc.d (SYS::SET-ANSI): set *DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*
35260	* spvw.d (init_symbol_values): initialize it
35261	* constsym.d (defun_accept_spelalist): add
35262
352632004-06-10  Bruno Haible  <bruno@clisp.org>
35264
35265	* clos-methcomb1.lisp (method-combination): New slot long-expander.
35266	* clos-methcomb2.lisp (long-form-method-combination-expander): Remove
35267	last argument. Fetch it from the method-combination instead.
35268	(define-method-combination): Simplify long-form expansion.
35269
352702004-05-30  Bruno Haible  <bruno@clisp.org>
35271
35272	Make the class-slots computation customizable.
35273	* init.lisp: Export compute-slots.
35274	* clos-package.lisp: Likewise.
35275	* clos-slotdef1.lisp (slot-definition): Restrict type of allocation
35276	slot.
35277	(initialize-instance-<slot-definition>): Check the allocation argument
35278	here.
35279	(initialize-instance-<direct-slot-definition>)
35280	(initialize-instance-<effective-slot-definition>): ... not here.
35281	(standard-effective-slot-definition-p): New function.
35282	* clos-class3.lisp (compute-slots-<class>-primary): New function,
35283	extracted from std-compute-slots.
35284	(compute-slots-<slotted-class>-around): New function, based on
35285	std-compute-slots and std-layout-slots.
35286	(compute-slots, checked-compute-slots): New functions.
35287	(std-compute-slots, std-layout-slots): Remove functions.
35288	(compute-instance-size, compute-shared-size)
35289	(create-shared-slots-vector, compute-slot-location-table):
35290	New functions.
35291	(initialize-instance-<structure-class>)
35292	(finalize-instance-standard-class): Use the compute-slots functions
35293	instead of std-compute-slots, std-layout-slots.
35294	* clos-class6.lisp (compute-slots): New generic function.
35295
352962004-06-09  Bruno Haible  <bruno@clisp.org>
35297
35298	* clos-methcomb2.lisp (compute-effective-method-<standard-generic-function>):
35299	New function, extracted from compute-effective-method-as-function-form.
35300	(compute-effective-method): New function.
35301	(compute-effective-method-as-function-form): Call
35302	compute-effective-method.
35303	* clos-genfun5.lisp (compute-effective-method): New generic function.
35304
353052004-06-09  Bruno Haible  <bruno@clisp.org>
35306
35307	* clos-genfun2.lisp (compute-effective-method-as-function): Small
35308	optimization.
35309
353102004-05-29  Bruno Haible  <bruno@clisp.org>
35311
35312	* init.lisp: Export compute-effective-slot-definition.
35313	* clos-package.lisp: Likewise.
35314	* clos-class3.lisp (compute-effective-slot-definition-<class>): New
35315	function, extracted from std-compute-slots.
35316	(compute-effective-slot-definition): New function.
35317	(std-compute-slots): Use it.
35318	* clos-class6.lisp (compute-effective-slot-definition): New generic
35319	function.
35320
353212004-07-01  Sam Steingold  <sds@gnu.org>
35322
35323	keys and values can also be STRING and (INTEGER 0)
35324	* modules/berkeley-db/bdb.c (SYSCALL1): new macro (with clean-up)
35325	(BDB:ENV-CLOSE, BDB:DB-CLOSE, BDB:DB-DEL, BDB:DB-PUT)
35326	(BDB:DB-KEY-RANGE, BDB:CURSOR-CLOSE, BDB:CURSOR-PUT): use it
35327	(BDB:ENV-SET-OPTIONS): DATA_DIR can be a list
35328	(BDB:ENV-GET-OPTIONS, BDB:DB-GET-OPTIONS): return all as a plist,
35329	not as multiple values
35330	(dbt_o_t): new typedef
35331	(check_dbt_type, check_dbt_object, free_dbt): new functions
35332	(fill_dbt): also return the type of the object
35333	(dbt_to_object): accept the object type as the second argument
35334	(BDB:DB-GET): accept :TYPE keyword argument
35335	(BDB:DB-OPEN): do not call physical_namestring() on strings
35336	because then it is resolved by Berkeley-DB relative to data_dirs
35337	(BDB:DB-SET-OPTIONS, BDB:DB-GET-OPTIONS): accept :RE_LEN
35338	(DEFINE_DB_GETTER): new macro
35339	(db_get_lorder, db_get_pagesize): use it
35340	(db_get_re_len): new function
35341	(BDB:CURSOR-GET): return KEY and VAL with specified type
35342	(BDB:TXN-BEGIN): finalize TXN with BDB::TXN-DISCARD
35343	(BDB:TXN-COMMIT, BDB:TXN-DISCARD, BDB:TXN-ABORT): invalidate TXN
35344	* modules/berkeley-db/dbi.lisp (with-cursor): new macro
35345	(with-open-db): must use BDB:DB-CREATE and then BDB:DB-OPEN
35346	(close): add a TXN method
35347	* genclisph.d (ceiling, wbit): enabled
35348	(allocate_bignum): add
35349
353502004-06-30  Sam Steingold  <sds@gnu.org>
35351
35352	* spvw.d (main): reset `argv_for' to `for_exec' after processing
35353	the non-option argument so that "-i" will not disable scripting
35354	Reported by VAUCHER L Ext SIRES <lvaucher.ext@francetelecom.com>
35355	* clisp-link.in: properly intersperse "-i" in TO_LOAD and TO_PRELOAD
35356
353572004-06-28  Sam Steingold  <sds@gnu.org>
35358
35359	* modules/berkeley-db/bdb.c (object_handle_t): new typedef
35360	(object_handle): third argument is an object_handle_t, not bool
35361	(object_handle_): remove
35362	update all calls to object_handle_() and object_handle()
35363	(env_get_home_dir, env_get_open_flags, db_get_cache):
35364	accept second argument errorp
35365	(BDB:DB-STAT): add missing slot bt_over_pg
35366	(BDB:CURSOR-CLOSE): fix STACK handling
35367	(BDB:CURSOR-GET): fix keyword list
35368	* modules/berkeley-db/test.tst: new file
35369	* modules/berkeley-db/dbi.lisp (db-stat-btree): fix slot names
35370
353712004-06-27  Sam Steingold  <sds@gnu.org>
35372
35373	* modules/berkeley-db/dbi.lisp (bdb-error): new condition
35374	* modules/berkeley-db/bdb.c (error_message): new static variable
35375	(error_callback, error_message_reset): new functions
35376	(error_bdb): signal BDB-ERROR, not ERROR; use error_message
35377	(BDB:ENV-CREATE, BDB:DB-CREATE): set error callback to error_callback()
35378	(BDB:ENV-SET-OPTIONS): fix STACK access
35379	(env_get_home_dir, env_get_open_flags, BDB:DB-GET, BDB:CURSOR-GET):
35380	call error_message_reset()
35381
353822004-06-26  Arseny Slobodjuk  <ampy@ich.dvo.ru>
35383
35384	Fix handling of relative shortcuts on mingw.
35385	* w32shell.c (augment_relative_pathname): new function.
35386	(resolve_shell_shortcut_more): recurrent resolution of
35387	shortcuts to symbolic names. Handling of relative shortcuts.
35388	(real_path): fix sharename handling (not tested).
35389	* pathname.d (FullName): rewritten to process ".." and ".".
35390
353912004-06-09  Bruno Haible  <bruno@clisp.org>
35392
35393	* clos-methcomb1.lisp (method-combination): Change calling convention
35394	of expander.
35395	* clos-methcomb2.lisp (build-effective-method-function-form): Rename
35396	from compute-effective-method-function. Take arguments-lambda-list as
35397	additional argument.
35398	(compute-effective-method-as-function-form): After calling the
35399	expander, call build-effective-method-function-form.
35400	(standard-method-combination-expander): Return two values now, instead
35401	of the entire function-form.
35402	(compute-short-form-effective-method-form): Likewise. Simplify.
35403	(short-form-method-combination-expander): Do not call
35404	compute-effective-method-function on the result.
35405	(long-form-method-combination-expander): Likewise.
35406	(define-method-combination): Update.
35407
354082004-05-29  Bruno Haible  <bruno@clisp.org>
35409
35410	Make the class-precedence-list computation customizable.
35411	* init.lisp: Export compute-class-precedence-list.
35412	* clos-package.lisp: Likewise.
35413	* clos-class3.lisp (compute-class-precedence-list-<class>)
35414	(compute-class-precedence-list, checked-compute-class-precedence-list):
35415	New functions.
35416	(initialize-instance-<built-in-class>)
35417	(initialize-instance-<structure-class>)
35418	(finalize-instance-standard-class): Use
35419	checked-compute-class-precedence-list instead of std-compute-cpl.
35420	* clos-class6.lisp (compute-class-precedence-list): New generic
35421	function.
35422
354232004-06-25  Sam Steingold  <sds@gnu.org>
35424
35425	* lispbibl.d, spvw.d, xthread.d, zthread.d (thread_t):
35426	rename to clisp_thread_t to avoid conflict with Darwin
35427	Reported by Denis Bueno <dbueno@stygian.net>
35428
354292004-06-09  Bruno Haible  <bruno@clisp.org>
35430
35431	* clos-methcomb2.lisp (compute-effective-method-as-function-form):
35432	New function.
35433	* clos-genfun2.lisp (compute-effective-method-as-function): Use it.
35434
354352004-06-08  Bruno Haible  <bruno@clisp.org>
35436
35437	* init.lisp: Export find-method-combination.
35438	* clos-package.lisp: Likewise.
35439	* clos-methcomb2.lisp (find-method-combination-<generic-function>-<symbol>):
35440	New function.
35441	(find-method-combination): New function.
35442	* clos-genfun5.lisp (find-method-combination): New generic function.
35443
354442004-05-29  Bruno Haible  <bruno@clisp.org>
35445
35446	* init.lisp: Export add-direct-subclass, remove-direct-subclass.
35447	* clos-package.lisp: Likewise.
35448	* clos-class3.lisp (add-direct-superclass-internal): Rename from
35449	add-direct-superclass.
35450	(remove-direct-superclass-internal): Rename from
35451	remove-direct-superclass.
35452	(add-direct-superclass, remove-direct-superclass): New functions.
35453	* clos-class6.lisp (add-direct-superclass, remove-direct-superclass):
35454	New generic functions.
35455
354562004-06-24  Sam Steingold  <sds@gnu.org>
35457
35458	* modules/berkeley-db/bdb.c (DB-GET-OPTIONS, DB-SET-OPTIONS): add
35459	* modules/berkeley-db/dbi.lisp: export them
35460
354612004-06-24  Sam Steingold  <sds@gnu.org>
35462
35463	* utils/modprep.lisp (parse-signature): check that END is non-NIL
35464
354652004-06-24  Sam Steingold  <sds@gnu.org>
35466
35467	* modules/berkeley-db/bdb.c (BDB:DB-GET, BDB:CURSOR-GET):
35468	separate options and actions
35469
354702004-06-24  Sam Steingold  <sds@gnu.org>
35471
35472	* pathname.d (physical_namestring): new function, for modules
35473	* genclisph.d (physical_namestring): export it
35474	* modules/berkeley-db/bdb.c, modules/syscalls/calls.c: use it
35475
354762004-06-24  Sam Steingold  <sds@gnu.org>
35477
35478	* modules/berkeley-db/bdb.c (ENV-GET-OPTIONS, ENV-SET-OPTIONS):
35479	get and set tas_spins, shm_key, timeouts and encryption
35480	(BDB:DB-JOIN, BDB:DB-KEY-RANGE, BDB:DB-VERIFY): new functions
35481
354822004-06-08  Bruno Haible  <bruno@clisp.org>
35483
35484	* clos-methcomb1.lisp (get-method-combination): Rename from
35485	find-method-combination. Make argument required. i18n.
35486	((setf get-method-combination)): Rename from
35487	(setf find-method-combination).
35488	* clos-methcomb2.lisp (define-method-combination)
35489	(coerce-to-method-combination): Update.
35490	* clos-genfun2.lisp (%make-gf): Update.
35491	* documentation.lisp (documentation, (setf documentation)): Update.
35492
354932004-06-08  Bruno Haible  <bruno@clisp.org>
35494
35495	* clos-methcomb1.lisp (print-object-<method-combination>): Rename from
35496	print-method-combination.
35497	* clos-print.lisp (print-object): Update.
35498
354992004-06-08  Bruno Haible  <bruno@clisp.org>
35500
35501	* clos-methcomb1.lisp (method-combination): Reorder slots.
35502	* clos-methcomb2.lisp (define-method-combination): Do not set
35503	:identity-with-one-argument with long-form method-combination.
35504
355052004-06-08  Bruno Haible  <bruno@clisp.org>
35506
35507	* clos-methcomb2.lisp (short-form-method-combination-expander):
35508	Remove useless typecase.
35509	(long-form-method-combination-expander): Likewise. The user-defined
35510	DEFINE-METHOD-COMBINATION body must return a form.
35511
355122004-05-29  Bruno Haible  <bruno@clisp.org>
35513
35514	Change the metaclass of CLASS from STRUCTURE-CLASS to STANDARD-CLASS.
35515	* lispbibl.d (Class): Change to an extension of Instance. Remove
35516	metaclass field. Add direct_generic_functions, direct_methods,
35517	initialized fields.
35518	(TheClass): Define using TheInstance.
35519	(if_classp): Use instancep and test for the three most frequent
35520	metaclasses directly.
35521	* predtype.d (CLOS::%DEFCLOS): Accept 3 class-versions and <class>.
35522	* hashtabl.d (sxhash_atom): For CLOS instances, use the class name,
35523	not the class itself.
35524	* init.lisp: Export the symbols CLASS, BUILT-IN-CLASS, STRUCTURE-CLASS,
35525	STANDARD-CLASS, CLASS-NAME, CLASS-DIRECT-SUPERCLASSES,
35526	CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SUBCLASSES, CLASS-DIRECT-SLOTS,
35527	CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS,
35528	VALIDATE-SUPERCLASS.
35529	Load clos-metaobject1, clos-class1, clos-class2, clos-class3.
35530	* type.lisp (def-atomic-type): Do not remove the macro after use.
35531	* clos-package.lisp: Export the symbols CLASS, BUILT-IN-CLASS,
35532	STRUCTURE-CLASS, STANDARD-CLASS, CLASS-NAME, CLASS-DIRECT-SUPERCLASSES,
35533	CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SUBCLASSES, CLASS-DIRECT-SLOTS,
35534	CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS,
35535	VALIDATE-SUPERCLASS.
35536	* clos-metaobject1.lisp: New file.
35537	* clos-slotdef1.lisp (slot-definition): Inherit from metaobject.
35538	* clos-specializer1.lisp (specializer): Inherit from metaobject.
35539	* clos-class1.lisp: New file.
35540	* clos-class2.lisp: Update comments.
35541	* clos-class3.lisp (empty-ht): Moved to clos-class1.lisp.
35542	(structure-stablehash): Moved to clos-stablehash2.lisp.
35543	(class, built-in-class, slotted-class, structure-class, standard-class):
35544	Moved to clos-class1.lisp.
35545	(%defclos): Pass 3 class-versions and <class>.
35546	(ensure-class): Tweaks for bootstrapping. When redefining a metaobject
35547	class, warn but do not obsolete the instances. Before changing a member
35548	of the class-precedence-list from symbol to class, call
35549	check-allowed-superclass. Update defaulting of direct-superclasses.
35550	(add-default-superclass): Remove function.
35551	(class-name, default-direct-superclasses): New functions.
35552	(validate-superclass, check-allowed-superclass): New functions.
35553	(std-compute-slots): Remove second argument. Use class-direct-slots
35554	for all kinds of superclasses.
35555	(make-instance-<built-in-class>): Rename from
35556	make-instance-built-in-class. Do not call check-metaclass-mix here.
35557	Use allocate-metaobject-instance.
35558	(initialize-instance-<built-in-class>): Rename from
35559	initialize-instance-built-in-class. Call check-metaclass-mix here.
35560	Call superclass initializer.
35561	(make-instance-<structure-class>): Rename from
35562	make-instance-structure-class. Use allocate-metaobject-instance.
35563	(initialize-instance-<structure-class>): Rename from
35564	initialize-instance-structure-class. Call superclass initializer.
35565	Lots of changes.
35566	(define-structure-class): Update.
35567	(make-instance-<standard-class>): Rename from
35568	make-instance-standard-class. Use allocate-metaobject-instance.
35569	(initialize-instance-<standard-class>): Rename from
35570	initialize-instance-standard-class. Call superclass initializer.
35571	Lots of changes.
35572	(finalize-class): Before changing a member of the class-precedence-list
35573	from symbol to class, call check-allowed-superclass.
35574	(def-unbound): Remove function.
35575	(finalize-inheritance-standard-class): Use sys::%unbound.
35576	(make-instances-obsolete-standard-class-nonrecursive): For metaobject
35577	classes, just warn.
35578	(update-subclasses-for-redefined-class): Do not call
35579	add-default-superclass.
35580	(update-subclasses-for-redefined-class-nonrecursive): Likewise.
35581	(list-all-finalized-subclasses): Likewise.
35582	Completely revamped bootstrapping.
35583	(%defclos): Pass 3 class-versions and <class>.
35584	* defstruct.lisp (clos::define-structure-class)
35585	(clos::undefine-structure-class): Remove preliminary functions.
35586	(structure-object): Remove definition, now done in clos-class3.lisp.
35587	* clos.lisp: Load clos-class[456] instead of clos-class[235].
35588	* clos-slotdef2.lisp: Do not use #'make-instance here.
35589	* clos-stablehash2.lisp (<standard-stablehash>): Move definition to
35590	clos-class3.lisp.
35591	(structure-stablehash): Moved to here.
35592	* clos-specializer2.lisp: Do not use #'make-instance here.
35593	* clos-class4.lisp: New file.
35594	* clos-class5.lisp (class-name, (setf class-name)): Move to
35595	clos-class6.lisp.
35596	(initialize-instance@standard-class)
35597	(initialize-instance@structure-class): Move to clos-class3.lisp.
35598	(class-prototype, class-finalized-p): Move to clos-class6.lisp.
35599	* clos-genfun2.lisp (*dynamically-modifiable-generic-function-names*):
35600	Add validate-superclass.
35601	* clos-slotdef3.lisp: Use #'make-instance here.
35602	* clos-specializer3.lisp: Likewise.
35603	* clos-class6.lisp: New file.
35604	* clos-print.lisp: Update.
35605	* compiler.lisp (block, tagbody): Remove the corresponding classes.
35606	* gray.lisp: Customize validate-superclasses.
35607	* condition.lisp (define-condition): Update handling of default
35608	direct-superclasses.
35609	* makemake.in (LPARTS): Add clos-metaobject1, clos-class[123] and
35610	clos-class[456].
35611	* po/Makefile.devel (LISPSOURCES): Likewise.
35612	* utils/clispload.lisp (*expected-failures*): Remove
35613	BUILT-IN-CLASS-CPL and STANDARD-CLASS-CPL.
35614
356152004-06-23  Sam Steingold  <sds@gnu.org>
35616
35617	* modules/berkeley-db/dbi.lisp: export TXN functions
35618	(lsn, db-txn-active, db-txn-stat): new structures
35619	* modules/berkeley-db/bdb.c (BDB:ENV-CLOSE): clean-up the STACK
35620	(set_verbose): new function
35621	(BDB:ENV-SET-OPTIONS): use it to fix verbosity handling
35622	(env_get_verbose): rename from env_verbose()
35623	(env_get_tmp_dir): rename from env_tmp_dir()
35624	(env_get_data_dirs): rename from env_data_dirs()
35625	(env_get_tx_max): rename from env_tx_max()
35626	(env_get_tx_timestamp): rename from env_tx_timestamp()
35627	(env_get_home_dir, env_get_open_flags, env_get_flags): add
35628	(BDB:ENV-GET-OPTIONS): also return home dir and open flags
35629	(BDB:DB-OPEN): use posfixnum_default2()
35630	(check_gid): new function
35631	(BDB:TXN-PREPARE): use it
35632	(gid_to_vector): new function
35633	(BDB:TXN-RECOVER): use it
35634	(BDB:TXN-STAT): new function
35635	(BDB:DB-STAT): fix memory management
35636
356372004-06-23  Sam Steingold  <sds@gnu.org>
35638
35639	* genclisph.d (posfixnum_default2): new function
35640	(posfixnum_default): defined in terms of posfixnum_default2()
35641
356422004-06-23  Sam Steingold  <sds@gnu.org>
35643
35644	* modules/berkeley-db/bdb.c (ENV-GET-OPTIONS): accept :DB_XIDDATASIZE
35645	(check_byte_vector): new function
35646	(fill_dbt): use it
35647	(TXN-CHECKPOINT, TXN-PREPARE, TXN-RECOVER, TXN-SET-TIMEOUT):
35648	new functions
35649
356502004-06-23  Sam Steingold  <sds@gnu.org>
35651
35652	* modules/pcre/cpcre.c (PCRE:PCRE-EXEC): signal an error
35653	instead of crashing on a pcre library bug
35654
356552004-06-23  Sam Steingold  <sds@gnu.org>
35656
35657	* time.d (convert_time_from_universal): new function
35658	* genclisph.d (main): export it
35659	* modules/berkeley-db/bdb.c (ENV-SET-OPTIONS, ENV-GET-OPTIONS):
35660	accept :TX_TIMESTAMP and :TX_MAX
35661	(BDB:TXN-ID): new function
35662
356632004-06-23  Sam Steingold  <sds@gnu.org>
35664
35665	* genclisph.d (main): undef PACKAGE_* to avoid some warnings
35666	* modules/rawsock/rawsock.c: include "config.h" after "clisp.h"
35667	to avoid some warnings
35668	* modules/syscalls/calls.c: ditto
35669	* modules/pcre/cpcre.c: ditto
35670
356712004-06-06  Bruno Haible  <bruno@clisp.org>
35672
35673	* clos-method2.lisp (compute-effective-method-as-function): Convert
35674	result from a form to a function.
35675	* clos-methcomb2.lisp (compute-effective-method-function)
35676	(standard-method-combination-expander): Do not do the conversion here.
35677
356782004-06-08  Bruno Haible  <bruno@clisp.org>
35679
35680	* clos-methcomb2.lisp (define-method-combination): Provide bindings
35681	also for the supplied-p variables of optional and keyword arguments
35682	in the :arguments lambda-list.
35683
356842004-05-27  Bruno Haible  <bruno@clisp.org>
35685
35686	* clos-class3.lisp: Reorder.
35687	(plist-to-alist, alist-to-plist): Remove functions.
35688
356892004-05-26  Bruno Haible  <bruno@clisp.org>
35690
35691	Let accessors belong to specific classes.
35692	* init.lisp: Export accessor-method-slot-definition.
35693	* clos-package.lisp: Likewise.
35694	* clos-method1.lisp (standard-accessor-method): New class.
35695	(standard-reader-method, standard-writer-method): New classes.
35696	* clos-method3.lisp (accessor-method-slot-definition): New generic
35697	function.
35698	* clos-genfun3.lisp (declaim-method): New macro.
35699	* clos-class3.lisp (defclass): Generate explicit calls to
35700	make-standard-reader-method and make-standard-writer-method.
35701
357022004-05-25  Bruno Haible  <bruno@clisp.org>
35703
35704	Move the direct-default-initargs and default-initargs slots up to
35705	class CLASS.
35706	* lispbibl.d (Class): Move direct_default_initargs, default_initargs
35707	fields.
35708	* clos-class3.lisp (class): Add direct-default-initargs,
35709	default-initargs slots.
35710	(slotted-class): Remove default-initargs slot.
35711	(standard-class): Remove direct-default-initargs slot.
35712	(finalize-instance-standard-class, initialize-instance-structure-class):
35713	Use the default-initargs of all superclasses, regardless of the
35714	metaclass.
35715
357162004-06-23  Bruno Haible  <bruno@clisp.org>
35717
35718	* hashtabl.d ((SETF HASH-TABLE-WEAK-P)): Fix GC-safety bug introduced
35719	in last patch. Check the hash table argument before the new-value
35720	argument.
35721
357222004-06-23  Bruno Haible  <bruno@clisp.org>
35723
35724	* places.lisp (def-setf-alias): New macro.
35725
357262004-06-23  Bruno Haible  <bruno@clisp.org>
35727
35728	* defpackage.lisp (defpackage): Use (SETF PACKAGE-DOCUMENTATION).
35729
357302004-06-22  Sam Steingold  <sds@gnu.org>
35731
35732	* constsym.d (set_hash_table_weak_p, set_package_lock, setelt)
35733	(set_hash_table_warn_if_needs_rehash_after_gc, set_long_float_digits):
35734	use "(SETF FOO)" instead of "%SET-FOO"
35735	* hashtabl.d ((SETF HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC))
35736	((SETF HASH-TABLE-WEAK-P)): update calling conventions
35737	* package.d ((SETF EXT:PACKAGE-LOCK)): ditto
35738	* sequence.d ((SETF ELT)): ditto
35739	* places.lisp (package-lock, hash-table-weak-p, elt, long-float-digits)
35740	(hash-table-warn-if-needs-rehash-after-gc): use SETF-FUNCTION
35741	instead of DEFSETF
35742
357432004-06-22  Sam Steingold  <sds@gnu.org>
35744
35745	* defpackage.lisp (defpackage): use (SETF PACKAGE-DOCUMENTATION)
35746	* documentation.lisp (documentation): use PACKAGE-DOCUMENTATION
35747	((setf documentation)): use (SETF PACKAGE-DOCUMENTATION)
35748	* clos-package.lisp, screen.lisp: use the :DOCUMENTATION
35749	option in DEFPACKAGE
35750
357512004-06-22  Sam Steingold  <sds@gnu.org>
35752
35753	* lispbibl.d (fehler_string): remove again
35754	* error.d (fehler_string): ditto
35755	* package.d ((SETF PACKAGE-DOCUMENTATION)): use check_string()
35756
357572004-06-22  Bruno Haible  <bruno@clisp.org>
35758
35759	* lispbibl.d (Package): Add pack_docstring field.
35760	* genclisph.d (main): Update.
35761	* package.d (make_package): Initialize pack_docstring to NIL.
35762	(SYS::PACKAGE-DOCUMENTATION, (SETF PACKAGE-DOCUMENTATION)): New
35763	functions.
35764	* error.d (fehler_string): Revived function.
35765	* places.lisp (PACKAGE-DOCUMENTATION): New setter definition.
35766
357672004-06-22  Bruno Haible  <bruno@clisp.org>
35768
35769	* clos-method1.lisp (<method>): New variable.
35770
357712004-06-06  Bruno Haible  <bruno@clisp.org>
35772
35773	* clos-methcomb2.lisp (add-next-method-local-functions): New function,
35774	extracted from analyze-method-description.
35775	(call-method, make-method): New macros.
35776	(make-method-error, call-method-arg1-error, call-method-arg2-error):
35777	New functions.
35778	(effective-method-code-bricks): New function.
35779	(compute-effective-method-function): Simplify a lot through the use of
35780	effective-method-code-bricks. Use an inline lambda to handle the
35781	:arguments lambda list, instead of clobbering the effective method's
35782	lambda list. Correctly handle the cases when the section lengths in the
35783	two lambda lists differ.
35784	(standard-method-combination-expander): Simplify a lot through the use
35785	of effective-method-code-bricks.
35786	* clos-method2.lisp (analyze-method-description): Use
35787	add-next-method-local-functions.
35788
357892004-05-25  Bruno Haible  <bruno@clisp.org>
35790
35791	* clos-class5.lisp: Include contents of clos-class3.lisp.
35792	* clos-class3.lisp: Rename from clos-class2.lisp. Old contents moved
35793	to clos-class5.lisp.
35794	* clos-class2.lisp: Rename from clos-class1.lisp. Old contents moved
35795	to clos-class3.lisp.
35796	* clos.lisp: Update.
35797
357982004-06-21  Sam Steingold  <sds@gnu.org>
35799
35800	* clisp.spec (debug_package): set to %{nil} to prevent CLISP
35801	binaries from being stripped
35802	(modules): add rawsock
35803
358042004-06-21  Sam Steingold  <sds@gnu.org>
35805
35806	* makemake.in (unixconf.h): make sure that it is indeed changed
35807
358082004-06-21  Sam Steingold  <sds@gnu.org>
35809
35810	* modules/berkeley-db/dbi.lisp (CLOSE):
35811	define methods for ENV, DB and CURSOR
35812	* modules/berkeley-db/bdb.c (BDB:ENV-CLOSE, BDB:CURSOR-CLOSE)
35813	(BDB:DB-CLOSE): reset the Fpointer value and return a value,
35814	do not crash on repeated calls
35815	(wrap_finalize): new function
35816	(BDB:ENV-CREATE, BDB:DB-CREATE, BDB:MAKE-CURSOR, BDB:CURSOR-DUP):
35817	use it to close ENV, DB & CURSOR objects on GC
35818
358192004-06-21  Sam Steingold  <sds@gnu.org>
35820
35821	* modules/berkeley-db/bdb.c (BDB:MAKE-CURSOR, BDB:CURSOR-CLOSE)
35822	(BDB:CURSOR-COUNT, BDB:CURSOR-DEL, BDB:CURSOR-DUP)
35823	(BDB:CURSOR-GET, BDB:CURSOR-PUT): implement
35824	the "Database Cursor" subsystem
35825	* modules/berkeley-db/dbi.lisp: export the above
35826
358272004-06-21  Sam Steingold  <sds@gnu.org>
35828
35829	* modules/berkeley-db/bdb.c (BDB:ENV-GET-OPTIONS): new Lisp DEFUN
35830	(env_verbose, env_tmp_dir, env_data_dirs): new functions
35831	(BDB:DB-CREATE): permit NIL environment, call MKDB correctly
35832	(BDB:DB-FD): fix STACK handling
35833	(BDB:DB-OPEN): default mode to 0644
35834	(BDB:DB-PUT): fix flag handling
35835
358362004-06-06  Bruno Haible  <bruno@clisp.org>
35837
35838	* clos-genfun2.lisp (compute-applicable-methods-effective-method): Do
35839	the method selection here.
35840	(compute-effective-method-as-function): New function.
35841	* clos-methcomb2.lisp (standard-method-combination-expander)
35842	(short-form-method-combination-expander)
35843	(long-form-method-combination-expander): Add methods argument, remove
35844	args argument. Do not do the method selection here.
35845	(define-method-combination): Update.
35846
358472004-05-16  Bruno Haible  <bruno@clisp.org>
35848
35849	* lispbibl.d (Class): Add direct_subclasses field.
35850	* clos-class2.lisp (class): Add slot direct-subclasses-table.
35851	(ensure-class): Call add-direct-subclass when a member of the
35852	direct-subclasses list changes from symbol to class.
35853	(add-direct-subclass, remove-direct-subclass, list-direct-subclasses):
35854	New functions.
35855	(update-subclasses-sets): New function.
35856	(initialize-instance-standard-class): Initialize
35857	direct-subclasses-table. Call update-subclasses-sets.
35858	(finalize-class): Call add-direct-subclass when a member of the
35859	direct-subclasses list changes from symbol to class.
35860	(initialize-instance-built-in-class): Initialize
35861	direct-subclasses-table. Call update-subclasses-sets.
35862	(initialize-instance-structure-class): Initialize
35863	direct-subclasses-table. Call update-subclasses-sets.
35864
358652004-06-19  Sam Steingold  <sds@gnu.org>
35866
35867	* hashtabl.d (HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC): new accessor
35868	(%SET-HASH-TABLE-WARN-IF-NEEDS-REHASH-AFTER-GC): new setter
35869	* places.lisp (hash-table-warn-if-needs-rehash-after-gc): defsetf
35870	* init.lisp (hash-table-warn-if-needs-rehash-after-gc): export
35871	* constsym.d, subr.d (hash_table_warn_if_needs_rehash_after_gc)
35872	(set_hash_table_warn_if_needs_rehash_after_gc): add
35873
358742004-06-19  Sam Steingold  <sds@gnu.org>
35875
35876	* modules/berkeley-db/dbi.lisp (with-open-db): simplified
35877
358782004-06-19  Sam Steingold  <sds@gnu.org>
35879
35880	* genclisph.d (symbol_): fix the definition
35881
358822004-06-18  Sam Steingold  <sds@gnu.org>
35883
35884	* macros1.lisp (do/do*-expand): do not bind DOC: it is ignored anyway
35885
358862004-06-06  Bruno Haible  <bruno@clisp.org>
35887
35888	* clos-genfun2.lisp (compute-applicable-methods-effective-method):
35889	Rename from compute-effective-method.
35890	(compute-dispatch): Update.
35891	* clos-class5.lisp (make-instance-table-entry1)
35892	(make-instance-table-entry2, initial-reinitialize-instance): Update.
35893
358942004-06-06  Bruno Haible  <bruno@clisp.org>
35895
35896	* clos-methcomb2.lisp (coerce-to-method-combination): Do not need to
35897	clone the method-combination if there are no options.
35898
358992004-06-06  Bruno Haible  <bruno@clisp.org>
35900
35901	Check the method-combination options at defgeneric execution time.
35902	* clos-methcomb1.lisp (method-combination): New slot check-options.
35903	* clos-methcomb2.lisp (invalid-sort-order-error)
35904	(any-method-combination-check-options): New functions.
35905	(standard-method-combination-check-options): New function.
35906	(standard-method-combination-expander): Remove options check from here.
35907	(standard): Update.
35908	(short-form-method-combination-check-options): New function.
35909	(+, and, append, list, max, min, nconc, or, progn): Update.
35910	(compute-method-partition-lambdas): Return also a lambda for
35911	check-options.
35912	(define-method-combination): Emit :check-options initargs.
35913	(coerce-to-method-combination): Add gf-name argument. Call the
35914	check-options function.
35915	* clos-genfun4.lisp (make-generic-function, do-defgeneric): Update.
35916
359172004-05-16  Bruno Haible  <bruno@clisp.org>
35918
35919	* lispbibl.d (Class): Rename field direct_subclasses to
35920	finalized_direct_subclasses.
35921	* clos-class2.lisp (standard-class): Rename slot direct-subclasses to
35922	finalized-direct-subclasses-table.
35923	(add-finalized-direct-subclass): Rename from add-direct-subclass.
35924	(remove-finalized-direct-subclass): Rename from
35925	remove-direct-subclass.
35926	(list-finalized-direct-subclasses): Rename from
35927	list-direct-subclasses.
35928	(list-all-finalized-subclasses): Rename from list-all-subclasses.
35929	Update all callers.
35930
359312004-06-13  Bruno Haible  <bruno@clisp.org>
35932
35933	* lambdalist.lisp (analyze-modify-macro-lambdalist): New function.
35934	* places.lisp (define-modify-macro): Use it.
35935
359362004-06-06  Bruno Haible  <bruno@clisp.org>
35937
35938	* clos-methcomb2.lisp (define-method-combination): Check the :arguments
35939	lambda-list.
35940
359412004-06-06  Bruno Haible  <bruno@clisp.org>
35942
35943	* clos-methcomb1.lisp (method-combination): Remove order slot.
35944	* clos-methcomb2.lisp (compute-short-form-effective-method-form):
35945	Take the order from the options, not from the method-combination.
35946	Improve error checking.
35947
359482004-06-06  Bruno Haible  <bruno@clisp.org>
35949
35950	* clos-methcomb2.lisp (qualifiers-match-p): Remove function.
35951	(compute-method-partition-lambdas): Use LDIFF and EQUAL to match the
35952	qualifiers list against the pattern.
35953
359542004-05-16  Bruno Haible  <bruno@clisp.org>
35955
35956	Move slots, direct-slots up to CLASS.
35957	* lispbibl.d (Class): Move the slots and direct_slots fields.
35958	* clos-class2.lisp (class): Add slots, direct-slots.
35959	(slotted-class): Remove slots.
35960	(standard-class): Remove direct-slots.
35961	(initialize-instance-built-in-class): Initialize direct-slots and
35962	slots to empty.
35963	(make-instance-structure-class, initialize-instance-structure-class):
35964	Accept a direct-slots-as-metaobjects argument.
35965	(define-structure-class): Pass the already computed direct-slots to
35966	make-instance-structure-class.
35967	* clos-class5.lisp (initialize-instance@structure-class): Accept
35968	precomputed direct-slots argument.
35969
359702004-05-15  Bruno Haible  <bruno@clisp.org>
35971
35972	* clos-specializer1.lisp: New file.
35973	* clos-specializer2.lisp: New file.
35974	* clos-specializer3.lisp: New file.
35975	* clos-package.lisp: Export specializer related symbols from CLOS
35976	package.
35977	* init.lisp: Likewise. Load clos-specializer1.
35978	* clos.lisp: Load clos-specializer2, clos-specializer3.
35979	* makemake.in (LPARTS): Add clos-specializer{1,2,3}.
35980	* po/Makefile.devel (LISPSOURCES): Add clos-specializer{1,2,3}.
35981
359822004-06-13  Bruno Haible  <bruno@clisp.org>
35983
35984	* lambdalist.lisp (analyze-lambdalist, analyze-defsetf-lambdalist):
35985	Improved error messages.
35986
359872004-06-05  Bruno Haible  <bruno@clisp.org>
35988
35989	* clos-genfun5.lisp (missing-required-method): New function.
35990	* clos-methcomb1.lisp (method-combination): Reorder the slots.
35991	* clos-methcomb2.lisp (invalid-method-error, method-combination-error):
35992	Signal an error of type ERROR, not SOURCE-PROGRAM-ERROR. Tweak error
35993	message.
35994	(invalid-method-sort-order-error): New function.
35995	(compute-effective-method-function, qualifiers-match-p):
35996	Internationalize.
35997	(parse-method-groups): New function, extracted from
35998	compute-method-partition-lambdas. Improved syntax checking. Improved
35999	error messages.
36000	(compute-method-partition-lambdas): Accept a body argument. Remove
36001	*-group-variable and its associated unjustified error. Remove code that
36002	can never be executed. Generate code that operates directly on
36003	variables instead of on a property list. Emit code to call
36004	MISSING-REQUIRED-METHOD and INVALID-METHOD-SORT-ORDER-ERROR.
36005	(define-method-combination): Improved syntax checking. Improved error
36006	messages. Use sys::parse-body. In the long-form combination, do not pass
36007	:qualifiers. Keep gf-variable and user-gf-variable distinct, so that
36008	the user cannot accidentally change the value of the gf-variable.
36009	(do-define-method-combination): Rename from %define-method-combination.
36010	Remove dynamic-extent declaration.
36011	* format.lisp (format-quote): New function.
36012
360132004-05-15  Bruno Haible  <bruno@clisp.org>
36014
36015	* clos-macros.lisp: New file.
36016	* clos-class2.lisp (add-direct-subclass, remove-direct-subclass)
36017	(list-direct-subclasses): Define through def-weak-set-accessors.
36018	* init.lisp: Load clos-macros.
36019	* makemake.in (LPARTS): Add clos-macros.
36020	* po/Makefile.devel (LISPSOURCES): Add clos-macros.
36021
360222004-05-15  Bruno Haible  <bruno@clisp.org>
36023
36024	* init.lisp: Load clos-stablehash1.
36025	* clos.lisp: Load clos-stablehash2.
36026	* clos-stablehash1.lisp: New file.
36027	* clos-stablehash2.lisp: New file.
36028	* clos-class5.lisp (standard-stablehash): Moved to clos-stablehash1.
36029	* makemake.in (LPARTS): Add clos-stablehash1, clos-stablehash2.
36030	* po/Makefile.devel (LISPSOURCES): Add clos-stablehash1,
36031	clos-stablehash2.
36032
360332004-06-13  Bruno Haible  <bruno@clisp.org>
36034
36035	Fix DEFSETF lambda-list handling.
36036	* init.lisp: Load lambdalist.lisp before places.lisp.
36037	* lambdalist.lisp: Define PUSH locally.
36038	(analyze-defsetf-lambdalist): New function.
36039	* places.lisp (get-setf-expansion): Pass environment to defsetf long
36040	expander.
36041	(defsetf): Use analyze-defsetf-lambdalist and handle &environment.
36042
360432004-06-05  Bruno Haible  <bruno@clisp.org>
36044
36045	* clos-methcomb2.lisp: Reorder.
36046
360472004-05-15  Bruno Haible  <bruno@clisp.org>
36048
36049	* init.lisp (*documentation*): Change the hash table test to
36050	STABLEHASH-EQUAL, since some of the keys are lists, not symbols.
36051
360522004-05-15  Bruno Haible  <bruno@clisp.org>
36053
36054	Use STABLEHASH-EQ as test for hash tables indexed by symbols.
36055	* init.lisp (*documentation*): Use hash table test STABLEHASH-EQ.
36056	* type.lisp (encoding-zeroes): Use hash table test STABLEHASH-EQUAL.
36057	* subtypep.lisp (get-charset-range): Likewise.
36058	* compiler.lisp (instruction-codes, function-codes, c-form-table): Use
36059	hash table test STABLEHASH-EQ.
36060	(c-CASE): More accurate determination of the hash table test depending
36061	on the keys.
36062	(EQL=EQ): Return true for short-floats also.
36063	(one-value-ops, for-value-table): Use hash table test STABLEHASH-EQ.
36064	* clos-class2.lisp (finalize-instance-standard-class): For the slot
36065	location table, use test STABLEHASH-EQ.
36066	(std-compute-slots): Use test STABLEHASH-EQL instead of EQL.
36067	(initialize-instance-structure-class): For the slot location table
36068	use test STABLEHASH-EQ.
36069	* clos-genfun2.lisp (prototype-table): Use hash table test
36070	STABLEHASH-EQUAL.
36071	* foreign1.lisp (*c-type-table*): Use hash table test STABLEHASH-EQ.
36072	(*object-table*): Use hash table test STABLEHASH-EQUAL.
36073	(*type-table*): Use hash table test STABLEHASH-EQ.
36074	* affi1.lisp (*library-functions*): Use hash table test STABLEHASH-EQ.
36075
360762004-06-04  Bruno Haible  <bruno@clisp.org>
36077
36078	Fix LOAD-TIME-VALUE.
36079	* compiler.lisp (const): Add ltv-form slot.
36080	(fnode): Add consts-ltv-forms slot.
36081	(c-LOAD-TIME-VALUE): Store the entire *form* in the const.
36082	(value-form-index): Add a ltv-form argument.
36083	(constvalue-index): Update.
36084	(kvalue-form-index): Add a ltv-form argument.
36085	(const-index): Update.
36086
360872004-06-03  Bruno Haible  <bruno@clisp.org>
36088
36089	Improved lambda list checking in DEFSTRUCT and DEFMETHOD.
36090	* lambdalist.lisp: New file, extracted from compiler.lisp.
36091	* init.lisp: Load it.
36092	* compiler.lisp (analyze-lambdalist, lambdalist-error): Moved to
36093	lambdalist.lisp.
36094	(c-analyze-lambdalist): New function.
36095	(lambda-list-to-signature, c-LAMBDABODY, c-LABELS, c-FUNCALL-INLINE):
36096	Use it instead of analyze-lambdalist.
36097	* defstruct.lisp (ds-make-boa-constructor): Use analyze-lambdalist.
36098	* clos-method2.lisp (analyze-method-description): Likewise.
36099	* clos-methcomb2.lisp (compute-effective-method-function): Update.
36100	* clos-package.lisp: Update.
36101	* makemake.in (LPARTS): Add lambdalist.
36102	* po/Makefile.devel (LISPSOURCES): Add lambdalist.
36103
361042004-05-15  Bruno Haible  <bruno@clisp.org>
36105
36106	* spvw.d (init_symbol_values): Initialize
36107	*WARN-ON-HASHTABLE-NEEDING-REHASH-AFTER-GC* to NIL.
36108	* hashtabl.d (warn_forced_gc_rehash): New function.
36109	(hash_lookup_builtin, hash_lookup_builtin_with_rehash): Call it when
36110	*WARN-ON-HASHTABLE-NEEDING-REHASH-AFTER-GC* is true.
36111
361122004-05-15  Bruno Haible  <bruno@clisp.org>
36113
36114	* hashtabl.d (clrhash): Reorganize the hash table immediately,
36115	instead of delaying the reorganization.
36116
361172004-05-15  Bruno Haible  <bruno@clisp.org>
36118
36119	* io.d (structure_reader): Accept both the new syntax with :TEST and
36120	the old syntax.
36121	(pr_orecord): For hash tables, make the output in the three possible
36122	cases more consistent.
36123
361242004-05-15  Bruno Haible  <bruno@clisp.org>
36125
36126	Add a hash code to symbols.
36127	* lispbibl.d (symbol_): Add hashcode field. Disable filler for
36128	LINUX_NOEXEC_HEAPCODES.
36129	* spvw.d (init_symbol_tab_1): Pre-initialize the symbol's hash code.
36130	* spvw_update.d (update_symbol_tab): Update the hashcode as well.
36131	* spvw_garcol.d (gc_markphase): Mark the hashcode as well.
36132	* spvw_typealloc.d (make_symbol): Pre-initialize the hash code.
36133	* constsym.d (LISPSYM_B): Pre-initialize the symbol's hash code.
36134	Disable filler for LINUX_NOEXEC_HEAPCODES.
36135	* hashtabl.d (hashcode1stable): Handle symbols specially.
36136	(gcinvariant_hashcode1stable_p): Return true also for symbols.
36137	(gcinvariant_hashcode2stable_p): Likewise.
36138	(gcinvariant_hashcode3stable_atom_p): Likewise.
36139	* genclisph.d (main): Update symbol_ definition.
36140
361412004-05-31  Bruno Haible  <bruno@clisp.org>
36142
36143	* clos-method1.lisp (lambda-list-keyword-p): Move to clos-method2.lisp.
36144	* clos-method2.lisp (lambda-list-keyword-p): New function, from
36145	clos-method1.lisp.
36146
361472004-05-31  Bruno Haible  <bruno@clisp.org>
36148
36149	* clos-genfun2.lisp (callinfo, gf-signature, gf-argorder, gf-methods)
36150	(gf-method-combination): Move to clos-genfun1.lisp.
36151	* clos-genfun1.lisp (callinfo, gf-signature, gf-argorder, gf-methods)
36152	(gf-method-combination): New functions, from clos-genfun2.lisp.
36153
361542004-05-31  Bruno Haible  <bruno@clisp.org>
36155
36156	* clos-methcomb2.lisp: Merge all of clos-genfun1, clos-methcomb2,
36157	clos-methcomb3, clos-methcomb4, clos-methcomb5.
36158	* clos-genfun1.lisp (method-applicable-p, sort-applicable-methods):
36159	Moved to clos-methcomb2.lisp.
36160	* clos-methcomb3.lisp: Remove file.
36161	* clos-methcomb4.lisp: Remove file.
36162	* clos-methcomb5.lisp: Remove file.
36163	* clos.lisp: Do not load them any more.
36164	* makemake.in (LPARTS): Remove clos-methcomb3, clos-methcomb4,
36165	clos-methcomb5.
36166	* po/Makefile.devel (LISPSOURCES): Likewise.
36167
361682004-05-31  Bruno Haible  <bruno@clisp.org>
36169
36170	* clos-genfun1.lisp (methods-agree-p, specializers-agree-p)
36171	(same-specializers-p): Move to clos-genfun3.lisp.
36172	* clos-genfun3.lisp (methods-agree-p, specializers-agree-p)
36173	(same-specializers-p): New functions, from clos-genfun1.lisp.
36174
361752004-05-31  Bruno Haible  <bruno@clisp.org>
36176
36177	* clos.lisp: Reorder method and method combination includes.
36178
361792004-06-10  Bruno Haible  <bruno@clisp.org>
36180
36181	* trace.lisp (tracer): Add max-depth slot.
36182	(trace1): Implement :max-depth option.
36183
361842004-05-13  Bruno Haible  <bruno@clisp.org>
36185
36186	* clos-class2.lisp (empty-ht): Warn if this hash table ever gets used
36187	nontrivially.
36188
361892004-05-13  Bruno Haible  <bruno@clisp.org>
36190
36191	* sequence.d (seq_duplicates): Use a hash table test FASTHASH-EQ
36192	instead of EQ, FASTHASH-EQL instead of EQL, FASTHASH-EQUAL instead of
36193	EQUAL.
36194	* compiler.lisp (c-CASE): Likewise.
36195	* room.lisp (%space): Likewise.
36196
361972004-05-14  Bruno Haible  <bruno@clisp.org>
36198
36199	* hashtabl.d (hashcode_tuple): Use inlined hashcode3stable_atom.
36200	* clos-genfun2.lisp (compute-dispatch): When the number of dispatching
36201	arguments is > 1, use a hash table with test STABLEHASH-EQUAL.
36202	* clos-class5.lisp (*update-instance-for-different-class-table*):
36203	Use hash table test FASTHASH-EQUAL.
36204
36205	* loop.lisp (loop-keywordp): Use hash table test FASTHASH-EQUAL.
36206
362072004-05-13  Bruno Haible  <bruno@clisp.org>
36208
36209	Make the hashcode of classes GC-invariant.
36210	* lispbibl.d (Class): New field 'hashcode'.
36211	* hashtabl.d (CLOS::CLASS-GETHASH): Inline hash_lookup and
36212	hashcode1stable. Use the class' hashcode directly.
36213	* clos-class2.lisp (class): Inherit from structure-stablehash.
36214	(std-compute-superclasses, add-direct-subclass, list-all-subclasses):
36215	Use a hash table with test STABLEHASH-EQ.
36216	* clos-class5.lisp (*make-instance-table*)
36217	(*reinitialize-instance-table*)
36218	(*update-instance-for-redefined-class-table*): Likewise.
36219	* clos-genfun2.lisp (compute-dispatch): When the number of dispatching
36220	arguments is 1, use a hash table with test STABLEHASH-EQ.
36221
362222004-05-13  Bruno Haible  <bruno@clisp.org>
36223
36224	Use FASTHASH-EQ as test for hash tables indexed by characters.
36225	* io.d (allocate_perchar_table, copy_perchar_table)
36226	(allocate_syntax_table, copy_readtable_contents): Use FASTHASH-EQ as
36227	test for MAKE-HASH-TABLE.
36228
362292004-05-14  Bruno Haible  <bruno@clisp.org>
36230
36231	New hash-table tests FASTHASH-EQL/EQUAL and STABLEHASH-EQL/EQUAL.
36232	* lispbibl.d (Hashtable): Add ht_gcinvariantfn field.
36233	* spvw.d (init_symbol_values): Initialize *EQL-HASHFUNCTION*,
36234	*EQUAL-HASHFUNCTION*.
36235	* hashtabl.d (gcinvariant_hashcode1_p): New function.
36236	(gcinvariant_hashcode1stable_p): New function.
36237	(gcinvariant_hashcode2_p): New function.
36238	(hashcode2stable): New function.
36239	(gcinvariant_hashcode2stable_p): New function.
36240	(hashcode3_cons0, hashcode3_cons1, hashcode3_cons2, hashcode3_cons3):
36241	Mark as inline.
36242	(gcinvariant_hashcode3_cons0_p, gcinvariant_hashcode3_cons1_p)
36243	(gcinvariant_hashcode3_cons2_p, gcinvariant_hashcode3_cons3_p)
36244	(gcinvariant_hashcode3_p): New functions.
36245	(hashcode3stable_atom, hashcode3stable_cons0, hashcode3stable_cons1)
36246	(hashcode3stable_cons2, hashcode3stable_cons3, hashcode3stable): New
36247	functions.
36248	(gcinvariant_hashcode3stable_atom_p)
36249	(gcinvariant_hashcode3stable_cons0_p)
36250	(gcinvariant_hashcode3stable_cons1_p)
36251	(gcinvariant_hashcode3stable_cons2_p)
36252	(gcinvariant_hashcode3stable_cons3_p, gcinvariant_hashcode3stable_p):
36253	New functions.
36254	(gcinvariant_hashcode4_cons0_p, gcinvariant_hashcode4_cons1_p)
36255	(gcinvariant_hashcode4_cons2_p, gcinvariant_hashcode4_cons3_p)
36256	(gcinvariant_hashcode4_p): New functions.
36257	(gcinvariant_Pseudofun): New type.
36258	(gcinvariantfn): New macro.
36259	(hashcode_gc_invariant_p): Use an indirection through gcinvariantfn.
36260	(get_eql_hashfunction, get_equal_hashfunction): New functions.
36261	(MAKE-HASH-TABLE): Recognize the tests {FAST,STABLE}HASH-{EQL,EQUAL}.
36262	Store the gcinvariant pseudofunction in the hash table.
36263	(hash_table_test): Return FASTHASH-EQL or STABLEHASH-EQL instead of
36264	EQL, FASTHASH-EQUAL or STABLEHASH-EQUAL instead of EQUAL.
36265	(SYSTEM::FASTHASH-STABLE-P, SYSTEM::STABLEHASH-STABLE-P): Use
36266	gcinvariant_hashcode1_p and gcinvariant_hashcode1stable_p, resp.
36267	* pseudofun.d: Add hashcode2stable, hashcode3stable, and all
36268	gcinvariant_hashcode* functions.
36269	* init.lisp: Export fasthash-eql, stablehash-eql, fasthash-equal,
36270	stablehash-equal from EXT.
36271	* defs1.lisp (ext:fasthash-eql, ext:stablehash-eql, ext:fasthash-equal)
36272	(ext:stablehash-equal): New function aliases.
36273
362742004-05-12  Bruno Haible  <bruno@clisp.org>
36275
36276	New hash-table tests FASTHASH-EQ and STABLEHASH-EQ.
36277	* lispbibl.d (htflags_invalid_B, htflags_gc_rehash_B): New macros.
36278	(mark_ht_invalid, mark_ht_valid, ht_validp): No need to rehash a
36279	table if all its objects have a GC-invariant hash code.
36280	(set_ht_invalid_if_needed): New macro.
36281	(htflags_warn_gc_rehash_B): New macro.
36282	(ht_test_code): Update.
36283	(Class): Add field subclass_of_stablehash_p.
36284	(StablehashStructure, StablehashInstance): New types.
36285	* spvw.d (init_symbol_values): Initialize *EQ-HASHFUNCTION*.
36286	* spvw_update.d: Provide customization through
36287	update_hashtable_invalid.
36288	* spvw_garcol.d (gar_col_normal, gar_col_compact, move_conses)
36289	[GENERATIONAL_GC]: Set update_hashtable_invalid to false.
36290	* spvw_memfile.d: Update.
36291	* hashtabl.d (hashcode1stable): New function.
36292	(htflags_test_eq_B, htflags_test_eql_B, htflags_test_equal_B)
36293	(htflags_test_equalp_B, htflags_stablehash_B): New macros.
36294	(hashcode_raw): Use hashcode1 only for FASTHASH-EQ.
36295	(hashcode_builtin): Likewise.
36296	(hash_lookup_builtin): Update.
36297	(instance_of_stablehash_p, hashcode_gc_invariant_p): New functions.
36298	(warn_key_forces_gc_rehash): New function.
36299	(hash_store): Update the htflags_gc_rehash_B bit. Optionally warn
36300	when it is being set.
36301	(hash_prepare_store): Update.
36302	(clrhash): Update the htflags_gc_rehash_B bit.
36303	(get_eq_hashfunction): New function.
36304	(MAKE-HASH-TABLE): Add :warn-if-needs-rehash-after-gc argument.
36305	Accept the tests FASTHASH-EQ and STABLEHASH-EQ.
36306	(hash_table_test): Return FASTHASH-EQ or STABLEHASH-EQ instead of EQ.
36307	(SYSTEM::FASTHASH-STABLE-P, SYSTEM::STABLEHASH-STABLE-P): New
36308	functions.
36309	* io.d (pr_orecord): Improve printing of hash tables.
36310	* init.lisp: Export fasthash-eq, stablehash-eq from EXT.
36311	Export standard-stablehash, structure-stablehash from CLOS and EXT.
36312	* clos-package.lisp: Export standard-stablehash, structure-stablehash.
36313	* defs1.lisp (ext:fasthash-eq, ext:stablehash-eq): New function
36314	aliases.
36315	* clos-class2.lisp (structure-stablehash): New class.
36316	(slotted-class): Add slot subclass-of-stablehash-p.
36317	(finalize-instance-standard-class): Initialize it.
36318	(std-compute-subclass-of-stablehash-p): New function.
36319	(initialize-instance-structure-class): Initialize it here too.
36320	* clos-class5.lisp (standard-stablehash): New class.
36321	* utils/clispload.lsp (*expected-failures*): Add HASH-TABLE-TEST.[1-4].
36322
363232004-06-08  Sam Steingold  <sds@gnu.org>
36324
36325	* modules/regexp/regexi.c (REGEXP-EXEC): check
36326	that the pattern is not NULL
36327
363282004-05-15  Bruno Haible  <bruno@clisp.org>
36329
36330	* lisparit.d (SYS::RANDOM-POSFIXNUM): New function.
36331
363322004-05-15  Bruno Haible  <bruno@clisp.org>
36333
36334	* init.lisp, type.lisp, subtypep.lisp, compiler.lisp, loop.lisp:
36335	* clos-class2.lisp, clos-closs5.lisp, clos-genfun2.lisp, room.lisp:
36336	* foreign1.lisp, affi1.lisp: Annotate all make-hash-table calls
36337	with :key-type and :value-type.
36338
363392004-05-15  Bruno Haible  <bruno@clisp.org>
36340
36341	* hashtabl.d (MAKE-HASH-TABLE): Add arguments :KEY-TYPE, :VALUE-TYPE.
36342
363432004-05-10  Bruno Haible  <bruno@clisp.org>
36344
36345	* hashtabl.d (hashcode_raw_user): Rename from hashcode5.
36346	(hashcode_raw, hashcode_raw_user): Update.
36347
363482004-05-09  Bruno Haible  <bruno@clisp.org>
36349
36350	* hashtabl.d (hashcode_builtin, hashcode_user): New functions.
36351	(hash_lookup_builtin): Use hashcode_builtin instead of hashcode.
36352	(hash_lookup_user): Use hashcode_user instead of hashcode.
36353
363542004-06-08  Arseny Slobodjuk  <ampy@ich.dvo.ru>
36355
36356	* makemake.in (ARGQ): new variable, shell command
36357	argument separator apostrophes. Is empty for command.com.
36358	(cflags.h): use it to fix MSVC build.
36359	(stdbool.h, stdint.h): use it to shorten the code.
36360	(all): make lisp.bsc (source code browser database)
36361	when msvc & debug.
36362	(lisp.bsc): new target when msvc & debug.
36363	(clisp.html): apostrophe problem again.
36364
363652004-06-07  Sam Steingold  <sds@gnu.org>
36366
36367	* .gdbinit (full): do not load NCLX demos
36368
363692004-06-07  Sam Steingold  <sds@gnu.org>
36370
36371	* modules/regexp/test.tst: commented out non-POSIX regexps
36372
363732004-06-07  Bruno Haible  <bruno@clisp.org>
36374
36375	* init.lisp (open-for-load): Use uppercase ~S in format strings so that
36376	the warnings can be shown during bootstrap. Use ~A, not ~S, to display
36377	pathnames.
36378
363792004-05-09  Bruno Haible  <bruno@clisp.org>
36380
36381	* hashtabl.d (hash_prepare_store): Fix bug introduced on 2003-05-13:
36382	EQUAL and EQUALP hash codes must not be cached across a GC.
36383
363842004-05-09  Bruno Haible  <bruno@clisp.org>
36385
36386	Unify the two hash table counts.
36387	* lispbibl.d (Hashtable): Remove ht_count field.
36388	(hashtable_length): Decrement.
36389	* hashtabl.d (HT_GOOD_P): Remove check of ht_count.
36390	(rehash): Store the count in the kvtable.
36391	(hash_store): Increment the count in the kvtable.
36392	(resize, clrhash): Store the count in the kvtable.
36393	(REMHASH): Decrement the count in the kvtable.
36394	(HASH-TABLE-COUNT): Return the count in the kvtable.
36395	(SYS::%SET-HASH-TABLE-WEAK-P): Copy also the count, in all cases.
36396	* io.d (pr_orecord): Update.
36397	* predtype.d (hash_table_equalp): Update.
36398	(typep_class, typep_classname): Use ht_size instead of ht_count.
36399	* spvw_debug.d (nobject_out1): Update.
36400
364012004-05-09  Bruno Haible  <bruno@clisp.org>
36402
36403	Let the GC clean up weak hash tables.
36404	* spvw_weak.d (weak_hashed_alist_update_one, weak_hashed_alist_update):
36405	New functions.
36406	(weak_clean_dead): Call weak_hashed_alist_update when appropriate.
36407	* hashtabl.d (hash_lookup_builtin, hash_lookup_user): Do not test
36408	whether the key/value pair has been garbage-collected.
36409
364102004-06-06  Sam Steingold  <sds@gnu.org>
36411
36412	* pathname.d (TRANSLATE-LOGICAL-PATHNAME): accept :ABSOLUTE
36413	* subr.d, subrkw.d (translate_logical_pathname): update
36414
364152004-06-06  Arseny Slobodjuk  <ampy@ich.dvo.ru>
36416
36417	* lispbibl.d (offsetofa): Define without brackets for MSVC
36418	to make subr_xlength a constant.
36419
364202004-06-03  Sam Steingold  <sds@gnu.org>
36421
36422	fix bug#211: NAMESTRING's second arg is non-compliant
36423	* pathname.d (TRANSLATE-PATHNAME): accept :ABSOLUTE argument to
36424	merge in the OS default pathname
36425	(NAMESTRING): do not accept a second optional argument, as per ANSI
36426	(DYNLOAD-MODULES): do not call NAMESTRING with 2 arguments
36427	* cfgwin32.lisp, edit.lisp (edit-file): call TRANSLATE-PATHNAME
36428	:ABSOLUTE T instead of NAMESTRING with 2 arguments
36429	* runprog.lisp (xstring): ditto
36430	* constobj.d (version): bump because of NAMESTRING signature change
36431	* subr.d, subrkw.d (namestring, translate_pathname): update
36432
364332004-05-30  Bruno Haible  <bruno@clisp.org>
36434
36435	* record.d (do_allocate_instance): Call FINALIZE-INHERITANCE instead
36436	of FINALIZE-CLASS. Fix GC-safety bug.
36437	(CLOS::%MAKE-INSTANCE): Call FINALIZE-INHERITANCE instead of
36438	FINALIZE-CLASS.
36439
364402004-05-30  Bruno Haible  <bruno@clisp.org>
36441
36442	* clos-slotdef1.lisp (convert-direct-slots): Check the return value
36443	from direct-slot-definition-class.
36444
364452004-05-09  Bruno Haible  <bruno@clisp.org>
36446
36447	Move the ht_itable and ht_freelist into ht_kvtable.
36448	* lispbibl.d (Hashtable): Remove ht_itable, ht_freelist fields.
36449	(hashtable_length): Decrement by 2.
36450	(HashedAlist): New type.
36451	(TheHashedAlist): New macro.
36452	(kvtable_data, ht_kvt_data): Remove macros.
36453	(map_hashtable, map_hashtable_nogc): Update.
36454	* hashtabl.d (HT_GOOD_P): Remove ht_itable check.
36455	(rehash, hash_lookup_builtin, hash_lookup_user, hash_store): Update.
36456	(allocate_kvt): Update the allocation size. Initialize the freelist
36457	field.
36458	(resize): Store the new itable in the kvtable. No need to initialize
36459	the freelist here.
36460	(hash_prepare_store, clrhash): Update.
36461	(MAKE-HASH-TABLE): Store the new itable in the kvtable. No need to
36462	initialize the freelist here. Fix GC-safety bug before an error
36463	message.
36464	(REMHASH, MAPHASH, SYS::HASH-TABLE-ITERATE): Update.
36465	(SYS::%SET-HASH-TABLE-WEAK-P): Copy also the itable and freelist from
36466	the old to the new kvtable.
36467	(CLOS::CLASS-TUPLE-GETHASH): Update.
36468	* io.d (pr_kvtable): Update. Optimize a loop invariant.
36469	* predtype.d (hash_table_equalp): Update. Do not pass nullobj to equalp.
36470	* spvw_debug.d (nobject_out1): Update.
36471	* spvw_weak.d (weak_clean_dead): For WeakHashedAlist, return true.
36472
364732004-06-03  Sam Steingold  <sds@gnu.org>
36474
36475	* comptran.d (R_R_atanh_R_R): fix ATANH on complex numbers
36476
364772004-06-03  Sam Steingold  <sds@gnu.org>
36478
36479	* list.d (replace_circular_list): new function
36480	(LAST): check the list argument for circularity, do not accept ATOMs
36481	(check_list_length): use replace_circular_list()
36482
364832004-06-03  Sam Steingold  <sds@gnu.org>
36484
36485	* clos-class2.lisp (list-direct-subclasses): avoid a compiler warning
36486
364872004-06-03  Sam Steingold  <sds@gnu.org>
36488
36489	* condition.lisp (retry-function-call): new function
36490	* clos-genfun5.lisp (no-applicable-method, no-primary-method):
36491	use RETRY-FUNCTION-CALL to make recoverable
36492	(no-next-method): use CERROR to make recoverable
36493
364942004-06-03  Sam Steingold  <sds@gnu.org>
36495
36496	* condition.lisp (check-value): use RETRY restart instead of CONTINUE
36497	(retry): new function, invokes RETRY restart (similar to CONTINUE,
36498	but is not triggered by EOF/Ctr-D)
36499	(check-value, correctable-error): associate the new restarts with
36500	the condition
36501
365022004-05-29  Bruno Haible  <bruno@clisp.org>
36503
36504	* clos-package.lisp: Import ext:proper-list-p.
36505	* clos-slotdef1.lisp (initialize-instance-<slot-definition>): Use it.
36506	Improve error messages.
36507	(initialize-instance-<direct-slot-definition>): Likewise.
36508	(initialize-instance-<effective-slot-definition>): Likewise.
36509
365102004-05-23  Bruno Haible  <bruno@clisp.org>
36511
36512	Many improvements to BACKQUOTE.
36513	* backquote.lisp (BQ-NCONCABLE): Remove macro. Now cleaned up by the
36514	macroexpander.
36515	(bq-expand): Do not test *backquote-optimize* any more. Call
36516	bq-append-multiple.
36517	(bq-transform): Call bq-list.
36518	(*backquote-optimize-cons*, *backquote-optimize-list*)
36519	(*backquote-optimize-append*, *backquote-optimize-nconc*)
36520	(*backquote-optimize-vector*): New variables replace
36521	*BACKQUOTE-OPTIMIZE*.
36522	(bq-splicing-p, bq-non-splicing): New functions.
36523	(bq-cons, bq-list, bq-append, bq-nconc): New functions.
36524	(bq-append-multiple): New function.
36525	(bq-optimize-for-list): Remove function.
36526	(bq-optimize-for-vector): Take the optimized list as arguments. Several
36527	fixes.
36528	(bq-optimize-append, bq-optimize-list*, bq-optimize-list, bq-eval)
36529	(bq-constant-p, eval-self-p, maybe-quote, maybe-unquote)
36530	(quoted-bq-operator-p, bq-reduce-nesting): Remove functions.
36531	(backquote-cons): Call bq-cons.
36532	(backquote-append): Call bq-append.
36533
365342004-05-09  Bruno Haible  <bruno@clisp.org>
36535
36536	* lispbibl.d (hash_lookup_builtin, hash_lookup_builtin_with_rehash):
36537	Remove Nptr_ argument.
36538	* hashtabl.d (lookup_Pseudofun): Remove Nptr_ argument.
36539	(hash_lookup_builtin, hash_lookup_builtin_with_rehash)
36540	(hash_lookup_user, hash_lookup): Likewise.
36541	(MAKE-HASH-TABLE, gethash, GETHASH, SYSTEM::PUTHASH, REMHASH)
36542	(CLOS::CLASS-GETHASH): Update.
36543	* pseudofun.d: Update.
36544
365452004-06-02  Sam Steingold  <sds@gnu.org>
36546
36547	more consistent macro/function naming, more error recovery
36548	* stream.d (check_stream, check_streamtype, check_wr_int): remove
36549	(get_streamtype_replacement): new function
36550	(CHECK_streamtype, CHECK_builtin_stream, ASSERT_wr_int): new macros
36551	(test_stream_args): remove, replace with ...
36552	(check_stream_args): new function
36553	(SYNONYM-STREAM-SYMBOL, BROADCAST-STREAM-STREAMS)
36554	(CONCATENATED-STREAM-STREAMS, GENERIC-STREAM-CONTROLLER)
36555	(TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM)
36556	(ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM)
36557	(test_n_bytes_args): use CHECK_streamtype
36558	(stream_handles): fix a bug: missing `return' in fixnum case
36559	(MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM): use check_stream_args()
36560	(GENERIC-STREAM-P, TERMINAL-RAW, INPUT-STREAM-P, OUTPUT-STREAM-P)
36561	(STREAM-EXTERNAL-FORMAT, INTERACTIVE-STREAM-P, READ-BYTE-LOOKAHEAD)
36562	(READ-BYTE-WILL-HANG-P, WRITE-BYTE, LINE-NUMBER, ALLOW-READ-EVAL):
36563	update for the check_stream() changes
36564	(BUILT-IN-STREAM-ELEMENT-TYPE): use CHECK_builtin_stream()
36565	(bitbuff_ixu_sub, bitbuff_ixs_sub, wr_by_iau8_unbuffered)
36566	(wr_by_iau8_buffered, WRITE-BYTE, WRITE-INTEGER): use CHECK_wr_int()
36567	* io.d (test_disp_sub_char): completely recoverable, shift STACK args
36568	(SET-DISPATCH-MACRO-CHARACTER, GET-DISPATCH-MACRO-CHARACTER): update
36569	(test_stream_arg): remove, replace with ...
36570	(check_stream_arg): new function
36571	(RPAR-READER, STRING-READER, QUOTE-READER, LINE-COMMENT-READER)
36572	(test_no_infix, CHAR-READER, radix_1, RADIX-READER, UNINTERNED-READER)
36573	(BIT-VECTOR-READER, VECTOR-READER, ARRAY-READER, READ-EVAL-READER)
36574	(LOAD-EVAL-READER, LABEL-DEFINITION-READER, NOT-READABLE-READER)
36575	(SYNTAX-ERROR-READER, CLOSURE-READER, PPRINT-NEWLINE, %CIRCLEP)
36576	(%PPRINT-LOGICAL-BLOCK, FORMAT-TABULATE, WRITE, PRIN1, PRINT, PPRINT)
36577	(PRINC, WRITE-CHAR, write_string_up, TERPRI, FRESH-LINE, FINISH-OUTPUT)
36578	(FORCE-OUTPUT, CLEAR-OUTPUT, WRITE-UNREADABLE, LINE-POSITION): use it
36579	(test_istream, test_ostream): remove, replace with ..
36580	(check_istream, check_ostream): new functions
36581	(read_w, READ-DELIMITED-LIST, READ-LINE, READ-CHAR, UNREAD-CHAR)
36582	(PEEK-CHAR, LISTEN, READ-CHAR-WILL-HANG-P, READ-CHAR-NO-HANG)
36583	(CLEAR-INPUT): use check_istream()
36584	(PARSE-INTEGER): recover from bad radix
36585	(PRINT-STRUCTURE): use check_stream()
36586	(WRITE-SPACES, PPRINT-INDENT, ): use check_ostream()
36587	* error.d, lispbibl.d (check_stream_replacement): add
36588	(fehler_stream, fehler_streamtype): remove
36589	* debug.d (DESCRIBE-FRAME): use check_stream()
36590	instead of fehler_stream()
36591	* sequence.d (READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE)
36592	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): ditto
36593	* constsym.d (x11_socket_stream, generic_stream): add
36594
365952004-06-02  Sam Steingold  <sds@gnu.org>
36596
36597	* list.d (up2_test, up2_test_not, up_test, up_test_not, up_if)
36598	(up_if_not): simplify return statement
36599
366002004-06-02  Bruno Haible  <bruno@clisp.org>
36601
36602	* list.d (check_cons): Remove macro.
36603	(check_cons): New function.
36604	(RPLACA, SYS::%RPLACA, RPLACD, SYS::%RPLACD): Use it.
36605	(SYS::LIST-ACCESS, SYS::LIST-ACCESS-SET): Likewise.
36606
366072004-05-23  Bruno Haible  <bruno@clisp.org>
36608
36609	* backquote.lisp (bq-expand-list): Use iteration instead of recursion.
36610
366112004-05-16  Bruno Haible  <bruno@clisp.org>
36612
36613	Generate direct slots for DEFSTRUCT.
36614	* clos-slotdef1.lisp (*<structure-direct-slot-definition>-defclass*):
36615	Add an initff slot.
36616	(structure-direct-slot-definition-initff): New accessor.
36617	(initialize-instance-<structure-direct-slot-definition>): Accept
36618	initff argument.
36619	(make-instance-<structure-direct-slot-definition>): Update.
36620	(make-load-form-<structure-direct-slot-definition>): New function.
36621	* defstruct.lisp (defstruct): Generate a list of direct slots as part
36622	of the defstruct-description.
36623	* io.d (structure_reader, pr_structure_default): Update.
36624
366252004-05-09  Bruno Haible  <bruno@clisp.org>
36626
36627	Merge ht_kvtable and ht_ntable. For weak hash tables, use
36628	WeakHashedAlist instead of WeakAlist.
36629	* lispbibl.d (Rectype_WeakHashedAlist_Key)
36630	(Rectype_WeakHashedAlist_Value, Rectype_WeakHashedAlist_Either)
36631	(Rectype_WeakHashedAlist_Both): New enum items.
36632	(Hashtable): Remove ht_ntable field.
36633	(hashtable_length): Decrement.
36634	(kvtable_data): Update.
36635	(WeakHashedAlist): New type.
36636	(TheWeakHashedAlist): New macro.
36637	(Lrecord_nonweak_length): Update.
36638	(map_hashtable, map_hashtable_nogc): Update.
36639	* spvw_gcmark.d (gc_mark): Handle Rectype_WeakHashedAlist_*.
36640	* spvw_weak.d (max_watchset_count, get_watchset)
36641	(propagate_through_weak, weak_clean_dead, weak_must_activate): Handle
36642	Rectype_WeakHashedAlist_*.
36643	* spvw_circ.d (get_circ_mark, get_circ_unmark): Handle
36644	Rectype_WeakHashedAlist_*.
36645	* spvw_debug.d (nobject_out1): Update.
36646	* hashtabl.d (HT_GOOD_P): Remove ht_ntable check.
36647	(rehash, hash_lookup_builtin, hash_lookup_user): Use KVptr+2 instead of
36648	Nptr.
36649	(hash_store): Likewise.
36650	(hash_table_weak_type): ht_kvtable is now a Rectype_WeakHashedAlist_*.
36651	(allocate_kvt): Allocate a vector with 3*maxcount entries, or a
36652	WeakHashedAlist.
36653	(prepare_resize): Do not allocate an ntable any more.
36654	(resize): Fill extended kvtable instead of ntable.
36655	(clrhash, MAPHASH, HASH-TABLE-COUNT): Update.
36656	(SYS::HASH-TABLE-ITERATE): Update.
36657	(SYS::%SET-HASH-TABLE-WEAK-P): Update.
36658	(CLASS-TUPLE-GETHASH): Use KVptr+2 instead of the ntable.
36659	* io.d (pr_kvtable): Update.
36660	(pr_orecord): Update hashtable handling. Add Rectype_WeakHashedAlist_*
36661	handling.
36662	* predtype.d (hash_table_equalp): Update.
36663	(TYPE-OF, CLASS-OF): Handle Rectype_WeakHashedAlist_*.
36664	(enum_hs_internal_weak_hashed_alist): New enum item.
36665	(heap_statistics_mapper): Handle Rectype_WeakHashedAlist_*.
36666
366672004-06-01  Sam Steingold  <sds@gnu.org>
36668
36669	more errors are recoverable
36670	* list.d (COPY-LIST, NRECONC): use check_list() instead of fehler_list()
36671	(fehler_cons): replaced with check_cons_replacement() and check_cons()
36672	(RPLACA, %RPLACA, RPLACD, %RPLACD, LIST-ACCESS, LIST-ACCESS-SET):
36673	use check_cons()
36674
366752004-06-01  Sam Steingold  <sds@gnu.org>
36676
36677	* list.d (check_list_length): check that the argument is a
36678	non-circular list and compute its length
36679	(BUTLAST, NBUTLAST): use it
36680
366812004-06-01  Sam Steingold  <sds@gnu.org>
36682
36683	* hashtabl.d (hashcode4) [PATHNAME_WIN32]: declare global
36684
366852004-05-31  Bruno Haible  <bruno@clisp.org>
36686
36687	* compiler.lisp (c-TYPEP): Generate CLOS::TYPEP-CLASS call also when
36688	the class has no proper name.
36689
366902004-05-29  Bruno Haible  <bruno@clisp.org>
36691
36692	* record.d (SYS::%UNBOUND): New function.
36693
366942004-05-27  Bruno Haible  <bruno@clisp.org>
36695
36696	* lispbibl.d (proper_list_p): New declaration.
36697	* list.d (proper_list_p): New function.
36698	* predtype.d (EXT:PROPER-LIST-P): New function.
36699	* error.d (fehler_proper_list): Tweak error message.
36700	* init.lisp: Export ext:proper-list-p.
36701
367022004-05-23  Bruno Haible  <bruno@clisp.org>
36703
36704	* backquote.lisp (bq-nconcable): Rename from bq-nconc.
36705
367062004-05-10  Bruno Haible  <bruno@clisp.org>
36707
36708	* clos-class2.lisp (add-direct-subclass): Use a weak hash-table when
36709	the list has more than 10 elements.
36710	(remove-direct-subclass, list-direct-subclasses): Recognize the
36711	possibility that direct-subclasses is a hash-table.
36712
367132004-05-09  Bruno Haible  <bruno@clisp.org>
36714
36715	* lispbibl.d (hash_lookup_builtin, hash_lookup_builtin_with_rehash):
36716	New declarations.
36717	(set_ht_invalid, set_ht_valid): New macros.
36718	* spvw_garcol.d (gar_col_normal, gar_col_compact, move_conses): Use
36719	set_ht_invalid instead of mark_ht_invalid.
36720	* spvw_memfile.d (loadmem_from_handle): Likewise.
36721	* spvw_circ.d (subst_circ_mark): Likewise.
36722	* hashtabl.d (rehash): Use set_ht_valid instead of mark_ht_valid.
36723	(hash_lookup_builtin): Assume table is valid.
36724	(hash_lookup_builtin_with_rehash): New function.
36725	(resize, clrhash): Use set_ht_invalid instead of mark_ht_invalid.
36726	* pseudofun.d: Add hash_lookup_builtin_with_rehash.
36727
367282004-05-30  Sam Steingold  <sds@gnu.org>
36729
36730	* _distmakefile (clisp) [UNIX_BINARY_DISTRIB]: do not depend on
36731	src/clisp.c, use '"' for quoting
36732
367332004-05-28  Bruno Haible  <bruno@clisp.org>
36734
36735	* lispbibl.d (symbol_): Check the size only if LINUX_NOEXEC_HEAPCODES.
36736
367372004-05-28  Bruno Haible  <bruno@clisp.org>
36738
36739	* makemake.in: Treat GCC 4 like GCC 3.4.
36740
367412004-05-28  Sam Steingold  <sds@gnu.org>
36742
36743	* init.lisp (open-for-load) [compiler]: recompile the bad file
36744	when *LOAD-OBSOLETE-ACTION* is :COMPILE
36745
367462004-05-21  Bruno Haible  <bruno@clisp.org>
36747
36748	Remove SELFMADE_MMAP.
36749	* lispbibl.d: Remove SELFMADE_MMAP functionality.
36750	* spvw.d: Likewise.
36751	* spvw_heap.d: Likewise.
36752	* spvw_global.d: Likewise.
36753	* spvw_fault.d: Likewise.
36754	* spvw_sigsegv.d: Likewise.
36755	* spvw_garcol.d: Likewise.
36756	* spvw_genera1.d: Likewise.
36757	* spvw_memfile.d: Likewise.
36758	* unixaux.d: Likewise.
36759	* win32aux.d: Likewise.
36760	* pathname.d: Likewise.
36761
367622004-05-23  Bruno Haible  <bruno@clisp.org>
36763
36764	* backquote.lisp (bq-expand): Use APPEND, not NCONC, to concatenate
36765	the parts of a vector. (Think of `#(,@(f1) ,@(f2)).)
36766
367672004-05-09  Bruno Haible  <bruno@clisp.org>
36768
36769	* lispbibl.d (Hashtable): New field ht_lookupfn.
36770	(hashtable_length): Increment.
36771	* hashtabl.d (lookup_Pseudofun): New type.
36772	(lookupfn): New macro.
36773	(hash_lookup_builtin, hash_lookup_user): New functions.
36774	(hash_lookup): Turn into a macro.
36775	(MAKE-HASH-TABLE): Initialize ht_lookupfn.
36776	* pseudofun.d: Add hash_lookup_builtin, hash_lookup_user.
36777
367782004-05-09  Bruno Haible  <bruno@clisp.org>
36779
36780	* lispbibl.d (Hashtable): Add fields ht_hashcodefn, ht_testfn.
36781	(hashtable_length): Increment by 2.
36782	* hashtabl.d (hashcode2, hashcode3, hashcode4): Make global.
36783	(hashcode_Pseudofun, test_Pseudofun): New types.
36784	(hashcodefn, testfn): New macros.
36785	(hashcode_raw, hash_lookup): Use the pseudofuns.
36786	(MAKE-HASH-TABLE): Initialize ht_hashcodefn and ht_testfn.
36787	* pseudofun.d: Declare pseudofuns eql, equal, equalp, hashcode[234].
36788
367892004-05-27  Sam Steingold  <sds@gnu.org>
36790
36791	an improper docstring does not warrant an error
36792	* control.d (parse_doc_decl): replaces fehler_docstring()
36793	(fehler_docstring): Remove function.
36794	(LET, LET*, LOCALLY, SYMBOL-MACROLET, MULTIPLE-VALUE-BIND, PARSE-BODY):
36795	use it instead of fehler_docstring()
36796
367972004-05-25  Bruno Haible  <bruno@clisp.org>
36798
36799	Make DEBUG_GCSAFETY test sharper.
36800	* lispbibl.d (gcinvariant_oint_p, nonimmprobe): New macros.
36801	(gcv_object_t::operator object, gcv_object_t::gcv_object_t)
36802	(pgci_pointable, ngci_pointable): Use nonimmprobe.
36803
368042004-05-23  Bruno Haible  <bruno@clisp.org>
36805
36806	* backquote.lisp (backquote-reader, bq-expand): Treat vectors of
36807	element types other than T like strings and bit-vectors.
36808
368092004-05-21  Bruno Haible  <bruno@clisp.org>
36810
36811	* Makefile.devel (multibuild-linux-x86): Add builds with both
36812	HEAPCODES variants, and build with spvw_mixed_blocks-staggered
36813	and -fixedmemsize.
36814
368152004-05-21  Bruno Haible  <bruno@clisp.org>
36816
36817	Make it possible to combine GENERATIONAL_GC, HEAPCODES, NO_MORRIS_GC.
36818	* spvw_garcol.d (update): Provide a definition for the case
36819	GENERATIONAL_GC && HEAPCODES && !MORRIS_GC.
36820
368212004-05-21  Bruno Haible  <bruno@clisp.org>
36822
36823	Make it possible to test both SPVW_MIXED_BLOCKS_OPPOSITE and
36824	SPVW_MIXED_BLOCKS_STAGGERED.
36825	* spvw.d (SPVW_MIXED_BLOCKS_OPPOSITE): Define if CONS_HEAP_GROWS_DOWN.
36826	(SPVW_MIXED_BLOCKS_STAGGERED): Define if CONS_HEAP_GROWS_UP.
36827
368282004-05-21  Bruno Haible  <bruno@clisp.org>
36829
36830	Make it possible to simulate microcomputer memory management on Unix.
36831	* lispbibl.d (VIRTUAL_MEMORY): Do not define if NO_VIRTUAL_MEMORY is
36832	defined.
36833
368342004-05-21  Bruno Haible  <bruno@clisp.org>
36835
36836	* lispbibl.d (BT_CHECK, unwind_back_trace): Depend on DEBUG_BACKTRACE,
36837	not DEBUG_SPVW.
36838
368392004-05-15  Bruno Haible  <bruno@clisp.org>
36840
36841	Let DEFSTRUCT generate regular (SETF FOO-BAR) functions instead of
36842	DEFSETF expanders.
36843	* defstruct.lisp (ds-make-readers): Rename from ds-make-accessors.
36844	(ds-make-writers): Rename from ds-make-defsetfs. Generate a DEFUN
36845	instead of a DEFSETF. Remove EVAL-WHEN hack.
36846	(defstruct): Update.
36847
368482004-05-15  Bruno Haible  <bruno@clisp.org>
36849
36850	* clos-slotdef3.lisp: Redefine the accessor functions with add
36851	type-checking.
36852
368532004-05-09  Bruno Haible  <bruno@clisp.org>
36854
36855	* lispbibl.d (Hashtable): Change type of ht_size to uintL.
36856	(hashtable_length): Update.
36857	(hashtable_xlength): New macro.
36858	(allocate_hash_table): Use hashtable_xlength.
36859	* hashtabl.d (HT_GOOD_P, hashcode_cook, hashcode, rehash, hash_lookup)
36860	(CLASS-TUPLE-GETHASH): Use an unboxed ht_size.
36861	(resize, MAKE-HASH-TABLE): Update.
36862	* spvw_debug.d (nobject_out1): Update.
36863
368642004-05-26  Bruno Haible  <bruno@clisp.org>
36865
36866	* spvw.d (main): Change effect of varobjects_misaligned on heap_limit.
36867	* spvw_garcol.d (gar_col_normal): Likewise.
36868
368692004-05-20  Bruno Haible  <bruno@clisp.org>
36870
36871	Increase memory sizes for builds with fixed memory size.
36872	* makemake.in (interpreted.mem, halfcompiled.mem): Grant 1400 KW.
36873	(*.fas): Grant 1800 KW.
36874	(stage/*.fas): Grant 750 KW.
36875	(check-ansi-tests, check-ansi-tests-debug): Grant 30000 KW.
36876
368772004-05-26  Sam Steingold  <sds@gnu.org>
36878
36879	* pathname.d (MAKE-LOGICAL-PATHNAME): accept :DEVICE :UNSPECIFIC
36880	because PATHNAME-DEVICE for LOGICAL-PATHNAME returns :UNSPECIFIC
36881
368822004-05-26  Sam Steingold  <sds@gnu.org>
36883
36884	* Makefile.devel (src--distrib): touch src/VERSION to avoid the
36885	common problem of autoconf calls on user machine
36886
368872004-05-26  Sam Steingold  <sds@gnu.org>
36888
36889	* makemake.in (distrib) [win32]: remove quotes that confuse find(1)
36890
368912004-05-26  Bruno Haible  <bruno@clisp.org>
36892
36893	* lispbibl.d (oint_type_mask, oint_data_shift, oint_data_mask)
36894	[LINUX_NOEXEC_HEAPCODES]: Move down by one bit, so we need only 1/8th
36895	of the address space for the immediate objects.
36896	(immediate_object_p, machinep): Update.
36897	* spvw.d (main) [LINUX_NOEXEC_HEAPCODES]: Attempt to reserve the range
36898	0xC0000000..0xDFFFFFFF.
36899
369002004-05-25  Bruno Haible  <bruno@clisp.org>
36901
36902	* eval.d (nest_var): Use fake_gcv_object. Needed for DEBUG_GCSAFETY.
36903
369042004-05-23  Bruno Haible  <bruno@clisp.org>
36905
36906	* backquote.lisp (bq-expand): Inline bq-expand-cons, bq-expand-vector.
36907	(bq-expand-cons, bq-expand-vector): Remove functions.
36908	(bq-expand-list): Simplify.
36909
369102004-05-20  Bruno Haible  <bruno@clisp.org>
36911
36912	Speed up the FILL-STREAMs.
36913	* fill-out.lisp (stream-write-char-sequence@fill-stream): New method.
36914
369152004-05-15  Bruno Haible  <bruno@clisp.org>
36916
36917	* defstruct.lisp (ds-accessor-name): New function.
36918	(ds-make-accessors, ds-make-defsetfs): Use it.
36919
369202004-04-15  Bruno Haible  <bruno@clisp.org>
36921
36922	* clos-slotdef1.lisp (*<slot-definition>-...-location*): New constants.
36923	(slot-definition-...): Use them.
36924	* clos-slotdef3.lisp (slot-definition-...): Likewise.
36925
369262004-05-08  Bruno Haible  <bruno@clisp.org>
36927
36928	* lispbibl.d (Rectype_WeakKVT): Remove enum value.
36929	(weakkvt_t, WeakKVT): Remove types.
36930	(weakkvt_length, Weakkvt_length, TheWeakKVT): Remove macros.
36931	(Lrecord_nonweak_length): Update.
36932	(if_recordp): Remove handling of Rectype_WeakKVT.
36933	(weakkvtp): Remove macro.
36934	(allocate_weakkvt): Remove declaration.
36935	* spvw.d (main): Do not initialize O(all_weakkvtables).
36936	* spvw_garcol.d (gar_col_normal): Remove obsolete and broken handling
36937	of weakkvt objects.
36938	* spvw_gcmark.d (gc_mark): Remove handling of Rectype_WeakKVT.
36939	* spvw_typealloc.d (allocate_weakkvt_low, allocate_weakkvt): Remove
36940	functions.
36941	* io.d (pr_weakkvt): Remove function.
36942	(pr_orecord): Remove handling of Rectype_WeakKVT.
36943	* predtype.d (TYPE-OF, CLASS-OF): Remove handling of Rectype_WeakKVT.
36944	(enum_hs_weakkvt): Remove enum value.
36945	(heap_statistics_mapper): Remove handling of Rectype_WeakKVT.
36946
369472004-05-08  Bruno Haible  <bruno@clisp.org>
36948
36949	* clos-class2.lisp (map-direct-subclasses): Remove function.
36950	(add-direct-subclass, remove-direct-subclass, list-direct-subclasses):
36951	Use a weak-list instead of a list of weak-pointers.
36952
369532004-05-26  Bruno Haible  <bruno@clisp.org>
36954
36955	* functions.lisp (function-lambda-expression): Moved to here from
36956	defs2.lisp.
36957	(function-name): Likewise. Make more efficient.
36958	* defs2.lisp (function-lambda-expression, function-name): Move to
36959	functions.lisp.
36960
369612004-05-25  Sam Steingold  <sds@gnu.org>
36962
36963	fix bug#212: Win32 bug: LISTEN eats the first character
36964	* stream.d (listen_handle): always place the byte read() into *byte
36965	(low_fill_buffered_handle): do not lose the byte read by listen_handle()
36966
369672004-05-25  Sam Steingold  <sds@gnu.org>
36968
36969	* clos-class2.lisp (make-instance-structure-class)
36970	(define-structure-class): avoid some compilation warnings
36971	* clos-class5.lisp (update-instance-for-redefined-class): ditto
36972
369732004-05-25  Sam Steingold  <sds@gnu.org>
36974
36975	do not use the side-effect class of functions that might change,
36976	as per <http://www.lisp.org/HyperSpec/Body/sec_3-2-2-3.html>
36977	* control.d (FUNCTION-SIDE-EFFECT): also return FDEFINITION and NAME
36978	* eval.d (FUNTAB): also inline FUNCTION-SIDE-EFFECT and FUNCTION-NAME-P
36979	* constobj.d (version): bump
36980	* compiler.lisp (proclaimed-inline-p): new function
36981	(f-side-effect): use the side-effect class only for functions
36982	in the same compilation unit, proclaimed INLINE, residing in
36983	locked packages, or anonymous
36984
369852004-05-25  Sam Steingold  <sds@gnu.org>
36986
36987	* defs2.lisp (function-name): new inline function
36988	* compiler.lisp (function-signature): use it
36989	* documentation.lisp (documentation): ditto
36990
369912004-05-24  Bruno Haible  <bruno@clisp.org>
36992
36993	* built.d: New file.
36994	* lispbibl.d (built_flags): New declaration.
36995	* spvw.d (init_object_tab): Call it.
36996	* makemake.in (CPARTS): Add built. Let built.o, not spvw.o, depend on
36997	cflags.h.
36998	* po/Makefile.devel (DSOURCES): Add built.
36999
370002004-05-23  Bruno Haible  <bruno@clisp.org>
37001
37002	* backquote.lisp: Reorder.
37003	(backquote, bq-nconc): Moved to here from init.lisp.
37004	(*unquote-occurred*): Rename from *unquote-occured*.
37005	(bq-expand-vector): Rename from bq-vec-expand.
37006	(bq-optimize-for-list): Rename from bq-optimize.
37007	(bq-optimize-for-vector): Rename from bq-optimize-vec.
37008	* init.lisp (backquote, bq-nconc): Moved to backquote.lisp.
37009
370102004-05-23  Bruno Haible  <bruno@clisp.org>
37011
37012	Make SPVW_MIXED_BLOCKS_STAGGERED work with LINUX_NOEXEC_HEAPCODES.
37013	* lispbibl.d (nonimmediate_heapnr) [HEAPCODES]: New macro.
37014	* spvw_genera1.d (rebuild_old_generation_cache): Use it.
37015
370162004-05-22  Bruno Haible  <bruno@clisp.org>
37017
37018	Make DEBUG_GCSAFETY work with LINUX_NOEXEC_HEAPCODES.
37019	* lispbibl.d (nonimmsubrp): New function/macro.
37020	(gcv_object_t::gcv_object_t, pgci_pointable, ngci_pointable): Use it.
37021
370222004-05-23  Bruno Haible  <bruno@clisp.org>
37023
37024	* spvw_allocate.d (make_space_gc) [SPVW_BLOCKS]: Take
37025	varobjects_misaligned into account.
37026	* spvw_memfile.d (loadmem_from_handle): Take varobjects_misaligned into
37027	account.
37028
370292004-05-08  Bruno Haible  <bruno@clisp.org>
37030
37031	Make weak hash tables work.
37032	* lispbibl.d (ht_weak_p): Simplify.
37033	(ht_weak): Remove macro.
37034	(kvtable_data): Simplify. Use WeakAlist.
37035	(hash_table_weak_type): New declaration.
37036	* hashtabl.d (hash_lookup): When the key is unbound, no need to test
37037	the value for unbound as well.
37038	(hash_store): Increment the count in the weak-alist vector as well.
37039	(hash_table_weak_type, allocate_kvt): New functions.
37040	(prepare_resize): Use allocate_kvt.
37041	(resize): Update. Initialize the count in the weak-alist vector too.
37042	(HASH-TABLE-COUNT): Take the count from the weak-alist vector.
37043	(EXT:HASH-TABLE-WEAK-P): Update.
37044	(SYS::%SET-HASH-TABLE-WEAK-P): Mostly rewritten.
37045	* io.d (pr_orecord): Use hash_table_weak_type instead of ht_weak.
37046	* predtype.d (hash_table_equalp): Likewise.
37047
370482004-04-26  Bruno Haible  <bruno@clisp.org>
37049
37050	* clos-class2.lisp (std-compute-cpl): Use "the list" declaration,
37051	to enable compiler optimization.
37052	* clos-class5.lisp (valid-make-instance-keywords)
37053	(valid-reinitialize-instance-keywords)
37054	(valid-update-instance-for-redefined-class-keywords)
37055	(valid-update-instance-for-different-class-keywords): Likewise.
37056	* clos-genfun2.lisp (compute-dispatch): Likewise.
37057	* clos-genfun5.lisp (compute-applicable-methods): Likewise.
37058	* clos-methcomb3.lisp (standard-method-combination-expander): Likewise.
37059
370602004-05-23  Sam Steingold  <sds@gnu.org>
37061
37062	allow () to match NIL in destructuring lambda lists
37063	* utils/clispload.lsp (regression-test::*expected-failures*):
37064	remove MACROLET.39
37065	* defmacro.lisp (%null-tests): proclaim SPECIAL
37066	(empty-pattern): new function
37067	(analyze1): treat () as an empty pattern, not symbol NIL
37068	(make-macro-expansion): bind %NULL-TESTS and call them
37069	* places.lisp (define-setf-expander, defsetf): ditto
37070	* macros2.lisp (deftype): ditto
37071
370722004-05-23  Sam Steingold  <sds@gnu.org>
37073
37074	* clos-class0.lisp (print-object): avoid a compilation warning
37075
370762004-05-22  Sam Steingold  <sds@gnu.org>
37077
37078	* spvw.d (init_object_tab): init O(system_type) here...
37079	* constobj.d (system_type): ...not here
37080	* makemake.in: only spvw.d depends on cflags.h, not everything
37081
370822004-05-22  Sam Steingold  <sds@gnu.org>
37083
37084	* defstruct.lisp (defstruct): avoid a compiler warning
37085
370862004-05-22  Sam Steingold  <sds@gnu.org>
37087
37088	* spvw.d (init_object_tab): fix a typo in features_initstring
37089
370902004-05-22  Bruno Haible  <bruno@clisp.org>
37091
37092	* utils/clispload.lsp (regression-test::*expected-failures*):
37093	Add PRINT.ARRAY.2.12, PRINT.ARRAY.2.14, PRINT.ARRAY.2.16,
37094	PRINT.ARRAY.2.18, PRINT.ARRAY.2.19.
37095
370962004-05-22  Bruno Haible  <bruno@clisp.org>
37097
37098	* utils/clispload.lsp (regression-test::*expected-failures*):
37099	Remove MAKE-INSTANCES-OBSOLETE.2, PRINT.SYMBOL.PREFIX.3. Paul fixed
37100	them.
37101
371022004-05-22  Bruno Haible  <bruno@clisp.org>
37103
37104	* lispbibl.d (symbol_): Add a filler for LINUX_NOEXEC_HEAPCODES. Check
37105	that the size is a multiple of varobject_alignment.
37106	* genclisph.d (main): Update.
37107	* constsym.d (LISPSYM_B): Add initializer for filler.
37108
371092004-05-22  Bruno Haible  <bruno@clisp.org>
37110
37111	* spvw_weak.d (MARK): Use canon() instead of canonaddr().
37112
371132004-05-21  Bruno Haible  <bruno@clisp.org>
37114
37115	New heapcodes scheme for Linux/x86 systems.
37116	* lispbibl.d: Recognize CFLAGS macros STANDARD_HEAPCODES,
37117	LINUX_NOEXEC_HEAPCODES.
37118	(STANDARD_HEAPCODES, LINUX_NOEXEC_HEAPCODES): New macros.
37119	(LINUX_NOEXEC_HEAPCODES): Use garcol_bit_o = 0.
37120	(machine_bias, varobject_bias, cons_bias, immediate_bias, subr_bias)
37121	(imm_type_shift, fixnum_type, sfloat_type, char_type, read_label_type)
37122	(system_type, sign_bit_t, sign_bit_o, bignum_bit_o, number_immediatep)
37123	(varobjects_misaligned, nonimmediate_bias_mask)
37124	(nonimmediate_heapcode_mask, type_data_object, type_zero_oint)
37125	(immediate_object_p, gcinvariant_object_p, gcinvariant_bias_p)
37126	[LINUX_NOEXEC_HEAPCODES]: New definitions for LINUX_NOEXEC_HEAPCODES.
37127	(varobject_alignment): Define to 8 for LINUX_NOEXEC_HEAPCODES.
37128	(consp, varobjectp): Generalize for LINUX_NOEXEC_HEAPCODES.
37129	(subrp) [LINUX_NOEXEC_HEAPCODES]: New definition for
37130	LINUX_NOEXEC_HEAPCODES.
37131	(immsubrp) [HEAPCODES]: New macro.
37132	(machinep) [LINUX_NOEXEC_HEAPCODES]: New definition for
37133	LINUX_NOEXEC_HEAPCODES.
37134	(case_Rectype_Subr_above): New macro.
37135	(FB5, FB4, FB3, FB2, FB1): New definitions for
37136	LINUX_NOEXEC_HEAPCODES.
37137	(makebottomword, framesize): New macros.
37138	(framecode) [LINUX_NOEXEC_HEAPCODES]: New definition for
37139	LINUX_NOEXEC_HEAPCODES.
37140	(topofframe, framebottomword): Simplify by using framesize,
37141	makebottomword.
37142	* genclisph.d (main): Update. Emit definitions of HEAPCODES,
37143	makebottomword.
37144	* spvw.d (main): If TRIVIALMAP_MEMORY & SPVW_MIXED_BLOCKS_STAGGERED
37145	& LINUX_NOEXEC_HEAPCODES, use 0xBF000000 as upper bound for all heaps.
37146	* spvw_garcol.d (alive) [HEAPCODES]: Make it work for
37147	LINUX_NOEXEC_HEAPCODES too.
37148	* spvw_gcmark.d (gc_mark) [HEAPCODES]: Make it work for
37149	LINUX_NOEXEC_HEAPCODES too.
37150	* spvw_memfile.d (loadmem_update) [HEAPCODES]: Make it work for
37151	LINUX_NOEXEC_HEAPCODES too; SUBRs are indistiguishable from Records
37152	here.
37153	* eval.d (eval1) [HEAPCODES]: Update for changed representation of
37154	subrs.
37155	* io.d (prin_object_dispatch) [HEAPCODES]: Update for changed
37156	representation of subrs.
37157	* hashtabl.d (sxhash_atom) [HEAPCODES]: Update for changed
37158	representation of subrs.
37159	* predtype.d (TYPE-OF, CLOS:CLASS-OF, heap_statistics_mapper)
37160	[HEAPCODES]: Update for changed representation of subrs.
37161
371622004-05-21  Bruno Haible  <bruno@clisp.org>
37163
37164	* lispbibl.d (char_int): Make it work when some heapcode bits are
37165	in the high bits, not only in the low bits.
37166	* genclisph.d (main): Update.
37167
371682004-05-21  Bruno Haible  <bruno@clisp.org>
37169
37170	Make it possible to enforce an alignment == 4 mod 8 of all varobjects
37171	in HEAPCODES mode.
37172	* lispbibl.d (varobjects_misaligned, VAROBJECTS_ALIGNMENT_DUMMY_DECL):
37173	New macros.
37174	(conses_misaligned): New macro.
37175	(subr_t): Check that the size is a multiple of varobject_alignment.
37176	(DYNAMIC_8BIT_VECTOR, DYNAMIC_STRING): Enforce varobjects_misaligned.
37177	(subr_tab_, symbol_tab_): Add a varobjects_misaligned dummy decl.
37178	* genclisph.d (main): Emit varobjects_misaligned,
37179	VAROBJECTS_ALIGNMENT_DUMMY_DECL, varobject_alignment definitions.
37180	Update subr_tab_, symbol_tab_ definitions.
37181	* spvw.d (subr_anz, symbol_anz): Take varobjects_misaligned into
37182	account.
37183	(for_all_subrs, for_all_constsyms): Likewise.
37184	(init_subr_tab_1, init_symbol_tab_1, init_symbol_tab_2): Likewise.
37185	(init_symbol_functions): Likewise.
37186	(main): Likewise. Let heap_start point past the misaligned bytes.
37187	If SINGLEMAP_MEMORY || TRIVIALMAP_MEMORY, preallocate the first heap
37188	page. If SPVW_PAGES, initialize heap->misaligned.
37189	(dynload_modules): Take varobjects_misaligned into account.
37190	* spvw_heap.d (Heap) [SPVW_PAGES]: Add misaligned field.
37191	* spvw_global.d (check_gc_consistency): Take varobjects_misaligned into
37192	account.
37193	* spvw_garcol.d (gar_col_normal): If GENERATIONAL_GC, let generation 1
37194	respect varobjects_misaligned.
37195	(gc_compact_heap): Do not set a page's page_start and page_end before
37196	it is moved to the free_pages pool.
37197	* spvw_genera1.d (build_old_generation_cache): Allow for the
37198	possibility that heap_gen0_start has varobjects_misaligned.
37199	* spvw_allocate.d (make_space_gc_true): Take varobjects_misaligned into
37200	account.
37201	(make_space_gc_false): Assume map_pagesize is a power of 2.
37202	(make_space_gc) [SPVW_PAGES]: Take a Heap* as argument, not a Pages*.
37203	Take varobjects_misaligned into account. Set a page's page_start and
37204	page_end when taking it from the free_pages pool.
37205	(make_space) [SPVW_PAGES]: Update.
37206	* spvw_memfile.d (WRITE_page_alignment, READ_page_alignment): Add
37207	parens where needed.
37208	(savemem): Write out zero-bytes to enforce the varobjects_misaligned.
37209	(loadmem_from_handle): Take varobjects_misaligned into account.
37210	If SINGLEMAP_MEMORY || TRIVIALMAP_MEMORY, mmap also the zero-bytes
37211	that enforce the varobjects_misaligned.
37212	* spvwtabf.d (subr_tab_data): Enforce varobject_alignment. Add
37213	varobjects_misaligned dummy bytes at the beginning.
37214	(subr_tab_data_size): Take varobjects_misaligned into account.
37215	* spvwtabs.d (symbol_tab_data): Enforce varobject_alignment. Add
37216	varobjects_misaligned dummy bytes at the beginning.
37217	* modules.d (MODULE, modules): Add the varobjects_misaligned bytes at
37218	the beginning of the module's subr_tab.
37219	* affi.d (module__affi__subr_tab): Likewise.
37220	* utils/modprep.lisp (print-tables-1, print-tables-2): Likewise.
37221	* utils/modpreptest.out: Update.
37222
372232004-05-18  Bruno Haible  <bruno@clisp.org>
37224
37225	* lispbibl.d (number_immediatep): New macro.
37226	(positivep, _R_sign) [!TYPECODES]: Use it.
37227	* flo_rest.d (floatcase): Likewise.
37228
372292004-05-18  Bruno Haible  <bruno@clisp.org>
37230
37231	Make the Subr objects look like XRecords, to simplify gc_mark.
37232	* lispbibl.d (Rectype_Subr): New enumeration item.
37233	(subr_t): Add XRECORD_HEADER and move the lispfunction after the
37234	GC-visible fields.
37235	(subr_const_offset, subr_const_anz): Remove macros.
37236	(subr_length, subr_xlength): New macros.
37237	* genclisph.d (main): Update definitions of subr_t and LISPFUN_F.
37238	* subr.d (LISPFUN_D, LISPFUN_F, LISPFUN_G): Also initialize the subrs'
37239	GCself and type, flags and length.
37240	* spvw.d (init_subr_tab_1, init_other_modules_1, init_module_2)
37241	(dynload_modules): Also initialize the subrs' GCself.
37242	* spvw_update.d (update_subr_tab): Do not use subr_const_offset.
37243	* spvw_garcol.d (gc_markphase): Treat subrs like constsyms.
37244	(alive): The mark bit is now at the beginning of the Subr.
37245	(unmark_fixed_varobjects): Unmark the constsyms and subrs, even if
37246	GENERATIONAL_GC.
37247	* spvw_gcmark.d (down_subr, up_subr): Only needed if HEAPCODES.
37248	(gc_mark): Treat subrs like other SXRecords.
37249
37250	* lispbibl.d (subr_tab_ptr_as_object): Make more portable.
37251	* genclisph.d (main): Update.
37252
372532004-05-18  Bruno Haible  <bruno@clisp.org>
37254
37255	* lispbibl.d: Rename NO_TYPECODES to HEAPCODES.
37256	* spvw.d: Likewise.
37257	* encoding.d: Likewise.
37258	* genclisph.d: Likewise.
37259	* makemake.in: Likewise.
37260
372612004-05-21  Sam Steingold  <sds@gnu.org>
37262
37263	* io.d (pr_array): respect CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
37264	* constsym.d (print_empty_arrays_ansi): add
37265	* misc.d (SYS::SET-ANSI): set CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
37266	* spvw.d (init_symbol_values): defvar CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI*
37267	* places.lisp (*ansi*): mention in documentation
37268
372692004-05-21  Sam Steingold  <sds@gnu.org>
37270
37271	* stream.d (SOCKET-STREAM-SHUTDOWN): avoid a GCC warning
37272
372732004-05-21  Sam Steingold  <sds@gnu.org>
37274
37275	* stream.d (wr_ch_terminal3, wr_ch_array_terminal3): respect
37276	the terminal stream encoding EOL slot
37277
372782004-05-21  Sam Steingold  <sds@gnu.org>
37279
37280	* spvw.d (init_object_tab): add memory model information to
37281	*FEATURES*
37282	* constobj.d (software_type): use "cflags.h"
37283	* makemake.in (cflags.h): new target
37284
372852004-05-08  Bruno Haible  <bruno@clisp.org>
37286
37287	New data types containing weak references.
37288	* lispbibl.d (Rectype_MutableWeakList, Rectype_MutableWeakAlist)
37289	(Rectype_Weakmapping, Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr)
37290	(Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_Key)
37291	(Rectype_WeakAlist_Value, Rectype_WeakAlist_Either)
37292	(Rectype_WeakAlist_Both): New enum values.
37293	(WeakList, MutableWeakList, WeakAnd, WeakOr, Weakmapping)
37294	(WeakAndMapping, WeakOrMapping, WeakAlist, MutableWeakAlist): New types.
37295	(mutableweaklist_length, weakmapping_length, mutableweakalist_length):
37296	New macros.
37297	(TheMutableWeakList, TheWeakList, TheWeakAnd, TheWeakOr)
37298	(TheWeakmapping, TheWeakAndMapping, TheWeakOrMapping)
37299	(TheMutableWeakAlist, TheWeakAlist): New macros.
37300	(SXrecord_nonweak_length, Lrecord_nonweak_length): Return 0 also for
37301	the new weak data types.
37302	(activate_weak): New declaration.
37303	* spvw_gcmark.d: New file, extracted from spvw_garcol.d.
37304	(gc_mark): Handle Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr,
37305	Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_* as
37306	Lrecords.
37307	* spvw_weak.d: New file.
37308	* spvw_garcol.d (gc_mark): Move away to spvw_gcmark.d. Include
37309	spvw_gcmark.c, spvw_weak.c.
37310	(gar_col_normal): Invoke gc_mark_weakpointers and clean_weakpointers.
37311	Remove old handling of O(all_weakpointers).
37312	* spvw_circ.d (get_circ_mark, get_circ_unmark): Handle
37313	Rectype_MutableWeakList, Rectype_MutableWeakAlist, Rectype_Weakmapping,
37314	Rectype_WeakList, Rectype_WeakAnd, Rectype_WeakOr,
37315	Rectype_WeakAndMapping, Rectype_WeakOrMapping, Rectype_WeakAlist_*.
37316	* spvw.d (main): Initialize markwatchset.
37317	* spvw_memfile.d (loadmem_from_handle): Likewise.
37318	* weak.d: New file.
37319	* record.d (mk_weakpointer, MAKE-WEAK-POINTER, WEAK-POINTER-P)
37320	(check_weakpointer_replacement, check_weakpointer, WEAK-POINTER-VALUE)
37321	(SETF WEAK-POINTER-VALUE): Move to weak.d.
37322	* io.d (pr_orecord): Handle Rectype_MutableWeakList,
37323	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
37324	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
37325	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
37326	* predtype.d (TYPE-OF, CLASS-OF): Handle Rectype_MutableWeakList,
37327	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
37328	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
37329	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
37330	(enum_hs_weak_list, enum_hs_weak_alist, enum_hs_weakmapping)
37331	(enum_hs_internal_weak_list, enum_hs_weak_and_relation)
37332	(enum_hs_weak_or_relation, enum_hs_weak_and_mapping)
37333	(enum_hs_weak_or_mapping, enum_hs_internal_weak_alist): New enum values.
37334	(heap_statistics_mapper): Handle Rectype_MutableWeakList,
37335	Rectype_MutableWeakAlist, Rectype_Weakmapping, Rectype_WeakList,
37336	Rectype_WeakAnd, Rectype_WeakOr, Rectype_WeakAndMapping,
37337	Rectype_WeakOrMapping, Rectype_WeakAlist_*.
37338	* init.lisp: Export symbols relating to weak-list, weak-and-relation,
37339	weak-or-relation, weak-mapping, weak-and-mapping, weak-or-mapping,
37340	weak-alist from EXT.
37341	* places.lisp (setf weak-pointer-value): Define as a function alias.
37342	(setf weak-list-list, setf weak-mapping-value)
37343	(setf weak-and-mapping-value, setf weak-or-mapping-value)
37344	(setf weak-alist-contents, setf weak-alist-value): New aliases.
37345	* makemake.in (CPARTS): Add weak.
37346	(SPVW_INCLUDES): Add spvw_gcmark, spvw_weak.
37347	* po/Makefile.devel (DSOURCES): Add spvw_gcmark, spvw_weak, weak.
37348
373492004-04-25  Bruno Haible  <bruno@clisp.org>
37350
37351	Make it possible to attach a documentation string to classes without
37352	a proper name.
37353	* lispbibl.d (Class): Add documentation field.
37354	* clos-class2.lisp (class): Add documentation slot.
37355	(ensure-class): Do not call sys::%set-documentation.
37356	(initialize-instance-standard-class, initialize-instance-built-in-class)
37357	(initialize-instance-structure-class): Initialize the documentation
37358	slot.
37359	* documentation.lisp (documentation, (setf documentation)): For
37360	classes, use the documentation string in the class. For symbols and
37361	'type, look in the class first.
37362
373632004-05-15  Bruno Haible  <bruno@clisp.org>
37364
37365	Fix bug that prevents functions named (SETF FOO) from being inlined
37366	(bug introduced in clisp-2.26).
37367	* compiler.lisp (c-GLOBAL-FUNCTION-CALL, c-APPLY): Compare function
37368	names with EQUAL, not EQ.
37369
373702004-05-05  Bruno Haible  <bruno@clisp.org>
37371
37372	* type.lisp (upgraded-complex-part-type): Change result to be as
37373	precise as possible. Add environment argument.
37374	* subtypep.lisp (COMPLEX): Call upgraded-complex-part-type where
37375	appropriate.
37376
373772004-05-05  Bruno Haible  <bruno@clisp.org>
37378
37379	* io.d (pr_pair): New function.
37380	(pr_kvtable): Use it.
37381
373822004-04-25  Bruno Haible  <bruno@clisp.org>
37383
37384	Change the default-initargs representation to match the MOP.
37385	* record.d (CLOS::%MAKE-INSTANCE): Assume each default initarg is
37386	in the form (symbol form func) instead of (symbol . initer).
37387	* clos-class2.lisp (defclass): Produce :DIRECT-DEFAULT-INITARGS
37388	as a list of (symbol form func).
37389	(ensure-class, equal-default-initargs)
37390	(finalize-instance-standard-class, initialize-instance-structure-class):
37391	Update.
37392
373932004-05-17  Bruno Haible  <bruno@clisp.org>
37394
37395	* lispbibl.d: Rewrite a preprocessor expression, to avoid a gcc
37396	warning.
37397
373982004-05-17  Sam Steingold  <sds@gnu.org>
37399
37400	* condition.lisp: add package prefix in the WITHOUT-PACKAGE-LOCK form
37401
374022004-05-17  Sam Steingold  <sds@gnu.org>
37403
37404	* spvw.d (main): do not print memory model information here
37405	* misc.d (SOFTWARE-TYPE): return O(software_type)
37406	instead of "ANSI C program"
37407	* constobj.d (software_type): memory model information
37408
374092004-05-16  Bruno Haible  <bruno@clisp.org>
37410
37411	Fix (SIGNUM negative-single-float) on 64-bit machines.
37412	* aridecl.d (make_FF) [IMMEDIATE_FFLOAT]: Cast the data to 32 bits,
37413	otherwise a negative sign overflows into the type bits.
37414
374152004-04-25  Bruno Haible  <bruno@clisp.org>
37416
37417	* clos-class5.lisp (change-class): Do not copy the values of slots that
37418	are shared in the new class.
37419
374202004-04-25  Bruno Haible  <bruno@clisp.org>
37421
37422	* record.d (check_initialization_argument_list): Change error type
37423	to PROGRAM-ERROR.
37424	* clos-class5.lisp (check-initialization-argument-list): Likewise.
37425
374262004-05-16  Sam Steingold  <sds@gnu.org>
37427
37428	* modules/berkeley-db/bdb.c (BDB:ENV-CREATE): 4.2 uses
37429	DB_RPCCLIENT while 4.1 used DB_CLIENT
37430
374312004-05-16  Bruno Haible  <bruno@clisp.org>
37432
37433	* genclisph.d (main) [TYPECODES && HAVE_SMALL_SSTRING]: Fix the
37434	definition of TheS8string, TheS16string, TheS32string.
37435
374362004-05-16  Bruno Haible  <bruno@clisp.org>
37437
37438	* lispbibl.d (NO_ARI_ASM): Define if SAFETY==3.
37439	(begin_arith_call, end_arith_call): Do not test SAFETY any more.
37440	* arilev1.d (LOOP_INLINE_ASM, LOOP_EXTERN_ASM): Likewise.
37441
374422004-05-16  Sam Steingold  <sds@gnu.org>
37443
37444	* unix/malloc.c (printf_address): align output
37445	(test_malloc): new function
37446	(main): when no arguments give, try the whole range
37447
374482004-05-16  Bruno Haible  <bruno@clisp.org>
37449
37450	* spvw_garcol.d (gc_mark) [TYPECODES]: Fix bug in handling of
37451	reallocated simple-string (2004-02-18 patch).
37452
374532004-05-15  Sam Steingold  <sds@gnu.org>
37454
37455	* defs1.lisp (with-no-package-lock-internal): new macro:
37456	evaluates the package list
37457	(without-package-lock): use WITH-NO-PACKAGE-LOCK-INTERNAL
37458	* compiler.lisp (c-WITHOUT-PACKAGE-LOCK): wrap c-FORM call in
37459	WITH-NO-PACKAGE-LOCK-INTERNAL so that it works during
37460	macroexpansion too (e.g., with DEFMETHOD)
37461
374622004-05-15  Sam Steingold  <sds@gnu.org>
37463
37464	* modules/rawsock/sock.lisp (open-unix-socket): pass second
37465	argument to NAMESTRING (CLISP extension, to be removed)
37466	(close): define a method which calls SOCK-CLOSE
37467
374682004-05-15  Sam Steingold  <sds@gnu.org>
37469
37470	* modules/clx/mit-clx/defsystem.lisp (compile-clx, load-clx):
37471	compile and load "shape"
37472
374732004-05-14  Sam Steingold  <sds@gnu.org>
37474
37475	* init.lisp (*documentation*): still non-weak: although works on
37476	cygwin, might still break on other platforms
37477
374782004-05-14  Sam Steingold  <sds@gnu.org>
37479
37480	new macro DEFCHECKER for modules
37481	* utils/modprep.lisp: OBJDEF-INIT can now be a list
37482	(write-string-c-style): new function
37483	(init-to-tag): use it
37484	(string-upcase-verbose): new function
37485	(new-objdef): use it
37486	(cpp-helper): new defstruct
37487	(flag-set): include it
37488	(checker): new defstruct for DEFCHECKER
37489	(*checkers*, new-checker): add
37490	(def-something-p): replaces DEF-FLAG-SET-P
37491	(parse): call it for both DEFFLAGSET and DEFCHECKER
37492	(print-tables-1): print OBJDEF-INIT with possible conditions,
37493	print *CHECKERS*
37494	* modules/rawsock/rawsock.c (check_socket_domain, check_socket_type)
37495	(check_socket_protocol): use DEFCHECKER
37496	* modules/syscalls/calls.c (mknod_type_check): ditto
37497
374982004-05-14  Sam Steingold  <sds@gnu.org>
37499
37500	* init.lisp (*documentation*): weak hash table now
37501
375022004-05-13  Sam Steingold  <sds@gnu.org>
37503
37504	new macro DEFFLAGSET for modules
37505	* utils/modprep.lisp (parse-name): new function
37506	(defun-p): use it
37507	(flag-set, *flag-sets*, new-flag-set, def-flag-set-p): add
37508	(parse): call DEF-FLAG-SET-P
37509	(print-tables-1): output flag sets
37510	* modules/berkeley-db/bdb.c, modules/pcre/cpcre.c:
37511	* modules/rawsock/rawsock.c, modules/regexp/regexi.c: use DEFFLAGSET
37512	* genclisph.d (posfixnum_default): new inline function
37513
375142004-05-13  Sam Steingold  <sds@gnu.org>
37515
37516	* modules/rawsock/rawsock.c (my_check_argument):
37517	pushSTACK(NIL) for PLACE
37518
375192004-05-13  Sam Steingold  <sds@gnu.org>
37520
37521	* modules/syscalls/calls.c [__sun__]: make sure that we do get
37522	prototypes for confstr() and lgamma_r()
37523
375242004-05-13  Sam Steingold  <sds@gnu.org>
37525
37526	* dribble.lisp (dribble-toggle): FRESH-LINE before the final message
37527
375282004-05-13  Bruno Haible  <bruno@clisp.org>
37529
37530	* error.d (check_array_replacement): Use a more factual, less arrogant
37531	error message.
37532
375332004-05-13  Sam Steingold  <sds@gnu.org>
37534
37535	* utils/clispload.lsp (regression-test::*expected-failures*):
37536	Paul fixed ENSURE-DIRECTORIES-EXIST.8
37537
375382004-05-02  Bruno Haible  <bruno@clisp.org>
37539
37540	New type of records, LRECORD: no flags but max. 2^24 elements.
37541	* lispbibl.d (weakkvt_type): Remove macro.
37542	(mdarray_type): Choose highest values less than the other array type
37543	codes.
37544	(lrecord_type): New macro.
37545	(case_weakkvt): Remove macro.
37546	(case_lrecord): New macro.
37547	(case_array): Remove weakkvt_type.
37548	(case_sxrecord): New macro.
37549	(case_record): Add lrecord_type.
37550	(lrecord_tfl): New macro.
37551	(record_): Move the rectype to be the first field after GCself.
37552	(LRECORD_HEADER): New macro.
37553	(lrecord_, Lrecord): New types.
37554	(lrecord_length, Lrecord_length): New macros.
37555	(SRECORD_HEADER, XRECORD_HEADER): Update.
37556	(rectype_longlimit): New enumeration value.
37557	(Rectype_WeakKVT): Change so it is >= rectype_longlimit.
37558	(Stream): Move the strmtype to be the first field here as well.
37559	(TheSarray): Remove weakkvt_type.
37560	(TheWeakKVT, TheRecord): Update.
37561	(TheLrecord): New macro.
37562	(TheVarobject, ThePointer): Add instance_type, lrecord_type.
37563	(SXrecord_length): Rename from Record_length.
37564	(SXrecord_nonweak_length): Rename from Record_nonweak_length.
37565	(Lrecord_nonweak_length, Record_length, Record_nonweak_length): New
37566	macros.
37567	(lrecordp): New macro.
37568	(weakkvtp): Use lrecordp.
37569	(case_Rectype_WeakKVT_above): Remove macro.
37570	(case_Rectype_array_above): Remove Rectype_WeakKVT.
37571	(allocate_lrecord): New declaration.
37572	(allocate_srecord, allocate_xrecord): Update.
37573	* spvw_multimap.d (MM_TYPECASES): Handle lrecords as well.
37574	* spvw_global.d (init_mem_heaptypes): Do not handle weakkvt specially.
37575	* spvw_objsize.d (size_lrecord): New macro.
37576	(objsize): Handle lrecords as well. Do not handle weakkvt specially.
37577	(objsize_sxrecord): Rename from objsize_record.
37578	(objsize_lrecord): New function.
37579	(init_objsize_table): Handle lrecords as well. Do not handle weakkvt
37580	specially.
37581	* spvw_update.d (do_update_sxrecord): Rename from do_update_record.
37582	(do_update_lrecord): New macro.
37583	(update_sxrecord): Rename from update_record.
37584	(update_lrecord): New macro.
37585	(update_varobject): Treat sxrecords and lrecords separately.
37586	* spvw_garcol.d (down_weakkvt, up_weakkvt): Remove macros.
37587	(down_lrecord, up_lrecord): New macros.
37588	(down_sxrecord): Rename from down_record.
37589	(up_sxrecord): Rename from up_record.
37590	(gc_mark): Handle lrecords as well. Do not handle weakkvt specially.
37591	* spvw_genera1.d (walk_area_record): Handle lrecords as well.
37592	(walk_area): Do not handle weakkvt specially.
37593	(build_old_generation_cache): Likewise. Handle lrecords as well.
37594	* spvw_typealloc.d (allocate_weakkvt_low): Use lrecord_type
37595	instead of lrecord_type.
37596	(allocate_lrecord, allocate_lrecord_): New functions.
37597	(allocate_srecord_, allocate_xrecord_, make_ratio, make_complex):
37598	Update.
37599	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark, subst)
37600	(subst_circ_unmark): Handle lrecords as well.
37601	* io.d (prin_object_dispatch): Handle lrecords as well.
37602	* predtype.d (equalp): Compare lrecords like with EQ.
37603	(TYPE-OF): Handle lrecords as well. For weakkvt, return a symbol, not
37604	a list.
37605	(CLOS:CLASS-OF): Handle lrecords as well.
37606	(heap_statistics_mapper): Handle lrecords as well.
37607	* hashtabl.d (hashcode4_atom, sxhash_atom): Handle lrecords as well.
37608
376092004-04-25  Bruno Haible  <bruno@clisp.org>
37610
37611	* utils/clispload.lsp (*expected-failures*): Add IMAGPART.4,
37612	MAKE-INSTANCES-OBSOLETE.2, TYPES.7B, TYPES.7C, USER-CLASS-DISJOINTNESS,
37613	USER-CLASS-DISJOINTNESS-2, TAC-3.16. Remove SHARED-INITIALIZE.ERROR.4.
37614
376152004-04-25  Bruno Haible  <bruno@clisp.org>
37616
37617	Add keyword argument checking to UPDATE-INSTANCE-FOR-REDEFINED-CLASS
37618	and UPDATE-INSTANCE-FOR-DIFFERENT-CLASS.
37619	* clos-class5.lisp (*update-instance-for-redefined-class-table*)
37620	(*update-instance-for-different-class-table*): New variables.
37621	(note-uirc-change, note-uidc-change): New functions.
37622	(defun note-si-change): Update also
37623	*update-instance-for-redefined-class-table* and
37624	*update-instance-for-different-class-table*.
37625	(valid-reinitialize-instance-keywords): New function, extracted from
37626	initial-reinitialize-instance.
37627	(valid-update-instance-for-redefined-class-keywords)
37628	(valid-update-instance-for-different-class-keywords)
37629	(check-initialization-argument-list): New functions.
37630	(initial-reinitialize-instance): Call
37631	valid-reinitialize-instance-keywords.
37632	(update-instance-for-different-class): Call
37633	valid-update-instance-for-different-class-keywords and check the
37634	initargs.
37635	(update-instance-for-redefined-class): Call
37636	valid-update-instance-for-redefined-class-keywords and check the
37637	initargs.
37638	* clos-genfun3.lisp (|#'update-instance-for-redefined-class|)
37639	(|#'update-instance-for-different-class|): New variables.
37640	(std-add-method, std-remove-method): Conditionally call
37641	note-uirc-change, note-uidc-change.
37642
376432004-05-12  Sam Steingold  <sds@gnu.org>
37644
37645	* array.d (fehler_array, test_array): remove
37646	(subscripts_to_index): do not call test_array()
37647	(AREF, SYS::STORE, SBIT, BIT): use check_array()
37648	instead of relying on subscripts_to_index()
37649	(ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE, ARRAY-RANK)
37650	(ARRAY-DIMENSION, ARRAY-DIMENSIONS, ARRAY-TOTAL-SIZE)
37651	(ARRAY-IN-BOUNDS-P, ARRAY-ROW-MAJOR-INDEX, ADJUSTABLE-ARRAY-P)
37652	(ARRAY-HAS-FILL-POINTER-P, ADJUST-ARRAY):
37653	use check_array() instead of test_array()
37654	* error.d (check_array_replacement): implement
37655	* lispbibl.d (check_array) [!COMPILE_STANDALONE]: implement
37656	(check_array_replacement): declare
37657	* genclisph.d: ditto
37658
376592004-05-12  Bruno Haible  <bruno@clisp.org>
37660
37661	* makemake.in (XCFLAGS) [SPARC64]: Use only -O, not -O2.
37662
376632004-05-01  Bruno Haible  <bruno@clisp.org>
37664
37665	Rename LRECORD to VRECORD.
37666	* lispbibl.d (vrecord_tfl): Rename from lrecord_tfl.
37667	(VRECORD_HEADER): Rename from LRECORD_HEADER.
37668	(vrecord_): Rename from lrecord_.
37669	(Vrecord): Rename from Lrecord.
37670	(vrecord_length): Rename from lrecord_length.
37671	(sarray_, sarray_length, sbvector_, svector_, weakkvt_t, ClassVersion)
37672	(Codevec, DYNAMIC_8BIT_VECTOR): Update.
37673	* spvw_typealloc.d (allocate_vector, allocate_weakkvt_low)
37674	(allocate_bit_vector): Update.
37675	* genclisph.d (main): Update.
37676
376772004-05-11  Bruno Haible  <bruno@clisp.org>
37678
37679	* arilev0.d (divu_3232_3232_) [SPARC64]: Define also for SPARC64.
37680
376812004-05-11  Bruno Haible  <bruno@clisp.org>
37682
37683	* lfloat.d (LF_shorten_LF, LF_LF_plus_LF, LF_square_LF, LF_LF_mal_LF)
37684	(LF_LF_durch_LF, I_to_LF): Cast LF_exp_high+1 down to 32 bits.
37685	Needed for 64-bit platforms.
37686
376872004-05-11  Bruno Haible  <bruno@clisp.org>
37688
37689	* lispbibl.d (bit_test): Make it work on SPARC64.
37690	* genclisph.d (main): Update accordingly.
37691
376922004-05-11  Bruno Haible  <bruno@clisp.org>
37693
37694	* arisparc64.d: Add register declaration for %g2.
37695	(copy_loop_down): Fix wrong register.
37696
376972004-05-11  Bruno Haible  <bruno@clisp.org>
37698
37699	* arilev0.d (mulu32) [SPARC64]: Fix asm syntax.
37700
377012004-05-11  Sam Steingold  <sds@gnu.org>
37702
37703	* lispbibl.d [SPARC64]: use Bits 63..48 for type code, bits 47..0
37704	for address always, not just when defined(NO_SINGLEMAP).
37705	Needed for Solaris.
37706
377072004-05-11  Bruno Haible  <bruno@clisp.org>
37708
37709	Optimize constants a little better.
37710	* compiler.lisp (c-NIL): Use *seclass-foldable* instead of
37711	*seclass-pure*.
37712	(c-CONST): Use *seclass-foldable* instead of *seclass-pure*, if
37713	appropriate.
37714	(c-PROGN, c-AND, c-OR, c-QUOTE, c-SETQ, c-PSETQ, c-MULTIPLE-VALUE-SETQ)
37715	(c-TAGBODY): Use *seclass-foldable* instead of *seclass-pure*.
37716
377172004-05-11  Bruno Haible  <bruno@clisp.org>
37718
37719	* arilev0.d (divu_3216_1616) [SPARC64]: Add missing newline in asm
37720	statement.
37721	(divu_3216_3216, divu_3232_3232, divu_6432_3232) [SPARC64]: Likewise.
37722
377232004-05-11  Sam Steingold  <sds@gnu.org>
37724
37725	* compiler.lisp (c-form-table): treat =,/=,>,>=,<,<= specially
37726	(c-COMPARE-NUMBERS): try to convert = and other numeric
37727	comparisons to ZEROP &c
37728
377292004-05-08  Bruno Haible  <bruno@clisp.org>
37730
37731	* control.d (check_setq_body): Fix GC-safety bug introduced on
37732	2003-05-20.
37733	* eval.d (progv): Likewise.
37734	* i18n.d (SYS::SET-CURRENT-LANGUAGE): Fix GC-safety bug introduced on
37735	2003-05-01.
37736	* misc.d (push_envar): Fix GC-safety bug introduced on 2003-07-28.
37737	* pathname.d (PARSE-NAMESTRING): Fix GC-safety bug introduced on
37738	2002-08-01.
37739
377402004-05-03  Bruno Haible  <bruno@clisp.org>
37741
37742	* subrkw.d: Reorder, to match the order in subr.d.
37743
377442004-04-30  Bruno Haible  <bruno@clisp.org>
37745
37746	* Makefile.devel (MULTIBUILD_OPTIONS): New variable.
37747	(multibuild-linux-x86): New target.
37748
377492004-04-30  Bruno Haible  <bruno@clisp.org>
37750
37751	Fixes for the TYPECODES model on 32-bit platforms.
37752	* intlog.d (I_I_logand_I, I_I_lognand_I, I_I_logandc2_I): Fix bug
37753	when combining a fixnum with a bignum.
37754
37755	* utils/clispload.lsp: Skip memory intensive test on 32-bit
37756	SPVW_PURE_BLOCKS platforms.
37757
377582004-04-25  Bruno Haible  <bruno@clisp.org>
37759
37760	* condition.lisp (check-value): Fix bug in the CONTINUE restart.
37761
377622004-04-25  Bruno Haible  <bruno@clisp.org>
37763
37764	* record.d (CLOS::%CHANGE-CLASS): Remove third argument. Simplify.
37765	* clos-class5.lisp (change-class): Nop.
37766
377672004-04-24  Bruno Haible  <bruno@clisp.org>
37768
37769	* defstruct.lisp (ds-slot-name, ds-slot-initargs, ds-slot-offset)
37770	(ds-slot-initer, ds-slot-initfunctionform, ds-slot-type)
37771	(ds-slot-readonly): Remove macros. Use clos::slot-definition-*
37772	accessors everywhere.
37773	(copy-<structure-effective-slot-definition>): Rename from copy-ds-slot.
37774	* clos-class2.lisp: Update callers here as well.
37775
377762004-05-10  Sam Steingold  <sds@gnu.org>
37777
37778	* subr.d, hashtabl.d (GETHASH): seclass_default because
37779	user-defined HASH-TABLE-TEST can do anything
37780
377812004-04-24  Bruno Haible  <bruno@clisp.org>
37782
37783	Metaobject protocol for slot definitions.
37784	* lispbibl.d (classversion_length): New macro.
37785	(SlotDefinition): New type.
37786	(TheSlotDefinition): New macro.
37787	* record.d (SYS::%STRUCTURE-REF): Use new slot-definition-* accessors.
37788	(CLOS::ALLOCATE-METAOBJECT-INSTANCE): New function.
37789	(slot_in_arglist): Use new SlotDefinition accessors.
37790	(CLOS::%SHARED-INITIALIZE): Use new slot-definition-* accessors.
37791	Update for new initer layout: Avoid funcalling the initfunction by
37792	looking whether it's a constant_initfunction.
37793	(CLOS::%REINITIALIZE-INSTANCE): Use new SlotDefinition accessors.
37794	(do_initialize_instance): Use new slot-definition-* accessors.
37795	Update for new initer layout: Avoid funcalling the initfunction by
37796	looking whether it's a constant_initfunction.
37797	(CLOS::%MAKE-INSTANCE): Update for new initer layout: Avoid funcalling
37798	the initfunction by looking whether it's a constant_initfunction.
37799	* io.d (some_printable_slots, pr_structure_default): Use new
37800	SlotDefinition accessors.
37801	* clos-slotdef1.lisp: New file.
37802	* clos-slotdef2.lisp: New file.
37803	* clos-slotdef3.lisp: New file.
37804	* init.lisp: Export symbols of the slot-definition MOP.
37805	Load clos-slotdef1.
37806	* clos-package.lisp: Export symbols of the slot-definition MOP.
37807	* clos.lisp: Load clos-slotdef2 and clos-slotdef3.
37808	* defstruct.lisp (make-ds-slot, ds-slot-name, ds-slot-initargs)
37809	(ds-slot-offset, ds-slot-initer, ds-slot-default, ds-slot-type)
37810	(ds-slot-readonly, copy-ds-slot): Rewrite using slot-definition.
37811	(ds-slot-initfunctionform, ds-pseudo-slot-default): New macros.
37812	(ds-typep, ds-typep-expansion, ds-canonicalize-type): Use
37813	ds-pseudo-slot-default.
37814	(ds-arg-default): Rewritten using new initer semantics.
37815	(ds-make-pred, ds-make-constructor-body): Use ds-pseudo-slot-default.
37816	(defstruct): New initer semantics. Old initer semantics was completely
37817	unintelligible. Avoid add-backquote and add-unquote. Use new
37818	slot-definition-* accessors.
37819	* clos-class2.lisp (replace-class-version): New function.
37820	(defclass): Do not put :ACCESSORS into the slot specifiers for
37821	ensure-class. Use make-initfunction-form and put :INITFORM instead of
37822	:INITER into the slot-specifiers. Use make-initfunction-form also for
37823	the :DIRECT-DEFAULT-INITARGS argument.
37824	(make-initer): Remove function.
37825	(slot-definition, standard-slot-definition): Remove. Replaced by
37826	clos-slotdef1.lisp.
37827	(make-slotdef): Remove function.
37828	(ensure-class): Invoke convert-direct-slots. Invoke equal-direct-slots
37829	instead of equal-slots. In case of class redefinition, update
37830	slot-definition instances instead of lists.
37831	(equal-direct-slots): Rename from equal-slots.
37832	(equal-slot): Remove function. Moved to clos-slotdef1.lisp.
37833	(initialize-instance-standard-class): Accept te direct-slots list in two
37834	different forms.
37835	(finalize-instance-standard-class): Use new slot-definition-* accessors.
37836	Use only the initfunction instead of the initer.
37837	(std-compute-slots): Works on direct-slot-definition instances now,
37838	instead of plists. Create effective-slot-definition instances, instead
37839	of slotdef instances. Do not lose the type and documentation of each
37840	slot. Rework the initform/initfunction handling. Call the MOP function
37841	effective-slot-definition-class.
37842	(std-layout-slots): Use new slot-definition-* accessors.
37843	(class-version-compute-slotlists): Likewise.
37844	(initialize-instance-structure-class): Likewise. Invoke
37845	convert-direct-slots.
37846	(define-structure-class): Use new slot-definition-* accessors.
37847	* clos-class5.lisp (change-class, update-instance-for-different-class):
37848	Use new slot-definition-* accessors.
37849	(slot-names): Likewise.
37850	* loadform.lisp (make-load-form-saving-slots): Use new
37851	slot-definition-* accessors.
37852	* documentation.lisp (documentation, (setf documentation)): Add a
37853	method for slot-definition.
37854	* makemake.in (LPARTS): Add clos-slotdef1, clos-slotdef2,
37855	clos-slotdef3.
37856	* po/Makefile.devel (LISPSOURCES): Add clos-slotdef1, clos-slotdef2,
37857	clos-slotdef3.
37858
378592004-05-07  Sam Steingold  <sds@gnu.org>
37860
37861	* lispbibl.d (unix) [__OpenBSD__]: define
37862
378632004-05-07  Sam Steingold  <sds@gnu.org>
37864
37865	* modules/rawsock/configure.in: <netinet/if_ether.h> requires
37866	<net/if.h> to be included before it, which, in turn, requires
37867	<sys/socket.h> to be included before it (on Solaris)
37868
378692004-05-07  Sam Steingold  <sds@gnu.org>
37870
37871	* modules/syscalls/configure.in: check for the library where erf()
37872	is implemented
37873	* modules/syscalls/link.sh.in (NEW_LIBS): "-m" will be in @LIBS@
37874	becausd of the above check
37875
378762004-05-07  Bruno Haible  <bruno@clisp.org>
37877
37878	* makemake.in (CC_CPLUSPLUS): New variable.
37879	(XCFLAGS): When using g++ >= 3.4, add -Wno-invalid-offsetof.
37880
378812004-05-07  Bruno Haible  <bruno@clisp.org>
37882
37883	* clos-package.lisp: Trivially import a few symbols not yet defined.
37884
378852004-04-24  Bruno Haible  <bruno@clisp.org>
37886
37887	Add ability to fix slot locations for all subclasses.
37888	* lispbibl.d (Class): Add fixed_slot_locations field.
37889	* clos-class2.lisp (standard-class): Add fixed-slot-locations field.
37890	(defclass): Pass the :fixed-slot-locations option to ensure-class.
37891	(ensure-class): Compare also the fixed-slot-locations value.
37892	(initialize-instance-standard-class): Handle a fixed-slot-locations
37893	argument.
37894	(std-compute-slots): Create a slotdef with location, if the slot is
37895	inherited from a superclass with fixed-slot-locations.
37896	(std-layout-slots): Respect constraints for slot locations already
37897	specified by a superclass.
37898
378992004-05-06  Sam Steingold  <sds@gnu.org>
37900
37901	* modules/rawsock/rawsock.c: Solaris compilation fixes:
37902	include <string.h> for memcpy() &Co
37903	include <net/if.h> before <netinet/if_ether.h>
37904	declare check_socket_domain() before it is first used
37905
379062004-05-06  Sam Steingold  <sds@gnu.org>
37907
37908	fix bug#206: crash in pcre_free
37909	* modules/pcre/cpcre.c (module__pcre__init_function_2): reset
37910	pcre_malloc to malloc() and pcre_free to free() to avoid
37911	the FINALIZE crash
37912
379132004-04-24  Bruno Haible  <bruno@clisp.org>
37914
37915	Fix problematic initialization protocol of standard-class and
37916	structure-class.
37917	* clos-class2.lisp (initialize-instance-standard-class): Call
37918	%initialize-instance. Initialize a few slots to nil.
37919	(initialize-instance-structure-class): Call %initialize-instance.
37920	* clos-class5.lisp (initialize-instance@standard-class)
37921	(initialize-instance@structure-class): Remove (call-next-method) that
37922	doesn't belong here.
37923
379242004-04-24  Bruno Haible  <bruno@clisp.org>
37925
37926	* clos-print.lisp: Rename from clos-class4.lisp.
37927	* clos.lisp: Update.
37928	* makemake.in (LPARTS): Add clos-print, remove clos-class4.
37929	* po/Makefile.devel (LISPSOURCES): Add clos-print, remove clos-class4.
37930
379312004-05-05  Sam Steingold  <sds@gnu.org>
37932
37933	* hashtabl.d (hashcode_string): use all string elements
37934
379352004-05-05  Sam Steingold  <sds@gnu.org>
37936
37937	* modules/syscalls/calls.c (SET-FILE-STAT, CONVERT-MODE, UMASK, MKNOD):
37938	implement
37939	* modules/syscalls/posix.lisp: export them
37940
379412004-05-05  Sam Steingold  <sds@gnu.org>
37942
37943	* modules/pcre/cpcre.c (PCRE-FREE): set fp_pointer to NULL
37944	* modules/regexp/regexi.c (REGEXP-FREE): ditto
37945
379462004-05-05  Bruno Haible  <bruno@clisp.org>
37947
37948	* makemake.in: Use "sed -n -e '$p'" instead of "tail -n 1".
37949	Needed for Solaris.
37950
379512004-04-24  Bruno Haible  <bruno@clisp.org>
37952
37953	Make very early CLOS available before DEFSTRUCT.
37954	* clos-class0.lisp: New file.
37955	* init.lisp: Load it.
37956	* clos-class2.lisp (class-version): Move away to clos-class0.lisp.
37957	* clos-class4.lisp (print-object): Undefine first. Do not use TYPEP
37958	on class-version.
37959	* clos.lisp: After clos-class5.lisp, set *classes-finished* and then
37960	only load clos-class4.lisp.
37961	* makemake.in (LPARTS): Add clos-class0.
37962	* po/Makefile.devel (LISPSOURCES): Add clos-class0.
37963
379642004-04-24  Bruno Haible  <bruno@clisp.org>
37965
37966	* clos-package.lisp: Tweak.
37967
379682004-04-24  Bruno Haible  <bruno@clisp.org>
37969
37970	* clos-package.lisp: New file, extracted from clos.lisp.
37971	* clos.lisp: Move the package setup away.
37972	* init.lisp: Load clos-package before defstruct.lisp.
37973	* makemake.in (LPARTS): Add clos-package.
37974	* po/Makefile.devel (LISPSOURCES): Add clos-package.
37975
379762004-04-24  Bruno Haible  <bruno@clisp.org>
37977
37978	* places.lisp: Add defsetf for %record-ref and %structure-ref here.
37979	* compiler.lisp: Remove defsetf for %record-ref.
37980	* defstruct.lisp: Remove defsetf for %structure-ref.
37981
379822004-04-18  Bruno Haible  <bruno@clisp.org>
37983
37984	* clos-class5.lisp (class-prototype): Do not mark the class as being
37985	instantiated.
37986
379872004-05-03  Sam Steingold  <sds@gnu.org>
37988
37989	* disassem.lisp (disassemble): return when cannot disassemble
37990
379912004-05-03  Sam Steingold  <sds@gnu.org>
37992
37993	* package.d (in_make_package): fix a GC-safety bug which
37994	DEBUG_GCSAFETY cannot detect: object slots addresses, even though
37995	they are declared gcv_object_t, are _NOT_ valid gcv_object_t*!!
37996
379972004-04-28  Bruno Haible  <bruno@clisp.org>
37998
37999	* lispbibl.d (SstringCase) [!UNICODE]: Add 5th argument.
38000	* subtypep.lisp (subtypep-CHARACTER-pre-simplify): Make it work when
38001	#-UNICODE.
38002
380032004-04-25  Bruno Haible  <bruno@clisp.org>
38004
38005	* record.d (check_generic_function_replacement): New function,
38006	extracted from check_generic_function.
38007	(check_generic_function): Turn into an inline function.
38008
380092004-04-25  Bruno Haible  <bruno@clisp.org>
38010
38011	Appendix to 2004-03-15 patch.
38012	* record.d (check_initialization_argument_list): ~ -> ~S.
38013	* sequence.d (remove_op, delete_op, substitute_op): Likewise.
38014
380152004-04-24  Bruno Haible  <bruno@clisp.org>
38016
38017	* init.lisp: Remove vestiges of syscalls.
38018
380192004-04-18  Bruno Haible  <bruno@clisp.org>
38020
38021	* clos-class2.lisp (ensure-class): Handle errors that might occur
38022	during class redefinition.
38023	(update-subclasses-for-redefined-class): Take a 4th argument.
38024
380252004-05-02  Sam Steingold  <sds@gnu.org>
38026
38027	fix bug#205: rename-package does not accept
38028	package-designators
38029	* package.d (RENAME-PACKAGE): second argument can be a package
38030	designator
38031
380322004-05-02  Bruno Haible  <bruno@clisp.org>
38033
38034	* makemake.in: Use "tail -n 1" instead of "tail -1".
38035	Suggested by SuSE.
38036
380372004-04-18  Bruno Haible  <bruno@clisp.org>
38038
38039	* lispbibl.d (Class): Add direct_accessors field.
38040	* clos-class2.lisp (standard-class): Add direct-accessors field.
38041	(defclass): Store DEFMETHOD results in the class' direct-accessors.
38042	(ensure-class): Remove accessor methods installed by previous version
38043	of the class.
38044
380452004-04-22  Bruno Haible  <bruno@clisp.org>
38046
38047	Special representation of slot initfunctions for constants.
38048	* lispbibl.d (init_cclosures): New declaration.
38049	* eval.d (bytecode_enum_t): Define unconditionally.
38050	(init_cclosures): New function.
38051	* spvw.d (init_object_tab): Call it.
38052	* record.d (SYS::MAKE-CONSTANT-INITFUNCTION)
38053	(SYS::CONSTANT-INITFUNCTION-P): New functions.
38054
380552004-04-28  Bruno Haible  <bruno@clisp.org>
38056
38057	* record.d (check_weakpointer_replacement, check_weakpointer): New
38058	functions.
38059	(check_weak_pointer): Remove function.
38060	(WEAK-POINTER-VALUE, SET-WEAK-POINTER-VALUE): Update.
38061
380622004-04-24  Bruno Haible  <bruno@clisp.org>
38063
38064	* functions.lisp: New file, extracted from trace.lisp, compiler.lisp.
38065	* init.lisp: Load it.
38066	* trace.lisp (check-function-name): Moved to functions.lisp.
38067	* compiler.lisp (signature): Moved to functions.lisp.
38068	* clos.lisp: Update.
38069	* makemake.in (LPARTS): Add functions.
38070	* po/Makefile.devel (LISPSOURCES): Add functions.
38071
380722004-04-15  Bruno Haible  <bruno@clisp.org>
38073
38074	* clos-class2.lisp (ensure-class): Pass the old finalized and
38075	direct-superclasses status to update-subclasses-for-redefined-class.
38076	(update-subclasses-for-redefined-class)
38077	(update-subclasses-for-redefined-class-nonrecursive): Update the
38078	direct-subclasses lists of the superclasses correctly.
38079
380802004-04-29  Bruno Haible  <bruno@clisp.org>
38081
38082	* disassem.lisp (*disassemble-use-live-process*): New variable.
38083	(disassemble-machine-code): Use it.
38084	* .gdbinit (ansi_tests): Set it to nil.
38085
380862004-04-25  Bruno Haible  <bruno@clisp.org>
38087
38088	* reploop.lisp (main-loop, break-loop, step-hook-fn): Install a ABORT
38089	restart.
38090
380912004-04-23  Bruno Haible  <bruno@clisp.org>
38092
38093	Make DEFPACKAGE available earlier during bootstrap.
38094	* defpackage.lisp: New file, extracted from defs2.lisp.
38095	* defs2.lisp (defpackage): Remove macro.
38096	* init.lisp: Load defpackage.
38097	* makemake.in (LPARTS): Add defpackage.
38098	* po/Makefile.devel (LISPSOURCES): Add defpackage.
38099
381002004-04-28  Bruno Haible  <bruno@clisp.org>
38101
38102	* genclisph.d (main) [TYPECODES]: Emit consp, atomp, mconsp, matomp
38103	correctly.
38104
381052004-04-13  Bruno Haible  <bruno@clisp.org>
38106
38107	Make the pointers to the direct subclasses weak.
38108	* clos-class2.lisp (finalize-instance-standard-class): Use
38109	add-direct-subclass.
38110	(map-direct-subclasses, add-direct-subclass, remove-direct-subclass):
38111	New functions.
38112	(list-direct-subclasses): Use map-direct-subclasses.
38113
381142004-04-28  Bruno Haible  <bruno@clisp.org>
38115
38116	Simplify handling of weak pointers.
38117	* lispbibl.d (weakpointer_length): Set to the total length.
38118	(weakpointer_xlength): Remove macro.
38119	(weakkvt_non_data): Remove macro.
38120	(weakkvt_length): New macro.
38121	(Weakkvt_length): Use it.
38122	(Record_nonweak_length): New macro.
38123	* spvw_update.d (do_update_record): Do not use update_weak_pointers
38124	any more.
38125	(update_weakpointer, update_weakpointers, update_weakpointers_mod):
38126	Remove macros.
38127	(update_weakkvtable, update_weakkvtables, update_weakkvtables_mod):
38128	Remove macros.
38129	* spvw_garcol.d (down_record): Use Record_nonweak_length.
38130	(gar_col_normal): Remove calls to update_weakpointers_mod,
38131	update_weakkvtables_mod.
38132	(move_conses): Likewise.
38133	* spvw_memfile.d: Update.
38134	* spvw_typealloc.d (allocate_weakkvt_low): Update.
38135	* spvw_circ.d (subst_circ_mark, subst, subst_circ_unmark): Likewise.
38136	* record.d (mk_weakpointer): Declare inline. Use 0 instead of
38137	weakpointer_xlength.
38138	* hashtabl.d (hashcode4_atom): Use Record_nonweak_length.
38139
381402004-04-28  Bruno Haible  <bruno@clisp.org>
38141
38142	Make weak-pointers work also on SPVW_PAGES platforms.
38143	* spvw_update.d (do_update_record): Depending on update_weak_pointers,
38144	update also the hidden pointers of Weakpointer and WeakKVT objects.
38145	* spvw_garcol.d (gar_col_normal): Define update_weak_pointers to false.
38146	(gar_col_compact): Do not call update_weakpointers_mod,
38147	update_weakkvtables_mod. Instead, define update_weak_pointers to true.
38148	(move_conses): Call update_weakpointers instead of
38149	update_weakpointers_mod, update_weakkvtables instead of
38150	update_weakkvtables_mod. Define update_weak_pointers to false.
38151	* spvw_memfile.d (savemem): Do not call update_weakpointers,
38152	update_weakkvtables. Instead, define update_weak_pointers to true.
38153	(loadmem_from_handle): Likewise.
38154
381552004-04-29  Sam Steingold  <sds@gnu.org>
38156
38157	* pathname.d (PARSE-NAMESTRING): Fix a GC-safety bug.
38158
381592004-04-28  Sam Steingold  <sds@gnu.org>
38160
38161	* comptran.d (N_cosh_N): Fix a GC-safety bug.
38162
381632004-04-28  Bruno Haible  <bruno@clisp.org>
38164
38165	* charstrg.d (stringof): Fix a GC-safety bug.
38166
381672004-04-28  Bruno Haible  <bruno@clisp.org>
38168
38169	Make DEBUG_GCSAFETY work with g++ 3.4.0.
38170	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB): Treat
38171	g++ 3.4 like g++ 3.3.
38172	* spvw_garcol.d (gc_sweep1_sstring_target, gc_sweep1_instance_target):
38173	Use assignment instead of initialization. Works around GCC bug
38174	http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15180 that will be fixed in GCC 3.5.
38175
381762004-04-24  Bruno Haible  <bruno@clisp.org>
38177
38178	* loadform.lisp (mlf-init-function): Return a FUNCTION form with a
38179	suitable name. Add (DECLARE (COMPILE)) when appropriate.
38180	(make-init-form): Use EVAL instead of COMPILE.
38181
381822004-04-24  Bruno Haible  <bruno@clisp.org>
38183
38184	* describe.lisp (write-to-short-string): Move to ...
38185	* defs1.lisp (write-to-short-string): ... here.
38186
381872004-04-23  Bruno Haible  <bruno@clisp.org>
38188
38189	Restore debuggability during loading of init.lisp.
38190	* debug.d (ext_show_stack): New function.
38191
381922004-04-22  Bruno Haible  <bruno@clisp.org>
38193
38194	Restore debuggability during loading of init.lisp.
38195	* debug.d (SYS::INITIAL-BREAK-DRIVER): New function.
38196	* init.lisp (cerror): Invoke INITIAL-BREAK-DRIVER instead of
38197	*BREAK-DRIVER*.
38198
381992004-04-22  Bruno Haible  <bruno@clisp.org>
38200
38201	* macros2.lisp (assert): Fix macro broken on 2003-05-01.
38202
382032004-04-13  Bruno Haible  <bruno@clisp.org>
38204
38205	Fix MAKE-INSTANCES-OBSOLETE's warning message.
38206	* clos-class2.lisp (*make-instances-obsolete-caller*): New variable.
38207	(ensure-class): Bind it.
38208	(make-instances-obsolete-standard-class-nonrecursive): Use it in the
38209	warning message.
38210
382112004-04-27  Sam Steingold  <sds@gnu.org>
38212
38213	* modules/syscalls/calls.c (CRYPT, ENCRYPT, SETKEY): implement
38214	(get_block, set_block): helpers for ENCRYPT and SETKEY
38215	* modules/syscalls/posix.lisp (crypt, encrypt, setkey) [UNIX]: export
38216
382172004-04-27  Sam Steingold  <sds@gnu.org>
38218
38219	* loop.lisp (expand-loop): fix last patch: pattern may be NIL
38220
382212004-04-27  Kaz Kylheku  <kaz@ashi.footprints.net>
38222
38223	* backquote.lisp (quoted-bq-operator-p, bq-constant-p, bq-eval):
38224	New functions.
38225	(bq-optimize-list): Use special rules to determine what is a
38226	constant expression, and how to evaluate it.
38227	E.g instance (LIST 1 (QUOTE (UNQUOTE (+ 2 2)))) is reduced
38228	to (QUOTE (1 4)) because (QUOTE (UNQUOTE (+ 2 2))) is considered a
38229	BQ-CONSTANT-P expression, with the rule that it evaluates to 4
38230	under BQ-EVAL.
38231	(bq-optimize-list*): If the last element is (QUOTE ...), do not
38232	break it up into individual elements if it is a quoted backquote
38233	operator.  E.g. (LIST* 1 (QUOTE (UNQUOTE X))) must not turn
38234	into (LIST 1 'UNQUOTE 'X).
38235
382362004-04-13  Bruno Haible  <bruno@clisp.org>
38237
38238	* clos-class2.lisp (finalize-instance-standard-class): Register this
38239	class also as subclass of <standard-object>, even if <standard-object>
38240	is not explicitly listed among the direct subclasses. Needed so
38241	that (make-instances-obsolete 'standard-object) works.
38242
382432004-04-26  Sam Steingold  <sds@gnu.org>
38244
38245	* loop.lisp (expand-loop): use FUNCTION-FORM-FUNFORM instead of
38246	ad hoc inline code; avoid creating an unnecessary auxiliary
38247	variable (shortens the byte code)
38248
382492004-04-26  Sam Steingold  <sds@gnu.org>
38250
38251	* makemake.in (init): do not treat "bindings" modules
38252	subdirectory specially
38253
382542004-04-26  Sam Steingold  <sds@gnu.org>
38255
38256	* error.d (check_classname): new function for modules
38257	* genclisph.d (main): declare check_classname()
38258	* rawsock/rawsock.c, pcre/cpcre.c, berkeley-db/bdb.c, dirkey/dirkey.c:
38259	use check_classname() and typep_classname() instead of ad hoc checks
38260
382612004-04-25  Bruno Haible  <bruno@clisp.org>
38262
38263	* lispbibl.d (fehler_class): New declaration.
38264	(typep_class, typep_classname): New declarations.
38265	* error.d (fehler_class): New function, moved here from record.d.
38266	* record.d (fehler_keine_klasse): Remove function.
38267	(CLOS::ALLOCATE-STD-INSTANCE): Use fehler_class instead.
38268	* predtype.d (typep_class, CLOS::TYPEP-CLASS, typep_classname): New
38269	functions.
38270	* genclisph.d (main): Emit typep_class, typep_classname declarations.
38271	* type.lisp (clos::subclassp): Remove preliminary definition.
38272	(typep): Use clos::typep-class instead of clos::subclassp.
38273	(c-TYPEP): Emit call to clos::typep-class instead of clos::subclassp.
38274	* clos-class5.lisp (note-i-meta-change, valid-make-instance-keywords):
38275	Use clos::typep-class instead of clos::subclassp.
38276	* modules/clx/new-clx/clx.f (isa_instance_of_p, isa_struct_p): Remove
38277	functions. Use typep_classname instead.
38278
382792004-04-13  Bruno Haible  <bruno@clisp.org>
38280
38281	Let make-instances-obsolete recurse into each subclass only once, even
38282	in case of multiple inheritance.
38283	* clos-class2.lisp (make-instances-obsolete-standard-class): Apply
38284	make-instances-obsolete-standard-class-nonrecursive to all subclasses.
38285	(make-instances-obsolete-standard-class-nonrecursive): New function.
38286	(update-subclasses-for-redefined-class): Apply
38287	update-subclasses-for-redefined-class-nonrecursive to all subclasses.
38288	(update-subclasses-for-redefined-class-nonrecursive): New function.
38289	(list-direct-subclasses, list-all-subclasses): New functions.
38290
382912004-04-25  Sam Steingold  <sds@gnu.org>
38292
38293	* describe.lisp (describe-object): since 2004-02-19,
38294	PATHNAME-DEVICE of a LOGICAL-PATHNAME can be :UNSPECIFIC
38295
382962004-04-23  Sam Steingold  <sds@gnu.org>
38297
38298	* rawsock/rawsock.c, rawsock/sock.lisp: rename CLOSESOCK to
38299	SOCK-CLOSE for consistency with SOCK-READ and SOCK-WRITE
38300	(sockaddr-family-size, sockaddr-data): add
38301
383022004-04-23  Sam Steingold  <sds@gnu.org>
38303
38304	* clx/mit-clx/dependent.lisp (make-process-lock, process-wakeup):
38305	do not signal an error
38306	(holding-lock): no warning
38307
383082004-04-13  Bruno Haible  <bruno@clisp.org>
38309
38310	* lispbibl.d (Class): Move the direct_subclasses slot.
38311	* clos-class2.lisp (class): Remove the direct-subclasses slot.
38312	(standard-class): Add it here instead.
38313	(finalize-instance-standard-class): Access class-direct-subclasses only
38314	if the superclass is a standard-class.
38315	(initialize-instance-built-in-class): Do not add this class to the
38316	class-direct-subclasses of the superclaass.
38317	(initialize-instance-structure-class): Likewise.
38318
383192004-04-22  Sam Steingold  <sds@gnu.org>
38320
38321	* rawsock/sock.lisp (open-unix-socket): new function
38322	(cmsghdr, linger): remove
38323	* rawsock/rawsock.c (MAKE-SOCKADDR, SOCKETPAIR, ACCEPT, BIND)
38324	(CONNECT, GETPEERNAME, GETSOCKNAME, LISTEN, RECV, RECVMSG)
38325	(SOCK-READ, SEND, SENDMSG, SOCK-WRITE): add
38326	* rawsock/link.sh.in: fix TO_PRELOAD
38327	* rawsock/configure.in: check for stropts.h, poll.h and sys/un.h
38328
383292004-04-22  Sam Steingold  <sds@gnu.org>
38330
38331	SOCKET-OPTIONS now handles all 16 POSIX options
38332	* stream.d (SOCKET-OPTIONS): accept SO_DEBUG, SO_ACCEPTCONN,
38333	SO_BROADCAST, SO_REUSEADDR, SO_DONTROUTE
38334	* constobj.d (type_socket_option): add the above 5 options
38335	* constsym.d: ditto
38336
383372004-04-22  Sam Steingold  <sds@gnu.org>
38338
38339	* stream.d (stream_handles): accept fixnums as pointing to
38340	themselves as FDs, this allows RAWSOCK sockets to be used with
38341	SOCKET-STATUS and SOCKET-OPTIONS
38342
383432004-04-22  Bruno Haible  <bruno@clisp.org>
38344
38345	* lispbibl.d (direction_t): Work around a g++ 3.4.0 bug.
38346
383472004-04-22  Sam Steingold  <sds@gnu.org>
38348
38349	* pathname.d (namestring_correctly_parseable_p): fix the last patch
38350
383512004-04-22  Sam Steingold  <sds@gnu.org>
38352
38353	* utils/clispload.lsp: _really_ set
38354	custom:*warn-on-floating-point...contagion* to nil
38355
383562004-04-22  Sam Steingold  <sds@gnu.org>
38357
38358	Rely on FILL-STREAM to format warnings and error messages.
38359	* realelem.d (warn_floating_point_rational_contagion): remove
38360	manual newlines from the message
38361	* flo_rest.d (warn_floating_point_contagion): ditto
38362
383632004-04-22  Sam Steingold  <sds@gnu.org>
38364
38365	* pathname.d (pathname_version_maybe): define
38366	(file_namestring_parts, namestring_correctly_parseable_p): use it
38367
383682004-04-22  Bruno Haible  <bruno@clisp.org>
38369
38370	* lispbibl.d: Enable the use of global register variables for
38371	gcc >= 3.4.
38372
383732004-04-22  Bruno Haible  <bruno@clisp.org>
38374
38375	Make it compile with g++ 3.4.
38376	* lispbibl.d (offsetofa): Define differently for C++.
38377	(restartf_t): Define without nonreturning for C++.
38378
383792004-04-22  Sam Steingold  <sds@gnu.org>
38380
38381	rawsock now compiles on cygwin
38382	* rawsock/rawsock.c (my_check_type): replaces my_type_error()
38383	(my_check_argument, check_struct, check_struct_data): new function
38384	(check_buffer_arg): return object
38385	(RESIZE-BUFFER, SOCKADDR-FAMILY): new lisp functions
38386	(SOCKET, RECVFROM, SENDTO): accept all POSIX arguments
38387	* rawsock/sock.lisp (sockaddr, msghdr, cmsghdr, linger): new structs
38388
383892004-04-22  Sam Steingold  <sds@gnu.org>
38390
38391	* genclisph.d (check_fpointer, check_fpointer_replacement): moved
38392	to a later place so that clisp.h will be compilable
38393
383942004-04-22  Bruno Haible  <bruno@clisp.org>
38395
38396	* genclisph.d (main): Emit definitions for check_fpointer,
38397	check_posfixnum, check_string.
38398
383992004-04-22  Bruno Haible  <bruno@clisp.org>
38400
38401	* genclisph.d (main): Use "#if notused" instead of C comments to mark
38402	definitions not yet used.
38403
384042004-04-12  Bruno Haible  <bruno@clisp.org>
38405
38406	ANSI CL compliance: Handle class redefinition as specified.
38407	* lispbibl.d (Class): Remove class_id field. Remove shared_slots,
38408	previous_definition slots. Add current_version, instantiated slot.
38409	Rename prototype slot.
38410	(ClassVersion): New type.
38411	(Instance): Remove class and cl_id fields. Add class_version field.
38412	(instflags_beingupdated_B): New macro.
38413	(TheClassVersion): New macro.
38414	(instance_un_realloc): Use a single test instead of a loop.
38415	(update_instance): Take a second argument.
38416	(instance_valid_p): Look at class-version instead of id field.
38417	(instance_update): Take a second argument.
38418	(instanceof): Do not call instance_update. Update.
38419	* spvw_garcol.d (gc_sweep1_instance_forward): Use the class_version
38420	field for the forward pointer.
38421	* record.d (class_of): Do not call instance_update if the instance is
38422	already being update.
38423	(CLOS::ALLOCATE-STD-INSTANCE): Set the class-version field instead of
38424	class and id fields.
38425	(do_allocate_instance): Update.
38426	(ptr_to_slot): Update shared slot access: The location's CAR is now a
38427	class-version.
38428	(slot_up): Invoke the local class_of instead of CLASS-OF.
38429	(CLOS::SET-SLOT-VALUE, CLOS:SLOT-EXISTS-P): Likewise.
38430	(CLOS::%CHANGE-CLASS): Turn the user visible object into a forward
38431	pointer, instead of creating a chain of forward pointers.
38432	(update_instance): Take a second argument. Completely rewritten.
38433	(CLOS::%MAKE-INSTANCE): Invoke the local class_of instead of CLASS-OF.
38434	* hashtabl.d (sxhash_atom): Do not call instance_update. Update.
38435	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Likewise.
38436	(heap_statistics_mapper): Update.
38437	* stream.d (stream_get_read_eval, stream_set_read_eval): Call
38438	instance_update. Update.
38439	* genclisph.d (main): Update definition of Instance.
38440	* clos-class2.lisp (class): Remove id slot.
38441	(standard-class): Remove shared-slots, previous-definition slots.
38442	Add current-version, instantiated slots.
38443	(class-version): New structure.
38444	(slot-difference): Remove function.
38445	(ensure-class): Call make-instances-obsolete before re-initializing
38446	the class. Move the versioning stuff to make-instances-obsolete.
38447	Remove the computation of added/discarded slot lists. Update the
38448	subclasses after redefining a class.
38449	(initialize-instance-standard-class): Initialize the current-version
38450	slot. When clearing the precedence-list, clear the all-superclasses
38451	table as well.
38452	(finalize-instance-standard-class): Default instance-size is now 1,
38453	not 2. The shared-slots are now stored in the class-version. Do not
38454	erase the values of shared slots that remain shared.
38455	(std-layout-slots): Let the cons point to the class-version, not to
38456	the class.
38457	(make-instances-obsolete): New preliminary function.
38458	(make-instances-obsolete-standard-class): New function.
38459	(update-subclasses-for-redefined-class): New function.
38460	(class-version-compute-slotlists): New function.
38461	(<standard-object>): Update instance-size. Install a class-version.
38462	(unbound): Update.
38463	* clos-class4.lisp (PRINT-OBJECT on CLASS): When the class is not
38464	properly initialized, print UNINITIALIZED instead of giving an error.
38465	* clos-class5.lisp (update-instance-for-different-class): Compute
38466	list of added slots as specified in ANSI CL.
38467	(make-instances-obsolete on STANDARD-CLASS): Just invoke
38468	make-instances-obsolete-standard-class.
38469
384702004-04-21  Bruno Haible  <bruno@clisp.org>
38471
38472	* pathname.d (file_namestring_parts, namestring_correctly_parseable_p):
38473	Do not lose support for platforms which have versions in the filesystem.
38474
38475	* stream.d (handle_to_stream): Fix begin/end_system_call() calls.
38476
384772004-04-21  Don & Fred Cohens  <fc@all.net, don-sourceforge@isis.cs3-inc.com>
38478	    Sam Steingold  <sds@gnu.org>
38479
38480	new module for low-level socket access
38481	* modules/rawsock: new directory
38482
384832004-04-21  Sam Steingold  <sds@gnu.org>
38484
38485	* disassem.lisp (disassemble): do not signal an error when cannot
38486	disassemble a built-in C function
38487	* utils/clispload.lsp [WIN32]: do not mark DISASSEMBLE.* as
38488	expected failures
38489
384902004-04-21  Bruno Haible  <bruno@clisp.org>
38491
38492	* stream.d (STREAM-EXTERNAL-FORMAT): For terminal_stream, return the
38493	terminal stream's strm_encoding on those platforms where it is used.
38494
384952004-04-21  Bruno Haible  <bruno@clisp.org>
38496
38497	* disassem.lisp (disassemble-machine-code): Add the function object as
38498	argument. Give a nice message when gdb is not found.
38499
385002004-04-21  Bruno Haible  <bruno@clisp.org>
38501
38502	* utils/clispload.lsp: Set *warn-on-floating-point...contagion* to nil.
38503
385042004-04-21  Bruno Haible  <bruno@clisp.org>
38505
38506	* makemake.in (XCC_GCC_VERSION): Invoke gcc -v in the C locale.
38507
385082004-04-12  Bruno Haible  <bruno@clisp.org>
38509
38510	* lispbibl.d (restartf_t): Define as nonreturning. Avoids gcc warnings.
38511
385122004-04-12  Bruno Haible  <bruno@clisp.org>
38513
38514	* lispbibl.d (popSP, finish_entry_frame): Rename macro parameter.
38515
385162004-04-12  Bruno Haible  <bruno@clisp.org>
38517
38518	Make the WIDE_SOFT model work again.
38519	* genclisph.d (main): Emit definition for one_o.
38520
385212004-04-12  Bruno Haible  <bruno@clisp.org>
38522
38523	* condition.lisp (check-value): Fix typo. Avoid compiler warning.
38524
385252004-04-12  Bruno Haible  <bruno@clisp.org>
38526
38527	* intlog.d (I_I_ash_I): Fix bug when y = most-negative-fixnum = -2^32.
38528
385292004-04-11  Bruno Haible  <bruno@clisp.org>
38530
38531	ANSI CL compliance: Optionally return floating-point results when
38532	ANSI CL says so.
38533	* realelem.d (warn_floating_point_rational_contagion): New function.
38534	(RA_F_exact_contagion_R): New function.
38535	(R_R_mal_R, R_R_durch_R, R_I_expt_R): Use RA_F_exact_contagion_R.
38536	* realtran.d (R_R_atan_R, R_R_log_R): Likewise.
38537	* comptran.d (N_phase_R): Add argument want_exact. Use
38538	RA_F_exact_contagion_R.
38539	(N_log_N, N_N_log_N): Update.
38540	(N_I_expt_N, N_N_expt_N): Use R_R_contagion_R and RA_F_exact_contagion_R.
38541	* lisparit.d (PHASE): Pass want_exact=false.
38542	(init_arith): Initialize *FLOATING-POINT-RATIONAL-CONTAGION-ANSI* and
38543	*PHASE-ANSI* to NIL, and *WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* to
38544	T.
38545	* misc.d (SYS::SET-ANSI): Set *FLOATING-POINT-RATIONAL-CONTAGION-ANSI*
38546	and *PHASE-ANSI* as well.
38547	* places.lisp (*ansi*): Update documentation.
38548	* utils/clispload.lsp (*expected-failures*): Remove ATAN.4,
38549	EXPT.{3,4,5,6}, EXPT.{8,9,10,11}, PHASE.{1,2,3,4,5,6,7}.
38550
385512004-04-11  Bruno Haible  <bruno@clisp.org>
38552
38553	* package.d (correct_packname): Fix typo in restart description.
38554
385552004-04-20  Sam Steingold  <sds@gnu.org>
38556
38557	* utils/clispload.lsp (disassemble-machine-code) [win32, cygwin]: do
38558	not redefine
38559
385602004-04-20  Bruno Haible  <bruno@clisp.org>
38561
38562	* io.d (pr_symbol): Follow CLHS also in the "pathological case that
38563	the symbol has no home package but is nevertheless somehow accessible
38564	in the current package".
38565
385662004-04-20  Bruno Haible  <bruno@clisp.org>
38567
38568	* io.d (pr_symbol): Print keywords that are accessible in the current
38569	package with a colon. Required by CLHS 22.1.3.3.1.
38570
385712004-04-20  Bruno Haible  <bruno@clisp.org>
38572
38573	* io.d (pr_string): When *print-readably* = NIL, print nil-vectors
38574	of length 0 like strings. Required by CLHS 22.1.3.4.
38575
385762004-04-20  Sam Steingold  <sds@gnu.org>
38577
38578	* utils/clispload.lsp (*expected-failures*): update
38579
385802004-04-19  Sam Steingold  <sds@gnu.org>
38581
38582	pathnames always have VERSION slot, even though it is not printed
38583	* lispbibl.d (HAS_VERSION): remove
38584	(Pathname): always has the version slot
38585	* spvw_debug.d (nobject_out1): ditto
38586	* constobj.d (type_version): always full-blown
38587	(semicolon_string): always present
38588	(zero_string): remove
38589	* pathname.d (pathname_version_maybe, test_optional_version_): remove
38590	(xpathname_version): update for that
38591	(PATHNAME-VERSION, has_version_wildcards): just use xpathname_version()
38592	(nametype_namestring_parts_): remove
38593	(file_namestring_parts): pass NIL as the version argument to
38594	nametype_namestring_parts() because physical pathname version are
38595	not printed
38596	(MERGE-PATHNAMES): fix version defaulting logic
38597	(namestring_correctly_parseable_p): non-NIL version means
38598	unprintable readably
38599	(DEFAULT_VERSION): new CPP macro for DIRECTORY
38600	(directory_search_scandir, directory_search): set pathname_version
38601	to DEFAULT_VERSION to ensure that DIRECTORY does not return wild
38602	pathnames
38603
386042004-04-20  Bruno Haible  <bruno@clisp.org>
38605
38606	* po/de.po: Update translations.
38607
386082004-04-11  Bruno Haible  <bruno@clisp.org>
38609
38610	Nicer bootstrapping.
38611	* init.lisp (format, cerror, warn): Provide some more capable
38612	preliminary definitions.
38613	(sys::check-redefinition): Change the format string so that it works
38614	with the preliminary FORMAT.
38615	(load): Use FORMAT instead of emulating it.
38616	* savemem.lisp (saveinitmem): Likewise.
38617
386182004-04-11  Bruno Haible  <bruno@clisp.org>
38619
38620	Speed up the argument type checks.
38621	* lispbibl.d (check_fpointer): Turn into an inline function.
38622	(check_fpointer_replacement): New declaration.
38623	(check_list): Turn into an inline function.
38624	(check_list_replacement): New declaration.
38625	(check_symbol): Turn into an inline function.
38626	(check_symbol_replacement): New declaration.
38627	(check_symbol_non_constant): Turn into an inline function.
38628	(check_symbol_non_constant_replacement): New declaration.
38629	(check_posfixnum): Turn into an inline function.
38630	(check_posfixnum_replacement): New declaration.
38631	(check_integer): Turn into an inline function.
38632	(check_integer_replacement): New declaration.
38633	(check_pos_integer): Turn into an inline function.
38634	(check_pos_integer_replacement): New declaration.
38635	(check_char): Turn into an inline function.
38636	(check_char_replacement): New declaration.
38637	(check_string): Turn into an inline function.
38638	(check_string_replacement): New declaration.
38639	(check_function): Turn into an inline function.
38640	(check_function_replacement): New declaration.
38641	(check_funname): Turn into an inline function.
38642	(check_funname_replacement): New declaration.
38643	(check_uint8): Turn into an inline function.
38644	(check_uint8_replacement): New declaration.
38645	(check_sint8): Turn into an inline function.
38646	(check_sint8_replacement): New declaration.
38647	(check_uint16): Turn into an inline function.
38648	(check_uint16_replacement): New declaration.
38649	(check_sint16): Turn into an inline function.
38650	(check_sint16_replacement): New declaration.
38651	(check_uint32): Turn into an inline function.
38652	(check_uint32_replacement): New declaration.
38653	(check_sint32): Turn into an inline function.
38654	(check_sint32_replacement): New declaration.
38655	(check_uint64): Turn into an inline function.
38656	(check_uint64_replacement): New declaration.
38657	(check_sint64): Turn into an inline function.
38658	(check_sint64_replacement): New declaration.
38659	(check_uint): Turn into an inline function.
38660	(check_uint_replacement): New declaration.
38661	(check_sint): Turn into an inline function.
38662	(check_sint_replacement): New declaration.
38663	(check_ulong): Turn into an inline function.
38664	(check_ulong_replacement): New declaration.
38665	(check_slong): Turn into an inline function.
38666	(check_slong_replacement): New declaration.
38667	(check_ffloat): Turn into an inline function.
38668	(check_ffloat_replacement): New declaration.
38669	(check_dfloat): Turn into an inline function.
38670	(check_dfloat_replacement): New declaration.
38671	(check_structure): Turn into an inline function.
38672	(check_structure_replacement): New declaration.
38673	(check_real): Turn into an inline function.
38674	(check_real_replacement): New declaration.
38675	* error.d (check_fpointer_replacement): Rename from check_fpointer.
38676	(check_list_replacement): Rename from check_list. Assume the argument
38677	already failed the type check.
38678	(check_symbol_replacement): Rename from check_symbol. Assume the
38679	argument already failed the type check.
38680	(check_symbol_non_constant_replacement): Rename from
38681	check_symbol_non_constant.
38682	(check_posfixnum_replacement): Rename from check_posfixnum. Assume the
38683	argument already failed the type check.
38684	(check_integer_replacement): Rename from check_integer. Assume the
38685	argument already failed the type check.
38686	(check_pos_integer_replacement): Rename from check_pos_integer. Assume
38687	the argument already failed the type check.
38688	(check_char_replacement): Rename from check_char. Assume the argument
38689	already failed the type check.
38690	(check_string_replacement): Rename from check_string. Assume the
38691	argument already failed the type check.
38692	(check_function_replacement): Rename from check_function. Assume the
38693	argument already failed the type check.
38694	(check_funname_replacement): Rename from check_funname. Assume the
38695	argument already failed the type check.
38696	(check_uint8_replacement): Rename from check_uint8. Assume the
38697	argument already failed the type check.
38698	(check_sint8_replacement): Rename from check_sint8. Assume the
38699	argument already failed the type check.
38700	(check_uint16_replacement): Rename from check_uint16. Assume the
38701	argument already failed the type check.
38702	(check_sint16_replacement): Rename from check_sint16. Assume the
38703	argument already failed the type check.
38704	(check_uint32_replacement): Rename from check_uint32. Assume the
38705	argument already failed the type check.
38706	(check_sint32_replacement): Rename from check_sint32. Assume the
38707	argument already failed the type check.
38708	(check_uint64_replacement): Rename from check_uint64. Assume the
38709	argument already failed the type check.
38710	(check_sint64_replacement): Rename from check_sint64. Assume the
38711	argument already failed the type check.
38712	(check_uint_replacement): Rename from check_uint. Assume the
38713	argument already failed the type check.
38714	(check_sint_replacement): Rename from check_sint. Assume the
38715	argument already failed the type check.
38716	(check_ulong_replacement): Rename from check_ulong. Assume the
38717	argument already failed the type check.
38718	(check_slong_replacement): Rename from check_slong. Assume the
38719	argument already failed the type check.
38720	(check_ffloat_replacement): Rename from check_ffloat. Assume the
38721	argument already failed the type check.
38722	(check_dfloat_replacement): Rename from check_dfloat. Assume the
38723	argument already failed the type check.
38724	* record.d (check_structure_replacement): Rename from check_structure.
38725	Assume the argument already failed the type check.
38726	* lisparit.d (check_number): Turn into an inline function.
38727	(check_number_replacement): New function.
38728	(check_real_replacement): Rename from check_real. Assume the argument
38729	already failed the type check.
38730	(check_float): Turn into an inline function.
38731	(check_float_replacement): New function.
38732	(check_rational): Turn into an inline function.
38733	(check_rational_replacement): New function.
38734	* eval.d (eval1, apply, funcall): Use check_funname_replacement instead
38735	of check_funname.
38736	* control.d (funname_to_symbol, FLET, LABELS): Likewise.
38737	* genclisph.d (main): Update. Emit definitions for inline,
38738	single_float_p, double_float_p, uint_p, sint_p, ulong_p, slong_p.
38739
387402004-04-19  Sam Steingold  <sds@gnu.org>
38741
38742	* pathname.d (simplify_directory): signal an error on (:ABSOLUTE :UP)
38743	as per <http://www.lisp.org/HyperSpec/Body/sec_19-2-2-4-3.html>
38744
387452004-04-19  Sam Steingold  <sds@gnu.org>
38746
38747	* spvw.d (quit): do (FRESH-LINE *ERROR-OUTPUT*) before (WRITE-LINE
38748	"Bye") because in batch mode *ERROR-OUTPUT* and *STANDARD-OUTPUT*
38749	are separate
38750
387512004-04-19  Sam Steingold  <sds@gnu.org>
38752
38753	* eval.d (CHECK_FDEF): use the return value of
38754	check_fdefinition() instead of Symbol_function(symbol)
38755
387562004-04-11  Bruno Haible  <bruno@clisp.org>
38757
38758	* stream.d (lisp_completion): Ensure that local variables are not
38759	clobbered through longjmp.
38760
387612004-04-11  Bruno Haible  <bruno@clisp.org>
38762
38763	* lispbibl.d (correctable_error): Document.
38764	* error.d (correctable_error): Expand and correct documentation.
38765
387662004-04-11  Bruno Haible  <bruno@clisp.org>
38767
38768	* lispbibl.d: Disable the use of global register variables for
38769	gcc >= 3.0.
38770
387712004-04-19  Bruno Haible  <bruno@clisp.org>
38772
38773	Fix the return value of NSTRING-UPCASE/DOWNCASE/CAPITALIZE,
38774	WRITE-STRING, WRITE-LINE, when the argument is a displaced string.
38775	* lispbibl.d (test_vector_limits): Clarify specification.
38776	* charstrg.d (test_vector_limits): Likewise. Return the original
38777	string, not the data vector.
38778	(EXT:STRING-WIDTH): Use the data vector instead of the original string.
38779	* encoding.d (CONVERT-STRING-FROM-BYTES): Likewise.
38780	(CONVERT-STRING-TO-BYTES): Likewise.
38781	* foreign.d (FFI::CALL-WITH-FOREIGN-STRING): Likewise.
38782	* stream.d (MAKE-STRING-INPUT-STREAM, FILE-POSITION): Ignore
38783	arg.offset.
38784	* io.d (write_string_up): Undo last patch.
38785
387862004-04-10  Bruno Haible  <bruno@clisp.org>
38787
38788	* type.lisp (BASE-STRING, SIMPLE-BASE-STRING): Change the type test
38789	so that it excludes vectors of element type NIL.
38790
387912004-04-10  Bruno Haible  <bruno@clisp.org>
38792
38793	* condition.lisp (warn): Let the indentation depend on the width of the
38794	translation of "WARNING: ".
38795
38796	* fill-out.lisp (line-pos): Use EXT:STRING-WIDTH instead of LENGTH.
38797
387982004-04-10  Bruno Haible  <bruno@clisp.org>
38799
38800	* describe.lisp (describe-object of GENERIC-FUNCTION): Move newline out
38801	of TEXT.
38802
388032004-04-16  Sam Steingold  <sds@gnu.org>
38804
38805	* makemake.in (check-ansi-tests): call do-tests here.
38806	(check-ansi-tests-debug): new target
38807	* utils/clispload.lsp: do not call DO-TESTS,
38808	leave this to the command line
38809
388102004-04-16  Bruno Haible  <bruno@clisp.org>
38811
38812	* disassem.lisp (disassemble-machine-code): On Cygwin, do not use
38813	the live process.
38814
388152004-04-16  Sam Steingold  <sds@gnu.org>
38816
38817	* io.d (write_string_up): (WRITE-STRING #A(nil (0))) must return
38818	its argument, not NIL
38819
388202004-04-16  Sam Steingold  <sds@gnu.org>
38821
38822	* io.d (test_ostream): accept a gcv_object_t* argument instead of
38823	using STACK_0; update all callers, including...
38824	(FORMAT-TABULATE): do not juggle STACK to ensure that the stream
38825	is in STACK_0
38826
388272004-04-16  Sam Steingold  <sds@gnu.org>
38828
38829	* utils/clispload.lsp (disassemble-machine-code) [CYGWIN, WIN32]:
38830	redefine because debugging kills the process on woe32
38831
388322004-04-16  Sam Steingold  <sds@gnu.org>
38833
38834	* comptran.d (R_R_asinh_R_R): fix the floating point type of the
38835	return value
38836	* utils/clispload.lsp: ASINH.5 is now fixed
38837
388382004-04-09  Bruno Haible  <bruno@clisp.org>
38839
38840	* compiler.lisp (c-constant-number, c-FORMAT): Use c-warn instead of
38841	c-error.
38842
388432004-04-09  Bruno Haible  <bruno@clisp.org>
38844
38845	Make REMOVE-DUPLICATES, DELETE-DUPLICATES cons less.
38846	* sequence.d (remove_duplicates_list_from_start)
38847	(delete_duplicates_list_from_start, delete_duplicates_list_from_end):
38848	New functions.
38849	(seq_duplicates): Use these functions instead of the bit-vector
38850	approach when not using a hash-table and the sequence is a list.
38851
388522004-04-04  Bruno Haible  <bruno@clisp.org>
38853
38854	Reduce the amount of consing of SUBTYPEP.
38855	* subtypep.lisp (intervals-mapto): Make the local functions autonomous.
38856	(intervals-intersection, intervals-union, intervals-subtypep): Use
38857	macrolet instead of flet.
38858	(intervals-remove-one): Use a combination of an autonomous local
38859	function and macrolet.
38860	(canonicalize-type): Make the local function autonomous.
38861	(*subtypep-type1parts*, *subtypep-type2parts*)
38862	(*subtypep-type2eqlparts*): New variables.
38863	(subtypep-flatten-AND, subtypep-flatten-OR): New functions.
38864	(subtypep-logic): Use them. Use declarations to convince the compiler
38865	to expand EVERY, REMOVE-IF, REMOVE-IF-NOT calls inline.
38866
388672004-03-28  Bruno Haible  <bruno@clisp.org>
38868
38869	Integrate the ansi-tests from Paul Dietz.
38870	* utils/clispload.lsp: New file.
38871	* makemake.in (RECOMPILEDIR): Rename from TESTDIR.
38872	(TESTSDIR): Change to 'tests'.
38873	(ANSITESTSDIR): New variable.
38874	(check-recompile): Rename from test.
38875	(check-tests): Rename from testsuite.
38876	(check-ansi-tests): New target.
38877	(check): Depend on it.
38878	(clean1): Remove also ANSITESTSDIR.
38879
388802004-04-15  Sam Steingold  <sds@gnu.org>
38881
38882	new module for interface to MATLAB
38883	http://www.mathworks.com/products/matlab/
38884	* modules/matlab: new directory
38885
388862004-04-15  Sam Steingold  <sds@gnu.org>
38887
38888	* clos-methcomb5.lisp (compute-method-partition-lambdas):
38889	remove unused variable
38890	(compute-effective-method-function): do not call
38891	GF-KEYWORD-ARGUMENTS since the values are not used
38892
388932004-04-15  Sam Steingold  <sds@gnu.org>
38894
38895	* Makefile.devel (update-ansi-tests): do not pass "-d" to "cvs
38896	update" becase "ansi-tests" could be a symlink to a writable sandbox
38897
388982004-04-15  Sam Steingold  <sds@gnu.org>
38899
38900	make EXT:FILL-STREAM a user-visible extension
38901	* fill-out.lisp (fill-stream, with-fill-stream): export symbol from EXT
38902	(fill-stream): new slot PENDING-SPACE to avoid trailing spaces
38903	and compress multiple blanks into one
38904	(line-pos): new helper
38905	(stream-line-column, stream-start-line-p): use it
38906	(fill-stream-flush-buffer): write a #\Space when PENDING-SPACE is
38907	non-NIL and we are not at the beginning of a line;
38908	do not multiply indent by *PRINT-INDENT-LISTS*
38909	(stream-write-char): set PENDING-SPACE instead of writing #\Space
38910	(stream-clear-output): reset PENDING-SPACE
38911
389122004-04-08  Bruno Haible  <bruno@clisp.org>
38913
38914	Make REMOVE[-IF[-NOT]], DELETE[-IF[-NOT]], SUBSTITUTE[-IF[-NOT]] on
38915	lists cons less.
38916	* sequence.d (seq_prepare_filterop): New function, extracted from
38917	seq_filterop.
38918	(seq_filterop): Remove the argument checking.
38919	(remove_op, delete_op): New functions.
38920	(REMOVE, REMOVE-IF, REMOVE-IF-NOT): Use remove_op instead of
38921	seq_filterop.
38922	(DELETE, DELETE-IF, DELETE-IF-NOT): Use delete_op instead of
38923	seq_filterop.
38924	(substitute_op): New function.
38925	(SUBSTITUTE, SUBSTITUTE-IF, SUBSTITUTE-IF-NOT): Use substitute_op
38926	instead of seq_filterop.
38927	(nsubstitute_op): Update.
38928
389292004-04-03  Bruno Haible  <bruno@clisp.org>
38930
38931	New SUBTYPEP implementation.
38932	* subtypep.lisp: New file.
38933	* type.lisp (type-class): Remove function.
38934	(valid-interval-designator-p): Move to subtypep.lisp.
38935	(with-interval-designators): Remove macro.
38936	(interval-mix, interval-mix-not, simplify-and-or): Remove functions.
38937	(*canonicalize-type-prefer-clos*): Remove variable.
38938	(canonicalize-type): Simplify. Add error checking. Remove optional
38939	argument. Move to subtypep.lisp.
38940	(subtypep): Mostly rewritten. Move to subtypep.lisp.
38941	(get-charset-range, charset-subtypep): Move to subtypep.lisp.
38942	(subtype-integer): Small fixes. Handle the INTERVALS typespec that
38943	canonicalize-type now produces.
38944	* defstruct.lisp (ds-canonicalize-type): New function.
38945	* clos-class2.lisp (class-and): Remove function.
38946	* makemake.in (LPARTS): Add subtypep.
38947	* po/Makefile.devel (LISPSOURCES): Add subtypep.
38948
389492004-04-14  Bruno Haible  <bruno@clisp.org>
38950
38951	* Makefile.devel (ANSITESTS_CVS_ROOT, ANSITESTS_CVS_REPOSITORY): New
38952	variables.
38953	(update-ansi-tests): New target.
38954	(all): Invoke it.
38955
389562004-04-09  Bruno Haible  <bruno@clisp.org>
38957
38958	Make REMOVE[-IF[-NOT]], REMOVE-DUPLICATES on lists cons less.
38959	* sequence.d (remove_help): For lists, share the tail of the result
38960	list with the input list.
38961
389622004-03-28  Bruno Haible  <bruno@clisp.org>
38963
38964	* lispbibl.d (expand_deftype): Mark as GC-trigger.
38965
389662004-04-04  Bruno Haible  <bruno@clisp.org>
38967
38968	Make TYPEP work on structure types with user-defined :TYPE.
38969	* defstruct.lisp (ds-typep, ds-typep-expansion): New functions.
38970	* type.lisp (typep): Implement test for structure types with
38971	user-defined :TYPE by calling ds-typep.
38972	* compiler.lisp (c-TYPEP): Implement test for structure types with
38973	user-defined :TYPE by calling ds-typep-expansion.
38974
389752004-04-13  Sam Steingold  <sds@gnu.org>
38976
38977	sync modules/clx/mit-clx/ with CLOCC/GUI/CLX
38978	* modules/clx/mit-clx/link.sh (TO_LOAD): add shape and split-sequence
38979	* modules/clx/mit-clx/Makefile (ALLLISP, ALLFAS): ditto
38980	* modules/clx/mit-clx/Makefile.clisp, modules/clx/mit-clx/Makefile.gcl:
38981	* modules/clx/mit-clx/README.GCL, modules/clx/mit-clx/akcl_dep.lisp:
38982	* modules/clx/mit-clx/build-clx.lisp, modules/clx/mit-clx/exclcmac.lisp:
38983	* modules/clx/mit-clx/excldefsys.lisp, modules/clx/mit-clx/excldep.c:
38984	* modules/clx/mit-clx/excldep.lisp, modules/clx/mit-clx/exclMakefile:
38985	* modules/clx/mit-clx/exclREADME, modules/clx/mit-clx/fix-socket.c:
38986	* modules/clx/mit-clx/generalock.lisp, modules/clx/mit-clx/sysdef.lisp:
38987	* modules/clx/mit-clx/kcl-compiler-patches.lisp:
38988	* modules/clx/mit-clx/kcl-patches.lisp:
38989	* modules/clx/mit-clx/kcl-system-patches.lisp:
38990	* modules/clx/mit-clx/makefile.akcl:
38991	* modules/clx/mit-clx/ms-patch.uu, modules/clx/mit-clx/provide.lisp:
38992	* modules/clx/mit-clx/sockcl.lisp, modules/clx/mit-clx/socket.c:
38993	* modules/clx/mit-clx/sys-package.lisp:
38994	* modules/clx/mit-clx/sys-proclaim.lisp: Remove files.
38995	* modules/clx/mit-clx/doc.lisp: Rename from doc.lisp-doc.
38996	* modules/clx/mit-clx/shape.lisp:
38997	* modules/clx/mit-clx/split-sequence.lisp: New files.
38998	* modules/clx/mit-clx/attributes.lisp, modules/clx/mit-clx/buffer.lisp:
38999	* modules/clx/mit-clx/bufmac.lisp, modules/clx/mit-clx/clx.lisp:
39000	* modules/clx/mit-clx/defsystem.lisp, modules/clx/mit-clx/depdefs.lisp:
39001	* modules/clx/mit-clx/dependent.lisp, modules/clx/mit-clx/describe.lisp:
39002	* modules/clx/mit-clx/display.lisp, modules/clx/mit-clx/fonts.lisp:
39003	* modules/clx/mit-clx/gcontext.lisp, modules/clx/mit-clx/graphics.lisp:
39004	* modules/clx/mit-clx/image.lisp, modules/clx/mit-clx/input.lisp:
39005	* modules/clx/mit-clx/keysyms.lisp, modules/clx/mit-clx/macros.lisp:
39006	* modules/clx/mit-clx/manager.lisp, modules/clx/mit-clx/package.lisp:
39007	* modules/clx/mit-clx/requests.lisp, modules/clx/mit-clx/resource.lisp:
39008	* modules/clx/mit-clx/text.lisp, modules/clx/mit-clx/trace.lisp:
39009	* modules/clx/mit-clx/translate.lisp: sync with CLOCC
39010
390112004-04-13  Sam Steingold  <sds@gnu.org>
39012
39013	* Makefile.devel (view-man, view-html): man pages are in doc
39014
390152004-04-04  Bruno Haible  <bruno@clisp.org>
39016
39017	Compile things like (remove-if #'(lambda ...) (the list ...)) inline.
39018	* compiler.lisp (c-form-table): Add entries for MAP, MAP-INTO, SOME,
39019	EVERY, NOTANY, NOTEVERY.
39020	(c-MAP-on-CARs-inner): Add endp-value argument.
39021	(c-MAP-on-CARs, c-MAPC): Update.
39022	(c-NTH, c-SETNTH): Use c-GLOBAL-FUNCTION-CALL-form instead of
39023	c-GLOBAL-FUNCTION-CALL, to reuse the already macroexpanded subforms.
39024	(declared-list-form-p, c-MAP, c-MAP-INTO, c-SOME, c-EVERY, c-NOTANY)
39025	(c-NOTEVERY): New functions.
39026	(c-REMOVE-IF, c-DELETE-IF, c-SUBSTITUTE-IF, c-NSUBSTITUTE-IF)
39027	(c-FIND-IF, c-POSITION-IF, c-COUNT-IF): Expand inline if the sequence
39028	argument is declared as list. Handle the inverted case as well.
39029	(c-REMOVE-IF-NOT, c-DELETE-IF-NOT, c-SUBSTITUTE-IF-NOT)
39030	(c-NSUBSTITUTE-IF-NOT, c-FIND-IF-NOT, c-POSITION-IF-NOT)
39031	(c-COUNT-IF-NOT): Invoke the corresponding -IF function.
39032	(c-seqop, c-LDB, c-LDB-TEST, c-MASK-FIELD, c-DPB, c-DEPOSIT-FIELD): Use
39033	c-GLOBAL-FUNCTION-CALL-form instead of c-GLOBAL-FUNCTION-CALL, to reuse
39034	the already macroexpanded subforms.
39035
390362004-04-04  Bruno Haible  <bruno@clisp.org>
39037
39038	Make DEFSTRUCT :INITIAL-OFFSET option work correctly even in structure
39039	types with no slots.
39040	* defstruct.lisp (ds-make-constructor-body): Do not use the optimized
39041	simple case if there are trailing NILs, due to :initial-offset.
39042	(ds-make-pred): Replace name-offset argument with slotlist and size
39043	arguments. Check the names of the :INCLUDEd structures as well. Use
39044	SYS::CONSES-P, so that the test can cope with dotted lists and
39045	circular lists.
39046
390472004-04-04  Bruno Haible  <bruno@clisp.org>
39048
39049	* list.d (SYS::CONSES-P): New function.
39050
390512004-04-03  Bruno Haible  <bruno@clisp.org>
39052
39053	* sequence.d (valid_type1): Call eltype_code only if the element-type
39054	is not *.
39055
390562004-04-03  Bruno Haible  <bruno@clisp.org>
39057
39058	* defstruct.lisp (defstruct): When defining a structure with :TYPE
39059	option, remove any previously defined class of the same name.
39060	* clos-class2.lisp (undefine-structure-class): New function.
39061
390622004-04-03  Bruno Haible  <bruno@clisp.org>
39063
39064	Store a structure's size in the DEFSTRUCT-DESCRIPTION.
39065	* defstruct.lisp (defstruct): Add the instance size as third slot of
39066	the DEFSTRUCT-DESCRIPTION.
39067	* io.d (structure_reader, pr_structure_default): Update.
39068	* clos-class2.lisp (define-structure-class): Update.
39069	* foreign1.lisp (c-struct-constructor): Update.
39070
390712004-04-08  Sam Steingold  <sds@gnu.org>
39072
39073	* init.lisp: export ABORT here to avoid conflict with gray.lisp
39074
390752004-04-07  Sam Steingold  <sds@gnu.org>
39076
39077	fill/indent warnings and error messages
39078	* fill-out.lisp: extracted from describe.lisp
39079	* describe.lisp (describe-stream): moved to fill-out.lisp
39080	(describe): DESCRIBE-STREAM is now called FILL-STREAM
39081	* condition.lisp (pretty-print-condition): new function
39082	(warn, maybe-continue): use it
39083	* reploop.lisp (print-error, break-loop): ditto
39084	* makemake.in (LPARTS): add fill-out
39085	* po/Makefile.devel (LISPSOURCES): ditto
39086
390872004-04-07  Sam Steingold  <sds@gnu.org>
39088
39089	* spvw.d (main): use UNIXy i/o (*ERROR-OUTPUT* = stderr) in batch
39090	mode under the same conditions as *DEBUG-IO* being non-interactive
39091
390922004-04-07  Sam Steingold  <sds@gnu.org>
39093
39094	* Makefile.devel (src/autoconf/aclocal.m4): aclocal 1.8 forbids
39095	duplicate AC_CONFIG_HEADERS
39096
390972004-04-07  Sam Steingold  <sds@gnu.org>
39098
39099	* modules/pcre/cpcre.c: better support for older PCRE versions
39100
391012004-04-05  Sam Steingold  <sds@gnu.org>
39102
39103	* defstruct.lisp (defstruct): write STRUCT DOCUMENTATION to the
39104	TYPE slot to match DOCUMENTATION in documentation.lisp
39105
391062004-03-22  Bruno Haible  <bruno@clisp.org>
39107
39108	* clos-class2.lisp (define-structure-class): Use sys::ds-slot-initargs,
39109	not sys::ds-slot-name, to detect whether a structure slot is real.
39110
391112004-03-21  Bruno Haible  <bruno@clisp.org>
39112
39113	* clos-class2.lisp (finalize-class): Rename from class-finalize.
39114	(initialize-instance-standard-class): Update.
39115	* clos-class5.lisp (finalize-inheritance): Update.
39116	* record.d (do_allocate_instance, CLOS::%MAKE-INSTANCE): Update.
39117
39118	* clos-class2.lisp (ensure-class): Treat metaclasses that are
39119	subclasses of <standard-class> like <standard-class> itself. For
39120	other metaclasses, invoke FIND-CLASS with force-p = t.
39121
39122	* clos-class2.lisp (subclassp): Finalize the class before accessing
39123	its superclasses table.
39124
391252004-03-21  Bruno Haible  <bruno@clisp.org>
39126
39127	* clos-slots2.lisp (slot-unbound): Quote the slot-name in the place.
39128
39129	* clos-class2.lisp (DEFCLASS): Do not emit code to FIND-CLASS the
39130	direct superclasses.
39131	(ensure-class): Call FIND-CLASS on the direct superclasses here.
39132	Call FIND-CLASS also on the old direct superclasses. Do not create a
39133	new class object if the class exists but has not yet been finalized.
39134
39135	* clos-class2.lisp (*finalizing-now*): Remove variable.
39136	(class-finalize): Pass the finalizing-now stack as optional argument.
39137
39138	* clos-class5.lisp (make-instances-obsolete): Do not do anything if the
39139	class is not yet finalized. Return the argument unmodified, even if
39140	it's a symbol.
39141
39142	* documentation.lisp (documentation, setf documentation): Add a method
39143	for (SYMBOL (EQL METHOD-COMBINATION)).
39144
391452004-03-21  Bruno Haible  <bruno@clisp.org>
39146
39147	Remove redundant information from the DEFSTRUCT-DESCRIPTION.
39148	* defstruct.lisp (make-ds-slot): Remove 8th argument.
39149	(ds-slot-var): Remove function.
39150	(ds-slot-initargs): New function.
39151	(ds-real-slot-p): Use ds-slot-initargs.
39152	(ds-arg-default): Simplify.
39153	(ds-make-constructor-body): Take a varlist instead of a get-var
39154	argument.
39155	(ds-make-boa-constructor, ds-make-keyword-constructor): Update.
39156	(defstruct): Update.
39157	* io.d (pr_structure_default): Update.
39158
391592004-02-29  Bruno Haible  <bruno@clisp.org>
39160
39161	Split clos.lisp.
39162	* clos.lisp: Split into pieces.
39163	* clos-class1.lisp, clos-class2.lisp, clos-class3.lisp:
39164	* clos-class4.lisp, clos-class5.lisp, clos-genfun1.lisp:
39165	* clos-genfun2.lisp, clos-genfun3.lisp, clos-genfun4.lisp:
39166	* clos-genfun5.lisp, clos-methcomb1.lisp, clos-methcomb2.lisp:
39167	* clos-methcomb3.lisp, clos-methcomb4.lisp, clos-methcomb5.lisp:
39168	* clos-method1.lisp, clos-method2.lisp, clos-method3.lisp:
39169	* clos-slots1.lisp, clos-slots2.lisp, documentation.lisp: New files,
39170	extracted from clos.lisp.
39171	* makemake.in (LPARTS): Add the new files.
39172	* po/Makefile.devel (LISPSOURCES): Likewise.
39173
391742004-03-27  Bruno Haible  <bruno@clisp.org>
39175
39176	* floatprint.lisp (decode-float-decimal): Add argument
39177	fixed-point-adjust.
39178	(write-float): Pass fixed-point-adjust = t.
39179
391802004-03-27  Bruno Haible  <bruno@clisp.org>
39181
39182	* io.d (pr_symbol_part): Add |...| markers also when *print-readably*
39183	is true.
39184
391852004-03-27  Bruno Haible  <bruno@clisp.org>
39186
39187	* lispbibl.d (arraysize_limit_1): Reduce value by 1.
39188	* spvw.d (init_symbol_values): Initialize array-total-size-limit,
39189	array-dimension-limit and array-rank-limit as fixnums.
39190
391912004-03-27  Bruno Haible  <bruno@clisp.org>
39192
39193	ANSI CL compliance.
39194	* clos.lisp (std-find-method): Check the specializers argument.
39195	(analyze-method-description): Update.
39196
391972004-03-27  Bruno Haible  <bruno@clisp.org>
39198
39199	ANSI CL compliance: Fix the short-form method combination.
39200	* clos.lisp (standard-method-combination-check-method-qualifiers):
39201	Rename from short-form-method-combination-check-method-qualifiers.
39202	(define-method-combination): The qualifier of primary methods is the
39203	name of the method combination, not the operator.
39204	(short-form-method-combination-check-method-qualifiers): New function.
39205
392062004-03-27  Bruno Haible  <bruno@clisp.org>
39207
39208	ANSI CL compliance: DEFGENERIC must remove methods defined in the
39209	previous DEFGENERIC form.
39210	* clos.lisp (standard-method): Add slot 'origin'.
39211	(analyze-method-description): Add value for :ORIGIN.
39212	(do-defgeneric): Remove old methods that came from a DEFGENERIC form.
39213
392142004-03-27  Bruno Haible  <bruno@clisp.org>
39215
39216	ANSI CL compliance: Improved argument list checking.
39217	* record.d (check_keywords): Remove macro.
39218	(check_initialization_argument_list): New function.
39219	(CLOS::%ALLOCATE-INSTANCE, CLOS::%SHARED-INITIALIZE)
39220	(CLOS::%REINITIALIZE-INSTANCE, CLOS::%INITIALIZE-INSTANCE)
39221	(CLOS::%MAKE-INSTANCE): Use check_initialization_argument_list
39222	instead of check_keywords.
39223
392242004-03-27  Bruno Haible  <bruno@clisp.org>
39225
39226	ANSI CL compliance.
39227	* clos.lisp (ensure-class): Do not modify the old class if it doesn't
39228	have a "proper name".
39229
392302004-03-27  Bruno Haible  <bruno@clisp.org>
39231
39232	ANSI CL compliance: Remove nickname of the keyword package.
39233	* package.d (init_packages): Drop nickname "" of the KEYWORD package.
39234	* complete.lisp (complete): Map prefix "" to "KEYWORD". Handle
39235	readtable-case values different from :UPCASE correctly.
39236
392372004-03-07  Bruno Haible  <bruno@clisp.org>
39238
39239	* list.d (get_integer_truncate): Portability tweak.
39240
392412004-03-07  Bruno Haible  <bruno@clisp.org>
39242
39243	* macros2.lisp (with-output-to-string): Declare the variable as
39244	read-only in both cases.
39245
392462004-03-15  Bruno Haible  <bruno@clisp.org>
39247
39248	Change the format of internal error message strings:
39249	'~' -> '~S', '$' -> '~C'.
39250	* error.d (write_errorstring): Expect ~S and ~C instead of ~ and $.
39251	Signal an error if a stray ~ is seen.
39252	(check_value): Update comments.
39253	* lispbibl.d (fehler, check_value): Update comments.
39254	* affi.d, array.d, charstrg.d, control.d, debug.d, encoding.d, error.d,
39255	* eval.d, foreign.d, hashtabl.d, i18n.d, intbyte.d, intdiv.d,
39256	* intelem.d, intlog.d, io.d, lisparit.d, list.d, misc.d, package.d,
39257	* pathname.d, predtype.d, record.d, sequence.d, spvw.d, stream.d,
39258	* symbol.d, time.d: Update all error messages.
39259	* modules/berkeley-db/bdb.c: Likewise.
39260	* modules/clx/new-clx/clx.f: Likewise.
39261	* modules/dirkey/dirkey.c: Likewise.
39262	* modules/regexp/regexi.c: Likewise.
39263	* modules/pcre/cpcre.c: Likewise.
39264	* modules/syscalls/calls.c: Likewise.
39265	* po/clisp-xgettext (main): Heuristic: Mark string as lisp-format if it
39266	contains ~S or ~C.
39267
392682004-03-15  Bruno Haible  <bruno@clisp.org>
39269
39270	* po/clisp-xgettext (main): Remove support for scanning Lisp files.
39271
392722004-03-14  Bruno Haible  <bruno@clisp.org>
39273
39274	Remove special casing of germanic plural in messages.
39275	* compiler.lisp (test-argument-syntax): Test the list length against 1
39276	inside the English format string, not outside.
39277	* describe.lisp (describe-object): Likewise.
39278
392792004-03-14  Bruno Haible  <bruno@clisp.org>
39280
39281	* control.d: Use "\n" instead of NLstring.
39282	* error.d: Likewise.
39283	* errwin32.d: Likewise.
39284	* flo_rest.d: Likewise.
39285	* io.d: Likewise.
39286	* pathname.d: Likewise.
39287	* realelem.d: Likewise.
39288	* spvw_memfile.d: Likewise.
39289	* stream.d: Likewise.
39290	* win32aux.d: Likewise.
39291
392922004-03-14  Bruno Haible  <bruno@clisp.org>
39293
39294	Remove all leading and trailing formatting commands from
39295	internationalized strings, to make it easier for translators.
39296	* debug.d (print_stackitem): Move newline out of CLSTEXT.
39297	* encoding.d (encoding_from_name, init_dependent_encodings): Move
39298	newline out of GETTEXT.
39299	* spvw.d (SP_ueber, STACK_ueber): Move newline out of GETTEXTL.
39300	(main): Likewise, also out of CLSTEXT.
39301	* spvw_alloca.d (malloca): Move newline out of GETTEXTL.
39302	* spvw_allocate.d (error_speicher_voll, make_space_gc_true)
39303	(make_space_gc_false, make_space_gc): Likewise.
39304	* spvw_memfile.d (loadmem, loadmem_from_handle): Likewise.
39305	* spvw_mmap.d (mmap_zeromap): Likewise.
39306	* spvw_multimap.d (fdmap, open_temp_fd, initmap): Likewise.
39307	* spvw_sigsegv.d (sigsegv_handler_failed, stackoverflow_handler):
39308	Likewise.
39309	* affi1.lisp (defflibfun): Move newline and freshline out of TEXT.
39310	* compiler.lisp (c-warn, c-error, match-known-unknown-functions)
39311	(c-report-problems, compile-file, disassemble-closure): Likewise.
39312	* condition.lisp (prompt-for-new-value): Likewise.
39313	* describe.lisp (describe-slotted-object, describe-object, describe1):
39314	Likewise.
39315	* format.lisp (format-error): Likewise.
39316	* macros2.lisp (prompt-for-new-value-string): Likewise.
39317	* reploop.lisp (debug-reset-io, get-frame-limit, debug-backtrace)
39318	(print-error): Likewise.
39319	* room.lisp (room): Likewise.
39320	* trace.lisp (trace1): Likewise.
39321
393222004-03-30  Bruno Haible  <bruno@clisp.org>
39323
39324	* po/de.po: Update translations.
39325
393262004-03-14  Bruno Haible  <bruno@clisp.org>
39327
39328	Make use of GNU gettext >= 0.13 features.
39329	* po/Makefile.devel (GMSGFMT): Add option --check.
39330	(DSOURCES_POT, LISPSOURCES_POT): New variables.
39331	(SOURCES_POT): Apply clisp-xgettext only to *.d files.
39332	(SOURCES_POT2): Remove the *.lisp contributions.
39333	(SOURCES_EN): Remove variable and rule.
39334	(XGETTEXT, XGETTEXT_OPTIONS): New variables.
39335	(LISPSOURCES_POT): New rule.
39336	(MSGEN): New variable.
39337	(en.po): Use msgen.
39338	* clisp-xgettext (main): Do not write a *.en file.
39339
39340	Modernize PO file header.
39341	* po/po_header.txt: Add license clause and Report-Msgid-Bugs-To field.
39342	* po/po_header: Likewise. Use the official format for the timezone in
39343	the header. Make it work with newer versions of GNU ls.
39344
393452004-03-14  Bruno Haible  <bruno@clisp.org>
39346
39347	Internationalization fixes:
39348	- Use entire sentences instead of pieces of sentences.
39349	- Let the translator translate terms like STRING, SYMBOL, INTEGER,
39350	  CHARACTER, VECTOR, PACKAGE, STREAM, CLASS. On the other hand, type
39351	  names like RANDOM-STATE can remain uninternationalized.
39352	- Prefixes like "READ: " must be internationalized as well, because in
39353	  French, a space is put before the colon.
39354	* charstrg.d (MAKE-STRING): Improve error message.
39355	* encoding.d (encoding_from_name): Call GETTEXT for warning message.
39356	(init_dependent_encodings): Likewise.
39357	* error.d (fehler_list, check_list): Make error message localizable.
39358	(check_symbol): Likewise.
39359	(fehler_vector): Likewise.
39360	(check_integer, check_pos_integer): Likewise.
39361	(fehler_char, check_char): Likewise.
39362	(check_string): Likewise.
39363	(fehler_stream): Likewise.
39364	(fehler_key_notkw): Likewise.
39365	(check_function): Likewise.
39366	* hashtabl.d (check_hashtable): Likewise.
39367	* lisparit.d (check_number, check_real, check_float): Likewise.
39368	(check_rational): Likewise.
39369	* record.d (fehler_record_length): Likewise.
39370	(fehler_keine_klasse): Likewise.
39371	* stream.d (MAKE-SYNONYM-STREAM): Likewise.
39372	(SYSTEM::STRING-INPUT-STREAM-INDEX): Likewise.
39373	(GET-OUTPUT-STREAM-STRING): Likewise.
39374	(lisp_completion): Likewise.
39375	(stream_handles): Likewise.
39376	(SOCKET-OPTIONS): Improve error message.
39377	(handle_to_stream): Fix order of arguments passed to error message.
39378	(MAKE-STREAM): Improve error message.
39379	(read_line): Make error message localizable.
39380	(check_open_file_stream): Likewise.
39381	* spvw.d (usage): Split message into two.
39382	* backquote.lisp (bq-non-list-splice-error, bq-dotted-splice-error):
39383	Make error message more understandable. Make the prefix localizable.
39384	* clos.lisp (make-instances-obsolete): Improve error message.
39385	(invalid-method-error): Fix error message: "~:%" is undefined.
39386	(method-combination-error): Pass the right arguments to the error
39387	message.
39388	* compiler.lisp (set-check-lock): Fix error message.
39389	(disassemble-closure): Make message localizable. Print the variable
39390	lists without surrounding parentheses.
39391	* defs1.lisp (load-lpt-many, load-lpt-one): Make the verbose message
39392	localizable.
39393	* defs2.lisp (define-hash-table-test): Make error message localizable.
39394	* describe.lisp (describe-object): Make string description localizable.
39395	(describe-signature): Assume stream argument is non-NIL. Make message
39396	localizable.
39397	* init.lisp (open-for-load): Change error message to reflect the user's
39398	point of view, not the implementor's.
39399	(load): Make the verbose message localizable.
39400	* pprint.lisp (set-pprint-dispatch, pprint-logical-block): Make error
39401	message localizable.
39402	* savemem.lisp (saveinitmem): Make the verbose message localizable.
39403	* trace.lisp (force-cclosure): Improve error message.
39404	(%local-set): Pass the right arguments to the error message.
39405
394062004-03-26  Will Newton  <will@misconception.org.uk>
39407
39408	* eval.d (interpret_bytecode_): avoid a compiler warning by
39409	declaring `byteptr' `register'
39410
394112004-03-26  Bruno Haible  <bruno@clisp.org>
39412
39413	* init.lisp (%expand-form EVAL-WHEN): Do not look whether COMPILE is
39414	among the situations. Ignore the forms if EVAL/:EXECUTE is not among
39415	the situations.
39416
394172004-03-26  Bruno Haible  <bruno@clisp.org>
39418
39419	* stream.d (wr_ch_array_str_out, wr_ch_array_pphelp): Use TheSnstring
39420	instead of a cast to chart*.
39421
394222004-03-25  Sam Steingold  <sds@gnu.org>
39423
39424	* spvw_debug.d (nobject_out1): handle PPHELP-STREAMs
39425	(TheStream, Car, Cdr): new trivial accessors
39426	* io.d: remove the debugging infrastructure,
39427	nobject_out() is now quite sufficient
39428
394292004-03-25  Sam Steingold  <sds@gnu.org>
39430
39431	* eval.d (DEBUG_CHECK_BYTEPTR): do not compare pointers with ints
39432	(interpret_bytecode_): fix initialization of byteptr_min &
39433	byteptr_max, fix error messages for fehler_byteptr and fehler_STACK_putt
39434
394352004-03-25  Bruno Haible  <bruno@clisp.org>
39436
39437	* eval.d (interpret_bytecode_): Fix initialization of byteptr_min.
39438
394392004-03-15  Bruno Haible  <bruno@clisp.org>
39440
39441	* list.d (NTHCDR): Drop out of the loop when the end of the list is
39442	reached.
39443
394442004-03-13  Bruno Haible  <bruno@clisp.org>
39445
39446	* dribble.lisp: Use variable names 'source' and 'target' instead of
39447	'so' and 'ta'.
39448
394492004-03-13  Bruno Haible  <bruno@clisp.org>
39450
39451	* package.d (SYS::SYMBOL-VALUE-LOCK): Check the argument.
39452
394532004-03-14  Bruno Haible  <bruno@clisp.org>
39454
39455	* spvw.d (init_symbol_values): Initialize *PRINT-SPACE-CHAR-ANSI*.
39456	* misc.d (SYS::SET-ANSI): Set *PRINT-SPACE-CHAR-ANSI* as well.
39457	* io.d (pr_character): Print #\Space as "#\ " if *PRINT-SPACE-CHAR-ANSI*
39458	is true.
39459	* places.lisp (*ansi*): Update documentation.
39460
394612004-03-13  Bruno Haible  <bruno@clisp.org>
39462
39463	* lispbibl.d (back_trace_check): Change argument type to 'const char*'.
39464	* spvw_debug.d (back_trace_check): Likewise.
39465	* spvw_garcol.d (gc_markphase): Mark the backtraces here...
39466	(gar_col_normal): ... not here.
39467	* spvw_update.d (update_back_traces): Remove unneeded cast.
39468
394692004-03-24  Sam Steingold  <sds@gnu.org>
39470
39471	* stream.d (rd_ch_terminal2, rd_ch_terminal3, wr_ch_array_terminal3)
39472	[CHART_STRUCT]: fix compilation
39473
394742004-03-24  Sam Steingold  <sds@gnu.org>
39475
39476	* eval.d (GOTO_ERROR): depend on DEBUG_BYTECODE, not DEBUG_SPVW
39477	(DEBUG_CHECK_BYTEPTR) [DEBUG_BYTECODE]: new macro
39478	(interpret_bytecode_): use it before a jump
39479	* makemake.in (XCFLAGS) [DEBUGGING]: add DEBUG_BYTECODE
39480	* lispbibl.d: documented debugging options
39481
394822004-03-23  Sam Steingold  <sds@gnu.org>
39483
39484	* genclisph.d (Array_type_simple_bit_vector) [TYPECODES]: enabled,
39485	remove a trailing semicolon
39486	Reported by Will Newton <will@misconception.org.uk>
39487
394882004-03-23  Bruno Haible  <bruno@clisp.org>
39489
39490	Drop *print-symbols-long*.
39491	* spvw.d (init_symbol_values): Do not initialize *print-symbols-long*.
39492	* io.d (pr_symbol): Look at *print-readably*, not *print-symbols-long*.
39493	* defs2.lisp (with-standard-io-syntax): Do not bind *print-symbols-long*.
39494	* compiler.lisp (c-write-lib, compile-toplevel-form): Likewise.
39495
394962004-03-23  Sam Steingold  <sds@gnu.org>
39497
39498	* clhs.lisp (read-from-file): accept :REPEAT keyword argument
39499
395002004-03-10  Bruno Haible  <bruno@clisp.org>
39501
39502	* m4/ffcall-codeexec.m4 (CL_CODEEXEC): Do not require CL_MALLOC.
39503	Do not declare malloc().
39504	* m4/malloc.m4: Remove file.
39505	* m4/free.m4: Remove file.
39506	* m4/shmget.m4: Remove file.
39507	* m4/shmdt.m4: Remove file.
39508	* m4/shmctl.m4: Remove file.
39509	* m4/open.m4: Remove file.
39510	* m4/setsid.m4: Remove file.
39511	* m4/sh-args.m4: Remove file.
39512	* m4/sigaltstack.m4: Remove file.
39513
395142004-03-04  Bruno Haible  <bruno@clisp.org>
39515
39516	* io.d (pr_symbol): If *print-readably* is true, assume
39517	*print-symbols-long* to be true as well.
39518	Suggested by Paul Dietz <paul.f.dietz@motorola.com>.
39519
395202004-03-07  Bruno Haible  <bruno@clisp.org>
39521
39522	* compiler.lisp (signed-operand-length): New function.
39523	(assemble-LAP): Instead of working around the "zero jump of length 2"
39524	bug, more generally guarantee that the jump lengths only ever grow and
39525	never need to shrink.
39526
395272004-03-07  Bruno Haible  <bruno@clisp.org>
39528
39529	* compiler.lisp (seclass): Update comments.
39530	(c-THROW): Reduce the seclass' uses-binding value.
39531
395322004-03-22  Bruno Haible  <bruno@clisp.org>
39533
39534	* stream.d (MAKE-STRING-OUTPUT-STREAM): For element type NIL, create
39535	an nil-vector of length 0, not 50.
39536	(get_output_stream_string): Do not use stringp to test for nil-vector.
39537	(SYS::BUILT-IN-STREAM-ELEMENT-TYPE): Likewise.
39538
395392004-03-22  Sam Steingold  <sds@gnu.org>
39540
39541	* clisp.spec: remove anti-RPM comments
39542	(Source): update
39543	(version): do not use absolute path
39544	(mysrc): do not hard-code `current'
39545
395462004-03-22  Bruno Haible  <bruno@clisp.org>
39547
39548	* charstrg.d (test_2_stringsym_limits): Move the test for nil-vector to
39549	the right place.
39550
395512004-02-29  Bruno Haible  <bruno@clisp.org>
39552
39553	* format.lisp: In error messages, talk about "format directives", not
39554	only "directives".
39555	Suggested by Jörg Höhle <Joerg-Cyril.Hoehle@t-systems.com>.
39556
395572004-02-28  Bruno Haible  <bruno@clisp.org>
39558
39559	Due to the rule 1 in
39560	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
39561	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
39562	for all "built-in types" Y as listed in table 4-2 in
39563	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
39564	Apply this to X = #'compile and Y = COMPILED-FUNCTION
39565	or to X = #'print-object and Y = STANDARD-GENERIC-FUNCTION.
39566	* predtype.d (TYPE-OF): For compiled closures, return COMPILED-FUNCTION.
39567	For generic functions, return STANDARD-GENERIC-FUNCTION.
39568	* describe.lisp (describe-object): Add a case for GENERIC-FUNCTION.
39569	Update to match the changed behaviour of TYPE-OF.
39570
395712004-02-28  Bruno Haible  <bruno@clisp.org>
39572
39573	Exclude generic functions from the type COMPILED-FUNCTION.
39574	So that (defgeneric foo (x) (:method ((x t)) x))
39575	        (typep #'foo 'COMPILED-FUNCTION) ==> NIL.
39576	Rationale: Due to the rule 1 in
39577	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
39578	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
39579	for all "built-in types" Y as listed in table 4-2 in
39580	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
39581	Apply this to X = #'foo and Y = COMPILED-FUNCTION.
39582	* predtype.d (COMPILED-FUNCTION-P): Exclude generic functions.
39583	(SYS::%COMPILED-FUNCTION-P): New function, with the old semantics of
39584	COMPILED-FUNCTION-P.
39585	* compiler.lisp (function-signature, compile, disassemble-closures):
39586	Use sys::%compiled-function-p instead of compiled-function-p.
39587	* defs2.lisp (function-lambda-expression): Likewise.
39588	* describe.lisp (describe-object): Likewise.
39589	* disassem.lisp (disassemble): Likewise.
39590	* edit.lisp (ed): Likewise.
39591	* trace.lisp (sys::%local-set): Likewise.
39592
395932004-02-28  Bruno Haible  <bruno@clisp.org>
39594
39595	Due to the rule 1 in
39596	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
39597	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
39598	for all "built-in types" Y as listed in table 4-2 in
39599	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
39600	Apply this to X = #\a and Y = STANDARD-CHAR.
39601	* lispbibl.d (standard_cint_p): New macro.
39602	* charstrg.d (STANDARD-CHAR-P): Use it.
39603	* predtype.d (TYPE-OF): For standard-char elements, return
39604	STANDARD-CHAR instead of BASE-CHAR.
39605
396062004-03-21  Sam Steingold  <sds@gnu.org>
39607
39608	* makemake.in (installcheck): pass "-E utf-8 -norc" to CLISP
39609	Reported by Pascal J.Bourguignon <pjb@informatimago.com>
39610
396112004-03-21  Bruno Haible  <bruno@clisp.org>
39612
39613	* error.d (check_string): Remove special handling of nil-vectors.
39614
396152004-03-07  Bruno Haible  <bruno@clisp.org>
39616
39617	Make the vectors of element type NIL be strings.
39618	* lispbibl.d (general_vector_p): Undo last change.
39619	(simple_nilarray_p): New macro.
39620	(fehler_nilarray_retrieve): Rename from fehler_retrieve. Remove
39621	argument.
39622	(fehler_nilarray_store): New declaration.
39623	(fehler_nilarray_access): New declaration.
39624	(SstringCase): Add a fifth argument.
39625	(SstringDispatch): Signal an error when the string has element type
39626	NIL.
39627	(unpack_sstring_alloca): Handle strings of element type NIL.
39628	(schar): Likewise.
39629	(unpack_string_rw, unpack_string_ro): Can return NIL now.
39630	* genclisph.d (main): Undo last change to general_vector_p. Emit
39631	declarations of simple_nilarray_p, fehler_nilarray_retrieve. Update
39632	unpack_sstring_alloca.
39633	* array.d (iarray_displace, iarray_displace_check)
39634	(array_displace_check): Use simple_nilarray_p instead of nullp.
39635	(fehler_nilarray_retrieve): Rename from fehler_retrieve. Remove
39636	argument.
39637	(fehler_nilarray_store): New function.
39638	(fehler_nilarray_access): New function.
39639	(storagevector_aref): Update.
39640	(fehler_store): Use simple_nilarray_p instead of nullp.
39641	(array_atype): Handle strings of element type NIL. Array_type_vector
39642	now implies Atype_T again.
39643	(elt_copy_T_Char): Signal an error when dv2 has element type NIL.
39644	(elt_copy_Char_Char): Signal an error when dv1 or dv2 has element type
39645	NIL.
39646	(elt_copy): Update.
39647	(elt_move_Char): Signal an error when dv2 has element type NIL.
39648	(elt_reverse): Signal an error when dv1 or dv2 has element type NIL.
39649	(elt_nreverse): Update.
39650	(ssstring_append_extend): Update.
39651	(MAKE-ARRAY): Use simple_nilarray_p instead of nullp. Map Atype_NIL to
39652	Array_type_string instead of Array_type_vector.
39653	(ADJUST-ARRAY): Update.
39654	* charstrg.d (unpack_string_ro): Can return NIL now.
39655	(unpack_string_rw): Likewise. Signal an error when the string has
39656	element type NIL and the length is > 0.
39657	(copy_string_normal): Signal an error when the string has element type
39658	NIL and the length is > 0.
39659	(copy_string): Handle strings of element type NIL.
39660	(coerce_imm_ss): Likewise.
39661	(coerce_imm_normal_ss): Signal an error when the string has element
39662	type NIL and the length is > 0.
39663	(SYS::STRING-INFO): Handle strings of element type NIL.
39664	(SCHAR): Update the error message for strings of element type NIL.
39665	(SYSTEM::STORE-CHAR): Signal an error when the string has element type
39666	NIL.
39667	(SYSTEM::STORE-SCHAR): Update the error message for strings of element
39668	type NIL.
39669	(test_vector_limits): Signal an error when the string has element type
39670	NIL and the length is > 0.
39671	(test_string_limits_rw): Likewise.
39672	(test_2_stringsym_limits): Likewise.
39673	(string_comp, string_comp_ci): Handle strings of element type NIL.
39674	(nstring_upcase, nstring_downcase, nstring_capitalize): Signal an error
39675	when the string has element type NIL and length > 0.
39676	(subsstring, SUBSTRING, string_concat): Signal an error when a string
39677	has element type NIL and length > 0.
39678	* predtype.d (equal): Handle strings of element type NIL.
39679	(elt_compare): Update.
39680	(SIMPLE-STRING-P): Include simple strings of element type NIL.
39681	(TYPE-OF): For strings of element type NIL, return (VECTOR NIL dim0)
39682	or (SIMPLE-ARRAY NIL (dim0)). Objects of type vector_type have element
39683	type T again.
39684	(heap_statistics_mapper): Handle strings of element type NIL. Objects
39685	of type vector_type have element type T again.
39686	* sequence.d (get_seq_type): Handle strings of element type NIL.
39687	Objects of type vector_type have element type T again.
39688	(READ-CHAR-SEQUENCE): Signal an error when the string has element type
39689	NIL.
39690	(WRITE-CHAR-SEQUENCE): Likewise.
39691	* hashtabl.d (hashcode_string): Handle strings of element type NIL.
39692	(hashcode4_vector): Likewise.
39693	* io.d (string_printf): Handle strings of element type NIL.
39694	(write_string): Signal an error when the string has element type NIL.
39695	(pr_symbol_part): Do not SstringDispatch if the string's length is 0.
39696	(pr_sstring_ab): Likewise.
39697	(pr_string): Handle strings of element type NIL.
39698	(UNREADABLE_START, UNREADABLE_END): Nop.
39699	(pr_vector): Remove code for printing vectors of element type NIL.
39700	(pr_nilvector): New function.
39701	* stream.d (wr_ch_array_terminal3): Update.
39702	(read_line): Handle strings of element type NIL.
39703	* pathname.d (split_name_type): Do not SstringDispatch if the string's
39704	length is 0.
39705	(PARSE-NAMESTRING): Likewise. Update.
39706	* spvw_typealloc.d (reallocate_small_string): Update.
39707	* spvw_debug.d (string_out): Handle strings of element type NIL.
39708	* encoding.d (string_to_asciz_): Handle strings of element type NIL.
39709	* package.d (string_hashcode): Do not SstringDispatch if the string's
39710	length is 0.
39711	* type.lisp (canonicalize-type): In STRING and SIMPLE-STRING, the
39712	element-type can be CHARACTER, BASE-CHAR or NIL, not just CHARACTER.
39713	* describe.lisp (describe-object): Do not show string details for
39714	strings of element type NIL.
39715
397162004-03-19  Sam Steingold  <sds@gnu.org>
39717
39718	* clos.lisp (defgeneric): add (DECLARE IN-DEFUN) to avoid a
39719	compiler warning on recursive generic functions
39720
397212004-03-06  Bruno Haible  <bruno@clisp.org>
39722
39723	* lispbibl.d (smallest_string_flavour8): New macro.
39724	(smallest_string_flavour16, smallest_string_flavour32): New
39725	declarations.
39726	(smallest_string_flavour): New function.
39727	(copy_string_normal): Rename from copy_string.
39728	(copy_string): New declaration.
39729	* charstrg.d (smallest_string_flavour16 smallest_string_flavour32): New
39730	functions.
39731	(stringof): Produce a small string if possible.
39732	(copy_string_normal): Rename from copy_string.
39733	(copy_string): New function.
39734	(coerce_normal_ss, string_upcase, string_downcase): Update.
39735
397362004-02-20  Bruno Haible  <bruno@clisp.org>
39737
39738	* spvw_garcol.d (UNREALLOC, GC_UNREALLOC): Remove macros.
39739	(GC_MARK): Remove macro; use gc_mark instead.
39740	(update): Drop wrapper macro. Instead use the definition from update1.
39741	(update1): Remove macro; rename to update.
39742	* spvw_genera2.d (gc_mark_at, gc_mark_old_generation): Use gc_mark
39743	instead of GC_MARK.
39744
397452004-02-20  Bruno Haible  <bruno@clisp.org>
39746
39747	Clean up simple-string forward pointers during garbage collection.
39748	* lispbibl.d (sstring_flags_clr, sstring_flags_set): New macros.
39749	(mark_sstring_clean): New macro.
39750	* spvw_update.d: Use update_unrealloc instead of
39751	update_instance_unrealloc.
39752	(update_varobject, update_sstring): Obey also update_unrealloc.
39753	* spvw_garcol.d (gc_sweep1_sstring_forward, gc_sweep1_sstring_target):
39754	New functions.
39755	(gc_sweep1_varobject_page): Use them for simple-strings.
39756	(gar_col_normal): Set update_unrealloc to true while updating.
39757	(gar_col_compact, move_conses): Set update_unrealloc to false while
39758	updating.
39759	* spvw_memfile.d (savemem, loadmem_from_handle): Use update_unrealloc
39760	instead of update_instance_unrealloc.
39761	* predtype.d (enum_hs_realloc_simple_string): New enum value.
39762	(heap_statistics_mapper): Map forwarded instances to
39763	EXT::FORWARD-POINTER-SIMPLE-STRING.
39764
397652004-02-19  Bruno Haible  <bruno@clisp.org>
39766
39767	Make the small-sstrings more robust.
39768	* lispbibl.d (stringsize_limit_1): New macro.
39769	(DYNAMIC_STRING): Check the string size.
39770	(DBGREALLOC): New macro.
39771	(fehler_stringsize): New declaration.
39772	(check_stringsize): New macro.
39773	* spvw.d (init_symbol_values): Initialize SYS::STRING-DIMENTION-LIMIT.
39774	* constobj.d (O(type_stringsize)): New object.
39775	* error.d (fehler_stringsize): New function.
39776	* io.d (write_sstring, write_sstring_case, pr_symbol_part): Handle
39777	reallocated strings correctly.
39778	* charstrg.d (string_gleich, string_equal): Handle reallocated strings
39779	correctly.
39780	(stringof, MAKE-STRING, string_concat): Check the string size before
39781	allocating the string.
39782	* array.d (VECTOR-PUSH-EXTEND, make_ssstring, ssstring_extend_low)
39783	(make_storagevector, ADJUST-ARRAY): Likewise.
39784	* encoding.d (n_char_to_string, ascii_to_string)
39785	(CONVERT-STRING-FROM-BYTES): Likewise.
39786	* lisparit.d (decimal_string): Likewise.
39787
397882004-02-18  Bruno Haible  <bruno@clisp.org>
39789
39790	Make HAVE_SMALL_SSTRING work also in TYPECODES mode.
39791	* lispbibl.d (HAVE_SMALL_SSTRING): Define also if TYPECODES or
39792	SPVW_PURE is defined.
39793	(if_HAVE_SMALL_SSTRING): New macro.
39794	(SSTRING_HEADER): New macro.
39795	(sstring_, Sstring): Define using SSTRING_HEADER, without 'data' field.
39796	(STRUCT_SSTRING): Use SSTRING_HEADER instead of LRECORD_HEADER.
39797	(snstring_): New type, rename from sstring_.
39798	(Snstring): New type, rename from Sstring.
39799	(sstring_length): Change definition.
39800	(sstringrecord_tfl, sstring_tfl): New macros.
39801	(sstringflags_forwarded_B, sstring_reallocatedp): New macros.
39802	(sstring_eltype): New macro.
39803	(Sstringtype_8Bit, Sstringtype_16Bit, Sstringtype_32Bit): New macros.
39804	(sstring_immutable, sstring_flags): New macros.
39805	(sstringflags_backpointer_B, sstringflags_relocated_B): New macros.
39806	(sistring_): Rename from siarray_. Use SSTRING_HEADER instead of
39807	VAROBJECT_HEADER.
39808	(Sistring): Rename from Siarray.
39809	(sistring_data_offset): New macro.
39810	(TheSnstring, TheSistring): New macros.
39811	(TheSiarray): Remove macro.
39812	(allocate_imm_s8string, allocate_imm_s32string): Also declare if
39813	TYPECODES.
39814	(DYNAMIC_STRING): Update.
39815	(allocate_imm_string): Also declare if TYPECODES.
39816	(reallocate_small_string): Change meaning of newtype argument.
39817	(with_sstring_0, with_sstring): Update.
39818	(sstring_un_realloc): Rename from simple_array_to_storage. Make it
39819	work if TYPECODES.
39820	(sstring_un_realloc1): Rename from simple_array_to_storage1. Make it
39821	work if TYPECODES.
39822	(array_total_size, SstringCase, sstring_normal_p): Update.
39823	(unpack_sstring_alloca): Update.
39824	(coerce_imm_ss): Declare also if TYPECODES.
39825	(check_sstring_mutable): Make it work if TYPECODES.
39826	* genclisph.d (main): Emit SSTRING_HEADER. Update sstring_. Emit
39827	snstring_. Update sstring_length. Emit sstring_eltype. Update
39828	with_sstring_0, STRUCT_SSTRING, unpack_sstring_alloca.
39829	* spvw_debug.d (string_out): Update.
39830	* spvw_global.d (init_mem_heaptypes): Change type of sstring_type heap.
39831	* spvw_objsize.d (size_sistring): Rename from size_siarray. Define
39832	also for TYPECODES.
39833	(objsize_s8string, objsize_s16string, objsize_s32string): New
39834	functions.
39835	(objsize_sstring, objsize): Support all simple-string variants.
39836	* spvw_update.d (do_update_sistring, update_sstring): New macros.
39837	(update_varobject, update_varobjects): Handle simple-string as well.
39838	* spvw_garcol.d (UNREALLOC): Update.
39839	(down_sistring, up_sistring): New macros.
39840	(gc_mark): Use them.
39841	* spvw_genera1.d (walk_area_sistring, walk_area_sstring): New macros.
39842	(walk_area, build_old_generation_cache): Walk through the indirect
39843	pointer of reallocated simple strings.
39844	* spvw_typealloc.d (allocate_s8string): Update.
39845	(allocate_imm_s8string): Define also if TYPECODES. Update.
39846	(allocate_s16string, allocate_imm_s16string, allocate_s32string):
39847	Update.
39848	(allocate_imm_s32string): Define also if TYPECODES. Update.
39849	(reallocate_small_string): Update.
39850	* charstrg.d (unpack_string_ro, sstring_store, sstring_store_array)
39851	(stringof, copy_string, coerce_ss): Update.
39852	(coerce_imm_ss): Define also if TYPECODES.
39853	(coerce_normal_ss, coerce_imm_normal_ss, SYS::STRING-INFO, char_name)
39854	(CHAR, SCHAR, SYSTEM::STORE-CHAR, SYSTEM::STORE-SCHAR): Update.
39855	(test_string_limits_rw): Define as a function also for TYPECODES.
39856	(test_stringsymchar_arg, MAKE-STRING, nstring_upcase, string_upcase)
39857	(STRING-UPCASE, nstring_downcase, string_downcase, STRING-DOWNCASE)
39858	(nstring_capitalize, STRING-CAPITALIZE, subsstring, SUBSTRING)
39859	(string_concat): Update.
39860	* array.d (vector_length, iarray_displace, iarray_displace_check)
39861	(array_displace_check, test_index, subscripts_to_index)
39862	(storagevector_store, ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE)
39863	(ARRAY-DIMENSION, array_dimensions, ARRAY-IN-BOUNDS-P)
39864	(ARRAY-ROW-MAJOR-INDEX, elt_copy_T_Char, elt_copy_Char_Char, elt_fill)
39865	(elt_reverse, VECTOR-PUSH-EXTEND, ssstring_push_extend)
39866	(ssstring_append_extend, make_storagevector, initial_contents_aux)
39867	(ADJUST-ARRAY): Update.
39868	* encoding.d (n_char_to_string, n_char_to_string_, string_to_asciz_)
39869	(CONVERT-STRING-FROM-BYTES): Update.
39870	* pathname.d (common_case, test_optional_host, copy_upcase, all_digits)
39871	(PARSE-NAMESTRING, MAKE-PATHNAME, wildcard_match, use_default_dir):
39872	Update.
39873	* stream.d (read_char_array, rd_ch_array_str_in, wr_ch_array_str_out)
39874	(wr_ch_array_pphelp, rd_ch_array_buffered, lisp_completion)
39875	(rd_ch_terminal2, rd_ch_terminal3, wr_ch_array_terminal3): Update.
39876	* io.d (sstring_printf, test_potential_number_syntax, upcase_token)
39877	(case_convert_token, char_reader, radix_2, bit_vector_reader)
39878	(write_string, pphelp_string_width, klammer_zu, pr_enter_1): Update.
39879	* package.d (test_package_arg, DELETE-PACKAGE): Update.
39880	* debug.d (read_form): Update.
39881	* error.d (fehler_sstring_immutable): Define also if TYPECODES.
39882	* lisparit.d (read_rational, read_float, print_integer): Update.
39883	* foreign.d (convert_from_foreign_array_fill): Update.
39884
398852004-02-16  Bruno Haible  <bruno@clisp.org>
39886
39887	Clean up instance forward pointers during garbage collection.
39888	* lispbibl.d (instflags_backpointer_B, instflags_relocated_B)
39889	(mark_inst_clean): New macros.
39890	* spvw_update.d (do_update_record): Obey also update_instance_unrealloc
39891	and update_in_unrealloc.
39892	* spvw_garcol.d (make_GCself): New macro.
39893	(set_GCself): Use it.
39894	(gc_sweep1_instance_forward, gc_sweep1_instance_target): New functions.
39895	(gc_sweep1_varobject_page): Use them for Instance objects.
39896	(gar_col_normal): Set update_instance_unrealloc to true while updating.
39897	(gar_col_compact, move_conses): Set update_instance_unrealloc to false
39898	while updating.
39899	* spvw_memfile.d (savemem, loadmem_from_handle): Set
39900	update_instance_unrealloc to false while updating.
39901	* predtype.d (enum_hs_realloc_instance): New enum value.
39902	(heap_statistics_mapper): Map forwarded instances to
39903	EXT::FORWARD-POINTER-INSTANCE.
39904
399052004-03-18  Sam Steingold  <sds@gnu.org>
39906
39907	* io.d (circle_p): when SYS::*PRINT-CIRCLE-TABLE* is NIL, assume
39908	that the object has no circularities and print it normally
39909	(pr_enter_2): bind SYS::*PRINT-CIRCLE-TABLE* to NIL when there
39910	are no circularities but *PRINT-READABLY* is non-NIL
39911
399122004-02-19  Sam Steingold  <sds@gnu.org>
39913
39914	make package errors automatically recoverable
39915	* error.d (prepare_error): new function
39916	(fehler, check_value): use it
39917	(correctable_error): new function
39918	* lispbibl.d (correctable_error): prototype
39919	* constobj.d (query_string_*): remove
39920	* constsym.d (correctable_error, prompt_for_new_value, continue): add
39921	* package.d (query_user, prepare_query_user): remove
39922	(unintern, query_intern_conflict, export, use_package):
39923	use correctable_error() instead of query_user()
39924	(correct_packname): use correctable_error(): for NAME, CONTINUE
39925	means reuse existing package, for NICKNAME - discard the nickname
39926	(in_make_package): delete duplicate and NIL nicknames
39927	* condition.lisp (correctable-error): new function
39928	(check-value): bind *active-restarts* directly
39929
399302004-03-17  Sam Steingold  <sds@gnu.org>
39931
39932	* configure.in (AC_INIT): release 2.33
39933
399342004-03-17  Sam Steingold  <sds@gnu.org>
39935
39936	* Makefile.devel (src/autoconf/aclocal.m4): get all configure
39937	files together before running aclocal
39938
399392004-03-16  Sam Steingold  <sds@gnu.org>
39940
39941	* makemake.in (full-check): fix quoting
39942
399432004-03-16  Sam Steingold  <sds@gnu.org>
39944
39945	* m4/ldap.m4, m4/tcpconn.m4: remove extra quotes ([[]] -> [])
39946
399472004-03-16  Bruno Haible  <bruno@clisp.org>
39948
39949	* genclisph.d (main): Treat alloca() the same way as lispbibl.d.
39950	Needed for OSF/1 5.1.
39951
399522004-03-16  Bruno Haible  <bruno@clisp.org>
39953
39954	* stdint.h.in: Make it work with AIX 5 xlc.
39955
399562004-03-16  Bruno Haible  <bruno@clisp.org>
39957
39958	* m4/tcpconn.m4 (CL_TCPCONN): Include <netinet/in.h> before
39959	<netinet/tcp.h>. Needed for AIX 4.
39960
399612004-03-16  Bruno Haible  <bruno@clisp.org>
39962
39963	* m4/stdbool.m4 (gt_STDBOOL_H): Also check whether 'bool' can be used
39964	in declarations. Needed for HP-UX 11.
39965
399662004-03-16  Bruno Haible  <bruno@clisp.org>
39967
39968	* m4/install.m4 (CL_PROG_INSTALL): Do not use installbsd at all.
39969	Needed on AIX 4 and AIX 5.
39970
399712004-03-16  Bruno Haible  <bruno@clisp.org>
39972
39973	* utils/modprep.lisp (print-tables-2): Use sizeof, not pointer
39974	subtraction, to compute the size of the subr table.
39975	* utils/modpreptest.out: Update.
39976	Needed on AIX with xlc.
39977
399782004-03-16  Bruno Haible  <bruno@clisp.org>
39979
39980	* genclisph.d (main): Remove trailing comma in definition of
39981	condition_t. Needed on AIX with xlc.
39982
399832004-03-16  Bruno Haible  <bruno@clisp.org>
39984
39985	* arilev0.d (divu_3216_1616_, divu_3216_3216_): Change from K&R C to
39986	ANSI C style function definition. Needed on AIX with xlc.
39987
399882004-03-16  Bruno Haible  <bruno@clisp.org>
39989
39990	* stream.d (strm_unbuffered_extrafields_t, strm_buffered_extrafields_t):
39991	Change type of bitfields from 'bool' to 'int', because 'bool' can now
39992	be equivalent to 'long'. Needed on AIX 4 with xlc.
39993
399942004-03-16  Bruno Haible  <bruno@clisp.org>
39995
39996	* lispbibl.d (NULL): Do not define on AIX.
39997	Needed on AIX with xlc.
39998
399992004-03-16  Bruno Haible  <bruno@clisp.org>
40000
40001	* intparam.c (boolean_t): Define as a macro, not a typedef.
40002	* utils/ccmp2c.c (boolean_t): Likewise.
40003	Needed for AIX with xlc.
40004
400052004-03-16  Bruno Haible  <bruno@clisp.org>
40006
40007	* makemake.in (XCC_UNUSABLE_CPP): Do not use gcc-cccp on AIX != 4.2.
40008
400092004-01-20  Bruno Haible  <bruno@clisp.org>
40010
40011	* spvw_sigsegv.d (stackoverflow_handler) [UNIX_LINUX ARM]: Update for
40012	Linux 2.4.x.
40013
400142004-03-15  Bruno Haible  <bruno@clisp.org>
40015
40016	* po/Makefile.devel (MSGATTRIB): New variable.
40017	(clisplow_%.po): Use it instead of a sed command to remove the obsolete
40018	entries.
40019
400202004-03-15  Sam Steingold  <sds@gnu.org>
40021
40022	* makemake.in (anymodule): pass CC to configure
40023
400242004-03-15  Bruno Haible  <bruno@clisp.org>
40025
40026	* control.d (make_variable_frame): Make 2003-05-20 change work on
40027	platforms with symbolflags too.
40028
400292004-03-15  Bruno Haible  <bruno@clisp.org>
40030
40031	* po/de.po: Fix 3 format strings that had the wrong number of ~.
40032	* po/fr.po: Fix 1 such format string.
40033
400342004-03-14  Bruno Haible  <bruno@clisp.org>
40035
40036	* makemake.in (LIBICONV, LIBINTL, LIBSIGSEGV, LIBTERMCAP): On OSF/1,
40037	remove any -lc options. Needed for OSF/1 4.0d.
40038
400392004-03-14  Bruno Haible  <bruno@clisp.org>
40040
40041	* makemake.in (distmakefile): Escape commas in $libs for use on the
40042	right-hand side of a sed expression.
40043	(distrib): Likewise for $full_libs.
40044
400452004-03-14  Bruno Haible  <bruno@clisp.org>
40046
40047	* m4/ioctl.m4 (CL_IOCTL): Set the bytes_ready variable to 0 before
40048	calling ioctl FIONREAD.
40049	* stream.d (listen_handle): Likewise.
40050	Needed for Linux/ia64.
40051
400522004-03-14  Bruno Haible  <bruno@clisp.org>
40053
40054	* makemake.in: For ia64 with gcc, reduce the optimization flags to -O
40055	in general and -O0 for eval.d. Needed on Linux/ia64.
40056
400572004-03-14  Sam Steingold  <sds@gnu.org>
40058
40059	* configure.in (AC_INIT): pre-release 2.32.94
40060
400612004-03-13  Bruno Haible  <bruno@clisp.org>
40062
40063	* po/de.po: Update translations.
40064
400652004-03-13  Arseny Slobodjuck  <ampy@ich.dvo.ru>
40066
40067	* po/ru.po: Update translations.
40068
400692004-03-14  Bruno Haible  <bruno@clisp.org>
40070
40071	* po/Makefile.devel (LISPSOURCES): Add loadform.
40072
400732004-03-13  Bruno Haible  <bruno@clisp.org>
40074
40075	* spvw_memfile.d (savemem, loadmem_from_handle): Remove calls to
40076	update_back_traces().
40077
400782004-03-13  Bruno Haible  <bruno@clisp.org>
40079
40080	* pathname.d (DELETE-FILE): Fix stack layout when the function returns
40081	NIL.
40082
400832004-03-12  Bruno Haible  <bruno@clisp.org>
40084
40085	* makemake.in (DRIVERFLAGS): New variable.
40086	(clisp, install-bin): Use it.
40087	Needed for HP-UX 10.
40088
400892004-03-12  Bruno Haible  <bruno@clisp.org>
40090
40091	* makemake.in (testsuite, testsuite-all): Pass the SHELL variable to
40092	the suite/Makefile. Needed for HP-UX 10.
40093
400942004-03-12  Bruno Haible  <bruno@clisp.org>
40095
40096	* modules/pcre/cpcre.c: Remove semicolon after DEFMODULE declaration.
40097	* modules/regexp/regexi.c: Likewise.
40098	* modules/dirkey/dirkey.c: Likewise.
40099	* modules/syscalls/calls.c: Likewise.
40100	* modules/berkeley-db/bdb.c: Likewise.
40101
401022004-03-12  Sam Steingold  <sds@gnu.org>
40103
40104	* configure.in (AC_INIT): pre-release 2.32.93
40105
401062004-03-12  Bruno Haible  <bruno@clisp.org>
40107
40108	* m4/ioctl.m4 (CL_IOCTL): Define IOCTL_ARGUMENT_T through
40109	AC_DEFINE_UNQUOTED, not AC_DEFINE. Fixes bug introduced on 2003-08-03
40110	(no ChangeLog entry). Needed on OSF/1 and AIX.
40111
401122004-03-12  Sam Steingold  <sds@gnu.org>
40113
40114	* po/ru.po, po/clisplow_ru.po: Update translations.
40115
401162004-03-12  Bruno Haible  <bruno@clisp.org>
40117
40118	* lispbibl.d (<libintl.h>, array_total_size, instanceof, schar)
40119	(seclass_object): Omit these when COMPILE_STANDALONE is defined.
40120	* makemake.in (txt, genclisph.o, clisp-test-lispbibl): Define
40121	COMPILE_STANDALONE.
40122	Needed to avoid dependencies to fehler_notreached() etc. with C
40123	compilers that do not have 'inline' (such as Solaris cc), and on
40124	NetBSD, BeOS, Woe32 with gettext >= 0.13 because <libintl.h> can
40125	remap printf() to libintl_printf().
40126
401272004-03-12  Bruno Haible  <bruno@clisp.org>
40128
40129	* modules/wildcard/Makefile.in (FNMATCH_H): New variable.
40130	(wildcard.o): Depend on it.
40131
401322004-03-12  Bruno Haible  <bruno@clisp.org>
40133
40134	* stdbool.h.in: Define bool as 'long' in the normal case.
40135	Needed on BeOS and on Solaris with cc.
40136
401372004-03-12  Bruno Haible  <bruno@clisp.org>
40138
40139	* makemake.in (LN_HARD): New variable.
40140	(locale): Use it.
40141	Needed for BeOS 5.
40142
401432004-03-12  Bruno Haible  <bruno@clisp.org>
40144
40145	* unix.d (sock_write): Declare with 4 arguments, not 3.
40146	* unixaux.d (read_helper, write_helper): Coding style.
40147	(sock_write): Test for EWOULDBLOCK only if no_hang is true.
40148	Needed for BeOS 5.
40149
401502004-03-12  Bruno Haible  <bruno@clisp.org>
40151
40152	* m4/install.m4 (CL_PROG_INSTALL): Use the absolute path of "cp", not
40153	just "cp". Needed on HP-UX 10 because autoconf does special magic to
40154	INSTALL at config.status time if its value is a relative pathnames.
40155
401562004-03-11  Bruno Haible  <bruno@clisp.org>
40157
40158	* makemake.in (SHELL): On HP-UX, use bash instead of /bin/sh. Needed
40159	for HP-UX 10.
40160
401612004-03-11  Bruno Haible  <bruno@clisp.org>
40162
40163	* makemake.in (cpu): Set to x86_64 if appropriate.
40164	(XCFLAGS): Add -O when the CPU is x86_64.
40165
401662004-03-11  Bruno Haible  <bruno@clisp.org>
40167
40168	* configure: Configure libcharset with --disable-shared on all
40169	platforms, not only on cygwin and mingw. Needed because libtool's
40170	support for shared libraries is broken at least on HP-UX 10 with gcc.
40171
401722004-03-11  Bruno Haible  <bruno@clisp.org>
40173
40174	* stdint.h.in: Make it work with HP-UX 10.20 cc.
40175
401762004-03-11  Bruno Haible  <bruno@clisp.org>
40177
40178	* modules/syscalls/configure.in: Add a test whether f_fsid in
40179	'struct statvfs' is scalar.
40180	* modules/syscalls/calls.c (POSIX::STAT-VFS): Use HAVE_SCALAR_FSID.
40181	Needed for Linux/x86 with glibc <= 2.1.
40182
401832004-03-11  Sam Steingold  <sds@gnu.org>
40184	    Bruno Haible  <bruno@clisp.org>
40185
40186	* configure.in: Check for <sys/statvfs.h> and <sys/statfs.h>.
40187	* unix.d: Prefer <sys/statvfs.h> over <sys/statfs.h>. Use <sys/mount.h>
40188	when neither of the two exists (e.g. on FreeBSD 4).
40189	* spvw_multimap.d (open_temp_fd): Use fstatvfs instead of fstatfs when
40190	possible.
40191
401922004-03-10  Bruno Haible  <bruno@clisp.org>
40193
40194	* configure: Use an if-then statement so that a "make check" failure
40195	in avcall or callback doesn't stop the configure file. Needed when
40196	using a *BSD /bin/sh.
40197
401982004-03-10  Sam Steingold  <sds@gnu.org>
40199
40200	* configure.in (AC_INIT): pre-release 2.32.92
40201
402022004-03-10  Sam Steingold  <sds@gnu.org>
40203
40204	* eval.d (interpret_bytecode) [__APPLE_CC__]: disabled FAST_DISPATCH
40205	* lispbibl.d, genclisph.d (nonreturning_function) [__APPLE_CC__]:
40206	disabled nonreturning_function()
40207	* lispbibl.d [__APPLE_CC__]: disabled STACK_register and SP_register
40208
402092004-03-10  Bruno Haible  <bruno@clisp.org>
40210
40211	* arisparc.d: Do not use the gas syntax for labels (1b, 1f). Needed
40212	for building with Solaris cc.
40213
402142004-03-10  Bruno Haible  <bruno@clisp.org>
40215
40216	Do not use features unique to GCC. Needed for Solaris cc, HP-UX cc and
40217	IRIX cc.
40218	* stream.d (key_ascii, key_special): Use portable initializer syntax.
40219	(add_keybinding): Rename from keybinding. Change argument type from
40220	key_event_t to 'const key_event_t *'.
40221	(keybinding): New macro.
40222	(make_keyboard_stream): Remove macros BIND_KEY, CHECK_CAP. Use macro
40223	keybinding instead.
40224
402252004-03-10  Bruno Haible  <bruno@clisp.org>
40226
40227	* Makefile.devel (src/autoconf/aclocal.m4): Append also mbstate_t.m4
40228	and fnmatch.m4, needed by modules/wildcard/configure.in.
40229
402302004-03-10  Sam Steingold  <sds@gnu.org>
40231
40232	* makemake.in (XCFLAGS): add "-I." on all platforms
40233
402342004-03-10  Bruno Haible  <bruno@clisp.org>
40235
40236	* m4/filecharset.m4 (CL_FILECHARSET): Work around a problem with NFS
40237	on Solaris 7, where unlink()ed files reappear immediately under a
40238	different name and disappear only after 1. the process doing readdir()
40239	has exited and 2. waiting a second or two.
40240
402412004-03-10  Sam Steingold  <sds@gnu.org>
40242
40243	* eval.d (get_closure): remove a spurious backslash which broke
40244	the build on Mac OS X
40245
402462004-03-10  Bruno Haible  <bruno@clisp.org>
40247
40248	* modules/bindings/glibc/linux.lisp: Add a #include <signal.h>.
40249	Needed for building on glibc 2.1 systems.
40250
402512004-03-10  Sam Steingold  <sds@gnu.org>
40252
40253	* po/Makefile.devel (LISPSOURCES): remove `threads' (mentioned
40254	twice), add `russian'
40255	* Makefile.devel (all): `check-configures', not `configures'
40256	* configure.in (AC_INIT): pre-release 2.32.91
40257
402582004-03-10  Sam Steingold  <sds@gnu.org>
40259
40260	* modules/syscalls/calls.c: include "clisp.h" before system
40261	includes because on BSDs and on glibc 2.1 the system includes
40262	may define (inline) functions and then we get an error "global
40263	register variable follows a function definition"
40264
402652004-03-09  Sam Steingold  <sds@gnu.org>
40266
40267	* spvw_mmap.d, spvw_multimap.d: add a "\n" at the end of
40268	error messages
40269
402702004-03-09  Sam Steingold  <sds@gnu.org>
40271
40272	* Makefile.devel (EXCLUDE): exclude all doc/.cvsignore
40273	(CLISP): set to $(CURDIR)/build/clisp
40274	(src/uninames.h): use it
40275
402762004-03-09  Bruno Haible  <bruno@clisp.org>
40277
40278	* Makefile.devel (potfiles): Set the CLISP environment variable for
40279	po/Makefile.devel.
40280	(src--distrib): Do not create clisp-$(VERSION)-potfiles.tar.bz2.
40281	* po/Makefile.devel (DSOURCES): Remove rexx.
40282	(LISPSOURCES): Add international, threads, deprecated. Remove rexx1.
40283
402842004-03-09  Sam Steingold  <sds@gnu.org>
40285
40286	* format.lisp (format-logical-block, formatter): do not signal an
40287	error on unimplemented functionality
40288
402892004-03-08  Sam Steingold  <sds@gnu.org>
40290
40291	* makemake.in (VERSION): compute reliably
40292	* configure.in (AC_INIT): pre-release 2.32.90
40293	(AC_COPYRIGHT): update the year
40294	* Makefile.devel (htmldoc): make man pages also
40295
402962004-03-08  Bruno Haible  <bruno@clisp.org>
40297
40298	* makemake.in (arimips.o): Do not use the assembler explicitly on Linux.
40299	Reported by Will Newton <will@misconception.org.uk>.
40300
403012004-03-08  Will Newton <will@misconception.org.uk>
40302
40303	* ariarm.d (C, GLABEL, LABEL): Remove useless ## that triggers gcc 3
40304	warnings.
40305
403062004-02-28  Bruno Haible  <bruno@clisp.org>
40307
40308	* lfloat.d (LF_sqrt_LF): Simplify the last bug fix.
40309
403102004-02-28  Bruno Haible  <bruno@clisp.org>
40311
40312	* io.d (pr_structure_default): Change error message.
40313
403142004-02-28  Bruno Haible  <bruno@clisp.org>
40315
40316	* lispbibl.d (namestring_correctly_parseable_p): Mark as GC-unsafe.
40317	* io.d (pr_orecord): Fix GC-safety bug.
40318
403192004-03-08  Bruno Haible  <bruno@clisp.org>
40320
40321	* unix.d (NO_BLOCK_DECL, START_NO_BLOCK, END_NO_BLOCK): Prefer the
40322	SysV way over the old FIONBIO way. Needed for Linux/x86_64.
40323
403242004-03-08  Bruno Haible  <bruno@clisp.org>
40325
40326	* lfloat.d (LF_LF_mal_LF): Fix the second underflow condition.
40327
403282004-02-28  Bruno Haible  <bruno@clisp.org>
40329
40330	* clos.lisp (find-method-combination): Rename from
40331	method-combination-object.
40332	(method-combination): Add slots check-method-qualifiers,
40333	call-next-method-allowed.
40334	(method-combination STANDARD): Delay initialization until ready.
40335	Initialize the two new method-combination slots.
40336	(analyze-method-description): Return the qualifiers in the order they
40337	were given in the method description, not in reverse order. Fix bug
40338	introduced on 2004-02-09.
40339	(standard-method-combination-expander): Style improvement. Rename
40340	inner function apply-forms to forms-for-invoking-sequentially.
40341	(short-form-method-combination-check-method-qualifiers): New function.
40342	(standard-method-combination-call-next-method-allowed): New function.
40343	(check-method-qualifiers): New function.
40344	(invalid-method-qualifiers-error): New function.
40345	(std-add-method): Invoke check-method-qualifiers.
40346	(analyze-defgeneric): Return method combination as 3rd value, not as
40347	5th value. Better error message.
40348	(defgeneric, ensure-generic-function): Update.
40349	(make-generic-function): Set the method combination before adding the
40350	methods, not after.
40351	(do-defgeneric): Likewise. When changing the method combination of an
40352	existing generic function, check its methods' qualifiers against it.
40353	(make-generic-function-form): Update.
40354	(no-next-method): Invoke call-next-method-allowed and provide a more
40355	appropriate error message.
40356	(qualifiers-match-p): Fix typo in error message.
40357	(compute-method-partition-lambdas): Rename from
40358	compute-method-partition-lambda. Provide a second lambda form as a
40359	second value. Use symbol CLOS::METHD instead of CL:METHOD.
40360	(define-method-combination): Initialize the two new method-combination
40361	slots. Do not use (COMPILE NIL ...) on code that comes partially from
40362	the user.
40363	(compute-effective-method-function): Style improvement.
40364	(compute-short-form-effective-method-form): Remove first argument.
40365	(short-form-method-combination-call-next-method-allowed): New function.
40366	(long-form-method-combination-call-next-method-allowed): New function.
40367	(method-combination AND APPEND ... PROGN +): Initialize the two new
40368	method-combination slots.
40369
403702004-03-08  Bruno Haible  <bruno@clisp.org>
40371
40372	* lispbibl.d: Use 'extern' instead of 'global'.
40373	(check_real): Do not declare as inline.
40374	* lisparit.d (check_real): Likewise.
40375
403762004-03-06  Sam Steingold  <sds@gnu.org>
40377
40378	* pathname.d (use_default_dir): fix a GC-safety bug
40379
403802004-03-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>
40381
40382	Make syscalls module available on win95/98/me (dynamic DLL loading)
40383	* modules/syscalls/calls.c (CreateHardLinkFuncType)
40384	(BackupWriteFuncType) [WIN32_NATIVE]: new types.
40385	(CreateHardLinkFunc, BackupWriteFunc, kernel32)	[WIN32_NATIVE]:
40386	new static variables.
40387	(OldHardLinkGuard, OldHardLink,	MkHardLink) [WIN32_NATIVE]: new
40388	functions.
40389	(module__syscalls__init_function_2): new function.
40390	(POSIX:STREAM-LOCK): Use GetFileSize instead of GetFileSizeEx.
40391
403922004-03-05  Sam Steingold  <sds@gnu.org>
40393
40394	* makemake.in (DEVPREFIX): needed on both "win32gcc" and "cygwin"
40395
403962004-03-04  Bruno Haible  <bruno@clisp.org>
40397
40398	Change the maximum number of hash buckets of a symbol table
40399	from 2^16-1 to 2^24-1.
40400	* package.d (string_hashcode): Return a 24-bit integer.
40401	(newinsert): Take a 24-bit size as argument.
40402	(rehash_symtab): Bump the max to 2^24-1.
40403	(symtab_lookup, symtab_find, symtab_insert, symtab_delete):
40404	Do not cast the size to uintW.
40405
404062004-03-04  Bruno Haible  <bruno@clisp.org>
40407	    Sam Steingold  <sds@gnu.org>
40408
40409	* package.d (string_hashcode): Do not ignore the 17th and following
40410	characters. Use + instead of |, to maintain statistical
40411	equidistribution.
40412
404132004-03-03  Sam Steingold  <sds@gnu.org>
40414
40415	* compiler.lisp (make-anode): avoid compiler warning
40416
404172004-03-02  Sam Steingold  <sds@gnu.org>
40418
40419	* compiler.lisp (c-NTH, c-SETNTH): when the index is not an
40420	integer, do not signal ERROR-OF-TYPE, use C-WARN instead
40421
404222004-03-03  Bruno Haible  <bruno@clisp.org>
40423
40424	* foreign.d (ffi_identity): Pass and return an uintP, not just an
40425	uintL.
40426
404272004-03-02  Sam Steingold  <sds@gnu.org>
40428
40429	* compiler.lisp (function-signature): check *KNOWN-FUNCTIONS*
40430	before the function object
40431	(c-APPLY): check the local function signature before the global one
40432
404332004-03-02  Bruno Haible  <bruno@clisp.org>
40434
40435	* compiler.lisp (make-anode, anodes-seclass-or, seclass-or-f)
40436	(seclass-or-anode): Define them also when loading the compiler.
40437
404382004-03-01  Bruno Haible  <bruno@clisp.org>
40439
40440	* spvw_garcol.d (move_aligned_p1_p2): Do not use the *p++ form with
40441	GCC 3 any more.
40442	Reported by Will Newton <will@misconception.org.uk>.
40443
404442004-03-01  Bruno Haible  <bruno@clisp.org>
40445
40446	* encoding.d (CONVERT-STRING-FROM-BYTES): Avoid gcc warning
40447	"initializer element is not computable at load time".
40448
404492004-03-01  Bruno Haible  <bruno@clisp.org>
40450
40451	* stream.d: Avoid gcc warnings "ISO C does not allow extra `;' outside
40452	of a function".
40453
404542004-03-01  Bruno Haible  <bruno@clisp.org>
40455
40456	* lispbibl.d (HAVE_SAVED_REGISTERS, struct registers): Define only if
40457	needed.
40458
404592004-02-29  Kaz Kylheku  <kaz@ashi.footprints.net>
40460
40461	* backquote.lisp (bq-expand-list): If the backquote form is an
40462	improper list, treat the terminating atom as if it were
40463	backquoted.  (CLHS wants it to just be quoted).
40464	This allows for unquotes in the atom if it is a vector.
40465
404662004-02-29  Bruno Haible  <bruno@clisp.org>
40467
40468	Major speedup of slot accessors generated by DEFCLASS in interpreted
40469	code.
40470	* clos.lisp (defclass): Force the accessor methods to be compiled.
40471
404722004-02-28  Bruno Haible  <bruno@clisp.org>
40473
40474	* intdiv.d (I_I_I_mod_expt_I): Avoid endless loop when the exponent is
40475	= 0.
40476
404772004-02-27  Bruno Haible  <bruno@clisp.org>
40478
40479	* error.d (check_pos_integer): Fix typo in error message.
40480
404812004-02-27  Bruno Haible  <bruno@clisp.org>
40482
40483	* spvw.d (main): Combine the handling of the options -t TMPDIR and
40484	-traditional.
40485
404862004-02-27  Bruno Haible  <bruno@clisp.org>
40487
40488	* unix.d: Include <sys/statfs.h>. Needed for MULTIMAP_MEMORY_VIA_FILE.
40489
404902004-02-27  Bruno Haible  <bruno@clisp.org>
40491
40492	* lispbibl.d (_GNU_SOURCE): Define. Needed for MULTIMAP_MEMORY_VIA_SHM
40493	on Linux: glibc defines IPC_INFO in <sys/ipc.h> only if _GNU_SOURCE
40494	is defined.
40495
404962004-03-01  Bruno Haible  <bruno@clisp.org>
40497
40498	* spvwtabs.d: Undefine open, truncate, ftruncate.
40499	* lisparit.d: Undefine truncate, ftruncate.
40500	Reported by Russell McManus <russell_mcmanus@yahoo.com>.
40501
405022004-02-29  Sam Steingold  <sds@gnu.org>
40503	    Bruno Haible  <bruno@clisp.org>
40504
40505	* encoding.d (encoding_from_name): Call FIND-SYMBOL and remove most of
40506	the mapping table.
40507
405082004-02-29  Arseny Slobodjuck  <ampy@ich.dvo.ru>
40509
40510	Fix cygwin build
40511	* pathname.d (LAUNCH): declared exit_code.
40512
405132004-02-27  Peter Seibel  <peter@javamonkey.com>
40514
40515	* pprint.lisp (copy-pprint-dispatch): accept NIL argument
40516
405172004-02-27  Bruno Haible  <bruno@clisp.org>
40518
40519	* predtype.d (TYPE-OF): For vectors, return (SIMPLE-ARRAY NIL (n))
40520	or (VECTOR NIL n), depending on whether the vector is simple.
40521
405222004-02-27  Bruno Haible  <bruno@clisp.org>
40523
40524	* time.d (get_real_time): Take care of the case when struct timeval is
40525	not the same thing as internal_time_t.
40526
405272004-02-27  Bruno Haible  <bruno@clisp.org>
40528
40529	* makemake.in (XCFLAGS): Do not use -O2 with current gcc on x86_64.
40530
405312004-02-26  Bruno Haible  <bruno@clisp.org>
40532
40533	* lispbibl.d (oint_type_*, oint_addr_*, oint_data_*) [AMD64]: Define
40534	appropriately for Linux/x86_64.
40535	(SINGLEMAP_MEMORY, MULTIMAP_MEMORY) [AMD64 Linux]: Do not define on this
40536	platform.
40537	* spvw.d (main): Limit the mmap()ed addresses to 36 bits.
40538
405392004-02-26  Bruno Haible  <bruno@clisp.org>
40540
40541	* genclisph.d (main): Define oint and soint consistently with
40542	lispbibl.d.
40543
405442004-02-26  Bruno Haible  <bruno@clisp.org>
40545
40546	* spvw_fault.d (xmmprotect): Fix declaration.
40547
405482004-02-26  Bruno Haible  <bruno@clisp.org>
40549
40550	* flo_konv.d (DF_to_c_double): Use minus_bit instead of -bit. Avoids
40551	an "integer overflow" warning on 64-bit platforms.
40552
405532004-02-26  Bruno Haible  <bruno@clisp.org>
40554
40555	* lispbibl.d (fake_gcv_object): Cast argument to oint. Avoids gcc
40556	warnings on 64-bit platforms when the argument is an uintL.
40557	* eval.d (nest_var): Cast count to oint, Avoids a gcc warning as well.
40558
405592004-02-25  Bruno Haible  <bruno@clisp.org>
40560
40561	* i18n.d: Prefix some symbols with "i18n_".
40562	* subr.d: Update.
40563	* constsym.d: Update.
40564
405652004-02-25  Bruno Haible  <bruno@clisp.org>
40566
40567	* stream.d: Remove syntactically invalid debugging statements.
40568
405692004-02-25  Bruno Haible  <bruno@clisp.org>
40570
40571	* stdint.h.in: Test __sun, not __sun__, so that it also works with cc
40572	on Solaris.
40573
405742004-02-25  Bruno Haible  <bruno@clisp.org>
40575
40576	* unix.d (msync, mmap, munmap): Comment out prototype. Needed to avoid
40577	prototype clash on Solaris 7.
40578	* spvw_mmap.d (munmap): Likewise.
40579
405802004-02-25  Bruno Haible  <bruno@clisp.org>
40581
40582	* makemake.in (XCPPFLAGS): New variable.
40583	(XCFLAGS): Do not add the value of XCPPFLAGS here.
40584	(MODULE_CPPFLAGS_VAR): New variable.
40585	(all .c compilation rules): Use CPPFLAGS before CFLAGS.
40586	* clisp-link.in: Use CPPFLAGS variable that is read from 'makevars'.
40587	* modules/berkeley-db/link.sh.in: Pass CPPFLAGS to the Makefile.
40588	* modules/berkeley-db/Makefile.in (CPPFLAGS): New variable.
40589	* modules/bindings/glibc/link.sh: Pass CPPFLAGS to the Makefile.
40590	* modules/bindings/glibc/Makefile (CPPFLAGS): New variable.
40591	* modules/bindings/win32/link.sh: Pass CPPFLAGS to the Makefile.
40592	* modules/bindings/win32/Makefile (CPPFLAGS): New variable.
40593	* modules/clx/mit-clx/link.sh: Pass CPPFLAGS to the Makefile.
40594	* modules/clx/new-clx/link.sh.in: Pass CPPFLAGS to the Makefile.
40595	* modules/clx/new-clx/Makefile.in (CPPFLAGS): New variable.
40596	* modules/dirkey/link.sh: Pass CPPFLAGS to the Makefile.
40597	* modules/dirkey/Makefile.in (CPPFLAGS): New variable.
40598	* modules/fastcgi/link.sh: Pass CPPFLAGS to the Makefile.
40599	* modules/fastcgi/Makefile.in (CPPFLAGS): New variable.
40600	* modules/netica/link.sh: Pass CPPFLAGS to the Makefile.
40601	* modules/netica/Makefile (CPPFLAGS): New variable.
40602	* modules/oracle/link.sh: Pass CPPFLAGS to the Makefile.
40603	* modules/oracle/Makefile.in (CPPFLAGS): New variable.
40604	* modules/pcre/link.sh.in: Pass CPPFLAGS to the Makefile.
40605	* modules/pcre/Makefile.in (CPPFLAGS): New variable.
40606	* modules/postgresql/link.sh.in: Pass CPPFLAGS to the Makefile.
40607	* modules/postgresql/Makefile.in (CPPFLAGS): New variable.
40608	* modules/queens/Makefile (CPPFLAGS): New variable.
40609	* modules/regexp/link.sh.in: Pass CPPFLAGS to the Makefile.
40610	* modules/regexp/Makefile.in (CPPFLAGS): New variable.
40611	* modules/syscalls/link.sh.in: Pass CPPFLAGS to the Makefile.
40612	* modules/syscalls/Makefile.in (CPPFLAGS): New variable.
40613	* modules/wildcard/link.sh.in: Pass CPPFLAGS to the Makefile.
40614	* modules/wildcard/Makefile.in (CPPFLAGS): New variable.
40615
406162004-02-25  Sam Steingold  <sds@gnu.org>
40617
40618	* m4/ldap.m4 (CL_LDAP): Solaris/cc requires <lber.h> before <ldap.h>
40619	* modules/dirkey/dirkey.c: ditto
40620
406212004-02-24  Sam Steingold  <sds@gnu.org>
40622
40623	* modules/clx/mit-clx/input.lisp (declare-event): fix a
40624	compilation error
40625
406262004-02-24  Bruno Haible  <bruno@clisp.org>
40627
40628	* loadform.lisp (missing-load-form): Fix mistake in the last patch.
40629
406302004-02-24  Bruno Haible  <bruno@clisp.org>
40631
40632	* m4/readline.m4 (CL_READLINE): Do not use AC_SEARCH_LIBS. Instead,
40633	use the value of LIBREADLINE, as determined by AC_LIB_LINKFLAGS_BODY.
40634
406352004-02-24  Bruno Haible  <bruno@clisp.org>
40636
40637	* lispbibl.d (nil_vector_p): Change to match new nil-vector handling.
40638	(nil_vector_0_p): Remove macro.
40639	* charstrg.d (test_stringsymchar_arg): Use nil_vector_p.
40640	* predtype.d (elt_compare): Return false when comparing nil-vectors.
40641	(equal): Update nil-vector handling. A string and a nil-vector of the
40642	same length > 0 now compare as different.
40643	(equalp): Likewise.
40644	(TYPE-OF): For nil-vectors, return (VECTOR NIL n), not (ARRAY NIL (n)).
40645	* error.d (check_string): Update.
40646
406472004-02-24  Sam Steingold  <sds@gnu.org>
40648
40649	* clos.lisp (std-remove-method): reset (STD-METHOD-GF OLD-METHOD)
40650	(std-add-method): signal an error when METHOD already belongs to
40651	a generic function
40652
406532004-02-23  Sam Steingold  <sds@gnu.org>
40654
40655	* pathname.d (DIRECTORY): pathname argument is required
40656	* subr.d (directory): ditto
40657	* constobj.d (version): bumped
40658
406592004-02-20  Bruno Haible  <bruno@clisp.org>
40660
40661	* time.d (encode_universal_time): Define only if TIME_RELATIVE.
40662
406632004-02-18  Bruno Haible  <bruno@clisp.org>
40664
40665	* spvw_debug.d (find_pack, find_sym): Comment out unused and unportable
40666	functions.
40667
406682004-02-18  Bruno Haible  <bruno@clisp.org>
40669
40670	* pathname.d (LAUNCH): Move declaration of exit_code so as to avoid
40671	gcc warning.
40672
406732004-02-18  Bruno Haible  <bruno@clisp.org>
40674
40675	* genclisph.d (main): Fix the declarations of cslen_ff, cstombs_ff.
40676
406772004-02-16  Bruno Haible  <bruno@clisp.org>
40678
40679	* charstrg.d (SYS::STRING-INFO): Make it work in TYPECODES mode too.
40680	* describe.lisp (describe-slotted-object for ARRAY): Describe the
40681	string element type as "UCS-4", not "32-bit".
40682
406832003-01-26  Bruno Haible  <bruno@clisp.org>
40684
40685	Allow multibyte characters in pathnames.
40686	* pathname.d (legal_namebyte): New function.
40687	(legal_namechar): Invoke it.
40688
406892004-02-16  Bruno Haible  <bruno@clisp.org>
40690
40691	* stream.d (stream_get_read_eval, stream_set_read_eval): Invoke
40692	instance_un_realloc.
40693
406942004-02-15  Bruno Haible  <bruno@clisp.org>
40695
40696	Undo the 2001-11-27 patch, because it breaks in WIDE_SOFT mode with
40697	gcc-3.3.
40698	* array.d (SIMPLE_NREVERSE): Change to contain only the loop.
40699	(elt_nreverse): Handle the byte vectors correctly.
40700
407012004-02-15  Bruno Haible  <bruno@clisp.org>
40702
40703	Make GENERATIONAL_GC work in WIDE mode again.
40704	* spvw_garcol.d (PRIoint): New macro.
40705	(gc_mark_stack): Pass to gc_mark the pointer without symbol flags.
40706	Undoes the bug introduced on 2002-08-03.
40707
407082004-02-15  Bruno Haible  <bruno@clisp.org>
40709
40710	Enforce 8-byte alignment needed by GENERATIONAL_GC in WIDE_SOFT mode,
40711	working around a gcc-3.3 bug that is fixed in gcc-3.4.
40712	* lispbibl.d (INNARDS_OF_GCV_OBJECT): Add _attribute_aligned_object_.
40713	(_attribute_aligned_object_): Default to empty.
40714	(record_, srecord_, xrecord_, cons_, ratio_, complex_, symbol_)
40715	(svector_, siarray_, iarray_, Package, Hashtable, Readtable, Pathname)
40716	(Logpathname, Random_state, Byte, Fsubr, Loadtimeeval, Symbolmacro)
40717	(Macro, FunctionMacro, Encoding, Faddress, Fvariable, Ffunction)
40718	(Weakpointer, weakkvt_t, Finalizer, Socket_server, Yetanother, Stream)
40719	(Class, Instance, Closure, Iclosure, Cclosure, subr_t): Add
40720	_attribute_aligned_object_ to all fields of type gcv_object_t.
40721	* genclisph.d (main): Adjust accordingly.
40722
407232004-02-14  Bruno Haible  <bruno@clisp.org>
40724
40725	* lists153.tst: Reduce the memory size, so that it needs only 80 MB,
40726	not 160 MB, when using a WIDE memory model.
40727
407282004-02-14  Bruno Haible  <bruno@clisp.org>
40729
40730	* lispbibl.d (Rectype_realloc_Instance): Remove enum value.
40731	(instancep, case_Rectype_Instance_above): Simplify accordingly.
40732	(instflags_forwarded_B): New macro.
40733	(instance_un_realloc, instance_valid_p): Add comments.
40734	(instance_update): Rename from check_instance.
40735	* predtype.d: Update accordingly.
40736	* hashtabl.d: Likewise.
40737	* spvw_garcol.d (UNREALLOC): Test a recflags bit instead of testing
40738	for Rectype_realloc_Instance.
40739	* record.d (CLOS::%CHANGE-CLASS): Simplify.
40740	* io.d (pr_orecord): Remove handling of realloc_Instance type.
40741
407422004-02-14  Bruno Haible  <bruno@clisp.org>
40743
40744	Make arrays with element type NIL work also in the TYPECODES config.
40745	* lispbibl.d (Rectype_nilvector, Rectype_Snilvector): Remove enum
40746	items.
40747	(Atype_NIL, Array_type_snilvector): Define also for TYPECODES.
40748	(Array_type_nilvector): Remove macro.
40749	(general_vector_p): Exclude the vectors of element type NIL.
40750	(case_Rectype_Snilvector_above): Remove macro.
40751	(case_Rectype_nilvector_above): Remove macro.
40752	(if_recordp): Remove special casing of Rectype_nilvector,
40753	Rectype_Snilvector.
40754	(allocate_nilvector): Remove declaration.
40755	(fehler_retrieve): New declaration.
40756	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark, subst)
40757	(subst_circ_unmark): Remove handling of nilvector and snilvector types.
40758	* spvw_garcol.d (gc_mark): Likewise.
40759	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
40760	* spvw_objsize.d (objsize): Likewise.
40761	* spvw_update.d (update_varobject): Likewise.
40762	* spvw_typealloc.d (allocate_nilvector): Remove function.
40763	* array.d (eltype_code): Recognize also types equivalent to the
40764	NIL type, not only NIL itself.
40765	(iarray_displace, iarray_displace_check, array_displace_check):
40766	Handle the case when the storage vector is NIL.
40767	(fehler_retrieve): Change error message, ignore the storage vector.
40768	(fehler_store): Give a different error message if the storage
40769	vector is NIL.
40770	(array_atype): Recognize vectors of element type NIL. Drop
40771	Array_type_nilvector and Array_type_snilvector.
40772	(elt_reverse, elt_nreverse): Give an error for a vector of element
40773	type NIL.
40774	(make_storagevector): For eltype==Atype_NIL, just return NIL.
40775	(MAKE-ARRAY): For eltype==Atype_NIL, return a vector of type
40776	vector_type, not just the storage vector.
40777	* io.d (pr_vector): Do not call array_element_type if the array's
40778	element type is known to be NIL.
40779	(pr_array): Likewise.
40780	(pr_orecord): Remove handling of Rectype_nilvector, Rectype_Snilvector.
40781	* sequence.d (get_seq_type): Change recognition of arrays with
40782	element type NIL.
40783	* hashtabl.d (hashcode4_vector): Handle the case of a vector of
40784	element type NIL.
40785	* predtype.d (elt_compare): Handle the cases when dv1 or dv2 are
40786	storage vectors of element type NIL.
40787	(TYPE-OF): Handle vectors of element type NIL specially.
40788	(CLOS:CLASS-OF): Remove handling of nilvector and snilvector types.
40789	(heap_statistics_mapper): Likewise, but still distinguish general
40790	vectors and those of element type NIL.
40791	* type.lisp (upgraded-element-type): Recognize also types
40792	equivalent to the NIL type, not only NIL itself.
40793	* genclisph.d (general_vector_p): Exclude the vectors of element
40794	type NIL.
40795
407962004-02-14  Bruno Haible  <bruno@clisp.org>
40797
40798	* genclisph.d (make_system, vectorp): Make consistent with lispbibl.d.
40799	(simple_vector_p, simple_string_p, simple_bit_vector_p, bit_vector_p)
40800	(TheFpointer) [TYPECODES]: Fix compilation errors.
40801	(general_vector_p, arrayp): New exports.
40802
408032004-02-14  Bruno Haible  <bruno@clisp.org>
40804
40805	* lispbibl.d (cclosure_flags) [TYPECODES]: Fix.
40806
408072004-02-14  Bruno Haible  <bruno@clisp.org>
40808
40809	* loadform.lisp (simple-missing-load-form): New type.
40810	(signal-missing-load-form): Show the object as well.
40811
408122004-02-20  Sam Steingold  <sds@gnu.org>
40813
40814	fix file renaming on UNIX
40815	* pathname.d (rename_file): check that the old name exists and
40816	use rename_existing_file() instead of rename_file_to_nonexisting()
40817	(rename_file_to_nonexisting): remove
40818
408192004-02-20  Sam Steingold  <sds@gnu.org>
40820
40821	* record.d (SLOT-BOUNDP): when slot is missing, return the
40822	boolean equivalent of the return value of SLOT-MISSING, per ANSI
40823
408242004-02-19  Sam Steingold  <sds@gnu.org>
40825
40826	fix bug#201: LOOP compilation warnings
40827	* loop.lisp (expand-loop): bind *helpvars* first thing (for 898561)
40828	When arithmetic iteration variable is NIL, use a GENSYM
40829
408302004-02-19  Sam Steingold  <sds@gnu.org>
40831
40832	* pathname.d (PATHNAME-DEVICE): return :UNSPECIFIC for
40833	LOGICAL-PATHNAMEs per
40834	<http://www.lisp.org/HyperSpec/Body/sec_19-3-2-1.html>
40835	* constsym.d (Kunspecific): add
40836
408372004-02-19  Sam Steingold  <sds@gnu.org>
40838
40839	* io.d (pr_orecord): signal PRINT-NOT-READABLE when *PRINT-READABLY*
40840	and *PRINT-PATHNAMES-ANSI* are non-NIL, but the namestring will
40841	not be parsed in to a similar pathname
40842	* pathname.d (fix_parse_namestring_dot_file): extracted from
40843	split_name_type
40844	(split_name_type): use fix_parse_namestring_dot_file()
40845	(namestring_correctly_parseable_p): check whether this pathname's
40846	namestring will be parsed into a similar pathname
40847	* lispbibl.d (namestring_correctly_parseable_p): prototype
40848
408492004-02-19  Sam Steingold  <sds@gnu.org>
40850
40851	* hashtabl.d (MAKE-HASH-TABLE): :REHASH-THRESHOLD is a (REAL 0 1)
40852	:REHASH-SIZE is a (OR (INTEGER 1 *) (FLOAT (1.0) *))
40853	* constobj.d (type_hashtable_rehash_threshold)
40854	(type_hashtable_rehash_size): ditto
40855
408562004-02-18  Sam Steingold  <sds@gnu.org>
40857
40858	* array.d (ADJUST-ARRAY): :FILL-POINTER NIL means keep it as it was;
40859	use DIMENSION, not FILL-POINTER when copying data to the new vector
40860
408612004-02-18  Sam Steingold  <sds@gnu.org>
40862
40863	* clhs.lisp (read-from-file): FIND-PACKAGE is idempotent
40864
408652004-02-18  Sam Steingold  <sds@gnu.org>
40866
40867	* pathname.d (DELETE-FILE): in ANSI mode, return T, as per ANSI spec
40868
408692004-02-17  Sam Steingold  <sds@gnu.org>
40870
40871	permit lists of uint32 length, the old limit was FIXNUM
40872	* sequence.d (LENGTH): llength1() can return a BIGNUM
40873	* list.d (list_length): use UL_to_I() instead of fixnum()
40874	(MAKE-LIST): use I_to_UL(check_uint32())
40875	instead of posfixnum_to_L(check_posfixnum())
40876	(get_integer_truncate): new function
40877	(NTH, NTHCDR, LAST, MAKE-LIST, BUTLAST, NBUTLAST): use it
40878	instead of posfixnum_to_L(check_posfixnum())
40879	* error.d, lisparit.d (check_integer, check_pos_integer):
40880	moved from LISPARIT to ERROR
40881	* lispbibl.d (check_integer, check_pos_integer): prototype
40882
408832004-02-17  Sam Steingold  <sds@gnu.org>
40884
40885	* pathname.d (version_diff): use version object (OR NULL
40886	INTEGER (MEMBER :WILD :NEWEST)) without converting it to string
40887	(translate_version): expect version to be a version object
40888
408892004-02-16  Sam Steingold  <sds@gnu.org>
40890
40891	* defs2.lisp (write-sequence): make sure to return only one value
40892	when writing bytes - for consistency and ANSI compliance
40893
408942004-02-16  Sam Steingold  <sds@gnu.org>
40895
40896	* lispbibl.d (nil_vector_p, nil_vector_0_p): new macros
40897	* error.d (check_string): use them
40898	* predtype.d (equal, equalp): handle nilvector properly:
40899	since NIL is a subtype of CHARACTER, (VECTOR NIL) is a STRING
40900
409012004-02-16  Sam Steingold  <sds@gnu.org>
40902
40903	* stream.d (MAKE-STRING-OUTPUT-STREAM): :ELEMENT-TYPE NIL means
40904	make a stream based on (VECTOR NIL)
40905	(get_output_stream_string): check that string is not (VECTOR NIL)
40906	(BUILT-IN-STREAM-ELEMENT-TYPE): return NIL
40907	for (MAKE-STRING-OUTPUT-STREAM :ELEMENT-TYPE NIL)
40908	(fehler_write): replaces fehler_wr_char() & fehler_wr_integer()
40909	(wr_ch_forbidden, wr_ch_array_forbidden): for STREAM-ELEMENT-TYPE NIL
40910	* macros2.lisp (with-output-to-string):
40911	default :ELEMENT-TYPE to CHARACTER
40912
409132004-02-16  Sam Steingold  <sds@gnu.org>
40914
40915	* stream.d (combine_stream_element_types): new function
40916	(BUILT-IN-STREAM-ELEMENT-TYPE): use it to handle 2way/echo & concat
40917
409182004-02-15  Sam Steingold  <sds@gnu.org>
40919
40920	FILE-POSITION does not require its 1st argument to be a FILE-STREAM
40921	* stream.d (String-Input-Stream): new slot strm_str_in_begindex
40922	(MAKE-STRING-INPUT-STREAM): init it (and allocate space for it!)
40923	(logical_position_file_start, logical_position_file)
40924	(logical_position_file_end): return the new offset
40925	(FILE-POSITION): handle i/o STRING-STREAMs and STRING-PUSH-STREAM
40926	call GRAY:STREAM-POSITION for all other objects
40927	* gray.lisp (stream-position): new generic function
40928	* constsym.d (stream_position): add
40929
409302004-02-15  Sam Steingold  <sds@gnu.org>
40931
40932	* stream.d (GET-OUTPUT-STREAM-STRING, STRING-INPUT-STREAM-INDEX):
40933	signal TYPE-ERROR instead of ERROR
40934
409352004-02-13  Sam Steingold  <sds@gnu.org>
40936
40937	* defstruct.lisp (defstruct): allow slots named NIL by using
40938	DS-SLOT-VAR to check that the slot does not refer to the
40939	structure name
40940	* io.d (pr_structure_default): ditto
40941
409422004-02-13  Sam Steingold  <sds@gnu.org>
40943
40944	due to the rule 1 in
40945	<http://www.lisp.org/HyperSpec/Body/fun_type-of.html>,
40946	we must have (TYPEP X Y) ==> (SUBTYPEP (TYPE-OF X) Y)
40947	for all "built-in types" Y as listed in table 4-2 in
40948	<http://www.lisp.org/HyperSpec/Body/sec_4-2-3.html>
40949	if X is a FIXNUM or a BIGNUM and Y is UNSIGNED-BYTE, this means
40950	that TYPE-OF must distinguish between positive and negative integers
40951	* constobj.d (type_negfixnum, type_posbignum, type_negbignum): add
40952	* predtype.d (TYPE-OF): return them for FIXNUMs and BIGNUMs
40953
409542004-02-13  Sam Steingold  <sds@gnu.org>
40955
40956	* stream.d (check_open_file_stream): handle BROADCAST-STREAMs
40957	(FILE-POSITION, FILE-LENGTH, FILE-STRING-LENGTH): ditto
40958
409592004-02-12  Sam Steingold  <sds@gnu.org>
40960
40961	ensure that DEFMETHOD returns what is actually saved into GF
40962	* clos.lisp (standard-method): do not create a copier
40963	(std-add-method): do not copy the method
40964
409652004-02-12  Sam Steingold  <sds@gnu.org>
40966
40967	ANSI compliance issues
40968	* charstrg.d (test_stringsymchar_arg): (VECTOR NIL) is a string,
40969	so #A(NIL (0)) is acceptable instead of ""
40970	* error.d (check_string): ditto
40971	* stream.d (input_stream_p, output_stream_p): for
40972	SYNONYM-STREAMs, return the value for the underlying stream
40973	(STREAM-EXTERNAL-FORMAT): handle empty BROADCAST-STREAMs
40974	(make_buffered_stream): :PROBE streams are closed right away
40975	* macros2.lisp (with-output-to-string): wrap declarations properly
40976
409772004-02-11  Sam Steingold  <sds@gnu.org>
40978
40979	* makemake.in: fix cygwin package creation
40980	(VERSION, CLISP_VERSION, CLISP_RELEASE): new make variables
40981	(setup.hint): mention $(MODULES) and allow testing releases
40982
409832004-02-11  Sam Steingold  <sds@gnu.org>
40984
40985	* modules/pcre/cpcre.c: <pcre.h> may be actually <pcre/pcre.h>
40986	* modules/berkeley-db/dbi.lisp (with-open-db):
40987	do not pass environment to PARSE-BODY
40988
409892004-02-11  Sam Steingold  <sds@gnu.org>
40990
40991	* predtype.d (TYPE-OF): handle (VECTOR NIL)
40992
409932004-02-10  Sam Steingold  <sds@gnu.org>
40994
40995	* lfloat.d (LF_sqrt_LF): fix a bug with large uexp whereby SQRT
40996	of MOST-POSITIVE-LONG-FLOAT was less than 1
40997
409982004-02-09  James Anderson  <james.anderson@setf.de>
40999	    Sam Steingold  <sds@gnu.org>
41000
41001	* clos.lisp (analyze-method-description): always set
41002	:WANTS-NEXT-METHOD-P to T because here there is no way to figure
41003	out whether it will be actually needed because of METHOD-COMBINATION,
41004	and STD-ADD-METHOD will reset it if necessary anyway
41005	(standard-method-combination-expander): check for
41006	WANTS-NEXT-METHOD-P also in BEFORE-METHODS (EF-2) and
41007	AFTER-METHODS (EF-3)
41008
410092004-02-09  Sam Steingold  <sds@gnu.org>
41010
41011	* misc.d (ARGV): return the vector of command-line args to runtime
41012	* constsym.d, subr.d, constobj.d (argv): add
41013	* spvw.d (main): init O(argv)
41014	* init.lisp (ARGV): export
41015
410162004-02-08  Sam Steingold  <sds@gnu.org>
41017
41018	fix bug#200: 0 distance jump as 2 bytes => segfault
41019	* compiler.lisp (assemble-LAP): make sure that a jump of 0
41020	distance is not encoded with 2 bytes (otherwise 128 0 is
41021	treated as a 6 byte label)
41022
410232004-02-05  Sam Steingold  <sds@gnu.org>
41024
41025	allow current directory to be on a remote host
41026	* pathname.d (default_drive): return 0 when GetCurrentDirectory()
41027	returns a network (UNC) path
41028	(default_directory_of): allow drive=0 (return GetCurrentDirectory())
41029	(use_default_dir): allow UNC default path
41030	(CD): allow network argument
41031	(init_pathnames): set O(default_drive) to NIL when running drive=0
41032
410332004-02-05  Sam Steingold  <sds@gnu.org>
41034
41035	* charstrg.d (string_concat): do not modify argptr when arg is
41036	not a string
41037
410382004-02-03  Bruno Haible  <bruno@clisp.org>
41039
41040	* io.d (JUSTIFY_END_FILL): Rename from JUSTIFY_END_ENG.
41041	(JUSTIFY_END_LINEAR): Rename from JUSTIFY_END_WEIT.
41042	(justify_end_fill): Rename from justify_end_eng.
41043	(justify_end_linear): Rename from justify_end_weit.
41044	All callers changed.
41045
410462004-02-03  James Anderson  <james.anderson@setf.de>
41047
41048	* clos.lisp: some fixes for DEFINE-METHOD-COMBINATION
41049
410502004-02-02  Bruno Haible  <bruno@clisp.org>
41051
41052	* io.d (pr_array_recursion): Add an rdepth argument. Use dense output
41053	if rdepth==1.
41054	(pr_array): Pass the rank as initial rdepth.
41055
410562004-02-02  Bruno Haible  <bruno@clisp.org>
41057
41058	* Makefile.devel (%/configure.in, %/config.h.in): Restrict the rule
41059	to not match files in ffcall and libcharset.
41060	(ffcall/vacall/config.h.in, ffcall/trampoline/config.h.in)
41061	(ffcall/callback/vacall_r/vacall_r.h.in)
41062	(ffcall/callback/trampoline_r/config.h.in): Remove empty rules.
41063
410642004-02-02  Sam Steingold  <sds@gnu.org>
41065
41066	fix bug#199: Incorrect value returned by compiled function
41067	* compiler.lisp (traverse-anode): UNWIND-PROTECT-OPEN discards
41068	*CURRENT-VALUE* and *CURRENT-VARS*, just like UNWIND-PROTECT-CLOSE
41069
410702004-02-01  James Anderson  <james.anderson@setf.de>
41071	    Sam Steingold  <sds@gnu.org>
41072
41073	implement DEFINE-METHOD-COMBINATION
41074	* clos.lisp: merge in James' patch
41075	* init.lisp: export the symbols
41076	* constobj.d (version): bump because of changed
41077	signature of DO-DEFMETHOD
41078	* record.d (parse_seclass): remove legacy code
41079
410802004-02-01  Sam Steingold  <sds@gnu.org>
41081
41082	* spvw.d (my_malloc): malloc() with error check
41083	* lispbibl.d, genclisph.d (my_malloc): export
41084	* foreign.d (xmalloc): remove, use my_malloc() instead
41085	* modules/clx/new-clx/clx.f, modules/regexp/regexi.c: ditto
41086
410872004-01-31  Sam Steingold  <sds@gnu.org>
41088
41089	* pathname.d (looks_logical_p): return true only if all the
41090	characters in the string are legal logical path elements
41091
410922004-01-29  Sam Steingold  <sds@gnu.org>
41093
41094	some fixes for Garnet
41095	* modules/clx/new-clx/clx.f (get_font_info_and_display): fixed
41096	arguments passed to SLOT-VALUE
41097	(general_plist_writer, SET-GCONTEXT-DASHES): fix arguments
41098	passed to SET-SLOT-VALUE
41099	(SET-GCONTEXT-DASHES): use REPLACE instead of an explicit loop
41100	(BELL): the second argument is optional
41101
411022004-01-29  Sam Steingold  <sds@gnu.org>
41103
41104	fix bug#197: incorrect stack cleanup
41105	* compiler.lisp (simplify): fix a typo in SKIPSP+SKIPI=>SKIPI
41106
411072004-01-27  Sam Steingold  <sds@gnu.org>
41108
41109	* modules/fastcgi/fastcgi.lisp: add :FASTCGI to *FEATURES*
41110	* modules/oracle/oracle.lisp: add :ORACLE to *FEATURES*
41111	* modules/pcre/pcre.lisp: add :PCRE to *FEATURES*
41112	* modules/postgresql/postgresql.lisp: add :POSTGRESQL to *FEATURES*
41113	* modules/regexp/regexp.lisp: add :REGEXP to *FEATURES*
41114
411152004-01-25  Sam Steingold  <sds@gnu.org>
41116
41117	new function (MOD-EXPT x y z) = (MOD (EXPT x y) z)
41118	* lisparit.d (check_pos_integer): new function
41119	(ISQRT): use it instead of check_integer()
41120	(MOD-EXPT): call I_I_I_mod_expt_I()
41121	* intsqrt.d (I_isqrt_I): assume non-negative argument
41122	* intdiv.d (I_I_I_mod_expt_I): implement
41123	* init.lisp (MOD-EXPT): exported
41124	* constsym.d, subr.d (mod_expt): add
41125
411262004-01-25  Sam Steingold  <sds@gnu.org>
41127
41128	* modules/clx/new-clx/clx.f (get_ptr_object_and_display)
41129	(get_font_info_and_display, DISCARD-FONT-INFO): use check_fpointer()
41130	(OPEN-DISPLAY): use fehler_key_odd()
41131	(SCREEN-BACKING-STORES): use VALUES1
41132	(error_required_keywords, my_malloc, error_no_such_color):
41133	new functions
41134	(CREATE-WINDOW, CREATE-CURSOR, CREATE-GLYPH-CURSOR):
41135	use error_required_keywords()
41136	(handle_image_z, PUT-IMAGE, SET-FONT-PATH): use my_malloc()
41137	(ALLOC-COLOR, LOOKUP-COLOR): use error_no_such_color()
41138	(READ-FILE-TO-PIXMAP): signal an error on failure instead of
41139	returning error code
41140	* modules/clx/new-clx/demos/clx-demos.lisp: supply pathname to REQUIRE
41141	do not SHADOW USAGE
41142
411432004-01-25  Bruno Haible  <bruno@clisp.org>
41144
41145	* m4/mprotect.m4: Add back the getpagesize() prototype.
41146	It is determined by getpagesize.m4.
41147
411482004-01-23  Sam Steingold  <sds@gnu.org>
41149
41150	* modules/clx/new-clx/clx.f (get_font_info_and_display):
41151	canonicalize encoding by inserting "-" after "ISO" when necessary
41152	Suggested by Pascal J.Bourguignon <pjb@informatimago.com>
41153
411542004-01-20  Bruno Haible  <bruno@clisp.org>
41155
41156	* po/clisp-xgettext (d-parse-string): Recognize \n as newline
41157	inside a C string.
41158
411592004-01-20  Bruno Haible  <bruno@clisp.org>
41160
41161	Remove support for MSDOS and OS/2, using EMX.
41162	* os2: Remove directory.
41163	* msdos.d: Remove file.
41164	* cfgdos.lisp: Remove file.
41165	* lispbibl.d, constobj.d, constsym.d, subr.d, pseudofun.d:
41166	* genclisph.d, spvw.d, spvw_language.d, spvw_memfile.d:
41167	* spvw_sigint.d, io.d, stream.d, pathname.d, predtype.d:
41168	* charstrg.d, hashtabl.d, error.d, errunix.d, encoding.d, time.d:
41169	* lisparit.d, unixaux.d, init.lisp, defs1.lisp, format.lisp:
41170	* macros2.lisp, complete.lisp, xcharin.lisp, keyboard.lisp:
41171	* edit.lisp, runprog.lisp, makemake.in, Makefile.devel:
41172	* po/Makefile.devel: Remove MSDOS and OS/2 support.
41173
411742004-01-19  Sam Steingold  <sds@gnu.org>
41175
41176	* modules/syscalls/posix.lisp, modules/syscalls/calls.c (confstr):
41177	new exported system call
41178
411792004-01-18  Bruno Haible  <bruno@clisp.org>
41180
41181	* loadform.lisp (missing-load-form): New type.
41182	(signal-missing-load-form): New function.
41183	(make-load-form): Add the methods that must exist according to CLHS.
41184	(make-init-form): Ignore only errors coming from make-load-form,
41185	not just any method-call-error. Do not warn for other errors, instead
41186	pass them on to the caller.
41187
411882004-01-18  Bruno Haible  <bruno@clisp.org>
41189
41190	Remove support for Borland C compiler on Woe32.
41191	* win32bc: Remove directory.
41192	* Makefile.devel, makemake.in: Remove Borland C support.
41193
411942004-01-16  Sam Steingold  <sds@gnu.org>
41195
41196	* defmacro.lisp (kwd-arg-form, analyze-key): do not evaluate the key
41197	Reported by Frode Vatvedt Fjeld <frodef@cs.uit.no>
41198
411992004-01-16  Sam Steingold  <sds@gnu.org>
41200
41201	* modules/pcre/cpcre.c (PCRE-COMPILE): do not allocate a foreign
41202	pointer for NULL study
41203	(PCRE-EXEC): pass subject_bytelen instead of subject_len
41204
412052004-01-15  Bruno Haible  <bruno@clisp.org>
41206
41207	Remove support for Amiga running AmigaOS.
41208	* amiga: Remove directory.
41209	* amiga.d: Remove file.
41210	* amiga2.d: Remove file.
41211	* amigaaux.d: Remove file.
41212	* erramiga.d: Remove file.
41213	* rexx.d: Remove file.
41214	* rexx1.lisp: Remove file.
41215	* cfgamiga.lisp: Remove file.
41216	* lispbibl.d, genclisph.d, constobj.d, constsym.d, subr.d:
41217	* pseudofun.d, spvw.d, spvw_allocate.d, spvw_garcol.d:
41218	* spvw_language.d, spvw_memfile.d, stream.d, pathname.d, charstrg.d:
41219	* hashtabl.d, debug.d, error.d, time.d, misc.d, predtype.d:
41220	* lisparit.d, foreign.d, affi.d, init.lisp, defs1.lisp:
41221	* describe.lisp, edit.lisp, type.lisp, keyboard.lisp, xcharin.lisp:
41222	* screen.lisp, foreign1.lisp, affi1.lisp, makemake.in:
41223	* Makefile.devel, po/Makefile.devel, modules/syscalls/calls.c:
41224	* os2/delx.cmd: Remove AmigaOS support.
41225
412262004-01-15  Sam Steingold  <sds@gnu.org>
41227
41228	* modules/pcre/cpcre.c (PCRE-COMPILE, PCRE-EXEC):
41229	do not accept :UTF8 & :NO-UTF8-CHECK, always do Unicode
41230
412312004-01-15  Sam Steingold  <sds@gnu.org>
41232
41233	* encoding.d (encoding_from_name): issue a warning (using libc
41234	stdio because Lisp i/o is not yet available) if the requested
41235	encoding cannot be found
41236	default to ASCII for *FOREIGN-ENCODING* and UTF-8 for others
41237	(init_dependent_encodings): pass `context' to encoding_from_name()
41238	(canonicalize_encoding): uppercase the encoding name
41239
412402004-01-15  Bruno Haible  <bruno@clisp.org>
41241
41242	* encoding.d (uni16_wcslen, nls_wcslen, nls_asciiext_wcslen): Signal
41243	an error when seeing an unencodable character and errors should be
41244	signalled.
41245
412462004-01-15  Bruno Haible  <bruno@clisp.org>
41247
41248	Remove support for Convex.
41249	* lispbibl.d, eval.d, aridecl.d, unix.d, unixaux.d, genclisph.d: Remove
41250	Convex support.
41251
412522004-01-12  Bruno Haible  <bruno@clisp.org>
41253
41254	Remove support for Acorn RISCOS.
41255	* acorn: Remove directory.
41256	* acorn.d: Remove file.
41257	* acornaux.d: Remove file.
41258	* acornsig.d: Remove file.
41259	* cfgacorn.lisp: Remove file.
41260	* lispbibl.d, constobj.d, constsym.d, subr.d, subrkw.d:
41261	* pseudofun.d, spvw.d, spvw_garcol.d, spvw_memfile.d:
41262	* spvw_sigint.d, io.d, stream.d, pathname.d, record.d, time.d:
41263	* lisparit.d, aridecl.d, error.d, unixaux.d, genclisph.d:
41264	* init.lisp, defs1.lisp, edit.lisp, keyboard.lisp, makemake.in:
41265	* po/Makefile.devel, Makefile.devel, modules/syscalls/calls.c:
41266	Remove RISCOS support.
41267
412682004-01-12  Sam Steingold  <sds@gnu.org>
41269
41270	* describe.lisp (*apropos-matcher*): new user variable
41271	(*apropos-do-more*): exported
41272	(apropos-list): use it
41273	* modules/wildcard/wildcard.lisp (wildcard-matcher): new function
41274	* modules/regexp/regexp.lisp (regexp-matcher): new function
41275	* modules/regexp/regexi.c (regexp-exec): new option :BOOLEAN
41276	* modules/pcre/pcre.lisp (pcre-matcher): new function
41277	* modules/pcre/cpcre.c (pcre-exec): new option :BOOLEAN
41278
412792004-01-12  Sam Steingold  <sds@gnu.org>
41280
41281	* eval.d (TRACE_CALL, ERROR): new debugging macros
41282	(funcall_iclosure, apply_subr, apply_closure, funcall_subr)
41283	(funcall_closure): use TRACE_CALL() instead of trace_call()
41284	(interpret_bytecode_): ditto
41285	use ERROR instead of goto to find out where the error originated from
41286
412872004-01-11  Bruno Haible  <bruno@clisp.org>
41288
41289	* modules/wildcard/fnmatch.h: Remove file.
41290	* modules/wildcard/fnmatch_.h: New file, from gnulib.
41291	* modules/wildcard/fnmatch.c: Update from gnulib.
41292	* modules/wildcard/fnmatch_loop.c: New file, from gnulib.
41293	* modules/wildcard/configure.in: Use the macro from gnulib.
41294	* modules/wildcard/Makefile.in (REGEX_O, REGEX_H): Remove variables.
41295	(FNMATCH_O): New variable.
41296	(fnmatch.o): Update.
41297	(fnmatch.h): New rule.
41298	(clean): Update.
41299	* m4/fnmatch.m4: New file, from gnulib.
41300	* m4/mbstate_t.m4: New file, from gnulib.
41301
41302	* eval.d (parse_dd): Simplify code.
41303	(interpret_bytecode_): Restore the protection against
41304	-fomit-frame-pointer.
41305
41306	* _clisp.1: Remove mention of option -verbose.
41307
41308	* _clisp.html: Resynchronize with _clisp.1.
41309
41310	* _distmakefile (uninstall): Make it work on non-Linux systems as well.
41311
41312	* amiga.d (read_helper, write_helper): Fix arg name.
41313	* amigaaux.d (read_helper): Likewise.
41314	* acorn.d (read_helper): Likewise.
41315
41316	* lispbibl.d (read_byte_array, write_byte_array): Fix description of
41317	no_hang argument.
41318	* stream.d (read_byte_array, write_byte_array): Likewise.
41319	(wr_by_array_synonym, wr_by_array_broad, wr_by_array_twoway): Use uintL
41320	instead of int.
41321
41322	* makemake.in: Remove useless trailing semicolons.
41323
41324	* clos.lisp (analyze-method-description, analyze-defgeneric)
41325	(make-generic-function-form, analyze-generic-fundefs): Remove
41326	environment argument.
41327	(defmethod, defgeneric, generic-flet, generic-labels): Update.
41328	* compiler.lisp: Update clos::make-generic-function-form calls.
41329
413302004-01-11  Sam Steingold  <sds@gnu.org>
41331
41332	* record.d (parse_seclass): be backward compatible (wrt 2004-01-09
41333	SECLASS change)
41334	* constobj.d (version): do not change now!
41335	remember to remove the backward compatibility code above
41336	when `version' changes!
41337
413382004-01-10  Sam Steingold  <sds@gnu.org>
41339
41340	* lispbibl.d (check_structure): add a prototype
41341	(allocate_weakpointer): remove unused function
41342	* record.d (allocate_weakpointer): ditto
41343	(check_structure): new function
41344	(COPY-STRUCTURE): use it
41345	(check_generic_function): new function
41346	(%COPY-GENERIC-FUNCTION, GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION):
41347	use it
41348	(MACRO-EXPANDER): recoverable type error
41349	(check_function_macro): new function
41350	(FUNCTION-MACRO-FUNCTION, FUNCTION-MACRO-EXPANDER): use it
41351	* sequence.d (fehler_sequence): new function
41352	(get_valid_seq_type, LENGTH): use it
41353	* io.d (PRINT-STRUCTURE): use check_structure()
41354	* stream.d (test_socket_server): error message unification
41355
413562004-01-09  Sam Steingold  <sds@gnu.org>
41357
41358	* compiler.lisp (c-form-table): NTH & SYSTEM::%SETNTH
41359	are now handled by c-NTH & c-SETNTH, respectively,
41360	for the sake of (defstruct (foo (:type list))) accessors
41361	(c-NTH, c-SETNTH): optimise NTH & (SETF NTH) to FIRST...TENTH
41362
413632004-01-09  Sam Steingold  <sds@gnu.org>
41364
41365	fix bug#193: progv binding not handled properly in compiler
41366	* compiler.lisp (seclass): a structure of type LIST
41367	(*seclass-dirty*, *seclass-read*): new constant
41368	(*seclass-foldable*): rename from *FOLDABLE-SECLASS*
41369	(seclass-or, seclass-without): update for new SECLASS
41370	(anode-side-effect-free-p): new function
41371	(c-form, unmodify-unused-var, checking-movable-var-list)
41372	(c-bind-with-svars, c-UNWIND-PROTECT, c-MULTIPLE-VALUE-PROG1): use it
41373	(c-VARSET): set SECLASS-USES-BINDING for SPECIAL variables
41374	(c-PROGV, c-parallel-bind-movable-var-anode):
41375	check both USES and USES-BINDING
41376	(c-FUNCTION, c-HANDLER-BIND): use *SECLASS-READ* instead of a literal
41377	(f-side-effect, c-unlist, c-DEFUN, c-RETURN-FROM, c-GO):
41378	use *SECLASS-DIRTY* instead of a literal
41379	* clos.lisp (%make-gf): ditto
41380	* record.d (parse_seclass): update
41381	* constobj.d (seclass_no_se, seclass_read, seclass_write)
41382	(seclass_default): update
41383
413842004-01-09  Sam Steingold  <sds@gnu.org>
41385
41386	* list.d (fehler_nth, fehler_butlast): remove
41387	(NTH, NTHCDR, LAST, MAKE-LIST, BUTLAST, NBUTLAST):
41388	use check_posfixnum() instead
41389
413902004-01-08  Sam Steingold  <sds@gnu.org>
41391
41392	fix bug#196: infinite recursion with pprint-logical-block
41393	* io.d (pretty_print_call): avoid an infinite recursion by
41394	checking *PRIN-PPRINTER* before calling PPRINT-DISPATCH
41395
413962004-01-08  Sam Steingold  <sds@gnu.org>
41397
41398	moved *LOAD-FORMS* to C to speed up instance output
41399	* constsym.d (*LOAD-FORMS*): add
41400	* io.d (pr_instance): check *LOAD-FORMS* before calling MAKE-INIT-FORM
41401	* spvw.d (init_symbol_values): init *LOAD-FORMS*
41402
414032004-01-08  Sam Steingold  <sds@gnu.org>
41404
41405	made MAKE-INIT-FORM more robust
41406	* condition.lisp (method-call-error, method-call-type-error):
41407	new conditions
41408	* clos.lisp (no-applicable-method, no-primary-method)
41409	(no-next-method): signal METHOD-CALL-ERROR or METHOD-CALL-TYPE-ERROR
41410	* init.lisp (method-call-error, method-call-type-error)
41411	(method-call-error-generic-function, method-call-error-method)
41412	(method-call-error-argument-list): export new CLOS extras
41413	* loadform.lisp (make-init-form): use METHOD-CALL-ERROR to
41414	determine that the error comes from MAKE-LOAD-FORM
41415	Reported by Kaz Kylheku <kaz@ashi.footprints.net>
41416
414172004-01-08  Stanislav Tsekhmistroh  <tcss@kometa.dp.ua>
41418	    Arseny Slobodjuck  <ampy@ich.dvo.ru>
41419
41420	Support (run-program ... :wait nil) on win32 by means of "start"
41421	* runprog.lisp (run-shell-command) [WIN32]: support :wait.
41422
414232004-01-07  Bruno Haible  <bruno@clisp.org>
41424
41425	* misc.d (clisp_setenv) [WIN32_NATIVE]: Call SetEnvironmentVariable.
41426
414272004-01-06  Sam Steingold  <sds@gnu.org>
41428
41429	* modules/regexp/regexi.c (REGEXP): use alloca() instead of calloc();
41430	return NIL for non-existent matches (instead of an invalid MATCH)
41431	Reported by Wolfgang Jenkner <wjenkner@inode.at>
41432
414332004-01-06  Sam Steingold  <sds@gnu.org>
41434
41435	* defs2.lisp (with-standard-io-syntax): bind *PRINT-SYMBOLS-LONG*
41436	and COMPILER::*LOAD-FORMS*
41437
414382004-01-06  Bruno Haible  <bruno@clisp.org>
41439
41440	Assume that <sys/mman.h> declares mmap() in a POSIX compliant way.
41441	* m4/mmap.m4 (CL_MMAP): Do not define RETMMAPTYPE, MMAP_ADDR_T,
41442	MMAP_SIZE_T.
41443	* unix.d (MMAP_ADDR_T, MMAP_SIZE_T, RETMMAPTYPE): Remove macros. Use
41444	void* and size_t instead.
41445	* win32.d (MMAP_ADDR_T, MMAP_SIZE_T, RETMMAPTYPE): Remove macros.
41446	* unixaux.d (fixed_mmap, mprotect): Use void* and size_t instead of
41447	MMAP_ADDR_T and MMAP_SIZE_T.
41448	* spvw_fault.d (handle_read_fault, handle_readwrite_fault)
41449	(handle_fault, handle_fault_range, xmprotect): Likewise.
41450	* spvw_garcol.d (gar_col_normal): Likewise.
41451	* spvw_mmap.d (munmap, mprotect, mmap_zeromap, mmap_filemap): Likewise.
41452	* spvw_multimap.d (msync_mmap_intervals, fdmap): Likewise.
41453
414542004-01-04  Sam Steingold  <sds@gnu.org>
41455
41456	* makemake.in (full-check): new target: call RUN-SOME-TESTS in
41457	tests/tests.lisp on $(MODULES)/*.tst
41458
414592004-01-02  Sam Steingold  <sds@gnu.org>
41460
41461	* makemake.in (cygwin-src) [cygwin]: cygwin source package
41462
414632004-01-02  Sam Steingold  <sds@gnu.org>
41464
41465	fix bug#195: change-class problems
41466	* record.d (%CHANGE-CLASS): un-realloc instance & new-class
41467
414682004-01-01  Sam Steingold  <sds@gnu.org>
41469
41470	* modules/berkeley-db/bdb.c: include windows.h only on windows
41471	Reported by Aurelio Bignoli <a.bignoli@computer.org>
41472
414732004-01-01  Sam Steingold  <sds@gnu.org>
41474
41475	* install.bat: fix bug#194: replaced `|' with `I'
41476	and `/' with `\' for the sake of Windows XP
41477
414782003-12-31  Sam Steingold  <sds@gnu.org>
41479
41480	* makemake.in (uninstall-bin) [CYGWIN]: remove clisp.README & clisp.exe
41481	(testsuite-all): `clean complete compare', not just `complete'
41482
414832003-12-29  Sam Steingold  <sds@gnu.org>
41484
41485	* version.h: 2.32 is released
41486
414872003-12-30  Bruno Haible  <bruno@clisp.org>
41488
41489	* compiler.lisp (seclass-foldable-p, seclass-uses, seclass-modifies):
41490	New functions.
41491	(*foldable-seclass*, *pure-seclass*): New variables.
41492	(make-seclass): New function.
41493	Use them throughout the compiler instead of null, car, cdr, cons.
41494
414952003-12-27  Bruno Haible  <bruno@clisp.org>
41496
41497	* spvw_calendar.c: New file.
41498	* spvw.d: Include spvw_calendar.c.
41499	(print_banner): Light the candles.
41500	* makemake.in: Emit rule for spvw_calendar.c.
41501
415022003-12-27  Bruno Haible  <bruno@clisp.org>
41503
41504	* m4/mmap.m4: Treat i786 CPUs like i686.
41505	* asmi386.hh: Likewise.
41506	* makemake.in: Likewise.
41507
415082003-12-26  Sam Steingold  <sds@gnu.org>
41509
41510	fix bug#191: GO from deep nesting does not work
41511	* compiler.lisp (note-far-used-tagbody): propagate tagbody+tag
41512	along the stack, just link in the 2002-05-03 patch (bug#109),
41513	and use PUSHNEW instead of PUSH to avoid duplication
41514	(c-TAGBODY): check that the index in tagbody+tag is valid
41515
415162003-12-23  Sam Steingold  <sds@gnu.org>
41517
41518	fix bug#192: pathname parsing error: "//"
41519	* pathname.d (simplify_directory): remove "", i.e., treat "//" as "/"
41520
415212003-12-22  Sam Steingold  <sds@gnu.org>
41522
41523	* compiler.lisp (c-MULTIPLE-VALUE-BIND): use REVAPPEND
41524	instead of APPEND+REVERSE
41525	(c-WITHOUT-PACKAGE-LOCK): use NCONC instead of APPEND
41526	on a fresh list produced by MAPCAR
41527
415282003-12-21  Sam Steingold  <sds@gnu.org>
41529
41530	fix bug#190: integer tags cannot be compiled
41531	* compiler.lisp (c-TAGBODY): put integer tags into Car(tagbody_cons);
41532	replace GENSYMs with NILs so that *.FAS will not contain GENSYMs
41533
415342003-12-21  Sam Steingold  <sds@gnu.org>
41535
41536	* spvw.d (--version): print SOFTWARE-TYPE, SOFTWARE-VERSION,
41537	MACHINE-TYPE, MACHINE-VERSION, MACHINE-INSTANCE
41538	(print_license): remove dead link
41539	do not use NLstring
41540
415412003-12-21  Sam Steingold  <sds@gnu.org>
41542
41543	* genclisph.d (test): include <stdio.h> before <clisp.h> because
41544	the latter declares a global register variable and the former may
41545	define a function (e.g., on FreeBSD)
41546	* modules/regexp/regexi.c: ditto
41547
415482003-12-20  Sam Steingold  <sds@gnu.org>
41549
41550	Dropped -fomit-frame-pointer: it buys nothing on today's x86
41551	processors, and it buys nothing anyway on processors which are not
41552	as register-starved as the x86 (Bruno)
41553	* eval.d (interpret_bytecode_) [GNU/FAST_SP]: no need for alloca()
41554	* makemake.in (XCFLAGS): never use -fomit-frame-pointer
41555
415562003-12-20  Sam Steingold  <sds@gnu.org>
41557
41558	the initial verbosity level is controlled by the pair
41559	of mutually cancelling options -q/-v - see manual
41560	* spvw.d (argv_quiet): replaced with argv_verbose
41561
415622003-12-19  Bruno Haible  <bruno@clisp.org>
41563
41564	* spvw_mmap.d (mprotect): Remove declaration. Needed for FreeBSD 5.
41565
415662003-12-19  Bruno Haible  <bruno@clisp.org>
41567
41568	* clisp-link.in: Make 2001-10-23 patch more portable: Avoid repeated
41569	backslashes inside backquotes.
41570
415712003-12-19  Sam Steingold  <sds@gnu.org>
41572
41573	* trace.lisp (trace1): evaluate :STEP-IF at run time, not at
41574	compile time, so that STEP is invoked when :STEP-IF evaluates to
41575	non-NIL, not just when it is present
41576
415772003-12-19  Sam Steingold  <sds@gnu.org>
41578
41579	repeated "-q" sets *LOAD-VERBOSE* and *COMPILE-VERBOSE* to NIL
41580	* constsym.d (*COMPILE-VERBOSE*): add
41581	* spvw.d (argv_quiet): integer, not boolean
41582	(main): repeated "-q" means argv_quiet++
41583
415842003-12-19  Sam Steingold  <sds@gnu.org>
41585
41586	fix bug#181: Compiler bug in OPTIMIZE-LABEL
41587	* compiler.lisp (optimize-label): ignore unused labels
41588	(optimize-short): do not LABEL-SUBST to unused labels
41589	(optimize-value): do not discard references to an impossible
41590	label when it is the same as the definite label
41591
415922003-12-18  Sam Steingold  <sds@gnu.org>
41593
41594	* spvw.d (appease_form): new function
41595	(main): use it
41596	(-repl): do not concatenate the string input stream from -x with
41597	the stdin - this causes a missing prompt problem; bind
41598	*standard-input* to the string input stream instead and run two
41599	separate REPLs for -x and for the user interaction via stdio
41600	* reploop.lisp (main-loop): exit only when EOF happened on an
41601	interactive stream; otherwise (e.g., the -x string input stream),
41602	just return for the next REPL to take over
41603
416042003-12-18  Sam Steingold  <sds@gnu.org>
41605
41606	fix bug#183: Compiler bug involving optional parameters
41607	* compiler.lisp (note-references, remove-references):
41608	handle JMPIFBOUNDP properly (label is 3rd, not 2nd!)
41609
416102003-12-17  Sam Steingold  <sds@gnu.org>
41611
41612	* compiler.lisp (coalesce): fix bug#182:
41613	do not coalesce unless NEW-CODE is non-NIL
41614
416152003-12-17  Sam Steingold  <sds@gnu.org>
41616
41617	* compiler.lisp (insert-combined-LAPs): fix bug#189: (RET)
41618	and (RETGF) can be preceded by a SKIPI instruction instead of a SKIP
41619
416202003-12-16  Sam Steingold  <sds@gnu.org>
41621
41622	use system-wide wildcard(fnmatch) implementation when it is available
41623	* modules/wildcard/link.sh.in: rename from link.sh
41624	* modules/wildcard/configure.in: AC_SUBST FNMATCH_O&FNMATCH_H
41625	* modules/wildcard/Makefile.in: use FNMATCH_O&FNMATCH_H
41626	do not define _LIBC - forbidden in user (application) code
41627
416282003-12-17  Sam Steingold  <sds@gnu.org>
41629
41630	new module: Perl Compatible Regular Expressions <http://www.pcre.org/>
41631	* modules/pcre: new directory
41632
416332003-12-15  Bruno Haible  <bruno@clisp.org>
41634
41635	* init.lisp (sys::%expand-form): Call %expand-form on the result of a
41636	symbol-macro expansion, instead of returning the expansion directly.
41637	Reported by Conrad Barski.
41638
416392003-12-12  Sam Steingold  <sds@gnu.org>
41640
41641	prompt is now fully customizable by the user
41642	* reploop.lisp (prompt-to-string): new macro
41643	(*prompt-start*, *prompt-step*, *prompt-break*, *prompt-body*)
41644	(*prompt-finish*): new custom variables
41645	(*prompt*, prompt-string1, prompt-string2, prompt-string3): remove
41646	(break-level, step-level): new exported functions
41647	(prompt-start, prompt-body, prompt-finish, prompt-step)
41648	(prompt-break): new functions
41649	(main-loop, break-loop, step-hook-fn): use them
41650
416512003-12-11  Sam Steingold  <sds@gnu.org>
41652
41653	fix bug#186: RETURN-FROM not working in compiled FLET/LABELS
41654	* compiler.lisp (c-FLET, c-LABELS): fix ADD-IMPLICIT-BLOCK call
41655	* init.lisp (%expand-lambdabody): ditto
41656	* eval.lisp (ADD-IMPLICIT-BLOCK): before 2003-12-05,
41657	ADD-IMPLICIT-BLOCK and add_implicit_block() accepted different
41658	arguments and returned different values!
41659	this is now fixed and they are truly identical.
41660
416612003-12-01  Sam Steingold  <sds@gnu.org>
41662
41663	* compiler.lisp (c-UNWIND-PROTECT): discard side-effect free
41664	cleanup forms
41665
416662003-12-10  Sam Steingold  <sds@gnu.org>
41667
41668	* modules/bindings/win32/win32.lisp (word): new type
41669	(EXTENDED_NAME_FORMAT, COMPUTER_NAME_FORMAT): new enum types
41670	(UNLEN, MAX_COMPUTERNAME_LENGTH): new constants
41671	(GetSystemDirectoryA, GetWindowsDirectoryA, GetCurrentDirectoryA)
41672	(GetVersion, GetUserNameA, GetUserNameExA, GetComputerObjectNameA)
41673	(GetComputerNameExA): new functions
41674	* modules/syscalls/calls.c, modules/syscalls/posix.lisp
41675	(VERSION, SYSTEM-INFO) [WIN32, CYGWIN]: new exports
41676
416772003-12-05  Sam Steingold  <sds@gnu.org>
41678
41679	code re-arrangement and streamlining
41680	* init.lisp, eval.d (ADD-IMPLICIT-BLOCK, FUNCTION-BLOCK-NAME):
41681	moved to eval.d from init.lisp (already implemented in C anyway!)
41682	* constsym.d, subr.d (add_implicit_block, function_block_name): add
41683	* control.d (PARSE-BODY): do not macroexpand anything as per ANSI
41684	CL (see also patch 2003-02-14); use parse_dd() for all the work;
41685	do not accept ENV argument
41686	* subr.d (parse_body): ditto
41687	* clos.lisp, compiler.lisp, defmacro.lisp, defs1.lisp:
41688	* defs2.lisp, format.lisp, init.lisp, macros1.lisp, macros2.lisp:
41689	* macros3.lisp, places.lisp: do not pass ENV to PARSE-BODY
41690	* eval.d (parse_dd): do not accept ENV args (not used since 2003-02-14)
41691	(get_closure): do not pass ENV to parse_dd()
41692	* control.d (LET, LET*, LOCALLY, SYMBOL-MACROLET)
41693	(MULTIPLE-VALUE-BIND): ditto
41694	* lispbibl.d (parse_dd): update the prototype
41695
416962003-12-04  Sam Steingold  <sds@gnu.org>
41697
41698	* hashtabl.d (hash_prepare_store): fix a bug introduced in the
41699	2003-05-13 DEFINE-HASH-TABLE-TEST patch: EQ and EQL hash codes
41700	depend on the object address, so they cannot be cached between GCs
41701	Reported by Matt Cross <mcross@irobot.com>
41702
417032003-12-03  Sam Steingold  <sds@gnu.org>
41704
41705	* modules/syscalls/calls.c (STAT-VFS): interface to (f)statvfs(2)
41706	* modules/syscalls/posix.lisp (STAT-VFS): export the structure
41707
417082003-12-01  Sam Steingold  <sds@gnu.org>
41709
41710	* makemake.in (distrib) [win32]: depend on clisp.man and
41711	clisp.html instead of repeating the rules for them
41712	* _distmakefile (uninstall): new target
41713
417142003-11-17  Sam Steingold  <sds@gnu.org>
41715
41716	new module for interface to Berkeley DB
41717	<http://www.sleepycat.com/docs/api_c/dbt_class.html>
41718	* modules/berkeley-db: new directory
41719
417202003-11-14  Sam Steingold  <sds@gnu.org>
41721
41722	* io.d (FORMAT-TABULATE): do not lose the top empty string
41723
417242003-11-07  John Tang Boyland  <boyland@users.sf.net>
41725	    Sam Steingold  <sds@gnu.org>
41726
41727	fix bug#179: ~<...~:> format directive not implemented
41728	for compiled code (using FORMATTER)
41729	* format.lisp (format-parse-cs): ~:> ==> FORMAT-LOGICAL-BLOCK
41730	(format-logical-block): add a stub
41731	(format-logical-block-parse, formatter-bind-block-1)
41732	(formatter-whole-args*): new functions
41733	(formatter-bind-block): new macro
41734	(formatter-main-1): handle FORMAT-LOGICAL-BLOCK
41735	(formatter-main-1): fix FORMAT-PPRINT-INDENT
41736
417372003-11-05  Sam Steingold  <sds@gnu.org>
41738
41739	* modules/syscalls/calls.c (FILE-STAT): compilation fix
41740	(copy_file_low): pass no_block=false to read_helper()
41741	(copy_one_file): fix :SYMLINK/:HARDLINK
41742
417432003-11-04  Sam Steingold  <sds@gnu.org>
41744
41745	* spvw_memfile.d: do not shadow local variables
41746	* encoding.d (java_wcstombs): do not shadow hex_table
41747	* foreign.d: do not shadow global index(3) and many local variables
41748
417492003-11-04  Bruno Haible  <bruno@clisp.org>
41750
41751	* arilev1i.d: Use ANSI C prototypes.
41752
417532003-11-04  Sam Steingold  <sds@gnu.org>
41754
41755	* makemake.in: uniform --with* processing (still different from
41756	autoconf scripts, see the comment in the code)
41757
417582003-10-28  Bruno Haible  <bruno@clisp.org>
41759
41760	* lispbibl.d (CHART_STRUCT): Do not define when using g++ 3.3.x.
41761
417622003-10-27  Bruno Haible  <bruno@clisp.org>
41763
41764	* stdbool.h.in: Better support for BeOS.
41765
417662003-10-26  Bruno Haible  <bruno@clisp.org>
41767
41768	* time.d (SYS::DELTA4): Avoid gcc warning.
41769
417702003-10-26  Bruno Haible  <bruno@clisp.org>
41771
41772	* utils/ansidecl.d: Remove file.
41773	* makemake.in: Remove all uses of ansidecl and ANSIDECL.
41774
417752003-10-26  Bruno Haible  <bruno@clisp.org>
41776
41777	* lispbibl.d: Drop &!.
41778	* spvw.d: Drop &!.
41779	* spvw_module.d (module_names_to_stack): Use 'global'.
41780	* spvw_alloca.d: Use ANSI C prototypes.
41781	* spvw_mmap.d: Use ANSI C prototypes.
41782	* spvw_multimap.d: Use ANSI C prototypes. Indentation & braces.
41783	* spvw_global.d: Use ANSI C prototypes. Indentation & braces.
41784	* spvw_gcstat.d: Whitespace changes.
41785	* spvw_update.d: Indentation & braces.
41786	* spvw_fault.d: Use ANSI C prototypes. Indentation & braces.
41787	* spvw_sigcld.d: Use ANSI C prototypes.
41788	* spvw_sigwinch.d: Drop &!.
41789	* spvw_garcol.d: Use ANSI C prototypes. Indentation & braces.
41790	* spvw_genera1.d: Use ANSI C prototypes. Indentation & braces.
41791	* spvw_allocate.d: Use ANSI C prototypes. Indentation & braces.
41792	* spvw_circ.d: Use ANSI C prototypes. Indentation & braces.
41793	* spvw_memfile.d: Indentation & braces.
41794	* sort.d: Use ANSI C prototypes. Indentation & braces.
41795	* eval.d: ANSI C prototypes. Drop &!. Indentation & braces.
41796	* control.d: Drop &!.
41797	* pathname.d: Whitespace changes.
41798	* stream.d: Use ANSI C prototypes. Indentation & braces.
41799	* socket.d: Drop &!.
41800	* io.d: Whitespace changes.
41801	* array.d: Whitespace changes.
41802	* hashtabl.d: Whitespace changes.
41803	* package.d: Whitespace changes.
41804	* sequence.d: Use ANSI C prototypes. Indentation & braces.
41805	* charstrg.d: Whitespace changes.
41806	* debug.d: Use ANSI C prototypes. Drop &!. Indentation & braces.
41807	* errunix.d: Use ANSI C prototypes.
41808	* errwin32.d: Use ANSI C prototypes.
41809	* misc.d: Drop &!.
41810	* time.d: Whitespace changes.
41811	* predtype.d: Whitespace changes.
41812	* intplus.d: Use ANSI C prototypes.
41813	* intcomp.d: Use ANSI C prototypes.
41814	* intbyte.d: Use ANSI C prototypes.
41815	* intmal.d: Use ANSI C prototypes.
41816	* intdiv.d: Use ANSI C prototypes.
41817	* intgcd.d: Use ANSI C prototypes. Indentation & braces.
41818	* int2adic.d: Use ANSI C prototypes.
41819	* intsqrt.d: Use ANSI C prototypes.
41820	* intprint.d: Use ANSI C prototypes.
41821	* intread.d: Use ANSI C prototypes.
41822	* rational.d: Use ANSI C prototypes. Indentation & braces.
41823	* sfloat.d: Use ANSI C prototypes.
41824	* ffloat.d: Use ANSI C prototypes.
41825	* flo_konv.d: Use ANSI C prototypes.
41826	* flo_rest.d: Nop.
41827	* realelem.d: Nop.
41828	* realrand.d: Use ANSI C prototypes.
41829	* realtran.d: Use ANSI C prototypes. Indentation & braces.
41830	* compelem.d: Use ANSI C prototypes. Indentation & braces.
41831	* comptran.d: Use ANSI C prototypes. Indentation & braces.
41832	* foreign.d: Drop &!.
41833	* unixaux.d: Use ANSI C prototypes.
41834
418352003-10-26  Bruno Haible  <bruno@clisp.org>
41836
41837	Make DEBUG_GCSAFETY work with generational GC.
41838	* spvw_heap.d (old_new_pointer_t): Change type of field 'o' to
41839	gcv_object_t.
41840
418412003-10-27  Bruno Haible  <bruno@clisp.org>
41842
41843	Make DEBUG_GCSAFETY work with g++ 3.3.x.
41844	* utils/varbrace.d (SPLIT_OBJECT_INITIALIZATIONS): New macro.
41845	(next_token): Split 'object' and 'chart' initializations inside macro
41846	definitions.
41847	(convert): Split 'object' and 'chart' initializations outside macro
41848	definitions.
41849	* lispbibl.d (INIT_SUBR_TAB, INIT_SYMBOL_TAB, INIT_OBJECT_TAB): Do not
41850	define when using g++ 3.3 with DEBUG_GCSAFETY.
41851	* intmal.d (FN_fak_I): Convert fakul_table to a table of uintL.
41852
418532003-10-25  Bruno Haible  <bruno@clisp.org>
41854
41855	Followup to 2003-08-28 patch.
41856	* subr.d (LISPFUN_D): Pass additional argument to subr_argtype().
41857
418582003-10-25  Bruno Haible  <bruno@clisp.org>
41859
41860	Portability to Solaris cc. Do not assume more than ANSI C.
41861	* lispbibl.d (with_saved_back_trace): Use ANSI C syntax for
41862	initializing a 'struct backtrace_t' on the stack.
41863	* spvw.d (main): Likewise.
41864	* debug.d (driver, break_driver): Likewise.
41865
418662003-10-25  Bruno Haible  <bruno@clisp.org>
41867
41868	Restore the behaviour of "make init" and "make allc".
41869	* makemake.in (init): Do not depend on modprep.fas.
41870	(clean3): Clean modprep.fas here...
41871	(clean5): ... not here.
41872
418732003-10-24  Bruno Haible  <bruno@clisp.org>
41874
41875	* spvw_debug.d (nobject_out1): Make it compile when TYPECODES are used.
41876
418772003-10-24  Bruno Haible  <bruno@clisp.org>
41878
41879	* stdbool.h.in: Update from gnulib.
41880	2003-08-11  Bruno Haible  <bruno@clisp.org>
41881		* stdbool_.h (_Bool): Undo last change; instead use a negative
41882		enum value to ensure that _Bool promotes to int. Use #define
41883		for _Bool when using the Solaris C compiler. Adds comments
41884		suggested by Paul Eggert.
41885	2003-08-03  Paul Eggert  <eggert@twinsun.com>
41886		* stdbool_.h (_Bool): Make it signed char, instead of
41887		an enum type, so that it's guaranteed to promote to int.  See:
41888		<http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
41889
418902003-10-23  Bruno Haible  <bruno@clisp.org>
41891
41892	BeOS portability.
41893	* configure: Gracefully recover if "ulimit -s" does not work. (On BeOS
41894	this command returns an empty string and exits with return code 2.)
41895	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time): Enclose in
41896	#ifdef. Avoids link error due to missing getsockopt() on BeOS.
41897	(SOCKET-OPTIONS): Enclose each comparison in #ifdef.
41898
418992003-10-22  Sam Steingold  <sds@gnu.org>
41900
41901	fix bug#177: unbound WITH-DIR-KEY-OPEN params
41902	* install.lisp: use-package "LDAP"
41903
419042003-10-22  Christophe Rhodes  <csr21@cam.ac.uk>
41905	    Sam Steingold  <sds@gnu.org>
41906
41907	* defstruct.lisp (ds-make-defsetfs): put DEFSTRUCT-WRITER
41908	property whenever we do DEFSETF (i.e., COMPILE EVAL LOAD)
41909
419102003-10-19  Sam Steingold  <sds@gnu.org>
41911
41912	* w32shell.c (real-path): avoid gcc -Wall warnings
41913
419142003-10-18  Sam Steingold  <sds@gnu.org>
41915
41916	* complete.lisp (completion): when completing in a case-sensitive
41917	package, do not fold case
41918	* constsym.d, subr.d (package_case_sensitive_p): add
41919	* init.lisp (package-case-sensitive-p): export
41920	* package.d (package-case-sensitive-p): implement
41921
419222003-10-16  Sam Steingold  <sds@gnu.org>
41923
41924	* modules/bindings/win32/win32.lisp (MAX_PATH): new constant
41925	(GetModuleFileNameA, GetModuleHandleA): new functions
41926	(RIGHTS, PROCESS, EWX, GR_OBJECTS): new enum types
41927	(handle, dword): new types
41928	(GetCurrentProcess, GetCurrentThread, GetCurrentProcessId)
41929	(CloseHandle, OpenProcess, ExitWindowsEx, GetGuiResources)
41930	(GetConsoleTitleA, SetConsoleTitleA): new functions
41931
419322003-10-14  Sam Steingold  <sds@gnu.org>
41933
41934	* stream.d (buffered_nextbyte): return -1 only when no_hang
41935	(listen_char_buffered): pass no_hang=true to buffered_nextbyte()
41936	(low_fill_buffered_handle): listen_status defaults to ls_eof
41937
419382003-10-11  Sam Steingold  <sds@gnu.org>
41939
41940	* stream.d (low_fill_buffered_handle): set
41941	BufferedStream_have_eof_p to true when result is 0
41942	(buffered_nextbyte): use BufferedStream_have_eof_p instead of
41943	errno to determine whether the i/o is blocked
41944	[this is better than what was before - at least it builds on both
41945	unix and win32 - but I am still not sure that it DTRT]
41946
419472003-10-11  Sam Steingold  <sds@gnu.org>
41948
41949	* win32aux.d, win32.d (sock_write): accept no_hang
41950
419512003-10-11  Sam Steingold  <sds@gnu.org>
41952
41953	fix a bug in READ-BYTE-SEQUENCE :NO-HANG T on unbuffered
41954	streams whereby the first byte is eaten and returned last
41955	* stream.d (UnbufferedStream_pop_all): new function
41956	(low_read_array_unbuffered_handle): use it after
41957	low_listen_unbuffered_handle() which can add to bytebuf
41958	Reported by Basim Al-Shaikhli <bacilo@gmx.net> in
41959	<http://article.gmane.org/gmane.lisp.clisp.general/7619>
41960	<https://sourceforge.net/p/clisp/mailman/message/11011083/>
41961
419622003-10-11  Sam Steingold  <sds@gnu.org>
41963
41964	* makemake.in (clisp.h): check that the typedef sizes in clisp.h
41965	and lispbibl.d are the same
41966	* genclisph.d: when supplied an argument, create a test file to
41967	check that the typedef sizes in clisp.h and lispbibl.d are the same
41968
419692003-10-10  Sam Steingold  <sds@gnu.org>
41970
41971	* reploop.lisp (break-loop): bind *FASOUTPUT-STREAM* to NIL
41972	* compiler.lisp (c-EVAL-WHEN): bind *FASOUTPUT-STREAM* to NIL
41973	around evaluation of COMPILE-P FORM
41974	This ensures that when the compiler is called from the break loop
41975	or from the EVAL-WHEN/COMPILE, it does not assume that a LOAD
41976	will happen before the code it generates is executed.
41977	Reported by Don Cohen <don-sourceforge@isis.cs3-inc.com>
41978	<http://article.gmane.org/gmane.lisp.clisp.devel/10566o>
41979	<https://sourceforge.net/p/clisp/mailman/message/12563174/>
41980
419812003-10-09  Sam Steingold  <sds@gnu.org>
41982
41983	* amiga.d, amigaaux.d, win32.d, win32aux.d (full_write):
41984	use write_helper()
41985	(write_helper): accept no-hang
41986
419872003-10-09  Sam Steingold  <sds@gnu.org>
41988
41989	* compiler.lisp (const-value-safe): enforce that CONST-VALUE is
41990	invalid when CONST-HORIZON is :FORM
41991	(anode-constant-value, c-FUNCTION, traverse-anode)
41992	(traverse-anode): use it instead of CONST-VALUE
41993	(const-index, make-const-code, traverse-anode):
41994	keep using CONST-VALUE where appropriate!
41995	(in-same-function-p): remove unused function
41996
419972003-10-07  Sam Steingold  <sds@gnu.org>
41998
41999	* genclisph.d (sarray_, sbvector_, sstring_): fix (no uintL length)
42000
420012003-10-07  Sam Steingold  <sds@gnu.org>
42002
42003	* modules/clx/new-clx/clx.f (funcall1): new shortcut function
42004	(get_angle, SET-DISPLAY-AFTER-FUNCTION, DISPLAY-DEFAULT-SCREEN)
42005	(VISUAL-INFO, SET-GCONTEXT-DASHES, SET-GCONTEXT-CLIP-MASK)
42006	(GCONTEXT-CLIP-MASK, DRAW-POINTS, DRAW-LINES, DRAW-SEGMENTS)
42007	(DRAW-RECTANGLES, DRAW-ARCS, PUT-IMAGE, OPEN-FONT, FONT-PATH)
42008	(SET-FONT-PATH, FREE-COLORS, QUERY-COLORS, STORE-COLORS, ATOM-NAME)
42009	(CHANGE-PROPERTY, ROTATE-PROPERTIES, PROCESS-EVENT, EVENT-LISTEN)
42010	(GLOBAL-POINTER-POSITION, INPUT-FOCUS, POINTER-MAPPING)
42011	(QUERY-KEYMAP, SET-SCREEN-SAVER, LIST-EXTENSIONS, QUERY-EXTENSION)
42012	(SHAPE-VERSION, SHAPE-COMBINE, READ-FILE-TO-PIXMAP): use it;
42013	also, try to initialize Display when declaring it
42014
420152003-10-05  Bruno Haible  <bruno@clisp.org>
42016
42017	* utils/ccmp2c.c: Reorder.
42018
42019	* utils/ccmp2c.c: Use GNU coding style. Emit code in GNU coding style.
42020	Assume <stdlib.h> correctly declares exit().
42021
42022	Enhance ccmp2c with ability to emit line numbers.
42023	* utils/ccmp2c.c (line_number): New variable.
42024	(get_line): Increment line_number.
42025	(emit_literal): Add argument lineno. Emit lineno as second argument
42026	of TEXT_addstring if the argument string represents a complete line
42027	from input source file. Otherwise use 0 as second argument.
42028	(emit_expansion): Add argument lineno.
42029	(main): Emit code to parse command line arguments, recognizing -l,
42030	-i INFILENAME, -o OUTFILENAME. Emit code to generate #line information
42031	if desired. Initialize line_number.
42032	* modules/clx/new-clx/Makefile.in (clx.e): Generate with line number
42033	information.
42034	(clx.c): Drop bogus #line 1 "clx.f".
42035
420362003-10-01  Don Cohen  <don-sourceforge@isis.cs3-inc.com>
42037	    Sam Steingold  <sds@gnu.org>
42038
42039	WRITE-BYTE-SEQUENCE now accepts :NO-HANG keyword argument
42040	* genclisph.d (write_byte_array): update the prototype
42041	(write_helper): replaces full_write()
42042	* lispbibl.d (write_byte_array): ditto
42043	* gray.lisp (stream-write-byte-sequence): accept :NO-HANG
42044	* subr.d, subrkw.d (write_byte_sequence): ditto
42045	* sequence.d (WRITE-BYTE-SEQUENCE): ditto [FIXME: need
42046	write_byte_will_hang_p()!]
42047	* stream.d (wr_by_array_Pseudofun, wr_by_array_*)
42048	(strm_unbuffered_extrafields_t/low_write_array): accept no_hang
42049	* unix.d (write_helper): prototype
42050	(full_write, safe_write): define using write_helper()
42051	* unixaux.d (write_helper): implement
42052	(sock_write): accept no_hang
42053	* modules/syscalls/calls.c (copy_file_low): use write_helper()
42054	instead of full_write()
42055	* modules/bindings/glibc/linux.lisp (write-helper): new
42056	(write): macro calling write-helper, just like with read
42057
420582003-10-02  Bruno Haible  <bruno@clisp.org>
42059
42060	* utils/comment5.c: Use '/*' instead of '/*' inside comments,
42061	to avoid gcc warning “"/*" within comment”.
42062
420632003-10-02  Bruno Haible  <bruno@clisp.org>
42064
42065	* utils/ansidecl.d (main): Do not miss to return an error code if the
42066	last write on stdout fails.
42067	* utils/ccmp2c.c (main): Likewise.
42068	* utils/comment5.c (main): Do not miss to return an error code if the
42069	last write to outfile fails.
42070	* utils/varbrace.d (main): Likewise.
42071
420722003-10-01  Bruno Haible  <bruno@clisp.org>
42073
42074	Assume some more POSIX functions are properly declared.
42075	* m4/gethostname.m4 (CL_GETHOSTNAME): Remove prototype check.
42076	* m4/mprotect.m4 (CL_MPROTECT): Remove prototype check.
42077	* m4/readlink.m4 (CL_READLINK): Remove prototype check.
42078	* m4/read-write.m4: Remove file.
42079	* m4/shmat.m4: Remove file.
42080	* m4/shm-rmid.m4 (CL_SHM_RMID): Use void* instead of RETSHMATTYPE.
42081	* m4/shm.m4 (CL_SHM): Do not require CL_SHMAT.
42082	* m4/signal.m4 (CL_SIGPROCMASK): Remove macro.
42083	* m4/stat.m4 (CL_FSTAT, CL_STAT): Remove macros.
42084	(CL_LSTAT): Remove prototype check.
42085	* m4/termios.m4 (CL_TERM): Remove tcsetattr prototype check.
42086	* configure.in: Remove invocations of CL_SIGPROCMASK, CL_FSTAT,
42087	CL_STAT, CL_READ_WRITE, CL_WRITE.
42088	* unix.d: Comment out declarations of mprotect(), sigprocmask(),
42089	sigemptyset(), sigaddset(), readlink(), stat(), lstat(), fstat(),
42090	read(), write(), tcgetattr(), tcsetattr(), tcdrain(), tcflush(),
42091	gethostname().
42092	(read_helper): Use ssize_t instead of RETRWTYPE. Use void* instead
42093	of RW_BUF_T. Use size_t instead of RW_SIZE_T.
42094	(full_write): Likewise. Use const instead of WRITE_CONST.
42095	* amiga.d (RW_BUF_T): Remove definition. Use void* instead.
42096	* amigaaux.d: Use void* instead of RW_BUF_T.
42097	* acorn.d (RETRWTYPE): Remove definition. Use ssize_t instead.
42098	(RW_BUF_T): Remove definition. Use void* instead.
42099	(RW_SIZE_T): Remove definition. Use size_t instead.
42100	(WRITE_CONST): Remove definition.
42101	* msdos.d (RW_BUF_T): Remove definition. Use void* instead.
42102	(RETRWTYPE): Remove definition. Use ssize_t instead.
42103	(RW_SIZE_T): Remove definition. Use size_t instead.
42104	(WRITE_CONST): Remove definition.
42105	* win32.d (RW_BUF_T, GETHOSTNAME_SIZE_T, MPROTECT_CONST): Remove
42106	macros.
42107	* unixaux.d (read_helper): Use ssize_t instead of RETRWTYPE.
42108	Use void* instead of RW_BUF_T. Use size_t instead of RW_SIZE_T.
42109	(full_write): Likewise. Use const instead of WRITE_CONST.
42110	(sock_write): Use const instead of WRITE_CONST.
42111	* socket.d: Comment out declaration of gethostname().
42112	* spvw_memfile.d: Use void* instead of RW_BUF_T.
42113	* spvw_mmap.d (mprotect): Drop MPROTECT_CONST.
42114
421152003-10-01  Bruno Haible  <bruno@clisp.org>
42116
42117	Improve support for large off_t and large ino_t.
42118	* configure.in: Check size of 'ino_t'.
42119	* lispbibl.d (UQ_to_I): Declare also if sizeof(ino_t) > 4.
42120	* intelem.d (UQ_to_I): Define also if sizeof(ino_t) > 4.
42121	* pathname.d (with_stat_info): Use UQ_to_I to convert st_size to a
42122	Lisp object if sizeof(off_t) > 4.
42123	(directory_search_hashcode): Use UQ_to_I to convert st_ino to a Lisp
42124	object if sizeof(ino_t) > 4.
42125	* spvw_memfile.d (loadmem_from_handle): Do not cast down st_size to
42126	32 bits.
42127
421282003-09-30  John Hinsdale  <hin@alma.com>
42129
42130	* modules/oracle/oracle.lisp: Fix bug that leaks connections
42131
421322003-09-30  Bruno Haible  <bruno@clisp.org>
42133
42134	Support for files larger than 2 GB or 4 GB on platforms with LFS.
42135	* configure.in: Invoke AC_SYS_LARGEFILE. Check size of 'off_t'.
42136	* lispbibl.d (UQ_to_I, I_to_UQ): Declare also if sizeof(off_t) > 4.
42137	* intelem.d (UQ_to_I, I_to_UQ): Define also if sizeof(off_t) > 4.
42138	(UQ_to_I): Fix to make it work when sizeof(oint) < sizeof(uint64).
42139	* stream.d (uoff_t): New type.
42140	(uoff_t_to_I, I_to_uoff_t, uoff_t_p): New macros.
42141	(strm_buffered_extrafields_t): Change type of buffstart and
42142	position to uoff_t.
42143	(strm_i_buffered_extrafields_t): Change type of eofposition to uoff_t.
42144	(handle_lseek): Change the result to off_t.
42145	(position_file_buffered): Change argument type to uoff_t.
42146	(sync_file_buffered): Use uoff_t where appropriate.
42147	(position_file_i_buffered): Change argument type to uoff_t.
42148	(logical_position_file): Likewise.
42149	(logical_position_file_end, make_file_stream)
42150	(buffered_flush_everything, finish_output_buffered):
42151	Use uoff_t where appropriate.
42152	(FILE-POSITION): Use uoff_t_to_I and I_to_uoff_t.
42153	(FILE-LENGTH): Use uoff_t_to_I.
42154	* spvw_memfile.d (memflags): Add a bit to denote whether file
42155	streams store a 64-bit or 32-bit file position.
42156
421572003-09-30  Bruno Haible  <bruno@clisp.org>
42158
42159	* spvw_heap.d (Heap): Change type of memfile_offset to off_t.
42160	* spvw_memfile.d (savemem, loadmem_from_handle): Use off_t where
42161	appropriate.
42162	* spvw_fault.d (handle_mmap_fault, selfmade_mmap): Change type of
42163	'offset' argument to off_t.
42164
421652003-09-30  Bruno Haible  <bruno@clisp.org>
42166
42167	* stream.d (SOCKET-OPTIONS): Avoid warnings from ansidecl.
42168
421692003-09-29  Sam Steingold  <sds@gnu.org>
42170
42171	* foreign.d (update_library): avoid an infinite loop
42172	Reported by Roland Averkamp <roland.averkamp@gmx.de>
42173
421742003-09-29  Sam Steingold  <sds@gnu.org>
42175
42176	* encoding.d (init_dependent_encodings): use ASCII for
42177	*FOREIGN-ENCODING* when argv_encoding_foreign is not 1:1
42178	Reported by Douglas Philips <dgou@mac.com>
42179
421802003-09-26  Sam Steingold  <sds@gnu.org>
42181
42182	fix bug#175: "Occurred in SIMPLIFY at AT-END"
42183	* compiler.lisp (simplify): handle empty codelist
42184
421852003-09-26  Sam Steingold  <sds@gnu.org>
42186
42187	* configure.in: add AC_COPYRIGHT and AC_REVISION (sugar)
42188	check for --with-readline and --without-readline and run
42189	CL_READLINE only if readline was not disabled by the user
42190
421912003-09-25  Sam Steingold  <sds@gnu.org>
42192
42193	* unix.d (NO_BLOCK_DECL): new macro
42194	(START_NO_BLOCK, END_NO_BLOCK): do not open/close block {}
42195	* stream.d (listen_handle): update
42196	Suggested by Don Cohen <don-sourceforge@isis.cs3-inc.com>
42197
421982003-09-24  John Hinsdale  <hin@alma.com>
42199
42200	* modules/oracle/oracle.lisp: connection retry logic
42201	* makemake.in: syntax error in variable definition
42202
422032003-09-24  Sam Steingold  <sds@gnu.org>
42204
42205	readline is now used on Cygwin/X11
42206	* stream.d (stdio_same_tty_p): extracted from make_terminal_stream_()
42207	use ttyname(stdin)=ttyname(stdout) on cygwin
42208	(make_terminal_stream_): use it
42209
422102003-09-23  Sam Steingold  <sds@gnu.org>
42211
42212	* init.lisp (load) [:COMPILING]: bind *ERROR-COUNT* *WARNING-COUNT*
42213	*STYLE-WARNING-COUNT* like in WITH-COMPILATION-UNIT
42214	* compiler.lisp (match-known-unknown-functions): do not try to
42215	print source location when it is not available
42216
422172003-09-22  Sam Steingold  <sds@gnu.org>
42218
42219	* unix.d (SHUT_RD, SHUT_WR, SHUT_RDWR): define when not defined
42220	* makemake.in (encflags) [!UNICODE]: void
42221	* utils/modprep.lisp (modprep) [!UNICODE]: no :external-format
42222	Reported by Don Cohen <don-sourceforge@isis.cs3-inc.com>
42223
422242003-09-19  Sam Steingold  <sds@gnu.org>
42225
42226	* unix.d (START_NO_BLOCK, END_NO_BLOCK): new macros
42227	* stream.d (listen_handle): use them
42228
422292003-09-17  Sam Steingold  <sds@gnu.org>
42230
42231	* compiler.lisp (f-side-effect): NOTINLINE ==> seclass (t . t)
42232	* clos.lisp (%make-gf): seclass is (t . t) because a generic
42233	function can always signal a NO-APPLICABLE-METHOD error
42234	(std-add-method, std-remove-method): since seclass is (t . t),
42235	disable the CLOSURE-SET-SECLASS call
42236
422372003-09-17  Sam Steingold  <sds@gnu.org>
42238
42239	* makemake.in: respect LDFLAGS
42240	Mac OS X (Darwin) is a BINARY_DISTRIB system
42241
422422003-09-16  Sam Steingold  <sds@gnu.org>
42243
42244	* genclisph.d (string_to_asciz, TheAsciz): enabled
42245	for Dan Stanger's gdi module
42246
422472003-09-15  Sam Steingold  <sds@gnu.org>
42248
42249	* modules/clx/new-clx/clx.f (grab_to_object): new function
42250	(GRAB-POINTER, GRAB-KEYBOARD): use it
42251	(xlib_error_handler): ise ELT for sequences, not AREF
42252	include <string.h> to avoid some warnings
42253
422542003-09-15  Sam Steingold  <sds@gnu.org>
42255
42256	* stream.d (SOCKET-OPTIONS): old systems might not have
42257	SO_RCVLOWAT, SO_SNDLOWAT, SO_RCVTIMEO, SO_SNDTIMEO
42258
422592003-09-13  Sam Steingold  <sds@gnu.org>
42260
42261	* makemake.in (setup.hint, cygwin.README) [cygwin]: new targets
42262
422632003-09-13  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42264
42265	Fix msvc distrib
42266	* makemake.in: do not incude rules unexecutable by msvc nmake
42267	(makemake, unixconf.h, Makefile, config.status, VERSION)
42268	Do not create base and full directories for msvc distrib
42269	Call it differently (clisp-x.xx-msvc-win32.zip)
42270	Use find -exec for chmod to avoid problems in cygwin
42271	Call rm -rf directly (RMRF=-del, inappropriate)
42272
422732003-09-12  Sam Steingold  <sds@gnu.org>
42274
42275	* version.h: reinstated for the sake of non-autoconf platforms
42276
422772003-09-11  Sam Steingold  <sds@gnu.org>
42278
42279	* modules/bindings/glibc/linux.lisp (scalb, scalbf): commented out
42280	because they do not compile on either RedHat or Debian
42281
422822003-09-10  Sam Steingold  <sds@gnu.org>
42283
42284	* debug.d (print_back_trace): do not confuse backtrace with prompts
42285
422862003-09-09  Sam Steingold  <sds@gnu.org>
42287
42288	* genclisph.d (constobj): include at compile time (like subr &
42289	constsym), not at "run time" (clisp.h does not include constobj)
42290	Reported by Fred Cohen <fc@all.net>
42291
422922003-09-09  Bruno Haible  <bruno@clisp.org>
42293
42294	* unix.d (nonintr_open): Add const to first argument.
42295	* unixaux.d (nonintr_open): Likewise.
42296
422972003-09-05  Sam Steingold  <sds@gnu.org>
42298
42299	* makemake.in (distrib) [cygwin]: create cygwin package
42300
423012003-09-05  Wolfgang Jenkner  <wjenkner@inode.at>
42302	    Sam Steingold  <sds@gnu.org>
42303
42304	* m4/address.m4, m4/closedir.m4, m4/filecharset.m4, m4/ioctl.m4:
42305	* m4/mprotect.m4, m4/shm-rmid.m4, m4/shm.m4, m4/shmat.m4:
42306	eliminated prototypes for better portability
42307
423082003-09-04  Sam Steingold  <sds@gnu.org>
42309
42310	* spvw.d: do not include version.h
42311	(usage, main/--version, version_string/AMIGA):
42312	use PACKAGE_NAME & PACKAGE_BUGREPORT
42313	* misc.d (LISP-IMPLEMENTATION-VERSION): use
42314	O(lisp_implementation_package_version) instead of
42315	O(lisp_implementation_version_number_string) and
42316	O(lisp_implementation_version_date_string)
42317	* makemake.in: remove version.h
42318	* constobj.d (lisp_implementation_package_version):
42319	init to PACKAGE_VERSION
42320	(lisp_implementation_version_date_string)
42321	(lisp_implementation_version_number_string): remove
42322	* configure.in (AC_INIT): the master version is now here,
42323	not in version.h
42324	* version.h: remove
42325	* FILES.1: update
42326	* Makefile.devel (src/VERSION): depend on configure, not version.h
42327
423282003-09-04  Sam Steingold  <sds@gnu.org>
42329
42330	* describe.lisp (describe-object) [SOCKETS]: handle SOCKET-SERVER
42331	Reported by John K. Hinsdale <hin@alma.com>
42332	* genclisph.d (Atype_32Bit): export for gdi (Dan Stanger)
42333
423342003-09-03  Sam Steingold  <sds@gnu.org>
42335
42336	* makemake.in (distrib) [win32]: distribute both base and full
42337	(uninstall): RMRF lispdocdir & lisplibdir
42338	(linkkit): add exporting.lisp & modprep.lisp
42339
423402003-09-02  Sam Steingold  <sds@gnu.org>
42341
42342	* version.h: 2.31 is released
42343
423442003-09-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42345
42346	* pathname.d (init_launch_streamarg, make_launch_pipe):
42347	now defined on UNIX || RISCOS || WIN32_NATIVE.
42348	(interpret_launch_priority): new local helper function.
42349	(LAUNCH): UNIX and Windows versions merged.
42350	* constobj.d (type_priority): now keyword or fixnum.
42351	* constsym.d: define LAUNCH keywords on systems where it builds.
42352
423532003-09-01  Sam Steingold  <sds@gnu.org>
42354
42355	* error.d (check_fpointer) [FOREIGN]: moved here from foreign.d
42356	* foreign.d (check_fpointer): moved to error.d
42357	* lispbibl.d (check_fpointer) [FOREIGN]: prototype
42358	* genclisph.d (check_fpointer): conditionalize on FOREIGN
42359	* modules/regexp/regexi.c [!FOREIGN]: error (FOREIGN is required)
42360	Reported by Douglas Philips <dgou@mac.com>
42361
423622003-08-31  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42363
42364	* lispbibl.d (INVALID_HANDLE_VALUE) [!WIN32_NATIVE]: new macro.
42365	(HNULLP):new macro.
42366	* pathname.d (handle_dup): use new macros.
42367	(init_launch_streamarg, make_launch_pipe) [UNIX || RISCOS]:
42368	new helper functions.
42369	(LAUNCH) [UNIX || RISCOS]: use all of it, do not do HANDLE=NULL
42370	according to Sam's suggestion.
42371
423722003-08-30  John Hinsdale  <hin@alma.com>
42373
42374	* intelem.d: Fix bug#157: Floating point numbers
42375	printed incorrectly - gcc -O/-g bug?
42376
423772003-08-30  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42378
42379	* stream.d (wr_ch_window) [WIN32_NATIVE]: explicit typecast.
42380	(stream_lend_handle): allow pipe-streams.
42381
423822003-08-29  Sam Steingold  <sds@gnu.org>
42383
42384	* modules/syscalls/posix.lisp (make-file-stat):
42385	fix the typo in the signature
42386	* modules/syscalls/configure.in: check for <shlobj.h>
42387	* modules/syscalls/link.sh.in (NEW_LIBS): add win32-specific
42388	libraries only when needed
42389	Reported by Douglas Philips <dgou@mac.com>
42390
423912003-08-29  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42392
42393	* subr.d, subrkw.d (LAUNCH): add kw arguments element-type,
42394	external-format, buffered.
42395	* constsym.d (PIPE): new keyword. LAUNCH keywords moved out of
42396	HAVE_SHELL.
42397	* stream.d (mkops_from_handles, mkips_from_handles): new global
42398	functions to make pipe-streams.
42399	* pathname.d (mkpipe): new local functions.
42400	(LAUNCH) [WIN32_NATIVE, UNIX || RISCOS]: use new functions to
42401	create pipe - streams.
42402
424032003-08-28  Sam Steingold  <sds@gnu.org>
42404
42405	* spvw.d (subr_argtype): accept additional argument for better
42406	error reporting
42407	(init_subr_tab_1): when initializing modules, pass subr_initdata
42408	to subr_argtype()
42409	still no error reporting for FSUBRs and main CLISP SUBRs because
42410	we cannot print symbols before encodings have been initialized.
42411
424122003-08-28  Sam Steingold  <sds@gnu.org>
42413
42414	* time.d (get_run_time) [TIME_UNIX]: when HZ is not defined, use
42415	CLK_TCK or CLOCKS_PER_SECOND.
42416	Reported by Prut Flut <prutflut@m-net.arbornet.org> (NetBSD)
42417
424182003-08-27  Sam Steingold  <sds@gnu.org>
42419
42420	* utils/modprep.lisp: merged in signature emulation from e2d.c
42421	* Makefile.devel (CONFIG_H_IN): add clx/new-clx/config.h.in
42422	* modules/clx/new-clx/config.h.in: new file
42423	* modules/clx/new-clx/Makefile.in: use modprep instead of e2d.c
42424	* modules/clx/new-clx/e2d.c: remove
42425	* modules/clx/new-clx/configure.in: check for XGetAtomNames()
42426	* modules/clx/new-clx/clx.f: converted to standard C and modprep.lisp
42427	* genclisph.d: export much stuff necessary for new-clx
42428	* spvw_sigpipe.d (disable_sigpipe): new function for new-clx
42429
424302003-08-27  John Hinsdale <hin@alma.com>
42431	* modules/oracle/README, oracle.lisp - More documentation
42432
424332003-08-26  Sam Steingold  <sds@gnu.org>
42434
42435	* control.d (MACROLET): fix a GC-safety bug
42436	* condition.lisp (define-condition): return name, as per ANSI
42437
424382003-08-26  Sam Steingold  <sds@gnu.org>
42439
42440	* makemake.in (modular): do not depend on exporting, modprep, clisp.h
42441	(anymodule): depend on exporting, modprep, clisp.h
42442
424432003-08-25  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42444
42445	* utils/comment5.c (main): handle '# ' in traditional comments.
42446	* makemake.in : do not treat pathname.d specially.
42447
424482003-08-23  Sam Steingold  <sds@gnu.org>
42449
42450	* makemake.in (MODULESDIR, MODULESDIR_, MODULESDIR_M): new vars
42451	(exporting.fas): depend on ${MODULESDIR_M}exporting.lisp, not the link
42452	(modular): depend on clisp.h
42453	* configure: do not link plain files in modules (exporting will
42454	picked up from here); link modules/* directories even when
42455	building without FFI because many modules (regexp, syscalls,
42456	dirkey, clx/new-clx) do not require FFI
42457
424582003-08-22  Sam Steingold  <sds@gnu.org>
42459
42460	* init.lisp (defun): reverted the 2003-08-12 patch: cannot parse
42461	the signature at macroexpand time, FUNCTION should see it first
42462	for proper error reporting
42463
424642003-08-21  Sam Steingold  <sds@gnu.org>
42465
42466	* utils/modprep.c: rewrote in lisp
42467	* modules/regexp/regexi.c (REGEXP-COMPILE): pass a subr instead
42468	of a symbol to FINALIZE (supported by modprep.lisp)
42469
424702003-08-20  Sam Steingold  <sds@gnu.org>
42471
42472	* compiler.lisp (create-fun-obj, c-LOAD-TIME-VALUE): use
42473	*fasoutput-stream* instead of *compiling-from-file* to check
42474	whether the constant will be read before being evaluated
42475	- necessary for the recent COMPILE-FORM-IN-TOPLEVEL-ENVIRONMENT change
42476	Reported by Douglas Philips <dgou@mac.com> in
42477	<http://article.gmane.org/gmane.lisp.clisp.general/7393>
42478	<https://sourceforge.net/p/clisp/mailman/message/11010681/>
42479
424802003-08-18  Sam Steingold  <sds@gnu.org>
42481
42482	* defs1.lisp (set-logical-pathname-translations): missing slots
42483	default to :WILD, as per ANSI CL
42484	* pathname.d (MAKE-LOGICAL-PATHNAME): upcase host
42485	(host_match, nametype_match_aux, subdir_match, version_match)
42486	(version_diff, translate_subdir, translate_version):
42487	merge identical LOGICAL and PHYSICAL code
42488	(translate_nametype_aux): do not replace NIL with ""
42489
424902003-08-17  Sam Steingold  <sds@gnu.org>
42491
42492	* makemake.in (XCFLAGS) [darwin]: remove `--traditional-cpp'
42493	Reported by Douglas Philips <dgou@mac.com> in
42494	<http://article.gmane.org/gmane.lisp.clisp.devel/10282>
42495	<https://sourceforge.net/p/clisp/mailman/message/12562528/>
42496
424972003-08-15  Sam Steingold  <sds@gnu.org>
42498
42499	MATCH structure is now printable readably
42500	* modules/regexp/regexi.c (REGEXP-EXEC): use MAKE-MATCH-BOA
42501	* modules/regexp/regexp.lisp (match): define a keyword
42502	constructor too
42503
425042003-08-15  Sam Steingold  <sds@gnu.org>
42505
42506	* modules/netica/wrap.lisp (make-node): specify placement
42507	(node-info): show parents and children
42508	(with-open-dne-file): new macro
42509	(read-net): new function
42510	* modules/netica/netica.lisp (GetNodeExpectedValue_bn)
42511	(GetNodeVisPosition_bn): fix declarations
42512	* modules/netica/demo.lisp: specify placement
42513
425142003-08-15  Sam Steingold  <sds@gnu.org>
42515
42516	* io.d (pr_orecord): print logical pathnames as namestrings (when
42517	printing un-readably and ANSI "host:path" is enabled)
42518
425192003-08-14  Sam Steingold  <sds@gnu.org>
42520
42521	* defmacro.lisp (analyze1): match lambda-list to argument strictly
42522
425232003-08-14  Sam Steingold  <sds@gnu.org>
42524
42525	ANSI compliance: macro definitions respects the lexical environment
42526	* defmacro.lisp (make-macro-expander): accept the second argument
42527	- the current lexical environment
42528	* compiler.lisp (insert-combined-LAPs): avoid ANSI-"undefined" code
42529	* control.d (aktenv_to_stack): new function, extracted from ...
42530	(compile_eval_form): call aktenv_to_stack()
42531	(MACROLET): pass aktev as the second argument to MAKE-MACRO-EXPANDER
42532
425332003-08-14  Sam Steingold  <sds@gnu.org>
42534
42535	* modules/netica/wrap.lisp (adjust-number-of-states): new function
42536	(GetNodeLevels): new wrapper
42537	(error-message, node-info): use ENUM-FROM-VALUE
42538	(net-info): call GetNetNodes and print all nodes
42539	(make-node): allow setting levels and creating continuous nodes
42540	(save-net): call TRANSLATE-LOGICAL-PATHNAME before NAMESTRING
42541	* modules/netica/demo.lisp: call net-info
42542	* modules/netica/netica.lisp: fix some declarations
42543
425442003-08-13  Sam Steingold  <sds@gnu.org>
42545
42546	You can now map between numeric and symbolic C enum values using
42547	functions FFI:ENUM-FROM-VALUE and FFI:ENUM-TO-VALUE
42548	* foreign1.lisp (enum-from-value, enum-to-value): new functions
42549	(def-c-enum): save the value -> constant name map in a hash-table
42550
425512003-08-13  Sam Steingold  <sds@gnu.org>
42552
42553	do FUNCTION-CODES lookup at load time: a change in FUNCTION-CODES
42554	means a change in FUNTAB, i.e., all FAS recompilation anyway
42555	* compiler.lisp (CALLS-code-fun): new macro
42556	(c-FNODE-FUNCTION, c-FUNCTION, insert-combined-LAPs): use it
42557
425582003-08-13  Bruno Haible  <bruno@clisp.org>
42559
42560	* arilev1e.d (and_test_loop_up, test_loop_up): Change return type from
42561	'bool' to 'int', for compatibility with the existing assembly code.
42562	* arilev1c.d (and_test_loop_up, test_loop_up): Likewise.
42563	* arilev1i.d (and_test_loop_up, test_loop_up): Likewise.
42564	Reported by Russ Ross <rgr22@cl.cam.ac.uk>.
42565
425662003-08-12  Sam Steingold  <sds@gnu.org>
42567
42568	* modules/dirkey/dirkey.c, modules/syscalls/calls.c:
42569	* modules/regexp/regexi.c (misc_encoding, pathname_encoding):
42570	use GLO to pick the user changes to *MISC-ENCODING*
42571	and *PATHNAME-ENCODING* at run time
42572	* genclisph.d (object_tab): enabled
42573
425742003-08-12  Sam Steingold  <sds@gnu.org>
42575
42576	* compiler.lisp (c-write-lib): do not write constants; unwrap PROGN
42577	* init.lisp (LAMBDA-LIST-TO-SIGNATURE) [!COMPILER]: dummy definition
42578	(defun): call LAMBDA-LIST-TO-SIGNATURE at macroexpand time
42579	(%expand-macro): new function
42580	(%expand-form): use it
42581
425822003-08-11  Sam Steingold  <sds@gnu.org>
42583
42584	* modules/netica/wrap.lisp (*license*): new variable
42585	(start-netica): license is a keyword parameter
42586	(*features*): push :netica
42587
425882003-08-11  Sam Steingold  <sds@gnu.org>
42589
42590	* calls.c (STREAM-LOCK): add begin_system_call()/end_system_call()
42591
425922003-08-10  Arseny Slobodjuck  <ampy@ich.dvo.ru>
42593
42594	* pathname.d (nullfile): new local function.
42595	(LAUNCH): take NIL stream as /dev/nul.
42596
425972003-08-07  John Hinsdale <hin@alma.com>
42598
42599	* oracle.lisp, fastcgi.lisp, fastcgi.h, linux.lisp:
42600	Take "C" prototypes from standard headers, not FFI
42601
426022003-08-07  Sam Steingold  <sds@gnu.org>
42603
42604	LOAD :COMPILING T: handle errors just like with COMPILE-FILE
42605	* init.lisp (load): bind compiler::*c-error-output*;
42606	when *load-compiling*, call compiler::c-reset-globals before loading
42607	and compiler::c-report-problems after loading
42608	* compiler.lisp (compile-lambda-helper): extracted from compile-lambda
42609	(compile-lambda, compile-form-in-toplevel-environment): call it
42610
426112003-08-07  Sam Steingold  <sds@gnu.org>
42612
42613	track the current source file consistently
42614	* init.lisp (*current-source-file*): new variable
42615	(load): bind it
42616	(check-redefinition): use it instead of a complicated combination
42617	of *load-truename* & *compile-file-truename*
42618	* compiler.lisp (compile-file): bind it
42619
426202003-08-07  Sam Steingold  <sds@gnu.org>
42621
42622	* foreign.d (FOREIGN-FREE): make the freed function invalid
42623
426242003-08-07  Sam Steingold  <sds@gnu.org>
42625
42626	properly update pointers to dynamic objects
42627	* foreign.d (object_handle): extracted from object address()
42628	(foreign_libraries): keep the objects imported from the library
42629	(update_library, push_foreign_object): new functions
42630	(FOREIGN-LIBRARY, validate_fpointer): call update_library()
42631	(FOREIGN-LIBRARY-VARIABLE, FOREIGN-LIBRARY-FUNCTION):
42632	call push_foreign_object()
42633
426342003-08-07  Sam Steingold  <sds@gnu.org>
42635
42636	regexp module does not use FFI - 25% speedup
42637	* modules/regexp/preload.lisp: new file
42638	* modules/regexp/link.sh.in: preload it, do not look for regexp.c
42639	* modules/regexp/regexp.lisp: remove FFI forms
42640	* modules/regexp/regexi.c (REGEXP-COMPILE, REGEXP-EXEC)
42641	(REGEXP-FREE): implement here
42642	* foreign.d (check_fpointer): replaces fehler_fpointer_invalid()
42643	* genclisph.d (posfixnum, negfixnum, sfixnum, fp_validp)
42644	(check_fpointer): export
42645
426462003-08-06  Sam Steingold  <sds@gnu.org>
42647
42648	add a bindings/win32 module with a couple of rudimentary functions
42649
426502003-08-06  Sam Steingold  <sds@gnu.org>
42651
42652	* configure: link all modules/* files, not just directories
42653	* modules/exporting.lisp: new file, abstracted from linux.lisp
42654	* makemake.in: compile exporting.lisp
42655	* modules/bindings/glibc/linux.lisp, modules/netica/netica.lisp:
42656	* modules/postgresql/postgresql.lisp: load exporting.lisp
42657
426582003-08-06  Sam Steingold  <sds@gnu.org>
42659
42660	remove obsolete module linuxlibc5 and rename linuxlibc6 to glibc
42661
426622003-08-06  Sam Steingold  <sds@gnu.org>
42663
42664	Unified modules postgresql632 and postgresql642 into postgresql
42665	* Makefile.devel: use implicit rules for configure and config.h.in
42666	(CONFIGURES, CONFIG_H_IN): add postgresql
42667
426682003-08-06  Sam Steingold  <sds@gnu.org>
42669
42670	the netica demo now works just fine
42671	* modules/netica/demo.lisp: use DEFPARAMETER
42672	* modules/netica/wrap.lisp (null-pointer): remove (use NIL instead)
42673	(check-errors): use CERROR
42674	(make-net): set comment and title
42675	(net-info, node-info): new functions
42676	(make-node): fix the SetNodeProbs_bn call
42677	(make-node-wrapper): new build-time macro
42678	(GetNodeBeliefs, GetNodeExpectedUtils, GetNodeLikelihood)
42679	(GetNodeProbs): new low-level wrappers defined with it
42680	(save-net): fix file type merging
42681	* modules/netica/netica.lisp (MAX_PARENT, MAX_STATE): remove
42682	(GetNodeBeliefs_bn, GetNodeExpectedUtils_bn, SetNodeProbs_bn)
42683	(GetNodeLevels_bn, GetNodeProbs_bn): fix declarations
42684
426852003-08-06  Sam Steingold  <sds@gnu.org>
42686
42687	* modules/regexp/regexi.c (mregexec): new function
42688	* modules/regexp/regexp.lisp (num-matches, regexec): remove
42689	(mregexec): replaces regexec
42690	(regexp-exec): return an arbitrary number of matches, not limited
42691	by num-matches
42692
426932003-08-05  Sam Steingold  <sds@gnu.org>
42694
42695	* foreign.d (convert_from_foreign): treat NULL as NIL
42696	(convert_to_foreign): treat NIL as NULL
42697	* foreign1.lisp (foreign-address-null): remove
42698	* deprecated.lisp (deprecate): export from the home package
42699	(foreign-address-null): deprecated
42700
427012003-08-05  Sam Steingold  <sds@gnu.org>
42702
42703	* misc.d (MODULE-INFO): argument `O' returns a copy of
42704	O(foreign_libraries)
42705	(environ) [!HAVE_DECL_ENVIRON]: declare
42706	* m4/putenv.m4 (CL_PUTENV): check for environ
42707
427082003-08-05  Sam Steingold  <sds@gnu.org>
42709
42710	* foreign1.lisp (DEF-C-VAR, DEF-CALL-OUT): do not call NOTE-C-VAR
42711	and NOTE-C-FUN for dynamic objects
42712
427132003-08-04  Sam Steingold  <sds@gnu.org>
42714
42715	extended dynamic object loading from AMIGAOS to WIN32_NATIVE & POSIX
42716	* m4/dynload.m4 (CL_DYNLOAD): use AC_SEARCH_LIBS
42717	* constobj.d (foreign_libraries): define
42718	* constsym.d, subr.d (foreign_library, foreign_library_variable)
42719	(foreign_library_function): add
42720	* foreign.d (FOREIGN-LIBRARY, FOREIGN-LIBRARY-VARIABLE):
42721	(FOREIGN-LIBRARY-FUNCTION): extended to win32 & posix
42722	* foreign1.lisp (def-c-var, def-call-out): add :LIBRARY option
42723	* makemake.in (LIBDL): absorbed into LIBS
42724	* unix.d (dlopen, dlsym, dlclose, dlerror): remove prototypes
42725
427262003-08-02  Wolfgang Jenkner <wjenkner@inode.at>
42727	    Sam Steingold  <sds@gnu.org>
42728
42729	* condition.lisp (assert): fix bug a whereby two adjacent
42730	ASSERTs would redefine ASSERT-RESTART-PROMPT and thus use the
42731	same closure when in fact they are prompting for different places
42732
427332003-08-02  Sam Steingold  <sds@gnu.org>
42734
42735	use system-wide regex implementation when it is available
42736	* modules/regexp/regexi.c: include <regex.h>, not "regex.h"
42737	* modules/regexp/link.sh.in: rename from link.sh
42738	* modules/regexp/configure.in: AC_SUBST REGEX_O&REGEX_H
42739	* modules/regexp/Makefile.in: use REGEX_O&REGEX_H
42740
427412003-08-02  Sam Steingold  <sds@gnu.org>
42742
42743	* modules/wildcard/wildcard.lisp: #include <fnmatch.h>
42744	* modules/regexp/regexp.lisp (*output-c-functions*)
42745	(*output-c-variables*): set to T
42746
427472003-08-02  Sam Steingold  <sds@gnu.org>
42748
42749	* unixconf.h.in: generated by autoheader now
42750	* c++-bool.m4, cc-char-unsigned.m4, cc-elif.m4, cc-error.m4:
42751	* cc-mergestrings.m4, chdir.m4, chmod.m4, endian.m4, execl.m4:
42752	* execv.m4, fcntl.m4, fsync.m4, ftime.m4, getenv.m4, getpwnam.m4:
42753	* getpwuid.m4, localtime.m4, memset.m4, mkdir.m4, opendir.m4:
42754	* rename.m4, rmdir.m4, setitimer.m4, setlocale.m4, strerror.m4:
42755	* strlen.m4, structtm.m4, sys_errlist.m4, ualarm.m4, unistd.m4:
42756	* unlink.m4, usleep.m4, vfork.m4: remove files that only define
42757	*_CONST or something similar
42758	* unix.d: remove some duplicate prototypes
42759
427602003-08-02  John Hinsdale <hin@alma.com>
42761
42762	* modules/oracle/orafns.c, oracle.lisp, oiface.h:
42763	support access to Oracle's BLOB/CLOB data types
42764
427652003-08-01  Sam Steingold  <sds@gnu.org>
42766
42767	new module for interface to netica <http://norsys.com/netica_c_api.htm>
42768	* modules/netica: new directory
42769
427702003-08-01  Sam Steingold  <sds@gnu.org>
42771
42772	* calls.c (FILE-LOCK): ported to win32;
42773	use fcntl(2) instead of flock(2) on UNIX;
42774	allow locking section of the file
42775
427762003-08-01  Stefan Kain  <stefan.kain@freenet.de>
42777
42778	* realelem.d: translated all comments
42779
427802003-07-31  Sam Steingold  <sds@gnu.org>
42781
42782	* stream.d (open_file_stream_handle): use ChannelStream_ihandle()
42783	* genclisph.d (OS_filestream_error): export
42784
427852003-07-31  Sam Steingold  <sds@gnu.org>
42786
42787	these days *.h files contain good prototypes - do not duplicate them
42788	* foreign1.lisp (*output-c-functions*, *output-c-variables*):
42789	new variables, default to NIL
42790	(finalize-coutput-file): do not write *FUNCTION-LIST* (resp.
42791	*VARIABLE-LIST*) to *COUTPUT-STREAM* when
42792	*OUTPUT-C-FUNCTIONS* (resp. *OUTPUT-C-VARIABLES*) is NIL
42793
427942003-07-31  Sam Steingold  <sds@gnu.org>
42795
42796	* misc.d (GETENV, clisp_setenv): use `environ', not win32-specific
42797	API, but declare `environ' outside the function scope for mingw/g++
42798
427992003-07-30  Sam Steingold  <sds@gnu.org>
42800
42801	* modules/syscalls/calls.c: all *-INTERNAL functions
42802	call structure BOA constructors (thus they are not INTERNAL)
42803	* modules/syscalls/posix.lisp: all structures have BOA
42804	constructors, remove the wrappers
42805
428062003-07-30  Sam Steingold  <sds@gnu.org>
42807
42808	* genclisph.d (charp): enabled
42809	* modules/syscalls/calls.c (FILE-INFO, MAKE-SHORTCUT)
42810	(SHORTCUT-INFO) [WIN32_NATIVE, UNIX_CYGWIN32]: new functions
42811	* modules/syscalls/posix.lisp (file-info, shortcut-info)
42812	[WIN32_NATIVE, UNIX_CYGWIN32]: new structures
42813	* install.bat: run the full linking set
42814	* install.lisp: create a shortcut
42815
428162003-07-29  Sam Steingold  <sds@gnu.org>
42817
42818	* genclisph.d (to_time_t_) [UNIX_CYGWIN32]: export
42819	* modules/dirkey/dirkey.c (to_time_t_) [UNIX_CYGWIN32]: moved to...
42820	* unixaux.d (to_time_t_) [UNIX_CYGWIN32]: here
42821
428222003-07-29  Sam Steingold  <sds@gnu.org>
42823
42824	* spvw.d (main): when non-interactive, guard LOAD for "-i" with
42825	SYS::BATCHMODE-ERRORS to avoid infinite loop on error
42826
428272003-07-28  Sam Steingold  <sds@gnu.org>
42828
42829	pushSTACK(listof()) and STACK_1=listof() are illegal because
42830	listof() (and vectorof() &c) modify the STACK,
42831	so the whole expression becomes undefined!
42832	* control.d (SET): avoid undefined expressions
42833	* array.d (test_displaced, ADJUST-ARRAY): ditto
42834	* eval.d (interpret_bytecode_): ditto
42835	* pathname.d (directory_search_scandir): ditto
42836	* socket.d (SOCKET-SERVICE-PORT): ditto
42837
428382003-07-28  Stefan Kain  <stefan.kain@freenet.de>
42839
42840	* flo_rest.d: translated all comments
42841
428422003-07-28  Sam Steingold  <sds@gnu.org>
42843
42844	* pathname.d (directory_search) [WIN32_NATIVE]: save some consing
42845	(directory_search_scandir) [WIN32_NATIVE]: fix a GC-safety bug:
42846	use O(lnk_string) instead of allocating a new string each time
42847	* constobj.d (lnk_string) [WIN32_NATIVE]: new string
42848
428492003-07-28  Sam Steingold  <sds@gnu.org>
42850
42851	* misc.d (clisp_setenv) [WIN32_NATIVE]: use SetEnvironmentVariable()
42852	(GETENV) [WIN32_NATIVE]: use GetEnvironmentStrings() and
42853	FreeEnvironmentStrings() instead of the fictitious `environ' global
42854	(push_envar): new function, extracted from GETENV
42855
428562003-07-28  Sam Steingold  <sds@gnu.org>
42857
42858	* encoding.d, stream.d, socket.d, misc.d, win32aux.d:
42859	fix g++/mingw compilation
42860
428612003-07-27  Sam Steingold  <sds@gnu.org>
42862
42863	* genclisph.d, encoding.d (cstombs_f, cslen_f) [!UNICODE]: macros
42864	* modules/dirkey/dirkey.c: undef UNICODE before including clisp.h;
42865	no need for *_encoding without CLISP_UNICODE
42866	* modules/syscalls/calls.c: define WINVER before including clisp.h;
42867	no need for *_encoding without CLISP_UNICODE
42868
428692003-07-27  Sam Steingold  <sds@gnu.org>
42870
42871	* modules/syscalls/configure.in: check for signgam
42872	* modules/syscalls/calls.c (LGAMMA): use the check
42873
428742003-07-26  Sam Steingold  <sds@gnu.org>
42875
42876	* modules/syscalls/calls.c, pathname.d (hardlink_file, symlink_file):
42877	moved from pathname.d to calls.c
42878	* genclisph.d (Symbol_name, builtin_stream_p): enabled
42879	fix the HANDLE problems
42880
428812003-07-26  Sam Steingold  <sds@gnu.org>
42882
42883	* Makefile.devel (CONFIGURES): add config.h.in in wildcard,
42884	regexp, dirkey and syscall, use autoheader to generate them
42885	* m4/cc-void.m4 (RL_VOID): fix the AC_DEFINE call
42886
428872003-07-25  Sam Steingold  <sds@gnu.org>
42888
42889	Converted syscall to a module
42890	* Makefile.devel (CONFIGURES): add syscalls
42891	* configure, makemake.in (--with-dir-key): remove option
42892	* modules/syscalls: new directory
42893	* genclisph.d: add some stuff to support syscalls
42894	* constobj.d, constpack.d, constsym.d, pathname.d, socket.d:
42895	* spvw.d, stream.d, subr.d, subrkw.d: remove syscall-specific stuff
42896	* pathname.d (if_does_not_exist_symbol, if_exists_symbol): add
42897	* socket.d (addr_to_string, resolve_host1, resolve_host): add
42898	* stream.d (file_stream_truename, open_file_stream_handle): add
42899	* posix.lisp, posixmath.d, posixmisc.d: remove
42900
429012003-07-25  Sam Steingold  <sds@gnu.org>
42902
42903	* utils/modprep.c: DEFUN can specify side-effect-class
42904
429052003-07-25  Sam Steingold  <sds@gnu.org>
42906
42907	* error.d (check_posfixnum): new function
42908	* io.d (PPRINT-INDENT): use check_real()
42909	* lisparit.d (fehler_not_N): replace with check_number()
42910	(fehler_not_R): replace with check_real()
42911	(fehler_not_F): replace with check_float()
42912	(fehler_not_RA): replace with check_rational()
42913	(fehler_not_I): replace with check_integer()
42914	(to_double, to_int): new functions for modules
42915	made these changes pervasive in the whole file
42916	* lispbib.d (fehler_not_R): replace with check_real()
42917	(check_posfixnum): declared
42918
429192003-07-24  Sam Steingold  <sds@gnu.org>
42920
42921	* genclisph.d (SAFETY): export
42922	(type_data_object): fix (now fixnum() works)
42923	(svector_): fix (now TheSvector()->data works)
42924	(symbolp): uncomment
42925	(stringp): fix
42926	(array_displace_check): replaces iarray_displace_check()
42927	* dirkey.c (SET-DKEY-VALUE): use array_displace_check() instead
42928	of iarray_displace_check(); many cosmetic tweaks
42929	* spvw_debug.d (nobject_out1): handle structures and fpointers
42930
429312003-07-23  Sam Steingold  <sds@gnu.org>
42932
42933	Converted dirkey to a module
42934	* constobj.d, constpack.d, constsym.d, defs1.lisp, describe.lisp:
42935	* init.lisp, io.d, lispbibl.d, predtype.d, spvw.d, subr.d:
42936	* subrkw.d, type.lisp: remove dirkey-specific stuff
42937	* Makefile.devel (CONFIGURES): add dirkey, oracle, fastcgi
42938	* configure, makemake.in (--with-dir-key): remove option
42939	* encoding.d (cslen_f, cstombs_f): new functions that enable
42940	with_string_0() in modules
42941	* genclisph.d: enabled a LOT of stuff to support dirkey
42942	* modules/dirkey: new directory
42943	* dirkey.d, dirkey1.lisp: remove
42944
429452003-07-23  Sam Steingold  <sds@gnu.org>
42946
42947	* lispbibl.d (reset): update the prototype
42948	* eval.d (reset): accept count arg
42949	* control.d (UNWIND-TO-DRIVER): use reset() for everything
42950	* spvw_alloca.d (memfile): update reset() call
42951	* spvw_allocate (error_speicher_voll): ditto
42952	* spvw.d (SP_ueber, STACK_ueber): ditto
42953	* error.d (INVOKE-DEBUGGER): ditto
42954	* debug.d (break_driver): ditto
42955
429562003-07-23  Sam Steingold  <sds@gnu.org>
42957
42958	* record.d (fehler_record_length): fix stack
42959
429602003-07-21  Sam Steingold  <sds@gnu.org>
42961
42962	* _clisp.c (main): use shell_quote() and real_path()
42963	for CreateProcess()
42964	* w32shell.c: new file (extracted from pathname.d)
42965	* makemake.in (clisp) [WIN32_NATIVE]: put the icon into the
42966	executable; depend on w32shell.c
42967	(pathname.o) [WIN32_NATIVE]: depend on w32shell.c
42968	* pathname.d, spvw_memfile.d [WIN32_NATIVE]:
42969	rename TrueName() to real_path()
42970
429712003-07-18  Sam Steingold  <sds@gnu.org>
42972
42973	* condition.lisp (check-value): CONTINUE :INTERACTIVE
42974	ASSERT-RESTART-NO-PROMPTS to avoid infinite loops
42975
429762003-07-16  Sam Steingold  <sds@gnu.org>
42977
42978	* makemake.in (.gdbinit): substitute ${LEXE} for .run on w32
42979	(lisp.a): do not use lisp.o on w32 because it leads to a crash on
42980	the first statement in main() (when built --with-debug)
42981
429822003-07-16  Sam Steingold  <sds@gnu.org>
42983
42984	* spvw.d (SP_ueber, STACK_ueber): flush stderr and guard fputs()
42985	and fflush() with begin_system_call()/end_system_call()
42986
429872003-07-15  John Hinsdale <hin@alma.com>
42988
42989	* modules/oracle/orafns.c,oracle.lisp: support access to
42990	Oracle's LONG, RAW and LONG RAW data types
42991
429922003-07-10  Sam Steingold  <sds@gnu.org>
42993
42994	* comptran.d (N_sin_N, N_cos_N): fix GC-safety bugs
42995
429962003-07-10  Sam Steingold  <sds@gnu.org>
42997
42998	* error.d (check_fdefinition): handle :CONTINUE restart from
42999	check_value()
43000	* condition.lisp (check-value): permit :CONTINUE restart when the
43001	place is (FDEFINITION ...)
43002
430032003-07-09  Sam Steingold  <sds@gnu.org>
43004
43005	* errwin32.d (OS_error, OS_file_error, SOCK_error):
43006	avoid a warning by calling NOTREACHED at the end
43007
430082003-07-08  Sam Steingold  <sds@gnu.org>
43009
43010	* configure: pass --win32gcc to makemake instead of ${target}
43011	* makemake.in: rely on autoconf for win32gcc
43012
430132003-07-08  Sam Steingold  <sds@gnu.org>
43014
43015	* predtype.d (equalp): fix a crash in (EQUALP '(0 1) '(#P""))
43016
430172003-07-08  Sam Steingold  <sds@gnu.org>
43018
43019	* m4/filecharset.m4: avloid ":" on __MINGW32__
43020	just like we do with __CYGWIN32__
43021
430222003-07-08  Sam Steingold  <sds@gnu.org>
43023
43024	* compiler.lisp (c-MAP-on-CARs, c-MAP-on-LISTs): fix the
43025	2003-02-09 patch: avoid bytecode duplication
43026
430272003-07-03  Sam Steingold  <sds@gnu.org>
43028
43029	* makemake.in (testsuite): pass LEXE to make in suite
43030
430312003-07-02  Sam Steingold  <sds@gnu.org>
43032
43033	* control.d (PROCLAIM): fix STACK indexing for CONSTANT-(NOT)INLINE
43034
430352003-07-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43036
43037	* pathname.d (directory_namestring_parts) [WIN32_NATIVE,
43038	PATHNAME_UNIX]: include host parts.
43039	(whole_namestring): do not call host_namestring_parts when
43040	directory_namestring_parts includes it.
43041	(assure_dir_exists) [WIN32_NATIVE]: fix bugs.
43042	(assure_dir_exists) [PATHNAME_UNIX]: do not insert host parts.
43043
430442003-07-01  Sam Steingold  <sds@gnu.org>
43045
43046	* describe.lisp (describe1): better whitespace for documentation
43047
430482003-06-25  Sam Steingold  <sds@gnu.org>
43049
43050	* spvw_debug.d (nobject_out1): accept third argument `level'
43051	(nobject_out): pass 5 as the level to avoid circularity problems
43052
430532003-06-24  Sam Steingold  <sds@gnu.org>
43054
43055	* spvw_circ.d (get_circ_unmark, get_circ_mark): handle
43056	Rectype_Weakpointer separately
43057
430582003-06-24  Sam Steingold  <sds@gnu.org>
43059
43060	* spvw_debug.d (nobject_out1): new function, extracted from
43061	nobject_out() to do all the recursive work
43062	(nobject_out): call it; now nobject_out() does fflush() and
43063	begin_system_call()/end_system_call() just once
43064
430652003-06-23  Sam Steingold  <sds@gnu.org>
43066
43067	* lispbibl.d (alloca) [UNIX_CYGWIN32]: use __builtin_alloca()
43068
430692003-06-19  Sam Steingold  <sds@gnu.org>
43070
43071	* type.lisp (canonicalize-type): canonicalize (VECTOR NIL) correctly
43072	* predtype.d (CLASS-OF): handle (ARRAY NIL) correctly
43073	* describe.lisp (describe-object): report (ARRAY NIL)
43074	as having no storage
43075	* io.d (pr_array): print (ARRAY NIL NIL) properly
43076
430772003-06-19  Sam Steingold  <sds@gnu.org>
43078
43079	add (SETF WEAK-POINTER-VALUE)
43080	* spvw_garcol.d (gar_col_normal): when the value of the weak
43081	pointer is GC-invariant, remove it from O(all_weakpointers)
43082	* lispbibl.d (weakpointer_broken_p): depend on wp_value (not wp_cdr)
43083	* record.d (mk_weakpointer): wp_cdr for GC-invariant values is unbound
43084	(MAKE-WEAK-POINTER, WEAK-POINTER-P, WEAK-POINTER-VALUE): fix seclass
43085	(check_weak_pointer): new function
43086	(WEAK-POINTER-VALUE): use it
43087	(%SET-WEAK-POINTER-VALUE): implement
43088	* constsym.d, subr.d (set_weak_pointer_value): add
43089	* places.lisp (WEAK-POINTER-VALUE): add defsetf
43090
430912003-06-15  Sam Steingold  <sds@gnu.org>
43092
43093	* spvw.d (main) [WIN32_NATIVE]: permit `-K'
43094	clisp-link.sh now works on mingw
43095
430962003-06-13  Sam Steingold  <sds@gnu.org>
43097
43098	* stream.d (make_file_stream): do not push :PROBE streams onto
43099	O(open_files) because that would prevent deleting this file and
43100	:PROBE streams do not have to be closed anyway
43101
431022003-06-13  Sam Steingold  <sds@gnu.org>
43103
43104	* makemake.in [win32gcc]: build lisp.a on mingw and do stage
43105	comparison (make check) unix-style, not dos-style
43106	* configure [cygwin/mingw]: work around the _WinMain@16 libcharset
43107	problem with --enable-shared=no;  this is a FIXME for Bruno
43108
431092003-06-13  Sam Steingold  <sds@gnu.org>
43110
43111	* pathname.d (TrueName) [WIN32_NATIVE]: return bool; made global;
43112	fix a bug with overwriting "nameout" string with "resolved"
43113	(cpslashp): new macro, used throughout the file
43114	* spvw_memfile.d (loadmem) [WIN32_NATIVE]: use TrueName() to
43115	resolve possible symbolic links
43116	* lispbibl.d (TrueName): add a prototype
43117
431182003-06-12  Sam Steingold  <sds@gnu.org>
43119
43120	* makemake.in: on win32gcc, translate /cygdrive/ prefixes to the
43121	normal win32 pathnames (so that clisp.exe would work properly)
43122	(stage): use the same check for defining ${LN_S} to copy and
43123	for using it as a copier (as opposed to symbolic linker)
43124
431252003-06-12  Sam Steingold  <sds@gnu.org>
43126
43127	* pathname.d (simplify_directory): fold "*" into :WILD
43128	and "**" into :WILD-INFERIORS
43129	(subdir_diff): ignore logical
43130	(directory_list_valid_p): accept :WILD
43131
431322003-06-08  Sam Steingold  <sds@gnu.org>
43133
43134	* io.d (check_readtable): new function, replaces function
43135	fehler_readtable() and macro check_readtable()
43136	(COPY-READTABLE): modified accordingly
43137	(SET-SYNTAX-FROM-CHAR): ditto, also
43138	use check_char() instead of fehler_char()
43139	(test_readtable_arg, test_readtable_null_arg, test_nontermp_arg):
43140	accept an argument instead of using popSTACK()
43141	(SET-MACRO-CHARACTER, GET-MACRO-CHARACTER, SET-READTABLE-CASE)
43142	(MAKE-DISPATCH-MACRO-CHARACTER, SET-DISPATCH-MACRO-CHARACTER)
43143	(GET-DISPATCH-MACRO-CHARACTER, READTABLE-CASE):
43144	modified accordingly, use check_char() instead of fehler_char()
43145
431462003-06-07  Sam Steingold  <sds@gnu.org>
43147
43148	* init.lisp (*suppress-check-redefinition*): new user variable
43149	(check-redefinition): respect it
43150
431512003-06-07  Sam Steingold  <sds@gnu.org>
43152
43153	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgwin32.lisp:
43154	no need to prefix GETENV with "SYS::"
43155	* cfgsunux.lisp, cfgunix.lisp: ditto
43156	(short-site-name): read from uname(1) -n
43157	(long-site-name): read from uname(1) -a
43158
431592003-06-06  Sam Steingold  <sds@gnu.org>
43160
43161	* modules/clx/new-clx/clx.f (get_screen_and_display): fix a typo
43162	use listof() instead of funcall(L(list)) throughout the file
43163	(coerce_result_type): new function, used by all functions that
43164	take a :RESULT-TYPE argument
43165	(coerce_it): remove (it was used inconsistently and
43166	coerce_result_type() is more efficient anyway)
43167	(SCREEN-DEPTHS): fix a crash due to not pushing the visual info
43168	lists on the stack (they were just discarded!)
43169
431702003-06-06  Sam Steingold  <sds@gnu.org>
43171
43172	* encoding.d (CONVERT-STRING-FROM-BYTES): fix a bug in handling
43173	of indirect byte vectors
43174	Reported by Adam Warner <lists@consulting.net.nz>
43175
431762003-06-06  Will Newton  <will@misconception.org.uk>
43177
43178	* modules/clx/new-clx/clx.f: fix the build with gcc 3.3,
43179	which has some changes with respect to multi-line strings
43180
431812003-06-06  Bruno Haible  <bruno@clisp.org>
43182
43183	* clos.lisp (analyze-method-description): Call %call-next-method
43184	even if there is no next method.
43185	(%call-next-method): When there is no next method, call
43186	%no-next-method here.
43187
431882003-06-05  Sam Steingold  <sds@gnu.org>
43189
43190	* predtype.d (TYPE-OF): return KEYWORD for keyword symbols
43191	and BIT for 0 and 1
43192
431932003-06-05  Sam Steingold  <sds@gnu.org>
43194
43195	* pathname.d (LAUNCH) [WIN32_NATIVE]: fix GC-safety
43196
431972003-06-04  Sam Steingold  <sds@gnu.org>
43198
43199	* pathname.d (LAUNCH): :WAIT defaults to T,
43200	return child PID when the :WAIT is NIL
43201
432022003-05-29  Sam Steingold  <sds@gnu.org>
43203
43204	fix bug#170: line number of output streams
43205	* io.d (pr_stream): do not print lineno for output streams
43206	Should we keep both lineno and ch_lpos for all streams?!
43207
432082003-05-25  Sam Steingold  <sds@gnu.org>
43209
43210	* constobj.d (type_packname): include CHARACTER, as per ANSI spec
43211	* charstrg.d (test_radix_arg, test_char_args)
43212	(test_char_args_upcase, test_stringsymchar_arg): recoverable
43213	avoid dotimes*() macro throughout the file
43214	* package.d (test_package_arg): recoverable
43215
432162003-05-24  Sam Steingold  <sds@gnu.org>
43217
43218	* hashtabl.d (HASH-TABLE-COUNT): rehash the argument when it is
43219	weak and invalid because GC could reduce the count
43220
432212003-05-24  Sam Steingold  <sds@gnu.org>
43222
43223	* spvw_debug.d (nobject_out): handle hash tables
43224
432252003-05-24  Sam Steingold  <sds@gnu.org>
43226
43227	* hashtabl.d (rehash): fix an "off by one" bug in user-defined HTs
43228	(hash_lookup): fix a GC-safety bug in user-defined HTs
43229
432302003-05-24  Sam Steingold  <sds@gnu.org>
43231
43232	* pathname.d (stringlist_to_asciizlist): always defined;
43233	fix GC-safety errors
43234	(LAUNCH): return NIL when :WAIT was NIL
43235	[UNIX/RISCOS]: fix GC-safety errors; handle :PRIORITY argument
43236	* unixconf.h.in (HAVE_NICE): add
43237	* configure.in: check for nice(2)
43238
432392003-05-24  Sam Steingold  <sds@gnu.org>
43240
43241	* error.d (check_list): new function
43242	* lispbibl.d (check_list): declare
43243
432442003-05-24  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43245
43246	Concerning the CLHS/Win32 issue.
43247	* pathname.d (shell_quote): remove source_end parameter.
43248	(stringlist_to_asciizlist) [WIN32_NATIVE]: new function.
43249	(LAUNCH) [WIN32_NATIVE,UNIX/RISCOS]: use it.
43250	(SHELL-EXECUTE): new function - a wrapper for ShellExecute.
43251	Shell means GUI shell, not the command.com.
43252	* constsym.d: declared SHELL-EXECUTE in EXT.
43253	* subr.d: ditto.
43254	* win32.d: include <shellapi.h>
43255	* makemake.in: link against shell32.lib
43256	* clhs.lisp (browse-url) [WIN32]: start default browser by default.
43257
432582003-05-24  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43259
43260	* spvw_sigsegv.d (stackoverflow_handler): fix MSVC compilation.
43261
432622003-05-22  Bruno Haible  <bruno@clisp.org>
43263
43264	* spvw_sigsegv.d (stackoverflow_handler): Add support for restoring
43265	STACK on hppa-hpux, alpha-freebsd, i386-openbsd, alpha-netbsd.
43266
432672003-05-22  Bruno Haible  <bruno@clisp.org>
43268
43269	Preliminary support for x86_64 CPU.
43270	* lispbibl.d (AMD64): New macro.
43271	* spvw_page.d: Treat AMD64 like IA64.
43272
432732003-05-22  Sam Steingold  <sds@gnu.org>
43274
43275	* loadform.lisp (make-load-form): do not define a method
43276	specialized to STANDARD-OBJECT - ANS requires an error there
43277
432782003-05-21  Sam Steingold  <sds@gnu.org>
43279
43280	* clos.lisp (no-method-caller): new function
43281	(compute-dispatch): use it instead of calling NO-APPLICABLE-METHOD
43282	directly to avoid funcalling the return value of NO-APPLICABLE-METHOD
43283	(compute-effective-method): ditto for NO-APPLICABLE-METHOD and
43284	NO-PRIMARY-METHOD; remove the loop
43285
432862003-05-21  Sam Steingold  <sds@gnu.org>
43287
43288	* error.d (check_fdefinition): fix stack handling
43289	(check_function): get(sym,ind) may not be a symbol
43290	* eval.d (eval1): do not use apply() after check_fdefinition()
43291
432922003-05-21  Sam Steingold  <sds@gnu.org>
43293
43294	* disassem.lisp (disassemble, disassemble-machine-code): return
43295	NIL, as per ANSI CL spec
43296
432972003-05-21  Sam Steingold  <sds@gnu.org>
43298
43299	MAKE-INSTANCES-OBSOLETE now does nothing except for issuing a
43300	warning: there is no point in obsoleting instances if the class
43301	has not been redefined
43302	* clos.lisp (ensure-class): incf CLASS-ID here
43303	(make-instances-obsolete): do not incf CLASS-ID here
43304
433052003-05-20  Sam Steingold  <sds@gnu.org>
43306
43307	even more errors are now recoverable
43308	* control.d (FUNCTION): use check_funname() and
43309	check_fdefinition() instead of signaling errors
43310	(fehler_undef_function): remove
43311	(SYMBOL-FUNCTION, FDEFINITION): use check_fdefinition()
43312	instead of fehler_undef_function()
43313	(check_setq_body): GC-unsafe due to using
43314	check_symbol_non_constant() instead of test_symbol_non_constant()
43315	(SET, MAKUNBOUND, MULTIPLE-VALUE-SETQ): use
43316	check_symbol_non_constant() instead of test_symbol_non_constant()
43317	(check_varspec): new function
43318	(make_variable_frame, COMPILER-LET): use it, also use
43319	check_symbol_non_constant() instead of test_symbol_non_constant()
43320	(PROGV): progv() is GC-unsafe now
43321	(PROCLAIM): use check_funname() instead of fehler_kein_symbol()
43322	* error.d (fehler_kein_symbol): remove
43323	(check_symbol_non_constant): replaces test_symbol_non_constant()
43324	(check_symbol_special, check_fdefinition): new functions
43325	(check_function): replaces fehler_function()
43326	* eval.d (progv): GC-unsafe due to using
43327	check_symbol_non_constant() instead of test_symbol_non_constant()
43328	(get_closure): use check_symbol_non_constant()
43329	instead of test_symbol_non_constant()
43330	(fehler_undefined): remove
43331	(coerce_function, eval1, apply, funcall): use check_fdefinition()
43332	instead of fehler_undefined()
43333	(interpret_bytecode_) [cod_symbol_function]:
43334	[cod_const_symbol_function, cod_const_symbol_function_push]:
43335	[cod_const_symbol_function_store]:
43336	use check_symbol() and check_fdefinition()
43337	instead of fehler_kein_symbol() and fehler_undefined()
43338	(funcall_iclosure): push arguments on STACK
43339	before calling fehler_key_odd()
43340	* foreign.d (EXEC-ON-STACK, CALL-WITH-FOREIGN-STRING):
43341	use check_function() instead of fehler_function()
43342	* lispbibl.d (progv): documented as GC-unsafe
43343	(fehler_undef_function, fehler_kein_symbol, fehler_function)
43344	(test_symbol_non_constant): remove
43345	(check_symbol_non_constant, check_fdefinition, check_function): add
43346	(COERCE): use check_fdefinition()
43347	instead of fehler_undef_function()
43348	* record.d (MAKE-MACRO, MAKE-FUNCTION-MACRO): use check_function()
43349	instead of fehler_function()
43350	* sequence.d (seq_boolop): ditto
43351	* symbol.d (%PUTD): ditto
43352
433532003-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43354
43355	Solve problems with CLHS and INSPECT on win32
43356	* clhs.lisp (BROWSE-URL): use EXT::LAUNCH on win32.
43357	* runprog.lisp (run-shell-command): do not try to use #\&
43358	on win32.
43359
433602003-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43361
43362	* pathname.d (LAUNCH) [WIN32_NATIVE]: small fixes.
43363	(LAUNCH) [UNIX || RISCOS]: implement for these
43364	systems (like EXECUTE). Moved out of HAVE_SHELL.
43365	* subr.d (LAUNCH): change conditionals for declaration.
43366	* subrkw.d: ditto.
43367	* constsym.d: ditto.
43368
433692003-05-16  Sam Steingold  <sds@gnu.org>
43370
43371	* dribble.lisp (check-dribble-stream): new function
43372	(dribble-stream-source, dribble-stream-target): use it
43373
433742003-05-16  Sam Steingold  <sds@gnu.org>
43375
43376	fix bug#169: describe on unnamed function and on macro
43377	* describe.lisp (describe-object): MACRO:
43378	suggest (DISASSEMBLE (MACRO-FUNCTION ...))
43379	FUNCTION: do not suggest disassembling anonymous function
43380
433812003-05-13  Sam Steingold  <sds@gnu.org>
43382
43383	DEFINE-HASH-TABLE-TEST: user-defined hash table tests
43384	* lispbibl.d (Hashtable): add slots ht_test and ht_hash
43385	(hashtable_test): remove
43386	(ht_test_code): add
43387	(hash_table_test): declare
43388	* hashtabl.d (hashcode5): new function - for user-defined ht_test
43389	(hashcode_raw, hashcode_cook): split out from hashcode()
43390	(hashcode): use them; may trigger GC for user-defined ht_test
43391	(rehash, hash_lookup): may trigger GC for user-defined ht_test
43392	(prepare_resize, check_weak): the error is now recoverable
43393	(hash_prepare_store): use hashcode_raw() and hashcode_cook() to
43394	call the user hash function just once
43395	(MAKE-HASH-TABLE): accept user-defined ht_test
43396	all errors are now recoverable
43397	(fehler_hashtable): replace with check_hashtable()
43398	(shifthash): modified for the GC unsafe hash_lookup()
43399	(hash_table_test): new function
43400	(PUTHASH, REMHASH, MAPHASH, CLRHASH, HASH-TABLE-COUNT)
43401	(HASH-TABLE-REHASH-SIZE, HASH-TABLE-REHASH-THRESHOLD)
43402	(HASH-TABLE-SIZE, HASH-TABLE-TEST, HASH-TABLE-ITERATOR)
43403	(HASH-TABLE-WEAK-P, %SET-HASH-TABLE-WEAK-P, CLASS-TUPLE-GETHASH):
43404	use check_hashtable() instead of fehler_hashtable()
43405	* defs2.lisp (define-hash-table-test): define
43406	* init.lisp (define-hash-table-test): export
43407	* io.d (pr_orecord): use hash_table_test()
43408	* predtype.d (hash_table_equalp): use ht_test_code()
43409
434102003-05-15  Sam Steingold  <sds@gnu.org>
43411
43412	* stream.d (stream_lend_handle): handletype may be NULL
43413	(stream_fd): remove
43414	* lispbibl.d (stream_fd): remove
43415	* pathname.d (FILE-STAT-INTERNAL, copy_attributes_and_close):
43416	use stream_lend_handle() instead of stream_fd()
43417
434182003-05-15  Sam Steingold  <sds@gnu.org>
43419
43420	* stream.d (MAKE-STREAM): implement
43421	* constsym.d, subr.d, subrkw.d (make_stream): add
43422	* init.lisp (MAKE-STREAM): export
43423	* lispbibl.d (stream_lend_handle): declared
43424
434252003-05-15  Jörg Höhle  <hoehle@users.sourceforge.net>
43426
43427	* modules/bindings/linuxlibc6/linux.lisp [LINUX]: several fixes
43428	(errno, putpwent, c-struct group): fixed
43429	(getpwent, fgetpwent, getpwuid, getpwnam): return c-ptr-null
43430	(getgrent, fgetgrent, getgrgid, getgrnam): return c-ptr-null
43431	(readdir): return c-ptr-null
43432	(seed48): fix arg, but extern prototyping is still broken
43433
434342003-05-14  Sam Steingold  <sds@gnu.org>
43435
43436	stdio handles are now duped before being inserted into LISP
43437	streams, so they are never closed on user request
43438	* stream.d (handle_to_stream): new function
43439	(make_standard_input, make_standard_output): new macro
43440	(make_terminal_io, init_standard_io): use them
43441	(init_streamvars): use handle_to_stream()
43442
434432003-05-14  Sam Steingold  <sds@gnu.org>
43444
43445	* pathname.d (handle_dup): new global function
43446	(LAUNCH, DUPLICATE-HANDLE): use it
43447	* lispbibl.d (handle_dup1): new macro
43448
434492003-05-14  Sam Steingold  <sds@gnu.org>
43450
43451	* constobj.d (type_priority) [WIN32_NATIVE]: add
43452	* pathname.d (LAUNCH) [WIN32_NATIVE]: use it (GC-safety bug fix!)
43453	(allocate_cons_v): remove
43454	* error.d (fehler_key_odd): fix a GC-safety bug
43455
434562003-05-14  Bruno Haible  <bruno@clisp.org>
43457
43458	* compiler.lisp: BLOCK-OPEN and TAGBODY-OPEN not only have
43459	undefined values, but invalidate value1 due to consing!
43460	(traverse-anode): clear the current known value (*current-value*
43461	and *current-vars*) when encountering BLOCK-OPEN or TAGBODY-OPEN
43462
434632003-05-13  Jörg Höhle  <hoehle@users.sourceforge.net>
43464
43465	* foreign.d (FOREIGN-SIZE): remove unreferenced function
43466
434672003-05-12  Sam Steingold  <sds@gnu.org>
43468
43469	* lispbibl.d (check_uint8, check_sint8, check_uint16, check_sint16)
43470	(check_uint32, check_sint32, check_uint64, check_sint64, check_uint)
43471	(check_sint, check_ulong, check_slong, check_ffloat, check_dfloat):
43472	functions returning the correct argument
43473	(fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
43474	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64)
43475	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong)
43476	(fehler_ffloat, fehler_dfloat): remove
43477	* error.d (fehler_uint8, fehler_sint8, fehler_uint16, fehler_sint16)
43478	(fehler_uint32, fehler_sint32, fehler_uint64, fehler_sint64)
43479	(fehler_uint, fehler_sint, fehler_ulong, fehler_slong)
43480	(fehler_ffloat, fehler_dfloat): replace with check_*()
43481	* genclisph.d (...): ditto
43482	* stream.d (rd_by_array_dummy): use check_uint8()
43483	instead of fehler_uint8()
43484	* foreign.d (OFFSET, FOREIGN-LIBRARY, FOREIGN-LIBRARY-VARIABLE):
43485	use check_sint32() correctly
43486	(check_library): replaces test_library()
43487
434882003-05-12  Sam Steingold  <sds@gnu.org>
43489
43490	* type.lisp (built-in-class-p): eval only when loading source
43491	* clos.lisp (built-in-class-p): do not proclaim notinline
43492
434932003-05-12  Sam Steingold  <sds@gnu.org>
43494
43495	* pathname.d (MERGE-PATHNAMES): fix a crash: the address
43496	of the LHS may be computed before a GC in merge_dirs()
43497	[this is a GC-safety bug not detected by DEBUG_GCSAFETY]
43498
434992003-05-12  Jörg Höhle  <hoehle@users.sourceforge.net>
43500
43501	* pathname.d (DYNLOAD-MODULES): more error checking
43502
435032003-05-12  Jörg Höhle  <hoehle@users.sourceforge.net>
43504
43505	* foreign1.lisp (exec-with-foreign-string): new internal function
43506	to let FFI:WITH-FOREIGN-STRING to expand the same with or without
43507	unicode.
43508	* foreign.d (call_with_foreign_string): fix --without-unicode
43509
435102003-05-09  Sam Steingold  <sds@gnu.org>
43511
43512	function-name error can now be recovered from
43513	* error.d (fehler_funname_source, fehler_funname_type): merged
43514	into check_funname()
43515	(fehler_key_odd, fehler_key_notkw, fehler_key_badkw): add
43516	* lispbibl.d (fehler_funname_source, fehler_funname_type):
43517	replace with check_funname()
43518	(fehler_key_odd, fehler_key_notkw, fehler_key_badkw): declare
43519	* control.d (FUNCTION, FLET, LABELS): use check_funname()
43520	instead of fehler_funname_source()
43521	(funname_to_symbol): use check_funname()
43522	instead of fehler_funname_type()
43523	* eval.d (eval1): use check_funname()
43524	instead of fehler_funname_source()
43525	(apply, funcall): use check_funname()
43526	instead of fehler_funname_type()
43527	(fehler_key_unpaarig, fehler_key_notkw, fehler_key_badkw): remove
43528	(check_for_illegal_keywords): accept an additional caller arg
43529	* record.d (fehler_key_odd): remove
43530	(keyword_test): use fehler_key_notkw() and fehler_key_badkw()
43531	* trace.lisp (check-function-name): replaces error-function-name
43532	(check-traceable): modified to use check-function-name
43533	* clos.lisp (documentation): ditto
43534	* cmacros.lisp (compiler-macro-function): ditto
43535
435362003-05-09  Sam Steingold  <sds@gnu.org>
43537
43538	* type.lisp (%the): ANSI compliance: following issue 348, ignore
43539	discrepancies between the number of values and types
43540
435412003-05-09  Sam Steingold  <sds@gnu.org>
43542
43543	* compiler.lisp (compile-toplevel-form): do not write the result
43544	of (COMPILE ... NIL) into the FAS files (e.g., (eval-when (eval))
43545	should not produce any test in the FAS file)
43546
435472003-05-09  Jörg Höhle  <hoehle@users.sourceforge.net>
43548
43549	* inspect.lisp (with-http-output): fix --without-unicode
43550	to send Content-type: text/html without charset.
43551
435522003-05-07  Sam Steingold  <sds@gnu.org>
43553
43554	* encoding.d (ENCODING-LINE-TERMINATOR): new function
43555	* init.lisp (ENCODING-LINE-TERMINATOR): exported from EXT
43556	* constsym.d, subr.d (encoding_line_terminator): add
43557
435582003-05-07  Sam Steingold  <sds@gnu.org>
43559
43560	replace fehler_encoding() with check_encoding()
43561	* error.d (check_encoding): new function, based on
43562	test_external_format_arg() in stream.d
43563	(fehler_encoding): remove
43564	* lispbibl.d (check_encoding, fehler_encoding): ditto
43565	* foreign.d (CALL-WITH-FOREIGN-STRING): use check_encoding()
43566	instead of fehler_encoding()
43567	* encoding.d (CHARSET-TYPEP, ENCODING-CHARSET, CHARSET-RANGE)
43568	(SET-DEFAULT-FILE-ENCODING, SET-PATHNAME-ENCODING)
43569	(SET-TERMINAL-ENCODING, SET-FOREIGN-ENCODING, SET-MISC-ENCODING)
43570	(CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES): ditto
43571	* stream.d (test_external_format_arg): turned in to a macro that
43572	calls check_encoding()
43573
435742003-05-06  Jörg Höhle  <hoehle@users.sourceforge.net>
43575
43576	* ffcall/avcall/avcall.h.in (av_overflown): add this macro to
43577	check when buffer[AV_ALIST_WORDS] is too small for av_call()
43578	* foreign.d (FOREIGN-CALL-OUT): use it (bug#139)
43579
435802003-05-05  Sam Steingold  <sds@gnu.org>
43581
43582	* backquote.lisp (bq-vec-expand): fix the unoptimized case
43583	* compiler.lisp (compile-file): finish listing-stream with a newline
43584	(compile) [CLISP-DEBUG]: bind *FORM* for TRACE (bug#162)
43585	* control.d (UNWIND-TO-DRIVER): call unwind_upto() before
43586	driver() (bug#163)
43587
435882003-05-05  Sam Steingold  <sds@gnu.org>
43589
43590	fix bug#166: STRING-INFO does not work with displaced strings
43591	* charstrg.d (STRING-INFO): handle displaced strings
43592
435932003-05-05  Sam Steingold  <sds@gnu.org>
43594
43595	fix bug#165: (proclaim '(notinline ...)) ignored
43596	* control.d (PROCLAIM): fix STACK indexing for (NOT)INLINE
43597
435982003-05-04  Sam Steingold  <sds@gnu.org>
43599
43600	* spvw_debug.d (bt_out): extracted from back_trace_out()
43601	(back_trace_out): use it
43602	(back_trace_depth, back_trace_out): fully check for circularities
43603
436042003-05-04  Sam Steingold  <sds@gnu.org>
43605
43606	* stream.d (var_stream): check whether the stream is open
43607	[broken since 2002-04-01]
43608
436092003-05-03  Sam Steingold  <sds@gnu.org>
43610
43611	* acorn.d, amiga.d, unix.d (stderr_handle): add
43612	* amigaaux.d (init_amiga): initialize it
43613
436142003-05-03  Sam Steingold  <sds@gnu.org>
43615
43616	* lispbibl.d (STACK_register) [__GNUC__ >= 3]: disable.
43617	This is a workaround for a GCC3 bug(s?) which manifest itself
43618	in CLISP bug#150: CLISP+readline = core dump
43619	and bug#153: cast to char array crashes.
43620
436212003-05-03  Sam Steingold  <sds@gnu.org>
43622
43623	* foreign.d (EXEC-ON-STACK): use UNWIND-PROTECT to always clean up
43624
436252003-05-02  Sam Steingold  <sds@gnu.org>
43626
43627	fix bug#161: ffi:c-struct corrupt
43628	* foreign1.lisp (with-name/options): new macro
43629	(parse-components, c-struct-constructor, parse-c-type)
43630	(deparse-c-type, def-c-struct): C-STRUCT typespec is
43631	short again: (C-STRUCT name+opt slots ....)
43632
436332003-05-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43634	    Sam Steingold  <sds@gnu.org>
43635
43636	* pathname.d (LAUNCH): deobfuscated according to General Line.
43637	Supported -1 as return value.
43638	use check_string() instead of fehler_string()
43639
436402003-05-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43641
43642	Fix msvc (and amiga ?) build.
43643	* errwin32.d: add second argument start_driver_p = true
43644	to calls.
43645	* erramiga.d: same.
43646	* win32.d (MyCreateProcess): changed declaration command is
43647	LPTSTR, not LPCTSTR.
43648	* win32aux.d (MyCreateProcess): same + fix an error in
43649	old style declaration (introduced 2003-04-27).
43650
436512003-05-02  Sam Steingold  <sds@gnu.org>
43652
43653	* clos.lisp (allocate-instance, shared-initialize)
43654	(reinitialize-instance, make-instance):
43655	add &key &allow-other-keys to the signature
43656	(initial-reinitialize-instance): collect keywords from methods
43657	for REINITIALIZE-INSTANCE (in addition to SHARED-INITIALIZE)
43658
436592003-05-01  Sam Steingold  <sds@gnu.org>
43660
43661	make some errors recoverable
43662	* condition.lisp (report-new-value, report-no-new-value)
43663	(report-new-values): remove
43664	(prompt-for-new-value): take an optional INSTEAD-P argument
43665	(check-type, assert, retry-loop): must cons up the reporter
43666	at macroexpansion time
43667	(check-value): install restarts and signal the condition
43668	* constsym.d (check_value): add
43669	* error.d (end_error): may return when the new argument,
43670	start_driver_p, is false
43671	(fehler): pass true as start_driver_p to end_error()
43672	(check_value): new function, calls CHECK-VALUE
43673	(fehler_symbol, fehler_string): remove
43674	(check_symbol, check_char, check_string): add
43675	* errunix.d (OS_error, OS_file_error): pass true as
43676	start_driver_p to end_error()
43677	* init.lisp (make-condition): pre-draw for clos.lisp
43678	* lispbibl.d (check_string, check_symbol, check_char): declare
43679	(fehler_symbol, test_symbol, fehler_string): remove
43680	* macros2.lisp (report-one-new-value-string)
43681	(report-new-values-string): return a format string with 1 argument
43682	(report-one-new-value-string-instead): new function
43683	(assert): call FORMAT on REPORT-*NEW-VALUE?-STRING
43684	* charstrg.d (coerce_ss, coerce_imm_ss, coerce_imm_normal_ss)
43685	(string_concat): use check_string() instead of fehler_string()
43686	(test_string_limits_ro): ditto - it is now GC-unsafe!
43687	(test_char_arg): superseded by check_char()
43688	(STANDARD-CHAR-P, GRAPHIC-CHAR-P, CHAR-WIDTH, STRING-CHAR-P)
43689	(BASE-CHAR-P, ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P)
43690	(BOTH-CASE-P, DIGIT-CHAR-P, ALPHANUMERICP, CHAR-CODE, CHAR-UPCASE)
43691	(CHAR-DOWNCASE, CHAR-INT, CHAR-NAME): use check_char()
43692	instead of test_char_arg()
43693	(CHAR, STORE-CHAR, SCHAR, STORE-SCHAR): use check_char() instead
43694	of test_char_arg() and check_string() instead of fehler_string()
43695	* clos.lisp (slot-unbound): use CHECK-VALUE
43696	* control.d (fehler_no_value): superseded by ...
43697	(check_global_symbol_value): new function
43698	(%SYMBOL-VALUE, SYMBOL-VALUE): use check_symbol() instead of
43699	test_symbol() and check_global_symbol_value() instead of
43700	fehler_no_value()
43701	(SYMBOL-FUNCTION, BOUNDP, SPECIAL-OPERATOR-P, BLOCK)
43702	(MACRO-FUNCTION, PROCLAIM, RETURN-FROM): use check_symbol()
43703	instead of test_symbol()
43704	(test_env): use check_value - it is now GC-unsafe!
43705	* dirkey.d (test_dir_key): ditto
43706	(DIR-KEY-OPEN, DKEY-SEARCH-ITERATOR, init_iteration_node)
43707	(DIR-KEY-VALUE, SET-DKEY-VALUE, REG_KEY_DEL):
43708	use check_string() instead of fehler_string()
43709	* eval.d (SPECIAL-VARIABLE-P): use check_symbol()
43710	instead of test_symbol()
43711	(sym_value_place, check_local_symbol_value): new functions
43712	(sym_value): now a macro that calls sym_value_place()
43713	(eval1): use check_local_symbol_value()
43714	* foreign.d (FOREIGN-LIBRARY): use check_string() instead of
43715	fehler_string()
43716	(FOREIGN-LIBRARY-FUNCTION): coerce_ss() makes the stringp()
43717	check unnecessary
43718	* genclisph.d (fehler_symbol, check_char, fehler_string): remove
43719	* i18n.d (SET-CURRENT-LANGUAGE): use check_symbol() instead of
43720	test_symbol() and check_string() instead of fehler_string()
43721	(GETTEXT, NGETTEXT): use check_string() instead of fehler_string()
43722	* misc.d (GETENV, SETENV, REGISTRY, MODULE-INFO): ditto
43723	* package.d (MAKE-SYMBOL, test_intern_args): ditto
43724	(UNINTERN): use check_symbol() instead of fehler_symbol()
43725	* pathname.d (SHELL): treat nil as unbound
43726	(SHELL, LAUNCH, DYNLOAD-MODULES) use check_string()
43727	instead of fehler_string()
43728	* predtype.d (FIND-CLASS): use check_symbol()
43729	instead of fehler_symbol()
43730	* record.d (SYMBOL-MACRO-EXPAND): use check_symbol()
43731	instead of test_symbol()
43732	* socket.d (SOCKET-SERVICE-PORT) use check_string()
43733	instead of fehler_string()
43734	* stream.d (SOCKET-CONNECT): ditto
43735	(SYMBOL-STREAM): use check_symbol() instead of test_symbol()
43736	* symbol.d (%PUTD, %FIND-SUBR, %PROCLAIM-CONSTANT, GET, %PUTPLIST)
43737	(%PUT, REMPROP, SYMBOL-PACKAGE, SYMBOL-PLIST, SYMBOL-NAME): ditto
43738	(Symbol_function_checked): remove
43739
437402003-05-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43741
43742	improved LAUNCH for win32
43743	* pathname.d (LAUNCH) [WIN32_NATIVE]: add new arguments:
43744	:ARGUMENTS, :PRIORITY, changed return value.
43745	No longer use MyCreateProcess.
43746	(shell_quote, allocate_cons_v) [WIN32_NATIVE && HAVE_SHELL]: new
43747	functions.
43748	* constsym.d (:ARGUMENTS, :PRIORITY, :HIGH, :NORMAL, :LOW)
43749	[HAVE_SHELL]: add new keywords.
43750	(:WAIT, :TERMINAL): define only when HAVE_SHELL.
43751	* subr.d (LAUNCH): changed declaration.
43752	* subrkw.d (LAUNCH): ditto.
43753
437542003-05-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43755
43756	* stream.d (create_output_pipe): Fix a cut-and-paste type typo.
43757
437582003-04-30  Sam Steingold  <sds@gnu.org>
43759
43760	* compiler.lisp (compile-lambda): accept one more argument -
43761	error-when-failed-p - and signal an error when it is T
43762	and the compilation failed
43763	(compile-form): pass error-when-failed-p NIL to compile-lambda
43764	* eval.d (get_closure): pass ewfp T to compile-lambda, thus
43765	(:LAMBDA () (DECLARE (COMPILE)) (LET ((:Z T)) :Z))
43766	now errors out instead of returning a weird function object
43767	* disassem.lisp (disassemble): pass ewfp NIL to compile-lambda
43768
437692003-04-29  Sam Steingold  <sds@gnu.org>
43770
43771	* makemake.in (full): no longer require "rm -rf full"
43772	for full to be remade
43773
437742003-04-29  Sam Steingold  <sds@gnu.org>
43775
43776	fix --without-unicode build
43777	* spvw_debug.d (string_out) [!UNICODE]: implement
43778	* stream.d (rd_ch_array_unbuffered, wr_ch_array_unbuffered_unix)
43779	(wr_ch_array_unbuffered_mac, wr_ch_array_unbuffered_dos)
43780	(wr_ch_array_buffered_unix) [!UNICODE]: add a cast
43781	* inspect.lisp (*http-encoding*) [-UNICODE]: do not
43782	pass :CHARSET to MAKE-ENCODING
43783	* foreign1.lisp (with-foreign-string) [-UNICODE]: no
43784	CUSTOM:*FOREIGN-ENCODING* without UNICODE
43785	* foreign.d (CALL-WITH-FOREIGN-STRING) [!UNICODE]:
43786	* encoding.d (MAKE-ENCODING) [!UNICODE]: NIL charset is passed
43787	when initializing O(default_file_encoding); handle that
43788
437892003-04-29  Sam Steingold  <sds@gnu.org>
43790
43791	fix bug#160: --with-readline is silently ignored
43792	* makemake.in: fail when --with-readline is supplied but
43793	configure does not find a working readline
43794
437952003-04-29  Jörg Höhle  <hoehle@users.sourceforge.net>
43796
43797	* foreign1.lisp: add FFI:WITH-C-PLACE, FFI:C-VAR-OBJECT
43798
437992003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>
43800
43801	partially restored support for --without-unicode
43802	* encoding.d (EXT:ENCODING-CHARSET): only with #+UNICODE
43803	* subr.d, constsym.d: likewise
43804	* stream.d (rd_ch_array_unbuffered): typo
43805
438062003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>
43807
43808	* foreign.d (SETF FFI:VALIDP): prevent from invalidating unique
43809	session FFI pointer
43810
438112003-04-28  Jörg Höhle  <hoehle@users.sourceforge.net>
43812
43813	* stream.d (stream_lend_handle): strm_keyboard_handle only
43814	present when #define KEYBOARD
43815
438162003-04-27  Arseny Slobodjuck  <ampy@ich.dvo.ru>
43817
43818	Implement extended program launcher in win32.
43819	* constsym.d (LAUNCH, :terminal): add.
43820	* win32.d (MyCreateProcess): add error-stream to declaration.
43821	* win32aux.d (MyCreateProcess): implement this addition.
43822	* pathname.d (SHELL) [WIN32_NATIVE]: usage of MyCreateProcess
43823	corrected.
43824	(MyDupHandle) [WIN32_NATIVE]: new helper function.
43825	(LAUNCH) [WIN32_NATIVE]: the launcher.
43826	* stream.d (sync_file_buffered): new function.
43827	(create_input_pipe, create_output_pipe, create_io_pipe):
43828	usage of MyCreateProcess corrected.
43829	(stream_lend_handle): new function to lend the handles.
43830	* subr.d (LAUNCH) [WIN32_NATIVE]: add.
43831	* subrkw.d (LAUNCH) [WIN32_NATIVE]: add.
43832
438332003-04-26  Sam Steingold  <sds@gnu.org>
43834
43835	* clos.lisp (finalize-instance-standard-class): use DOLIST
43836	instead of MAPC
43837	(def-unbound): fix the call (broken by the CLASS-ID patch)
43838
438392003-04-26  Sam Steingold  <sds@gnu.org>
43840
43841	* array.d (ADJUST-ARRAY): fix a GC-safety bug
43842	* eval.d (funcall_iclosure): fix 2 GC-safety bugs
43843	* record.d (update_instance): fix 3 GC-safety bugs
43844	(keyword_test): fix last patch
43845	* control.d (KEYWORD-TEST): ditto
43846
438472003-04-26  Sam Steingold  <sds@gnu.org>
43848
43849	* clos.lisp (ensure-class): when either the old definition or the
43850	new one is a DEFSTRUCT, just discard the old definition altogether
43851
438522003-04-26  Stefan Kain  <stefan.kain@freenet.de>
43853
43854	* floatprint.lisp: translated all comments
43855
438562003-04-26  Sam Steingold  <sds@gnu.org>
43857
43858	fix bug#156: (load :compiling t) redefinition warnings
43859	* clos.lisp (setf find-class): always call CHECK-REDEFINITION
43860	* init.lisp (check-redefinition): handle LOAD :COMPILING T;
43861	always reset SYS::FILE indicator to the new value
43862	* places.lisp (define-setf-expander, defsetf): call
43863	CHECK-REDEFINITION at definition time, not macroexpansion time
43864
438652003-04-25  Sam Steingold  <sds@gnu.org>
43866
43867	fix bug#155: read_form() botches STACK
43868	* debug.d (read_form): make sure to unbind *TERMINAL-READ-STREAM*
43869
438702003-04-25  Sam Steingold  <sds@gnu.org>
43871
43872	* lispbibl.d (STACKCHECKB): when non-0, check that we are
43873	unwinding a binding frame for the correct symbol
43874	(dynamic_unbind): accept a symbol argument
43875	(dynamic_unbind_g): same as old dynamic_unbind()
43876	* debug.d, error.d, eval.d, io.d, predtype.d, spvw_language.d:
43877	pass the symbol argument to dynamic_unbind() whenever possible
43878
438792003-04-25  Jörg Höhle  <hoehle@users.sourceforge.net>
43880
43881	* foreign.d (convert_to_foreign): accept FOREIGN-VARIABLE object
43882	for C-POINTER c-type declaration and move often used cases up in
43883	the long if-then-else chain
43884
43885	* foreign1.lisp (allocate-shallow): fix typo,
43886	and export FOREIGN-POINTER
43887
438882003-04-22  Sam Steingold  <sds@gnu.org>
43889
43890	* _distmakefile, makemake.in: distribute clisp.ps and put it into
43891	lispdocdir together with clisp.html and clisp.dvi
43892
438932003-04-22  Sam Steingold  <sds@gnu.org>
43894
43895	implement adjusting of non-adjustable arrays (Issue 5)
43896	* lispbibl.d (X3J13_003): remove undef
43897	* array.d (array_atype): new function
43898	(array_element_type, test_displaced): use it
43899	(ADJUST-ARRAY): when the argument is not adjustable,
43900	return a fresh array
43901
439022003-04-22  Jörg Höhle  <hoehle@users.sourceforge.net>
43903
43904	* stream.d (lisp_completion): fix misplaced end_callback()
43905
43906	* encoding.d (init_encodings_2), constsym.d: complete patch
43907	for CHARSET:WINDOWS-1255 and -1258
43908
43909	* ChangeLog: use users.sourceforge e-mail (hide other)
43910
439112003-04-21  Sam Steingold  <sds@gnu.org>
43912
43913	* io.d (ANSI-PATHNAME-READER): understand Allegro CL #P(...)
43914	syntax which is equivalent to our #S(PATHNAME ...) syntax
43915
439162003-04-21  Sam Steingold  <sds@gnu.org>
43917
43918	EQUALP on HASH-TABLEs now correctly descends the structure
43919	* predtype.d (hash_table_equalp): new function
43920	(equalp): use it to compare hash-tables
43921
439222003-04-21  Sam Steingold  <sds@gnu.org>
43923
43924	* spvw_fault.d, spvw_genera1.d, spvw_genera2.d, spvw_genera3.d:
43925	* spvw_heap.d, spvw_memfile.d (memdump_header, memdump_page)
43926	(memdump_physpage_state, memdump_reloc_header, old_new_pointer)
43927	(physpage_state, walkstep_fun, gc_data_list): appended "_t" to
43928	type names; use MALLOC
43929	* lispbibl.d (MALLOC): new macro
43930
439312003-04-21  Sam Steingold  <sds@gnu.org>
43932
43933	* control.d (KEYWORD-TEST): treat :ALLOW-OTHER-KEYS NIL correctly
43934	* record.d (keyword_test): ditto
43935	* eval.d (fehler_key_badkw): sync the message with the above
43936
439372003-04-21  Sam Steingold  <sds@gnu.org>
43938
43939	* defmacro.lisp (analyze1): &WHOLE argument may be a pattern too
43940	(analyze-key): permit patterns as &KEY arguments (broken on 2003-03-25)
43941
439422003-04-21  Sam Steingold  <sds@gnu.org>
43943
43944	* defmacro.lisp (make-macro-expansion): the environment argument
43945	in MACRO-FUNCTION is not optional but required
43946	* init.lisp (backquote, bq-nconc, defmacro): ditto
43947
439482003-04-20  Sam Steingold  <sds@gnu.org>
43949
43950	* m4/rusage.m4 (CL_RUSAGE): use time(2) instead of a constant
43951	loop: the Moore's law has caught up with this constant already
43952	* m4/rlimit.m4 (CL_RLIMIT): check getrlimit() too
43953	* posixmisc.d (RESOURCE-USAGE-LIMITS-INTERNAL): respect
43954	HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE and HAVE_GETRLIMIT
43955
439562003-04-20  Sam Steingold  <sds@gnu.org>
43957
43958	* package.d (make_present): if symbol is homeless, set its home
43959	this takes care of the Issue 194
43960	* clos.lisp (setf find-class): allow nil as the new-value
43961	this takes care of the Issue 304
43962
439632003-04-19  Sam Steingold  <sds@gnu.org>
43964
43965	* spvw.d (main): when loading clisprc, use MAKE-PATHNAME
43966	:DEFAULTS instead of MAKE-PATHNAME + MERGE-PATHNAMES
43967
439682003-04-19  Sam Steingold  <sds@gnu.org>
43969
43970	* defmacro.lisp (kwd-arg-form): new function
43971	(analyze-key): use it, this fixes the 2003-03-25 patch which
43972	treated NIL keyword arguments as unsupplied
43973
439742003-04-18  Sam Steingold  <sds@gnu.org>
43975
43976	* condition.lisp (expand-restart-case): associate when ERROR-OF-TYPE
43977	this takes care of the item (6) in Issue 76
43978	(break): bind *DEBUGGER-HOOK* to NIL
43979	this takes care of the Issue 91
43980	* clos.lisp (DOCUMENTATION): accept STRUCTURE-OBJECTs and
43981	STANDARD-OBJECTs - this takes care of the Issue 135
43982	* compiler.lisp (compile-file): accept :EXTERNAL-FORMAT argument,
43983	as per Issue 155
43984
439852003-04-18  Sam Steingold  <sds@gnu.org>
43986
43987	* stream.d (broadcast_stream_last): new function
43988	(BUILT-IN-STREAM-ELEMENT-TYPE): fix a crash with SYNONYM-STREAM
43989	pointing to a non-built-in stream;
43990	handle BROADCAST-STREAM as per Issue 21
43991	(STREAM-EXTERNAL-FORMAT): ditto
43992
439932003-04-16  Sam Steingold  <sds@gnu.org>
43994
43995	* loadform.lisp (mlf-unquote): remove
43996	(mlf-init-function): use SUBLIS instead of MLF-UNQUOTE
43997	Reported by Christophe Rhodes <csr21@cam.ac.uk>
43998
439992003-04-18  Sam Steingold  <sds@gnu.org>
44000
44001	* backquote.lisp (eval-self-p): T evaluates to itself too
44002	(maybe-unquote): new function - the dual for MAYBE-QUOTE
44003	(bq-optimize-append): avoid consing up BUTLAST twice;
44004	do not destructively modify input lists (suggested by Kaz)
44005	(bq-optimize-list*): call MAYBE-UNQUOTE instead of the
44006	obsolete BQ-DROP-SUPERFLUOUS-QUOTES
44007	(bq-drop-superfluous-quotes): remove
44008
440092003-04-10  Kaz Kylheku  <kaz@ashi.footprints.net>
44010
44011	* backquote.lisp (bq-optimize-vec): New function.
44012	(bq-vec-expand): Use it if optimization is turned on.
44013
440142003-04-18  Sam Steingold  <sds@gnu.org>
44015
44016	* encoding.d (init_encodings_2): unintern CHARSET:WINDOWS-1255 and
44017	CHARSET:WINDOWS-1258 when CHARSET:CP1255 and CHARSET:CP1258 are void
44018	Reported by Jörg Höhle <hoehle@users.sourceforge.net>
44019
440202003-04-18  Sam Steingold  <sds@gnu.org>
44021
44022	* reploop.lisp (make-xterm-io-stream) [UNIX]: new function
44023	* clos.lisp (need-gf-already-called-warning-p): new function
44024	(warn-if-gf-already-called): use it
44025	(std-remove-method): use it and not warn on removing methods when
44026	*WARN-IF-GF-ALREADY-CALLED* is NIL
44027
440282003-04-17  Sam Steingold  <sds@gnu.org>
44029
44030	implement RFE#9: restart keyword commands in debugger
44031	* reploop.lisp (break-loop): use restart name as the command and
44032	:Rnum as the abbreviation; re-align help messages
44033
440342003-04-06  Sam Steingold  <sds@gnu.org>
44035
44036	* constobj.d: add hs_simple_nilvector and hs_nilvector
44037	* predtype.d: add enum_hs_simple_nilvector and enum_hs_nilvector
44038	(heap_statistics_mapper): count (VECTOR NIL) objects separately
44039
440402003-04-06  Sam Steingold  <sds@gnu.org>
44041
44042	implement ANSI CLOS class forward definition
44043	* clos.lisp (defclass): do not require that the parents exist
44044	(*finalizing-now*): new variable
44045	(class-finalize): new function
44046	(ensure-class): consider the class to exist already only if it
44047	has been finalized
44048	(finalize-instance-standard-class): move all finalizations here
44049	(initialize-instance-standard-class): call it
44050	(print-object): when printing a class object, print its
44051	finalization status and the number of redefinitions
44052	(class-finalized-p, finalize-inheritance): new MOP generics
44053	* constsym.d (CLASS-FINALIZE): add
44054	* inist.lisp (class-prototype, class-finalized-p)
44055	(finalize-inheritance): re-export from EXT
44056	* record.d (do_allocate_instance, %MAKE-INSTANCE): call
44057	CLASS-FINALIZE when the CLASS-PRECEDENCE-LIST is void
44058
440592003-04-05  Sam Steingold  <sds@gnu.org>
44060
44061	Implement ANSI CL ENSURE-GENERIC-FUNCTION
44062	* clos.lisp (ensure-generic-function): new generic function
44063	(*gf-warn-on-removing-all-methods*): remove
44064	(do-defgeneric): do not remove the existing methods;
44065	check signature congruence instead
44066	(make-instance-standard-class, make-instance-structure-class):
44067	use (SETF FDEFINITON) instead of DEFUN: this avoids 2 warnings,
44068	and should speed things up a tiny little bit
44069	* init.lisp (ensure-generic-function): export
44070
440712003-04-04  Sam Steingold  <sds@gnu.org>
44072
44073	* pprint.lisp (pprint-logical-block): avoid a package-lock cerror
44074	Reported by Christophe Rhodes <csr21@cam.ac.uk>
44075
440762003-04-04  Sam Steingold  <sds@gnu.org>
44077
44078	* compiler.lisp (c-EVAL-WHEN): use FCASE; correctly handle
44079	:EXECUTE/non-top-level; :EXECUTE is now _NOT_ the same as EVAL
44080
440812003-04-04  Sam Steingold  <sds@gnu.org>
44082
44083	* macros1.lisp (fcase): DEFMACRO, not DEFMACRO-SPECIAL
44084	so that it will also work in interpreted code
44085
440862003-04-04  Sam Steingold  <sds@gnu.org>
44087
44088	implement MAKE-INSTANCES-OBSOLETE and
44089	UPDATE-INSTANCE-FOR-REDEFINED-CLASS
44090	* clos.lisp (class): add slot ID - the number of class redefinitions
44091	(standard-class): add slot PREVIOUS-DEFINITION
44092	(obsolete-class): remove function
44093	(slot-difference): new function
44094	(ensure-class): call MAKE-INSTANCES-OBSOLETE instead of
44095	OBSOLETE-CLASS and allow non-trivial class redefinitions
44096	(initialize-instance-standard-class, <standard-object>):
44097	INSTANCE-SIZE now starts with 2 because of ID
44098	(initialize-instance-built-in-class): new function
44099	(make-instance-built-in-class): use it
44100	(*dynamically-modifiable-generic-function-names*): add
44101	UPDATE-INSTANCE-FOR-REDEFINED-CLASS
44102	(update-instance-for-different-class): use SLOT-DIFFERENCE
44103	(make-instances-obsolete, update-instance-for-redefined-class):
44104	new generic functions
44105	(change-class): pass T as the third argument of %CHANGE-CLASS
44106	* lispbibl.d (Class): add slots class_id and previous_definition
44107	(Instance): add slot inst_cl_id
44108	(instance_valid_p, check_instance): new macros
44109	(instanceof): call check_instance()
44110	* constsym.d (UPDATE-INSTANCE-FOR-REDEFINED-CLASS): add
44111	* hashtabl.d (sxhash_atom): call check_instance()
44112	(SXHASH): seclass_default bacause of that
44113	* init.lisp (update-instance-for-redefined-class)
44114	(make-instances-obsolete): export
44115	* predtype.d (TYPE-OF, CLASS-OF): call check_instance()
44116	* record.d (class_of): ditto
44117	(ALLOCATE-STD-INSTANCE): INSTANCE-SIZE now starts with 2 because of ID
44118	(%CHANGE-CLASS): accept 3rd argument do-copy-t
44119	(update_instance): new function
44120	* subr.d (SXHASH): seclass_default
44121	(%CHANGE-CLASS): 3 arguments
44122
441232003-04-02  Sam Steingold  <sds@gnu.org>
44124
44125	* lispbibl.d, dfloat.d, ffloat.d: check DOUBLE_DIV0_EXCEPTION &c
44126	with defined(), not the value itself, since, as per unixconf.h,
44127	they are either defined to 1 or not defined at all
44128
441292003-04-02  Sam Steingold  <sds@gnu.org>
44130
44131	New generic function CLOS:CLASS-PROTOTYPE from MOP
44132	* clos.lisp (class-prototype): implement, exported from CLOS -
44133	but _not_ from COMMON-LISP
44134	(standard-class): add slot PROTO
44135	* lispbibl.d (Class): ditto
44136
441372003-04-01  Sam Steingold  <sds@gnu.org>
44138
44139	implement arrays with ARRAY-ELEMENT-TYPE NIL
44140	* array.d (eltype_code): return Atype_NIL for NIL argument
44141	(fehler_retrieve): new function
44142	(storagevector_aref, storagevector_store, elt_fill)
44143	(VECTOR-PUSH-EXTEND): barf on (VECTOR NIL)
44144	(fehler_store): use less stack
44145	(array_element_type): return NIL for Array_type_(s)nilvector
44146	(elt_copy, elt_move, test_displaced, MAKE-ARRAY): handle (VECTOR NIL)
44147	* defseq.lisp: add (VECTOR NIL), named "0"
44148	* io.d (ARRAY-READER): read #A(NIL dims)
44149	(pr_vector): print (ARRAY NIL) as #A(NIL dims)
44150	(pr_orecord): print Rectype_(S)nilvector with pr_vector()
44151	* lispbibl.d (Rectype_nilvector): new type, replaces rectype_unused1
44152	(Rectype_Snilvector): new record type
44153	(arrayflags_atype_mask): 15 now
44154	(Atype_NIL): new type
44155	(Array_type_nilvector, Array_type_snilvector): new array types
44156	(vectorp, simplep, array_simplep, simple_string_p, stringp)
44157	(arrayp): adjusted to use symbolic Rectype_*
44158	(if_recordp): add Rectype_(S)nilvector
44159	(case_Rectype_Snilvector_above, case_Rectype_nilvector_above): add
44160	(case_Rectype_array_above): add Rectype_(S)nilvector
44161	(allocate_nilvector): declare
44162	* sequence.d (valid_type1, get_seq_type): handle (VECTOR NIL)
44163	* spvw_circ.d (get_circ_mark, get_circ_unmark, subst_circ_mark)
44164	(subst_circ_unmark): handle (VECTOR NIL) together with other
44165	component-less objects
44166	* spvw_garcol.d (gc_mark): handle Rectype_Snilvector with
44167	down_nopointers() and Rectype_nilvector with down_iarray()
44168	* spvw_genera1.d (walk_area, build_old_generation_cache): handle
44169	Rectype_Snilvector with bitvectors and numbers and
44170	Rectype_nilvector with iarrays
44171	* spvw_objsize.d (objsize): handle Rectype_(S)nilvector
44172	* spvw_typealloc.d (allocate_nilvector): implement
44173	* spvw_update.d (update_varobject): handle Rectype_(S)nilvector
44174	* type.lisp (upgraded-array-element-type): return NIL for NIL arg
44175
441762003-04-01  Kaz Kylheku  <kaz@ashi.footprints.net>
44177	    Sam Steingold  <sds@gnu.org>
44178
44179	Brand new, from-scratch backquote implementation.
44180	* constsym.d (reading_array): New variable, corresponds to
44181	system::*reading-array*.
44182	(reading_struct): New variable, corresponds to
44183	system::*reading-struct*.
44184	(backquote_reader, comma_reader): Associate these objects with the
44185	symbol names of the new backquote reader functions.
44186	* init.lisp: Load new-backquote module rather than backquote.
44187	(bq-conc): New macro in SYSTEM package.
44188	(backquote): Macro rewritten to call the new backquote
44189	expander, rather than regurgitate the second argument.
44190	* io.d (init_reader): Define the variables *reading-array*
44191	and *reading-struct*.
44192	(read_top): Bind *reading-struct* and *reading-aray* to NIL.
44193	(structure_reader): Bind *reading-struct* to T.  Do not
44194	bind *backquote-level* to NIL.
44195	(array_reader): Bind *reading-array* to T. Do not
44196	bind *backquote-level* to NIL.
44197	(pr_list_bothsplice): Adjust pretty-printer to new, simplified
44198	syntax for SPLICE and NSPLICE.
44199	* backquote.lisp: Rewrote from scratch.
44200
442012003-04-01  Sam Steingold  <sds@gnu.org>
44202
44203	Export struct slot accessors
44204	* modules/bindings/linuxlibc6/linux.lisp (exporting-slots):
44205	new local macro, used for def-c-struct
44206	Suggested by Pascal Bourguignon <pjb@informatimago.com>
44207	(stdin, stdout, stderr): simple foreign variables (def-c-var)
44208	Reported by Jörg Höhle
44209
442102003-03-31  Bruno Haible  <bruno@clisp.org>
44211
44212	* runprog.lisp (shell-quote) [UNIX]: Handle empty argument correctly.
44213	(shell-quote) [WIN32]: Handle argument containing spaces and ending in
44214	a backslash correctly.
44215
442162003-03-30  Sam Steingold  <sds@gnu.org>
44217
44218	* spvw.d (init_symbol_values): define_variable's
44219	*LOAD-COMPILING*, *LOAD-VERBOSE*, *LOAD-PRINT*, *COMPILE-PRINT*.
44220	(usage): mention `-v'
44221	(main): accept -v(erbose).
44222	* constsym.d (*LOAD-PRINT*, *COMPILE-PRINT*): add
44223	* _clisp.c: accept -v
44224
442252003-03-30  Sam Steingold  <sds@gnu.org>
44226
44227	* regexp.lisp (cflags, eflags): new macros
44228	(cflags-max): new constant
44229	(regexp-compile): accept extended/case-sensitive/newline/nosub/cflags
44230	&key arguments instead of an &optional argument case-sensitive;
44231	add a compiler macro to pre-compute cflags when possible
44232	(regexp-exec): accept notbol/noteol/eflags &key arguments
44233	add a compiler macro to pre-compute eflags when possible
44234	(optimize-flags): new function, pre-compute cflags & eflags for
44235	compiler macros for the following functions:
44236	(match-once, %match, regexp-split): accept both notbol/noteol/eflags
44237	and extended/case-sensitive/newline/nosub/cflags &key arguments;
44238	add compiler macros to pre-compute cflags & eflags when possible
44239	(with-loop-split): accept both notbol/noteol/eflags and
44240	extended/case-sensitive/newline/nosub/cflags &key arguments
44241	(regexp-quote): accept an &optional extended argument
44242	Suggested by Pascal Bourguignon <pjb@informatimago.com>
44243	(*system-package-list*): push "REGEXP", i.e., REGEXP is now locked
44244
442452003-03-29  Sam Steingold  <sds@gnu.org>
44246
44247	solidified updating back_trace callers [cygwin build fix]
44248	* spvw.d (for_all_back_traces): new macro
44249	* spvw_update.d (update_back_traces): new macro
44250	* spvw_garcol.d, spvw_memfile.d: use it for all updating
44251
442522003-03-29  Sam Steingold  <sds@gnu.org>
44253
44254	* condition.lisp (restart-case, with-restarts): macroexpand
44255	`restartable-form' to associate the restarts with this condition
44256
442572003-03-28  Sam Steingold  <sds@gnu.org>
44258
44259	do not print system structure definitions
44260	do print full prototype for built-in functions
44261	* foreign.d (C_STRUCT_SLOTS): define to 3
44262	* foreign1.lisp (parse-components, c-struct-constructor): C-STRUCT
44263	now has options, so slots start at CDDDR
44264	(parse-c-type): init name and options for C-STRUCT
44265	(deparse-c-type): extract name and options for C-STRUCT
44266	(to-c-typedecl): structures may be :EXTERNAL and :TYPEDEF
44267	(finalize-coutput-file): print full prototype for :BUILT-IN functions
44268	(def-call-out): recognize :BUILT-IN keyword
44269	(note-c-fun): save :BUILT-IN status
44270	* modules/bindings/linuxlibc6/linux.lisp (exporting): struct name
44271	maybe a list of name and options
44272	(div_t, ldiv_t): :TYPEDEF
44273	(cosf, sinf, sqrtf, fabsf): BUILT-IN
44274	(passwd): :EXTERNAL after "#include <pwd.h>"
44275	(group): :EXTERNAL after #include <grp.h>"
44276	Based on a patch by Dan Knapp
44277
442782003-03-27  Sam Steingold  <sds@gnu.org>
44279
44280	* stream.d (history_last): new function
44281	(rd_ch_terminal3): use it instead of
44282	where_history()/previous_history() &c &c
44283
442842003-03-26  Sam Steingold  <sds@gnu.org>
44285
44286	* condition.lisp (restart): use CLOS:PRINT-OBJECT
44287	(print-restart): remove
44288	(applicable-restart-p): CONDITION may be NIL
44289	(compute-restarts, find-restart): even when CONDITION is NIL,
44290	APPLICABLE-RESTART-P has to be called
44291	(with-simple-restart): fix the optimized case
44292
442932003-03-25  Sam Steingold  <sds@gnu.org>
44294
44295	* defmacro.lisp (get-supplied-p): new function
44296	(analyze-key, analyze1): use it
44297	(analyze-key): do not evaluate the init form when the argument
44298	has been supplied
44299	Reported by Christophe Rhodes <csr21@cam.ac.uk>
44300
443012003-03-24  Sam Steingold  <sds@gnu.org>
44302
44303	* package.d (SYMBOL-VALUE-LOCK): return T only when the package
44304	is locked (helps SBCL bootstrap)
44305
443062003-03-22  Sam Steingold  <sds@gnu.org>
44307
44308	* configure (--edit-config): new option (for --build & --install)
44309
443102003-03-18  Sam Steingold  <sds@gnu.org>
44311
44312	* spvw.d (main): allow multiple -x options
44313	-repl forces REPL after -c/-x/exec
44314	option "--" terminates option processing; set *ARGS* earlier
44315	* _clisp.c (main): "-r" for "-repl"
44316
443172003-03-14  Sam Steingold  <sds@gnu.org>
44318
44319	function (SETF FFI:VALIDP) invalidates foreign objects
44320	* foreign.d (SET-VALIDP): implement
44321	* foreign1.lisp (validp): add a defsetf
44322	* subr.d, constsym.d (set_validp): add
44323
443242003-03-14  Sam Steingold  <sds@gnu.org>
44325
44326	extract and modify the FOREIGN-POINTER anchor
44327	* foreign.d (foreign_pointer_strict): new function
44328	(FOREIGN-POINTER, SET-FOREIGN-POINTER): implement
44329	(foreign_address): barf on non-foreign and possibly on FOREIGN-POINTER
44330	* foreign1.lisp (foreign-pointer): add a defsetf
44331	* lispbibl.d (Faddress): fa_offset is signed
44332	* subr.d, constsym.d (foreign_pointer, set_foreign_pointer): add
44333
443342003-03-12  Sam Steingold  <sds@gnu.org>
44335
44336	* makemake.in: win32msvc mean either msvc4 or msvc5 or msvc7 (.NET)
44337	* Makefile.devel (makefiles): add win32msvc/makefile.msvc7
44338	(win32msvc/makefile.msvc7): new target
44339	* win32.d: undef `unused' around `#include <windows.h>' for MSVC
44340	Suggested by Jay Kint <jkint@icosahedron.org>
44341
443422003-01-31  Jörg Höhle  <hoehle@users.sourceforge.net>
44343
44344	patch#8: FFI:WITH-FOREIGN-STRING
44345	* foreign.lisp (with-foreign-string): store string on C stack
44346	using any encoding
44347	* foreign.d (call_with_foreign_string): ditto
44348	* subr.d, constsym.d (call_with_foreign_string): add
44349	* type.lisp (encoding-zeroes): how many terminating \0 bytes does
44350	one expect when working with character of encoding X?
44351	4 for UTF-32, 2 for UTF-16, 1 for UTF-8 or ISO-8859-1 etc.
44352	* encoding.d (fehler_encoding): moved to error.d
44353	* lispbibl.d (fehler_encoding): prototype
44354
443552003-03-11  Sam Steingold  <sds@gnu.org>
44356
44357	add EXT:MODULE-INFO for module information extraction
44358	* spvw_module.d (find_module, modules_names_to_stack): implement
44359	* lispbibl.d (find_module, modules_names_to_stack): declared
44360	* misc.d (MODULE-INFO): implement
44361	* constsym.d, subr.d (module_info): add
44362	* init.lisp (MODULE-INFO): export
44363	* modules.d (MODULE): cannot use STRING() because module_name may
44364	be a CPP macro, e.g., for the "linux" module, module name was "1"
44365
443662003-03-12  Jörg Höhle  <hoehle@users.sourceforge.net>
44367
44368	* time.d (get_real_time) [TIME_WIN32]: use
44369	GetSystemTimeAsFileTime(), not ftime()
44370
443712003-03-11  Sam Steingold  <sds@gnu.org>
44372
44373	fix bug#101: make-encoding :input-action on bad input (again)
44374	* encoding.d (fehler_buffer_parity): new function
44375	(uni16_mblen): check that the input buffer has even length
44376	(uni16be_mbstowcs, uni16le_mbstowcs): barf when the input has an
44377	odd number of bytes (use fehler_buffer_parity)
44378	(uni32be_mblen, uni32le_mblen): check that the input buffer
44379	length is divisible by 4
44380	(uni32be_mbstowcs, uni32le_mbstowcs): barf when the input length
44381	is not divisible by 4 (use fehler_buffer_parity)
44382
443832003-03-11  Sam Steingold  <sds@gnu.org>
44384
44385	* foreign.d (fehler_foreign_object, foreign_address)
44386	(foreign_pointer): new functions
44387	(VALIDP): use foreign_pointer()
44388	(FOREIGN-ADDRESS): new function (suggested by Joerg)
44389	(FOREIGN-FREE): use fehler_foreign_object()
44390	* foreign1.lisp (foreign-value, foreign-address)
44391	(foreign-address-unsigned, unsigned-foreign-address): export
44392	* subr.d (foreign_address): add
44393	(validp, unsigned_foreign_address, foreign_address_unsigned):
44394	seclass_read
44395	* describe.lisp (describe-object): DEPARSE-C-TYPE is in FFI
44396
443972003-03-10  Jörg Höhle  <hoehle@users.sourceforge.net>
44398	    Sam Steingold  <sds@gnu.org>
44399
44400	FFI heap allocation interface
44401	* foreign.d (FOREIGN-ALLOCATE, FOREIGN-FREE): heap memory (de)alloc
44402	* subr.d, subrkw.d, constsym.d (foreign_allocate, foreign_free): add
44403	* foreign1.lisp (allocate-deep, allocate-shallow): new macros
44404
444052003-03-08  Sam Steingold  <sds@gnu.org>
44406
44407	* list.d (cons_from_stack): new function
44408	(CONS, copy_tree, subst, sublis, ACONS): use it
44409	(LIST): use listof
44410	(APPEND, reverse, nreverse, nreconc, COPY-ALIST, REVAPPEND)
44411	(NRECONC, sublis_assoc, memq, PAIRLIS, assoc, rassoc):
44412	barf on dotted lists, as per ANSI
44413	(memq1): remove
44414	* list.d, subr.d (MEMQ): seclass_read
44415	* constsym.d (PLIST): add
44416	* type.lisp (PLIST): new type
44417	* symbol.d (fehler_sym_plist_odd, fehler_plist_odd): type_error
44418	(get, GETF, %PUTF, %REMF, GET-PROPERTIES, PUT, REMPROP):
44419	barf on dotted plists, as per ANSI
44420
444212003-03-07  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44422
44423	* spvw.d (main) [WIN32_NATIVE]: init SYS::*PRIN-LINELENGTH* to
44424	console width - 1.
44425
444262003-03-07  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44427
44428	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: bug fixed:
44429	should raise an error when part of directory is an existing
44430	file.
44431
444322003-03-03  Peter Seibel  <peter@javamonkey.com>
44433	    Sam Steingold  <sds@gnu.org>
44434
44435	* charstrg.d, compelem.d, comptran.d, control.d, dfloat.d, eval.d:
44436	* ffloat.d, foreign.d, intdiv.d, intlog.d, intplus.d, intsqrt.d:
44437	* io.d, package.d, pathname.d, sfloat.d, socket.d, stream.d:
44438	phase-0 of d2c conversion: put braces where C99 requires them
44439
444402003-03-01  Sam Steingold  <sds@gnu.org>
44441
44442	* makemake.in: fix the 1.269 (2002-07-19) patch: check
44443	LIBTERMCAP and --with-termcap-ncurses after XCFLAGS is set,
44444	so that -DNO_TERMCAP_NCURSES is not overridden
44445
444462003-02-28  Sam Steingold  <sds@gnu.org>
44447
44448	ANSI CL compliance issues
44449	* clos.lisp (generic-function): commented out the macro definition:
44450	GENERIC-FUNCTION is a TYPE (and a COMMON-LISP symbol) in ANSI CL,
44451	but not a macro, so this definition violates the standard
44452	* type.lisp (canonicalize-type): canonicalize MOD, SIGNED-BYTE,
44453	and UNSIGNED-BYTE to an inclusive interval
44454	* macros2.lisp (times): rename from SPACE because SPACE is an
44455	ANSI Common Lisp symbol without a macro definition
44456	* init.lisp (times): export from EXT
44457
444582003-02-28  Sam Steingold  <sds@gnu.org>
44459
44460	* io.d (PARSE-INTEGER): seclass_read
44461	print the error index on badsyntax
44462	* subr.d (parse_integer): seclass_read
44463
444642003-02-27  Sam Steingold  <sds@gnu.org>
44465
44466	* describe.lisp (describe-object): print additional information
44467	for strings (using STRING-INFO)
44468
444692003-02-25  Sam Steingold  <sds@gnu.org>
44470
44471	* makemake.in (*.mem): do not dump images if LOAD "init" failed
44472
444732003-02-27  Sam Steingold  <sds@gnu.org>
44474
44475	detect side-effect class of some compiled closures
44476	* lispbibl.d (cclosure_flags, Cclosure_flags, Cclosure_seclass)
44477	(Cclosure_set_seclass): new macros
44478	(seclass_t): new enum class (instead of sclass_* bits)
44479	(allocate_closure): accept flags argument
44480	(allocate_cclosure_copy): ditto
44481	(seclass_object): map seclass_t to seclass_* objects
44482	* record.d (parse_seclass): new function
44483	(%make-closure): accept 4th argument - seclass
44484	(CLOSURE-SET-SECLASS): new function for updating the side-effect
44485	class of generic functions
44486	* constsym.d, subr.d (closure_set_seclass): add
44487	* clos.lisp (%make-gf): pass seclass to %MAKE-CLOSURE
44488	(std-add-method, std-remove-method): update the side-effect class
44489	of the generic function
44490	* compiler.lisp (make-closure): pass seclass to %MAKE-CLOSURE
44491	(seclass-or): remove
44492	(seclass-or-2): rename to SECLASS-OR, handle NIL
44493	(seclass-without): handle NIL
44494	(anodes-seclass-or, anodelist-seclass-or): reduce consing
44495	(f-side-effect): new function: look at *known-functions*
44496	before fdefiniton
44497	(c-DIRECT-FUNCTION-CALL): update FUNCTION-SIDE-EFFECT call
44498	(c-GLOBAL-FUNCTION-CALL): use FUNCTION-SIDE-EFFECT instead of a table
44499	(c-NORMAL-FUNCTION-CALL, c-LAMBDABODY, c-MULTIPLE-VALUE-CALL)
44500	(c-FUNCALL-NOTINLINE, c-APPLY): check the side-effect class
44501	(c-DEFUN, compile-lambdabody, match-known-unknown-functions):
44502	keep seclass in *known-functions*
44503	(create-fun-obj): pass seclass to MAKE-CLOSURE
44504	* type.lisp (class-name): add a temporary definition
44505	* control.d (form_constant_p): handle cclosures
44506	(FUNCTION-SIDE-EFFECT): return seclass object instead of 3 values;
44507	never signal an error, just return (T . T)
44508	* eval.d (get_closure): pass the extra arg to allocate_closure()
44509	* io.d (CLOSURE-READER): expect seclass before constants
44510	(pr_cclosure_lang): print seclass before constants
44511	* VERSION, version.h: bump
44512	* constobj.d (version): bump (because of %MAKE-CLOSURE)
44513	(seclass_no_se, seclass_read, seclass_write, seclass_default): add
44514
445152003-02-24  Sam Steingold  <sds@gnu.org>
44516
44517	* compiler.lisp (c-DIRECT-FUNCTION-CALL): use
44518	FUNCTION-SIDE-EFFECT instead of an explicit table
44519	* control.d (form_constant_p): new function
44520	(CONSTANTP): use it; all self-eval forms are constants (ANSI)
44521	(FUNCTION-SIDE-EFFECT): implement
44522	* constsym.d, subr.d (function_side_effect): add
44523	* lispbibl.d (subr_t): new slot `seclass' (instead of the
44524	dummy padding)
44525	(seclass_foldable, seclass_read, seclass_write, seclass_default)
44526	(seclass_no_se): new macros
44527	* subr.d (LISPFUN): accept 8 arguments (add seclass);
44528	update all declarations
44529	* genclisph.d (LISPFUN): ditto
44530	* affi.d, array.d, charstrg.d, control.d, debug.d, dirkey.d,
44531	* encoding.d, error.d, eval.d, foreign.d, i18n.d, io.d,
44532	* lisparit.d, list.d, misc.d, package.d, pathname.d, posixmath.d,
44533	* predtype.d, record.d, rexx.d, sequence.d, socket.d, stream.d,
44534	* symbol.d, time.d, zthread.d: update all LISPFUN headers
44535
445362003-02-23  Sam Steingold  <sds@gnu.org>
44537
44538	* check-lispfun.lisp (get-lisp-def): return the name of the form
44539	as well as the arguments as two values
44540	(*const-decls*): new variable
44541	(get-lisp-defs): take all LISP* forms
44542	(check-lisp-defs): exclude *const-decls* files
44543	(write-subrs): new function
44544
445452003-02-20  Sam Steingold  <sds@gnu.org>
44546
44547	* defs2.lisp (destructuring-error): as per CLHS 3.5.1.7, signal
44548	a PROGRAM-ERROR, not an ERROR
44549
445502003-02-17  Sam Steingold  <sds@gnu.org>
44551
44552	* charstrg.d (hex_table): const
44553	* spvw_debug.d (hex_table): const
44554	* spvw_memfile.d (memflags): const
44555	* stream.d (vktable, attr_table): const
44556	* encoding.d, utils/unicode/nls_table.c:
44557	rename nls_table to nls_table_t
44558	* spvw_alloca.d: rename malloca_header to malloca_header_t
44559	* spvw_multimap.d: rename mmap_interval to mmap_interval_t
44560
445612003-02-17  Sam Steingold  <sds@gnu.org>
44562
44563	* type.lisp (encoding-charset): remove (this completes the
44564	2002-05-21 patch)
44565
445662003-02-16  Sam Steingold  <sds@gnu.org>
44567
44568	* type.lisp (with-interval-designators): new macro
44569	(interval-mix, interval-mix-not, canonicalize-type, subtypep): use it
44570
445712003-02-16  Sam Steingold  <sds@gnu.org>
44572
44573	* cmacros.lisp (define-compiler-macro): pass non-NIL as the 3rd
44574	argument of SYS::CHECK-REDEFINITION only when actually redefining
44575	* clos.lisp (analyze-method-description): ditto
44576
445772003-02-15  Sam Steingold  <sds@gnu.org>
44578
44579	* defstruct.lisp (defstruct): permit keywords as structure names
44580
445812003-02-15  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44582
44583	* makemake.in (CFLAGS) [win32msvc]: do not use optimization
44584	when debugging. Use enviroinment variable MSVCDIR to avoid manual
44585	editing.
44586	* win32msvc/makefile.msvc5d - new file - MSVC debug makefile.
44587	* Makefile.devel (win32msvc/makefile.msvc5d): new target.
44588
445892003-02-14  Sam Steingold  <sds@gnu.org>
44590
44591	never compare types using EQUAL!
44592	* type.lisp (interval-mix): handle integers better by making AND
44593	intervals inclusive and OR intervals exclusive
44594	(interval-mix-not, simplify-and-or): new functions
44595	(canonicalize-type): (MEMBER 1 2 3) --> (INTEGER 1 3)
44596	(subtypep): types staring with AND, OR &c are undecidable
44597
445982003-02-14  Sam Steingold  <sds@gnu.org>
44599
44600	* macros2.lisp (typecase): OTHERWISE must be the last clause to
44601	be considered an "otherwise clause"
44602
446032003-02-14  Sam Steingold  <sds@gnu.org>
44604
44605	fix bug#144: symbol-macrolet not always expanded
44606	* eval.d (parse_dd): do not macroexpand the potential
44607	declarations and docstrings (as per ANSI CL)
44608
446092003-02-13  Sam Steingold  <sds@gnu.org>
44610
44611	* stream.d (create_input_pipe, create_output_pipe, create_io_pipe):
44612	wrap child creation in begin_want_sigcld()/end_want_sigcld(),
44613	just like it is done in EXECUTE
44614	Reported by Kaz Kylheku <kaz@ashi.footprints.net>
44615	(MAKE-STRING-PUSH-STREAM): fix error message arguments
44616
446172003-02-13  Sam Steingold  <sds@gnu.org>
44618
44619	* io.d (PARSE-INTEGER): signal a PARSE-ERROR on bad syntax and
44620	report only the substring being parsed, not the whole string
44621	Reported by Jörg Höhle
44622
446232003-02-13  Sam Steingold  <sds@gnu.org>
44624
44625	fix bug#146: ext:string-width ignores :start
44626	* charstrg.d (STRING-WIDTH): start with :START, not 0
44627	* stream.d (MAKE-STRING-INPUT-STREAM): respect both index and offset
44628
446292003-02-10  Sam Steingold  <sds@gnu.org>
44630
44631	Do not treat #\/ in logical pathnames as #\;
44632	* pathname.d (lslashp): reintroduced
44633	(slashp): remove
44634	(parse_logical_word, parse_logical_pathnamestring):
44635	use lslashp() instead of slashp()
44636	(PARSE-NAMESTRING): use pslashp() instead of slashp()
44637	(ensure_last_slash): check both pslashp() and lslashp()
44638
446392003-02-09  Sam Steingold  <sds@gnu.org>
44640
44641	* debug.d (break_driver): unbind *TERMINAL-READ-OPEN-OBJECT*,
44642	just like *TERMINAL-READ-STREAM*
44643	* reploop.lisp (break-loop): ditto
44644
446452003-02-09  Sam Steingold  <sds@gnu.org>
44646
44647	* modules/bindings/linuxlibc6/linux.lisp (__ctype_get_mb_cur_max):
44648	returns size_t
44649	(errno): commented out (neither method works)
44650	(initstate, setstate): statebuf is a C-STRING, not a C-POINTER
44651	(seed48): seed16v is a C-ARRAY, not a (C-PTR (C-ARRAY ...))
44652	(unsetenv): return int
44653	(realpath): return C-STRING
44654	(execv, execve, execvp): add
44655	Thanks to Dan Knapp, John K. Hinsdale, and Jörg Höhle.
44656
446572003-02-09  Sam Steingold  <sds@gnu.org>
44658
44659	fix EXT:MAPLAP, EXT:MAPCAP, MAPCAN and MAPCON in compiled code
44660	* compiler.lisp (copy-list-lax): new inline function
44661	(c-MAP-on-CARs, c-MAP-on-LISTs): use forward consing for
44662	EXT:MAPLAP, EXT:MAPCAP, MAPCAN and MAPCON
44663
446642003-02-08  Sam Steingold  <sds@gnu.org>
44665
44666	brought EXT:MAPLAP and EXT:MAPCAP in line with MAPCAN and MAPCON
44667	* control.d (set_last_inplace, set_last_copy): new functions
44668	(MAPCAN_MAPCON_BODY): accept `append_function' arg
44669	(MAPCAN, MAPCON): pass it
44670	(MAPCAP, MAPLAP): implement using MAPCAN_MAPCON_BODY()
44671	* constsym.d, subr.d (mapcan, mapcon): add
44672	* init.lisp (MAPCAP, MAPLAP): export
44673	* macros1.lisp (MAPCAP, MAPLAP): remove
44674
446752003-02-07  Sam Steingold  <sds@gnu.org>
44676
44677	MAPCAN and MAPCON now correctly handle functions returning ATOMs
44678	* control.d (MAPCAR_MAPLIST_BODY) [!MAP_REVERSES]: do not create
44679	an extra cons; this is now the default method
44680	(MAPCAN_MAPCON_BODY) [MAP_REVERSES]: remove (cannot handle ATOMs)
44681	[!MAP_REVERSES]: do not create an extra cons
44682	see also the 2002-11-28 loop.lisp patch
44683
446842003-02-07  Sam Steingold  <sds@gnu.org>
44685
44686	* list.d (endp): made global
44687	* lispbibl.d (endp): add the prototype
44688	* control.d (ENDP): remove
44689	(MAPCAR_MAPLIST_BODY, MAPC_MAPL_BODY, MAPCAN_MAPCON_BODY):
44690	use endp() instead of ENDP
44691
446922003-02-06  Sam Steingold  <sds@gnu.org>
44693
44694	* spvw_debug.d (nobject_out): return the object argument
44695	(back_trace_out): use STACK_item_count() instead of STACK_diff()
44696	* spvw.d (main): ditto
44697	* lispbibl.d (nobject_out): update the prototype
44698	(STACK_diff): remove
44699
447002003-02-05  Sam Steingold  <sds@gnu.org>
44701
44702	turned FCASE into a special form, just like CASE
44703	* macros1.lisp (fcase): defmacro-special
44704	* compiler.lisp (c-form-table): FCASE --> c-CASE
44705	(c-CASE): handle FCASE
44706
447072003-02-04  Sam Steingold  <sds@gnu.org>
44708
44709	* clos.lisp (class): new slot DIRECT-SUBCLASSES
44710	(obsolete-class): new function
44711	(ensure-class): use it
44712	(initialize-instance-standard-class, make-instance-built-in-class)
44713	(initialize-instance-structure-class): update DIRECT-SUBCLASSES of
44714	the DIRECT-SUPERCLASSES of this class
44715	* lispbibl.d (Class): new slot direct_subclasses
44716	* clos.lisp (class-and): new function
44717	* type.lisp (canonicalize-type): use it
44718
447192003-02-04  Sam Steingold  <sds@gnu.org>
44720
44721	* type.lisp (type-class, %standard-char-p)
44722	(valid-interval-designator-p, interval-mix): new functions
44723	(STANDARD-CHAR): use %STANDARD-CHAR-P to define
44724	(canonicalize-type): STANDARD-CHAR -> use %STANDARD-CHAR-P
44725	to avoid errors
44726	AND/OR -> more rigorous attempts to simplify
44727	REALs -> check interval designators
44728	CONS -> check components
44729
447302003-02-04  Sam Steingold  <sds@gnu.org>
44731
44732	* array.d (bit_up): fix a GC-safety bug: allocation invalidates
44733	dimptr (a pointer inside an Iarray structure) [this bug have
44734	never triggered before because, as the 2003-01-31 indicates, this
44735	code has never been used since it was written!]
44736
447372003-02-04  Jörg Höhle  <hoehle@users.sourceforge.net>
44738	    Sam Steingold  <sds@gnu.org>
44739
44740	fix bug#145: FFI segfault passing struct arrays
44741	* foreign.d (count_walk_pre): C-ARRAY-PTR should reserve room
44742	for the array argument
44743
447442003-02-03  Sam Steingold  <sds@gnu.org>
44745
44746	EXT:XOR checks that exactly one of its arguments is non-NIL
44747	* control.d (XOR): implement
44748	* init.lisp (XOR): exported
44749	* constsym.d, subr.d (xor): add
44750
447512003-02-02  Sam Steingold  <sds@gnu.org>
44752
44753	* spvw_debug.d (nobject_out): handle pathnames and some special
44754	objects, like `nullobj' and `unbound'; fflush out; do not print
44755	package prefix for keywords
44756
447572003-02-01  Sam Steingold  <sds@gnu.org>
44758
44759	* io.d (read_delimited_list): fix a crash introduced by the
44760	2003-01-21 "multiple forms on one line" patch: need to unbind
44761	*TERMINAL-READ-OPEN-OBJECT* even if *TERMINAL-READ-STREAM* changed
44762
447632003-01-31  Sam Steingold  <sds@gnu.org>
44764
44765	* type.lisp (typep, subtypep): accept &optional environment,
44766	as per ANSI CL spec
44767	* compiler.lisp (c-TYPEP): ditto
44768
447692003-01-31  Sam Steingold  <sds@gnu.org>
44770
44771	* array.d (bit_up): fix multi-dimensional array handling
44772
447732003-01-31  Sam Steingold  <sds@gnu.org>
44774
44775	fix bug#142: unchecked :start/end in
44776	ext:convert-string-from/to-bytes
44777	* encoding.d (CONVERT-STRING-FROM-BYTES): use test_vector_limits()
44778	to check :START/:END arguments
44779	(CONVERT-STRING-TO-BYTES): use test_string_limits_ro()
44780	to check :START/:END arguments
44781	* charstrg.d (test_vector_limits): extracted from
44782	test_string_limits_ro()
44783	(test_string_limits_ro): use it
44784	* lispbibl.d (test_vector_limits): declare
44785
447862003-01-29  Sam Steingold  <sds@gnu.org>
44787
44788	SOCKET-STATUS on lists does not have to cons
44789	* stream.d (parse_sock_list): new function
44790	(handle_set, handle_isset): use it
44791	(SOCKET-STATUS): do not cons if the list provides places for the STATUS
44792	return the number of actionable streams as the second values
44793
447942003-01-29  Sam Steingold  <sds@gnu.org>
44795
44796	upgraded to autoconf-2.57
44797	* Makefile.devel, ffcall/Makefile.devel (AUTOCONF_VERSION): remove
44798	(AUTOCONF, AUTOCONF_CACHE): do not depend on it
44799
448002003-01-25  Sam Steingold  <sds@gnu.org>
44801
44802	* stream.d (handle_isset): increased granularity of
44803	SOCKET-STATUS: distinguish between EOF and INPUT for READ
44804
448052003-01-28  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44806
44807	* m4/as-underscore.m4, ffcall/m4/as-underscore.m4
44808	(CL_AS_UNDERSCORE) [__cplusplus]: declare test function
44809	as extern "C".
44810
448112003-01-24  Sam Steingold  <sds@gnu.org>
44812
44813	READ-BYTE-SEQUENCE now accepts :NO-HANG keyword argument
44814	* stream.d (rd_by_array_Pseudofun, rd_by_array_error)
44815	(rd_by_array_dummy, read_byte_array, rd_by_array_synonym)
44816	(rd_by_array_concat, rd_by_array_twoway, rd_by_array_echo)
44817	(strm_unbuffered_extrafields_t/low_read_array)
44818	(low_read_array_unbuffered_handle, rd_by_array_iau8_unbuffered)
44819	(strm_buffered_extrafields_t/low_fill, low_fill_buffered_handle)
44820	(buffered_nextbyte, read_byte_array_buffered)
44821	(rd_by_array_iau8_buffered, low_read_array_unbuffered_socket)
44822	(low_fill_buffered_socket): accept no_hang
44823	(listen_handle): extracted from low_listen_unbuffered_handle()
44824	(low_listen_unbuffered_handle): use listen_handle()
44825	(rd_by_aux_iax_unbuffered, rd_ch_array_unbuffered): pass
44826	no_hang=false to UnbufferedStreamLow_read_array()()
44827	(buffered_writebyte, position_file_buffered)
44828	(write_byte_array_buffered, rd_ch_buffered, listen_char_buffered)
44829	(rd_ch_array_buffered, position_file_i_buffered)
44830	(rd_by_aux_iax_buffered, rd_by_aux_ibx_buffered)
44831	(rd_by_aux_icx_buffered, rd_by_iau8_buffered)
44832	(listen_byte_ia8_buffered, WRITE_LAST_BYTE, wr_by_aux_ib_buffered)
44833	(wr_by_aux_ic_buffered, logical_position_file_end)
44834	(make_file_stream): pass no_hang=false to buffered_nextbyte()
44835	(READ-N-BYTES, READ-INTEGER, READ-FLOAT): pass no_hang=false
44836	to read_byte_array()
44837	* pathname.d (copy_file_low): ditto
44838	* sequence.d (READ-BYTE-SEQUENCE): accept :NO-HANG
44839	* subr.d, subrkw.d (READ-BYTE-SEQUENCE): ditto
44840	* gray.lisp (STREAM-READ-BYTE-SEQUENCE): ditto
44841	* constsym.d (:NO-HANG): add
44842	* unix.d (sock_read): define to read_helper(,,,true)
44843
448442003-01-23  Sam Steingold  <sds@gnu.org>
44845
44846	* lispbibl.d (arrayrank_limit_1): set to lp_limit_1 because
44847	array_dimensions() pushes the dimensions on the STACK
44848
448492003-01-23  Sam Steingold  <sds@gnu.org>
44850
44851	* type.lisp (upgraded-array-element-type): accept an &optional
44852	environment argument, as per ANSI CL
44853	(subtypep): fix a typo (quote '(and))
44854
448552003-01-23  Sam Steingold  <sds@gnu.org>
44856
44857	* _clisp.c (main): -B specifies where -K is looked for
44858	* spvw.d (main): --help prints *CURRENT-LANGUAGE* and *LIB-DIRECTORY*
44859
448602003-01-21  Sam Steingold  <sds@gnu.org>
44861
44862	permit multiple forms in one line of interactive input
44863	* reploop.lisp (break-loop): makunbound *TERMINAL-READ-STREAM*
44864	when clearing *DEBUG-IO*
44865	* debug.d (break_driver): ditto
44866	(read_form): do not discard unprocessed input after the first form
44867	in the first line (in *TERMINAL-READ-STREAM*)
44868
448692003-01-21  Mirian Crzig Lennox  <mirian@cosmic.com>
44870
44871	* backquote.lisp, defmacro.lisp: translated all comments
44872
448732003-01-19  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44874
44875	Make clisp compiling on cygwin with g++
44876	* avl.d (AVL(AVLID,delete1)): legalize goto for CC=g++
44877	* spvw_garcol.d (free_some_unused_pages): explicit typecast
44878	* spvw_allocate.d (make_space_gc): modern definition, explicit typecast
44879	* lispbibl.d: do not define setjmp, longjmp as  _setjmp, _longjmp
44880	* spvw_memfile (offset_pages_t): new type
44881	(loadmem_from handle): use it in explicit typecast
44882
448832003-01-16  Bruno Haible  <bruno@clisp.org>
44884
44885	* lispbibl.d (allocate_weakkvt): DO NOT USE LOCAL VARIABLES OF TYPE
44886	gcv_object_t.
44887	* hashtabl.d (prepare_resize): Likewise.
44888	* spvw_typealloc.d (allocate_weakkvt_low, allocate_weakkvt): Likewise.
44889
448902003-01-16  Sam Steingold  <sds@gnu.org>
44891
44892	do not bind slot names (which may be special variables) in keyword
44893	constructors
44894	* defstruct.lisp: DS-SLOT vector now has a new slot - VAR
44895	(make-ds-slot): init VAR
44896	(ds-slot-var): new function
44897	(ds-make-constructor-body): accept a GET-VAR argument
44898	(ds-make-boa-constructor): pass #'DS-SLOT-NAME to
44899	ds-make-constructor-body
44900	(ds-make-keyword-constructor): pass #'DS-SLOT-VAR to
44901	ds-make-constructor-body
44902
449032003-01-14  Stefan Kain  <stefan.kain@freenet.de>
44904
44905	* defstruct.lisp: translated all comments
44906
449072003-01-14  Sam Steingold  <sds@gnu.org>
44908
44909	* defstruct.lisp (ds-make-constructor-body): optimize LIST
44910	structures just like the VECTOR ones
44911
449122003-01-12  Sam Steingold  <sds@gnu.org>
44913
44914	* spvw_typealloc.d (reallocate_small_string): do not create the
44915	hole (and do not plug it) because both this object and the
44916	possible hole/plug will be collected during the next GC
44917
449182003-01-09  John  Hinsdale <hin@alma.com>
44919
44920	* modules/fastcgi/*: new add-in module for FastCGI interface
44921
449222003-01-09  Sam Steingold  <sds@gnu.org>
44923
44924	implement CHANGE-CLASS and UPDATE-INSTANCE-FOR-DIFFERENT-CLASS
44925	* clos.lisp (change-class, update-instance-for-different-class):
44926	implement
44927	* init.lisp (change-class, update-instance-for-different-class):
44928	export
44929	* constsym.d, subr.d (pchange_class): add
44930	* lispbibl.d (Rectype_realloc_Instance): new record type
44931	(instance_un_realloc): new macro
44932	(instancep): handle Rectype_realloc_Instance
44933	(instanceof): make into a function and call instance_un_realloc()
44934	(case_Rectype_Instance_above): include Rectype_realloc_Instance
44935	* hashtabl.d (sxhash_atom): un_realloc instances
44936	* predtype.d (TYPE-OF, CLASS-OF): ditto
44937	* spvw_garcol.d (GC_MARK, down_record): ditto
44938	* io.d (pr_orecord): handle Rectype_realloc_Instance
44939	* record.d (class_of, ptr_to_slot): make into a function and call
44940	instance_un_realloc()
44941	(%CHANGE-CLASS): implement
44942
449432003-01-08  Sam Steingold  <sds@gnu.org>
44944
44945	* stream.d (GENERIC-STREAM-P, BUILT-IN-STREAM-OPEN-P)
44946	(INPUT-STREAM-P, OUTPUT-STREAM-P, STREAM-ELEMENT-TYPE-EQ):
44947	use VALUES_IF
44948
449492003-01-06  Sam Steingold  <sds@gnu.org>
44950
44951	some more work on MT: add stubs for functions, WITH-TIMEOUT almost works
44952	* zthread.d: new file - for the actual functions implementations
44953	(CALL-WITH-TIMEOUT): almost works
44954	* thread.lisp: rename threads to processes to comply with CMUCL &c
44955	(WITH-TIMEOUT): use CALL-WITH-TIMEOUT
44956	* subr.d, constsym.d [MULTITHREAD]: add thread functions
44957	* makemake.in: add zthread.d
44958	* stream.d (sec_usec): made global for use in zthread.d
44959	* lispbibl.d (current_thread): made static (compiles with -g now)
44960	* xthread.d (xcondition_timedwait, xthread_cancel): add
44961
449622003-01-04  Sam Steingold  <sds@gnu.org>
44963
44964	* hashtabl.d (%SET-HASH-TABLE-WEAK-P): a variable cannot have
44965	type gcv_object_t
44966	* makemake.in (check-sources): the target fails iff egrep succeeds
44967
449682003-01-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44969
44970	Get rid of some scary warnings
44971	* stream.d (wr_ch_array_window) [WIN32_NATIVE]: use uintB, not char
44972	* win32.d: undef SEEK_SET, SEEK_CUR, SEEK_END before redefining
44973
449742003-01-04  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44975
44976	Fix mingw compilation
44977	* pathname.d (resolve_shell_shortcut) [WIN32_NATIVE]: use number
44978	instead of missing SLGP_RAWPATH, cast to void - avoid a warning.
44979	(TrueName) [WIN32_NATIVE]: inline isalpha.
44980	* win32aux.d (MyCreateProcess): fix declaration.
44981	(abort): call exit to avoid a warning.
44982
449832003-01-03  Stefan Kain  <stefan.kain@freenet.de>
44984
44985	* lisparit.d, intelem.d, dfloat.d, lfloat.d: translated all comments
44986
449872003-01-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44988
44989	* makemake.in (init): do not include floatparam.h and
44990	intparam.h in the init rule for win32.
44991
449922003-01-03  Arseny Slobodjuck  <ampy@ich.dvo.ru>
44993
44994	Fix MSVC compilation without libsigsegv
44995	* spvw.d (main) [WIN32_NATIVE]: do not init SP_bound when
44996	NO_SP_CHECK - SP_bount is not declared.
44997
449982003-01-02  Sam Steingold  <sds@gnu.org>
44999
45000	* lispbibl.d [WIDE_HARD]: treat UNIX_NETBSD on DECALPHA just like
45001	UNIX_OSF, UNIX_LINUX and UNIX_FREEBSD
45002	From Indrayana Rustandi <i_rustandi@yahoo.com>
45003
450042002-12-24  Sam Steingold  <sds@gnu.org>
45005
45006	add VALUE, EITHER and BOTH weak hash tables
45007	* hashtabl.d (prepare_resize): weak argument is now an object
45008	(check_weak): new function
45009	(MAKE-HASH-TABLE, %SET-HASH-TABLE-WEAK-P): use it
45010	(hash_lookup): value may be obsoleted too
45011	* constobj.d (type_weak_ht): add
45012	* constsym.d (Kboth, Keither, Kvalue): add
45013	* io.d (pr_orecord): print ht_weak() for weak hash tables
45014	(pr_weakkvt): print wkvt_type
45015	* lispbibl.d (ht_weak): new macro
45016	(weakkvt_t): add wkvt_type slot
45017	* spvw_garcol.d (gar_col_normal): handle the new types of weak
45018	hash tables
45019	* spvw_typealloc.d (allocate_weakkvt, allocate_weakkvt_low):
45020	accept a second argument - the wkvt_type
45021
450222002-12-24  Sam Steingold  <sds@gnu.org>
45023
45024	* foreign.d (FOREIGN-CALL-OUT): fix argument order in the call
45025	to fehler_too_few_args()
45026
450272002-12-23  Sam Steingold  <sds@gnu.org>
45028
45029	DOCUMENTATION is now a generic function
45030	* clos.lisp (ensure-class): use SYS::%SET-DOCUMENTATION explicitly
45031	(analyze-method-description): pass the method object to
45032	CHECK-REDEFINITION when possible
45033	(documentation, (setf documentation)): new generic functions
45034	* defs2.lisp (defpackage): remember documentation string
45035	* defstruct.lisp (defstruct): use SYS::%SET-DOCUMENTATION explicitly
45036	* macros2.lisp (deftype): ditto
45037	* describe.lisp (describe1): print all documentation
45038	* places.lisp (documentation, %SET-DOCUMENTATION): remove
45039	* init.lisp (*documentation*): new variable
45040	(%set-documentation): implement
45041	(check-redefinition): save and check the SYS::FILE docstring
45042
450432002-12-22  Sam Steingold  <sds@gnu.org>
45044
45045	* symbol.d (%PUTF): when the place is a cons, modify it in-place
45046
450472002-12-21  Sam Steingold  <sds@gnu.org>
45048
45049	* makemake.in (LIBSIGSEGV): init to @LTLIBSIGSEGV@ (-L/... -lsigsegv)
45050	instead of @LIBSIGSEGV@ (/.../libsigsegv.a) because this value
45051	gets into LIBS and from there into distmakefile and breaks that
45052
450532002-12-21  Sam Steingold  <sds@gnu.org>
45054
45055	* makemake.in (--without*): escape "(|)" in sed RE with #\\
45056	now handles --with-noreadline correctly
45057	(my_eval): new function
45058
450592002-12-20  James Chacon  <jmc@netbsd.org>
45060	    Sam Steingold  <sds@gnu.org>
45061
45062	applied NetBSD patches: do not assume r11 is free on PowerPC
45063	<http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/clisp/patches/>
45064	* lispbibl.d (RS6000) [__powerpc__]: define
45065	* ffcall/avcall/Makefile.in: use linux syntax for netbsd
45066	* ffcall/vacall/Makefile.in: ditto
45067	* ffcall/callback/vacall_r/Makefile.in: use netbsd syntax for netbsd
45068	* ffcall/callback/trampoline_r/test1.c: do not assume r11 is free
45069	* ffcall/callback/trampoline_r/trampoline.c: provide a trampoline
45070	implementation that does not presume r11 is free (it is not in
45071	dynamically linked programs and the ELF ABI says as much but
45072	somehow linux managed to avoid this it seems). Use r13 for the
45073	time being since while gcc will allocate it, it is the last
45074	"local" one allocated so none of the clisp code hits that (nothing
45075	needed 17+ local registers in use ever). Update the vacall
45076	implementation to match the trampoline calls but otherwise for any
45077	assembly use the linux code.
45078
450792002-12-30  Sam Steingold  <sds@gnu.org>
45080
45081	reversed the 2002-12-12 patch, reinstating the 2001-11-27 patch:
45082	elt_nreverse() can now be used because bitbuffer is 8bit now
45083	* stream.d (byte_swap): remove
45084	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
45085	use elt_nreverse() instead of byte_swap()
45086
450872002-12-20  Sam Steingold  <sds@gnu.org>
45088
45089	* realtran.d (R_sin_R, R_cos_R, R_sinh_R, R_cosh_R):
45090	fix GC-safety bugs triggered by the regression test
45091	* comptran.d (N_tan_N, N_sinh_N, N_cosh_N, N_tanh_N)
45092	(R_R_atanh_R_R): ditto
45093	* pathname.d (parse_logical_host_prefix): ditto
45094	* array.d (elt_nreverse): elements in Array_type_svector
45095	are type `gcv_object_t', not `object'
45096
450972002-12-20  Sam Steingold  <sds@gnu.org>
45098
45099	* makemake.in (XCFLAGS) [CC=g++]: add DEBUG_GCSAFETY
45100	* pathname.d, socket.d, spvw.d, stream.d:
45101	compilable with DEBUG_GCSAFETY
45102	* arilev1i.d (sub_loop_down, subx_loop_down, subfrom_loop_down):
45103	(dec_loop_down, neg_loop_down): avoid some C++ warnings
45104
451052002-12-04  Bruno Haible  <bruno@clisp.org>
45106
45107	GC-safety checker.
45108	* lispbibl.d: Recognize DEBUG_GCSAFETY.
45109	(INNARDS_OF_GCV_OBJECT): New macro.
45110	(TYPEDEF_OBJECT): Remove.
45111	(gcv_object_t): Define instead of object.
45112	(as_object): Fix for OBJECT_STRUCT case. Add optional allocstamp
45113	initializer.
45114	(gcv_object_t) [DEBUG_GCSAFETY]: Define as a C++ class.
45115	(object): Define after gcv_object_t.
45116	(alloccount): New declaration.
45117	(INIT_ALLOCSTAMP): New macro.
45118	(fake_gcv_object) [DEBUG_GCSAFETY]: Define as a C++ class.
45119	(gcunsafe_object_t): Likewise.
45120	(type_untype_object, type_data_object): Add optional allocstamp
45121	initializer.
45122	(gcinvariant_bias_p): New macro.
45123	(pointable) [DEBUG_GCSAFETY]: Verify pointer integrity.
45124	(type_pointable): Update.
45125	(cgci_pointable, pgci_pointable, ngci_pointable) [DEBUG_GCSAFETY]:
45126	Verify pointer integrity when the argument is an object.
45127	(eq) [DEBUG_GCSAFETY]: Verify pointer integrity.
45128	(gcinvariant_symbol_p): New function.
45129	* genclisph.d (main): Update.
45130	* spvw_allocate.d (alloccount): New variable.
45131	(inc_alloccount): New macro.
45132	(make_space, make_space_true, make_space_false): Call inc_alloccount.
45133	* spvw_page.d (_Page): In DEBUG_GCSAFETY mode, use 'struct' instead
45134	of 'union', to avoid compilation erro.
45135
451362002-12-19  Sam Steingold  <sds@gnu.org>
45137
45138	* charstrg.d (DIGIT-CHAR-P): correctly identify MATHEMATICAL_*
45139	digits (* = SANS-SERIF/BOLD DOUBLE-STRUCK MONOSPACE)
45140
451412002-12-19  Bruno Haible  <bruno@clisp.org>
45142
45143	* uni_attribute.c: Regenerated for Unicode 3.2.0 by gen-ctype.c.
45144	* uni_upcase.c: Likewise.
45145	* uni_downcase.c: Likewise.
45146
45147	* utils/gen-uninames: Update for Unicode 3.2.0.
45148	* uninames.h: Regenerated for Unicode 3.2.0 by gen-uninames.
45149	* uniname.c: Assume ANSI C.
45150	(unicode_character_name, unicode_name_character): Update for Unicode
45151	3.2.0.
45152
45153	* utils/unicode/UnicodeDataFull.txt: Upgrade to Unicode 3.2.
45154	* describe.lisp (unicode-attributes-line): Lines in
45155	UnicodeDataFull.txt may start with up to 6 hex digits now.
45156
451572002-12-04  Bruno Haible  <bruno@clisp.org>
45158
45159	* io.d (%PPRINT-LOGICAL-BLOCK): Make GC-safe.
45160	* lispbibl.d (gcunsafe_object_t): New type.
45161	* package.d (shadow, use_package): Prepare for DEBUG_GCSAFETY.
45162	* sequence.d (delete_help): Likewise.
45163
45164	Fix some GC-safety bugs.
45165	* package.d (safe_check_pack_lock): Use the first argument.
45166	(unuse_1package): Mark as "can trigger GC".
45167	(unuse_package): Likewise. Make GC-safe.
45168	(SYSTEM::%IN-PACKAGE): Make GC-safe.
45169	(DELETE-PACKAGE): Make GC-safe.
45170	* pathname.d (copy_upcase): Change return type to void.
45171	(parse_logical_word): Make GC-safe.
45172	(simplify_directory): Make GC-safe. Avoid bug when dir list contains
45173	"." followed by a non-string.
45174	* realelem.d (R_R_contagion_R): Make GC-safe.
45175	(N_N_contagion_R): Simplify and make GC-safe.
45176	(C_R_float_C): Make GC-safe.
45177	(N_N_float_N): Make GC-safe.
45178	* comptran.d (N_exp_N): Make GC-safe.
45179	(N_log_N): Make GC-safe.
45180
451812002-12-18  Sam Steingold  <sds@gnu.org>
45182
45183	* lispbibl.d (bt_beyond_stack_p): fix the back_trace circularity
45184	bug: unwind until back_trace is strictly within STACK
45185	* eval.d (unwind_upto): no need to unwind_back_trace() in the beginning
45186
451872002-12-18  Sam Steingold  <sds@gnu.org>
45188
45189	* spvw_debug.d (nobject_out): handle uninterned symbols and
45190	special forms (Fsubrs) correctly
45191
451922002-12-04  Bruno Haible  <bruno@clisp.org>
45193
45194	* lispbibl.d (alignof): With g++, use the builtin __alignof__. This
45195	avoids an error in alignof(jmp_buf) on FreeBSD that occurred because
45196	jmp_buf is defined using an anonymous struct type which makes jmp_buf
45197	not suitable as a template argument.
45198
45199	* spvw_garcol.d (gc_mark): Add DEBUG_GC_MARK debugging facility.
45200
45201	* lispbibl.d (simple_array_to_storage, simple_array_to_storage1):
45202	Change to avoid gcc warning.
45203
45204	* lispbibl.d: Add inference TYPECODES => TRY_TYPECODES_1 on
45205	FreeBSD/x86.
45206
452072002-12-17  Sam Steingold  <sds@gnu.org>
45208
45209	* describe.lisp (unicode-attributes-line): lines in
45210	UnicodeDataFull.txt may start with up to 6 hex digits now
45211
452122002-12-17  Sam Steingold  <sds@gnu.org>
45213
45214	* charstrg.d (DIGIT-CHAR-P): correctly identify MYANMAR,
45215	ETHIOPIC, KHMER, and MONGOLIAN digits
45216	* uni_upcase.c, uni_downcase.c, uni_attribute.c: regenerated
45217
452182002-12-17  Bruno Haible  <bruno@clisp.org>
45219
45220	* utils/unicode/UnicodeDataFull.txt: Rename from
45221	utils/unicode/ftp.unicode.org/UnicodeData.txt.
45222	* Makefile.devel (src/uninames.h): Update.
45223	* makemake.in: Use UnicodeDataFull.txt instead of UnicodeData.txt.
45224	* describe.lisp (unicode-attributes-line): Likewise.
45225	* _README.en: Update.
45226
452272002-12-17  Sam Steingold  <sds@gnu.org>
45228
45229	when :CONC-NAME is NIL, use the slot name as accessor and setter
45230	* defstruct.lisp (ds-make-accessors, ds-make-defsetfs): when
45231	concname is NIL, use slot-name without concatenation
45232	(defstruct): do not reset NIL conc-name-option to ""
45233
452342002-12-04  Bruno Haible  <bruno@clisp.org>
45235
45236	New memory model WIDE_AUXI.
45237	* lispbibl.d (WIDE): Define if WIDE_AUXI.
45238	(value1_register, back_trace_register): Update.
45239	(TYPECODES): Update.
45240	(NO_ASYNC_INTERRUPTS): Update.
45241	(object, oint, soint): Define differently if WIDE_AUXI.
45242	(as_oint, as_object): Likewise.
45243	(as_object_with_auxi): New macro.
45244	(_attribute_aligned_object_): Update.
45245	(objectplus, wbit, wbitm, wbit_test, type_untype_object): Update.
45246	(IMMEDIATE_FFLOAT): New macro.
45247	(gcinvariant_type_p): Depend on IMMEDIATE_FFLOAT. Make it work also if
45248	tint_avoid is nonzero.
45249	(ffloat_): Depend on IMMEDIATE_FFLOAT.
45250	(Stream): Add more fillers if WIDE && !TYPECODES.
45251	(make_machine): Update.
45252	(TheFfloat): Depend on IMMEDIATE_FFLOAT.
45253	(cgci_pointable, pgci_pointable, ngci_pointable): New macros.
45254	(TheCons, TheRatio, TheComplex, TheSymbol, TheBignum, TheFfloat)
45255	(TheDfloat, TheLfloat, TheSarray, TheSbvector, TheS8string)
45256	(TheS16string, TheS32string, TheSstring, TheSvector, TheWeakKVT)
45257	(TheSiarray, TheIarray, TheRecord, TheSrecord, TheXrecord, ThePackage)
45258	(TheHashtable, TheReadtable, ThePathname, TheLogpathname)
45259	(The_Random_state, TheByte, TheFsubr, TheLoadtimeeval, TheSymbolmacro)
45260	(TheMacro, TheFunctionMacro, TheEncoding, TheFpointer, TheFaddress)
45261	(TheFvariable, TheFfunction, TheWeakpointer, TheFinalizer)
45262	(TheSocketServer, TheDirKey, TheYetanother, TheStream, TheStructure)
45263	(TheClass, TheClosure, TheIclosure, TheCclosure, TheInstance, TheSubr)
45264	(TheFramepointer, TheMachine, TheVarobject, ThePointer): Use them.
45265	(eq): Update.
45266	(bias_type_pointer_object): Update.
45267	(subr_tab_ptr_as_object, S_help_): Update.
45268	(topofframe): Add one more cast, to avoid warnings.
45269	* spvw.d (symbol_tab_ptr_as_object): Update.
45270	* spvw_allocate.d (pointable_usable_test): Update.
45271	* spvw_circ.d (get_circ_mark, get_circ_unmark): Depend on
45272	IMMEDIATE_FFLOAT.
45273	* spvw_garcol.d (gc_mark, alive): Depend on IMMEDIATE_FFLOAT.
45274	(pointer_as_object, pointer_was_object): Update.
45275	* spvw_global.d (init_mem_heaptypes): Depend on IMMEDIATE_FFLOAT.
45276	* spvw_mark.d (mark, unmark, marked): Update.
45277	* spvw_memfile.d (loadmem_update): Depend on IMMEDIATE_FFLOAT.
45278	* spvw_objsize.d (size_ffloat, objsize, objsize_ffloat)
45279	(init_objsize_table): Depend on IMMEDIATE_FFLOAT.
45280	* spvw_typealloc.d (allocate_ffloat): Depend on IMMEDIATE_FFLOAT.
45281	* constobj.d (hs_single_float, FF_zero, FF_one, FF_minusone): Depend
45282	on IMMEDIATE_FFLOAT.
45283	* aridecl.d (make_FF, FF_0, FF_1, FF_minus1): Depend on
45284	IMMEDIATE_FFLOAT.
45285	* ffloat.d (FF_to_float): Depend on IMMEDIATE_FFLOAT.
45286	* hashtabl.d (hashcode1): Use untype() only if WIDE && TYPECODES.
45287	* intelem.d (FN_MSD): Use typecode() only if WIDE && TYPECODES.
45288	* lisparit.d (init_arith): Depend on IMMEDIATE_FFLOAT.
45289	* predtype.d (eql): Depend on IMMEDIATE_FFLOAT.
45290	(enum_hs_single_float, heap_statistics_mapper): Likewise.
45291	* eval.d (closure_register): Do not undefine if WIDE_AUXI.
45292	* genclisph.d (main): Update.
45293
452942002-12-16  Sam Steingold  <sds@gnu.org>
45295
45296	* predtype.d (COERCE): accept CLOS class object as a type-spec
45297	when cannot coerce, signal a TYPE-ERROR
45298	when coercing FLOAT to COMPLEX, return (complex x (float 0 x))
45299	* compelem.d (F_complex_C): new function
45300	* lispbibl.d (F_complex_C): declare it
45301
453022002-12-16  Sam Steingold  <sds@gnu.org>
45303
45304	* compiler.lisp (disassemble-closure): print the list of special
45305	variables read and written
45306
453072002-12-16  Sam Steingold  <sds@gnu.org>
45308
45309	* type.lisp (*canonicalize-type-prefer-clos*): new variable
45310	(canonicalize-type): depending on *canonicalize-type-prefer-clos*,
45311	return a CLOS class (e.g., NUMBER) or a list (e.g., (OR REAL COMPLEX))
45312	(subtypep): try CLOS before playing with lists
45313
453142002-12-16  Bruno Haible  <bruno@clisp.org>
45315
45316	* lispbibl.d (DYNAMIC_8BIT_VECTOR): Rename from DYNAMIC_BIT_VECTOR.
45317	Expect the length in bytes, not bits.
45318	(FREE_DYNAMIC_8BIT_VECTOR): Rename from FREE_DYNAMIC_BIT_VECTOR.
45319	* stream.d: Update callers.
45320	* pathname.d: Update callers.
45321
453222002-12-04  Bruno Haible  <bruno@clisp.org>
45323
45324	* lispbibl.d: Reorder some definitions, so that 'object' and
45325	'gcv_object_t' get defined earlier.
45326
45327	* hashtabl.d (sxhash_atom): Really mask out all non-type bits.
45328
45329	* io.d (fehler_read_eval_forbidden): Use const.
45330
45331	* package.d (import): Remove unused macros CONFLICT1, CONFLICT2.
45332
45333	* pathname.d (directory_diff_ab): Remove extra declaration.
45334
45335	* amigaaux.d: Use WIDE_SOFT instead of WIDE.
45336	* spvw_allocate.d (mymalloc): Likewise.
45337
45338	* lispbibl.d (fake_gcv_object): New macro.
45339	(SAVE_REGISTERS, finish_entry_frame, make_HANDLER_frame): Use it.
45340	* eval.d (funcall_iclosure, interpret_bytecode_): Likewise.
45341	* control.d (make_variable_frame, finish_flet): Likewise.
45342
453432002-12-15  Sam Steingold  <sds@gnu.org>
45344
45345	* stream.d (stream_handles): handle KEYBOARD-STREAMs
45346
453472002-12-15  Sam Steingold  <sds@gnu.org>
45348
45349	* lispbibl.d (DYNAMIC_BIT_VECTOR): make an 8bit vector, not 1bit
45350	vector, because READ-FLOAT, WRITE-FLOAT, WRITE-INTEGER and
45351	WRITE-FLOAT will pass this bit vector to STREAM-READ-BYTE-SEQUENCE
45352	and STREAM-WRITE-BYTE-SEQUENCE
45353
453542002-12-13  Sam Steingold  <sds@gnu.org>
45355
45356	CLUE and CLIO now compile with MIT-CLX
45357	* modules/clx/mit-clx/dependent.lisp (radians->int16)
45358	(int16->radians): avoid floating contagion warnings
45359	* modules/clx/mit-clx/depdefs.lisp
45360	(*def-clx-class-use-defclass*): set to '(window drawable pixmap)
45361	* modules/clx/mit-clx/clx.lisp: (provide :clx)
45362
453632002-12-13  Sam Steingold  <sds@gnu.org>
45364
45365	* stream.d (kbd_last_buf): new function
45366	(rd_ch_keyboard): use it to flush UnbufferedStream_bytebuf before
45367	checking strm_keyboard_buffer: this fixes a bug in
45368	LISTEN/READ-CHAR interaction: listen would consume the char and
45369	READ-CHAR will never see it, while LISTEN will now always return T
45370	Reported by Jamison Masse <jamison@redwood.snu.ac.kr>
45371
453722002-12-12  Sam Steingold  <sds@gnu.org>
45373
45374	* stream.d (key_event): rename to key_event_t
45375	(add_keybinding): rename to keybinding();
45376	second argument is a struct, not a pointer now
45377	(keybinding): remove the macro
45378	(make_keyboard_stream): use new macros BIND_KEY() and CHECK_CAP()
45379
453802002-12-12  Sam Steingold  <sds@gnu.org>
45381
45382	reversed the 2001-11-27 patch: elt_nreverse() reverses
45383	_bits_ in the bitvector, while we need to swap _bytes_
45384	* stream.d (byte_swap): new function
45385	(READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
45386	use it instead of elt_nreverse()
45387	Reported by Bernard Urban <Bernard.Urban@meteo.fr>
45388
453892002-12-12  Sam Steingold  <sds@gnu.org>
45390
45391	* init.lisp (expand-form): export the code walker
45392
453932002-12-12  Sam Steingold  <sds@gnu.org>
45394
45395	* unixconf.h.in (ENABLE_NLS): add (this fixes
45396	the 2002-07-19 lispbibl.d patch)
45397
453982002-12-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>
45399
45400	* pathname.d (TrueName) [WIN32_NATIVE]: fix a bug -
45401	assure_dir_exists returned false on D:\ (D - any drive).
45402
454032002-12-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>
45404
45405	Fix MSVC compilation
45406	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
45407	(socket_options): use SOCKLEN_T instead of socklen_t.
45408	* spvw_mmap.d (mmap_zeromap) [HAVE_WIN32_VM]: fix declaration.
45409
454102002-12-11  Sam Steingold  <sds@gnu.org>
45411
45412	* reploop.lisp (debug-inspect-error): new function
45413	(commands1): bind it to Inspect/:i
45414	(break-loop): handle inspect-error catch'ed return
45415
454162002-12-11  Sam Steingold  <sds@gnu.org>
45417
45418	* debug.d (break_driver): restore back_trace before
45419	unwind()/reset() when the error is not continuable;
45420	use const and p_backtrace_t as appropriate
45421
454222002-12-11  Sam Steingold  <sds@gnu.org>
45423
45424	DRIBBLE now works by redefining *TERMINAL-IO* instead of a host
45425	of i/o variables; new type DRIBBLE-STREAM
45426	* dribble.lisp: full rewrite
45427	* savemem.lisp (saveinitmem): DRIBBLE-RESET is no longer needed
45428
454292002-12-04  Bruno Haible  <bruno@clisp.org>
45430
45431	Avoid conditional expressions of the form
45432	 (bool ? object : gcv_object_t) or (bool ? gcv_object_t : object).
45433	* aridecl.d (FF_0, FF_1, FF_minus1, DF_0, DF_1, DF_minus1): Cast
45434	to object.
45435	* array.d (bit_up): Cast conditional expression branch to object.
45436	* compelem.d (N_realpart_R, N_imagpart_R): Likewise.
45437	* debug.d (read_form): Likewise.
45438	* encoding.d (SYSTEM::CHARSET-RANGE, init_dependent_encodings):
45439	Likewise.
45440	* eval.d (interpret_bytecode_): Likewise.
45441	* foreign.d (convert_from_foreign, foreign_with_pointers_p)
45442	(convert_to_foreign): Likewise.
45443	* i18n.d (SYS::TEXT): Likewise.
45444	* io.d (klammer_auf, FORMAT-TABULATE): Likewise.
45445	* lisparit.d (NUMERATOR, DENOMINATOR): Likewise.
45446	* package.d (PACKAGE-ITERATE): Likewise.
45447	* pathname.d (pathname_host_maybe, pathname_device_maybe)
45448	(pathname_version_maybe): Add cast to object.
45449	(xpathname_host, xpathname_directory, xpathname_name, xpathname_type)
45450	(xpathname_version): Cast conditional expression branch to object.
45451	(string2wild, wild2string): Likewise.
45452	(NAMETYPE_MATCH): Likewise.
45453	(MAKE-LOGICAL-PATHNAME): Likewise.
45454	(version_diff, translate_nametype_aux): Likewise.
45455	* predtype.d (COERCE): Likewise.
45456	* record.d (class_of): Likewise.
45457	* spvw_circ.d (subst_circ_mark): Likewise.
45458	* stream.d (check_stream, check_wr_int): Likewise.
45459	(get_synonym_stream): Likewise.
45460	(Truename_or_Self): Likewise.
45461	(handle_set, handle_isset): Likewise.
45462	(init_standard_io): Likewise.
45463
454642002-12-04  Bruno Haible  <bruno@clisp.org>
45465
45466	* lispbibl.d (object) [WIDE_STRUCT]: Wrap the union in struct.
45467	(as_object, typecode, mtypecode, untype, type_pointable): Update.
45468	* genclisph.d (main): Update.
45469
454702002-12-09  Sam Steingold  <sds@gnu.org>
45471
45472	* lispbibl.d (p_backtrace_t): new type, mostly useful for
45473	debugging back_trace issues in C++ mode
45474	(back_trace_check): declared
45475	(BT_CHECK, BT_CHECK1): new CPP macros
45476	(saved_back_trace, back_trace, _back_trace, _saved_back_trace):
45477	type p_backtrace_t
45478	* genclisph.d, spvw.d, spvw_garcol.d: ditto
45479	* spvw_debug.d (back_trace_check): implement
45480	(back_trace_depth, back_trace_out): handle circular back_trace
45481
454822002-12-09  Bruno Haible  <bruno@clisp.org>
45483
45484	* arilev1i.d (add_loop_down, addto_loop_down, sub_loop_down)
45485	(subx_loop_down, subfrom_loop_down): Limit variable scope to make
45486	it compile in C++ mode.
45487
454882002-12-09  Sam Steingold  <sds@gnu.org>
45489
45490	* spvw_garcol.d (gar_col_normal): gc_mark() bt_caller's even
45491	though we are certain they have already been marked, since Bruno
45492	said: "Better safe than sorry"
45493
454942002-12-04  Bruno Haible  <bruno@clisp.org>
45495
45496	* lispbibl.d (gcv_environment_t): New type.
45497	(aktenv): Change type to gcv_environment_t.
45498	(make_STACK_env): Use gcv_environment_t.
45499	(nest_env): Change argument and return type to gcv_environment_t*.
45500	(get_closure): Change argument type to gcv_environment_t*.
45501	* spvw.d (aktenv): Change type to gcv_environment_t.
45502	* eval.d (nest_env): Change argument and return type to
45503	gcv_environment_t*.
45504	(get_closure): Change argument type to gcv_environment_t*.
45505	Do not mix environment_t and gcv_environment_t.
45506	(eval, eval_applyhook): Update.
45507	* control.d (compile_eval_form): Do not mix environment_t and
45508	gcv_environment_t.
45509	(EVALHOOK, APPLYHOOK): Likewise.
45510	* debug.d (same_env_as): Likewise.
45511	* predtype.d (COERCE): Update.
45512
45513	* array.d, control.d, eval.d, lispbibl.d, predtype.d, sequence.d:
45514	* spvw.d, spvw_circ.d, spvw_garcol.d, spvw_genera1.d, spvw_memfile.d:
45515	* spvw_objsize.d, spvw_update.d, spvwtabo.d: Use sizeof(gcv_object_t)
45516	where appropriate.
45517
455182002-12-08  Sam Steingold  <sds@gnu.org>
45519
45520	* lispbibl.d (backtrace_t): bt_caller is also a gcv_object_t(!)
45521	prefix all slots of backtrace_t with `bt_'
45522	(unwind_back_trace) [DEBUG_SPVW]: do circularity checking
45523	* debug.d, genclisph.d, spvw_debug.d, spvw_garcol.d: update
45524
455252002-12-06  Sam Steingold  <sds@gnu.org>
45526
45527	* makemake.in (check-sources): check that there are no variables
45528	of type gcv_object_t - only pointers to it (see lispbibl.d)
45529
455302002-12-06  Sam Steingold  <sds@gnu.org>
45531
45532	* modules/clx/new-clx/demos/sokoban.lisp: provide "sokoban"
45533	(sokoban): check that *display* is alive
45534	* modules/clx/new-clx/demos/qix.lisp: provide "qix"
45535	* modules/clx/new-clx/demos/clx-demos.lisp (CLX-DEMOS): use XLIB
45536	and EXT and shadow some symbols to avoid conflicts
45537	(getenv): remove (there is one in EXT)
45538	replace the EVAL-WHEN kludge with REQUIRE
45539	* modules/clx/new-clx/clx.lisp (closed-display-p, x-error): export
45540	use PRINT-OBJECT, not :PRINT-FUNCTION DEFSTRUCT option
45541	use (DEFSETF foo set-foo) instead of (SETF (FDEFINITION '(SETF
45542	foo)) #'set-foo) for all setters
45543	(make-gcontext): new function (for clue)
45544	(x-error, closed-display): new conditions (complete)
45545	(request-error, resource-error, request-error, resource-error)
45546	(access-error, alloc-error, atom-error, colormap-error)
45547	(connection-failure, cursor-error, device-busy, drawable-error)
45548	(font-error, gcontext-error, id-choice-error, implementation-error)
45549	(length-error, lookup-error, match-error, missing-parameter)
45550	(name-error, pixmap-error, reply-length-error, reply-timeout)
45551	(sequence-error, server-disconnect, unexpected-reply)
45552	(unknown-error, value-error, window-error): new conditions (just
45553	the stubs)
45554	* modules/clx/new-clx/clx.f (closed_display_error): new function
45555	(isa_struct_p): use memq() instead of an explicit loop
45556	(ensure_living_display): return Bool indicator of whether the
45557	display has been closed
45558	(CLOSED-DISPLAY-P): new public function
45559	(CLOSE-DISPLAY): mark the display as closed
45560	by setting fp_pointer to NULL
45561	(display_hash_table, pop_display, general_lookup): signal a
45562	CLOSED-DISPLAY error when ensure_living_display() returns false
45563	(get_ptr_object_and_display, get_xid_object_and_display): use
45564	pop_display() instead of ensure_living_display()
45565	(SET-DISPLAY-AFTER-FUNCTION): do not call
45566	ensure_living_display() twice
45567	(xlib_after_function): no need to call ensure_living_display()
45568	converted *-SETTER --> SET-*
45569	* modules/clx/new-clx/e2d.c (do_defun): terminate name on '('
45570
455712002-12-04  Bruno Haible  <bruno@clisp.org>
45572
45573	* lispbibl.d (gcv_object_t): New type.
45574	(kvtable_data): Do not confuse object and void*.
45575	(copy_mem_b, copy_mem_o): Use const.
45576	* genclisph.d (main): Emit gcv_object_t type.
45577	* affi.d, array.d, charstrg.d, comptran.d, constobj.d, control.d:
45578	* debug.d, encoding.d, error.d, eval.d, foreign.d, hashtabl.d, io.d:
45579	* lisparit.d, list.d, modules.d, package.d, pathname.d, predtype.d:
45580	* realtran.d, record.d, rexx.d, sequence.d, spvw.d, spvw_circ.d:
45581	* spvw_garcol.d, spvw_genera1.d, spvw_genera2.d, spvw_genera3.d:
45582	* spvw_heap.d, spvw_mark.d, spvw_memfile.d, spvw_page.d:
45583	* spvw_sigsegv.d, spvw_typealloc.d, spvw_update.d, stream.d:
45584	* subr.d, symbol.d: Use gcv_object_t instead of object where
45585	appropriate.
45586	* charstrg.d (char_name, name_char): Use const.
45587	* hashtabl.d (hashcode3_atom): Likewise.
45588
455892002-12-05  Sam Steingold  <sds@gnu.org>
45590
45591	* lispbibl.d (lp_limit_1, ca_limit_1): set to 2^12-1
45592	* spvw.d (main) [DEBUG_SPVW]: check that the STACK depth is more
45593	that CALL-ARGUMENTS-LIMIT
45594
455952002-12-05  Sam Steingold  <sds@gnu.org>
45596
45597	* modules/clx/new-clx/clx.f (get_event_mask): fix error handling
45598	remove saving/restoring subr_self throughout
45599	applied the macrology patch (boundp, missingp, VALUES1 &c)
45600	(display_hash_table): replace STACK_0 instead of returning a value
45601	(make_xid_obj_2): reflect this change
45602	* modules/clx/new-clx/clx.lisp (*GCONTEXT-COMPONENTS*):
45603	define the constant (required by CLUE)
45604	* modules/clx/new-clx/demos/sokoban.lisp (*xpm-directory*)
45605	(*screen-directory*): use *LOAD-TRUENAME*, not *LOAD-PATHNAME*,
45606	and make sure that :NAME and :TYPE are NIL
45607	(save-state, load-state): use WITH-STANDARD-IO-SYNTAX
45608	(*sokoban-debug*): new variable; `d' - new command
45609
456102002-12-04  Bruno Haible  <bruno@clisp.org>
45611
45612	* foreign.d (convert_function_to_foreign, init_ffi): Add casts to make
45613	it compile in C++ mode.
45614
456152002-12-04  Sam Steingold  <sds@gnu.org>
45616
45617	* loop.lisp (expand-loop): remove the `initializations2'
45618	optimization which bound some iteration variables right around
45619	the main-code: this allows accessing iteration variables in the
45620	finally clauses (this also shortens the bytecode)
45621
456222002-12-04  Sam Steingold  <sds@gnu.org>
45623
45624	* defmacro.lisp (make-length-test): use EXT:LIST-LENGTH-DOTTED
45625	instead if LENGTH because the argument may be dotted when it comes
45626	from a destructuring lambda list
45627
456282002-12-03  Sam Steingold  <sds@gnu.org>
45629
45630	* stream.d (MAKE-WINDOW): do not assume that *TERMINAL-IO* is a
45631	terminal-stream
45632	(FILE-POSITION): decrement the position if a character has been
45633	unread (so that PEEK-CHAR does not modify FILE-POSITION)
45634
456352002-12-02  Sam Steingold  <sds@gnu.org>
45636
45637	* spvw_debug.d (nobject_out): handle characters
45638
456392002-12-02  Sam Steingold  <sds@gnu.org>
45640
45641	* foreign1.lisp (finalize-coutput-file): produce ANSI C,
45642	compilable with a C++ compiler such as g++
45643
456442002-12-02  Sam Steingold  <sds@gnu.org>
45645
45646	fix bug#136: ffi:def-c-enum broken from .fas file
45647	* foreign1.lisp (def-c-enum): use DEF-C-TYPE to define the enum
45648	type to C `int'
45649
456502002-12-02  Sam Steingold  <sds@gnu.org>
45651
45652	* int2adic.d (D_D_mal2adic_D, UDS_UDS_durch2adic_UDS):
45653	avoid "warning: statement with no effect"
45654	* hashtabl.d (hashcode, CLASS-TUPLE-GETHASH): ditto
45655
456562002-12-01  Bruno Haible  <bruno@clisp.org>
45657
45658	* spvw_debug.d (nobject_out): Fix compilation error when !DYNAMIC_FFI.
45659
456602002-12-01  Bruno Haible  <bruno@clisp.org>
45661
45662	Make it buildable with CC=g++.
45663
45664	* m4/proto.m4 (CL_PROTO_RET): Add an argument, the ANSI-DECL.
45665	* m4/abort.m4 (CL_ABORT): Update.
45666	* m4/closedir.m4 (CL_CLOSEDIR): Update.
45667	* m4/free.m4 (CL_FREE): Make it work better with CC=g++.
45668	* m4/getpagesize.m4 (CL_GETPAGESIZE): Update.
45669	* m4/putenv.m4 (CL_PUTENV): Avoid buggy AC_CHECK_FUNCS(putenv).
45670	* m4/select.m4 (RL_SELECT): Avoid buggy AC_CHECK_FUNCS(select).
45671	(CL_SELECT): Likewise.
45672	* m4/shmat.m4 (CL_SHMAT): Make it work better with CC=g++.
45673	* m4/signal.m4 (RL_RETSIGTYPE): Make it work better with CC=g++.
45674	* m4/strlen.m4 (CL_STRLEN): Make it work better with CC=g++.
45675
45676	* cjk.h (is_cjk_encoding): Convert declaration to ANSI C.
45677	* uniname.c (unicode_name_word, unicode_name_word_lookup)
45678	(unicode_character_name, unicode_name_character): Convert declaration
45679	to ANSI C.
45680	* uniname.h (unicode_character_name, unicode_name_character): Convert
45681	declaration to ANSI C.
45682	* width.c (uc_width): Likewise.
45683
45684	* utils/ccmp2c.c (token_type_t): Rename from enum token_t.
45685
45686	* debug.d (read_form): Limit variable scope because of 'goto'.
45687	(SHOW-STACK): Add a cast.
45688	* eval.d (sym_value): Limit variable scope because of 'goto'.
45689	(setq): Likewise.
45690	(nest_env): Move variable declaration because of 'goto'.
45691	(eval_closure): Bug fix: Avoid setting the STACK to an uninitialized
45692	value in case of error.
45693	(apply): Move error code because of 'goto'.
45694	(apply_closure): Likewise.
45695	(funcall): Likewise.
45696	* io.d (write_sstring_case): Move some code because of 'goto'.
45697	(pr_enter_1): Limit variable scope because of 'goto'.
45698	* realelem.d (defaultfloatcase): Move variable declaration because of
45699	'goto'.
45700	* spvw.d (main): Limit variable scope because of 'goto'.
45701	* spvw_debug.d (string_out): Fix element type of buffer.
45702	* spvw_memfile.d (loadmem_update_fsubr): Add cast.
45703	* stream.d (lisp_completion): Limit variable scope because of 'goto'.
45704	(rd_ch_terminal3): Add some casts.
45705	(sock_opt_bool, sock_opt_int, sock_opt_time, SOCKET-OPTIONS): Use
45706	socklen_t instead of 'int'.
45707	(read_line): Bug fix: Avoid using uninitialized variable in error
45708	message.
45709	* unix.d (ioctl): Move declaration after <sys/ioctl.h> has been
45710	included.
45711
457122002-12-01  Sam Steingold  <sds@gnu.org>
45713
45714	* stream.d (check_wr_char): new macro (used in 18 places)
45715
457162002-11-30  Sam Steingold  <sds@gnu.org>
45717
45718	* places.lisp (remove-plist): new function
45719	* inspect.lisp (with-http-output): use it instead of REMF
45720
457212002-11-28  Sam Steingold  <sds@gnu.org>
45722
45723	* loop.lisp (expand-loop): APPEND/NCONC do not allow backward
45724	consing because REVAPPEND/NRECONC drop the last atom in dotted lists
45725
457262002-11-28  Sam Steingold  <sds@gnu.org>
45727
45728	* pprint.lisp (with-gensyms): append the variable name
45729	to GENSYM prefix
45730
457312002-11-27  Sam Steingold  <sds@gnu.org>
45732
45733	fix bug#135: Segfault when overriding stdin
45734	* stream.d (read_line): call ssstring_append_extend() only when len>0
45735
457362002-11-26  Sam Steingold  <sds@gnu.org>
45737
45738	* list.d (list_length): new function
45739	(LIST-LENGTH, LIST-LENGTH-DOTTED): use it
45740	* subr.d, constsym.d (LIST-LENGTH-DOTTED): add
45741	* init.d (LIST-LENGTH-DOTTED): exported
45742	* describe.lisp (LIST-LENGTH-DOTTED): defined in list.d now
45743
457442002-11-25  Sam Steingold  <sds@gnu.org>
45745
45746	* loop.lisp (expand-loop): when IT keyword is not appropriate,
45747	treat it as a variable and hope it is bound somewhere
45748	- THEREIS clause adds NIL to RESULTS to
45749	prevent ambiguity in the return values
45750	- when summing (or counting &c) into a variable for which the type has
45751	been declared, make sure it is initialized to that particular type
45752
457532002-11-25  Sam Steingold  <sds@gnu.org>
45754
45755	* loop.lisp (loop-syntax-error, expand-loop): macro-expansion-time
45756	errors have type SOURCE-PROGRAM-ERROR
45757
457582002-11-25  Sam Steingold  <sds@gnu.org>
45759
45760	use C standard I/O <stdio.h> instead of asciz_out() and friends
45761	* acorn.d, encoding.d, error.d, genclisph.d, io.d, misc.d:
45762	* msdos.d, pathname.d, socket.d, spvw.d, stream.d:
45763	do not include <stdio.h> here
45764	* lispbibl.d: include <stdio.h>
45765	(asciz_out, asciz_out_s, asciz_out_ss, asciz_out_1, asciz_out_2)
45766	(asciz_out_3, asciz_out_1_, asciz_out_2_, asciz_out_3_, dez_out)
45767	(dez_out_, hex_out, hex_out_, mem_hex_out): remove
45768	(STACK_diff): new macro
45769	(bt_beyond_stack_p): use it
45770	(OS_error, OBJECT_OUT, OS_file_error, OS_filestream_error):
45771	use fprintf(), fputs() &c instead of asciz_out() and friends
45772	(nobject_out): declare
45773	* affi.d (reg_call): ditto
45774	* amigaaux.d (abort, init_amiga): ditto
45775	* avl.d (AVL/out): ditto
45776	* erramiga.d, errunix.d, errwin32.d (errno_out): ditto
45777	* predtype.d (with_gc_statistics): ditto
45778	* rexx.d (debug_asciz_out, debug_out_1): ditto
45779	* spvw.d (SP_ueber, STACK_ueber, fsubr_argtype, subr_argtype)
45780	(fehler_code_alignment, init_subr_tab_1, init_module_2)
45781	(usage, main): ditto
45782	* spvw_alloca.d (malloca): ditto
45783	* spvw_allocate.d (error_speicher_voll, make_space_gc_true)
45784	(make_space_gc_false, make_space_gc): ditto
45785	* spvw_fault.d (handle_mmap_fault, handle_fault, xmprotect): ditto
45786	* spvw_garcol.d (gc_unmarkcheck, gar_col_normal): ditto
45787	* spvw_global.d (check_gc_consistency, check_gc_consistency_2): ditto
45788	* spvw_memfile.d (loadmem, loadmem_from_handle): ditto
45789	* spvw_mmap.d (mmap_zeromap, mmap_prepare, mmap_filemap)
45790	(mprotect, mmap_init): ditto
45791	* spvw_multimap.d (initmap, msync_mmap_intervals, fdmap, idmap)
45792	(open_temp_fd, fdsave, close_temp_fd, exitmap, open_shmid)
45793	(shmsave, close_shmid): ditto
45794	* spvw_sigsegv.d (sigsegv_handler_failed): ditto
45795	* stream.d (rd_ch_keyboard) [WIN32_NATIVE]: ditto
45796	* win32aux.d (DumpProcessMemoryMap): ditto
45797	* pathname.d (string_concat): ditto
45798	(debug_output, debug_printf): remove
45799	(DOUT, SDOUT): use object_out() and nobject_out()
45800	* debug.d (back_trace_out): moved to spvw_debug.d
45801	* spvw_debug.d (asciz_out, asciz_out_s, asciz_out_ss, asciz_out_1)
45802	(asciz_out_2, asciz_out_3, asciz_out_1_, asciz_out_2_, asciz_out_3_)
45803	(dez_out, dez_out_, hex_out, hex_out_): remove
45804	(mem_hex_out): turned into local, use fputs(), not asciz_out()
45805	(string_out, nobject_out): non-consing, STACK non-modifying output
45806	(back_trace_depth): new function
45807	(back_trace_out): moved here, use nobject_out() and STACK_diff()
45808
458092002-11-23  Sam Steingold  <sds@gnu.org>
45810
45811	* eval.d (interpret_bytecode, eval_closure, apply_closure)
45812	(funcall_closure, interpret_bytecode_): wrap calls to
45813	funcall_iclosure() and interpret_bytecode_() with a
45814	with_saved_back_trace()
45815	(interpret_bytecode_): do not augment back_trace
45816
458172002-11-23  Sam Steingold  <sds@gnu.org>
45818
45819	* spvw_garcol.d (gar_col_normal) [DEBUG_SPVW]: check that all
45820	callers in back_trace have been already marked
45821
458222002-11-16  Sam Steingold  <sds@gnu.org>
45823
45824	* loop.lisp (expand-loop): fix a bug: check that accumulation
45825	variables have not been bound yet (by iteration or WITH clauses)
45826
458272002-11-15  Sam Steingold  <sds@gnu.org>
45828
45829	* loop.lisp (expand-loop): fix a bug: package argument for
45830	symbol iteration is not required and defaults to *PACKAGE*
45831
458322002-11-15  Sam Steingold  <sds@gnu.org>
45833
45834	replace subr_self with back_trace
45835	* lispbibl.d, genclisph.d, spvw.d (backtrace_t): new struct
45836	(*back_trace_reg*): rename from *subr_self_reg*
45837	(HAVE_SAVED_back_trace): rename from HAVE_SAVED_subr_self
45838	(saved_back_trace): rename from saved_subr_self
45839	(bt_beyond_stack_p, unwind_back_trace, with_saved_back_trace):
45840	new macros
45841	(enter_frame_at_STACK): call unwind_back_trace()
45842	* array.d (eltype_code, initial_contents): do not save subr_self
45843	(initial_contents_aux): do not set subr_self
45844	* charstrg.d, control.d, error.d, foreign.d, hashtabl.d:
45845	* lisparit.d, package.d, record.d, rexx.d: do not mention subr_self
45846	as an argument in the comments
45847	* debug.d (driver, break_driver): bind back_trace
45848	(print_back_trace, back_trace_out): new functions
45849	(DESCRIBE-FRAME): call print_back_trace()
45850	(show_stack): new function
45851	(SHOW-STACK): call show_stack() and accept 3 arguments
45852	* subr.d (SHOW-STACK): reflect this change
45853	* reploop.lisp (debug-backtrace): use SHOW-STACK instead of a loop
45854	* encoding.d (CONVERT-STRING-FROM-BYTES): do not save subr_self
45855	* eval.d (unwind_upto): call unwind_back_trace() explicitly at
45856	the beginning, even though it is called by enter_frame_at_STACK()
45857	(eval_fsubr, apply_subr, funcall_subr, interpret_bytecode_):
45858	use with_saved_back_trace() instead of setting subr_self
45859	* io.d (SET-DISPATCH-MACRO-CHARACTER): no need to restore subr_self
45860	* list.d (member, MEMBER-IF, MEMBER-IF-NOT, ADJOIN):
45861	no need to save subr_self
45862	* pathname.d (coerce_xpathname, parse_as_logical, coerce_pathname)
45863	(defaults_pathname, assure_dir_exists, prepare_create)
45864	(directory_search, DYNLOAD-MODULES): ditto
45865	(ENOUGH-NAMESTRING, assume_dir_exists): use
45866	with_saved_back_trace() instead of setting subr_self
45867	(NAMESTRING, copy_one_file): no need to set subr_self
45868	* predtype.d (COERCE): no need to set subr_self
45869	* sequence.d (fehler_seqtype_length): use subr_self in error
45870	reporting (we now know that it is correct)
45871	(end_default_len, SUBSEQ, COERCED-SUBSEQ, seq_filterop)
45872	(seq_duplicates, find_op, position_op, count_op):
45873	no need to save and restore subr_self
45874	(copy_seqpart_into, FILL): use with_saved_back_trace()
45875	instead of setting subr_self
45876	(MISMATCH, SEARCH): no need to set subr_self
45877	* spvw_garcol.d (gar_col_normal): update callers in back_trace,
45878	they are all on the stack so we do not need to mark them
45879	(gar_col_simple, gar_col): no need to save and restore subr_self
45880	* stream.d (test_eltype_arg, sec_usec, check_float_eltype): ditto
45881	(read_line): use with_saved_back_trace() instead of setting subr_self
45882
458832002-11-15  Sam Steingold  <sds@gnu.org>
45884
45885	* m4/libtool.m4: upgraded to libtool-1.4.3
45886
458872002-11-14  Sam Steingold  <sds@gnu.org>
45888
45889	moved %REMF and %PUTF to C to unify all plist handling in one place
45890	* symbol.d (fehler_sym_plist_odd): rename from fehler_plist_odd()
45891	(fehler_plist_odd): new function for property lists (not
45892	associated with any symbol)
45893	(plist_find): generic property list search
45894	(get, GETF, %PUT, REMPROP): use plist_find()
45895	(%PUTF, %REMF): new functions (use plist_find())
45896	* subr.d, constsym.d (%PUTF, %REMF): new functions
45897	* places.lisp (remf): use the built-in SYS::%REMF
45898	(%putf): remove
45899
459002002-11-10  Sam Steingold  <sds@gnu.org>
45901
45902	* spvw.d (SP_ueber, STACK_ueber): quit when CLISP is non-interactive
45903
459042002-11-06  Sam Steingold  <sds@gnu.org>
45905
45906	* compiler.lisp (c-FORMAT): when destination is T, pass
45907	*STANDARD-OUTPUT* to the value of the FORMATTER call, not NIL;
45908	also treat destination NIL specially
45909
459102002-11-05  Sam Steingold  <sds@gnu.org>
45911
45912	* clos.lisp (documentation): implement
45913	(ensure-class): use SYS::%SET-DOCUMENTATION instead
45914	of (SETF DOCUMENTATION)
45915	* defstruct.lisp (defstruct): ditto
45916	* defs2.lisp (defpackage): do not discard the documentation string
45917
459182002-11-04  Sam Steingold  <sds@gnu.org>
45919
45920	* macros1.lisp (declare): add a defmacro-special that expands to
45921	NIL: since DECLARE is not enumerated in the Figure 3-2, and it is
45922	a special operator in CLISP, a macro expander have to be provided
45923
459242002-11-03  Sam Steingold  <sds@gnu.org>
45925
45926	* defs2.lisp (defpackage): accept characters as symbol and
45927	package designators
45928	* init.lisp (in-package): accept characters as package designators
45929
459302002-11-02  Sam Steingold  <sds@gnu.org>
45931
45932	* package.d (unintern): do not put the same symbol into the
45933	options list twice
45934
459352002-11-02  Sam Steingold  <sds@gnu.org>
45936
45937	* pathname.d (directory_search_scandir): when returning from
45938	inside with_sstring_0, call FREE_DYNAMIC_ARRAY
45939
459402002-11-02  Sam Steingold  <sds@gnu.org>
45941
45942	* defs1.lisp (set-exclusive-or, nset-exclusive-or): call TEST and
45943	TEST-NOT with the arguments in the correct order, i.e., the first
45944	arg from the first list and the second arg from the second list
45945
459462002-11-01  Sam Steingold  <sds@gnu.org>
45947
45948	* defs1.lisp (do-symbols, do-external-symbols, do-all-symbols):
45949	wrap BODY-REST in TAGBODY
45950
459512002-11-01  Sam Steingold  <sds@gnu.org>
45952
45953	* package.d (shadow): accept characters too
45954	(test_stringsym_arg): remove
45955	(FIND-PACKAGE, test_names_args, %IN-PACKAGE, FIND-ALL-SYMBOLS):
45956	use test_stringsymchar_arg() instead of test_stringsym_arg()
45957	(apply_symbols) [X3J13_161]: pass characters to shadow()
45958	* constobj.d (type_stringsym): remove
45959	* charstrg.d, lispbibl.d (test_stringsymchar_arg): declare global
45960
459612002-11-01  Sam Steingold  <sds@gnu.org>
45962
45963	* package.d (FIND-PACKAGE): package object is a package designator too
45964
459652002-11-01  Sam Steingold  <sds@gnu.org>
45966
45967	* spvw.d (main): process argument `-p' _after_ all `-i' arguments
45968	so that the `-p' package can be created in one of the init files;
45969	this is backward compatible as long as all the files have an
45970	IN-PACKAGE statement, which they all certainly should have!
45971
459722002-11-01  Sam Steingold  <sds@gnu.org>
45973
45974	* condition.lisp, macros2.lisp (etypecase, ctypecase): when
45975	KEYCLAUSELIST contains T, expand to TYPECASE
45976
459772002-11-01  Sam Steingold  <sds@gnu.org>
45978
45979	* sequence.d (valid_type1): NULL --> (LIST 0); CONS --> (LIST (0) *)
45980	(fehler_seqtype_length): adjusted accordingly
45981	(SEQTYPE_LENGTH_MATCH): new macro
45982	(MAKE-SEQUENCE, coerce_sequence, COERCED-SUBSEQ, CONCATENATE, MAP)
45983	(MERGE): use it
45984
459852002-11-01  Sam Steingold  <sds@gnu.org>
45986
45987	* loop.lisp (li-vars): new inline function
45988	(expand-loop): check for duplicate iteration variables;
45989	use ATOM for ON iteration, as per ANSI CL spec
45990
459912002-10-31  Sam Steingold  <sds@gnu.org>
45992
45993	* error.d, lispbibl.d (fehler_lambda_expression):
45994	accept `caller' argument
45995	* symbol.d (%PUTD): pass caller to fehler_lambda_expression()
45996	* eval.d (coerce_function, apply, funcall): ditto
45997
459982002-10-30  Sam Steingold  <sds@gnu.org>
45999
46000	* error.d (fehler_proper_list): accept `caller' argument
46001	* control.d (ENDP): pass caller to fehler_proper_list()
46002	* lispbibl.d (list_to_mv): ditto
46003	* list.d (endp, memq1, LIST-LLENGTH): ditto
46004	* sequence.d (LENGTH): ditto
46005
460062002-10-30  Sam Steingold  <sds@gnu.org>
46007
46008	* lispbibl.d (restart): rename the typedef to restartf_t
46009	* control.d (UNWIND-PROTECT): ditto
46010	* eval.d (reset, invoke_handlers, interpret_bytecode_): ditto
46011	* spvw.d (quit): ditto
46012
460132002-10-28  Sam Steingold  <sds@gnu.org>
46014
46015	* compiler.lisp (signature): make it (:TYPE VECTOR) to avoid
46016	going through PRINT-OBJECT and MAKE-LOAD-FORM when compiling
46017	(function-signature): return function _name_ as the first value
46018	- this restores inline compilation
46019	(test-argument-syntax): with APPLY forms, one have to be more
46020	permissive wrt keyword arguments (a key may be explicitly in the
46021	list and the value maybe in the rest arguments)
46022	* init.lisp (nth-value, function-lambda-expression): export here
46023	for FUNCTION-SIGNATURE in compiler.lisp
46024
460252002-10-27  Sam Steingold  <sds@gnu.org>
46026
46027	* defs2.lisp (function-lambda-expression): always return a name,
46028	return the lambda expression for some compiled functions too
46029
460302002-10-25  Sam Steingold  <sds@gnu.org>
46031
46032	* eval.d (coerce_function): use fehler_function()
46033	* sequence.d (seq_boolop): ditto
46034	* symbol.d (%PUTD): ditto
46035
460362002-10-23  Sam Steingold  <sds@gnu.org>
46037
46038	* loop.lisp (expand-loop): separated `startup-code' from
46039	`initially-code' so that INITIALLY clauses can access variables
46040
460412002-10-23  Arseny Slobodjuck <ampy@ich.dvo.ru>
46042
46043	Bugfixing directory shortcuts on win32.
46044	* pathname.d (assure_dir_exists) [WIN32_NATIVE]:
46045	handle situation when dir exists but filename does not.
46046	(directory_search_scandir) [WIN32_NATIVE]: return symbolic
46047	name for nonexistent targets.
46048
460492002-10-22  Sam Steingold  <sds@gnu.org>
46050
46051	* complete.lisp (completion): call DESCRIBE only if there was
46052	something typed and it is in the completions
46053
460542002-10-22  Sam Steingold  <sds@gnu.org>
46055
46056	Make sure COMPILE-FILE-PATHNAME does not barf in SEARCH-FILE
46057	* init.lisp (search-file): pass :IF-DOES-NOT-EXIST :IGNORE to DIRECTORY
46058	* pathname.d (dir_search_if_none_t): add DIR_IF_NONE_IGNORE
46059	(directory_search_hashcode): never signal error, just return nullobj
46060	(directory_search_scandir): do not barf when DIR_IF_NONE_IGNORE,
46061	otherwise treat DIR_IF_NONE_IGNORE just like DIR_IF_NONE_DISCARD
46062	(directory_search): be more careful with subdirectories when
46063	DIR_IF_NONE_IGNORE
46064	(DIRECTORY): accept :IF-DOES-NOT-EXIST :IGNORE
46065	* constobj.d (type_directory_not_exist): add :IGNORE
46066
460672002-10-18  Sam Steingold  <sds@gnu.org>
46068
46069	* compiler.lisp (c-LABELS, c-GENERIC-LABELS): new macro ADD-FENV
46070	in their common MACROLET
46071
460722002-10-17  Sam Steingold  <sds@gnu.org>
46073
46074	* debug.d (read_form): do not nreverse STACK_2 before binding
46075	SYS::*KEY-BINDINGS*, since this destructively modifies commandsr
46076	in reploop.lisp
46077	* reploop.lisp (help): avoid much consing by not calling REVERSE +
46078	REMOVE-IF-NOT, this also simplifies the logic everywhere and makes
46079	the help message appear in the same order for different invocations
46080	(break-loop): push the restart announcement onto commandsr
46081	(break-loop, step-hook-fn): compute the command list just once,
46082	instead of for each READ-EVAL-PRINT invocation
46083
460842002-10-16  Sam Steingold  <sds@gnu.org>
46085
46086	* complete.lisp (completion): respect (readtable-case *readtable*)
46087	when printing and searching completions; do not close the
46088	parenthesis when quoting since readline will add a close quote
46089	after the closing parenthesis
46090
460912002-10-16  Sam Steingold  <sds@gnu.org>
46092
46093	* realtran.d (F_pi_round_I_F): remove
46094	(F_pi2_round_I_F): the second (integer) value is taken mod 4
46095	(cos_stack, sin_stack): new functions
46096	(R_sin_R, R_cos_R): rewrote to use them
46097
460982002-10-16  Arseny Slobodjuck <ampy@ich.dvo.ru>
46099
46100	Directory shortcuts on win32.
46101	* pathname.d (FullName): save final slash, respect it.
46102	(resolve_shell_shortcut): do not call IShellLink->Resolve
46103	do not need to substitute missing target with any other file.
46104	Try to use description field on missing symlinks.
46105	(shell_shortcut_target_t): resolve result enumeration.
46106	(resolve_shell_shortcut_more): new function - resolve links
46107	to links, returns target attributes.
46108	(TrueName): similar to FullName, but tries to resolve every
46109	pathname component up to filename.
46110	(resolve_shell_symlink): change result type, input parameters.
46111	(assure_dir_exists): split MSDOS and WIN32_NATIVE, the latter
46112	is rewritten.
46113	(directory_search_1subdir) [WIN32_NATIVE]: separate from others.
46114	Uses TrueName to handle links.
46115	(directory_search_hashcode) [WIN32_NATIVE]: new for win32.
46116	(directory_search_scandir) [WIN32_NATIVE]: rework.
46117	(directory_search) [WIN32_NATIVE]: handle :CIRCLE flag.
46118
461192002-10-16  Arseny Slobodjuck <ampy@ich.dvo.ru>
46120
46121	Fix build for MSVC.
46122	* win32.d (MyCreateProcess): declare 1st parameter as const
46123	* win32aux.d (MyCreateProcess): same.
46124	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
46125	(SOCKET-OPTIONS): change length parameter of [g|s]etsockopt
46126	to type int (uint is absent). Cast option to (char *) - as
46127	declared in winsock (won't hurt (void *) unix declaration).
46128
461292002-10-15  Sam Steingold  <sds@gnu.org>
46130
46131	* complete.lisp (completion): print help when nothing useful was
46132	entered (just some whitespace)
46133
461342002-10-14  Sam Steingold  <sds@gnu.org>
46135
46136	fix bug#126: values / multiple-value-list crash
46137	* lispbibl.d (list_to_mv): fix the check for mv_space overrun
46138	(mv_to_STACK): check space on STACK beforehand, not post-factum
46139
461402002-10-13  Sam Steingold  <sds@gnu.org>
46141
46142	* places.lisp (psetf): handle the empty form (PSETF) properly
46143
461442002-10-13  Sam Steingold  <sds@gnu.org>
46145
46146	* list.d (llength1): new global function, returning the last atom
46147	in addition to the list length
46148	(LIST-ENDTEST): use llength1: sequence functions expect proper sequences
46149	* lispbibl.d (llength1): declare
46150	(llength): define as a macro expanding to llength1()
46151	* sequence.d (LENGTH): use llength1 for lists and check for
46152	proper list termination
46153
461542002-10-13  Sam Steingold  <sds@gnu.org>
46155
46156	a character is a package designator too
46157	* package.d (test_package_arg, test_stringsym_arg)
46158	(DELETE-PACKAGE): convert characters to singleton strings
46159	(%SET-PACKAGE-LOCK): adapt to now triggering GC test_package_arg()
46160
461612002-10-13  Sam Steingold  <sds@gnu.org>
46162
46163	* sequence.d (MAKE-SEQUENCE): do not init strings with #\Space,
46164	keep the #\Null's from MAKE-STRING
46165
461662002-10-13  Sam Steingold  <sds@gnu.org>
46167
46168	MAPC[AR|ON|AN]/MAPL[IST] require proper lists
46169	* compiler.lisp (c-MAP-on-CARs-inner, c-MAP-on-LISTs, c-MAPL):
46170	use ENDP, not ATOM to check for the list end
46171	* control.d (MAPCAR_MAPLIST_BODY, MAPC_MAPL_BODY)
46172	(MAPCAN_MAPCON_BODY): ditto
46173	(ENDP): new macro
46174
461752002-10-13  Sam Steingold  <sds@gnu.org>
46176
46177	* list.d (TAILP): use EQL to compare the sublist, not EQ
46178
461792002-10-12  Sam Steingold  <sds@gnu.org>
46180
46181	* type.lisp (canonicalize-type): recognize typed structures;
46182	barf on symbols that do not name types
46183	(subtypep): handle ATOM properly
46184
461852002-10-12  Sam Steingold  <sds@gnu.org>
46186
46187	As per <http://www.lisp.org/HyperSpec/Body/sec_11-1-2-1-1.html>,
46188	external symbols in COMMON-LISP cannot have properties accessible
46189	in COMMON-LISP-USER, so we have to move EXT:MACRO to SYS::MACRO
46190	* init.lisp: do not export MACRO from EXT
46191	* lispbibl.d: fix comments
46192	* describe.lisp (describe-object): EXT:MACRO --> SYS::MACRO
46193	* constsym.d (macro): EXT --> SYS
46194	* constobj.d (hs_macro): EXT --> SYS
46195
461962002-10-12  Sam Steingold  <sds@gnu.org>
46197
46198	* pathname.d (DELETE-FILE): delete the argument, not its TRUENAME
46199
462002002-10-12  Sam Steingold  <sds@gnu.org>
46201
46202	* pathname.d (DIRECTORY): accept new :IF-DOES-NOT-EXIST argument
46203	(dir_search_if_none_t, dir_search_param_t): new typedefs
46204	(directory_search): accept a second dir_search_param_t argument
46205	(directory_search_scandir): accept a third dir_search_param_t argument
46206	* subr.d, subrkw.d (DIRECTORY): add :IF-DOES-NOT-EXIST
46207	* constobj.d (version): bumped (DIRECTORY is in FUNTAB)
46208	(type_directory_not_exist): new type
46209	* constsym.d (Kkeep, Kdiscard): new keywords
46210
462112002-10-11  Sam Steingold  <sds@gnu.org>
46212
46213	fix PEEK-CHAR for ECHO-STREAMs and non-NIL peek-type
46214	* io.d (wpeek_char_eof, PEEK-CHAR): use peek_char()+read_char(),
46215	not read_char()+unread_char() - for the sake of echo streams
46216
462172002-10-10  Sam Steingold  <sds@gnu.org>
46218
46219	* makemake.in (PARAMS): for the sake of a same-dir build, rename
46220	the temporary C file to tmp.c (instead of the actual name ${parf}.c)
46221	(XCFLAGS) [GCC-3 DEBUG]: add -falign-functions=4
46222
462232002-10-09  Sam Steingold  <sds@gnu.org>
46224
46225	* spvw_memfile.d (loadmem_from_handle): accept a second argument
46226	'filename' for better error reporting
46227
462282002-10-06  Sam Steingold  <sds@gnu.org>
46229
46230	* realelem.d (F_R_float_F, RA_R_float_F): use Lfloat_length(y)
46231	instead of O(LF_digits), when y is actually a long float
46232	(C_R_float_C, N_N_float_N): do not modify the first argument
46233	* realtran.d (R_cosh_sinh_R_R): handle start_p/end_p for x=0 too
46234	* comptran.d (N_N_log_N): fix a typo in the last patch
46235	(N_cis_N): (sin a) may be 0
46236	(N_exp_N): handle contagion properly
46237	(N_log_N): do not modify the complex argument
46238	(N_N_expt_N, N_tan_N, N_tanh_N): fix C_R_float_C/N_N_float_N calls
46239	* lisparit.d (EXP): pass a real as the 3rd arg of N_exp_N
46240	(LOG): pass a real as the 3rd arg of N_log_N
46241
462422002-10-04  Sam Steingold  <sds@gnu.org>
46243
46244	fix bug#132: LOOP: local variables shadowing globals
46245	* loop.lisp (expand-loop): initialize accumulation variables
46246	after iteration variables
46247
462482002-10-04  Sam Steingold  <sds@gnu.org>
46249
46250	* spvw.d (init_object_tab) [DEBUG_SPVW]: add :CLISP-DEBUG to features
46251	* compiler.lisp: COMPILER-DEBUG --> CLISP-DEBUG
46252	(make-anode) [CLISP-DEBUG]: define when LOAD
46253	[CLISP-DEBUG]: do not remprop SYS::DEFSTRUCT-DESCRIPTION,
46254
462552002-10-04  John Hinsdale <hin@alma.com>
46256
46257	* modules/oracle/oracle.lisp: More error checking throughout
46258
462592002-10-03  Sam Steingold  <sds@gnu.org>
46260
46261	* defs2.lisp (read-sequence, write-sequence): when deciding
46262	between byte and char i/o, check the sequence element type too
46263
462642002-10-02  Sam Steingold  <sds@gnu.org>
46265
46266	* lispbibl.d (test_symbol): moved here from symbol.d
46267	(test_symbol_non_constant): declare new function
46268	* error.d (test_symbol_non_constant): new function
46269	* control.d (funname_to_symbol): new function
46270	(FDEFINITION, FBOUNDP, FMAKUNBOUND): use it
46271	(fehler_funsymbol, fehler_symbol_constant): remove
46272	(FUNCTION, FLET, LABELS): use fehler_funname_source() instead of
46273	fehler_funsymbol()
46274	(check_setq_body, SET, MAKUNBOUND, COMPILER-LET)
46275	(MULTIPLE-VALUE-SETQ): use test_symbol_non_constant()
46276	(%SYMBOL-VALUE, SYMBOL-VALUE, SYMBOL-FUNCTION, BOUNDP)
46277	(SPECIAL-OPERATOR-P, BLOCK, RETURN-FROM)
46278	(MACRO-FUNCTION, PROCLAIM): use test_symbol()
46279	* eval.d (SPECIAL-VARIABLE-P): ditto
46280	(progv, get_closure): use test_symbol_non_constant()
46281	* i18n.d (SET-CURRENT-LANGUAGE): ditto
46282	* record.d (SYMBOL-MACRO-EXPAND): ditto
46283	* stream.d (SYMBOL-STREAM): ditto
46284	* symbol.d (test_symbol): moved to lispbibl.d
46285
462862002-10-02  Sam Steingold  <sds@gnu.org>
46287
46288	remove SYS::%FUNCALL
46289	* compiler.lisp (c-form-table): remove SYS::%FUNCALL
46290	(c-form, c-HANDLER-BIND, c-FUNCTION-CALL, c-MAP-on-CARs)
46291	(c-MAP-on-LISTs, c-MAPC, c-MAPL): use FUNCALL instead of SYS::%FUNCALL
46292	* defstruct.lisp (ds-arg-default): ditto
46293	* trace.lisp (get-traced-definition, trace-step-apply)
46294	(trace-pre-output, trace-post-output, trace-print): do not use
46295	SYS::%FUNCALL - call the inlined functions directly
46296	(trace-level-inc): remove
46297	* constsym.d, subr.d, control.d (pfuncall): remove
46298	* spvw.d (*MACROEXPAND-HOOK*): init to FUNCALL, not SYS::%FUNCALL
46299	* eval.d (macroexp0): use FUNCALL, not SYS::%FUNCALL
46300	(FUNTABR): remove _(pfuncall)
46301	* constobj.d (version): bumped (because of FUNTABR)
46302
463032002-10-02  Sam Steingold  <sds@gnu.org>
46304
46305	* stream.d (BUILT-IN-STREAM-ELEMENT-TYPE): resolve synonym streams
46306
463072002-10-01  Sam Steingold  <sds@gnu.org>
46308
46309	fix bug#130: distmakefile on cygwin uses `run', not `exe'
46310	* _distmakefile (lexe): new variable, init to @@LEXE@@
46311	* makemake.in (distmakefile): substitute ${LEXE} for @@LEXE@@
46312
463132002-10-01  Sam Steingold  <sds@gnu.org>
46314
46315	* m4/readline.m4: check for `rl_already_prompted' after
46316	AC_SEARCH_LIBS and define HAVE_READLINE on success
46317	* lispbibl.d, unixconf.h.in: use HAVE_READLINE instead of
46318	HAVE_READLINE_READLINE_H
46319
463202002-09-30  Sam Steingold  <sds@gnu.org>
46321
46322	* init.lisp (get-funname-symbol): moved here
46323	(defun): use GET-FUNNAME-SYMBOL instead of GET-SETF-SYMBOL
46324	* trace.lisp (check-traceable): ditto
46325	* places.lisp (get-setf-symbol): moved to init.lisp
46326
463272002-09-29  Sam Steingold  <sds@gnu.org>
46328
46329	* makemake.in: fix regeneration of intparam.h and floatparam.h
46330
463312002-09-29  Sam Steingold  <sds@gnu.org>
46332
46333	* m4/readline.m4 (CL_READLINE): check for `rl_already_prompted'
46334	and reject readline versions that lack it
46335
463362002-09-29  Sam Steingold  <sds@gnu.org>
46337
46338	* intparam.c: include <stdlib.h> for exit(3) to avoid a warning
46339
463402002-09-26  Sam Steingold  <sds@gnu.org>
46341
46342	SOCKET:SOCKET-OPTIONS - an interface to getsockopt/setsockopt
46343	* stream.d (sock_opt_bool, sock_opt_int, sock_opt_time)
46344	(SOCKET-OPTIONS): new functions
46345	* constsym.d (SOCKET-OPTIONS, :SO-*): add
46346	* subr.d (socket_options): add
46347	* constobj.d (type_socket_option): add
46348	* init.lisp (SOCKET-OPTIONS): export
46349
463502002-09-25  Sam Steingold  <sds@gnu.org>
46351
46352	* compiler.lisp (special-variable-p): add a COMPILER-MACRO
46353	* init.lisp (%the-environment-error): rename to %UNCOMPILABLE
46354
463552002-09-25  Sam Steingold  <sds@gnu.org>
46356
46357	* compiler.lisp (c-form): fix the same bug again:
46358	EXPAND-COMPILER-MACRO may return an atom.
46359	This bug has already been fix on 2002-02-28,
46360	but it was re-introduced on 2002-04-22.  Yuk.
46361
463622002-09-25  Sam Steingold  <sds@gnu.org>
46363
46364	* compiler.lisp: remove the cross-compilation infrastructure,
46365	which was not used for over 10 years!
46366
463672002-09-25  Sam Steingold  <sds@gnu.org>
46368
46369	* check-lispfun.lisp (check-lisp-defs): do not need explicit
46370	APPEASE-CERRORS
46371
463722002-09-25  Sam Steingold  <sds@gnu.org>
46373
46374	* eval.d (symbol_env_search): new function
46375	(sym_value, setq): use it
46376	(SPECIAL-VARIABLE-P): accept an optional second argument
46377	- the environment (NIL for global, T for local, VENV, or ENV5)
46378	moved here from symbol.d because it uses symbol_env_search()
46379	* subr.d (SPECIAL-VARIABLE-P): changed the signature
46380	* constobj.d (version): bumped because SPECIAL-VARIABLE-P is in FUNTAB
46381	* symbol.d (SPECIAL-VARIABLE-P): moved to eval.d
46382	* compiler.lisp (subr-info) [CROSS]: update the signature
46383	* error.d (fehler_environment): new function
46384	* lispbibl.d (fehler_environment): prototype it
46385	* control.d (test_optional_env_arg): use it
46386
463872002-09-23  Sam Steingold  <sds@gnu.org>
46388
46389	some code clean-up
46390	* describe.lisp (unicode-attributes): avoid a warning in LOOP
46391	* charstrg.d (eqcomp_fun_t): rename from `eqcomp_fun'
46392	* array.d (ADJUSTABLE-ARRAY-P): use VALUES_IF
46393	(uint_bitpack_t): rename from `uint_bitpack'
46394	(uint_2bitpack_t): rename from `uint_2bitpack'
46395	(initial_contents_locals_t): rename from `initial_contents_locals'
46396	(reshape_data): rename from `reshape_data'
46397	(test_array): turned into a function
46398	(ADJUST-ARRAY): use it
46399	* symbol.d (test_symbol): new function
46400	(%PUTD, %FIND-SUBR, GET, %PUTPLIST, %PUT, REMPROP, SYMBOL-PACKAGE)
46401	(SYMBOL-PLIST, SYMBOL-NAME, SPECIAL-VARIABLE-P): use it
46402	* debug.d (climb_fun_t): rename from `kletterfun'
46403
464042002-09-22  Arseny Slobodjuck <ampy@ich.dvo.ru>
46405
46406	Bring (directory) to compliance with new win32 shortcut handling.
46407	* pathname.d [WIN32_NATIVE]:
46408	(resolve_shell_shortcut): changed parameters and semantics to
46409	lower level (symlink is based on shortcuts which is
46410	an implementation method).
46411	(resolve_shell_symlink): use it, work as old
46412	resolve_shell_shortcut did.
46413	(assure_dir_exists): rename a call to it.
46414	(directory_search_scandir): now handles shortcuts specially.
46415
464162002-09-21  John Hinsdale <hin@alma.com>
46417
46418	* module/oracle/Makefile.in: better Oracle -I path for v8.0.5
46419
464202002-09-20  Sam Steingold  <sds@gnu.org>
46421
46422	* control.d (UNWIND-TO-DRIVER): accept a TOP-P argument
46423	(UNWIND-TO-TOP): remove
46424	* subr.d, constsym.d (UNWIND-TO-TOP): remove
46425	* subr.d, compiler.lisp (UNWIND-TO-DRIVER): changed the signature
46426	* eval.d (FUNTAB): add MEMQ
46427	* constobj.d (version): bumped because of UNWIND-TO-DRIVER and MEMQ
46428	* reploop.lisp (break-loop, step-hook-fn): do not use
46429	UNWIND-TO-TOP but pass an argument to UNWIND-TO-DRIVER
46430
464312002-09-20  Sam Steingold  <sds@gnu.org>
46432
46433	fix the OBSOLETE-ACTION patch
46434	* init.lisp (warn): the preliminary definition must return NIL
46435	(open-for-load): use SYS::BUILT-IN-STREAM-CLOSE instead of CLOSE
46436
464372002-09-20  Sam Steingold  <sds@gnu.org>
46438
46439	error reporting clean-up
46440	* charstrg.d (coerce_ss, coerce_imm_ss, coerce_normal_ss)
46441	(coerce_imm_normal_ss): use fehler_string() instead of explicit
46442	fehler(type_error,...)
46443	(test_char_arg): rename from test_newchar_arg(), use fehler_char()
46444	(STANDARD-CHAR-P, GRAPHIC-CHAR-P, CHAR-WIDTH, STRING-CHAR-P)
46445	(BASE-CHAR-P, ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P)
46446	(BOTH-CASE-P, DIGIT-CHAR-P, ALPHANUMERICP, CHAR-CODE)
46447	(CHAR-UPCASE, CHAR-DOWNCASE, CHAR-INT, CHAR-NAME, STORE-CHAR)
46448	(STORE-SCHAR): use test_char_arg()
46449
464502002-09-20  Sam Steingold  <sds@gnu.org>
46451
46452	LOAD now takes an additional :OBSOLETE-ACTION keyword
46453	* init.lisp (open-for-load): new function
46454	(load): use it to open the file
46455	(*load-obsolete-action*): new user variable
46456
464572002-09-20  Stefan Kain  <stefan.kain@freenet.de>
46458
46459	* constsym.d, subr.d, encoding.d, predtype.d, intlog.d, control.d:
46460	* charstrg.d, arihppa.d, array.d: translated all comments
46461
464622002-09-20  John Hinsdale <hin@alma.com>
46463
46464	* modules/oracle: Fix Makefile format and vars to work
46465	on more systems; take ORACLE_HOME from environment.
46466
464672002-09-20  Will Newton  <will@misconception.org.uk>
46468
46469	* ariarm.d: update ARM assembler code to the newer gas syntax
46470
464712002-09-19  Sam Steingold  <sds@gnu.org>
46472
46473	* lispbibl.d [SPARC GCC3]: disable global register declarations
46474	Suggested by Will Newton <will@misconception.org.uk>
46475
464762002-09-19  Sam Steingold  <sds@gnu.org>
46477
46478	* lisparit.d (log_digits): fix last patch: make sure
46479	that the saved value is not more precise than it is accurate
46480
464812002-09-18  Sam Steingold  <sds@gnu.org>
46482
46483	* makemake.in: treat floatparam.[ch] just like intparam.[ch]
46484
464852002-09-18  Sam Steingold  <sds@gnu.org>
46486
46487	* m4/fenv_default.m4: fix AC_DEFINE macro calls
46488
464892002-09-18  Sam Steingold  <sds@gnu.org>
46490
46491	* modules/bindings/linuxlibc6/linux.lisp (NGROUPS_MAX): do not
46492	redefine the constant based on _POSIX_NGROUPS_MAX
46493
464942002-09-18  Sam Steingold  <sds@gnu.org>
46495
46496	* foreign1.lisp (default-foreign-language): avoid a compile-time
46497	warning by wrapping SETQ *FOREIGN-LANGUAGE* inside a
46498	WITHOUT-PACKAGE-LOCK macro
46499	* compiler.lisp (c-form-table, compile-toplevel-form): handle
46500	WITHOUT-PACKAGE-LOCK specially
46501	(*compiler-unlocked-packages*): new variable
46502	(set-check-lock): use it
46503	(c-WITHOUT-PACKAGE-LOCK): new function, binds
46504	*COMPILER-UNLOCKED-PACKAGES*
46505
465062002-09-18  Will Newton  <will@misconception.org.uk>
46507
46508	* arihppa.d: syntactic changes to make the GNU assembler happy
46509
465102002-09-18  Sam Steingold  <sds@gnu.org>
46511
46512	do not print QUOTE and FUNCTION specially when that results
46513	in a dotted list representation
46514	* io.d (special_list_p): new `dotted_p' argument
46515	(pr_cons): pass `dotted_p' to special_list_p()
46516
465172002-09-17  John  Hinsdale <hin@alma.com>
46518
46519	* modules/oracle/oracle.lisp: use new FFI calls; many performance
46520	improvements in low-level functions and macros
46521
465222002-09-17  Sam Steingold  <sds@gnu.org>
46523
46524	* lisparit.d (log_digits): fix the 2002-09-11 patch:
46525	give NULL as end_p to R_ln_R() and shorten the result
46526
465272002-09-17  Bruno Haible  <bruno@clisp.org>
46528
46529	* loop.lisp (expand-loop): Warn if a sequence of forms is empty -
46530	allowed by CLtL2, but invalid according to ANSI CL.
46531
465322002-09-14  Sam Steingold  <sds@gnu.org>
46533
46534	* compiler.lisp (c-APPLY): check whether FUN is locally defined
46535	to check signature in (flet ((foo (...) ...)) (apply #'foo ...))
46536	this also kills a spurious warning about undefined functions
46537
465382002-09-14  Sam Steingold  <sds@gnu.org>
46539
46540	* Makefile.devel (SOURCES): remove SOURCES3
46541	(SOURCES2): simplified
46542	(SOURCES3): remove
46543	* makemake.in (clisp.html): VERSION --> `cat VERSION`
46544	* _clisp.html: report the CLISP version too
46545
465462002-09-15  Sam Steingold  <sds@gnu.org>
46547
46548	* version.h: 2.30 is released
46549
465502002-09-13  Sam Steingold  <sds@gnu.org>
46551
46552	* intparam.d: remove
46553	* Makefile.devel: do not regenerate comment5.c and intparam.c
46554
465552002-09-12  Sam Steingold  <sds@gnu.org>
46556
46557	* compiler.lisp (form-name): remove
46558	(compile-file): folded FORM-NAME; pass :PRETTY NIL to WRITE-TO-STRING
46559
465602002-09-11  Stefan Kain  <stefan.kain@freenet.de>
46561
46562	* error.d, socket.d: translated all comments
46563
465642002-09-11  Sam Steingold  <sds@gnu.org>
46565
46566	improved accuracy of some transcendental functions
46567	* realtran.d (pi): return long float of the same format as the arg
46568	(R_cos_sin_R_R, R_ln_R, R_exp_R, R_cosh_sinh_R_R): accept two
46569	additional arguments: start_p (whether to increase the precision
46570	in the beginning) and end_p (whether to lower the precision back
46571	at the end of computation)
46572	(R_R_log_R): handle these changes
46573	* realelem.d (N_N_contagion_R, F_R_float_F, RA_R_float_F)
46574	(R_R_float_F, C_R_float_C, N_N_float_N): new functions
46575	* lisparit.d (EXP, EXPT, log_digits): accommodate the changes in
46576	signatures of the basic transcendental functions
46577	* comptran.d (N_exp_N, N_log_N): accept start_p and end_p
46578	(N_N_log_N, N_N_expt_N, N_sin_N, N_cos_N, N_tan_N, N_cis_N)
46579	(N_sinh_N, N_cosh_N, N_tanh_N, R_R_atanh_R_R, N_atanh_N, N_atan_N)
46580	(R_R_asinh_R_R, N_acosh_N, N_acos_N): handle these changes
46581
465822002-09-11  John  Hinsdale <hin@alma.com>
46583
46584	* modules/oracle/*: new add-in module for Oracle interface
46585	* Makefile.devel: build autoconf script for modules/oracle
46586
465872002-09-11  Marco Baringer  <empb@bese.it>
46588	    Sam Steingold  <sds@gnu.org>
46589
46590	* lispbibl.d (VALUES_IF, VALUES0, VALUES1, VALUES2, VALUES3)
46591	(boundp, nullpSv, missingp): new macros
46592	* affi.d, aridecl.d, array.d, charstrg.d, control.d, debug.d:
46593	* dirkey.d, encoding.d, error.d, eval.d, flo_rest.d, foreign.d:
46594	* hashtabl.d, i18n.d, io.d, lisparit.d, lispbibl.d, list.d, misc.d:
46595	* package.d, pathname.d, predtype.d, realelem.d, record.d, rexx.d:
46596	* sequence.d, socket.d, spvw.d, spvw_garcol.d, stream.d, symbol.d:
46597	* time.d: use them
46598
465992002-09-08  Sam Steingold  <sds@gnu.org>
46600
46601	* acorn.d, msdos.d, unix.d, unixaux.d, m4/signal.m4, unix/sigsegv.c:
46602	rename signal_handler type to signal_handler_t
46603
466042002-09-07  Sam Steingold  <sds@gnu.org>
46605
46606	* defmacro.lisp (analyze-key): fix the bug with
46607	  (destructuring-bind (&key (x x)) ...)
46608
466092002-09-05  Stefan Kain  <stefan.kain@freenet.de>
46610
46611	* avl.d: translated all comments
46612
466132002-09-05  Sam Steingold  <sds@gnu.org>
46614
46615	* makemake.in (LN_S) [win32gcc]: do not redefine: Arseny made
46616	CLISP understand symlinks!
46617	(CPP) [win32gcc]: make sure it contains -mno-cygwin
46618	(comment5) [win32gcc]: avoid -mno-cygwin so that comment5.exe
46619	understands symbolic links
46620
466212002-09-04  Sam Steingold  <sds@gnu.org>
46622
46623	* realtran.d (R_cos_sin_R_R): avoid one sqrt() and use
46624	sin(r)=r when r=0
46625
466262002-09-04  Sam Steingold  <sds@gnu.org>
46627
46628	* compiler.lisp (disassemble-closure): print the number of instructions
46629
466302002-09-04  Bruno Haible  <bruno@clisp.org>
46631
46632	* m4/sigsegv.m4 (CL_SIGSEGV): Do not define NO_SIGSEGV.
46633	* makemake.in (XCFLAGS): Add -DNO_SIGSEGV if there is no libsigsegv.
46634
466352002-09-03  Bruno Haible  <bruno@clisp.org>
46636
46637	* sigsegv: Remove directory.
46638	* unix/INSTALL: Recommend installation of GNU libiconv, GNU libsigsegv.
46639	* win32msvc/INSTALL: Likewise.
46640	* m4/sigsegv.m4: New file.
46641	* configure.in: Call CL_SIGSEGV.
46642	* makemake.in (LIBSIGSEGV): New variable.
46643	(USE_SIGSEGV, XCL_SIGSEGVLIB): Remove variables.
46644	(FILES, LIBS): Remove libsigsegv.a.
46645	(EVERY_INCLUDES_H): Remove sigsegv.h.
46646	(sigsegv.h, libsigsegv.a): Remove rules.
46647	(clean1, clean4): Do not remove libsigsegv.a, sigsegv.h, sigsegv.
46648	* lispbibl.d: Do not include sigsegv.h if NO_SIGSEGV is defined.
46649	* Makefile.devel (SOURCES4): Remove sigsegv.
46650	(CONFIGURES): Remove sigsegv/configure.
46651	(configures): Remove dependency on sigsegv/autoconf/aclocal.m4.
46652	(sigsegv/autoconf/aclocal.m4, sigsegv/configure): Remove rules.
46653
466542002-09-03  Sam Steingold  <sds@gnu.org>
46655
46656	* win32.d (HAVE_UNISTD_H): do not define (revert the 2002-08-19
46657	patch) since <unistd.h> is needed only for exec() which is not
46658	used on WIN32_NATIVE
46659
466602002-09-02  Arseny Slobodjuck <ampy@ich.dvo.ru>
46661
46662	Fixing makemake.in for mingw.
46663	* makemake.in: fix 2002-08-10 patch: double quotes now
46664	used on TSYS=win32msvc.
46665	(LIBS) [win32gcc]: add libuuid to library list (need it on mingw
46666	to handle shell objects)
46667
466682002-09-02  Arseny Slobodjuck <ampy@ich.dvo.ru>
46669
46670	Implement shorcut symlink ersatz on win32 (read-only,
46671	for CYGWIN compatibility).
46672	* win32aux.d (com_initialized): new global variable.
46673	(init_win32): initialize COM library.
46674	(done_win32): deinitialize COM library.
46675	* win32.d: include shell object headers.
46676	* pathname.d (FullName) [WIN32_NATIVE]: new function,
46677	translates short name to long one.
46678	(resolve_shell_shortcut): new function handles shortcuts.
46679	(assure_dir_exists): now trying to resolve ersatzsymlinkshortcuts.
46680
466812002-08-26  Sam Steingold  <sds@gnu.org>
46682
46683	* list.d (sublis_assoc): moved saving/restoring alist (to/from
46684	STACK) outside the loop because otherwise this function is
46685	mis-compiled by gcc-3.2 on linux (go figure!)
46686	Reported by James Mcclain <jmccla3@gl.umbc.edu>
46687
466882002-08-19  Sam Steingold  <sds@gnu.org>
46689
46690	more win32gcc tweaks
46691	* unix.d (ualarm) [UNIX_CYGWIN32]: declaration tweak
46692	* win32.d (STDC_HEADERS, HAVE_UNISTD_H, HAVE_PERROR_DECL):
46693	declare for _clisp.c
46694	* acorn.d, amiga.d, msdos.d, unix.d, win32.d (OS_set_errno): new macro
46695	* socket.d (connect_to_x_server): use it
46696	* makemake.in (LN_S) [win32gcc]: set to "cp -p"
46697	* _clisp.c [WIN32_NATIVE]: ported to win32
46698
466992002-08-23  Marco Baringer <empb@bese.it>
46700	    Sam Steingold  <sds@gnu.org>
46701
46702	* pathname.d (DUPLICATE-HANDLE): dup/dup2 calls were reversed
46703
467042002-08-14  Sam Steingold  <sds@gnu.org>
46705
46706	* io.d (multi_line_sub_block_out): fix a crash when block
46707	contains several indentations
46708	Reported by Glauber Ribeiro <glauber.ribeiro@experian.com>
46709
467102002-08-14  Sam Steingold  <sds@gnu.org>
46711
46712	* compiler.lisp (form-name): use WRITE-TO-STRING instead of
46713	SYS::WRITE-TO-SHORT-STRING (reversed a major compilation
46714	performance hit introduced on 2002-03-11)
46715
467162002-08-14  Sam Steingold  <sds@gnu.org>
46717
46718	* makemake.in (makemake): no need for a separate second
46719	config.status invocation to get the additional commands
46720	* configure.in (po/Makefile.in): use AC_CONFIG_FILES, not AC_OUTPUT
46721	(makemake): use AC_CONFIG_FILES, not AC_CONFIG_COMMANDS
46722
467232002-08-12  Sam Steingold  <sds@gnu.org>
46724
46725	* makemake.in (encflags): new variable: -Efile and -Eterminal
46726	instead of the general -E (see patch 2002-06-10): need to keep
46727	*MISC-ENCODING* set to the user localization
46728	Reported by Arseny Slobodjuck.
46729
467302002-08-11  Sam Steingold  <sds@gnu.org>
46731
46732	fix the EXEEXT inconsistencies
46733	* _clisp.c (main): execname may be lisp.exe
46734	* clisp-link (LISPRUN): new variable, used throughout
46735	* makemake.in (clisp-link): replace EXEEXT
46736	use ${LEXE} more consistently
46737
467382002-08-10  Arseny Slobodjuck <ampy@ich.dvo.ru>
46739
46740	* makemake.in [win32]: do not use apostrophes as shell screening
46741	characters on win32.
46742
467432002-08-10  Arseny Slobodjuck <ampy@ich.dvo.ru>
46744
46745	* makemake.in: lisp executable depends on libcharset.
46746
467472002-08-09  Sam Steingold  <sds@gnu.org>
46748
46749	fix makemake creation: additional commands were not executed
46750	* configure.in (makemake): AC_OUTPUT with arguments is
46751	deprecated, use AC_CONFIG_COMMANDS instead
46752	* makemake.in (makemake): separate config.status invocation for
46753	variable substitution and the additional commands in configure.in
46754
467552002-08-09  Sam Steingold  <sds@gnu.org>
46756
46757	* _clisp.c (main): accept `-d' (now that .clisp is gone, the
46758	developers are expected to use the driver)
46759
467602002-08-09  Sam Steingold  <sds@gnu.org>
46761
46762	* makemake.in (TEXE, LEXE) [cygwin32]: exe/exe, because some
46763	win32 programs (e.g. Emacs) cannot start lisp.run (cygwin bash has
46764	no problems, of course)
46765
467662002-08-09  Sam Steingold  <sds@gnu.org>
46767
46768	add Gabriel's benchmarks
46769	* makemake.in (bench): new target
46770
467712002-08-09  Sam Steingold  <sds@gnu.org>
46772
46773	avoid compiler warning in (defun z () #'(lambda () (z)))
46774	* compiler.lisp (defining-p): new function
46775	(in-defun-p): use it
46776	(note-function-used): use it instead of IN-DEFUN-P
46777
467782002-08-07  Sam Steingold  <sds@gnu.org>
46779
46780	* charstrg.d (MAKE-STRING) [HAVE_SMALL_SSTRING]: create a string
46781	of minimal element size for the given initial element
46782
467832002-08-07  Sam Steingold  <sds@gnu.org>
46784
46785	* m4/ln.m4 (CL_PROG_HLN): this time, fix the link test for real
46786
467872002-08-07  Sam Steingold  <sds@gnu.org>
46788
46789	* pathname.d (COPY-FILE): instead of returning file count and
46790	byte count, return a list of (source dest byte-count) for each
46791	copy operation performed
46792	(copy_one_file, copy_file_low): update for that
46793
467942002-08-06  Sam Steingold  <sds@gnu.org>
46795
46796	rewrote the last patch to accept wildcards
46797	* pathname.d (check_copy_method, hardlink_file, symlink_file)
46798	(true_namestring): new functions
46799	(copy_method_t): new typedef
46800	(TRUENAME, PROBE-FILE, DELETE-FILE, rename_file, open_file, CD)
46801	(FILE-WRITE-DATE, FILE-AUTHOR, EXECUTE): use true_namestring()
46802	(NAMESTRING2, FILENAME_ACTION): remove
46803	(copy_attributes_and_close): converted from copy_attributes()
46804	(copy_file_low): do NOT do pathname merging and resolving
46805	(copy_one_file): do it here
46806	(COPY-FILE): return 2 values: file count and byte count
46807
468082002-08-05  Marco Baringer <empb@bese.it>
46809	    Sam Steingold  <sds@gnu.org>
46810
46811	POSIX:COPY-FILE - copying/renaming/linking files
46812	* pathname.d (COPY-FILE, copy_file_low, copy_attributes): new functions
46813	* constobj.d (type_link_arg): new object
46814	* constsym.d, subr.d, subrkw.d (copy_file): add
46815	* posix.lisp (copy-file): exported
46816	* lispbibl.d (strm_buffered_bufflen): moved here from stream.d
46817	* stream.d (strm_buffered_bufflen): commented out
46818
468192002-08-05  Sam Steingold  <sds@gnu.org>
46820
46821	* install.lisp: add a URL shortcut to CLISP home to the desktop
46822	* makemake.in (TXT_FILES): make clisp.c on all systems
46823	(needs): drop .clisp and .clisp-full in favor of clisp.c
46824	(IMPNOTES_FILES) [win32]: add clisp.ico
46825	(clisp): new target
46826
468272002-08-05  Sam Steingold  <sds@gnu.org>
46828
46829	* m4/dynload.m4 (CL_DYNLOAD): check for <dlfcn.h> before doing
46830	anything else and drop out if the header is not there
46831
468322002-08-03  Sam Steingold  <sds@gnu.org>
46833
46834	* spvw_garcol.d (GC_MARK): new macro
46835	(gc_mark_stack): use it
46836	(gc_mark): unroll Rectype_reallocstring
46837	* spvw_genera2.d (gc_mark_at, gc_mark_old_generation): use GC_MARK
46838
468392002-08-02  Sam Steingold  <sds@gnu.org>
46840
46841	* compiler.lisp (c-DIRECT-FUNCTION-CALL): fix repeated key
46842	handling: ignore the value of the argument and issue a warning
46843
468442002-08-02  Sam Steingold  <sds@gnu.org>
46845
46846	* stream.d (make_terminal_stream_) [UNIX_CYGWIN32]: check
46847	ttyname() instead of inodes for stdin/out_handle
46848	(finish_tty_output, force_tty_output) [UNIX_CYGWIN32]:
46849	ignore EACCES (in addition to EBADF) for xterm/rxvt
46850	Suggested by David Young and Matthias Linder
46851
468522002-08-01  Sam Steingold  <sds@gnu.org>
46853
46854	* m4/ln.m4 (CL_PROG_HLN): fix the "hard links to symlinks" check
46855	* makemake.in (TEXE, LEXE) [cygwin32]: exe/run
46856	(distrib): rmrf TOPDIR before making the distribution
46857
468582002-08-01  Sam Steingold  <sds@gnu.org>
46859
46860	* type.lisp (COMPLEX): use UPGRADED-COMPLEX-PART-TYPE,
46861	just like VECTOR uses UPGRADED-ARRAY-ELEMENT-TYPE
46862
468632002-08-01  Sam Steingold  <sds@gnu.org>
46864
46865	* makemake.in (DISTFILE): strip parens from OS version for cygwin
46866
468672002-08-01  Sam Steingold  <sds@gnu.org>
46868
46869	* defs1.lisp (load-lpt-many): simplified messages
46870	* init.lisp (load): likewise
46871
468722002-08-01  Sam Steingold  <sds@gnu.org>
46873
46874	cygwin: understand win32 "c:" pathnames
46875	* pathname.d (PARSE-NAMESTRING) [UNIX_CYGWIN32]: use
46876	*DEVICE-PREFIX* to parse "c:/gnu/" --> "/cygdrive/c/gnu/"
46877	* constsym.d (*DEVICE-PREFIX*) [UNIX_CYGWIN32]: add
46878	* spvw.d (init_symbol_values) [UNIX_CYGWIN32]: defvar *DEVICE-PREFIX*
46879	* makemake.in [UNIX_CYGWIN32]: better cygwin32 canonicalization;
46880	less special treatment; add SETQ *DEVICE-PREFIX* to config.lisp
46881
468822002-07-31  Sam Steingold  <sds@gnu.org>
46883
46884	* utils/ccmp2c.c, utils/modprep.c: add
46885	* utils/ccmp2c.d, utils/modprep.d: remove
46886	* utils/txt2c.c: no pre-processing is needed
46887	* makemake.in: do not pre-process ccmp2c.c, modprep.c, txt2c.c
46888
468892002-07-31  Sam Steingold  <sds@gnu.org>
46890
46891	mingw port moving along - in-place only for now
46892	* configure: handle --with-mingw and pass 'win32gcc gcc' to makemake
46893	* makemake.in [win32gcc]: no special treatment for libcharset,
46894	sigsegv, and ffcall
46895	* Makefile.devel: remove win32gcc
46896	* win32gcc: remove directory
46897	* encoding.d [__MINGW32__]: #include <stdio.h> for sprintf()
46898	* pathname.d (default_drive) [WIN32_NATIVE]: cast chart/cint properly
46899	* stream.d (rd_ch_keyboard, wr_ch_array_window, wr_ch_window)
46900	[WIN32_NATIVE]: ditto
46901	* win32.d (HAVE_LC_MESSAGES) [__MINGW32__]: define to 0
46902	* win32aux.d (temp_interrupt_handler) [__MINGW32__]: no
46903	WSACancelBlockingCall() - need a replacement!
46904
469052002-07-31  Sam Steingold  <sds@gnu.org>
46906
46907	* m4/general.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL)
46908	(CL_CANONICAL_HOST_CPU): canonicalize alphaev[4-8] to alpha
46909	Suggested by Will Newton <will@misconception.org.uk>
46910
469112002-07-30  Sam Steingold  <sds@gnu.org>
46912
46913	* utils/comment5.c (main): meaningful error messages
46914	* utils/comment5.d: remove
46915
469162002-07-29  Sam Steingold  <sds@gnu.org>
46917
46918	fix bug#111: failure with clx.e
46919	* modules/clx/new-clx/e2d.c (do_defun): terminate with '\0' after
46920	inserting '}'
46921
469222002-07-29  Sam Steingold  <sds@gnu.org>
46923
46924	* spvw.d (main): warp all signal handler installations in
46925	begin/end_system_call()
46926	* spvw_debug.d [DEBUG_SPVW]: add some debugging functions
46927
469282002-07-26  Sam Steingold  <sds@gnu.org>
46929
46930	* stdint.h.in [__sun__]: <sys/int_types.h> defines everything
46931
469322002-07-26  Sam Steingold  <sds@gnu.org>
46933
46934	* type.lisp (upgraded-complex-part-type): spec must be a
46935	subtype of REAL, and the return value is REAL
46936
469372002-07-26  Sam Steingold  <sds@gnu.org>
46938
46939	* socket.d (RESOLVE-HOST-IPADDR-INTERNAL): fix a GC safety bug
46940
469412002-07-26  Sam Steingold  <sds@gnu.org>
46942
46943	Readline is now used properly on Cygwin
46944	* stream.d (make_terminal_stream_) [UNIX_CYGWIN32]: inode numbers
46945	do not make sense on Cygwin: they are based on filenames
46946
469472002-07-25  Sam Steingold  <sds@gnu.org>
46948
46949	* version.h: 2.29 is released
46950
469512002-07-25  Sam Steingold  <sds@gnu.org>
46952	    Bruno Haible <bruno@clisp.org>
46953
46954	fix the (compile nil (lambda () ... #'(lambda ...))) bug
46955	* compiler.lisp (symbol-suffix): also work when funname is NIL,
46956	but suffix is not a symbol (see also the 2002-02-11 patch)
46957
469582002-07-22  Sam Steingold  <sds@gnu.org>
46959
46960	* check-lispfun.lisp: new file: check LISPFUN, LISPFUNN and
46961	LISPSPECFORM between *.d and subr.d/subrkw.d/fsubr.d
46962	* makemake.in (check-sources): new target
46963	* array.d, charstrg.d, dirkey.d, io.d, posixmisc.d, rexx.d:
46964	* sequence.d, subr.d: remove backslashes from LISPFUNs
46965
469662002-07-22  Sam Steingold  <sds@gnu.org>
46967
46968	fix bug#125: inspect.lisp invalid XHTML & e-mail
46969	* inspect.lisp (*user-mail-address*): new user variable
46970	(with-html-output): use it; link/rev should be a string,
46971	not a symbol, like all the other attribute values;
46972	add a comment about overriding keep-alive
46973
469742002-07-21  Bruno Haible  <bruno@clisp.org>
46975
46976	* stdint.h.in: Add support for FreeBSD.
46977
469782002-07-21  Bruno Haible  <bruno@clisp.org>
46979
46980	Avoid using floating-point hardware where it leads to exceptions or
46981	wrong computations.
46982	* floatparam.c: New file.
46983	* m4/fenv_default.m4: New file.
46984	* configure.in: Create floatparam.h.
46985	Call CL_{FLOAT,DOUBLE}_{DIV0,OVERFLOW,UNDERFLOW,INEXACT}.
46986	* unixconf.h.in (FLOAT_DIV0_EXCEPTION, FLOAT_OVERFLOW_EXCEPTION)
46987	(FLOAT_UNDERFLOW_EXCEPTION, FLOAT_INEXACT_EXCEPTION)
46988	(DOUBLE_DIV0_EXCEPTION, DOUBLE_OVERFLOW_EXCEPTION)
46989	(DOUBLE_UNDERFLOW_EXCEPTION, DOUBLE_INEXACT_EXCEPTION): New macros.
46990	* lispbibl.d: Include floatparam.h.
46991	(FAST_FLOAT, FAST_DOUBLE): Define according to the
46992	autoconf-determined parameters.
46993	* ffloat.d (FF_FF_durch_FF): Choose slow path if FLOAT_DIV0_EXCEPTION.
46994	* dfloat.d (DF_DF_durch_DF): Choose slow path if DOUBLE_DIV0_EXCEPTION.
46995	* lisparit.d (init_arith): Remove wrong value of DOUBLE-FLOAT-EPSILON
46996	and DOUBLE-FLOAT-NEGATIVE-EPSILON on Linux/i386.
46997	* unixaux.d (__fpu_control): Remove definition.
46998	* spvw.d (main): Remove __setfpucw call.
46999
470002002-07-21  Bruno Haible  <bruno@clisp.org>
47001
47002	* defs1.lisp (module-name): Do not allow numbers or pathnames as
47003	module names.
47004
470052002-07-21  Bruno Haible  <bruno@clisp.org>
47006
47007	* m4/rusage.m4 (CL_RUSAGE): Move CL_LINK_CHECK outside of
47008	AC_CACHE_CHECK.
47009
470102002-07-21  Bruno Haible  <bruno@clisp.org>
47011
47012	* configure: Test ulimit result against 'unlimited'.
47013
470142002-07-21  Sam Steingold  <sds@gnu.org>
47015
47016	* m4/readline.m4 (CL_READLINE): fix whitespace
47017	* configure: remove config.cache to avoid stale cache problems
47018	* stream.d: #include <stdio.h> before <readline/readline.h>
47019	because of FILE* references in readline.h
47020
470212002-07-20  Sam Steingold  <sds@gnu.org>
47022
47023	* m4/readline.m4 (CL_READLINE): check for the name of the file
47024	completion function and CONST modifier of its first argument
47025	* unixconf.h.in (READLINE_CONST, READLINE_FILE_COMPLETE): undef
47026	* stream.d: use them
47027
470282002-07-19  Sam Steingold  <sds@gnu.org>
47029
47030	* spvw.d (main): more begin/end_system_call
47031
470322002-07-19  Sam Steingold  <sds@gnu.org>
47033
47034	* m4/termcap.m4 (CL_TERMCAP): use AC_SEARCH_LIBS
47035	* m4/readline.m4 (CL_READLINE): AC_REQUIRE CL_TERMCAP;
47036	check for the readline library, not just the header
47037	* configure (conf_dir): new function
47038	* makemake.in (LIBS): LIBTERMCAP and LIBREADLINE
47039	get into LIBS automagically
47040
470412002-07-19  Sam Steingold  <sds@gnu.org>
47042
47043	* lispbibl.d (GNU_GETTEXT): define based on NO_GETTEXT and
47044	ENABLE_NLS, not complex heuristics
47045
470462002-07-19  Sam Steingold  <sds@gnu.org>
47047
47048	do not distribute readline and termcap with CLISP
47049	* configure, makemake.in: dropped termcap and readline
47050	* m4/termcap.m4 (LIBTERMCAP): set to "broken" when termcap does
47051	not work
47052	* m4/readline.m4 (CL_READLINE): new test
47053	* configure.in (CL_READLINE): call it
47054	* lispbibl.d (GNU_READLINE): define based on NO_READLINE and
47055	HAVE_READLINE_READLINE_H, not complex heuristics
47056	* stream.d [GNU_READLINE]: include system headers, not local ones
47057	* unixconf.h.in (HAVE_READLINE_READLINE_H): undef
47058	* readline/*, termcap/*: remove
47059	* _distmakefile: remove readline docs
47060
470612002-07-19  Sam Steingold  <sds@gnu.org>
47062
47063	fix bug#124: (compile-file xx :verbose NIL)
47064	* compiler.lisp (with-compilation-unit): bind *C-LISTING-OUTPUT*
47065
470662002-07-15  Marco Baringer  <empb@bese.it>
47067	    Sam Steingold  <sds@gnu.org>
47068
47069	POSIX:DUPLICATE-HANDLE - interface to dup/dup2/DuplicateHandle
47070	* pathname.d (DUPLICATE-HANDLE): implement
47071	* constsym.d, subr.d (duplicate_handle): ditto
47072	* posix.lisp (duplicate-handle): export
47073
470742002-07-16  Sam Steingold  <sds@gnu.org>
47075
47076	* defs1.lisp (module-name): do not use ETYPECASE for
47077	bootstrapping reasons
47078	Reported by Marco Baringer <empb@bese.it>
47079
470802002-07-16  Sam Steingold  <sds@gnu.org>
47081
47082	* misc.d (GETENV): return all the environment as an alist when
47083	the argument is NIL or omitted
47084
470852002-07-15  Bruno Haible  <bruno@clisp.org>
47086
47087	* unix.d (fstatfs): Remove unused declaration.
47088
47089	* makemake.in (lisp.a): Adapt to gcc-3.1; its libgcc.a contains *.oS,
47090	not *.o.
47091
47092	* spvw_sigsegv.d (stackoverflow_handler): Add support for FreeBSD.
47093
47094	* io.d (right_margin): Avoid gcc warning when compiling with -DWIDE.
47095
47096	* lispbibl.d (copy_mem_o): Fix parentheses.
47097	(UNIX_HURD): Rename from UNIX_GNU.
47098	(UNIX_GNU): New macro.
47099	(_REENTRANT): Use for UNIX_GNU, not only UNIX_LINUX.
47100	(setjmp, longjmp): Treat UNIX_GNU like UNIX_LINUX.
47101
471022002-07-15  Sam Steingold  <sds@gnu.org>
47103
47104	check for OpenLDAP
47105	* m4/ldap.m4: new file
47106	* unixconf.h.in (HAVE_LDAP_H): undef
47107	* configure.in (CL_LDAP): call
47108
471092002-07-15  Sam Steingold  <sds@gnu.org>
47110
47111	fallout of 2002-07-09 parse-namestring patch in ANSI mode
47112	* pathname.d (test_default_pathname): treat NIL as unbound,
47113	permitting (parse-namestring "foo" nil nil ...) again
47114	* compiler.lisp (compile-file-pathname-helper): do not pass
47115	NIL as the :DEFAULTS to MAKE-PATHNAME
47116
471172002-07-15  Sam Steingold  <sds@gnu.org>
47118
47119	* configure: user-specified options (like --with-noreadline)
47120	override the default/inferred options
47121
471222002-07-15  Sam Steingold  <sds@gnu.org>
47123
47124	* pathname.d (wildcard_match): handle special patterns like
47125	:WILD, :WILD-INFERIORS, :UP and :BACK
47126
471272002-07-15  Sam Steingold  <sds@gnu.org>
47128
47129	fix bug#122: REQUIRE uses STRING-EQUAL
47130	since CLISP in ANSI mode does not coerce symbols to pathnames,
47131	this also fixes a bug introduced on 2002-07-09 which precluded
47132	symbols as module names
47133	* defs1.lisp (module-name): new function
47134	(provide, require): use it to convert module name to a string
47135	* compiler (c-PROVIDE, c-REQUIRE): ditto
47136	(require, c-REQUIRE): use STRING= instead of STRING-EQUAL
47137
471382002-07-15  Sam Steingold  <sds@gnu.org>
47139
47140	* _distmakefile (clisp): new target for installing locally
47141
471422002-07-13  Sam Steingold  <sds@gnu.org>
47143
47144	ported DIR-KEY to cygwin32
47145	* dirkey1.lisp (dir-key): export
47146	* dirkey.d (to_time_t_): stole from cygwin sources
47147	* constsym.d (Kwin32) [UNIX_CYGWIN32 DIR_KEY]: define
47148
471492002-07-13  Sam Steingold  <sds@gnu.org>
47150
47151	fix bug#85: ldap bugs (describe, dir-key-info)
47152	* describe.lisp (describe-object): handle DIR-KEY
47153
471542002-07-12  Sam Steingold  <sds@gnu.org>
47155
47156	reverted the last patch wrt bindings (it broke lots of stuff)
47157	* control.d: reverted
47158	* eval.d (progv): reverted
47159	* compiler (bind-check-lock): remove
47160	(set-check-lock): use SYMBOL-VALUE-LOCK
47161	(c-LET/LET*, c-MULTIPLE-VALUE-BIND): reverted
47162	* package.d (SYMBOL-VALUE-LOCK): new function
47163	* subr.d, constsym.d (symbol_value_lock): ditto
47164
471652002-07-11  Sam Steingold  <sds@gnu.org>
47166
47167	extended package locking to assignments and bindings
47168	* compiler.lisp (set-check-lock, bind-check-lock): new functions
47169	(c-SETQ, c-PSETQ, c-MULTIPLE-VALUE-SETQ): use SET-CHECK-LOCK
47170	(c-LET/LET*, c-MULTIPLE-VALUE-BIND): use BIND-CHECK-LOCK
47171	* package.d (symbol_value_check_lock): new function
47172	* lispbibl.d (symbol_value_check_lock): declare
47173	* control.d (LET, LET*, COMPILER-LET): use it
47174	* eval.d (progv, setq): ditto
47175
471762002-07-11  Sam Steingold  <sds@gnu.org>
47177
47178	fix bug#119: unbound SYSTEM::*COMPILING-FROM-FILE*
47179	error on (lambda () (defmethod ...))
47180	* init.lisp (%expand-form): when evaluating (EVAL-WHEN (COMPILE))
47181	bind COMPILER::*COMPILING-FROM-FILE* to nil
47182
471832002-07-10  Sam Steingold  <sds@gnu.org>
47184
47185	* spvw.d (quit): call done_win32()
47186
471872002-07-09  Sam Steingold  <sds@gnu.org>
47188
47189	* compiler.lisp (compile-file): do not clobber *.c file when
47190	there are no FFI forms
47191
471922002-07-09  Sam Steingold  <sds@gnu.org>
47193
47194	* bindings/linuxlibc6/linux.lisp (read): add commas before
47195	arguments in backquote
47196
471972002-07-09  Sam Steingold  <sds@gnu.org>
47198
47199	* complete.lisp (completion): consider the situation FUNCTIONALP
47200	when start==end, this fixes the "(finalize TAB" bug)
47201
472022002-07-09  Sam Steingold  <sds@gnu.org>
47203
47204	* pathname.d (PARSE-NAMESTRING): barf on symbols when
47205	CUSTOM:*PARSE-NAMESTRING-ANSI* is non-NIL
47206	(FILE-STAT-INTERNAL): use coerce_pathname()
47207
472082002-07-08  Sam Steingold  <sds@gnu.org>
47209
47210	* clos.lisp (check-metaclass-mix): new function
47211	(initialize-instance-standard-class, make-instance-built-in-class):
47212	(initialize-instance-structure-class): use it
47213
472142002-07-02  Sam Steingold  <sds@gnu.org>
47215
47216	* _clisp.c [STDC_HEADERS]: #include <stdlib.h> (HAVE_STDLIB_H is
47217	obsolete)
47218
472192002-07-01  Sam Steingold  <sds@gnu.org>
47220
47221	* spvw.d (main): remove the obsolete -W option for the sake of
47222	the CYGWIN port getting "-M c:/gnu/clisp/lispinit.mem"
47223	* _clisp.c (main): ditto
47224
472252002-07-01  LaMont Jones  <lamont@smallone.fc.hp.com>
47226
47227	* ffcall/callback/trampoline_r/trampoline.c (alloc_trampoline_r)
47228	(is_tramp): work around a bug in gcc 3.*
47229	* ffcall/avcall/avcall-hppa.s:
47230	* ffcall/callback/trampoline_r/cache-hppa.s:
47231	* ffcall/callback/trampoline_r/proto-hppa.s:
47232	* ffcall/callback/trampoline_r/tramp-hppa.s:
47233	* ffcall/callback/vacall_r/vacall-hppa.s:
47234	* ffcall/trampoline/cache-hppa.s:
47235	* ffcall/trampoline/proto-hppa.s:
47236	* ffcall/trampoline/tramp-hppa.s:
47237	* ffcall/vacall/vacall-hppa.s:
47238	support both HP-UX assembler and GAS
47239
472402002-07-01  Sam Steingold  <sds@gnu.org>
47241
47242	* makemake.in (echotab_mkdir_maybe): pass `-p' to mkdir(1)
47243	(shared): new make var; create it before doc dirs
47244
472452002-06-29  Sam Steingold  <sds@gnu.org>
47246
47247	implement RFE#8: quit to top-level in debugger
47248	* reploop.lisp (debug-quit): new function
47249	(commands1): document `Quit/:q'
47250	(break-loop, step-hook-fn): handle it (as `abort-to-top')
47251	* control.d (UNWIND-TO-TOP): new function
47252	* constsym.d, subr.d (unwind_to_top): ditto
47253
472542002-06-28  Sam Steingold  <sds@gnu.org>
47255
47256	* configure: work around the ulimit bug in cygwin /bin/sh
47257
472582002-06-28  Sam Steingold  <sds@gnu.org>
47259
47260	* lispbibl.d (alloca) [UNIX_CYGWIN32]: already defined in <alloca.h>
47261
472622002-06-27  Sam Steingold  <sds@gnu.org>
47263
47264	fix Sparc/Linux glibc 2.2 --with-debug build
47265	* lispbibl.d (oint_type_*, oint_data_*) [SPARC UNIX_LINUX]:
47266	do special handling only for glibc 2.1 and earlier
47267
472682002-06-27  Sam Steingold  <sds@gnu.org>
47269
47270	* configure: check stack limit and suggest ulimit when printing
47271	further recommendations and call ulimit before make
47272
472732002-06-26  Sam Steingold  <sds@gnu.org>
47274
47275	* lispbibl.d: separate `chart' and `object'
47276	(object, as_oint, as_object) [OBJECT_STRUCT]: `one' --> `one_o'
47277	(chart, as_cint, as_chart) [CHART_STRUCT]: `one' --> `one_c'
47278	* stream.d (stream_reset_eltype): compare ch with LF properly
47279	* array.d (make_storagevector): use char_int(), not as_cint(), to
47280	convert an object to `cint'
47281	* spvw_mark.d (mark, unmark): object slot is `one_o'
47282
472832002-06-26  Sam Steingold  <sds@gnu.org>
47284
47285	* m4/general.m4 (CL_CANONICAL_HOST_CPU)
47286	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): handle hppa64
47287	the same way as hppa1 and hppa2
47288	Suggested by Will Newton <will@misconception.org.uk>
47289
472902002-06-25  Sam Steingold  <sds@gnu.org>
47291
47292	memcpy() & begin/end_system_call() cleanup
47293	* lispbibl.d (copy_mem_b, copy_mem_o): new macros
47294	(do_cclosure_copy): use copy_mem_o()
47295	* hashtabl.d (%SET-HASH-TABLE-WEAK-P): use copy_mem_o()
47296	instead of memcpy()
47297	* record.d (COPY-STRUCTURE): ditto
47298	* stream.d (read_byte_array_buffered, write_byte_array_buffered)
47299	(READ-FLOAT, WRITE-FLOAT): use copy_mem_b() instead of memcpy()
47300	(%DEFGRAY): use copy_mem_o() instead of memcpy()
47301	(create_input_pipe, create_output_pipe, create_io_pipe):
47302	move the memcpy() call inside the begin/end_system_call()
47303	* encoding.d (MAKE-ENCODING): use copy_mem_b() instead of memcpy()
47304
473052002-06-25  Sam Steingold  <sds@gnu.org>
47306
47307	fix the spurious "fatal error in the fatal error handler" message:
47308	break_driver() lost the stack location of its `continuable' argument
47309	* debug.d (break_driver): accept a boolean argument instead of an
47310	object (save on stack manipulation, gain clarity)
47311	* lispbibl.d (break_driver): fix the prototype
47312	* eval.d (unwind): adjust break_driver() call
47313	* error.d (end_error, ERROR, ERROR-OF-TYPE, tast_break): ditto
47314
473152002-06-25  Sam Steingold  <sds@gnu.org>
47316
47317	* error.d (end_error): print the abort message to stderr
47318	include <stdio.h> to avoid compiler warning
47319
473202002-06-25  Sam Steingold  <sds@gnu.org>
47321
47322	* charstrg.d (STRING-INFO): new function
47323	* constsym.d, subr.d (string_info): ditto
47324
473252002-06-25  Sam Steingold  <sds@gnu.org>
47326
47327	* stream.d (test_external_format_arg): fix for the 2002-06-19
47328	patch (new MAKE-ENCODING keyword arg)
47329
473302002-06-20  Bruno Haible  <bruno@clisp.org>
47331
47332	* lispbibl.d (CHART_STRUCT): Enable for gcc >= 3.0.
47333
473342002-06-20  Bruno Haible  <bruno@clisp.org>
47335
47336	* lispbibl.d (sstring_): Define using chart.
47337	(Sstring): Likewise.
47338	* array.d (elt_copy_T_Char, ssstring_extend_low): Make it compile
47339	with CHART_STRUCT.
47340	* charstrg.d (copy_string, subsstring, SUBSTRING, string_concat):
47341	Likewise.
47342	* io.d (write_sstring_case): Likewise.
47343	* lisparit.d (decimal_string): Likewise.
47344	* pathname.d (Z_AT_SLASH): Fix for changed return type of schar.
47345	(wildcard_diff_ab): Likewise.
47346
473472002-06-20  Sam Steingold  <sds@gnu.org>
47348
47349	* record.d (COPY-STRUCTURE): use memcpy() instead of dotimespC
47350	(call_init_fun): new function
47351	(%REINITIALIZE-INSTANCE, do_initialize_instance): use it
47352
473532002-06-20  Sam Steingold  <sds@gnu.org>
47354
47355	* spvw_typealloc.d (reallocate_small_string) [TYPECODES]:
47356	fix a typo
47357
473582002-06-19  Sam Steingold  <sds@gnu.org>
47359
47360	* pathname.d (nametype_diff_aux): treat logical and physical
47361	pathnames the same way
47362
473632002-06-19  Sam Steingold  <sds@gnu.org>
47364
47365	* encoding.d (MAKE-ENCODING): new keyword argument
47366	:IF-DOES-NOT-EXIST to return nil for non-existing charsets
47367	(init_encodings_2): when the charset does not exist,
47368	just unintern the symbol
47369	(encoding_from_name): pushSTACK() the extra keyword argument for
47370	C_make_encoding()
47371	* subr.d, subrkw.d (make_encoding): new keyword argument
47372	* lispbibl.d (check_charset): return bool
47373	* stream.d (open_iconv): do not barf when charset is nullobj
47374	(check_charset): return false when code is invalid and charset is
47375	nullobj
47376
473772002-06-19  Bruno Haible  <bruno@clisp.org>
47378
47379	* constsym.d (CHARSET:ARMSCII-8, CHARSET:TCVN): Disable in glibc-2.2.
47380
473812002-06-19  Sam Steingold  <sds@gnu.org>
47382
47383	new built-in MEMQ == MEMBER :TEST #'EQ
47384	* list.d (MEMQ): new function (uses memq)
47385	* constsym.d, subr.d (memq): ditto
47386	* clos.lisp, compiler.lisp, defstruct.lisp, describe.lisp:
47387	* init.lisp, type.lisp: use it instead of MEMBER :TEST #'EQ
47388
473892002-06-17  Sam Steingold  <sds@gnu.org>
47390
47391	abstracted some code
47392	* list.d (memq): new function
47393	* lispbibl.d (memq): declare
47394	* control.d (PROCLAIM, KEYWORD-TEST): use it
47395	* eval.d (augment_decl_env): ditto
47396	* io.d (interpret_feature): ditto
47397	* package.d (symtab_find, symtab_delete, shadowing_find)
47398	(use_package, %IN-PACKAGE, FIND-ALL-SYMBOLS, RE-EXPORT): ditto
47399	* symbol.d (GET-PROPERTIES): ditto
47400	* record.d (obj_in_list): remove (superseded by memq)
47401	(structure_up, %STRUCTURE-TYPE-P, keyword_test, slot_in_arglist)
47402	(%SHARED-INITIALIZE): use !null(memq()) instead of obj_in_list()
47403
474042002-06-17  Sam Steingold  <sds@gnu.org>
47405
47406	* lispbibl.d [DECALPHA/UNIX_FREEBSD]: treat just like Linux
47407	Verified by Jeffrey Katcher <jmkatcher@yahoo.com>.
47408
474092002-06-15  Sam Steingold  <sds@gnu.org>
47410
47411	* modules/clx/mit-clx/input.lisp (:configure-request): use
47412	`member8' instead of `member' for `data'
47413	From <http://ww.telent.net/cliki/eclipse>
47414	and <http://dept-info.labri.u-bordeaux.fr/~strandh/patch-xlib.lisp>
47415
474162002-06-15  Arseny Slobodjuck  <ampy@ich.dvo.ru>
47417
47418	more fixes for bug#100: not only socket-wait is
47419	interruptible on windows, but also socket-accept is
47420	* socket.d (accept_connection) [WIN32_NATIVE]: interruptible
47421	check socket for readability (infinitely long) before calling
47422	accept.
47423
474242002-06-14  Sam Steingold  <sds@gnu.org>
47425
47426	* complete.lisp (completion): when there is no word to complete,
47427	describe the current funcall and return 0
47428	* stream.d (lisp_completion): when COMPLETION returns 0,
47429	refresh the current line using rl_refresh_line()
47430
474312002-06-14  Sam Steingold  <sds@gnu.org>
47432
47433	grand type renaming continues
47434	array_dim_size --> array_dim_size_t
47435	environment --> environment_t
47436	gc_function --> gc_function_t
47437	host_data --> host_data_t
47438	host_data_fetcher --> host_data_fetcher_t
47439	map_sequence_function --> map_sequence_function_t
47440	module_ --> module_t
47441	sockaddr_max --> sockaddr_max_t
47442	stack_range --> stack_range_t
47443	thread_ --> thread_t
47444	unwind_protect_caller --> unwind_protect_caller_t
47445	* modules/clx/new-clx/clx.f, modules/clx/new-clx/e2d.c:
47446	* affi.d, array.d, control.d, debug.d, eval.d, foreign1.lisp:
47447	* fsubr.d, genclisph.d, io.d, lispbibl.d, modules.d, predtype.d:
47448	* sequence.d, spvw.d, spvw_memfile.d, spvw_module.d:
47449	* spvw_space.d, spvw_walk.d, spvwtabf.d, subr.d:
47450	* utils/modprep.d, utils/modpreptest.out: replace
47451
474522002-06-14  Sam Steingold  <sds@gnu.org>
47453
47454	* spvw_genera1.d (rebuild_old_generation_cache): fix last
47455	patch: FREE_DYNAMIC_ARRAY should be on the same block level as
47456	DYNAMIC_ARRAY
47457
474582002-06-14  Arseny Slobodjuck  <ampy@ich.dvo.ru>
47459
47460	fix bug#88: core dump using :rehash-size in 9nines
47461	On MSVC, also UNIX with HAVE_ALLOCA_H, RISCOS and others, where
47462	DYNAMIC_ARRAY implemented through _alloca(3), putting it
47463	into the loop is dangerous: stack is freed only when function
47464	returns, not by FREE_DYNAMIC_ARRAY.
47465	* spvw_genera1.d (rebuild_old_generation_cache): put allocation
47466	of fixed sized block out of loop. May allocate unneeded block,
47467	but that case seems rare to me.
47468
474692002-06-13  Sam Steingold  <sds@gnu.org>
47470
47471	grand type renaming: * --> *_t:
47472	decoded_time --> decoded_time_t
47473	internal_time --> internal_time_t
47474	lisp_function --> lisp_function_t
47475	map_heap_function --> map_heap_function_t
47476	object_initdata --> object_initdata_t
47477	subr_initdata --> subr_initdata_t
47478	timescore --> timescore_t
47479	* modules/clx/new-clx/e2d.c, affi.d, eval.d, foreign1.lisp,
47480	* fsubr.d, genclisph.d, lisparit.d, lispbibl.d, modules.d,
47481	* pathname.d, spvw.d, spvw_gcstat.d, spvw_walk.d, subr.d, time.d,
47482	* utils/modprep.d, utils/modpreptest.out: replace
47483
474842002-06-12  Sam Steingold  <sds@gnu.org>
47485
47486	Russian messages are now working
47487	* configure.in (ALL_LINGUAS): add `ru'
47488	* constsym.d (russian): add
47489	* init.lisp (russian.lisp) [GETTEXT UNICODE]: load
47490	* russian.lisp: new file
47491	* spvw_language.d (language_russian): add
47492	(current_language_o, init_language): handle it
47493	(init_language_from): check for Russian
47494	* makemake.in (LPARTS) [$with_unicode]: add russian
47495
474962002-06-12  Sam Steingold  <sds@gnu.org>
47497
47498	* lispbibl.d (schar): match the cast in return with the return type
47499
475002002-06-12  Arseny Slobodjuck  <ampy@ich.dvo.ru>
47501
47502	Fix win32 build
47503	* win32.d [_MSC_VER]: no LC_MESSAGES in msvc
47504	* socket.d (connect_via_ip): fix bad goto
47505
475062002-06-12  Bruno Haible  <bruno@clisp.org>
47507
47508	* lispbibl.d (schar): Add comments! Change return type to chart.
47509	Make 'static inline', not 'global inline', for better inlining.
47510	* array.d (storagevector_aref): Update for schar change.
47511	* charstrg.d (schar): Remove out-of-line definition.
47512	(coerce_char): Update for schar change.
47513	(CHAR, SCHAR): Likewise.
47514	* debug.d (read_form): Likewise.
47515	* io.d (sstring_printf): Likewise.
47516	* pathname.d (Z_AT_SLASH, parse_logical_word)
47517	(parse_logical_host_prefix, parse_logical_pathnamestring)
47518	(PARSE-NAMESTRING): Likewise.
47519	(legal_logical_word): Change variable from 'cintX' to 'chart', it's
47520	safer.
47521	(legal_type, wild_p, word_wild_p): Likewise.
47522	(wildcard_diff_ab): Update for schar change. Simplify filling string.
47523	(translate_nametype_aux, ensure_last_slash): Update for schar change.
47524	* stream.d (read_char_array, rd_ch_str_in, wr_ch_array_pphelp)
47525	(rd_ch_buff_in): Likewise.
47526
475272002-06-12  Bruno Haible  <bruno@clisp.org>
47528
47529	* makemake.in (XCFLAGS): Put a space before --traditional-cpp.
47530
475312002-06-12  Bruno Haible  <bruno@clisp.org>
47532
47533	* array.d (make_storagevector): Create a string with as small
47534	element size as possible.
47535
475362002-06-12  Bruno Haible  <bruno@clisp.org>
47537
47538	* encoding.d (MAKE-ENCODING): Fix a GC safety bug. Use the
47539	original arg for the error message, not the upcased one.
47540
475412002-06-12  Bruno Haible  <bruno@clisp.org>
47542
47543	* socket.d (CLOSESOCKET): Make macro more robust.
47544
475452002-06-12  Bruno Haible  <bruno@clisp.org>
47546
47547	* m4/lcmessage.m4 (AM_LC_MESSAGES): Do not test
47548	ac_cv_header_locale_h here.
47549	* m4/gettext.m4 (AM_INTL_SUBDIR): Test it here.
47550	* configure.in: Call AM_LC_MESSAGES.
47551	* unixconf.h.in (HAVE_LC_MESSAGES): New macro.
47552	* win32.d (HAVE_LC_MESSAGES): New macro.
47553	* spvw_ctype.d (init_ctype): Use HAVE_LC_MESSAGES.
47554
475552002-06-12  Eduard Haritonov <hed@iis.nsk.su>
47556	    Arseny Slobodjuck  <ampy@ich.dvo.ru>
47557
47558	Long awaited Russian translations
47559	* po/Makefile.devel: add ru language
47560	* po/Makefile.trans.ru: new translator's makefile
47561	* po/ru.po: new translations file
47562
475632002-06-11  Sam Steingold  <sds@gnu.org>
47564
47565	* complete.lisp (completion): restored adding ")" when completing
47566	a function without arguments, broken since FUNCTION-SIGNATURE was
47567	modified to return the function name as the first value
47568
475692002-06-11  Sam Steingold  <sds@gnu.org>
47570
47571	* spvw.d (main): add an undocumented, unsupported `-d'
47572	developer option: not in usage(), clisp.c, clisp.html, clisp.1 &c
47573	for now just unlock all packages
47574
475752002-06-11  Sam Steingold  <sds@gnu.org>
47576
47577	* makemake.in (XCFLAGS) [darwin]: add `--traditional-cpp'
47578	(--verbose): new option
47579
475802002-06-11  Sam Steingold  <sds@gnu.org>
47581
47582	* spvw_ctype.d (init_ctype) [UNIX_DARWIN]: no LC_MESSAGES,
47583	just like on WIN32_NATIVE
47584
475852002-06-10  Sam Steingold  <sds@gnu.org>
47586
47587	* charstrg.d (string_gleich): use string_eqcomp()
47588	(string_equal): use string_eqcomp_ci()
47589
475902002-06-10  Sam Steingold  <sds@gnu.org>
47591
47592	make string element access slightly easier: use schar()
47593	* lispbibl.d (schar): define
47594	* charstrg.d (schar) [HAVE_SMALL_SSTRING]: implement
47595	(coerce_char, CHAR, SCHAR): use schar()
47596	* array.d (storagevector_aref): use schar()
47597	* debug.d (read_form): ditto
47598	* io.d (sstring_printf): ditto
47599	* pathname.d (schar): remove
47600	(parse_logical_word, parse_logical_host_prefix)
47601	(parse_logical_pathnamestring, translate_nametype_aux)
47602	(parse_logical_host_prefix, wildcard_diff_ab)
47603	(ensure_last_slash): use direct `==' instead of chareq(as_chart)
47604	* stream.d (read_char_array, rd_ch_str_in, wr_ch_array_pphelp)
47605	(rd_ch_buff_in): use schar()
47606
476072002-06-10  Sam Steingold  <sds@gnu.org>
47608
47609	* pathname.d (common_case, test_optional_host, all_digits)
47610	(split_name_type, legal_logical_word, legal_type, wild_p)
47611	(word_wild_p, Z_AT_SLASH): adjusted for the new SIMPLE-STRING
47612	model by using SstringDispatch (for the 2002-05-26 UCS-4 patch)
47613	(schar, copy_upcase): new functions
47614	(parse_logical_word, translate_nametype_aux, PARSE-NAMESTRING)
47615	(parse_logical_host_prefix, parse_logical_pathnamestring)
47616	(wildcard_diff_ab): use them
47617
476182002-06-10  Sam Steingold  <sds@gnu.org>
47619
47620	* makemake.in: when running CLISP, pass "-E UTF-8" instead of
47621	"-Efile UTF-8" for the sake of "make check" on badly localized
47622	machines (ascii terminals make UNICODE warnings into errors)
47623
476242002-06-10  Sam Steingold  <sds@gnu.org>
47625
47626	user can now control the exit code better
47627	* lispbibl.d, spvw.d (final_exitcode): int, not bool (spvw.d
47628	and win32aux.d already assign it non-bool values)
47629	* control.d (%EXIT): errorp maybe a positive fixnum, in which
47630	case we can use its value for final_exitcode
47631
476322002-06-10  Sam Steingold  <sds@gnu.org>
47633
47634	* erramiga.d: do not use /* ENGLISH */ to mark
47635	gettext catalog messages
47636
476372002-06-07  Sam Steingold  <sds@gnu.org>
47638
47639	* modules/clx/new-clx/configure.in: work with autoconf-2.53
47640	(GB_CHECK): remove
47641
476422002-06-07  Sam Steingold  <sds@gnu.org>
47643
47644	do not distribute autoconf with CLISP
47645	* Makefile.devel (EXCLUDE): exclude the po/tmp and autoconf cache
47646	(AUTOCONF_VERSION): new exported variable
47647	(AUTOCONF, AUTOCONF_CACHE): new variables
47648	(AUTOCONF_FILES): remove autoconf.m4f
47649	(*/configure): use $(AUTOCONF)
47650	(check-configures): remove $(AUTOCONF_CACHE)
47651	(potfiles): cleanup
47652	* ffcall/Makefile.devel (AUTOCONF_VERSION, AUTOCONF): new variables
47653	(AUTOCONF_FILES): remove autoconf.m4f
47654	(*/configure): use $(AUTOCONF)
47655	* libcharset/Makefile.devel, sigsegv/Makefile.devel:
47656	(AUTOCONF_VERSION, AUTOCONF): new variables
47657	(*/configure): use $(AUTOCONF)
47658	* ffcall/autoconf/autoconf, ffcall/autoconf/autoconf.m4f,
47659	* sigsegv/autoconf/autoconf, sigsegv/autoconf/autoconf.m4f,
47660	* autoconf/autoconf, autoconf/autoconf.m4f: remove
47661
476622002-06-06  Peter Burwood  <clisp@peterb.org.uk>
47663
47664	* stdint.h.in (NEED_SIGNED_INT_TYPES): New define.
47665	(int8_t) [NEED_SIGNED_INT_TYPES]: Declare type only when needed.
47666	(int16_t, int32_t, int64_t): Likewise.
47667
476682002-06-05  Bruno Haible  <bruno@clisp.org>
47669
47670	* lispbibl.d (DYNAMIC_STRING) [UNICODE]: Use Rectype_S32string, not
47671	Rectype_S8string.
47672
476732002-06-05  Sam Steingold  <sds@gnu.org>
47674
47675	tweaked the last Arseny's patch
47676	* socket.d (lingerize_socket) [WIN32]: remove (not used)
47677	(ioctl) [WIN32]: moved to win32.d
47678	* win32.d (ioctl): define here, just like ioctl for UNIX is
47679	defined in unix.d
47680
476812002-06-04  Peter Burwood  <clisp@peterb.org.uk>
47682
47683	* m4/address.m4 (CL_ADDRESS_RANGE): Remove cl_cv_prog_cc_ansi test
47684	now that CL_CC_ANSI is not required.
47685
476862002-06-05  Arseny Slobodjuck <ampy@ich.dvo.ru>
47687
47688	Working with sockets on win32
47689	* win32.d (socket_wait_event): new enum typedef
47690	(interruptible_socket_wait): rename from
47691	interruptible_wait and generalized to take event parameter,
47692	see socket select() function for description of	these events.
47693	* win32aux.d (socket_wait_params): parameter struct to pass
47694	in thread.
47695	(do_socket_wait): rename from do_wait, takes struct
47696	as Joerg likes, now tests for given event, not only for read.
47697	(interruptible_socket_wait): parameters changed to struct.
47698	* socket.d (ioctl) [WIN32]: define on win32 as ioctlsocket.
47699	(bindlisten_via_ip): do not lingerize socket (seems working,
47700	need to test).
47701	(connect_via_ip): do not lingerize. Fix for win32 (may affect
47702	UNIX behavior too).
47703	* stream.d (socket_server_wait): use rename
47704	interruptible_socket_wait.
47705
477062002-06-04  Peter Burwood  <clisp@peterb.org.uk>
47707
47708	* lispbibl.d (DYNAMIC_STRING): Replace obsolete Rectype_Sstring with
47709	Rectype_S8string
47710
477112002-06-04  Sam Steingold  <sds@gnu.org>
47712
47713	* savemem.lisp (saveinitmem): add :START-PACKAGE argument
47714
477152002-06-04  Sam Steingold  <sds@gnu.org>
47716
47717	* Makefile.devel (CONFIGURES): add libcharset/configure
47718	(libcharset/configure): new target
47719
477202002-06-03  Sam Steingold  <sds@gnu.org>
47721
47722	* describe.lisp (describe-object): print the length of the lists
47723	before enumerating properties, packages, symbols &c
47724
477252002-06-03  Sam Steingold  <sds@gnu.org>
47726
47727	* makemake.in (packopt): fix the 2002-05-15 patch which broke
47728	giving meaningful package options (e.g. --with-threads=POSIX_THREADS)
47729
477302002-06-03  Sam Steingold  <sds@gnu.org>
47731
47732	build process: tweak 2002-05-30 patch: instead of relying on
47733	HAVE_*_H, add "." to the include path (-I.) and #include <...>
47734	* makemake.in (XCFLAGS): add -I. when STDBOOL_H and STDINT_H
47735	are non-void
47736	* lispbibl.d, uniname.c, unitypes.h: #include <...>
47737
477382002-05-31  Sam Steingold  <sds@gnu.org>
47739
47740	tweaked the last two win32 patches
47741	* socket.d (connect_via_ip): use sock_set_errno() instead of
47742	explicit errno= (for the benefit of win32)
47743	* win32.d (EINPROGRESS, ETIMEDOUT): remove
47744	(earlylate_asciz_error): remove declaration
47745	* win32aux.d (earlylate_asciz_error): local, not global
47746	if we need such global function in the future,
47747	it should probably go into <error.d>
47748
477492002-06-01  Arseny Slobodjuck <ampy@ich.dvo.ru>
47750
47751	Win32 build fixes
47752	* win32.d: include <locale.h>
47753	(EINPROGRESS, ETIMEDOUT): define to use instead of WSAE*.
47754	* spvw_ctype (init_ctype) [WIN32_NATIVE]: LC_MESSAGES is not
47755	defined on win32
47756
477572002-05-31  Arseny Slobodjuck <ampy@ich.dvo.ru>
47758
47759	* win32.d (stderr_handle): new global variable.
47760	(earlylate_asciz_error): new function.
47761	* win32aux.d (stderr_handle): define.
47762	(winsock_initialized): new static variable.
47763	(init_win32): initialize stderr_handle,
47764	set winsock_initialized, use earlylate_asciz_error
47765	(done_win32): use winsock_initialized flag.
47766	(earlylate_asciz_error): New function. Prints an
47767	error to stderr, optionally exits clisp (the latter
47768	is not recommended). Does not use clisp internals.
47769
477702002-05-30  Sam Steingold  <sds@gnu.org>
47771
47772	* genclisph.d: anticipate possible future addition of stdint.h
47773	(print_file): new function
47774	(main): use it to output stdbool.h
47775
477762002-05-30  Sam Steingold  <sds@gnu.org>
47777
47778	OpenBSD build fixes
47779	* lispbibl.d, uniname.c (stdbool.h): check HAVE_STDBOOL_H
47780	* unitypes.h (stdint.h): check HAVE_STDINT_H
47781	* unixconf.h.in (HAVE_STDINT_H): add an #undef
47782
477832002-05-29  Sam Steingold  <sds@gnu.org>
47784
47785	* makemake.in (UNICODE_EXTRA): new variable (fix the build
47786	broken by addition of streq.h cjk.h uniwidth.h width.c)
47787
477882002-05-28  Sam Steingold  <sds@gnu.org>
47789
47790	* socket.d (connect_via_ip): when 0 timeout is given return
47791	immediately (do not wait at all); the next i/o operation on this
47792	socket might block - use SOCKET-STATUS to check that
47793
477942002-05-29  Bruno Haible  <bruno@clisp.org>
47795
47796	Speed up the loading of type.lisp.
47797	* lispbibl.d (Encoding): Add a maxintervals argument to the enc_range
47798	function.
47799	(Encoding_range): Update.
47800	* stream.d (iconv_range): Add a maxintervals argument.
47801	* encoding.d (all_range): Likewise.
47802	(bmp_range): Likewise.
47803	(nls_range): Likewise.
47804	(SYSTEM::CHARSET-TYPEP): Update.
47805	(SYSTEM::CHARSET-RANGE): Add optional maxintervals argument.
47806	* pseudofun.d (all_range, nls_range, iconv_range): Add a maxintervals
47807	argument.
47808	* type.lisp (get-charset-range): Add optional maxintervals argument.
47809
478102002-05-29  Bruno Haible  <bruno@clisp.org>
47811
47812	Upgrade CHAR-WIDTH and STRING-WIDTH to Unicode 3.2.
47813	* streq.h: New file, from libunistring-0.0.
47814	* cjk.h: New file, from libunistring-0.0.
47815	* uniwidth.h: New file, from libunistring-0.0.
47816	* width.c: New file, from libunistring-0.0.
47817	* charstrg.d (nonspacing_table_data, nonspacing_table_ind): Remove
47818	arrays. Instead include width.c.
47819	(char_width): Rewritten to use uc_width.
47820	* spvw.d (locale_encoding): New variable.
47821	* encoding.d (init_dependent_encodings): Initialize locale_encoding.
47822
478232002-05-28  Sam Steingold  <sds@gnu.org>
47824
47825	* stream.d (buffered_half_flush, buffered_full_flush): remove
47826	(buffered_flush): always do what buffered_half_flush() used to do
47827
478282002-05-28  Bruno Haible  <bruno@clisp.org>
47829
47830	* lispbibl.d (STACK_register): Fix #if condition.
47831
478322002-05-28  Bruno Haible  <bruno@clisp.org>
47833
47834	* makemake.in (XCC_GCC_VERSION): Update for gcc 3.1.
47835	(XCFLAGS): With gcc 3.1, add -fno-gcse.
47836
478372002-05-28  Bruno Haible  <bruno@clisp.org>
47838
47839	* lispbibl.d (setSP, FAST_SP) [I80386]: Do not define when using
47840	gcc-3.1.
47841
478422002-05-26  Bruno Haible  <bruno@clisp.org>
47843
47844	Assume <locale.h> exists.
47845	* m4/locale.m4: Remove file.
47846	* m4/setlocale.m4 (CL_SETLOCALE): Assume <locale.h> exists.
47847	* configure.in (CL_LOCALE_H): Remove call.
47848	* unixconf.h.in (HAVE_LOCALE_H): Remove macro.
47849	* unix.d: Always include <locale.h> and declare setlocale.
47850	* spvw_ctype.d (init_ctype): Assume HAVE_LOCALE_H is defined.
47851
478522002-05-26  Bruno Haible  <bruno@clisp.org>
47853
47854	Finish 1998-02-11 patch.
47855	* m4/cc-ansi.m4: Remove file.
47856	* m4/address.m4 (CL_ADDRESS_RANGE): Do not require CL_CC_ANSI.
47857	* configure.in (CL_CC_ANSI): Remove call.
47858	* makemake.in: Remove CC_ANSI handling.
47859	* Makefile.devel (acorn/makefile.cc): Pass second argument 'cc' to
47860	makemake.
47861
478622002-05-27  Sam Steingold  <sds@gnu.org>
47863
47864	fix last patch
47865	* makemake.in (NLS_INCLUDES): remove nls_cp1255 and nls_cp1258
47866	* charstrg.d (nstring_downcase): add cint32 case
47867	(nstring_upcase): remove the spurious extra case
47868
478692002-05-26  Bruno Haible  <bruno@clisp.org>
47870
47871	* utils/unicode/Makefile (ALL): Remove nls_cp1255.c, nls_cp1258.c.
47872	(nls_cp1255.c, nls_cp1258.c): Remove rules.
47873	* nls_cp1255.c: Remove file.
47874	* nls_cp1258.c: Remove file.
47875	* constsym.d (CP1255, CP1258, WINDOWS-1255, WINDOWS-1258):
47876	Conditionalize on GNU_LIBICONV || glibc-2.2.
47877	(BIG5-HKSCS): Rename from BIG5HKSCS.
47878	(KOI8-RU, EUC-JP, SHIFT-JIS, CP932, ISO-2022-JP, EUC-CN, GBK, CP936)
47879	(GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN)
47880	(ISO-2022-CN-EXT, EUC-KR, CP949, ISO-2022-KR, JOHAB, ARMSCII-8)
47881	(GEORGIAN-ACADEMY, GEORGIAN-PS, TIS-620, CP1133, VISCII, TCVN, UTF-16)
47882	(UTF-7): Also enable on glibc-2.2.
47883	(ISO-2022-JP-2): Also enable on glibc-2.3.
47884	* encoding.d: Do not include nls_cp1255.c and nls_cp1258.c.
47885	(nls_tables): Remove nls_cp1255_table, nls_cp1258_table.
47886	(iconv_first_sym, iconv_last_sym, iconv_num_encodings): Also define
47887	on glibc-2.2.
47888	(init_encodings_2): Update according to changes in constsym.d.
47889	(encoding_from_name): Handle CP1255 in the libiconv specific part.
47890	Use same code on glibc-2.2 as with libiconv. Use BIG5-HKSCS, not
47891	BIG5HKSCS.
47892	* pseudofun.d (nls_cp1255_table, nls_cp1258_table): Remove entries.
47893
478942002-05-26  Bruno Haible  <bruno@clisp.org>
47895
47896	* lispbibl.d (HAVE_GOOD_ICONV): Define if good iconv available.
47897	(HAVE_ICONV): Do not undefine this.
47898	* encoding.d: Test HAVE_GOOD_ICONV instead of GNU_LIBICONV ||
47899	HAVE_ICONV.
47900	* pseudofun.d: Likewise.
47901	* stream.d: Likewise. Assume ICONV_CONST is defined.
47902
479032002-05-26  Bruno Haible  <bruno@clisp.org>
47904
47905	Fix "make distclean".
47906	* makemake.in (OBSOLETE): Do not add linkkit.
47907	(install-bin): Use RMRF variable.
47908	(distrib): Likewise.
47909	(clean0): rm -rf linkkit.
47910	(clean1): rm -rf base full.
47911	(clean4): rm -f charset.alias.
47912	(clean5): If building outside srcdir, remove the UNICODE_INCLUDES,
47913	the NLS_INCLUDES, and unitypes.h, uniname.h, uninames.h. rm -rf data.
47914	(clean7): rm -rf avcall callback libcharset sigsegv. If building
47915	outside srcdir, rm -rf readline po termcap, and rm -f configure
47916	unixconf.h.in makemake.in VERSION.
47917
479182002-05-26  Bruno Haible  <bruno@clisp.org>
47919
47920	Implement UCS-4 strings.
47921	* lispbibl.d: Accept new flag NO_SMALL_SSTRING.
47922	(Rectype_S8string, Rectype_Imm_S8string, Rectype_S16string)
47923	(Rectype_Imm_S16string, Rectype_S32string, Rectype_Imm_S32string):
47924	New enumeration values.
47925	(Rectype_Sstring, Rectype_Imm_Sstring, Rectype_SmallSstring)
47926	(Rectype_Imm_SmallSstring): Remove enumeration values.
47927	(char_int_len): Define to 24 instead of 16.
47928	(char_int_limit): Define to 0x110000 instead of 0x10000.
47929	(HAVE_SMALL_SSTRING): Do not define if NO_SMALL_SSTRING is specified.
47930	(small_char_int_len, small_char_int_limit, small_char_code_limit):
47931	Remove macros.
47932	(scint): Remove type.
47933	(cint8, cint16, cint32): New types.
47934	(cint8_limit, cint16_limit, cint32_limit): New macros.
47935	(STRUCT_SSTRING): New macro.
47936	(small_sstring_, SmallSstring): Remove types.
47937	(s8string_, S8string, s16string_, S16string, s32string_, S32string):
47938	New types.
47939	(Array_type_sstring): Handle 3 different simple-string types.
47940	(TheSmallSstring): Remove macro.
47941	(TheS8string, TheS16string, TheS32string): New macros.
47942	(vectorp, simplep, array_simplep, simple_string_p, stringp)
47943	(arrayp): Update.
47944	(if_recordp): Handle 3 different simple-string types.
47945	(small_char_p): Remove macro.
47946	(case_Rectype_Sstring_above): Handle 3 different simple-string types.
47947	(case_Rectype_string_above): Likewise.
47948	(case_Rectype_array_above): Likewise.
47949	(allocate_s8string, allocate_imm_s8string, allocate_s16string)
47950	(allocate_imm_s16string, allocate_s32string)
47951	(allocate_imm_s32string): New declarations.
47952	(allocate_string): Change to a macro.
47953	(allocate_imm_string): Likewise.
47954	(allocate_small_string, allocate_imm_small_string): Remove
47955	declarations.
47956	(reallocate_small_string): Add an argument 'newtype'.
47957	(copy_8bit_8bit, copy_8bit_16bit, copy_8bit_32bit, copy_16bit_8bit)
47958	(copy_16bit_16bit, copy_16bit_32bit, copy_32bit_8bit)
47959	(copy_32bit_16bit, copy_32bit_32bit): New declarations.
47960	(chartcopy): Remove macro.
47961	(scintcopy): Remove declaration.
47962	(SstringCase): Rename from SstringDispatch. Add one more case.
47963	(SstringDispatch): New macro.
47964	(sstring_normal_p): Update.
47965	(unpack_sstring_alloca): Update. Call copy_16bit_32bit or
47966	copy_8bit_32bit instead of scintcopy.
47967	(check_sstring_mutable): Handle 3 different simple-string types.
47968	* array.d (storagevector_aref): Update SstringDispatch invocation.
47969	(storagevector_store): Handle 3 different simple-string types.
47970	(elt_copy_Char_T): Update SstringDispatch invocation.
47971	(elt_copy_T_Char): Handle 3 different simple-string types.
47972	(elt_copy_Char_Char): Likewise.
47973	(elt_move_Char): Update SstringDispatch invocation. Do not inline
47974	elt_copy_Char_Char.
47975	(elt_fill): Update SstringDispatch invocation.
47976	(elt_reverse): Handle 3 different simple-string types.
47977	(elt_nreverse): Update SstringDispatch invocation.
47978	(ssstring_extend_low): Call copy_32bit_32bit/copy_8bit_8bit
47979	instead of chartcopy.
47980	(ssstring_append_extend): Handle 3 different simple-string types.
47981	(initial_contents_aux): Make it compile if TYPECODES.
47982	(ADJUST-ARRAY): Replace allocate_small_string call by one of
47983	allocate_s[8|16|32]string.
47984	* charstrg.d (nop_page): Change element type to uint16.
47985	(copy_8bit_8bit, copy_8bit_16bit, copy_8bit_32bit, copy_16bit_8bit)
47986	(copy_16bit_16bit, copy_16bit_32bit, copy_32bit_8bit)
47987	(copy_32bit_16bit, copy_32bit_32bit): New functions.
47988	(scintcopy): Remove function.
47989	(string_gleich): Update SstringDispatch invocations.
47990	(string_equal): Likewise.
47991	(sstring_store): Handle 3 different simple-string types.
47992	(sstring_store_array): Likewise.
47993	(copy_string): Likewise.
47994	(coerce_imm_ss): Likewise.
47995	(coerce_normal_ss): Likewise.
47996	(coerce_char): Update SstringDispatch invocation.
47997	(char_name): Update allocate_small_string invocation. Return a
47998	string of length 9 for characters with code >= 0x10000.
47999	(name_char): Accept names of the form "Uxxxxxxxx" of length 9.
48000	(CHAR): Update SstringDispatch invocation.
48001	(SCHAR): Likewise.
48002	(test_string_limits_rw): Handle 3 different simple-string types.
48003	(string_eqcomp): Update SstringDispatch invocations.
48004	(string_comp): Likewise.
48005	(string_eqcomp_ci): Likewise.
48006	(string_comp_ci): Likewise.
48007	(string_width): Update SstringDispatch invocation.
48008	(nstring_upcase): Handle 3 different simple-string types.
48009	(nstring_downcase): Likewise.
48010	(nstring_capitalize): Likewise.
48011	(subsstring): Likewise.
48012	(SUBSTRING): Likewise.
48013	(string_concat): Likewise.
48014	* debug.d (read_form): Update SstringDispatch invocation.
48015	* encoding.d (hex_table): Make read-only.
48016	(fehler_unencodable): Display character codes >= 0x10000 correctly.
48017	(bmp_range): New function.
48018	(uni16_wcslen): Handle the case of characters >= 0x10000 in the
48019	source string.
48020	(uni16be_wcstombs): Likewise.
48021	(uni16le_wcstombs): Likewise.
48022	(fehler_uni32_invalid): Update error message.
48023	(uni32be_mblen): Rename from uni32_mblen.
48024	(uni32le_mblen): New function.
48025	(uni32be_mbstowcs): Correct counting in case the error action is
48026	:IGNORE.
48027	(uni32le_mbstowcs): Likewise.
48028	(uni32be_wcstombs): Output characters outside the BMP correctly.
48029	(uni32le_wcstombs): Likewise.
48030	(fehler_utf8_invalid4): New function.
48031	(utf8_mblen): Reject UTF-8 encoded surrogates. Accept 4-byte sequences.
48032	(utf8_mbstowcs): Likewise.
48033	(utf8_wcstombs): Emit 4-byte sequence for characters outside the BMP.
48034	(java_mblen): Accept 12-byte sequences.
48035	(java_mbstowcs): Likewise.
48036	(java_wcslen): Characters outside the BMP generate 12 bytes of output.
48037	(java_wcstombs): Likewise.
48038	(nls_wcslen): Handle characters outside the BMP.
48039	(nls_wcstombs): Likewise.
48040	(nls_asciiext_wcslen): Handle characters outside the BMP. Remove a
48041	piece of dead code.
48042	(nls_asciiext_wcstombs): Handle characters outside the BMP.
48043	(nls_range): Speed up the case when end >= 0x10000.
48044	(ascii_to_string): Simplify.
48045	(init_encodings_1): Use bmp_range instead of all_range for
48046	UNICODE-16-BIG-ENDIAN and UNICODE-16-LITTLE-ENDIAN. Use uni32le_mblen
48047	for UNICODE-32-LITTLE-ENDIAN. Change max_bytes_per_char of UTF-8 to 4.
48048	Change max_bytes_per_char of JAVA to 12.
48049	* hashtabl.d (hashcode_string): Update SstringDispatch invocation.
48050	(hashcode3_atom): Handle 3 different simple-string types.
48051	(hashcode4_vector_Char): Update SstringDispatch invocation.
48052	* io.d (sstring_printf): Update SstringDispatch invocation.
48053	(small_char_code_limit): New macro.
48054	(write_sstring_case): Update SstringDispatch invocations.
48055	(pr_symbol_part): Likewise.
48056	(pr_sstring_ab): Likewise.
48057	(pr_orecord): Handle 3 different simple-string types.
48058	* lisparit.d (decimal_string): Inline the copying loop, instead of
48059	calling chartcopy.
48060	* misc.d (MACHINE-VERSION): Use TheS8string instead of TheSmallSstring.
48061	* package.d (string_hashcode): Update SstringDispatch invocation.
48062	* pathname.d (looks_logical_p): Update SstringDispatch invocation.
48063	(PARSE-NAMESTRING): Use SstringCase instead of SstringDispatch.
48064	(legal_name): Update SstringDispatch invocation.
48065	(ensure_last_slash): Likewise.
48066	* predtype.d (elt_compare_T_Char): Update SstringDispatch invocation.
48067	* pseudofun.d (bmp_range, uni32be_mblen, uni32le_mblen): New entries.
48068	(uni32_mblen): Remove entry.
48069	* spvw_garcol.d (gc_mark): Handle 3 different simple-string types.
48070	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
48071	* spvw_objsize.d (size_s8string, size_s16string, size_s32string):
48072	New macros.
48073	(size_sstring): Define as alias of size_s32string or size_s8string.
48074	(objsize): Handle 3 different simple-string types.
48075	* spvw_typealloc.d (allocate_string, allocate_imm_string)
48076	(allocate_small_string, allocate_imm_small_string): Remove functions.
48077	(allocate_s8string, allocate_imm_s8string, allocate_s16string)
48078	(allocate_imm_s16string, allocate_s32string)
48079	(allocate_imm_s32string): New functions.
48080	(reallocate_small_string): Add 'newtype' argument.
48081	* spvw_update.d (update_varobject): Handle 3 different
48082	simple-string types.
48083	* stream.d (wr_ch_array_dummy): Update SstringDispatch invocation.
48084	(read_char_array): Likewise.
48085	(rd_ch_str_in): Likewise.
48086	(wr_ch_array_pphelp): Likewise.
48087	(rd_ch_buff_in): Likewise.
48088	(CLISP_INTERNAL_CHARSET): Change to UCS-4-INTERNAL.
48089	(rd_ch_array_buffered): Update SstringDispatch invocation.
48090	(wr_ch_array_terminal3): Likewise.
48091	(wr_ch_array_window): Likewise.
48092	(FILE-STRING-LENGTH): Likewise.
48093
48094	Upgrade Unicode character data tables from 2.0.14 to 3.2.0.
48095	* utils/unicode/gen-ctype.c: New file.
48096	* utils/unicode/attribute_table.java: Remove file.
48097	* utils/unicode/upcase_table.java: Remove file.
48098	* utils/unicode/downcase_table.java: Remove file.
48099	* utils/unicode/uni_bothcase.java: Remove file.
48100	* utils/unicode/Makefile (JAVA, JAVAC): Remove variables.
48101	(uni_upcase.c, upcase_table.class, uni_downcase.c)
48102	(downcase_table.class, uni_attribute.c, attribute_table.class):
48103	Remove rules.
48104	* uni_attribute.c: Regenerated for Unicode 3.2.0 by gen-ctype.c.
48105	* uni_upcase.c: Likewise.
48106	* uni_downcase.c: Likewise.
48107	* charstrg.d (up_case): up_case_table is now shorter than
48108	char_code_limit. Sign-extend the table entry.
48109	(down_case): Likewise.
48110	(unicode_attribute): unicode_attribute_table is now shorter than
48111	char_code_limit.
48112
48113	Upgrade Unicode name tables to 3.2.0.
48114	* uniname.c: New file, from libunistring-0.0.
48115	* uniname.h: New file, from libunistring-0.0.
48116	* utils/gen-uninames: Update from libunistring-0.0.
48117	* uninames.h: New file, from libunistring-0.0, replaces uninames.c.
48118	* uninames.c: Remove file.
48119	* unitypes.h: New file, from libunistring-0.0.
48120	* charstrg.d: Include uniname.h and uniname.c instead of uninames.c.
48121	(unicode_name_word, unicode_name_word_lookup): Remove functions, now
48122	contained in uniname.c.
48123	(jamo_initial_short_name, jamo_medial_short_name)
48124	(jamo_final_short_name): Remove arrays, now contained in uniname.c.
48125	(char_name): Use unicode_character_name function from uniname.c.
48126	(name_char): Use unicode_name_character function from uniname.c.
48127	* makemake.in (UNICODE_INCLUDES): Remove uninames, add uniname.
48128	Treat unitypes.h uniname.h uninames.h like the UNICODE_INCLUDES.
48129	charstrg depends on them only if with_unicode is enabled.
48130
48131	Substitute for <stdint.h>.
48132	* stdint.h.in: New file, from libunistring-0.0.
48133	* m4/stdint.m4: New file, from libunistring-0.0.
48134	* configure.in: Invoke gt_STDINT_H.
48135	* makemake.in (EVERY_INCLUDES_H): Add stdint.h.
48136	(stdint.h): New rule.
48137	(clean4): Remove stdint.h.
48138
481392002-05-24  Bruno Haible  <bruno@clisp.org>
48140
48141	* spvw.d (fehler_code_alignment): Give a useful advice for GCC 3.
48142
481432002-05-26  Bruno Haible  <bruno@clisp.org>
48144
48145	* constsym.d: Avoid compilation error when compiling with
48146	GNU_GETTEXT but without UNICODE.
48147
481482002-05-26  Bruno Haible  <bruno@clisp.org>
48149
48150	* makemake.in (FILES): List the additional .a files in the same
48151	order as in LIBS, not in the reverse order.
48152	(LIBS): Add libreadline.a in front of libcharset.a. This avoids a
48153	link error for 'locale_charset' when compiling without -DUNICODE.
48154
481552002-05-26  Sam Steingold  <sds@gnu.org>
48156
48157	timeout on connecting, see <http://cr.yp.to/docs/connect.html>
48158	* socket.d (socket_connect_fn_t): accept 3rd arg `opts' (rename
48159	from `socket_connect_fn')
48160	(with_hostname): accept 4th arg `opts' (passed to `connector')
48161	(connect_to_x_via_ip, bindlisten_via_ip): accept and ignore `opts'
48162	(connect_to_x_server, create_server_socket): pass NULL to
48163	`with_hostname' as `opts'
48164	(create_client_socket, connect_via_ip): accept 3rd `timeout' arg
48165	* stream.d (sec_usec): sec may also be a cons and a real
48166	(socket_server_wait): extracted from SOCKET-WAIT
48167	(SOCKET-ACCEPT, SOCKET-CONNECT): accept 4th keyword arg :TIMEOUT
48168	(SOCKET-WAIT): use socket_server_wait()
48169	* subr.d, subrkwd.d (socket_accept, socket_connect): update
48170	* constsym.d (TIMEOUT): add the keyword
48171
481722002-05-25  Arseny Slobodjuck  <ampy@ich.dvo.ru>
48173
48174	fix win32 build (broken on 2002-05-23 and 2002-05-22)
48175	* array.d (elt_move_Char): rename the label right after
48176	block beginning from `restart' to `restart_it' since 'restart'
48177	is used before as a type name and it confuses the compiler
48178	* charstrg.d (sstring_store_array):
48179	rename `small' to `smallp' for a similar reason
48180	(coerce_normal_ss, nstring_upcase, nstring_downcase):
48181	rename `restart' to `restart_it'
48182	* win32aux.d (read_helper_low, sock_read): fix typos
48183
481842002-05-24  Sam Steingold  <sds@gnu.org>
48185
48186	* bindings/linuxlibc6/linux.lisp (read-helper):
48187	new function (points to read_helper)
48188	(read): a macro, calls read-helper
48189
481902002-05-23  Sam Steingold  <sds@gnu.org>
48191
48192	buffered sockets and pipes now work
48193	* acorn.d (read_helper): prototype
48194	(full_read, safe_read): #define
48195	* amiga.d, msdos.d, win32.d: ditto
48196	* amigaaux.d (read_helper): implement
48197	(full_read): remove
48198	* unixaux.d: ditto
48199	(sock_read) [UNIX_BEOS]: partial read is okay
48200	* win32aux.d (lowlevel_full_read, do_full_read, full_read): remove
48201	(read_helper_low, do_read_helper, read_helper): add
48202	(lowlevel_sock_read): partial read is okay
48203	* stream.d (low_fill_buffered_handle): use safe_read()
48204	instead of full_read()
48205	Suggested by Todd Sabin <tsabin@optonline.net>
48206
482072002-05-23  Sam Steingold  <sds@gnu.org>
48208
48209	* stream.d (strm_buffered_extrafields_t): replace eofindex with
48210	have_eof_p and endvalid
48211	(BufferedStream_eofindex): remove
48212	(BufferedStream_have_eof_p, BufferedStream_endvalid): add
48213	(buffered_half_flush, buffered_flush, buffered_nextbyte)
48214	(buffered_eofbyte, position_file_buffered, read_byte_array_buffered)
48215	(write_byte_array_buffered, rd_ch_buffered, rd_ch_array_buffered)
48216	(logical_position_file_end, make_buffered_stream)
48217	(finish_output_buffered, closed_buffered): update
48218	Suggested by Todd Sabin <tsabin@optonline.net>
48219
482202002-05-22  Sam Steingold  <sds@gnu.org>
48221
48222	* pathname.d (directory_search): save subr_self before calling
48223	MAKE-HASH-TABLE and restore it afterwards (for error reporting)
48224
482252002-05-22  Bruno Haible  <bruno@clisp.org>
48226
48227	Introduce mutable small strings. Storing characters in strings can
48228	now trigger GC.
48229	* lispbibl.d: Verify that SPVW_PURE implies TYPECODES.
48230	(Rectype_SmallSstring, Rectype_reallocstring): New enumeration items.
48231	(siarray_): New struct type.
48232	(Siarray): New type.
48233	(Array_type_sstring): Add Rectype_SmallSstring, Rectype_reallocstring.
48234	(TheSiarray): New macro.
48235	(vectorp, simplep, array_simplep, simple_string_p, stringp, arrayp):
48236	Update.
48237	(if_recordp): Handle Rectype_SmallSstring, Rectype_reallocstring.
48238	(case_Rectype_Sstring_above): Add Rectype_SmallSstring,
48239	Rectype_reallocstring.
48240	(case_Rectype_string_above): Likewise.
48241	(case_Rectype_array_above): Likewise.
48242	(allocate_small_string): New declaration.
48243	(reallocate_small_string): New declaration.
48244	(with_sstring_0): Follow Siarray chain before calling Sstring_length.
48245	(with_sstring): Likewise.
48246	(simple_array_to_storage, simple_array_to_storage1): New macros.
48247	(array_total_size): Turn into an inline function. Follow Siarray chain
48248	before calling Sarray_length.
48249	(elt_fill, elt_reverse): Can now trigger GC.
48250	(SstringDispatch): Handle mutable small-strings.
48251	(sstring_normal_p): Likewise.
48252	(unpack_string_rw): Return the storage vector and offset, instead of
48253	a chart* pointer.
48254	(sstring_store): New declaration.
48255	(sstring_store_array): New declaration.
48256	(nstring_upcase): Take a storage vector and an offset as arguments,
48257	instead of a chart* pointer. Can now trigger GC.
48258	(nstring_downcase): Likewise.
48259	(nstring_capitalize): Likewise.
48260	(check_sstring_mutable): Handle mutable small-strings.
48261	* affi.d (SYS::MEM-READ): Update for unpack_string_rw change.
48262	* array.d (vector_length): Follow Siarray chain before calling
48263	Sarray_length.
48264	(iarray_displace): Likewise.
48265	(iarray_displace_check): Likewise.
48266	(array_displace_check): Likewise.
48267	(subscripts_to_index): Follow Siarray chain before calling test_index.
48268	Return the real storage vector.
48269	(storagevector_store): Add a maygc argument. Return the storage vector.
48270	When storing a character in a small string, reallocate the string
48271	if needed.
48272	(SYS::STORE): Call storagevector_store with maygc=true.
48273	(ROW-MAJOR-AREF): Follow Siarray chain before calling
48274	storagevector_aref.
48275	(SYS::ROW-MAJOR-STORE): Follow Siarray chain before calling
48276	storagevector_store. Call storagevector_store with maygc=true.
48277	(ARRAY-DIMENSION): Follow Siarray chain before calling Sarray_length.
48278	(array_dimensions): Likewise.
48279	(ARRAY-IN-BOUNDS-P): Likewise.
48280	(ARRAY-ROW-MAJOR-INDEX): Follow Siarray chain before calling
48281	test_index.
48282	(elt_copy_T_Char): Handle the case of a mutable small-string.
48283	(elt_copy_Char_Char): Likewise.
48284	(elt_move_Char): Likewise.
48285	(elt_fill): Handle the case of a mutable small-string. Can now trigger
48286	GC.
48287	(elt_reverse): Likewise.
48288	(elt_nreverse): Handle the case of a mutable small-string.
48289	(VECTOR-PUSH): Call storagevector_store with maygc=true.
48290	(VECTOR-PUSH-EXTEND): Likewise.
48291	(initial_contents_aux): Follow Siarray chain if reallocated.
48292	(reshape): Call storagevector_store with maygc=false.
48293	(ADJUST-ARRAY): Create storage vector in the right type (small or not),
48294	to avoid GC later.
48295	* charstrg.d (unpack_string_ro): Follow Siarray chain before calling
48296	Sstring_length.
48297	(unpack_string_rw): Return the storage vector and offset, instead of
48298	a chart* pointer.
48299	(sstring_store): New function.
48300	(sstring_store_array): New function.
48301	(coerce_imm_ss): Handle mutable small-strings and reallocated strings.
48302	(coerce_normal_ss): Likewise.
48303	(coerce_imm_normal_ss): Likewise.
48304	(char_name): Return a small-string if possible.
48305	(CHAR): Follow Siarray chain before calling Sstring_length.
48306	(SCHAR): Likewise.
48307	(SYS::STORE-CHAR): Follow Siarray chain before calling
48308	check_sstring_mutable. Call sstring_store.
48309	(SYS::STORE-SCHAR): Likewise.
48310	(test_string_limits_rw): Handle mutable small-strings.
48311	(test_1_stringsym_limits): Return the storage vector and offset,
48312	instead of a chart* pointer.
48313	(nstring_upcase): Take a storage vector and an offset as arguments,
48314	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
48315	(string_upcase): Follow Siarray chain before return.
48316	(NSTRING-UPCASE): Update.
48317	(STRING-UPCASE): Update. Follow Siarray chain before return.
48318	(nstring_downcase): Take a storage vector and an offset as arguments,
48319	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
48320	(string_downcase): Follow Siarray chain before return.
48321	(NSTRING-DOWNCASE): Update.
48322	(STRING-DOWNCASE): Update. Follow Siarray chain before return.
48323	(nstring_capitalize): Take a storage vector and an offset as arguments,
48324	instead of a chart* pointer. Handle small-strings. Can now trigger GC.
48325	(NSTRING-CAPITALIZE): Update.
48326	(STRING-CAPITALIZE): Update. Follow Siarray chain before return.
48327	* debug.d (read_form): Follow Siarray chain before calling
48328	Sstring_length.
48329	* encoding.d (ascii_to_string): Allocate a mutable small-string.
48330	* foreign.d (convert_from_foreign_array_fill): Return the array.
48331	For strings, convert into a temporary array on the stack, then call
48332	sstring_store_array. Follow Siarray chain before return.
48333	(convert_from_foreign): Follow Siarray chain before storing array.
48334	* hashtabl.d (hashcode3_atom): Handle mutable small-strings and
48335	reallocated strings.
48336	* io.d (sstring_printf): Follow Siarray chain before accessing
48337	elements.
48338	(write_string): Follow Siarray chain before calling write_sstring.
48339	(pr_orecord): Handle mutable small-strings and reallocated strings.
48340	* misc.d (MACHINE-VERSION): Use a small-string.
48341	* pathname.d (PARSE-NAMESTRING): Update for nstring_downcase,
48342	nstring_capitalize changes.
48343	(customary_case): Likewise. Follow Siarray chain before return.
48344	(SHELL): Call sstring_store.
48345	* spvw_garcol.d (gc_mark): Handle Rectype_SmallSstring,
48346	Rectype_reallocstring.
48347	* spvw_genera1.d (walk_area): Likewise.
48348	(build_old_generation_cache): Likewise.
48349	* spvw_objsize.d (size_siarray): New macro.
48350	(objsize): Handle Rectype_SmallSstring. Handling of
48351	Rectype_reallocstring is automatic.
48352	* spvw_typealloc.d (allocate_small_string): New function.
48353	(reallocate_small_string): New function.
48354	* spvw_update.d (update_varobject): Handle Rectype_SmallSstring,
48355	Rectype_reallocstring.
48356	* stream.d (rd_ch_array_dummy): Call sstring_store.
48357	(read_char_array): Likewise. Handle mutable small-strings.
48358	(rd_ch_array_str_in): Follow Siarray chain before calling elt_copy.
48359	(rd_ch_array_unbuffered): Call sstring_store.
48360	(rd_ch_array_buffered): Call sstring_store_array.
48361	(lisp_completion): Fix wrong error message code. Follow Siarray chain
48362	before calling Sstring_length.
48363
483642002-05-22  Bruno Haible  <bruno@clisp.org>
48365
48366	* stream.d (OS_error_saving_errno): Rename from error_saving_errno.
48367	All callers changed.
48368
483692002-05-21  Sam Steingold  <sds@gnu.org>
48370
48371	* inspect.lisp (*http-encoding*): new variable (utf-8/dos)
48372	(http-command, with-http-output): use it
48373
483742002-05-21  Sam Steingold  <sds@gnu.org>
48375
48376	* encoding.d (MAKE-ENCODING): when the iconv charset is already
48377	built-in use it instead of iconv
48378	(ENCODING-CHARSET): new function
48379	* constsym.d, subr.d: ditto
48380	* init.lisp: export ENCODING-CHARSET
48381
483822002-05-21  Sam Steingold  <sds@gnu.org>
48383
48384	* makemake.in (XCFLAGS) [GCC]: no optimization with GCC-3.1
48385
483862002-05-20  Bruno Haible  <bruno@clisp.org>
48387
48388	* stream.d (wr_ch_array_pphel_): Remove function.
48389	(wr_ch_array_pphelp): Inline it here.
48390
483912002-05-20  Bruno Haible  <bruno@clisp.org>
48392
48393	* charstrg.d (CHAR, SYSTEM::STORE-CHAR): Correct checking of validity
48394	of index. Do not use unpack_string here.
48395	(unpack_string): Remove function.
48396	(unpack_string_ro): Inline old unpack_string.
48397	(unpack_string_rw): Call unpack_string_ro, not unpack_string.
48398
483992002-05-20  Bruno Haible  <bruno@clisp.org>
48400
48401	Remove gcc-3.0.4 warning.
48402	* eval.d (LD, LR): Do not use CONCAT to paste strings; juxtaposing the
48403	strings is sufficient.
48404
484052002-05-19  Sam Steingold  <sds@gnu.org>
48406
48407	* lispbibl.d (STACK_register) [S390]: adjusted 2002-03-24 patch
48408	to use the register on GCC-3.1 or better
48409
484102002-05-18  Sam Steingold  <sds@gnu.org>
48411
48412	* makemake.in (stdbool.h): sed RE depends on TOS: not all systems
48413	use autoconf [actually, it is not clear that it is legitimate to
48414	expect a non-UNIX system to have sed; cygwin is ubiquitous though,
48415	so win32 is, hopefully, covered]
48416
484172002-05-18  Arseny Slobodjuck  <ampy@ich.dvo.ru>
48418	    Sam Steingold  <sds@gnu.org>
48419
48420	graceful disconnect and interruptible wait in win32
48421	* stream.d (low_close_socket) [WIN32_NATIVE]: do not shutdown
48422	a socket: shutdown does not respect the linger option.
48423	To use shutdown for graceful disconnect, one should implement
48424	a kind of protocol, i.e. shutdown SEND and wait for client
48425	acknowledgment (client should support that protocol).
48426	(SOCKET-WAIT) [WIN32_NATIVE]: use interruptible_wait()
48427	(SOCKET-STREAM-SHUTDOWN): explicitly cast handle to socket
48428	* socket.d (lingerize_socket) [WIN32_NATIVE]: new function: set
48429	SO_LINGER to 30sec, as is done in Apache (http_main.c)
48430	(bindlisten_via_ip, connect_via_ip) [WIN32_NATIVE]: use it
48431	* spvw.d (main) [WIN32_NATIVE]: call done_win32() to finalize sockets
48432	* win32.d (done_win32, interruptible_wait): declare new functions
48433	* win32aux.d (done_win32): new function: finalizes socket library
48434	(do_wait): new thread function for DoInterruptible
48435	(interruptible_wait): new global function
48436
484372002-05-18  Sam Steingold  <sds@gnu.org>
48438
48439	kill src/gettext; POs are now in src/po
48440	* Makefile.devel (SOURCES3, CONFIGURES, configures, potfiles):
48441	remove gettext/*
48442	(src--distrib): do create a PO tar
48443	* configure: remove gettext, replace gettext/po with po
48444	* configure.in (ALL_LINGUAS, po/Makefile.in): moved here from
48445	gettext/configure.in
48446	* makemake.in: remove gettext, replace gettext/po with po
48447	(ALL_LINGUAS): get it from src/configure.in
48448
484492002-05-17  Sam Steingold  <sds@gnu.org>
48450
48451	fix bug#114: inspector :http broken Content-Length
48452	* inspect.lisp (with-http-output): convert the string to a vector
48453	with CONVERT-STRING-TO-BYTES and STREAM-EXTERNAL-FORMAT of the
48454	socket to reliably compute the `Content-length:' header;
48455	then write it with WRITE-BYTE-SEQUENCE (temporarily changing
48456	STREAM-ELEMENT-TYPE to binary)
48457
484582002-05-17  Bruno Haible  <bruno@clisp.org>
48459
48460	* stdbool.h.in: Upgrade to gettext-0.11.3.
48461	* m4/stdbool.m4: Upgrade to gettext-0.11.3.
48462	* configure.in: Use gt_STDBOOL_H instead of CL_STDBOOL_H.
48463	* makemake.in (stdbool.h): Create using sed.
48464
484652002-05-16  Sam Steingold  <sds@gnu.org>
48466
48467	* stream.d (make_file_stream) [UNIX, RISCOS]: file streams
48468	for the /proc filesystem default to unbuffered (it's better
48469	not to mess with those files anyway!)
48470
484712002-05-16  Sam Steingold  <sds@gnu.org>
48472
48473	* makemake.in (LIBS) [win32]: link with ws2_32 and not wsock32
48474	since we are using winwock2.h
48475
484762002-05-15  Bruno Haible  <bruno@clisp.org>
48477
48478	* makemake.in: Fix handling of with-xxx options, broken on 2002-03-07.
48479
48480	* configure.in: Move the AM_ICONV invocation before AM_GNU_GETTEXT.
48481
48482	Do not forget that 3000 students were murdered by the government
48483	of the "People's Republic of China" in June 1989!
48484
484852002-05-14  Sam Steingold  <sds@gnu.org>
48486
48487	* timezone.lisp (PRC): China does not observe DST since 1991.
48488
484892002-05-10  Bruno Haible  <bruno@clisp.org>
48490
48491	* ../configure: Configure libcharset, not libiconv.
48492	* configure.in: Call AM_GNU_GETTEXT, in order to get use an external
48493	GNU gettext. Call AM_ICONV instead of CL_ICONV.
48494	* m4/iconv.m4: Update from GNU gettext 0.11.2.
48495	* m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/isc-posix.m4,
48496	* m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4,
48497	* m4/progtest.m4: New files, from GNU gettext 0.11.2.
48498	* autoconf/config.rpath: New file, from GNU gettext 0.11.2.
48499	* makemake.in: Pay attention to CPPFLAGS. New variable XCPPFLAGS.
48500	(USE_LIBICONV, XCL_ICONVLIB): Remove variables.
48501	(USE_LIBCHARSET, XCL_CHARSETLIB): New variables.
48502	(GETTEXTLIB): Remove variable.
48503	(USE_GETTEXT, XCL_GETTEXTLIB): Assume external libintl.
48504	(EVERY_INCLUDES_H): Do not include libintl.h and iconv.h, they are
48505	external now. Instead include libcharset.h.
48506	(${GETTEXTLIB}, libintl.a, libintl.h): Remove targets.
48507	(iconv.h, libiconv.a): Remove targets.
48508	(libcharset.a): New target.
48509	(distmakefile): No need for localesed processing.
48510	* lispbibl.d (GNU_LIBICONV): Define only when including <iconv.h>
48511	shows that GNU libiconv is used. Otherwise, if not glibc >= 2.2,
48512	undefine HAVE_ICONV.
48513	* _distmakefile: Use 'share' instead of @DATADIRNAME@.
48514	* Makefile.devel (SOURCES4): Use libcharset, not libiconv.
48515	(CONFIGURES): Remove libiconv/configure.
48516	(libiconv/autoconf/aclocal.m4, libiconv/configure): Remove rules.
48517
485182002-05-08  Sam Steingold  <sds@gnu.org>
48519
48520	* gettext/po/Makefile.devel: use msguniq from GNU gettext 0.11
48521	instead of clisp-msguniq
48522	(clisp-msguniq): remove
48523
485242002-05-07  Bruno Haible  <bruno@clisp.org>
48525
48526	* compiler.lisp (SP-depth): Insert a verification that each label
48527	is a symbol. Fix wrong treatment of JMPIFBOUNDP.
48528
485292002-05-07  Sam Steingold  <sds@gnu.org>
48530
48531	* stream.d (ChannelStream_init): add an end_system_call() for
48532	each begin_system_call()
48533
485342002-05-06  Bruno Haible  <bruno@clisp.org>
48535
48536	* misc.d (LISP-IMPLEMENTATION-VERSION): Use casts to 'unsigned int'
48537	to avoid gcc-3.1 warnings.
48538	* utils/comment5.d: Include <stdlib.h>, for exit().
48539
485402002-05-06  Sam Steingold  <sds@gnu.org>
48541
48542	do not create unusable iconv encodings
48543	* stream.d (fehler_iconv_invalid_charset): remove
48544	(open_iconv): open the iconv conversion and signal all errors
48545	(check_charset): check whether the charset is valid
48546	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
48547	(iconv_range, ChannelStream_init): use open_iconv()
48548	* lispbibl.d (check_charset): declare
48549	* encoding.d (MAKE-ENCODING): check the iconv charset for
48550	validity before making the charset
48551
485522002-05-03  Sam Steingold  <sds@gnu.org>
48553
48554	fix bug#109: cannot use RETURN-FROM in deep nesting
48555	[this bug was introduced by the 2001-06-25 patch]
48556	* compiler.lisp (note-far-used-block): propagate block to
48557	all the enclosing functions, not just the current one
48558
485592002-05-03  Sam Steingold  <sds@gnu.org>
48560
48561	* makemake.in (XCFLAGS) [debug]: add -DDEBUG_OS_ERROR on all
48562	platforms, do not add it on win32 when not debugging
48563	also add -DDEBUG_SPVW -DSAFETY=3
48564	also do not do any optimization when debugging: even though GCC
48565	supports that, the result is not convenient for debugging
48566
485672002-05-02  Sam Steingold  <sds@gnu.org>
48568
48569	* io.d (read_token_1): permit input of multiply escaped illegal
48570	characters (bug fix)
48571
485722002-04-30  Sam Steingold  <sds@gnu.org>
48573
48574	fix bug#107: misleading error converting UTF-7
48575	* stream.d (saving_errno, error_saving_errno): new macros
48576	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
48577	(iconv_range, create_input_pipe, create_output_pipe)
48578	(create_io_pipe): use them
48579
485802002-04-28  Bruno Haible  <bruno@clisp.org>
48581
48582	Split autoconf/aclocal.m4 into pieces.
48583	* m4/general.m4, m4/proto.m4, m4/cc-gcc.m4, m4/c++.m4,
48584	* m4/cc-ansi.m4, m4/cc-cppaux.m4, m4/cc-elif.m4, m4/cc-error.m4,
48585	* m4/cc-ema.m4, m4/cc-mergestrings.m4, m4/as-underscore.m4,
48586	* m4/ranlib.m4, m4/install.m4, m4/cp.m4, m4/ln.m4, m4/x11.m4,
48587	* m4/sys-irix.m4, m4/sys-dynix.m4, m4/socket.m4, m4/sh-args.m4,
48588	* m4/cc-void.m4, m4/ffcall-pccstruct.m4, m4/ffcall-smallstruct.m4,
48589	* m4/ffcall-ireg.m4, m4/longlong.m4, m4/longdouble.m4,
48590	* m4/stdc-headers.m4, m4/offsetof.m4, m4/stdbool.m4, m4/locale.m4,
48591	* m4/unistd.m4, m4/openflags.m4, m4/access.m4, m4/dir.m4,
48592	* m4/utsname.m4, m4/netdb.m4, m4/shm.m4, m4/termios.m4,
48593	* m4/caddr_t.m4, m4/socklen_t.m4, m4/structtm.m4, m4/strlen.m4,
48594	* m4/memset.m4, m4/gmalloc.m4, m4/malloc.m4, m4/free.m4,
48595	* m4/alloca.m4, m4/setjmp.m4, m4/signal.m4, m4/siginterrupt.m4,
48596	* m4/sigaltstack.m4, m4/fpu_control.m4, m4/raise.m4, m4/abort.m4,
48597	* m4/perror.m4, m4/strerror.m4, m4/sys_errlist.m4, m4/getenv.m4,
48598	* m4/putenv.m4, m4/setlocale.m4, m4/rlimit.m4, m4/vfork.m4,
48599	* m4/setsid.m4, m4/execv.m4, m4/execl.m4, m4/waitpid.m4,
48600	* m4/rusage.m4, m4/getcwd.m4, m4/chdir.m4, m4/mkdir.m4, m4/rmdir.m4,
48601	* m4/stat.m4, m4/readlink.m4, m4/eloop.m4, m4/opendir.m4,
48602	* m4/closedir.m4, m4/open.m4, m4/read-write.m4, m4/chmod.m4,
48603	* m4/rename.m4, m4/unlink.m4, m4/fsync.m4, m4/ioctl.m4, m4/fcntl.m4,
48604	* m4/select.m4, m4/ualarm.m4, m4/setitimer.m4, m4/usleep.m4,
48605	* m4/localtime.m4, m4/gettimeofday.m4, m4/ftime.m4, m4/times.m4,
48606	* m4/getpwnam.m4, m4/getpwuid.m4, m4/gethostname.m4,
48607	* m4/gethostbyname.m4, m4/connect.m4, m4/unixconn.m4, m4/tcpconn.m4,
48608	* m4/address.m4, m4/getpagesize.m4, m4/vadvise.m4, m4/mach-vm.m4,
48609	* m4/mmap.m4, m4/munmap.m4, m4/msync.m4, m4/mprotect.m4,
48610	* m4/ffcall-codeexec.m4, m4/shmget.m4, m4/shmat.m4, m4/shmdt.m4,
48611	* m4/shmctl.m4, m4/shm-rmid.m4, m4/dynload.m4, m4/iconv.m4,
48612	* m4/termcap.m4, m4/filecharset.m4, m4/c++-constructors.m4,
48613	* m4/builtin_strlen.m4, m4/cc-char-unsigned.m4, m4/c++-bool.m4,
48614	* m4/intparam.m4, m4/endian.m4: New files.
48615	* Makefile.devel (aclocal.m4): New rule.
48616	* autoconf/acselect: Remove file.
48617	* m4/libtool.m4: Rename from autoconf/libtool.m4.
48618
486192002-04-27  Sam Steingold  <sds@gnu.org>
48620
48621	limited support for tracing local functions (cannot use the
48622	lexicals, i.e., must not be real closures)
48623	* trace.lisp (tracer): new struct
48624	(tracer-set-fdef, check-traceable): new functions
48625	(trace, trace1): use them
48626	(untrace1, untrace2): handle the tracer argument
48627
486282002-04-26  Sam Steingold  <sds@gnu.org>
48629
48630	* lispbibl.d (PC386) [WIN32]: define, so that *FEATURES* will
48631	contain :PC386 on the :WIN32 platform
48632
486332002-04-25  Sam Steingold  <sds@gnu.org>
48634
48635	fix bug#97: early initialization error -> crash
48636	* spvw.d (main): init_other_modules_2() after the stream
48637	variables are already initialized
48638
486392002-04-25  Sam Steingold  <sds@gnu.org>
48640
48641	fix bug#105: inspector help barfs (nested inspectors)
48642	* inspect.lisp (*inspect-all*): bind in INSPECT instead of using
48643	a global variable since nested INSPECT sessions can interfere
48644	with each other, each modifying the same *INSPECT-ALL*
48645	(inspect-finalize): the default method now does nothing
48646
486472002-04-24  Sam Steingold  <sds@gnu.org>
48648
48649	fix bug#104: inspector deletes wrong package on exit
48650	* inspect.lisp (inspect): keep the temp inspect package in a
48651	lexical variable in addition to *PACKAGE*
48652
486532002-04-24  Sam Steingold  <sds@gnu.org>
48654
48655	* spvw.d (init_object_tab) [UNIX_CYGWIN32]: add :CYGWIN to *FEATURES*
48656
486572002-04-24  Sam Steingold  <sds@gnu.org>
48658
48659	upgrade to readline-4.2a
48660	* stream.d (lisp_completion_matches, lisp_completion_more):
48661	fix the signature for the new readline
48662	(rd_ch_terminal3): wrap multi-line history handling inside
48663	begin_system_call()/end_system_call()
48664	(init_streamvars): do not use readline internals
48665	* noreadline.d: upgraded to the readline-4.2a API
48666
486672002-04-24  Jörg Höhle  <hoehle@users.sourceforge.net>
48668	    Sam Steingold  <sds@gnu.org>
48669
48670	patch#5: FOREIGN-FUNCTION+VARIABLE for everybody
48671	this allows CLISP FFI self-test (and dozens of hacks)
48672	* foreign.d (ffi_identity): new function
48673	(ffi_user_pointer): new variable
48674	(init_ffi): register them
48675	* foreign.lisp (ffi_identity, ffi_user_pointer) [commented]: define
48676
486772002-04-23  Jörg Höhle  <hoehle@users.sourceforge.net>
48678	    Sam Steingold  <sds@gnu.org>
48679
48680	patch#4: WITH-FOREIGN-OBJECT FFI stack allocation
48681	* foreign.d (EXEC-ON-STACK): new function
48682	* constsym.d, subr.d: ditto
48683	* foreign1.lisp (with-foreign-object): new public macro
48684
486852002-04-23  Jörg Höhle  <hoehle@users.sourceforge.net>
48686	    Sam Steingold  <sds@gnu.org>
48687
48688	patch#3: C-VAR-ADDRESS and OFFSET foreign-places
48689	* foreign1.lisp (offset, c-var-address): new public macros
48690	* foreign.d (%OFFSET): comment that it is used now
48691
486922002-04-22  Sam Steingold  <sds@gnu.org>
48693
48694	* spvw.d (main): new option: `-interactive-debug', which
48695	overrides batch-mode for -c, -x and exec-file
48696	* constsym.d (APPEASE-CERRORS): define here for the above
48697
486982002-04-22  Jörg Höhle  <hoehle@users.sourceforge.net>
48699	    Sam Steingold  <sds@gnu.org>
48700
48701	* foreign.d (UNSIGNED-FOREIGN-ADDRESS): new function
48702	(FOREIGN-ADDRESS-VALUE): rename to FOREIGN-ADDRESS-UNSIGNED
48703	* subr.d, constsym.d: ditto
48704	* foreign1.lisp (foreign-address-null): use FOREIGN-ADDRESS-UNSIGNED
48705
487062002-04-22  Sam Steingold  <sds@gnu.org>
48707
48708	do not go into an endless loop on `clisp -x '(assert nil)'`
48709	* condition.lisp (assert): name the interactive CONTINUE restart
48710	functions for the benefit of APPEASE-CERRORS and MUFFLE-CERRORS
48711	(assert-restart-no-prompts, maybe-continue, muffle-cerror):
48712	new functions
48713	(muffle-cerrors): use MUFFLE-CERROR
48714	(appease-cerror): use MAYBE-CONTINUE
48715	(prompt-for-new-value): interact via *DEBUG-IO*, not *QUERY-IO*
48716
487172002-04-22  Sam Steingold  <sds@gnu.org>
48718
48719	fix bug#103: compiler-macro -> no special-operator
48720	* compiler.lisp (c-form): call EXPAND-COMPILER-MACRO before
48721	checking C-FORM-TABLE to accommodate expanding to a special form
48722
487232002-04-22  Sam Steingold  <sds@gnu.org>
48724
48725	* cmacros.lisp (define-compiler-macro): call CHECK-REDEFINITION
48726
487272002-04-21  Sam Steingold  <sds@gnu.org>
48728
48729	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
48730	* cfgwin32.lisp, cfgacorn.lisp (*clhs-root-default*):
48731	restore the DEFVAR lost on 2002-04-12
48732
487332002-04-18  Sam Steingold  <sds@gnu.org>
48734
48735	fix bug#101: make-encoding :input-action on bad input
48736	* stream.d (iconv_mblen, iconv_mbstowcs): treat EINVAL (incomplete
48737	input) like EILEQ (conversion error) for delimited strings
48738
487392002-04-17  Sam Steingold  <sds@gnu.org>
48740
48741	* stream.d (low_close_socket) [WIN32_NATIVE]: shutdown the socket
48742	before closing it
48743	(SOCKET-STREAM-SHUTDOWN): use SOCK_error(), not OS_errno()
48744
487452002-04-16  Peter Burwood  <clisp@peterb.org.uk>
48746
48747	* autoconf/aclocal.m4 (HAVE_GETRUSAGE): check whether getrusage()
48748	actually works, not just that it is present (it is present in
48749	cygwin, but works only on NT, not win98)
48750
487512002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
48752
48753	* regexp.lisp (regexp-exec): correct positions for ()-group submatches
48754
487552002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
48756
48757	* foreign.d (convert_from_foreign): fix c-array uint8/16/32 return
48758	broken since CVS 1999-09-13
48759
487602002-04-16  Sam Steingold  <sds@gnu.org>
48761
48762	* foreign1.lisp (parse-c-function): check :OUT & :IN-OUT args for
48763	being pointers, just like in FOREIGN-CALL-OUT in foreign.d
48764
487652002-04-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
48766	    Sam Steingold  <sds@gnu.org>
48767
48768	* io.d (pr_orecord): print invalid FOREIGN-VARIABLEs and
48769	FOREIGN-FUNCTIONs with INVALID prefix and address with offset
48770
487712002-04-16  Sam Steingold  <sds@gnu.org>
48772
48773	error reporting unification
48774	* record.d (fehler_key_odd): new function
48775	(check_keywords): new macro
48776	(%ALLOCATE_INSTANCE, %SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
48777	(%INITIALIZE-INSTANCE, %MAKE-INSTANCE): use them
48778	* constsym.d: define SHARED-INITIALIZE, REINITIALIZE-INSTANCE,
48779	INITIALIZE-INSTANCE, MAKE-INSTANCE here for error reporting
48780	* subr.d, constsym.d: %* should be named p*, not *
48781
487822002-04-16  Stefan Kain  <stefan.kain@freenet.de>
48783
48784	* clos.lisp, record.d: translated all comments
48785
487862002-04-12  Peter Burwood  <clisp@peterb.org.uk>
48787
48788	* stream.d (finish_tty_output) [UNIX_CYGWIN32]: ignore EBADF from
48789	fsync, just like in force_tty_output()
48790
487912002-04-12  Sam Steingold  <sds@gnu.org>
48792
48793	*BROWSERS* and *BROWSER* are in CUSTOM, as advertised
48794	* init.lisp (*browser*, *browsers*): export from CUSTOM
48795	* clhs.lisp (*browser*, *browsers*): docstrings
48796	(*browsers*): xterm is UNIX-only
48797	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
48798	* cfgwin32.lisp, cfgacorn.lisp: suggest customizing *BROWSER*
48799
488002002-04-12  Sam Steingold  <sds@gnu.org>
48801
48802	* time.d (DELTA4): work with up to 64-bit return values
48803	* lispbibl.d, intelem.d (UL2_to_I): define always
48804
488052002-04-11  Peter Burwood  <clisp@peterb.org.uk>
48806
48807	* errunix.d (get_errormsg): prevent EILSEQ shadowing ENOENT
48808
488092002-04-10  Sam Steingold  <sds@gnu.org>
48810
48811	new built-in DELTA4 for metering.lisp optimization
48812	* time.d (delta4): implement
48813	* subr.d, constsym.d (delta4): add
48814	* defs1.lisp (%time): use DELTA4
48815
488162002-04-10  Sam Steingold  <sds@gnu.org>
48817
48818	* configure: handle --with-no-dynamic-ffi
48819	* makemake.in: uniform handling of --with* arguments
48820
488212002-04-05  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
48822
48823	* modules.d (MODULE): silence the compiler warning about
48824	module__*__init_function_*() prototype
48825	* modules/regexp/regexi.c: include <stdlib.h> before "regex.h"
48826
488272002-04-04  Stefan Kain  <stefan.kain@freenet.de>
48828
48829	* spvw_ctype.diff, spvw_gcstat.diff, spvw_genera2.diff:
48830	* spvw_genera3.diff, spvw_page.diff, spvw_sigsegv.diff:
48831	* spvw_sigwinch.diff, spvwtabf.diff, spvwtabo.diff:
48832	* spvwtabs.diff: translated all comments
48833
488342002-04-04  Sam Steingold  <sds@gnu.org>
48835
48836	fix bug#96: OS_errno lost before error reporting
48837	* spvw_memfile.d (loadmem): use OS_errno instead of errno
48838
488392002-04-02  Sam Steingold  <sds@gnu.org>
48840
48841	* clhs.lisp (*browsers*): add mozilla and links and various
48842	`-remote' and `-xterm' variations
48843
488442002-04-01  Sam Steingold  <sds@gnu.org>
48845
48846	Rework the 2002-03-30 patch: use SOCKET-STREAM-SHUTDOWN instead
48847	of CLOSE :DIRECTION
48848	* gray.lisp, subrkw.d: revert CLOSE
48849	* subr.d, constsym.d: add SOCKET-STREAM-SHUTDOWN
48850	* stream.d (SOCKET-STREAM-SHUTDOWN): implement
48851	(builtin_stream_close_partial): remove
48852	(built_in_stream_close): revert
48853
488542002-04-01  Sam Steingold  <sds@gnu.org>
48855
48856	uncouple OPEN-STREAM-P from INPUT-STREAM-P/OUTPUT-STREAM-P
48857	* lispbibl.d (strmflags_open_bit_B): new bit (0)
48858	(strmflags_open_B): use it, not the top 4 bits
48859	(allocate_stream): add it to strmflags
48860	* spvw_typealloc.d (allocate_stream): ditto
48861	* stream.d (strmflags_rdwr_B): new mask (top 4 bits)
48862	(make_synonym_stream, make_twoway_stream, make_echo_stream)
48863	(MAKE-GENERIC-STREAM, make_socket_stream)
48864	(BUILT-IN-STREAM-SET-ELEMENT-TYPE): use it instead of
48865	strmflags_open_B
48866	(BUILT-IN-STREAM-ELEMENT-TYPE): do not return NIL for closed
48867	streams
48868	* io.d (pr_stream): print INPUT/OUTPUT/IO even for closed streams
48869
488702002-04-01  Stefan Kain  <stefan.kain@freenet.de>
48871
48872	* spvw_heap.diff, spvw_language.diff, spvw_objsize.diff:
48873	* spvw_sigint.diff, spvw_space.diff, spvw_update.diff:
48874	* spvw_walk.diff: translated all comments
48875
488762002-03-31  Sam Steingold  <sds@gnu.org>
48877
48878	* reploop.lisp (commands4): `Continue' was mentioned twice
48879	From Arseny Slobodjuck <ampy@ich.dvo.ru>
48880	(commands): new function to combine COMMANDS[1-4]; do not
48881	COPY-LIST the return values thereof since they are already
48882	freshly consed lists
48883	(break-loop, step-hook-fn): use it
48884	(main-loop): do not COPY-LIST the return value of COMMANDS0
48885
488862002-03-30  Stefan Kain  <stefan.kain@freenet.de>
48887
48888	* spvw_fault.d, spvw_global.d, spvw_mmap.d, spvw_multimap.d:
48889	translated all comments
48890
488912002-03-30  Sam Steingold  <sds@gnu.org>
48892
48893	* io.d (pr_stream): print components of TWO-WAY and ECHO streams
48894	* lispbibl.d (strm_twoway_input, strm_twoway_output): define here
48895	* stream.d (strm_twoway_input, strm_twoway_output): do not define here
48896
488972002-03-30  Sam Steingold  <sds@gnu.org>
48898
48899	For the benefit of internet protocol implementors, allow closing
48900	streams in only one direction - an interface to shutdown(2)
48901	* stream.d (builtin_stream_close_partial): new function - close a
48902	stream in only one direction
48903	(BUILT-IN-STREAM-CLOSE): instead of ignored :ABORT keyword arg,
48904	take :DIRECTION argument and use builtin_stream_close_partial()
48905	* subr.d, subrkw.d (BUILT-IN-STREAM-CLOSE): kw(abort)->kw(direction)
48906	* pathname.d (check_direction): use subr_self for error message
48907	* gray.lisp (close): pass direction to BUILT-IN-STREAM-CLOSE
48908	* configure.in (HAVE_SHUTDOWN): check for shutdown(2)
48909	* unixconf.h.in (HAVE_SHUTDOWN): add an #undef
48910	* win32.d (HAVE_SHUTDOWN, SHUT_RD, SHUT_WR, SHUT_RDWR): define
48911
489122002-03-30  Sam Steingold  <sds@gnu.org>
48913
48914	* trace.lisp (*trace-indent*): new user option
48915	(trace-pre-output, trace-post-output): use it
48916	(subclosure-pos): find traced definitions too
48917	(%local-set): fix error reporting
48918
489192002-03-29  Stefan Kain  <stefan.kain@freenet.de>
48920
48921	* spvw_allocate.d, spvw_genera1.d, spvw_memfile.d, spvw_typealloc.d:
48922	translated all comments
48923
489242002-03-28  Sam Steingold  <sds@gnu.org>
48925
48926	when COMPILE-FILE with :OUTPUT-FILE arg causes REQUIRE to compile
48927	a file, place the compiled file in the same directory
48928	* compiler.lisp (*compile-file-directory*): new variable
48929	(compile-file): bind it when given :OUTPUT-FILE
48930	(c-REQUIRE): when it is non-NIL, give COMPILE-FILE :OUTPUT-FILE
48931
489322002-03-27  Arseny Slobodjuck  <ampy@ich.dvo.ru>
48933	    Sam Steingold  <sds@gnu.org>
48934
48935	* install.bat: search for install.lisp in the current directory
48936	if it is not found in src/; slashes changed to backslashes
48937	* install.lisp (*clisp-home*): forward slashes only for -B parameter
48938	(*lisp-type-map*): new variables
48939	(top-level): registers all file extensions
48940	HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes is a synonym for
48941	HKEY_CLASSES_ROOT, do not set it
48942	Use Y-OR-NO-P to let the user control the setup.
48943
489442002-03-24  Sam Steingold  <sds@gnu.org>
48945
48946	* defs1.lisp (%time): avoid some possible consing by computing
48947	the hi/lo differences before merging
48948
489492002-03-24  Sam Steingold  <sds@gnu.org>
48950
48951	* spvw.d (SUBR_SET_ARGTYPE): new macro
48952	(init_subr_tab_1, dynload_modules): use it
48953
489542002-03-24  Stefan Kain  <stefan.kain@freenet.de>
48955
48956	* spvw.d, spvw_garcol.d, spvw_circ.d: translated all comments
48957
489582002-03-24  Gerhard Tonn  <GerhardTonn@swol.de>
48959
48960	FFCALL ported to IBM s/390
48961	* lispbibl.d (STACK_register) [S390]: do not define -
48962	broken due to a compiler bug
48963	* ffcall/avcall/Makefile.in (avcall-s390.lo): new target
48964	* ffcall/avcall/avcall-s390.c, ffcall/avcall/avcall-s390.s: add
48965	* ffcall/avcall/avcall.h.in (__s390__): handle it
48966	* ffcall/callback/trampoline_r/Makefile.in (tramp-s390.lo): new target
48967	* ffcall/callback/trampoline_r/proto-s390.s: add
48968	* ffcall/callback/trampoline_r/tramp-s390.s: add
48969	* ffcall/callback/trampoline_r/proto.c (__s390__): handle it
48970	* ffcall/callback/trampoline_r/test1.c (__s390__): ditto
48971	* ffcall/callback/trampoline_r/trampoline.c (__s390__): ditto
48972	* ffcall/callback/vacall_r/vacall-s390.c: add
48973	* ffcall/callback/vacall_r/vacall-s390.s: add
48974	* ffcall/callback/vacall_r/Makefile.in (vacall-s390.lo): new target
48975	* ffcall/callback/vacall_r/vacall_r.h.in (__s390__): handle it
48976	* ffcall/trampoline/Makefile.in (tramp-s390.o): new target
48977	* ffcall/trampoline/proto-s390.s, ffcall/trampoline/tramp-s390.s: add
48978	* ffcall/trampoline/trampoline.c (__s390__): handle it
48979	* ffcall/vacall/Makefile.in (vacall-s390.o): new target
48980	* ffcall/vacall/vacall-s390.c, ffcall/vacall/vacall-s390.s: add
48981	* ffcall/vacall/vacall.h.in (__s390__): handle it
48982
489832002-03-22  Sam Steingold  <sds@gnu.org>
48984
48985	* makemake.in (mandir, htmldir, dvidir, docdir):
48986	architecture-independent, thus under prefix, not exec_prefix
48987
489882002-03-21  Sam Steingold  <sds@gnu.org>
48989
48990	fix bug#95: eval-when and top-forms
48991	* init.lisp (%expand-form): do not conflate COMPILE and
48992	:COMPILE-TOPLEVEL situations
48993	* compiler.lisp (c-EVAL-WHEN): do not conflate LOAD with
48994	:LOAD-TOPLEVEL and COMPILE with :COMPILE-TOPLEVEL
48995
489962002-03-21  Sam Steingold  <sds@gnu.org>
48997
48998	* configure (--with-debug): new option: pass "debug" to makemake
48999	* clisp.spec: update
49000
490012002-03-21  Will Newton  <will@misconception.org.uk>
49002
49003	fix bug#78: FFCALL cannot be built with GCC 3.0
49004	When compiling with -O2 or better, the configure test for PCC
49005	non-reentrant struct return convention is optimized away and
49006	always returns true. This causes avcall to believe it can use PCC
49007	when it cannot - and so bad things happen.
49008	* autoconf/aclocal.m4 (CL_PCC_STRUCT_RETURN): reset CFLAGS
49009
490102002-03-21  Will Newton  <will@misconception.org.uk>
49011
49012	* trampoline.c [linux MIPS]: cachectl.h is in asm, not linux
49013
490142002-03-21  Sam Steingold  <sds@gnu.org>
49015
49016	more $host_cpu canonicalization (arm, alpha)
49017	* makemake.in (host_cpu): handle hppa* and arm* together
49018	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU)
49019	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): canonicalize $host_cpu=arm* to
49020	arm and alphaev6[78] to alpha
49021	Suggested by Will Newton <will@misconception.org.uk>
49022
490232002-03-21  Sam Steingold  <sds@gnu.org>
49024
49025	* eval.d, ffcall/avcall/avcall.h.in
49026	* ffcall/avcall/avcall.h.mingw32, ffcall/avcall/avcall.h.msvc
49027	* ffcall/callback/vacall_r/vacall_r.h.in
49028	* ffcall/callback/vacall_r/vacall_r.h.mingw32
49029	* ffcall/callback/vacall_r/vacall_r.h.msvc
49030	* ffcall/vacall/vacall.h.in, ffcall/vacall/vacall.h.mingw32
49031	* ffcall/vacall/vacall.h.msvc: Never check for __GNUC_MINOR__
49032	without first making sure that __GNUC__ is correct
49033	Reported by Will Newton <will@misconception.org.uk>
49034
490352002-03-18  Sam Steingold  <sds@gnu.org>
49036
49037	* spvw.d (main): void domain for the -E command line argument
49038	means all 5 domains
49039
490402002-03-18  Sam Steingold  <sds@gnu.org>
49041
49042	add CUSTOM:*PARSE-NAMESTRING-DOT-FILE* user option
49043	* init.lisp (*source-file-types*, *compiled-file-types*): list
49044	strings, not pathnames
49045	(load): modified accordingly
49046	(search-file): EXTENSION is a list of strings, not pathnames
49047	* cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp, cfgunix.lisp:
49048	* cfgwin32.lisp: set *PARSE-NAMESTRING-DOT-FILE* to :NAME
49049	* compiler.lisp: do not use pathname literals
49050	(merge-extension): new function
49051	(compile-file-pathname-helper, compile-file): use it
49052	* constsym.d (*PARSE-NAMESTRING-DOT-FILE*): add
49053	* spvw.d (init_symbol_values): defvar it
49054	* defs1.lisp (load-logical-pathname-translations): pass strings,
49055	not pathnames, to SEARCH-FILE
49056	* io.d (pr_orecord): when compiling, print pathnames as
49057	#s(pathname) without #p""
49058	* pathname.d (split_name_type): respect *PARSE-NAMESTRING-DOT-FILE*
49059	* savemem.lisp (saveinitmem): do not use pathname literals
49060
490612002-03-17  Sam Steingold  <sds@gnu.org>
49062
49063	* describe.lisp (describe-stream-flush-buffer): use
49064	WRITE-CHAR-SEQUENCE instead of WRITE-SEQUENCE for the benefit of
49065	dribbling when the output streams are reset so that it is not
49066	clear that they are character streams
49067	* dribble.lisp (dribble-reset): new function
49068	(dribble): reset *DRIBBLE-STREAM* to NIL after dribbling is over
49069	* savemem.lisp (saveinitmem): new option :verbose;
49070	call DRIBBLE-RESET in the temporary *DRIVER*:
49071	this fixes a bug in images saved after DRIBBLE
49072	Reported by Peter Wood <peter.wood@worldonline.dk>
49073
490742002-03-16  Jörg-Cyril Höhle  <hoehle@users.sourceforge.net>
49075
49076	* describe.lisp (describe-object): FOREIGN-POINTER is present
49077	when UNIX or DIR-KEY are present too;
49078	handle FOREIGN-FUNCTION only under FUNCTION, not under T too, and
49079	print its full foreign type
49080
490812002-03-15  Sam Steingold  <sds@gnu.org>
49082
49083	minor error reporting unification
49084	* lispbibl.d (fehler_too_many_args, fehler_too_few_args): declare
49085	* error.d (fehler_too_many_args, fehler_too_few_args): implement
49086	* foreign.d (FOREIGN-CALL-OUT): use them
49087	* eval.d (fehler_key_zuviel): remove
49088	(match_subr_key, match_cclosure_key): use fehler_too_many_args()
49089	(fehler_apply_[zuviel/zuwenig]): unchanged for now: it is unclear
49090	how to keep enough info for a good error message without taking a
49091	performance hit in apply_*()
49092	(fehler_apply_dotted): accept another argument -
49093	the arglist terminator
49094
490952002-03-15  Sam Steingold  <sds@gnu.org>
49096
49097	Incorporated more of Joerg's suggestions
49098	* bindings/linuxlibc6/linux.lisp (substitution): add ffi:c-ptr-null
49099	(realpath, gethostname, getdomainname): using arrays of `character'
49100	as opposed to `char' results in strings being returned instead of
49101	byte arrays (char=uint8, character is a lisp CHARACTER)
49102	(gcvt): appears to work
49103	(sigaction-new): allow NULL (NIL) first arg
49104	(sigaction-query): remove (superseded by sigaction-new)
49105	* bindings/linuxlibc6/wrap.lisp (vec2string): obsolete, commented out
49106	(real-path, get-host-name, get-domain-name): do not use it
49107	(signal-valid-p): use sigaction-new
49108
491092002-03-15  Sam Steingold  <sds@gnu.org>
49110
49111	* compiler.lisp (expand-compiler-macro): do not expand compiler
49112	macros for functions declared NOTINLINE (3.2.2.1.3)
49113
491142002-03-14  Sam Steingold  <sds@gnu.org>
49115
49116	* makemake.in (config.lisp): chmod +w before appending
49117
491182002-03-14  Sam Steingold  <sds@gnu.org>
49119
49120	* defs1.lisp (require): fix a deadly typo in the 2002-02-28 patch
49121	this fixes bug#120: problems with require
49122	which will be filed on 2002-07-11
49123
491242002-03-13  Sam Steingold  <sds@gnu.org>
49125
49126	fix bug#94: (typep x (type-of x)) must => T (FFI)
49127	* type.lisp (foreign-function, foreign-variable, foreign-address)
49128	(foreign-pointer): new types
49129	(subtypep): FOREIGN-FUNCTION is a FUNCTION
49130
491312002-03-12  Sam Steingold  <sds@gnu.org>
49132
49133	fix bug#93: encoding :output-error-action :ignore broken
49134	* encoding.d (nls_wcslen): sync with nls_wcstombs() wrt
49135	ignoring errors (i.e., return the correct number of dest bytes)
49136	(nls_asciiext_wcslen): sync with nls_asciiext_wcstombs() wrt
49137	ignoring errors (i.e., return the correct number of dest bytes)
49138	(nls_wcstombs, nls_asciiext_wcstombs): handle ignored errors
49139	properly (and do not require the same SRC and DEST count)
49140
491412002-03-12  Sam Steingold  <sds@gnu.org>
49142
49143	* configure (maybe_link): new function
49144	* makemake.in (config.status, configure, makemake.in)
49145	(unixconf.h.in, VERSION): new targets
49146
491472002-03-12  Sam Steingold  <sds@gnu.org>
49148
49149	* unix.d (HAVE_DLOPEN) [UNIX_HPUX]: undef since dlopen() is
49150	broken on HP-UX without a patch
49151
491522002-03-11  Sam Steingold  <sds@gnu.org>
49153
49154	* compiler.lisp (c-warn, c-warn): CURRENT-FUNCTION does not
49155	necessarily return a function
49156	(form-name): new function - a short printed form representation
49157	(compile-file): use it for *COMPILE-PRINT* and form name that is
49158	passed to COMPILE-TOPLEVEL-FORM instead of '#:TOP-LEVEL-FORM
49159
491602002-03-10  Peter Burwood  <clisp@peterb.org.uk>
49161
49162	* pathname.d (realpath) [UNIX_CYGWIN32]: neither dir nor symlink
49163	generate ENOTDIR
49164
491652002-03-10  Sam Steingold  <sds@gnu.org>
49166
49167	The default foreign language is now ANSI C, not K&R C
49168	* foreign1.lisp (DEF-C-CALL-OUT, DEF-C-CALL-IN): deprecated
49169	(*foreign-language*): new variable
49170	(default-foreign-language): new exported macro (set it)
49171	(parse-c-function): use it
49172	* compiler.lisp (with-compilation-unit): bind it
49173	* init.lisp (load): ditto
49174	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp
49175	* postgresql632/postgresql.lisp, postgresql642/postgresql.lisp
49176	* regexp/regexp.lisp, wildcard/wildcard.lisp: use DEF-CALL-OUT
49177	instead of DEF-C-CALL-OUT and call DEFAULT-FOREIGN-LANGUAGE
49178
491792002-03-10  Sam Steingold  <sds@gnu.org>
49180
49181	IPv6 portability suggested by Bruno
49182	* socket.d (s6_addr16): define if not defined yet
49183	(S6_ADDR16): accessor helper
49184	(ipv6_ntop): use it - a unified definition now
49185
491862002-03-09  Sam Steingold  <sds@gnu.org>
49187
49188	more error unification
49189	* init.lisp (check-symbol): new function
49190	(defun): use it
49191	* foreign1.lisp (check-symbol): remove
49192	(DEF-C-TYPE, DEF-C-VAR, DEF-CALL-OUT, DEF-LIB-CALL-OUT)
49193	(DEF-CALL-IN, def-c-enum): use the new check-symbol
49194	* defstruct.lisp (defstruct): ditto
49195	(ds-symbol-or-error): remove
49196
491972002-03-09  Sam Steingold  <sds@gnu.org>
49198
49199	autoconf tweaks for hp/ux and cygwin
49200	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU_FOR_FFCALL)
49201	(CL_CANONICAL_HOST_CPU): hppa2.0* --> hppa
49202	* configure.in (HAVE_GETHOSTENT): check for gethostent(3)
49203	* unixconf.h.in (HAVE_GETHOSTENT): add an #undef
49204	* socket.d (RESOLVE-HOST-IPADDR-INTERNAL): check HAVE_GETHOSTENT
49205	before calling gethostent()
49206
492072002-03-09  Peter Burwood  <clisp@peterb.org.uk>
49208
49209	cygwin (u)alarm is adequate - do not re-implement it
49210	* unix.d (HAVE_UALARM): Remove as defined in unixconf.h.
49211	* unixaux.d (alarm, ualarm, sleep, usleep): Remove function as
49212	cygwin supplied function works.
49213	(do_alarm, do_sleep, interrupt_handler, DoInterruptible): Remove
49214	support functions.
49215	(alarm_thread, alarm_date, alarm_interval): Remove support variables.
49216
492172002-03-09  Peter Wood  <peter.wood@worldonline.dk>
49218	    Sam Steingold  <sds@gnu.org>
49219
49220	add signal handling
49221	* linux.lisp: interface to <bits/sigset.h>, <bits/sigaction.h>
49222	and <signal.h>
49223	* wrap.lisp: many wrappers and examples
49224
492252002-03-08  Sam Steingold  <sds@gnu.org>
49226
49227	* bindings/linuxlibc6/wrap.lisp (real-path): linux:realpath does
49228	not return an integer flag
49229	(vec2string): use :END arg to CONVERT-STRING-FROM-BYTES instead
49230	of SUBSEQ
49231	* bindings/linuxlibc6/linux.lisp (realpath): return a pointer to
49232	C-ARRAY-MAX, not C-ARRAY
49233	(errno): a simple DEF-C-VAR, not a SYMBOL-MACRO
49234	Suggested by Jörg Höhle
49235
492362002-03-08  Sam Steingold  <sds@gnu.org>
49237
49238	rename dirkey.lisp to dirkey1.lisp (like foreign1.lisp/foreign.d)
49239	since (compile-file "foo") clobbers foo.c (because of FFI)
49240	* init.lisp: "dirkey1", not "dirkey"
49241	* makemake.in (LPARTS): ditto
49242	* gettext/po/Makefile.devel (LISPSOURCES): ditto
49243	* dirkey1.lisp: rename from dirkey.lisp
49244
492452002-03-08  Sam Steingold  <sds@gnu.org>
49246
49247	* genclisph.d (nonreturning_function, SLONGLONG, ULONGLONG):
49248	fix for MICROSOFT
49249	* makemake.in: create modules-related rules on non-UNIX systems
49250	($with_export_syscalls): do not add -lm to LIBS on win32
49251	Reported by <hoehle@users.sourceforge.net>
49252
492532002-03-06  Sam Steingold  <sds@gnu.org>
49254
49255	POSIX:STREAM-LOCK - file stream locking interface based on flock(2)
49256	* stream.d (STREAM-LOCK): implement
49257	* subr.d, subrkw.d (stream_lock): declare
49258	* constsym.d (stream_lock, Kshared): add
49259	* configure.in (HAVE_FLOCK): check for flock(2)
49260	(HAVE_SYS_WAIT_H): check for <sys/file.h> (flock(2) is declared there)
49261	* unixconf.h.in (HAVE_FLOCK, HAVE_SYS_WAIT_H): add the #undef's
49262	* posix.lisp (STREAM-LOCK) [:unix]: export
49263
492642002-03-06  Sam Steingold  <sds@gnu.org>
49265
49266	infrastructure tweaks
49267	* makemake.in (XCFLAGS): handle --with-threads=FLAVOR by
49268	adding "-DMULTITHREAD -Dflavor"
49269	* configure (info_help): documented all options
49270	* Makefile.devel (upload): new target
49271	* autoconf/aclocal.m4 (CL_STRERROR, CL_FSYNC, CL_UALARM)
49272	(CL_USLEEP): remove trivial defuns
49273	* configure.in: call AC_CHECK_FUNCS for strerror(), fsync(),
49274	ualarm() and usleep() directly
49275
492762002-03-06  Sam Steingold  <sds@gnu.org>
49277
49278	* foreign.d (FOREIGN-ADDRESS-VALUE): handle foreign pointers too
49279
492802002-03-04  Sam Steingold  <sds@gnu.org>
49281
49282	* foreign1.lisp (to-c-typedecl): c-pointer --> void*, not char*
49283	* bindings/linuxlibc6/linux.lisp (flock): new call-out
49284	(fcntl2, fcntl3l, fcntl3f): 3 forms of fcntl()
49285	(ioctl-set-int, ioctl-get-int): 2 basic forms of ioctl()
49286	[there are many many more!]
49287	* bindings/linuxlibc6/wrap.lisp (check-res): new macro
49288	(real-path, get-host-name, get-domain-name): use it
49289	* modules/clx/new-clx/clx.f: NOTREACHED and thus NOTIMPLEMENTED
49290	and UNDEFINED require a semicolon
49291
492922002-03-03  Sam Steingold  <sds@gnu.org>
49293
49294	* version.h: 2.28 is released
49295
492962002-03-05  Sam Steingold  <sds@gnu.org>
49297
49298	* spvw_garcol.d (gc_mark): add down_weakkvt(), up_weakkvt(),
49299	and case_weakkvt statements that call them (fixes weak HTs on
49300	the TYPECODES platforms)
49301
493022002-03-05  Sam Steingold  <sds@gnu.org>
49303
49304	* array.d (elt_nreverse): do not use SIMPLE_NREVERSE for simple
49305	strings since TheSstring != TheSvector (breaks NREVERSE on Alpha)
49306
493072002-03-03  Sam Steingold  <sds@gnu.org>
49308
49309	Compilation on Alpha/Linux
49310	* dfloat.d: SAVE_NUM_STACK/RESTORE_NUM_STACK want {} around them
49311	* lispbibl.d (weakkvt_type): remove extra '|'
49312	* spvw_typealloc.d: one cannot use `obj' in allocate() portably
49313	(allocate_weakkvt_low): rename from allocate_weakkvt()
49314	(allocate_weakkvt): call allocate_weakkvt_low()
49315
493162002-03-03  Sam Steingold  <sds@gnu.org>
49317
49318	build process portability
49319	* makemake.in (data, clean1, ${TESTDIR}): use the appropriate slashes
49320	(RM) [win32]: set to 'del /q' (~ rm -f)
49321	(UTILDIR*, DOCDIR): define using SRCTOPDIR*+NEXT*, not sed(1)
49322	(PARENT_SRCTOPDIR_, PARENT_SRCTOPDIR_M): new vars
49323	(data, suite): use them so that `./configure /tmp/...' works
49324	* Makefile.devel (htmldoc): make split docs
49325	but do not copy impnotes.html to src/
49326	(SOURCES1): add clisp.lsm
49327	(acorn/pathname.txt): update the regexp because of the
49328	src/pathname.d translation
49329
493302002-03-02  Sam Steingold  <sds@gnu.org>
49331
49332	fix bug#80: ICONV_CONST-related build problems
49333	* stream.d: check ICONV_CONST before using it
49334	* unixconf.h.in (ICONV_CONST): reverted the 2001-12-25 patch:
49335	use #undef, not #define; just like all other *_CONST macros
49336
493372002-03-02  Arseny Slobodjuck  <ampy@ich.dvo.ru>
49338
49339	* spvw_language.d (current_language_o): typo: argument should be
49340	`uintL', not `uint'
49341
493422002-03-02  Sam Steingold  <sds@gnu.org>
49343
49344	* package.d (%SET-PACKAGE-LOCK): do not barf
49345	when the package list is empty
49346
493472002-03-02  Sam Steingold  <sds@gnu.org>
49348
49349	* bindings/linuxlibc6/linux.lisp (WEXITSTATUS, WTERMSIG, WSTOPSIG)
49350	(WIFEXITED, WIFSIGNALED, WIFSTOPPED, WCOREFLAG, WCOREDUMP)
49351	(W_EXITCODE, W_STOPCODE): add #define's from <bits/waitstatus.h>
49352
493532002-03-02  Sam Steingold  <sds@gnu.org>
49354
49355	* modules/regexp/regexp.lisp (with-loop-split): fix :START/:END
49356
493572002-02-27  Sam Steingold  <sds@gnu.org>
49358
49359	* bindings/linuxlibc6/linux.lisp (wait, waitpid): new C call-outs
49360	(provide "linux"): for (require "linux") in wrap.lisp
49361
493622002-03-01  Sam Steingold  <sds@gnu.org>
49363
49364	error reporting unification
49365	* trace.lisp (error-function-name): new function
49366	(trace1): use it
49367	* cmacros.lisp (compiler-macro-function): ditto
49368	* error.d (fehler_funname_type, fehler_funname_source): new functions
49369	* lispbibl.d (fehler_funname_type, fehler_funname_source): declare
49370	* control.d (function): use fehler_funname_source()
49371	* eval.d (eval1): ditto
49372	(apply, funcall): use fehler_funname_type()
49373
493742002-02-02  Sam Steingold  <sds@gnu.org>
49375
49376	* trace.lisp (force-cclosure): take FDEFINITION when compiling
49377	(%local-set): COMPILE NEW-DEF and take its FDEFINITION
49378	when NEW-DEF is not compiled
49379
493802002-02-28  Barry Fishman  <bfishman@users.sf.net>
49381
49382	* modules/clx/new-clx/clx.f (CONVERT-SELECTION): clean up the stack
49383	(SELECTION-NOTIFY): add window notification
49384
493852002-02-28  Sam Steingold  <sds@gnu.org>
49386
49387	* defs1.lisp (require): push *load-truename* on *load-paths*
49388	* compiler.lisp (c-REQUIRE): push *compile-file-truename*
49389	on *load-paths*
49390
493912002-02-28  Sam Steingold  <sds@gnu.org>
49392
49393	* compiler.lisp (c-form): fix a bug: EXPAND-COMPILER-MACRO
49394	can return an atom
49395
493962002-02-28  Sam Steingold  <sds@gnu.org>
49397
49398	* bindings/linuxlibc6/linux.lisp (substitution): map DEFCONSTANT
49399
494002002-02-28  Sam Steingold  <sds@gnu.org>
49401
49402	* compiler.lisp (c-write-lib): bind *PRINT-SYMBOLS-LONG* when
49403	writing *.lib files, just like with *.fas files
49404
494052002-02-27  Sam Steingold  <sds@gnu.org>
49406
49407	implement weak hash-tables
49408	* hashtabl.d (MAKE-HASH-TABLE): accept :WEAK keyword argument
49409	(rehash, hash_store, REMHASH, MAPHASH, HASH-TABLE-ITERATE)
49410	(CLASS-TUPLE-GETHASH): use ht_kvtable()/kvtable_data()
49411	(hash_lookup): remove obsolete key/value from a weak HT
49412	(prepare_resize): accept third argument `weak'
49413	(resize): handle weak hash-tables
49414	(HASH-TABLE-WEAK-P, %SET-HASH-TABLE-WEAK-P): implement
49415	(sxhash_atom): handle WeakKVT
49416	* constobj.d (all_weakkvtables, hs_weakkvt): new objects
49417	(version): bumped because of the MAKE-HASH-TABLE change
49418	* constsym.d (hash_table_weak_p, set_hash_table_weak_p, Kweak)
49419	(weak_kvtable): add
49420	* init.lisp (hash-table-weak-p, weak-key-value-table):
49421	export from EXT
49422	* io.d (pr_weakkvt): new pr_routine_t
49423	(prin_object_dispatch): use it to print a Weak KVT
49424	(pr_kvtable): handle weak KVTs
49425	* lispbibl.d (weakkvt_type, case_weakkvt, Rectype_WeakKVT): add
49426	(ht_weak_p, kvtable_data, ht_kvt_data): new macros
49427	(weakkvt_t): new lrecord
49428	(TheSarray, TheVarobject, ThePointer): add weakkvt_type
49429	(Weakkvt_length, TheWeakKVT, weakkvtp, case_Rectype_WeakKVT_above):
49430	concomitant macros
49431	(if_recordp): Rectype_WeakKVT is not a record
49432	(allocate_weakkvt): declare
49433	(map_hashtable, map_hashtable_nogc): accommodate weak hash-tables
49434	(case_array, case_Rectype_array_above): add WeakKVT
49435	* places.lisp (hash-table-weak-p): add defsetf
49436	* predtype.d (CLASS-OF, TYPE-OF, heap_statistics_mapper):
49437	handle Weak KVT
49438	(enum_hs_weakkvt): add to the enum
49439	* spvw.d (init_object_tab_1): init O(all_weakkvtables)
49440	* spvw_garcol.d (gar_col_normal): mark & update O(all_weakkvtables)
49441	(gar_col_compact, move_conses): update O(all_weakkvtables)
49442	* spvw_genera1.d (walk_area, build_old_generation_cache): add
49443	case_weakkvt
49444	* spvw_global.d (init_mem_heaptypes): handle Weak KVT
49445	* spvw_memfile.d (savemem, loadmem_from_handle):
49446	update O(all_weakkvtables)
49447	* spvw_objsize.d (objsize, init_objsize_table): handle case_weakkvt
49448	* spvw_typealloc.d (allocate_weakkvt): implement
49449	* spvw_update.d (update_weakkvtables, update_weakkvtables_mod): add
49450	* subr.d (make_hash_table): add :WEAK
49451	(hash_table_weak_p, set_hash_table_weak_p): add
49452	* subrkw.d (make_hash_table): add :WEAK
49453	* version.h, VERSION: bumped to 2.27.3
49454
494552002-02-26  Sam Steingold  <sds@gnu.org>
49456
49457	* error.d (signal_and_debug): avoid a GCC warning
49458	(end_error): abort(), not exit() -- for debugging
49459
494602002-02-26  Sam Steingold  <sds@gnu.org>
49461
49462	lib dir can now be changed at run-time
49463	* constsym.d, subr.d (set_lib_directory): add
49464	* constobj.d (lib_dir): new object
49465	* pathname.d (LIB-DIRECTORY): use it
49466	(SET-LIB-DIRECTORY): set it (new function)
49467	* spvw.d (main): set it from argv_lisplibdir
49468	* _clisp.html, _clisp.1: document that
49469	* places.lisp (*lib-directory*): new symbol-macro
49470	* init.lisp (*lib-directory*): export it from CUSTOM
49471	* describe (clisp-data-file): new function
49472	(unicode-data-file): remove
49473	(unicode-attributes-line): use CLISP-DATA-FILE
49474	instead of UNICODE-DATA-FILE
49475	* clhs.lisp (clhs-file): remove
49476	(clhs): use CLISP-DATA-FILE instead of CLHS-FILE
49477	* makemake.in: data files, like clhs.txt and UnicodeData.txt,
49478	are now in $(lisplibdir)/data on all platforms
49479
494802002-02-25  Sam Steingold  <sds@gnu.org>
49481
49482	Moved language-dependent constants out of constobj.d
49483	* constobj.d (LISPOBJ_L, LISPOBJ_LS): remove
49484	* lispbibl.d (CLSTEXT, CLOTEXT): add
49485	(OGETTEXT, OL, OLS, localized_string, localized_object): remove
49486	(GNU_GETTEXT): do not define unless UNICODE is defined too
49487	* spvw_language.d (CLSTEXT, CLOTEXT): add
49488	(localized_string, localized_object): remove
49489	* debug.d, error.d, flo_rest.d, misc.d, package.d, pathname.d
49490	* realelem.d, spvw.d: use CLSTEXT() instead of OLS()
49491	and CLOTEXT() instead of OL()
49492	* misc.d, spvw_memfile.d (software_version_string): remove the
49493	cache (language-dependent)
49494	* i18n.d (TEXT): use CLSTEXT() instead of localized_string()
49495	* gettext/po/clisp-xgettext: accommodate these changes: search for
49496	CLSTEXT and CLOTEXT in *.d and for TEXT in *.lisp
49497	* gettext/po/Makefile.devel (GMSGFMT): set to msgfmt, since GNU
49498	gettext does not install gmsgfmt, and require GNU gettext
49499	(clean): remove tmp
49500
495012002-02-25  Sam Steingold  <sds@gnu.org>
49502
49503	* clhs.lisp (clhs): unlock COMMON-LISP before reading clhs-file
49504	(read-from-file): add PACKAGE keyword argument
49505
495062002-02-23  Sam Steingold  <sds@gnu.org>
49507
49508	minor code cleanups
49509	* record.d (obj_in_list): new function
49510	(structure_up, %STRUCTURE-TYPE-P, keyword_test): use it
49511	(slot_in_arglist): new function
49512	(%SHARED-INITIALIZE, %REINITIALIZE-INSTANCE)
49513	(do_initialize_instance): use it
49514
495152002-02-23  Sam Steingold  <sds@gnu.org>
49516
49517	* record.d (%REINITIALIZE-INSTANCE): fix a crash in repeated
49518	REINITIALIZE-INSTANCE calls
49519
495202002-02-22  Sam Steingold  <sds@gnu.org>
49521
49522	UI language can now be changed at run time
49523	* constobj.d (current_language_cache): remove
49524	(current_language): language-independent object now
49525	* constsym.d (german, french, spanish, dutch): add
49526	* constsym.d, subr.d (language): remove
49527	(set_current_language, text): add
49528	* encoding.d (init_encodings): split into init_encodings_1() and
49529	init_encodings_2() to accommodate non-ASCII symbol names
49530	* i18n.d (SET-CURRENT-LANGUAGE): new function
49531	(LANGUAGE): replace with TEXT
49532	* lispbibl.d (init_encodings_1, init_encodings_2):
49533	replace init_encodings()
49534	(init_language): global now (called by SET-CURRENT-LANGUAGE)
49535	* spvw.d (init_symbol_tab_2): accommodate non-ASCII symbols
49536	(initmem): call init_encodings_1() and init_encodings_2()
49537	around init_symbol_tab_2()
49538	(main): init O(current_language)
49539	* spvw_language.d (current_language_o): new function:
49540	map language number to its symbol name
49541	(init_language): use it to init O(current_language)
49542	* spvw_memfile.d (loadmem_from_handle): remove
49543	O(current_language_cache)
49544	* places.lisp (*CURRENT-LANGUAGE*): define
49545	* init.lisp (*CURRENT-LANGUAGE*): export
49546	* clos.lisp, affi1.lisp, foreign1.lisp: import SYS::TEXT
49547	* french.lisp: spell FRANCAIS with a cedilla
49548	* makemake.in (LPARTS): include french.lisp only with_unicode
49549	* international.lisp: export ENGLISH here
49550	* affi1.lisp, amigasock.lisp, backquote.lisp, beossock.lisp:
49551	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp:
49552	* cfgunix.lisp, cfgwin32.lisp, clos.lisp, cmacros.lisp:
49553	* compiler.lisp, condition.lisp, defmacro.lisp, defs1.lisp:
49554	* defs2.lisp, defstruct.lisp, describe.lisp, dirkey.lisp:
49555	* disassem.lisp, dribble.lisp, edit.lisp, floatprint.lisp:
49556	* foreign1.lisp, format.lisp, init.lisp, international.lisp:
49557	* loop.lisp, macros1.lisp, macros2.lisp, macros3.lisp:
49558	* places.lisp, pprint.lisp, query.lisp, reploop.lisp, rexx1.lisp:
49559	* room.lisp, runprog.lisp, screen.lisp, trace.lisp, type.lisp:
49560	* xcharin.lisp: use TEXT instead of ENGLISH
49561
495622002-02-22  Sam Steingold  <sds@gnu.org>
49563
49564	* install.lisp (*clisp-base-cmd*, *clisp-cmd*): surround
49565	pathnames with quotes to accommodate "c:/Program Files/CLISP/" &c
49566	(*clisp-home*): convert backslashes to forward slashes
49567
495682002-02-21  Sam Steingold  <sds@gnu.org>
49569
49570	minor code cleanups
49571	* debug.d (read_form): use cint_white_p()
49572	* pathname.d (SHELL): use fehler_string()
49573	* package.d (MAKE-SYMBOL): ditto
49574	(package_lookup_ext, package_lookup_int, package_lookup): new macros
49575	(inherited_lookup, find_external_symbol, find_symbol)
49576	(shadowing_import, shadow, unintern, import, use_package_aux)
49577	(FIND-ALL-SYMBOLS): use them
49578	(prepare_query_user): new function
49579	(query_user, export, use_package, correct_packname): use it
49580	(UNINTERN): use fehler_symbol()
49581	* predtype.d (FIND-CLASS): ditto
49582	* lisparit.d (!): use fehler_posfixnum()
49583
495842002-02-21  Stefan Kain  <stefan.kain@freenet.de>
49585
49586	* package.d: translated all comments
49587	* constobj.d: ditto
49588
495892002-02-20  Sam Steingold  <sds@gnu.org>
49590
49591	* makemake.in (distrib): include the Emacs-Lisp files in the
49592	binary distribution: indentation and coding are included,
49593	but d-mode is excluded
49594
495952002-02-20  Sam Steingold  <sds@gnu.org>
49596
49597	fix bug#89: (EVAL-WHEN (COMPILE)) no longer automatically
49598	writes to *.lib; you need EVAL-WHEN-COMPILE or both LOAD and COMPILE
49599	* compiler.lisp (c-write-lib): new function
49600	(c-eval-and-write-lib): rename from c-eval-when-compile
49601	(compile-toplevel-form): respect the renaming
49602	(eval-when-compile): new macro: call C-EVAL-AND-WRITE-LIB at
49603	compile time
49604	(c-GLOBAL-FUNCTION-CALL): use it instead of (EVAL-WHEN (COMPILE))
49605	(c-EVAL-WHEN): write to *lib only when _both_ LOAD and COMPILE
49606	are specified; COMPILE-ONCE-ONLY is eliminated
49607	* init.lisp (eval-when-compile): add a bootstrap definition
49608	(defun): use EVAL-WHEN-COMPILE instead of (EVAL-WHEN (COMPILE))
49609	* clos.lisp (defmethod, defgeneric): ditto
49610	* macros1.lisp (defconstant): ditto
49611	* foreign1.lisp (DEF-LIB-CALL-OUT): ditto
49612	(DEF-CALL-OUT): use COMPILE situation instead of COMPILE-ONCE-ONLY
49613	and EVAL-WHEN-COMPILE instead of (EVAL-WHEN (COMPILE))
49614	(DEF-C-VAR, DEF-CALL-IN): use COMPILE situation
49615	instead of COMPILE-ONCE-ONLY
49616
496172002-02-17  Arseny Slobodjuck  <ampy@ich.dvo.ru>
49618
49619	smooth Ctrl-C, Ctrl-Break handling not depending on whether
49620	interrupted thread is alive when temp_interrupt_handler executes
49621	* win32aux.d: (interruptible_abort_code): new variable holds
49622	1+CtrlType after temp_interrupt_handler works, zero while
49623	temp_interrupt_handler is not called.
49624	(temp_interrupt_handler): check whether thread is alive before
49625	terminating it. Save result in new variable instead of use of
49626	thread exit code.
49627	(DoInterruptible): use interruptible_abort_code.
49628
496292002-02-18  Sam Steingold  <sds@gnu.org>
49630
49631	* bindings/linuxlibc6/wrap.lisp: require "linux" to avoid warnings
49632
496332002-02-13  Sam Steingold  <sds@gnu.org>
49634
49635	* bindings/linuxlibc6/linux.lisp (getdomainname, setdomainname)
49636	(gethostname, sethostname, mkstemp, realpath): uncommented and fixed
49637	* bindings/linuxlibc6/wrap.lisp: new file
49638	* bindings/linuxlibc6/Makefile, bindings/linuxlibc6/link.sh:
49639	add wrap.lisp
49640
496412002-02-12  Sam Steingold  <sds@gnu.org>
49642
49643	* lisparit.d (init_arith): define DOUBLE-FLOAT-EPSILON and
49644	DOUBLE-FLOAT-NEGATIVE-EPSILON differently on linux-x86
49645	because of the 80-bit floating registers
49646
496472002-02-12  Sam Steingold  <sds@gnu.org>
49648
49649	* package.d (%SET-PACKAGE-LOCK): call test_package_arg() on the
49650	single arg
49651
496522002-02-11  Sam Steingold  <sds@gnu.org>
49653
49654	* stream.d (strip_white): strip only the CR, not all whitespace,
49655	since it breaks READ-LINE on terminals
49656	Reported by Peter Wood <peter.wood@worldonline.dk>
49657
496582002-02-11  Sam Steingold  <sds@gnu.org>
49659
49660	ANSI CL 11.1.2.1.2 #9 forbids tracing in COMMON-LISP
49661	* trace.lisp (trace1, untrace1): forbid tracing in locked packages
49662	* init.lisp (check-redefinition): handle (SETF function-name)
49663
496642002-02-11  Sam Steingold  <sds@gnu.org>
49665
49666	fix the (compile nil (lambda () (flet (())))) bug
49667	* compiler.lisp (symbol-suffix): use just the suffix for NIL funname
49668
496692002-02-10  Sam Steingold  <sds@gnu.org>
49670
49671	* foreign1.lisp, affi1.lisp: moved *FOREIGN-ENCODING* to the
49672	CUSTOM package, as described in the impnotes
49673
496742002-02-09  Sam Steingold  <sds@gnu.org>
49675
49676	* makemake.in: include impnotes.css in the distribution along
49677	with impnotes.html
49678
496792002-02-02  Bruno Haible  <bruno@clisp.org>
49680
49681	* charstrg.d (name_char): Fix endless loop when string = "A_A".
49682
496832002-02-03  Sam Steingold  <sds@gnu.org>
49684
49685	fix a bug: (defmethod foo ((x (eql 1))) x)
49686	* package.d (CHECK-PACKAGE-LOCK): handle non-package third
49687	argument to mean "unlocked"
49688	* init.lisp (check-redefinition): (EQL X): when X is not a
49689	symbol, pass NIL as the package
49690
496912002-02-01  Sam Steingold  <sds@gnu.org>
49692
49693	* spvw_update.d (update_weakpointer): new macro
49694	(update_weakpointers, update_weakpointers_mod): use it
49695
496962002-02-01  Sam Steingold  <sds@gnu.org>
49697
49698	* io.d (pr_array_nil): print array address too
49699	(pr_hex6_obj): save the object
49700	(pr_orecord): print HASH-TABLE with TEST and COUNT
49701	even when *PRINT-ARRAY* is NIL
49702	* constobj.d (printstring_hash_table): remove
49703
497042002-01-31  Sam Steingold  <sds@gnu.org>
49705
49706	* lispbibl.d (hashtable_test): new macro
49707	* io.d (pr_orecord): use it
49708	* hashtable.d (HASH-TABLE-TEST): ditto
49709
497102002-01-31  Sam Steingold  <sds@gnu.org>
49711
49712	* record.d (mk_weakpointer): new local helper function
49713	(allocate_weakpointer): new global function, uses mk_weakpointer()
49714	(MAKE-WEAK-POINTER): use mk_weakpointer()
49715	* lispbibl.d (allocate_weakpointer): declare as function, not macro
49716	(weakpointer_broken_p): new macro
49717	* io.d (pr_orecord): use it
49718
497192002-01-30  Sam Steingold  <sds@gnu.org>
49720
49721	* io.d (pr_orecord): print EQUALP hash tables correctly
49722	(pr_kvtable): new function, used by pr_orecord()
49723
497242002-01-29  Sam Steingold  <sds@gnu.org>
49725
49726	* hashtabl.d (check_hashtable): new macro
49727	(GETHASH, PUTHASH, REMHASH, MAPHASH, CLRHASH)
49728	(HASH-TABLE-REHASH-THRESHOLD, HASH-TABLE-TEST, HASH-TABLE-ITERATOR)
49729	(CLASS-GETHASH, CLASS-TUPLE-GETHASH): use it
49730
497312002-01-29  Stefan Kain  <stefan.kain@freenet.de>
49732
49733	* hashtabl.d: translated all comments
49734
497352002-01-27  Sam Steingold  <sds@gnu.org>
49736
49737	fix bug#82
49738	* compiler.lisp (expand-compiler-macro): pass to
49739	COMPILER-MACRO-FUNCTION only function names
49740
497412002-01-27  Sam Steingold  <sds@gnu.org>
49742
49743	code simplifications
49744	* foreign.d (check_cc_match): new function
49745	(convert_function_to_foreign, convert_function_from_foreign): use it
49746	(fehler_eltype_zero_size): new function
49747	(convert_from_foreign, walk_foreign_pointers): use it
49748
497492002-01-27  Sam Steingold  <sds@gnu.org>
49750
49751	add FFI:FOREIGN-ADDRESS-NULL to check for NULL pointers
49752	* foreign.d (FOREIGN-ADDRESS-VALUE): new function
49753	* subr.d, constsym.d (foreign_address_value): add
49754	* function1.lisp (foreign-address-null): new exported function
49755
497562002-01-26  Sam Steingold  <sds@gnu.org>
49757
49758	* .clisp-full: new file
49759	* makemake.in: treat .clisp-full just like .clisp
49760
497612002-01-24  Sam Steingold  <sds@gnu.org>
49762
49763	fix bug#81: check semi-simple vectors&strings for overflow
49764	* array.d (fehler_extension): new function
49765	(VECTOR-PUSH-EXTEND): use it
49766	(fehler_dim_type): moved before semi-simple vectors&strings
49767	(make_ssstring, make_ssbvector): check len <= arraysize_limit_1
49768	(ssstring_push_extend, ssstring_extend, ssbvector_push_extend):
49769	check for overflow
49770
497712002-01-23  Sam Steingold  <sds@gnu.org>
49772
49773	* lispbibl.d (SEMI_SIMPLE_DEFAULT_SIZE): new constant
49774	* io.d (get_buffers, FORMAT-TABULATE): use it
49775	* stream.d (make_string_output_stream)
49776	(MAKE-BUFFERED-OUTPUT-STREAM): ditto
49777
497782002-01-23  Sam Steingold  <sds@gnu.org>
49779
49780	* lispbibl.d (OBJECT_OUT): new macro
49781	* spvw_debug.d (object_out): return obj
49782
497832002-01-23  Sam Steingold  <sds@gnu.org>
49784
49785	* array.d (ssstring_extend_low): new function
49786	(ssstring_push_extend, ssstring_extend): use it
49787
497882002-01-22  Sam Steingold  <sds@gnu.org>
49789
49790	* predtype.d (with_gc_statistics) [DEBUG_SPVW]: print a message
49791	when a GC is being done
49792
497932002-01-22  Sam Steingold  <sds@gnu.org>
49794
49795	ANSI CL 11.1.2.1.2 #19 forbids methods with locked functions and
49796	specializers - check that too
49797	* package.d (CHECK-PACKAGE-LOCK): package may be a list of
49798	packages
49799	* init.lisp (check-redefinition): symbol maybe a method spec - a
49800	list of function name and specializers
49801	* clos.lisp (analyze-method-description): call CHECK-REDEFINITION
49802
498032002-01-21  Sam Steingold  <sds@gnu.org>
49804
49805	SOCKET-STATUS now works on all handle streams, whose handles are
49806	acceptable to the underlying OS's select system call
49807	* stream.d (stream_handles): work on many streams and return 2
49808	handles (rename from socket_handle)
49809	(handle_set, handle_isset, SOCKET-STATUS): modified accordingly
49810	(ChannelStream_ihandle, ChannelStream_ohandle): new macros
49811
498122002-01-18  Sam Steingold  <sds@gnu.org>
49813
49814	* stream.d (stream_char_p): remove (good only for "basic streams")
49815	(handle_isset, stream_reset_eltype): look at strm_eltype directly
49816
498172002-01-18  Sam Steingold  <sds@gnu.org>
49818
49819	support #! UNIX scripts on WIN32 too
49820	* io.d, constsym.d, spvw.d, subr.d (UNIX-EXECUTABLE-READER):
49821	define on WIN32_NATIVE too
49822
498232002-01-18  Sam Steingold  <sds@gnu.org>
49824
49825	* stream.d (SOCKET-STATUS): fix a GC safety bug
49826	(handle_isset): mark as GC-unsafe
49827	Reported by Todd Sabin <tas@webspan.net>
49828
498292002-01-18  Sam Steingold  <sds@gnu.org>
49830
49831	* stream.d (FILE-POSITION): work on any stream, not just an open
49832	file stream, as per ANSI CL
49833
498342002-01-17  Sam Steingold  <sds@gnu.org>
49835
49836	* stream.d (read-byte): respect the unread chars
49837	(stream_reset_eltype): new function - rectify the
49838	ignore_next_LF lossage when changing STREAM-ELEMENT-TYPE
49839	(BUILT-IN-STREAM-SET-ELEMENT-TYPE, SET-STREAM-EXTERNAL-FORMAT): use it
49840	(resolve_synonym_stream): new function
49841	(TERMINAL-RAW, check_open_file_stream): use it
49842
498432002-01-16  Sam Steingold  <sds@gnu.org>
49844
49845	* inspect.lisp (close) [html-stream-out]: new method
49846	(*with-html-output-doctype*): new user variable, defaults to XHTML
49847	(with-html-output): use it; close the HTML stream too
49848	(crlf): remove (we create an :EXTERNAL-FORMAT :DOS socket)
49849	(with-http-output): new keyword args: RETURN-NAME and RETURN-CODE
49850	do not call CRLF, rely on the socket to provide proper EOL
49851	(http-error): new function
49852	(http-command): reconnect when a KEEP-ALIVE connection times out;
49853	handle invalid requests (e.g., for favicon.ico) and ":"->"%3a"
49854	[FIXME: disabled KEEP-ALIVE connections because it appears that
49855	 content length in WITH-HTTP-OUTPUT is computed incorrectly]
49856	(inspect-frontend) [http]: handle NIL ID returned by HTTP-COMMAND
49857	due to an invalid request
49858
498592002-01-16  Sam Steingold  <sds@gnu.org>
49860
49861	* describe.lisp (describe-stream-flush-buffer, stream-line-column)
49862	(stream-start-line-p): check the return value of
49863	SYS::LINE-POSITION (it may be NIL!)
49864
498652002-01-15  Sam Steingold  <sds@gnu.org>
49866
49867	* lispbibl.d (OGETTEXT): mark as GC-unsafe
49868	* package.d (cerror_package_locked): fix a GC-safety bug
49869
498702002-01-15  Sam Steingold  <sds@gnu.org>
49871
49872	* defs2.lisp (with-standard-io-syntax): bind
49873	SYSTEM::*PRIN-LINE-PREFIX* to NIL
49874
498752002-01-15  Sam Steingold  <sds@gnu.org>
49876
49877	* describe.lisp (describe): flush the pending output _before_
49878	increasing indentation
49879	(describe-object) [symbol]: handle unbound special variables too
49880
498812002-01-14  Sam Steingold  <sds@gnu.org>
49882
49883	* defs1.lisp (*system-package-list*): new custom variable
49884	(without-package-lock): new extension macro
49885	* package.d (%SET-PACKAGE-LOCK): allow multiple packages
49886	* savemem.lisp (saveinitmem): default LOCKED-PACKAGES
49887	to *SYSTEM-PACKAGE-LIST*
49888
498892002-01-14  Sam Steingold  <sds@gnu.org>
49890
49891	add :SCREEN to *FEATURES* when the "SCREEN" package is present
49892	* init.lisp: use #+SCREEN instead of (find-package "SCREEN")
49893	* spvw.d (*features*): add :SCREEN #ifdef SCREEN
49894
498952002-01-12  Sam Steingold  <sds@gnu.org>
49896
49897	* trace.lisp (trace1): made macros traceable again (broken since
49898	the 2000-06-11 patch introducing MACRO type)
49899	(fdefinition-local): remove (replace with LOCAL)
49900	(local): new macro (SETF-able)
49901	(local-function-name-p): new function
49902	* init.lisp (local): export from EXT
49903
499042002-01-11  Sam Steingold  <sds@gnu.org>
49905
49906	close all inaccessible PIPE and SOCKET streams on GC, like file streams
49907	* stream.d (add_to_open_streams): new function
49908	(make_file_stream, make_terminal_stream, make_printer_stream):
49909	 use it instead of in-line code
49910	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
49911	(SOCKET-ACCEPT, SOCKET-CONNECT, SYS::MAKE-SOCKET-STREAM):
49912	 call add_to_open_streams() too
49913	Reported by Todd Sabin <tas@webspan.net>
49914
499152002-01-10  Sam Steingold  <sds@gnu.org>
49916
49917	* spvw.d (main): --version: print *FEATURES*
49918
499192002-01-10  Sam Steingold  <sds@gnu.org>
49920
49921	* package.d (cerror_package_locked): error-format-string: print
49922	func with ~A so that "DEFUN/DEFMACRO" is printed without quotes
49923
499242002-01-10  Sam Steingold  <sds@gnu.org>
49925
49926	fix a bug in the 2001-11-09 patch
49927	* pathname.d (CD): slashp expects a chart, not cint
49928
499292002-01-10  Sam Steingold  <sds@gnu.org>
49930
49931	fix (format nil "~2f" 1234567.1234) => "1234567."
49932	* format.lisp (format-float-for-f): pass 0 as DMIN to
49933	FORMAT-FLOAT-TO-STRING
49934
499352002-01-09  Sam Steingold  <sds@gnu.org>
49936
49937	notice function redefinitions again
49938	* compiler.lisp (c-DEFUN): accept optional argument TYPE, to
49939	distinguish between DEFUN and DEFMETHOD (CURRENT-FUNCTION for
49940	top-level forms does not return anything useful)
49941	* clos.lisp (defmethod, defgeneric): pass the 4th argument to c-DEFUN
49942
499432002-01-09  Sam Steingold  <sds@gnu.org>
49944
49945	fix bug#77
49946	* pathname.d (SUBDIR_PUSHSTACK): check for non-string subdir
49947	elements, do not return
49948	(subdir_namestring_parts): modified accordingly
49949	(use_default_dir): call simplify_directory
49950	(directory_search_scandir, directory_search): use SUBDIR_PUSHSTACK
49951
499522002-01-09  Sam Steingold  <sds@gnu.org>
49953
49954	* compiler.lisp (signature-to-list): do not intern ARG# symbols
49955	in SYSTEM
49956	(c-DEFUN): print signatures with ~A, not ~S, to avoid package prefixes
49957
499582002-01-08  Sam Steingold  <sds@gnu.org>
49959
49960	* deprecated.lisp (deprecate): add optional DEF argument
49961
499622002-01-08  Sam Steingold  <sds@gnu.org>
49963
49964	Implement arbitrary package locking
49965	* lispbibl.d (Package): use bit(1) for package lock
49966	(mark_pack_locked, mark_pack_unlocked, pack_locked_p): new macros
49967	* package.d (cerror_package_locked): new function
49968	(check_pack_lock, safe_check_pack_lock): new macros
49969	(intern, shadowing_import, shadow, unintern, unexport, export)
49970	(use_package, RENAME-PACKAGE): check package lock
49971	(PACKAGE-LOCK, %SET-PACKAGE-LOCK, CHECK-PACKAGE-LOCK): implement
49972	* subr.d, constsym.d (package_lock, set_package_lock)
49973	(check_package_lock): add
49974	* init.lisp (package-lock): export from EXT
49975	(exported-lisp-symbol-p): remove
49976	(fbound-string): do not barf on non-fbound symbols
49977	(check-redefinition): new function
49978	(remove-old-definitions): use CHECK-REDEFINITION
49979	* places.lisp (check-accessor-name): new function
49980	(define-setf-expander, defsetf): use CHECK-ACCESSOR-NAME and
49981	CHECK-REDEFINITION
49982	(package-lock): defsetf to SYSTEM::%SET-PACKAGE-LOCK
49983	* clos.lisp ((setf find-class)): use SYS::CHECK-REDEFINITION
49984	* savemem.lisp (saveinitmem): new argument: :locked-packages
49985	to lock the system packages when saving the final image
49986	* os2/lispinit.in: call saveinitmem
49987	* makemake.in (lispinit.mem): call lispinitmem (not %lispinitmem)
49988
499892002-01-07  Sam Steingold  <sds@gnu.org>
49990
49991	* symbol.d (Symbol_function_checked): use fehler_undef_function()
49992
499932002-01-07  Sam Steingold  <sds@gnu.org>
49994
49995	made problem reporting work with WITH-COMPILATION-UNIT
49996	* compiler.lisp (c-source-point): new structure (instead of a cons)
49997	(c-source-location): accept a 3rd optional argument - file,
49998	defaults to *compile-file-truename*
49999	(c-source-point): remove the function
50000	(c-source-point-location): pass all slots of a C-SOURCE-POINT
50001	to C-SOURCE-LOCATION
50002	(note-function-used, c-DEFUN): use MAKE-C-SOURCE-POINT
50003	instead of C-SOURCE-POINT
50004	(match-known-unknown-functions): bind *COMPILE-FILE-TRUENAME* too
50005
500062002-01-07  Sam Steingold  <sds@gnu.org>
50007
50008	* trace.lisp (fdefinition-local): new function for extracting
50009	local (LABELS & FLET) functions
50010
500112002-01-06  Sam Steingold  <sds@gnu.org>
50012
50013	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: fix a bug
50014	introduced on 2001-08-29 (mind tolerantp!)
50015
500162002-01-06  Sam Steingold  <sds@gnu.org>
50017
50018	* compiler.lisp (note-function-used, c-report-problems): report
50019	the replacements for the deprecated functions
50020	* deprecated.lisp (deprecate): new function - use throughout
50021
500222002-01-06  Sam Steingold  <sds@gnu.org>
50023
50024	* makemake.in (RM) [win32]: prepend '-'
50025	* ffcall/Makefile.msvc: prepend '-' before 'del'
50026	* ffcall/avcall/Makefile.msvc: ditto
50027	* ffcall/callback/Makefile.msvc: ditto
50028	* ffcall/callback/trampoline_r/Makefile.msvc: ditto
50029	* ffcall/callback/vacall_r/Makefile.msvc: ditto
50030	* ffcall/trampoline/Makefile.msvc: ditto
50031	* ffcall/vacall/Makefile.msvc: ditto
50032	* libiconv/Makefile.msvc: ditto
50033	* libiconv/lib/Makefile.msvc: ditto
50034	* libiconv/libcharset/Makefile.msvc: ditto
50035	* libiconv/libcharset/lib/Makefile.msvc: ditto
50036	* libiconv/src/Makefile.msvc: ditto
50037	* libiconv/tests/Makefile.msvc: ditto
50038	* sigsegv/Makefile.msvc: ditto
50039	From Indrayana Rustandi <i_rustandi@yahoo.com>
50040
500412002-01-06  Sam Steingold  <sds@gnu.org>
50042
50043	finished the 2001-09-24 (functionp) patch
50044	* control.d (FUNCTION): use the functionp() macro
50045	* eval.d (coerce_function): ditto
50046	* sequence.d (seq_boolop): ditto
50047	* symbol.d (%PUTD): ditto
50048
500492002-01-05  Sam Steingold  <sds@gnu.org>
50050
50051	SOCKET-STREAM-PEER et al now work for buffered sockets too
50052	* stream.d (SocketChannel): new macro
50053	(SOCKET-SERVER, socket_handle, publish_host_data)
50054	(SOCKET-STREAM-HANDLE): use it
50055	Reported by Todd Sabin <tas@webspan.net>
50056
500572002-01-05  Sam Steingold  <sds@gnu.org>
50058
50059	* stream.d (BufferedStream_buffer_address): new macro, use it
50060	along with BufferedStream_channel() and BufferedStream_buffer()
50061
500622002-01-05  Sam Steingold  <sds@gnu.org>
50063
50064	some new macros for brevity
50065	* pathname.d (WIN32_ERROR_NOT_FOUND) [WIN32_NATIVE]: new macro
50066	(check_noname, check_notdir, check_delete_open): new macros
50067
500682002-01-03  Stefan Kain  <stefan.kain@freenet.de>
50069
50070	* pathname.d: translated all comments
50071
500722002-01-03  Sam Steingold  <sds@gnu.org>
50073
50074	* lispbibl.d (OGETTEXT): new macro
50075	* gettext/po/clisp-xgettext: recognize the new OGETTEXT macro
50076
500772001-12-26  Stefan Kain  <stefan.kain@freenet.de>
50078
50079	* trace.lisp: translated all comments
50080
500812002-01-01  Todd Sabin  <tas@webspan.net>
50082	    Sam Steingold  <sds@gnu.org>
50083
50084	* stream.d (BUILT-IN-STREAM-SET-ELEMENT-TYPE): fix a crash for
50085	`strmtype_twoway_socket'
50086
500872002-01-01  Sam Steingold  <sds@gnu.org>
50088
50089	unified some error messages
50090	* pathname.d (fehler_file_exists): no args: get caller from
50091	subr_self and pathname from STACK_0 (a la fehler_file_not_exists)
50092	(rename_file): modified accordingly
50093	(open_file): use fehler_file_not_exists() and fehler_file_exists()
50094
500952002-01-01  Sam Steingold  <sds@gnu.org>
50096
50097	* init.lisp (sys::remove-old-definitions): CERROR for exported CL
50098	symbols even when there is no definition
50099
501002001-12-25  Sam Steingold  <sds@gnu.org>
50101
50102	make DESCRIBE break long lines
50103	* describe.lisp (describe-stream): new slot BUFFER (word-buffered)
50104	(describe-stream-flush-buffer): new function to flush the BUFFER
50105	(stream-write-char, stream-finish-output, stream-force-output):
50106	use it
50107	(stream-line-column, stream-start-line-p, stream-clear-output):
50108	account for BUFFER
50109	(describe-object): when printing the external symbols of a
50110	package, do not fill: DESCRIBE-STREAM does it for us
50111	(describe1): FINISH-OUTPUT when done to flush the buffer
50112	(describe-signature): terminate with a period
50113
501142001-12-25  Sam Steingold  <sds@gnu.org>
50115
50116	* makemake.in (MAKE): set from the environment variable, if any
50117
501182001-12-25  Sam Steingold  <sds@gnu.org>
50119
50120	The 2001-08-25 patch (autoconf-2.52 upgrade) broke FreeBSD build.
50121	This patch appears to fix it.
50122	* unixconf.h.in (ICONV_CONST): use #define, not undef
50123
501242001-12-24  Sam Steingold  <sds@gnu.org>
50125
50126	* compiler.lisp (c-FLET, c-FUNCTION-MACRO-LET, traverse-anode):
50127	use NEW-CONST
50128
501292001-12-21  Sam Steingold  <sds@gnu.org>
50130
50131	* compiler.lisp (c-DIRECT-FUNCTION-CALL): add a flet
50132	COMMUTE-WITH-REST-P (a minor simplification)
50133
501342001-12-20  Sam Steingold  <sds@gnu.org>
50135
50136	optimize away COMPLEMENT in :TEST (COMPLEMENT ...)
50137	* compiler.lisp (c-TEST/TEST-NOT): new function
50138	(c-form-table): map the functions with :TEST/:TEST-NOT keys
50139	listed in <http://www.lisp.org/HyperSpec/Body/sec_1-8-2.html>
50140	to c-TEST/TEST-NOT
50141
501422001-12-20  Sam Steingold  <sds@gnu.org>
50143
50144	* compiler.lisp (c-seqop): do not need to check whether the user
50145	rebound NOT (this optimization does not depend on it)
50146
501472001-12-20  Sam Steingold  <sds@gnu.org>
50148
50149	* makemake.in (unixconf.h): a separate target
50150	(makemake): recreate only makemake, not the whole configuration
50151
501522001-12-20  Sam Steingold  <sds@gnu.org>
50153
50154	* type.lisp (canonicalize-type): canonicalize EXTENDED-CHAR
50155	to (OR), not to NIL
50156
501572001-12-20  Sam Steingold  <sds@gnu.org>
50158
50159	* compiler.lisp: Minor code tweaks and simplifications:
50160	(analyze-lambdalist): new MACROLET macro PUSH-OPT
50161	(closuredummy-add-stack-slot): new function
50162	(c-LAMBDABODY, c-LET/LET*, c-MULTIPLE-VALUE-BIND, c-FLET)
50163	(c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET, c-GENERIC-LABELS)
50164	(c-FUNCALL-INLINE): use it
50165	(lambda-form-p): new function
50166	(c-form, inline-callable-function-lambda-p, c-FUNCTION): use it
50167	(shift-vars): new function
50168	(c-MAP-on-CARs, c-MAP-on-LISTs, c-MAPC, c-MAPL): use it
50169	(c-FLET, c-LABELS, c-FUNCTION-MACRO-LET, c-GENERIC-FLET)
50170	(c-GENERIC-LABELS): new macro GET-ANODE in their common MACROLET
50171	(inlinable-function-operation-form-p): new function
50172	(c-FUNCTION-CALL, c-APPLY, c-seqop): use it
50173
501742001-12-20  Sam Steingold  <sds@gnu.org>
50175
50176	* compiler.lisp (version) [CROSS]: update (19071996 --> 20010726)
50177
501782001-12-20  Arseny Slobodjuck  <ampy@ich.dvo.ru>
50179
50180	* lispbibl.d (OS_error): use asciz_out_s(), not asciz_out_1(),
50181	to output a string
50182
501832001-12-19  Stefan Kain  <stefan.kain@freenet.de>
50184
50185	* compiler.lisp: translated all comments
50186
501872001-12-17  Sam Steingold  <sds@gnu.org>
50188
50189	* type.lisp (canonicalize-type): extensive treatment of AND/OR
50190	and NOT (with flattening and special cases)
50191	(subtypep): a hack for NOT add; corrected T & NIL special cases
50192
501932001-12-17  Sam Steingold  <sds@gnu.org>
50194
50195	* predtype.d (expand_deftype): check that (CAR TYPE-SPEC) is a
50196	symbol before calling GET
50197
501982001-12-12  Sam Steingold  <sds@gnu.org>
50199
50200	simplify pathname directory lists
50201	* pathname.d (subst_coerce_normal_ss, subst_up_dotdot): folded
50202	into simplify_directory()
50203	(simplify_directory): new function: coerce to normal simple
50204	strings, replace ".." with :UP and collapse "foo/../"
50205	(parse_logical_pathnamestring, PARSE-NAMESTRING, merge_dirs): call it
50206	(subdir_namestring_parts): handle :UP
50207	(directory_list_valid_p): extracted from MAKE-PATHNAME
50208	(MAKE-PATHNAME): call simplify_directory() and
50209	directory_list_valid_p();
50210	Also: reverted the 2001-08-29 change: do NOT return a logical
50211	pathname when defaults is logical, but `logical' is false
50212
502132001-12-11  Sam Steingold  <sds@gnu.org>
50214
50215	* socket.d (socket_getlocalname): when not resolving, init
50216	truename to a zero-length string
50217	Reported by Ian Wild <ian_wild@yahoo.com>
50218
502192001-11-29  Sam Steingold  <sds@gnu.org>
50220
50221	* configure (link): remove the target ($2) first
50222	(maybe_mkdir): new function
50223	* makemake.in (echotab_mkdir_maybe): new function
50224
502252001-11-28  Sam Steingold  <sds@gnu.org>
50226
50227	* configure, makemake.in, lndir: the idiom `cd $path; pwd` breaks
50228	down when cd prints something -- redirect its output to /dev/null
50229	From William Harold Newman <william.newman@airmail.net>
50230
502312001-11-28  Sam Steingold  <sds@gnu.org>
50232
50233	* pathname.d (wild_char_p): new macro
50234	(PARSE-NAMESTRING, MAKE-PATHNAME, wild_p): use it
50235
502362001-11-28  Sam Steingold  <sds@gnu.org>
50237
50238	* pathname.d (MAKE-PATHNAME): revert the 2001-07-20 patch: :case
50239	applies only to strings, not pathnames in the :default arg
50240	Reported by Kent M Pitman <pitman@world.std.com>
50241
502422001-11-27  Sam Steingold  <sds@gnu.org>
50243
50244	* array.d (SIMPLE_FILL, SIMPLE_REVERSE, SIMPLE_NREVERSE): new macros
50245	(elt_fill): use SIMPLE_FILL
50246	(elt_reverse): use SIMPLE_REVERSE
50247	(elt_nreverse): use SIMPLE_NREVERSE
50248
502492001-11-27  Sam Steingold  <sds@gnu.org>
50250
50251	* stream.d (READ-INTEGER, READ-FLOAT, WRITE-INTEGER, WRITE-FLOAT):
50252	use elt_nreverse() instead of inline code
50253
502542001-11-19  Sam Steingold  <sds@gnu.org>
50255
50256	more consistent floating point computations: (log -1d0) =>
50257	#C(0.0d0 3.141592653589793d0), not #C(0.0d0 3.1415927f0)
50258	* realelem.d (defaultfloatcase): accept NUM arg
50259	(I_float_F, RA_float_F): update accordingly
50260	* realtran.d (pi): accept an arg and pass it to defaultfloatcase()
50261	(R_R_atan_R): pass an argument to pi()
50262	* comptran.d (R_R_atanh_R_R, R_R_asinh_R_R, N_acos_N, N_acosh_N):
50263	pass an argument to pi()
50264	* flo_rest.d (floatcase): envelop in "do{}while(0)"
50265	* lisparit.d (read_float): pass Fixnum_0 to defaultfloatcase()
50266
502672001-11-19  Sam Steingold  <sds@gnu.org>
50268
50269	Move all deprecated functionality to deprecated.lisp
50270	* compiler.lisp (*deprecated-functions-list*): took SPECIAL-FORM-P
50271	and GET-SETF-METHOD-MULTIPLE-VALUE out
50272	* init.lisp (export "EXT"): ditto
50273	* defs1.lisp (special-form-p): moved to deprecated.lisp
50274	* places.lisp (get-setf-method-multiple-value)
50275	(define-setf-method): ditto
50276	* deprecated.lisp (special-form-p, get-setf-method-multiple-value)
50277	(define-setf-method): add and deprecate
50278	* describe.lisp (describe-object): macros can be deprecated too,
50279	give the new name for the deprecated functionality
50280
502812001-11-11  Bruno Haible  <haible@clisp.cons.org>
50282
50283	Support for Intel icc on Linux/i386.
50284	* autoconf/aclocal.m4 (CL_STRLEN): When checking for the return type,
50285	prefer size_t over int. Avoids icc warning.
50286	* lispbibl.d (INTEL): New macro.
50287	(NULL): Do not define if INTEL. Avoids icc warning.
50288	(ASM_get_SP_register, SP, setSP): Use same asm based statement
50289	expression when using Intel icc as when using gcc.
50290	* genclisph.d (main): Likewise.
50291	* arilev0.d (mulu16) [I80386]: Likewise.
50292	(mulu32) [I80386]: Likewise.
50293	(divu_3216_1616) [I80386]: Likewise.
50294	(divu_6432_3232) [I80386]: Likewise.
50295	* eval.d (LD, LR, U_operand, S_operand): Likewise.
50296	* int2adic.d (D_D_mal2adic_D): Likewise.
50297	* intlog.d (integerlength16, integerlength32, ord2_32): Likewise.
50298	* ari80386.d (mulu32_): Do not define when using Intel icc.
50299	(divu_6432_3232_): Likewise.
50300
503012001-11-14  Sam Steingold  <sds@gnu.org>
50302
50303	* stream.d (init_streamvars): when stdin (resp. stdout) is not a
50304	terminal, set *STANDARD-INPUT* (resp. *STANDARD-OUTPUT*) to the
50305	actual stream, not *TERMINAL-IO* synonym stream
50306
503072001-11-14  Sam Steingold  <sds@gnu.org>
50308
50309	* lispbibl.d: envelop all "{}" macros in "do{}while(0)"
50310
503112001-11-09  Sam Steingold  <sds@gnu.org>
50312
50313	* pathname.d (CD): append a slash when the string does not end
50314	with it (compatibility with CMUCL &al); the original behavior is
50315	still available as (cd (pathname string))
50316
503172001-11-08  Sam Steingold  <sds@gnu.org>
50318
50319	* defs1.lisp (load-lpt-many): evaluate the definition for
50320	AllegroCL compatibility
50321
503222001-11-07  Sam Steingold  <sds@gnu.org>
50323
50324	Support CMUCL- and AllegroCL-style logical host loading
50325	* defs1.lisp (load-lpt-many): new function (AllegroCL-style)
50326	(load-lpt-one): new function (CMUCL-style)
50327	(*load-logical-pathname-translations-database*): new user variable
50328	(load-logical-pathname-translations): use them
50329
503302001-11-07  Sam Steingold  <sds@gnu.org>
50331
50332	* init.lisp (search-file): handle the extension-less situations
50333
503342001-11-05  Sam Steingold  <sds@gnu.org>
50335
50336	* debug.d (read_form): keep calling READ-LINE until a non-empty
50337	line is supplied; this fixes the C-z RET win32 problem
50338
503392001-11-04  Bruno Haible  <haible@clisp.cons.org>
50340
50341	Interoperability with gcc-3.0 -fuse-cxa-atexit.
50342	* autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add test whether
50343	global destructors actually exist.
50344
503452001-11-02  Sam Steingold  <sds@gnu.org>
50346
50347	* stream.d (check_stream, check_streamtype, check_builtin_stream):
50348	(check_wr_int, resolve_as_synonym): new macros
50349	(test_stream_args, test_input_stream_args, SYNONYM-STREAM-SYMBOL)
50350	(BROADCAST-STREAM-STREAMS, CONCATENATED-STREAM-STREAMS)
50351	(TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM)
50352	(ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM)
50353	(GENERIC-STREAM-P, bitbuff_ixu_sub, bitbuff_ixs_sub)
50354	(wr_by_iau8_unbuffered, wr_by_iau8_buffered, TERMINAL-RAW)
50355	(BUILT-IN-STREAM-OPEN-P, INPUT-STREAM-P, OUTPUT-STREAM-P)
50356	(BUILT-IN-STREAM-ELEMENT-TYPE, BUILT-IN-STREAM-SET-ELEMENT-TYPE)
50357	(STREAM-EXTERNAL-FORMAT, SET-STREAM-EXTERNAL-FORMAT)
50358	(interactive_stream_p, INTERACTIVE-STREAM-P, BUILT-IN-STREAM-CLOSE)
50359	(get_line_position, READ-BYTE, READ-BYTE-LOOKAHEAD)
50360	(READ-BYTE-WILL-HANG-P, READ-BYTE-NO-HANG, READ-INTEGER)
50361	(READ-FLOAT, WRITE-BYTE, WRITE-INTEGER, WRITE-FLOAT, LINE-NUMBER)
50362	(ALLOW-READ-EVAL): use them
50363	(decoded_el_t): rename from decoded_eltype
50364	(strm_channel_extrafields_t): rename from
50365	 strm_channel_extrafields_struct
50366	(strm_unbuffered_extrafields_t): rename from
50367	 strm_unbuffered_extrafields_struct
50368	(strm_buffered_extrafields_t): rename from
50369	 strm_buffered_extrafields_struct
50370	(win32_console_extrafields_t): rename from
50371	 win32_console_extrafields_struct
50372	(CHECK_INTERRUPT, SYSCALL) [UNIX_BEOS WIN32_NATIVE]: new macros
50373	(low_read_unbuffered_socket, low_listen_unbuffered_socket)
50374	(low_read_array_unbuffered_socket, low_write_unbuffered_socket)
50375	(low_write_array_unbuffered_socket, low_fill_buffered_socket)
50376	(low_flush_buffered_socket) :use them
50377
503782001-11-02  Stefan Kain  <stefan.kain@freenet.de>
50379
50380	* stream.d: translated the comments
50381
503822001-10-28  Arseny Slobodjuck  <ampy@ich.dvo.ru>
50383	    Sam Steingold  <sds@gnu.org>
50384
50385	* stream.d (SCREEN) [WIN32_NATIVE]: w95/98 bug fixes
50386	(win32_console_extrafields_struct): add field handle_reused.
50387	(v_puts): fix a coord bug becoming apparent on w95.
50388	(low_close_console): new function, closing console handle if it is
50389	not reused.
50390	(MAKE-WINDOW): on NT create new console handle, on w95/98 try to
50391	get standard handle (w95 returns stdout anyway). Set new field in
50392	stream data accordingly.  Removing obsolete ASSERT. Change stream
50393	closing procedure to new low_close_console.
50394
503952001-10-25  Sam Steingold  <sds@gnu.org>
50396
50397	* pathname.d (MAKE-PATHNAME): STACK_* = listof()
50398	might not be what you think! -- avoid
50399
504002001-10-25  Sam Steingold  <sds@gnu.org>
50401
50402	* socket.d (ipv6_ntop): make sure buffer is returned
50403
504042001-10-25  Sam Steingold  <sds@gnu.org>
50405
50406	* stream.d (rd_ch_keyboard) [WIN32_NATIVE !UNICODE]: fix the
50407	call to OemToCharBuff()
50408	Suggested by Arseny Slobodjuck <ampy@ich.dvo.ru>
50409
504102001-10-24  Sam Steingold  <sds@gnu.org>
50411
50412	* charstrg.d (char_name, name_char): fix for --without-unicode
50413
504142001-10-24  Sam Steingold  <sds@gnu.org>
50415
50416	fix --without-unicode on msvc
50417	* lispbibl.d (pseudodata_tab) [MS !UNICODE]: add a dummy member
50418	* spvw.d (pseudocode_anz) [MS !UNICODE]: define to 0
50419	* stream.d (pseudodata_tab) [MS !UNICODE]: init the dummy member
50420
504212001-10-24  Bruno Haible  <haible@clisp.cons.org>
50422
50423	* clhs.lisp (*browsers*): Add an entry for :konqueror.
50424
504252001-10-23  Sam Steingold  <sds@gnu.org>
50426
50427	fix bug#72
50428	* misc.d (LISP-IMPLEMENTATION-VERSION): do not try to convert
50429	O(lisp_implementation_version_built_string) when month is not found
50430
504312001-10-23  Sam Steingold  <sds@gnu.org>
50432
50433	* clisp-link.sh (LIBS): quote commas
50434	Suggested by Johannes Groedem <johs@bzzzt.fix.no>
50435
504362001-10-23  Sam Steingold  <sds@gnu.org>
50437
50438	* io.d (pprin_object, pprin_object_dispatch): declare local
50439
504402001-10-20  Sam Steingold  <sds@gnu.org>
50441
50442	* init.lisp (socket-stream-handle) [:WIN32]: do not export
50443
504442001-10-18  Sam Steingold  <sds@gnu.org>
50445
50446	MAKE-INSTANCE returns the instance,
50447	not the return value of INITIALIZE-INSTANCE
50448	* clos.lisp (initial-make-instance): save & return instance
50449	* record.d (CLOS::%MAKE-INSTANCE): ditto
50450
504512001-10-18  Sam Steingold  <sds@gnu.org>
50452
50453	pass *ARGS* to :INIT-FUNCTION when argv_execute_file is ""
50454	* spvw.d (init_symbol_values): define_variable EXT:*ARGS*
50455	(main): when argv_execute_file is "", do not call LOAD,
50456	just set EXT:*ARGS*
50457
504582001-10-05  Arseny Slobodjuck  <ampy@ich.dvo.ru>
50459	    Sam Steingold  <sds@gnu.org>
50460
50461	Work with terminal/console encoding more directly in win32.
50462	Initialize terminal-encoding to OEM encoding.
50463	* stream.d (wr_ch_array_window, wr_ch_window, rd_ch_keyboard)
50464	[WIN32_NATIVE UNICODE]: do not convert to OEM (encodings do)
50465	* encoding.d (init_dependent_encodings) [WIN32_NATIVE]:
50466	init terminal encoding to OEM code page
50467	* win32aux.d (OEM2ANSI_table, ANSI2OEM_table) [UNICODE]: drop
50468	(init_win32): ditto
50469	(lowlevel_full_read, full_write) [UNICODE]: do not translate
50470
504712001-10-05  Arseny Slobodjuck  <ampy@ich.dvo.ru>
50472	    Sam Steingold  <sds@gnu.org>
50473
50474	move win32 console attributes to non-GC-ed area to ensure
50475	absence of conflicts.
50476	* stream.d (strm_console_attrib, strm_console_size)
50477	(strm_console_cursor_pos, UnwrapCoord, WrapCoord, ConsolePosR)
50478	(ConsoleSizeR, ConsoleAttribR, ConsolePosS, ConsoleSizeS)
50479	(ConsoleAttribS, ConsoleHandleS) [WIN32_NATIVE]: remove macros
50480	(unwrap_coord): remove function
50481	(v_put): no need to move cursor
50482	(ConsoleData) [WIN32_NATIVE]: new console attrib accessor
50483	(win32_console_extrafields_struct): new structure, contains
50484	strm_channel_extrafields_struct and console state.
50485	(make_window, window_size, window_cursor_position)
50486	(set_window_cursor_position, clear_window, clear_window_to_eot)
50487	(clear_window_to_eol, delete_window_line, insert_window_line)
50488	(highlight_on, highlight_off, wr_ch_array_window): update to
50489	get attributes from new structure.
50490	(wr_ch_array_window, make_window): fix UNICODE mode
50491
504922001-10-15  Sam Steingold  <sds@gnu.org>
50493
50494	* io.d (read_internal): clear EOF from the stream
50495
504962001-10-10  Sam Steingold  <sds@gnu.org>
50497
50498	optimize #'* and #'/
50499	* compiler.lisp (c-form-table): map * to c-STAR and / to c-SLASH
50500	(c-constant-number, c-collect-numeric-constants): add
50501	(c-PLUS, c-MINUS): use them
50502	(c-STAR, c-SLASH): new functions
50503
505042001-10-08  Sam Steingold  <sds@gnu.org>
50505
50506	fix bug#70: support ipv6 on i386 (cygwin32, mingw32, msvc)
50507	* win32.d (HAVE_IPV6): define
50508	(ws2tcpip.h, winsock2.h): include
50509	* socket.d (in6_addr): define to in_addr6
50510	(ipv6_ntop): the s6_addr array is directly in struct in6_addr
50511
505122001-10-08  Sam Steingold  <sds@gnu.org>
50513
50514	* savemem.lisp (saveinitmem): default image type is .mem
50515
505162001-10-05  Sam Steingold  <sds@gnu.org>
50517
50518	* io.d (pr_enter_1): set indent if not skipping a newline after a TAB
50519
505202001-10-04  Sam Steingold  <sds@gnu.org>
50521
50522	make COERCE error message more consistent
50523	* sequence.d (coerce_sequence): add a third argument error_p to
50524	indicate whether to return nullobj when result_type is
50525	not a sequence or to signal an error
50526	* lispbibl.d (coerce_sequence): update the prototype
50527	* rexx.d (REXX-PUT): update for the new coerce_sequence() signature
50528	* eval.d (SUBR-INFO, match_subr_key): ditto
50529	* foreign.d (convert_from_foreign): ditto
50530	* predtype.d (coerce_sequence_check): new function
50531	(COERCE): use it
50532
505332001-10-04  Sam Steingold  <sds@gnu.org>
50534
50535	special file for deprecated functions
50536	* deprecated.lisp: add (define type-expand-1)
50537	* init.lisp: load deprecated.lisp
50538	* makemake.in (LPARTS): add deprecated
50539
505402001-10-04  Sam Steingold  <sds@gnu.org>
50541
50542	expand compiler macros in C-FORM
50543	* compiler.lisp (expand-compiler-macro): new function
50544	(c-form, macroexpand-form): use it
50545
505462001-10-04  Sam Steingold  <sds@gnu.org>
50547
50548	* type.lisp (clos-class): new function
50549	(typep, canonicalize-type, type-expand): use it
50550
505512001-10-03  Sam Steingold  <sds@gnu.org>
50552
50553	limit DEFTYPE depth
50554	* predtype.d (expand_deftype): do not iterate more
50555	than (or *DEFTYPE-DEPTH-LIMIT* MOST-POSITIVE-FIXNUM) times
50556	* constsym.d, spvw.d (*DEFTYPE-DEPTH-LIMIT*): add
50557
505582001-10-03  Sam Steingold  <sds@gnu.org>
50559
50560	EXPAND-DEFTYPE & TYPE-EXPAND accept an optional argument
50561	* predtype.d (expand_deftype): take the second arg once_p
50562	(EXPAND-DEFTYPE): take the second optional arg once-p
50563	* subr.d (expand-deftype): ditto
50564	* lispbibl.d (expand_deftype): ditto
50565	* sequence.d (valid_type): changed the expand_deftype() call
50566	* type.lisp (type-expand): take the second optional arg once-p
50567	* describe.lisp (describe-object): use type-expand
50568
505692001-10-03  Sam Steingold  <sds@gnu.org>
50570
50571	* io.d (pr_enter_1): do not print the initial newline with
50572	definite single-liners
50573
505742001-10-02  Sam Steingold  <sds@gnu.org>
50575
50576	* format.lisp (formatter-main-1): fix quoting (colon-p and
50577	atsign-p must be under comma)
50578
505792001-10-01  Sam Steingold  <sds@gnu.org>
50580
50581	* pathname.d (make-pathname): support string and
50582	:wild/:wild-inferiors :directory arg
50583	support :UP and :BACK in the directory list
50584	coerce name &c to normal simple string
50585	(legal_name): accept non-simple strings
50586	(subst_up_dotdot): new function
50587	* constsym.d (:UP, :BACK): add
50588
505892001-10-01  Sam Steingold  <sds@gnu.org>
50590
50591	add EXPAND-DEFTYPE primitive, remove TYPE-EXPAND-1
50592	* lispbibl.d (expand_deftype): add a prototype
50593	* predtype.d (expand_deftype, EXPAND-DEFTYPE): implement
50594	(COERCE): use expand-deftype()
50595	* constsym.d, subr.d (EXPAND-DEFTYPE): add
50596	* sequence.d (find_seq_type): new local function
50597	(valid_type): split into valid_type() and valid_type1(),
50598	use expand_deftype() and find_seq_type()
50599	(get_seq_type): use find_seq_type()
50600	* type.lisp (typep, canonicalize-type, subtype-integer)
50601	(type-expand-1): use EXPAND-DEFTYPE
50602	(type-expand-1): folded into type-expand
50603	* describe.lisp (describe-object): do not use type-expand-1
50604
506052001-09-24  Sam Steingold  <sds@gnu.org>
50606
50607	add functionp macro predicate
50608	* lispbibl.d (functionp): define
50609	* record.d (MAKE-FUNCTION-MACRO, MAKE-MACRO): use it
50610	* predtype.d (COERCE): ditto
50611
506122001-09-23  Sam Steingold  <sds@gnu.org>
50613
50614	optional filling of PPHELP streams
50615	* stream.d (wr_ch_pphelp): when filling, handle spaces specially
50616	(wr_ch_array_pphelp): split on NL and (when filling) on spaces
50617	(wr_ch_array_pphel_): rename from wr_ch_array_pphelp
50618	* constsym.d (*PRINT-PRETTY-FILL*): add
50619	* spvw.d (init_symbol_values): defvar *PRINT-PRETTY-FILL*
50620
506212001-09-24  Stefan Kain  <stefan.kain@freenet.de>
50622
50623	* lispbibl.d: translated the rest of the comments
50624
506252001-08-12  Bruno Haible  <haible@clisp.cons.org>
50626
50627	* io.d (a_letterdigit, a_expodigit): New macros.
50628	(test_potential_number_syntax): Swap step2 and step3. Translate into
50629	a_letterdigit and a_expodigit. Update step4 and step6 accordingly.
50630	(test_number_syntax): Drop most of step4. Update step5 accordingly.
50631
506322001-08-25  Bruno Haible  <haible@clisp.cons.org>
50633
50634	Make it compile in C++ mode.
50635	* foreign.d (free_foreign_callin): Cast free_callback argument.
50636	(struct_alignment): Provide alternative definition in C++.
50637
506382001-09-22  Sam Steingold  <sds@gnu.org>
50639
50640	* error.d (end_error): use exit() instead of NOTREACHED to avoid
50641	an infinite loop reporting fatal errors
50642
506432001-09-22  Sam Steingold  <sds@gnu.org>
50644
50645	new built-ins: SYS::WHITESPACEP & SYS::WRITE-SPACES
50646	* constsym.d, subr.d (whitespacep, write_spaces): add
50647	* io.d (write_spaces, whitespacep): implement
50648	* lispbibl.d (cint_white_p): new macro
50649	* stream.d (strip_white): use it
50650	* compiler.lisp (stream-tab): use write-spaces
50651	* describe.lisp (describe-stream): ditto
50652	* format.lisp (whitespacep): commented out
50653
506542001-09-21  Sam Steingold  <sds@gnu.org>
50655
50656	binary i/o on True64
50657	* stream.d (bitbuff_is_I): subtract, not add wbitm(intLsize) to
50658	wert before calling negfixnum
50659	Suggested by Kalman Reti <reti@ai.mit.edu>
50660
506612001-09-21  Sam Steingold  <sds@gnu.org>
50662
50663	some bugfixes to the Pretty-Printer
50664	* io.d (FORMAT-TABULATE): check the optional arguments
50665	* format.lisp (formatter-main-1): add FORMAT-PPRINT-NEWLINE and
50666	FORMAT-PPRINT-INDENT
50667	(format-pprint-indent): fix COUNT default value
50668
506692001-09-20  Sam Steingold  <sds@gnu.org>
50670
50671	fix WITH-COMPILATION-UNIT
50672	* compiler.lisp (compile-warnings-p, compile-failure-p): new
50673	helper functions
50674	(compile, compile-file): use them
50675	(c-report-problems): call c-reset-globals
50676	(with-compilation-unit): bind *error-count* *warning-count* and
50677	*style-warning-count* when *c-top-call*
50678	(compile-file): use with-compilation-unit
50679	(compile): flet closure-slot
50680
506812001-09-20  Sam Steingold  <sds@gnu.org>
50682
50683	handle *PRINT-LEVEL* for CLOS instances correctly
50684	* io.d (pr_instance, pr_structure_external): do level check
50685	(pr_structure): do not do level check
50686
506872001-09-20  Sam Steingold  <sds@gnu.org>
50688
50689	PPRINT-LOGICAL-BLOCK supports *PRINT-CIRCLE* and *PRINT-LENGTH*
50690	* pprint.lisp (pprint-pop): handle *PRINT-LENGTH* & *PRINT-CIRCLE*
50691	* constsym.d, subr.d (pcirclep): add
50692	* io.d (double_dots): do not set *PRIN-LINES* to :END
50693	(string_fit_line_p): take a third arg offset
50694	(pr_enter_1): do not print TAB before NL
50695	(pprin_object, pprin_object_dispatch): new pr_routine_t
50696	(pprint_lisp): remove
50697	(%PPRINT-LOGICAL-BLOCK): use pprin_object instead of pprint_lisp
50698	(%CIRCLEP): new LISPFUNN
50699
507002001-09-19  Sam Steingold  <sds@gnu.org>
50701
50702	* io.d (format_tab): ASSERT that the return value is >=0
50703
507042001-09-19  Sam Steingold  <sds@gnu.org>
50705
50706	* makemake.in (DEBUGGING): handle on win32msvc
50707
507082001-09-17  Sam Steingold  <sds@gnu.org>
50709
50710	finished the Pretty-Printer
50711	* constsym.d, subr.d (FORMAT-TABULATE): add
50712	* format.lisp (format-tabulate): commented out
50713	* lispbibl.d (cons_ssstring): take args
50714	(PUSH_CONS, PPHELP_PUSH, PPHELP_NEW_STRING): remove
50715	* stream.d (make_pphelp_stream): call cons_ssstring() with args
50716	(wr_ch_pphelp): use cons_ssstring() instead of PPHELP_NEW_STRING()
50717	* io.d (strm_pphelp_strings): contains NL/indent/tab too
50718	(cons_ssstring): take 2 agrs - stream pointer and NL type
50719	(format_tab): new function
50720	(pprint_prefix): take an additional `prefix' arg
50721	(pphelp_newline): use cons_ssstring() instead of PPHELP_NEW_STRING()
50722	(klammer_zu): drop the newline / indentation / tab
50723	(multi_line_sub_block_out): new function
50724	(justify_end_eng, justify_end_weit): use it
50725	(space_available, pphelp_length, string_fit_line_p): new functions
50726	(pr_enter_1): accommodate the new strm_pphelp_strings format
50727	(PPRINT-NEWLINE): implement non-mandatory newlines
50728	(FORMAT-TABULATE): moved here from format.lisp
50729
507302001-09-17  Sam Steingold  <sds@gnu.org>
50731
50732	* io.d (syntax_readtable_get, syntax_readtable_put): new macros
50733	(SET-SYNTAX-FROM-CHAR, GET-MACRO-CHARACTER, read_char_syntax)
50734	(wpeek_char_syntax, wpeek_char_eof): use them
50735
507362001-09-17  Sam Steingold  <sds@gnu.org>
50737
50738	bind *PRINT-READABLY* to NIL before reporting errors
50739	* error.d (write_errorobject): bind *PRINT-READABLY* to NIL
50740	(signal_and_debug): new function; extracted from end_error(),
50741	ERROR, ERROR-OF-TYPE; additionally bind *PRINT-READABLY* to NIL
50742	(end_error, ERROR, ERROR-OF-TYPE): use it
50743	* debug.d (break_driver): bind *PRINT-READABLY* to NIL
50744
507452001-09-14  Sam Steingold  <sds@gnu.org>
50746
50747	* modules/regexp/regexp.lisp (with-loop-split): :case-sensitive is
50748	a &key, not &optional, add :start and :end
50749	(regexp-exec): accept negative :end
50750
507512001-09-14  Sam Steingold  <sds@gnu.org>
50752
50753	more work on the Pretty-Printer
50754	* constsym.d (*PRIN-INDENTATION*): new var
50755	* format.lisp (format-tabulate): use it instead of CURRENT-INDENT
50756	(current-indent): remove
50757	* io.d (cons_ssstring, pprint_prefix): new functions
50758	(right_margin): use pprint_prefix()
50759	(pphelp_newline): use PPHELP_NEW_STRING()
50760	(justify_empty_1): use cons_ssstring()
50761	(pr_enter_1): use pprint_prefix()
50762	(PPRINT-INDENT): add spaces when necessary
50763	(pprint_lisp): do level check
50764	* lispbibl.d (cons_ssstring, PUSH_CONS, PPHELP_PUSH)
50765	(PPHELP_NEW_STRING): add (for io.d and stream.d)
50766	* pprint.lisp (pprint-logical-block): moved binding out of lambda;
50767	bind *PRIN-INDENTATION* instead of *PRIN-L1* and *PRIN-LM*
50768	* spvw.d (init_symbol_values): defvar *PRIN-LINE-PREFIX* (forgot
50769	on 2001-08-17) and *PRIN-INDENTATION*
50770	* stream.d (wr_ch_pphelp): when given NL, start a new string
50771	using PPHELP_NEW_STRING
50772	(make_pphelp_stream): use cons_ssstring()
50773
507742001-09-13  Sam Steingold  <sds@gnu.org>
50775
50776	* modules/regexp/regexp.lisp: replace CASE-INSENSITIVE with
50777	CASE-SENSITIVE throughout (preserving the defaults)
50778
507792001-09-11  Sam Steingold  <sds@gnu.org>
50780
50781	* makemake.in (docdir): use `share' for all $fsstnd
50782
507832001-09-10  Sam Steingold  <sds@gnu.org>
50784
50785	* debug.d (read_form): check the input_len before string_eqcomp_ci()
50786
507872001-09-10  Sam Steingold  <sds@gnu.org>
50788
50789	* pprint.lisp (pprint-logical-block): unroll stream-symbol (NIL ->
50790	*STANDARD-OUTPUT*, T -> *TERMINAL-IO*)
50791
507922001-09-10  Sam Steingold  <sds@gnu.org>
50793
50794	* io.d (pr_enter_1): a GC-safety issue
50795
507962001-09-10  Sam Steingold  <sds@gnu.org>
50797
50798	* macros2.lisp (Exhaustive-Case-Analysis): add CASE-LIST flet
50799	(gensym-list): new function
50800	(time, space): use it
50801	* compiler.lisp (c-MAP-on-CARs, c-MAP-on-LISTs, c-MAPC, c-MAPL): ditto
50802	* condition.lisp (handler-bind): ditto
50803	* format.lisp (formatter-main-1): ditto
50804	* places.lisp (get-setf-expansion, push, pushnew): ditto
50805	* clos.lisp (analyze-method-description, prototype-table)
50806	(compute-dispatch, compute-effective-method, generic-flet)
50807	(generic-labels): ditto
50808	(n-gensyms): remove
50809
508102001-09-10  Sam Steingold  <sds@gnu.org>
50811
50812	fix bug#69
50813	* format.lisp (format-float-to-string): make sure width is at
50814	least 2 (when given): for a digit and for the decimal point
50815
508162001-09-09  Stefan Kain  <stefan.kain@freenet.de>
50817
50818	* format.lisp: translated all comments
50819
508202001-09-09  Sam Steingold  <sds@gnu.org>
50821
50822	* lispbibl.d (offsetof) [MSVC]: defined in <stddef.h>
50823
508242001-09-09  Sam Steingold  <sds@gnu.org>
50825
50826	* pathname.d (host_namestring_parts): handle logical pathnames on win32
50827
508282001-09-07  Sam Steingold  <sds@gnu.org>
50829
50830	* lispbibl.d, error.d, genclisph.d (conditiontype):
50831	rename to `condition_t'
50832
508332001-09-07  Oliver Nee  <o.nee@t-online.de>
50834	    Sam Steingold  <sds@gnu.org>
50835
50836	* lispbibl.d: translate half of the comments
50837
508382001-09-06  Sam Steingold  <sds@gnu.org>
50839
50840	* macros1.lisp (case-expand): new function
50841	(case): use it
50842	(fcase): new macro
50843
508442001-09-05  Sam Steingold  <sds@gnu.org>
50845
50846	* reploop.lisp (debug-backtrace): print the number of frames
50847	* debug.d (SHOW-STACK): return the number of frames examined
50848
508492001-09-05  Sam Steingold  <sds@gnu.org>
50850
50851	* install.lisp (add-fas-file, add-mem-file): set the default action
50852
508532001-08-30  Sam Steingold  <sds@gnu.org>
50854
50855	* lispbibl.d (nonreturning_function) [MICROSOFT]: __declspec(noreturn)
50856
508572001-08-30  Sam Steingold  <sds@gnu.org>
50858
50859	* pathname.d (MERGE-PATHNAMES): when physical directories do not
50860	match, check for unbound directory in pathname
50861
508622001-08-29  Sam Steingold  <sds@gnu.org>
50863
50864	* pathname.d (assure_dir_exists) [WIN32_NATIVE]: signal an error
50865	when the path is invalid
50866
508672001-08-29  Sam Steingold  <sds@gnu.org>
50868
50869	more ANSI compliance pathnames wrt HOSTS & VERSIONS
50870	* constobj.d (semicolon_string, zero_string): add for the
50871	benefit of VERSION pathname component
50872	* pathname.d (PARSE-NAMESTRING): fix HOST handling
50873	(pathname_version_maybe, pathname_host_maybe)
50874	(pathname_device_maybe): new convenience macros
50875	(subdir_namestring_parts): take an additional logp arg
50876	(host_namestring_parts, directory_namestring_parts):
50877	handle logical pathnames
50878	(nametype_namestring_parts): separate version with ".", not ";"
50879	(directory_namestring): do not add host
50880	(FILE-NAMESTRING, DIRECTORY-NAMESTRING, HOST-NAMESTRING)
50881	(ENOUGH-NAMESTRING, NAMESTRING): handle logical pathnames
50882	(defaults_pathname): permit logical *DEFAULT-PATHNAME-DEFAULTS*
50883	(merge_dirs): new function
50884	(MERGE-PATHNAMES): use it; handle versions better
50885	(MAKE-PATHNAME): handle defaults early; pass UNBOUND instead of
50886	NIL to MERGE-PATHNAMES as default version
50887
508882001-08-27  Sam Steingold  <sds@gnu.org>
50889
50890	* makemake.in (testsuite): add on all platforms
50891
508922001-08-27  Sam Steingold  <sds@gnu.org>
50893
50894	win32gcc names libraries libFOO.a and not FOO.LIB
50895	* makemake.in (LIB_TYPE): new variable, used instead of $HOS
50896	in creating library dependencies
50897
508982001-08-27  Sam Steingold  <sds@gnu.org>
50899
50900	fix bug#66
50901	* defstruct.lisp (ds-arg-default): when ARG is a list and default
50902	is NIL, return (ARG NIL) and not (ARG)
50903	(ds-arg-with-default): pass VAR instead of ARG to DS-ARG-DEFAULT
50904
509052001-08-25  Bruno Haible  <haible@clisp.cons.org>
50906
50907	Upgrade to autoconf-2.52.
50908	* autoconf/autoconf: Upgrade to autoconf-2.52.
50909	* autoconf/acgeneral.m4: Remove file.
50910	* autoconf/acspecific.m4: Remove file.
50911	* autoconf/autoconf.m4f: New file, from autoconf-2.52.
50912	* autoconf/aclocal.m4: Require autoconf-2.52.
50913	(CL_AS_UNDERSCORE): Avoid stupid autoconf-2.52 error "possibly
50914	undefined macro: AS_UNDERSCORE".
50915	(CL_CONFIG_SUBDIRS): Rewritten.
50916	(CL_CANONICAL_HOST): Call AC_CANONICAL_HOST. Do not cache the result,
50917	AC_CANONICAL_HOST does it itself. Add $SHELL in front of
50918	$ac_config_guess and $ac_config_sub.
50919	(CL_VOID): Define return_void to empty.
50920	(CL_DIR_HEADER): Inline the autoconf-2.13 AC_CHECK_HEADERS_DIRENT code.
50921	(CL_SIGACTION_REINSTALL): Include <string.h>, for memset declaration.
50922	(CL_STAT): Define STAT_INLINE outside of CL_PROTO.
50923	(CL_LSTAT): Likewise.
50924	(CL_SHM): Cast the shmat return value, to avoid error in C++ mode.
50925	* Makefile.devel (AUTOCONF_FILES): Remove acgeneral.m4, acspecific.m4.
50926	Add autoconf.m4f.
50927	(src/gettext/configure, src/gettext/config.h.in): Likewise.
50928	(src/configure): Use autoconf options -A, -l instead of -m.
50929	(modules/wildcard/configure): Likewise.
50930	(modules/regexp/configure): Likewise.
50931	(modules/clx/new-clx/configure): Likewise.
50932	(utils/hln/configure): Likewise.
50933	* unixconf.h.in (return_void, *_CONST, CONNECT_ADDRLEN_T): Use
50934	#undef instead of #define, to work around an autoconf bug.
50935	(DIRENT, SYSNDIR, SYSDIR, NDIR): Remove comments after #undef, to
50936	work around an autoconf-2.52 bug.
50937	* configure: Pass --cache-file=config.cache to the main configure, to
50938	force a cache file. Needed for grepping cl_cv_prog_cc_cplusplus and
50939	also for speed. Do not pass --cache-file=../config.cache to gettext's
50940	configure because it uses different CPPFLAGS and LDFLAGS (needed so
50941	that gettext gets HAVE_ICONV right).
50942
509432001-08-25  Bruno Haible  <haible@clisp.cons.org>
50944
50945	* makemake.in (gettext_datadirname_sedcommand): Remove.
50946	(datadir): Always set to $(prefix)/share.
50947	(localesed): Update.
50948	(clean5): Also remove the varbrace executable.
50949
509502001-08-27  Sam Steingold  <sds@gnu.org>
50951
50952	* init.lisp (load): when checking whether FILENAME names a
50953	compiled file, do not call MAKE-PATHNAME since if
50954	*DEFAULT-PATHNAME-DEFAULTS* has a non-trivial host, the search
50955	will always fail
50956
509572001-08-27  Stefan Kain  <stefan.kain@freenet.de>
50958
50959	* init.lisp: translated all comments
50960
509612001-08-05  Bruno Haible  <haible@clisp.cons.org>
50962
50963	* pathname.d (Z_SHIFT, Z_AT_SLASH, Z_SUB): Parenthesize argument
50964	expressions.
50965
509662001-08-05  Bruno Haible  <haible@clisp.cons.org>
50967
50968	* spvw.d (main): Use GETTEXT, not GETTEXTL, in combination with
50969	O(internal_encoding).
50970
509712001-08-05  Bruno Haible  <haible@clisp.cons.org>
50972
50973	* lispbibl.d (nonreturning_function): Define in a way that works also
50974	for function definitions.
50975	* genclisph.d (main): Update accordingly.
50976	* affi.d: Merge nonreturning_function declarations with definition.
50977	* amigaaux.d: Likewise.
50978	* aridecl.d: Likewise.
50979	* array.d: Likewise.
50980	* charstrg.d: Likewise.
50981	* control.d: Likewise.
50982	* debug.d: Likewise.
50983	* encoding.d: Likewise.
50984	* erramiga.d: Likewise.
50985	* error.d: Likewise.
50986	* errunix.d: Likewise.
50987	* errwin32.d: Likewise.
50988	* eval.d: Likewise.
50989	* flo_konv.d: Likewise.
50990	* foreign.d: Likewise.
50991	* hashtabl.d: Likewise.
50992	* intbyte.d: Likewise.
50993	* intdiv.d: Likewise.
50994	* intelem.d: Likewise.
50995	* intmal.d: Likewise.
50996	* io.d: Likewise.
50997	* lfloat.d: Likewise.
50998	* lisparit.d: Likewise.
50999	* list.d: Likewise.
51000	* pathname.d: Likewise.
51001	* record.d: Likewise.
51002	* rexx.d: Likewise.
51003	* sequence.d: Likewise.
51004	* spvw.d: Likewise.
51005	* spvw_allocate.d: Likewise.
51006	* stream.d: Likewise.
51007	* symbol.d: Likewise.
51008
510092001-08-22  Sam Steingold  <sds@gnu.org>
51010
51011	* pprint.lisp (pprint-logical-block): set indentation with
51012	PPRINT-INDENT after printing :PREFIX
51013
510142001-08-22  Sam Steingold  <sds@gnu.org>
51015
51016	* io.d (PPRINT-NEWLINE): output only to PPHELP streams
51017	and when *PRINT-PRETTY* is non-NIL
51018	(%PPRINT-LOGICAL-BLOCK): bind *PRIN-PPRINTER*, not set it
51019
510202001-08-05  Bruno Haible  <haible@clisp.cons.org>
51021
51022	* io.d (check_readtable): Rename from CHECK_READTABLE. Add
51023	documentation.
51024
510252001-08-05  Bruno Haible  <haible@clisp.cons.org>
51026
51027	* pathname.d (version_diff): Fix syntax error.
51028
510292001-08-21  Sam Steingold  <sds@gnu.org>
51030
51031	* lispbibl.d, stream.d (check_direction): const argument
51032
510332001-08-21  Sam Steingold  <sds@gnu.org>
51034
51035	* stream.d (stream_dummy_fill): fill the stream with error pseudofuns
51036	(close_dummys): a macro now, uses stream_dummy_fill()
51037	(make_broadcast_stream, make_concatenated_stream)
51038	(MAKE-STRING-INPUT-STREAM, make_string_output_stream)
51039	(MAKE-STRING-PUSH-STREAM, make_pphelp_stream)
51040	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM)
51041	(fill_pseudofuns_unbuffered, fill_pseudofuns_buffered)
51042	(make_keyboard_stream, make_terminal_stream_)
51043	(MAKE-WINDOW, make_printer_stream): use stream_dummy_fill()
51044	(ELTYPE_DISPATCH): new macro
51045	(canon_eltype, fill_pseudofuns_buffered): use it
51046
510472001-08-05  Bruno Haible  <haible@clisp.cons.org>
51048
51049	* lispbibl.d (direction_t): Explicit value assignments.
51050
510512001-08-05  Bruno Haible  <haible@clisp.cons.org>
51052
51053	* io.d (get_readtable): Local variable zuweisung -> assignment.
51054	(read_char_syntax): Likewise.
51055	(wpeek_char_syntax): Likewise.
51056
510572001-08-05  Bruno Haible  <haible@clisp.cons.org>
51058
51059	* eval.d (eval_fsubr): Change error message: talk about special
51060	operator, not special form.
51061
510622001-08-21  Sam Steingold  <sds@gnu.org>
51063
51064	* makemake.in (XCFLAGS): with win32gcc, do not need
51065	-D_NO_OLDNAMES: there is no sleep() in stdlib.h and
51066	_NO_OLDNAMES_ kills struct timeb in timeb.h
51067
510682001-08-21  Sam Steingold  <sds@gnu.org>
51069
51070	fix bug#57
51071	* makemake.in (DISTFILE): insulate from AIX uname which does not
51072	have the -p option
51073
510742001-08-21  Sam Steingold  <sds@gnu.org>
51075
51076	some symbols appeared in wrong packages - fix this
51077	* international.lisp (textdomain, textdomaindir): use package
51078	prefix before SET-TEXTDOMAIN and SET-TEXTDOMAINDIR
51079	* clos.lisp (signature): import from COMPILER
51080
510812001-08-20  Sam Steingold  <sds@gnu.org>
51082
51083	* loadform.lisp (mlf-unquote, mlf-init-function): new functions
51084	(make-init-form): warn about errors in MLF-INIT-FUNCTION
51085
510862001-08-20  Sam Steingold  <sds@gnu.org>
51087
51088	* places.lisp (setf-symbol): intern the result when the argument
51089	is interned
51090
510912001-08-05  Bruno Haible  <haible@clisp.cons.org>
51092
51093	* constsym.d: Reorder according to the definition order in the files.
51094
510952001-08-05  Bruno Haible  <haible@clisp.cons.org>
51096
51097	* win32.d: Test __MINGW32__, not __mingw32__.
51098
510992001-08-18  Sam Steingold  <sds@gnu.org>
51100
51101	* loadform.lisp (make-load-form-saving-slots): compute the slot
51102	list differently for STANDARD-OBJECTs and STRUCTURE-OBJECTs;
51103	quote slot values
51104
511052001-08-17  Sam Steingold  <sds@gnu.org>
51106
51107	implement the ANSI CL pretty-printer
51108	* constobj.d (version): bumped
51109	(type_pprint_newline, type_pprint_indent): add
51110	* constsym.d (PPRINT-DISPATCH, PPRINT-INDENT, PPRINT-NEWLINE)
51111	(%PPRINT-LOGICAL-BLOCK, :MISER-WIDTH, :PPRINT-DISPATCH, :LINEAR)
51112	(:FILL, :MISER, :MANDATORY, :BLOCK, :CURRENT, *PRIN-LINE-PREFIX*)
51113	(*PRIN-MISERP*, *PRIN-PPRINTER*): new symbols
51114	* defs2.lisp (with-standard-io-syntax): bind *PRINT-MISER-WIDTH*
51115	and *PRINT-PPRINT-DISPATCH*
51116	* format.lisp (format-parse-cs): add ~_ and ~I instructions
51117	(format-pprint-newline, format-pprint-indent, current-indent):
51118	new functions
51119	(format-tabulate): do not ignore colon-modifier
51120	* init.lisp: export PPRINT symbols; load pprint.lisp
51121	* inspect.lisp (with-gensyms): moved to pprint.lisp
51122	* io.d (pretty_print_call): look into *PRINT-PPRINT-DISPATCH*
51123	(pr_enter_1): call it, instead of calling pr_xxx directly
51124	respect *PRIN-LINE-PREFIX*
51125	(pr_external_1): bind *PRINT-MISER-WIDTH* and
51126	*PRINT-PPRINT-DISPATCH*
51127	(PPRINT-INDENT, PPRINT-NEWLINE): implement
51128	(pprint_lisp): new pr_routine_t helper
51129	(%PPRINT-LOGICAL-BLOCK): new function
51130	(WRITE, WRITE-TO-STRING): accept :MISER-WIDTH and :PPRINT-DISPATCH
51131	* lisparit.d (fehler_not_R): made global
51132	* lispbibl.d (init): add the prototype
51133	* makemake.in (LPARTS): add pprint.lisp
51134	* pprint.lisp: new file
51135	* spvw.d (init_symbol_values): define *PRINT-MISER-WIDTH*,
51136	*PRIN-MISERP*, *PRIN-PPRINTER*, *PRINT-PPRINT-DISPATCH*
51137	* subr.d, subrkw.d (write, write_to_string): add kw(miser_width)
51138	and kw(pprint_dispatch)
51139	* subr.d (pprint_indent, pprint_newline, ppprint_logical_block): add
51140
511412001-08-17  Sam Steingold  <sds@gnu.org>
51142
51143	* charstrg.d (char_name): fix the binary search to always terminate
51144
511452001-08-13  Stefan Kain  <stefan.kain@freenet.de>
51146
51147	* eval.d: translated all comments
51148
511492001-08-05  Bruno Haible  <haible@clisp.cons.org>
51150
51151	* constsym.d (S(re_export)): Rename from S(reexport).
51152
511532001-08-05  Bruno Haible  <haible@clisp.cons.org>
51154
51155	* charstrg.d (unpack_string): Rename local variable index to offset,
51156	to be consistent with the documentation.
51157	(unpack_string_ro): Add documentation.
51158	(SYSTEM::STORE-CHAR): Rename local variable index to offset.
51159
511602001-08-05  Bruno Haible  <haible@clisp.cons.org>
51161
51162	* control.d (CONSTANTP): Optimize a popSTACK().
51163
511642001-08-05  Bruno Haible  <haible@clisp.cons.org>
51165
51166	* makemake.in: Update documentation of --with-[no]gettext.
51167
511682001-08-16  Sam Steingold  <sds@gnu.org>
51169
51170	* loop.lisp (expand-loop): WITH vars should always be bound on top
51171
511722001-08-05  Bruno Haible  <haible@clisp.cons.org>
51173
51174	* makemake.in (Makefile): Back up Makefile before erasing it.
51175
511762001-08-05  Bruno Haible  <haible@clisp.cons.org>
51177
51178	* spvw.d (loadmem): Take a 'const char*'.
51179	* spvw_memfile.d (loadmem): Take a 'const char*'. Create CYGDRIVE
51180	replacement using alloca. Fix oversized memmove argument.
51181
511822001-08-05  Bruno Haible  <haible@clisp.cons.org>
51183
51184	* pathname.d (PARSE-NAMESTRING): Verify consp before accessing Cdr.
51185
511862001-07-31  Arseny Slobodjuck  <ampy@crosswinds.net>
51187	    Sam Steingold  <sds@gnu.org>
51188
51189	* stream.d [WIN32_NATIVE]
51190	(rd_ch_keyboard): cast uAsciiChar in (*.uAsciiChar <= ' ') to
51191	uintB since uAsciiChar is signed in MSVC (!).
51192	(vktable): add 'WIN' key just to avoid 'unknown
51193	keyboard event' messages.
51194	Add keyboard OEM to local charset translation and then local
51195	to internal (for UNICODE). May be it will be nicer to automatically
51196	init *terminal-io* to OEM charset and decode input/output through
51197	internal encoding facility, but that should be done with care
51198	about other code.
51199	(check_window_stream): return its argument on success
51200	WIN32 console output:
51201	(console_handle, console_size, console_cursor_pos, console_needtoclose)
51202	(screenattr, attr) deleted global variables. 'encapsulated' them
51203	into window-stream. The latter changed to be channel-stream since
51204	iconv-based translations require channel-stream extra fields.
51205	(UnwrapCoord, WrapCoord, ConsolePosR, ConsoleSizeR, ConsoleAttribR)
51206	(ConsoleHandleR, ConsolePosS, ConsoleSizeS, ConsoleAttribS)
51207	(ConsoleHandleS): new macros to access new fields.
51208	(InitConsole) remove since two function calls left in it.
51209	(DoneConsole) remove since Channel stream finalization does all right.
51210	(unwrap_coord) new function. convert uintL to COORD.
51211	(move_ccp_by): new function, moves cursor position
51212	(v_emit_spaces): new helper function
51213	(v_move, v_put, v_cb, v_cs, v_ce, v_cl, v_cd, v_scroll, v_al, v_dl)
51214	(v_su, v_put): changed argument lists in view of absence of global
51215	variables.
51216	(v_put): processing Y overflow, subsequent output continues on
51217	the top of screen. It differs from DOS behavior where subsequent
51218	chars being written to bottom right of the screen (as far as I can
51219	see from code).
51220	(v_puts): new function, buffered console output.
51221	(wr_ch_array_window): new function instead of dummy which slowly
51222	works through v_put(). Handles newlines and bottom of screen like
51223	v_put does. Handles UNICODE internal format in two stages, like
51224	rd_ch_keyboard.
51225	(wr_ch_window): changed to handle UNICODE internal format
51226	(make_window): allocates a stream (channel stream) and sets
51227	strm_encoding as terminal_encoding.
51228	(close_window, window_size, window_cursor_position)
51229	(set_window_cursor_position, clear_window, clear_window_to_eot)
51230	(clear_window_to_eol, delete_window_line, insert_window_line)
51231	(highlight_on, highlight_off, window_cursor_on)
51232	(window_cursor_off): changed to take parameters from stream
51233	fields.
51234
512352001-08-16  Sam Steingold  <sds@gnu.org>
51236	    Bruno Haible  <haible@clisp.cons.org>
51237
51238	* pathname.d (PARSE-NAMESTRING): check CONSP before CAR & CDR
51239
512402001-08-16  Sam Steingold  <sds@gnu.org>
51241
51242	* install.lisp (bat-file): use registry to get the "Common
51243	Desktop" location
51244
512452001-08-05  Bruno Haible  <haible@clisp.cons.org>
51246
51247	* autoconf/acgeneral.m4 (AC_MSG_RESULTPROTO): Remove macro.
51248	(AC_LANG_EXTERN): Move to aclocal.m4.
51249	* autoconf/aclocal.m4 (AC_LANG_EXTERN): Moved here from acgeneral.m4.
51250	(CL_PROTO): Use AC_MSG_RESULT directly, instead of AC_MSG_RESULTPROTO.
51251	(CL_SILENT): No need to pushdef AC_MSG_RESULTPROTO.
51252
512532001-08-16  Sam Steingold  <sds@gnu.org>
51254
51255	* disassem.lisp (disassemble): if a form is not a lambda form,
51256	prepend lambda before coercing to function
51257
512582001-08-15  Sam Steingold  <sds@gnu.org>
51259
51260	* utils/gcc-cccp/Makefile.* (clean): new target
51261	* utils/gcc-cccp/Makefile (clean): new target
51262	adapted for CYGWIN/MINGW compilation
51263	* utils/gcc-cccp/cccp.c: made compilable under CYGWIN/MINGW:
51264	(stdlib.h, string.h, errno.h): include
51265	(max): define only if not yet defined
51266	(sys_nerr, sys_errlist): do not use on CYGWIN/MINGW, use strerror()
51267	code clean-up: add prototypes, fix warnings and...
51268	(fancy_abort): remove (unused)
51269	(pipe_closed): ifndef _WIN32
51270	(fancy_abort): turned into a macro
51271	(grow_outbuf): void
51272	(expand_to_temp_buffer): do not return a local var
51273	fix a show-stopper bug:
51274	(rescan): `obufp_before_macroname' is on the top level now
51275	(RECACHE): update `obufp_before_macroname'
51276
512772001-08-15  Sam Steingold  <sds@gnu.org>
51278
51279	MT-safety: remove a static variable
51280	* io.d (circle_p): return a boolean and take a circle_info_t* arg
51281	(pr_circle): info is not a pointer now; pass it to circle_p()
51282	(pr_cons): pass NULL to circle_p()
51283
512842001-08-05  Bruno Haible  <haible@clisp.cons.org>
51285
51286	* sequence.d (seq_check_index): Remove typdescr argument. Use index,
51287	not STACK_0. Fix fehler_index_range argument. Add documentation.
51288	(ELT): Update.
51289	(SYSTEM::%SETELT): Update.
51290
512912001-08-05  Bruno Haible  <haible@clisp.cons.org>
51292
51293	* pathname.d (legal_namechar): Treat ' ' as valid and '"' as invalid.
51294
512952001-08-14  Sam Steingold  <sds@gnu.org>
51296
51297	fix bug#58
51298	* io.d (pr_external_1): use new macro BIND_UNLESS
51299	(pr_sharp_dot): new local function
51300	(pr_instance): use it
51301	do not call pr_external_[12] around a call to prin_object()
51302	(pr_orecord): use pr_sharp_dot() when printing Rectype_Loadtimeeval
51303
513042001-08-14  Sam Steingold  <sds@gnu.org>
51305
51306	* .gdbinit: set args and define zout
51307
513082001-08-05  Bruno Haible  <haible@clisp.cons.org>
51309
51310	* hashtabl.d (SXHASH): Perform 32-bit -> 24-bit mapping by dividing
51311	through 0xFFFFFF. This does not show bad patterns mod 255.
51312
513132001-08-05  Bruno Haible  <haible@clisp.cons.org>
51314
51315	* package.d (export_symbol_from): Fix GC safety bug.
51316
513172001-08-13  Sam Steingold  <sds@gnu.org>
51318
51319	use unix file utilities and forward slashes with win32gcc
51320	* makemake.in (H_DOS): DOS-style filenames and file utilities
51321
513222001-08-04  Bruno Haible  <haible@clisp.cons.org>
51323
51324	* eval.d (check_for_illegal_keywords): Do not signal an error for
51325	((LAMBDA (&KEY X) X) :X 1 :ALLOW-OTHER-KEYS NIL :ALLOW-OTHER-KEYS NIL)
51326
513272001-08-05  Bruno Haible  <haible@clisp.cons.org>
51328
51329	Make it possible again to build clisp with the CFLAGS option "-x c++".
51330	* autoconf/acspecific.m4 (AC_C_INLINE): Add explicit return type to
51331	declaration.
51332	* lispbibl.d (export): Define.
51333	(strmflags_rd_by_bit_B, strmflags_wr_by_bit_B, strmflags_rd_by_B)
51334	(strmflags_wr_by_B, strmflags_rd_B, strmflags_wr_B): New macros,
51335	moved from stream.d.
51336	(input_stream_p, output_stream_p): Remove declarations.
51337	* spvwtabs.d (export): Undefine.
51338	* stream.d (strmflags_rd_by_bit_B, strmflags_wr_by_bit_B)
51339	(strmflags_rd_by_B, strmflags_wr_by_B, strmflags_rd_B, strmflags_wr_B):
51340	Commented out. Now in lispbibl.d.
51341	(input_stream_p, output_stream_p): Make local.
51342	(rd_by_aux_icx_buffered): Bracify so that 'goto eof' doesn't jump into
51343	uninitialized variables.
51344	(MAKE-PIPE-INPUT-STREAM): Pass a real direction_t to
51345	make_unbuffered_stream and make_buffered_stream.
51346	(MAKE-PIPE-OUTPUT-STREAM): Likewise.
51347	(MAKE-PIPE-IO-STREAM): Likewise.
51348	(SYS::MAKE-SOCKET-STREAM): Likewise.
51349	(make_socket_stream): Likewise.
51350	(sec_usec): Fix declaration so that "ansidecl" recognizes it.
51351	(make_terminal_io): Pass a real direction_t to make_file_stream.
51352	(init_streamvars): Pass a real direction_t to make_unbuffered_stream.
51353	* io.d (pr_stream): Do not use input_stream_p, output_stream_p.
51354	* unix.d (getpid): Declare only once.
51355	* socket.d (errno): Remove superfluous declaration.
51356	* misc.d (clisp_setenv): Cast malloc return value.
51357	(SYS::SETENV): Rename local variable 'error' to 'ret'. Ensure it is
51358	always initialized.
51359	* pathname.d (open_file): Bracify so that 'goto ergebnis_NIL' doesn't
51360	jump into uninitialized variables.
51361	* spvw_garcol.d (move_aligned_p1_p2): Do not use the gcc extension if
51362	compiling in C++ mode.
51363	* stdbool.h.in (_Bool): Define differently in C++ mode.
51364
513652001-08-05  Bruno Haible  <haible@clisp.cons.org>
51366
51367	* lispbibl.d (pathname_to_OSdir, OSdir_to_pathname): New declarations.
51368	* pathname.d (pathname_to_OSdir, OSdir_to_pathname): New functions.
51369	* spvw_ctype.d (init_ctype): Call setlocale for all standard categories
51370	except LC_NUMERIC.
51371	* spvw_language.d (init_language): Use locale names of the form
51372	"ll_CC", not "ll", needed for glibc-2.2. Call setlocale for LC_MESSAGES
51373	in all cases.
51374	* i18n.d: New file.
51375	* misc.d (SYS::CURRENT-LANGUAGE, SYS::LANGUAGE): Move to i18n.d.
51376	* international.lisp: New file.
51377	* macros2.lisp (*all-languages*, assert-language, ensure-language)
51378	(deflanguage, ENGLISH, definternational, deflocalized, localized)
51379	(*localized-recursion*, definternational-default): Move to
51380	international.lisp.
51381	* init.lisp: Load "international".
51382	* makemake.in (CPARTS): Add i18n.
51383	(LPARTS): Add international.
51384
513852001-08-05  Bruno Haible  <haible@clisp.cons.org>
51386
51387	* lispbibl.d (subr_argtype_3_2): New enum value.
51388	* eval.d (eval_subr): Treat it.
51389	(apply_subr): Likewise.
51390	(funcall_subr): Likewise.
51391	* spvw.d (subr_argtype): Likewise.
51392
513932001-08-03  Sam Steingold  <sds@gnu.org>
51394
51395	some minor code rearrangements
51396	* compiler.lisp (c-error-c): new macro
51397	(analyze-lambdalist): add local macros CHECK-ITEM and SKIP-L,
51398	remove local macro ERR-SUPERFLU
51399
514002001-08-02  Sam Steingold  <sds@gnu.org>
51401
51402	fix bug#55
51403	* compiler.lisp (c-SYMBOL-MACROLET): bind *VENV* before PARSE-BODY
51404	because PARSE-BODY macroexpands the first form in search of
51405	declarations, and that macroexpansion might rely on the
51406	definitions of the current SYMBOL-MACROLET
51407
514082001-08-02  Bruno Haible  <haible@clisp.cons.org>
51409
51410	* nls_iso8859_16.c: Regenerated from newest unicode.org table.
51411
514122001-07-25  Sam Steingold  <sds@gnu.org>
51413
51414	due to the change in the WRITE signature,
51415	all FAS files have to be re-compiled
51416	* constobj.d (version): bumped
51417
514182001-07-25  Sam Steingold  <sds@gnu.org>
51419
51420	Win32: understand Cygwin's /cygdrive/[letter] pathnames
51421	* pathname.d (parse_namestring): translate :DIRECTORY (:ABSOLUTE
51422	*DEVICE-PREFIX* "c" ...) to :DEVICE "C" :DIRECTORY (:ABSOLUTE ...)
51423	* cfgwin32.lisp (*device-prefix*): set to "cygdrive"
51424	* constsym.lisp (*device-prefix*): add
51425	* spvw.d (init_symbol_values): defvar *DEVICE-PREFIX*
51426	* spvw_memfile.d (loadmem): check the path for "cygdrive" prefix
51427	and modify it if necessary in place
51428
514292001-07-25  Sam Steingold  <sds@gnu.org>
51430
51431	* socket.d (create_client_socket, create_server_socket):
51432	 avoid warnings
51433
514342001-07-25  Sam Steingold  <sds@gnu.org>
51435
51436	* defs2.lisp (with-standard-io-syntax): bind *PRINT-LINES*
51437
514382001-07-24  Sam Steingold  <sds@gnu.org>
51439
51440	mingw32 compilation - kill more warnings
51441	* win32.d (ULONGLONG): define to OS_ULONGLONG
51442	 around #include <windows.h>
51443	(USE_SYS_TYPES_FD_SET): define around #include <winsock.h>
51444
514452001-07-24  Sam Steingold  <sds@gnu.org>
51446
51447	Tweak the MAKE-LOAD-FORM patch
51448	* loadform.lisp: new file; moved `make-load-form',
51449	`make-load-form-saving-slots' and `make-init-form' here
51450	* init.lisp: load "loadform"
51451	* makemake.in (LPARTS): add "loadform"
51452	* clos.lisp (make-load-form, make-load-form-saving-slots): gone
51453	* compiler.lisp (*load-forms*): new variable
51454	(compile-file): bind it
51455
514562001-07-18  Arseny Slobodjuck  <ampy@crosswinds.net>
51457	    Sam Steingold  <sds@gnu.org>
51458
51459	* pathname.d (legal_namechar): PATHNAME_WIN32:
51460	 permit characters 197 and 206 (legal in CP1251)
51461
514622001-07-24  Sam Steingold  <sds@gnu.org>
51463
51464	* init.lisp (*terminal-encoding*): fix the export statement spelling
51465
514662001-07-23  Sam Steingold  <sds@gnu.org>
51467
51468	implement ANSI CL make-load-form
51469	* clos.lisp (make-load-form, make-load-form-saving-slots): add
51470	(print-class): remove
51471	(print-object): print class readably using #.;
51472	 print standard-objects readably using make-load-form
51473	(*dynamically-modifiable-generic-function-names*):
51474	 add make-load-form
51475	* constsym.d (make_init_form): add
51476	* init.lisp (make-load-form, make-load-form-saving-slots): export
51477	(make-init-form): add
51478	* io.d (pr_instance): when SYS::*COMPILING*, use MAKE-INIT-FORM
51479
514802001-07-22  Sam Steingold  <sds@gnu.org>
51481
51482	Implement *PRINT-LINES*
51483	* io.d (pphelp_newline): incf SYS::*PRIN-LINES*
51484	(check_lines_limit, double_dots): new functions
51485	(CHECK_LINES_LIMIT): new macro
51486	(justify_end_eng, justify_end_weit, pr_cons, pr_vector)
51487	(pr_array_recursion, pr_structure_default, pr_record_ab)
51488	(pr_record_rest, pr_record_descr, pr_orecord)
51489	(pr_cclosure_codevector): use it
51490	(pr_enter): bind SYS::*PRIN-LINES*
51491	(print_vars_anz): increased to 14
51492	(write, write-to-string): add :LINES arg
51493	* constsym.d: add :LINES, *PRINT-LINES* and SYS::*PRIN-LINES*
51494	* init.lisp: export *PRINT-LINES*
51495	* inspect.lisp (inspect): bind *PRINT-LINES* to *INSPECT-PRINT-LINES*
51496	* spvw.d (init_symbol_values): define *PRINT-LINES*
51497	 and SYS::*PRIN-LINES*
51498	* subr.d, subrkw.d (write, write-to-string): add :LINES arg
51499
515002001-07-21  Sam Steingold  <sds@gnu.org>
51501
51502	massive reindentations and code re-arrangements
51503	* io.d (RTCase): new macro
51504	(token_info_t): rename from token_info
51505	(zahl_info_t): rename from zahl_info
51506	(pr_routine_t): rename from pr_routine
51507	(CHECK_PRINT_READABLY): new macro
51508	(PPHELP_STREAM_P): new macro
51509	(circle_info_t): rename from circle_info
51510	(triple_dots): new function
51511	(CHECK_LENGTH_LIMIT): new macro
51512	(UNREADABLE_START, UNREADABLE_END): new macros
51513	(pr_array_info_t): rename from pr_array_info
51514	(pr_array_elt_routine_t): rename from pr_array_elt_routine
51515	(pr_array_elt_simple): rename from pr_array_elt_t
51516
515172001-07-20  Sam Steingold  <sds@gnu.org>
51518
51519	* package.d (export_symbol_from): made congruent to
51520	`one_sym_function' to avoid a compiler warning
51521
515222001-07-20  Sam Steingold  <sds@gnu.org>
51523
51524	mingw32 compilation
51525	* dirkey.d: mingw32 does not have winldap.h
51526	* lispbibl.d: mingw32 defined offsetof()
51527	* win32.d: mingw32 does not need a separate uAsciiChar
51528	* makemake.in (LIBS): mingw32 does not have wldap32
51529	(XCFLAGS): add -D_WIN32 -D__MINGW32__
51530
515312001-07-20  Sam Steingold  <sds@gnu.org>
51532
51533	* pathname.d (SUBST_RECURSE): new macro
51534	(subst_coerce_normal_ss, subst_common_case, subst_logical_case)
51535	(subst_customary_case): use it
51536	(make-pathname): logical arguments do not override :CASE :COMMON
51537
515382001-07-19  Sam Steingold  <sds@gnu.org>
51539
51540	* list.d (ldiff): handle dotted lists correctly, bug#53
51541
515422001-07-16  Sam Steingold  <sds@gnu.org>
51543
51544	* version.h: 2.27 is released
51545
515462001-07-16  Sam Steingold  <sds@gnu.org>
51547
51548	* stream.d (previous_line_virtual): fix an off-by-one error
51549
515502001-07-16  Sam Steingold  <sds@gnu.org>
51551
51552	* defstruct.lisp (defstruct): warn when the slot accessor shadows
51553	the predicate (i.e., when the slot is named "P")
51554
515552001-07-13  Bruno Haible  <haible@clisp.cons.org>
51556
51557	* io.d (char_reader): do not search for hyphens.
51558
515592001-07-13  Sam Steingold  <sds@gnu.org>
51560
51561	* stream.d (bitbuff_is_I): fix the bin i/o for (signed-byte n)
51562	with n>32 on LITTLE_ENDIAN architecture
51563
515642001-07-12  Sam Steingold  <sds@gnu.org>
51565
51566	abstracted some code
51567	* stream.d (bitbuff_iu_I, bitbuff_is_I): new functions
51568	(read-integer): use them
51569	(rd_by_iu_I): use bitbuff_iu_I()
51570	(rd_by_is_I): use bitbuff_is_I()
51571	(bitbuff_ixu_sub, bitbuff_ixs_sub): new functions
51572	(write-integer): use them
51573	(wr_by_ixu_sub): use bitbuff_ixu_sub()
51574	(wr_by_ixs_sub): use bitbuff_ixs_sub()
51575
515762001-07-11  Sam Steingold  <sds@gnu.org>
51577
51578	YAPT (yet another pathname tweak)
51579	* pathname.d (lslashp): remove, replace with slashp
51580	(looks_logical_p): new local function
51581	(parse-namestring): with *PARSE-NAMESTRING-ANSI* non-nil, parse as
51582	logical when pathname contains ";" - this is what others do
51583	(merge-pathnames): merge to logical even when only one is logical
51584	(make-pathname): coerce defaults to logical when the path is
51585	logical already
51586
515872001-07-10  Sam Steingold  <sds@gnu.org>
51588
51589	* encoding.d, hashtabl.d, stream.d: unified some error messages
51590
515912001-07-10  Sam Steingold  <sds@gnu.org>
51592
51593	finished the 2001-06-21 patch
51594	* lispbibl.d (make_file_stream): declare direction arg as direction_t
51595	* stream.d (make_unbuffered_stream, make_buffered_stream)
51596	(make_file_stream): ditto
51597	* dirkey.d (open_reg_key): declare if_not_exists arg as
51598	if_does_not_exist_t
51599
516002001-07-10  Sam Steingold  <sds@gnu.org>
51601
51602	* condition.lisp (appease-cerrors, muffle-cerrors): do not cons
51603	up a lambda for handler
51604	(exit-on-error, appease-cerrors, muffle-cerrors, batchmode-errors):
51605	turned comments into doc strings
51606
516072001-07-10  Sam Steingold  <sds@gnu.org>
51608
51609	* eval.d (invoke_handlers): do not popSTACK twice!
51610
516112001-07-10  Sam Steingold  <sds@gnu.org>
51612
51613	replace chartcopy with memcpy
51614	compilation time of compiler.lisp went down 3.76%
51615	fix bug#51
51616	* charstrg.d (chartcopy): remove
51617	* lispbibl.d (chartcopy): define to expand to memcpy()
51618
516192001-07-09  Sam Steingold  <sds@gnu.org>
51620
51621	* stream.d (handle_isset): use listen_byte() for binary sockets
51622
516232001-07-09  Sam Steingold  <sds@gnu.org>
51624
51625	fix the 2001-05-01 patch
51626	* spvw.d (main): call set_ansi only
51627	when either -ansi or -traditional was given
51628
516292001-07-03  Sam Steingold  <sds@gnu.org>
51630
51631	tweak the 2001-06-27 patch
51632	* debug.d (read_form): ignore only whitespace
51633
516342001-06-29  Sam Steingold  <sds@gnu.org>
51635
51636	command-oriented-history-2
51637	* constsym.d (*TERMINAL-READ-STREAM*): add
51638	* spvw.d (*TERMINAL-READ-STREAM*): define
51639	* stream.d (terminal_stream_p): use it
51640	* debug.d (read_form): bind it
51641	* io.d (string_reader): unbind *TERMINAL-READ-OPEN-OBJECT*
51642	in case of an error too
51643
516442001-06-27  Sam Steingold  <sds@gnu.org>
51645
51646	command-oriented-history-1
51647	* constsym.d (*TERMINAL-READ-OPEN-OBJECT*): add
51648	* spvw.d (*TERMINAL-READ-OPEN-OBJECT*): define
51649	* lispbibl.d (terminal_stream_p): declare
51650	* stream.d (terminal_stream_p): define
51651	(rd_ch_terminal3): when *TERMINAL-READ-OPEN-OBJECT* is bound,
51652	add the new lines to the old history item
51653	(next_line_virtual, previous_line_virtual): readline helper
51654	functions
51655	(init_streamvars): bind them to M-p and M-n
51656	* io.d (read_token_1, read_delimited_list, string_reader): bind
51657	*TERMINAL-READ-OPEN-OBJECT*
51658
516592001-06-27  Sam Steingold  <sds@gnu.org>
51660
51661	Fix the win32/emacs bug when commands were ignored because of ^M
51662	* debug.d (read_form): use string_eqcomp_ci() instead of
51663	string_equal() and skip the extra chars in the line
51664
516652001-06-27  Sam Steingold  <sds@gnu.org>
51666
51667	* stream.d (strip_white): new local function
51668	(rd_ch_terminal3): use it to trim the line
51669
516702001-06-27  Sam Steingold  <sds@gnu.org>
51671
51672	non-whole byte i/o finally works
51673	* stream.d (rd_by_aux_icx_buffered): fix (actually, rewrite)
51674
516752001-06-25  Bruno Haible  <haible@clisp.cons.org>
51676
51677	Optimize away local functions that are not used.
51678	This fixes the CLOS consing introduced on 2000-06-11 when
51679	CALL-NEXT-METHOD was defined with SYSTEM::FUNCTION-MACRO-LET.
51680	* compiler.lisp (var): New slot 'fnode'.
51681	(fnode): New slots 'Tags', 'far-used-vars', 'far-assigned-vars',
51682	'far-used-blocks', 'far-used-tagbodys'.
51683	(note-far-used-var, note-far-assigned-var, note-far-used-block)
51684	(note-far-used-tagbody, propagate-far-used): New functions.
51685	(c-VAR): If variable is defined in different fnode, store var
51686	for later propagation, instead of setting (var-closurep var).
51687	(c-VARSET): Likewise.
51688	(bind-fixed-var-1, process-fixed-var-list, bind-movable-var):
51689	Let the variable point to *func*.
51690	(c-LAMBDABODY): Set fnode-venvconst, fnode-far-used-blocks,
51691	fnode-far-used-tagbodys for use by the caller.
51692	(c-RETURN-FROM): If block is defined in different fnode, store it
51693	for later propagation, instead of setting (block-used-far block).
51694	(c-TAGBODY): Initialize tagbody-used-far differently. Compute
51695	tagbody-used-far only at the end.
51696	(c-GO): If tag is defined in different fnode, store it for later
51697	propagation, instead of augmenting (tagbody-used-far tagbody).
51698	(c-FUNCTION): After c-lambdabody, call propagate-far-used.
51699	(c-%GENERIC-FUNCTION-LAMBDA): Likewise.
51700	(c-%OPTIMIZE-FUNCTION-LAMBDA): Likewise.
51701	(c-FLET): After compiling the body and before deciding about the
51702	closurevars, call propagate-far-used.
51703	(c-LABELS): Likewise.
51704	(c-FUNCTION-MACRO-LET): Likewise.
51705	(c-GENERIC-FLET): Let the variable point to *func*.
51706	(c-GENERIC-LABELS): Likewise.
51707	(traverse-anode): For GO instructions, extract tag index that was
51708	computed at the end of the first pass.
51709	(compile-lambdabody): Make sure there are no lost closure variables.
51710
517112001-06-25  Bruno Haible  <haible@clisp.cons.org>
51712
51713	* condition.lisp (handler-case): After signaling a warning for
51714	duplicated :NO-ERROR clause, do not treat it like a regular clause.
51715
517162001-06-16  Bruno Haible  <haible@clisp.cons.org>
51717
51718	Back out unneeded 2001-04-06 patch.
51719	* makemake.in (NLS_INCLUDES): Set to empty if not using unicode.
51720	* encoding.d: When not UNICODE, do not include "nls_ascii.c" and
51721	do not define nls_ascii_table and nls_tables.
51722	* pseudofun.d: When not UNICODE, do not relocate nls_ascii_table.
51723
517242001-06-16  Bruno Haible  <haible@clisp.cons.org>
51725
51726	Tweak 2001-03-27 patch.
51727	* eval.d (coerce_function): Mark unreachable code with NOTREACHED.
51728	(apply): Likewise.
51729	(funcall): Likewise.
51730
517312001-06-16  Bruno Haible  <haible@clisp.cons.org>
51732
51733	* list.d (up2_test): Do not go through funcall() if the test function
51734	is #'eq, #'eql or #'equal.
51735	(up_test): Likewise.
51736	(funcall_key): New macro.
51737	(subst, nsubst, sublis, nsublis, member, ADJOIN, assoc, rassoc): Use
51738	it.
51739
517402001-06-23  Bruno Haible  <haible@clisp.cons.org>
51741
51742	* aclocal.m4 (CL_GETPAGESIZE): Add check for sys/param.h. For mingw32.
51743
517442001-06-22  Sam Steingold  <sds@gnu.org>
51745
51746	New debug command "Reset"(:re)
51747	to restore the i/o - *PACKAGE* and *READTABLE*
51748	* reploop.lisp (debug-reset-io): new function
51749	(*saved-debug-package*, *saved-debug-readtable*): new variables
51750	(commands1): bind "Reset" and ":re" to `debug-reset-io'
51751
517522001-06-21  Sam Steingold  <sds@gnu.org>
51753
51754	SOCKET-STATUS now accepts SOCKET-SERVERs too
51755	and the direction of the checks can be specified
51756	* lispbibl.d (direction_t, if_does_not_exist_t, if_exists_t):
51757	 new enum types
51758	(check_direction, check_if_does_not_exist, check_if_exists)
51759	(input_stream_p, output_stream_p): declare
51760	* pathname.d (check_direction, check_if_does_not_exist)
51761	(check_if_exists): new global functions
51762	(OPEN): use them
51763	(open_file): use symbolic values for direction,
51764	if_exists and if_does_not_exist
51765	* stream.d (input_stream_p, output_stream_p): global functions now
51766	(READ_P, RO_P, WRITE_P, DIRECTION_FLAGS): new macros on direction_t
51767	(make_unbuffered_stream, make_buffered_stream, make_file_stream):
51768	 use them
51769	(socket_handle): new local function
51770	(handle_set, handle_isset): turned into functions
51771	(SOCKET-STATUS): accept socket servers too,
51772	 allow request specialization (just :INPUT or just :OUTPUT)
51773	* io.d (pr_stream): print stream direction
51774	* constobj.d (printstring_(input|output|io)): new constants
51775	* dirkey.d (DIR_KEY_*, IDNE_*, parse_if_not_exists)
51776	(parse_direction): remove
51777	(open_reg_key): convert from direction_t to REGSAM
51778
517792001-06-19  Sam Steingold  <sds@gnu.org>
51780
51781	* stream.d: use memset(3) and memcpy(3) instead of dotimes
51782
517832001-06-19  Sam Steingold  <sds@gnu.org>
51784
51785	* compiler.lisp (c-FORMAT): avoid calling FORMAT altogether when
51786	the destination is T and the format string is constant
51787
517882001-06-19  Sam Steingold  <sds@gnu.org>
51789
51790	* makemake.in (test): strip gensyms before cmp(1)
51791
517922001-06-17  Sam Steingold  <sds@gnu.org>
51793
51794	some symbols appeared in wrong packages - fix this
51795	* compiler.lisp (function-signature): FOREIGN-FUNCTION is in FFI
51796	* constobj.d: add package prefixes to non-CL symbols
51797	* constsym.d (MACRO): all type designators are in EXT
51798	* describe.d: FOREIGN-FUNCTION, FOREIGN-VARIABLE, FOREIGN-ADDRESS
51799	are in FFI, FOREIGN-POINTER is in EXT
51800	* foreign1.lisp: export FOREIGN-* from FFI
51801	* init.lisp: export MACRO from EXT
51802
518032001-06-17  Sam Steingold  <sds@gnu.org>
51804
51805	* disassem.lisp (orig-fundef): new aux function
51806	(disassemble): moved here and made into a generic function
51807	handle SYMBOL-MACROs too
51808	* compiler.lisp (disassemble): remove
51809	* init.lisp: load "disassem" after CLOS
51810	* makemake.in (LPARTS): reorder
51811
518122001-06-15  Sam Steingold  <sds@gnu.org>
51813
51814	* makemake.in (makemake, Makefile): new development targets
51815	(RUN): new Makefile variable
51816	(halfcompiled): restored; now compilation goes like this:
51817	*.lisp --> interpreted.mem
51818	*.lisp + compiler.fas --> halfcompiled.mem
51819	*.fas --> lispinit.mem
51820	(stage): create a separate memory image for compilation testing
51821	and reset *GENSYM-COUNTER* in it from halfcompiled.mem
51822
518232001-06-15  Sam Steingold  <sds@gnu.org>
51824
51825	* threads.lisp (with-timeout, with-lock): do not use WITH-GENSYMS
51826	which is defined only in inspect.lisp
51827
518282001-06-14  Sam Steingold  <sds@gnu.org>
51829
51830	* stream.d (stream_char_p): new macro
51831	(socket-status): go through `listen_char()' for
51832	character streams only
51833	Reported by Lennart Staflin.
51834
518352001-06-12  Stefan Kain  <stefan.kain@freenet.de>
51836
51837	* io.d: translated all comments
51838
518392001-06-11  Sam Steingold  <sds@gnu.org>
51840
51841	* compiler.lisp (compile-file-pathname-helper): tweak the
51842	2001-05-30 patch making sure FILE is treated as a pathname
51843
518442001-06-09  Sam Steingold  <sds@gnu.org>
51845
51846	* constpack.d: create THREADS package when MULTITHREAD
51847	* spvw.d: put :MT into *FEATURES* when MULTITHREAD
51848	* threads.lisp: new file
51849	* init.lisp: load it when #+MT
51850	* makemake.in (LPARTS): add it
51851	* xthread.d (xthread_init) [win32]: noop
51852	(xmutex_init, xmutex_destroy, xmutex_lock, xmutex_unlock)
51853	[win32]: use GetLastError() to get the error status
51854
518552001-06-09  Sam Steingold  <sds@gnu.org>
51856
51857	some MT compilation errors fixed
51858	* lispbibl.d (OS_error) [macro]: use asciz_out_1()
51859	(SP_bound) [MULTITHREAD]: no semicolon
51860	* spvw_circ.d: varbrace does not work with #if,
51861	so expand var manually
51862
518632001-06-09  Sam Steingold  <sds@gnu.org>
51864
51865	* install.lisp: create CLISP.BAT on desktop
51866
518672001-06-08  Bruno Haible  <haible@clisp.cons.org>
51868
51869	* autoconf/libtool.m4: Upgrade to libtool-1.4.
51870
518712001-06-08  Bruno Haible  <haible@clisp.cons.org>
51872
51873	* autoconf/config.guess: Update to GNU version 2001-05-11.
51874	* autoconf/config.sub: Likewise.
51875
518762001-06-08  Sam Steingold  <sds@gnu.org>
51877
51878	Fix MIT-CLX build.
51879	* modules/clx/mit-clx/dependent.lisp (conditional-store):
51880	GET-SETF-METHOD is in EXT now
51881	Reported by Paolo Amoroso <amoroso@mclink.it>
51882	* modules/clx/mit-clx/manager.lisp (cut-buffer): use
51883	DEFINE-SETF-EXPANDER instead of DEFINE-SETF-METHOD
51884	* modules/clx/mit-clx/resource.lisp (initialize-resource-database):
51885	WM-RESOURCES is not exported from XLIB
51886	* modules/clx/mit-clx/package.lisp: add IN-PACKAGE statement
51887
518882001-06-07  Sam Steingold  <sds@gnu.org>
51889
51890	Print (c-ptr (c-function)) with arguments and correct "()"
51891	* foreign1.lisp (element, deref, slot, cast, typeof, sizeof)
51892	(bitsizeof): new local (flet) function `foreign-place-p'
51893	(ctype-type): new function
51894	(parse-c-function, prepare-c-typedecl, to-c-typedecl)
51895	(note-c-call-in): use it
51896	(flag-set-p): new function
51897	(deparse-c-type, note-c-call-in, count-inarguments): use it
51898	(flag-to-language, language-to-flag): new functions
51899	(deparse-c-type, parse-c-function): use them, respectively
51900	(deparse-c-type): new labels: `new-type' and `deparse-slot'
51901	(split-c-fun-arglist): new function
51902	(note-c-call-in): use it
51903	(to-c-typedecl): print the function name in () for c-prt
51904	and also print the arglist
51905
519062001-06-07  Sam Steingold  <sds@gnu.org>
51907
51908	* modules/clx/mit-clx/clx.lisp (boolean): built-in CLISP type
51909	since 1998-04-08, do not redefine
51910	* modules/clx/mit-clx/package.lisp (boolean): do not shadow
51911	Reported by Paolo Amoroso <amoroso@mclink.it>
51912
519132001-06-07  Sam Steingold  <sds@gnu.org>
51914
51915	* makemake.in (LPARTS): add foreign1 only when foreign is in CPARTS
51916
519172001-06-02  Sam Steingold  <sds@gnu.org>
51918
51919	* foreign1.lisp (to-c-typedecl): tweak the 2001-05-30 patch.
51920	struct t1234 { struct t1234 * NEXT; ... }
51921
519222001-06-02  Sam Steingold  <sds@gnu.org>
51923
51924	made GETENV setfable
51925	* lispbibl.d: declare clisp_setenv()
51926	* subr.d, constsym.d: add SYS::SETENV (set_env)
51927	* spvw_language.d: remove mysetenv, use clisp_setenv()
51928	* misc.d (clisp_setenv, SETENV): new functions
51929	(GETENV): barf on non-string arg instead of returning NIL
51930	* places.lisp: defsetf getenv when setenv is present
51931
519322001-06-02  Sam Steingold  <sds@gnu.org>
51933
51934	* makemake.in (LPARTS): add dirkey
51935
519362001-06-01  Sam Steingold  <sds@gnu.org>
51937
51938	* screen.lisp: use DEFPACKAGE instead of USE-PACKAGE since this
51939	file is compiled even when it is not subsequently loaded.
51940
519412001-05-30  Sam Steingold  <sds@gnu.org>
51942
51943	* compiler.lisp (compile-file-pathname-helper): return a logical
51944	pathname when file is a logical pathname
51945
519462001-05-30  Sam Steingold  <sds@gnu.org>
51947
51948	* pathname.d (merge-pathnames): fix the 2001-05-24 patch to
51949	handle unbound defaults
51950
519512001-05-30  Sam Steingold  <sds@gnu.org>
51952
51953	* compiler.lisp (*package-tasks-treat-specially*): set to NIL
51954	(#+CROSS subr-info): `in-package' is now an always-evaluated macro
51955	(c-GLOBAL-FUNCTION-CALL): remove `in-package' from the list of
51956	specially treated tasks.
51957
519582001-05-30  Sam Steingold  <sds@gnu.org>
51959
51960	* foreign1.lisp (with-defining-c-type): new macro
51961	(parse-components, c-struct-constructor): new functions
51962	(parse-c-type): use the above
51963	(to-c-typedecl): handle the recursive types (like linked lists)
51964	(def-c-enum): make `name' a synonym for `int'
51965
519662001-05-27  Sam Steingold  <sds@gnu.org>
51967
51968	* modules/regexp/regexp.lisp (mregerror): FINALIZE is in EXT
51969
519702001-05-25  Sam Steingold  <sds@gnu.org>
51971
51972	* install.lisp, install.bat: bind LISP, FAS and MEM files with CLISP
51973	* makemake.in: add install.* to the win32 binary distribution
51974
519752001-05-25  Sam Steingold  <sds@gnu.org>
51976
51977	* dirkey.lisp (dir-key-info): `dkey-info' is in LDAP, not SYS
51978	(with-dir-key-search): ditto for `dkey-search-iterator',
51979	`dkey-search-next-key', and `dkey-search-next-att'
51980
519812001-05-24  Sam Steingold  <sds@gnu.org>
51982
51983	* pathname.d (merge-pathnames): if PATHNAME is a logical
51984	namestring, while DEFAULT is a physical pathname, coerce DEFAULT
51985	to logical using whole_namestring().
51986
519872001-05-24  Sam Steingold  <sds@gnu.org>
51988
51989	hostname resolution is now optional in
51990	SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL.
51991	* stream.d (host_data_fetcher): accept an additional boolean argument.
51992	(publish_host_data): pass `resolve_p' to func
51993	(SOCKET-STREAM-PEER, SOCKET-STREAM-LOCAL): 1 optional argument
51994	* subr.d: ditto
51995	* socket.d (socket_getlocalname, socket_getpeername): accept an
51996	additional `resolve_p' argument.
51997
519982001-05-23  Sam Steingold  <sds@gnu.org>
51999
52000	* makemake.in (distrib): pack in the build directory.
52001
520022001-05-23  Sam Steingold  <sds@gnu.org>
52003
52004	* version.h: 2.26 is released
52005
520062001-05-21  Bruno Haible  <haible@clisp.cons.org>
52007
52008	* lispbibl.d (dfloat): ARM saves the doubles as two little-endian
52009	words, in big-endian order.
52010	Reported by Richard Kreckel.
52011
520122001-05-21  Bruno Haible  <haible@clisp.cons.org>
52013
52014	* ariarm.d: Use #0x instead of #& to designate hexadecimal constants.
52015
520162001-05-15  Sam Steingold  <sds@gnu.org>
52017
52018	* modules/clx/new-clx/clx.lisp: use DEFPACKAGE to define XLIB;
52019	 import SYS::CONCAT-STRINGS
52020	* modules/clx/new-clx/demos/clx-demos.lisp: load/compile
52021	 sokoban.lisp only when the package XPM is present
52022
520232001-05-14  Sam Steingold  <sds@gnu.org>
52024
52025	* constobj.d (current_language): use the package prefix I18N
52026
520272001-05-14  Sam Steingold  <sds@gnu.org>
52028
52029	* defs2.lisp (with-standard-io-syntax): finish the 2000-12-12
52030	patch - bind *PRINT-RPARS* and *PRINT-INDENT-LISTS* appropriately
52031
520322001-05-12  Sam Steingold  <sds@gnu.org>
52033
52034	* pathname.d (pslashp, lslashp, Z_AT_SLASH, Z_SHIFT): new macros
52035	(parse_as_logical): new helper function
52036	(logical_pathname, merge_pathnames): use it
52037	(merge_pathnames): new macros SPECIFIED, NAMETYPE_MATCH, and
52038	 VERSION_MATCH; changed the previous patch: re-parse pathname
52039	 as logical when the default is logical
52040	(make_pathname): do not translate :name :wild to :name "*"
52041	(has_wildcards): replace with wild_p() which handles :WILD
52042	(has_word_wildcards): ditto with word_wild_p()
52043	(has_*_wildcards): simplified accordingly
52044
520452001-05-11  Sam Steingold  <sds@gnu.org>
52046
52047	* makemake.in (cpu): set to "arm" when "$host_cpu" is "arm*"
52048	Reported by Ola Rinta-Koski <ola@cyberell.com>.
52049
520502001-05-10  Sam Steingold  <sds@gnu.org>
52051
52052	Fix a crash, reported by Christophe Rhodes <csr21@cam.ac.uk>
52053	ANSI CL compliance: (merge-pathnames lp) --> lp
52054	* pathname.d: more debugging instrumentation
52055	(string2wild, wild2string): new macros
52056	(split_name_type): use them; "*.*" ==> :name :wild :device :wild
52057	(directory_namestring_parts): :name and :type maybe :wild
52058	(merge-pathnames): as per ANSI CL, return a logical pathname when
52059	 the first argument is one.
52060	(directory_match, nametype_match, version_match):
52061	 unbound matches everything
52062	(directory_diff, nametype_diff, version_diff):
52063	 treat unbound appropriately too
52064	(translate_device, translate_nametype_aux): :WILD is the same as NIL
52065
520662001-05-09  Sam Steingold  <sds@gnu.org>
52067
52068	Implement the ANSI CL issue CONSTANTP-ENVIRONMENT:ADD-ARG
52069	* control.d (constantp): accept the optional environment arg
52070	* subr.d (constantp): ditto
52071
520722001-05-09  Sam Steingold  <sds@gnu.org>
52073
52074	* lispbibl.d (ARM): Recognize __arm__ as CPU indicator on Linux
52075
520762001-05-09  Sam Steingold  <sds@gnu.org>
52077
52078	Implement ANSI CL compiler macros
52079	* cmacros.lisp: new file
52080	* makemake.in (LPARTS): add cmacros
52081	* compiler.lisp (env, mac-exp): new aux inline functions
52082	(macroexpand-1, c-form, compile-toplevel-form &c): use them
52083	(macroexpand-form): call COMPILER-MACRO-FUNCTION
52084	(inline-callable-function-lambda-p, inline-callable-lambdabody-p):
52085	 use FUNCTION-FORM-FUNFORM
52086	(c-FUNCTION-CALL, c-APPLY): use SIMPLE-FUNCTION-FORM-P
52087	* init.lisp: load cmacros; export COMPILER-MACRO,
52088	 COMPILER-MACRO-FUNCTION DEFINE-COMPILER-MACRO
52089	* defmacro.lisp (make-macro-expansion): accept an optional
52090	 PRE-PROCESS argument
52091
520922001-05-06  Bruno Haible  <haible@clisp.cons.org>
52093
52094	* configure: Configure and build libiconv before configuring gettext.
52095	While configuring gettext, add the build directory to the CPPFLAGS and
52096	LDFLAGS, so that HAVE_ICONV gets defined to 1.
52097
520982001-05-07  Sam Steingold  <sds@gnu.org>
52099
52100	* hashtabl.d (sxhash): return a fixnum, as per ANSI CL
52101
521022001-05-06  Bruno Haible  <haible@clisp.cons.org>
52103
52104	* makemake.in: Move USE_GETTEXT treatment after USE_LIBICONV treatment,
52105	so that $LIBS contains libintl.a before libiconv.a.
52106
521072001-05-06  Sam Steingold  <sds@gnu.org>
52108
52109	* eval.d (check_for_illegal_keywords): look only at the first
52110	:allow-other-keys keyword
52111
521122001-05-05  Sam Steingold  <sds@gnu.org>
52113
52114	handle devices in hostname translation correctly
52115	* pathname.d (device_diff): push_solution_with(S(Kdevice))
52116	(translate_device): pop (S(Kdevice))
52117
521182001-05-05  Sam Steingold  <sds@gnu.org>
52119
52120	* type.lisp (subtypep): COMPILED-FUNCTION is a subtype of FUNCTION
52121
521222001-05-05  Sam Steingold  <sds@gnu.org>
52123
52124	* clos.lisp (function-keywords): return 2 values: list of keywords
52125	and allow-other-keys-flag, as per ANSI CL
52126
521272001-05-05  Sam Steingold  <sds@gnu.org>
52128
52129	Made the compiler a little less vociferous
52130	* clos.lisp (check-signature-congruence): extracted from
52131	STD-ADD-METHOD
52132	(std-add-method): use CHECK-SIGNATURE-CONGRUENCE
52133
52134	* compiler.lisp (c-DEFUN): do not check signature for generic
52135	functions since this is better done at load time
52136
521372001-05-04  Sam Steingold  <sds@gnu.org>
52138
52139	ANSI CL compliance: CHAR does not check for FILL-POINTER, ELT does.
52140	* sequence.d (seq_check_index): new function
52141	(elt, setelt): use it
52142	* charstrg.d (unpack_string): new function
52143	(unpack_string_rw, unpack_string_ro): use it
52144	(char, store_char): call unpack_string() directly
52145	instead of unpack_string_r[ow]
52146
521472001-05-04  Sam Steingold  <sds@gnu.org>
52148
52149	Add compile-time signature checking in function calls
52150	* compiler.lisp (c-source-location): 2 optional arguments
52151	(c-source-point, c-source-point-location, current-function)
52152	(get-signature, sig-to-list, inline-lambdabody)
52153	(inline-callable-lambdabody-p, lambda-list-to-signature)
52154	(match-known-unknown-functions, in-defun-p): new functions
52155	(c-warn): use C-COMMENT and CURRENT-FUNCTION
52156	(c-error): use CURRENT-FUNCTION
52157	(signature): new defstruct
52158	(function-signature, signature-to-list): moved here from
52159	 describe.lisp
52160	(test-argument-syntax): reindented
52161	(c-DIRECT-FUNCTION-CALL, pass2): translated the comments
52162	(c-GLOBAL-FUNCTION-CALL, C-APPLY): always check the signature
52163	 always call NOTE-FUNCTION-USED, not just when compiling a file;
52164	 use INLINE-CALLABLE-LAMBDABODY-P and INLINE-LAMBDABODY
52165	(note-function-used): keep the arguments too
52166	(c-DEFUN): check the signature using *KNOWN-FUNCTIONS*
52167	(inline-callable-function-p): use INLINE-CALLABLE-LAMBDABODY-P
52168	(c-FUNCTION): always call NOTE-FUNCTION-USED
52169	(c-report-problems): use MATCH-KNOWN-UNKNOWN-FUNCTIONS
52170	(compile-file): call C-REPORT-PROBLEMS before reporting
52171	 *ERROR-COUNT* and *WARNING-COUNT*
52172	(c-form): use IN-DEFUN-P
52173	* clos.lisp: import SIGNATURE structure from COMPILER and use
52174	 them instead of simple lists throughout the file
52175	* constobj.d (version): bumped (generic functions use SIGNATUREs
52176	 instead of lists to store their signatures)
52177	* describe.lisp (function-signature, signature-to-list):
52178	 moved to compiler.lisp
52179	(arglist): use SIG-TO-LIST and GET-SIGNATURE to accommodate
52180	 possible future modifications
52181	* foreign1.lisp (DEF-CALL-OUT, DEF-LIB-CALL-OUT):
52182	 pass signature to C-DEFUN
52183	(argvector-to-signature, count-inarguments): new functions
52184	(foreign-function-signature): rename to
52185	 FOREIGN-FUNCTION-IN-ARG-COUNT
52186	* init.lisp (defun): pass signature to C-DEFUN
52187
521882001-05-01  Sam Steingold  <sds@gnu.org>
52189
52190	* type.lisp (subtypep): handle types NIL and T specially
52191	[bugfix: (subtypep 'EXTENDED-CHAR 'CHARACTER) returned (NO)]
52192
521932001-05-01  Sam Steingold  <sds@gnu.org>
52194
52195	* format.lisp: pass width to ~a when a non-number is
52196	given to a numeric format instruction
52197
521982001-05-01  Sam Steingold  <sds@gnu.org>
52199
52200	* spvw.d (main): add "-traditional" command line
52201	option to override "-ansi" ("-a" deprecated)
52202
522032001-05-01  Sam Steingold  <sds@gnu.org>
52204
52205	* condition.lisp (handler-case): accept :NO-ERROR clause in any
52206	position, not just the last one
52207
522082001-04-30  Sam Steingold  <sds@gnu.org>
52209
52210	* compiler.lisp (test-argument-syntax): call C-WARN and return NIL
52211	on WRONG-KEY, instead of calling C-ERROR
52212	(*deprecated-functions-list*): add GET-SETF-METHOD-MULTIPLE-VALUE
52213
522142001-04-25  Sam Steingold  <sds@gnu.org>
52215
52216	* runprog.lisp (run-shell-command, run-program): accept :wait
52217	parameter (defaults to T)
52218	* clhs.lisp (clhs): pass :wait nil to RUN-PROGRAM
52219
522202001-04-25  Sam Steingold  <sds@gnu.org>
52221
52222	* eval.d (invoke_handlers): fix the 2001-04-18 patch for Linux
52223
522242001-04-24  Sam Steingold  <sds@gnu.org>
52225
52226	* intgcd.d (I_I_xgcd_I_I_I): do not use bit operations for logical
52227	variables sA and sB (this caused incorrect results on alpha-tru64)
52228
522292001-04-24  Sam Steingold  <sds@gnu.org>
52230
52231	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp:
52232	add package prefix to IN-PACKAGE and DELETE-PACKAGE
52233
522342001-04-23  Sam Steingold  <sds@gnu.org>
52235
52236	* makemake.in (linkkit): rm-r it before creating links
52237
522382001-04-23  Sam Steingold  <sds@gnu.org>
52239
52240	* affi1.lisp: use DEFPACKAGE to define package AFFI
52241
522422001-04-22  Sam Steingold  <sds@gnu.org>
52243
52244	Finished re-packaging in the modules directory
52245	* bindings/amigaos/asl-load.lisp, bindings/amigaos/window.lisp:
52246	* bindings/linuxlibc5/linux.lisp, bindings/linuxlibc6/linux.lisp:
52247	* clx/mit-clx/package.lisp, modules/postgresql642/postgresql:
52248	* modules/postgresql632/postgresql.lisp, modules/wildcard/wildcard.lisp:
52249	use DEFPACKAGE, not CLtL1 IN-PACKAGE
52250	* new-clx/demos/clx-demos.lisp: getenv is in EXT, not SYS now,
52251	use strings, not symbols in DEFPACKAGE
52252
522532001-04-20  Sam Steingold  <sds@gnu.org>
52254
52255	* constobj.d (version): bump the bytecode version due to repackaging
52256
522572001-04-19  Sam Steingold  <sds@gnu.org>
52258
52259	* clhs.lisp (clhs): BROWSER defaults to *BROWSER*, not :netscape
52260
522612001-04-18  Sam Steingold  <sds@gnu.org>
52262
52263	* spvw.d (main): quote load_extra_file_types for `clisp file`
52264
522652001-04-18  Sam Steingold  <sds@gnu.org>
52266
52267	Move EXECUTE from COMMON-LISP to EXT
52268	* constsym.d (EXECUTE): in EXT, not LISP
52269	* init.lisp (export): export EXECUTE from EXT
52270
522712001-04-18  Sam Steingold  <sds@gnu.org>
52272
52273	ANSI CL compliance: HANDLER-BIND uses multiple handlers
52274	for the a single error
52275	* compiler.lisp (c-HANDLER-BIND): collect all handlers, even for
52276	duplicate types
52277	* eval.d (invoke_handlers): go over the whole list of handlers,
52278	not stopping after the first match has been found.
52279
522802001-04-18  Sam Steingold  <sds@gnu.org>
52281
52282	* compiler.lisp (stream-tab): new function
52283	(disassemble-closure): use it
52284
522852001-04-16  Sam Steingold  <sds@gnu.org>
52286
52287	* io.d (CHECK_READTABLE): new macro
52288	(unread-char, write-char): use fehler_char()
52289
522902001-04-16  Sam Steingold  <sds@gnu.org>
52291
52292	* sequence.d (valid_type): CONS and NULL are sequences of type LIST
52293
522942001-04-11  Sam Steingold  <sds@gnu.org>
52295
52296	* socket.d: made compilable with SAFETY=3
52297	(SERVENT_TO_STACK): turned into a local function servent_to_stack()
52298	(ADDR_TO_STRING): return NIL, not NULL, as the failure value
52299	(HOSTENT_TO_STACK): turned into a local function hostent_to_stack()
52300
523012001-04-11  Sam Steingold  <sds@gnu.org>
52302
52303	Merged FLET with SYS::%FLET (same for LABELS & MACROLET)
52304	* init.lisp (flet, labels, macrolet): remove
52305	(%expand-form): remove flet, labels and macrolet
52306	do not load "defs3"
52307	* defs3.lisp: remove
52308	* compiler.lisp (skip-declarations): new function
52309	(c-flet, c-labels, c-macrolet): use it
52310	* constsym.d (pflet, plabels, pmacrolet): remove
52311	* control.d (skip_declarations): new function
52312
523132001-04-10  Bruno Haible  <haible@clisp.cons.org>
52314
52315	Support for MacOS X.
52316	* lispbibl.d (RS6000): Define if __ppc__ is defined.
52317	(TIME_ABSOLUTE, TIME_RELATIVE): Undefine after pulling in the system
52318	headers.
52319	* socket.d (in6_u, u6_addr16) [UNIX_DARWIN]: Define as aliases.
52320	Thanks to Daniel Buenzli and Sunil Mishra for feedback.
52321
523222001-04-09  Sam Steingold  <sds@gnu.org>
52323
52324	* spvw.d (*features*): add :LISP=CL to denote the re-packaging
52325
523262001-04-09  Sam Steingold  <sds@gnu.org>
52327
52328	* type.lisp (upgraded-complex-part-type): ANSI CL compliance -
52329	trivial function, always returns T
52330	* init.lisp (upgraded-complex-part-type): exported
52331
523322001-04-09  Sam Steingold  <sds@gnu.org>
52333
52334	* init.lisp (sys::*home-package*): set to NIL at the end
52335
523362001-04-06  Sam Steingold  <sds@gnu.org>
52337
52338	The grand repackaging: USER+CL-USER; LISP+CL
52339	* amigasock.lisp, beossock.lisp: no export (done in init.lisp)
52340	* cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp,
52341	cfgunix.lisp, cfgwin32.lisp, clhs.lisp: (in-package "EXT")
52342	* clos.lisp: use I18N temporarily (for ENGLISH)
52343	* compiler.lisp (c-form-table): treat sys::%flet and friends just
52344	like cl:flet and friends
52345	* condition.lisp: moved CLISP extensions, like `muffle-cerrors',
52346	to the EXT package
52347	* constobj.d (use_default): set to COMMON-LISP
52348	* constpack.d: add EXT, I18N, GRAY and CUSTOM,
52349	and, conditionally, LDAP, SOCKET and GSTREAM
52350	* constsym.d: moved CLISP extensions to EXT or a more specific
52351	package, if appropriate
52352	* control.d, fsubr.d:
52353	rename flet->%flet; labels->%labels; macrolet->%macrolet
52354	* defs1.lisp (doseq, dohash): export from EXT
52355	(fbound-string): moved to init.lisp
52356	* defs2.lisp (use-default): COMMON-LISP now
52357	* defs3.lisp: remove everything except for flet and friends
52358	* dirkey.d, lisparit.d: fix comments
52359	* dirkey.lisp: export everything from LDAP and re-export from EXT
52360	* dutch.lisp, french.lisp, german.lisp, spanish.lisp: moved to I18N
52361	* edit.lisp, runprog.lisp, savemem.lisp: export from EXT, not LISP
52362	* eval.d (FUNTAB): remove `in_package',
52363	add `pfind_package' and `reexport'
52364	* foreign1.lisp: use COMMON-LISP and EXT in FFI
52365	* gray.lisp: extracted from gstream.lisp
52366	* gstream.lisp: moved to GSTREAM package
52367	* init.lisp: separated LISP exported symbols into COMMON-LISP and
52368	EXT (and friends)
52369	(in-package): define here
52370	(flet, labels, macrolet): add temporary definitions
52371	* inspect.lisp: export use variables from CUSTOM
52372	* keyboard.lisp (with-keyboard, *keyboard-input*): export from EXT
52373	* loop.lisp: in COMMON-LISP
52374	* macros1.lisp (mapcap, maplap): export from EXT
52375	* macros2.lisp (without-floating-point-underflow, space)
52376	(with-output-to-printer): export from EXT
52377	(deflanguage, definternational, deflocalized, localized):
52378	 export from I18N
52379	* macros3.lisp (ethe, letf, letf*, with-collect): export from EXT
52380	* makemake.in (LPARTS): add gray
52381	* misc.d (set_ansi): do not bother with *features*
52382	* package.d (in_package): remove
52383	(reexport): new function
52384	(init_packages): COMMON-LISP (= LISP, CL); COMMON-LISP-USER (=
52385	USER, CL-USER)
52386	* places.lisp (*ansi*): update the doc string
52387	(dir-key-value): moved here from dirkey.lisp
52388	* posix.lisp: re-export from EXT exported symbols
52389	* reploop.lisp (*prompt*): export from CUSTOM
52390	(*command-index*, prompt-new-package, package-short-name): export
52391	from EXT
52392	* rexx1.lisp: defpackage REXX and export everything from it
52393	* screen.lisp: use COMMON-LISP and EXT in SCREEN
52394	* spvw.d (init_symbol_tab_2): add `enum_user_index' to the enum,
52395	export everything in SOCKET and CUSTOM
52396	(*features*): replace :cltl2 with :ansi-cl;
52397	add :generic-streams when GENERIC_STREAMS is defined
52398	and :sockets when SOCKET_STREAMS is defined
52399	(main): -p: is the package does not exist, do not create it;
52400	-a: do not call `in-package'
52401	* subr.d (reexport): add
52402	(in_package): remove
52403	* subrkw.d (in_package): remove
52404	* trace.lisp (*trace-function*, *trace-args*, *trace-form*)
52405	(*trace-values*): export from EXT, not LISP
52406	* type.lisp (type-expand-1, type-expand): export from EXT, not LISP
52407	* xcharin.lisp: export from EXT, not LISP
52408
524092001-04-06  Sam Steingold  <sds@gnu.org>
52410
52411	Symbols in FAS files remember their home packages and do not
52412	depend as much on the special treatment of the package tasks,
52413	which is now optional.
52414	This constitutes a switch from the "current-package" model to the
52415	"home-package" model as described in COMPILE-FILE-SYMBOL-HANDLING
52416	<http://www.lisp.org/HyperSpec/Issues/iss063.html>
52417	* constsym.d (*print-symbols-long*): new variable
52418	* spvw.d (init_symbol_values): define it
52419	* io.d (pr_symbol): respect it
52420	* compiler.lisp (*package-tasks-treat-specially*): new variable
52421	(c-GLOBAL-FUNCTION-CALL, compile-toplevel-form): use it
52422	(compile-toplevel-form): bind *print-symbols-long* to t
52423	 when writing to *fasoutput-stream*
52424
524252001-03-23  Sam Steingold  <sds@gnu.org>
52426
52427	Remove the obsolete `COMMON' type (not in ANSI)
52428	See issue COMMON-TYPE:REMOVE
52429	<http://www.lisp.org/HyperSpec/Issues/iss057.html>
52430	* constsym.d (commonp): remove
52431	* eval.d (FUNTAB): remove `commonp'
52432	* predtype.d (commonp): remove
52433	* subr.d (commonp): remove
52434	* compiler.lisp (subrinfo, c-DIRECT-FUNCTION-CALL): remove `commonp'
52435	(*declaration-types*): remove `common'
52436	* init.lisp (commonp, common): remove
52437	* type.lisp (common): remove
52438	(canonicalize-type): remove `common'
52439
524402001-04-06  Sam Steingold  <sds@gnu.org>
52441
52442	* version.h: 2.25.1 is released
52443
524442001-04-06  Sam Steingold  <sds@gnu.org>
52445
52446	fix the --without-unicode build
52447	* makemake.in (NLS_INCLUDES): always has `nls_ascii'
52448	* encoding.d: include "nls_ascii.c" and define `nls_tables'
52449	even without unicode
52450	* pseudofun.d: define `nls_ascii_table' even without unicode
52451
524522001-04-05  Sam Steingold  <sds@gnu.org>
52453
52454	* clos.lisp (initialize-instance): [ANSI] add &key and
52455	&allow-other-keys to the lambda-list
52456
524572001-03-28  Sam Steingold  <sds@gnu.org>
52458
52459	* condition.lisp (simple-type-error): [ANSI]
52460	inherit from `simple-condition', not `simple-error'
52461
524622001-03-28  Bruno Haible  <haible@clisp.cons.org>
52463
52464	* pathname.d (translate_pathname): Fix invalid use of ## in GET_ITEM_S.
52465
524662001-03-27  Sam Steingold  <sds@gnu.org>
52467
52468	fix a bug: macros were reported as special forms by funcall &Co
52469	* eval.d (fehler_specialform): report special operators as such,
52470	not as special forms
52471	(coerce_function, funcall, apply): not all orecords are
52472	special operators
52473	* control.d (FMAKUNBOUND): error message spelling
52474	* trace.lisp (trace1): ditto
52475	* init.lisp (defun): ditto
52476	* defs1.lisp (fbound-string): ditto
52477
524782001-03-27  Sam Steingold  <sds@gnu.org>
52479
52480	* package.d (symtab_lookup, shadowing_lookup):
52481	check sym_ for being non-NULL
52482	(inherited_lookup, inherited_find): new local functions
52483	(accessiblep, find_symbol, import, unexport, export): use them
52484
524852001-03-27  Bruno Haible  <haible@clisp.cons.org>
52486
52487	* package.d (SYSTEM::PACKAGE-ITERATE): When looking for inherited
52488	symbols, ignore symbols that are simultaneously exported from the
52489	used package and present in the main package.
52490	Reported by Sam Steingold.
52491
524922001-03-22  Sam Steingold  <sds@gnu.org>
52493
52494	fix a bug: a single value was sometimes returned by `read-line'
52495	* io.d (eof_handling): mv_count argument add
52496	(read_w, READ-CHAR, PEEK-CHAR, READ-CHAR-NO-HANG): respect that
52497	(READ-LINE): always return 2 values
52498
524992001-03-22  Bruno Haible  <haible@clisp.cons.org>
52500
52501	* lispbibl.d (sstring_normal_p): Fix typo.
52502
525032001-03-21  Bruno Haible  <haible@clisp.cons.org>
52504
52505	Make it possible to compile gstream.lisp with interpreted.mem.
52506	* compiler.lisp: Compile #'venv-search.
52507
525082001-03-21  Bruno Haible  <haible@clisp.cons.org>
52509
52510	* misc.d: Include <stdio.h>.
52511
525122001-03-21  Bruno Haible  <haible@clisp.cons.org>
52513
52514	Make --without-unicode work again.
52515	* error.d (write_errorasciz_substring): Fix typo.
52516	* init.lisp: Load "spanish" only if UNICODE.
52517	* makemake.in (LPARTS): Add "spanish" only if UNICODE is enabled.
52518	* type.lisp (charset-subtypep): Avoid warning.
52519	* stream.d (test_external_format_arg) [!UNICODE]: Accept and ignore
52520	any symbols in the CHARSET package.
52521
525222001-03-20  Bruno Haible  <haible@clisp.cons.org>
52523
52524	* configure: Add trailing slash to www.lisp.org URL.
52525	* cfgacorn.lisp (*clhs-root-default*): Likewise.
52526	* cfgamiga.lisp (*clhs-root-default*): Likewise.
52527	* cfgdos.lisp (*clhs-root-default*): Likewise.
52528	* cfgwin32.lisp (*clhs-root-default*): Likewise.
52529	* makemake.in (HSDEFAULT): Likewise.
52530	(hyperspec): Check existence of directory if it's an absolute
52531	directory. Remove trailing slash afterward.
52532	* clhs.lisp (clhs): Accept a clhs-root with or without trailing slash.
52533
525342001-03-20  Bruno Haible  <haible@clisp.cons.org>
52535
52536	* compiler.lisp (compile-file-pathname-helper): Rewritten. Obey
52537	output-file's directory even if it is a relative directory.
52538
525392001-03-19  Bruno Haible  <haible@clisp.cons.org>
52540
52541	* pathname.d (find_executable): Use strcpy instead of sprintf.
52542
525432001-03-18  Bruno Haible  <haible@clisp.cons.org>
52544
52545	* spvw_memfile.d (DUMPHOST_LEN): New macro.
52546	(memdump_header): Make _dumphost size OS independent.
52547	(savemem): Simplify filling of hostname and _dumphost. Use UTF-8
52548	encoding.
52549	(loadmem): Move extraction of _dumptime and _dumphost to the end.
52550	Use UTF-8 encoding.
52551
52552	* socket.d (MACHINE-INSTANCE): Return hostname as returned by
52553	gethostbyname, i.e. including the domainname.
52554
525552001-03-18  Bruno Haible  <haible@clisp.cons.org>
52556
52557	* clhs.lisp: Export CLHS-ROOT.
52558	* cfgunix.lisp: Export CLHS-ROOT and *CLHS-ROOT-DEFAULT*.
52559	* cfgacorn.lisp: Likewise.
52560	* cfgamiga.lisp: Likewise.
52561	* cfgdos.lisp: Likewise.
52562	* cfgsunux.lisp: Likewise.
52563	* cfgwin32.lisp: Likewise.
52564
525652001-03-18  Bruno Haible  <haible@clisp.cons.org>
52566
52567	* clisp-link.in: Pass -B argument to all lisp.run invocations.
52568
525692001-03-18  Bruno Haible  <haible@clisp.cons.org>
52570
52571	* .clisp: New file.
52572	* makemake.in: Link .clisp and .gdbinit into the build dir.
52573
525742001-03-18  Bruno Haible  <haible@clisp.cons.org>
52575
52576	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Cache $host_alias. Needed
52577	by AC_CANONICAL_BUILD. Call config.guess and config.sub via
52578	$CONFIG_SHELL if set.
52579
525802001-03-18  Bruno Haible  <haible@clisp.cons.org>
52581
52582	* condition.lisp (interrupt-condition, simple-interrupt-condition):
52583	New condition classes.
52584	(%defclcs): Add interrupt-condition -> simple-interrupt-condition
52585	mapping.
52586	(exitunconditionally): New function.
52587	(exitonerror): Use it.
52588	(exit-on-error): Do not bind *BREAK-DRIVER*, as that impacts saved
52589	memory images. Instead, establish a handler for INTERRUPT-CONDITION.
52590	Generalize the normal handler from ERROR to SERIOUS-CONDITION.
52591	(batchmode-break-driver): Remove function.
52592	* lispbibl.d (conditiontype): Add interrupt_condition.
52593	* error.d (tast_break): When (and (null *error-handler*) *use-clcs*),
52594	signal a condition of type INTERRUPT-CONDITION.
52595	* spvw_sigint.d (react_on_sigint, interrupt_handler): Signal an
52596	INTERRUPT-CONDITION, more specific than a SERIOUS-CONDITION.
52597	* stream.d (fehler_interrupt): Likewise.
52598
52599	* savemem.lisp (saveinitmem): Also reset SYSTEM::*ACTIVE-RESTARTS* and
52600	SYSTEM::*CONDITION-RESTARTS*. Reset the dynamic variables in the new
52601	image, not in the old.
52602
526032001-03-19  Bruno Haible  <haible@clisp.cons.org>
52604
52605	* pathname.d (PARSE-NAMESTRING): Coerce string to normal-simple-string
52606	before calling parse_logical_host_prefix.
52607
52608	* lispbibl.d (sstring_normal_p): New macro.
52609	* pathname.d (parse_logical_word, parse_logical_host_prefix)
52610	(legal_logical_word, legal_name, legal_type, wildcard_match)
52611	(wildcard_diff): assert that the simple-string is normal.
52612
526132001-03-19  Bruno Haible  <haible@clisp.cons.org>
52614
52615	* autoconf/libtool.m4: Upgrade to libtool-1.3.5.
52616	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Always define
52617	ac_config_guess and ac_config_sub. Then ignore requests for
52618	AC_CONFIG_AUX_DIR_DEFAULT or AC_CANONICAL_HOST.
52619
526202001-03-18  Sam Steingold  <sds@gnu.org>
52621
52622	* init.lisp: do not export `interpreter' & `compiler' from LISP
52623	for `*features*', since they are keywords now.
52624
526252001-03-17  Sam Steingold  <sds@gnu.org>
52626
52627	load-inside-load bug fix
52628	* pathname.d (parse_logical_word, parse_logical_host_prefix)
52629	(legal_logical_word, legal_name, legal_type, wildcard_match)
52630	(wildcard_diff): make sure that the `simple-string' is normal.
52631
526322001-03-16  Sam Steingold  <sds@gnu.org>
52633
52634	`compile-file-pathname' bug fix
52635	* compiler.lisp (compile-file-pathname-helper): new function
52636	(compile-file-pathname, compile-file): use it
52637
526382001-03-15  Bruno Haible  <haible@clisp.cons.org>
52639
52640	* Makefile.devel (all): Depend on src/VERSION instead of src/version.h.
52641	(ffcall-i386): New target.
52642	* spvw_memfile.d (savemem): Zero-fill the rest of _dumphost.
52643	* spvw.d (main): Do complain about missing -B in all cases.
52644	(usage): Internationalize.
52645
526462001-03-14  Sam Steingold  <sds@gnu.org>
52647
52648	New versioning system adopted.
52649	* spvw.d (main): --version works without -B and -M
52650	  we are now GNU CLISP!
52651	  do not complain about missing -B when given -x
52652	* constobj.d (lisp_implementation_version_month_string): remove
52653	(lisp_implementation_version_date_string): set to VERSION_DATE
52654	(lisp_implementation_version_number_string): set to VERSION_NUMBER
52655	(lisp_implementation_version_built_string): set to __DATE__
52656	(memory_image_timestamp, memory_image_host): new objects
52657	* makemake.in: VERSION depends on version.h now
52658	* Makefile.devel: ditto; remove `update-version', unused for 2.5 years
52659	* misc.d (lisp-implementation-version): return "2.25 (2001-03-15)"
52660	  and then either the build date of the build host
52661	* spvw_memfile.d (memdump_header): add `_dumptime' and `_dumphost'
52662	(savemem, loadmem_from_handle): use them for
52663	  `memory_image_timestamp' and `memory_image_host'
52664
526652001-03-13  Sam Steingold  <sds@gnu.org>
52666
52667	implement X3J13 vote <72> unconditionally
52668	* compiler.lisp (c-form): do not check (package-use-list *package*)
52669	* eval.d (other_self_evaluating_p): remove
52670	(eval1): do not call it
52671
526722001-03-09  Sam Steingold  <sds@gnu.org>
52673
52674	A Logical Pathnames bug fixed.
52675	* pathname.d (host_diff): when HAS_HOST, push `:host' onto solutions
52676	(device_diff): when HAS_DEVICE, push `:device' onto solutions
52677	(translate_host): respect and expect `:host' in `subst'
52678	(translate_device): respect and expect `:device' in `subst'
52679	also, add a pathname translation debugging infrastructure
52680	also, translated some German comments
52681
526822001-03-09  Sam Steingold  <sds@gnu.org>
52683
52684	* posix.lisp (sysinfo): Export structure accessors.
52685
526862001-03-07  Bruno Haible  <haible@clisp.cons.org>
52687
52688	* stream.d (lisp_completion): Remove end_callback() call from last
52689	  patch.
52690
526912001-03-06  Sam Steingold  <sds@gnu.org>
52692
52693	* stream.d (lisp_completion): bug#18: check the return value
52694	of `sys::completion'.
52695
526962001-03-06  Bruno Haible  <haible@clisp.cons.org>
52697
52698	* unix.d (EDQUOT): Undefine if it is negative.
52699
527002001-03-02  Sam Steingold  <sds@gnu.org>
52701
52702	* dirkey.d: include winldap.h on WIN32_NATIVE and define LDAP there
52703	(LDAP_PORT): conditionally define
52704	(dir_key_open): early LDAP support
52705	do not barf on ACCESS_DENIED in search:
52706	(IDNE_IGNORE): new constant for `init_iteration_node'
52707	(open_reg_key): handle it
52708	(init_iteration_node): use it; return 2 values
52709	(state_next_key): pop stack on NULL handle
52710	(dkey_search_next_key): return 2 values
52711	Bruno's memory fixes
52712	(MAKE_OBJECT_LIST, dir_key_value, dkey_info): alloca may be a macro
52713	* constsym.d (:LDAP): define on WIN32_NATIVE
52714	* makemake.in (LIBS): link with wldap32 on WIN32_NATIVE
52715	* dirkey.lisp (dir-key-dump-tree): reflect the new iteration interface
52716
527172001-03-02  Bruno Haible  <haible@clisp.cons.org>
52718
52719	* stream.d (lisp_completion_ignore): New function.
52720	(lisp_completion): Use CATCH and HANDLER-BIND to catch conversion
52721	  errors. Skip symbols that are not convertible to *terminal-encoding*.
52722
527232001-02-28  Bruno Haible  <haible@clisp.cons.org>
52724	    Sam Steingold  <sds@gnu.org>
52725
52726	* defmacro.lisp (analyze-rest): Allow destructuring for the
52727	  &REST/&BODY variable.
52728
527292001-02-21  Bruno Haible  <haible@clisp.cons.org>
52730
52731	* places.lisp (PROGN, LOCALLY, IF): New defsetf expanders.
52732
527332001-02-17  Arseny Slobodjuck  <ampy@crosswinds.net>
52734	    Bruno Haible  <haible@clisp.cons.org>
52735
52736	* lispbibl.d (SCREEN): Also define on WIN32_NATIVE.
52737	* stream.d [WIN32_NATIVE]: Implement window streams for SCREEN package.
52738	(console_handle, console_size, console_cursor_pos)
52739	(console_needtoclose, screenattr, attr_table, attr): New variables.
52740	(InitConsole, DoneConsole, v_up, v_cb, v_cs, v_ce, v_cl, v_cd)
52741	(v_scroll, v_al, v_dl, v_su, v_move, v_put, wr_ch_window)
52742	(MAKE-WINDOW, close_window, WINDOW-*): New functions.
52743
527442001-02-08  Bruno Haible  <haible@clisp.cons.org>
52745
52746	* cfgunix.lisp: Mark the file as being UTF-8 encoded, so it can be
52747	  loaded and compiled in any locale.
52748	* cfgacorn.lisp: Likewise.
52749	* cfgamiga.lisp: Likewise.
52750	* cfgdos.lisp: Likewise.
52751	* cfgsunux.lisp: Likewise.
52752	* cfgwin32.lisp: Likewise.
52753	Reported by Ulrich Drepper <drepper@redhat.com>.
52754
527552001-02-07  Sam Steingold  <sds@gnu.org>
52756
52757	* inspect.lisp: fix bug#130567: unbound slots.
52758	(*inspect-unbound-value*): new internal variable
52759	(inspect-cllib): bind it
52760	(inspect-backend): use it for unbound symbols and slots
52761	(get-insp): call `insp-check' only when `insp' is non-NIL
52762
527632001-02-06  Bruno Haible  <haible@clisp.cons.org>
52764
52765	* lispbibl.d (ICONV_CONST) [!UNIX]: New macro.
52766
527672001-02-04  Bruno Haible  <haible@clisp.cons.org>
52768
52769	* stream.d (iconv_init): Remove macro, not needed any more since
52770	  libiconv-1.5.
52771	(iconv): Define as macro, to cast second argument.
52772	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
52773	(iconv_range, ChannelStream_init): Do not call iconv_init.
52774
527752001-02-04  Sam Steingold  <sds@gnu.org>
52776	    Bruno Haible  <haible@clisp.cons.org>
52777
52778	* pathname.d (whole_namestring): Do not set subr_self.
52779	(file_namestring): New function.
52780	(FILE-NAMESTRING): Simplification: Call file_namestring.
52781	(ENOUGH-NAMESTRING): Set subr_self before calling whole_namestring.
52782	(assure_dir_exists): Simplification: Call directory_namestring and
52783	  whole_namestring.
52784	(change_default): Simplification: Call directory_namestring.
52785	(NAMESTRING): Set subr_self before calling whole_namestring.
52786	(directory_exists): Simplification: Call directory_namestring.
52787	(directory_search): Simplification: Call file_namestring.
52788
527892001-02-04  Bruno Haible  <haible@clisp.cons.org>
52790
52791	* autoconf/aclocal.m4 (CL_STDBOOL_H): New macro.
52792	* configure.in: Invoke it.
52793	* unixconf.h.in (HAVE_STDBOOL_H): New macro.
52794	* makemake.in (EVERY_INCLUDES_H): Add stdbool.h, unless the system
52795	  has it.
52796	(stdbool.h): New rule.
52797	(clean4): Remove stdbool.h.
52798	* lispbibl.d (boolean, FALSE, TRUE): Remove definitions. Include
52799	  stdbool.h instead.
52800	* All *.d: Use bool/false/true instead of boolean/FALSE/TRUE.
52801	* genclisph.d (main): Include or copy stdbool.h instead of defining
52802	  boolean/FALSE/TRUE.
52803
528042001-02-04  Bruno Haible  <haible@clisp.cons.org>
52805
52806	* pathname.d (translate_directory): Do not choke if 'subst' doesn't
52807	  specify any pieces for the directory.
52808
528092001-02-04  Bruno Haible  <haible@clisp.cons.org>
52810
52811	* pathname.d (PARSE-NAMESTRING): Make treatment of :HOST argument CLHS
52812	  compliant.
52813
528142001-02-04  Bruno Haible  <haible@clisp.cons.org>
52815
52816	* spvw.d (init_symbol_values): Initialize
52817	  SYS::*LOGICAL-PATHNAME-TRANSLATIONS* to an EQUALP hash table.
52818
528192001-02-04  Bruno Haible  <haible@clisp.cons.org>
52820
52821	* pathname.d: Back out Sam's 2001-01-03 and 2001-01-04 patches.
52822	(host_namestring_parts): Use "\\\\" instead of twice "\\".
52823	(directory_namestring): Include the host namestring parts.
52824	(MERGE-PATHNAMES): If pathname's host is NIL but pathname's device
52825	  is non-NIL, on Win32, do not take the defaults' host+device.
52826	(MAKE-PATHNAME): If pathname's host and device are both non-NIL on
52827	  Win32, signal an error.
52828	(use_default_dir) [OS2, WIN32]: If the pathname already has a host:
52829	  1. Do not insert the default drive. 2. Resolve :RELATIVE to
52830	  :ABSOLUTE.
52831	(assure_dir_exists): Include host_namestring_parts.
52832	(directory_exists): Likewise.
52833	(CD): Signal error if pathname includes a host.
52834
528352001-02-03  Bruno Haible  <haible@clisp.cons.org>
52836
52837	* configure: Also copy gettext/autoconf.
52838	* makemake.in (libintl.h): Link to gettext/intl/libintl.h.
52839	* lispbibl.d (GETTEXTL): New macro.
52840	(clgettextl): New declaration.
52841	* amigaaux.d: Use GETTEXTL instead of GETTEXT for strings to be output
52842	  via asciz_out().
52843	* spvw.d: Likewise.
52844	* spvw_alloca.d: Likewise.
52845	* spvw_allocate.d: Likewise.
52846	* spvw_fault.d: Likewise.
52847	* spvw_garcol.d: Likewise.
52848	* spvw_memfile.d: Likewise.
52849	* spvw_mmap.d: Likewise.
52850	* spvw_multimap.d: Likewise.
52851	* spvw_sigsegv.d: Likewise.
52852	* spvw_language.d (init_language): Call bindtextdomain also for domain
52853	  "clisplow". Remove textdomain() call. Call bind_textdomain_codeset.
52854	(to_latin_table, from_latin_table, cvgettext): Remove.
52855	(clgettext): Call dgettext with domain "clisp".
52856	(clgettextl): New function.
52857	(localized_string): Check argument must be in ASCII. clgettext()
52858	  returns value in UTF-8.
52859	(localized_object): Likewise.
52860	* error.d (write_errorasciz_substring): New function.
52861	(write_errorasciz): Use it.
52862	(write_errorstring): Move into string segment after segment, not
52863	  byte after byte.
52864	* errunix.d (get_errormsg): Use GETTEXTL instead of GETTEXT, so the
52865	  strings end up in both clisp.mo and clisplow.mo.
52866	(OS_error_internal): Define 'translate' as clgettext, for UTF-8
52867	  converted translation.
52868	(errno_out): Define 'translate' as clgettextl, for locale dependent
52869	  encoded translation.
52870
528712001-02-01  Bruno Haible  <haible@clisp.cons.org>
52872
52873	* io.d (pr_sstring_ab): Make GC safe.
52874
528752001-02-01  Bruno Haible  <haible@clisp.cons.org>
52876
52877	* stream.d (read_line): When EOF was reached, always set
52878	  strm_rd_ch_last to eof_value.
52879
528802001-01-29  Sam Steingold  <sds@gnu.org>
52881
52882	* pathname.d (PARSE-NAMESTRING): use `slashp' when parsing UNC
52883	pathnames, so that //host/dir/file is the same as \\host\fir\file.
52884
528852001-01-27  Bruno Haible  <haible@clisp.cons.org>
52886
52887	* lispbibl.d: Add IA-64 support.
52888	(object) [WIDE_HARD]: Use the 1-element struct or directly 'void *'.
52889	* spvw_mmap.d (mmap_init_pagesize): On IA-64, always use 64 KB.
52890	* spvw_page.d (oint_addr_relevant_len): Set to 32, to limit
52891	  std_page_size to 64 KB.
52892
52893	* predtype.d: Include arilev0.c, needed for R_sign when TYPECODES is
52894	  defined.
52895
528962001-01-28  Bruno Haible  <haible@clisp.cons.org>
52897
52898	* foreign.d (convert_function_to_foreign, free_foreign_callin)
52899	(convert_function_from_foreign, callback): Add cast, to avoid
52900	  warning on 64-bit machines.
52901
529022001-01-17  Bruno Haible  <haible@clisp.cons.org>
52903
52904	* spvw.d (main): Restore functionality broken by last patch.
52905
529062001-01-17  Sam Steingold  <sds@gnu.org>
52907
52908	* posix.lisp (sysinfo, rlimit, limits, usage): unix-specific,
52909	do not define on other systems
52910
52911	* spvw.d (main): handle `argv_expr' ("-x") similar to
52912	`argv_execute_file', as if wrapped in `exit-on-error'
52913
529142001-01-15  Bruno Haible  <haible@clisp.cons.org>
52915
52916	* init.lisp (load): Additional keyword argument :extra-file-types.
52917	* spvw.d (main) [WIN32_NATIVE]: Pass :extra-file-types '(".bat") to
52918	  LOAD.
52919
529202001-01-14  Bruno Haible  <haible@clisp.cons.org>
52921
52922	* configure: In avcall and callback, do "make check" instead of
52923	  "make minicheck".
52924	* makemake.in: Likewise.
52925
529262001-01-04  Sam Steingold  <sds@gnu.org>
52927
52928	* pathname.d (pathname_check_remote): replace with
52929	(pathname_fix_remote): reset device to NIL and make the
52930	path :absolute
52931	(merge-pathnames, make-pathname): use it
52932
529332001-01-03  Sam Steingold  <sds@gnu.org>
52934
52935	* pathname.d (use_default_dir win32): do not use `default_drive'
52936	or `default_directory_of' for UNC paths
52937	(pathname_check_remote, namestring_host_dir): new local functions
52938	(assure_dir_exists, directory_exists):
52939	use `namestring_host_dir' instead of `directory_namestring' and
52940	`whole_namestring' instead of
52941	`directory_namestring_parts'+`file_namestring_parts'
52942	(change_default): barf on remote arguments
52943	* inspect.lisp (inspect-frontend): bind `keep-alive'
52944
529452001-01-03  Bruno Haible  <haible@clisp.cons.org>
52946
52947	* pathname.d (USER-HOMEDIR-PATHNAME): If HAS_HOST is defined but the
52948	host is NIL, use the homedir on the local machine.
52949
529502001-01-02  Bruno Haible  <haible@clisp.cons.org>
52951
52952	* lispbibl.d (HAS_HOST): Set to 1 for PATHNAME_WIN32.
52953	* pathname.d (legal_hostchar): Add a definition for PATHNAME_WIN32.
52954	(PARSE-NAMESTRING): For PATHNAME_WIN32, parse hosts in \\hostname
52955	  syntax.
52956	(host_namestring_parts): For PATHNAME_WIN32, use \\hostname syntax.
52957	(USER-HOMEDIR-PATHNAME): Add dummy definition for PATHNAME_WIN32.
52958
529592001-01-03  Sam Steingold  <sds@gnu.org>
52960
52961	* pathname.d (assure_dir_exists, change_default):
52962	Use `directory_namestring' instead of
52963	`directory_namestring_parts'+`string_concat'.
52964
529652000-12-28  Bruno Haible  <haible@clisp.cons.org>
52966
52967	* makemake.in: encoding.o depends on libcharset.h.
52968	(libcharset.h): New rule.
52969	* encoding.d: Include libcharset.h.
52970	(encoding_from_name): Argument is now canonicalized like
52971	  locale_charset(), not like X11.
52972	(init_dependent_encodings): Call locale_charset().
52973	* spvw_ctype.d (locale_charset): Remove variable.
52974	(init_ctype): Remove initialization of locale_charset.
52975	* constsym.d: Add JOHAB and AIX specific encoding.
52976
529772000-12-29  Bruno Haible  <haible@clisp.cons.org>
52978
52979	* utils/gen-uninames: New file.
52980	* Makefile.devel (all): Depend on src/uninames.c.
52981	(src/uninames.c): New rule.
52982	* makemake.in (UNICODE_INCLUDES): Add uninames.
52983	* charstrg.d: Include uninames.c.
52984	(unicode_name_word, unicode_name_word_lookup): New functions.
52985	(jamo_initial_short_name, jamo_medial_short_name)
52986	(jamo_final_short_name): New tables.
52987	(char_name, name_char): Add support for Unicode character names.
52988
529892000-12-21  Sam Steingold  <sds@gnu.org>
52990
52991	* dirkey.d: made the second half of the file GC safe
52992	(registry_value_to_object): Fix the bugs introduced yesterday:
52993	extra "" at the end of a REG_MULTI_SZ and a += instead of =.
52994	(scope_error): Replace with `parse_scope'.
52995
529962000-12-20  Bruno Haible  <haible@clisp.cons.org>
52997
52998	* dirkey.d (registry_value_to_object): Make GC safe. Fix possible
52999	  buffer overrun.
53000	(struct root): Add length field.
53001	(MKKEY): Store string length as well.
53002	(parse_registry_path): Use memcmp instead of strncmp.
53003	(DIR-KEY-OPEN): Make GC safe.
53004	(MAKE_OBJECT_LIST): Make GC safe.
53005
530062000-12-20  Bruno Haible  <haible@clisp.cons.org>
53007
53008	* charstrg.d (nonspacing_table_data): Update to match glibc 2.2 width
53009	  definition.
53010
530112000-12-19  Bruno Haible  <haible@clisp.cons.org>
53012
53013	* time.d (SYS::DEFAULT-TIME-ZONE) [WIN32]: Do not produce time_t values
53014	  >= 2^31.
53015
530162000-12-13  Sam Steingold  <sds@gnu.org>
53017
53018	Remote registry access:
53019	* dirkey.d (test_dir_key): Return obj.
53020	(roots): Check whether the constants are defined.
53021	(parse_registry_path): new function to extract the host name and
53022	the top-level handle-key.
53023	(dir_key_open): Use it.
53024	(open_reg_key): Use the IDNE_* constants.
53025	(dir_key_subkeys): Return the list of the local top-level keys
53026	when the argument is :win32.
53027	(itst_current): Ignore zero-length names.
53028	(scope_error): New nonreturning_function.
53029	(dkey_search_iterator): Use it.
53030	(state_next_key): Pop the iteration stack when closing the hangle.
53031	(dkey_search_next_key): Rely on this change; use `scope_error'.
53032	* dirkey.lisp: Export `dir-key-values' and `dir-key-children'
53033	(with-dir-key-search): Make sure `att-iter' is a symbol.
53034
530352000-12-12  Sam Steingold  <sds@gnu.org>
53036
53037	* spvw.d (init_symbol_values): Set *PRINT-RPARS* to NIL and
53038	*PRINT-INDENT-LISTS* to 1.
53039
530402000-12-05  Bruno Haible  <haible@clisp.cons.org>
53041
53042	* io.d (JUSTIFY_START): Add argument.
53043	(JUSTIFY_LAST): New macro.
53044	(justify_start): Add traillength argument. Bind
53045	  SYS::*PRIN-TRAILLENGTH* and SYS::*PRIN-PREV-TRAILLENGTH*.
53046	(justify_end_eng): Respect SYS::*PRIN-PREV-TRAILLENGTH*.
53047	  Unbind SYS::*PRIN-TRAILLENGTH* and SYS::*PRIN-PREV-TRAILLENGTH*.
53048	(justify_end_weit): Likewise.
53049	(justify_last): New function.
53050	(pr_enter): Bind SYS::*PRIN-TRAILLENGTH* to 0.
53051	(pr_cons): Add argument to JUSTIFY_START. Call JUSTIFY_LAST.
53052	(pr_number, pr_array_nil, pr_vector, pr_array_rekursion, pr_array)
53053	(pr_structure_default, pr_hex6_obj, pr_readlabel, pr_record_ab)
53054	(pr_record_rest, pr_record_descr, pr_orecord, pr_other_obj, pr_subr)
53055	(pr_closure, pr_cclosure_lang, pr_cclosure_codevector, pr_stream)
53056	(SYSTEM::WRITE-UNREADABLE): Likewise.
53057	(some_printable_slots): New function.
53058	* spvw.d (init_symbol_values): Define SYS::*PRIN-TRAILLENGTH* and
53059	  SYS::*PRIN-PREV-TRAILLENGTH* as special.
53060
530612000-12-04  Sam Steingold  <sds@gnu.org>
53062
53063	* misc.d (registry): do not goto outside `with_string_0'
53064	* dirkey.d (dir_key_value): ditto
53065
530662000-12-04  Bruno Haible  <haible@clisp.cons.org>
53067
53068	* lispbibl.d (dir_key_length): Set to 3.
53069
530702000-12-03  Sam Steingold  <sds@gnu.org>
53071
53072	--with-export-syscalls works on win32 under MSVC5 now
53073	* socket.d (resolve-host-ipaddr): MSVC doesn't have `gethostent'
53074	* posixmath.d (erf, erfc, gamma, lgamma): MSVC doesn't have these
53075	* posixmisc.d: ditto
53076	* constsym.d, subr.d: kill the exported calls not found under MSVC
53077
530782000-12-02  Sam Steingold  <sds@gnu.org>
53079
53080	Directory access (LDAP, Win32 registry, gnome config.)
53081	Only Win32 registry works at this time.
53082	* lispbibl.d (FOREIGN): define when DIR_KEY is defined.
53083	(Dir_Key): new record type.
53084	* constobj.d (hs_dir_key, type_dir_key, type_scope)
53085	(printstring_dir_key): add.
53086	(slash_string): define when DIR_KEY id defined.
53087	* constsym.d, subr.d, subrkw.d: define the dirkey functions.
53088	* predtype.d: recognize the new rectype.
53089	* io.d: print the new rectype.
53090	* spvw.d: add :DIR-KEY to `*features*' when DIR_KEY is defined.
53091	* places.lisp (dir-key-value): new defsetf.
53092	* init.lisp: load dirkey.lisp.
53093	* dirkey.lisp, dirkey.d: new files.
53094	* makemake.in: add --with-dir-key.
53095
530962000-11-30  Bruno Haible  <haible@clisp.cons.org>
53097
53098	* lispbibl.d (convert_time_to_universal): New declaration.
53099	* time.d (convert_time_to_universal): New function.
53100	* pathname.d (FILE-WRITE-DATE): Use it.
53101
531022000-11-29  Bruno Haible  <haible@clisp.cons.org>
53103
53104	* lispbibl.d (set_start_time): Remove declaration.
53105	* time.d (internal_time_to_I): New function.
53106	(GET-INTERNAL-REAL-TIME, GET-INTERNAL-RUN-TIME): Use
53107	internal_time_to_I.
53108	(encode_universal_time): New function.
53109	(calc_start_UT): Remove function.
53110	(get_start_time): New function.
53111	(universal_time_sec): New function.
53112	(GET-UNIVERSAL-TIME): Call universal_time_sec.
53113
531142000-11-25  Sam Steingold  <sds@gnu.org>
53115
53116	* lispbibl.d (UNIX_LISP_TIME_DIFF): new macro
53117	* time.d (real_time_sec): use it
53118	* pathname.d (file_stat_): ditto
53119
531202000-11-20  Bruno Haible  <haible@clisp.cons.org>
53121
53122	* makemake.in (lisp.exe): Make the stack 3 MB large.
53123
531242000-11-16  Bruno Haible  <haible@clisp.cons.org>
53125
53126	* array.d (elt_move_T): Use eq instead of ==.
53127	(elt_move_Char, elt_move_Bit, elt_move_2Bit, elt_move_4Bit)
53128	(elt_move_8Bit, elt_move_16Bit, elt_move_32Bit): Likewise.
53129	* sequence.d (copy_seqpart_into): Likewise.
53130
531312000-11-15  Bruno Haible  <haible@clisp.cons.org>
53132
53133	* makemake.in: If TSYS=win32msvc, introduce a Makefile variable MFLAGS.
53134	(lisp.exe): Do not use /MD flag; use MFLAGS instead.
53135
531362000-11-14  Bruno Haible  <haible@clisp.cons.org>
53137
53138	* Makefile.devel (PERL): New macro.
53139	(acorn/makefile.cc, acorn/makefile.gcc): Use it.
53140
531412000-11-14  Sam Steingold  <sds@gnu.org>
53142
53143	* win32msvc/makefile.msvc4, win32msvc/makefile.msvc5:
53144	libinconv/iconv.h and libinconv/iconv.lib are now
53145	in include and src respectively.
53146
531472000-11-13  Bruno Haible  <haible@clisp.cons.org>
53148
53149	* lispbibl.d (UNIX_MACOSX): Rename from UNIX_RHAPSODY.
53150	(UNIX_RHAPSODY, UNIX_DARWIN): New macros.
53151
531522000-11-12  Bruno Haible  <haible@clisp.cons.org>
53153
53154	* lispbibl.d: Undefine TIME_ABSOLUTE and TIME_RELATIVE first.
53155	* autoconf/config.guess, autoconf/config.sub: Upgrade to newest
53156	  version from GNU CVS.
53157
531582000-11-10  Sam Steingold  <sds@gnu.org>
53159
53160	* inspect.lisp: workaround for the Linux bug.
53161	(crlf, flush-http): new functions.
53162	(with-http-output): new macro.
53163	(print-inspection): add &rest opts.
53164	(http-command): handle `keep-alive'.
53165	(inspect-frontend :http): ditto.
53166
53167	* clhs.lisp (*browser*): the default browser.
53168	(browse-url): `browser' defaults to `*browser*' and can be NIL.
53169
531702000-11-10  Bruno Haible  <haible@clisp.cons.org>
53171
53172	* makemake.in: Increase optimization for SUNPRO compilers to O3.
53173
531742000-11-08  Bruno Haible  <haible@clisp.cons.org>
53175
53176	* pathname.d (delete_file_if_exists) [WIN32_NATIVE]: Treat
53177	ERROR_BAD_NETPATH like ERROR_PATH_NOT_FOUND.
53178	(rename_file_to_nonexisting) [WIN32_NATIVE]: Likewise.
53179	(assure_dir_exists) [WIN32_NATIVE]: Likewise.
53180	(directory_exists) [WIN32_NATIVE]: Likewise.
53181	(open_input_file) [WIN32_NATIVE]: Likewise.
53182	(READDIR_findfirst) [WIN32_NATIVE]: Likewise.
53183	(check_stat_directory) [WIN32_NATIVE]: Likewise.
53184	(FILE-WRITE-DATE) [WIN32_NATIVE]: Likewise.
53185
531862000-11-08  Bruno Haible  <haible@clisp.cons.org>
53187
53188	* aclocal.m4 (CL_SIGNAL_UNBLOCK): Enable 'volatile' for gotsig,
53189	wasblocked.
53190	(CL_SIGNAL_BLOCK_OTHERS): Enable 'volatile' for gotsig,
53191	somewereblocked.
53192	(CL_SIGACTION_UNBLOCK): Enable 'volatile' for gotsig, wasblocked.
53193
531942000-10-23  Bruno Haible  <haible@clisp.cons.org>
53195
53196	* constsym.d (CHARSET:GB18030, CHARSET:BIG5HKSCS): New symbols.
53197
531982000-10-22  Bruno Haible  <haible@clisp.cons.org>
53199
53200	* encoding.d (init_encodings): Set O(internal_encoding) to UTF-8.
53201	* makemake.in: Default file encoding for all CLISP sources is now
53202	UTF-8.
53203
532042000-10-22  Bruno Haible  <haible@clisp.cons.org>
53205
53206	* spvw_language.d (init_language_from): Accept french and spanish
53207	names in both ISO-8859-1 and UTF-8.
53208	* spvw_ctype.d (init_ctype): Likewise.
53209
532102000-10-22  Bruno Haible  <haible@clisp.cons.org>
53211
53212	* spvw.d (print_banner): Do not use non-ASCII argument of gettext.
53213	* spvw_global.d (check_gc_consistency): Do not use non-ASCII error
53214	message.
53215
532162000-10-09  Bruno Haible  <haible@clisp.cons.org>
53217
53218	CPU recognition on OpenBSD.
53219	* lispbibl.d (VAX): Define if __vax__ is defined.
53220	(MC680X0): Define if __m68k__ is defined.
53221	(MC680Y0): Define if __mc68020__ is defined.
53222	(MIPS): Define if __mips__ is defined.
53223	(M88000): Define if __m88k__ is defined.
53224	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __m68k__,
53225	__mc68020__, __MIPSEB__, __MIPSEL__, __m88k__ as CPU indicators.
53226
532272000-09-29  Bruno Haible  <haible@clisp.cons.org>
53228
53229	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Fix bug in 2000-05-23
53230	change.
53231
532322000-09-28  Bruno Haible  <haible@clisp.cons.org>
53233
53234	* makemake.in: On AIX without gcc, use gcc-cccp.
53235	(XCPP_POSTPROCESS): New variable.
53236
53237	* autoconf/aclocal.m4 (CL_SOCKLEN_T): New macro.
53238	* configure.in: Call it.
53239	* unixconf.h.in (SOCKLEN_T): New macro.
53240	* win32.d (SOCKLEN_T): Define as int.
53241	* socket.d (socket_getlocalname_aux, socket_getpeername)
53242	(create_server_socket, accept_connection): Use the SOCKLEN_T type.
53243
53244	* stream.d (iconv_mblen): Cast to avoid warning.
53245	(iconv_wcstombs): Likewise.
53246	(rd_ch_terminal3): Likewise.
53247
532482000-09-25  Bruno Haible  <haible@clisp.cons.org>
53249
53250	* lispbibl.d (I80386): Define if __i386__ is defined. On OpenBSD,
53251	i386 and __i386 are not defined, only __i386__.
53252	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __i386__
53253	as equivalent to __i386. For OpenBSD.
53254
532552000-09-21  Martin Atzmueller  <martin@atzmueller.net>
53256
53257	* reploop.lisp (debug-backtrace): cleanup of unused variable.
53258
532592000-09-12  Bruno Haible  <haible@clisp.cons.org>
53260
53261	Followup to Sam's 1999-04-07 patch.
53262	* compiler.lisp (c-form): Accept arrays as self-evaluating forms,
53263	consistently with eval.d:eva11().
53264
532652000-09-12  Bruno Haible  <haible@clisp.cons.org>
53266
53267	* lispbibl.d (listen_char): Rename from stream_listen.
53268	(listen_byte): New declaration.
53269	* debug.d (read_form): Update.
53270	* io.d (LISTEN, READ-CHAR-WILL-HANG-P, READ-CHAR-NO-HANG): Update.
53271	* stream.d (listen_char_synonym): Rename from listen_synonym.
53272	(listen_byte_synonym): New function.
53273	(listen_char_concat): Rename from listen_concat.
53274	(listen_byte_concat): New function.
53275	(listen_char_twoway): Rename from listen_twoway.
53276	(listen_byte_twoway): New function.
53277	(listen_char_str_in): Rename from listen_str_in.
53278	(listen_char_buff_in): Rename from listen_buff_in.
53279	(listen_char_generic): Rename from listen_generic.
53280	(listen_byte_ia8_unbuffered): New function.
53281	(listen_char_unbuffered): Rename from listen_unbuffered.
53282	(listen_char_buffered): Rename from listen_buffered.
53283	(listen_byte_ia8_buffered): New function.
53284	(listen_char_keyboard): Rename from listen_keyboard.
53285	(listen_char_terminal): Rename from listen_terminal.
53286	(listen_char_terminal1): Rename from listen_terminal1.
53287	(listen_char_terminal2): Rename from listen_terminal2.
53288	(listen_char_terminal3): Rename from listen_terminal3.
53289	(SYSTEM::LISTEN-BYTE): Remove function.
53290	(listen_char): Rename from stream_listen.
53291	(listen_byte): New function.
53292	(READ-BYTE-LOOKAHEAD, READ-BYTE-WILL-HANG-P, READ-BYTE-NO-HANG): New
53293	functions.
53294	* gstream.lisp: Export STREAM-READ-BYTE-LOOKAHEAD,
53295	STREAM-READ-BYTE-WILL-HANG-P, STREAM-READ-BYTE-NO-HANG.
53296	(STREAM-READ-BYTE-LOOKAHEAD, STREAM-READ-BYTE-WILL-HANG-P)
53297	(STREAM-READ-BYTE-NO-HANG): New generic functions.
53298	* modules/clx/mit-clx/depdefs.lisp: Remove feature test for
53299	sys::listen-byte. Add feature test for read-byte-lookahead.
53300	* modules/clx/mit-clx/dependent.lisp (buffer-read-default) [CLISP]:
53301	Use read-byte-lookahead instead of sys::listen-byte.
53302
533032000-09-06  Sam Steingold  <sds@gnu.org>
53304
53305	Followup to Sam's 1999-04-07 patch.
53306	* compiler.lisp (c-form): Handle simple vectors as a constant.
53307
533082000-09-02  Bruno Haible  <haible@clisp.cons.org>
53309
53310	* savemem.lisp (saveinitmem): Bind *home-package* to nil while saving
53311	  the image. Needed because the new image may be started with -a,
53312	  thus with a different value of *package*.
53313	  Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.
53314
533152000-09-02  Bruno Haible  <haible@clisp.cons.org>
53316
53317	* modules/clx/new-clx/configure.in: When checking for Xpm and XShape,
53318	  temporarily add $X_CFLAGS to the CFLAGS. Needed on FreeBSD, which
53319	  has X_CFLAGS=-I/usr/X11R6/include.
53320	  Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.
53321
533222000-09-01  Bruno Haible  <haible@clisp.cons.org>
53323
53324	Fix line numbers in generated C code.
53325	* utils/varbrace.d (out_line): New function.
53326	(ifdef_line_repeat): New variable.
53327	(line_emit, line_repeat_else, line_repeat_endif): New functions.
53328	(next_token): Call them.
53329	(convert): Initialize ifdef_line_repeat. Call line_emit to emit a
53330	#line directive.
53331
533322000-09-01  Bruno Haible  <haible@clisp.cons.org>
53333
53334	* stream.d (lisp_completion): Put end_callback() at the right place,
53335	and protect malloc() and free() with begin/end_system_call().
53336	Fixes a crash in cstombs on i386 platforms.
53337	Reported by Valeriy E. Ushakov <uwe@ptc.spbu.ru>.
53338
533392000-09-01  Bruno Haible  <haible@clisp.cons.org>
53340
53341	* eval.d (interpret_bytecode_): Do not produce "testb %edx,%edx" or
53342	"testb %eax,%eax" any more.
53343
533442000-08-19  Bruno Haible  <haible@clisp.cons.org>
53345
53346	* utils/ccpaux.c: main() returns int. Call fflush(stdout) before
53347	  testing ferror(stdout).
53348	* utils/deema.c: Likewise.
53349	* utils/txt2c.c: Call fflush(stdout) before testing ferror(stdout).
53350	* utils/comment5.d: Call fflush(outfile) before testing
53351	  ferror(outfile).
53352
533532000-08-26  Bruno Haible  <haible@clisp.cons.org>
53354
53355	* autoconf/acgeneral.m4 (AC_OUTPUT): Use braces in exec_prefix default
53356	  value, not parens.
53357
533582000-08-18  Bruno Haible  <haible@clisp.cons.org>
53359
53360	* pathname.d (parse_logical_host_prefix): Rename from logical_host.
53361	(string_logical_path_p): Remove function.
53362	(parse_namestring): Integrate it here. When recognizing a logical
53363	host, do not overwrite the :host argument.
53364
53365	ANSI CL wants (PATHNAME (OPEN filename ...)) to return filename if
53366	filename is a logical pathname.
53367	* pathname.d (open_file): Expect the original filename on the stack.
53368	(OPEN): When the filename argument is a logical pathname, pass it
53369	to open_file.
53370
533712000-08-17  Sam Steingold  <sds@gnu.org>
53372
53373	ANSI `parse-namestring' when LISP:*PARSE-NAMESTRING-ANSI* is non-NIL
53374	* pathname.d (logical_host): New function.
53375	(parse_logical_pathnamestring): Use it.
53376	(string_logical_path_p): New function.
53377	(parse_namestring): Use it.
53378	* constsym.d (parse_namestring_ansi): New variable.
53379	* spvw.d (init_symbol_values): Define it.
53380	* misc.d (set_ansi): Set it.
53381	* places.lisp (*ansi*): Add it to the doc.
53382
533832000-08-17  Bruno Haible  <haible@clisp.cons.org>
53384
53385	* pathname.d (open_file): Pass tolerantp = TRUE to assure_dir_exists
53386	also if if_not_exists = 2 and direction != 0.
53387
533882000-07-27  Bruno Haible  <haible@clisp.cons.org>
53389
53390	* foreign.d (walk_foreign_pointers): C-FUNCTION values can be NULL.
53391	(convert_to_foreign): When converting C-FUNCTION, convert NIL to
53392	NULL.
53393
533942000-07-27  Bruno Haible  <haible@clisp.cons.org>
53395
53396	* predtype.d (eql): When comparing long-floats, also compare the sign.
53397	Reported by Bernard Urban <Bernard.Urban@meteo.fr>.
53398
533992000-07-26  Bruno Haible  <haible@clisp.cons.org>
53400
53401	* makemake.in (DESTDIR): Rename from 'install_root'.
53402
534032000-07-20  Sam Steingold  <sds@gnu.org>
53404
53405	* inspect.lisp (insp-check): `warn' instead of `assert'
53406	(*inspect-browser*): default to nil
53407	(inspect-frontend :http): hardcode host 127.0.0.1
53408	print URL when `*inspect-browser*' is nil - permits
53409	CLISP and browser running on different machines
53410
534112000-07-19  Sam Steingold  <sds@gnu.org>
53412
53413	* socket.d (create_server_socket): use "0.0.0.0" instead of the
53414	current host to allow anyone to connect to our server
53415
534162000-06-23  Sam Steingold  <sds@gnu.org>
53417
53418	* type.lisp (canonicalize-type, subtypep-integer):
53419	use (ash 1 *) instead of (expt 2 *)
53420
534212000-06-22  Sam Steingold  <sds@gnu.org>
53422
53423	* stream.d (stream_element_type_eq): new function
53424	(built_in_stream_element_type): use it
53425	* constsym.d, subr.d: mention `stream_element_type_eq'
53426
534272000-06-21  Bruno Haible  <haible@clisp.cons.org>
53428
53429	* stream.d (built_in_stream_element_type): Fix the last patch.
53430
534312000-06-21  Sam Steingold  <sds@gnu.org>
53432
53433	* stream.d (socket_status): minor tweaks
53434	(built_in_stream_element_type): fix the last patch
53435
534362000-06-21  Sam Steingold  <sds@gnu.org>
53437
53438	* stream.d (built_in_stream_element_type): Special case for
53439	two-way and echo streams.
53440
534412000-06-16  Thomas Klausner  <wiz@danbala.ifoer.tuwien.ac.at>
53442	    Bruno Haible  <haible@clisp.cons.org>
53443
53444	* lispbibl.d (unix): Define on NetBSD.
53445	* modules/clx/new-clx/e2d.c: Treat __MACH__, __NetBSD__, __BeOS__ as
53446	Unix.
53447	* makemake.in (fsstnd): New variant netbsd.
53448	(install, installdirs, uninstall): For fsstnd=netbsd, install the
53449	html files in $(lispdocdir), not $(htmldir), and the extra
53450	documentation in $(lispdocdir), not $(lispdocdir)/doc.
53451
534522000-06-12  Bruno Haible  <haible@clisp.cons.org>
53453
53454	* makemake.in (LIBGCC): Set to empty on BeOS.
53455	(interpreted.mem, lispinit.mem, lispinit2.mem): On BeOS, copy the
53456	executable before running it (workaround BeOS kernel bug).
53457
53458	* unix.d (sock_read, sock_write, closesocket): Do not #define on BeOS.
53459	* unixaux.d (sock_read, sock_write): New functions.
53460	* stream.d (low_listen_unbuffered_handle): On BeOS, do not use select
53461	on file handles. Use O_NONBLOCK as a preferred alternative to
53462	O_NDELAY.
53463	(rd_ch_keyboard): On BeOS, do not use select on file handles.
53464	(low_close_socket, low_read_unbuffered_socket):
53465	(low_listen_unbuffered_socket, low_clear_input_unbuffered_socket):
53466	(low_read_array_unbuffered_socket, low_write_unbuffered_socket):
53467	(low_write_array_unbuffered_socket, low_fill_buffered_socket):
53468	(low_flush_buffered_socket): Define on BeOS, differently from the
53469	file handles analogs.
53470
534712000-06-11  Bruno Haible  <haible@clisp.cons.org>
53472
53473	* clos.lisp (analyze-method-description): Generate code expanding into
53474	  SYSTEM::FUNCTION-MACRO-LET instead of MACROLET.
53475
53476	* fsubr.d (system::function-macro-let): New special form.
53477	* control.d (system::function-macro-let): Likewise.
53478	* init.lisp (%expand-form): Handle SYSTEM::FUNCTION-MACRO-LET.
53479	(%expand-funmacdefs-1, %expand-funmacdefs-2): New functions.
53480	* compiler.lisp (c-form-table): Add SYSTEM::FUNCTION-MACRO-LET.
53481	(c-FUNCTION-MACRO-LET): New function.
53482
53483	* lispbibl.d (Rectype_Macro, Rectype_FunctionMacro): New enumeration
53484	items.
53485	(Macro, FunctionMacro): New types.
53486	(macro_length, functionmacro_length): New macros.
53487	(TheMacro, TheFunctionMacro): New macros.
53488	(macrop, functionmacrop): New macros.
53489	(allocate_macro, allocate_functionmacro): New macros.
53490	(fehler_function): New declaration.
53491	* error.d (fehler_function): New function.
53492	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Macro and
53493	  Rectype_FunctionMacro.
53494	(COERCE): When the symbol has both a function and a macro, use the
53495	  function.
53496	(enum_hs_macro, enum_hs_function_macro): New enum items.
53497	(heap_statistics_mapper): Update.
53498	* io.d (pr_orecord): Treat Rectype_Macro and Rectype_FunctionMacro.
53499	* record.d (SYS::MAKE-MACRO, SYS::MACROP, SYS::MACRO-EXPANDER)
53500	(SYS::MAKE-FUNCTION-MACRO, SYS::FUNCTION-MACRO-P)
53501	(SYS::FUNCTION-MACRO-FUNCTION, SYS::FUNCTION-MACRO-EXPANDER): New
53502	  functions.
53503	* eval.d (FUNTAB): Add SYS::FUNCTION-MACRO-FUNCTION.
53504	(macroexp): Test for Macro instead of cons with car = SYS::MACRO.
53505	(macroexp0): Likewise.
53506	(eval1): Treat Rectype_FunctionMacro.
53507	* control.d (FUNCTION): Treat Rectype_FunctionMacro.
53508	(MACRO-FUNCTION): Test for Macro instead of cons with car =
53509	  SYS::MACRO.
53510	* symbol.d (SYS::%PUTD): Test for Macro instead of cons with
53511	  car = SYS::MACRO.
53512	* defmacro.lisp (make-macro-expander): Rename from
53513	  make-macro-expandercons.
53514	* init.lisp: Use function sys::make-macro instead of cons 'sys::macro.
53515	(%expand-form): Treat FunctionMacros like functions.
53516	  Test for Macro instead of cons with car = SYS::MACRO.
53517	(defmacro) : Use function sys::make-macro instead of cons
53518	  'sys::macro.
53519	* trace.lisp (trace1): Use function sys::make-macro instead of cons
53520	  'sys::macro.
53521	* places.lisp (MACRO-FUNCTION): Likewise.
53522	* compiler.lisp: Import sys::make-macro-expander.
53523	(funtab): Add SYS::FUNCTION-MACRO-FUNCTION.
53524	(fenv-search): Return more values, to deal with the FunctionMacro
53525	  case.
53526	(c-form, macroexpand-form): Update for changed fenv-search. Call
53527	  *macroexpand-hook* directly.
53528	(c-FUNCTION): Update for changed fenv-search.
53529	(c-MACROLET): Update.
53530	(c-APPLY): Update for changed fenv-search.
53531	(compile): Test for Macro instead of cons with car = SYS::MACRO.
53532	(compile-toplevel-form): Update for changed fenv-search.
53533	(disassemble): Test for Macro instead of cons with car = SYS::MACRO.
53534	* describe.lisp (describe-object): Treat SYS::MACRO and FUNCTION-MACRO.
53535
53536	* init.lisp (MACRO-EXPANDER): Remove macro.
53537	* macros1.lisp (defmacro-special): New macro.
53538	(and, or, prog1, prog2, when, unless, psetq, multiple-value-list)
53539	(multiple-value-bind, multiple-value-setq, locally, case, cond):
53540	  Define macros using defmacro-special.
53541
53542	* constobj.d (O(version)): Bump version number.
53543	(O(old_version)): Remove.
53544	* misc.d (SYSTEM::VERSION): Do not test for O(old_version) any more.
53545	* control.d (SYS::OLD-MACRO-FUNCTION): Remove function.
53546	* pathname.d (SYS::OLD-OPEN): Remove function.
53547	* record.d (CLOS::OLD-%ALLOCATE-INSTANCE): Remove function.
53548	* subrkw.d: Remove SYS::OLD-OPEN initialization.
53549	* eval.d (FUNTAB): Remove SYS::OLD-MACRO-FUNCTION, SYS::OLD-OPEN,
53550	  CLOS::OLD-%ALLOCATE-INSTANCE. Add MACRO-FUNCTION, OPEN. Move
53551	  SYS::%COPY-GENERIC-FUNCTION.
53552	(FUNTABR): Add CLOS::%ALLOCATE-INSTANCE.
53553	* compiler.lisp (funtab, c-DIRECT-FUNCTION-CALL): Update accordingly.
53554
535552000-05-30  Bruno Haible  <haible@clisp.cons.org>
53556
53557	* pathname.d (MERGE-PATHNAMES): New variable called_from_make_pathname.
53558	  Accept unbound slot values in this case.
53559	(MAKE-PATHNAME): If a :DEFAULTS argument is given, do not fill in
53560	  default values. Call MERGE-PATHNAMES with magic arguments
53561	  :wild #'make-pathname.
53562
535632000-05-30  Bruno Haible  <haible@clisp.cons.org>
53564
53565	* makemake.in (install-bin): Use $(INSTALL_PROGRAM) or $(INSTALL_DATA)
53566	  instead of "cp -p".
53567	Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
53568
535692000-05-29  Bruno Haible  <haible@clisp.cons.org>
53570
53571	* autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo.
53572	Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
53573
535742000-05-26  Bruno Haible  <haible@clisp.cons.org>
53575
53576	* array.d (elt_move): Add "break" in switch statement.
53577
535782000-05-25  Bruno Haible  <haible@clisp.cons.org>
53579
53580	* makemake.in (MSVCDIR): Change value.
53581	(TOUCH): On Win32, permit touch to fail.
53582	(iconv.h, iconv.lib): Fix win32 rules.
53583	(lisp${LEXE}): Depend on ${XCL_ICONVLIB}.
53584	(impnotes.html, clisp.html): On Win32, do not use sed.
53585	(distrib): On Win32, postprocess impnotes.html and clisp.html.
53586
535872000-05-23  Bruno Haible  <haible@clisp.cons.org>
53588
53589	* autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu,
53590	  host_vendor, host_os correctly if $host has more than two hyphens.
53591
535922000-05-21  Bruno Haible  <haible@clisp.cons.org>
53593
53594	* type.lisp (canonicalize-type): Treat STREAM and subclasses like
53595	  CLOS classes, not like other built-in classes.
53596	(subtypep): Remove special code for STREAM and subclasses.
53597
535982000-05-21  Bruno Haible  <haible@clisp.cons.org>
53599
53600	* init.lisp (LOAD): Add :external-format argument and conditionally
53601	  pass it to OPEN.
53602
536032000-05-20  Bruno Haible  <haible@clisp.cons.org>
53604
53605	* type.lisp (canonicalize-type): Recognize the encodings UTF-16 and
53606	  UTF-7 as covering all of Unicode.
53607
536082000-05-20  Bruno Haible  <haible@clisp.cons.org>
53609
53610	* type.lisp (subtype-integer): Inline the canonicalize-type call.
53611
536122000-05-20  Bruno Haible  <haible@clisp.cons.org>
53613
53614	* sequence.d (SYSTEM::COERCED-SUBSEQ): New function.
53615	* encoding.d (CONVERT-STRING-FROM-BYTES, CONVERT-STRING-TO-BYTES): New
53616	  functions.
53617
536182000-05-17  Bruno Haible  <haible@clisp.cons.org>
53619
53620	* reploop.lisp (break-loop): terpri to *debug-io*, not *error-output*.
53621
536222000-05-16  Sam Steingold  <sds@gnu.org>
53623
53624	* reploop.lisp (break-loop): terpri *debug-io* even when it is
53625	not interactive.
53626
536272000-05-16  Sam Steingold  <sds@gnu.org>
53628
53629	* stream.d (sec_usec, socket_connect): treat NIL as unbound
53630
536312000-05-15  Sam Steingold  <sds@gnu.org>
53632
53633	* init.lisp (defun): emit `c-defun' for not inlined functions too
53634
536352000-05-15  Sam Steingold  <sds@gnu.org>
53636
53637	* socket.d (H_ERRMSG): fix duplicate test for NO_DATA.
53638
536392000-05-15  Sam Steingold  <sds@gnu.org>
53640
53641	* makemake.in: fix the previous patch.
53642
536432000-05-12  Martin Atzmueller  <marty@cs.utexas.edu>
53644
53645	* makemake.in: link clhs in the build-directory to the right place.
53646
536472000-05-11  Sam Steingold  <sds@gnu.org>
53648
53649	* stream.d (socket_status): use HANDLE_SET & HANDLE_ISSET macros.
53650
536512000-05-09  Sam Steingold  <sds@gnu.org>
53652
53653	* stream.d (sec_usec): new helper function.
53654	(socket_wait): use it.
53655	(socket_status): new Lisp function: interface to select(3).
53656	(stream_listen): listen properly on binary streams too.
53657	* constsym.d, subr.d: add LISP:SOCKET-STATUS.
53658
536592000-05-09  Sam Steingold  <sds@gnu.org>
53660
53661	* disassem.lisp (disassemble-machine-code): do not call
53662	the pager when running under Emacs.
53663
536642000-05-03  Guilherme Manika  <gwm@conectiva.com.br>
53665
53666	* makemake.in (install-bin): Fix duplicate \$(install_root).
53667
536682000-04-25  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53669
53670	* spvw.d (print_license): Add paragraph pointing to copyright.html.
53671
536722000-04-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53673
53674	* lispbibl.d: On BeOS, define UTF8_CHS, not ISOLATIN_CHS.
53675	* encoding.d (encoding_from_name): If UTF8_CHS is defined, use
53676	  CHARSET:UTF-8.
53677
536782000-04-14  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53679
53680	* autoconf/aclocal.m4 (CL_PROG_HLN): Redirect ln's error output.
53681
536822000-04-13  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53683
53684	Support NO_TYPECODES on m68k.
53685	* lispbibl.d (oint_type_*, oint_data_*): Define differently on
53686	  m68k-linux.
53687	(subr_): Add a dummy field to force size a multiple of 4.
53688	(TheMachineCode): After shifting right, add the missing leftmost
53689	  bits.
53690	* spvw.d (main): When determining the heap bounds, compute 'end' with
53691	  garcol_bit set to 0, even if garcol_bit_o < oint_addr_len-1.
53692	* encoding.d (nls_table) [NO_TYPECODES]: Force variables of this type,
53693	  defined in nls_*.c, to be 4-aligned.
53694
536952000-04-04  Sam Steingold  <sds@gnu.org>
53696
53697	* init.lisp (*source-file-types*): add #".cl"
53698	(search-file <first def>): do not call `reverse'
53699	(load): swap `*compiled-file-types*' and
53700	`*source-file-types*' accordingly.
53701
537022000-04-05  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53703
53704	* io.d (eof_handling): eof-value defaults to NIL.
53705	* stream.d (READ-BYTE, READ-INTEGER, READ-FLOAT): Likewise.
53706
537072000-04-04  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53708
53709	* unix.d (O_BINARY): Undefine on BeOS.
53710
537112000-04-03  Martin Atzmueller  <marty@cs.utexas.edu>
53712
53713	* _impnotes.html: documented the (abbreviated) keyword-commands
53714	for the debugger.
53715
53716	* reploop.lisp (commands1): fix a typo
53717
537182000-04-03  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53719
53720	* lispbibl.d (addressbus_mask) [UNIX_OSF]: Define to
53721	  0xFFFFFF01FFFFFFFFUL instead of 0xFFFFFFC1FFFFFFFFUL.
53722
537232000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53724
53725	* clhs.lisp (*browsers*): Add support for w3m.
53726
537272000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53728
53729	* stream.d (finish_tty_output, force_tty_output): Ignore errno value
53730	  after calling fsync() on BeOS.
53731
53732	* lispbibl.d (STACK_register): Do not define on BeOS.
53733	(oint_type_*, oint_data_*): Define differently on BeOS.
53734
53735	* socket.d (SERVENT_TO_STACK, LISP:SOCKET-SERVICE-PORT): Do not define
53736	  if UNIX_BEOS. BeOS5 lacks getservent() and getservbyport().
53737	* spvw.d (main): On BeOS, add :BEOS to *features*.
53738	* beossock.lisp: New file.
53739	* init.lisp: On BeOS, load beossock.lisp.
53740	* makemake.in (LPARTS): Add beossock.
53741	* gettext/po/Makefile.devel (LISPSOURCES): Add beossock.
53742
53743	* autoconf/aclocal.m4 (CL_GETHOSTNAME, CL_TCPCONN): For the prototypes
53744	  of gethostname and inet_addr, on BeOS, include <sys/socket.h> and
53745	  <netdb.h>.
53746
537472000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53748
53749	Allow building on filesystems lacking symlinks and hard links.
53750	* autoconf/acgeneral.m4 (AC_OUTPUT_LINKS): If "ln" fails, try "cp -p".
53751	* autoconf/aclocal.m4 (CL_PROG_CP): Rename from CL_CP.
53752	(CL_PROG_LN, CL_PROG_LN_S): New macros.
53753	(CL_PROG_HLN): Rename from CL_PROG_LN. Rename cache variable to
53754	  cl_cv_prog_hln. AC_SUBST HLN instead of LN.
53755	* configure.in: Update.
53756	* lndir (link): If "ln" fails, try "cp -p".
53757	* makemake.in (HLN): Rename from LN. Use @HLN@ instead of @LN@.
53758	(LN_S): Rename from LN.
53759	(init): Do not create linkkit.
53760	(linkkit): New rule.
53761	(modular): Depend on linkkit.
53762	(UnicodeData.txt): cd into directory before linking.
53763	(clhs.txt): Likewise. Simplify the symlink. Omit if building
53764	  in-place.
53765	* clisp-link.in (link): If "ln" fails, try "cp -p". Redirect stderr
53766	  to /dev/null.
53767	(create-module-set): If "ln" fails, try "cp -p".
53768	* Makefile.devel (src/gettext/configure, src/gettext/config.h.in):
53769	  Update dependencies.
53770
537712000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53772
53773	* Makefile.devel (src--distrib): Create a single tar.gz file.
53774	(SOURCES): Add clisp.spec, modules, readline, sigsegv, libiconv,
53775	  all of doc.
53776
537772000-04-02  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
53778
53779	* autoconf/aclocal.m4 (CL_TERMCAP): When both libtermcap and
53780	  libncurses exist, prefer the latter.
53781
537822000-03-12  Bruno Haible  <haible@clisp.cons.org>
53783
53784	Add support for S390 CPU.
53785	* lispbibl.d (S390): New macro.
53786
537872000-03-31  Bruno Haible  <haible@clisp.cons.org>
53788
53789	Rename all *.lsp files to *.lisp.
53790	* Makefile.devel, configure: Update.
53791	* _README.en, _README.de, _README.es: Update.
53792	* _clisp.1, _clisp.html, _clisp.c, _impnotes.html: Update.
53793	* constobj.d (O(source_file_type)): Change to #".lisp".
53794	* cfg*.lisp (editor-tempfile): Return "lisptemp.lisp".
53795	* edit.lisp (editor-tempfile): Likewise.
53796	* compiler.lisp (compile-file, compile-file-pathname): Use ".lisp"
53797	  as default pathname type.
53798	* defs1.lsp (default logical pathname translations): Map ".LISP" to
53799	  ".lisp".
53800	* init.lsp (*source-file-types*): Set to (#".lisp" #".lsp").
53801	* clisp-link.in: Update.
53802	* makemake.in: Update.
53803	* gettext/po/{Makefile.devel,clisp-xgettext}: Update.
53804	* acorn/swap-ext.pl: Update.
53805	* nextapp/Lisp/Coordinator.m: Update.
53806	* os2/{convert.bax,interpreted.in}: Update.
53807	* modules/bindings/linuxlibc5/Makefile: Update.
53808	* modules/bindings/linuxlibc6/Makefile: Update.
53809	* modules/clx/mit-clx/{Makefile*,README.CLISP,link.sh}: Update.
53810	* modules/clx/new-clx/{Makefile.in,README,link.sh.in,clx.f,
53811	  clx-ini.lisp,clx.lisp,demos/sokoban.lisp}: Update.
53812	* modules/regexp/{Makefile.in,README,configure.in}: Update.
53813	* modules/wildcard/{Makefile.in,configure.in}: Update.
53814	* modules/postgresql642/Makefile: update
53815
538162000-03-30  Bruno Haible  <haible@clisp.cons.org>
53817
53818	* lispbibl.d (hz): Undefine.
53819
538202000-03-30  Bruno Haible  <haible@clisp.cons.org>
53821
53822	* stream.d (oconv_unshift_output_unbuffered_)
53823	(oconv_unshift_output_buffered_): Remove junk after #undef.
53824
538252000-03-29  Sam Steingold  <sds@gnu.org>
53826
53827	concatenated-stream-streams compiles with ANSI now
53828	* stream.d (concatenated_stream_streams): return
53829	`strm_concat_list', not `strm_concat_totallist'
53830
538312000-03-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53832
53833	* lispbibl.d: Change distribution of *_frame_info values: merge
53834	  CBLOCK_frame_info and CTAGBODY_frame_info into
53835	  CBLOCK_CTAGBODY_frame_info. Change CALLBACK_frame_info so that it
53836	  has skip2_bit set to 0.
53837	(callback_bit_t): Change meaning and value.
53838	(fun_bit_t): Change value.
53839	(cframe_bit_t, nested_bit_t): Swap values.
53840	* eval.d (unwind): Update.
53841	* debug.d (print_stackitem): Update. For a CBLOCK_frame, print the
53842	  block name, not the entire block cons.
53843
538442000-03-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53845
53846	* clisp-link.in: Always pass "-norc" flag to lisp.run.
53847
538482000-03-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53849
53850	* clisp-link.in (create-module-set): Remove generation of variables
53851	  wfiles_o and wfile_list.
53852
538532000-03-21  Sam Steingold  <sds@gnu.org>
53854
53855	* inspect.lsp: use a vector instead of a hash for inspected
53856	objects.
53857	* clhs.lsp (*browsers*): support more browsers
53858	* makemake.in: fix installation of clhs.txt
53859
538602000-03-20  Sam Steingold  <sds@gnu.org>
53861
53862	* modules/clx/new-clx/Makefile.in:
53863	(CLISP): call clisp with '-norc -q'
53864	(clx.d): `e2d' bug workaround: remove ^e_$
53865
538662000-03-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53867
53868	* autoconf/aclocal.m4 (CL_STRERROR): New macro.
53869	* configure.in: Call it.
53870	* unixconf.h.in (HAVE_STRERROR): New macro.
53871	* unix.d (strerror): New declaration.
53872	* lispbibl.d (init_errormsg_table): Remove declaration.
53873	* errunix.d (sys_nerr, sys_errlist): Do not declare if HAVE_STRERROR.
53874	(strerror) [!HAVE_STRERROR]: New function.
53875	(errormsg_table): Remove variable.
53876	(init_errormsg_table): Remove function.
53877	(get_errormsg): New function.
53878	(OS_error_internal, errno_out): Use get_errormsg instead of
53879	  errormsg_table.
53880	* spvw.d (main): Do not call init_errormsg_table.
53881
538822000-03-14  Sam Steingold  <sds@gnu.org>
53883
53884	Integrated inspect
53885	* inspect.lsp: new file
53886	* init.lsp: load inspect
53887	* makemake.in (LPARTS): add inspect
53888
538892000-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53890
53891	* lispbibl.d: Add BeOS support.
53892	  Based on patch by Alexis Rivera Rios <ahrivera@yahoo.com>.
53893	* unix.d: Likewise.
53894
53895	* autoconf/aclocal.m4 (CL_READLINK): Check the return type as well;
53896	  it may be 'int' or 'ssize_t'. Define RETREADLINKTYPE.
53897	* unixconf.h.in (RETREADLINKTYPE): New macro.
53898	* unix.d (readlink): Use it.
53899
53900	* autoconf/aclocal.m4 (CL_GETHOSTNAME): Try 'unsigned int' as well.
53901
53902	* autoconf/aclocal.m4 (RL_SELECT, CL_SELECT): Include <sys/socket.h>.
53903	  Try 'struct fd_set' as well.
53904
539052000-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53906
53907	* compiler.lsp (compile-file): Do not pass a third argument to the
53908	  "~%~D error~:P, ~D warning~:P" format string.
53909
53910	* lisparit.d: Do not use invalid syntax "## ".
53911	* posixmath.d: Do not use invalid syntax "## ".
53912	(POSIX:BOGOMIPS): Set mv_count after computing value1, not before.
53913
53914	* clhs.lsp: The code lives in package SYSTEM, not LISP.
53915	  Bind *package* while reading clhs.txt.
53916	  Verify that the COMMON-LISP symbol is an exported one.
53917
53918	* lndir: Fix defaultIFS, broken by Sam's previous patch 1999-12-23.
53919
53920	* nls_iso8859_8.c: Regenerate using newest unicode.org table.
53921
53922	* cc_sparc.il: Remove obsolete file.
53923
539242000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53925
53926	* Makefile.devel, configure, makemake.in: Drop oldoldreadline and
53927	  oldreadline.
53928
539292000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53930
53931	* spvw.d (main): Emit warning if run without -B command line argument.
53932
539332000-03-08  Sam Steingold  <sds@gnu.org>
53934
53935	* stream.d (socket-server): treat NIL as unbound.
53936
539372000-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53938
53939	Remove DOS (EMUNIX && !EMUNIX_PORTABEL, DJUNIX, WATCOM) ports.
53940	* errdjgpp.d: Remove file.
53941	* lispbibl.d: Remove support for DOS ports.
53942	(OS2): Rename from DOSPC.
53943	(EMUNIX_PORTABEL): Remove macro, assume it defined whenever EMUNIX
53944	  is defined.
53945	(DJUNIX, WATCOM): Remove macros.
53946	(PATHNAME_MSDOS, PATHNAME_EXT83): Remove macro.
53947	* msdos.d: Likewise.
53948	* aridecl.d, arilev0.d, arilev1.d, constobj.d, constsym.d, error.d,
53949	  errunix.d, genclisph.d, hashtabl.d, pathname.d, spvw.d,
53950	  spvw_memfile.d, spvw_sigint.d, spvw_sigwinch.d, stream.d, time.d:
53951	  Update.
53952	* cfgdos.lsp, complete.lsp, defs1.lsp, describe.lsp, edit.lsp,
53953	  format.lsp, init.lsp, keyboard.lsp, macros2.lsp, runprog.lsp:
53954	  Remove DOS feature dependencies.
53955	* makemake.in: Remove support for dos, dosdjgpp, doswatcom.
53956	(INCLUDEDIR): Remove variable.
53957	* gettext/po/Makefile.devel (DSOURCES): Remove errdjgpp.
53958	* FILES.1: Update.
53959
539602000-03-08  Martin Atzmueller  <marty@cs.utexas.edu>
53961
53962	* posix.lsp (resolve-host-ipaddr):
53963	use :addrtype everywhere
53964	(hostent): define struct-slot "addrtype" instead of "addr-type"
53965
539662000-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53967
53968	* describe.lsp (describe-object) [FUNCTION]: If the function's name
53969	  names a macro, recommend (DISASSEMBLE (MACRO-FUNCTION 'name))
53970	  instead of (DISASSEMBLE #'name).
53971	  Reported by Tijs van Bakel <smoke@casema.net>.
53972
539732000-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
53974
53975	* stream.d (make_terminal_stream_, rl_memory_abort): Use
53976	  rl_gnu_readline_p instead of rl_present_p.
53977	(init_streamvars): Call _rl_enable_paren_matching.
53978	* noreadline.d (rl_gnu_readline_p): Rename from rl_present_p.
53979
539802000-03-03  Sam Steingold  <sds@gnu.org>
53981
53982	* clhs.lsp (browse-url): expanded error message.
53983
539842000-03-02  Sam Steingold  <sds@gnu.org>
53985
53986	* clos.lsp (slot-names): new function.
53987	* describe.lsp (describe-slotted-object): use it.
53988	(list-length-dotted): new function.
53989	(describe-object): use it.
53990
539912000-03-01  Sam Steingold  <sds@gnu.org>
53992
53993	* clhs.lsp, clhs.txt: new files.
53994	* init.lsp: load clhs.
53995
539962000-02-29  Sam Steingold  <sds@gnu.org>
53997
53998	* loop.lsp (destructure-vars, destructure-type): use tail recursion.
53999
540002000-02-28  Martin Atzmueller  <marty@cs.utexas.edu>
54001
54002	* reploop.lsp: new and shorter debugger/stepper/main commands;
54003	('error :e) command for printing the error-message again;
54004	('backtrace-l, :bl, 'frame-limit, :fl) implement something
54005	similar to the "print-frame-limit"-issue in the TODO list.
54006	Translate the comments.
54007
540082000-02-18  Sam Steingold  <sds@gnu.org>
54009
54010	Implement the ANSI CL `with-compilation-unit' macro.
54011	* compiler.lsp (with-compilation-unit): new macro.
54012	(*c-top-call*): new variable.
54013	(c-report-problems, c-reset-globals): new functions.
54014	(compile-file): use them.
54015	(init.lsp, defs3.lsp): export `with-compilation-unit'.
54016
540172000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54018
54019	* Version 2000-03-06 released.
54020
540212000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54022
54023	* unix.d: Use clock_t instead of CLOCK_T.
54024	* encoding.d: Include <string.h>.
54025	* hashtabl.d (hashcode4_atom): Add default case to switch statement.
54026
540272000-03-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54028
54029	* dutch.lsp: New file, from Tijs van Bakel <smoke@casema.net>.
54030	* init.lsp: Load it.
54031	* makemake.in (LPARTS): Add dutch.
54032	* spvw_language.d (language_dutch): New macro.
54033	(init_language_from): Test for values NEDERLANDS and DUTCH.
54034	(init_language): Deal with language_dutch.
54035
540362000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54037
54038	* encoding.d (charset_range): Define only if #ifdef UNICODE.
54039	(init_encodings): Initialize O(internal_encoding) only if #ifdef
54040	  UNICODE.
54041	* stream.d (FILE-STRING-LENGTH): If UNICODE is not defined, assume
54042	  min_bytes_per_char and max_bytes_per_char to be 1.
54043
540442000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54045
54046	* stream.d (SOCKET-SERVER): In the error message, output the argument,
54047	  not the symbol STREAM.
54048
540492000-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54050
54051	* defmacro.lsp (macro-call-error): Add missing ~S to English
54052	translation.
54053	* describe.lsp (describe-object): Fix English message.
54054	Reported by Tijs van Bakel <smoke@casema.net>.
54055
540562000-02-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54057
54058	* lispbibl.d (sbNvector_atype, bNvector_atype, type_bits_to_atype):
54059	  New macros.
54060	* array.d (copy_sbvector, array_element_type, test_displaced): Use
54061	  sbNvector_atype and bNvector_atype.
54062	* hashtabl.d (hashcode_bvector): Use sbNvector_atype.
54063	* sequence.d (get_seq_type): Use sbNvector_atype and bNvector_atype.
54064
540652000-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54066
54067	* makemake.in: Do not install emacs/*.el any more.
54068
540692000-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54070
54071	* arimips.d (subx_loop_down): If compiling for n32 ABI, the fifth
54072	  argument comes in a register, not from the stack.
54073
540742000-02-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54075
54076	* lispbibl.d (oint_symbolflags_shift): Remove obsolete definition.
54077
540782000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54079
54080	Permit setting *terminal-encoding* to an iconv based stream.
54081	* lispbibl.d (set_terminalstream_external_format): New declaration.
54082	* stream.d (set_terminalstream_external_format): New function.
54083	* encoding.d (SYSTEM::SET-FOREIGN-ENCODING): Call it.
54084
540852000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54086
54087	* errunix.d (init_errormsg_table): Add EILSEQ.
54088
540892000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54090
54091	* encoding.d (encoding_from_name): Recognize ISO-8859-3.
54092
540932000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54094
54095	* configure: Create a libiconv subdirectory, link over the configure
54096	  script, and run it with --enable-static --disable-shared.
54097	* win32msvc/INSTALL: Must pre-build libiconv.
54098	* makemake.in (USE_LIBICONV, XCL_ICONVLIB): New variables.
54099	(FILES): On Unix, add libiconv.a.
54100	(LIBS): Ad $XCL_ICONVLIB.
54101	(EVERY_INCLUDES_H): Add iconv.h.
54102	(iconv.h, libiconv.a): New targets.
54103	(clean1): Also remove libiconv.a.
54104	(clean4): Also remove iconv.h.
54105	* lispbibl.d (GNU_LIBICONV): Define always. Include "iconv.h".
54106	(max_bytes_per_chart): Increase to 8, for ISO-2022-CN[-EXT].
54107	* stream.d: Treat GNU_LIBICONV like HAVE_ICONV.
54108	(CLISP_INTERNAL_CHARSET): If using GNU_LIBICONV, define to
54109	  "UCS-2-INTERNAL".
54110	(iconv_init): New macro.
54111	(iconv_mblen): After iconv_open, call iconv_init. Treat E2BIG
54112	  correctly.
54113	(iconv_mbstowcs): After iconv_open, call iconv_init. Eliminate gcc
54114	  warning.
54115	(iconv_wcslen): After iconv_open, call iconv_init. Treat E2BIG
54116	  correctly.
54117	(iconv_wcstombs): After iconv_open, call iconv_init.
54118	(iconv_range): Likewise.
54119	(ChannelStream_init): Likewise.
54120	* pseudofun.d: Treat GNU_LIBICONV like HAVE_ICONV.
54121	* constsym.d: Add MACINTOSH alias. Add symbols for newly imported
54122	  encodings from libiconv.
54123	* encoding.d: Treat GNU_LIBICONV like HAVE_ICONV.
54124	(iconv_first_sym, iconv_last_sym, iconv_num_encodings): New macros.
54125	(MAKE-ENCODING): For iconv-based encodings, use max_bytes_per_chart,
54126	  not 6.
54127	(init_encodings): Define CHARSET:MACINTOSH and all symbols
54128	  corresponding to new imported encodings from libiconv.
54129	(encoding_from_name): Map "eucJP" etc. to the new encodings.
54130	* type.lsp (table filled by get-charset-range): Avoid filling the
54131	  cache with large interval lists (comparatively easy to compute).
54132	* Makefile.devel (CONFIGURES): Add libiconv/configure.
54133	(libiconv/autoconf/aclocal.m4, libiconv/configure): New rules.
54134
541352000-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54136
54137	* utils/unicode/Makefile (ALL): Add nls_iso8859_16.c.
54138	(nls_iso8859_16.c): New rule.
54139	* nls_iso8859_16.c: New file.
54140	* encoding.d: Include nls_iso8859_16.c.
54141	(nls_tables): Add nls_iso8859_16.
54142	(encoding_from_name): Accept ISO-8859-16.
54143	* pseudofun.d (nls_iso8859_16_table): New entry.
54144	* makemake.in (NLS_INCLUDES): Add nls_iso8859_16.
54145
541462000-01-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54147
54148	* asmi386.sh: Terminate the here documents with EOF, not \EOF.
54149
541502000-01-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54151
54152	* modules/regexp/regexp.lsp (regexp-exec): Remove wrong declaration.
54153
541542000-01-12  Sam Steingold  <sds@gnu.org>
54155
54156	* modules/regexp/regexp.lsp (regexp-compile): use `assert'
54157	(regexp-exec): `assert' that `string'  is a string
54158
541592000-01-10  Sam Steingold  <sds@gnu.org>
54160
54161	* posixmisc.d: new file
54162	* unixaux.d (sysinfo_, resource_usage_limits_): moved to
54163	posixmisc.d
54164
541651999-12-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54166
54167	* pathname.d (translate_version): Do not access Car(*subst) before
54168	  checking whether consp(*subst).
54169
541701999-12-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54171
54172	* spvw_ctype.d (init_ctype): Recognize more language codes:
54173	  "af" (afrikaans), "ca" (catalan), "eu" (basque), "fo" (faeroese),
54174	  "ga" (irish), "gd" (scottish), "gl" (galician), "sq" (albanian),
54175	  "eo" (esperanto), "mt" (maltese), "be" (byelorussian),
54176	  "et" (estonian), "lt" (lithuanian), "lv" (latvian), "uk" (ukrainian).
54177	  Recognize more aliases: "english", "slovenian", "macedonian",
54178	  "serbian", "arabic".
54179	  Change default: KOI8-R for "ru" (russian) instead of ISO-8859-5,
54180	  ISO-8859-5 for "sr" instead of ISO-8859-2.
54181
541821999-12-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54183
54184	* utils/unicode/Makefile (ALL): Add nls_koi8_u.c.
54185	(nls_koi8_u.c): New rule.
54186	* nls_koi8_u.c: New file.
54187	* spvw_ctype.d (init_ctype): Accept KOI8-U.
54188	* encoding.d: Include nls_koi8_u.c.
54189	(nls_tables): Add nls_koi8_u.
54190	(encoding_from_name): Accept KOI8-U.
54191	* pseudofun.d (nls_koi8_u_table): New entry.
54192	* makemake.in (NLS_INCLUDES): Add nls_koi8_u.
54193
541941999-12-29  Sam Steingold  <sds@gnu.org>
54195
54196	* unixaux.d (sysinfo_): add _SC_THREAD_THREADS_MAX
54197	* posix.lsp (sysinfo): ditto
54198
541991999-12-28  Sam Steingold  <sds@gnu.org>
54200
54201	* posixmath.d: redefine `floor' correctly
54202	(to_double, N_D): use functions instead of macros
54203	* posix.lsp: `print-object' for `rlimit' and `user-data'
54204	* init.lsp: load posix after clos
54205	* eval.d: remove all syscalls
54206	* constpack.d: add package POSIX
54207	* spvw.d, package.d: remove POSIX
54208
542091999-12-23  Sam Steingold  <sds@gnu.org>
54210
54211	* subr.d, constsym.d: add `bogomips' and `resource_usage_limits_'
54212	* posix.lsp: export `bogomips' and `resource-usage-limits',
54213	reduce `sysinfo'
54214	* posixmath.d (bogomips): LISPFUNN now
54215	* unixaux.d (sysinfo): use uname(2) instead of sysinfo(2),
54216	(resource_usage_limits_): new LISPFUNN
54217
542181999-12-22  Sam Steingold  <sds@gnu.org>
54219
54220	* unixaux.d (sysinfo): new function
54221	* subr.d, constsym.d: add `sysinfo'
54222	* eval.d: remove the posix functions
54223	* init.lsp: load the new file posix.lsp
54224	* posix.lsp: new file
54225	* makemake.in (LPARTS): add posix
54226	* pathname.d (user_data_): require argument
54227	* posixmath.d (bogomips): new function
54228	* socket.d (resolve_host_ipaddr_): require argument
54229
542301999-12-21  Sam Steingold  <sds@gnu.org>
54231
54232	* posixmath.d: new file; erf(3m), bessel(3m) and gamma(3m)
54233	are now accessible in the package POSIX with --export-syscalls.
54234	* makemake.in, gettext/po/Makefile.devel: add `posixmath'.
54235	* lisparit.d: include posixmath.c.
54236	* subr.d, eval.d, constsym.d: add the functions.
54237	* constobj.d, package.d (init_packages), spvw.d
54238	(init_symbol_tab_2): add package POSIX.
54239	* socket.d (resolve_host_ipaddr): moved to POSIX.
54240	* pathname.d (file_stat, user_data): ditto.
54241	* compiler.lsp (c-DIRECT-FUNCTION-CALL): mention the arithmetic
54242	functions.
54243	(*deprecated-functions-list*): do not deprecate functions in POSIX.
54244	* init.lsp: export the functions from POSIX.
54245
542461999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54247
54248	* stream.d (iconv_wcslen): At the end, call iconv with NULL input.
54249	(iconv_wcstombs): At the end of the standalone case, call iconv with
54250	  NULL input.
54251	(oconv_unshift_output_unbuffered): New macro.
54252	(oconv_unshift_output_unbuffered_): New function.
54253	(finish_output_unbuffered, force_output_unbuffered, close_ochannel):
54254	  Call oconv_unshift_output_unbuffered.
54255	(oconv_unshift_output_buffered): New macro.
54256	(oconv_unshift_output_buffered_): New function.
54257	(finish_output_buffered, close_buffered): Call
54258	  oconv_unshift_output_buffered.
54259
542601999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54261
54262	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Update for
54263	  autoconf-2.12. Use AC_CACHE_CHECK instead of AC_CHECK_VAL.
54264
542651999-12-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54266
54267	* autoconf/aclocal.m4 (CL_ICONV): Check for the iconv function twice,
54268	  once in libc and once in libiconv, for OSF/1 and FreeBSD. Define
54269	  LIBICONV.
54270	* makemake.in: Use @LIBICONV@ like @LIBTERMCAP@ and @LIBDL@.
54271
542721999-12-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54273
54274	* utils/unicode/ftp.unicode.org/UnicodeData.txt: Upgrade to Unicode
54275	  version 3.0.
54276
542771999-12-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54278
54279	* utils/unicode/Makefile: Use plain-text tables instead of *.in files.
54280	* utils/unicode/nls_table.c: New file.
54281	* utils/unicode/nls_table.java, utils/unicode/nls_txt_to_in.java:
54282	  Remove files.
54283	* utils/unicode/ftp.unicode.org/*.TXT: Remove files.
54284
542851999-12-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54286
54287	* stream.d (iconv_mbstowcs, iconv_wcstombs): When called from a
54288	  stream, and when valid data is followed by invalid data (EILSEQ),
54289	  return the converted valid data and do not signal an error yet.
54290
542911999-11-30  Sam Steingold  <sds@gnu.org>
54292
54293	* spvw.d (init_object_tab): add :SYSCALLS to *FEATURES* when
54294	EXPORT_SYSCALLS is defined.
54295
542961999-11-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54297
54298	* encoding.d (utf8_mblen, utf8_mbstowcs): Make the UTF-8 decoder
54299	  "safe": Reject overlong byte sequences.
54300
543011999-11-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54302
54303	* lispbibl.d (char_width): New declaration.
54304	* charstrg.d (non_spacing_table_data, nonspacing_table_ind): New
54305	  arrays.
54306	(char_width, CHAR-WIDTH, STRING-WIDTH): New functions.
54307	* stream.d (wr_ss_lpos): Call char_width instead of graphic_char_p.
54308	  Do not assume every character increases the line position by 1.
54309	(write_char): Likewise.
54310	* io.d (pphelp_string_width): New function.
54311	(justify_end_eng, justify_end_weit): Use pphelp_string_width instead
54312	  of the string's length.
54313	* compiler.lsp (subr-info): Add char-width and string-width.
54314	* describe.lsp (write-to-short-string): Use string-width instead of
54315	  the string's length.
54316	* format.lsp (format-padded-string, format-justified-segments):
54317	  Likewise.
54318
543191999-11-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54320
54321	* lispbibl.d (Array_type_simple_bit_vector): New macro.
54322	(simple_bit_vector_p, bit_vector_p): Use it.
54323	* spvw_typealloc.d (allocate_bit_vector): Likewise.
54324
543251999-11-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54326
54327	* asmi386.sh and others: Use temporary files for the sed scripts.
54328	  GNU sed-2.05 concatenates multiple -e options to a single script
54329	  with embedded newlines, GNU sed-3.02 does not.
54330
543311999-11-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54332
54333	* autoconf/acgeneral.m4 (AC_ARG_PROGRAM): Create `conftestsed' once
54334	  only.
54335
543361999-11-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54337
54338	* pathname.d (directory_diff_ab): Set new_piece to
54339	(cons ':directory subdirs), not (list ':directory subdirs).
54340
543411999-11-08  Valeriy E. Ushakov  <uwe@ptc.spbu.ru>
54342
54343	* lispbibl.d (NEED_temp_mv_count, NEED_temp_value1): Define if
54344	  SPARC && UNIX_NETBSD.
54345
543461999-11-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54347
54348	* lispbibl.d (TheSarray, TheSbvector, TheCodevec): Fix typo.
54349
543501999-11-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54351
54352	* modules/clx/mit-clx/clx.lsp (base-char): Do not redefine in CLISP.
54353
543541999-11-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54355
54356	* affi.d (affi_call_argsa): Treat simple 8/16/32-bit-vectors like
54357	  non-simple ones. Use array_displace_check instead of
54358	  iarray_displace_check.
54359	* stream.d (test_n_bytes_args): Use array_displace_check instead of
54360	  iarray_displace_check.
54361	* sequence.d (READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Likewise.
54362
543631999-10-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54364
54365	* conditio.lsp (define-condition): Accept a :DEFAULT-INITARGS option.
54366
543671999-10-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54368
54369	* lispbibl.d (elt_reverse, elt_nreverse): New declarations.
54370	* array.d (elt_reverse, elt_nreverse): New functions.
54371	* sequence.d (REVERSE): For vectors, use elt_reverse.
54372	(NREVERSE): For vectors, use elt_nreverse.
54373
543741999-10-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54375
54376	* lispbibl.d (uint1_p, uint2_p, uint4_p): New macros.
54377	(fehler_index_range, fehler_store, elt_copy, elt_move, elt_fill):
54378	  New declarations.
54379	* array.d (fehler_index_range): Make global.
54380	(fehler_store): New function, taken out of storagevector_store.
54381	(storagevector_store): Call it.
54382	(bit_copy, elt_copy_*_*, elt_copy): New functions.
54383	(elt_move_*, elt_move): New functions.
54384	(elt_fill): New function.
54385	(VECTOR-PUSH-EXTEND): Use the elt_copy_*_* functions.
54386	(ssbvector_push_extend): Use elt_copy_8Bit_8Bit.
54387	(make_storagevector): Use elt_fill.
54388	(reshape): Use elt_copy for speedup.
54389	* sequence.d (fehler_vector_index_range): New function.
54390	(copy_seqpart_into): For vectors, use elt_copy or elt_move.
54391	(MAKE-SEQUENCE, FILL): For vectors, use elt_fill.
54392
543931999-10-29  Sam Steingold  <sds@ksp.com>
54394
54395	* modules/regexp/regexp.lsp (with-loop-split): New macro.
54396	(regexp-compile, regexp-exec, regexp-split): New functions.
54397	(match-once, %match): Use `regexp-compile' and `regexp-exec'.
54398	(regexp-compile, regexp-exec, regexp-split, with-loop-split): Export.
54399
544001999-10-22  Sam Steingold  <sds@ksp.com>
54401
54402	* modules/clx/new-clx/demos/clx-demos.lsp (x-host-display):
54403	return 3 values (host, server, screen).
54404	Compile `qix' and `socoban' when compiling `clx-demos'.
54405
544061999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54407
54408	* array.d (bit_op): Fix memory overrun bug. Require count > 0.
54409	(bit_up): Test for len==0 before calling bit_op.
54410
544111999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54412
54413	* array.d (bit_compare): Fix memory overrun bug. Require count > 0.
54414	  Optimize the case index1 == index2 mod 8.
54415	* lispbibl.d (bit_compare): Require count > 0.
54416	* predtype.d (equal): Test for len1==0 before calling bit_compare.
54417
544181999-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54419
54420	* lispbibl.d: Use __sun, not __sun__, as a test for Solaris.
54421
544221999-10-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54423
54424	* array.d (bit_compare, bit_op): Use `const'.
54425
544261999-10-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54427
54428	* array.d (bitpack, uint_bitpack, ...): Use 32-bit words if possible.
54429
544301999-10-18  Sam Steingold  <sds@ksp.com>
54431
54432	* modules/clx/new-clx/demos/clx-demos.lsp: new file.
54433	define the clx-demos package and load the other demos.
54434	(getenv): get the environment variable.
54435	(x-host-display): parse $DISPLAY.
54436	(x-open-display): open the display according to $DISPLAY.
54437	* modules/clx/new-clx/demos/qix.lsp (qix): use `x-open-display'.
54438	* modules/clx/new-clx/demos/sokoban.lsp (init-sokoban): use
54439	`x-open-display'.
54440
544411999-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54442
54443	Introduce new primitive types for simple vectors with element-type
54444	(UNSIGNED-BYTE n), n = 2,4,8,16,32.
54445	* lispbibl.d (STANDARD_8BIT_TYPECODES): Define sb2vector_type etc.
54446	  and b2vector_type etc. Define case_sb2vector, case_ob2vector,
54447	  case_b2vector etc.
54448	(case_array): Include case_b2vector etc.
54449	(Rectype_b2vector, Rectype_Sb2vector, etc.): New rectype values.
54450	(arrayflags_notbytep_bit): Remove.
54451	(Array_type_b2vector, Array_type_sb2vector, etc.): New macros.
54452	(TheSarray, TheSbvector): Add sb2vector_type etc.
54453	(TheCodevec): Needs only s8bvector_type.
54454	(TheIarray): Add b2vector_type etc.
54455	(TheVarobject, ThePointer): Add sb2vector_type, b2vector_type, etc.
54456	(vectorp, simplep, array_simplep, simple_string_p, stringp): Update
54457	  for changed Rectype values.
54458	(simple_bit_vector_p, bit_vector_p): Take two arguments now.
54459	(byte_vector_p, general_byte_vector_p): Remove macros.
54460	(arrayp): Update for changed Rectype values.
54461	(cclosurep): Assume the codevector is an 8bit-vector.
54462	(case_Rectype_Sb2vector_above, case_Rectype_ob2vector_above)
54463	(case_Rectype_b2vector_above, etc.): New macros.
54464	(allocate_bit_vector): Take two arguments now.
54465	(DYNAMIC_BIT_VECTOR): Update.
54466	(allocate_byte_vector): Remove declaration.
54467	* spvw_objsize.d (size_sb2vector etc.): New macros.
54468	(objsize): Add cases for sb2vector, ob2vector, etc.
54469	(objsize_sb2vector etc.): New inline functions.
54470	(init_objsize_table): Add cases for sb2vector, ob2vector, etc.
54471	* spvw_global.d (init_mem_heaptypes): Add cases for sb2vector,
54472	  ob2vector, etc.
54473	* spvw_genera1.d (walk_area): Add cases for ob2vector etc. and
54474	  Rectype_b2vector, Rectype_Sb2vector etc.
54475	(build_old_generation_cache): Add cases for ob2vector etc. and
54476	  Rectype_b2vector, Rectype_Sb2vector etc.
54477	* spvw_update.d (update_varobject): Add cases for ob2vector etc. and
54478	  Rectype_b2vector, Rectype_Sb2vector etc.
54479	* spvw_garcol.d (gc_mark): Add cases for sb2vector, ob2vector, etc.
54480	  and Rectype_b2vector, Rectype_Sb2vector etc.
54481	* spvw_typealloc.d (allocate_bit_vector): Take two arguments now.
54482	(allocate_handle): Update.
54483	* spvw_circ.d (get_circ_mark): Add cases for b2vector etc. and
54484	  Rectype_b2vector etc.
54485	(get_circ_unmark): Likewise.
54486	(subst, subst_circ_mark, subst_circ_unmark): Likewise.
54487	* array.d (copy_sbvector): Make it work with any simple-[n]bit-vector.
54488	(allocate_byte_vector): Remove function.
54489	(iarray_displace, iarray_displace_check, array_displace_check):
54490	  Remove special treatment of indirect byte-arrays.
54491	(storagevector_aref, storagevector_store): Update: storage-vectors
54492	  are now always simple.
54493	(array_element_type): Update.
54494	(BIT, SBIT): Likewise.
54495	(bit_up): Simplify: Array_type_bvector now implies Atype_Bit. Do not
54496	  set arrayflags_notbytep_bit.
54497	(VECTOR-PUSH-EXTEND): Use allocate_bit_vector in place of
54498	  allocate_byte_vector.
54499	(allocate_bit_vector_0): Update.
54500	(make_ssstring): Do not set arrayflags_notbytep_bit.
54501	(make_ssbvector): Create an 8Bit vector.
54502	(ssbvector_push_extend): Update.
54503	(make_storagevector): Use allocate_bit_vector in place of
54504	  allocate_byte_vector.
54505	(test_displaced): Update.
54506	(MAKE-ARRAY): Update. Do not set arrayflags_notbytep_bit.
54507	(reshape): Update.
54508	(SYS::MAKE-BIT-VECTOR): Update.
54509	* eval.d (get_closure): Create an 8Bit vector.
54510	(eval_closure, apply_closure, funcall_closure): Assume the
54511	  codevector is an 8bit-vector.
54512	* record.d (SYS::CLOSURE-CODEVEC): Likewise.
54513	(SYS::MAKE-CODE-VECTOR): Create an 8bit-vector.
54514	(SYS::%MAKE-CLOSURE): Assume the codevector is an 8bit-vector.
54515	* hashtabl.d (hashcode_bvector): Remove special treatment of indirect
54516	  byte-arrays.
54517	(hashcode3_atom): Treat sb2vector_type, b2vector_type etc. and
54518	  Rectype_Sb2vector, Rectype_b2vector etc.
54519	(hashcode4_vector_2Bit etc.): Remove ->data indirection for storage
54520	  vectors.
54521	(hashcode4_vector): Update.
54522	(hashcode4_atom): Treat b2vector_type etc. and Rectype_b2vector etc.
54523	(sxhash_atom): Likewise.
54524	* predtype.d (equal): Simplify: Array_type_bvector now implies
54525	  Atype_Bit.
54526	(elt_compare_T_2Bit etc., elt_compare_Bit_2Bit etc. etc.): Remove
54527	  ->data indirection for storage vectors.
54528	(elt_compare): Update.
54529	(equalp): Treat b2vector_type etc. and Rectype_b2vector etc.
54530	(BIT-VECTOR-P, SIMPLE-BIT-VECTOR-P): Update.
54531	(TYPE-OF, CLASS-OF): Simplify: case_obvector now implies Atype_Bit.
54532	  Treat sb2vector etc. and ob2vector etc. and Rectype_Sb2vector etc.
54533	  and Rectype_ob2vector etc.
54534	(COERCE): Update. Optimize treatment of result-type = ARRAY/VECTOR/
54535	  SIMPLE-ARRAY.
54536	(enum_hs_simple_2bit_vector etc., enum_hs_2bit_vector): New enum
54537	  items.
54538	(enum_hs_byte_vector): Remove enum item.
54539	(heap_statistics_mapper): Update. Treat sb2vector etc. and ob2vector
54540	  etc. and Rectype_Sb2vector etc. and Rectype_ob2vector etc.
54541	* init.lsp: Export simple-2bit-vector etc. and 2bit-vector etc. Do not
54542	  export BYTE-VECTOR.
54543	* sequence.d (get_seq_type): Update.
54544	(READ-BYTE-SEQUENCE, WRITE-BYTE-SEQUENCE): Remove ->data indirection
54545	  for storage vectors.
54546	* io.d (allocate_syntax_table): Allocate an 8Bit-vector.
54547	(init_reader): Do not set arrayflags_notbytep_bit.
54548	(test_dots, read_internal, uninterned_reader): Assume an 8bit-vector.
54549	(bit_vector_reader, array_reader, structure_reader, closure_reader):
54550	  Update.
54551	(prin_object_dispatch): Treat b2vector like normal vector.
54552	(pr_orecord): Likewise.
54553	(pr_closure, pr_cclosure_codevector): Assume the codevector is an
54554	  8bit-vector.
54555	* encoding.d (string_to_asciz, string_to_asciz_): Create an
54556	  8bit-vector.
54557	* stream.d (make_unbuffered_stream, make_buffered_stream): Update.
54558	(rd_ch_terminal3): Assume ASCIZ-Strings are 8bit-vectors.
54559	(test_n_bytes_args): Simplify test for 8bit-vector.
54560	(SYS::READ-N-BYTES, SYS::WRITE-N-BYTES): Remove ->data indirection.
54561	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): Update.
54562	* lisparit.d (make_random_state): Update.
54563	* pathname.d (EXECUTE): Assume ASCIZ-Strings are 8bit-vectors.
54564	* foreign.d (convert_from_foreign_array_fill): Remove ->data
54565	  indirection.
54566	(convert_to_foreign): Simplify test for 8/16/32bit-vector. Remove
54567	  ->data indirection.
54568	* affi.d (affi_call_argsa, SYSTEM::MEM-READ, SYSTEM::MEM-WRITE-VECTOR):
54569	  Update. Simplify test for 8/16/32bit-vector.
54570
545711999-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54572
54573	Make the TYPECODES model more extensible.
54574	* lispbibl.d (SUN4_29_1, SUN4_29_2, ACORN_1, ACORN_2, UNIX_SYSV_UHC_2):
54575	  Remove definitions.
54576	(TYPECODES): Do not define if we can force alignof(subr_) = 4.
54577	(oint_type_mask, oint_addr_mask): Remove most old, hand-determined
54578	  definitions.
54579	(TB7, ..., TB0): Never define TB5 to -1.
54580	(SUN3_TYPECODES, PACKED_TYPECODES, STANDARD_TYPECODES)
54581	(SIXBIT_TYPECODES, SEVENBIT_TYPECODES): Remove all. Replace with
54582	  STANDARD_8BIT_TYPECODES.
54583	(BTB7, ..., BTB0): Define.
54584	(addressbus_mask): Use SUN4_29 instead of SUN4_29_1.
54585	(subr_): Force alignment 4 if necessary.
54586	(vectorp, simplep, array_simplep, arrayp): Update for new typecodes.
54587	* genclisph.d (subr_): Force alignment 4 if necessary.
54588	(vectorp, arrayp): Update for new typecodes.
54589	* spvw.d (init_subr_tab_1): If NO_TYPECODES, verify subr_ alignment.
54590	* spvw_memfile.d (memflags): Update.
54591
545921999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54593
54594	* spvw_garcol.d (update): Insert braces to avoid gcc warning.
54595
545961999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54597
54598	* arilev0.d (sign_of_sint32): For SPARC64, define using shifts.
54599	(sign_of_sint16): Likewise.
54600	(mulu16): For SPARC64, use the builtin "umul".
54601	(mulu16_): Like for SPARC, also for SPARC64.
54602	(mulu24): For SPARC64, use the builtin "umul".
54603	(mulu32_): Like for SPARC, also for SPARC64.
54604	(divu_3216_1616, divu_3232_3232, divu_6432_3232, divu_32_rest)
54605	(isqrt_64_32): Like for SPARC, also for SPARC64.
54606	* intlog.d (integerlength8, integerlength16, integerlength32, ord2_32):
54607	  Do not use SPARC32 version for SPARC64.
54608
546091999-10-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54610
54611	* utils/unicode/Makefile: Add nls_jisx0201.c to the targets.
54612	  In the iso-8859-* tables, do not make 0x80..0x9F invalid.
54613	  Generate nls_koi8_r.c from the ftp.unicode.org table.
54614	* encoding.d: Include nls_jisx0201.c.
54615	(nls_tables): Add nls_jisx0201_table.
54616	(nls_last_sym, nls_num_encodings): Update.
54617	* pseudofun.d (nls_jisx0201_table): New entry.
54618	* makemake.in (NLS_INCLUDES): Add nls_jisx0201.
54619
546201999-10-15  Sam Steingold  <sds@ksp.com>
54621
54622	* modules/clx/new-clx/clx.f (get_font_info_and_display): fix a
54623	typo (xatom --> xatoms).
54624
546251999-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54626
54627	* stream.d (low_finish_output_unbuffered_socket)
54628	(low_force_output_unbuffered_socket)
54629	(low_clear_output_unbuffered_socket): Remove functions.
54630	(UnbufferedSocketStream_output_init): Use the equivalent pipe
54631	  functions instead. Use low_write_unbuffered_pipe instead of
54632	  low_write_unbuffered_handle.
54633	(low_flush_buffered_socket): Use low_flush_buffered_pipe instead of
54634	  low_flush_buffered_handle.
54635	* errunix.d (init_errormsg_table): Change message for EPIPE.
54636
546371999-10-05  Sam Steingold  <sds@ksp.com>
54638
54639	* socket.d (ADDR_TO_STRING): new macro
54640	(HOSTENT_TO_STACK): use it
54641
546421999-09-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54643
54644	* genclisph.d (main): Define minus_bit, needed for minus_wbit. Define
54645	  minus_wbit, needed for framecode. In end_callback, use `framecode'
54646	  instead of `mtypecode'. Define uintP, needed for framebottomwordf1,
54647	  needed for finish_frame, needed for begin_callback.
54648
546491999-09-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54650
54651	* compiler.lsp (c-GLOBAL-FUNCTION-CALL): When pushing forms onto
54652	  *package-tasks*, quote the arguments only when necessary.
54653
546541999-09-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54655
54656	* io.d (SET-DISPATCH-MACRO-CHARACTER): Call up_case on sub_char.
54657	(GET-DISPATCH-MACRO-CHARACTER): Likewise.
54658
546591999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54660
54661	* stream.d (UnbufferedStreamLow_pushfront_byte): Increment status
54662	  by 1, not by 2.
54663	(rd_ch_terminal3): Before calling readline(), stuff the pre-read
54664	  byte into readline's input buffer.
54665
546661999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54667
54668	* aclocal.m4 (CL_CONNECT): For namelen, also try the type `socklen_t'.
54669	  Needed on 64-bit Solaris.
54670
546711999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54672
54673	* stream.d (iconv_wcslen, iconv_wcstombs): Call end_system_call()
54674	  before signaling an error.
54675
546761999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54677
54678	* lispbibl.d (fehler_uint8): Declare always, not only ifdef HAVE_FFI.
54679	* error.d (fehler_uint8): Define always, not only ifdef HAVE_FFI.
54680
54681	* intelem.d (Q_to_I): Define if defined(intQsize), not only if
54682	  defined(HAVE_FFI) && defined(intQsize). It's needed by DF_to_I.
54683
546841999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54685
54686	* io.d (klammer_auf, klammer_zu, justify_start, justify_space)
54687	(justify_end_eng, justify_end_weit, indent_start, indent_end)
54688	(indentprep_start, indentprep_end, pr_enter1): Test for
54689	  builtin_stream_p before accessing ->strmtype.
54690	* encoding.d (SYSTEM::SET-TERMINAL-ENCODING): Likewise.
54691	* stream.d (CONCATENATED-STREAM-STREAMS, TWO-WAY-STREAM-INPUT-STREAM)
54692	(TWO-WAY-STREAM-OUTPUT-STREAM, ECHO-STREAM-INPUT-STREAM)
54693	(ECHO-STREAM-OUTPUT-STREAM): Likewise.
54694	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): If the synonym stream's
54695	  target is a Gray stream, recurse through (SETF STREAM-ELEMENT-TYPE).
54696
546971999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54698
54699	* spvw_language.d (init_language): Use `ascii_alphanumericp' instead
54700	  of `alphanumericp'.
54701
547021999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54703
54704	* spvw_module.d (main_module): Fix type of declaration. Declare extern,
54705	  to avoid a warning.
54706
547071999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54708
54709	* arisparc64.d: Take advantage of the brz and brnz instructions.
54710
547111999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54712
54713	* arisparc.d (orc2_loop_up): Use the `orn' instruction.
54714
547151999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54716
54717	* aclocal.m4 (CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL):
54718	  Tweak test for 64-bit sparc: cc defines `__sparcv9', whereas gcc
54719	  defines `__arch64__'.
54720	* lispbibl.d (SPARC64): Likewise.
54721
547221999-09-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54723
54724	* spvw_memfile.d (loadmem): Before quitting, close handle if needed.
54725	(loadmem_from_handle): Before quitting, always close handle.
54726
547271999-08-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54728
54729	* aclocal.m4 (CL_SIGNAL_REINSTALL, CL_SIGACTION_REINSTALL): Enable
54730	  `volatile' for gotsig.
54731
547321999-08-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54733
54734	* utils/varbrace.d: New file.
54735	* makemake.in (NEED_ANSIDECL): Remove variable.
54736	(VARBRACE): New Makefile variable.
54737	(UTILS, XDECL_FILTER, XDECL_DEPENDENCIES): Add `varbrace'.
54738	* spvw_memfile.d (loadmem_from_handle): Define this function always,
54739	  not only on UNIX.
54740	* spvw_sigint.d (react_on_sigint): New function.
54741	(interrupt_handler, alarm_handler): Use it. Remove #if across
54742	  function bodies.
54743
54744	* utils/modprep.d (is_if): Check for "#ifndef" as well.
54745
547461999-08-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54747
54748	* ansidecl.d (char_out, next_token, handle_closing_token): Turn
54749	  macros into inline function definitions. Speed doesn't matter here.
54750
547511999-08-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54752
54753	Assume size_t, pid_t, uid_t, gid_t, off_t are defined.
54754	* aclocal.m4 (CL_GETPWUID): Do not depend on AC_TYPE_UID_T.
54755	(CL_MMAP): Do not depend on AC_TYPE_SIZE_T, AC_TYPE_OFF_T.
54756	* configure.in: Do not call AC_TYPE_SIZE_T, AC_TYPE_PID_T,
54757	  AC_TYPE_UID_T, AC_TYPE_OFF_T.
54758	* unixconf.h.in: Do not define size_t, pid_t, uid_t, off_t.
54759
54760	No compiler expands __builtin_strcmp inline.
54761	* aclocal.m4 (CL_BUILTIN_STRCMP): Remove.
54762	* configure.in: Do not call CL_BUILTIN_STRCMP.
54763	* unixconf.h.in: Do not define HAVE_BUILTIN_STRCMP.
54764	* lispbibl.d (asciz_equal): Do not define as a macro.
54765	* spvw.d (asciz_equal): Define as a function always.
54766
54767	Assume clock_t is defined.
54768	* aclocal.m4 (CL_CLOCK_T): Remove.
54769	* configure.in: Do not call CL_CLOCK_T.
54770	* unixconf.h.in: Do not define CLOCK_T.
54771	* acorn.d: Likewise.
54772	* time.d (get_run_time): Use clock_t instead of CLOCK_T.
54773
54774	Assume mode_t is defined.
54775	* aclocal.m4 (CL_MKDIR): Do not determine MODE_T, use mode_t instead.
54776	(CL_OPEN): Use mode_t instead of MODE_T. Do not depend on CL_MKDIR.
54777	* unixconf.h.in: Do not define MODE_T.
54778	* unix.d: Use mode_t instead of MODE_T.
54779	* unixaux.d (nonintr_open): Likewise.
54780
54781	Assume ISC and Minix are dead.
54782	* configure.in: Do not call AC_ISC_POSIX and AC_MINIX.
54783	* unixconf.h.in: Do not define _POSIX_SOURCE, _POSIX_1_SOURCE, _MINIX.
54784
54785	Assume rename() is available.
54786	* aclocal.m4 (CL_RENAME): Do not test for rename.
54787	* unixconf.h.in: Do not define HAVE_RENAME.
54788	* unix.d: Assume rename exists.
54789	* unixaux.d (rename): Remove function.
54790
54791	Assume <stdlib.h> exists.
54792	* aclocal.m4 (CL_ACCESSFLAGS, CL_OPENFLAGS, RL_TERM, CL_MEMSET)
54793	(CL_MALLOC, CL_FREE, CL_SIGPROCMASK, CL_SIGNAL_REINSTALL)
54794	(CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL)
54795	(CL_SIGACTION_UNBLOCK, CL_ABORT, CL_GETENV, CL_PUTENV, CL_SETLOCALE)
54796	(CL_RLIMIT, CL_VFORK, CL_EXECV, CL_EXECL, CL_WAITPID, CL_RUSAGE)
54797	(CL_GETCWD, CL_CHDIR, CL_MKDIR, CL_RMDIR, CL_FSTAT, CL_STAT)
54798	(CL_LSTAT, CL_READLINK, CL_ELOOP, CL_OPENDIR, CL_CLOSEDIR, CL_OPEN)
54799	(CL_READ_WRITE, CL_WRITE, CL_CHMOD, CL_RENAME, CL_UNLINK, CL_IOCTL)
54800	(CL_SELECT, CL_SETITIMER, CL_LOCALTIME, CL_GETPWNAM, CL_GETPWUID)
54801	(CL_GETHOSTNAME, CL_GETHOSTBYNAME, CL_ADDRESS_RANGE, CL_MMAP)
54802	(CL_MPROTECT, CL_CODEEXEC, CL_SHMGET, CL_SHMAT, CL_SHMCTL)
54803	(CL_SHM_RMID, CL_DYNLOAD, CL_ICONV, CL_FILECHARSET):
54804	  Assume <stdlib.h> exists.
54805	(CL_STDLIB_H): Remove.
54806	* configure.in: Do not call CL_STDLIB_H.
54807	* unixconf.h.in: Do not define HAVE_STDLIB_H.
54808
54809	Assume <stddef.h> exists.
54810	* aclocal.m4 (CL_STDDEF_H): Remove.
54811	* configure.in: Do not call CL_STDDEF_H.
54812	* unixconf.h.in: Do not define HAVE_STDDEF_H.
54813
54814	Assume waitpid() is available.
54815	* aclocal.m4 (CL_WAITPID): Do not test for waitpid or <sys/wait.h>.
54816	* unix.d: Assume waitpid exists.
54817	* unixaux.d (wait2): Likewise.
54818	* sigcld.d (end_want_sigcld): Likewise.
54819	* unixconf.h.in: Do not define HAVE_WAITPID and HAVE_SYS_WAIT_H.
54820
54821	Assume memset() is available.
54822	* aclocal.m4 (CL_MEMSET): Do not test for memset.
54823	(CL_SIGACTION_REINSTALL, CL_SIGACTION_UNBLOCK): Assume memset exists.
54824	* spvw.d: Likewise.
54825	* unix.d: Likewise.
54826	* unixaux.d (install_signal_handler): Likewise.
54827	* unixconf.h.in: Do not define HAVE_MEMSET.
54828	* win32.d: Likewise.
54829
54830	* configure.in: Remove AC_C_CONST call.
54831	* unixconf.h.in (const): Do not define.
54832
54833	* aclocal.m4 (CL_RAISE): Fix harmless typo.
54834
54835	* aclocal.m4 (CL_RLIMIT): Prefer RLIMIT_RESOURCE_T="int" to
54836	  RLIMIT_RESOURCE_T="enum __rlimit_resource".
54837
548381999-08-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54839
54840	* stream.d (check_float_eltype, READ-FLOAT, WRITE-FLOAT): New
54841	  functions.
54842	* lispbibl.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
54843	(DF_to_c_double): Declare always, not only if HAVE_FFI.
54844	* flo_konv.d (c_float_to_FF, FF_to_c_float, c_double_to_DF)
54845	(DF_to_c_double): Define always, not only if HAVE_FFI.
54846	* floatpri.lsp (write-float-decimal): Rename from write-float.
54847	* lisparit.d (print_float): Call sys::write-float-decimal instead of
54848	  sys::write-float.
54849
54850	* type.lsp (canonicalize-type): Call typespec-error if the argument is
54851	  not a valid typespec.
54852
548531999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54854
54855	* aridecl.d (FF_exp_low, FF_exp_mid, FF_exp_high): Always choose the
54856	  IEEE values.
54857	(DF_exp_low, DF_exp_mid, DF_exp_high): Likewise.
54858
548591999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54860
54861	* modules/clx/new-clx/demos/qix.lsp (draw-qix): Do not ignore nlines.
54862	  Improve herald message.
54863
548641999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54865
54866	* pathname.d (PARSE-NAMESTRING): Do not make strong assumptions about
54867	  the algorithm employed by nreconc. Fixes a bug parsing "~/foo/".
54868
548691999-08-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54870
54871	* makemake.in (install_root): New variable.
54872	(installdirs, install-bin, install-man, install-doc, uninstall-bin)
54873	(uninstall-man,): Prepend $(install_root) to every installation
54874	  directory.
54875
548761999-07-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54877
54878	* spvw_ctype.d (init_ctype): Accept "he" as a new name for "iw".
54879
548801999-07-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54881
54882	* makemake.in (BINARY_DISTRIB): Also define on HP-UX 10.
54883
548841999-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54885
54886	* pathname.d (init_pathnames) [WIN32_NATIVE]: Follow documented
54887	  calling convention for GetVersionInfoEx.
54888	* misc.d (MACHINE-VERSION) [WIN32_NATIVE]: Likewise.
54889
548901999-07-26  Jörg Höhle  <hoehle@tzd.telekom.de>
54891
54892	* screen.lsp (generic-stream-read-char-will-hang-p)
54893	(generic-stream-clear-input): Define the methods on
54894	  keyboard-controller, not screen-controller.
54895
548961999-07-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54897
54898	* Version 1999-07-22 released.
54899
549001999-07-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54901
54902	* eval.d (interpret_bytecode_) [MC680X0]: Fix syntax error in
54903	  S_operand_ignore_ macro.
54904
54905	* charstrg.d (stringof): Change dotimesC into dotimesL.
54906
549071999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54908
54909	* init.lsp (load): Put back the call to ENGLISH. Necessary for
54910	  internationalization.
54911
549121999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54913
54914	* aclocal.m4 (CL_RAISE): New macro.
54915	* unixconf.h.in (HAVE_RAISE): New macro.
54916	* configure.in: Call it.
54917	* unix.d (raise): Declare only if HAVE_RAISE is defined.
54918	* spvw_sigpipe.d (sigpipe_handler): Use kill(getpid(),...) if
54919	  HAVE_RAISE is not defined.
54920
549211999-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54922
54923	* makemake.in (distrib): If BINARY_DISTRIB is defined, distribute
54924	clisp-link, linkkit, lisp.a etc. nevertheless, because we do not
54925	know whether the user has a C compiler or not.
54926
549271999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54928
54929	* record.d (CLOS::%ALLOCATE-INSTANCE): Fix typo in error message.
54930
549311999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54932
54933	* asmi386.sh: New optional argument -no-C.
54934	* Makefile.devel (src/ari80386.msvc.c, src/sp80386.msvc.c): Pass
54935	  option -no-C to asmi386.sh.
54936
549371999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54938
54939	* makemake.in (clisp.html): Substitute CLHSROOT, like in impnotes.html.
54940
549411999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54942
54943	* stream.d (wr_ch_unbuffered_dos, wr_ch_buffered_dos): Output crlf
54944	  only when obj is #\Newline.
54945
549461999-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54947
54948	* misc.d (MACHINE-VERSION) [WIN32]: On Win95, use info.dwProcessorType.
54949
549501999-07-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54951
54952	* makemake.in (XCFLAGS): Add "-fno-gcse" when using gcc-2.95 on Sparc.
54953
549541999-07-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54955
54956	* spvw.d (usage): Reorder command line options. Split into groups.
54957
549581999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54959
54960	* lispbibl.d (SPARC64): New macro.
54961	  Treat SPARC64 mostly like DECALPHA and MIPS64.
54962	* arisparc64.d: New file.
54963	* spsparc64.d: New file.
54964	* arilev0.d (mulu16, mulu32, mulu32_unchecked, divu_3216_1616)
54965	(divu_3216_3216, divu_3232_3232, divu_6432_3232): Provide
54966	  implementations for SPARC64, consistently with arisparc64.d.
54967	* arilev1.d [SPARC64]: Include arisparc64 instead of arisparc.
54968	* makemake.in (cpu): Possibly set to sparc64.
54969	(ARI_ASMD, ARI_ASMS): Possibly add arisparc64.
54970	(SP_ASMD, SP_ASMS): Possibly add spsparc64.
54971	* FILES.1: Mention arisparc64, spsparc64, arimips64.
54972
549731999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54974
54975	Remove support for K&R Sparc cc.
54976	* makemake.in: If TSYS = sun4 and not compiling with GNU C, assume
54977	  SunPRO C. Drop dependencies and rules for cc_sparc.il.
54978	* cc_sparc.il: Remove file.
54979	* FILES.1: Do not mention cc_sparc.il.
54980
549811999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54982
54983	* autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Test for `__sparc__',
54984	  because gcc-2.95 on SparcLinux defines only `__sparc__', not `sparc'.
54985	* lispbibl.d: Likewise.
54986
549871999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54988
54989	* autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU)
54990	(CL_CANONICAL_HOST_CPU_FOR_FFCALL): Distinguish "sparc" and
54991	  "sparc64" according to the C compiler, not the uname result.
54992
549931999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54994
54995	* makemake.in: Treat gcc version 3.* like gcc version 2.95.
54996
549971999-07-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
54998
54999	* arisparc.d (compare_loop_up) [COUNTER_LOOPS]: Bug fix.
55000	(shiftright_loop_up): Save 1 cycle if count==0.
55001
550021999-07-15  Jörg Höhle  <Joerg.Hoehle@gmd.de>
55003
55004	* affi.d (SYSTEM::MEM-WRITE): No need to check for integerp(wert),
55005	  it is done later during conversion.
55006
55007	* socket.d (socket_getpeername): Fix the length argument to
55008	  gethostbyaddr.
55009
550101999-07-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55011
55012	* record.d (FINALIZE): Call coerce_function.
55013
550141999-07-09  Jörg Höhle  <hoehle@tzd.telekom.de>
55015
55016	* stream.d (SOCKET-STREAM-HANDLE): Use TheSocket(), not TheHandle().
55017
550181999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55019
55020	* stream.d (low_clear_input_unbuffered_handle) [WIN32]: Set the
55021	  ignore_next_LF flag after eating a CR.
55022	(clear_input_unbuffered) [WIN32]: Do not reset the ignore_next_LF
55023	  flag.
55024
550251999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55026
55027	* win32aux.d (interruptible_active): New variable.
55028	(temp_interrupt_handler): Query it and set it to FALSE.
55029	(DoInterruptible): Set it to TRUE only while the thread is running.
55030
550311999-07-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55032
55033	* misc.d (MACHINE-VERSION) [WIN32]: Use the info.wProcessorLevel field
55034	  only on WinNT.
55035
550361999-07-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55037
55038	Do not access objects in memory through `oint*' pointers.
55039	* spvw_mark.d (mark, unmark, marked): Use as_object/as_oint
55040	  conversions instead of oint* memory access.
55041	* spvw_update.d (update_STACKs): Use as_oint conversion instead of
55042	  oint* memory access.
55043	* spvw_garcol.d (gc_mark): Change type of `dies_' to `object*'.
55044	(gc_mark_stack, alive): Use as_oint conversion instead of oint*
55045	  memory access.
55046	(gc_morris3, update, update_stackobj): Use as_object/as_oint
55047	  conversions instead of oint* memory access.
55048	* spvw_memfile.d (update, loadmem_update): Likewise.
55049	* eval.d (nest_var, funcall_iclosure): Likewise.
55050	* control.d (make_variable_frame, LET, LET*, SYMBOL-MACROLET)
55051	(MULTIPLE-VALUE-BIND): Likewise.
55052
550531999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55054
55055	* utils/gcc-cccp/cccp.c (output_line_command): In the filename
55056	  being output, convert backslashes to double backslashes.
55057
550581999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55059
55060	Make sure the default-file-encoding is set to ISO-8859-1 during
55061	building, even if the user has set a different LC_CTYPE variable.
55062	* spvw.d (usage): Add -E option.
55063	(argv_encoding_file, argv_encoding_pathname, argv_encoding_terminal)
55064	(argv_encoding_foreign, argv_encoding_misc): New variables.
55065	(main): Add -E option.
55066	* _clisp.c (main): Handle -E option.
55067	* makemake.in (interpreted.mem, *.fas, lispinit.mem, lispinit2.mem)
55068	(testsuite, $(MODULES)): Together with option "-norc", pass
55069	  "-Efile ISO-8859-1".
55070	* encoding.d (encoding_from_name): New function, extracted from
55071	  init_dependent_encodings. Also accept ISO-8859-10/13/14/15.
55072	(init_dependent_encodings): Call it. Respect the values of
55073	  argv_encoding_file, argv_encoding_pathname, argv_encoding_terminal,
55074	  argv_encoding_foreign, argv_encoding_misc.
55075
550761999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55077
55078	Fix interpretation of LC_* and LANG environment variables.
55079	* spvw_ctype.d (init_ctype): Treat empty environment values like
55080	  unset environment variables. LANG is not supposed to contain colons.
55081	  The encoding can be followed by other suffixes.
55082
550831999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55084
55085	* lispbibl.d (GENERATIONAL_GC): Do not define on IRIX.
55086
550871999-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55088
55089	* makemake.in (NLS_INCLUDES): Add nls_iso8859_10, nls_iso8859_13.
55090	* encoding.d: Include them.
55091	(nls_tables): Refer to them.
55092	* pseudofun.d: Likewise.
55093
550941999-06-25  Sam Steingold  <sds@goems.com>
55095
55096	* describe.lsp (apropos): print the macro for symbol-macro, no
55097	evaluation.
55098	(describe-object): ditto.
55099	Also, describe CAR & CDR for a simple cons.
55100
551011999-06-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55102
55103	Do not use Unicode API on Win32. It does not work on Win95.
55104	* lispbibl.d, win32.d, spvw.d, spvw_debug.d, spvw_language.d,
55105	  spvw_memfile.d, encoding.d, charstrg.d, pathname.d, stream.d,
55106	  misc.d, error.d, errwin32.d, win32aux.d: Revert most of 1999-06-20
55107	  patch.
55108
551091999-06-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55110
55111	* pathname.d (asciz_dir_to_pathname_): Change declaration of pathbuf.
55112	* errwin32.d (OS_error_internal_body): Fix compilation error.
55113
551141999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55115
55116	Try to solve startup problems on Win95.
55117	* spvw.d (main) [TRIVIALMAP_MEMORY]: Call prepare_zeromap with
55118	  shrinkp=FALSE.
55119
551201999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55121
55122	Determine the initial encoding by examining the user's locale.
55123	* lispbibl.d (init_dependent_encodings): New declaration.
55124	* spvw_ctype.d: New file.
55125	* spvw.d: Include <string.h> always.
55126	  Include spvw_ctype.d.
55127	(main): Remove LC_CTYPE code, instead call `init_ctype'. Later, call
55128	  `init_dependent_encodings'.
55129	* encoding.d (init_dependent_encodings): New function, moved out of
55130	  init_encodings. default-file-encoding and the others depend on
55131	  locale_charset.
55132	(init_encodings): Call init_dependent_encodings.
55133	* makemake.in (SPVW_INCLUDES): Add spvw_ctype.
55134	* gettext/po/Makefile.devel (DSOURCES): Add spvw_ctype.
55135
551361999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55137
55138	Use Unicode API on Win32.
55139	* lispbibl.d (wchar, WLITERAL): New macros.
55140	(wgetenv): New macro.
55141	(wasciz_out, wasciz_length): New declaration.
55142	(wasciz_equal, wwasciz_equal): New declaration.
55143	(n_char_to_string): Rename from make_string.
55144	(n_wchar_to_string): New declaration.
55145	(wasciz_to_string): New declaration.
55146	(with_string_w0, with_sstring_w0): New macros.
55147	(n_chart_to_wchar): New declaration.
55148	* win32.d (wgetenv): New macro.
55149	* spvw.d (wasciz_length, wasciz_equal, wwasciz_equal): New functions.
55150	(program_name): Change type to `wchar*'.
55151	(loadmem): Change declaration.
55152	(usage): Call wasciz_out instead of asciz_out.
55153	(main): On Win32 with UNICODE, rename to `wmain'. Change type of
55154	  argv to `wchar* []'. Change types of argv_lisplibdir, argv_memfile,
55155	  argv_init_files, argv_compile_files, argv_package, argv_expr,
55156	  argv_execute_file, argv_execute_args, argv_language, argv_localedir,
55157	  argv_init_files, argv_compile_files to use `wchar' instead of `char'.
55158	  Use wasciz_equal, wasciz_to_string, wasciz_out and WLITERAL where
55159	  appropriate.
55160	* spvw_debug.d (wasciz_out): New function.
55161	* spvw_language.d (init_language, init_language_from): Change
55162	  declarations.
55163	(init_language_from): Use wasciz_equal instead of asciz_equal.
55164	(init_language): Use wgetenv instead of getenv where appropriate.
55165	* spvw_memfile.d (loadmem): Change declaration. Use wasciz_equal
55166	  instead of asciz_equal where appropriate.
55167	* encoding.d (n_char_to_string): Rename from make_string.
55168	(n_char_to_string_): Rename from make_string_.
55169	(n_wchar_to_string_): New function.
55170	(asciz_to_string, asciz_to_string_): Update.
55171	(wasciz_to_string_): New function.
55172	* charstrg.d (n_chart_to_wchar): New function.
55173	* pathname.d (make_directory, delete_directory)
55174	(change_current_directory, delete_existing_file)
55175	(delete_file_if_exists, delete_file_before_rename)
55176	(rename_existing_file, rename_file_to_nonexisting): Change
55177	  declaration.
55178	(asciz_dir_to_pathname): Change declaration. Use n_wchar_to_string
55179	  instead of make_string.
55180	(good_drive): Use wchar instead of char.
55181	(default_drive): Return wchar instead of uintB. Use wchar instead
55182	  of char.
55183	(default_directory_of): Use wchar instead of char.
55184	(assure_dir_exists): Likewise. Use n_wchar_to_string instead of
55185	  make_string.
55186	(change_default): Use wchar instead of char.
55187	(access0): Change declaration.
55188	(file_exists): Use wchar instead of char.
55189	(directory_exists, DELETE-FILE, rename_file): Likewise.
55190	(create_new_file, open_input_file, open_output_file): Change
55191	  declaration.
55192	(create_backup_file): Change declaration. Use wchar instead of char.
55193	(open_file): Use wchar instead of char.
55194	(extract): Use n_char_to_string instead of make_string.
55195	(directory_search_1subdir): Use wchar instead of char.
55196	(directory_search_scandir): Use n_char_to_string instead of
55197	  make_string. Use wchar instead of char. Use wasciz_to_string instead
55198	  of asciz_to_string.
55199	(DIRECTORY): Use n_char_to_string instead of make_string.
55200	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Use wchar instead
55201	  of char.
55202	(init_pathnames): Use n_char_to_string instead of make_string.
55203	  Use wchar instead of char. Use wgetenv instead of getenv.
55204	(FILE-WRITE-DATE, SHELL): Use wchar instead of char.
55205	(argv_lisplibdir): Change declaration.
55206	* stream.d (make_keyboard_stream): Use wchar instead of char.
55207	(create_input_pipe): Change declaration.
55208	(MAKE-PIPE-INPUT-STREAM): Update.
55209	(create_output_pipe): Change declaration.
55210	(MAKE-PIPE-OUTPUT-STREAM): Update.
55211	(create_io_pipe): Change declaration.
55212	(MAKE-PIPE-IO-STREAM): Update.
55213	* misc.d (SYS::GETENV): Use wchar instead of char. On Win32 with
55214	  UNICODE, use _wgetenv. Use wasciz_to_string instead of
55215	  asciz_to_string.
55216	(SYS::REGISTRY): Use wchar instead of char.
55217	* error.d (write_errorasciz, write_errorwasciz): New functions.
55218	* erramiga.d (OS_error_internal): Use write_errorasciz instead of
55219	  write_errorstring.
55220	* errdjgpp.d (OS_error_internal): Likewise.
55221	* errunix.d (OS_error_internal): Likewise.
55222	* errwin32.d (OS_error_info): Remove type.
55223	(OS_error_info_callback): New type.
55224	(get_OS_error_info): Take a callback and call it, instead of
55225	  returning the result in a structure. Use wchar instead of char.
55226	(OS_error_internal_body): New function, split out of
55227	  OS_error_internal. Call write_errorasciz and write_errorwasciz
55228	  instead of write_errorstring.
55229	(SOCK_error): Call write_errorasciz instead of write_errorstring.
55230	(errno_out_body): New function, split out of errno_out. Call
55231	  wasciz_out.
55232	* rexx.d (rexx_getmsg): Use n_char_to_string instead of make_string.
55233	* win32aux.d (init_win32): Call non-Unicode versions of OemToChar and
55234	  CharToOem.
55235	* genclisph.d (n_char_to_string): Rename from make_string.
55236
552371999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55238
55239	Do not force building clisp.dvi on non-Unix OSes.
55240	* makemake.in (MANUALS): Remove clisp.dvi.
55241	(manual): Add it, on Unix only.
55242	(manualx): Add it, on non-Unix only.
55243	(install-doc, uninstall-man): Treat it like $(MANUALS).
55244
552451999-06-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55246
55247	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgwin32.lsp
55248	(*clhs-root-default*): Assign default value.
55249	* makemake.in (config.lsp): Emit "echo ... >> config.lsp" only for
55250	  Unix.
55251
552521999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55253
55254	* stream.d (low_flush_buffered_socket): Call sock_write, not
55255	  full_write.
55256
552571999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55258
55259	* stream.d (create_input_pipe): New function.
55260	(MAKE-PIPE-INPUT-STREAM): Call it.
55261	(create_output_pipe): New function.
55262	(MAKE-PIPE-OUTPUT-STREAM): Call it.
55263	(create_io_pipe): New function.
55264	(MAKE-PIPE-IO-STREAM): Call it.
55265
552661999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55267
55268	* socket.d (inet_addr): Do not declare on WIN32.
55269	(setsockopt): Remove second declaration.
55270	(SOCKET-SERVICE-PORT): On WIN32, use a replacement for getservent().
55271
552721999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55273
55274	* makemake.in (callback.h): Copy also vacall_r.h and trampoline_r.h.
55275
552761999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55277
55278	* lispbibl.d (GETTEXT): Define also if not using GNU_GETTEXT.
55279
552801999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55281
55282	* places.lsp (MACRO-FUNCTION): Ignore `env'.
55283
552841999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55285
55286	* stream.d (strm_keyboard_len): Define as strm_len, not 0.
55287	(make_keyboard_stream): Do not add strm_len to strm_keyboard_len, it
55288	  is already included.
55289
552901999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55291
55292	* lispbibl.d (malloc, free): Remove declarations.
55293	(malloca, freea): Move declarations.
55294	(DRIVER_frame_data): Remove type.
55295	* spvw_alloca.d (malloc, free): New declarations.
55296	* aridecl.d (HAVE_NUM_STACK, NUM_STACK, NUM_STACK_bound)
55297	(NUM_STACK_normal): Remove declarations.
55298	(num_stack_need, num_stack_need_1): Remove obsolete code. Add
55299	  `unused' to avoid gcc warnings.
55300	(NUM_STACK_normal, arith_ueberlauf, compare_NUM_STACK_bound): Remove.
55301	(SAVE_NUM_STACK, RESTORE_NUM_STACK. num_stack_need)
55302	(num_stack_need_1): New definitions, using malloca/freea.
55303	* intlog.d (I_I_logior_I, I_I_logxor_I, I_I_logand_I, I_I_logeqv_I)
55304	(I_I_lognand_I, I_I_lognor_I, I_I_logandc2_I, I_I_logorc2_I)
55305	(I_lognot_I): Defer RESTORE_NUM_STACK until done with the temporary
55306	  digit sequence.
55307	(I_I_ash_I): Do RESTORE_NUM_STACK before error.
55308	* intplus.d (DS_1_plus, DS_minus1_plus): Do RESTORE_NUM_STACK before
55309	  error.
55310	(I_1_plus_I, I_minus1_plus_I): Defer RESTORE_NUM_STACK until done
55311	  with the temporary digit sequence.
55312	(I_I_plus_I, I_minus_I, I_I_minus_I): Likewise. Do RESTORE_NUM_STACK
55313	  before error.
55314	* intbyte.d (lb_extract): Move SAVE_NUM_STACK and defer
55315	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55316	(mkf_extract): Likewise.
55317	* intmal.d (UDS_square_UDS): Do RESTORE_NUM_STACK before error.
55318	(I_square_I): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK until
55319	  done with the temporary digit sequence.
55320	(UDS_UDS_mal_UDS): Do RESTORE_NUM_STACK before error.
55321	(I_I_mal_I): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK until
55322	  done with the temporary digit sequence.
55323	* intdiv.d (UDS_divide_): Move SAVE_NUM_STACK and defer
55324	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55325	(I_I_divide_I_I): Defer SAVE_NUM_STACK until needed. Defer
55326	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55327	* intgcd.d (I_I_gcd_I) [1]: Defer RESTORE_NUM_STACK until done with
55328	  the temporary digit sequence.
55329	(I_I_gcd_I) [3]: Likewise.
55330	(I_I_xgcd_I_I_I) [3]: Do RESTORE_NUM_STACK before side return.
55331	* intsqrt.d (UDS_sqrt_): Defer RESTORE_NUM_STACK until done with the
55332	  temporary digit sequence.
55333	(I_isqrt_I, I_sqrtp):  Move SAVE_NUM_STACK and defer
55334	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55335	(I_rootp): Defer RESTORE_NUM_STACK until done with the temporary
55336	  digit sequence.
55337	* intread.d (DIGITS_to_I): Defer RESTORE_NUM_STACK until done with the
55338	  temporary digit sequence.
55339	* dfloat.d (DF_DF_durch_DF): Defer RESTORE_NUM_STACK until done with
55340	  the temporary digit sequence.
55341	(DF_sqrt_DF): Likewise.
55342	* lfloat.d (LF_ftruncate_LF, LF_futruncate_LF, LF_fround_LF): Defer
55343	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55344	(LF_LF_plus_LF): Do RESTORE_NUM_STACK before error or return.
55345	(LF_square_LF): Move SAVE_NUM_STACK and defer RESTORE_NUM_STACK
55346	  until done with the temporary digit sequence. Do RESTORE_NUM_STACK
55347	  before error or return.
55348	(LF_LF_mal_LF): Likewise.
55349	(LF_LF_durch_LF): Likewise.
55350	(LF_sqrt_LF): Likewise.
55351	(LF_to_I): Move SAVE_NUM_STACK.
55352	* realrand.d (I_random_I): Move SAVE_NUM_STACK and defer
55353	  RESTORE_NUM_STACK until done with the temporary digit sequence.
55354	* lisparit.d (mal_10_plus_x): Defer RESTORE_NUM_STACK until done with
55355	  the temporary digit sequence. Do RESTORE_NUM_STACK before error.
55356	(decimal_string): Defer RESTORE_NUM_STACK until done with the
55357	  temporary digit sequence.
55358	* eval.d (unwind): No need to reset NUM_STACK when reaching a
55359	  DRIVER_frame.
55360	* debug.d (driver): No need to save current NUM_STACK in the frame.
55361	(break_driver): No need to save and restore NUM_STACK.
55362	* control.d (SYS::DRIVER): No need to save current NUM_STACK in the
55363	  frame.
55364	* spvw.d: No need any more for include "aridecl.c".
55365	(main): Remove teile_NUM_STACK, assume it is 0.
55366
553671999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55368
55369	* intlog.d (I_I_ash_I): Restrict begin/end_arith_call() to the case
55370	  where it is needed.
55371	* intbyte.d (lb_extract): Restrict begin/end_arith_call() to the case
55372	  where it is needed.
55373	* intmal.d (I_square_I): Move begin_arith_call() until after
55374	  num_stack_need.
55375	* intgcd.d (I_I_gcd_I) [3]: Move begin_arith_call() until after
55376	  num_stack_need.
55377	(I_I_xgcd_I_I_I) [3]: Likewise.
55378	* intsqrt.d (UDS_sqrt_): Move begin_arith_call() until after
55379	  num_stack_need.
55380	(I_rootp): Likewise.
55381	* lfloat.d (LF_LF_plus_LF): Move begin_arith_call() until after
55382	  num_stack_need.
55383	(LF_sqrt_LF): Restrict begin/end_arith_call() to the case where it
55384	  is needed.
55385	* realelem.d (R_R_gleich): Restrict begin/end_arith_call() to the case
55386	  where it is needed.
55387	* lisparit.d (mal_10_plus_x): Restrict begin/end_arith_call().
55388
553891999-06-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55390
55391	* intelem.d (FN_to_NDS_nocopy, I_to_NDS_nocopy): Expand into more
55392	  efficient code.
55393	(FN_to_NDS_nocopy_): New macro.
55394	(BN_to_NDS_nocopy): Add `unused' to avoid gcc warnings.
55395	* intmal.d (I_I_mal_I): Put brace around I_to_NDS_nocopy.
55396	* intdiv.d (I_I_divide_I_I): Put brace around I_to_NDS_nocopy.
55397	* intsqrt.d (I_rootp): Put brace around I_to_NDS_nocopy.
55398
553991999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55400
55401	* spvw_sigsegv.d (stackoverflow_handler): Restore the STACK on Solaris
55402	  and OSF/1 as well.
55403	* lispbibl.d: After sigsegv.h is included, undefine DS, SP, EAX.
55404
554051999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55406
55407	* lispbibl.d (UNIX_OPENBSD): New macro.
55408	* eval.d (interpret_bytecode_): Use hairy gas assembler syntax only
55409	  on Linux and *BSD, never on other OSes.
55410
554111999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55412
55413	* eval.d (interpret_bytecode_): Use "\n\t" as assembler statement
55414	  separator instead of ";".
55415
554161999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55417
55418	* describe.lsp (describe-object): Put back i18n call around
55419	  punctuation strings.
55420	* socket.d (resolve_host_ipaddr): Likewise.
55421
554221999-06-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55423
55424	* lispbibl.d, genclisph.d: Prepare for __GNUC__ == 3.
55425
554261999-06-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55427
55428	* compiler.lsp (macroexpand-1): Do not pass ENV to `macro-function'.
55429	(c-form): Do not pass ENV to `macro-function'.
55430
55431	* places.lsp (MACRO-FUNCTION): Add optional, ignored env argument.
55432
55433	* control.d (SYSTEM::OLD-MACRO-FUNCTION): New function.
55434	* eval.d (FUNTAB): Use it instead of MACRO-FUNCTION.
55435	* compiler.lsp (funtab): Likewise.
55436
55437	* sequence.d (test_count_arg): Simplify.
55438
554391999-06-10  Sam Steingold  <sds@goems.com>
55440
55441	* describe.lsp (describe-object): dump `ENGLISH' before ".".
55442
55443	* socket.d (resolve_host_ipaddr): correct the order of arguments
55444	in the `fehler' call.
55445
55446	* init.lsp (*load-level*): new variable.
55447	(load): use it to indent the verbose printout nicely.
55448
554491999-06-10  Sam Steingold  <sds@goems.com>
55450
55451	* list.d (nreconc): be as smart about `nreconc' as we are about
55452	`nreverse'.
55453
554541999-06-09  Sam Steingold  <sds@goems.com>
55455
55456	* misc.d (set-ansi): set `*coerce-fixnum-char-ansi*',
55457	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
55458	* constsym.d: add `*coerce-fixnum-char-ansi*',
55459	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
55460	* spvw.d: add `*coerce-fixnum-char-ansi*',
55461	`*sequence-count-ansi*', and `*print-pathnames-ansi*'.
55462	* sequence.d (test_count_arg): check `*sequence-count-ansi*'.
55463	* io.d (pr_orecord): check `*print-pathnames-ansi*'.
55464	* charstrg.d (coerce_char): check `*coerce-fixnum-char-ansi*'.
55465	* places.lsp: add documentation for `*ansi*'.
55466
554671999-06-09  Sam Steingold  <sds@goems.com>
55468
55469	Implement the ANSI CL Issue MACRO-FUNCTION-ENVIRONMENT:YES
55470	* control.d (macro_function): optional second argument.
55471	* subr.d (macro_function): ditto.
55472	* compiler.lsp (macroexpand-1): pass ENV to `macro-function'
55473	(subr-info): optional second argument of `macro-function'.
55474	(c-form): pass ENV to `macro-function'.
55475
554761999-06-08  Sam Steingold  <sds@goems.com>
55477
55478	* describe.lsp (apropos-do-more): new function.
55479	(apropos): use it.
55480	(describe-object package): `*describe-nesting*' should be checked
55481	for being 0, not 1.
55482
554831999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55484
55485	* compiler.lsp (*toplevel-environment*, *toplevel-denv*): Move
55486	  variables...
55487	* init.lsp (*toplevel-environment*, *toplevel-denv*): ... to here.
55488
554891999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55490
55491	* intparam.d (printf_underscored): Change argument type to
55492	  `const char*'.
55493
554941999-06-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55495
55496	* init.lsp (defun): Do not use get-funname-symbol, to avoid
55497	  bootstrapping problems.
55498
554991999-06-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55500
55501	SOCK_error() generates an error of type `os-error'.
55502	* errwin32.d (SOCK_error): use `simple_os_error'.
55503
555041999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55505
55506	Make DEFUN behave the same way w.r.t. inlining, whether executing
55507	compiled or interpreted.
55508	* compiler.lsp (compile-form-in-toplevel-environment): New function.
55509	* init.lsp (load): Call it, do not pass nil as %denv% to compile-form.
55510	(defun): Save the lambdabody for inline compilation also when
55511	  running interpreted.
55512
555131999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55514
55515	New command-line option "-w".
55516	* spvw.d (usage): Mention "-w".
55517	(argv_wait_keypress): New variable.
55518	(main): Set it if option "-w" is given.
55519	(quit): If argv_wait_keypress, emit a message and call WAIT-KEYPRESS.
55520	* _clisp.c (main): Accept "-w".
55521	* keyboard.lsp (wait-keypress): New function.
55522
555231999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55524
55525	* describe.lsp (describe-object): Treat FOREIGN-FUNCTION, SYMBOL-MACRO,
55526	  ENCODING.
55527
555281999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55529
55530	Make DESCRIBE more robust against interruptions.
55531	* describe.lsp (describe-stream): New stream class.
55532	(stream-*): New methods on describe-stream.
55533	(describe-slotted-object): Omit all *describe-nesting* indentations.
55534	  Add *print-indent-lists* to tabpos. Call describe with stream, not
55535	  *standard-output*.
55536	(describe-object): Omit all *describe-nesting* indentations.
55537	  Call describe with stream, not *standard-output*.
55538	(describe-object) [PACKAGE]: Tweak spacing.
55539	(describe1): New function.
55540	(describe): Bind *describe-nesting* and *describe-done* instead of
55541	  setting them. In top-level calls, create a describe-stream.
55542	(describe-signature): Omit all *describe-nesting* indentations.
55543
555441999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55545
55546	* room.lsp (room, space-tabulate): Use *print-right-margin* instead of
55547	  sys::*prin-linelength* when it is non-NIL.
55548	* describe.lsp (describe): Likewise.
55549	* compiler.lsp (compile-file): Likewise.
55550
555511999-06-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55552
55553	* describe.lsp (describe-slotted-object, describe-object, describe)
55554	(describe-signature): Fix amount of indentation white space.
55555	(describe): Bind *describe-nesting* instead of setting it. This
55556	  ensures it goes back to 0 after describe signalled an error.
55557
555581999-06-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55559
55560	* io.d (READ-CHAR-STATUS): Remove function.
55561	(READ-CHAR-WILL-HANG-P): New function.
55562	* stream.d (listen_generic): Call GENERIC-STREAM-READ-CHAR-WILL-HANG-P
55563	  instead of GENERIC-STREAM-READ-CHAR-STATUS.
55564	(stream_listen): Call STREAM-READ-CHAR-WILL-HANG-P instead of
55565	  STREAM-READ-CHAR-STATUS.
55566	* gstream.lsp (stream-read-char-status): Remove function.
55567	(stream-read-char-will-hang-p): New function.
55568	(generic-stream-read-char-status): Remove function.
55569	(generic-stream-read-char-will-hang-p): New function.
55570	* screen.lsp (generic-stream-read-char-status@screen-controller):
55571	  Remove method.
55572	(generic-stream-read-char-will-hang-p@screen-controller): New method.
55573
555741999-06-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55575
55576	* describe.lsp (apropos-list, *apropos-do-more*, apropos): Move.
55577
555781999-06-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55579
55580	* cfgwin32.lsp (clhs-root): Do not signal an error if value not defined
55581	  in registry.
55582
555831999-06-04  Sam Steingold  <sds@goems.com>
55584
55585	* makemake.in: setq `*clhs-root-default*' in config.lsp.
55586	* cfgunix.lsp (clhs-root): new function.
55587	(*clhs-root-default*): new variable.
55588	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgsunux.lsp, cfgwin32.lsp:
55589	Likewise.
55590
555911999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55592
55593	* trace.lsp (untrace1): Do not use replace-in-fenv here either.
55594
555951999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55596
55597	* makemake.in (READLINELIB): Do not pass option "-r" to $(MAKE) for
55598	  building in subdirectory. It doesn't work with Irix 6.5 `make'
55599	  because readline/Makefile.in uses implicit rules.
55600
556011999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55602
55603	* lispbibl.d (Encoding): Add enc_towcs_error, enc_tombs_error slots.
55604	(encoding_length): Update.
55605	* encoding.d (uni32_mblen, uni32be_mbstowcs, uni32le_mbstowcs)
55606	(utf8_mblen, utf8_mbstowcs): Error handling respects enc_towcs_error.
55607	(nls_asciiext_mblen, nls_asciiext_wcslen): New functions.
55608	(nls_mblen, nls_mbstowcs, nls_asciiext_mbstowcs): Error handling
55609	  respects enc_towcs_error.
55610	(nls_wcslen, nls_wcstombs, nls_asciiext_wcstombs): Error handling
55611	  respects enc_tombs_error.
55612	(MAKE-ENCODING): Two new keyword arguments. Fully initialize newly
55613	  allocated encoding.
55614	(init_encodings): Fully initialize newly allocated encodings.
55615	  Stuff in nls_asciiext_mblen, nls_asciiext_wcslen where appropriate.
55616	  Pass two more unbounds to C_make_encoding.
55617	* stream.d (test_external_format_arg): Pass two more unbounds to
55618	  C_make_encoding.
55619	(iconv_mblen, iconv_mbstowcs): EILSEQ treatment respects
55620	  enc_towcs_error.
55621	(iconv_wcslen, iconv_wcstombs): EILSEQ treatment respects
55622	  enc_tombs_error.
55623	* pseudofun.d: Add nls_asciiext_mblen, nls_asciiext_wcslen.
55624	* type.lsp (canonicalize-type, encoding-charset): Update
55625	  sys::%record-ref argument.
55626
556271999-06-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55628
55629	* aclocal.m4 (CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL):
55630	  Canonicalize alpha variants to alpha.
55631
556321999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55633
55634	* makemake.in (CFILES): Do not include $UNICODE_INCLUDES $NLS_INCLUDES.
55635	(init): Instead, add them to the `init' target.
55636
556371999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55638
55639	Libtoolify avcall and callback.
55640	* foreign.d: Include avcall.h and callback.h.
55641	* makemake.in (foreign): Depend on avcall.h and callback.h.
55642	(avcall.h, libavcall.a, callback.h, libcallback.a): Create by
55643	  doing "make install-lib" in the subdirectory.
55644	(clean1): Remove libavcall.* and libcallback.*.
55645	(clean4): Remove avcall.h and callback.h.
55646
556471999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55648
55649	* asmi386.hh (DECLARE_FUNCTION): New macro.
55650	(INSN2MOVX): Fix bug with ANSI C preprocessors.
55651	(ALIGN): Do not put parentheses. For Solaris/x86.
55652	* asmi386.sh: Introduce C(...) macro calls. Recognize more jumps.
55653	  Introduce DECLARE_FUNCTION(...) macro calls.
55654
556551999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55656
55657	* makemake.in (sigsegv.h, libsigsegv.a): Do "make install-lib" instead
55658	  of "make install".
55659	(clean1): On Win32, remove sigsegv.lib, not libsigsegv.*.
55660
556611999-05-30  Sam Steingold  <sds@goems.com>
55662	    Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55663
55664	Implement ALLOCATE-INSTANCE.
55665	* record.d (clos::old-%allocate-instance): Rename from
55666	  clos::%allocate-instance.
55667	(clos::%allocate-instance): New function, with &rest arguments.
55668	(do_allocate_instance): New function. Remove unneeded if_classp
55669	  check.
55670	(clos::%initialize-instance): Adapt to new format of
55671	  *make-instance-table* entries.
55672	(clos::%make-instance): Likewise. Call do_allocate_instance, or
55673	  the effective method for allocate-instance if it is not the default
55674	  one.
55675	* eval.d (FUNTAB): clos::old-%allocate-instance replaces
55676	  clos::%allocate-instance.
55677	* compiler.lsp (funtab, c-DIRECT-FUNCTION-CALL): Likewise.
55678	* init.lsp: Export allocate-instance.
55679	* defs3.lsp: Likewise.
55680	* clos.lsp: Likewise.
55681	(*dynamically-modifiable-generic-function-names*): Add
55682	  `allocate-instance'.
55683	(|#'allocate-instance|): New variable.
55684	(std-add-method, std-remove-method): When changing allocate-instance,
55685	  call note-ai-change.
55686	(note-i-meta-change, note-ai-change): New functions.
55687	(valid-make-instance-keywords): Add the ALLOCATE-INSTANCE keywords.
55688	(make-instance-table-entry1): New function.
55689	(make-instance-table-entry2): Return 2 values.
55690	(initialize-instance@standard-object): Adapt to new format of
55691	  *make-instance-table* entries.
55692	(initial-initialize-instance): Create new-style *make-instance-table*
55693	  entry.
55694	(allocate-instance): New generic function.
55695	(initial-make-instance): Call the effective method for
55696	  allocate-instance. Create new-style *make-instance-table* entry.
55697
556981999-05-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55699
55700	* makemake.in: Change a few occurrences of ${NEXT_M} to ${NEXT_}.
55701
557021999-05-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55703
55704	Make --with-unicode the default.
55705	* makemake.in (info_help): Mention --without-unicode instead of
55706	  --with-unicode.
55707	(XCFLAGS, UNICODE_INCLUDES, NLS_INCLUDES): Test $with_nounicode
55708	  instead of $with_unicode.
55709	* configure: Do not pass --with-unicode to makemake.
55710	* Makefile.devel (*/makefile*): Create without --with-unicode.
55711
557121999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55713
55714	* type.lsp: (def-atomic-type, def-compound-type): New macros.
55715	(c-typep-alist1, c-typep-alist2, c-typep-alist3): Fill here.
55716	* compiler.lsp: Not here.
55717
557181999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55719
55720	* makemake.in (clean1): Remove libsigsegv.la.
55721	(clean4): Remove libintl.h, sigsegv.h.
55722	(clean5): Remove ANNOUNCE, GNU-GPL, SUMMARY, version.h, NEWS,
55723	  clisp.gif, MAGIC.add, ccmp2c, modprep.
55724
557251999-05-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55726
55727	* makemake.in (clean1, clean2): Do not remove wlisp* and wsuite*.
55728
557291999-05-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55730
55731	* makemake.in (sigsegv.h, libsigsegv.a): Generate by calling
55732	  "make install" in the subdirectory, not through symlinks.
55733
557341999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55735
55736	* configure.in: Add check for groff.
55737	* makemake.in (GROFF): New variable.
55738	(htmldir, dvidir): New Makefile variables.
55739	(ROFF_MAN, ROFF_DVI): Set if $GROFF is nonempty.
55740	(ROFF_DVI): Do not define if $GROFF is empty.
55741	(clisp.dvi): Create if and only if $GROFF is nonempty.
55742	(MANUALS): Include clisp.dvi if and only if $GROFF is nonempty.
55743	(installdirs): Create $(htmldir) and $(dvidir) instead of
55744	  $(mandir)/html.
55745	(install-man): Clean up dependencies.
55746	  Use $(htmldir) and $(dvidir) instead of $(mandir)/html.
55747	  Install clisp.dvi and clreadline.dvi if appropriate.
55748	(uninstall-man): Use $(htmldir) and $(dvidir) instead of
55749	  $(mandir)/html. Also remove clisp.dvi and clreadline.dvi.
55750	(distrib): Distribute clisp.dvi if and only if $GROFF is nonempty.
55751	(clean1): Also remove clisp.dvi.
55752	* _distmakefile (htmldir, dvidir): New variables.
55753	(install-man): Install clisp.1 without modifications.
55754	  Also install clisp.html, clisp.dvi, clreadline.html, clreadline.dvi.
55755
557561999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55757
55758	* configure: In avcall and callback, do "make minicheck" instead of
55759	  "make check".
55760
557611999-05-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55762
55763	* macros2.lsp (check-type): Do not quote the string argument.
55764	* conditio.lsp (check-type): Likewise.
55765
557661999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55767
55768	* makemake.in (distrib): Reorganize. Distribute the data/ directory
55769	  and its contents. Distribute the `full' linking set also if
55770	  BINARY_DISTRIB is set.
55771
557721999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55773
55774	Make `clisp' an executable, also in the case of UNIX_BINARY_DISTRIB.
55775	* _clisp.c [UNIX_BINARY_DISTRIB]
55776	(room_for_lisplibdir, room_for_localedir): New arrays.
55777	(LISPLIBDIR, LOCALEDIR): New definitions, pointing into the arrays.
55778	* utils/hardcode.c: New file.
55779	* _distmakefile: Treat UNIX_BINARY_DISTRIB like other UNIX platforms.
55780	(install): Create `clisp' as an executable, using `hardcode', not as
55781	  a shell script.
55782	* makemake.in (BINARY_DISTRIB): Also define on HP-UX 11.
55783	(GOOD_SH): Remove definition.
55784	(distrib): Distribute `clisp' and `hardcode'.
55785	* spvw.d (main, usage): Option -K is now available on all Unix
55786	  platforms.
55787	* configure.in: Remove call to CL_SHELLARGS.
55788	* unixconf.h.in (UNIX_USE_KSH, UNIX_BROKEN_SH): Remove definitions.
55789
557901999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55791
55792	* makemake.in (install-bin): Copy base/ and full/ using cp, not tar,
55793	  because they contain symbolic links.
55794
557951999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55796
55797	Make modules.o part of every linking set, including `base'.
55798	* makemake.in (lisp.a): Do not include modules.o.
55799	(modular): Depend on modules.o.
55800	(base): Link over modules.o.
55801	(distmakefile): Add modules.o to the BASE_LIBS and BASE_FILES
55802	  substitution.
55803	(distrib): Link over modules.o into $(TOPDIR)/base.
55804	* clisp-link.in (add-module-set): Check that the linking set contains
55805	  a file `modules.o'.
55806	(add-module-sets): Likewise. When no new modules, copy modules.o
55807	  in any case.
55808	(run): Check that the linking set contains a file `modules.o'.
55809
558101999-05-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55811
55812	* makemake.in (distmakefile): Do not set $wlibs, not needed any more.
55813
558141999-05-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55815
55816	* spvw.d (initmem): Do not call SYS::SET-ANSI (no need, doesn't work).
55817
558181999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55819
55820	* intlog.d (integerlength32) [RS6000]: Use new or old mnemonics
55821	  depending on OS.
55822
558231999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55824
55825	Libtoolify sigsegv.
55826	* autoconf/libtool.m4: New file, from libtool-1.2.
55827
558281999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55829
55830	For Linux 2.0.x with glibc2.0.
55831	* aclocal.m4 (CL_SIGALTSTACK): Define HAVE_SIGALTSTACK only if the
55832	  sigaction flags macro SA_ONSTACK is also defined.
55833
558341999-05-13  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>
55835
55836	* sequence.d (READ-CHAR-SEQUENCE): Changed calls to
55837	  `iarray_displace_check' to `array_displace_check'. Adjusted return
55838	  value: The first position not written is returned.
55839	(WRITE-CHAR-SEQUENCE): Likewise, uses `array_displace_check' now.
55840	(WRITE-BYTE-SEQUENCE): In case of (VECTOR (UNSIGNED-BYTE 8)) use
55841	  another indirection via '->data' before calling 'read_byte_array'.
55842	(READ-BYTE-SEQUENCE): Likewise. Additionally the first position not
55843	  written is returned.
55844
558451999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55846
55847	* spvw.d (init_symbol_values): Do not call a function here, too early.
55848	(initmem): Call SYS::SET-ANSI here.
55849
558501999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55851
55852	 * lispbibl.d (stream_fd): Move declaration.
55853	 * stream.d (stream_fd): Move function.
55854
558551999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55856
55857	Followup to Sam's 1999-04-07 patch.
55858	* eval.d (check_for_illegal_keywords): Remove misplaced symbolp test.
55859	* defmacro.lsp (analyze-key): Use symbolp instead of keywordp.
55860	* compiler.lsp (test-argument-syntax): Likewise.
55861	(kvalue-form-index): Likewise.
55862	* conditio.lsp (expand-restart-case): Likewise.
55863	* error.d (SYSTEM::CERROR-OF-TYPE, SYSTEM::ERROR-OF-TYPE): Likewise.
55864
558651999-05-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55866
55867	Followup to Sam's 1999-04-07 patch.
55868	* eval.d (eval1): Treat arrays as self-evaluating in all cases.
55869	* compiler.lsp (l-constantp, c-constantp, c-constant-value): Treat
55870	  arrays as constants.
55871
558721999-05-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55873
55874	* trace.lsp (trace1): No need to use replace-in-fenv.
55875	(replace-in-fenv): Remove function.
55876
558771999-05-12  Sam Steingold  <sds@goems.com>
55878
55879	* format.lsp (format-integer): (format nil "~@d" 0) => "+0"
55880
558811999-05-12  Sam Steingold  <sds@goems.com>
55882
55883	* loop.lsp (expand-loop): put `then-form' into `stepafter' even
55884	when it's the same constant as `first-form'.
55885
558861999-05-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55887
55888	* aclocal.m4 (CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS)
55889	(CL_SIGACTION_UNBLOCK): Perform the test if either POSIX or BSD
55890	  signal mask primitives are available. Otherwise,
55891	  SIGACTION_NEED_UNBLOCK would not be defined on Solaris.
55892
558931999-05-07  Sam Steingold  <sds@goems.com>
55894
55895	* describe.lsp (*apropos-do-more*): new variable.
55896	(apropos): use it.
55897
558981999-05-07  Sam Steingold  <sds@goems.com>
55899
55900	* spvw.d (usage): mention -K regardless of "UNIX_BINARY_DISTRIB".
55901
559021999-05-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55903
55904	Support for Apple's MacOS X Server.
55905	* aclocal.m4 (CL_RLIMIT): Include <sys/time.h> before
55906	  <sys/resource.h>.
55907	* lispbibl.d (unix): Define if __MACH__ is defined.
55908	(RS6000): Define if __ppc is defined.
55909	(UNIX_RHAPSODY): New macro.
55910	(__const): Define as const, not empty.
55911	* unix.d: Include <sys/time.h> before <sys/resource.h>. Treat
55912	  UNIX_RHAPSODY like UNIX_NEXTSTEP.
55913	* intlog.d (integerlength32): Do not use the cntlz instruction on
55914	  UNIX_RHAPSODY.
55915
559161999-05-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55917
55918	* clos.lsp (same-specializers-p): New function.
55919	(specializers-agree-p): Use it.
55920	(dispatching-arg-p, single-dispatching-arg, dispatching-arg-type):
55921	  New functions.
55922	(no-applicable-method, no-primary-method): Signal a type-error if
55923	  there is only one dispatching argument.
55924
559251999-05-03  Sam Steingold  <sds@goems.com>
55926
55927	* pathname.d (file_stat): use `built_in_stream_open_p' instead of
55928	`open_stream_p'.
55929
559301999-05-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55931
55932	* aclocal.m4 (CL_SIGALTSTACK): New macro.
55933	* lispbibl.d (NOCOST_SP_CHECK): Define whenever sigsegv.h defines
55934	  HAVE_STACK_OVERFLOW_RECOVERY, not only on WIN32_NATIVE.
55935	(near_SP_overflow) [UNIX]: New declaration.
55936	* spvw.d (near_SP_overflow): New function.
55937	* spvw_fault.d (handle_fault): Add `verbose' argument. If it is 1,
55938	  do not print error messages.
55939	* spvw_sigsegv.d (sigsegv_handler): Add `serious' argument.
55940	(stackoverflow_handler): Add `scp' argument. Bring back STACK to
55941	  a sane value.
55942
559431999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55944
55945	Make SYS::%GENERIC-FUNCTION-LAMBDA self-contained.
55946	* misc.d (SYS::VERSION), constobj.d: Bump version number.
55947	* record.d (SYS::%COPY-GENERIC-FUNCTION): New function.
55948	* eval.d (FUNTAB): Add it.
55949	* compiler.lsp (funtab): Likewise.
55950	(subr-info): Likewise.
55951	(c-FNODE-FUNCTION): Generate different code for generic functions.
55952	(create-fun-obj): The venv of generic functions is now inside
55953	  consts[0], from the beginning.
55954	* clos.lsp (install-dispatch): Simplify.
55955
559561999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55957
55958	* conditio.lsp: Add SYS::PRINT-CONDITION to
55959	  clos::*dynamically-modifiable-generic-function-names*.
55960
559611999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55962
55963	* stream.d (get_synonym_stream): Argument must be a variable.
55964	(rd_by_array_synonym, wr_by_array_synonym, rd_ch_array_synonym)
55965	(wr_ch_array_synonym, close_synonym, read_line_synonym): Update.
55966
559671999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
55968
55969	* lispbibl.d (stream_get_read_eval, stream_set_read_eval): New
55970	  declarations.
55971	* stream.d (read_byte, read_byte_array, write_byte, write_byte_array)
55972	(read_char, unread_char, peek_char, read_char_array, write_char)
55973	(write_char_array, var_stream): Treat instances of
55974	  FUNDAMENTAL-STREAM correctly.
55975	(listen_generic): Change error message.
55976	(terminal_raw, STREAM-EXTERNAL-FORMAT)
55977	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT, interactive_stream_p)
55978	(read_line, stream_listen, clear_input, finish_output, force_output)
55979	(clear_output, get_line_position, stream_line_number): Treat
55980	  instances of FUNDAMENTAL-STREAM correctly.
55981	(stream_get_read_eval, stream_set_read_eval): New functions.
55982	(SYS::ALLOW-READ-EVAL): Use them.
55983	* io.d (read_eval_reader, load_eval_reader): Use stream_get_read_eval.
55984	(READ-CHAR-NO-HANG): Treat instances of FUNDAMENTAL-STREAM
55985	  correctly.
55986	(pr_enter_1, pr_orecord, pr_subr): Use stream_get_read_eval.
55987	* compiler.lsp (c-DIRECT-FUNCTION-CALL): Remove SYSTEM::LINE-POSITION
55988	  from list of side-effect-free functions.
55989	* gstream.lsp (fundamental-stream): Add a slot.
55990	(fundamental-character-stream, fundamental-binary-stream)
55991	(fundamental-character-input-stream)
55992	(fundamental-character-output-stream)
55993	(fundamental-binary-input-stream, fundamental-binary-output-stream):
55994	  New classes.
55995	(stream-element-type): Add method on fundamental-character-stream.
55996	(stream-read-char, stream-unread-char, stream-read-char-no-hang)
55997	(stream-peek-char, stream-listen, stream-read-char-status)
55998	(stream-read-char-sequence, stream-read-line, stream-clear-input)
55999	(stream-write-char, stream-line-column, stream-start-line-p)
56000	(stream-write-char-sequence, stream-write-string, stream-terpri)
56001	(stream-fresh-line, stream-finish-output, stream-force-output)
56002	(stream-clear-output, stream-advance-to-column, stream-read-byte)
56003	(stream-read-byte-sequence, stream-write-byte)
56004	(stream-write-byte-sequence): New generic functions.
56005	* describe.lsp (describe-object): Call open-stream-p, since
56006	  input-stream-p and output-stream-p do not tell whether a stream is
56007	  open.
56008
560091999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56010
56011	Allows streams to have an unknown line position.
56012	* lispbibl.d (get_line_position): Can trigger GC. Can return NIL.
56013	* stream.d (get_line_position): Likewise.
56014	(MAKE-STRING-OUTPUT-STREAM): Allow LINE-POSITION argument to be NIL.
56015	* io.d (pr_enter_1): Update.
56016	* format.lsp (format-tabulate): If the stream's line position is
56017	  unknown, output 2 spaces.
56018	(do-format-justification): If the stream's line position is unknown,
56019	  assume it is 0.
56020	* compiler.lsp (disassemble-closure): If the stream's line position is
56021	  unknown, output 2 spaces.
56022
560231999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56024
56025	* lispbibl.d (stream_line_number): Can trigger GC.
56026	* stream.d (stream_line_number): Likewise.
56027	* io.d (read_delimited_list): Update.
56028
560291999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56030
56031	* clos.lsp (install-dispatch): Do not assume the preliminary function
56032	  has a VENV. Generic functions without any method do not have one.
56033
560341999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56035
56036	* init.lsp (cerror): Do not go into an interactive reploop if
56037	  *break-driver* is not yet set. This permits typing (load "init.lsp")
56038	  in an interactive lisp.run.
56039
560401999-05-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56041
56042	* config.guess, config.sub: Upgrade to newest version from GNU CVS.
56043
560441999-04-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56045
56046	* gstream.lsp (fundamental-stream, fundamental-input-stream)
56047	(fundamental-output-stream): New classes.
56048	(close, open-stream-p, stream-element-type)
56049	((setf stream-element-type)): Add methods on fundamental-stream.
56050	* lispbibl.d (instanceof): New macro.
56051	(streamp): Use it.
56052	* stream.d (input_stream_p, output_stream_p): New macros.
56053	(test_input_stream, test_output_stream): Use them.
56054	(INPUT-STREAM-P, OUTPUT-STREAM-P): Likewise.
56055	(SYS::%DEFGRAY): New function.
56056
560571999-04-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56058
56059	* lispbibl.d (builtin_stream_close): Rename from stream_close.
56060	* stream.d (close_synonym): Call CLOSE instead of stream_close.
56061	(low_flush_buffered_handle, make_file_stream): Update.
56062	(SYSTEM::BUILT-IN-STREAM-OPEN-P): Rename from OPEN-STREAM-P.
56063	  Stricter argument check.
56064	(SYSTEM::BUILT-IN-STREAM-ELEMENT-TYPE): Rename from
56065	  STREAM-ELEMENT-TYPE. Stricter argument check.
56066	(SYSTEM::BUILT-IN-STREAM-SET-ELEMENT-TYPE): Rename from
56067	  SYSTEM::SET-STREAM-ELEMENT-TYPE. Stricter argument check.
56068	(builtin_stream_close): Rename from stream_close.
56069	(close_some_files): Update.
56070	(SYSTEM::BUILT-IN-STREAM-CLOSE): Rename from CLOSE. Stricter
56071	  argument check.
56072	* debug.d (LOAD): Update.
56073	* misc.d (MACHINE-TYPE, MACHINE-VERSION): Update.
56074	* pathname.d (DELETE-FILE): Update.
56075	* spvw_memfile.d (WRITE, savemem): Update.
56076	* eval.d (FUNTAB): Update.
56077	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
56078	* init.lsp (load): Call sys::built-in-stream-close instead of close.
56079	* gstream.lsp: Exports symbols from the Gray proposal.
56080	(close, open-stream-p, stream-element-type)
56081	((setf stream-element-type)): New generic functions.
56082	* places.lsp (stream-element-type): Remove defsetf.
56083
56084	Distinguish built-in and other streams.
56085	* lispbibl.d (builtin_stream_p): Rename from streamp.
56086	(streamp): New macro.
56087	(socket_stream-p): Use builtin_stream_p instead of streamp.
56088	* pathname.d (as_file_stream, PARSE-NAMESTRING, TRUENAME)
56089	(PROBE-FILE, DELETE-FILE, RENAME-FILE, OPEN, FILE-WRITE-DATE)
56090	(FILE-AUTHOR, FILE-STAT): Use builtin_stream_p instead of streamp.
56091	* stream.d (SYS::SYNONYM-STREAM-P, SYS::BROADCAST-STREAM-P)
56092	(SYS::CONCATENATED-STREAM-P, SYS::TWO-WAY-STREAM-P)
56093	(SYS::ECHO-STREAM-P, SYSTEM::STRING-INPUT-STREAM-INDEX)
56094	(GET-OUTPUT-STREAM-STRING, SYS::STRING-STREAM-P)
56095	(SYSTEM::BUFFERED-INPUT-STREAM-INDEX, SYS::FILE-STREAM-P)
56096	(check_window_stream, low_close_pipe, SOCKET-SERVER)
56097	(test_socket_stream, check_open_file_stream): Use builtin_stream_p
56098	  instead of streamp.
56099	(SYNONYM-STREAM-SYMBOL, BROADCAST-STREAM-STREAMS)
56100	(CONCATENATED-STREAM-STREAMS, TWO-WAY-STREAM-INPUT-STREAM)
56101	(TWO-WAY-STREAM-OUTPUT-STREAM, ECHO-STREAM-INPUT-STREAM)
56102	(ECHO-STREAM-OUTPUT-STREAM, GENERIC-STREAM-CONTROLLER)
56103	(SYS::LISTEN-BYTE, test_n_bytes_args): Use builtin_stream_p in the
56104	  first place, and streamp only for the error message.
56105	(GENERIC-STREAM-P, SYS::TERMINAL-RAW): Use builtin_stream_p.
56106	* predtype.d (SYS::BUILT-IN-STREAM-P): New function.
56107
561081999-04-29  Wolfgang Jenkner  <wolfgang@mat.univie.ac.at>
56109
56110	* control.d (make_variable_frame): Treat special-declared variables
56111	  like special-proclaimed ones.
56112
561131999-04-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56114
56115	* aclocal.m4 (TCPCONN): Always include <sys/types.h> before
56116	  <sys/socket.h>.
56117
561181999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56119
56120	Fix a jmp_buf alignment problem on Irix 6.5.
56121	* foreign.d (alignof): Remove macro.
56122	* lispbibl.d (alignof): Move to here.
56123	(sp_jmp_buf_incr, sp_jmp_buf_to_jmp_buf, setjmpspl, longjmpspl): New
56124	  macros.
56125	(jmpbufsize): Add sp_jmp_buf_incr.
56126	(sp_jmp_buf): New type.
56127	(finish_entry_frame): Use setjmpspl.
56128	(enter_frame_at_STACK): Use longjmpsl.
56129	(DRIVER_frame_data): Use sp_jmp_buf instead of jmp_buf.
56130	* control.d (BLOCK, TAGBODY, CATCH, UNWIND-PROTECT): Use sp_jmp_buf
56131	  instead of jmp_buf.
56132	* eval.d (invoke_handlers, funcall_iclosure, eval, eval_no_hooks)
56133	(JMPBUF_on_SP): Use sp_jmp_buf instead of jmp_buf.
56134
561351999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56136
56137	* clos.lsp (*allow-mixing-metaclasses*): New variable.
56138	(initialize-instance-standard-class, make-instance-built-in-class)
56139	(initialize-instance-structure-class): Do not check the metaclass
56140	  of the direct superclasses if *allow-mixing-metaclasses* is true.
56141
561421999-04-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56143
56144	* reploop.lsp: Set *use-clcs* to t here.
56145	* conditio.lsp: Not here.
56146
561471999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56148
56149	* stream.d (listen_generic): Make an error message
56150	  internationalizable.
56151
561521999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56153
56154	* conditio.lsp (break): Use ANSI CL `:format-control' initarg.
56155
561561999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56157
56158	Make read_line recurse through some kinds of streams.
56159	* lispbibl.d (read_line): New declaration.
56160	* stream.d (read_line_synonym, read_line_twoway, read_line): New
56161	  functions.
56162	* io.d (READ-LINE): Call read_line. Put back the buffer after
56163	  copying it, not before.
56164
561651999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56166
56167	* stream.d (wr_ch_terminal2, wr_ch_array_terminal2) [MSDOS]: Define
56168	  as the _unbuffered_dos variant.
56169
561701999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56171
56172	Remove obsolete stream primitive `wr_ss'.
56173	* lispbibl.d (Stream): Remove strm_wr_ss field.
56174	* io.d (write_sstring_ab): New function, remove macro.
56175	* stream.d (wr_ss_Pseudofun): Remove type definition.
56176	(wr_ss): Remove macro.
56177	(wr_ss_dummy, wr_ss_dummy_nogc): Remove functions.
56178	(close_dummys): Do not set strm_wr_ss field.
56179	(wr_ss_synonym): Remove function.
56180	(make_synonym_stream): Do not set strm_wr_ss field.
56181	(wr_ch_array_broad): Optimize.
56182	(wr_ss_broad): Remove function.
56183	(make_broadcast_stream): Do not set strm_wr_ss field.
56184	(make_concatenated_stream): Likewise.
56185	(wr_ss_twoway): Remove function.
56186	(make_twoway_stream, make_echo_stream): Do not set strm_wr_ss field.
56187	(MAKE-STRING-INPUT-STREAM): Likewise.
56188	(wr_ss_str_out): Remove function.
56189	(make_string_output_stream): Do not set strm_wr_ss field.
56190	(SYSTEM::MAKE-STRING-PUSH-STREAM): Likewise.
56191	(wr_ss_pphelp): Remove function.
56192	(make_pphelp_stream): Do not set strm_wr_ss field.
56193	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM): Likewise.
56194	(wr_ch_array_generic): Rename from wr_ss_generic.
56195	(MAKE-GENERIC-STREAM): Do not set strm_wr_ss field.
56196	(wr_ss_unbuffered_unix, wr_ss_unbuffered_mac, wr_ss_unbuffered_dos):
56197	  Remove functions.
56198	(fill_pseudofuns_unbuffered): Do not set strm_wr_ss field.
56199	(wr_ss_buffered_unix, wr_ss_buffered_mac, wr_ss_buffered_dos):
56200	  Remove functions.
56201	(fill_pseudofuns_buffered): Do not set strm_wr_ss field.
56202	(make_keyboard_stream, make_terminal_stream_): Likewise.
56203	(wr_ch_array_terminal1): Rename from wr_ss_terminal1.
56204	(wr_ch_array_terminal2): Rename from wr_ss_terminal2.
56205	(wr_ch_array_terminal3): Rename from wr_ss_terminal3
56206	(make_terminal_stream_): Do not set strm_wr_ss field.
56207	(MAKE-WINDOW, make_printer_stream, make_socket_stream): Likewise.
56208	* pseudofun.d: Update.
56209
562101999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56211
56212	Make write_char_array recurse through any kind of stream.
56213	* lispbibl.d (write_char_array): Change calling convention.
56214	* stream.d (wr_ch_array_Pseudofun): Change type definition.
56215	(wr_ch_array_error): Change calling convention.
56216	(wr_ch_array_dummy): Likewise. Loop, calling write_char.
56217	(write_char_array): Change calling convention.
56218	(wr_ch_array_synonym): Likewise.
56219	(wr_ch_array_broad0, wr_ch_array_broad1): Remove functions.
56220	(wr_ch_array_broad): New function.
56221	(make_broadcast_stream): Use it.
56222	(wr_ch_array_twoway): Change calling convention.
56223	(rd_ch_array_echo): Update.
56224	(wr_ch_array_str_out): New function.
56225	(make_string_output_stream): Use it.
56226	(wr_ch_array_pphelp): New function.
56227	(make_pphelp_stream): Use it.
56228	(wr_ch_array_unbuffered_unix): Change calling convention.
56229	(wr_ss_unbuffered_unix): Update.
56230	(wr_ch_array_unbuffered_mac): Change calling convention.
56231	(wr_ss_unbuffered_mac): Update.
56232	(wr_ch_array_unbuffered_dos): Change calling convention.
56233	(wr_ss_unbuffered_dos): Update.
56234	(wr_ch_array_buffered_unix): Change calling convention.
56235	(wr_ss_buffered_unix): Update.
56236	(wr_ch_array_buffered_mac): Change calling convention.
56237	(wr_ss_buffered_mac): Update.
56238	(wr_ch_array_buffered_dos): Change calling convention.
56239	(wr_ss_buffered_dos): Update.
56240	(wr_ss_terminal3): Update.
56241	* sequence.d (WRITE-CHAR-SEQUENCE): Update.
56242	* lisparit.d (print_integer): Update. Use DYNAMIC_STRING macro.
56243	* pseudofun.d: Update.
56244
56245	Make read_char_array recurse through any kind of stream.
56246	* lispbibl.d (read_char_array): Change calling convention.
56247	* stream.d (rd_ch_array_Pseudofun): Change type definition.
56248	(rd_ch_array_error): Change calling convention.
56249	(rd_ch_array_dummy): Likewise. Loop, calling read_char.
56250	(read_char_array): Change calling convention.
56251	(rd_ch_array_synonym): Likewise.
56252	(rd_ch_array_concat): Likewise. Treat general case.
56253	(rd_ch_array_twoway): Change calling convention.
56254	(rd_ch_array_echo): New function.
56255	(make_echo_stream): Use it.
56256	(rd_ch_array_str_in): Change calling convention.
56257	(rd_ch_array_unbuffered, rd_ch_array_buffered): Likewise.
56258	* sequence.d (READ-CHAR-SEQUENCE): Update.
56259	* pseudofun.d: Update.
56260
56261	Make write_byte_array recurse through any kind of stream.
56262	* lispbibl.d (write_byte_array): Change calling convention.
56263	* stream.d (wr_by_array_Pseudofun): Change type definition.
56264	(wr_by_array_error): Change calling convention.
56265	(wr_by_array_dummy): Likewise. Loop, calling write_byte.
56266	(write_byte_array): Change calling convention.
56267	(wr_by_array_synonym): Likewise.
56268	(wr_by_array_broad0, wr_by_array_broad1): Remove functions.
56269	(wr_by_array_broad): New function.
56270	(make_broadcast_stream): Use it.
56271	(wr_by_array_twoway): Change calling convention.
56272	(rd_by_array_echo): Update.
56273	(wr_by_array_iau8_unbuffered, wr_by_array_iau8_buffered): Change
56274	  calling convention.
56275	(SYS::WRITE-N-BYTES): Update.
56276	(WRITE-INTEGER): Use DYNAMIC_BIT_VECTOR. Update.
56277	* sequence.d (WRITE-BYTE-SEQUENCE): Update.
56278	* pseudofun.d: Update.
56279
56280	Make read_byte_array recurse through any kind of stream.
56281	* lispbibl.d (read_byte_array): Change calling convention.
56282	* stream.d (rd_by_array_Pseudofun): Change type definition.
56283	(rd_by_array_error): Change calling convention.
56284	(rd_by_array_dummy): Likewise. Loop, calling read_byte.
56285	(read_byte_array): Change calling convention.
56286	(rd_by_array_synonym): Likewise.
56287	(rd_by_array_concat): Likewise. Treat general case.
56288	(rd_by_array_twoway): Change calling convention.
56289	(rd_by_array_echo): New function.
56290	(make_echo_stream): Use it.
56291	(rd_by_array_iau8_unbuffered, rd_by_array_iau8_buffered): Change
56292	  calling convention.
56293	(SYS::READ-N-BYTES): Update.
56294	(READ-INTEGER): Use DYNAMIC_BIT_VECTOR. Update.
56295	* sequence.d (READ-BYTE-SEQUENCE): Update.
56296	* pseudofun.d: Update.
56297
562981999-04-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56299
56300	* aclocal.m4 (CL_ADDRESS_RANGE): Also determine the stack address
56301	  range.
56302	* unixconf.h.in (STACK_ADDRESS_RANGE): New macro.
56303	* lispbibl.d (STACK_ADDRESS_RANGE): Provide a default value.
56304	(bias_type_pointer_object): New macro, moved here from
56305	  spvw_allocate.d.
56306	(DYNAMIC_BIT_VECTOR, FREE_DYNAMIC_BIT_VECTOR, DYNAMIC_STRING)
56307	(FREE_DYNAMIC_STRING): New macros.
56308	* spvw_allocate.d (bias_type_pointer_object): Remove macro.
56309
563101999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56311
56312	* compiler.lsp (c-form-table): Treat LDB, LDB-TEST, MASK-FIELD,
56313	  DPB, DEPOSIT-FIELD specially.
56314	(c-constant-byte-p, c-LDB, c-LDB-TEST, c-MASK-FIELD, c-DPB)
56315	(c-DEPOSIT-FIELD): New functions.
56316
56317	* compiler.lsp (c-FORMAT): Only insert a FORMATTER call if
56318	  FORMATTER is not defined locally.
56319
563201999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56321
56322	* describe.lsp (describe-object): `type-of' does not need `sys::'.
56323
563241999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56325
56326	* intlog.d (I_I_logand_I): Optimize the case when either operand is a
56327	  positive fixnum, O(1) instead of O(N).
56328	(I_I_lognand_I): Likewise.
56329	(I_I_logandc2_I): Likewise for the first operand.
56330
563311999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56332
56333	* lispbibl.d (make_HANDLER_frame): Fix compilation problem.
56334
563351999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56336
56337	* io.d (READ-CHAR-STATUS): Rename from SYS::REAL-LISTEN.
56338	* stream.d (listen_generic): Call GENERIC-STREAM-READ-CHAR-STATUS
56339	  instead of GENERIC-STREAM-LISTEN. Remove backward compatibility
56340	  hack.
56341	* gstream.lsp (generic-stream-read-char-status): Rename from
56342	  generic-stream-listen.
56343	* screen.lsp: Likewise.
56344
563451999-04-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56346
56347	* lispbibl.d (ssstring_append_extend): New declaration.
56348	* array.d (ssstring_append_extend): New function.
56349	* stream.d (wr_ss_str_out, wr_ss_pphelp): Use it.
56350
563511999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56352
56353	* array.d (iarray_displace): Rename from notsimple_displace.
56354	(storagevector_aref): Rename from datenvektor_aref.
56355	(storagevector_store): Rename from datenvektor_store.
56356	(iarray_dims_sizes): Rename from array_dims_sizes.
56357	(make_storagevector): Rename from make_datenvektor.
56358	* io.d (pr_vector, pr_array_elt_t, pr_array): Update.
56359
563601999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56361
56362	* macros2.lsp (space): Also print timing data, like TIME does.
56363
563641999-04-27  Sam Steingold  <sds@goems.com>
56365
56366	* describe.lsp (describe): wrap `describe-object' in `unwind-protect'.
56367	(describe-object): fix printing indentation.
56368
563691999-04-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56370
56371	* lispbibl.d: Port to m68k-linux with ELF.
56372
563731999-04-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56374
56375	* defs2.lsp (defpackage): Allow duplicates in each of the
56376	  export/import/... lists, but still require these lists to be
56377	  disjoint.
56378
563791999-04-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56380
56381	* places.lsp (push, pushnew): Evaluate the item form before the
56382	  place's subforms.
56383
563841999-04-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56385
56386	* autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add check whether
56387	  ctor/dtor needs to be exported.
56388
563891999-04-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56390
56391	* stream.d (rd_ch_array_buffered): Increment the stream's index and
56392	  position appropriately.
56393
563941999-04-13  Sam Steingold  <sds@goems.com>
56395
56396	* modules/postgresql642/link.sh (have_libcrypt): do not quote ${CC}.
56397
563981999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56399
56400	* makemake.in (data, UnicodeData.txt): New rules.
56401	(lisp${LEXE}): Depend on it.
56402	(installdirs): Create $(lisplibdir)/data.
56403	(install-bin): Install [data/]UnicodeData.txt.
56404	(uninstall-bin): Remove it.
56405	* _distmakefile (install-bin): Install data/UnicodeData.txt.
56406	* describe.lsp (describe-object) (character): Call unicode-attributes.
56407	(unicode-data-file, unicode-attributes-line, unicode-attributes):
56408	  New functions.
56409
564101999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56411
56412	Add command-line option specifying $(lisplibdir).
56413	* _clisp.c (main): New option "-B".
56414	* spvw.d (main, usage): Likewise.
56415	* pathname.d (argv_lisplibdir): New variable.
56416	(SYS::LIB-DIRECTORY): New function.
56417	* makemake.in: Pass "-B" option to all invocations of lisp.run.
56418
564191999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56420
56421	* makemake.in (installdirs): Create $(lisplibdir)/linkkit.
56422	(install-bin): Fix syntax error introduced on 1999-04-04.
56423
564241999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56425
56426	* stream.d (init_streamvars): Set _rl_comment_begin.
56427
564281999-04-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56429
56430	* compiler.lsp (c-FORMAT): Use c-constantp, not constantp, and
56431	  c-constant-value.
56432
564331999-04-12  Sam Steingold  <sds@goems.com>
56434
56435	* macros3.lsp (with-collect): new macro.
56436
564371999-04-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56438
56439	* type.lsp (type-expand): Fix the second return value.
56440
564411999-04-08  Sam Steingold  <sds@goems.com>
56442
56443	* compiler.lsp (c-FORMAT): check for a constant, not just a string.
56444
564451999-04-07  Sam Steingold  <sds@goems.com>
56446
56447	* control.d (constantp): arrays are constants too.
56448
564491999-04-07  Sam Steingold  <sds@goems.com>
56450
56451	Implement ANSI CL issue KEYWORD-ARGUMENT-NAME-PACKAGE:ANY.
56452	* eval.d (get_closure, check_for_illegal_keywords): accept symbols
56453	as keywords.
56454	* compiler.lsp (analyze-lambdalist): accept symbols as keywords.
56455
564561999-04-07  Sam Steingold  <sds@goems.com>
56457
56458	* compiler.lsp (c-FORMAT): signal an error when the stream
56459	argument is missing.
56460	* describe.lsp (describe-object): call `documentation'.
56461
564621999-04-06  Sam Steingold  <sds@goems.com>
56463
56464	--- *ANSI* is a symbol macro now.
56465	* constsym.d: add `:ansi-cl', `ansi' and `set_ansi'.
56466	* subr.d: add `ansi' and `set_ansi'.
56467	* constobj.d: add `ansi'.
56468	* places.lsp: define *ANSI*.
56469	* init.lsp: export *ANSI*.
56470	* spvw.d: call `set_ansi' instead of setting *ANSI*.
56471	* misc.d (ansi, set_ansi): new LISPFUNNs.
56472	--- Fix `export-syscalls' damaged by recent patches.
56473	* socket.d (resolve_host_ipaddr): replace `fehler_string_int'
56474	with `fehler_string_integer'.
56475	* pathname.d (user_data): ditto.  Also,
56476	`fehler_pathname_descriptor' --> `fehler_pathname_designator'.
56477	(file_stat): use `stream_fd' instead of `strm_ochannel'.
56478	* stream.d (file_stat): remove.
56479	(stream_fd): add.
56480	* lispbibl.d: declare `stream_fd'.
56481	--- fix `describe'
56482	* describe.lsp (describe): set `*describe-done*' and
56483	`*describe-nesting*' instead of binding.  Print empty arglist as
56484	(), not NIL.
56485
564861999-04-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56487
56488	Stop storing german and french translations in the source files.
56489	* german.lsp, french.lsp: New files.
56490	* makemake.in (LPARTS): Add them.
56491	* init.lsp: Load them.
56492	* *.d, *.lsp: Remove german and french translations.
56493	* compiler.lsp: Define macro ENGLISH instead of DEUTSCH.
56494	* lispbibl.d (DEUTSCH, FRANCAIS): Remove macros.
56495	(ENGLISH): Simplify.
56496	(language_deutsch, language_francais): Remove macros.
56497	(GETTEXT): New macro.
56498	* genclisph.d (main): Update.
56499	* constobj.d (LISPOBJ_L, LISPOBJ_LS): Simplify.
56500	* erramiga.d (lang3, lang1): Simplify.
56501	* errdjgpp.d (lang3, lang1): Likewise.
56502	* spvw_language.d (language_deutsch, language_francais): Define only
56503	  if GNU_GETTEXT.
56504	(init_languages_from): Treat de and fr only if GNU_GETTEXT.
56505	(init_language) [!GNU_GETTEXT]: Do not treat de and fr.
56506
565071999-04-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56508
56509	* io.d (right_margin): Update translations.
56510
565111999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56512
56513	* foreign1.lsp (DEF-C-CALL-OUT, DEF-C-CALL-IN): Use language :STDC,
56514	  not old :C any more.
56515
565161999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56517
56518	Changes to the distribution structure on Unix:
56519	- The default linking set is moved into subdirectory `base'.
56520	- Both `base' and `full' are installed.
56521	- All the documentation is installed.
56522	* _clisp.c (main): New option "-K". Drop option "-F".
56523	* _clisp.1: Document option "-K".
56524	* _clisp.html: Likewise.
56525	* spvw.d (usage): Mention "-K".
56526	(main): Accept and ignore "-K".
56527	* _distmakefile (fromdir): Remove variable.
56528	(linkingsets): New variable.
56529	(docdir, lispdocdir): New variables.
56530	(all): Depend on all lisp.runs.
56531	(install): Depend on install-doc.
56532	(install-bin): Copy all linking sets entirely. Copy clisp-link and
56533	  linkkit as well.
56534	(install-doc): New target.
56535	* makemake.in: $(lispdocdir) replaces $(docdir). Define $(docdir) and
56536	  $(lispdocdir) in all cases. Make `base' a directory containing
56537	  symlinks, not a symlink. `full' depends on `base'. `install' depends
56538	  on `install-doc'. New target `install-doc'. `installdirs' creates
56539	  the `base' directory and the doc directories. `install-bin' copies
56540	  the linking sets `base' and `full', and clisp-link and linkkit as
56541	  well. `install-man' installs all readmes and manual files.
56542
565431999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56544
56545	* modules/clx/new-clx/link.sh: Add -L/usr/X11R6/lib -lX11 to
56546	  NEW_LIBS. Necessary since 1999-03-08 change.
56547	* modules/clx/new-clx/clx.f (pathname_encoding, misc_encoding): New
56548	  macros.
56549	(with_stringable_0): Add an encoding argument.
56550	(get_font, get_xatom_general, enum_error, make_xatom)
56551	(XLIB:OPEN-DISPLAY): Use misc_encoding.
56552	(XLIB:DISPLAY-AUTHORIZATION-DATA, XLIB:DISPLAY-AUTHORIZATION-NAME):
56553	  Allocate empty string via allocate_string.
56554	(XLIB:DISPLAY-VENDOR, XLIB:DISPLAY-HOST): Use misc_encoding.
56555	(general_draw_text): If UNICODE, use the -16 variant functions.
56556	(XLIB:OPEN-FONT, XLIB:FONT-PATH, XLIB:FONT-PATH-SETTER)
56557	(XLIB:LIST-FONT-NAMES, XLIB:LIST-FONTS, XLIB:FONT-PROPERTIES): Use
56558	  misc_encoding.
56559	(XLIB:TEXT-EXTENTS, XLIB:TEXT-WIDTH): If UNICODE, use the -16
56560	  variant functions.
56561	(XLIB:ALLOC-COLOR, XLIB:LOOKUP-COLOR, XLIB:ATOM-NAME)
56562	(XLIB:GET-PROPERTY, XLIB:LIST-PROPERTIES, XLIB:LIST-EXTENSIONS)
56563	(XLIB:QUERY-EXTENSION): Use misc_encoding.
56564	(XPM:READ-FILE-TO-PIXMAP): Use pathname_encoding.
56565	* modules/postgresql642/postgresql.lsp: Comments.
56566	Do not need to include <stdio.h>.
56567	(PGnotify): Use foreign type ffi:character, not ffi:char.
56568	(pqbool): Use foreign type ffi:char, not ffi:character.
56569	* modules/postgresql642sql.lsp (sql-error): Condition type is
56570	SQL-ERROR, not SQL.
56571	* modules/postgresql642/link.sh: Link with -lcrypt only
56572	if this library exists.
56573
565741999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56575
56576	* _README: Refer to _README.en unconditionally.
56577	* makemake.in: Do not refer to `README.en'. `README' is enough.
56578
565791999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56580
56581	Since make_machine and make_machine_code are different on some
56582	platforms...
56583	* pseudofun.d (LPSEUDOCODE): New macro, replaces PSEUDOFUN.
56584	(XPSEUDOCODE, XPSEUDODATA): New macros, replace XPSEUDO.
56585	(LCODE_PSEUDO_*, XCODE_PSEUDO_*, XDATA_PSEUDO_*): New macros.
56586	* lispbibl.d (pseudofun_tab): Remove.
56587	(pseudocode_tab, pseudodata_tab): New variables.
56588	* spvw.d (pseudocode_anz, pseudodata_anz): New macros.
56589	(pseudofun_anz): Change definition.
56590	(pseudofun_tab): Define as local variable.
56591	(main): Initialize pseudofun_tab from pseudocode_anz, pseudodata_anz.
56592	* spvw_memfile.d (loadmem_update): Compare objects, not Pseudofuns.
56593	* stream.d (pseudofun_tab): Remove.
56594	(pseudocode_tab, pseudodata_tab): New variables.
56595
565961999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56597
56598	* control.d (test_env): Accept NIL, denoting the global environment.
56599
566001999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56601
56602	* makemake.in (installdirs, install-bin, install-man): Make sure
56603	  the directories $(prefix) and $(exec_prefix) exist.
56604	* _distmakefile (install-bin, install-man): Likewise.
56605
566061999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56607
56608	* stream.d (make_file_stream): Fix the STACK offsets used to fill in
56609	  truename and pathname of unbuffered streams.
56610
566111999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56612
56613	* stream.d (SYS::MAKE-SOCKET-STREAM, init_streamvars): Pass a proper
56614	  encoding to make_unbuffered_stream, not the symbol :UNIX.
56615
566161999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56617
56618	* conditio.lsp: Export simple-condition-format-control.
56619	(coerce-to-condition): Use :format-control.
56620	(simple-condition): Use $format-control.
56621	* defs3.lsp: Export simple-condition-format-control, not
56622	  simple-condition-format-string.
56623
566241999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56625
56626	* stream.d (make_pipe_output_stream, make_pipe_input_stream)
56627	(make_pipe_stream): Revert 1999-03-26 patch.
56628
566291999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56630
56631	* socket.d (atoi): Remove declaration.
56632	(SERVENT_TO_STACK): Add `tmp' local variable.
56633	(SOCKET-SERVICE-PORT): Do not accept symbols, only strings and
56634	  integers, as service-name. Do not call fehler_string_integer for
56635	  non-fixnums. Use with_string_0 instead of TheAsciz(string_to_asciz(.
56636	  Fix placement of begin_system_call()/end_system_call().
56637	* subr.d: Keep in sync.
56638	* constsym.d: Likewise.
56639
566401999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56641
56642	* stream.d (FILE-STAT): Move to pathname.d.
56643	* pathname.d (fehler_pathname_designator): Rename from
56644	  fehler_pathname_descriptor.
56645	(as_file_stream): global -> local. Update.
56646	(fehler_file_stream_unnamed): global -> local.
56647	(PARSE-NAMESTRING): Update.
56648	(unix_user_pwd): Fix treatment of error in getpwuid call.
56649	(init_pathnames): Restore comments.
56650	(USER-DATA, FILE-DATA): Move here, before the EMX "#undef stat".
56651	* subr.d: Keep in sync.
56652	* constsym.d: Likewise.
56653
566541999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56655
56656	* constobj.d (O(type_string_integer)): Rename from O(type_gensym_arg).
56657	* symbol.d (GENSYM): Update.
56658	* lispbibl.d (fehler_string_integer): Rename from fehler_string_int.
56659	* error.d (fehler_string_integer): Rename from fehler_string_int.
56660	  Use O(type_string_integer). Fix error message. Update translations.
56661
566621999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56663
56664	* describe.lsp (describe-slotted-object): Define code in package
56665	  SYSTEM, not package CLOS.
56666	(describe-object): Likewise. Reindent.
56667	(describe-object T): Treat FSUBR here.
56668	(describe-object FUNCTION): Not here.
56669	(describe-object CONS): De-obfuscate list-length determination.
56670	(describe-object SYMBOL): Bind *print-escape* and *print-readably*
56671	  only around the necessary code. Update translations. Terminate
56672	  sentence with a dot.
56673	(describe-object PACKAGE): Keep "." internationalizable. Update
56674	  translations. Do not sort L if all we need is its length.
56675	(describe): Update translations.
56676	(apropos-list): Reindent.
56677
566781999-04-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56679
56680	Change the type of FSUBRs (was COMPILED-FUNCTION, but ANSI CL
56681	specifies that COMPILED-FUNCTION is a subtype of FUNCTION).
56682	* predtype.d (COMPILED-FUNCTION-P): For FSUBRs, return NIL.
56683	(TYPE-OF): For FSUBRs, return SPECIAL-OPERATOR.
56684	(CLASS-OF): Undo 1999-03-18 patch.
56685	(enum_hs_special_operator): Rename from enum_hs_special_oper.
56686	(heap_statistics_mapper): Update.
56687	* defs2.lsp (function-lambda-expression): No need to call functionp.
56688
566891999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56690
56691	* conditio.lsp (export): Mention `os-error' right after `file-error'.
56692
566931999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56694
56695	* init.lsp (export): Mention `with-package-iterator' right after
56696	  `do-all-symbols', because that's where it is located in CLtL2.
56697	* defs3.lsp (export): Likewise.
56698	* defs1.lsp (with-package-iterator): Check all the symboltypes. Remove
56699	  duplicates among them.
56700
567011999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56702
56703	* savemem.lsp (saveinitmem): Reindent. Declare *command-index* special,
56704	  because it is not defvar'ed at this point.
56705
567061999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56707
56708	* loop.lsp (expand-loop) (collect/append/nconc): Generate forward-
56709	  consing code only for named accumulation variables. Revert to the
56710	  old backward-consing code for unnamed accumulation variables.
56711	(expand-loop) (accu-vars-nil, accu-vars-0): Kill use of `pushnew',
56712	  `push' and `delete-duplicates' is more efficient.
56713
567141999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56715
56716	* constsym.d (*merge-pathnames-ansi*): New variable.
56717	* spvw.d (init_symbol_values): Initialize it to NIL.
56718	(main): Set it to T, if option -a given.
56719	* pathname.d (MERGE-PATHNAMES): If *merge-pathnames-ansi*,
56720	  concatenate two relative directories. Ignore *ansi*.
56721
567221999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56723
56724	* makemake.in (impnotes.html): Only replace <HS> followed by a slash.
56725
567261999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56727
56728	* makemake.in: Accept option --with-export-syscalls, instead of
56729	  --export-syscalls.
56730
567311999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56732
56733	* makemake.in: Undo hack for missing rluserman.dvi.
56734
567351999-04-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56736
56737	* clisp.spec: Remove the "--with-unicode=no" hint. It is a bad idea.
56738
567391999-03-30  Jörg Höhle  <hoehle@tzd.telekom.de>
56740
56741	* rexx.d (rexx_getmsg): return (handle command :RESULT)
56742	  if ARexx OPTIONS RESULTS requested on incoming command.
56743
567441999-04-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56745
56746	Improve handling of /proc/self/fd/* files on Linux.
56747	* pathname.d (possible_symlink, my_readlink): New functions.
56748	(realpath): Call possible_symlink before readlink.
56749	(if_HAVE_LSTAT): New macro.
56750	(assure_dir_exists) [UNIX]: Use it. Convert namestring to asciz once
56751	  only. Call possible_symlink before S_ISLNK and readlink.
56752
567531999-03-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56754
56755	* Makefile.devel: Add rules for three files in the
56756	  ffcall/callback/vacall_r/ directory.
56757
567581999-03-26  Sam Steingold  <sds@goems.com>
56759
56760	* stream.d (make_pipe_stream): new function: merged
56761	make_pipe_input_stream and make_pipe_output_stream.
56762	(make_pipe_output_stream, make_pipe_input_stream): use it.
56763
567641999-03-22  Sam Steingold  <sds@goems.com>
56765
56766	* pathname.d (merge-pathnames): be ANSI CL compliant when
56767	lisp:*ansi* is non-nil.
56768	(unix_user_pwd): extracted from init_pathnames().
56769	(init_pathnames): use unix_user_pwd().
56770	(user_data): moved here from stream.d; use unix_user_pwd().
56771
567721999-03-20  Sam Steingold  <sds@gnu.org>
56773
56774	Add PostgreSQL interface.  New module: postgresql.
56775	* modules/postgresql/postgresql.lsp: bindings.
56776	* modules/postgresql/sql.lsp: example of use.
56777	* makemake.in: add postgresql.
56778
567791999-03-20  Sam Steingold  <sds@gnu.org>
56780
56781	* describe.lsp (describe-object): handle foreign functions correctly.
56782
567831999-03-19  Sam Steingold  <sds@gnu.org>
56784
56785	* savemem.lsp (saveinitmem): bind +/-/* to nil instead of setting
56786	them to nil.  Also, bind sys::*command-index* to 0.
56787
567881999-03-18  Sam Steingold  <sds@gnu.org>
56789
56790	* compiler.lsp (*deprecated-functions-list*): new variable.
56791	(note-function-used): use it.
56792	* describe.lsp (describe-object): warn about deprecated functions.
56793	* predtype.d (class-of): fsubr is a function, not T.
56794	* constobj.d: print SPECIAL-OPERATOR instead of SPECIAL-FORM.
56795	* io.d (pr_fsubr): comment fix.
56796	* ../modules/clx/new-clx/clx.lsp: push keyword :clx-ansi-common-lisp
56797	into `*features*' instead of the symbol.
56798
567991999-03-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56800
56801	* aclocal.m4 (CL_ICONV): Add check for iconv prototype.
56802	* unixconf.h.in (ICONV_CONST): New macro.
56803	* unix.d (iconv): Use ICONV_CONST.
56804
568051999-03-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56806
56807	* stream.d (CLISP_INTERNAL_CHARSET): For HP-UX, set it to "ucs2".
56808
568091999-03-17  Sam Steingold  <sds@gnu.org>
56810
56811	* describe.lsp (describe-object): handle CLOS classes in a
56812	`standard-object' method.  Describe the value of the `weak-pointer'.
56813	* stream.d (file_stat): fix time handling.
56814
568151999-03-16  Sam Steingold  <sds@gnu.org>
56816
56817	* describe.lsp (describe-object): replace `standard-object' with T.
56818
568191999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56820
56821	* defs1.lsp (package-iterator-function): New function, taken out of
56822	  with-package-iterator.
56823	(with-package-iterator): Adjust, add error message.
56824
568251999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56826
56827	* encoding.d (nls_mbstowcs, nls_asciiext_mbstowcs, nls_wcstombs)
56828	(nls_asciiext_wcstombs, nls_range): Use TheMachine, not ThePseudofun.
56829	  Vital for hppa.
56830	(init_encodings): Use make_machine, not P. Vital for hppa.
56831	  Initialize O(internal_encoding) always to ISO-8859-1, independently
56832	  of the platform. If HPROMAN8_CHS is defined, use it for the other
56833	  encodings, instead of ASCII.
56834
568351999-03-16  Sam Steingold  <sds@gnu.org>
56836
56837	implement `with-package-iterator'.
56838	* defs1.lsp (with-package-iterator): new ANSI CL macro.
56839	* defs3.lsp, init.lsp: export it.
56840
568411999-03-16  Sam Steingold  <sds@gnu.org>
56842
56843	* socket.d (is_number): remove.
56844	(resolve_host_ipaddr): return all hosts on NIL arg.
56845	* stream.d (user_data): return the current user with no args.
56846	* _impnotes.html: document this.
56847
568481999-03-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56849
56850	* stream.d (rd_ch_terminal2): Restructure this function. Call
56851	  rd_ch_unbuffered, in order to respect the stream's encoding.
56852	  When EOF has been reached, no need to set strm_rd_ch_last,
56853	  the caller already does this.
56854	(lisp_completion_matches): Do filename completion also after #P".
56855	(rd_ch_terminal3): Restructure this function. Respect the stream's
56856	  encoding. When EOF has been reached, no need to set strm_rd_ch_last,
56857	  the caller already does this.
56858
568591999-03-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56860
56861	* lispbibl.d: Test for `__linux__', not `linux', so that even when
56862	  compiling with "-ansi -pedantic" the incompatible _setjmp/_longjmp
56863	  functions are avoided.
56864
568651999-03-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56866
56867	Make it possible again to compile with "gcc -x c++".
56868	* aclocal.m4 (CL_CC_GCC): Define GCC_X_NONE.
56869	* intparam.d (main7): Use %lX instead of %X for a `long'.
56870	(main8): Adapt for C++.
56871
56872	* configure: Do not configure in readline subdir if compiling
56873	  in C++ mode.
56874
56875	* utils/modprep.d: Define `inline' to empty when compiling with
56876	  "gcc -ansi -pedantic".
56877	(String_equalsIgnoreCase): Do not use `isascii', it is not portable.
56878
56879	* io.d (unicode_attribute, graphic_char_p): Remove the macros. The
56880	  global definition in charstrg.d is sufficient.
56881	(syntax_table_put): Cast one branch of the conditional expression
56882	  to void, to make this valid C++.
56883
56884	* stream.d (host_data_fetcher): New type.
56885	(publish_host_data): Adjust declaration, for increased type safety.
56886
56887	* charstrg.d (string_search): Change for being valid C++.
56888
56889	* foreign.d (alignof): Provide alternate definition, valid C++.
56890	(convert_to_foreign): Cast converter_malloc result to char*.
56891
56892	* avl.d (AVL(AVLID,least), AVL(AVLID,move)): Change K&R C declaration
56893	  into ANSI C declaration.
56894
568951999-03-14  Sam Steingold  <sds@gnu.org>
56896
56897	* stream.d: remove `stream_fd';
56898	moved `file_stat' and `user_data' here.
56899	* pathname.d: rename `fehler_thing' to `fehler_pathname_descriptor'.
56900	export it, `as_file_stream', `fehler_file_stream_unnamed'.
56901	* socket.d (resolve_host_ipaddr): handle IPv6 addresses.
56902
569031999-03-14  Sam Steingold  <sds@gnu.org>
56904
56905	OS_error() generates an error of type `os-error'.
56906	* erramiga.d, errdjgpp.d, errunix.d, errwin32.d (OS_error): use
56907	`simple_os_error'.
56908	* lispbibl.d (conditiontype): add `os_error'.
56909	* constsym.d: add `simple_os_error' symbol.
56910	* error.d: handle `simple_os_error'.
56911	* conditio.lsp: add `os-error' and `simple-os-error'.
56912
569131999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56914
56915	* lispbibl.d (strm_encoding): New macro.
56916	* stream.d (strm_encoding): Comment out.
56917	* encoding.d (SYS::[SET-]DEFAULT-FILE-ENCODING)
56918	(SYS::[SET-]PATHNAME-ENCODING, SYS::[SET-]TERMINAL-ENCODING)
56919	(SYS::[SET-]FOREIGN-ENCODING, SYS::[SET-]MISC-ENCODING): New
56920	  functions.
56921	* init.lsp: Export *default-file-encoding*, *pathname-encoding*,
56922	  *terminal-encoding*, *misc-encoding*.
56923	* places.lsp (*default-file-encoding*, *pathname-encoding*)
56924	(*terminal-encoding*, *misc-encoding*): New settable symbol-macros.
56925	* foreign1.lsp (ffi:*foreign-encoding*): New settable symbol-macro.
56926	* affi1.lsp (affi:*foreign-encoding*): New settable symbol-macro.
56927
569281999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56929
56930	* defs2.lsp (define-symbol-macro, check-not-special-variable-p): Move
56931	  to macros2.lsp.
56932	* macros2.lsp (define-symbol-macro, check-not-special-variable-p):
56933	  Moved here from defs2.lsp.
56934
569351999-03-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56936
56937	* stream.d (test_socket_server): New argument check_open. When it is
56938	  TRUE, check that the handle is non-NIL.
56939	(SOCKET-SERVER-CLOSE): After closing, set the handle to NIL. When
56940	  the handle is NIL, do nothing.
56941	(SOCKET-SERVER-PORT, SOCKET-SERVER-HOST): Update.
56942	(SOCKET-ACCEPT, SOCKET-WAIT): Call test_socket_server with
56943	  check_open=TRUE.
56944	* io.d (pr_orecord): For closed socket-servers, print a "CLOSED "
56945	  prefix.
56946
569471999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56948
56949	* encoding.d (init_encodings): Define some more aliases.
56950
569511999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56952
56953	* encoding.d (fehler_uni32_invalid, uni32_mblen, uni32be_mbstowcs)
56954	(uni32le_mbstowcs, uni32_wcslen, uni32be_wcstombs, uni32le_wcstombs):
56955	  New functions.
56956	(init_encodings): Initialize the Unicode-32 encodings.
56957	* pseudofun.d: Update.
56958	* type.lsp (canonicalize-type): Add charset:unicode-32-big-endian and
56959	  charset:unicode-32-little-endian to the list of types equivalent to
56960	  CHARACTER.
56961
569621999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56963
56964	* lispbibl.d (conditiontype): Add charset_type_error.
56965	* conditio.lsp (charset-type-error, simple-charset-type-error): New
56966	  condition types.
56967	(%defclcs call): Add simple-charset-type-error.
56968	* constsym.d (simple_*_error): Add simple_charset_type_error.
56969	* error.d (end_error): Treat simple_charset_type_error like
56970	  simple_type_error.
56971	* encoding.d (fehler_unencodable): Signal an error of type
56972	  charset_type_error.
56973
569741999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
56975
56976	Integrate types and encodings.
56977	* lispbibl.d (Encoding): Add enc_range field.
56978	(encoding_length): Increment by 1.
56979	(Encoding_range): New macro.
56980	(stringof): New declaration.
56981	* charstrg.d (stringof): New function.
56982	* encoding.d (all_range, nls_range): New functions.
56983	(iconv_range): Declare.
56984	(MAKE-ENCODING): Initialize the enc_range field.
56985	(fehler_encoding, SYS::CHARSET-TYPEP, SYS::CHARSET-RANGE): New
56986	  functions.
56987	(init_encodings): Initialize the enc_range field.
56988	* stream.d (iconv_mblen): Optimize and make consistent with
56989	  iconv_mbstowcs.
56990	(iconv_wcslen): Optimize and make consistent with iconv_wcstombs.
56991	(iconv_wcstombs): Do not loop until outsize==0. The caller may have
56992	  given a larger buffer than necessary.
56993	(iconv_range): New function.
56994	* pseudofun.d: Update.
56995	* type.lsp (typep): Accept an encoding as a type.
56996	(canonicalize-type, subtypep): Likewise.
56997	(charset-subtypep): New function.
56998
569991999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57000
57001	* encoding.d (SYS::ENCODINGP): New function.
57002	* type.lsp: Implement typep for type ENCODING.
57003	(subtypep): Treat ENCODING as an elementary type.
57004	* compiler.lsp (c-typep-alist1): Implement typep for type ENCODING.
57005
570061999-03-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57007
57008	* spvw_genera2.d (gc_mark_old_generation): Add braces, to avoid egcs
57009	  warning.
57010	* spvw_genera3.d (update_old_generation): Likewise.
57011
570121999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57013
57014	* lispbibl.d (conditiontype): Add reader_error.
57015	* conditio.lsp (simple-reader-error): New condition type.
57016	(%defclcs call): Add simple-reader-error.
57017	* constsym.d (simple_*_error): Add simple_reader_error.
57018	* io.d (signal_reader_error): New function.
57019	(read_internal): Protect calls to read_rational and read_float with
57020	  a handler for ARITHMETIC-ERROR.
57021
570221999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57023
57024	* lispbibl.d (make_HANDLER_frame, make_HANDLER_entry_frame)
57025	(unwind_HANDLER_frame): New macros.
57026	* eval.d (invoke_handlers): Distinguish handler frames with a
57027	  bytecoded handler and handler frames with a C function as handler.
57028
570291999-03-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57030
57031	* format.lsp (format-character): Do not print the name of printable
57032	  characters.
57033
570341999-03-12  Sam Steingold  <sds@gnu.org>
57035
57036	* subr.d: arglists for `socket_service_port' and `resolve_host_ipaddr'.
57037	* stream.d (socket_service_port): moved from here to socket.d
57038	* pathname.d (user_data): use `fehler_string_int'.
57039	* socket.d (resolve_service): remove.
57040	(socket_service_port): moved here.  optional second arg - protocol.
57041	return all services as a list when called with no arguments.
57042	(resolve_host_ipaddr): when called with no args, localhost is returned.
57043	* error.d (fehler_string_int): new function.
57044	* lispbibl.d (fehler_string_int): declare.
57045
570461999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57047
57048	* encoding.d: Make UNICODE-16 an alias for UNICODE-16-BIG-ENDIAN.
57049	* constsym.d: Rename the CPxxx-MS symbols to CPxxx.
57050
570511999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57052
57053	* encoding.d: Add the HP-ROMAN8 character set.
57054
570551999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57056
57057	* stream.d (FILE-STRING-LENGTH): Depend on the stream's encoding.
57058	  Do not look at the strm_wr_ch pointer.
57059
570601999-03-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57061
57062	* pathname.d (directory_search_scandir): Avoid calling stat() if
57063	  the given wildcard mask excludes a given directory entry.
57064
570651999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57066
57067	Fix a bug: clear-input did not kill the EOF condition in terminal2
57068	and terminal3 streams.
57069	* stream.d (clear_input_keyboard): Use ls_avail_p.
57070	(clear_input_terminal2): Call clear_input_unbuffered, do not call
57071	  clear_tty_input directly. Use ls_avail_p.
57072	(clear_input_terminal3): Likewise.
57073
570741999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57075
57076	Finish implementing the iconv-based encodings.
57077	* lispbibl.d (Encoding): Add a stream argument to the enc_mbstowcs and
57078	  enc_wcstombs fields.
57079	(Encoding_mbstowcs, Encoding_wcstombs): Update.
57080	(cstombs): Pass nullobj as stream.
57081	* error.d (write_errorstring): Likewise.
57082	* foreign.d (convert_from_foreign_array_fill, convert_from_foreign):
57083	  Likewise.
57084	* affi.d (SYSTEM::MEM-READ): Likewise.
57085	* encoding.d (MAKE-ENCODING, make_string, asciz_to_string)
57086	(string_to_asciz): Move to the end of the file.
57087	(fehler_unencodable): Declare as global.
57088	(uni16be_mbstowcs, uni16le_mbstowcs, uni16be_wcstombs)
57089	(uni16le_wcstombs, utf8_mbstowcs, utf8_wcstombs, java_mbstowcs)
57090	(java_wcstombs, nls_mbstowcs, nls_asciiext_mbstowcs, nls_wcstombs)
57091	(nls_asciiext_wcstombs): Add an unused stream argument.
57092	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs)
57093	(fehler_iconv_invalid_charset): Move to stream.d.
57094	* stream.d (strm_channel_extrafields_struct): Add iconvdesc,
57095	  oconvdesc fields.
57096	(ChannelStream_iconvdesc, ChannelStream_oconvdesc): New macros.
57097	(CLISP_INTERNAL_CHARSET): New macro.
57098	(fehler_iconv_invalid_charset, iconv_mblen, iconv_mbstowcs)
57099	(iconv_wcslen, iconv_wcstombs): New functions, moved to here from
57100	  encoding.d. If the stream is passed, use the iconvdesc,
57101	  oconvdesc fields.
57102	(ChannelStream_init, ChannelStream_fini): New functions.
57103	(rd_ch_unbuffered, listen_unbuffered, rd_ch_array_unbuffered): Pass
57104	  the stream to the mbstowcs function.
57105	(close_ichannel): Call ChannelStream_fini.
57106	(wr_ch_unbuffered_unix, wr_ch_array_unbuffered_unix)
57107	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac)
57108	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos): Pass the
57109	  stream to the wcstombs function.
57110	(close_ochannel): Call ChannelStream_fini.
57111	(make_unbuffered_stream): Call ChannelStream_init.
57112	(rd_ch_buffered, rd_ch_array_buffered): Pass the stream to the
57113	  mbstowcs function.
57114	(wr_ch_buffered_unix, wr_ch_array_buffered_unix, wr_ch_buffered_mac)
57115	(wr_ch_array_buffered_mac, wr_ch_buffered_dos)
57116	(wr_ch_array_buffered_dos): Pass the stream to the wcstombs function.
57117	(make_buffered_stream): Call ChannelStream_init.
57118	(closed_buffered): Erase the old iconv descriptors.
57119	(close_buffered): Call ChannelStream_fini.
57120	(make_keyboard_stream): Add O(terminal_encoding), and call
57121	  ChannelStream_init.
57122	(make_terminal_stream_): Call ChannelStream_init.
57123	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Call ChannelStream_fini and
57124	  ChannelStream_init.
57125	* pseudofun.d: Update.
57126
571271999-03-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57128
57129	Support for IPv6 sockets.
57130	* aclocal.m4 (CL_TCPCONN): Add checks for IPv4 and IPv6 facilities.
57131	  Add checks for `inet_pton' and `inet_ntop' functions.
57132	* unixconf.h.in (CL_TCPCONN): Conditionally define HAVE_IPV4,
57133	  HAVE_IPV6, IPV6_NEED_LINUX_IN6_H, HAVE_INET_PTON, HAVE_INET_NTOP.
57134	* lispbibl.d (UNIXCONN, TCPCONN): Define here, not in socket.d.
57135	  Make SOCKET_STREAMS depend on TCPCONN.
57136	(host_data): Remove the `host' field. Make the `hostname' field
57137	  large enough for IPv6. Change the `truename' field into an array,
57138	  so it does not need to point to static or temporary data.
57139	(MAXHOSTNAMELEN): Define.
57140	* win32.d: Define HAVE_IPV4, do not define HAVE_IPV6.
57141	* stream.d (publish_host_data): Test hd.truename for being "", not
57142	  NULL. Allocate the temporary string on the stack, instead of malloc.
57143	* misc.d (MACHINE-INSTANCE): Moved to socket.d.
57144	* socket.d: Do not define UNIXCONN, TCPCONN, SOCKET_STREAMS here.
57145	  Do not define MAXHOSTNAMELEN here.
57146	(get_hostname): New macro.
57147	(ipv4_ntop, ipv6_ntop): New macros.
57148	(MACHINE-INSTANCE): Moved here from socket.d. Consider h->h_addrtype
57149	  instead of blindly assuming it's AF_INET. Use ipv4_ntop macro
57150	  for building the dotted address string, instead of doing it by hand.
57151	(CLOSESOCKET): Only define if UNIXCONN || TCPCONN.
57152	(saving_sock_errno): New macro.
57153	(all_digits_dots): New function, for distinguishing IPv4 addresses
57154	  and FQDNs. The old method of looking at the first character is no
57155	  longer valid.
57156	(with_hostname): New function, taken out of connect_to_x_server.
57157	  Support IPv6. Compare the inet_addr() return value with (uint32)(-1),
57158	  not (unsigned long)(-1) [matters for 64-bit platforms].
57159	(connect_to_x_via_ip): New function, taken out of
57160	  connect_to_x_server.
57161	(connect_to_x_server): Use with_hostname and connect_to_x_via_ip.
57162	  Use get_hostname.
57163	(memset, bzero, bcopy): Remove declarations.
57164	(fill_hostname): Remove function, obsoleted by ipv4_ntop.
57165	(sockaddr_max): New type.
57166	(socket_getlocalname_aux): New function, taken out of
57167	  socket_getlocalname. Do not need to bzero() the result. Support IPv6.
57168	(socket_getlocalname): Use socket_getlocalname_aux. Return the true
57169	  host name instead of "localhost".
57170	(socket_getpeername): Do not need to bzero() the result. Support IPv6.
57171	  If truename unknown, return it as "" instead of NULL.
57172	(bindlisten_via_ip): New function, taken out of create_server_socket.
57173	  Close the socket in case of failure.
57174	(create_server_socket): Use with_hostname and bindlisten_via_ip.
57175	  Do not need to bzero() the addr. Use the true host name instead of
57176	  "localhost". After calling getsockname(), support IPv6. Make the
57177	  final getsockname() after listen(), not before. Do not need to
57178	  bzero() the result.
57179	(accept_connection): Support IPv6.
57180	(connect_via_ip): New function, taken out of create_client_socket.
57181	  If connect() fails, save errno during closesocket.
57182	(create_client_socket): Do not need to bzero() the sockaddr. Use
57183	  with_hostname and connect_via_ip.
57184
571851999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57186
57187	* makemake.in (XCFLAGS): When compiling for sparc, use
57188	  -fno-schedule-insns, in order to avoid egcs-1.1.1 bug which
57189	  miscompiles the division routine and causes an XGCD test failure.
57190
571911999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57192
57193	* aclocal.m4 (CL_TERM): When `struct winsize' is not defined in
57194	  <termios.h>, check whether it is defined in <sys/ioctl.h>.
57195	* unixconf.h.in (WINSIZE_NEED_SYS_PTEM_H): Rename from
57196	  NEED_SYS_PTEM_H.
57197	(WINSIZE_NEED_SYS_IOCTL_H): New macro.
57198	* unix.d: Use both.
57199
572001999-03-10  Sam Steingold  <sds@gnu.org>
57201
57202	* configure: new option --export-syscalls.
57203	* makemake.in: ditto.
57204	* constsym.d, subr.d: add `RESOLVE-HOST-IPADDR', `FILE-STAT'
57205	and `USER-DATA'.
57206	* pathname.d: add `file_stat' and `user_data'.
57207	* socket.d: add `resolve_host_ipaddr'.
57208	* stream.d: add `stream_fd'.
57209
572101999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57211
57212	Make it possible to build clisp when neither libtermcap nor libncurses
57213	is available.
57214	* configure: Optionally pass/recommend --with-no-termcap-ncurses for
57215	  makemake.
57216	* makemake.in (XCFLAGS): Optionally add -DNO_TERMCAP_NCURSES.
57217	* lispbibl.d: If NO_TERMCAP_NCURSES is defined, do not define KEYBOARD
57218	  and SCREEN.
57219	* spvw_sigwinch.d (update_linelength): Respect NO_TERMCAP_NCURSES.
57220
572211999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57222
57223	* stream.d: Include <string.h> also in the case of NO_READLINE,
57224	  in order to declare `strcpy' and `strcat'.
57225
572261999-03-11  Sam Steingold  <sds@goems.com>
57227
57228	* loop.lsp (expand-loop): do not nreverse for collect/nconc/append.
57229
572301999-03-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57231
57232	Remove the graphics stuff.
57233	* graph.d: Remove file.
57234	* gettext/po/Makefile.devel (DSOURCES): Remove graph.
57235	* unix.d (geteuid, setreuid): Remove declarations.
57236	* makemake.in (LIBS): Do not add -lgraph and -lvideo on EMX.
57237	(CPARTS): Remove graph.
57238	(lisp.exe rule): Do not use emx options -aim or -acmi.
57239	* lispbibl.d (GRAPHICS, GRAPHICS_SWITCH): Remove definitions.
57240	(switch_text_mode): Remove declaration.
57241	* spvw.d (main): Do not drop setuid-root privilege. Do not call
57242	  switch_text_mode.
57243	* stream.d (low_read_unbuffered_handle, low_listen_unbuffered_handle)
57244	(low_read_array_unbuffered_handle, low_write_unbuffered_handle)
57245	(low_write_array_unbuffered_handle, rd_ch_terminal2)
57246	(rd_ch_terminal3, out_char): Do not call switch_text_mode.
57247
572481999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57249
57250	* configure: Do not tell the user to do "cd .".
57251
572521999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57253
57254	* graph.d (GRAPHICS_X, GRAPHICS_SUN): Remove unfinished code.
57255	* makemake.in: Do not link with ${X_LIBS}, but keep the Makefile
57256	  variable for possible future use.
57257	* clisp-link.in: Likewise.
57258
572591999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57260
57261	* pathname.d: Include <stdio.h>.
57262
572631999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57264
57265	* aclocal.m4 (CL_FPU_CONTROL): Fix the "checking for" messages.
57266
572671999-03-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57268
57269	* aclocal.m4 (CL_MEMSET): Undefine memset, so we get correct types
57270	  with glibc-2.1.
57271
572721999-03-10  Sam Steingold  <sds@gnu.org>
57273
57274	* clos.lsp: moved `describe-slotted-object' and `describe-object'
57275	from here to describe.lsp.
57276	* describe.lsp: moved the bulk from `describe' to `describe-object'.
57277	add variables `*describe-nesting*' and `*describe-done*'.
57278	`describe' now calls `describe-object' and is ANSI compliant.
57279
572801999-03-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57281
57282	* readline/: Upgrade to readline-4.0.
57283	* configure: Also copy readline/shlib/.
57284
572851999-03-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57286
57287	* genclisph.d (main): Modify immediate_number_p, charp, integerp,
57288	  fixnump, posfixnump, floatp, short_float_p according to 1999-02-02
57289	  lispbibl.d patch.
57290
572911999-03-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57292
57293	* Rename newnewreadline to readline, newreadline to oldreadline,
57294	  readline to oldoldreadline.
57295	* Makefile.devel, configure, makemake.in: Update.
57296
572971999-03-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57298
57299	* stream.d (SOCKET-SERVICE-PORT): When not found, return NIL instead
57300	  of -1.
57301
573021999-03-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57303
57304	Handle SIGPIPE on Unix.
57305	* spvw_sigpipe.d: New file.
57306	* spvw.d: Include it.
57307	(main): Call install_sigpipe_handler.
57308	* makemake.in (SPVW_INCLUDES): Add spvw_sigpipe.
57309	* gettext/po/Makefile.devel (DSOURCES): Add spvw_sigpipe. Split line
57310	  into multiple pieces, to avoid 1023 character line length limit of
57311	  patch-2.1.
57312	* lispbibl.d (writing_to_subprocess): New declaration.
57313	* stream.d (low_flush_buffered_pipe): New function.
57314	(BufferedPipeStreamInit): New macro.
57315	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
57316	(MAKE-PIPE-IO-STREAM): Use it.
57317	(low_write_unbuffered_pipe, low_write_array_unbuffered_pipe): New
57318	  functions.
57319	(UnbufferedPipeStream_output_init): Use them.
57320	* error.d (begin_error, tast_break): Set writing_to_subprocess=FALSE.
57321	* unix.d (raise): New declaration.
57322	* msdos.d (raise): Likewise.
57323	* acorn.d (raise): Likewise.
57324	* errunix.d (EPIPE): Improve error messages.
57325
573261999-03-01  Sam Steingold  <sds@goems.com>
57327
57328	* spvw.d: remove :IEEE-FLOATING-POINT from *features*.  Use
57329	`pushnew' instead of `nconc'.
57330
573311999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57332
57333	* lispbibl.d (subr_argtype_t): New enumeration items subr_argtype_1_3,
57334	  subr_argtype_2_3.
57335	* spvw.d (subr_argtype): Use them.
57336	* eval.d (eval_subr, apply_subr, funcall_subr): Treat them.
57337	* stream.d (SYSTEM::SET-STREAM-ELEMENT-TYPE): Stricter restrictions.
57338	(check_multiple8_eltype, test_endianness_arg): New functions.
57339	(READ-INTEGER, WRITE-INTEGER): New functions.
57340	* compiler.lsp (subr-info): Add them.
57341
573421999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57343
57344	Allow #0Y to occur on standard input.
57345	* stream.d (SYSTEM::SET-STREAM-EXTERNAL-FORMAT): Accept an optional
57346	  direction argument. If it is given, recurse properly.
57347	* io.d (closure_reader): Call it with direction :INPUT.
57348
573491999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57350
57351	* io.d (syntax_table_get_notinline): Swap arguments to gethash().
57352
573531999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57354
57355	* compiler.lsp (compile-file): Create the .fas and .lib files in UTF-8.
57356
573571999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57358
57359	Reader macro for switching the stream's encoding.
57360	* constobj.d (O(charset_package)): New variable.
57361	* package.d (init_packages): Create #<PACKAGE CHARSET> and initialize
57362	  O(charset_package).
57363	* constpack.d: Remove #<PACKAGE CHARSET> here.
57364	* spvw.d (init_symbol_tab_2): New enum item enum_charset_index.
57365	* io.d (closure_reader): Accept "#0Y charset" syntax.
57366
573671999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57368
57369	* charstrg.d (char_name): Return #\Uxxxx as a name for every Unicode
57370	  character.
57371	(name_char): Accept #\Uxxxx as a name for any Unicode character.
57372	* io.d (char_reader): Remove #\Uxxxx recognition code, now done by
57373	  `name_char'.
57374	(pr_character): For graphic standard characters, do not look up the
57375	  name.
57376
573771999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57378
57379	Improve error checking in parse-namestring.
57380	* pathname.d (legal_namechar): Do not accept Unicode characters which
57381	  are not 1 byte in the pathname_encoding.
57382
573831999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57384
57385	Use the system's iconv() function if available.
57386	* aclocal.m4 (CL_ICONV): New macro.
57387	* configure.in: Call it.
57388	* unixconf.h.in (HAVE_ICONV): New macro.
57389	* unix.d: Declare iconv_open, iconv, iconv_close.
57390	* encoding.d (MAKE-ENCODING): Accept strings as well.
57391	(iconv_mblen, iconv_mbstowcs, iconv_wcslen, iconv_wcstombs): New
57392	  functions.
57393	* pseudofun.d: Add them.
57394	* stream.d (test_external_format_arg): Accept strings as well.
57395
573961999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57397
57398	* configure: Recommend --with-unicode.
57399	* makemake.in (*/makefile*): Pass --with-unicode to makemake.
57400
574011999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57402
57403	* macros2.lsp (with-output-to-printer): Declare arg as IGNORE.
57404
574051999-02-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57406
57407	Introduce space-efficient immutable strings.
57408	* lispbibl.d (Rectype_Imm_SmallSstring): New enumeration item.
57409	(Rectype_mdarray, Rectype_Sbvector, Rectype_bvector, Rectype_Svector)
57410	(Rectype_vector, Rectype_Sstring, Rectype_string)
57411	(Rectype_Imm_Sstring):
57412	  Rearrange and define rectype_unused1 so as to get fast type checks.
57413	(HAVE_SMALL_SSTRING): New macro.
57414	(small_sstring_, SmallSstring): New types.
57415	(Array_type_sstring): Treat Rectype_Imm_SmallSstring like
57416	  Rectype_Imm_Sstring.
57417	(TheSmallSstring): New macro.
57418	(vectorp, simplep, array_simplep, general_vector_p, simple_string_p)
57419	(stringp, byte_vector_p, arrayp): Update and optimize.
57420	(if_recordp): Treat Rectype_Imm_SmallSstring like
57421	  Rectype_Imm_Sstring.
57422	(case_Rectype_Sstring_above, case_Rectype_string_above)
57423	(case_Rectype_array_above): Likewise.
57424	(allocate_imm_small_string): New declaration.
57425	(with_string_0, with_sstring_0, with_string, with_sstring): Update
57426	  for unpack_string_ro change. Use unpack_sstring_alloca.
57427	(chartcopy, scintcopy): New declarations.
57428	(SstringDispatch): New macro.
57429	(unpack_sstring_alloca): New macro.
57430	(unpack_string_ro): One more argument, change return type.
57431	(coerce_normal_ss, coerce_imm_normal_ss): New declarations.
57432	(test_string_limits_rw): Remove declaration.
57433	(stringarg): New structure type.
57434	(test_string_limits_ro): Change calling convention.
57435	(string_eqcomp, string_eqcomp_ci): New declarations.
57436	* genclisph.d (main): Update vectorp, general_vector_p,
57437	  simple_string_p, stringp, byte_vector_p, arrayp.
57438	* spvw_objsize.d (size_small_sstring): New macro.
57439	(objsize): Treat Rectype_Imm_SmallSstring.
57440	* spvw_update.d (update_varobject): Treat Rectype_Imm_SmallSstring
57441	  like Rectype_Imm_Sstring.
57442	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
57443	* spvw_garcol.d (gc_mark): Likewise.
57444	* spvw_typealloc.d (allocate_imm_small_string): New function.
57445	* charstrg.d (chartcopy, scintcopy): New functions.
57446	(unpack_string_ro): Define always. One more argument, change return
57447	  type.
57448	(string_gleich, string_equal): Mostly rewritten.
57449	(copy_string, coerce_imm_ss): Mostly rewritten.
57450	(coerce_normal_ss, coerce_imm_normal_ss): New functions.
57451	(coerce_char): Update, treat small strings too.
57452	(CHAR, SCHAR): Likewise.
57453	(test_string_limits_ro): Change calling convention.
57454	(test_string_limits_rw): Change calling convention, make local.
57455	(test_2_stringsym_limits): Change calling convention.
57456	(string_eqcomp, string_comp): Change calling convention. Rewritten,
57457	  treat small strings too.
57458	(STRING=, STRING/=, STRING<, STRING>, STRING<=, STRING>=): Rewritten.
57459	(string_eqcomp_ci, string_comp_ci): Change calling convention.
57460	  Rewritten, treat small strings too.
57461	(STRING-EQUAL, STRING-NOT-EQUAL, STRING-LESSP, STRING-GREATERP)
57462	(STRING-NOT-GREATERP, STRING-NOT-LESSP): Rewritten.
57463	(eqcomp_fun): Change function type.
57464	(string_search): Change calling convention.
57465	  Treat len1==0 outside of the loop.
57466	(SYS::SEARCH-STRING=, SYS::SEARCH-STRING-EQUAL): Mostly rewritten.
57467	(NSTRING-UPCASE, NSTRING-DOWNCASE, NSTRING-CAPITALIZE): Rewritten.
57468	(subsstring, SUBSTRING, string_concat): Treat small strings too.
57469	* array.d (datenvektor_aref): Treat small strings too.
57470	(datenvektor_store): Treat Rectype_Imm_SmallSstring like
57471	  Rectype_Imm_Sstring.
57472	(VECTOR-PUSH-EXTEND): Treat small strings too.
57473	(ssstring_push_extend, ssstring_extend): Use chartcopy.
57474	* predtype.d (equal): Use string_eqcomp.
57475	(elt_compare_T_Char): Treat small strings too.
57476	(elt_compare_Char_Char): Use string_eqcomp_ci.
57477	* hashtabl.d (hashcode_string): Treat small strings too.
57478	(hashcode3_atom): Treat Rectype_Imm_SmallSstring like
57479	  Rectype_Imm_Sstring.
57480	(hashcode4_vector_Char): Treat small strings too.
57481	* package.d (string_hashcode): Treat small strings too.
57482	* encoding.d (string_to_asciz): Call unpack_sstring_alloca, but call
57483	  unpack_string_ro only once.
57484	(string_to_asciz_): Update.
57485	* sequence.d (WRITE-CHAR-SEQUENCE): Call unpack_sstring_alloca.
57486	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc): Treat small strings too.
57487	(rd_ch_str_in, rd_ch_array_str_in): Likewise.
57488	(MAKE-STRING-INPUT-STREAM): Update.
57489	(wr_ss_str_out, wr_ss_pphelp): Treat small strings too.
57490	(rd_ch_buff_in): Likewise.
57491	(wr_ss_generic): Call unpack_sstring_alloca.
57492	(wr_ss_unbuffered_unix, wr_ss_unbuffered_mac, wr_ss_unbuffered_dos)
57493	(wr_ss_buffered_unix, wr_ss_buffered_mac, wr_ss_buffered_dos):
57494	  Likewise.
57495	(lisp_completion): Call unpack_sstring_alloca. Use
57496	  O(terminal_encoding).
57497	(wr_ss_terminal3): Call unpack_sstring_alloca. Treat small strings
57498	  too.
57499	(FILE-STRING-LENGTH): Treat small strings too.
57500	* io.d (PARSE-INTEGER): Treat small strings too.
57501	(write_sstring_case, pr_symbol_part, pr_sstring_ab): Likewise.
57502	(pr_orecord): Treat Rectype_Imm_SmallSstring like
57503	  Rectype_Imm_Sstring.
57504	(write_string_up): Update.
57505	* lisparit.d (read_integer): Call unpack_sstring_alloca.
57506	(decimal_string): Use chartcopy.
57507	* foreign.d (convert_to_foreign): Call unpack_sstring_alloca.
57508	* affi.d (affi_call_argsa, SYSTEM::MEM-WRITE-VECTOR): Likewise.
57509	* pathname.d (subst_coerce_normal_ss): New function.
57510	(test_optional_host): Use coerce_normal_ss instead of coerce_ss.
57511	(PARSE-NAMESTRING): When thing is a symbol, do the case conversion
57512	  on the :start/:end delimited part, not on the entire symbol-name.
57513	  Accept small strings too, convert them to normal strings.
57514	(MAKE-PATHNAME): Call coerce_normal_ss on the device, name and type.
57515	  Call subst_coerce_normal_ss on the directory.
57516
575171999-02-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57518
57519	* package.d (correct_packname): Convert the package name to an
57520	  immutable string.
57521	(init_packages): Use immutables strings as package names and
57522	  nicknames.
57523	* symbol.d (GENSYM): Make the symbol name immutable.
57524
575251999-02-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57526
57527	Bug fix for NEXTAPP model.
57528	* stream.d (lisp_completion): Call begin_error here.
57529	(lisp_completion_matches): Not here.
57530
575311999-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57532
57533	* socket.d (create_server_socket): Cast setsockopt argument.
57534
57535	* modules.d (_NEXT_NULL): New macro.
57536
575371999-02-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57538
57539	* makemake.in: Fix bug in parsing of --hyperspec argument.
57540
57541	* makemake.in (XCC_DLOPENABLE_EXE_FLAG): Pass -export-dynamic to
57542	  the linker only if the linker is GNU ld.
57543
575441999-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57545
57546	* clos.lsp, init.lsp: Do export GENERIC-LABELS and GENERIC-FLET here.
57547
575481999-02-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57549
57550	* compiler.lsp (compile-file): Output the SYSTEM::VERSION form in
57551	  upper case.
57552	* unix/MAGIC.add: Revert last change.
57553
575541999-02-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57555
57556	Convert dotimesL with loop variables into dotimespL.
57557	* affi.d (bytecopy): Use dotimespL. Assume length > 0.
57558	(SYSTEM::MEM-READ): Use dotimespL instead of dotimesL.
57559	* array.d (reshape): Likewise.
57560	* charstrg.d (string_gleich, string_equal, SUBSTRING): Likewise.
57561	* control.d (PSETQ): Likewise.
57562	* error.d (convert_simple_condition): Likewise.
57563	* eval.d (sym_value, setq, sym_function, nest_env): Likewise.
57564	* encoding.d (make_string_, ascii_to_string): Likewise.
57565	* graph.d (gr_text): Likewise.
57566	* io.d (test_potential_number_syntax, test_number_syntax, test_dots)
57567	(upcase_token, uninterned_reader, bit_vector_reader)
57568	(write_sstring_case, klammer_zu): Likewise.
57569	* record.d (CLOS::ALLOCATE-STD-INSTANCE, CLOS::%ALLOCATE-INSTANCE)
57570	(CLOS::%MAKE-INSTANCE): Likewise.
57571	* spvw.d (main): Likewise.
57572	* foreign.d (convert_from_foreign_array_fill, convert_to_foreign):
57573	  Likewise.
57574	* hashtabl.d (clrhash): Likewise.
57575	* intread.d (DIGITS_to_I): Likewise.
57576	* pathname.d (common_case, test_optional_host, all_digits)
57577	(parse_logical_pathnamestring, legal_name_or_type, legal_name)
57578	(legal_type, MAKE-PATHNAME, has_wildcards, has_word_wildcards)
57579	(SYSTEM::DYNLOAD-MODULES): Likewise.
57580	* predtype.d (heap_statistics_result): Likewise.
57581	* stream.d (wr_ss_terminal3): Likewise.
57582	* spvw_debug.d (mem_hex_out): Likewise.
57583	* spvw_typealloc.d (allocate_vector): Likewise.
57584
57585	Convert dotimesC with loop variables into dotimespC.
57586	* affi.d (affi_call_argsa): Use dotimespC instead of dotimesC.
57587	* arilev1i.d (shiftleft_loop_down, shiftleftcopy_loop_down)
57588	(shiftright_loop_up): Likewise.
57589	* array.d (array_dimensions, array_dims_sizes, ARRAY-IN-BOUNDS-P)
57590	(bit_up): Likewise.
57591	* eval.d (get_closure, funcall_iclosure, match_subr_key)
57592	(match_cclosure_key, apply_closure, funcall_subr, funcall_closure):
57593	  Likewise.
57594	* charstrg.d (string_concat): Likewise.
57595	* misc.d (MACHINE-INSTANCE): Likewise.
57596	* control.d (LET, LET*, SYMBOL-MACROLET): Likewise.
57597	* foreign.d (FFI::%ELEMENT): Likewise.
57598	* hashtabl.d (hashcode4_atom): Likewise.
57599	* lisparit.d (=, /=, <, >, <=, >=): Likewise.
57600	* record.d (CLOS::%SHARED-INITIALIZE, CLOS::%REINITIALIZE-INSTANCE)
57601	(do_initialize_instance, CLOS::%MAKE-INSTANCE): Likewise.
57602	* predtype.d (equalp): Likewise.
57603	* sequence.d (CONCATENATE): Likewise.
57604	* spvw.d (for_all_subrs, for_all_constobjs, init_subr_tab_1)
57605	(init_object_tab_1, init_other_modules_1, init_module_2, main)
57606	(dynload_modules): Likewise.
57607	* spvw_typealloc.d (allocate_xrecord_): Likewise.
57608	* stream.d (test_input_stream_args, test_output_stream_args)
57609	(clear_linepart, save_line_old): Likewise.
57610
576111999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57612
57613	Introduce immutable strings.
57614	* lispbibl.d (Rectype_Imm_Sstring): New enumeration item.
57615	(Array_type_sstring): Include it.
57616	(strmflags_immut_bit_B): New macro.
57617	(vectorp, simplep, array_simplep, general_vector_p, simple_string_p)
57618	(stringp, byte_vector_p, arrayp, if_recordp): Update.
57619	(case_Rectype_Sstring_above, case_Rectype_string_above): Include
57620	  Rectype_Imm_Sstring.
57621	(allocate_imm_string): New declaration.
57622	(with_string_0, with_string): Use unpack_string_ro.
57623	(unpack_string_ro, unpack_string_rw): New declarations, replace
57624	  unpack_string.
57625	(coerce_imm_ss): New declaration.
57626	(test_string_limits_ro, test_string_limits_rw): New declarations,
57627	  replace test_string_limits.
57628	(fehler_sstring_immutable): New declaration.
57629	(check_sstring_mutable): New macro.
57630	* spvw_update.d (update_varobject): Treat Rectype_Imm_Sstring like
57631	  Rectype_Sstring.
57632	* spvw_garcol.d (gc_mark): Likewise.
57633	* spvw_genera1.d (walk_area, build_old_generation_cache): Likewise.
57634	* spvw_typealloc.d (allocate_imm_string): New function.
57635	* error.d (fehler_sstring_immutable): New function.
57636	* array.d (datenvektor_store): In case of Rectype_Imm_Sstring, signal
57637	  an error.
57638	* charstrg.d (unpack_string_rw): Rename from unpack_string. Add calls
57639	  to check_sstring_mutable.
57640	(unpack_string_ro): New function.
57641	(string_gleich, string_equal, copy_string): Use unpack_string_ro
57642	  instead of unpack_string.
57643	(coerce_imm_ss): New function.
57644	(coerce_char): Use unpack_string_ro instead of unpack_string.
57645	(test_index_arg): Return the index, not the new charptr.
57646	(CHAR, SCHAR): Update.
57647	(SYS::STORE-CHAR): Update. Call unpack_string_rw instead of
57648	  unpack_string.
57649	(SYS::STORE-SCHAR): Update. Add check_sstring_mutable call.
57650	(test_string_limits_ro): Rename from test_string_limits.
57651	  Use unpack_string_ro instead of unpack_string.
57652	(test_string_limits_rw): New function.
57653	(test_2_stringsym_limits): Use unpack_string_ro instead of
57654	  unpack_string.
57655	(NSTRING-UPCASE, NSTRING-DOWNCASE, NSTRING-CAPITALIZE): Use
57656	  test_string_limits_rw instead of test_string_limits.
57657	(SUBSTRING, string_concat): Use unpack_string_ro instead of
57658	  unpack_string.
57659	* stream.d (strmflags_immut_bit_B, strmflags_immut_B): New macros.
57660	(make_twoway_stream, make_echo_stream): Inherit the immut_B from
57661	  the input stream.
57662	(rd_ch_str_in, rd_ch_array_str_in): Use unpack_string_ro instead of
57663	  unpack_string.
57664	(MAKE-STRING-INPUT-STREAM): Use test_string_limits_ro instead of
57665	  test_string_limits.
57666	(rd_ch_buff_in): Likewise. Use unpack_string_ro instead of
57667	  unpack_string.
57668	(make_unbuffered_stream, make_buffered_stream): Put strmflags_immut_B
57669	  into the strmflags if asked for.
57670	(FILE-STRING-LENGTH): Use unpack_string_ro instead of unpack_string.
57671	* io.d (string_reader): Create an immutable string, if the stream
57672	  allows this.
57673	(uninterned_reader): Likewise.
57674	(PARSE-INTEGER): Use test_string_limits_ro instead of
57675	  test_string_limits.
57676	(pr_orecord): Treat Rectype_Imm_Sstring like Rectype_Sstring.
57677	(write_string_up): Use test_string_limits_ro instead of
57678	  test_string_limits.
57679	* affi.d (affi_call_argsa): Use unpack_string_ro instead of
57680	  unpack_string.
57681	(SYSTEM::MEM-READ): Use unpack_string_rw instead of unpack_string.
57682	(SYSTEM::MEM-WRITE-VECTOR): Use unpack_string_ro instead of
57683	  unpack_string.
57684	* package.d (string_hashcode): Use unpack_string_ro instead of
57685	  unpack_string.
57686	(intern): Make the symbol-name strings immutable if possible.
57687	(shadow): Likewise.
57688	(MAKE-SYMBOL): Likewise.
57689	(test_names_args): Make the package-name and package-nicknames
57690	  strings immutable if possible.
57691	* spvw.d (init_symbol_tab_2): Make the symbol-name strings immutable
57692	  if possible.
57693	* pathname.d (PARSE-NAMESTRING): Use test_string_limits_ro instead of
57694	  test_string_limits.
57695	* encoding.d (string_to_asciz): Use unpack_string_ro instead of
57696	  unpack_string.
57697	* foreign.d (convert_to_foreign): Use unpack_string_ro instead of
57698	  unpack_string.
57699	* hashtabl.d (hashcode_string): Use unpack_string_ro instead of
57700	  unpack_string.
57701	(hashcode3_atom): Treat Rectype_Imm_Sstring like Rectype_Sstring.
57702	* sequence.d (READ-CHAR-SEQUENCE): Treat an empty string specially.
57703	  Then call unpack_string_rw instead of unpack_string.
57704	(WRITE-CHAR-SEQUENCE): Treat an empty string specially.
57705	  Then call unpack_string_ro instead of unpack_string.
57706
577071999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57708
57709	Make room in the strmflags.
57710	* stream.d (strmflags_i_B, strmflags_ia_B, strmflags_ib_B)
57711	(strmflags_ic_B): Remove macros.
57712	(decoded_eltype): kind==eltype_ch implies size==0.
57713	(test_eltype_arg): When setting eltype_ch, set size = 0.
57714	(strm_channel_extrafields_struct): bitsize is now unconditional.
57715	(close_ichannel, close_ochannel): Test for bitsize > 0.
57716	(make_unbuffered_stream): Set ChannelStream_bitsize in all cases.
57717	  Do not set strmflags_i...
57718	(position_file_i_buffered): Dispatch on bitsize, not flags.
57719	(logical_position_file_start, logical_position_file)
57720	(logical_position_file_end): Likewise.
57721	(fill_pseudofuns_buffered): Likewise.
57722	(make_buffered_stream): Set ChannelStream_bitsize in all cases.
57723	  Do not set strmflags_i...
57724	(buffered_flush_everything): Dispatch on bitsize, not flags.
57725	(closed_buffered): Test for bitsize > 0.
57726	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Simplify accordingly.
57727
577281999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57729
57730	Make BASE-CHAR equivalent to CHARACTER.
57731	* lispbibl.d (small_char_int_len): Rename from base_char_int_len.
57732	(small_char_int_limit): Rename from base_char_int_limit.
57733	(scint): Rename from bcint.
57734	(small_char_code_limit): Rename from base_char_code_limit.
57735	(base_char_int_len, base_char_code_limit): New macros.
57736	(base_char_p): Define only when needed.
57737	(small_char_p): New macro.
57738	* charstrg.d (SYSTEM::BASE-CHAR-P): Define only when needed.
57739	* spvw.d (init_object_tab): Add :BASE-CHAR=CHARACTER to *features*.
57740	* io.d: Update.
57741	* defs2.lsp (dispatch-reader): Do not use base-char-p and
57742	  base-char-code-limit.
57743	(designator): Depend upon :BASE-CHAR=CHARACTER.
57744	(base-char-designator-p): Define only when needed.
57745	* type.lsp (BASE-CHAR, EXTENDED-CHAR, canonicalize-type): Depend
57746	  upon :BASE-CHAR=CHARACTER.
57747	* compiler.lsp (c-typep-alist1, c-typep-alist2): Treat BASE-CHAR
57748	  and EXTENDED-CHAR depending upon :BASE-CHAR=CHARACTER.
57749
577501999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57751
57752	Improve the speed of NLS charset conversions.
57753	* utils/unicode/nls_table.java: Emit a value for is_ascii_extension.
57754	* encoding.d (nls_table): New field `is_ascii_extension'.
57755	(nls_asciiext_mbstowcs, nls_asciiext_wcstombs): New functions.
57756	(init_encodings): Choose them if possible.
57757	* pseudofun.d (nls_asciiext_mbstowcs, nls_asciiext_wcstombs): New
57758	  declarations.
57759
577601999-02-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57761
57762	* stream.d (init_streamvars): Avoid gcc warning.
57763
577641999-02-19  Sam Steingold  <sds@goems.com>
57765
57766	* defs3.lsp, clos.lsp, init.lsp: do not export `generic-flet',
57767	`generic-labels'.
57768	* _impnotes.html is now HTML 3.2 compliant.
57769
577701999-02-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57771
57772	* makemake.in: Improve parsing of --hyperspec argument.
57773
577741999-02-18  Sam Steingold  <sds@goems.com>
57775
57776	* affi.txt, ansicl.txt, cltl2.txt, foreign.txt, module.txt,
57777	vgagraph.txt: remove.
57778
577791999-02-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57780
57781	* makemake.in: Improve parsing of --hyperspec argument.
57782
577831999-02-17  Sam Steingold  <sds@goems.com>
57784
57785	* spvw.d: user ascii* instead of asciz* for constant string
57786	when initializing *features*.
57787	* _impnotes.txt, impnotes.html: remove.
57788	* _impnotes.html: new file.
57789	* makemake.in, ../configure: new option --hyperspec.
57790
577911999-02-12  Sam Steingold  <sds@goems.com>
57792
57793	* socket.d (create_client_socket): port is unsigned int.
57794	* stream.d: declare `create_client_socket' appropriately.
57795
577961999-02-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57797
57798	* pseudofun.d: Enclose all XPSEUDOs in #ifdef UNICODE.
57799
578001999-02-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
57801
57802	Unicode support.
57803	* makemake.in (--with-unicode): New command line option.
57804	(XCFLAGS): Conditionally add -DUNICODE.
57805	(UNICODE_INCLUDES, NLS_INCLUDES): New variables.
57806	(CFILES): Add them.
57807	  Symlink them.
57808	(depends): Add $UNICODE_INCLUDES for charstrg. Add $NLS_INCLUDES for
57809	  encoding.
57810	* lispbibl.d (CHART_STRUCT): Do not define on m68k and arm CPUs.
57811	(char_int_len): Define as 16 for UNICODE.
57812	(Encoding) [UNICODE]: Add more fields.
57813	(encoding_length): Change value.
57814	(encoding_xlength): New macro.
57815	(Encoding_mblen, Encoding_mbstowcs, Encoding_wcslen)
57816	(Encoding_wcstombs, cslen, cstombs): New macros.
57817	(allocate_encoding): Use encoding_xlength.
57818	(make_string): Add an encoding argument.
57819	(asciz_to_string, string_to_asciz): Likewise.
57820	(ascii_to_string): New function.
57821	(with_string_0, with_sstring_0, with_string, with_sstring): Add an
57822	  encoding argument.
57823	(pseudofun_): Remove type.
57824	(Pseudofun): Change definition.
57825	(P): New macro, moved here from stream.d.
57826	(max_bytes_per_chart): New macro.
57827	* genclisph.d (main): Remove `asciz_to_string' declaration.
57828	  Add `ascii_to_string' declaration.
57829	* modules/clx/new-clx/e2d.c (care_about_packages): Use ascii_to_string
57830	  instead of asciz_to_string.
57831	* constpack.d (LISPPACK_B): Use ascii_to_string instead of
57832	  asciz_to_string.
57833	(charset): New package.
57834	* constsym.d (CHARSET:...): New symbols.
57835	* constobj.d (O(internal_encoding), O(pathname_encoding),
57836	   O(terminal_encoding), O(foreign_encoding), O(misc_encoding)): New
57837	  variables.
57838	* spvw.d (make_string, asciz_to_string, string_to_asciz): Moved out
57839	  to encoding.d.
57840	(fehler_notreached): Use ascii_to_string instead of asciz_to_string.
57841	(fehler_code_alignment): Use O(terminal_encoding).
57842	(init_symbol_tab_2): Export symbols in package CHARSET as well.
57843	  Use ascii_to_string instead of asciz_to_string.
57844	(init_object_tab): Add :UNICODE to features_initstring. Use
57845	  ascii_to_string instead of asciz_to_string. Use O(internal_encoding).
57846	(init_module_2): Use O(internal_encoding).
57847	(print_license, print_banner): Use O(internal_encoding).
57848	(main): Use O(internal_encoding) and O(pathname_encoding) and
57849	  O(misc_encoding). Use ascii_to_string.
57850	(fehler_dlerror): Use O(misc_encoding) and O(internal_encoding).
57851	* spvw_language.d (localized_string, localized_object): Use
57852	  S(iso8859_1).
57853	* spvw_memfile.d (memflags): Depends on UNICODE.
57854	(loadmem_update): Use the Pseudofun type instead of void*.
57855	* encoding.d (MAKE-ENCODING): Accept constant symbols for the :charset
57856	  argument. Copy the trailing encoding_xlength bytes too.
57857	(make_string): Moved here from spvw.d. Add encoding argument.
57858	(asciz_to_string): Likewise.
57859	(ascii_to_string): New function.
57860	(string_to_asciz): Moved here from spvw.d. Add encoding argument.
57861	(hex_table): New variable.
57862	(fehler_unencodable): New function.
57863	(uni16_mblen, uni16be_mbstowcs, uni16le_mbstowcs, uni16_wcslen)
57864	(uni16be_wcstombs, uni16le_wcstombs): New functions.
57865	(fehler_utf8_invalid1, fehler_utf8_invalid2, fehler_utf8_invalid3)
57866	(utf8_mblen, utf8_mbstowcs, utf8_wcslen, utf8_wcstombs): New
57867	  functions.
57868	(java_mblen, java_mbstowcs, java_wcslen, java_wcstombs): New
57869	  functions.
57870	(nls_table): New struct type.
57871	(nopage): New constant array.
57872	(nls_*.c): New include files.
57873	(nls_first_sym, nls_last_sym, nls_num_encodings): New macros.
57874	(nls_tables): New constant array.
57875	(nls_mblen, nls_mbstowcs, nls_wcslen, nls_wcstombs): New functions.
57876	(init_encodings): Entirely rewritten.
57877	* pseudofun.d (PSEUDOFUN_C): Rename from PSEUDOFUN_B.
57878	(PSEUDOFUN_B): New macro.
57879	(XPSEUDO_A, XPSEUDO_B, XPSEUDO_C): New macros.
57880	  New XPSEUDO declarations for the functions and tables defined in
57881	  encoding.d.
57882	* charstrg.d (nop_page): New variable.
57883	(up_case, down_case): Add UNICODE support.
57884	(uni_attribute.c): New include file.
57885	(unicode_attribute): New macro.
57886	(alphap): Add UNICODE support.
57887	(numericp): New macro.
57888	(alphanumericp): Add UNICODE support.
57889	(graphic_char_p): Add UNICODE support.
57890	(SYSTEM::BASE-CHAR-P): Fix comparison with base_char_code_limit.
57891	(DIGIT-CHAR-P): Add UNICODE support.
57892	* predtype.d (TYPE-OF): Fix comparison with base_char_code_limit.
57893	* package.d (init_packages): Use ascii_to_string instead of
57894	  asciz_to_string.
57895	* io.d (unicode_attribute, graphic_char_p): New macros.
57896	(allocate_perchar_table, perchar_table_get, perchar_table_put)
57897	(copy_perchar_table): Add UNICODE support.
57898	(allocate_syntax_table, syntax_table_get, syntax_table_put): Move
57899	  macros. Add UNICODE support.
57900	(orig_syntax_table): Size is only base_char_code_limit. Add UNICODE
57901	  support.
57902	(orig_syntax_table_get): New macro.
57903	(orig_readtable, copy_readtable_contents): Add UNICODE support.
57904	(SET-SYNTAX-FROM-CHAR): Permit syntax_table_put to call GC.
57905	(SET-MACRO-CHARACTER): Likewise.
57906	(MAKE-DISPATCH-MACRO-CHARACTER): Likewise.
57907	(attribute_table): Size is only base_char_code_limit. Add UNICODE
57908	  support.
57909	(attribute_of): Add UNICODE support.
57910	(char_reader): Declare code as uintL, so it can hold value up to
57911	  10*char_code_limit. Recognize #\uxxxx syntax.
57912	(PARSE-INTEGER): Use orig_syntax_table_get instead of accessing
57913	  orig_syntax_table directly.
57914	(pr_orecord): For Rectype_Encoding, also print the charset symbol.
57915	* defs2.lsp (dispatch-reader): Modify to match changes in the
57916	  perchar_table_get macro.
57917	* pathname.d (asciz_dir_to_pathname): Add an encoding argument.
57918	(PARSE-NAMESTRING): Use O(misc_encoding).
57919	(default_directory_of, directory_truename, default_directory)
57920	(canonicalise_filename, canonicalise_dirname, assure_dir_exists):
57921	  Use O(pathname_encoding).
57922	(change_default): Likewise.
57923	(file_exists, directory_exists): Likewise.
57924	(DELETE-FILE, rename_file, create_backup_file, open_file): Likewise.
57925	(extract, subdirs, subfiles, with_stat_info)
57926	(directory_search_1subdir, directory_search_hashcode)
57927	(directory_search_direntry_ok, directory_search_scandir, DIRECTORY):
57928	  Likewise.
57929	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Likewise.
57930	(init_pathnames): Use O(pathname_encoding) and O(misc_encoding).
57931	(FILE-WRITE-DATE, FILE-AUTHOR): Use O(pathname_encoding).
57932	(EXECUTE): Use O(pathname_encoding) and O(misc_encoding).
57933	(SHELL): Use O(misc_encoding).
57934	(SYSTEM::DYNLOAD-MODULES): Use O(pathname_encoding).
57935	(SYSTEM::PROGRAM-NAME): Likewise.
57936	* stream.d (P): Move to lispbibl.d.
57937	(test_external_format): Accept constant symbols.
57938	(strm_unbuffered_extrafields_struct): Extend the meaning of status.
57939	  Rename field `lastbyte' to `bytebuf'.
57940	(UnbufferedStream_lastbyte): Remove macro.
57941	(UnbufferedStream_bytebuf): New macro.
57942	(UnbufferedStreamLow_push_byte, UnbufferedStreamLow_pushfront_byte)
57943	(UnbufferedStreamLow_pushfront_bytes, UnbufferedStreamLow_pop_byte):
57944	  New macros.
57945	(low_read_unbuffered_handle): Use UnbufferedStreamLow_pop_byte and
57946	  UnbufferedStreamLow_push_byte.
57947	(low_listen_unbuffered_handle): Use UnbufferedStreamLow_push_byte.
57948	(low_read_array_unbuffered_handle): Use UnbufferedStreamLow_pop_byte
57949	  in a loop.
57950	(rd_ch_unbuffered): Add UNICODE support.
57951	(listen_unbuffered): Likewise. Use UnbufferedStreamLow_pushfront_byte.
57952	(rd_ch_array_unbuffered): Add UNICODE support.
57953	(wr_ch_unbuffered_unix, wr_ch_array_unbuffered_unix): Likewise.
57954	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac): Likewise.
57955	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos): Likewise.
57956	(rd_ch_buffered, rd_ch_array_buffered): Likewise.
57957	(wr_ch_buffered_unix, wr_ch_array_buffered_unix): Likewise.
57958	(wr_ch_buffered_mac, wr_ch_array_buffered_mac): Likewise.
57959	(wr_ch_buffered_dos, wr_ch_array_buffered_dos): Likewise.
57960	(finish_output_buffered): Use O(pathname_encoding).
57961	(make_key_event): Use ascii_to_string instead of asciz_to_string.
57962	(lisp_completion): Use O(terminal_encoding).
57963	(rd_ch_terminal3): Use O(terminal_encoding).
57964	(wr_ch_terminal3): Call wr_ch_unbuffered_unix, instead of direct
57965	  `write' call.
57966	(wr_ss_terminal3): Call wr_ch_array_unbuffered_unix, instead of
57967	  direct `full_write' call.
57968	(make_terminal_stream_): Initialize the encoding. Use
57969	  O(pathname_encoding).
57970	(init_term): Use O(misc_encoding).
57971	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
57972	(MAKE-PIPE-IO-STREAM): Use O(misc_encoding).
57973	(low_read_unbuffered_socket): Use UnbufferedStreamLow_pop_byte.
57974	(low_listen_unbuffered_socket): Use UnbufferedStreamLow_push_byte.
57975	(low_read_array_unbuffered_socket): Use UnbufferedStreamLow_pop_byte
57976	  in a loop.
57977	(SYS::MAKE-SOCKET-STREAM, SOCKET-SERVER, SOCKET-CONNECT): Use
57978	  O(misc_encoding).
57979	(SOCKET-SERVICE-PORT): Use S(ascii).
57980	(publish_host_data): Use O(misc_encoding).
57981	(make_terminal_io): Use ascii_to_string instead of asciz_to_string.
57982	(init_streamvars): Likewise.
57983	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Use UnbufferedStreamLow_push_byte.
57984	(pseudofun_tab): Include pseudofun.c once more.
57985	* error.d (write_errorstring): Add UNICODE support. Use
57986	  O(internal_encoding).
57987	* misc.d (LISP-IMPLEMENTATION-VERSION): Use ascii_to_string instead of
57988	  asciz_to_string.
57989	(MACHINE-TYPE, MACHINE-VERSION, MACHINE-INSTANCE): Use
57990	  O(misc_encoding). Use ascii_to_string instead of asciz_to_string.
57991	(SYSTEM::GETENV, SYSTEM::REGISTRY): Use O(misc_encoding).
57992	* rexx.d (REXX-PUT): Use with_sstring and O(misc_encoding).
57993	(rexx_getmsg): Use O(misc_encoding).
57994	(REXX-REPLY): Use with_string and O(misc_encoding). No need to call
57995	  coerce_ss.
57996	* graph.d (SYS::GRAPH-INIT): Use ascii_to_string instead of
57997	  asciz_to_string.
57998	(SYS::GRAPH-TEXT): Use with_string and an encoding corresponding to
57999	  the font.
58000	* foreign.d (register_foreign_variable, register_foreign_function):
58001	  Use O(internal_encoding).
58002	(convert_from_foreign_array_fill, convert_from_foreign): Add UNICODE
58003	  support. Use O(foreign_encoding).
58004	(convert_to_foreign): Add UNICODE support. Use O(foreign_encoding).
58005	(open_library): Use O(misc_encoding).
58006	* affi.d (affi_callit): Use O(foreign_encoding).
58007	(affi_call_argsa): Add UNICODE support. Use O(foreign_encoding).
58008	(SYS::MEM-READ, SYSTEM::MEM-WRITE-VECTOR): Likewise.
58009
580101999-02-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58011
58012	* stream.d (init_streamvars): Initialize the keyboard stream after
58013	  the standard streams, not before them.
58014
580151999-02-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58016
58017	* autoconf/aclocal.m4 (CL_IREG_FLOAT_RETURN): New macro.
58018
580191999-02-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58020
58021	* utils/unicode/: New directory.
58022	* uni_upcase.c, uni_downcase.c, uni_attribute.c, nls_*.c: New files,
58023	  automatically generated by utils/unicode/ tools.
58024
580251999-02-14  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58026
58027	* compiler.lsp (compile-toplevel-form): Put a newline on
58028	  *fasoutput-stream* after the form, not before it.
58029	(compile-file): Put a newline after the first form, and none before
58030	  closing *fasoutput-stream*.
58031
580321999-02-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58033
58034	* lispbibl.d (with_sstring): Assign a value to lenvar.
58035
580361999-02-13  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58037
58038	Introduce encodings.
58039	* lispbibl.d (Rectype_Encoding): New enum value.
58040	(Encoding): New structure type.
58041	(encoding_length): New macro.
58042	(strm_file_name, strm_file_truename, strm_buffered_channel)
58043	(strm_pipe_pid, strm_x11socket_connect, strm_socket_port)
58044	(strm_socket_host): Offset by 1.
58045	(TheEncoding, encodingp, allocate_encoding): New macros.
58046	(init_encodings): New declaration.
58047	(make_file_stream): Change calling convention.
58048	* constobj.d (O(default_file_encoding)): New variable.
58049	* encoding.d: New file.
58050	* makemake.in (CPARTS): Add encoding.d.
58051	* gettext/po/Makefile.devel (DSOURCES): Add encoding.d.
58052	* spvw.d (initmem): Call init_encodings.
58053	* io.d (pr_orecord): Treat Rectype_Encoding.
58054	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Encoding.
58055	(enum_hs_encoding): New enum value.
58056	(heap_statistics_mapper): Treat Rectype_Encoding.
58057	* stream.d (test_external_format_arg): New function.
58058	(strm_encoding): New macro.
58059	(strm_bitbuffer, strm_buffer, strm_isatty, strm_ichannel)
58060	(strm_ochannel, strm_field1, strm_field2, strm_channel_extrafields)
58061	(strm_channel_len): Offset by 1.
58062	(strm_unbuffered_extrafields_struct): New field ignore_next_LF.
58063	(UnbufferedStream_ignore_next_LF): New macro.
58064	(rd_ch_unbuffered): Perform CR/LF->NL and CR->NL conversion.
58065	(listen_unbuffered): Likewise.
58066	(clear_input_unbuffered): Update.
58067	(rd_ch_array_unbuffered): Perform CR/LF->NL and CR->NL conversion.
58068	(wr_ch_unbuffered_unix): Rename from wr_ch_unbuffered.
58069	(wr_ch_array_unbuffered_unix): Rename from wr_ch_array_unbuffered.
58070	(wr_ss_unbuffered_unix): Rename from wr_ss_unbuffered.
58071	(wr_ch_unbuffered_mac, wr_ch_array_unbuffered_mac)
58072	(wr_ss_unbuffered_mac): New functions.
58073	(wr_ch_unbuffered_dos, wr_ch_array_unbuffered_dos)
58074	(wr_ss_unbuffered_dos): New functions.
58075	(wr_ch_unbuffered_x, wr_ch_array_unbuffered_x, wr_ss_unbuffered_x):
58076	  Remove macros.
58077	(fill_pseudofuns_unbuffered): Choose among the
58078	  wr_*_unbuffered_{unix,mac,dos} functions.
58079	(make_unbuffered_stream): Change calling convention. Set the
58080	  stream's encoding.
58081	(rd_ch_buffered): Perform CR/LF->NL and CR->NL conversion.
58082	(rd_ch_array_buffered): Likewise.
58083	(wr_ch_buffered_unix): Rename from wr_ch_buffered.
58084	(wr_ch_array_buffered_unix): Rename from wr_ch_array_buffered.
58085	(wr_ss_buffered_unix): Rename from wr_ss_buffered.
58086	(wr_ch_buffered_mac, wr_ch_array_buffered_mac, wr_ss_buffered_mac):
58087	  New functions.
58088	(wr_ch_buffered_dos, wr_ch_array_buffered_dos, wr_ss_buffered_dos):
58089	  New functions.
58090	(fill_pseudofuns_buffered): Choose among the
58091	  wr_*_buffered_{unix,mac,dos} functions.
58092	(make_buffered_stream): Change calling convention. Set the stream's
58093	  encoding.
58094	(make_file_stream): Change calling convention. Call
58095	  test_external_format_arg.
58096	(strm_terminal_index): Offset by 1.
58097	(rd_ch_terminal1): Remove CR/LF->NL conversion, already done by
58098	  rd_ch_unbuffered.
58099	(wr_ch_terminal1, wr_ss_terminal1): Update.
58100	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
58101	(MAKE-PIPE-IO-STREAM): Call test_external_format_arg.
58102	(make_socket_stream): Change calling convention.
58103	(SOCKET-ACCEPT, SOCKET-CONNECT): Call test_external_format_arg.
58104	(make_terminal_io, init_streamvars): Update.
58105	(SYSTEM::SET-STREAM-ELEMENT-TYPE): Reset the ignore_next_LF flag.
58106	(STREAM-EXTERNAL-FORMAT): Rewritten.
58107	(SYSTEM::SET-STREAM-EXTERNAL-FORMAT): New function.
58108	(FILE-STRING-LENGTH): Update.
58109	* pseudofun.d: Update.
58110	* pathname.d (open_file): Change calling convention.
58111	(OPEN): Do not check the :external-format argument here.
58112	* places.lsp (stream-external-format): New defsetf.
58113	* macros2.lsp (with-output-to-printer, make-printer-stream): Accept
58114	  a :external-format argument.
58115
581161999-02-11  Christian Jullien  <eligis@wanadoo.fr>
58117
58118	* time.d (get_run_time) [TIME_WIN32]: Add missing semicolon.
58119
581201999-02-10  Sam Steingold  <sds@goems.com>
58121
58122	* spvw.d: add :ANSI-CL and :IEEE-FLOATING-POINT to *features*
58123	when invoked with "-a".
58124
58125	* io.d: when lisp:*ansi* is non-nil, do not print pathnames with
58126	#S() when *print-readably* is non-nil.
58127
581281999-02-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58129
58130	* unixaux.d (full_read): Call handle_fault_range before the system
58131	  call, in order to avoid EFAULT.
58132	(full_write): Likewise.
58133	* win32aux.d (lowlevel_full_read, full_write, lowlevel_sock_read)
58134	(lowlevel_sock_write): Likewise.
58135
581361999-02-05  Sam Steingold  <sds@goems.com>
58137
58138	* spvw.d (usage): add the URL and replace "oder" with "or".
58139
581401999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58141
58142	* intgcd.d (I_I_xgcd_I_I_I): Use C comments, not C++ comments.
58143
581441999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58145
58146	* stream.d (publish_host_data): If hd.truename is NULL, use
58147	  hd.hostname, not hd.truename.
58148
581491999-02-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58150
58151	* stream.d: Big renaming orgy.
58152	(strm_ichannel): was strm_ihandle.
58153	(strm_ochannel): was strm_ohandle.
58154	(strm_channel_extrafields): was strm_handle_extrafields.
58155	(strm_channel_len): was strm_handle_len.
58156	(strm_channel_extrafields_struct): was
58157	  strm_handle_extrafields_struct.
58158	(strm_unbuffered_extrafields_struct): was
58159	  strm_u_file_extrafields_struct.
58160	(ChannelStream_eltype): was HandleStream_eltype.
58161	(ChannelStream_isatty): was HandleStream_isatty.
58162	(ChannelStream_ichannel): was HandleStream_ihandle.
58163	(ChannelStream_ochannel): was HandleStream_ohandle.
58164	(ChannelStream_buffered): was HandleStream_buffered.
58165	(ChannelStreamLow_close): was HandleStreamLow_close.
58166	(ChannelStream_lineno): was HandleStream_lineno.
58167	(ChannelStream_bitsize): was HandleStream_bitsize.
58168	(UnbufferedStreamLow_read): was FileStreamLow_read.
58169	(UnbufferedStreamLow_listen): was FileStreamLow_listen.
58170	(UnbufferedStreamLow_clear_input): was FileStreamLow_clear_input.
58171	(UnbufferedStreamLow_read_array): was FileStreamLow_read_array.
58172	(UnbufferedStream_status): was FileStream_status.
58173	(UnbufferedStream_lastbyte): was FileStream_lastbyte.
58174	(UnbufferedStream_rawp): was FileStream_rawp.
58175	(UnbufferedStreamLow_write): was FileStreamLow_write.
58176	(UnbufferedStreamLow_write_array): was FileStreamLow_write_array.
58177	(UnbufferedStreamLow_finish_output): was FileStreamLow_finish_output.
58178	(UnbufferedStreamLow_force_output): was FileStreamLow_force_output.
58179	(UnbufferedStreamLow_clear_output): was FileStreamLow_clear_output.
58180	(wr_by_ixu_sub): was wr_by_ixu_file.
58181	(wr_by_ixs_sub): was wr_by_ixs_file.
58182	(low_read_unbuffered_handle): was file_low_read.
58183	(low_listen_unbuffered_handle): was file_low_listen.
58184	(low_clear_input_unbuffered_handle): was file_low_clear_input.
58185	(low_read_array_unbuffered_handle): was file_low_read_array.
58186	(rd_by_aux_iax_unbuffered): was rd_by_aux_iax_handle.
58187	(rd_by_iau_unbuffered): was rd_by_iau_handle.
58188	(rd_by_ias_unbuffered): was rd_by_ias_handle.
58189	(rd_by_iau8_unbuffered): was rd_by_iau8_handle.
58190	(rd_by_array_iau8_unbuffered): was rd_by_array_iau8_handle.
58191	(rd_ch_unbuffered): was rd_ch_handle.
58192	(listen_unbuffered): was listen_handle.
58193	(clear_input_unbuffered): was clear_input_handle.
58194	(rd_ch_array_unbuffered): was rd_ch_array_handle.
58195	(UnbufferedHandleStream_input_init): was HandleStream_input_init.
58196	(UnbufferedHandleStream_input_init_amiga): was
58197	  HandleStream_input_init_amiga.
58198	(close_ichannel): was close_ihandle.
58199	(low_write_unbuffered_handle): was file_low_write.
58200	(low_write_array_unbuffered_handle): was file_low_write_array.
58201	(low_finish_output_unbuffered_handle): was file_low_finish_output.
58202	(low_force_output_unbuffered_handle): was file_low_force_output.
58203	(low_clear_output_unbuffered_handle): was file_low_clear_output.
58204	(wr_by_aux_ia_unbuffered): was wr_by_aux_ia_handle.
58205	(wr_by_iau_unbuffered): was wr_by_iau_handle.
58206	(wr_by_ias_unbuffered): was wr_by_ias_handle.
58207	(wr_by_iau8_unbuffered): was wr_by_iau8_handle.
58208	(wr_by_array_iau8_unbuffered): was wr_by_array_iau8_handle.
58209	(wr_ch_unbuffered): was wr_ch_handle.
58210	(wr_ch_array_unbuffered): was wr_ch_array_handle.
58211	(wr_ss_unbuffered): was wr_ss_handle.
58212	(wr_ch_unbuffered_x): was wr_ch_handle_x.
58213	(wr_ch_array_unbuffered_x): was wr_ch_array_handle_x.
58214	(wr_ss_unbuffered_x): was wr_ss_handle_x.
58215	(finish_output_unbuffered): was finish_output_handle.
58216	(force_output_unbuffered): was force_output_handle.
58217	(clear_output_unbuffered): was clear_output_handle.
58218	(UnbufferedHandleStream_output_init): was HandleStream_output_init.
58219	(close_ochannel): was close_ohandle.
58220	(strm_buffered_channel): was strm_file_handle.
58221	(strm_buffered_bufflen): was strm_file_bufflen.
58222	(strm_buffered_buffer): was strm_file_buffer.
58223	(strm_buffered_extrafields_struct): was strm_file_extrafields_struct.
58224	(strm_i_buffered_extrafields_struct): was
58225	  strm_i_file_extrafields_struct.
58226	(BufferedStream_channel): was FileStream_handle.
58227	(BufferedStream_buffer): was FileStream_buffer.
58228	(BufferedStreamLow_fill): was FileStreamLow_fill.
58229	(BufferedStreamLow_flush): was FileStreamLow_flush.
58230	(BufferedStream_buffstart): was FileStream_buffstart.
58231	(BufferedStream_eofindex): was FileStream_eofindex.
58232	(BufferedStream_index): was FileStream_index.
58233	(BufferedStream_modified): was FileStream_modified.
58234	(BufferedStream_regular): was FileStream_regular.
58235	(BufferedStream_blockpositioning): was FileStream_blockpositioning.
58236	(BufferedStream_position): was FileStream_position.
58237	(BufferedStream_bitindex): was FileStream_bitindex.
58238	(BufferedStream_eofposition): was FileStream_eofposition.
58239	(handle_lseek): was file_lseek.
58240	(low_fill_buffered_handle): was b_file_fill.
58241	(low_flush_buffered_handle): was b_file_finish_flush.
58242	(BufferedHandleStream_init): was HandleStream_init.
58243	(buffered_full_flush): was b_file_full_flush.
58244	(buffered_half_flush): was b_file_half_flush.
58245	(buffered_flush): was b_file_flush.
58246	(buffered_nextbyte): was b_file_nextbyte.
58247	(buffered_eofbyte): was b_file_eofbyte.
58248	(buffered_writebyte): was b_file_writebyte.
58249	(position_file_buffered): was position_b_file.
58250	(read_byte_array_buffered): was read_byte_array_b_file.
58251	(write_byte_array_buffered): was write_byte_array_b_file.
58252	(rd_ch_buffered): was rd_ch_ch_file.
58253	(listen_buffered): was listen_ch_file.
58254	(rd_ch_array_buffered): was rd_ch_array_ch_file.
58255	(write_byte_buffered): was write_b_file.
58256	(wr_ch_buffered): was wr_ch_ch_file.
58257	(wr_ch_array_buffered): was wr_ch_array_ch_file.
58258	(wr_ss_buffered): was wr_ss_ch_file.
58259	(position_file_i_buffered): was position_i_file.
58260	(rd_by_aux_iax_buffered): was rd_by_aux_iax_file.
58261	(rd_by_aux_ibx_buffered): was rd_by_aux_ibx_file.
58262	(rd_by_aux_icx_buffered): was rd_by_aux_icx_file.
58263	(rd_by_iau_buffered): was rd_by_iau_file.
58264	(rd_by_ias_buffered): was rd_by_ias_file.
58265	(rd_by_ibu_buffered): was rd_by_ibu_file.
58266	(rd_by_ibs_buffered): was rd_by_ibs_file.
58267	(rd_by_icu_buffered): was rd_by_icu_file.
58268	(rd_by_ics_buffered): was rd_by_ics_file.
58269	(rd_by_iau8_buffered): was rd_by_iau8_file.
58270	(rd_by_array_iau8_buffered): was read_byte_array_iau8_file.
58271	(wr_by_aux_ia_buffered): was wr_by_aux_ia_file.
58272	(wr_by_aux_ib_buffered): was wr_by_aux_ib_file.
58273	(wr_by_aux_ic_buffered): was wr_by_aux_ic_file.
58274	(wr_by_iau_buffered): was wr_by_iau_file.
58275	(wr_by_ias_buffered): was wr_by_ias_file.
58276	(wr_by_ibu_buffered): was wr_by_ibu_file.
58277	(wr_by_ibs_buffered): was wr_by_ibs_file.
58278	(wr_by_icu_buffered): was wr_by_icu_file.
58279	(wr_by_ics_buffered): was wr_by_ics_file.
58280	(wr_by_iau8_buffered): was wr_by_iau8_file.
58281	(wr_by_array_iau8_buffered): was write_byte_array_iau8_file.
58282	(logical_position_file_start): was position_file_start.
58283	(logical_position_file): was position_file.
58284	(logical_position_file_end): was position_file_end.
58285	(buffered_flush_everything): was file_flush.
58286	(finish_output_buffered): was finish_output_file.
58287	(force_output_buffered): was force_output_file.
58288	(closed_buffered): was closed_file.
58289	(close_buffered): was close_file.
58290	(UnbufferedPipeStream_input_init): was PipeStream_input_init.
58291	(low_finish_output_unbuffered_pipe): was pipe_low_finish_output.
58292	(low_force_output_unbuffered_pipe): was pipe_low_force_output.
58293	(low_clear_output_unbuffered_pipe): was pipe_low_clear_output.
58294	(UnbufferedPipeStream_output_init): was PipeStream_output_init.
58295	(low_read_unbuffered_socket): was socket_low_read.
58296	(low_listen_unbuffered_socket): was socket_low_listen.
58297	(low_clear_input_unbuffered_socket): was socket_low_clear_input.
58298	(low_read_array_unbuffered_socket): was socket_low_read_array.
58299	(UnbufferedSocketStream_input_init): was SocketStream_input_init.
58300	(low_write_unbuffered_socket): was socket_low_write.
58301	(low_write_array_unbuffered_socket): was socket_low_write_array.
58302	(low_finish_output_unbuffered_socket): was socket_low_finish_output.
58303	(low_force_output_unbuffered_socket): was socket_low_force_output.
58304	(low_clear_output_unbuffered_socket): was socket_low_clear_output.
58305	(UnbufferedSocketStream_output_init): was SocketStream_output_init.
58306	(listen_socket): Remove function.
58307	(low_fill_buffered_socket): was b_socket_fill.
58308	(low_flush_buffered_socket): was b_socket_finish_flush.
58309	(BufferedSocketStream_init): was SocketStream_init.
58310	* lispbibl.d (strm_buffered_channel): was strm_file_handle.
58311	* pseudofun.d: Update.
58312	* pathname.d: Update.
58313	* spvw_memfile.d: Update.
58314
583151999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58316
58317	* lispbibl.d (oint_type_{shift,len,mask}, oint_data_{shift,len,mask}):
58318	  New definitions for Sparc-Linux.
58319	(garcol_bit_o): Move definition.
58320	(imm_type_shift): New macro.
58321	(fixnum_type, sfloat_type, char_type, read_label_type, system_type)
58322	(sign_bit_t, immediate_number_p, charp, read_label_p, systemp)
58323	(if_realp, if_rationalp, integerp, fixnump, posfixnump, floatp)
58324	(short_float_p): Use it.
58325	(FB5, FB4, FB3, FB2, FB1): Depend on garcol_bit_o.
58326
583271999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58328
58329	* hashtabl.d (sxhash_atom): Use `bitm' instead of `bit', in case
58330	  oint_type_len==32.
58331
583321999-02-02  Sam Steingold  <sds@goems.com>
58333
58334	* clisp.spec: update 'release' with each build.
58335
583361999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58337
58338	* makemake.in (LPARTS): Add back config.lsp.
58339
583401999-02-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58341
58342	Implement unbuffered file-streams, and buffered pipes and socket
58343	streams.
58344	* lispbibl.d (strmtype_twoway_socket): New enum value.
58345	(strm_twoway_socket_input): New macro.
58346	(make_file_stream): Change calling convention.
58347	* error.d (OS_filestream_error): Use the truename only for file
58348	  streams, as opposed to pipe and socket streams.
58349	* stream.d (test_buffered_arg): New function.
58350	(strm_handle_extrafields_struct): New field low_close.
58351	(HandleStreamLow_close): New macro.
58352	(low_close_handle): New function.
58353	(close_ihandle, close_ohandle): Call HandleStreamLow_close(stream).
58354	(strm_file_extrafields_struct): New fields low_fill, low_flush,
58355	  regular, blockpositioning.
58356	(FileStreamLow_fill, FileStreamLow_flush, FileStream_regular)
58357	(FileStream_blockpositioning): New macros.
58358	(b_file_fill): New function.
58359	(HandleStream_init): New macro.
58360	(b_file_full_flush): Use FileStream_blockpositioning and
58361	  FileStreamLow_flush.
58362	(b_file_half_flush): Likewise.
58363	(b_file_nextbyte): Use FileStream_blockpositioning and
58364	  FileStreamLow_fill.
58365	(position_b_file): Use FileStream_blockpositioning.
58366	(position_file_end): Likewise. If no repositioning is needed, call
58367	  lseek only once.
58368	(make_buffered_stream): New function.
58369	(make_file_stream): Change calling convention. Rewritten to call
58370	  make_buffered_stream. Deal with buffered, handle_regular,
58371	  handle_fresh. Support :APPEND for unbuffered streams as well.
58372	(finish_output_file): Call fsync or close/open on regular files only.
58373	  If no repositioning is needed, do not call position_b_file.
58374	(close_file): Call HandleStreamLow_close(stream).
58375	(strm_pipe_in_other, strm_pipe_out_other): Remove macros.
58376	(strm_pipe_other): New macro.
58377	(low_close_pipe): New function.
58378	(close_pipe_in, close_pipe_out): Remove functions.
58379	(MAKE-PIPE-INPUT-STREAM): Call test_buffered_arg. Call either
58380	  make_unbuffered_stream or make_buffered_stream. Set the
58381	  HandleStreamLow_close function.
58382	(MAKE-PIPE-OUTPUT-STREAM): Likewise.
58383	(MAKE-PIPE-IO-STREAM): Likewise.
58384	(low_close_socket): New function.
58385	(close_socket): Remove function.
58386	(SYSTEM::MAKE-SOCKET-STREAM): Set the HandleStreamLow_close
58387	  function.
58388	(b_socket_fill, b_socket_finish_flush): New functions.
58389	(SocketStream_init): New macro.
58390	(strm_twoway_socket_input, strm_twoway_socket_output): New macros.
58391	(low_close_socket_nop): New function.
58392	(make_socket_stream): Change signature. Call either
58393	  make_unbuffered_stream, or make_buffered_stream and allocate a
58394	  two-way-socket stream. Set the HandleStreamLow_close function.
58395	(SOCKET-SERVER): Deal with both strmtype_socket and
58396	  strmtype_twoway_scoket. Check that the stream argument is open.
58397	(SOCKET-ACCEPT, SOCKET-CONNECT): Call test_buffered_arg.
58398	(test_socket_stream): Optionally check that the stream argument is
58399	  open.
58400	(SOCKET-STREAM-PORT, SOCKET-STREAM-HOST): Update.
58401	(publish_host_data, SOCKET-STREAM-HANDLE): Update.
58402	(make_terminal_io): Remove the file positioning code, now done by
58403	  make_file_stream.
58404	(init_streamvars): Set the HandleStreamLow_close function.
58405	(STREAM-ELEMENT-TYPE, SYSTEM::SET-STREAM-ELEMENT-TYPE)
58406	(interactive_stream_p): Treat strmtype_twoway_socket.
58407	(stream_close): Treat pipes and sockets like file streams. Treat
58408	  strmtype_twoway_socket.
58409	(stream_listen, clear_input): Treat strmtype_twoway_socket.
58410	(finish_output, force_output, clear_output): Likewise.
58411	(get_line_position): Likewise.
58412	(stream_isbuffered): Treat pipes and sockets like file streams.
58413	  Treat strmtype_twoway_socket.
58414	* io.d (pr_stream): Print a "buffered"/"unbuffered" for pipes and
58415	  sockets as well. Treat strmtype_twoway_socket.
58416	* pathname.d (open_file): Change calling convention.
58417	(OPEN): Update.
58418
584191999-02-01  Sam Steingold  <sds@goems.com>
58420
58421	* defs2.lsp (with-standard-io-syntax): set `*print-right-margin*'.
58422
584231999-01-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58424
58425	Split user1.lsp and user2.lsp into pieces.
58426	* init.lsp: Change loading order. First room.lsp and saveinitmem.lsp,
58427	  then the language stuff up to conditio.lsp, then the user interface
58428	  and all kinds of extensions.
58429	(cerror): Moved here from user1.lsp.
58430	* defs1.lsp (fbound-string): Moved here from user2.lsp.
58431	(*error-handler*): Moved here from user1.lsp.
58432	* room.lsp: New file.
58433	(room-format, room, %space1, %space2, %space, space-format)
58434	(space-tabulate): Moved here from user2.lsp.
58435	* savemem.lsp: New file.
58436	(%saveinitmem, saveinitmem): Moved here from user2.lsp.
58437	* compiler.lsp (*toplevel-environment*, *toplevel-denv*, eval-env):
58438	  Moved here from user1.lsp.
58439	* conditio.lsp (break): Integrate with non-CLCS code from user1.lsp.
58440	(*break-on-warnings*, batchmode-break-driver): Moved here from
58441	  user1.lsp.
58442	* keyboard.lsp: New file.
58443	(*keyboard-input*, with-keyboard, exec-with-keyboard): Moved here
58444	  from user1.lsp.
58445	* runprog.lsp: New file.
58446	(execute, run-shell-command, run-program): Moved here from
58447	  user2.lsp.
58448	* query.lsp: New file.
58449	(y-or-n-p, y-or-n, yes-or-no-p, yes-or-no): Moved here from
58450	  user1.lsp.
58451	* reploop.lsp: New file.
58452	(*prompt*, main-loop, break-loop, step et al.): Moved here from
58453	  user1.lsp.
58454	* dribble.lsp: New file.
58455	(dribble): Moved here from user2.lsp.
58456	* complete.lsp: New file.
58457	(completion): Moved here from user2.lsp.
58458	* describe.lsp: New file.
58459	(apropos-list, apropos, describe): Moved here from user2.lsp.
58460	* edit.lsp: New file.
58461	(*editor*, editor-name, editor-tempfile, edit-file, ed, uncompile):
58462	  Moved here from user2.lsp.
58463	* user1.lsp: Remove file.
58464	* user2.lsp: Remove file.
58465	* makemake.in (LPARTS): Update.
58466	* gettext/po/Makefile.devel (LSPSOURCES): Likewise.
58467
584681999-01-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58469
58470	* Makefile.devel (win32msvc/makefile.msvc4, win32msvc/makefile.msvc5)
58471	(acorn/makefile.cc, acorn/makefile.gcc): Fix rule.
58472
584731999-01-29  Sam Steingold  <sds@goems.com>
58474
58475	* spvw.d (print_banner): do not cut the copyright on narrow
58476	screens.
58477
584781999-01-28  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58479
58480	Mutable STREAM-ELEMENT-TYPE.
58481	* stream.d (fill_pseudofuns_unbuffered): New function.
58482	(make_unbuffered_stream): Call it. Always initialize lineno.
58483	(fill_pseudofuns_buffered): New function.
58484	(make_file_stream): Call it. Always initialize lineno.
58485	(SYSTEM::SET-STREAM-ELEMENT-TYPE): New function.
58486	* places.lsp (stream-element-type): New defsetf.
58487
584881999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58489
58490	Treat pipe and socket streams like unbuffered file streams.
58491	* stream.d (check_unbuffered_eltype): New function.
58492	(strm_pipe_in_handle): Replace with strm_ihandle.
58493	(rd_ch_pipe_in, rd_ch_array_pipe_in, rd_by_pipe_in)
58494	(rd_by_array_pipe_in): Remove macros.
58495	(PipeStream_input_init): New macro.
58496	(close_pipe_in): Update.
58497	(listen_pipe_in): Remove macro.
58498	(MAKE-PIPE-INPUT-STREAM): Check the :ELEMENT-TYPE argument. Call
58499	  make_unbuffered_stream.
58500	(strm_pipe_out_handle): Replace with strm_ohandle.
58501	(wr_ch_pipe_out, wr_ch_array_pipe_out, wr_ss_pipe_out)
58502	(wr_by_pipe_out, wr_by_array_pipe_out): Remove macros.
58503	(pipe_low_finish_output, pipe_low_force_output)
58504	(pipe_low_clear_output): New functions.
58505	(PipeStream_output_init): New macro.
58506	(close_pipe_out): Update.
58507	(MAKE-PIPE-OUTPUT-STREAM): Check the :ELEMENT-TYPE argument. Call
58508	  make_unbuffered_stream.
58509	(MAKE-PIPE-IO-STREAM): Likewise.
58510	(socket_low_finish_output, socket_low_force_output)
58511	(socket_low_clear_output): Define always.
58512	(SocketStream_output_init): Use them in all cases.
58513	(SYS::MAKE-SOCKET-STREAM): Call make_unbuffered_stream.
58514	(make_socket_stream): Change signature. Call make_unbuffered_stream.
58515	(SOCKET-ACCEPT, SOCKET-CONNECT): Check the :ELEMENT-TYPE argument.
58516	(STREAM-ELEMENT-TYPE): Treat pipe and socket streams like file
58517	  streams.
58518	(stream_listen, clear_input, finish_output, force_output)
58519	(clear_output): Likewise.
58520	* pseudofun.d: Update.
58521	* io.d (pr_stream): For pipe and socket stream, print the element-type
58522	  as well.
58523
585241999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58525
58526	* stream.d (make_buffered_stream): Rename from make_unbuffered_stream.
58527	  Change the calling convention. Do not call isatty. Do not store the
58528	  strm_field1/strm_field2 values. Do not call HandleStream_input_init,
58529	  HandleStream_output_init here. Do not add the stream to O(open_files).
58530	(make_file_stream): Update. Call isatty only for :INPUT or :IO
58531	  streams. Store the strm_field1/strm_field2 values here. Call
58532	  HandleStream_input_init, HandleStream_output_init here. Add the
58533	  stream to O(open_files).
58534	(init_streamvars): Update. Store the strm_field1/strm_field2 values
58535	  here. Call HandleStream_output_init here.
58536
585371999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58538
58539	Simplify the element-type handling.
58540	* stream.d (eltype_kind, decoded_eltype): New types.
58541	(test_eltype_arg): Moved. Changed signature.
58542	(canon_eltype): New function.
58543	(strmtype_ch_file, strmtype_iu_file, strmtype_is_file): Remove
58544	  macros.
58545	(make_unbuffered_file_stream): Changed signature.
58546	(make_file_stream): Use a decoded_eltype. Call canon_eltype.
58547	(init_streamvars): Update.
58548
585491999-01-27  Sam Steingold  <sds@goems.com>
58550
58551	* spvw.d (print_banner): update copyright statements.
58552	(print_license): new function.
58553	(main): call print_banner and print_license.
58554
585551999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58556
58557	* spvw.d (print_banner): Make the menorah more kosher.
58558
585591999-01-27  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58560
58561	* spvw.d (usage): Tweak message.
58562
585631999-01-26  Sam Steingold  <sds@goems.com>
58564
58565	* Makefile.devel: do not use `utils/move-if-change'.
58566	* utils/move-if-change: Remove file.
58567
585681999-01-26  Sam Steingold  <sds@goems.com>
58569
58570	MT-safe get_real_time:
58571	* time.d (get_real_time): take pointer argument; no internal
58572	statics.
58573	* lisparit.d: fix calls to `get_real_time'.
58574	* lispbibl.d: fix declaration of `get_real_time'.
58575
585761999-01-25  Sam Steingold  <sds@goems.com>
58577
58578	* spvw.d (main): expand --help, add --license, remove trailing
58579	whitespace.
58580	(print_banner): New function.
58581	(argv_license): New variable.
58582	(copyright_notice): Remove.
58583
585841999-01-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58585
58586	* lispbibl.d (strm_file_name, strm_file_truename, strm_file_handle)
58587	(strm_pipe_pid, strm_x11socket_connect, strm_socket_port)
58588	(strm_socket_host): Offset by 1.
58589	* stream.d (strm_bitbuffer): New macro, replaces strm_file_bitbuffer.
58590	(strm_isatty, strm_ihandle, strm_ohandle, strm_field1, strm_field2):
58591	  Offset by 1.
58592	(strm_field3): Remove macro.
58593	(strm_handle_extrafields_struct): New field bitsize.
58594	(HandleStream_bitsize): New macro, replaces FileStream_bitsize.
58595	(rd_by_iu_I, rd_by_is_I): Update.
58596	(wr_by_aux_ix): Rename from wr_by_ix.
58597	(wr_by_ixu_file, wr_by_ixs_file): Update.
58598	(rd_by_aux_iax_handle, rd_by_iau_handle, rd_by_ias_handle): New
58599	  functions.
58600	(rd_by_iau8_handle): Rename from rd_by_handle.
58601	(rd_by_array_iau8_handle): Rename from rd_by_array_handle.
58602	(close_ihandle): Free the bitbuffer.
58603	(wr_by_aux_ia_handle, wr_by_iau_handle, wr_by_ias_handle): New
58604	  functions.
58605	(wr_by_iau8_handle): Rename from wr_by_handle.
58606	(wr_by_array_iau8_handle): Rename from wr_by_array_handle.
58607	(close_ohandle): Free the bitbuffer.
58608	(make_unbuffered_file_stream): Add arguments type, eltype_size.
58609	  Create a stream with proper element type, not (OR CHARACTER INTEGER).
58610	(strm_i_file_extrafields_struct): Remove field bitsize.
58611	(strm_file_bitbuffer, FileStream_bitsize): Remove macros.
58612	(position_i_file): Update.
58613	(rd_by_aux_iax_file): Rename from rd_by_iax_file. Update.
58614	(rd_by_aux_ibx_file): Rename from rd_by_ibx_file. Update.
58615	(rd_by_aux_icx_file): Rename from rd_by_icx_file. Update.
58616	(rd_by_iau_file, rd_by_ias_file, rd_by_ibu_file, rd_by_ibs_file)
58617	(rd_by_icu_file, rd_by_ics_file): Update.
58618	(rd_by_iau8_file): New function, for symmetry with the unbuffered
58619	  case.
58620	(wr_by_aux_ia_file): Rename from wr_by_ia. Update.
58621	(wr_by_aux_ib_file): Rename from wr_by_ib. Update.
58622	(wr_by_aux_ic_file): Rename from wr_by_ic. Update.
58623	(wr_by_iau_file, wr_by_ias_file, wr_by_ibu_file, wr_by_ibs_file)
58624	(wr_by_icu_file, wr_by_ics_file): Update.
58625	(wr_by_iau8_file): New function, for symmetry with the unbuffered
58626	  case.
58627	(position_file, position_file_end): Update.
58628	(make_file_stream): For the unbuffered case, accept any bitsize
58629	  which is a multiple of 8. Use {rd,wr}_by_iau8_file when possible.
58630	(strm_terminal_index, strm_terminal_outbuff): Change.
58631	(terminalcase): Update.
58632	(rd_by_pipe_in, rd_by_array_pipe_in): Update.
58633	(wr_by_pipe_out, wr_by_array_pipe_out): Update.
58634	(SYS::MAKE-SOCKET-STREAM, SYS::LISTEN-BYTE, test_n_bytes_args)
58635	(make_socket_stream, init_streamvars): Update.
58636	* pseudofun.d: Update accordingly.
58637
58638	* stream.d (rd_by_*, wr_by_*): Move some functions.
58639	* pseudofun.d: Update accordingly.
58640
586411999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58642
58643	Optimize read-byte and write-byte for integer streams of type ia.
58644	* stream.d (read_byte_array_b_file): Do not update the position.
58645	(write_byte_array_b_file): Likewise.
58646	(wr_ch_array_ch_file): Increment the position here.
58647	(rd_by_iu_I, rd_by_is_I): Assume the bitbuffer contents is in little
58648	  endian order.
58649	(rd_by_iax_file): Fill bitbuffer in little endian order. Use
58650	  read_byte_array_b_file for speed.
58651	(rd_by_icx_file): Fill bitbuffer in little endian order.
58652	(wr_by_ia): Fill bitbuffer in little endian order. Use
58653	  write_byte_array_b_file for speed.
58654	(wr_by_ic): Fill bitbuffer in little endian order.
58655	(wr_by_ixu_file, wr_by_ixs_file): Assume the bitbuffer contents is
58656	  in little endian order.
58657	(read_byte_array_iau8_file, write_byte_array_iau8_file): Increment
58658	  the position here.
58659
586601999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58661
58662	* pathname.d (OPEN): Add keyword argument :BUFFERED.
58663	(SYS::OLD-OPEN): Temporary hack, in order to preserve binary
58664	  compatibility.
58665	* stream.d (MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
58666	(MAKE-PIPE-IO-STREAM): Add keyword arguments :ELEMENT-TYPE,
58667	  :EXTERNAL-FORMAT, :BUFFERED.
58668	(SOCKET-ACCEPT, SOCKET-CONNECT): Likewise.
58669	* eval.d (FUNTAB): Replace OPEN with SYS::OLD-OPEN.
58670	* compiler.lsp (funtab): Likewise.
58671	(subr-info): Update.
58672
586731999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58674
58675	* stream.d (make_socket_stream): Fix a potential GC crash: host was
58676	  not GC-safe.
58677
586781999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58679
58680	Prepare for making socket streams either binary or character, not both.
58681	* stream.d (SYS::LISTEN-BYTE): New function.
58682	* modules/clx/mit-clx/depdefs.lsp (:have-listen-byte): Define
58683	  conditionally.
58684	* modules/clx/mit-clx/dependent.lsp (buffer-read-default): Use
58685	  sys::listen-byte if available.
58686
586871999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58688
58689	Handle-streams and socket-streams now use a byte-oriented low-level
58690	layer.
58691	* stream.d (clear_tty_input) [AMIGAOS]: Define.
58692	(strm_u_file_extrafields_struct): Add low-level function pointers.
58693	(FileStreamLow_read, FileStreamLow_listen)
58694	(FileStreamLow_clear_input, FileStreamLow_read_array)
58695	(FileStreamLow_write, FileStreamLow_write_array)
58696	(FileStreamLow_finish_output, FileStreamLow_force_output)
58697	(FileStreamLow_clear_output): New macros.
58698	(fehler_interrupt): New function.
58699	(file_low_read, file_low_listen, file_low_clear_input)
58700	(file_low_read_array): New functions.
58701	(rd_by_handle, rd_by_array_handle, rd_ch_handle, listen_handle)
58702	(clear_input_handle, rd_ch_array_handle): Rewritten from scratch.
58703	  Much nicer now that the ugly machine-dependent stuff is in the
58704	  low-level layer.
58705	(HandleStream_input_init, HandleStream_input_init_data): New macros.
58706	(file_low_write, file_low_write_array, file_low_finish_output)
58707	(file_low_force_output, file_low_clear_output): New functions.
58708	(wr_by_handle, wr_by_array_handle, wr_ch_handle, wr_ch_array_handle)
58709	(finish_output_handle, force_output_handle, clear_output_handle):
58710	  Rewritten from scratch. Much nicer too.
58711	(HandleStream_output_init): New macro.
58712	(make_unbuffered_file_stream, make_keyboard_stream)
58713	(make_terminal_stream_, MAKE-PIPE-INPUT-STREAM)
58714	(MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM): Use the
58715	  HandleStream_*_init macros.
58716	(socket_low_read, socket_low_listen, socket_low_clear_input)
58717	(socket_low_read_array) [WIN32_NATIVE]: New functions.
58718	(SocketStream_input_init): New macro.
58719	(socket_low_write, socket_low_write_array, socket_low_finish_output)
58720	(socket_low_force_output, socket_low_clear_output) [WIN32_NATIVE]:
58721	  New functions.
58722	(SocketStream_output_init): New macro.
58723	(rd_ch_socket, rd_ch_array_socket, wr_ch_socket, wr_ch_array_socket)
58724	(wr_ss_socket, rd_by_socket, rd_by_array_socket, wr_by_socket)
58725	(wr_by_array_socket): Remove functions.
58726	(listen_socket): Define as a macro.
58727	(rd_ch_x11socket, listen_x11socket, rd_ch_array_x11socket)
58728	(wr_ch_x11socket, wr_ch_array_x11socket, wr_ss_x11socket)
58729	(rd_by_x11socket, rd_by_array_x11socket, wr_by_x11socket)
58730	(wr_by_array_x11socket, close_x11socket): Remove macros.
58731	(SYS::MAKE-SOCKET-STREAM): Update. Use the HandleStream_*_init
58732	  macros.
58733	(test_n_bytes_args): Update.
58734	(SYS::READ-N-BYTES): Simplify by calling read_byte_array. Upon EOF,
58735	  issue an error message instead of endless loop.
58736	(SYS::WRITE-N-BYTES): Simplify by calling write_byte_array.
58737	(make_socket_stream): Update. Use the HandleStream_*_init macros.
58738	(stream_close, stream_listen): Update.
58739	* pseudofun.d (*_x11socket, *_socket): Remove.
58740
587411999-01-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58742
58743	Introduce symbolic codes for the `listen' return value.
58744	* lispbibl.d (ls_avail, ls_eof, ls_wait): New macros.
58745	(ls_avail_p, ls_eof_p, ls_wait_p): New macros.
58746	* stream.d (listen_concat, listen_str_in, listen_buff_in)
58747	(listen_handle, listen_ch_file, listen_keyboard, listen_terminal)
58748	(listen_terminal2, listen_terminal3, listen_socket, stream_listen):
58749	  Use the new ls_* macros.
58750	* io.d (LISTEN, READ-CHAR-NO-HANG): Likewise.
58751	* debug.d (read_form): Likewise.
58752
587531999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58754
58755	Merge handle streams and file streams. Add line number information to
58756	unbuffered file streams as well.
58757	* lispbibl.d (strmtype_handle): Remove enum value.
58758	(if_strm_file_p): Remove macro.
58759	(stream_isbuffered): New declaration.
58760	* stream.d (strm_handle_extrafields_struct): New field lineno.
58761	(HandleStream_lineno): New macro.
58762	(rd_ch_handle, listen_handle, rd_ch_array_handle): When reading a
58763	  newline, increment lineno.
58764	(make_unbuffered_file_stream): Change the stream type from
58765	  strmtype_handle to strmtype_file. Initialize lineno.
58766	(strm_ch_file_extrafields_struct): Remove structure.
58767	(FileStream_lineno): Remove macro.
58768	(rd_ch_ch_file, rd_ch_array_ch_file, make_file_stream): Update.
58769	(SYS::FILE-STREAM-P): Update.
58770	(SYS::TERMINAL-RAW) [AMIGAOS]: Update.
58771	(STREAM-ELEMENT-TYPE, interactive_stream_p, stream_close)
58772	(stream_listen, clear_input, finish_output, force_output)
58773	(clear_output): Update.
58774	(FILE-POSITION): For unbuffered streams, return NIL, no error.
58775	(FILE-LENGTH): Likewise.
58776	(stream_isbuffered): New function.
58777	(stream_line_number): Update.
58778	* io.d (pr_stream): Update.
58779	* pathname.d (as_file_stream, openp): Update.
58780	* predtype.d (TYPE-OF, CLOS:CLASS-OF, heap_statistics_mapper): Update.
58781
58782	Start merging handle-streams and file-streams.
58783	* lispbibl.d (strm_eltype, strm_file_handle): Change.
58784	* stream.d (strm_eltype, strm_isatty, strm_ihandle, strm_ohandle):
58785	  Change.
58786	(strm_buffer, strm_field1, strm_field2, strm_field3): New macros.
58787	(strm_handle_extrafields): New macro.
58788	(strm_handle_len): Change.
58789	(strm_handle_extrafields_struct, strm_u_file_extrafields_struct):
58790	  New structure types.
58791	(HandleStream_eltype, HandleStream_isatty, HandleStream_ihandle)
58792	(HandleStream_ohandle, HandleStream_buffered, FileStream_status)
58793	(FileStream_lastbyte, FileStream_rawp): New macros.
58794	(close_handle): Remove macro.
58795	(make_unbuffered_file_stream): Rename from make_handle_stream.
58796	  Allocate room for an unbuffered handle stream. Initialize the
58797	  buffered, status, rawp fields.
58798	(strm_file_name, strm_file_truename, strm_file_handle)
58799	(strm_file_buffer, strm_file_bitbuffer): Change.
58800	(strm_file_extrafields, strm_file_length): Remove macros.
58801	(strm_file_extrafields_struct): Inherit from
58802	  strm_handle_extrafields_struct.
58803	(FileStream_buffstart, FileStream_eofindex, FileStream_index)
58804	(FileStream_modified, FileStream_position, FileStream_lineno)
58805	(FileStream_bitsize, FileStream_bitindex, FileStream_eofposition):
58806	  Update.
58807	(make_file_stream): Allocate room for a buffered handle stream.
58808	  Initialize the buffered field.
58809	(strm_keyboard_buffer, strm_keyboard_keytab, strm_keyboard_len):
58810	  Change.
58811	(strm_keyboard_xlen): New macro.
58812	(make_keyboard_stream): Allocate room for an unbuffered handle
58813	  stream. Initialize the buffered, status, rawp fields.
58814	(strm_terminal_inbuff, strm_terminal_index, strm_terminal_outbuff):
58815	  Change.
58816	(strm_terminal1_len, strm_terminal2_len, strm_terminal3_len): Remove
58817	  macros.
58818	(strm_terminal_len): New macro.
58819	(terminalcase): Rewritten.
58820	(make_terminal_stream_): Allocate room for an unbuffered handle
58821	  stream. Initialize the buffered, status, rawp fields.
58822	(SYS::TERMINAL-RAW) [AMIGAOS]: Update.
58823	(strm_pipe_pid): Change.
58824	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
58825	(MAKE-PIPE-IO-STREAM): Allocate room for an unbuffered handle
58826	  stream. Initialize the buffered, status, rawp fields.
58827	(strm_x11socket_connect): Change.
58828	(SYS::MAKE-SOCKET-STREAM): Allocate room for an unbuffered handle
58829	  stream. Initialize the buffered, status, rawp fields.
58830	(strm_socket_port, strm_socket_host): Change.
58831	(make_socket_stream): Allocate room for an unbuffered handle stream.
58832	  Initialize the buffered, status, rawp fields.
58833	(init_streamvars): Update.
58834	(stream_close): Call either close_ihandle or close_ohandle.
58835
588361999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58837
58838	* stream.d (regular_handle_p) [UNIX]: Treat block devices like regular
58839	  files.
58840
588411999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58842
58843	* stream.d: Move the file-streams next to the handle-streams.
58844
588451999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58846
58847	* lispbibl.d (make_file_stream): Change declaration and calling
58848	  convention.
58849	* stream.d (make_handle_stream): Change calling convention.
58850	(test_eltype_arg): New function.
58851	(make_file_stream): Change calling convention. Check the
58852	  :element-type argument here.
58853	(make_terminal_io, init_streamvars): Update.
58854	* pathname.d (open_file): Change calling convention.
58855	(OPEN): Update. Do not check the :element-type argument here.
58856
588571999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58858
58859	Support for unbuffered file streams on all platforms.
58860	* lispbibl.d (HANDLES): Remove macro, assume it to be defined to 1.
58861	(case_strmtype_file): Remove macro.
58862	(if_strm_file_p): Update.
58863	* spvw_memfile.d (memflags): Assume HANDLES to be 1.
58864	* stream.d: Likewise.
58865	* pseudofun.d: Likewise.
58866	* io.d (pr_stream): Likewise.
58867	* predtype.d: Update.
58868
588691999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58870
58871	* lispbibl.d (strmtype_ch_file, strmtype_iu_file, strmtype_is_file):
58872	  Remove enum values.
58873	(strmtype_file): New enum value.
58874	(strm_eltype): New stream field.
58875	(strm_file_name, strm_file_truename, strm_pipe_pid)
58876	(strm_x11socket_connect, strm_socket_port, strm_socket_host):
58877	  Offset by 1.
58878	(strm_ch_file_lineno): Remove obsolete macro.
58879	(if_strm_bfile_p): Remove macro.
58880	(case_strmtype_file): Update.
58881	(strmtype_ch_file, strmtype_iu_file, strmtype_is_file): Define for
58882	  the sake of make_file_stream.
58883	* stream.d (strm_eltype): New stream field.
58884	(strm_handle_rawp, strm_handle_len): Offset by 1.
58885	(make_handle_stream): Expect the element-type on the stack.
58886	(strm_file_name, strm_file_truename, strm_file_extrafields)
58887	(strm_file_length): Offset by 1.
58888	(make_file_stream): Construct and fill in the element-type.
58889	(strm_pipe_pid): Offset by 1.
58890	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
58891	(MAKE-PIPE-IO-STREAM): Update.
58892	(strm_x11socket_connect): Offset by 1.
58893	(SYS::MAKE-SOCKET-STREAM): Update.
58894	(strm_socket_port, strm_socket_host): Offset by 1.
58895	(make_socket_stream): Update.
58896	(init_streamvars): Pass element type to make_handle_stream.
58897	(STREAM-ELEMENT-TYPE): For strmtype_file and strmtype_handle,
58898	  fetch the strm_eltype field.
58899	(interactive_stream_p, stream_close, closed_all_files)
58900	(stream_listen, finish_output, force_output, clear_output)
58901	(check_open_file_stream, stream_line_number): Update.
58902	* io.d (pr_stream): Change printing of file and handle stream to
58903	  include buffered/unbuffered and the element-type.
58904
589051999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58906
58907	* lispbibl.d (Stream): New fields strm_rd_by_array, strm_wr_by_array,
58908	  strm_rd_ch_array, strm_wr_ch_array.
58909	* stream.d (rd_by_array_Pseudofun, wr_by_array_Pseudofun)
58910	(rd_ch_array_Pseudofun, wr_ch_array_Pseudofun): New types.
58911	(rd_by_array, wr_by_array, rd_ch_array, wr_ch_array): New macros.
58912	(rd_by_error): Rename from rd_by_dummy.
58913	(rd_by_array_error, rd_by_array_dummy): New functions.
58914	(wr_by_error): Rename from wr_by_dummy.
58915	(wr_by_array_error, wr_by_array_dummy): New functions.
58916	(rd_ch_error): Rename from rd_ch_dummy.
58917	(rd_ch_array_error, rd_ch_array_dummy): New functions.
58918	(wr_ch_error): Rename from wr_ch_dummy.
58919	(wr_ch_array_error, wr_ch_array_dummy): New functions.
58920	(read_byte_array, write_byte_array, read_char_array)
58921	(write_char_array): Rewritten to call the stream's corresponding
58922	  pseudofunction.
58923	(close_dummys): Update.
58924	(rd_by_array_synonym, wr_by_array_synonym, rd_ch_array_synonym)
58925	(wr_ch_array_synonym): New functions.
58926	(make_synonym_stream): Update.
58927	(wr_by_array_broad0, wr_by_array_broad1, wr_ch_array_broad0)
58928	(wr_ch_array_broad1): New functions.
58929	(make_broadcast_stream): Update.
58930	(rd_by_array_concat, rd_ch_array_concat): New functions.
58931	(make_concatenated_stream): Update.
58932	(wr_by_array_twoway, wr_ch_array_twoway): New functions.
58933	(rd_by_array_twoway, rd_ch_array_twoway): New functions.
58934	(make_twoway_stream, make_echo_stream): Update.
58935	(rd_ch_array_str_in): New function.
58936	(MAKE-STRING-INPUT-STREAM): Update.
58937	(make_string_output_stream, SYSTEM::MAKE-STRING-PUSH-STREAM): Update.
58938	(make_pphelp_stream): Update.
58939	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM): Update.
58940	(MAKE-GENERIC-STREAM): Update.
58941	(rd_ch_array_handle, rd_by_array_handle, wr_by_array_handle): New
58942	  functions.
58943	(wr_ch_array_handle): Rename from write_char_array_handle.
58944	(wr_ss_handle): Update.
58945	(wr_ch_array_handle_x): New macro.
58946	(make_handle_stream): Update.
58947	(rd_ch_keyboard) [NEXTAPP]: Update.
58948	(make_keyboard_stream, make_terminal_stream_, make_window): Update.
58949	(read_byte_array_b_file): New function.
58950	(rd_ch_array_ch_file): New function.
58951	(wr_ch_array_ch_file): Rename from write_char_array_ch_file.
58952	(wr_ss_ch_file): Update.
58953	(read_byte_array_iau8_file): New macro.
58954	(write_byte_array_iau8_file): Update.
58955	(make_file_stream): Update.
58956	(make_printer_stream): Update.
58957	(rd_ch_array_pipe_in, rd_by_array_pipe_in): New macros.
58958	(MAKE-PIPE-INPUT-STREAM): Update.
58959	(wr_ch_array_pipe_out, wr_by_array_pipe_out): New macros.
58960	(MAKE-PIPE-OUTPUT-STREAM): Update.
58961	(MAKE-PIPE-IO-STREAM): Update.
58962	(rd_ch_array_socket): New function.
58963	(wr_ch_array_socket): Rename from write_char_array_socket.
58964	(wr_ss_socket): Update.
58965	(rd_by_array_socket, wr_by_array_socket): New functions.
58966	(rd_ch_array_x11socket, wr_ch_array_x11socket, rd_by_array_x11socket)
58967	(wr_by_array_x11socket): New macros.
58968	(SYS::MAKE-SOCKET-STREAM, make_socket_stream): Update.
58969	* pseudofun.d: Update accordingly.
58970
589711999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
58972
58973	Implement weak-pointers.
58974	* lispbibl.d (Rectype_Weakpointer): New enum value.
58975	(Weakpointer): New type.
58976	(weakpointer_length, weakpointer_xlength): New macros.
58977	(TheWeakpointer, weakpointerp, allocate_weakpointer): New macros.
58978	* constobj.d (O(all_weakpointers)): New variable.
58979	(O(all_finalizers), O(pending_finalizers)): Initial value 0, not NIL.
58980	* spvw.d (init_object_tab_1): Initialize O(all_weakpointers),
58981	  O(all_finalizers), O(pending_finalizers) to 0.
58982	* spvw_update.d (update_weakpointers, update_weakpointers_mod): New
58983	  macros.
58984	* spvw_garcol.d (gar_col_normal): Walk O(all_weakpointers).
58985	  O(all_finalizers) and O(pending_finalizers) end with 0, not NIL.
58986	  Call update_weakpointers_mod.
58987	(gar_col_done): O(pending_finalizers) ends with 0, not NIL.
58988	(gar_col_compact, move_conses): Call update_weakpointers_mod.
58989	* spvw_memfile.d (savemem, loadmem): Call update_weakpointers.
58990	* record.d (MAKE-WEAK-POINTER, WEAK-POINTER-P, WEAK-POINTER-VALUE):
58991	  New functions.
58992	* io.d (pr_orecord): Treat Rectype_Weakpointer.
58993	* predtype.d (TYPE-OF, CLOS:CLASS-OF): Treat Rectype_Weakpointer.
58994	(enum_hs_weakpointer): New enum value.
58995	(heap_statistics_mapper): Treat Rectype_Weakpointer.
58996	* compiler.lsp (subr-info): Add make-weak-pointer, weak-pointer-p,
58997	  weak-pointer-value.
58998	* user2.lsp (describe): Treat WEAK-POINTER.
58999
590001999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59001
59002	* lispbibl.d (gcinvariant_object_p) [TYPECODES]: New macro.
59003	* record.d (FINALIZE): No need to allocate a finalizer for an
59004	  eternally alive object.
59005
590061999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59007
59008	* spvw_garcol.d (alive) [NO_TYPECODES]: Treat immediate values
59009	  correctly, instead of crashing.
59010
590111999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59012
59013	* stream.d (listen_handle) [WIN32]: When a keyboard event is pending,
59014	  read a character in order to test whether to return :INPUT-AVAILABLE
59015	  of :EOF.
59016
590171999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59018
59019	* stream.d (strm_concat_list2): Remove macro.
59020	(strm_concat_totallist): New macro.
59021	(rd_by_concat, rd_ch_concat, pk_ch_concat, listen_concat): Simplify.
59022	(make_concatenated_stream, CONCATENATED-STREAM-STREAMS): Simplify.
59023
590241999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59025
59026	* debug.d (read_form): After EOF, call clear_input on istream, not on
59027	  the concatenated-stream. This fixes a strange REP loop behaviour on
59028	  Win32.
59029
590301999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59031
59032	* spvw.d (main): If no memfile is specified, option "-norc" is
59033	  implied.
59034
590351999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59036
59037	* comment5.d (main): Remove a gcc warning.
59038
590391999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59040
59041	* lispbibl.d (strmtype_*): Change the order of stream types.
59042	* io.d (pr_stream): Likewise.
59043	* stream.d: Move the OS dependent stream stuff after the portable
59044	  stuff.
59045	(STREAM-ELEMENT-TYPE): Change the order of stream types.
59046	(interactive_stream_p, stream_close, stream_listen, clear_input)
59047	(finish_output, force_output, clear_output): Likewise.
59048
590491999-01-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59050
59051	Change the string element type from `uintB' to `chart' (an abstract
59052	equivalent of `cint').
59053	* lispbibl.d (OBJECT_STRUCT): Define macro.
59054	(chart): New type.
59055	(as_cint, as_chart): New macros.
59056	(code_char, char_code): Convert from/to chart now, instead of cint.
59057	(chareq, charlt, chargt): New macros.
59058	(ascii, ascii_char): New macros.
59059	(sstring_): Change element type to `chart'.
59060	(with_string_0, with_sstring_0, with_string, with_sstring): Update.
59061	(ssstring_push_extend): Change declaration.
59062	(up_case, down_case, alphanumericp, graphic_char_p, unpack_string)
59063	(char_name, test_string_limits, nstring_upcase, nstring_downcase)
59064	(nstring_capitalize): Likewise.
59065	(write_ascii_char): Update.
59066	(read_char_array, write_char_array): Change delaration.
59067	* genclisph.d (chart): New type.
59068	(as_cint, as_chart): New macros.
59069	(code_char, char_code): Convert from/to chart now, instead of cint.
59070	* spvw.d (make_string, string_to_asciz, main): Update.
59071	* spvw_objsize.d (size_sstring): Update.
59072	* charstrg.d (up_case, down_case, alphap, alphanumericp)
59073	(graphic_char_p, unpack_string, string_gleich, string_equal)
59074	(copy_string, coerce_char, char_name, STANDARD-CHAR-P, UPPER-CASE-P)
59075	(LOWER-CASE-P, BOTH_CASE-P, DIGIT-CHAR-P, CHAR-CODE, CODE-CHAR)
59076	(DIGIT-CHAR, CHAR-INT, INT-CHAR, test_index_arg, CHAR, SCHAR)
59077	(SYSTEM::STORE-CHAR, SYSTEM::STORE-SCHAR, test_string_limits)
59078	(test_1_stringsym_limits, test_2_stringsym_limits, string_eqcomp)
59079	(string_comp, STRING=, STRING/=, STRING<, STRING>, STRING<=)
59080	(STRING>=, string_eqcomp_ci, string_comp_ci, STRING-EQUAL)
59081	(STRING-NOT-EQUAL, STRING-LESSP, STRING-GREATERP)
59082	(STRING-NOT-GREATERP, STRING-NOT-LESSP, string_search)
59083	(SYS::SEARCH-STRING=, SYS::SEARCH-STRING-EQUAL, MAKE-STRING)
59084	(nstring_upcase, NSTRING-UPCASE, STRING-UPCASE, nstring_downcase)
59085	(NSTRING-DOWNCASE, STRING-DOWNCASE, nstring_capitalize)
59086	(NSTRING-CAPITALIZE, STRING-CAPITALIZE, subsstring, SUBSTRING)
59087	(string_concat): Update
59088	* io.d (RM_anzahl, DRM_anzahl): Remove, replace with char_code_limit.
59089	(allocate_syntax_table, syntax_table_get, syntax_table_put): New
59090	  macros.
59091	(allocate_perchar_table, perchar_table_get, perchar_table_put)
59092	(copy_perchar_table): New macros.
59093	(orig_syntax_table, orig_readtable, copy_readtable_contents)
59094	(copy_readtable, SET-SYNTAX-FROM-CHAR, SET-MACRO-CHARACTER)
59095	(GET-MACRO-CHARACTER, MAKE-DISPATCH-MACRO-CHARACTER)
59096	(test_disp_sub_char, SET-DISPATCH-MACRO-CHARACTER)
59097	(GET-DISPATCH-MACRO-CHARACTER, read_char_syntax, wpeek_char_syntax)
59098	(wpeek_char_eof, attribute_table): Update.
59099	(attribute_of): New macro.
59100	(read_token_1, token_info, test_potential_number_syntax)
59101	(test_number_syntax, upcase_token, case_convert_token, read_macro)
59102	(lpar_reader, line_comment_reader, comment_reader, char_reader)
59103	(radix_2, bit_vector_reader, vector_reader, hexziffer)
59104	(closure_reader, unix_executable_reader, READ-LINE, PARSE-INTEGER)
59105	(write_sstring_case, klammer_zu, pr_enter_1, pr_symbol_part)
59106	(pr_character, pr_sstring_ab, pr_list_splice, pr_list_nsplice)
59107	(pr_sbvector_ab): Update.
59108	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc, wr_ss_lpos, write_char)
59109	(rd_ch_handle, listen_handle, wr_ch_handle, write_char_array_handle)
59110	(key_event): Update.
59111	(key_ascii, key_special): New macros.
59112	(listen_keyboard, rd_ch_keyboard, add_keybinding): Update.
59113	(keybinding): Take only one argument.
59114	(make_keyboard_stream, lisp_completion, rd_ch_terminal)
59115	(rd_ch_terminal1, rd_ch_terminal2, rd_ch_terminal3, wr_ch_terminal3)
59116	(wr_ss_terminal3, wr_ch_window, rd_ch_ch_file, wr_ch_ch_file)
59117	(write_char_array_ch_file, rd_ch_str_in, wr_ss_str_out)
59118	(wr_ch_pphelp, wr_ss_pphelp, rd_ch_buff_in, wr_ch_buff_out)
59119	(wr_ch_printer, rd_ch_socket, listen_socket, wr_ch_socket)
59120	(write_char_array_socket, read_char_array, write_char_array)
59121	(FILE-STRING-LENGTH): Update.
59122	* pathname.d (common_case, legal_logical_word_char, legal_hostchar)
59123	(test_optional_host, equal_pathchar, legal_namechar)
59124	(singlewild_char_p, slashp, parse_logical_word, all_digits)
59125	(parse_logical_pathnamestring, parse_name_or_type, split_name_type)
59126	(PARSE-NAMESTRING, legal_logical_word, legal_name_or_type)
59127	(legal_name, legal_type, MAKE-PATHNAME, has_wildcards)
59128	(has_word_wildcards, wildcard_match_ab, wildcard_diff_ab)
59129	(translate_nametype_aux, use_default_dir, OSdirnamestring, SHELL):
59130	  Update.
59131	* array.d (VECTOR-PUSH-EXTEND, ssstring_push_extend, ssstring_extend)
59132	(make_datenvektor): Update.
59133	* hashtabl.d (hashcode_string, hashcode4_char, hashcode4_vector_Char):
59134	  Update.
59135	* package.d (string_hashcode): Update.
59136	* predtype.d (equal, elt_compare_T_Char, elt_compare_Char_Char)
59137	(equalp): Update.
59138	* sequence.d (MAKE-SEQUENCE, READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE):
59139	  Update.
59140	* debug.d (read_form): Update.
59141	* error.d (write_errorstring): Update.
59142	* lisparit.d (read_float, print_integer, print_float, decimal_string):
59143	  Update.
59144	* intprint.d (DIGITS, UDS_to_DIGITS): Update.
59145	* intread.d (DIGITS_to_I): Update.
59146	* foreign.d (convert_from_foreign_array_fill, convert_from_foreign)
59147	(convert_to_foreign): Update.
59148	* affi.d (affi_call_argsa, SYSTEM::MEM-READ)
59149	(SYSTEM::MEM-WRITE-VECTOR): Update.
59150
591511999-01-21  Sam Steingold  <sds@goems.com>
59152
59153	* user2.lsp (signature-to-list, arglist): new functions.
59154	(describe-signature): use `signature-to-list'.
59155
591561999-01-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59157
59158	For being able to use a C++ compiler in place of a C compiler.
59159	* acgeneral.m4 (AC_HAVE_LIBRARY, AC_CHECK_SIZEOF): Declare `main' with
59160	  return type `int'.
59161	* acspecific.m4 (AC_PROG_CC_WORKS, AC_DIR_HEADER, AC_TYPE_GETGROUPS)
59162	(AC_FUNC_CLOSEDIR_VOID, AC_FUNC_FNMATCH, AC_FUNC_GETPGRP)
59163	(AC_FUNC_SETPGRP, AC_FUNC_VFORK, AC_FUNC_WAIT3, AC_FUNC_ALLOCA)
59164	(AC_FUNC_UTIME_NULL, AC_FUNC_STRCOLL, AC_FUNC_SETVBUF_REVERSED)
59165	(AC_FUNC_MEMCMP, AC_C_CHAR_UNSIGNED, AC_INT_16_BITS)
59166	(AC_LONG_64_BITS, AC_C_BIGENDIAN, AC_SYS_RESTARTABLE_SYSCALLS):
59167	  Likewise.
59168	* aclocal.m4 (CL_CC_WORKS, CL_CXX_WORKS, CL_SHELLARGS)
59169	(CL_PCC_STRUCT_RETURN, CL_SMALL_STRUCT_RETURN, CL_LONGLONG)
59170	(CL_LONGDOUBLE, CL_SIGNAL_REINSTALL, CL_SIGNAL_UNBLOCK)
59171	(CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_REINSTALL)
59172	(CL_SIGACTION_UNBLOCK, CL_ELOOP, CL_IOCTL, CL_TIMES_CLOCK)
59173	(CL_ADDRESS_RANGE, CL_MMAP, CL_MPROTECT, CL_CODEEXEC, CL_SHM)
59174	(CL_SHM_RMID, CL_FILECHARSET, CL_CHAR_UNSIGNED)
59175	(CL_WORDS_LITTLEENDIAN): Likewise.
59176
591771999-01-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59178
59179	* acgeneral.m4, acspecific.m4: Upgrade to autoconf-2.13.
59180	* config.guess, config.sub: Likewise.
59181	* aclocal.m4 (CL_ALLOCA): Test for _MSC_VER and alloca being a macro.
59182	  Use ${ac_objext}.
59183	* lispbibl.d (alloca): Put _MSC_VER test before the others, conforming
59184	  with CL_ALLOCA.
59185
591861999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59187
59188	* spvw.d (copyright_notice): Use a long string, because gcc stores an
59189	  array of strings in reverse order.
59190
591911999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59192
59193	* spvw_garcol.d (gar_col_compact): Conditionalize declaration.
59194
591951999-01-12  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59196
59197	* intgcd.d (I_I_xgcd_I_I_I): Now really ensure the 2nd and 3rd value
59198	  are of minimum absolute value.
59199
592001999-01-15  Sam Steingold  <sds@goems.com>
59201
59202	* clos.lsp (*gf-warn-on-replacing-method*): new variable.
59203	(std-add-method): use it.
59204
592051999-01-13  Sam Steingold  <sds@goems.com>
59206
59207	* clos.lsp (*gf-warn-on-removing-all-methods*): new variable.
59208	(do-defgeneric): use it.
59209	(*warn-if-gf-already-called*): new variable.
59210	(warn-if-gf-already-called): use it.
59211
592121999-01-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59213
59214	* spvw.d (main): Option --version implies -norc.
59215	  A batch file argument implies -norc as well.
59216
592171999-01-10  Michael Somos  <somos@grail.cba.csuohio.edu>
59218
59219	* spvw_garcol.d: Move the "#undef update_stackobj".
59220
592211999-01-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59222
59223	* aclocal.m4 (CL_FILECHARSET): Generate formula with &&-connected
59224	  terms enclosed in parentheses, to avoid gcc warning.
59225	* time.d (SYS::DEFAULT-TIME-ZONE): Add parentheses, to avoid gcc
59226	  warning.
59227	* intbyte.d (ldb_extract_test): Add braces, to avoid gcc warning.
59228	* spvw_circ.d (get_circ_mark): Likewise.
59229
592301999-01-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59231
59232	* lispbibl.d: (write_schar): Remove.
59233	(write_code_char, write_ascii_char): New macros.
59234	* debug.d: Update all callers of write_schar.
59235	* error.d: Likewise.
59236	* eval.d: Likewise.
59237	* io.d: Likewise.
59238	* lisparit.d: Likewise.
59239	* stream.d (wr_ss_dummy, wr_ss_dummy_nogc): Likewise.
59240
592411999-01-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59242
59243	* lispbibl.d (string_to_asciz, TheAsciz): ASCIZ strings are now
59244	  simple-bit-vectors, not strings.
59245	* genclisph.d (TheAsciz): Update.
59246	* spvw.d (string_to_asciz): Allocate a bit vector, not a string.
59247	* pathname.d (EXECUTE): Update, do not call string_concat.
59248	* stream.d (rd_ch_terminal3): Update.
59249	(finish_output_file): Use with_sstring_0 instead of TheAsciz.
59250	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM)
59251	(MAKE-PIPE-IO-STREAM): Update.
59252
592531999-01-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59254
59255	with_sstring and with_sstring_0 must not be called in a loop which
59256	is executed a lot of times, otherwise SP overflow danger.
59257	* pathname.d (subdirs): Change argument from char* to simple-string.
59258	(subfiles, directory_search_1subdir, directory_search_hashcode)
59259	(directory_search_direntry_ok, directory_search_scandir): New
59260	  functions, moved out of the body of directory_search.
59261	(allsubdirs, directory_search): Update.
59262
59263	Minimize the use of heap-allocated ASCIZ strings.
59264	* constobj.d (O(null_string)): Remove.
59265	* spvw.d (init_object_tab): Update.
59266	* pathname.d (asciz_dir_to_pathname): Make a temporary copy in the
59267	  stack instead of destructively modifying the argument.
59268	(OSnamestring): Rename from namestring_asciz. Now returns a simple-
59269	  string without trailing zero byte.
59270	(assure_dir_exists): Avoid destructive modifications of a string.
59271	  Use with_sstring_0 instead of TheAsciz.
59272	(default_directory) [AMIGAOS]: Release break_sem_4 in case of error.
59273	(assure_dir_exists) [AMIGAOS]: Likewise.
59274	(assure_dir_exists) [UNIX]: Allocate the readlink buffer in the
59275	  stack.
59276	(canonicalise_filename) [RISCOS]: Use with_sstring_0 instead of
59277	  TheAsciz.
59278	(canonicalise_dirname) [RISCOS]: Likewise.
59279	(prepare_create) [non-RISCOS]: Define as empty.
59280	(change_default): Use with_sstring_0 instead of TheAsciz.
59281	(file_exists): Use with_sstring_0.
59282	(directory_exists): Avoid destructive modifications of a string.
59283	  Use with_sstring_0 instead of TheAsciz.
59284	(DELETE-FILE): Use with_sstring_0 instead of TheAsciz.
59285	(rename_file): Likewise.
59286	(create_backup_file): New function.
59287	(open_file): Call it. Use with_sstring_0 instead of TheAsciz.
59288	(directory_search): Use with_sstring_0 instead of TheAsciz.
59289	(shorter_directory): Now returns a simple-string without trailing
59290	  zero byte.
59291	(MAKE-DIR, DELETE-DIR): Use with_sstring_0 instead of TheAsciz.
59292	(ENSURE-DIRECTORIES-EXIST, FILE-WRITE-DATE, FILE-AUTHOR): Likewise.
59293	(EXECUTE): Call string_to_asciz to compensate for assure_dir_exists
59294	  change.
59295	(SHELL): Use with_sstring_0 instead of TheAsciz.
59296
59297	* pathname.d (PARSE-NAMESTRING): Do not create an ASCIZ string in the
59298	  heap. Use macro with_sstring_0 instead of TheAsciz.
59299	(OSdirnamestring): Rename from OSnamestring.
59300	(assure_dir_exists, change_default, directory_exists)
59301	  [PATHNAME_AMIGAOS]: Use macro with_sstring_0 instead of TheAsciz.
59302	(stat_for_search): New function.
59303	(subdirs): Change argument from ASCIZ string to char*.
59304	(allsubdirs, directory_search): Use with_sstring_0.
59305
59306	* lispbibl.d (with_sstring_0, with_sstring): New macros.
59307
59308	* pathname.d (check_stat_directory): New macro.
59309	(directory_search): Use it.
59310
59311	* pathname.d (READDIR_*): New macros.
59312	(subdirs, directory_search): Use them.
59313
593141999-01-07  Sam Steingold  <sds@goems.com>
59315
59316	* clisp.spec: this is the first truly working version. (fixed
59317	doc files and full version installation).
59318
593191999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59320
59321	* unix.d: Do not declare memset if it's a macro.
59322	* spvw.d: Likewise.
59323	* socket.d: Likewise.
59324
593251999-01-07  Sam Steingold  <sds@goems.com>
59326
59327	* bindings/linuxlibc6/linux.lsp: commented out *gammaf?_*.
59328
593291999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59330
59331	* pathname.d (create_new_file, open_input_file, open_output_file): New
59332	  functions.
59333	(open_file): Use them.
59334
593351999-01-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59336
59337	* stream.d (write_byte_array_b_file): New function, rename from
59338	  write_byte_array_iau8_file.
59339	(write_char_array_ch_file, write_byte_array_b_file): Use it.
59340
593411999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59342
59343	Fix a compilation problem on new glibc2 systems.
59344	* aclocal.m4 (CL_FPU_CONTROL): Check for fpu_control_t too.
59345	* unixconf.h.in (HAVE_FPU_CONTROL_T): New macro.
59346	* spvw.d (main): Do not call __setfpucw if the control word can be
59347	  initialized statically.
59348	* unixaux.d: Initialize the control word statically if possible.
59349
593501999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59351
59352	* makemake.in (lisplibdir): Change to $(libdir)/clisp.
59353	* _distmakefile (lisplibdir): Likewise.
59354	* clisp.spec: Change installation directory.
59355
593561999-01-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59357
59358	When getwd and getcwd both exist, prefer getcwd.
59359	* aclocal.m4 (CL_GETWD): Remove macro.
59360	(CL_GETCWD): First, check for getcwd.
59361	* configure.in (CL_GETWD): Remove call.
59362	* unixconf.h.in (HAVE_GETWD): Remove.
59363	(HAVE_GETCWD): New macro.
59364	* unix.d: Test for HAVE_GETCWD, not HAVE_GETWD.
59365	* spvw_language.d (init_language): Revert last patch.
59366
593671999-01-04  Sam Steingold  <sds@goems.com>
59368
59369	* socket.d (socket_getlocalname): declare return value to be
59370	pointer to host_data, not const char.
59371
593721999-01-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59373
59374	* aclocal.m4 (CL_CANONICAL_HOST): Set ac_aux_dir before the cache
59375	  check.
59376
593771999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59378
59379	* lispbibl.d (subsstring): New declaration.
59380	* charstrg.d (subsstring): New function.
59381	* pathname.d (split_name_type, PARSE-NAMESTRING, wildcard_diff_ab)
59382	(translate_nametype_aux): Use it.
59383
593841999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59385
59386	* lispbibl.d (make_ssbvector, ssbvector_push_extend): New
59387	  declarations.
59388	* array.d (make_ssbvector, ssbvector_push_extend): New functions.
59389	* io.d (get_buffers): The second buffer is a ssbvector.
59390	(read_token_1, test_potential_number_syntax, test_dots)
59391	(case_convert_token, read_internal): Likewise.
59392	(string_reader): Use the first buffer, not the second.
59393	(uninterned_reader): The second buffer is a ssbvector.
59394	(READ-LINE): Use the first buffer, not the second.
59395	(pr_symbol_part): The second buffer is a ssbvector.
59396
593971999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59398
59399	* pathname.d (make_directory): Move function, make inline.
59400	(delete_directory, change_current_directory, delete_existing_file)
59401	(delete_file_if_exists, delete_file_before_rename)
59402	(rename_existing_file, rename_file_to_nonexisting): New functions.
59403	(change_default): Use change_current_directory.
59404	(access0): Make inline.
59405	(FILE_EXISTS_TRIVIAL): New macro.
59406	(DELETE-FILE): Use FILE_EXISTS_TRIVIAL and delete_file_if_exists.
59407	(rename_file): Use rename_file_to_nonexisting.
59408	(open_file): Use delete_file_before_rename, rename_existing_file,
59409	  delete_existing_file.
59410	(DELETE-DIR): Use delete_directory.
59411
594121999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59413
59414	allocate_handle can call GC!
59415	* stream.d (make_keyboard_stream, make_terminal_stream_)
59416	(finish_output_file): Call allocate_handle() at GC-safe moments.
59417
594181999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59419
59420	* constsym.d (char-code-limit, base-char-code-limit): New symbols.
59421	* spvw.d (init_symbol_values): Initialize them.
59422	* init.lsp: export char-code-limit.
59423	* defs1.lsp (char-code-limit, base-char-code-limit): Remove variables.
59424
594251999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59426
59427	* stream.d (strm_file_buffer): A byte vector instead of a string.
59428	(b_file_finish_flush, b_file_nextbyte, b_file_eofbyte)
59429	(write_char_array_ch_file, write_byte_array_iau8_file): Access a
59430	  byte vector instead of a string.
59431	(make_file_stream): Allocate a byte vector instead of a string.
59432
594331999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59434
59435	* lispbibl.d (decimal_string): New declaration.
59436	* lisparit.d (decimal_string): New function.
59437	(SYS::DECIMAL-STRING): Call it.
59438	* pathname.d (nametype_namestring_parts, version_diff): Likewise.
59439
594401999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59441
59442	* lispbibl.d (stream_line_number): New declaration.
59443	* stream.d (stream_line_number): New function.
59444	(SYS::LINE-NUMBER): Call it.
59445	* io.d (read_delimited_list, pr_stream): Likewise.
59446
594471999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59448
59449	Speed up exponentiation.
59450	* intmal.d (UDS_square_UDS): New macro.
59451	(square_2loop_down, square_2bigloop_down, I_square_I): New functions.
59452	(I_I_expt_I): Use I_square_I.
59453	* intsqrt.d (I_rootp): Use I_square_I.
59454	* rational.d (RA_square_RA): New function.
59455	* lfloat.d (LF_square_LF): New function.
59456	* flo_rest.d (SF_square_SF, FF_square_FF, DF_square_DF): New macros.
59457	(F_square_F): New functions.
59458	* realelem.d (R_square_R): New function.
59459	(R_I_expt_R): Use R_square_R.
59460	* realtran.d (pi_F_float_F): Use LF_square_LF.
59461	(GEN_F_atanx, GEN_F_sinx, R_cos_sin_R_R, F_expx_F, R_cosh_sinh_R_R):
59462	  Use F_square_F.
59463	* compelem.d (N_square_N): New function.
59464	(SFC_durch_SFC): Use SF_square_SF.
59465	(FFC_durch_FFC): Use FF_square_FF.
59466	(DFC_durch_DFC): Use DF_square_DF.
59467	(LFC_durch_LFC): Use LF_square_LF.
59468	(N_durch_N): Use RA_square_RA.
59469	(SF_SF_hypot_SF): Use SF_square_SF.
59470	(FF_FF_hypot_FF): Use FF_square_FF.
59471	(DF_DF_hypot_DF): Use DF_square_DF.
59472	(LF_LF_hypot_LF): Use LF_square_LF.
59473	(R_R_hypot_R): Use RA_square_RA.
59474	* comptran.d (N_I_expt_N): Use N_square_N.
59475	(R_R_atanh_R_R): Use R_square_R.
59476	(R_R_asinh_R_R): Use F_square_F, N_square_N.
59477	(N_acos_N, N_acosh_N): Use F_square_F.
59478	* lisparit.d (*): Call N_square_N for squaring.
59479
594801999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59481
59482	DEFSTRUCT with option :INCLUDE should not define accessors which were
59483	already defined in a superclass DEFSTRUCT.
59484	* init.lsp (remove-old-definitions): Also remprop
59485	  SYSTEM::DEFSTRUCT-READER.
59486	* places.lsp (define-setf-expander, defsetf): Also remprop
59487	  SYSTEM::DEFSTRUCT-WRITER.
59488	* defstruc.lsp (ds-make-accessors): One more argument. Check property
59489	  SYSTEM::DEFSTRUCT-READER.
59490	(ds-make-defsetfs): One more argument. Check property
59491	  SYSTEM::DEFSTRUCT-WRITER.
59492	(defstruct): Update.
59493
594941999-01-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59495
59496	* conditio.lsp: Export STYLE-WARNING.
59497	(STYLE-WARNING): New condition type.
59498	* defs3.lsp: Export STYLE-WARNING.
59499	* compiler.lsp (*style-warning-count*): New variable.
59500	(c-style-warn): New function.
59501	(ignore-check): Call c-style-warn instead of c-warn.
59502	(c-CASE): Likewise.
59503	(compile-lambda): Bind *style-warning-count*.
59504	(compile, compile-file): Bind *style-warning-count*. Return three
59505	  values depending on *style-warning-count*.
59506
595071999-01-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59508
59509	* lispbibl.d (I_to_uint8, I_to_sint8, I_to_uint16, I_to_sint16)
59510	(I_to_uint32, I_to_sint32): Define always.
59511	* predtype.d (elt_compare_T_T, elt_compare_T_Char, elt_compare_T_Bit)
59512	(elt_compare_T_2Bit, elt_compare_T_4Bit, elt_compare_T_8Bit)
59513	(elt_compare_T_16Bit, elt_compare_T_32Bit, elt_compare_Char_Char)
59514	(elt_compare_Bit_Bit, elt_compare_Bit_2Bit, elt_compare_Bit_4Bit)
59515	(elt_compare_Bit_8Bit, elt_compare_Bit_16Bit, elt_compare_Bit_32Bit)
59516	(elt_compare_2Bit_2Bit, elt_compare_2Bit_4Bit, elt_compare_2Bit_8Bit)
59517	(elt_compare_2Bit_16Bit, elt_compare_2Bit_32Bit)
59518	(elt_compare_4Bit_4Bit, elt_compare_4Bit_8Bit)
59519	(elt_compare_4Bit_16Bit, elt_compare_4Bit_32Bit)
59520	(elt_compare_8Bit_8Bit, elt_compare_8Bit_16Bit)
59521	(elt_compare_8Bit_32Bit, elt_compare_16Bit_16Bit)
59522	(elt_compare_16Bit_32Bit, elt_compare_32Bit_32Bit, elt_compare):
59523	  New functions.
59524	(equalp): Rewrite the comparison code for arrays, to ignore the
59525	  array element type.
59526	* realelem.d (hashcode4_uint32): New function.
59527	(hashcode4_uint4): New array.
59528	* hashtabl.d (hashcode4_string): Remove function.
59529	(hashcode4_char, hashcode4_vector_T, hashcode4_vector_Char)
59530	(hashcode4_vector_Bit, hashcode4_vector_2Bit, hashcode4_vector_4Bit)
59531	(hashcode4_vector_8Bit, hashcode4_vector_16Bit)
59532	(hashcode4_vector_32Bit, hashcode4_vector): New functions.
59533	(hashcode4_atom): For arrays, return a hash code independent of the
59534	  array element type. For characters, multi-dimensional arrays,
59535	  pathnames, and records, return a hash code consistent with EQUALP.
59536
595371999-01-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59538
59539	* pathname.d (host_match): Treat muster=NIL as wild.
59540	(device_match): Likewise.
59541	(nametype_match_aux): Rename from nametype_match.
59542	(subdir_match): Adjust.
59543	(directory_match): Treat muster=(:RELATIVE) as wild.
59544	(nametype_match): New function.
59545	(version_match): Treat muster=NIL as wild.
59546	(host_diff): Treat muster=NIL as wild.
59547	(device_diff): Likewise. Produce NIL instead of "".
59548	(nametype_diff_aux): Rename from nametype_diff. Produce NIL instead
59549	  of "".
59550	(subdir_diff): Adjust. Produce NIL instead of "".
59551	(directory_diff_ab): Produces lists prefixed with :DIRECTORY.
59552	(directory_diff): Treat muster=(:RELATIVE) as wild.
59553	(nametype_diff): New function.
59554	(version_diff): Treat muster=NIL as wild. Always produce a result.
59555	  Produce NIL instead of "".
59556	(translate_host): Treat muster=NIL as wild.
59557	(translate_device): Likewise. Accept NIL instead of "".
59558	(translate_nametype_aux): Rename from translate_nametype. Accept
59559	  NIL instead of "".
59560	(translate_subdir): Adjust.
59561	(translate_directory): Treat muster=(:RELATIVE) as wild. Accept
59562	  lists prefixed with :DIRECTORY.
59563	(translate_nametype): New function.
59564	(translate_version): Treat muster=NIL as wild. Accept NIL instead of
59565	  "". Always consume an item.
59566	* defs1.lsp (set-logical-pathname-translations for SYS): Simplify.
59567
595681998-11-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59569
59570	* lispbibl.d (STRM_WR_SS): Assume to be 1.
59571	(PSEUDOFUNSS): Remove definition.
59572	* pseudofun.d: Use PSEUDOFUN instead of PSEUDOFUNSS.
59573	* array.d, io.d, stream.d, spvw_memfile.d: Assume STRM_WR_SS is 1.
59574
595751998-11-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59576
59577	Avoid a Purify(TM) warning.
59578	* intbyte.d (ldb_extract): Only access newMSDptr[0] if really needed.
59579
595801998-12-31  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59581
59582	* defs1.lsp (union, nunion, intersection, nintersection)
59583	(set-difference, nset-difference): Rewrite to use iteration
59584	instead of recursion.
59585
595861998-12-31  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59587
59588	* loop.lsp (expand-loop): Fix bug introduced by 1998-12-21 patch.
59589
595901998-12-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59591
59592	* intgcd.d (I_I_xgcd_I_I_I): Ensure the 2nd and 3rd value are
59593	  normalized to be of minimum absolute value.
59594
595951998-12-22  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59596
59597	* aclocal.m4 (CL_IOCTL): Allow the second argument of ioctl to be of
59598	  type `void*'.
59599	* unixconf.h.in (IOCTL_ARGUMENT_T): New definition.
59600	* unix.d (ioctl, nonintr_ioctl): Change declarations.
59601	(IOCTL_ARGUMENT_T): New definition.
59602	* unixaux.d (nonintr_ioctl): Likewise.
59603
596041998-12-21  Sam Steingold  <sds@goems.com>
59605
59606	* spvw_language.d (init_language): use `getcwd' instead of `getwd'.
59607
596081998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59609
59610	* makemake.in: Do not remove full/* for DOS,OS/2, as it doesn't exist.
59611	  On Unix, create the full/ directory during `make installdirs'.
59612
596131998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59614
59615	* stream.d (FILE-POSITION): Accept any integer >= 0, < 2^32, not only
59616	  fixnums.
59617
596181998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59619
59620	* stream.d (SOCKET-SERVER, publish_host_data): Remove call to
59621	  undeclared function `bzero'. Pass 3rd argument to
59622	  `create_server_socket'.
59623	* socket.d (create_server_socket, socket_getpeername)
59624	(socket_getlocalname): Move to here.
59625	(create_server_socket): Port is passed as argument, not in hd->port.
59626
596271998-12-21  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59628
59629	* loop.lsp (expand-loop): Generalize 1998-11-05 patch: The FOR
59630	  FROM/TO/BY clauses can come in any order. Make sure the order of
59631	  evaluation is preserved.
59632
596331998-12-20  Sam Steingold  <sds@goems.com>
59634
59635	* _clisp.c (main): accept an '-F' argument to run the full version
59636	of CLISP (with modules).
59637	* spvw.d (usage): mention -F.
59638	* makemake.in: install the full CLISP version too.
59639	* _distmakefile: ditto.
59640
596411998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59642
59643	* makemake.in (clean7): Add "rm -f -r bindings clx queens regexp
59644	  wildcard".
59645
596461998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59647
59648	* lispbibl.d (strm_len): Correct definition, was one too large if
59649	  not compiling with gcc.
59650	(stream_xlength, Stream_xlength): New macros.
59651	(allocate_stream): One more argument.
59652	* spvw_typealloc.d (allocate_stream): Likewise.
59653	* stream.d (make_handle_stream, make_keyboard_stream)
59654	(make_terminal_stream_, SYS::MAKE-WINDOW): One more argument to
59655	  `allocate-stream'.
59656	(strm_file_extrafields_struct, strm_ch_file_extrafields_struct)
59657	(strm_i_file_extrafields_struct): New structures.
59658	(strm_file_buffstart): Remove macro.
59659	(FileStream_buffstart): New macro.
59660	(strm_file_eofindex): Remove macro.
59661	(FileStream_eofindex, eofindex_all_valid, eofindex_all_invalid): New
59662	  macros.
59663	(strm_file_index): Remove macro.
59664	(FileStream_index): New macro.
59665	(modified_flag, set_modified_flag, reset_modified_flag): Remove
59666	  macros.
59667	(FileStream_modified): New macro.
59668	(strm_file_position): Remove macro.
59669	(FileStream_position): New macro.
59670	(strm_ch_file_lineno): Remove macro.
59671	(FileStream_lineno): New macro.
59672	(strm_file_bitsize): Remove macro.
59673	(FileStream_bitsize): New macro.
59674	(strm_file_bitindex): Remove macto.
59675	(FileStream_bitindex): New macro.
59676	(strm_file_eofposition): Remove macro.
59677	(FileStream_eofposition): New macro.
59678	(strm_file_buffer, strm_file_bitbuffer): Change.
59679	(b_file_finish_flush, b_file_half_flush, b_file_flush)
59680	(b_file_nextbyte, b_file_eofbyte, b_file_writebyte, position_b_file)
59681	(rd_ch_ch_file, write_b_file, write_char_array_ch_file)
59682	(position_i_file, rd_by_iax_file, rd_by_ibx_file, rd_by_icx_file)
59683	(wr_by_ia, wr_by_ib, wr_by_ic, wr_by_ixu_file, wr_by_ixs_file)
59684	(write_byte_array_iau8_file, position_file_start, position_file)
59685	(position_file_end): Use new macros.
59686	(make_file_stream): One more argument to `allocate_stream'. Use new
59687	  macros.
59688	(file_flush, finish_output_file, closed_file): Use new macros.
59689	(make_synonym_stream, make_broadcast_stream)
59690	(make_concatenated_stream, make_twoway_stream, make_echo_stream)
59691	(MAKE-STRING-INPUT-STREAM, make_string_output_stream)
59692	(SYSTEM::MAKE-STRING-PUSH-STREAM, make_pphelp_stream)
59693	(MAKE-BUFFERED-INPUT-STREAM, MAKE-BUFFERED-OUTPUT-STREAM)
59694	(make_printer_stream, MAKE-PIPE-INPUT-STREAM)
59695	(MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
59696	(SYS::MAKE-SOCKET-STREAM, make_socket_stream, MAKE-GENERIC-STREAM):
59697	  One more argument to `allocate_stream'.
59698	(STREAM-ELEMENT-TYPE, read_byte_array, write_byte_array)
59699	(read_char_array, FILE-POSITION, FILE-LENGTH, SYS::LINE-NUMBER):
59700	  Use new macros.
59701	* io.d (pr_stream): Adjust printing of character streams.
59702
597031998-12-18  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59704
59705	* makemake.in (echol): Partially revert the 1998-10-14 change. The
59706	  Openstep hack doesn't work on Solaris.
59707
597081998-12-16  Sam Steingold  <sds@goems.com>
59709
59710	* bindings/linuxlibc6/linux.lsp: replace _IO_std* with _IO_std*_.
59711
597121998-12-15  Bruno Haible  <haible@linuix.math.u-bordeaux.fr>
59713
59714	* lispbibl.d (host_data): Adjust type definition to be valid C++.
59715
597161998-12-15  Sam Steingold  <sds@goems.com>
59717
59718	* constsym.d: add `SOCKET-STREAM-LOCAL', rename
59719	`SOCKET-STREAM-PEER-HOST' to `SOCKET-STREAM-PEER'.
59720	* subr.d: ditto.
59721	* socket.d (create_server_socket, socket_getpeername)
59722	(socket_getlocalname): use `host_data' structure instead of statics.
59723	(fill_hostname): new function (rename from `ip_to_string').
59724	(socket_getlocalname): new function (rename from `socket_getmyname').
59725	* stream.d (socket_server): use `host_data' structure.
59726	(publish_host_data): new function.
59727	(socket_stream_peer, socket_stream_local): use it.
59728	* _impnotes.txt, impnotes.html: document the changes.
59729	* lispbibl.d: add `typedef host_data'.
59730
597311998-12-15  Sam Steingold  <sds@goems.com>
59732
59733	* makemake.in: add --fsstnd options `redhat' and `debian'.
59734
597351998-12-15  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59736
59737	* configure: Do not lndir modules/CVS over to src/CVS.
59738	* configure: Do not pass the --fsstnd argument to src/configure.
59739
597401998-12-11  Sam Steingold  <sds@goems.com>
59741
59742	* socket.d (create_server_socket): take 2 arguments, pointer to
59743	unsigned int (port) and SOCKET.
59744	(ip_to_string): new function.
59745	(socket_getmyname): new function.
59746	* constsym.d: add `SOCKET-SERVER-HOST'.
59747	* subr.d: ditto.
59748	* io.d (pr_orecord): print host of `SOCKET-SERVER'.
59749	* lispbibl.d (struct *Socket_server): new field: host.
59750	(socket_stream_p): new predicate.
59751	* stream.d (socket_server): accept socket-stream as the optional
59752	argument.
59753	(socket_server_host): new function.
59754
597551998-12-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59756
59757	* makemake.in (MODULES): New variables. Accept --with-module=MODULE
59758	  syntax.
59759	* configure: Update.
59760
597611998-11-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59762
59763	* stream.d (read_byte_array, read_char_array): When reading from
59764	  handle-streams, use `full_read' not `read', because `full_read'
59765	  handles EFAULT gracefully.
59766
597671998-11-07  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59768
59769	* lispbibl.d (base_char_int_len, base_char_int_limit, bcint)
59770	(base_char_code_limit, base_char_p): New definitions.
59771	* charstrg.d (SYS::BASE-CHAR-P): New function.
59772	* predtype.d (TYPE-OF): May return [SIMPLE-]BASE-STRING instead of
59773	  [SIMPLE-]STRING, and BASE-CHAR instead of CHARACTER.
59774	(COERCE): Treat BASE-CHAR, BASE-STRING, SIMPLE-BASE-STRING.
59775	* sequence.d (valid_type): Treat BASE-STRING, SIMPLE-BASE-STRING.
59776	* defs1.lsp (base-char-code-limit): Define.
59777	* defs2.lsp (designator): Recognize (DESIGNATOR BASE-CHAR).
59778	* type.lsp: New types BASE-CHAR, EXTENDED-CHAR, BASE-STRING,
59779	  SIMPLE-BASE-STRING.
59780	(canonicalize-type): Force STANDARD-CHAR to be a subtype of
59781	  BASE-CHAR.
59782	* compiler.lsp (*declaration-types*): Add base-char, base-string,
59783	  extended-char, simple-base-string.
59784	(c-typep-alist1): Add base-string, simple-base-string.
59785	(c-typep-alist2): Add base-char, extended-char.
59786	(c-typep-alist3): Add base-string, simple-base-string.
59787	* init.lsp: Export base-char, base-string, extended-char,
59788	  simple-base-string.
59789	* defs3.lsp: Likewise.
59790
597911998-11-05  Sam Steingold  <sds@goems.com>
59792
59793	* loop.lsp (expand-loop): allow `by' to precede `upto' &c.
59794
597951998-11-05  Sam Steingold  <sds@goems.com>
59796
59797	* type.lsp (canonicalize-type): handle `SIGNED-BYTE' and
59798	  `UNSIGNED-BYTE', thus recognize them as subtypes of `INTEGER'.
59799
598001998-11-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59801
59802	Replace STRING-CHAR with CHARACTER.
59803	* array.d (eltype_code): No need to test for STRING-CHAR, the SUBTYPEP
59804	  test catches it. Test for subtype of CHARACTER, not STRING-CHAR.
59805	(datenvektor_store): Test for CHARACTER, not STRING-CHAR.
59806	(array_element_type): Return CHARACTER, not STRING-CHAR.
59807	(VECTOR-PUSH-EXTEND): Test for CHARACTER, not STRING-CHAR.
59808	(make_datenvektor): Likewise.
59809	* charstrg.d (coerce_char): Use code_char instead of int_char.
59810	(STANDARD-CHAR-P, GRAPHIC-CHAR-P): Use char_code instead of char_int.
59811	(STRING-CHAR-P): Always return T.
59812	(ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P, BOTH-CASE-P, DIGIT-CHAR-P)
59813	(ALPHANUMERICP, CHAR-UPCASE, CHAR-DOWNCASE, CHAR-INT): Use char_code
59814	  instead of char_int.
59815	(INT-CHAR): Use code_char instead of int_char.
59816	(CHAR-NAME): Use char_code instead of char_int.
59817	(test_newchar_arg, test_stringsymchar_arg): Test for CHARACTER, not
59818	  STRING-CHAR.
59819	(MAKE-STRING): No need to test for STRING-CHAR, the SUBTYPEP test
59820	  catches it. Test for CHARACTER, not STRING-CHAR.
59821	* error.d (fehler_string_char): Remove, replace by fehler_char.
59822	* foreign.d (convert_from_foreign_array_alloc): Make an array of
59823	  element type CHARACTER, not STRING-CHAR.
59824	(convert_to_foreign): Test for CHARACTER, not STRING-CHAR.
59825	* genclisph.d (main): Simplify code_char and char_code. Remove
59826	  string_char_p. Replace char_string_char by check_char.
59827	* io.d (SET-SYNTAX-FROM-CHAR, SET-MACRO-CHARACTER, GET-MACRO-CHARACTER)
59828	(MAKE-DISPATCH-MACRO-CHARACTER, test_disp_sub_char, read_char_syntax)
59829	(wpeek_char_syntax, wpeek_char_eof, read_macro): Test for CHARACTER,
59830	  not STRING-CHAR.
59831	(char_reader): Use code_char instead of int_char. Simplify.
59832	(array_reader): Use CHARACTER, not STRING-CHAR.
59833	(READ-DELIMITED-LIST, READ-LINE): Test for CHARACTER, not
59834	  STRING-CHAR.
59835	(pr_character): Use char_code instead of char_int.
59836	* lispbibl.d (char_int_len): Set to 8, not 16.
59837	(char_code_shift_c, char_code_len_c, char_code_mask_c): Remove.
59838	(char_code_limit, code_char, char_code): Simplify.
59839	(Atype_Char): Rename from Atype_String_Char.
59840	(strmtype_ch_file): Remove.
59841	(strmtype_ch_file): Rename from strmtype_sch_file.
59842	(string_char_p): Remove.
59843	(fehler_string_char): Remove declaration.
59844	(check_char): Replaces check_string_char.
59845	(read_char_array): Rename from read_schar_array.
59846	(write_char_array): Rename from write_schar_array.
59847	* pathname.d (OPEN): Accept element type CHARACTER, synonymous to
59848	  STRING-CHAR. No need to test for subtype of STRING-CHAR, subtype of
59849	  CHARACTER catches it.
59850	* predtype.d (COERCE): No need to check for STRING-CHAR after coercion
59851	  to CHARACTER.
59852	* stream.d (write_char): Use char_code instead of char_int.
59853	(fehler_wr_string_char): Remove.
59854	(wr_ch_handle): Test for CHARACTER, not STRING-CHAR.
59855	(write_char_array_handle): Rename from write_schar_array_handle.
59856	(wr_ch_terminal, wr_ch_terminal3, wr_ch_window): Test for CHARACTER,
59857	  not STRING-CHAR.
59858	(char_size, rd_ch_ch_file, listen_ch_file, wr_ch_ch_file): Remove.
59859	(rd_ch_ch_file): Rename from rd_ch_sch_file.
59860	(listen_ch_file): Rename from listen_sch_file.
59861	(wr_ch_ch_file): Rename from wr_ch_sch_file.
59862	(write_char_array_ch_file): Rename from write_schar_array_sch_file.
59863	(wr_ss_ch_file): Rename from wr_ss_sch_file.
59864	(position_file, position_file_end, make_file_stream): Simplify.
59865	(wr_ch_str_out): Test for CHARACTER, not STRING-CHAR.
59866	(MAKE-STRING-OUTPUT-STREAM): No need to test for STRING-CHAR, the
59867	  SUBTYPEP test catches it.
59868	(wr_ch_str_push, wr_ch_pphelp, wr_ch_buff_out, wr_ch_printer)
59869	(wr_ch_socket): Test for CHARACTER, not STRING-CHAR.
59870	(write_char_array_socket): Rename from write_schar_array_socket.
59871	(STREAM-ELEMENT-TYPE): Return CHARACTER instead of STRING-CHAR.
59872	  For the keyboard stream, return T.
59873	(read_char_array): Rename from read_schar_array. Test for
59874	  CHARACTER, not STRING-CHAR.
59875	(write_char_array): Rename from write_schar_array.
59876	(FILE-STRING-LENGTH): Test for CHARACTER, not STRING-CHAR. Simplify.
59877	* compiler.lsp (c-typep-alist1): Add STRING-CHAR.
59878	(c-typep-alist2): Remove STRING-CHAR.
59879	* defs2.lsp (dispatch-reader): Test for CHARACTER, not STRING-CHAR.
59880	(read-sequence, write-sequence): Do not test for STRING-CHAR, that's
59881	  not a used stream element type any more.
59882	(designator): Use char-code-limit instead of char-int-limit.
59883	  Remove definition of type (DESIGNATOR STRING-CHAR).
59884	  Use CHARACTER instead of STRING-CHAR.
59885	* format.lsp (digit-string): Create with element type CHARACTER, not
59886	  STRING-CHAR.
59887	* init.lsp (load): Call open with element type CHARACTER, not
59888	  STRING-CHAR.
59889	* type.lsp (STRING-CHAR): Make synonymous to CHARACTER.
59890	(upgraded-array-element-type): No need to test for STRING-CHAR, the
59891	  SUBTYPEP test catches it. Return CHARACTER, not STRING-CHAR.
59892	(canonicalize-type): Simplify STANDARD-CHAR and STRING-CHAR.
59893	  Element type of SIMPLE-STRING and STRING is CHARACTER, not
59894	  STRING-CHAR.
59895	* user2.lsp (shell-quote): Create with element type CHARACTER, not
59896	  STRING-CHAR.
59897
598981998-11-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59899
59900	Remove font and bits attributes of characters.
59901	* lispbibl.d (char_bits_*, char_font_*, char_*_c): Remove definitions.
59902	* io.d (char_reader): Font must be 0, bitnames are not supported any
59903	  more.
59904	(pr_character): Remove support for font and bitnames.
59905	* constobj.d (charname_hyper_*): Remove extra character names for keys.
59906	(bitnamekw_*): Remove bitnames.
59907	* charstrg.d (charname_table_extra): Remove definition.
59908	(charname_table_codes): Remove extra characters.
59909	(name_char): Do not test for extra characters.
59910	(CHAR-BITS, CHAR-FONT, MAKE-CHAR): Remove functions.
59911	(test_font_arg, test_bits_arg, test_bitname_arg): Remove.
59912	(CODE-CHAR, DIGIT-CHAR): Remove the optional font and bits arguments.
59913	(CHAR-BIT, SET-CHAR-BIT): Remove functions.
59914	* eval.d (FUNTAB): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR, CHAR-BIT,
59915	  SET-CHAR-BIT.
59916	* compiler.lsp (funtab): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR,
59917	  CHAR-BIT, SET-CHAR-BIT.
59918	(subr-info): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR, CHAR-BIT,
59919	  SET-CHAR-BIT, update for CODE-CHAR, DIGIT-CHAR.
59920	(c-DIRECT-FUNCTION-CALL): Remove CHAR-BITS, CHAR-FONT, MAKE-CHAR,
59921	  CHAR-BIT.
59922	* format.lsp (format-character): Remove handling of font and bits.
59923	* user2.lsp (describe): Likewise.
59924
59925	* xcharin.lsp: New file.
59926	* makemake.in (LPARTS): Add xcharin.
59927	* defs1.lsp (char-font-limit, char-bits-limit, char-int-limit)
59928	(char-control-bit, char-meta-bit, char-super-bit, char-hyper-bit):
59929	  Moved to xcharin.lsp.
59930	* init.lsp: Load xcharin.
59931	* defs3.lsp: Do not export COMMON, STRING-CHAR, CHAR-FONT-LIMIT,
59932	  CHAR-BITS-LIMIT, CHAR-CONTROL-BIT, CHAR-META-BIT, CHAR-SUPER-BIT,
59933	  CHAR-HYPER-BIT, STRING-CHAR-P, CHAR-BITS, CHAR-FONT, MAKE-CHAR,
59934	  INT-CHAR, CHAR-BIT, SET-CHAR-BIT.
59935
59936	* stream.d (key_event): New structure type.
59937	(make_key_event): New function.
59938	(char_control_c, char_meta_c, char_super_c, char_hyper_c): Define.
59939	(scancode_table): Use key_event data.
59940	(listen_keyboard): Call make_key_event and make-char.
59941	(rd_ch_keyboard): Likewise.
59942	(add_keybinding): Rename from keybinding.
59943	(keybinding): New macro.
59944	(make_keyboard_stream): Use key_event data.
59945	(wr_ch_terminal1): Leave a #error for Jorg to fix.
59946
59947	* type.lsp (upgraded-array-element-type): Treat CHARACTER as synonym
59948	  of STRING-CHAR.
59949	* array.d (eltype_code): Likewise.
59950
599511998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59952
59953	* stream.d (MAKE-STRING-OUTPUT-STREAM): Replace optional argument by
59954	  keyword arguments :ELEMENT-TYPE and :LINE-POSITION.
59955	* compiler.lsp (subr-info): Update for MAKE-STRING-OUTPUT-STREAM.
59956	* format.lsp (format-case-conversion, format-justification)
59957	(formatter-main-1): Pass keywords to MAKE-STRING-OUTPUT-STREAM.
59958	* macros2.lsp (with-output-to-string): Add keyword argument
59959	  :ELEMENT-TYPE.
59960
599611998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59962
59963	* charstrg.d (MAKE-STRING): Add keyword argument :ELEMENT-TYPE.
59964	* compiler.lsp (subr-info): Update for MAKE-STRING.
59965
599661998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59967
59968	* pathname.d (OPEN): Add keyword argument :EXTERNAL-FORMAT.
59969	* stream.d (STREAM-EXTERNAL-FORMAT): New function.
59970	* eval.d (FUNTAB): Add stream-external-format.
59971	* compiler.lsp (funtab): Add stream-external-format.
59972	(subr-info): Update for OPEN and STREAM-EXTERNAL-FORMAT.
59973	* init.lsp: Export STREAM-EXTERNAL-FORMAT from package LISP.
59974	* defs3.lsp: Export STREAM-EXTERNAL-FORMAT from package COMMON-LISP.
59975
599761998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59977
59978	* constobj.d (O(version)): Bump version number.
59979
599801998-10-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59981
59982	* editor.lsp: Remove file.
59983	* makemake.in (LPARTS): Adjust.
59984
599851998-10-22  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59986
59987	* charstrg.d (coerce_char): An integer is coercible to a character
59988	  only if *ansi* is false.
59989	* defs2.lsp (DESIGNATOR): Likewise.
59990
599911998-10-30  Sam Steingold  <sds@goems.com>
59992
59993	* init.lsp (date-format): use ISO date/time format for English.
59994
599951998-10-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
59996
59997	* spvw.d (main): Use `merge-pathnames' instead of explicit
59998	  `make-pathname'. Also make the #ifs consistent with _clisp.1.
59999
600001998-10-29  Sam Steingold  <sds@goems.com>
60001
60002	* spvw.d (main): replace `load_rc_file' with explicit load.
60003	* user1.lsp: remove `load-rc-file'.
60004	* constsym.d: ditto.
60005
600061998-10-29  Sam Steingold  <sds@goems.com>
60007
60008	* spvw.d (usage): new function; replace 'goto usage' with a call
60009	  to it, thus the exit code for "-h" and "--help" is 0 now.
60010
600111998-10-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60012
60013	* makemake.in: Keep "-norc" out of the localeflags.
60014	* user1.lsp (load-rc-file): Use `load'. Filename is OS dependent.
60015	(help): Do not mention Ctrl-D, it's Ctrl-Z on DOS, OS/2, Win32.
60016	* _clisp.1: Update accordingly.
60017
600181998-10-28  Sam Steingold  <sds@goems.com>
60019
60020	* spvw.d (main): add a new command line option -norc; load
60021	  ~/.clisprc when it is not given.
60022	* _clisp.c (main): ditto.
60023	* makemake.in: give lisp.run options -norc on build
60024	* user1.lsp (load-rc-file): new function.
60025	(help): more verbose message.
60026	* _clisp.1: document it.
60027
600281998-10-27  Sam Steingold  <sds@goems.com>
60029
60030	* configure: remind the user to edit config.lsp.
60031	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp:
60032	(machine-instance): init from $HOSTNAME.
60033	* cfgacorn.lsp, cfgamiga.lsp, cfgdos.lsp, cfgsunux.lsp, cfgunix.lsp:
60034	(short-site-name, long-site-name): init from $ORGANIZATION.
60035	  In both cases, when the environment variable is undefined, return
60036	  an instruction to edit `config.lsp'.
60037
600381998-10-23  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60039
60040	* time.d (SYS::DEFAULT-TIME-ZONE): Treat dates <= 1.1.1970 or
60041	  >= 1.1.2050 like 1.1.1970 or 1.1.2050, respectively.
60042
600431998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60044
60045	* stream.d (FILE-STRING-LENGTH): New function.
60046	* init.lsp: Export it from package LISP.
60047	* defs3.lsp: Export it from package COMMON-LISP.
60048	* compiler.lsp (subr-info): Add FILE-STRING-LENGTH.
60049
600501998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60051
60052	Encode the "last read character has been pushed back" state of a
60053	stream in the strmflags, instead of in strm_rd_ch_last.
60054	* stream.d (strmflags_unread_bit_B, strmflags_unread_B): New defines.
60055	(pk_ch_dummy): Set the bit, unless the return value is eof_value.
60056	(read_char): Clear the bit.
60057	(unread_char): Set the bit.
60058	(peek_char): Test the bit.
60059	(close_dummys): Clear the bit.
60060	(rd_ch_handle for AMIGAOS): Set the bit before entering a break loop.
60061	(listen_handle): Set the bit when a character is available.
60062	(listen_keyboard): Likewise.
60063	(listen_socket): Likewise.
60064	(position_file_start, position_file, position_file_end): Clear the
60065	  bit.
60066	(SYSTEM::STRING-INPUT-STREAM-INDEX): Test the bit.
60067	(SYSTEM::BUFFERED-INPUT-STREAM-INDEX): Likewise.
60068	(pk_ch_generic): Simplify. Do not check for a character any more.
60069	(stream_listen): Test the bit.
60070	(clear_input): Clear the bit.
60071	(read_schar_array): Test and clear the bit.
60072
600731998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60074
60075	* type.lsp (upgraded-array-element-type): Fix so that for
60076	  STANDARD-CHAR it returns STRING-CHAR.
60077	* array.d (eltype_code): Likewise.
60078
600791998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60080
60081	* lispbibl.d (nonreturning): Remove definition.
60082	(nonreturning_function): Use __attribute__((__noreturn__)).
60083	* genclisph.d (main): Likewise.
60084
600851998-10-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60086
60087	* _clisp.c (main): New option "-a".
60088	* spvw.d (main): Likewise.
60089	(argv_ansi): New variable.
60090	* constsym.d (*ANSI*): New variable.
60091	* spvw.d (init_symbol_values): Initialize it.
60092
600931998-10-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60094
60095	* _distmakefile (CC): Set to "cc -Aa" on HP-UX, because "cc" is not
60096	  ANSI C compliant and doesn't grok `main' in clisp.c.
60097	(CC): Set to "gcc" on SunOS4, because the normal "cc" is not ANSI C
60098	  compliant.
60099
601001998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60101
60102	* loop.lsp (expand-loop): Rework a little bit to improve the syntax
60103	  checking after `of-type' in sum/max/count.
60104
601051998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60106
60107	* control.d (TAGBODY, GO): Allow NIL as GO tag.
60108	* compiler.lsp (c-TAGBODY, c-GO): Likewise.
60109
601101998-10-17  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60111
60112	* list.d (LDIFF): Allow dotted lists, like for TAILP.
60113
601141998-10-15  Sam Steingold  <sds@goems.com>
60115
60116	* loop.lsp (expand-loop): fix handling of `of-type' in
60117	sum/max/count.
60118
601191998-10-14  Leigh Smith  <leigh@antechinus.cs.uwa.oz.au>
60120
60121	* makemake.in (echol): Use `cat', not `printf'.
60122	(echoline): Do not access $3 and $4 inside the loop.
60123
601241998-10-12  Sam Steingold  <sds@goems.com>
60125
60126	* utils/modprep.d: #include <errno.h>.
60127
601281998-10-11  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60129
60130	* utils/modprep.d: New file.
60131	* makemake.in: Build it.
60132	* genclisp.d: Define DEFMODULE, DEFUN, DEFVAR, for use by modules.
60133
601341998-10-10  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60135
60136	* stream.d (rd_ch_terminal3): Do not need to put newlines into the
60137	  prompt string when using newnewreadline.
60138	(xmalloc, xrealloc): Change declaration when using newnewreadline.
60139
601401998-10-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60141
60142	* configure, makemake.in: Add support for newnewreadline directory.
60143
601441998-10-08  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60145
60146	* stream.d (make_keyboard_stream): Restore the handling of most keypad
60147	  keys in xterm, broken by the 1998-10-03 patch.
60148
601491998-10-09  Sam Steingold  <sds@goems.com>
60150
60151	* spvw.d (init_symbol_values): define LISP:*PPRINT-FIRST-NEWLINE*.
60152	* io.d (pr_enter_1): use `pprint_first_newline' to determine
60153	whether to output a newline before the object.
60154	* constsym.d: new symbol LISP:*PPRINT-FIRST-NEWLINE*.
60155	* bindings/linuxlibc6/linux.lsp: do not include <stdlib.h>, fixed
60156	declaration of `lldiv', remove: `setkey', `crypt', `encrypt',
60157	`__pwdopen', `__pwdread', `__pwdalloc', `__pwdscan', `__grpopen',
60158	`__grpread', `__grpalloc', `__grpscan'.
60159	* foreign1.lsp (to-c-typedecl): more elaborate handling of `c-ptr',
60160	`c-ptr-null', `c-array-ptr' and `c-function'.
60161	* user1.lsp (prompt-index): remove; *prompt* modified accordingly.
60162
601631998-10-06  Sam Steingold  <sds@goems.com>
60164
60165	* user1.lsp (package-short-name): respect `*print-case*'.
60166	(break-loop): add a space after "Break".
60167	(step-hook-fn): add a space after "Step nn".
60168	(prompt-index, prompt-new-package): Rewrite.
60169	(*command-index*, *home-package*): New variables.
60170
601711998-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60172
60173	* lndir: Add code to perform the equivalent of "mkdir -p".
60174	(mkdirparent): New function.
60175
601761998-10-06  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60177
60178	* makemake.in: If SRCDIR is empty, emit "./lndir" instead of "lndir".
60179
601801998-10-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60181
60182	* lispbibl.d (STACK_reg, mv_count_reg, value1_reg, subr_self_reg):
60183	  Declare even if HAVE_SAVED_REGISTERS is not defined.
60184
601851998-10-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60186
60187	* stream.d (make_keyboard_stream): Recognize the End key sequence
60188	  sent by the Linux console even when it is lacking from the termcap
60189	  entry. (The "kH" termcap entry apparently got lost during the
60190	  termcap -> terminfo/ncurses switch.)
60191
601921998-09-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60193
60194	* stream.d (make_keyboard_stream): Recognize the XF86-3.3.2 xterm's
60195	  Home/End key sequences Esc [ H and Esc [ F. Recognize the SuSE-5.3
60196	  kvt's Home/End key sequences Esc O H and Esc O F.
60197
601981998-09-21  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60199
60200	* array.d (vectorof): New function.
60201	(VECTOR): Call it.
60202	* lispbibl.d (vectorof): New declaration.
60203	* genclisph.d (main): Declare vectorof.
60204	* predtype.d (statistics_statistics): Use vectorof.
60205
602061998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60207
60208	* user1.lsp: Fix German message, broken by last patch.
60209
602101998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60211
60212	* bytecode.html: New file.
60213	* compiler.lsp: Remove description of instruction set.
60214
602151998-09-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60216
60217	* condition.lsp (prompt-for-new-value): Change message, to be
60218	  consistent with prompt-for-new-value-string.
60219	(assert): Make more readable. Prefer `append' to `nconc'.
60220
602211998-09-11  Sam Steingold  <sds@goems.com>
60222
60223	* conditio.lsp (prompt-for-new-value): returns a list now; works
60224	with multiple value places.
60225	(check-type): adopt for new semantics od `prompt-for-new-value'.
60226	(assert): work with multiple value places.
60227
602281998-09-10  Sam Steingold  <sds@goems.com>
60229
60230	* user1.lsp (prompt-new-package): remove the `values' declaration.
60231
602321998-09-10  Sam Steingold  <sds@goems.com>
60233
60234	* places.lsp (setf-VALUES-aux): replace `get-setf-method' with
60235	`get-setf-expansion' therefore comply with SETF-OF-VALUES:ADD.
60236
602371998-09-09  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60238
60239	* spvw.d (init_object_tab): Put only keywords into *features*.
60240	* clos.lsp: Likewise. Do not export CLOS.
60241	* compiler.lsp: Likewise. Do not export COMPILER.
60242	* loop.lsp: Likewise.
60243	* editor.lsp: Likewise. Do not export EDITOR.
60244	* init.lsp: Do not import/export the contents of *features*.
60245	* io.d (interpret_feature): Search in *features* by EQ.
60246	(feature): Bind *package*.
60247
602481998-09-09  Sam Steingold  <sds@goems.com>
60249
60250	* user1.lsp: replace `*prompt-with-package*' with `*prompt*' with
60251	CMUCL's semantics.  Add `prompt-new-package', `prompt-index' and
60252	`package-short-name'.
60253
602541998-09-03  Sam Steingold  <sds@goems.com>
60255
60256	* places.lsp (shiftf): fix the return values, as well as the
60257	failed test setf.tst.
60258
602591998-09-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60260
60261	* pathname.d (legal_namechar): On DOS, accept more misc characters
60262	  as valid.
60263
602641998-09-02  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60265
60266	* lispbibl.d (const, __const): Define to empty when using gcc-2.7.x.
60267
602681998-09-01  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60269
60270	* spvw_mmap.d (mprotect): Declare with MPROTECT_CONST.
60271	* win32.d (MPROTECT_CONST): Define.
60272
602731998-08-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60274
60275	* spvw.d (init_object_tab:features_initstring): Replace CLTL1 by
60276	  CLTL2.
60277
602781998-08-31  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60279
60280	* spvw_garcol.d (gar_col_compact): Fix update_STACKs call.
60281
602821998-08-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60283
60284	* places.lsp: Fix German and French messages, broken by last patch.
60285	(define-setf-expander, get-setf-expansion): Change format of
60286	  SYSTEM::SETF-EXPANDER property list entry. Do not call
60287	  FUNCTION-SIGNATURE.
60288	(PUSH): Rewrite. Do not call COPY-TREE.
60289	(POP): Rewrite. Do not call COPY-TREE. Be sure to fetch the CARs
60290	  before the CDRs.
60291	(PUSHNEW): Rewrite. Do not call COPY-TREE.
60292	(SETF): Do not nreverse bindlist.
60293	(SHIFTF, ROTATEF): Do not call NREVERSE on some unknown piece of code.
60294	(SETF THE): Fix totally broken code.
60295	* defs3.lsp: Do not export `get-setf-method',
60296	  `get-setf-method-multiple-value', `define-setf-method' any more.
60297
602981998-07-29  Sam Steingold  <sds@goems.com>
60299
60300	Implement ANSI CL issue SETF-MULTIPLE-STORE-VARIABLES:ALLOW:
60301	* places.lsp (get-setf-method-multiple-value): rename into
60302	  `get-setf-expansion'; made it treat multiple value `defsetf'
60303	  properly.
60304	(simple-assignment-p, simple-use-p): use `=' to compare numbers,
60305	  not `eql'.
60306	(push, pop, psetf, psetf, rotatef, shiftf, the): rewrote from
60307	  scratch to accept multiple value places.
60308	(define-setf-method): rename into `define-setf-expander'.
60309	(defsetf): made it accept multiple values.
60310	(setf): minor code simplification.
60311	* init.lsp (export): add `get-setf-expansion' and
60312	  `define-setf-expander'.
60313	* defs3.lsp (export): add `get-setf-expansion' and
60314	  `define-setf-expander'.
60315
603161998-08-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60317
60318	* lispbibl.d: Add a lot of `const' qualifiers.
60319	* spvw.d, spvw_memfile.d, spvw_sigwinch.d, spvw_multimap.d,
60320	* spvw_genera1.d, eval.d, io.d, stream.d, socket.d, array.d,
60321	* charstrg.d, hashtabl.d, list.d, sequence.d, package.d, debug.d,
60322	* time.d, lisparit.d, intelem.d, intgcd.d, int2adic.d, flo_konv.d,
60323	* foreign.d, graph.d, affi.d, unix.d, unixaux.d, genclisph.d: Likewise.
60324
603251998-08-03  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60326
60327	* aclocal.m4 (CL_NOWARN): Remove.
60328	* configure.in (CL_NOWARN): Remove.
60329	* unixconf.h.in (__nowarn__): Remove definition.
60330	* lispbibl.d (nowarn): Remove definition.
60331	* unix.d, acorn.d: Remove occurrences of `nowarn'.
60332
603331998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60334
60335	* spvw_walk.d: New file.
60336	* spvw.d (map_heap_objects): Move out.
60337	* makemake.in (SPVW_INCLUDES): Adjust.
60338
603391998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60340
60341	* spvw_memfile.d: New file.
60342	* spvw.d (memflags, memdump_header, memdump_page)
60343	(memdump_physpage_state, memdump_reloc_header, page_alignment)
60344	(WRITE_page_alignment, READ_page_alignment, savemem, loadmem_update)
60345	(loadmem_update_fsubr, loadmem, loadmem_from_handle): Move out.
60346	* makemake.in (SPVW_INCLUDES): Adjust.
60347
603481998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60349
60350	* spvw_language.d: New file.
60351	* spvw.d (mysetenv, language, init_language_from, init_language)
60352	(cvgettext, clgettext, localized_string, localized_object): Move out.
60353	* makemake.in (SPVW_INCLUDES): Adjust.
60354
603551998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60356
60357	* spvw_typealloc.d: New file.
60358	* spvw.d (allocate_cons, make_symbol, allocate_vector)
60359	(allocate_bit_vector, allocate_string, allocate_iarray)
60360	(allocate_srecord_, allocate_xrecord_, allocate_stream)
60361	(allocate_fpointer, allocate_handle, allocate_bignum)
60362	(allocate_ffloat, allocate_dfloat, allocate_lfloat, make_ratio)
60363	(make_complex): Move out.
60364	* makemake.in (SPVW_INCLUDES): Adjust.
60365
603661998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60367
60368	* spvw_allocate.d: New file.
60369	* spvw.d (fehler_speicher_voll, error_speicher_voll, relax_reserve)
60370	(pointable_usable_test, mymalloc, make_space, make_space_gc)
60371	(allocate): Move out.
60372	* makemake.in (SPVW_INCLUDES): Adjust.
60373
603741998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60375
60376	* spvw_garcol.d: New file.
60377	* spvw.d (gc_mark, mark_stack, gc_markphase, alive)
60378	(unmark_fixed_varobjects, gc_compact_cons_page, gc_morris1)
60379	(gc_morris2, gc_morris3, set_GCself, gc_sweep1_varobject_page)
60380	(update, move_aligned_p1_p2, gc_sweep2_varobject_page)
60381	(gc_unmarkcheck, nullobjcheck, free_some_unused_pages)
60382	(gar_col_normal, gar_col_done, free_page_later, free_delayed_pages)
60383	(gc_compact_from_varobject_page, gc_compact_from_cons_page)
60384	(gc_compact_heap, gar_col_compact, gar_col_simple, gar_col)
60385	(move_conses): Move out.
60386	* makemake.in (SPVW_INCLUDES): Adjust.
60387
603881998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60389
60390	* spvw_sigsegv.d, spvw_sigcld.d, spvw_sigint.d, spvw_sigwinch.d: New
60391	  files.
60392	* spvw.d (gc_signalblock_on, gc_signalblock_off, interrupt_pending)
60393	(update_linelength, sigwinch_handler, install_sigcld_handler)
60394	(begin_want_sigcld, end_want_sigcld, interrupt_handler)
60395	(alarm_handler, sigsegv_handler_failed, sigsegv_handler)
60396	(install_segv_handler, stackoverflow_handler): Move out.
60397	(main): Call install_stackoverflow_handler, install_sigwinch_handler,
60398	  install_sigint_handler, install_segv_handler, install_sigcld_handler.
60399	* makemake.in (SPVW_INCLUDES): Adjust.
60400
604011998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60402
60403	* spvw_gcstat.d: New file.
60404	* spvw.d (gc_count, gc_space, gc_time, gc_timer_on, gc_timer_off):
60405	  Move out.
60406	* makemake.in (SPVW_INCLUDES): Adjust.
60407
604081998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60409
60410	* spvw_genera1.d, spvw_genera2.d, spvw_genera3.d: New files.
60411	* spvw.d (xfree, xrealloc, prepare_old_generation, in_old_generation)
60412	(walk_physpage, walk_area, walk_physpage_, walk_area_)
60413	(update_old_generation, build_old_generation_cache)
60414	(rebuild_old_generation_cache, gc_cache_check, gc_overall_check)
60415	(save_gc_data): Move out.
60416	(gc_markphase): Call gc_mark_old_generation().
60417	* makemake.in (SPVW_INCLUDES): Adjust.
60418
604191998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60420
60421	* spvw_fault.d: New file.
60422	* spvw.d (physpagesize, physpageshift, handle_fault_result)
60423	(handle_mmap_fault, handle_read_fault, handle_readwrite_fault)
60424	(handle_fault, handle_fault_range, selfmade_mmap, xmprotect)
60425	(xmmprotect): Move out.
60426	(main): Call init_physpagesize().
60427	* makemake.in (SPVW_INCLUDES): Adjust.
60428
604291998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60430
60431	* spvw_mark.d: New file.
60432	* spvw.d (mark, unmark, marked, with_mark_bit, without_mark_bit):
60433	Move out.
60434	* makemake.in (SPVW_INCLUDES): Adjust.
60435
604361998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60437
60438	* spvw_update.d: New file.
60439	* spvw.d (aktualisiere_STACK, aktualisiere_subr_tab)
60440	(aktualisiere_symbol_tab, aktualisiere_object_tab, aktualisiere_tab)
60441	(aktualisiere_conspage_normal, aktualisiere_conses)
60442	(aktualisiere_page_normal, aktualisiere_varobject): Move out.
60443	(update): Rename from aktualisiere.
60444	* makemake.in (SPVW_INCLUDES): Adjust.
60445
604461998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60447
60448	* spvw_objsize.d: New file.
60449	* spvw.d (typecode_at, case_symbolwithflags, speicher_laenge)
60450	(Varobject_aligned_size, size_symbol, size_sbvector, size_sstring)
60451	(size_svector, size_iarray, size_srecord, size_xrecord, size_bignum)
60452	(size_ffloat, size_dfloat, size_lfloat, speicher_laengen)
60453	(init_speicher_laengen, var_speicher_laenge_, calc_speicher_laenge)
60454	(varobject_bytelength): Move out.
60455	* makemake.in (SPVW_INCLUDES): Adjust.
60456
604571998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60458
60459	* spvw_space.d: New file.
60460	* spvw.d (static_space, used_space, free_space, recalc_space): Move
60461	  out.
60462	* makemake.in (SPVW_INCLUDES): Adjust.
60463
604641998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60465
60466	* spvw_page.d: New file.
60467	* spvw_heap.d: New file.
60468	* spvw_global.d: New file.
60469	* spvw.d (typecount, _Page, Page, Pages, Heap, oint_addr_relevant_len)
60470	(min_page_size_brutto, std_page_size, old_new_pointer)
60471	(physpage_state, heapcount, is_cons_heap, is_varobject_heap)
60472	(is_heap_containing_objects, is_unused_heap, map_heap)
60473	(for_each_cons_page, for_each_cons_page_reversed)
60474	(for_each_varobject_page, for_each_page, mem, RESERVE)
60475	(MINIMUM_SPACE, RESERVE_FOR_MALLOC, check_avl_consistency)
60476	(check_gc_consistency, check_gc_consistency_2)
60477	(check_pack_consistency): Move out.
60478	(memfile_handle, memfile_still_being_read): Move into the mem struct.
60479	(main): Call init_mem_heaptypes() and init_mem_heapnr_from_type().
60480	* makemake.in (SPVW_INCLUDES): Adjust.
60481
604821998-07-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60483
60484	* spvw_singlemap.d: New file.
60485	* spvw.d (map_pagesize, initmap, prepare_zeromap, zeromap): Move out.
60486	(main): Call init_map_pagesize().
60487	* makemake.in (SPVW_INCLUDES): Adjust.
60488
604891998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60490
60491	* spvw_multimap.d: New file.
60492	* spvw.d (map_pagesize, MM_TYPECASES, combine, mm_types_count)
60493	(initmap, remember_mmap_interval, msync_mmap_intervals, fdmap)
60494	(zeromap, open_temp_fd, fdsave, close_temp_fd, open_shmid, idmap)
60495	(shmsave, close_shmid, open_mapid, map_mapid, close_mapid, multimap1)
60496	(done_mapid, exitmap, multimap): Move out.
60497	(main): Call init_map_pagesize() and use map_pagesize.
60498	(main): Do not close zero_fd, it might be needed in the case of
60499	  DYNAMIC_MODULES.
60500	* makemake.in (SPVW_INCLUDES): Adjust.
60501
605021998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60503
60504	* spvw_mmap.d (mmap_zero_fd): Rename from zero_fd.
60505
605061998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60507
60508	* spvw_circ.d: New file.
60509	* spvw.d (mlbitmap, mlb_alloc, mlb_add, mlb_free, get_circ_global)
60510	(get_circ_mark, get_circ_unmark, get_circularities)
60511	(subst_circ_global, subst_circ_mark, subst_circ_unmark, subst_circ):
60512	  Move out.
60513	* makemake.in (SPVW_INCLUDES): Adjust.
60514
605151998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60516
60517	Remove support for immutable objects. It was limited to a small range
60518	of systems (those with good shared memory support), introduced a 16 MB
60519	limit on 32-bit machines, required specially compiled binaries, and
60520	add a lot of complexity to spvw.d, which is in the way now. Not
60521	worth it.
60522	* lispbibl.d: Remove IMMUTABLE support.
60523	(coerce_imm_ss): Remove declaration.
60524	* genclisph.d (main): Remove IMMUTABLE support.
60525	* spvw.d: Remove IMMUTABLE support.
60526	* hashtabl.d: Likewise.
60527	* io.d: Likewise.
60528	* list.d: Likewise.
60529	* stream.d: Remove strmflags_immut_bit_B.
60530	* package.d: Use coerce_ss instead of coerce_imm_ss.
60531	* constpack.d: Likewise.
60532
605331998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60534
60535	* Makefile.devel, configure: Incorporate the sigsegv package.
60536	* lispbibl.d: Include sigsegv.h.
60537	  Rename CAN_HANDLE_WP_FAULT to HAVE_SIGSEGV_RECOVERY.
60538	  Use HAVE_STACK_OVERFLOW_RECOVERY.
60539	* spvw.d (install_segv_handler, catch_exception_raise)
60540	(exception_thread_main, sigsegv_handler, install_sigsegv_handler)
60541	(stack_overflow_handler): Remove all low-level, platform-dependent
60542	  stuff. Use the sigsegv package instead.
60543	(main): Call stackoverflow_install_handler.
60544	* unix.d: Remove CAN_HANDLE_WP_FAULT database, now part of the sigsegv
60545	  package.
60546	* win32.d: Likewise.
60547	* makemake.in: (USE_SIGSEGV, XCL_SIGSEGVLIB): New variables.
60548
605491998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60550
60551	* aclocal.m4 (CL_MPROTECT, CL_CODEEXEC): Require CL_MALLOC.
60552
605531998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60554
60555	* spvw_alloca.d: New file.
60556	* spvw.d (malloca_header, malloca_list, malloca, freea): Move out.
60557	* makemake.in (SPVW_INCLUDES): Adjust.
60558
605591998-07-20  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60560
60561	* spvw.d (cpu_is_68000, CPU_IS_68000, default_allocmemflag)
60562	(retry_allocmemflag, MemBlockHeader, allocmemblocks, allocmem)
60563	(freemem, stdin_handle, stdout_handle, orig_dir_lock, init_amiga)
60564	(exit_amiga): Move out.
60565	* amigaaux.d (cpu_is_68000, CPU_IS_68000, default_allocmemflag)
60566	(retry_allocmemflag, MemBlockHeader, allocmemblocks, allocmem)
60567	(freemem, stdin_handle, stdout_handle, orig_dir_lock, init_amiga)
60568	(exit_amiga): Move to here.
60569	(malloc, free): New functions.
60570	* amiga.d (default_allocmemflag, retry_allocmemflag, allocmem, freemem)
60571	(malloc, free): Declare.
60572
605731998-07-19  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60574
60575	* spvw.d (abort): Move to amigaaux.d.
60576	* amigaaux.d (abort): Moved here.
60577	* amiga.d (abort): Adjust comment.
60578
605791998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60580
60581	* lispbibl.d: Add a comment about CFLAGS.
60582
605831998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60584
60585	* lispbibl.d: Do not use CPU registers when compiling for MULTITHREAD,
60586	  for the moment.
60587	(SP_register, ASM_get_SP_register): Define.
60588	(SP): Use it.
60589	(thread): New structure.
60590	(thread_size, thread_objects_offset, thread_objects_anz, roughly_SP)
60591	(sp_to_thread): New macros.
60592	(current_thread): New function.
60593	(callback_saved_registers, STACK, saved_mv_count, saved_value1)
60594	(saved_subr_self, saved_STACK, SP_bound, STACK_bound, mv_count)
60595	(mv_space, value1, temp_mv_count, temp_value1, subr_self, aktenv)
60596	(unwind_protect_to_save, handler_args, inactive_handlers): Support
60597	  for MULTITHREAD.
60598	* eval.d (STACK, saved_STACK, mv_count, temp_mv_count, saved_mv_count)
60599	(temp_value1, saved_value1, subr_self, saved_subr_self): Move out to
60600	  spvw.d.
60601	(unwind_protect_to_save, handler_args, stack_range)
60602	(inactive_handlers): Move out to lispbibl.d and spvw.d.
60603	* spvw.d (STACK, saved_STACK, mv_count, temp_mv_count, saved_mv_count)
60604	(temp_value1, saved_value1, subr_self, saved_subr_self)
60605	(callback_saved_registers, SP_bound, STACK_bound, aktenv)
60606	(unwind_protect_to_save, handler_args, inactive_handlers): Define
60607	  all together here.
60608	(allthreads_lock, MAXNTHREADS, nthreads, allthreads, num_symvalues)
60609	(maxnum_symvalues): New definitions.
60610	(init_multithread, create_thread, delete_thread)
60611	(make_symvalue_perthread): New functions.
60612	(for_all_threadobjs, for_all_STACKs): Reimplement.
60613	(main): Call init_multithread and create_thread.
60614
606151998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60616
60617	* spvw_mmap.d: New file.
60618	* spvw.d (getpagesize, initmap, prepare_zeromap, zeromap, filemap)
60619	(munmap, mprotect): Move out.
60620	(main): Call mmap_init_pagesize() and use mmap_pagesize.
60621	* makemake.in (SPVW_INCLUDES): Adjust.
60622
606231998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60624
60625	* spvw_debug.d: New file.
60626	* spvw.d (asciz_out, hex_out_, dez_out_, asciz_out_s, asciz_out_ss)
60627	(asciz_out_aux_hex, asciz_out_aux_dez, asciz_out_1_, asciz_out_2_)
60628	(asciz_out_3_, mem_hex_out, object_out): Move out.
60629	* makemake.in: (SPVW_INCLUDES): Adjust.
60630
606311998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60632
60633	* spvw_module.d: New file.
60634	* spvw.d (main_module, last_module, init_modules_0, add_module)
60635	(for_modules, all_modules, all_other_modules): Move out.
60636	* makemake.in (SPVW_MODULES): New variable. Adjust.
60637
606381998-07-04  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60639
60640	* lispbibl.d (OS_error): Move declaration.
60641	(xthread.c): Move #include.
60642
606431998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60644
60645	Make the *print-circle* subroutines multithread-safe.
60646	* spvw.d (mlb[0-6], mlbs[0-5], mlb_levels): New macros.
60647	(mlbitmap): New struct type.
60648	(mlb_alloc, mlb_expand, mlb_add, mlb_free): New functions.
60649	(get_circularities, get_circ_mark): New implementations for
60650	  MULTITHREAD.
60651	(subst_circ, subst_circ_mark): New implementations for MULTITHREAD.
60652
606531998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60654
60655	* xthread.d: New file.
60656	* lispbibl.d: Include it if defined(MULTITHREAD).
60657	(_REENTRANT): Define if defined(MULTITHREAD).
60658	* makemake.in (OS_includes): Add xthread.
60659	* FILES.1: Update.
60660	* gettext/po/Makefile.devel (DSOURCES): Likewise.
60661
606621998-06-21  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>
60663
60664	* impnotes.html: Fix a couple of syntax errors.
60665
606661998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60667
60668	* screen.lsp (generic-stream-listen): Adapt return value.
60669
606701998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60671
60672	* defs1.lsp (load-logical-pathname-translations): Signal an error if
60673	  no translations were found.
60674
606751998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
60676
60677	* defs3.lsp (COMMON-LISP:IN-PACKAGE): New macro.
60678
606791998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60680
60681	* lispbibl.d (OS_file_error, OS_filestream_error): New declarations.
60682	* errunix.d (OS_error_internal): New function, extracted from OS_error.
60683	(OS_error): Call it.
60684	(OS_file_error): New function.
60685	* erramiga.d (OS_error_internal): New function, extracted from OS_error.
60686	(OS_error): Call it.
60687	(OS_file_error): New function.
60688	* errwin32.d (OS_error_internal): New function, extracted from OS_error.
60689	(OS_error): Call it. Start with an optional end_system_call().
60690	(OS_file_error): New function.
60691	* errdjgpp.d (OS_error_internal): New function, extracted from OS_error.
60692	(OS_error): Call it.
60693	(OS_file_error): New function.
60694	* error.d (OS_filestream_error): New function.
60695	* spvw.d (savemem): Add missing end_system_call(). Call OS_file_error
60696	  instead of OS_error.
60697	* pathname.d (default_directory_of): Add pathname argument. Call
60698	  OS_file_error instead of OS_error.
60699	(use_default_dir): Change accordingly.
60700	(assure_dir_exists for DOS/OS2/Win32): Call OS_file_error instead of
60701	  OS_error.
60702	(directory_truename for AMIGAOS): Move end_system_call().
60703	(default_directory for AMIGAOS): Add missing end_system_call().
60704	(assure_dir_exists for AMIGAOS): Call OS_file_error instead of
60705	  OS_error.
60706	(assure_dir_exists for UNIX): Likewise.
60707	(canonicalise_dirname for RISCOS): Likewise.
60708	(assure_dir_exists_ for RISCOS): Likewise.
60709	(change_default for DOS/OS2/Win32): Likewise.
60710	(change_default for AMIGAOS): Likewise.
60711	(change_default for UNIX): Likewise.
60712	(change_default for RISCOS): Likewise.
60713	(file_exists): Force pathname to be in STACK_0.
60714	(access0 for Win32): Call OS_file_error instead of OS_error.
60715	(directory_exists): Likewise.
60716	(DELETE-FILE): Likewise.
60717	(rename_file): Adapt to changed file_exists(). Call OS_file_error
60718	  instead of OS_error.
60719	(open_file): Call OS_file_error instead of OS_error.
60720	(subdirs, directory_search): Likewise.
60721	(shorter_directory): Leave the pathname on the STACK.
60722	(make_directory): Force pathname to be in STACK_0. Call
60723	  OS_file_error instead of OS_error.
60724	(MAKE-DIR, DELETE-DIR, ENSURE-DIRECTORIES-EXIST): Change accordingly.
60725	  Call OS_file_error instead of OS_error.
60726	(FILE-WRITE-DATE): Call OS_filestream_error and OS_file_error instead
60727	  of OS_error.
60728	(FILE-AUTHOR): Call OS_file_error instead of OS_error.
60729	* stream.d (file_lseek): Call OS_filestream_error instead of OS_error.
60730	(b_file_finish_flush, b_file_nextbyte): Likewise.
60731	(finish_output_file, close_file): Likewise.
60732
607331998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60734
60735	* package.d (unintern): Signal a continuable error of type
60736	  PACKAGE-ERROR instead of ERROR.
60737	(import, export, use_package, correct_packname): Likewise.
60738	(DELETE-PACKAGE): Likewise.
60739
607401998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60741
60742	* error.d (SYS::CERROR-OF-TYPE): New function.
60743
607441998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60745
60746	* conditio.lsp (coerce-to-condition): Do not signal an error if
60747	  there are arguments and the caller is CERROR.
60748
607491998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60750
60751	* conditio.lsp (retry-loop): New argument expected-type. Signal an
60752	  error of type TYPE-ERROR.
60753	(ctypecase, ccase): Call case-expected-type.
60754
607551998-06-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60756
60757	* user2.lsp (describe): Do not mention STRUCTURE-OBJECT as type of
60758	  all structure objects.
60759
607601998-06-06  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60761
60762	* control.d (make_variable_frame): For LET, LET*, MULTIPLE-VALUE-BIND,
60763	  check that the variable is not a constant. For SYMBOL-MACROLET,
60764	  check that the variable is not proclaimed special.
60765	* init.lsp (%expand-form): For SYMBOL-MACROLET, check that the
60766	  variable is not proclaimed special and is not declared special
60767	  in the same binding.
60768	* compiler.lsp (c-SYMBOL-MACROLET): Likewise.
60769
607701998-06-04  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60771
60772	* lispbibl.d (Stream): New field strm_pk_ch.
60773	* stream.d (pk_ch_Pseudofun): New type.
60774	(pk_ch): New macro.
60775	(pk_ch_dummy): New function.
60776	(peek_char): Call the stream's pk_ch function.
60777	(close_dummys, make_handle_stream, make_keyboard_stream)
60778	(make_terminal_stream_, SCREEN:MAKE-WINDOW, make_file_stream)
60779	(make_synonym_stream, make_broadcast_stream, make_concatenated_stream)
60780	(make_twoway_stream, make_echo_stream, MAKE-STRING-INPUT-STREAM)
60781	(make_string_output_stream, SYS::MAKE-STRING-PUSH-STREAM)
60782	(make_pphelp_stream, MAKE-BUFFERED-INPUT-STREAM)
60783	(MAKE-BUFFERED-OUTPUT-STREAM, make_printer_stream)
60784	(MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM)
60785	(SYS::MAKE-SOCKET-STREAM, make_socket_stream, MAKE-GENERIC-STREAM):
60786	  Set the strm_pk_ch field.
60787	(pk_ch_synonym, pk_ch_concat, pk_ch_twoway, pk_ch_generic): New
60788	  functions.
60789	* pseudofun.d: Update.
60790	* gstream.lsp: Export GENERIC-STREAM-PEEK-CHAR.
60791	(generic-stream-peek-char): New generic function.
60792
607931998-06-03  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60794
60795	* clos.lsp (slot-unbound): Signal SLOT-UNBOUND instead of ERROR.
60796
607971998-06-02  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60798
60799	* format.lsp (FORMAT-CALL-USER-FUNCTION): Rename from FORMAT-SLASH.
60800	(format-parse-cs): Integrate format-get-symbol. Tweak error
60801	  messages. Use *common-lisp-user-package*. Do not push a symbol
60802	  directly on csd-parm-list.
60803
608041998-06-02  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60805
60806	* compiler.lsp (c-EVAL-WHEN): Treat (NOT :COMPILE-TOPLEVEL),
60807	  consistently with control.d.
60808
608091998-06-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60810
60811	* configure: Always pass --with-included-gettext to gettext/configure.
60812	 (Because some users have libintl.a installed and some do not,
60813	  therefore the fact that libintl.a is present must be ignored.)
60814
608151998-05-31  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60816
60817	* conditio.lsp (unbound-slot): New condition type. Export it.
60818	(unbound-slot-instance): New function. Export it.
60819	(simple-unbound-slot, simple-parse-error): New condition types.
60820	(%defclcs): Pass them.
60821	* init.lsp (unbound-slot): Export it.
60822	* defs3.lsp (unbound-slot, unbound-slot-instance): Export them.
60823	* lispbibl.d (conditiontype): Add unbound_slot and parse_error.
60824	* genclisph.d: Likewise.
60825	* constsym.d: Add them here too.
60826	* error.d (end_error): Treat unbound_slot.
60827	* array.d (ARRAY-DIMENSION): For out-of-range argument, signal
60828	  TYPE-ERROR instead of ERROR.
60829	(get_fill_pointer): For array without fill-pointer signal TYPE-ERROR
60830	  instead of ERROR.
60831	(ADJUST-ARRAY): Likewise.
60832	(SYS::VECTOR-INIT-START): For out-of-range argument, signal
60833	  TYPE-ERROR instead of ERROR.
60834	(SYS::VECTOR-FE-INIT-END): Likewise.
60835	* list.d (SYS::LIST-INIT-START): For out-of-range argument, signal
60836	  TYPE-ERROR instead of ERROR.
60837	(SYS::LIST-FE-INIT-END): Likewise.
60838	* sequence.d (valid_type): For an invalid sequence type, signal
60839	  TYPE-ERROR instead of ERROR.
60840	* defs2.lsp (recognizable-sequence-type-p): New function.
60841	* record.d (fehler_index): Add argument `limit'. For an invalid
60842	  index, signal TYPE-ERROR instead of ERROR.
60843	(test_index): Remove function.
60844	(record_up): Merge both checks of index into a single one.
60845	(structure_up): Likewise.
60846	(SYS::%STRUCTURE-REF): For an unbound slot, signal UNBOUND-SLOT
60847	  instead of error, and mention the slot's name in the error message.
60848	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): For an invalid
60849	  argument, signal TYPE-ERROR instead of ERROR.
60850	(keyword_test): For an invalid keyword, signal KEYWORD-ERROR
60851	  instead of ERROR.
60852	(CLOS::%SHARED-INITIALIZE): For an invalid arg count, signal
60853	  PROGRAM-ERROR instead of ERROR.
60854	(CLOS::%REINITIALIZE-INSTANCE): Likewise.
60855	(CLOS::%INITIALIZE-INSTANCE): Likewise.
60856	(CLOS::%MAKE-INSTANCE): Likewise.
60857	* eval.d (progv): For a constant, signal PROGRAM-ERROR instead of
60858	  ERROR.
60859	(get_closure): For a constant used as variable, signal PROGRAM-ERROR
60860	  instead of ERROR.
60861	(coerce_function): Allow all function names, not only symbols.
60862	(fehler_key_badkw): Fix GC safety bug in previous patch.
60863	(eval1): For an invalid operator, signal SOURCE-PROGRAM-ERROR
60864	  instead of ERROR. Tweak error message.
60865	(apply): Correct treatment of (SETF symbol) bound to an FFI
60866	  function. For an invalid function, signal TYPE-ERROR instead of
60867	  ERROR. Tweak error message.
60868	(fehler_apply_dotted): Signal PROGRAM-ERROR instead of ERROR.
60869	(funcall): Correct treatment of (SETF symbol) bound to an FFI
60870	  function. For an invalid function, signal TYPE-ERROR instead of
60871	  ERROR. Tweak error message.
60872	(interpret_bytecode_.svref_kein_index): Signal TYPE-ERROR instead
60873	  of ERROR.
60874	* control.d (FUNCTION): Tweak error message.
60875	(COMPILER-LET): For a constant, signal PROGRAM-ERROR instead of
60876	  ERROR.
60877	(SYSTEM::KEYWORD-TEST): For an invalid arg count, signal
60878	  PROGRAM-ERROR instead of ERROR. For an invalid keyword, signal
60879	  KEYWORD-ERROR instead of ERROR.
60880	* symbol.d (Symbol_function_checked): For a macro, signal
60881	  UNDEFINED-FUNCTION instead of ERROR.
60882	(SYS::%PUTD): For an invalid argument, signal TYPE-ERROR instead
60883	  of ERROR.
60884	* stream.d (fehler_bad_integer): Signal STREAM-ERROR instead of ERROR.
60885	(wr_ch_terminal1): Likewise.
60886	(fehler_str_in_adjusted): Likewise.
60887	(SYSTEM::MAKE-STRING-PUSH-STREAM): For invalid argument, signal
60888	  TYPE-ERROR instead of ERROR.
60889	(rd_ch_buff_in): Signal STREAM-ERROR instead of ERROR.
60890	(check_open_file_stream): Follow synonym streams, and return the
60891	  resulting stream. Signal TYPE-ERROR instead of ERROR.
60892	(FILE-POSITION, FILE-LENGTH): Adjust appropriately.
60893	* pathname.d (test_optional_host): Signal PARSE-ERROR instead of
60894	  ERROR.
60895	(fehler_thing): Signal TYPE-ERROR instead of ERROR.
60896	(PARSE-NAMESTRING): Signal PARSE-ERROR instead of ERROR.
60897	* intelem.d (BN_ueberlauf): Signal ARITHMETIC-ERROR instead of ERROR.
60898	* intlog.d (ASH): Likewise.
60899	* intmal.d (mal_ueberlauf): Likewise.
60900	* intdiv.d (fehler_exquo): Likewise.
60901	* lfloat.d (fehler_LF_toolong): Likewise.
60902
609031998-05-31  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60904
60905	* acspecific.m4 (AC_PROG_CXX): Do not add "-O" to $CXX if it is
60906	  already present.
60907
609081998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60909
60910	* stream.d (INTERACTIVE-STREAM-P): Check for stream first.
60911
609121998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60913
60914	* amiga.d: Assume <stdlib.h> is available.
60915	* fsubr.d (LISPSPECFORM_B): Assume ANSI C prototypes, remove support
60916	  for old C compilers.
60917	* subr.d (subr_norest_function_args, subr_rest_function_args):
60918	  Likewise.
60919	* genclisph.d (Lsuffix, ULsuffix, ULLsuffix, main): Likewise.
60920	* stream.d (redisplay_help, redisplay_line): Likewise.
60921	* unix.d (ioctl): Likewise.
60922
609231998-05-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60924
60925	* error.d (fehler_proper_list): New function.
60926	* lispbibl.d (fehler_proper_list): Declare it.
60927	* list.d (endp): Call it.
60928	* lispbibl.d (list_to_mv): Check for proper list.
60929
609301998-05-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60931
60932	* stream.d (fehler_input_stream, fehler_output_stream): New functions.
60933	(test_input_stream, test_output_stream, test_input_stream_args)
60934	(test_output_stream_args): New macros.
60935	(MAKE-BROADCAST-STREAM, MAKE-CONCATENATED-STREAM)
60936	(MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM): Use them.
60937
609381998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60939
60940	* array.d (fehler_subscript_range): Signal TYPE-ERROR instead of
60941	  ERROR. Two more arguments.
60942	(fehler_index_range): Signal TYPE-ERROR instead of ERROR. One more
60943	  argument.
60944	(test_subscripts, test_index, ROW-MAJOR-AREF, SYS::ROW-MAJOR-STORE)
60945	(SYS::SET-FILL-POINTER): Update.
60946	* list.d (elt_up): Signal TYPE-ERROR instead of ERROR.
60947	* charstrg.d (fehler_cmp_exclusive, fehler_cmd_exclusive): Signal
60948	  TYPE-ERROR instead of ERROR. One more argument.
60949	(test_index): Update.
60950
609511998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60952
60953	* eval.d (fehler_specialform, fehler_macro): Signal UNDEFINED-FUNCTION
60954	  instead of ERROR.
60955
609561998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60957
60958	* error.d (fehler_lambda_expression): New function.
60959	* lispbibl.d (fehler_lambda_expression): Declare it.
60960	* eval.d (coerce_function): Accept symbols, but reject lambda
60961	  expressions.
60962	(apply, funcall): Reject lambda expressions.
60963	* symbol.d (SYS::%PUTD): Likewise.
60964	* sequence.d (seq_boolop): Check that predicate is a function
60965	  designator, and signal an error if not.
60966
609671998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60968
60969	* eval.d (fehler_specialform, fehler_undefined): New functions.
60970	(eval1, apply, funcall, interpret_bytecode_:csf_unbound): Call them.
60971
609721998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60973
60974	* eval.d (make_STACK_env): Move macro from here...
60975	* lispbibl.d (make_STACK_env): ... to here.
60976	* predtype.d (COERCE): When creating a function, give it the right
60977	  declaration environment, not NIL.
60978
609791998-01-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60980
60981	* list.d (endp): Signal TYPE-ERROR instead of ERROR.
60982
609831998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60984
60985	* defs3.lsp: Do not export COMMONP and COMPILER-LET.
60986
609871998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60988
60989	* defs1.lsp (char-int-limit): New constant.
60990	* defs2.lsp (designator): New type. Export it.
60991	* charstrg.d (CHARACTER): Signal a TYPE-ERROR instead of ERROR.
60992	* predtype.d (COERCE): Likewise.
60993
609941998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
60995
60996	* sequence.d (valid_type): Return the desired length on the stack.
60997	(fehler_seqtype_length): New function.
60998	(MAKE-SEQUENCE, coerce_sequence, CONCATENATE, MAP, MERGE): Update.
60999	  Compare desired and actual length.
61000
610011998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61002
61003	* defs2.lsp (stream-input-element-type, stream-output-element-type)
61004	(read-sequence, write-sequence): New functions.
61005	  Export read-sequence, write-sequence.
61006	* defs3.lsp: Export read-sequence, write-sequence.
61007
610081998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61009
61010	* compiler.lsp (var): New slot `assignedp'.
61011	(*declaration-types*): New declaration `sys::read-only'.
61012	(process-declarations): Treat the `sys::read-only' declaration.
61013	  Return one more value.
61014	(*readonlys*): New variable.
61015	(ignore-check): Check whether `sys::read-only' declarations are
61016	  satisfied.
61017	(c-LAMBDABODY, c-LET/LET*, c-LOCALLY, c-MULTIPLE-VALUE-BIND)
61018	(c-SYMBOL-MACROLET, c-FUNCALL-INLINE): Bind *readonlys*.
61019	* macros2.lsp (with-input-from-string, with-open-file)
61020	(with-open-stream, with-output-to-string): Add READ-ONLY declaration.
61021
610221998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61023
61024	* conditio.lsp (parse-error, reader-error): New classes.
61025	  Export PARSE-ERROR and READER-ERROR.
61026	* init.lsp: Export PARSE-ERROR and READER-ERROR.
61027	* defs3.lsp: Likewise.
61028
610291998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61030
61031	* record.d (SLOT-VALUE): Return only the first return value of
61032	  SLOT-UNBOUND.
61033	(SYS::SET-SLOT-VALUE): Ignore the return values of SLOT-MISSING.
61034	(SLOT-BOUNDP, SLOT-MAKUNBOUND): Return only the first return value
61035	  of SLOT-MISSING.
61036
610371998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61038
61039	* lfloat.d (LF_decode): Declare a subexpression as possibly unused.
61040
610411998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>
61042
61043	* affi.d (C_mem_write): accept Foreign-Pointer as address.
61044	* rexx.d (C_rexx_put): fix ~S/~ typo.
61045	* pathname.d (AmigaOS C_shell): use NLstring instead of CRLFstring.
61046
610471998-08-24  Sam Steingold  <sds@gnu.org>
61048
61049	* init.lsp: Export *PRINT-RIGHT-MARGIN*.
61050	* defs3.lsp: Likewise.
61051
610521998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>
61053
61054	* rexx.d (C_rexx_put): :host argument stack arithmetic was
61055	  broken, rename variables to hopefully avoid confusion.
61056
610571998-08-14  Jörg Höhle  <hoehle@tzd.telekom.de>
61058
61059	* spvw.d (mymalloc): retry case not needed with !TYPECODES.
61060
610611998-08-05  Jörg Höhle  <hoehle@tzd.telekom.de>
61062
61063	* pathname.d, amiga.d (C_shell): return command exit code,
61064	  better signal handling under AmigaOS using SystemTags().
61065
610661998-08-12  Bruno Haible  <haible@ilog.fr>
61067
61068	* lispbibl.d (NO_TYPECODES): Do not define if alignment_long < 4.
61069
610701998-08-09  Bruno Haible  <haible@ilog.fr>
61071
61072	* spvw.d (copyright_notice): Bump date to 1998.
61073
610741998-08-09  Jörg Höhle  <hoehle@zeus.gmd.de>
61075	    Bruno Haible  <haible@ilog.fr>
61076
61077	* lispbibl.d (S_help_): Change definition in the case of NO_TYPECODES
61078	  so that it can be used as an initializer for a static variable in
61079	  gcc-2.5.8.
61080	* genclisph.d (main): Likewise.
61081
610821998-08-08  Jörg Höhle  <hoehle@tzd.telekom.de>
61083
61084	* lispbibl.d (define) TYPECODES is default for MC68000.
61085	* spvw.d (version_string) add !TYPECODES recognition.
61086	(retry_allocmemflag) not needed with !TYPECODES.
61087
610881998-08-05  Jörg Höhle  <hoehle@zeus.gmd.de>
61089
61090	* lispbibl.d (SIXBIT_TYPECODES): Fix a collision between
61091	  case_symbolwithflags and other typecodes, introduced by the
61092	  NO_TYPECODES patches.
61093	* spvw.d (speicher_laenge): Remove overlapping case values.
61094
610951998-08-05  Bruno Haible  <haible@ilog.fr>
61096
61097	* spvw.d (main): Leave more room between the executable and the heap,
61098	  for malloc(), if SUN4_29.
61099
611001998-08-05  Bruno Haible  <haible@ilog.fr>
61101
61102	* debug.d (SYS::%ROOM): Do not assume that the byte counts fit into
61103	  fixnums.
61104
611051998-08-05  Jörg Höhle  <hoehle@zeus.gmd.de>
61106
61107	* affi.d (affi_nonzerop): Fix typo: BN_positivep.
61108
611091998-08-03  Bruno Haible  <haible@ilog.fr>
61110
61111	* aclocal.m4 (CL_DYNLOAD): Check for const in dlsym declaration.
61112	* unixconf.h: Define DLSYM_CONST.
61113	* unix.d (dlsym): Use DLSYM_CONST.
61114
611151998-08-03  Bruno Haible  <haible@ilog.fr>
61116
61117	* makemake.in (NOASM): Do not define on Solaris/x86.
61118	(ASM_FILTER): Fix so it works on Solaris/x86.
61119
611201998-08-01  Bruno Haible  <haible@ilog.fr>
61121
61122	* lispbibl.d (C_CODE_ALIGNMENT): Define to 2 for HPPA.
61123	(make_machine_code, TheMachineCode): Special case for HPPA.
61124	* lispbibl.d (varobject_type): Workaround gcc-2.8.1 bug.
61125
611261998-08-01  Bruno Haible  <haible@ilog.fr>
61127
61128	* aclocal.m4 (CL_RUSAGE): Prefer RUSAGE_WHO_T="int" to
61129	  RUSAGE_WHO_T="enum __rusage_who".
61130
611311998-08-01  Bruno Haible  <haible@ilog.fr>
61132
61133	* makemake.in (DEEMA): Add _EMA_ in more places.
61134
611351998-08-01  Bruno Haible  <haible@ilog.fr>
61136
61137	* lispbibl.d: Accept __unix__ as an alternative for __unix.
61138
611391998-08-01  Bruno Haible  <haible@ilog.fr>
61140
61141	* clx/mit-clx/package.lsp: Shadow BOOLEAN and do not export it.
61142
611431998-07-31  Bruno Haible  <haible@ilog.fr>
61144
61145	* control.d (make_variable_frame): Do not call Car(NIL).
61146
611471998-07-16  Sam Steingold  <sds@goems.com>
61148
61149	* spvw.d, constsym.d: new symbol print_right_margin
61150	(ANSI CL's *print-right-margin*).
61151	* io.d (right_margin): New function.
61152	(klammer_zu, justify_end_eng, justify_end_weit): Use it.
61153	(pr_level): Turn into a macro.
61154	(write, write_to_string): add :right-margin.
61155	* subr.d (write, write_to_string): add :right-margin.
61156	* subrkw.d (write, write_to_string): add :right-margin.
61157	* constobj.d (version): bumped to 19980715.
61158	* compiler.lsp (subr-info): add :right-margin to write and
61159	  write_to_string;
61160	(c-eval-when-compile, compile-toplevel-form, finalize-coutput-file):
61161	  add `:right-margin 79' to the `write' calls.
61162
611631998-07-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61164
61165	* eval.d (get_closure): Do not call augment_decl_env with argument NIL.
61166
611671998-07-05  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61168
61169	* lispbibl.d (posfixnum_to_L, fixnum_to_L): Add a cast to avoid
61170	  compilation warnings.
61171	* aridecl.d (FN_value_mask): Likewise.
61172	* sfloat.d (SF_futruncate_SF): Likewise.
61173	* genclisph.d (main): Adjust.
61174
611751998-06-29  Sam Steingold  <sds@usa.net>
61176
61177	* compiler.lsp (compile-file): in ANSI CL, compile-file is
61178	  required to return 3 values.
61179
611801998-06-26  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61181
61182	Since keywordp is not called in funcall/apply/interpret_bytecode any
61183	more, it doesn't need to occupy a bit in the symbol flags.
61184	* lispbibl.d (keyword_bit_t, keyword_bit_f, keyword_bit_hf): Remove.
61185	(keywordp): Rewrite.
61186	* spvw.d (case_symbolwithflags): Remove cases with keyword_bit.
61187	* package.d (make_present): Do not set keyword_bit.
61188
611891998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61190
61191	* lispbibl.d: Define NO_TYPECODES by default for 32-bit machines.
61192	* configure: Do not pass option --with-wide to makemake.
61193	* makemake.in: Drop support for --with-wide.
61194	* clisp-link.in: Likewise.
61195	* _distmakefile: Likewise.
61196	* regexp/link.sh, regexp/Makefile.in: Likewise.
61197	* wildcard/link.sh, wildcard/Makefile.in: Likewise.
61198	* queens/link.sh, queens/Makefile: Likewise.
61199	* linuxlibc5/link.sh, linuxlibc5/Makefile: Likewise.
61200	* linuxlibc6/link.sh, linuxlibc6/Makefile: Likewise.
61201	* clx/mit-clx/link.sh, clx/mit-clx/Makefile.clisp: Likewise.
61202	* clx/new-clx/link.sh, clx/new-clx/Makefile: Likewise.
61203	* _clisp.c: Ignore option -W.
61204
612051998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61206
61207	* stream.d (finish_output_file): Fix typo.
61208	* makemake.in: For Win32, replace
61209	  "-I../ffcall/avcall -I../ffcall/callback" with "-I../callback".
61210	  For Unix, remove "-Iavcall -Icallback".
61211	* win32msvc/INSTALL: Simplify instructions.
61212
612131998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61214
61215	In the NO_TYPECODES model, add support for machine where the alignment
61216	of C functions is less than 4.
61217	* lispbibl.d (C_CODE_ALIGNMENT, log2_C_CODE_ALIGNMENT): New macros.
61218	(NO_TYPECODES): Remove CPU constraint.
61219	(make_machine_code): New macro.
61220	(TheMachineCode): New macro.
61221	(ThePseudofun): Use it.
61222	* spvw.d (verify_code_alignment): New macro.
61223	(fehler_code_alignment): New function.
61224	(init_symbol_functions): Call verify_code_alignment.
61225	* list.d (sublis_assoc): Use TheMachineCode instead of TheMachine.
61226	(SUBLIS, NSUBLIS): Use make_machine_code instead of make_machine.
61227	* stream.d (P): Likewise.
61228
612291998-06-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61230
61231	* lispbibl.d (Fsubr): Move the C code address from the recdata[] part
61232	  to the non-Lisp-object part.
61233	(fsubr_length): Reduce by 1.
61234	(fsubr_xlength): Define.
61235	(allocate_fsubr): Update accordingly.
61236	* misc.d (SYS::CODE-ADDRESS-OF): Drop TheMachine on fsubr->function.
61237	* eval.d (eval_fsubr): Likewise.
61238	* spvw.d (do_aktualisiere_record): If aktualisiere_fsubr_function is
61239	  TRUE and the object is an Fsubr, call the aktualisiere_fs_function
61240	  macro.
61241	(gar_col_normal): No need for aktualisiere_fsubr_function here.
61242	(gar_col_compact): Likewise.
61243	(move_conses): Likewise.
61244	(init_symbol_functions): Drop make_machine for fsubr->function.
61245	(memdump_reloc_header): Add support for relocation Fsubr code
61246	  addresses.
61247	(savemem): Likewise.
61248	(loadmem_aktualisiere): Do not look in old_fsubr_tab when updating
61249	  a machine pointer.
61250	(loadmem_aktualisiere_fsubr): New function.
61251	(loadmem_from_handle): During aktualisiere_varobjects or during
61252	  fast relocation phase, call loadmem_aktualisiere_fsubr.
61253
612541998-06-24  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
61255
61256	* spvw.d (make_ratio): Compute positivep(num) before doing the
61257	  memory allocation.
61258	* comptran.d (R_R_atanh_R_R): Do not call R_minusp on a non-GC-safe
61259	  object.
61260	* flo_rest.d (F_integer_decode_float_I_I_I): Likewise.
61261
612621998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61263
61264	* io.d (pr_orecord): Reindent.
61265	* constobj.d (fpcontagion_warn_string): Translate.
61266	* macros1.lsp (do/do*-expand): Likewise.
61267	* macros2.lsp (parenthesize-keys et al.): Likewise.
61268	* conditio.lsp (parenthesize-keys et al.): Likewise.
61269
612701998-06-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61271
61272	* arilev1c.d (eqv_loop_up, nand_loop_up): Fix typo in declaration.
61273
612741998-06-20  Gilbert Baumann  <unk6@rz.uni-karlsruhe.de>
61275
61276	* io.d (SYS::REAL-LISTEN): New function.
61277
612781998-06-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61279
61280	* lispbibl.d: Remove the last vestiges of STDWIN.
61281	* configure: Likewise.
61282	* clx/new-clx/clx.f, clx/new-clx/e2d.c: Likewise.
61283
612841998-06-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61285
61286	* io.d (pr_enter_1, pr_enter_2, pr_enter): New functions, generalizing
61287	  prin1a, prin1b, prin1.
61288	(pr_external_1, pr_external_2): Moved.
61289	(pr_instance): Moved.
61290	(pr_structure_default): New function.
61291	(SYS::PRINT-STRUCTURE): Call it through pr_enter.
61292	(prin1a, prin1b): Remove functions.
61293	(prin1): Use pr_enter.
61294
612951998-07-08  Sam Steingold  <sds@goems.com>
61296
61297	* array.d: fix the grammar of some English messages.
61298
612991998-05-31  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>
61300
61301	* macros2.lsp (with-output-to-string): The STRING parameter
61302	  now accept NIL as value (with the same meaning as if it were
61303	  unsupplied). {Old|New} behavior {was CLtL1|is ANSI} compliant.
61304
613051998-05-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61306
61307	* lispbibl.d: Rename immediate_type_p to gcinvariant_type_p.
61308	* spvw.d: Update.
61309
613101998-05-24  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>
61311
61312	* macros1.lsp (do/do*-expand): Barf on bad syntax.
61313
613141998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61315
61316	* dbxtypes.d: Remove file.
61317	* makemake.in: Update.
61318	* gettext/po/Makefile.devel (DSOURCES): Update.
61319
613201998-05-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61321
61322	* windows.d, wintext.d, winstat.d, winmain.d, winaux.d: Remove files.
61323	* lispbibl.d, genclisph.d, msdos.d, makemake.in, spvw.d, pathname.d,
61324	  stream.d, pseudofun.d, time.d: Remove support for Windows 3.1.
61325
613261998-05-20  Sam Steingold  <sds@usa.net>
61327
61328	* io.d (pr_orecord): print PATHNAME with #P syntax, as
61329	  per ANSI CL <PRINT-READABLY-BEHAVIOR:CLARIFY>;
61330
613311998-05-19  Sam Steingold  <sds@usa.net>
61332
61333	Implement the new :execute, :load-toplevel and :compile-toplevel
61334	keywords for eval-when as synonyms for eval, load and compile
61335	respectively.  The semantics is old.
61336	* constsym.d: add :execute, :load-toplevel and :compile-toplevel
61337	  keywords.
61338	* control.d (eval_when): handle :execute and :compile-toplevel.
61339	* init.lsp (%expand-form, (%put '%expand 'EVAL-WHEN)): handle
61340	  :compile-toplevel.
61341	* compiler.lsp (c-EVAL-WHEN): handle the three new keywords as
61342	  synonyms to the old symbols.
61343
613441998-05-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61345
61346	* control.d (SPECIAL-OPERATOR-P): Rename from SPECIAL-FORM-P.
61347	* eval.d (FUNTAB): Update.
61348	* compiler.lsp (funtab, subr-info): Update.
61349	(c-form-table, c-form, c-DIRECT-FUNCTION-CALL)
61350	(inline-callable-function-p, c-APPLY): Use SPECIAL-OPERATOR-P.
61351	(note-function-used): Generate a warning for SPECIAL-FORM-P.
61352	* init.lsp: Export both SPECIAL-OPERATOR-P and SPECIAL-FORM-P.
61353	(remove-old-definitions, %expand-form, defun): Use
61354	  SPECIAL-OPERATOR-P.
61355	* defs1.lsp (special-form-p): Define as an alias for
61356	  special-operator-p.
61357	* user2.lsp (fbound-string, describe): Use SPECIAL-OPERATOR-P.
61358	* trace.lsp (trace1): Use SPECIAL-OPERATOR-P.
61359	* defs3.lsp: Export SPECIAL-OPERATOR-P only.
61360
613611998-05-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61362
61363	* genclisph.d (main): Define sintB.
61364
613651998-05-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61366
61367	* clx/new-clx/clx.f: Update to use the new macro names.
61368
61369	* realtran.d (R_cos_sin_R_R): Shift a fixnum by oint_data_shift, not
61370	  oint_addr_shift.
61371
61372	New type encoding scheme NO_TYPECODES.
61373	* lispbibl.d (TYPECODES): Define if NO_TYPECODES is not defined.
61374	(oint_type_*, oint_addr_*, oint_data_*): Provide alternative
61375	  definitions for no TYPECODES.
61376	(machine_bias, subr_bias, varobject_bias, cons_bias, immediate_bias)
61377	(nonimmediate_bias_mask, read_label_type, immediate_object_p)
61378	(gcinvariant_object_p): New macros.
61379	(fixnum_type, sfloat_type, char_type, system_type, sign_bit_o)
61380	(bignum_bit_o, type_data_object, type_zero_oint, garcol_bit_o):
61381	  Provide alternative definitions.
61382	(varobject_alignment): Must be at least 4 if no TYPECODES.
61383	(active_bit, dynam_bit, svar_bit, NO_symbolflags): Define if no
61384	  TYPECODES.
61385	(constant_bit_f, special_bit_f, keyword_bit_f): New macros.
61386	(SPVW_MIXED): Define if no TYPECODES.
61387	(case_mut_*): New macros.
61388	(_case_structure, _case_stream): Provide alternative definitions.
61389	(intWCsize, uintWC, sintWC): Provide alternative definitions.
61390	(VAROBJECT_HEADER, header_flags, constant_bit_hf, special_bit_hf)
61391	(keyword_bit_hf): Provide alternative definitions.
61392	(varobject_type, lrecord_tfl, srecord_tfl, xrecord_tfl): New macros.
61393	(record_, record_type, record_flags, record_flags_*): Provide
61394	  alternative definitions.
61395	(LRECORD_HEADER, lrecord_, Lrecord, lrecord_length): New definitions.
61396	(SRECORD_HEADER, srecord_length, XRECORD_HEADER, xrecord_length)
61397	(xrecord_xlength): Provide alternative definitions.
61398	(Rectype_Sbvector, Rectype_Sstring, Rectype_Svector, Rectype_mdarray)
61399	(Rectype_bvector, Rectype_string, Rectype_vector, Rectype_Bignum)
61400	(Rectype_Lfloat, Rectype_Dfloat, Rectype_Ffloat, Rectype_Symbol): New
61401	  enum values.
61402	(char_int, bignum_, bignum_length, lfloat_, lfloat_length): Provide
61403	  alternative definitions.
61404	(sarray_, sbvector_, sstring_, svector_): Use LRECORD_HEADER.
61405	(sarray_length): Use lrecord_length.
61406	(iarray_, iarray_rank, iarray_flags, iarray_flags_*, Array_type)
61407	(Array_type_*): Provide alternative definitions.
61408	(Codevec): Use LRECORD_HEADER.
61409	(make_read_label, read_label_integer_p, make_machine, The*): Provide
61410	  alternative definitions.
61411	(consp, mconsp, atomp, matomp): Provide alternative definitions.
61412	(varobjectp, immediate_number_p): New macros.
61413	(symbolp, numberp, vectorp, simplep, array_simplep, simple_vector_p)
61414	(general_vector_p, simple_string_p, stringp, simple_bit_vector_p)
61415	(bit_vector_p, byte_vector_p, general_byte_vector_p, arrayp)
61416	(mdarrayp, if_recordp, closurep, instancep, orecordp, charp, subrp)
61417	(framepointerp): Provide alternative definitions.
61418	(machinep, read_label_p, systemp): New macros.
61419	(if_realp, if_rationalp, integerp, fixnump, posfixnump, bignump):
61420	  Provide alternative definitions.
61421	(posbignump): New macro.
61422	(ratiop, floatp, short_float_p, single_float_p, double_float_p)
61423	(long_float_p, complexp, positivep): Provide alternative definitions.
61424	(case_Rectype_*_above): New macros.
61425	(R_sign): Provide alternative definition.
61426	(FN_sign, BN_sign, RT_sign, SF_sign, FF_sign, DF_sign, LF_sign): New
61427	  macros.
61428	(same_sign_p, N_floatp, N_integerp, R_rationalp, R_floatp, R_minusp)
61429	(RA_integerp, RA_ratiop, I_bignump, I_fixnump): Provide alternative
61430	  definitions.
61431	(FN_positivep, BN_positivep, I_I_bignums_p): New macros.
61432	(sint8_p, sint16_p, uint32_p, sint32_p, uint64_p, sint64_p): Use
61433	  the new macros.
61434	(allocate_srecord, allocate_xrecord, subr_tab_ptr_as_object)
61435	(S_help_): Provide alternative definitions.
61436	(FB7..FB1, make_framepointer, topofframe, uTheFramepointer)
61437	(framecode, fcint): Provide alternative definitions.
61438	(framebottomword): Add third argument.
61439	(framebottomword, finish_frame): Provide alternative definitions.
61440	(SAVE_REGISTERS, dynamic_bind): Use finish_frame.
61441	(finish_entry_frame): Update.
61442	* genclisph.d: Update.
61443	(SP): Move the asm string outside of the printf string.
61444	* spvw.d (symbol_tab_ptr_as_object): Provide alternative definition.
61445	(mem): heapnr_from_type only if TYPECODES.
61446	(size_ffloat, size_dfloat): Provide alternative definitions.
61447	(speicher_laenge): Provide alternative type dispatch.
61448	(varobject_bytelength): Use TheVarobject instead of pointable.
61449	(in_old_generation): Fix parenthesizing inside macro.
61450	(gc_mark): Rewrite using macros. Provide alternative type dispatch.
61451	(pointer_as_object, pointer_was_object): Provide alternative
61452	  definitions.
61453	(walk_area_iarray): Rename from walk_area_array.
61454	(walk_area): Provide alternative definition.
61455	(alive): Provide alternative type dispatch.
61456	(gc_morris2, gc_morris3): Provide alternative body.
61457	(set_GCself): Provide alternative definition.
61458	(gc_sweep1_varobject_page): Some modifications if no TYPECODES.
61459	(aktualisiere, aktualisiere_varobject): Provide alternative
61460	  definitions.
61461	(build_old_generation_cache): Provide alternative type dispatch.
61462	(build_old_generation_cache:cache_at): Provide alternative
61463	  definition.
61464	(gar_col_normal): Remove unused variable.
61465	(gc_compact_from_varobject_page): Some modifications if no TYPECODES.
61466	(move_conses:aktualisiere): Provide alternative definition.
61467	(pointable_usable_test): Always TRUE if no TYPECODES.
61468	(bias_type_pointer_object): New macro.
61469	(allocate_TRUE, allocate_FALSE): Use it.
61470	(allocate_symbol, allocate_vector, allocate_bit_vector)
61471	(allocate_string, allocate_iarray): Provide alternative body.
61472	(allocate_srecord_, allocate_xrecord_): Provide alternative
61473	  definitions.
61474	(allocate_bignum, allocate_ffloat, allocate_dfloat, allocate_lfloat)
61475	(make_ratio, make_complex): Provide alternative body.
61476	(get_circ_mark, get_circ_unmark, subst, subst_circ_mark)
61477	(subst_circ_unmark): Provide alternative type dispatch.
61478	(map_heap_objects:varobject_typecode_at,cons_typecode_at)
61479	(with_typecode): Provide alternative definitions.
61480	(init_symbol_tab_1): Some modifications if no TYPECODES.
61481	(main): Initialize mem.heapnr_from_type only if TYPECODES.
61482	(main): If no TYPECODES, use only a 2^(oint_addr_len-1) address
61483	  range.
61484	(memflags): Include the settings of WIDE and TYPECODES.
61485	(memdump_header, savemem): No _cons_type etc. if no TYPECODES.
61486	(addr_mask, offset_pages_len): Fix for oint_addr_len==32.
61487	(loadmem_aktualisiere): Provide alternative type dispatch.
61488	(loadmem_from_handle): No _cons_type etc. if no TYPECODES.
61489	  Provide alternative for old_symbol_tab_o.
61490	* eval.d (eval1): Provide alternative type dispatch.
61491	* control.d (CONSTANTP): Provide alternative type dispatch.
61492	* stream.d (P): Provide alternative definition.
61493	* io.d (prin_object_dispatch, pr_orecord): Provide alternative type
61494	  dispatch.
61495	(pr_readlabel): Some modifications if no TYPECODES.
61496	* array.d (bit_up, test_displaced): Modify type dispatch.
61497	* hashtabl.d (hashcode2, hashcode3_atom, hashcode4_atom, sxhash_atom):
61498	  Provide alternative type dispatch.
61499	* charstrg.d (coerce_ss): Provide alternative type dispatch.
61500	* predtype.d (eql, equal, equalp, COMMONP, TYPE-OF, CLOS:CLASS-OF)
61501	(heap_statistics_mapper): Provide alternative type dispatch.
61502	* aridecl.d: Use sign_bit_o instead of vorz_bit_o if it applies to
61503	  fixnums or sfloats only.
61504	* intelem.d (I_to_UL, I_to_L, I_to_UQ, I_to_Q): Provide alternative
61505	  type dispatch. Use FN_sign, BN_sign where possible.
61506	  Use sign_bit_o instead of vorz_bit_o if it applies to fixnums only.
61507	* intlog.d (I_to_DS_n_): Use FN_sign.
61508	* intplus.d (I_I_plus_I, I_minus_I, I_I_minus_I): Use FN_sign.
61509	* intmal.d (I_I_mal_I): Use FN_sign.
61510	* sfloat.d (SF_decode): Use SF_sign.
61511	(RA_to_SF): Use RT_sign.
61512	* ffloat.d (RA_to_FF): Likewise.
61513	* dfloat.d (RA_to_DF): Likewise.
61514	* lfloat.d (LF_decode, LF_ftruncate_LF, LF_futruncate_LF)
61515	(LF_fround_LF, LF_minus_LF, LF_shorten_LF, LF_extend_LF)
61516	(LF_LF_plus_LF, LF_LF_minus_LF, LF_LF_mal_LF, LF_LF_durch_LF):
61517	  Use LF_sign. Twiddle sign bit only if SPVW_MIXED && TYPECODES.
61518	(RA_to_LF): Use RT_sign.
61519	* flo_konv.d: Use sign_bit_o instead of vorz_bit_o if it applies to
61520	  fixnums or sfloats only.
61521	* flo_rest.d (floatcase): Provide alternative definition.
61522	(LF_I_scale_float_LF): Provide alternative type dispatch.
61523	  Use LF_sign.
61524	(F_float_sign_F): Use SF_sign, FF_sign, DF_sign, LF_sign.
61525	* realelem.d (I_I_gleich): Use I_I_bignums_p.
61526	(R_signum_R): Use LF_sign.
61527	* constsym.d (LISPSYM_B): Provide alternative definition.
61528	* affi.d (affi_call_argsa, SYS::NZERO-POINTER-P): Provide alternative
61529	  type dispatch.
61530
615311998-05-12  Sam Steingold  <sds@usa.net>
61532
61533	* format.lsp (format-parse-cs, formatter-main-1): handle the ~//
61534	  format directive;
61535	(format-slash, format-get-symbol): new functions that do the job.
61536
615371998-05-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61538
61539	* stream.d (SOCKET-SERVER, SOCKET-STREAM-PEERNAME): Remove unused
61540	  variables.
61541
615421998-05-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61543
61544	* lispbibl.d (iarray_rank, Iarray_rank, iarray_flags, Iarray_flags)
61545	(iarray_flags_*): New macros.
61546	* lispbibl.d, genclisph.d, spvw.d, io.d, stream.d, array.d:
61547	* hashtabl.d, sequence.d, charstrg.d, predtype.d, foreign.d, affi.d:
61548	  Update.
61549
61550	* lispbibl.d (Array_type, Array_type_*): New macros.
61551	* io.d, array.d, predtype.d: Update.
61552
61553	* lispbibl.d (oint_symbolflags_shift #ifdef NO_symbolflags): Define
61554	  as oint_data_shift, not oint_addr_shift.
61555	* spvw.d (gc_markphase, aktualisiere_STACK): Conditionalize more
61556	  code #ifndef NO_symbolflags.
61557	* debug.d (print_stackitem): Likewise.
61558
61559	* spvw.d (memdump_header): Put _memflags right after _magic.
61560	(savemem, loadmem_from_handle): Update.
61561
61562	* spvw.d (pointer_as_object, pointer_was_object): New macros.
61563	(gc_compact_cons_page, gc_sweep1_varobject_page, aktualisiere)
61564	(gc_sweep2_varobject_page, aktualisiere_page)
61565	(gc_compact_from_varobject_page, gc_compact_from_cons_page): Use them.
61566
61567	* lispbibl.d (make_read_label, read_label_integer_p): New macros.
61568	(framepointerp): New macro, rename from stack_env_p.
61569	(systemp): Remove macro.
61570	* eval.d, control.d, io.d, debug.d: Update.
61571
61572	* eval.d (apply, funcall): Use abstract type test macros, and
61573	  improve the generated code a little bit.
61574
61575	* lispbibl.d (record_type, Record_type, record_flags, Record_flags)
61576	(record_flags_*, srecord_length, Srecord_length, xrecord_length)
61577	(xrecord_xlength, Xrecord_length, Xrecord_xlength): New macros.
61578	* lispbibl.d, genclisph.d, spvw.d, eval.d, io.d, stream.d:
61579	* hashtabl.d, record.d, predtype.d, foreign.d, affi.d: Update.
61580
61581	* spvw.d (do_aktualisiere_symbol, do_aktualisiere_svector)
61582	(do_aktualisiere_iarray, do_aktualisiere_record): New macros.
61583	(aktualisiere_*): Use them.
61584	(aktualisiere_iarray): Rename from aktualisiere_array.
61585
615861998-05-09  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61587
61588	* stream.d (fehler_terminal_raw): Define function only when needed.
61589
61590	* io.d (pr_readlabel, pr_framepointer): New functions, split out from
61591	  pr_system.
61592	(pr_system): Much smaller.
61593	(prin_object_dispatch): Distinguish system/read-label/framepointer
61594	  here.
61595
61596	* lispbibl.d (framecode): New macro.
61597	* lispbibl.d, spvw.d, eval.d, control.d, eval.d: Use it.
61598
61599	* lispbibl.d (fcint): New type.
61600	* eval.d: Use it.
61601
61602	* lispbibl.d (msymbolp, mnumberp, mvectorp, m_simple_vector_p)
61603	(m_general_vector_p, m_simple_string_p, mstringp)
61604	(m_simple_bit_vector_p, m_bit_vector_p, marray1p, if_mrecordp)
61605	(mclosurep, minstancep, mstructurep, mstreamp, morecordp, mcharp)
61606	(msubrp, mintegerp, mfixnump, mposfixnump, mbignump, mratiop)
61607	(mfloatp, m_short_float_p, m_single_float_p, m_double_float_p)
61608	(m_long_float_p, mcomplexp, mpositivep, N_mfloatp, N_mintegerp)
61609	(R_mrationalp, R_mfloatp, R_mminusp, RA_mintegerp, RA_mratiop)
61610	(I_mbignump, I_mfixnump, N_mrealp, N_mcomplexp): Remove macros.
61611	* genclisph.d: Likewise.
61612	* spvw.d, eval.d, pathname.d, stream.d, io.d, array.d, hashtabl.d:
61613	* list.d, package.d, record.d, sequence.d, charstrg.d, debug.d:
61614	* error.d, misc.d, predtype.d, symbol.d, rexx.d, foreign.d:
61615	* intdiv.d, realelem.d, realtran.d, compelem.d, comptran.d: Update.
61616
61617	* lispbibl.d (if_vectorp, if_simplep): Remove macros.
61618	* array.d, predtype.d: Update.
61619
61620	* lispbibl.d: Document that any of the type test macros can cause
61621	  multiple evaluation of their argument.
61622	* predtype.d: Do not do type tests directly on popSTACK().
61623
61624	* lispbibl.d (allocate_closure, allocate_cclosure_copy): New macros.
61625	* eval.d (get_closure, interpret_bytecode_): Use them.
61626	* io.d (GET-MACRO-CHARACTER): Use them.
61627	* record.d (SYS::%MAKE-CLOSURE)
61628	(SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): Use them.
61629
61630	* spvw.d (walk_area_cons, walk_area_symbol, walk_area_array)
61631	(walk_area_svector, walk_area_svector): New macros.
61632	(walk_area): Simplify, use them.
61633
61634	* lispbibl.d (byte_vector_p, general_byte_vector_p): New macros.
61635	* genclisph.d: Likewise.
61636	* stream.d (test_n_bytes_args): Use them.
61637	* sequence.d (get_seq_type): Likewise.
61638	* affi.d (SYS::MEM-READ, SYS::MEM-WRITE): Likewise.
61639	* predtype.d (equalp): Likewise.
61640	* foreign.d (convert_to_foreign): Likewise.
61641
61642	* lispbibl.d (mdarray_type): Rename from array_type.
61643	(case_mdarray): Rename from case_array1.
61644	(Iarray): Rename from Array.
61645	(TheIarray): Rename from TheArray.
61646	(mdarrayp): Rename from array1p.
61647	(allocate_iarray): Rename from allocate_array.
61648	(iarray_displace_check): Rename from array1_displace_check.
61649	* genclisph.d, spvw.d, stream.d, io.d, array.d, hashtabl.d, sequence.d,
61650	  charstrg.d, predtype.d, foreign.d, affi.d: Update.
61651
61652	* lispbibl.d: Replace documentation of type encoding by new one.
61653
61654	* lispbibl.d: Move the code defining SPVW_* before the definition of
61655	  the case_* macros.
61656
61657	* lispbibl.d (uintWC, sintWC): New types, used for bignum length,
61658	  lfloat length, iarray rank.
61659	(uintWCoverflow): New macro, replaces uintCoverflow.
61660	(arrayrank_limit_1): Change value.
61661	* intelem.d (NUDS_to_I, UDS_to_I): Lengths fit in an uintWC, not uintC.
61662	* intlog.d (I_I_ash_I, I_logcount_I, I_integer_length)
61663	(I_integer_length_I): Likewise.
61664	* intplus.d (DS_1_plus, DS_minus1_plus, I_I_plus_I, I_I_minus_I):
61665	  Likewise.
61666	* intmal.d (UDS_UDS_mal_UDS): Likewise.
61667	* lfloat.d (LF_LF_durch_LF, LF_sqrt_LF, LF_to_I, I_to_LF, RA_to_LF):
61668	  Likewise.
61669	* flo_rest.d (lf_len_extend, F_float_digits_I, F_float_precision_I)
61670	(F_integer_decode_float_I_I_I): Likewise.
61671	* realtran.d (pi_F_float_F, lf_len_extend2): Likewise.
61672	* realrand.d (I_random_I): Likewise.
61673	* intread.d (DIGITS_to_I): Likewise.
61674	* lisparit.d (mal_10_plus_x, FLOAT-DIGITS, SYS::%SET-LONG-FLOAT-DIGITS)
61675	(log_digits): Likewise.
61676	* pathname.d (OPEN): Likewise.
61677
61678	* constsym.d: Remove LISPSYM_B. Rename LISPSYM_C to LISPSYM_B.
61679	  Rename LISPSYM_D to LISPSYM_C. Rename LISPSYM_E to LISPSYM_D.
61680	* spvwtabs.d (symbol_tab_data): Update.
61681	* spvw.d (init_symbol_tab_2): Update.
61682
61683	* lispbibl.d: Reorganize declarations of Cons, Ratio, Complex.
61684	(Rectype_*): Now enum values.
61685	(rectype_limit): New enum value.
61686	(Record_length): Use rectype_limit.
61687	* spvw.d (speicher_laenge, speicher_laenge_record): Use rectype_limit.
61688	(walk_area_record, aktualisiere_varobject): Likewise.
61689	(build_old_generation_cache, allocate_srecord_, allocate_xrecord_):
61690	  Likewise.
61691	* predtype.d (equalp): Likewise.
61692	(COMMONP): Put #if around "case Rectype_*".
61693
61694	* spvw.d (gc_mark): Start macroizing this function.
61695
61696	If SPVW_MIXED, put Ratio and Complex among the Varobjects.
61697	* lispbibl.d (_case_ratio, _case_complex): New macros (ugly).
61698	(case_pair): New macro.
61699	(Rectype_Ratio, Rectype_Complex): New enum values.
61700	(ratio_, complex_): Conditionally add a XRECORD_HEADER.
61701	* genclisph.d: Update.
61702	* spvw.d (MM_TYPECASES): Update.
61703	(gc_mark, walk_area, alive, gc_morris2, gc_morris3): Use case_pair.
61704	(aktualisiere, main, loadmem_aktualisiere): Likewise.
61705	(make_ratio, make_complex): Implement if SPVW_MIXED.
61706	(subst, subst_circ_mark, subst_circ_unmark): Do not use case_record.
61707	* predtype.d (enum_hs_ratio, enum_hs_complex): Now unconditional.
61708	(heap_statistics_mapper): Update.
61709	* constobj.d: Update.
61710
61711	* lispbibl.d (make_machine): New macro.
61712	(nullobj): Use it.
61713	* genclisph.d, spvw.d, list.d: Update.
61714
61715	* lispbibl.d (bignum_length, Bignum_length): New macros.
61716	* lispbibl.d, genclisph.d, spvw.d, stream.d, hashtabl.d, predtype.d:
61717	* intelem.d, intlog.d, intcomp.d, intplus.d, flo_rest.d, realelem.d:
61718	* realtran.d: Update.
61719
61720	* lispbibl.d (lfloat_length, Lfloat_length): New macros.
61721	* spvw.d, predtype.d, lfloat.d, flo_rest.d, realelem.d, realtran.d:
61722	* compelem.d, lisparit.d: Update.
61723
61724	* lispbibl.d (sarray_length, Sarray_length): New macros.
61725	* lispbibl.d, array.d: Update.
61726
61727	* lispbibl.d (sbvector_length, Sbvector_length): New macros.
61728	* spvw.d, io.d, array.d, record.d: Update.
61729
61730	* lispbibl.d (sstring_length, Sstring_length): New macros.
61731	* spvw.d, io.d, pathname.d, stream.d, array.d, charstrg.d, rexx.d:
61732	  Update.
61733
61734	* lispbibl.d (svector_length, Svector_length): New macros.
61735	* spvw.d, eval.d, control.d, io.d, array.d, hashtabl.d, package.d:
61736	* debug.d, error.d, predtype.d, rexx.d, foreign.d, affi.d: Update.
61737
617381998-05-09  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>
61739
61740	* user1.lsp: move *PROMPT-WITH-PACKAGE* from SYS to LISP,
61741	  and export it
61742
617431998-05-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61744
61745	* ffcall: Add support for DEC Alpha running Linux (libc6): Change all
61746	  ".rdata" in assembler output to ".data".
61747
617481998-05-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61749
61750	* socket.d: Do not declare connect() when using glibc2.
61751	* aclocal.m4 (CL_TCPCONN): Allow setsockopt to be declared with
61752	  socklen_t = unsigned int.
61753
617541998-05-08  Sam Steingold  <sds@usa.net>
61755
61756	* constsym.d (*floating-point-contagion-ansi*): New variable.
61757	* constobj.d (fpcontagion_warn_string): Change wording.
61758	* flo_rest.d (warn_floating_point_contagion): Change appropriately.
61759	(GEN_F_op2, GEN_LF_op2_0): Implement ANSI compliant float contagion.
61760	* realelem.d (R_R_contagion_R): Likewise.
61761	* lisparit.d (init_arith): Initialize *floating-point-contagion-ansi*.
61762
617631998-05-08  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>
61764
61765	* pathname.d (ensure_directories_exist): Change arglist from
61766	  "&optional verbose" to "&key verbose"
61767	* subr.d: Likewise.
61768	* subrkw.d: Add entry for ensure_directories_exist.
61769	* constsym.d: Add the keyword :VERBOSE.
61770
617711998-05-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61772
61773	* aclocal.m4 (CL_RUSAGE): Check for getrusage declaration. Define
61774	  RUSAGE_WHO_T.
61775	* unixconf.h.in (RUSAGE_WHO_T): New macro.
61776	* unix.d (getrusage): Change declaration.
61777
617781998-05-05  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61779
61780	* aclocal.m4 (CL_DYNLOAD): Check for dlerror declaration.
61781	* configure.in, unixconf.h.in: CL_DYNLOAD sets DLERROR_CONST.
61782	* unix.d (dlerror): Use DLERROR_CONST in the declaration.
61783
617841997-05-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61785
61786	* socket.d (create_server_socket): Avoid an EADDRINUSE error in some
61787	  harmless cases.
61788	(setsockopt): Declare.
61789
617901998-05-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61791
61792	* init.lsp: Load amigasock.lsp by default.
61793
617941998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61795
61796	* predtype.d (CLASS-OF): Change so that (class-of (sys::make-anode))
61797	  returns the class STRUCTURE-OBJECT instead of the class T.
61798
617991998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61800
61801	* modules/bindings/linux/linux.lsp: Make LINUX package case sensitive.
61802	(fd_isset): Use lisp:floor, not linux:floor.
61803	(EXIT_SUCCESS): Set to 0.
61804
618051998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61806
61807	* compiler.lsp (c-form): Respect NOTINLINE declarations on macros.
61808
618091998-04-25  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61810
61811	* flo_rest.d (warn_floating_point_contagion): New function.
61812	(GEN_F_op2): Warn when floating point contagion occurs.
61813	* realelem.d (R_R_contagion_R): Likewise.
61814	* constsym.d (*warn-on-floating-point-contagion*): New variable.
61815	* lisparit.d (init_arith): Initialize it.
61816	(init_arith): Initialize *inhibit-floating-point-underflow* here,
61817	  not in set_lf_digits().
61818	* constobj.d (fpcontagion_warn_string): New.
61819
618201998-04-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61821
61822	* makemake.in: Rename bindings/linux to bindings/linuxlibc5.
61823	* bindings/linuxlibc6: New module.
61824
618251998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61826
61827	* conditio.lsp (floating-point-inexact)
61828	(floating-point-invalid-operation): New classes.
61829	* init.lsp: Export their names.
61830	* defs3.lsp: Likewise.
61831
618321998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61833
61834	* clos.lsp: Export CLOS:METHOD.
61835	(method): New structure class.
61836	(standard-method): Inherit from it.
61837	* init.lsp: Export CLOS:METHOD.
61838	* defs3.lsp: Likewise.
61839
618401998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61841
61842	* predtype.d (TYPE-OF, CLASS-OF): Use CLOS::CLOSCLASS instead of
61843	  CLOS::CLASS.
61844	* record.d (fehler_keine_klasse): Use CLOS:CLASS.
61845	* clos.lsp (find-class, setf find-class, ensure-class): Use
61846	  CLOS::CLOSCLASS instead of CLOS::CLASS.
61847	* type.lsp (typep, canonicalize-type, type-expand-1): Likewise.
61848	* user2.lsp (apropos, describe): Likewise.
61849	* compiler.lsp (c-TYPEP): Likewise.
61850	* init.lsp: Export clos:class.
61851	* defs3.lsp: Likewise.
61852
618531998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61854
61855	* record.d (CLOS::STRUCTURE-OBJECT-P): Rename from
61856	  CLOS::STRUCTURE-INSTANCE-P.
61857	(COPY-STRUCTURE): Use type STRUCTURE-OBJECT instead of STRUCTURE.
61858	* io.d (print_structure): Likewise.
61859	* eval.d: (FUNTAB): Rename CLOS::STRUCTURE-INSTANCE-P to
61860	  CLOS::STRUCTURE-OBJECT-P.
61861	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
61862	(c-typep-alist1): Likewise.
61863	(c-typep-alist2): Remove type STRUCTURE.
61864	* type.lsp (CLOS:STRUCTURE-OBJECT): Rename CLOS::STRUCTURE-INSTANCE-P
61865	  to CLOS::STRUCTURE-OBJECT-P.
61866	(STRUCTURE): Remove builtin type.
61867	(subtypep): Remove type STRUCTURE.
61868	* defstruc.lsp (defstruct): All structure types except STRUCTURE-OBJECT
61869	  inherit from STRUCTURE-OBJECT.
61870	(structure-object): New structure class.
61871	* constobj.d (class_structure_types): Update accordingly.
61872	* clos.lsp (<structure-object>): Update initial value.
61873	(compute-dispatch): Rename CLOS::STRUCTURE-INSTANCE-P to
61874	  CLOS::STRUCTURE-OBJECT-P.
61875	* init.lsp: Export STRUCTURE-OBJECT.
61876	* defs3.lsp: Likewise.
61877
618781998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61879
61880	* io.d (print_structure): New function, doing the bulk of pr_structure.
61881	(pr_structure): Call it.
61882	(pr_external_1): Do respect *print-circle*.
61883	* defstruc.lsp (clos::defstruct-remove-print-object-method): One more
61884	  hook for CLOS.
61885	(defstruct): Implement option :PRINT-OBJECT. Options :PRINT-FUNCTION
61886	  and :PRINT-OBJECT both cause a PRINT-OBJECT method to be installed.
61887	* clos.lsp (defstruct-remove-print-object-method): New function.
61888	(class, standard-method): Use PRINT-OBJECT methods instead of
61889	  :PRINT-FUNCTION option.
61890	(built-in-class, slotted-class, structure-class, standard-class):
61891	  Drop :PRINT-FUNCTION option.
61892	(print-class, print-std-method): Lose third argument.
61893	(initialize-instance structure-class): Drop print-function
61894	  inheritance hack.
61895	* init.lsp: CLOS is not optional any more.
61896	* conditio.lsp (restart): Use :PRINT-OBJECT option instead of
61897	  :PRINT-FUNCTION option.
61898	(print-restart): Lose third argument.
61899
619001998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61901
61902	* defs3.lsp: Do not export *evalhook*, *applyhook*, evalhook, applyhook.
61903
619041998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61905
61906	* constsym.d (set): Rename SET to SYS::SET-SYMBOL-VALUE.
61907	* places.lsp (SYMBOL-VALUE): Use SYS::SET-SYMBOL-VALUE.
61908	  SET is a deprecated alias.
61909	* defs1.lsp (copy-symbol): Use SYS::SET-SYMBOL-VALUE.
61910	* defs2.lsp (define-symbol-macro): Likewise.
61911	* affi1.lsp (open-library): Likewise.
61912	* macros1.lsp (defvar, defparameter): Likewise.
61913	* compiler.lsp (funtab): Likewise.
61914	(subr-info): Add SYS::SET-SYMBOL-VALUE.
61915	(*deprecated-functions*): New variable.
61916	(note-function-used): New function.
61917	(c-GLOBAL-FUNCTION-CALL): Call it.
61918	(c-FUNCTION): Call it.
61919	(compile-file): Initialize *deprecated-functions*. Warn about the
61920	  use of deprecated functions.
61921
619221998-04-18  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61923
61924	* type.lsp (CLOS:GENERIC-FUNCTION): New builtin type.
61925	(subtypep): Treat it.
61926	* compiler.lsp (c-typep-alist1): Treat it.
61927	* clos.lsp: Export CLOS:GENERIC-FUNCTION.
61928	(<generic-function>): New variable, new class CLOS:GENERIC-FUNCTION.
61929	* init.lsp: Export CLOS:GENERIC-FUNCTION.
61930	* defs3.lsp: Likewise.
61931
619321998-04-17  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61933
61934	* constsym.d (copy_structure): Rename SYS::%COPY-STRUCTURE to
61935	  COPY-STRUCTURE.
61936	* defstruc.lsp (ds-make-copier): Likewise.
61937	* compiler.lsp (funtab, subr-info, c-DIRECT-FUNCTION-CALL): Likewise.
61938	* init.lsp: Export COPY-STRUCTURE.
61939	* defs3.lsp: Likewise.
61940
619411998-04-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61942
61943	* defmacro.lsp (make-macro-expansion): Change scope of the block to
61944	  include only the body, not the lambda list.
61945	* macros2.lsp (deftype): Likewise.
61946
619471998-04-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61948
61949	* debug.d (read_form): Withdraw the clear-input/listen hack, use
61950	  interactive-stream-p instead. After reading a form, clear input
61951	  only upto a newline.
61952	* lispbibl.d (interactive_stream_p): New declaration.
61953	* user1.lsp (break-loop): Do (clear-input *debug-io*) upon entry
61954	  of the break loop.
61955
619561998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61957
61958	* type.lsp (type-expand-1, type-expand): New functions.
61959	* user2.lsp (describe): Give a hint for DEFTYPEd types.
61960
619611998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61962
61963	* type.lsp (CONS): New composite type specifier.
61964	(canonicalize-type): Expand NUMBER to (OR REAL COMPLEX).
61965	(canonicalize-type): Simplify (AND type), (OR type).
61966	(subtypep): If type2 = (OR), replace it by NIL. For numbers, improve
61967	  the fallback case. Treat the composite CONS type.
61968	* compiler.lsp (c-typep-alist3): New composite type specifier CONS.
61969	* type.tst: Replace '(cons symbol) by '(symbol cons).
61970
619711998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61972
61973	* defstruc.lsp (defstruct): Compare slot names using :test #'string=
61974	  :key #'symbol-name, not :test #'eq.
61975
619761998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61977
61978	* conditio.lsp (arithmetic-error, cell-error, unbound-slot, type-error)
61979	(package-error, print-not-readable, stream-error, file-error)
61980	(simple-condition): Use non-exported symbols as slot names.
61981
619821998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61983
61984	* clos.lsp (compute-applicable-methods): Turn into a generic
61985	  function.
61986
619871998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61988
61989	* compiler.lsp (compile-file): Perform more merge-pathnames
61990	  operations.
61991	(compile-file-pathname): Likewise. Add &allow-other-keys.
61992
619931998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61994
61995	* clos.lsp (analyze-method-description): Allow class objects as
61996	  parameter specializers.
61997
619981998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
61999
62000	* init.lsp: Remove an unnecessary copy of the walker code.
62001
620021998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62003
62004	* control.d (case): New special form.
62005	* init.lsp (%expand-form): Treat it.
62006	(%expand-case): New function.
62007	* macros1.lsp (case): Put the macro definition on the property list.
62008	* compiler.lsp (c-CASE): Now a special form handler.
62009
620101998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62011
62012	* array.d (copy_sbvector): New function.
62013	* lispbibl.d (copy_sbvector): Declare it.
62014	* record.d (SYS::GENERIC-FUNCTION-EFFECTIVE-METHOD-FUNCTION): New
62015	  function.
62016	* compiler.lsp (c-LAMBDABODY): A generic function dispatch code
62017	  ends with (RETGF) and needs only one value.
62018	* clos.lsp (analyze-method-description): Add check for
62019	  CALL-NEXT-METHOD called with arguments.
62020	(slow-funcall-gf): Return the effective method, do not call it.
62021	(finalize-fast-gf): No need to pass the arguments to
62022	  initial-funcall-gf.
62023	(initial-funcall-gf): Just return the gf, do not apply it to the args.
62024	(compute-dispatch): Return the effective method, do not call it.
62025	(%call-next-method): New function.
62026
620271998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62028
62029	* bytecode.d (cod_skip_retgf, cod_funcall_skip_retgf): New byte codes.
62030	(cod_store8, cod_store9): Remove.
62031	* eval.d (interpret_bytecode_): Implement the new bytecodes.
62032	* compiler.lsp (instruction-table): New instructions SKIP&RETGF and
62033	  FUNCALL&SKIP&RETGF.
62034	(short-code-base, short-code-opsize, short-code-ops): Update for
62035	  remove store8, store9.
62036	(traverse-anode): RETGF is like a barrier.
62037	(simplify): RETGF needs one value only.
62038	(SP-depth): RETGF returns, like RET.
62039	(insert-combined-LAPs): Combine SKIP and RETGF. Combine FUNCALL and
62040	  SKIP and RETGF.
62041
620421998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62043
62044	* constobj.d (version): New bytecode version.
62045	(old_version): Remove.
62046	* misc.d (SYS::VERSION): Drop test for O(old_version).
62047	* package.d (SYS::OLD-MAKE-PACKAGE, SYS::OLD-%IN-PACKAGE)
62048	(SYS::OLD-IN-PACKAGE): Remove backward compatibility hacks.
62049	* subrkw.d (old_make_package, old_pin_package, old_in_package):
62050	  Likewise.
62051	* debug.d (SYS::%ROOM): Rename from SYS::OLD-ROOM.
62052	* user2.lsp (room): Call it.
62053	* eval.d (FUNTAB): Replace old_make_package, old_pin_package,
62054	  old_in_package by the new make_package, pin_package, in_package.
62055	  Remove old_room.
62056	* compiler.lsp (funtab): Likewise.
62057
620581998-04-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62059
62060	* list.d (BUTLAST, NBUTLAST): Signal an error if len==0 and dotted.
62061
620621998-04-12  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62063
62064	* array.d (ARRAY-DISPLACEMENT): New function.
62065	* init.lsp, defs3.lsp: Export it.
62066
620671998-04-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62068
62069	* lispbibl.d (conditiontype): New condition types
62070	  source_program_error and keyword_error.
62071	* genclisph.d (conditiontype): Likewise.
62072	* constsym.d (simple-source-program-error, simple-keyword-error):
62073	  Likewise.
62074	* error.d (end_error): Treat keyword_error.
62075	* eval.d (parse_dd, get_closure, eval1, eval_fsubr)
62076	(fehler_eval_zuwenig, fehler_eval_zuviel, fehler_eval_dotted):
62077	  Emit source_program_error instead of program_error.
62078	(fehler_key_unpaarig, fehler_key_zuviel, funcall_iclosure)
62079	(fehler_apply_zuviel, fehler_apply_zuwenig): Emit program_error
62080	  instead of error.
62081	(interpret_bytecode_.cod_mvcall): Likewise.
62082	(fehler_key_notkw): Emit keyword_error instead of type_error.
62083	(fehler_key_badkw): Emit keyword_error instead of error.
62084	* control.d (fehler_funsymbol, FUNCTION, check_setq_body)
62085	(fehler_docstring, make_variable_frame, COMPILER-LET, fehler_funspec)
62086	(MACROLET, COND, RETURN-FROM, TAGBODY, GO, DECLARE, PARSE-BODY):
62087	  Emit source_program_error instead of program_error.
62088	(MULTIPLE-VALUE-CALL, APPLYHOOK): Emit program_error instead of
62089	  error.
62090	* foreign.d (FOREIGN-CALL-OUT): Emit program_error instead of error.
62091	* conditio.lsp (source-program-error, keyword-error)
62092	(simple-source-program-error, simple-keyword-error): New condition
62093	  types. Pass them to %defclcs.
62094	(define-condition, handler-case, restart-bind, expand-restart-case):
62095	  Emit source-program-error instead of program-error.
62096	* clos.lsp (with-slots, with-accessors, defclass)
62097	(analyze-method-description, defmethod, analyze-defgeneric)
62098	(analyze-defgeneric-lambdalist, analyze-generic-fundefs):
62099	  Emit source-program-error instead of program-error.
62100	(slow-funcall-gf, do-defgeneric): Emit program-error instead of
62101	  error.
62102	* affi1.lsp (mlibcall): Emit source-program-error instead of
62103	  program-error.
62104	* defmacro.lsp (macro-call-error, analyze-aux, analyze-rest, analyze1)
62105	(remove-env-arg, make-macro-expansion): Emit source-program-error
62106	  instead of program-error.
62107	* defs2.lsp (defpackage, define-symbol-macro): Emit
62108	  source-program-error instead of program-error.
62109	(check-not-special-variable-p): Emit program-error instead of error.
62110	* defstruc.lsp (ds-symbol-or-error, defstruct): Emit
62111	  source-program-error instead of program-error.
62112	* foreign1.lsp (check-symbol, def-c-var, element, deref, slot, cast)
62113	(typeof): Emit source-program-error instead of program-error.
62114	* init.lsp (%the-environment-error, %expand-form, %expand-list)
62115	(%expand-lambda, %expand-lambdalist, %expand-varspez)
62116	(%expand-varspez*, %expand-fundefs-1, defun, do): Emit
62117	  source-program-error instead of program-error.
62118	* macros1.lsp (defvar, defparameter, defconstant, do/do*-expand)
62119	(psetq, case, ifify, cond): Emit source-program-error instead of
62120	  program-error.
62121	* macros2.lsp (typecase, deftype): Emit source-program-error instead
62122	  of program-error.
62123	* macros3.lsp (expand-LETF*, expand-LETF): Emit source-program-error
62124	  instead of program-error.
62125	* places.lsp (get-setf-method-multiple-value, get-setf-method)
62126	(define-setf-method, defsetf, psetf, define-modify-macro, setf)
62127	(shiftf, (setf apply), (setf funcall)): Emit source-program-error
62128	  instead of program-error.
62129	* trace.lsp (trace1, untrace1): Emit source-program-error instead of
62130	  program-error.
62131
621321998-04-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62133
62134	* constobj.d (type_peektype, type_rexx_host): Use BOOLEAN instead of
62135	(MEMBER NIL T).
62136	* format.lsp (format): Likewise.
62137	* clx.lsp (boolean): Remove definition.
62138
621391998-04-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62140
62141	* lispbibl.d: Port to powerpc-apple-mklinux.
62142	  Add a verification for oint_addr_mask.
62143
621441998-04-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62145
62146	* aclocal.m4 (CL_FPU_CONTROL): New macro.
62147	* configure.in: Call it.
62148	* unixconf.h.in: New macro HAVE_SETFPUCW.
62149	* unixaux.d: Set __fpu_control only if __setfpucw() doesn't exist.
62150	* spvw.d (main): Call __setfpucw() if it exists.
62151
621521998-04-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62153
62154	* compiler.lsp (EQL=EQ): Do not use fixnump.
62155
621561998-04-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62157
62158	* init.lsp: Export BOOLEAN.
62159	* defs3.lsp: Likewise.
62160	* type.lsp (TYPE-SYMBOL, SUBTYPEP): Treat BOOLEAN.
62161	* compiler.lsp (*declaration-types*, c-typep-alist2): Likewise.
62162	* predtype.d (TYPE-OF): (type-of 't) returns BOOLEAN.
62163	* user2.lsp (describe): Adapt for TYPE-OF change.
62164
621651998-04-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62166
62167	* type.lsp (%the): Instead of typep, use near-typep, which returns T
62168	  for a read-label.
62169
621701998-03-24  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62171
62172	* compiler.lsp (var): New slot `for-value-usedp'.
62173	(c-VAR): Set it.
62174	(ignore-check): Use it, instead of `usedp'.
62175	(bind-fixed-var-1, process-fixed-var-list, bind-movable-var)
62176	(c-FLET, c-LABELS, c-GENERIC-FLET, c-GENERIC-LABELS): Initialize it.
62177
621781998-03-24  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62179
62180	* io.d (princ_up): Bind *PRINT-READABLY* to NIL.
62181
621821998-03-23  Jörg Höhle  <Joerg.Hoehle@gmd.de>
62183
62184	* compiler.lsp (c-IF): No extra JMP if no else part.
62185
621861998-03-16  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62187
62188	* pathname.d (OPEN): For the :element-type argument, allow deftype'd
62189	  type specifiers. Check their validity using SUBTYPEP and
62190	  SYS::SUBTYPEP-INTEGER.
62191
621921998-03-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62193
62194	* macros2.lsp (space): Call VALUES-LIST explicitly.
62195	* user2.lsp (%space): No need to return values.
62196
621971998-03-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62198
62199	* io.d (%DEFIO): New function.
62200	(SET-MACRO-CHARACTER): If function is a dispatch-reader function,
62201	  unpack it.
62202	(GET-MACRO-CHARACTER): For a dispatch macro character, return a
62203	  dispatch-reader function.
62204	* defs2.lsp (dispatch-reader): New function. Call %defio.
62205
622061998-03-12  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62207
62208	* loop.lsp (expand-loop): Emit the REPEAT decrement before its
62209	  end test, not afterward.
62210	* loop.tst: A new test.
62211
622121998-03-11  Pierpaolo Bernardi  <bernardp@cli.di.unipi.it>
62213
62214	* macros2.lsp (etypecase, ctypecase, ecase, ccase): Allow T and
62215	  OTHERWISE as keys, but warn about them unless parenthesized.
62216	* conditio.lsp (etypecase, ctypecase, ecase, ccase): Likewise.
62217
622181998-03-10  Sam Steingold  <sds@usa.net>
62219
62220	* io.d: fix a minor grammatical error.
62221
622221998-03-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62223
62224	* amiga.d (stdin_handle): Rename from Input_handle.
62225	(stdout_handle): Rename from Output_handle.
62226	  Change all references.
62227	* lispbibl.d (strm_file_name, strm_file_truename): Both can be a
62228	  pathname or NIL.
62229	* io.d (pr_stream): Do not print strm_file_name if it is NIL.
62230	* pathname.d (test_file_stream_named): New function.
62231	(parse-namestring, truename, probe-file, delete-file, rename-file)
62232	(open, file-write-date, file-author): Call test_file_stream_named.
62233	* stream.d (regular_handle_p): Move function outside #if.
62234	(b_file_finish_flush): Adapt for unnamed file streams.
62235	(fehler_position_beyond_EOF, make_file_stream): Likewise.
62236	(b_file_full_flush): Do not call lseek if the stream is write-only.
62237	(b_file_half_flush): Likewise.
62238	(b_file_nextbyte): Do not read buffer if the stream is write-only.
62239	(position_b_file, position_file_end): Likewise.
62240	(make_file_stream): Unnamed output stream are write-only.
62241	(finish_output_file): For unnamed streams, do not close the handle.
62242	(make_terminal_io): New function.
62243	(init_streamvars): Call it.
62244
622451998-03-07  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62246
62247	* stream.d (finish_tty_output, force_tty_output, clear_tty_output):
62248	  Ignore ENOSYS on Irix (occurs on pipes).
62249
622501998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62251
62252	* spvw.d: Define MULTIMAP_MEMORY_SYMBOL_TAB if
62253	  MULTIMAP_MEMORY && MAP_MEMORY_TABLES. But do not multimap the subr_tab
62254	  - wouldn't work in the case of dynamic loading.
62255
622561998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62257
62258	Make aktenv a separate entity (will be per-thread later).
62259	* lispbibl.d (aktenv): Make a global variable.
62260	* eval.d (aktenv): New global variable.
62261	* constobj.d (akt_*_env): Remove.
62262	* spvw.d (for_all_threadobjs): New macro.
62263	(gc_markphase, aktualisiere_object_tab): Call it.
62264	(initmem): Initialize aktenv.
62265
622661998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62267
62268	* clos.lsp (*dynamically-modifiable-generic-function-names*): New
62269	  variable.
62270	(warn-if-gf-already-called): Do not warn if gf is listed in it.
62271
622721998-02-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62273
62274	* format.lsp (format-parse-cs): Add format directive ~!.
62275	(format-call): New function.
62276	(formatter-main-1): Compile format-call.
62277
622781998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62279
62280	* lispbibl.d (GNU_GETTEXT): Support gettext with IBMPC_CHS as well.
62281	(INIT_SYMBOL_TAB): Do not define for EMUNIX.
62282	* gettext/intl/Makefile.dos: New file.
62283	* dos/gtconfig.h: New file.
62284	* dos/gtobjects: New file.
62285	* dos/copyx.bat, os2/copyx.cmd: Copy them.
62286	* spvw.d (to_latin_table, from_latin_table): New arrays.
62287	(cvgettext): New function.
62288	(clgettext): Call cvgettext, instead of gettext.
62289	* msdos.d (full_read, full_write): Change declaration to match the
62290	  definition in unixaux.d.
62291	(get_handle_input_status, intdos): Save %ebx in asm calls.
62292	* stream.d (kbhit, getch, get_handle_info, intvideo): Likewise.
62293	* makemake.in: Support gettext on DOS, OS/2 platforms with EMX.
62294	(EMX): Link with emxl.exe, not emx.exe.
62295	  Do not strip lisp.exe.
62296	* dos/convert.bax, os2/convert.bax: Do not convert binary files
62297	  like *.gif.
62298	* dos/delx.bat, os2/delx.cmd: Remove more things. Do not descend into
62299	  src/readline or src/newreadline - these directories may not exist.
62300	* Makefile.devel (dos--distrib, os2--distrib): Copy lispinit.mem,
62301	  not compiled.mem. Copy the *.mo files. Copy the translated READMEs.
62302	  Copy impnotes.html. Copy emx.exe. Copy emxrt.doc.
62303
623041998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62305
62306	* lispbibl.d: Remove support for EMX versions < 0.9c.
62307	* msdos.d: Likewise.
62308	(FILE_PID): Remove definition.
62309	* spvw.d (alarm_handler, main): Remove support for EMX versions < 0.9c.
62310	* stream.d (finish_tty_output, force_tty_output, listen_handle)
62311	(kbhit, getch, clear_window, delete_window_line, init_term): Likewise.
62312	(make_pipe_input_stream, make_pipe_output_stream)
62313	(make_pipe_io_stream): Do not use FILE_PID any more.
62314	* os2/popenrw.c: Likewise.
62315	* error.d (begin_error, tast_break): Remove support for EMX
62316	  versions < 0.9c.
62317	* graph.d: Likewise.
62318	* pathname.d: Likewise.
62319	* time.d: Likewise.
62320
623211998-02-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62322
62323	* cv-to-ibmpc.c (main): Translate the characters 0xCD and 0xD3 to
62324	  ASCII, instead of dropping them. Needed for the spanish messages.
62325
623261998-02-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62327
62328	Remove support for traditional (pre-ANSI-C) compilers. Assume
62329	<stdlib.h> and <string.h> are present.
62330	* ansidecl.d: Assume <stdlib.h> is present.
62331	* txt2c.c: Likewise.
62332	* ccmp2c.d: Likewise.
62333	(new_statement, main): Assume ANSI C declaration syntax.
62334	* comment5.d (main): Assume ANSI C declaration syntax.
62335	* dedefined.c: Remove.
62336	* deelif.d: Remove.
62337	* deerror.c: Remove.
62338	* mergestrings.d: Remove.
62339	* traddecl.d: Remove.
62340	* lispbibl.d: Assume ANSI C (or C++) compiler.
62341	(const, signed, void): Remove conditional definitions.
62342	(GENTAG, STRING): Simplify.
62343	(DECLTAG, BEGIN_DECLTAG, END_DECLTAG, local_function): Remove.
62344	(_ARGS, PARM0, PARM1, PARM2, PARM3, PARM4, PARM5): Remove.
62345	(nonreturning_function): Simplify.
62346	(signed_int_with_n_bits, unsigned_int_with_n_bits): Unconditional.
62347	(sintB, uintB, sintW, uintW, sintL, uintL): Simplify definition.
62348	(sintQ, uintQ, sintP, uintP): Likewise.
62349	(sintBW, uintBW, sintWL, uintWL, sintBWL, uintBWL): Likewise.
62350	(sintD, uintD, sintDD, uintDD, tint, aint, saint, cint): Likewise.
62351	(module_): Simplify declaration.
62352	* genclisph.d (_ARGS): Remove. Assume ANSI C declaration syntax.
62353	* unix.d (FAULT_HANDLER_ARGDECL): Remove.
62354	(FAULT_HANDLER_ARGLIST): Assume ANSI C declaration syntax.
62355	* io.d: Change `local_function' to `local'.
62356	* package.d: Likewise.
62357	* array.d: Likewise.
62358	* flo_rest.d (GEN_F_op1, GEN_ffloor, GEN_fceiling, GEN_fround)
62359	(GEN_round, GEN_F_fround, GEN_F_round, GEN_F_F_round): Use ANSI C
62360	  declaration syntax.
62361	* realelem.d (GEN_R_round, GEN_R_fround, GEN_R_R_round, GEN_R_R_mod)
62362	(GEN_R_R_fround): Use ANSI C declaration syntax.
62363	* realtran.d (GEN_F_atanx, GEN_F_sinx): Use ANSI C declaration syntax.
62364	* pathname.d (nametype_namestring_parts): Likewise.
62365	* spvw.d (gc_sweep1_varobject_page): Likewise.
62366	(gc_sweep2_varobject_page): Likewise.
62367	(sigsegv_handler): Simplify declaration.
62368	(dynload_modules): Simplify cast for initfunction1 and initfunction2.
62369	* avl.d (AVL_map_*): Remove calls to BEGIN_DECLTAG, END_DECLTAG and
62370	  DECLTAG.
62371	* _clisp.c (perror, main): Assume ANSI C declaration syntax.
62372	* ari68020.d (C, clrx): Assume ANSI C preprocessor.
62373	* ari80386.d (C, L): Likewise.
62374	* sp80386.d (C): Likewise.
62375	* arisparc.d (C): Likewise.
62376	* asmi386.hh (C, L): Likewise.
62377	* configure.in: Do not call AC_PROG_GCC_TRADITIONAL, CL_CC_NEED_DEELIF,
62378	  CL_CC_NEED_DEERROR, CL_CC_NEED_MERGESTRINGS any more.
62379	* makemake.in: Drop support for oldcc. Assume CC_NEED_DEELIF,
62380	  CC_NEED_DEERROR, CC_NEED_MERGESTRINGS to be false. Assume CC_ANSI
62381	  to be true. Assume gcc is not used with -traditional. Always use
62382	  ansidecl, not traddecl.
62383
623841998-02-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62385
62386	* modules/stdwin: Remove.
62387	* makemake.in (--with-module-stdwin): Remove option.
62388	* Makefile.devel (SOURCES4): No need any more to exclude stdwin.
62389	(CONFIGURES): Remove modules/stdwin/configure.
62390	(src--distrib): Do not create clispsrc-stdwin.tar.gz.
62391
623921998-02-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62393
62394	* intsqrt.d (UDS_sqrt_): gcc-2.5.8 on hppa has same problem with
62395	  isqrt as gcc-2.7.0 on i386. Same workaround works.
62396
623971998-02-10  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62398
62399	* constobj.d (showstack_string_CALLBACK_frame): Define if
62400	  HAVE_SAVED_REGISTERS, not HAVE_SAVED_STACK.
62401
624021998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62403
62404	* spvw.d (gar_col_normal): Unify three occurrences of the same error
62405	  message. Wrap munmap() calls in begin/end_system_call().
62406
624071998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62408
62409	Preliminary support for Mingw32:
62410	* ansidecl.d, traddecl.d, dedefined.c, ccmp2c.d, txt2c.c: Define
62411	  STDC_HEADERS if __MINGW32__.
62412	* lispbibl.d (WIN32): Define if __MINGW32__.
62413	(I80386): Define if _X86_ is defined.
62414	* ari80386.d, sp80386.d, asmi386.hh: The __MINGW32__ assembler has
62415	  the ELF "align" pseudo-op.
62416	* win32.d: "#undef unused" before including other header files.
62417	(_MAX_PATH): Define to an arbitrary value.
62418	(uAsciiChar): New macro, against unnamed union in __MINGW32__.
62419	(wProcessorArchitecture): Similarly.
62420	(MAXHOSTNAMELEN): Define only unless already defined.
62421	(CoGetCurrentProcess): Declare explicitly for __MINGW32__.
62422	* stream.d (listen_handle, listen_keyboard, rd_ch_keyboard):
62423	  Use uAsciiChar.
62424	* makemake.in ($TSYS = win32gcc): Output a Makefile suitable for
62425	  Mingw32.
62426	(PARENT_M, NEXT_M, SRCTOPDIR_M, UTILDIR_M, DOCDIR_M): New variables.
62427	  Use them in Makefile rules (as opposed to Makefile commands).
62428
624291998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62430
62431	* pathname.d (init_pathnames): Do not expect that getlogin() sets
62432	  errno when it fails.
62433
624341998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62435
62436	* spvw.d (xmprotect): Use OS_errno, not errno. For Win32.
62437
624381998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62439
62440	* spvw.d (main.banner): Add a copyright line for 1998.
62441
624421998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62443
62444	* init.lsp: Export `define-symbol-macro'.
62445	* defs3.lsp: Likewise.
62446
624471998-02-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62448
62449	* pathname.d (fehler_notdir): New function, extracted from
62450	  shorter_directory_arg.
62451	(directory_exists): New function.
62452	(PROBE-DIRECTORY): New function.
62453	(shorter_directory): Rename from shorter_directory_arg. Accept
62454	  two arguments. Call fehler_notdir. Change all callers.
62455	(make_directory): New function, extracted from MAKE-DIR.
62456	(MAKE-DIR): Call it.
62457	(ENSURE-DIRECTORIES-EXIST): New function.
62458	* init.lsp: Export `ensure-directories-exist'.
62459	* defs3.lsp: Likewise.
62460
624611998-01-23  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62462
62463	* arilev0.d (mulu32 for I80386): Fix a wrong description of the "mull"
62464	  instruction.
62465
624661998-01-21  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62467
62468	* asmi386.hh (NUM, ADDR): To prepend a dollar, use $##n. (Some
62469	  compilers allow dollars in identifiers. Needed for mingw32.)
62470
624711998-01-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62472
62473	* stream.d (clear_tty_output): Avoid error during CLEAR-OUTPUT on
62474	  pipes on Win32.
62475
624761998-01-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62477
62478	* pathname.d (file_write_date, file_author): file_exists() takes
62479	  a `object' as argument, not a `const char *'.
62480
624811998-01-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62482
62483	* predtype.d (hs_record): Add const here too, to fix a small problem
62484	  in 1997-09-28-const.diff.
62485
624861998-01-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62487
62488	* makemake.in: Add a comment about MODULES to the makefile.
62489
624901998-01-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62491
62492	* spvw.d (mem.heaptype): Use -1 for SUBRs and < -1 for unused
62493	  typecodes.
62494	(main): Initialize mem.heaptype accordingly.
62495	(main): prepare_zeromap for subr_tab is now implicit.
62496
624971997-12-30  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62498
62499	* lispbibl.d (nonreturning_function): Fix comment.
62500	* win32.d (SetConsoleCtrlHandler): Fix comment.
62501
625021997-12-13  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62503
62504	* eval.d (unwind): Fix a compilation warning in WIDE mode: do not
62505	cast directly from oint to a pointer.
62506
625071997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62508
62509	* lispbibl.d: Write MC680X0 instead of M680X0.
62510
625111997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62512
62513	* spvw.d (make_space_gc*): If zeromap() fails, output an informative
62514	  message, to calm down users.
62515
625161997-12-11  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62517
62518	* makemake.in (distrib for acorn): Distribute impnotes.html.
62519
625201997-12-05  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62521
62522	* sequence.d (valid_type): Recognize (SIMPLE-ARRAY eltype 1) as
62523	  equivalent of (SIMPLE-ARRAY eltype (*)).
62524	* type.lsp (subtypep): Likewise.
62525
625261997-12-01  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62527
62528	* cfglinux.lsp: File remove.
62529	* FILES.1: Do not mention it.
62530	* makemake.in: Likewise.
62531
625321997-11-29  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62533
62534	* ffcall/{trampoline,callback/trampoline_r}/trampoline.c
62535	(alloc_trampoline): Add support for NetBSD/m68k.
62536	* makemake.in: Recognize m68k-netbsd for ari680x0 support.
62537
625381997-11-15  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62539
62540	* ffcall/callback/Makefile.{in,msvc}: callback.h resides in the
62541	  build dir, not the source dir.
62542	* ffcall/callback/callback.h.in: Rename from callback.h.
62543
625441997-11-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62545
62546	* io.d (prin1a): When *PRINT-PRETTY* = T, there is no need to output
62547	  a newline if the next string begins with a newline character anyway.
62548
625491997-11-14  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62550
62551	Allow dynamic loading of modules, if configured --with-dynamic-modules.
62552	* clisp-link.in (run): New command.
62553	* aclocal.m4 (CL_DYNLOAD): New macro.
62554	* configure.in: Use it.
62555	* unixconf.h.in (HAVE_DLOPEN): New macro.
62556	* unix.d: Use it to declare dlopen, dlsym, dlclose, dlerror.
62557	* makemake.in: New option --with-dynamic-modules.
62558	* lispbibl.d (STACK_register) [I80386]: Define only if
62559	DYNAMIC_MODULES is not defined.
62560	(HAVE_SAVED_REGISTERS if I80386): Likewise.
62561	(tagging scheme): Likewise.
62562	(modules): Declare.
62563	(dynload_modules): Declare.
62564	* modules.d: Treat DYNAMIC_MODULES.
62565	* pathname.d (SYS::DYNLOAD-MODULES): New function.
62566	* spvw.d (init_modules_0): New function.
62567	(init_module_2): New function.
62568	(init_other_modules_2): Call it.
62569	(dynload_modules): New function.
62570
625711997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62572
62573	* ffcall: Upgrade to ffcall-1.3
62574	* Makefile.devel (CONFIGURES): Update accordingly.
62575	* foreign.d (convert_function_to_foreign, free_foreign_callin)
62576	(convert_function_from_foreign, callback, init_ffi): Use callback
62577	  package instead of vacall+trampoline.
62578
625791997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62580
62581	* aclocal.m4 (CL_MACHINE): Force CL_CHAR_UNSIGNED before CL_MACHINE.
62582
625831997-11-08  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62584
62585	* aclocal.m4 (CL_CANONICAL_HOST_CPU): Support for KAI C++ which
62586	  doesn't like "#undef __i386__" nor "#define __i386__".
62587
625881997-10-20  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62589
62590	* disassem.lsp (disassemble-machine-code) [UNIX]: Inhibit line
62591	  breaks, 1 instruction per line, otherwise the instruction gets
62592	  filtered away.
62593
625941997-10-19  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62595
62596	* conditio.lsp: Conditionalize upon feature ANSI-CL, not dpANS.
62597	* defs2.lsp, defs3.lsp, init.lsp, loop.lsp: Likewise.
62598
625991997-10-12  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>
62600
62601	* amigasock.lsp: New file.
62602
626031997-10-08  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>
62604
62605	* eval.d (interpret_bytecode (cod_throw)): Tweak message.
62606
626071997-10-06  Jörg Höhle  <Joerg.Hoehle@zeus.gmd.de>
62608
62609	* cfgamiga.lsp (machine-instance): Prefix with "localhost".
62610	* erramiga.d (error200_msg_table): Add some translations.
62611
626121997-09-30  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62613
62614	* utils/gcc-cccp/Makefile.msvc: Set stack size for cccp.exe.
62615	* asmi386.sh: For the sake of msvc5, which assembles relative
62616	  addresses in an unpredictable way, turn jump tables into absolute,
62617	  not relative, addresses.
62618
626191997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62620
62621	* charstrg.d (copy_string, NSTRING-UPCASE, NSTRING-DOWNCASE)
62622	(NSTRING-CAPITALIZE): Make reentrant and multithread-safe.
62623
626241997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62625
62626	Stack overflow robustness on Win32:
62627	* lispbibl.d (NO_SP_CHECK, NOCOST_SP_CHECK): New macros. SP checks
62628	  are enabled if AMIGAOS || (WIN32_NATIVE && !CAN_HANDLE_WP_FAULT).
62629	* spvw.d (do_gar_col_simple, do_gar_col): If WIN32_NATIVE &&
62630	  CAN_HANDLE_WP_FAULT, check for stack overflow just before GC,
62631	  because a stack overflow during GC would be unrecoverable.
62632	* spvw.d (subst_circ_mark, stack_overflow_handler)
62633	(main_exception_filter): Put in the right #ifdefs.
62634	* spvw.d (stack_overflow_stack): New variable.
62635	(main): Set it.
62636
626371997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62638
62639	* lispbibl.d (map_heap_function): Rename from mapper_function.
62640	(map_heap_objects): Change declaration.
62641	* spvw.d (map_heap_objects): Likewise.
62642
626431997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62644
62645	* array.d (initial_contents_locals): New structure.
62646	(initial_contents_aux): Make reentrant and multithread-safe.
62647	* lispbibl.d (map_sequence): Declare.
62648	* sequence.d (map_sequence): New function.
62649
626501997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62651
62652	* spvw.d (everything_ready): Remove unused variable.
62653
626541997-09-28  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62655
62656	Use `const' qualifier when possible, especially on constant arrays.
62657	This allows constant arrays to be put into the raw data section.
62658	* arilev1c.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
62659	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
62660	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
62661	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
62662	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
62663	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
62664	(divucopy_loop_up): Use `const'.
62665	* arilev1e.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
62666	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
62667	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
62668	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
62669	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
62670	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
62671	(divucopy_loop_up): Use `const'.
62672	* arilev1i.d (copy_loop_up, copy_loop_down, or_loop_up, xor_loop_up)
62673	(and_loop_up, eqv_loop_up, nand_loop_up, nor_loop_up, andc2_loop_up)
62674	(orc2_loop_up, and_test_loop_up, test_loop_up, compare_loop_up)
62675	(add_loop_down, addto_loop_down, sub_loop_down, subx_loop_down)
62676	(subfrom_loop_down, shiftleftcopy_loop_down, shiftrightcopy_loop_up)
62677	(mulu_loop_down, muluadd_loop_down, mulusub_loop_down)
62678	(divucopy_loop_up): Use `const'.
62679	* array.d (type_table): Use `const'.
62680	* charstrg.d (up_case_table, down_case_table, charname_table_codes)
62681	(char_name, name_char): Use `const'.
62682	* control.d (fsubr_tab): Use `const'.
62683	* debug.d (frame_up_table, frame_down_table, test_mode_arg): Use
62684	  `const'.
62685	* eval.d (FUNTAB, FUNTABR, cod_labels): Use `const'.
62686	* graph.d (EGA_colors, gr_colors, g320x200x16_regs, g320x200x16_info)
62687	(g640x200x16_regs, g640x200x16_info, g640x350x16_regs)
62688	(g640x350x16_info, g640x480x16_regs, g640x480x16_info)
62689	(g320x200x256_regs, g320x200x256_info, g320x240x256_regs)
62690	(g320x240x256_info, g320x400x256_regs, g320x400x256_info)
62691	(g360x480x256_regs, g360x480x256_info, g640x480x2_regs)
62692	(g640x480x2_info, g640x480x256_regs, g640x480x256_info)
62693	(g800x600x256_regs, g800x600x256_info, g1024x768x256_regs)
62694	(g1024x768x256_info, default_red, default_green, default_blue)
62695	(color16, et4000_set_regs, set_regs, mono_colors, EGA_colors)
62696	(VGA_colors, gr_colors, font, gr_text, GRAPH-INIT): Use `const'.
62697	* hashtabl.d (tuple_half_1, tuple_half_2): Use `const'.
62698	* intmal.d (mulu_2loop_down, mulu_2bigloop_down, fakul_table): Use
62699	  `const'.
62700	* intprint.d (table, UDS_to_DIGITS): Use `const'.
62701	* io.d (orig_syntax_table, orig_readtable, SET-READTABLE-CASE)
62702	(attribute_table, char_reader, pr_character, pr_stream): Use `const'.
62703	* lisparit.d (pi_mantisse, ln2_mantisse, ln10_mantisse): Use `const'.
62704	* lispbibl.d (fsubr_tab): Use `const'.
62705	* predtype.d (init_hs_locals_rest): Use `const'.
62706	* realrand.d (multiplier): Use `const'.
62707	* sequence.d (test_start_end, test_start_end_1): Use `const'.
62708	* spvw.d (pname_table, package_index_table, init_symbol_tab_2)
62709	(fsubr_data_tab, object_initstring_tab, features_initstring)
62710	(init_object_tab, banner, banner2, banner3, main)
62711	(loadmem_aktualisiere, copyright_notice): Use `const'.
62712
627131997-09-27  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
62714
62715	* acspecific.m4 (AC_FUNC_VFORK): Fix so that it works right when
62716	  cross-compiling.
62717
62718;; Local Variables:
62719;; mode: change-log
62720;; eval: (bug-reference-mode t)
62721;; bug-reference-url-format: clisp-bug-reference-url-format
62722;; End:
62723