* num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
[bpt/guile.git] / libguile / ChangeLog
1 2003-04-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2
3 * num2integral.i.c (INTEGRAL2BIG): Put negation of n inside then
4 clause.
5
6 2003-04-05 Rob Browning <rlb@defaultvalue.org>
7
8 * modules.c (scm_module_import_interface): move declaration of
9 uses before any code.
10
11 2003-04-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
12
13 * Makefile.am (scmconfig.h): Look for config.h in top_builddir,
14 not top_srcdir.
15
16 * hashtab.c (rehash_after_gc): Clear to_rehash list before
17 processing it in order to avoid an infinite loop.
18
19 * print.c (scm_prin1): Remember old state of pstate->writingp.
20
21 2003-04-05 Marius Vollmer <mvo@zagadka.de>
22
23 * Changed license terms to the plain LGPL thru-out.
24
25 2003-04-04 Rob Browning <rlb@defaultvalue.org>
26
27 * socket.c (FLIPCPY_NET_HOST_128): new macro.
28 (ipv6_net_to_num, ipv6_num_to_net, bignum_in_ipv6_range_p):
29 rewrite to handle GMP bignums.
30
31
32 * random.c (scm_c_random_bignum): rewrite to handle GMP bignums.
33
34 * ports.c (scm_getc): minor tweak.
35
36 * numbers.h: remove SCM_BIGDIG conditionals, reorganize, and
37 rewrite to handle GMP bignums.
38
39 * numbers.c: rewrite *many* functions to handle GMP bignums.
40
41 * num2integral.i.c (NUM2INTEGRAL, INTEGRAL2NUM, INTEGRAL2BIG):
42 handle GMP bignums.
43
44 * num2float.i.c (NUM2FLOAT): handle GMP bignums.
45
46 * init.c (check_config): remove SCM_BIGDIG conditionals.
47 (scm_init_guile_1): test to make sure mpz_t fits in a double_cell.
48
49 * gc-card.c ("sweep_card"): handle new mpz_t bignums.
50
51 * eval.c: remove SCM_BIGDIG conditionals.
52
53 * eq.c (s_scm_eqv_p): scm_i_bigcomp -> scm_i_bigcmp.
54
55 2003-03-31 Rob Browning <rlb@defaultvalue.org>
56
57 * Makefile.am (scmconfig.h): change srcdir to builddir. (Thanks
58 to Kevin Ryde.)
59
60 2003-03-27 Rob Browning <rlb@defaultvalue.org>
61
62 * threads.h: fix various preprocessor usages of new public
63 symbols to expect 0 or 1 values rather than 1 or undefined.
64 i.e. change #ifdef to #if, etc.
65
66 * threads.c: fix various preprocessor usages of new public
67 symbols to expect 0 or 1 values rather than 1 or undefined.
68 i.e. change #ifdef to #if, etc.
69
70 * tags.h: fix various preprocessor usages of new public
71 symbols to expect 0 or 1 values rather than 1 or undefined.
72 i.e. change #ifdef to #if, etc.
73
74 * stacks.c: fix various preprocessor usages of new public
75 symbols to expect 0 or 1 values rather than 1 or undefined.
76 i.e. change #ifdef to #if, etc.
77
78 * stackchk.h: fix various preprocessor usages of new public
79 symbols to expect 0 or 1 values rather than 1 or undefined.
80 i.e. change #ifdef to #if, etc.
81
82 * stackchk.c: fix various preprocessor usages of new public
83 symbols to expect 0 or 1 values rather than 1 or undefined.
84 i.e. change #ifdef to #if, etc.
85
86 * sort.c: fix various preprocessor usages of new public
87 symbols to expect 0 or 1 values rather than 1 or undefined.
88 i.e. change #ifdef to #if, etc.
89
90 * read.c: fix various preprocessor usages of new public
91 symbols to expect 0 or 1 values rather than 1 or undefined.
92 i.e. change #ifdef to #if, etc.
93
94 * random.c: fix various preprocessor usages of new public
95 symbols to expect 0 or 1 values rather than 1 or undefined.
96 i.e. change #ifdef to #if, etc.
97
98 * print.c: fix various preprocessor usages of new public
99 symbols to expect 0 or 1 values rather than 1 or undefined.
100 i.e. change #ifdef to #if, etc.
101
102 * objects.c: fix various preprocessor usages of new public
103 symbols to expect 0 or 1 values rather than 1 or undefined.
104 i.e. change #ifdef to #if, etc.
105
106 * numbers.h: fix various preprocessor usages of new public
107 symbols to expect 0 or 1 values rather than 1 or undefined.
108 i.e. change #ifdef to #if, etc.
109
110 * null-threads.c: fix various preprocessor usages of new public
111 symbols to expect 0 or 1 values rather than 1 or undefined.
112 i.e. change #ifdef to #if, etc.
113
114 * lang.c: fix various preprocessor usages of new public
115 symbols to expect 0 or 1 values rather than 1 or undefined.
116 i.e. change #ifdef to #if, etc.
117
118 * lang.h: fix various preprocessor usages of new public
119 symbols to expect 0 or 1 values rather than 1 or undefined.
120 i.e. change #ifdef to #if, etc.
121
122 * iselect.h: fix various preprocessor usages of new public
123 symbols to expect 0 or 1 values rather than 1 or undefined.
124 i.e. change #ifdef to #if, etc.
125
126 * init.c: fix various preprocessor usages of new public
127 symbols to expect 0 or 1 values rather than 1 or undefined.
128 i.e. change #ifdef to #if, etc.
129
130 * gh_data.c: fix various preprocessor usages of new public
131 symbols to expect 0 or 1 values rather than 1 or undefined.
132 i.e. change #ifdef to #if, etc.
133
134 * gh.h: fix various preprocessor usages of new public
135 symbols to expect 0 or 1 values rather than 1 or undefined.
136 i.e. change #ifdef to #if, etc.
137
138 * gen-scmconfig.c: change most new public symbols to be defined to
139 0 or 1 rather than being either 1 or undefined.
140
141 * gc_os_dep.c: fix various preprocessor usages of new public
142 symbols to expect 0 or 1 values rather than 1 or undefined.
143 i.e. change #ifdef to #if, etc.
144 (STACK_GROWS_DOWN): define to 0 or 1 rather than 1 or undef.
145
146 * gc.h: fix various preprocessor usages of new public
147 symbols to expect 0 or 1 values rather than 1 or undefined.
148 i.e. change #ifdef to #if, etc.
149
150 * gc-card.c: fix various preprocessor usages of new public
151 symbols to expect 0 or 1 values rather than 1 or undefined.
152 i.e. change #ifdef to #if, etc.
153
154 * gc-mark.c: fix various preprocessor usages of new public
155 symbols to expect 0 or 1 values rather than 1 or undefined.
156 i.e. change #ifdef to #if, etc.
157
158 * feature.c: fix various preprocessor usages of new public
159 symbols to expect 0 or 1 values rather than 1 or undefined.
160 i.e. change #ifdef to #if, etc.
161
162 * evalext.c: fix various preprocessor usages of new public
163 symbols to expect 0 or 1 values rather than 1 or undefined.
164 i.e. change #ifdef to #if, etc.
165
166 * eval.h: fix various preprocessor usages of new public
167 symbols to expect 0 or 1 values rather than 1 or undefined.
168 i.e. change #ifdef to #if, etc.
169
170 * eval.c: fix various preprocessor usages of new public
171 symbols to expect 0 or 1 values rather than 1 or undefined.
172 i.e. change #ifdef to #if, etc.
173
174 * eq.c: fix various preprocessor usages of new public
175 symbols to expect 0 or 1 values rather than 1 or undefined.
176 i.e. change #ifdef to #if, etc.
177
178 * coop.c: fix various preprocessor usages of new public
179 symbols to expect 0 or 1 values rather than 1 or undefined.
180 i.e. change #ifdef to #if, etc.
181
182 * coop-threads.c: fix various preprocessor usages of new public
183 symbols to expect 0 or 1 values rather than 1 or undefined.
184 i.e. change #ifdef to #if, etc.
185
186 * coop-pthreads.c: fix various preprocessor usages of new public
187 symbols to expect 0 or 1 values rather than 1 or undefined.
188 i.e. change #ifdef to #if, etc.
189
190 * coop-defs.h: fix various preprocessor usages of new public
191 symbols to expect 0 or 1 values rather than 1 or undefined.
192 i.e. change #ifdef to #if, etc.
193
194 * convert.i.c: fix various preprocessor usages of new public
195 symbols to expect 0 or 1 values rather than 1 or undefined.
196 i.e. change #ifdef to #if, etc.
197
198 * continuations.c: fix various preprocessor usages of new public
199 symbols to expect 0 or 1 values rather than 1 or undefined.
200 i.e. change #ifdef to #if, etc.
201
202 * _scm.h: fix various preprocessor usages of new public symbols to
203 expect 0 or 1 values rather than 1 or undefined. i.e. change
204 #ifdef to #if, etc.
205
206 2003-03-26 Marius Vollmer <marius.vollmer@uni-dortmund.de>
207
208 * init.c (scm_init_guile_1): Call scm_i_init_deprecated.
209
210 * deprecated.c, deprecated.h: New files, to collect deprecated
211 things in one place.
212 * Makefile.am: Added them in all the right places.
213
214 * Makefile.am (EXTRA_DIST): Added "scmconfig.h.top".
215 (scmconfig.h): Get "scmconfig.h.top" from $(srcdir) so that VPATH
216 builds work.
217 (DOT_X_FILES): Removed "iselect.x".
218 (DOT_DOC_FILES): Removed "iselect.doc".
219
220 2003-03-25 Rob Browning <rlb@defaultvalue.org>
221
222 * win32-socket.h: #include "libguile/__scm.h". Replace usage of
223 HAVE_WINSOCK2_H with SCM_HAVE_WINSOCK2_H.
224
225 * win32-socket.c: #include <config.h> if HAVE_CONFIG_H.
226
227 * vports.c: #include <config.h> if HAVE_CONFIG_H.
228
229 * unif.c: #include <config.h> if HAVE_CONFIG_H. Replace usage of
230 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
231
232 * threads.h: replace usage of struct timespect with
233 scm_t_timespec. Replace usage of USE_PTHREAD_THREADS with
234 SCM_USE_PTHREAD_THREADS. Remove typedef for struct timespec in
235 favor of scm_t_timespec from scmconfig.h.
236
237 * threads.c: move libguile/_scm.h include to the top so we pick up
238 any critical defines like _GNU_SOURCE early. Replace usage of
239 struct timespect with scm_t_timespec. Replace usage of
240 STACK_GROWS_UP with SCM_STACK_GROWS_UP. Replace usage of
241 USE_PTHREAD_THREADS with SCM_USE_PTHREAD_THREADS.
242
243 * threads-plugin.h: replace usage of struct timespect with
244 scm_t_timespec.
245
246 * threads-plugin.c: #include <config.h> if HAVE_CONFIG_H. Replace
247 usage of struct timespect with scm_t_timespec.
248
249 * tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
250 HAVE_INTTYPES_H handling to scmconfig.h. #include
251 "libguile/__scm.h". Rework handling for scm_t_bits,
252 scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
253 SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr,
254 scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and
255 SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to
256 SCM_HAVE_ARRAYS.
257
258 * symbols.c: #include <config.h> if HAVE_CONFIG_H.
259
260 * struct.c: #include <config.h> if HAVE_CONFIG_H.
261
262 * strports.c: #include <config.h> if HAVE_CONFIG_H.
263
264 * strop.c: #include <config.h> if HAVE_CONFIG_H.
265
266 * stime.h: move handling of time related headers to scmconfig.h.
267
268 * stime.c: #include <config.h> if HAVE_CONFIG_H.
269
270 * stacks.c: replace usage of STACK_GROWS_UP with
271 SCM_STACK_GROWS_UP.
272
273 * sort.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
274 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
275
276 * socket.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
277 of uint32 and HAVE_UINT_32 with scm_t_int32.
278
279 * smob.c: #include <config.h> if HAVE_CONFIG_H.
280
281 * simpos.c: #include <config.h> if HAVE_CONFIG_H.
282
283 * script.c: #include <config.h> if HAVE_CONFIG_H.
284
285 * scmsigs.c: #include <config.h> if HAVE_CONFIG_H.
286
287 * scmconfig.h.top: new file -- preamble for scmconfig.h.
288
289 * rw.c: #include <config.h> if HAVE_CONFIG_H.
290
291 * regex-posix.c: #include <config.h> if HAVE_CONFIG_H.
292
293 * read.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
294
295 * rdelim.c: #include <config.h> if HAVE_CONFIG_H.
296
297 * random.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
298 of LONG32, LONG64, SIZEOF_LONG, and HAVE_LONG_LONGS with
299 scm_t_int32, scm_t_int64, and SCM_HAVE_T_INT64. Rename usage of
300 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
301
302 * ramap.c: replace usage of HAVE_LONG_LONGS with
303 "SCM_SIZEOF_LONG_LONG != 0".
304
305 * putenv.c: #include <config.h> if HAVE_CONFIG_H. #include
306 "libguile/scmconfig.h".
307
308 * pthread-threads.c: #include <config.h> if HAVE_CONFIG_H.
309
310 * print.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
311 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
312
313 * posix.c: #include <config.h> if HAVE_CONFIG_H.
314
315 * ports.c: #include <config.h> if HAVE_CONFIG_H.
316
317 * objects.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
318
319 * numbers.h: replace usage of HAVE_FLOATINGPOINT_H with
320 SCM_HAVE_FLOATINGPOINT_H. Replace usage of HAVE_IEEEFP_H with
321 SCM_HAVE_IEEEFP_H. Replace usage of HAVE_NAN_H with
322 SCM_HAVE_NAN_H. Replace usage of STDC_HEADERS with
323 SCM_HAVE_STDC_HEADERS. Replace usage of ptrdiff_t with
324 scm_t_ptrdiff. Replace usage of HAVE_LONG_LONGS with
325 "SCM_SIZEOF_LONG_LONG != 0".
326
327 * numbers.c: #include <config.h> if HAVE_CONFIG_H. Replace usage
328 of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0". Replace
329 usage of ptrdiff_t with scm_t_ptrdiff. Replace usage of
330 SIZEOF_PTRDIFF_T with SCM_SIZEOF_SCM_T_PTRDIFF.
331
332 * num2integral.i.c: #include <config.h> if HAVE_CONFIG_H.
333
334 * null-threads.h: replace usage of struct timespect with
335 scm_t_timespec.
336
337 * net_db.c: #include <config.h> if HAVE_CONFIG_H.
338
339 * mkstemp.c: #include <config.h> if HAVE_CONFIG_H. #include
340 "libguile/__scm.h". Remove definition of gcc_uint64_t in favor of
341 scm_t_uint64 and rename usages.
342
343 * mallocs.c: #include <config.h> if HAVE_CONFIG_H.
344
345 * load.c: #include <config.h> if HAVE_CONFIG_H.
346
347 * iselect.h: move handling of time related headers to scmconfig.h.
348 Rename usage of HAVE_SYS_SELECT_H to SCM_HAVE_SYS_SELECT_H.
349 Rename usage of HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Rename
350 usage of USE_COOP_THREADS to SCM_USE_COOP_THREADS.
351
352 * iselect.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
353 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
354 USE_NULL_THREADS to SCM_USE_NULL_THREADS.
355
356 * ioext.c: #include <config.h> if HAVE_CONFIG_H.
357
358 * inline.h: #include "libguile/__scm.h" at the top. Change code
359 to use SCM_C_INLINE and SCM_INLINE_C_INCLUDINT_INLINE_H to decide
360 what to do instead of creating a new public #define. Rename usage
361 of USE_COOP_THREADS to SCM_USE_COOP_THREADS. Rename usage of
362 USE_NULL_THREADS to SCM_USE_NULL_THREADS. Rename usage of
363 USE_COPT_THREADS to SCM_USE_COPT_THREADS.
364
365 * inline.c: rearrange handling -- now we just #define
366 SCM_INLINE_C_INCLUDING_INLINE_H to 1 and #include
367 "libguile/inline.h". scmconfig.h will define SCM_C_INLINE as
368 appropriate, and we use that in inline.h along with the above
369 define to determine how to respond.
370
371 * init.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
372 HAVE_ARRAYS to SCM_HAVE_ARRAYS.
373
374 * guile.c: #include <config.h> if HAVE_CONFIG_H.
375
376 * gh_data.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
377 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
378
379 * gh.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
380
381 * gen-scmconfig.h.in: new file -- see gen-scmconfig.c for details.
382
383 * gen-scmconfig.c: new file -- see comments in file for details.
384
385 * gdbinit.c: #include <config.h> if HAVE_CONFIG_H.
386
387 * gc_os_dep.c: #include <config.h> if HAVE_CONFIG_H. Replace
388 usage of STACK_GROWS_UP with SCM_STACK_GROWS_UP.
389
390 * gc.h: replace usage of SIZEOF_LONG with
391 SCM_SIZEOF_UNSIGNED_LONG. Replace usage of USE_PTHREAD_THREADS
392 with SCM_USE_PTHREAD_THREADS. Remove SCM_SIZEOF_LONG definition
393 since we handle that in scmconfig.h now.
394
395 * gc.c: #include <config.h> if HAVE_CONFIG_H.
396
397 * gc-mark.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
398 of HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of
399 HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
400
401 * gc-malloc.c: #include <config.h> if HAVE_CONFIG_H.
402
403 * gc-card.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
404 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
405
406 * fports.c: #include <config.h> if HAVE_CONFIG_H.
407
408 * filesys.c: #include <config.h> if HAVE_CONFIG_H.
409
410 * feature.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
411 of USE_NULL_THREADS to SCM_USE_NULL_THREADS.
412
413 * extensions.c: #include <config.h> if HAVE_CONFIG_H.
414
415 * evalext.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
416 Replace usage of HAVE_LONG_LONGS with "SCM_SIZEOF_LONG_LONG != 0".
417
418 * eval.c: #include <config.h> if HAVE_CONFIG_H. #include
419 "libguile/__scm.h" rather than scmconfig.h. Rename usage of
420 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
421 with "SCM_SIZEOF_LONG_LONG != 0".
422
423 * error.c: #include <config.h> if HAVE_CONFIG_H.
424
425 * eq.c: #include <config.h> if HAVE_CONFIG_H. Rename usage of
426 HAVE_ARRAYS to SCM_HAVE_ARRAYS. Replace usage of HAVE_LONG_LONGS
427 with "SCM_SIZEOF_LONG_LONG != 0".
428
429 * deprecation.c: #include <config.h> if HAVE_CONFIG_H.
430
431 * coop.c: replace usage of struct timespect with scm_t_timespec.
432 #include <config.h> if HAVE_CONFIG_H.
433
434 * coop-threads.c: #include "libguile/_scm.h" early. Replace
435 usage of struct timespect with scm_t_timespec. Replace usage of
436 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
437
438 * coop-pthreads.c: #include "libguile/_scm.h" early. Replace
439 usage of struct timespect with scm_t_timespec. Replace usage of
440 STACK_GROWS_UP with SCM_STACK_GROWS_UP.
441
442 * coop-defs.h: move handling of time related headers to
443 scmconfig.h. Add #include "libguile/__scm.h". Rename usage of
444 HAVE_WINSOCK2_H to SCM_HAVE_WINSOCK2_H. Replace usage of struct
445 timespect with scm_t_timespec.
446
447 * convert.i.c: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
448
449 * convert.h: rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
450
451 * convert.c: #include <config.h> if HAVE_CONFIG_H. Rename usage
452 of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
453
454 * continuations.c: move libguile/_scm.h include to the top so we
455 pick up any critical defines like _GNU_SOURCE early.
456
457 * backtrace.c: #include <config.h> if HAVE_CONFIG_H.
458
459 * async.c: #include <config.h> if HAVE_CONFIG_H.
460
461 * alloca.c: #include <config.h> if HAVE_CONFIG_H.
462
463 * _scm.h: #include <config.h> if HAVE_CONFIG_H.
464 Rename usage of USE_PTHREAD_THREADS to SCM_USE_PTHREAD_THREADS.
465
466 * __scm.h: move libguile/scmconfig.h include up to the top, so
467 we're sure to pick up any critical defines like _GNU_SOURCE early.
468 #include <limits.h> removed in favor of scmconfig.h inclusion when
469 appropriate. STDC_HEADERS based inclusion of stdlib.h,
470 sys/types.h, stddef.h, and sys/stdtypes.h removed in favor of
471 scmconfig.h inclusion when appropriate. Various Win32 related
472 definitions removed in favor of scmconfig.h inclusion when
473 appropriate.
474 (HAVE_UINTPTR_T): definition removed (see NEWS).
475 (SIZEOF_PTRDIFF_T): definition removed (see NEWS).
476 (HAVE_LONG_LONGS): definition removed (see NEWS).
477 (HAVE_LONG_LONG): definition removed (see NEWS).
478 (HAVE_PTRDIFF_T): definition removed (see NEWS).
479
480 * Makefile.am: scmconfig.h is now generated by building and
481 running gen-scmconfig.h and capturing its output. gen-scmconfig
482 uses config.h and the configure.in generated gen-scmconfig.h to
483 decide what to output. See gen-scmconfig.c for details.
484 (noinst_PROGRAMS): add gen-scmconfig.
485 (gen_scmconfig_SOURCES): new variable.
486 (gen-scmconfig.$(OBJEXT)): new target - be careful to handle
487 cross-compiling right.
488 (scmconfig.h): build scmconfig.h from gen-scmconfig's output.
489 (BUILT_SOURCES): add scmconfig.h.
490
491 2003-03-19 Marius Vollmer <mvo@zagadka.de>
492
493 * gc_os_dep.c: Added defines for sparc-unknown-netbsdelf1.5 from
494 Adrian Bunk. Thanks!
495
496 2003-03-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
497
498 * goops.c (make_class_from_template): New fourth arg:
499 applicablep.
500 (scm_class_extended_generic_with_setter, scm_class_self): Fixed
501 cpls.
502
503 * smob.c (scm_set_smob_apply): Call scm_i_inherit_applicable.
504
505 * goops.c, objects.c, objects.h (scm_make_extended_class): New
506 second arg: applicablep.
507 (scm_i_inherit_applicable): New function.
508
509 * goops.c, goops.h (scm_class_applicable,
510 scm_class_extended_accessor): New classes.
511
512 2003-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
513
514 * procs.c (scm_procedure_documentation): Removed redundant
515 SCM_NIMP test and replaced other calls to SCM_IMP by more explicit
516 predicates.
517
518 2003-03-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
519
520 * list.c, list.h (scm_filter, scm_filter_x): New functions.
521
522 * modules.c (scm_module_import_interface): New function.
523
524 * goops.c, goops.h (scm_class_accessor_method): Renamed from
525 scm_class_accessor.
526 (scm_class_accessor): New class.
527
528 2003-03-06 Mikael Djurfeldt <djurfeldt@nada.kth.se>
529
530 * goops.c (scm_primitive_generic_generic): Enable primitive
531 generic if not enabled.
532 (scm_sys_goops_loaded): Setup unextended primitive generics.
533
534 * goops.c, goops.h (scm_c_extend_primitive_generic): New function.
535
536 * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
537 snarf macros.
538
539 * numbers.c (scm_abs): Use SCM_PRIMITIVE_GENERIC. (This is only a
540 testing example. All uses of SCM_GPROC should be converted.)
541
542 * procprop.c (scm_stand_in_scm_proc): Use scm_assq instead of
543 scm_assoc.
544
545 * eq.c (scm_equal_p): Turned into a primitive generic.
546
547 2003-02-27 Rob Browning <rlb@defaultvalue.org>
548
549 * Makefile.am (scmconfig.h): new target -- generate file from
550 ../config.h.
551 (modinclude_HEADERS): remove version.h.
552 (nodist_modinclude_HEADERS): add version.h.
553
554 2003-02-24 Mikael Djurfeldt <djurfeldt@nada.kth.se>
555
556 This fixes a serious GC bug, introduced during the latest
557 reorganization of the GC, which disabled freeing of structs and
558 GOOPS objects:
559
560 * struct.c (scm_struct_prehistory): Init scm_i_structs_to_free to
561 SCM_EOL.
562 (scm_struct_prehistory): Move scm_free_structs to
563 scm_before_mark_c_hook.
564
565 * gc-card.c (sweep_card): Check that we haven't swept structs on
566 this card before. That can happen if scm_i_sweep_all_segments has
567 been called from some other place than scm_igc.
568
569 2003-02-19 Mikael Djurfeldt <djurfeldt@nada.kth.se>
570
571 * environments.c (DEFAULT_OBARRAY_SIZE): Changed from 137 to 31
572 (since hash tables now adapt their size).
573
574 * modules.c (scm_modules_prehistory): Changed from 2001 to 1533
575 (current number of prehistory bindings; hashtable code will select
576 a prime which is greater than this value).
577
578 * symbols.c (scm_symbols_prehistory): Changed from 1009 to 2139
579 (current number of initial symbols).
580
581 * properties.c (scm_init_properties): Don't specify size of
582 scm_properties_whash.
583
584 * objprop.c (scm_init_objprop): Don't specify size of
585 scm_object_whash.
586
587 * keywords.c (scm_init_keywords): Don't specify a hash table size.
588
589 * hooks.c (scm_c_hook_add): Fixed bug in append mode.
590
591 The following changes introduce the use of resizable hash tables
592 throughout Guile. It also renames the old *-hash-table* functions
593 to *-alist-vector* and places them, together with the rest of the
594 weak vector support, in the module (ice-9 weak-vector). We should
595 probably introduce a new, better, API for weak references, for
596 example "weak pairs" a la MIT-Scheme. (In Chez scheme, they even
597 look like and are used like ordinary pairs.)
598
599 * environments.c (obarray_enter, obarray_retrieve, obarray_remove,
600 leaf_environment_fold, obarray_remove_all): Use hashtable
601 accessors.
602
603 * gc.c (scm_init_storage): Moved hook initialization to
604 scm_storage_prehistory.
605 (scm_storage_prehistory): New function.
606 (scm_igc): Added commentary about placement of
607 scm_after_sweep_c_hook.
608
609 * gc-mark.c (scm_mark_all): Use hashtable accessors.
610 (scm_gc_mark_dependencies): Use SCM_WVECT_WEAK_KEY_P and
611 SCM_WVECT_WEAK_VALUE_P.
612
613 * hashtab.c, hashtab.h (scm_hash_for_each, scm_hash_map): New
614 functions.
615 (scm_vector_to_hash_table, scm_c_make_resizing_hash_table):
616 Removed.
617 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
618 scm_make_doubly_weak_hash_table): Moved here from weaks.c.
619
620 * init.c (scm_init_guile_1): Removed call to scm_init_weaks; Added
621 calls to scm_storage_prehistory and scm_hashtab_prehistory.
622
623 * modules.c (module-reverse-lookup): Use hashtable accessors.
624
625 * symbols.c, symbols.h (scm_i_hash_symbol): New function.
626
627 * weaks.c, weaks.h (scm_make_weak_key_alist_vector,
628 scm_make_weak_value_alist_vector,
629 scm_make_doubly_weak_alist_vector): New functions.
630
631 * weaks.c (scm_init_weaks_builtins): New function.
632
633 * weaks.h (SCM_WVECTF_WEAK_KEY, SCM_WVECTF_WEAK_VALUE,
634 SCM_WVECTF_NOSCAN, SCM_WVECT_WEAK_KEY_P, SCM_WVECT_WEAK_VALUE_P,
635 SCM_WVECT_NOSCAN_P): New macros.
636
637 * weaks.c (scm_scan_weak_vectors): Use SCM_WVECT_WEAK_KEY_P
638 and SCM_WVECT_WEAK_VALUE_P.
639
640 * weaks.c, weaks.h (scm_i_allocate_weak_vector): Renamed from
641 allocate_weak_vector and exported.
642
643 2003-02-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
644
645 * hashtab.c: Undid thread safety. (We decided that it's better to
646 let the user explicitly protect the tables (or not) according what
647 is suitable for the application.)
648
649 2003-02-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
650
651 * hashtab.c (scm_hash_fn_remove_x, scm_internal_hash_fold): Made
652 thread safe and handle resizing tables.
653 (scm_ihashx, scm_sloppy_assx, scm_delx_x): Removed
654 SCM_DEFER/ALLOW_INTS.
655
656 2003-02-11 Mikael Djurfeldt <djurfeldt@nada.kth.se>
657
658 * hashtab.c (scm_vector_to_hash_table,
659 scm_c_make_resizing_hash_table, scm_make_hash_table): New
660 functions.
661 (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x): Made thread
662 safe and handle resizing tables.
663
664 * weaks.c (scm_make_weak_key_hash_table,
665 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
666 Size argument made optional. Return resizable table if not
667 specified.
668
669 2003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
670
671 * eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
672 Fixed formals tests for closures. (Thanks to Kevin Ryde.)
673
674 2003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
675
676 * debug.c (scm_procedure_source): Handle all objects for which
677 procedure? is #t. (Thanks to Bill Schottstaedt.)
678
679 2003-01-23 Mikael Djurfeldt <djurfeldt@nada.kth.se>
680
681 * futures.c (mark_futures): Don't need to mark data of recycled
682 futures.
683 (scan_futures, cleanup_undead): Be smarter about marking
684 futures---avoid unnecessary passes through future lists.
685
686 * futures.h, futures.c: New files; Introduced recycling of
687 futures. For fine-grained threading this lifts performance to
688 another level. We can now use parallelization in inner loops of
689 Guile programs without impossible overhead.
690
691 * threads.h, threads.c: Moved futures to their own file.
692
693 * Makefile.am (libguile_la_SOURCES): Added futures.c.
694 (DOT_X_FILES): Added futures.x.
695 (DOT_DOC_FILES): Added futures.doc.
696 (modinclude_HEADERS): Added futures.h.
697
698 * threads.c, threads.h (scm_i_create_thread): Renamed from
699 create_thread and made global.
700
701 * futures.c (scm_make_future): New procedure.
702
703 * eval.c: #include "libguile/futures.h".
704
705 * init.c: #include "futures.h"
706 (scm_init_guile_1): Call scm_init_futures.
707
708 * stime.c (SCM_TIME_UNITS_PER_SECOND): Renamed from CLKTCK.
709
710 * stime.h (SCM_TIME_UNITS_PER_SECOND): Definition moved here.
711
712 * eval.c, eval.h (scm_trampoline_0, scm_i_call_closure_0): New
713 functions.
714
715 * eval.c (scm_trampoline_1): Fixed arguments test for closures.
716
717 2003-01-22 Mikael Djurfeldt <djurfeldt@nada.kth.se>
718
719 * threads.c (create_thread): Don't unwind dynwind chain of parent
720 thread before creation. Just start the new thread with an empty
721 dynwind chain.
722
723 2003-01-20 Mikael Djurfeldt <djurfeldt@nada.kth.se>
724
725 * evalext.c, evalext.h (scm_self_evaluating_p): New function.
726
727 2003-01-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
728
729 * threads.c (scm_timed_wait_condition_variable): Support timed
730 waiting also for simple condition variables.
731
732 * goops.c (TEST_CHANGE_CLASS): Use scm_change_object_class instead
733 of calling the procedure change-object-class.
734
735 2003-01-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
736
737 * ramap.c (scm_ramapc): Typo in error message.
738
739 2003-01-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
740
741 * goops.c (scm_sys_prep_layout_x): Bugfix: Only create layout for
742 slots with instance allocation.
743
744 * goops.c, goops.h (scm_class_extended_generic_with_setter): New
745 class.
746 (scm_compute_applicable_methods): Use scm_generic_function_methods.
747
748 * goops.c (scm_generic_function_methods): Support extended
749 generic functions.
750
751 2002-12-29 Mikael Djurfeldt <djurfeldt@nada.kth.se>
752
753 * eval.c (unmemocopy): Bugfix: scm_sym_delay --> scm_sym_future.
754 Thanks to Neil for pointing this out!
755
756 2002-12-29 Neil Jerram <neil@ossau.uklinux.net>
757
758 * lang.h: Remove declarations matching definitions removed from
759 lang.c (just below).
760
761 2002-12-28 Neil Jerram <neil@ossau.uklinux.net>
762
763 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
764 scm_m_while, scm_nil_eq): Remove definitions that were superfluous
765 and already commented out.
766
767 * read.h (scm_lreadparen), read.c (scm_lreadr, scm_read_token,
768 scm_lreadparen): Support reading vectors with Elisp syntax if
769 SCM_ELISP_READ_EXTENSIONS is defined. (SCM_ELISP_READ_EXTENSIONS
770 is not currently defined, and there isn't even a configure switch
771 to enable it yet.)
772
773 2002-12-26 Marius Vollmer <mvo@zagadka.ping.de>
774
775 * Makefile.am (c-tokenize.o): Refer to source via $< so that vpath
776 builds work.
777 (EXTRA_DIST): Added version.h.in.
778
779 2002-12-21 Mikael Djurfeldt <djurfeldt@nada.kth.se>
780
781 This change makes it possible for one thread to do lazy sweeping
782 while other threads are running. Now only the mark phase need to
783 have all threads asleep. We should look further into this issue.
784 Presently, I've put the locking of scm_i_sweep_mutex at
785 "conservative" places due to my current lack of knowledge about
786 the garbage collector. Please feel free to restrict these regions
787 further to allow for maximal parallelism!
788
789 * gc.c, gc.h (scm_i_sweep_mutex): New mutex.
790
791 * gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
792 scm_gc_register_collectable_memory): Substitute locking of
793 scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
794 (scm_igc): Lock sweep mutex here instead of in callers; Calls to
795 scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
796 the single-thread section (which now only contains the mark
797 phase).
798 (scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
799 Removed SCM_DEFER/ALLOW_INTS. Simply call scm_igc directly.
800
801 * threads.c (gc_section_mutex): Removed.
802
803 2002-12-19 Mikael Djurfeldt <mdj@kvast.blakulla.net>
804
805 * threads.c (create_thread): Clear parent field in root state in
806 order not to unnecessarily remember dead threads.
807
808 * eval.c (call_subr2o_1, call_lsubr2_2): New functions.
809 (scm_trampoline_1, scm_trampoline_2): Use them.
810
811 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
812
813 Partial introduction of real plugin interface.
814
815 * Makefile.am (modinclude_HEADERS): Added threads-plugin.h.
816 (EXTRA_DIST): Added threads-plugin.c.
817
818 * threads-plugin.h, threads-plugin.c: New files.
819
820 * threads.h: #include "libguile/threads-plugin.h".
821
822 * threads.c: #include "libguile/threads-plugin.c".
823
824 * pthread-threads.c: Temporarily remove debugging functions.
825
826 * threads.c, threads.h (scm_yield): Added back.
827
828 2002-12-18 Mikael Djurfeldt <mdj@kvast.blakulla.net>
829
830 * threads.c (really_launch): Detach before unlocking
831 thread_admin_mutex in order not to risk being joined.
832 (scm_i_thread_put_to_sleep, scm_i_thread_wake_up): Keep
833 thread_admin_mutex locked during GC.
834
835 * pthread-threads.c, pthread-threads.h: Improvements to debugging
836 functions.
837
838 2002-12-16 Mikael Djurfeldt <mdj@kvast.blakulla.net>
839
840 * pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
841 support for debugging mutex operations.
842
843 * threads.c (scm_thread): Removed filed joining_threads.
844 (thread_print): Print thread number as well as address of thread
845 structure.
846 (scm_join_thread): Bugfix.
847 (scm_lock_mutex, scm_try_mutex, scm_unlock_mutex,
848 scm_timed_wait_condition_variable, scm_signal_condition_variable,
849 scm_broadcast_condition_variable): Use the low-level API.
850 (scm_all_threads): Return copy of thread list (to prevent
851 unintended destruction).
852 (scm_threads_prehistory): Initialize heap_mutex of fake thread.
853
854 * pthread-threads.c, pthread-threads.h, threads.c: Fixes to
855 pthread "native" recursive mutex support.
856
857 2002-12-15 Mikael Djurfeldt <djurfeldt@nada.kth.se>
858
859 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): New definitions.
860 Simply lock a thread C API recursive mutex.
861 (SCM_NONREC_CRITICAL_SECTION_START,
862 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
863 SCM_REC_CRITICAL_SECTION_END): Removed.
864
865 * eval.c: Replaced SOURCE_SECTION_START / SOURCE_SECTION_END with
866 direct calls to scm_rec_mutex_lock / unlock around the three calls
867 to scm_m_expand_body.
868
869 * eval.c, eval.h (promise_free): New function.
870 (scm_force): Rewritten; Now thread-safe; Removed
871 SCM_DEFER/ALLOW_INTS.
872
873 * pthread-threads.h: Added partially implemented plugin interface
874 for recursive mutexes. These are, for now, only intended to be
875 used internally within the Guile implementation.
876
877 * pthread-threads.c: New file.
878
879 * threads.c: Conditionally #include "pthread-threads.c".
880
881 * eval.c, eval.h (scm_makprom, scm_force): Rewritten to be
882 thread-safe;
883
884 * snarf.h (SCM_MUTEX, SCM_GLOBAL_MUTEX, SCM_REC_MUTEX,
885 SCM_GLOBAL_REC_MUTEX): New macros.
886
887 * eval.c, threads.c, threads.h, snarf.h: Rewrote critical section
888 macros---use mutexes instead.
889
890 * tags.h (SCM_IM_FUTURE): New tag.
891
892 * eval.c (scm_m_future): New primitive macro.
893 (SCM_CEVAL): Support futures.
894 (unmemocopy): Support unmemoization of futures.
895
896 * print.c (scm_isymnames): Name of future isym.
897
898 * version.c: Unmade some changes to my private copy that got
899 committed by mistake.
900
901 2002-12-11 Mikael Djurfeldt <mdj@kvast.blakulla.net>
902
903 * gc-malloc.c, gc.h, init.c: Reverted gc-malloc change of
904 2002-12-10.
905
906 * gc.c (scm_igc): Don't call scm_i_thread_invalidate_freelists.
907
908 * gc.c (scm_gc_sweep): Call it here instead, which is a more
909 logical place.
910
911 * threads.c (create_thread): Remember root object until the handle
912 of the new thread is on all_threads list.
913
914 * root.c (scm_make_root): Moved copying of fluids until after
915 creation of root handle so that the fluids are GC protected. Also
916 removed the critical section.
917
918 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
919
920 * gc-malloc.c, gc.h (scm_gc_malloc_prehistory): New function.
921
922 * gc-malloc.c (malloc_mutex): New mutex.
923 (scm_gc_malloc_prehistory): Initialize it.
924 (scm_realloc): Serialize call to realloc
925 (scm_calloc): Same for calloc.
926 Thanks to Wolfgang Jaehrling!
927 (Now we have to make sure all calls to malloc/realloc are made
928 through scm_malloc.)
929
930 * init.c (scm_init_guile_1): Call scm_gc_malloc_prehistory.
931
932 * threads.c (really_launch): Release heap (to prevent deadlock).
933 (create_thread): Release heap before locking thread admin mutex.
934
935 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
936
937 * threads.c (scm_i_thread_invalidate_freelists): New
938 function.
939
940 * gc.c (scm_igc): Call scm_i_thread_invalidate_freelists.
941
942 * modules.c (scm_export): Inserted a return statement.
943
944 2002-12-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
945
946 * modules.c (scm_export): new function
947
948 * gc-card.c: add a note about malloc()/free() overhead.
949
950 2002-12-10 Mikael Djurfeldt <mdj@kvast.blakulla.net>
951
952 * Makefile.am (c-tokenize.$(OBJEXT)): Don't look for c-tokenize.c
953 in srcdir.
954
955 2002-12-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
956
957 These changes remove scm_ints_disabled (which hasn't has any
958 effect in Guile for quite some time).
959
960 * async.c, error.h (scm_ints_disabled): Removed.
961
962 * gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
963 root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
964 SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
965 (old_ints): Removed.
966
967 * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
968 critical section.
969 (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
970 SCM_ALLOW_INTS.
971
972 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
973
974 * threads.c (scm_mutex_lock, scm_cond_wait, scm_cond_timedwait):
975 Removed accidental #if 0 around these functions.
976
977 These changes are the start of support for preemptive
978 multithreading. Marius and I have agreed that I commit this code
979 into the repository although it isn't thoroughly tested and surely
980 introduces many bugs. The bugs should only be exposed when using
981 threads, though. Signalling and error handling for threads is
982 very likely broken. Work on making the implementation cleaner and
983 more efficient is needed.
984
985 * __scm.h (SCM_ALLOW_INTS_ONLY): Removed.
986 (SCM_NONREC_CRITICAL_SECTION_START,
987 SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
988 SCM_REC_CRITICAL_SECTION_END): New macros.
989 (SCM_CRITICAL_SECTION_START/END): Defined here.
990
991 * eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
992 the three calls to scm_m_expand_body.
993
994 * gc.h: #include "libguile/pthread-threads.h";
995 (SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
996
997 * gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
998 scm_t_key;
999
1000 * gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
1001 access.
1002
1003 * gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
1004
1005 * gc-freelist.c, threads.c (really_launch): Use
1006 SCM_FREELIST_CREATE.
1007
1008 * gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
1009
1010 * gc.c (scm_i_expensive_validation_check, scm_gc,
1011 scm_gc_for_newcell): Put threads to sleep before doing GC-related
1012 heap administration so that those pieces of code are executed
1013 single-threaded. We might consider rewriting these code sections
1014 in terms of a "call_gc_code_singly_threaded" construct instead of
1015 calling the pair of scm_i_thread_put_to_sleep () and
1016 scm_i_thread_wake_up (). Also, we would want to have as many of
1017 these sections eleminated.
1018
1019 * init.c (scm_init_guile_1): Call scm_threads_prehistory.
1020
1021 * inline.h: #include "libguile/threads.h"
1022
1023 * pthread-threads.h: Macros now conform more closely to the
1024 pthreads interface. Some of them now take a second argument.
1025
1026 * threads.c, threads.h: Many changes.
1027
1028 2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1029
1030 * Makefile.am (version.h): Changed $^ --> $< in rule for
1031 version.h.
1032
1033 2002-12-08 Rob Browning <rlb@defaultvalue.org>
1034
1035 * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now.
1036 (SCM_MINOR_VERSION): use @--@ substitution now.
1037 (SCM_MICRO_VERSION): use @--@ substitution now.
1038 (scm_effective_version): new function prototype.
1039
1040 * version.c (scm_effective_version): new function, also add
1041 effective-version.
1042
1043 * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION.
1044 (libpath.h): use GUILE_EFFECTIVE_VERSION to compute
1045 SCM_LIBRARY_DIR.
1046 (version.h): generate this here rather than configure.in. This
1047 approach tracks source edits better (i.e. more immediately).
1048 Might be worth considering for other .in files too.
1049
1050 2002-12-02 Marius Vollmer <mvo@zagadka.ping.de>
1051
1052 Reorganized thread package selection. A thread package now only
1053 implements a small set of pthread like functions and Guile
1054 implements the rest on top of that. Guile's implementation is
1055 what the "coop-pthreads" package has been previously. Support for
1056 "coop" threads has been removed until I get time to add it again.
1057
1058 * Makefile.am (libguile_la_SOURCES): Removed iselect.c.
1059 (noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
1060 null-threads.c, coop-pthreads.c.
1061 (modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
1062 pthread-threads.h.
1063
1064 * validate.h (SCM_VALIDATE_THREAD): Moved to threads.h.
1065
1066 * threads.h: Do not include "libguile/coop-defs.h". Include
1067 "libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
1068 (previously deprecated) C level thread API prototypes. They are
1069 now in the thread package specific headers, "null-threads.h" and
1070 "pthread-threads.h".
1071 (SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
1072 New.
1073 (scm_threads_init): Removed.
1074 (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
1075 SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
1076 SCM_I_THREAD_SWITCH_COUNT): Define here.
1077 (scm_single_thread_p): Removed.
1078 (scm_call_with_new_thread): Take two args directly instead of list
1079 of two args.
1080 (scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
1081 SCM_SET_THREAD_LOCAL_DATA): Define here.
1082
1083 * threads.c: Merged with "coop-pthreads.c".
1084
1085 * null-threads.h: Implement pthread-like API as a set of macros.
1086
1087 * pthread-threads.h: New, implement pthread-like API by deferring
1088 to pthread itself.
1089
1090 * init.c (scm_init_guile_1): Do not call scm_init_iselect, which
1091 has been lost in the reorganization.
1092
1093 2002-12-01 Mikael Djurfeldt <mdj@linnaeus>
1094
1095 The following change makes it possible to move procedure
1096 application dispatch outside inner loops. The motivation was
1097 clean implementation of efficient replacements of R5RS primitives
1098 in SRFI-1.
1099
1100 The semantics is clear: scm_trampoline_N returns an optimized
1101 version of scm_call_N (or NULL if the procedure isn't applicable
1102 on N args).
1103
1104 Applying the optimization to map and for-each increases efficiency
1105 noticeably. For example, (map abs ls) is 8 times faster than
1106 before.
1107
1108 * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
1109
1110 * eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
1111
1112 * eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
1113 (map, for-each): Handle also application on two args as a special
1114 case; Use trampolines.
1115
1116 Other changes:
1117
1118 * sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
1119 (subr2oless): Removed.
1120 (scm_restricted_vector_sort_x): Use scm_return_first to keep the
1121 vector GC protected.
1122
1123 * eval.c (check_map_args): Use scm_out_of_range_pos instead of
1124 scm_out_of_range.
1125
1126 2002-11-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1127
1128 * evalext.[ch] (scm_m_undefine, undefine): Deprecated.
1129
1130 2002-11-17 Mikael Djurfeldt <mdj@linnaeus>
1131
1132 * debug.c (scm_make_iloc): Added missing "return".
1133
1134 2002-11-17 Marius Vollmer <mvo@zagadka.ping.de>
1135
1136 * strports.c (scm_eval_string_in_module): Validate second arg to
1137 be a module. Thanks to Arno Peters!
1138
1139 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1140
1141 * .cvsignore: remove goops.c
1142
1143 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1144
1145 * modules.c (scm_env_top_level, scm_lookup_closure_module,
1146 module_variable, scm_module_lookup_closure,
1147 scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
1148 scm_system_module_env_p): Don't compare SCM values with C
1149 operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
1150 over SCM_NFALSEP.
1151
1152 2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1153
1154 * eval.h (SCM_MAKE_ILOC): New macro.
1155
1156 * debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
1157 the iloc bitpattern here.
1158
1159 2002-11-14 Mikael Djurfeldt <mdj@linnaeus>
1160
1161 * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be
1162 part of the API, otherwise it's difficult to write Guile
1163 extensions using non-blocking I/O => moved #include
1164 "libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
1165
1166 * coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
1167 s_unlock_mutex.
1168
1169 2002-11-10 Marius Vollmer <mvo@zagadka.ping.de>
1170
1171 * __scm.h (USE_THREADS, GUILE_ISELECT): Do not define here. They
1172 are defined in configure.in.
1173
1174 * threads.c: Removed SCM_API from function definitions. SCM_API
1175 is only for declarations.
1176
1177 2002-11-07 Mikael Djurfeldt <mdj@linnaeus>
1178
1179 * coop-pthreads.h: Added support for thread specific data to the
1180 generic C API for the coop-pthreads case.
1181
1182 * threads.c, threads.h (scm_cond_init): Undo unintentional API
1183 change.
1184 (scm_cond_broadcast): Added missing function.
1185
1186 2002-11-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1187
1188 * coop.c (coop_next_runnable_thread): Removed, wich should have
1189 happened when GUILE_ISELECT was hard-wired.
1190
1191 2002-11-03 Marius Vollmer <mvo@zagadka.ping.de>
1192
1193 * Makefile.am (libguile_la_SOURCES): Added threads.c
1194 (DOT_DOC_FILES): Added threads.doc.
1195 (DOT_X_FILES): Added threads.x.
1196 (EXTRA_libguile_la_SOURCES): Removed threads.c.
1197 (noinst_HEADERS): Added coop-pthreads.c.
1198 (modinclude_HEADERS): Added coop-pthreads.h.
1199
1200 * __scm.h (USE_THREADS, GUILE_ISELECT): Define when
1201 SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
1202
1203 * iselect.c: Include "_scm.h" before testing HAVE_UNISTD_H.
1204 Thanks to Bill Schottstaedt!
1205
1206 * numbers.c (scm_integer_expt): Make 0^z == 0 for z != 0.
1207
1208 * _scm.h (HAVE_RESTARTABLE_SYSCALLS): Do define even when
1209 SCM_COPT_THREADS is defined.
1210 (SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
1211 is defined.
1212
1213 * coop-pthreads.c: Some harmless renamings of internal stuff.
1214 (create_thread): New, generalized version of
1215 scm_call_with_new_thread.
1216 (scm_call_with_new_thread): Use it.
1217 (scm_spawn_thread): New, use create_thread.
1218
1219 2002-11-02 Marius Vollmer <mvo@zagadka.ping.de>
1220
1221 * coop-pthreads.c, coop-pthreads.h: Redone completely, you might
1222 start testing it now.
1223
1224 * _scm.h: Include <errno.h< so that SCM_SYSCALL is correctly
1225 defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
1226 (HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
1227 is defined.
1228
1229 2002-10-27 Marius Vollmer <mvo@zagadka.ping.de>
1230
1231 * scmsigs.c (signal_cell_handlers, install_handler_data,
1232 scm_delq_spine_x, really_install_handler, install_handler): New
1233 scheme for triggering signal handlers, to simplify take_signal.
1234 (take_signal): Simplified, to avoid race conditions.
1235 (scm_sigaction_for_thread): Use new Scheme. Validate that thread
1236 hasn't exited yet.
1237
1238 * async.c (scm_async_click): Reset pending_asyncs, handle
1239 signal_asyncs. Don't set cdr of a non-signal async to #f.
1240 (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
1241 always. Set pending_asyncs.
1242 (scm_system_async_mark_for_thread): Check that thread has not
1243 exited.
1244 (scm_unmask_signals, decrease_block): Call scm_async_click after
1245 block_asyncs becomes zero.
1246
1247 * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
1248 active_asyncs.
1249
1250 * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
1251 fields.
1252 * root.c (root_mark): Mark them.
1253 (make_root): Initialize them.
1254
1255 * iselect.c, iselect.h: Replaced GUILE_ISELECT with
1256 USE_COOP_THREADS.
1257 (scm_internal_select): Define one version for USE_COOP_THREADS and
1258 one for USE_NULL_THREADS.
1259 (scm_init_iselect): Likewise.
1260
1261 * inline.h (scm_cell, scm_double_cell): Also allow
1262 USE_COPT_THREADS to not protect the slot initializers.
1263
1264 * init.c (scm_init_guile_1): Call scm_init_thread_procs. This is
1265 because threads need to be initialized before the stack, but
1266 gsubrs such as scm_timed_condition_variable_wait can only be
1267 created later.
1268
1269 * threads.h: Include "coop-pthreads.h" when requested.
1270 (scm_threads_make_mutex, scm_threads_lock_mutex,
1271 scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
1272 not implemented anyway.
1273 (scm_init_thread_procs, scm_try_mutex,
1274 scm_timed_condition_variable_wait,
1275 scm_broadcast_condition_variable, scm_c_thread_exited_p,
1276 scm_thread_exited_p): New prototypes.
1277 (struct timespec): Define if not already defined.
1278 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1279 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
1280 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1281 scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
1282 deprecated.
1283
1284 * threads.c: Include <errno.h>. Include "coop-pthreads.c" when
1285 requested.
1286 (scm_thread_exited_p): New.
1287 (scm_try_mutex, scm_broadcast_condition_variable): Newly
1288 registered procedures.
1289 (scm_wait_condition_variable, scm_timed_wait_condition_variable):
1290 Use the latter as the procedure for "wait-condition-variable",
1291 thus offering a optional timeout parameter to Scheme.
1292 (scm_wait_condition_variable): Implement in terms of
1293 scm_timed_wait_condition_variable.
1294 (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1295 scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
1296 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1297 scm_cond_broadcast, scm_cond_destroy): Implement in terms of
1298 scm_make_mutex, etc, and deprecate.
1299 (scm_init_threads): Do not create smobs, leave this to
1300 scm_threads_init. Do not include "threads.x" file.
1301 (scm_init_thread_procs): New, include "threads.x" here.
1302
1303 * null-threads.h (scm_null_mutex, scm_null_mutex_init,
1304 scm_null_mutex_lock, scm_null_mutex_unlock,
1305 scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
1306 scm_null_condvar_wait, scm_null_condvar_signal,
1307 scm_null_condvar_destroy): Removed.
1308 (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
1309 scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
1310 scm_cond_destory): Do not define, they are now deprecated and
1311 handled by threads.{h,c}.
1312
1313 * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
1314 (scm_threads_init): Create smobs here, using the appropriate
1315 sizes.
1316 (block): Removed, now unused.
1317 (scm_c_thread_exited_p): New.
1318 (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
1319 scm_null_mutex_destroy, scm_null_condvar_init,
1320 scm_null_condvar_wait, scm_null_condvar_signal,
1321 scm_null_condvar_destroy): Removed and updated users to do their
1322 task directly.
1323 (scm_try_mutex, timeval_subtract,
1324 scm_timed_wait_condition_variable,
1325 scm_broadcast_condition_variable): New.
1326 (scm_wait_condition_variable): Removed.
1327
1328 * coop-defs.h (coop_m): Added 'level' field.
1329 (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
1330 scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
1331 scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
1332 scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
1333 define.
1334 (coop_condition_variable_broadcast): New.
1335
1336 * coop-threads.c (scm_threads_init): Create smobs here, using the
1337 appropriate sizes.
1338 (scm_c_thread_exited_p, scm_try_mutex,
1339 scm_timed_wait_condition_variable,
1340 scm_broadcast_condition_variable): New.
1341 (scm_wait_condition_variable): Removed.
1342
1343 * coop.c (coop_new_mutex_init): Initialize level.
1344 (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
1345 level.
1346 (coop_condition_variable_signal): Renamed to
1347 coop_condition_variable_broadcast and reimplemented in terms of
1348 that. Thus...
1349 (coop_condition_variable_broadcast): New.
1350
1351 * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
1352
1353 * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
1354
1355 2002-10-21 Marius Vollmer <mvo@zagadka.ping.de>
1356
1357 * null-threads.c: Include <time.h>. Also, use <...> for inclusion
1358 of system headers.
1359
1360 * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
1361 New. Use it instead of SCM_MAKE_VALIDATE in lots of places to
1362 give better error messages. Thanks to Bill Schottstaedt!
1363
1364 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1365
1366 * evalext.h, evalext.c (scm_definedp, scm_defined_p): Renamed
1367 scm_definedp to scm_defined_p and deprecated scm_definedp.
1368
1369 2002-10-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1370
1371 * async.h, async.c (scm_system_async): Fixed deprecation to work
1372 correctly when deprecated features are excluded.
1373
1374 2002-10-16 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1375
1376 * async.c (scm_system_async_mark_for_thread): Validate thread
1377 argument.
1378
1379 * coop-threads.c (scm_i_thread_root): Do not validate argument.
1380
1381 * feature.c (scm_init_feature): Don't add 'threads' for
1382 USE_NULL_THREADS.
1383
1384 * inline.h (scm_cell, scm_double_cell): Also allow
1385 USE_NULL_THREADS to not protect the slot initializers.
1386
1387 * scmsigs.c (scm_sigaction_for_thread): It's "USE_THREADS" not
1388 "USE_THREAD".
1389
1390 * Makefile.am (noinst_HEADERS): Added null-threads.c.
1391 (modinclude_HEADERS): Added null-threads.h.
1392
1393 * threads.h: Include null-threads.h when !USE_COOP_THREADS.
1394 * threads.c: Include null-threads.c when !USE_COOP_THREADS.
1395 (scm_init_threads): Use generic type names scm_t_mutex and
1396 scm_t_cond instead of coop_m and coop_c.
1397
1398 * null-threads.c, null-threads.h: New files.
1399
1400 2002-10-15 Marius Vollmer <mvo@zagadka.ping.de>
1401
1402 * Makefile.am: Replaced "$<" in non-pattern rules with its value.
1403 This is to support makes that know about "$<" only in pattern
1404 rules, like Sun's make.
1405
1406 2002-10-13 Marius Vollmer <mvo@zagadka.ping.de>
1407
1408 * Makefile.am (libpath.h): Fixed typo in top_srcdir_absolute
1409 substitution. Thanks to David Allouche!
1410
1411 2002-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
1412
1413 * evalext.h: Replaced SCM_DEBUG_DEPRECATED with
1414 !SCM_ENABLE_DEPRECATED.
1415
1416 2002-10-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1417
1418 * async.c (scm_system_async_mark_for_thread): Only call
1419 scm_i_thread_root when USE_THREADS is defined. Use scm_root
1420 otherwise.
1421
1422 * scmsigs.c (take_signal): Only call scm_i_thread_root when
1423 USE_THREADS is defined. Use scm_root otherwise.
1424 (scm_sigaction_for_thread): Ignore THREAD argument when
1425 USE_THREADS is not defined. Also, move THREAD argument defaulting
1426 out of HAVE_SIGACTION section, which was a bug.
1427
1428 2002-10-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1429
1430 * scmsigs.c (scm_sigaction_for_thread): Store original handler in
1431 signal_handlers, not the closure that is used as the async.
1432 The closure is stored in signal_handler_cells, as previously.
1433
1434 2002-10-10 Marius Vollmer <mvo@zagadka.ping.de>
1435
1436 * root.h (scm_root_state): Added 'block_async' slot.
1437 (scm_active_asyncs): Removed abbrev.
1438 * root.c (scm_make_root): Initialize 'block_asyncs' slot.
1439
1440 * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs
1441 abbrev.
1442
1443 * async.h (scm_call_with_blocked_asyncs,
1444 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
1445 scm_c_call_with_unblocked_asyncs): New prototypes.
1446 (scm_mask_signals, scm_unmask_signals): Deprecated.
1447 (scm_mask_ints): Turned into a macro.
1448 * async.c (scm_mask_ints): Removed.
1449 (scm_run_asyncs): Do not set scm_mask_ints while running an async.
1450 this should not be necessary.
1451 (scm_async_click): Test block_asyncs instead of scm_mask_ints.
1452 (scm_mask_signals, scm_unmask_signals): Deprecated. Emit
1453 deprecation warning and check for errornous use. Set block_asyncs
1454 instead of scm_mask_ints.
1455 (increase_block, decrease_block, scm_call_with_blocked_asyncs,
1456 scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
1457 scm_c_call_with_unblocked_asyncs): New.
1458
1459 * script.c (scm_compile_shell_switches): Do not set scm_mask_ints.
1460 Asyncs are enabled by default.
1461
1462 2002-10-09 Neil Jerram <neil@ossau.uklinux.net>
1463
1464 * vports.c (scm_make_soft_port): Allow vector argument to carry a
1465 6th element: an input waiting thunk.
1466 (sf_input_waiting): New.
1467
1468 2002-10-05 Marius Vollmer <mvo@zagadka.ping.de>
1469
1470 * root.c (root_mark): Mark active_asyncs slot.
1471
1472 * async.c (scm_async_click): Set the cdr of a executed handler
1473 cell to SCM_BOOL_F, not SCM_EOL.
1474 (scm_i_queue_async_cell): Queue the cell at the end of the list,
1475 and only if the handler procedure is not already present.
1476 (scm_system_async_mark_for_thread): Initialize cdr of handler cell
1477 with SCM_BOOL_F.
1478 * scmsigs.c (scm_sigaction_for_thread): Likewise.
1479
1480 2002-10-04 Rob Browning <rlb@defaultvalue.org>
1481
1482 * guile.c (main): switch to scm_lt_dlset_preloaded_symbols;
1483
1484 * dynl.c (sysdep_dynl_link): switch to scm_lt_dlhandle,
1485 scm_lt_dlopenext, and scm_lt_dlerror.
1486 (sysdep_dynl_unlink): switch to scm_lt_dlhandle, scm_lt_dlclose,
1487 and scm_lt_dlerror.
1488 (sysdep_dynl_func): switch to scm_lt_dlhandle, scm_lt_dlsym,
1489 and scm_lt_dlerror.
1490 (sysdep_dynl_init): switch to scm_lt_dlinit();
1491
1492 * Makefile.am (libguile_la_LIBADD): switch to use
1493 libguile-ltdl.la.
1494
1495 * numbers.c (scm_integer_expt): (expt 0 1) should be 1.
1496
1497 2002-10-04 Marius Vollmer <mvo@zagadka.ping.de>
1498
1499 * scmsigs.h (scm_sigaction_for_thread): New prototype.
1500 * scmsigs.c (got_signal): Removed.
1501 (signal_handler_cells, signal_handler_threads): New.
1502 (take_signal): Queue the cell of the signal for the specified
1503 thread. Reset the signal handler on systems that don't have
1504 sigaction.
1505 (sys_deliver_signals): Removed.
1506 (close_1): New.
1507 (scm_sigaction_for_thread): Renamed from scm_sigaction and
1508 extended to also set the thread of a signal and allocate a cell
1509 for it. Keep the Scheme name "sigaction". Check that signum is
1510 within range. Also, use SCM_VECTOR_REF instead of SCM_VELTS.
1511 (scm_sigaction): Implement in terms of scm_sigaction_for_thread.
1512 (scm_init_scmsigs): Allocate signal_handler_cells and
1513 signal_handler_threads vectors.
1514
1515 * async.c: Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so
1516 that system asnycs and user asyncs are separated. Reimplemented
1517 system asyncs to work per-thread.
1518
1519 * gc.c (scm_init_gc): Do not use scm_system_async.
1520
1521 * async.h (scm_asyncs_pending, scm_set_tick_rate,
1522 scm_set_switch_rate, scm_system_async_mark_from_signal_handler):
1523 Removed prototypes.
1524 (scm_i_queue_async_cell): New.
1525
1526 * __scm.h (scm_asyncs_pending_p): Removed.
1527 (SCM_ASYNC_CLICK): Check scm_active_asyncs instead of
1528 scm_asyncs_pending_p.
1529
1530 * async.h (scm_system_async_mark_for_thread): New prototype.
1531
1532 * __scm.h: Removed GUILE_OLD_ASYNC_CLICK code.
1533
1534 * root.h (scm_root_state): Added new "active_asyncs" slot.
1535 * root.c (scm_make_root): Initialize it to SCM_EOL.
1536
1537 * coop-defs.h (coop_t): Added new "handle" slot.
1538 * coop-threads.c (all_threads, scm_current_thread,
1539 scm_all_threads, scm_i_thread_root): New.
1540 (scm_threads_init): Add main thread to all_threads.
1541 (scheme_launch_thread): Remove thread from all_threads when it
1542 terminates.
1543 (scm_call_with_new_thread): Initialize handle slot of coop_t
1544 structure and add new thread to all_threads.
1545 (scm_spawn_thread): Likewise.
1546
1547 * threads.h (scm_current_thread, scm_all_threads): New prototypes.
1548 * threads.c (scm_current_thread, scm_all_threads): Register as
1549 primitives.
1550
1551 * dynl.c: Use scm_lt_ prefix for libltdl functions.
1552
1553 2002-09-29 Neil Jerram <neil@ossau.uklinux.net>
1554
1555 * script.c (scm_compile_shell_switches): Fix bad spelling of
1556 `explicitly' in comment.
1557
1558 2002-09-28 Neil Jerram <neil@ossau.uklinux.net>
1559
1560 * posix.c (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid):
1561 Refer to provided? in doc string rather than deprecated feature?.
1562
1563 2002-09-24 Gary Houston <ghouston@arglist.com>
1564
1565 * inline.h (scm_double_cell): prevent reordering of statements
1566 with any following code (for GCC 3 strict-aliasing).
1567 * numbers.c (scm_make_real), num2float.i.c (FLOAT2NUM): removed
1568 the earlier version of the reordering prevention.
1569
1570 2002-09-19 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1571
1572 * inline.h (scm_double_cell): move SET_GCMARK set out of if body.
1573
1574 2002-09-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1575
1576 * gc-malloc.c (scm_gc_register_collectable_memory): more overflow
1577 protection.
1578
1579 2002-09-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1580
1581 * inline.h: include stdio.h
1582
1583 * smob.c (free_print): abort if scm_debug_cell_accesses_p is set
1584
1585 2002-09-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1586
1587 * gc-segment.c (scm_i_make_initial_segment): check user settings
1588 for sanity.
1589
1590 * gc-malloc.c (scm_gc_init_malloc): check user settings for
1591 sanity.
1592
1593 * gc-freelist.c (scm_init_freelist): check user settings for sanity.
1594
1595 * struct.h: change scm_structs_to_free to scm_i_structs_to_free
1596
1597 * gc-malloc.c (scm_gc_register_collectable_memory): use floats;
1598 these won't ever wrap around with high memory usage. Thanks to
1599 Sven Hartrumpf for finding this.
1600
1601 * gc-freelist.c: include <stdio.h>
1602
1603 * gc-malloc.c: add DEBUGINFO for mtrigger GCs.
1604
1605 2002-09-01 Marius Vollmer <mvo@zagadka.ping.de>
1606
1607 * vectors.h (SCM_VECTOR_REF): New.
1608
1609 * snarf.h (SCM_DEFINE_PUBLIC): New.
1610
1611 2002-08-30 Marius Vollmer <mvo@zagadka.ping.de>
1612
1613 * socket.c (scm_addr_vector): Added size of address to arguments.
1614 Use it to avoid accessing a non-existent path in a sockaddr_un.
1615 Changed all callers.
1616
1617 2002-08-29 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1618
1619 * gc.h: remove DOUBLECELL card flags.
1620
1621 * gc-malloc.c (scm_calloc): try to use calloc() before calling
1622 scm_realloc().
1623
1624 * gc-segment.c (scm_i_initialize_heap_segment_data): remove card
1625 init loop; handle this from scm_init_card_freelist()
1626
1627 * gc-card.c (scm_init_card_freelist): init bit vector here.
1628
1629 * numbers.c (scm_make_real): prevent reordering of statements
1630 num2float.i.c (FLOAT2NUM): idem
1631
1632 2002-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1633
1634 * eval.h: prepend libguile/ to include path
1635
1636 2002-08-26 Marius Vollmer <mvo@zagadka.ping.de>
1637
1638 * script.c (scm_compile_shell_switches): Added "2002" to Copyright
1639 years. Thanks to Martin Grabmüller!
1640
1641 2002-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1642
1643 * gc-segment.c (scm_i_get_new_heap_segment): use float in stead of
1644 unsigned numbers for computing minimum heap increment. This
1645 prevents weird results when a a negative minimum increment is
1646 computed.
1647
1648 2002-08-24 Marius Vollmer <mvo@zagadka.ping.de>
1649
1650 * gc_os_dep.c: When we have __libc_stack_end, use that directly
1651 instead of the old tricks.
1652
1653 * guile-snarf.in: Do not expect the input file to be the first
1654 argument after the optional "-o" option, just pass everything to
1655 the pre-processor without extracting the input file name.
1656
1657 2002-08-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1658
1659 * gc-segment.c (scm_i_get_new_heap_segment): Oops. We want segment
1660 length *at* least SCM_MIN_HEAP_SEG_SIZE, not at most.
1661
1662 2002-08-22 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1663
1664 * gc.h, gc.c: make scm_cells_allocated unsigned again. Thanks to
1665 Bill Schottstaedt for the bug report
1666
1667 2002-08-20 Marius Vollmer <mvo@zagadka.ping.de>
1668
1669 * print.c (scm_iprin1): Print primitives generics always as
1670 "primitive-generic" even when they have no primitive methods yet.
1671
1672 2002-08-17 Gary Houston <ghouston@arglist.com>
1673
1674 * coop.c (coop_create): removed bogus 2nd argument in scm_malloc
1675 call.
1676
1677 2002-08-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1678
1679 * ports.c (scm_add_to_port_table): small bugfix.
1680
1681 * mallocs.c (scm_malloc_obj): use scm_gc_malloc in stead of
1682 malloc.
1683
1684 * gc-segment.c (scm_i_get_new_heap_segment): remove cluster cruft:
1685 only use SCM_MIN_HEAP_SEG_SIZE.
1686
1687 * ports.c (scm_add_to_port_table): add backwards compatibility
1688 function
1689
1690 * ports.h: use scm_i_ prefix for port table and port table size.
1691
1692 2002-08-15 Mikael Djurfeldt <mdj@linnaeus>
1693
1694 * vports.c (scm_make_soft_port): Initialize pt variable.
1695
1696 2002-08-13 Marius Vollmer <mvo@zagadka.ping.de>
1697
1698 * strports.h (scm_c_eval_string_in_module,
1699 scm_eval_string_in_module): New prototypes.
1700 * strports.c (scm_eval_string_in_module): New, but use
1701 "eval-string" as the Scheme name and make second parameter
1702 optional.
1703 (scm_eval_string): Implement using scm_eval_string_in_module.
1704 (scm_c_eval_string_in_module): New.
1705 Thanks to Ralf Mattes for the suggestion!
1706
1707 2002-08-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1708
1709 * gc-card.c ("sweep_card"): remove SCM_MISC_ERROR messages: print
1710 message and abort.
1711
1712 * gc-mark.c ("scm_gc_mark_dependencies"): idem.
1713
1714 * ports.c ("scm_new_port_table_entry"): return a boxed SCM in
1715 stead of scm_t_port*. The function now takes a tag argument.
1716
1717 2002-08-08 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1718
1719 * gc.h: add scm_debug_cells_gc_interval to public interface
1720
1721 * gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
1722
1723 * gc.c (scm_i_expensive_validation_check): separate expensive
1724 validation checks from cheap ones.
1725
1726 2002-08-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1727
1728 * read.c (scm_input_error): new function: give meaningful error
1729 messages, and throw read-error
1730
1731 * gc-malloc.c (scm_calloc): add scm_calloc.
1732
1733 2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1734
1735 * tags.h: remove GC bits documentation from the tags table.
1736
1737 * read.c (INPUT_ERROR): Prepare for file:line:column error
1738 messages for errors in scm_lreadr() and friends.
1739
1740 2002-08-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
1741
1742 * gc-malloc.c (scm_malloc): use scm_realloc() (simplifies
1743 implementation).
1744 (scm_gc_calloc): new function
1745
1746 2002-08-04 Han-Wen <hanwen@cs.uu.nl>
1747
1748 * ports.c (scm_new_port_table_entry): init port entry to 0
1749 completely.
1750
1751 * ports.c (scm_new_port_table_entry): change function from
1752 scm_add_to_port_table. This prevents cells with null-pointers from
1753 being exposed to GC.
1754
1755 * vports.c (scm_make_soft_port) strports.c (scm_mkstrport),
1756 fports.c (scm_fdes_to_port): Use scm_new_port_table_entry().
1757
1758 * gc.c (scm_gc_stats): add cell-yield and malloc-yield statistic
1759 to gc-stats.
1760
1761 * numbers.c (big2str): return "0" for 0 iso. ""
1762
1763 * gc-segment.c, gc-malloc.c gc-mark.c, gc-freelist.c, gc-card.c,
1764 private-gc.h: new file
1765
1766 * gc.c: completely revised and cleaned up the GC. It now uses lazy
1767 sweeping. More documentation in workbook/newgc.text
1768
1769 2002-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1770
1771 * random.c (rstate_free): Return zero.
1772
1773 2002-07-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1774
1775 * environments.c (remove_key_from_alist): Removed.
1776
1777 (obarray_remove): Simplified.
1778
1779 2002-07-24 Stefan Jahn <stefan@lkcc.org>
1780
1781 * continuations.h: ia64: Include <signal.h> before
1782 <sys/ucontext.h>.
1783
1784 2002-07-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1785
1786 * modules.c (scm_sym2var): Don't compare SCM values with ==.
1787
1788 2002-07-21 Han-Wen <hanwen@cs.uu.nl>
1789
1790 * goops.c (scm_compute_applicable_methods): use
1791 scm_remember_upto_here_1 iso scm_remember_upto_here
1792
1793 * macros.c: include deprecation.h
1794
1795 * vectors.c (scm_vector_move_right_x): remove side effect in
1796 macro arg.
1797 (scm_vector_move_left_x): idem.
1798
1799 * net_db.c, posix.c, socket.c: variable naming: change ans to
1800 result.
1801
1802 * sort.c (scm_merge_vector_x): accept vector as argument
1803 iso. SCM*. This is needed for full GC correctness.
1804
1805 * gc.h: undo previous undocumented changes related to #ifdef
1806 GENGC.
1807
1808 2002-07-20 Han-Wen <hanwen@cs.uu.nl>
1809
1810 * *.c: add space after commas everywhere.
1811
1812 * *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
1813 Document cases where SCM_WRITABLE_VELTS() is used.
1814
1815 * vectors.h (SCM_VELTS): prepare for write barrier, and let
1816 SCM_VELTS() return a const pointer
1817 (SCM_VECTOR_SET): add macro.
1818
1819 2002-07-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1820
1821 * eval.c (SCM_CEVAL), macros.c (macro_print, scm_makmacro,
1822 scm_sym_macro, scm_macro_type), macros.h (scm_makmacro):
1823 Deprecated the special kind of built-in dynamic syntax transformer
1824 that was inaccurately named "macro". Note: The built-in syntax
1825 transformers that are named "mmacro" or "memoizing-macro" still
1826 exist, and it is these which come much closer to what one would
1827 call a macro.
1828
1829 2002-07-13 Neil Jerram <neil@ossau.uklinux.net>
1830
1831 * eval.c (unmemocopy): Fix for
1832 1001-local-eval-error-backtrace-segfaults (unmemoization crash
1833 with internal definitions and local-eval).
1834
1835 2002-07-12 Gary Houston <ghouston@arglist.com>
1836
1837 * dynl.c: Don't define stub procedures if DYNAMIC_LINKING is not
1838 defined. They don't do anything useful, especially since the
1839 only case where DYNAMIC_LINKING is undefined seems to be
1840 when --with-modules=no is given to configure, which is basically
1841 requesting that the "dynamic linking module" be omitted.
1842
1843 * Makefile.am (libguile_la_SOURCES): move dynl.c from
1844 libguile_la_SOURCES to EXTRA_libguile_la_SOURCES.
1845
1846 * extensions.c (load_extension): check DYNAMIC_LINKING for
1847 scm_dynamic_call.
1848 * init.c (scm_init_guile_1): check DYNAMIC_LINKING for
1849 scm_init_dynamic_linking.
1850
1851 2002-07-10 Marius Vollmer <mvo@zagadka.ping.de>
1852
1853 * guile.c, iselect.h, net_db.c, posix.c, socket.c: No need to
1854 check for Cygwin when including <winsock2.h>, this is already
1855 check for by configure. Thus, revert change from 2002-07-07.
1856
1857 2002-07-10 Gary Houston <ghouston@arglist.com>
1858
1859 * eq.c: include <string.h>
1860 * dynl.c: docstring editing.
1861
1862 2002-07-09 Gary Houston <ghouston@arglist.com>
1863
1864 * dynl.c (scm_dynamic_call): docstring editing.
1865
1866 2002-07-08 Rob Browning <rlb@defaultvalue.org>
1867
1868 * gc_os_dep.c: HURD fixes.
1869
1870 2002-07-07 Marius Vollmer <mvo@zagadka.ping.de>
1871
1872 Crosscompiling and Cygwin fixes by Jan Nieuwenhuizen. Thanks!
1873
1874 * Makefile.am: Override default rule for c-tokenize.$(OBJECT);
1875 this should be compiled for BUILD host.
1876 Override default rule for
1877 guile_filter_doc_snarfage$(EEXECT); this should run on BUILD host.
1878 Add missing $(EXEEXT) to guile_filter_doc_snarfage invocation.
1879 (snarf2checkedtexi): Use GUILE_FOR_BUILD instead of preinstguile.
1880
1881 * guile.c, iselect.h, net_db.c, posix.c, socket.c: Do not include
1882 <winsock2.h> on Cygwin even when we have it.
1883
1884 2002-07-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
1885
1886 * __scm.h (SCM_CAUTIOUS), eval.c (scm_eval_args, deval_args,
1887 SCM_CEVAL): Removed compile time option SCM_CAUTIOUS to clean up
1888 the code. Full number of arguments checking of closures is
1889 mandatory now. However, the option to disable the checking has
1890 most probably not been used anyway.
1891
1892 2002-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1893
1894 * __scm.h (SCM_RECKLESS), backtrace.c (SCM_ASSERT), debug.c
1895 (scm_debug_options), eval.c (scm_lookupcar, scm_lookupcar1,
1896 scm_badargsp, SCM_CEVAL, SCM_APPLY, scm_map, scm_for_each),
1897 feature.c (scm_init_feature), gsubr.c (scm_gsubr_apply), numbers.c
1898 (scm_logand, scm_logior, scm_logxor, scm_i_dbl2big), srcprop.c
1899 (scm_source_properties, scm_set_source_properties_x,
1900 scm_source_property): Removed compile time option SCM_RECKLESS to
1901 clean up the code. Full number of arguments checking of closures
1902 is mandatory now. However, the option to disable the checking has
1903 most probably not been used anyway.
1904
1905 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
1906 scm_source_property): Use !SCM_CONSP instead of SCM_NCONSP.
1907
1908 2002-06-30 Gary Houston <ghouston@arglist.com>
1909
1910 * dynl.c: Removed all SCM_DEFER_INTS/SCM_ALLOW_INTS, which won't
1911 do anything useful. Added a comment about need for a mutex if
1912 pre-emptive threading is supported.
1913
1914 * posix.c (scm_convert_exec_args), dynl.c
1915 (scm_make_argv_from_stringlist): static procs: 1) renamed both to
1916 allocate_string_pointers. 2) simplified: don't reallocate the
1917 strings, just make an array of pointers 3) avoid memory leaks on
1918 error 4) let the procedure report errors in its own name.
1919 Consequences: 1) the procedures now assume that SCM strings are
1920 nul-terminated, which should always be the case. 2) Since strings
1921 are not reallocated, it's now possible for strings passed to
1922 dynamic-args-call to be mutated.
1923
1924 2002-06-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1925
1926 * __scm.h, eval.c, eval.h: Removed compile time option
1927 MEMOIZE_LOCALS to clean up the code. Now, caching of local
1928 variable positions during memoization is mandatory. However, the
1929 option to disable the caching has most probably not been used
1930 anyway.
1931
1932 2002-06-18 Marius Vollmer <mvo@zagadka.ping.de>
1933
1934 * print.c (scm_simple_format): Print missing part of format before
1935 ~% control. Thanks to Daniel Skarda!
1936
1937 2002-06-01 Marius Vollmer <mvo@zagadka.ping.de>
1938
1939 * mkstemp.c: Added exception notice to license statement.
1940
1941 2002-05-22 Marius Vollmer <mvo@zagadka.ping.de>
1942
1943 * numbers.c (mem2ureal): When returning an inexact zero, make sure
1944 it is represented as a floating point value so that we can change
1945 its sign.
1946
1947 From John W. Eaton <jwe@bevo.che.wisc.edu>
1948
1949 * numbers.c (idbl2str): Don't omit sign when printing negative zero.
1950
1951 2002-05-14 Thien-Thi Nguyen <ttn@giblet.glug.org>
1952
1953 * gc_os_dep.c: For I386/OPENBSD, allow for `__i386__'
1954 in addition to `i386'. Thanks to Dale P. Smith.
1955
1956 2002-05-08 Marius Vollmer <mvo@zagadka.ping.de>
1957
1958 * eq.c (real_eqv): New.
1959 (scm_eqv_p): Use it when comparing reals and complexes.
1960
1961 * numbers.c: Include <string.h>, for strncmp.
1962 (mem2complex): Do not create negative NaNs.
1963 (scm_leq_p, scm_geq_p): Explicitely return #f when comparing a
1964 NaN.
1965 (scm_inexact_to_exact): Signal error when converting a NaN.
1966
1967 2002-05-06 Marius Vollmer <mvo@zagadka.ping.de>
1968
1969 * posix.c (scm_putenv): Handle removing variables explicitely by
1970 calling unsetenv.
1971
1972 From John W. Eaton.
1973
1974 * numbers.h: Conditionally include floatingpoint.h, ieeefp.h, and
1975 nan.h. Provide declarations for scm_inf_p, scm_nan_p, scn_inf,
1976 and scm_nan.
1977 * numbers.c: [SCO && ! HAVE_ISNAN] (isnan): New function.
1978 [SCO && ! HAVE_ISINF] (isinf): New function.
1979 (xisinf, xisnan): New functions.
1980 (IS_INF): Delete.
1981 (isfinite): Define in terms of xisinf.
1982 (scm_inf_p, scm_nan_p): New functions.
1983 (guile_Inf, guile_NaN): New file-scope vars.
1984 (guile_ieee_init): New function.
1985 (scm_inf, scm_nan): New functions.
1986 (idbl2str): Handle Inf and NaN. Remove funny label and
1987 corresponding gotos.
1988 (ALLOW_DIVIDE_BY_ZERO): New macro.
1989 (scm_divide): Allow division by zero to occur if
1990 ALLOW_DIVIDE_BY_ZERO is defined.
1991 Handle bignums and ints as special cases.
1992
1993 Additional stuff by me:
1994
1995 numbers.c (mem2ureal): Recognize "inf.0" and "nan.xxx".
1996 (scm_even_p, scm_odd_p): Treat infinity as even and odd.
1997 (iflo2str): Don't output a '+' for negative numbers or for Inf and
1998 NaN. They will provide their own sign.
1999 (scm_divide): Only allow divides by inexact zeros. Dividing by
2000 exact zeros still signals an errors.
2001
2002 2002-04-22 Thien-Thi Nguyen <ttn@giblet.glug.org>
2003
2004 * goops.h (scm_slot_exists_p): Rename from scm_slots_exists_p.
2005 * goops.c (scm_slot_exists_p): Rename from scm_slots_exists_p.
2006 (scm_slot_exists_p): Rename from scm_slots_exists_p.
2007 Thanks to Andreas Rottmann.
2008
2009 2002-04-20 Gary Houston <ghouston@arglist.com>
2010
2011 * removal of unused fields in root state (thanks to Christopher
2012 Cramer for pointing out the disuse.)
2013 * root.h (scm_root_state): removed def_inp, def_outp, def_errp.
2014 (scm_def_inp, scm_def_outp, scm_def_errp): removed.
2015
2016 * root.c (root_mark): don't mark them.
2017 (scm_make_root): don't set them to #f.
2018 * init.c (scm_init_standard_ports): don't initialise with the
2019 default ports.
2020
2021 2002-04-17 Marius Vollmer <mvo@zagadka.ping.de>
2022
2023 * Makefile.am (EXTRA_DIST): Added cpp_err_symbols.c and
2024 cpp_sig_symbols.c.
2025
2026 2002-04-16 Marius Vollmer <mvo@zagadka.ping.de>
2027
2028 * guile-snarf.in: Do not clean input file. This would write to
2029 the $(srcdir) during a VPATH build, which is not allowed. It also
2030 isn't needed since it only works when an output filename has been
2031 specified and in that case we don't need to clean the input file
2032 because the output file will already exist.
2033
2034 2002-03-31 Marius Vollmer <mvo@zagadka.ping.de>
2035
2036 * guile-snarf: Install the trap for removing $cleanfile only when
2037 the value of $cleanfile is actually known.
2038
2039 2002-04-10 Rob Browning <rlb@defaultvalue.org>
2040
2041 * .cvsignore: add versiondat.h and *.c.clean.c.
2042
2043 2002-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
2044
2045 * srcprop.[ch] (scm_c_source_property_breakpoint_p): New
2046 function, replaces macro SRCBRKP.
2047
2048 (SRCBRKP): Deprecated.
2049
2050 * eval.c (SCM_CEVAL): Replaced use of SRCBRKP by call to
2051 scm_c_source_property_breakpoint_p. Removed some use of arg1 as
2052 temporary variable.
2053
2054 2002-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2055
2056 * debug.h, eval.c: Deprecated CHECK_ENTRY, CHECK_APPLY and
2057 CHECK_EXIT and removed all references to them.
2058
2059 2002-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
2060
2061 * debug.h (scm_ready_p, debug_print): Removed declarations.
2062
2063 * eval.c (EVALCELLCAR): Removed.
2064
2065 (SCM_CEVAL): Eliminated label loopnoap. Removed side-effecting
2066 operation from condition.
2067
2068 2002-03-24 Marius Vollmer <mvo@zagadka.ping.de>
2069
2070 * guile-snarf.in: When the output filename is "-", write to
2071 stdout. When no "-o" option is given, use "-" as the output
2072 filename (i.e., stdout). Only 'clean' the inputfile or remove the
2073 output file on error when the output file name is not "-". Define
2074 the preprocessor macro SCM_MAGIC_SNARFER while snarfing.
2075
2076 * Makefile.am (.c.x): Pass "-o $@" to guile-snarf.
2077
2078 2002-03-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
2079
2080 * eval.c (SCM_CEVAL, SCM_APPLY): Eliminated labels wrongnumargs
2081 and the corresponding goto statements. Removed redundant code.
2082
2083 2002-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2084
2085 * eval.c (SCM_CEVAL): Minimized scope of variable arg2.
2086 Eliminated redundant SCM_IMP check. Exlined call to EVALCAR.
2087 Re-enabled handing of rpsubrs and asubrs.
2088
2089 2002-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2090
2091 * eval.c (SIDEVAL): Removed.
2092
2093 (SCM_CEVAL): Minimized scope of variable orig_sym. Eliminated
2094 goto-labels cdrxnoap, cdrxbegin and nontoplevel_cdrxnoap. Changed
2095 argument checking order for set! to locals, variables and symbols.
2096 Improvements to control structure. Removed some uses of arg1 and
2097 arg2 as temporary variables.
2098
2099 2002-03-15 Thien-Thi Nguyen <ttn@giblet.glug.org>
2100
2101 * guile-snarf.in: Remove "--compat=1.4" support.
2102 Add "-d" and "-D" support.
2103
2104 (deprecated_list): New var.
2105 (compat_mode_clean_xxx): Delete.
2106 (grep_deprecated): New func.
2107 ("main"): If "-d" or "-D", call `grep_deprecated'.
2108
2109 2002-03-15 Neil Jerram <neil@ossau.uklinux.net>
2110
2111 * hooks.h: Change scm_t_c_hookype_t everywhere to
2112 scm_t_c_hook_type.
2113
2114 Docstring fixes:
2115
2116 * strings.c (scm_string_p): Change unnecessary `iff' to `if'.
2117
2118 * ports.c (scm_sys_make_void_port): Use `@file'.
2119
2120 * numbers.c (scm_number_p, scm_real_p): Use `otherwise' rather
2121 than `else'.
2122
2123 * macros.c (scm_makmacro): Don't say that the form replaces its
2124 source, because it doesn't.
2125 (scm_makmmacro): Clarify difference between this and scm_makmacro.
2126
2127 * backtrace.c (scm_display_error), filesys.c (scm_umask,
2128 scm_select, scm_basename), goops.c (scm_method_generic_function),
2129 numbers.c (scm_integer_length), posix.c (scm_getgroups, scm_execl,
2130 scm_setlocale, scm_flock), socket.c (scm_shutdown): Correct
2131 spelling mistakes.
2132
2133 * debug.c (scm_debug_options), eval.c
2134 (scm_eval_options_interface), read.c (scm_read_options): Change
2135 incorrect @var in docstring to @code.
2136
2137 2002-03-14 Marius Vollmer <mvo@zagadka.ping.de>
2138
2139 * unif.c (singp): Use SCM_REALP instead of SCM_SLOPPY_REALP.
2140
2141 * snarf.h (SCM_SNARF_INIT): Add "^:^" after code so that
2142 guile-snarf can remove trailing non-init code.
2143
2144 * guile-snarf.in (modern_snarf): Remove everything following and
2145 including "^:^" from the output.
2146
2147 2002-03-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2148
2149 * eval.c (SCM_CEVAL), srcprop.h (SRCBRKP): Eliminated union 't'.
2150
2151 * eval.c (SCM_CEVAL): Exlined call to EVALCAR.
2152
2153 2002-03-13 Thien-Thi Nguyen <ttn@giblet.glug.org>
2154
2155 * guile-snarf.in: Update copyright.
2156 Rewrite to internalize error handling.
2157 Add "--compat=1.4" handling.
2158 Add commentary.
2159
2160 * Makefile.am (libpath.h): Use @top_srcdir_absolute@.
2161 (snarfcppopts): New var.
2162 (.c.x): Use $(snarfcppopts). Rework guile-snarf usage.
2163 (.c.doc): Use $(snarfcppopts).
2164
2165 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
2166 continuations.c, debug-malloc.c, debug.c, deprecation.c, dynl.c,
2167 dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c,
2168 extensions.c, feature.c, filesys.c, fluids.c, fports.c, gc.c,
2169 goops.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
2170 ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c,
2171 modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c,
2172 pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c,
2173 properties.c, ramap.c, random.c, rdelim.c, read.c, regex-posix.c,
2174 root.c, rw.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c,
2175 srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c,
2176 strorder.c, strports.c, struct.c, symbols.c, threads.c, throw.c,
2177 unif.c, values.c, variable.c, vectors.c, version.c, vports.c,
2178 weaks.c: Retire inclusion guard macro SCM_MAGIC_SNARFER.
2179
2180 2002-03-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
2181
2182 * eval.c (SCM_CEVAL): Got rid of the last reference to t.lloc.
2183 The next step will be to remove the union 't' and simplify the
2184 code of SCM_CEVAL that way.
2185
2186 2002-03-12 Neil Jerram <neil@ossau.uklinux.net>
2187
2188 * iselect.c (collisionp, gnfds, greadfds, gwritefds, gexceptfds,
2189 rreadfds, rwritefds, rexceptfds): Made static.
2190
2191 * gc.c (terminating), fports.c (terminating): Renamed
2192 scm_i_terminating.
2193
2194 2002-03-11 Marius Vollmer <mvo@zagadka.ping.de>
2195
2196 * numbers.c (scm_divide): Adapt code from libstdc++/f2c to void
2197 potential overflow problems. Thanks to John W Eaton!
2198
2199 * strop.c (string_capitalize_x): Treat characters as unsigned so
2200 that 8-bit chars work. Thanks to David Pirotte!
2201
2202 2002-03-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2203
2204 * eval.c (SCM_CEVAL): Cleaned up the handling of 'slot-ref',
2205 'slot-set!' and 'nil-cond'. Removed some uses of t.arg1, arg2 and
2206 proc as temporary variables. Introduced temporary variables with
2207 hopefully descriptive names for clarification. Replaced SCM_N?IMP
2208 by a more explicit predicate in some places.
2209
2210 2002-03-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
2211
2212 * eval.c (SCM_CEVAL): Cleaned up the handling of #@dispatch.
2213 Added lots of comments regarding the implementation of #@dispatch.
2214 Changed intra-procedure communication to use t.arg1 instead of
2215 arg2. Removed some uses of t.arg1, t.lloc and proc as temporary
2216 variables. Introduced temporary variables with hopefully
2217 descriptive names for clarification. Replaced SCM_N?IMP by a more
2218 explicit predicate in some places. Use SCM_INSTANCE_HASH instead
2219 of computing the expression explicitly. Eliminate now unused
2220 label nontoplevel_cdrxbegin.
2221
2222 * goops.h (SCM_INSTANCE_HASH): New macro.
2223
2224 * objects.h (SCM_CMETHOD_FORMALS, SCM_CMETHOD_BODY): New macros.
2225
2226 2002-03-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
2227
2228 * Makefile.am (bin_SCRIPTS): Revive this decl, w/ initial element
2229 "guile-snarf" moved back from `noinst_SCRIPTS'.
2230
2231 2002-03-08 Neil Jerram <neil@ossau.uklinux.net>
2232
2233 * srcprop.c (scm_set_source_property_x): If SRCPROPS obj already
2234 exists when adding a source property other than those that are
2235 handled explicitly, add the new property to the SRCPROPS obj's
2236 plist.
2237
2238 * debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
2239 of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
2240
2241 * eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
2242 debug.status. It isn't needed, and it can overflow the bits
2243 reserved for it (which may lead to a segv or a GC abort).
2244
2245 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2246
2247 * eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed
2248 side-effecting operations from conditions and macro calls.
2249 Replaced SCM_N?IMP by a more explicit predicate in some places.
2250 Minimized the scope of some variables.
2251
2252 2002-03-02 Stefan Jahn <stefan@lkcc.org>
2253
2254 * convert.i.c: Fixed int <-> long conversions which would have
2255 failed if their sizes were different.
2256
2257 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2258
2259 * eval.c (SCM_CEVAL): Cleaned up the handling of 'if', 'let',
2260 'letrec' and 'set*': Removed some uses of t.arg1, t.lloc and proc
2261 as temporary variables. Removed side-effecting operations from
2262 conditions and macro calls. Introduced temporary variables with
2263 hopefully descriptive names for clarification. Replaced SCM_N?IMP
2264 by a more explicit predicate in some places. Removed code that
2265 was conditionally compiled if SICP was defined - which it never
2266 is.
2267
2268 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2269
2270 * eval.c (SCM_CEVAL): Cleaned up the handling of 'cons' and 'do':
2271 Removed some uses of t.arg1 and proc as temporary variables.
2272 Removed side-effecting operations from conditions and macro calls.
2273 Introduced temporary variables with hopefully descriptive names
2274 for clarification. Replaced SCM_N?IMP by a more explicit
2275 predicate in some places.
2276
2277 2002-03-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
2278
2279 * eval.c (scm_badargsp, SCM_CEVAL): Replaced SCM_N?IMP by a more
2280 explicit predicate in some places.
2281
2282 (CHECK_EQVISH): Removed.
2283
2284 (SCM_CEVAL): Removed some uses of t.arg1 and proc as temporary
2285 variables. Removed side-effecting operations from conditions and
2286 macro calls. Introduced temporary variables for clarification.
2287 Sorted if-else-if check for the type of the last form in a list by
2288 frequency. Avoided some unnecessary tail-recursion calls.
2289
2290 2002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
2291
2292 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL,
2293 init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct
2294 scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE,
2295 SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct
2296 scm_cell and all its uses to scm_t_cell in accordance to Guile's
2297 naming scheme for types.
2298
2299 * alist.c (scm_acons), convert.i.c (CTYPES2UVECT,
2300 CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread,
2301 scm_spawn_thread), debug.c (scm_make_debugobj), environments.c
2302 (scm_make_environment), eval.c (scm_closure), fports.c
2303 (scm_fdes_to_port), gc.c (scm_deprecated_newcell,
2304 scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell),
2305 list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons),
2306 ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo),
2307 smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c
2308 (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport),
2309 unif.c (scm_make_uve), variable.c (make_variable), vectors.c
2310 (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed
2311 scm_alloc_cell to scm_cell.
2312
2313 * environments.c (core_environments_observe), gc.c
2314 (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object),
2315 inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c
2316 (FLOAT2NUM), numbers.c (scm_make_real), procs.c
2317 (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2,
2318 SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable),
2319 symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c
2320 (allocate_weak_vector): Renamed scm_alloc_double_cell to
2321 scm_double_cell.
2322
2323 2002-02-27 Stefan Jahn <stefan@lkcc.org>
2324
2325 * convert.i.c, convert.c: Better range checking.
2326
2327 * inet_aton.c, fports.c: Commented the inclusion of <winsock2.h>.
2328
2329 * deprecation.c (vsnprintf): Define to `_vsnprintf' for
2330 Windows (MinGW).
2331
2332 2002-02-26 Thien-Thi Nguyen <ttn@giblet.glug.org>
2333
2334 * Makefile.am: Update path to pre-inst-guile automake frag.
2335
2336 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2337
2338 * gc.c (scm_gc_sweep): Make it compile even when deprecated
2339 features are excluded.
2340
2341 2002-02-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
2342
2343 * num2integral.i.c (NUM2INTEGRAL): Fixed signedness problem.
2344
2345 2002-02-25 Gary Houston <ghouston@arglist.com>
2346
2347 * convert.c: include <string.h> for convert_i.c.
2348
2349 2002-02-24 Rob Browning <rlb@defaultvalue.org>
2350
2351 * .cvsignore: add stamp-h1.
2352
2353 2002-02-21 Neil Jerram <neil@ossau.uklinux.net>
2354
2355 * unif.c (scm_array_to_list): Correct name, which had been
2356 accidentally changed to scm_t_arrayo_list!
2357
2358 2002-02-20 Mikael Djurfeldt <mdj@linnaeus>
2359
2360 * gc.c (scm_gc_sweep): Print an error message when aborting due to
2361 underflowing scm_mallocated.
2362
2363 2002-02-14 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2364
2365 * gc.h, gc.c (scm_must_malloc, scm_must_realloc, scm_must_strdup,
2366 scm_must_strndup, scm_done_malloc, scm_done_free, scm_must_free):
2367 Reimplemented using the new scm_gc_malloc, etc., functions and
2368 deprecated.
2369
2370 2002-02-11 Thien-Thi Nguyen <ttn@giblet.glug.org>
2371
2372 * Makefile.am (bin_PROGRAMS): Move `guile_filter_doc_snarfage'
2373 to `noinst_PROGRAMS'.
2374 (bin_SCRIPTS): Move all values to `noinst_SCRIPTS'; delete.
2375 (noinst_PROGRAMS, noinst_SCRIPTS): New.
2376
2377 2002-02-11 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2378
2379 * gc.h, gc.c (scm_gc_sweep): Issue deprecation warning when
2380 non-zero is returned from a port or smob free function.
2381 (scm_malloc, scm_realloc, scm_strndup, scm_strdup,
2382 scm_gc_register_collectable_memory,
2383 scm_gc_unregister_collectable_memory, scm_gc_malloc,
2384 scm_gc_realloc, scm_gc_free, scm_gc_strndup, scm_gc_strdup): New.
2385
2386 * backtrace.c, continuations.c, convert.i.c, coop-threads.c,
2387 debug-malloc.c, dynl.c, environments.c, environments.h,
2388 extensions.c, filesys.c, fports.c, gc.c, gc.h, gh_data.c, goops.c,
2389 guardians.c, hooks.c, init.c, keywords.c, load.c, numbers.c,
2390 ports.c, posix.c, procs.c, rdelim.c, regex-posix.c, root.c,
2391 smob.c, stime.c, strings.c, struct.c, struct.h, symbols.c, unif.c,
2392 vectors.c, weaks.c: Use scm_gc_malloc/scm_malloc and
2393 scm_gc_free/free instead of scm_must_malloc and scm_must_free, as
2394 appropriate. Return zero from smob and port free functions.
2395
2396 * debug-malloc.c (scm_malloc_reregister): Handle "old == NULL".
2397
2398 * deprecation.h, deprecation.c: Reimplemented to allow deprecation
2399 messages while the GC is running.
2400 (scm_c_issue_deprecation_warning_fmt): New.
2401
2402 * fports.c (scm_setvbuf): Reset read buffer to saved values when
2403 it is pointing to the putback buffer.
2404
2405 2002-02-08 Thien-Thi Nguyen <ttn@giblet.glug.org>
2406
2407 * gsubr.c (create_gsubr): On "too many args" error,
2408 also display arg count and name. Thanks to Bill Schottstaedt.
2409
2410 2002-02-05 Thien-Thi Nguyen <ttn@giblet.glug.org>
2411
2412 * Makefile.am: Include $(top_srcdir)/pre-inst-guile.am.
2413
2414 (bin_SCRIPTS): Remove guile-snarf-docs-texi.
2415 (alldotdocfiles, snarf2checkedtexi, dotdoc2texi): New vars.
2416 (guile.texi, guile-procedures.texi): Use $(dotdoc2texi).
2417
2418 * guile-snarf-docs-texi.in: Bye bye.
2419
2420 2002-02-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2421
2422 * symbols.c (scm_make_symbol): Fix typo in docstring.
2423
2424 * symbols.h (scm_mem2uninterned_symbol, scm_symbol_interned_p,
2425 scm_make_symbol): New prototypes.
2426
2427 2002-02-03 Marius Vollmer <mvo@zagadka.ping.de>
2428
2429 * symbols.h (SCM_SET_SYMBOL_HASH): Removed.
2430 (SCM_SYMBOL_INTERNED_P): New.
2431 * symbols.c (scm_symbol_hash): Use scm_ulong2num instead of
2432 SCM_MAKINUM since hash values can well be bignums.
2433 (scm_mem2symbol): Only use hash values below SCM_T_BITS_MAX/2.
2434 This signals a interned symbol.
2435 (scm_mem2uninterned_symbol, scm_symbol_interned_p,
2436 scm_make_symbol): New.
2437
2438 * print.c (scm_iprin1): Print uninterned symbols unreadably.
2439
2440 2002-02-02 Thien-Thi Nguyen <ttn@giblet.glug.org>
2441
2442 * __scm.h (HAVE_UINTPTR_T): Only define if UINTPTR_T attributes
2443 are defined: UINTPTR_MAX, INTPTR_MAX, INTPTR_MIN.
2444 Thanks to Dave Love.
2445
2446 2002-01-31 Marius Vollmer <mvo@zagadka.ping.de>
2447
2448 * symbols.c (scm_gensym): Use " g" as default prefix, not "g".
2449 This might help to make unintended clashes less likely.
2450 (scm_string_to_symbol): Protect the string until the symbols is
2451 created.
2452
2453 2002-01-31 Stefan Jahn <stefan@lkcc.org>
2454
2455 * convert.c, convert.h, convert.i.c: New files containing C
2456 array to Scheme conversion helpers meant to be replacement
2457 functions for the deprecated gh interface.
2458
2459 * Makefile.am: Setup rules for new `convert.*' files.
2460
2461 2002-01-28 Stefan Jahn <stefan@lkcc.org>
2462
2463 * symbols.c (scm_c_symbol2str): New function, replacement for
2464 `gh_scm2newsymbol()'.
2465
2466 * strings.c (scm_c_substring2str): New function. Proper
2467 replacement for `gh_get_substr()'.
2468
2469 * socket.c: Include `stdint.h' if available for the `uint32_t'
2470 declaration.
2471
2472 * scmsigs.c (scm_sigaction): Initialize `chandler' (inhibits
2473 compiler warning).
2474
2475 * backtrace.c: Include `lang.h' for GUILE_DEBUG conditional.
2476
2477 2002-01-22 Neil Jerram <neil@ossau.uklinux.net>
2478
2479 Other changes unrelated to Elisp...
2480
2481 * eval.c (scm_m_if): Use s_if rather than repeating string literal
2482 "if".
2483 (comments): Fix a few typos.
2484 (scm_for_each): Add parentheses around oddly unparenthesized
2485 if/while conditions.
2486
2487 * read.c (scm_read_opts): Add full stop at end of doc for
2488 `keywords' option.
2489
2490 * script.c (scm_compile_shell_switches): Use scm_str2symbol
2491 instead of gh_symbol2scm.
2492
2493 * srcprop.h (SRCPROPBRK): Return C type rather than SCM.
2494 (SRCBRKP): Use SRCPROPBRK rather than duplicating its logic.
2495
2496 * srcprop.c (scm_srcprops_to_plist, scm_source_property): Change
2497 SRCPROPBRK (x) to SCM_BOOL (SRCPROPBRK (x)).
2498
2499 First batch of changes for Elisp support...
2500
2501 * alist.c, async.c, boolean.c, dynl.c, eval.c, filesys.c,
2502 fluids.c, list.c, load.c, options.c, posix.c, print.c, sort.c,
2503 throw.c, vectors.c, weaks.c: Add #include for lang.h.
2504
2505 * eval.c, eval.h, init.c, lang.c, lang.h: Use SCM_ENABLE_ELISP to
2506 conditionalize compilation and initialization of Elisp support
2507 function.
2508
2509 * alist.c (scm_assq, scm_assv, scm_assoc), async.c
2510 (scm_asyncs_pending, scm_run_asyncs, noop), backtrace.c
2511 (scm_set_print_params_x), dynl.c (scm_make_argv_from_stringlist),
2512 filesys.c (fill_select_type, retrieve_select_type), fluids.c
2513 (scm_swap_fluids, scm_swap_fluids_reverse), list.c (scm_null_p,
2514 scm_ilength, scm_append_x, scm_last_pair, scm_reverse,
2515 scm_reverse_x, scm_list_ref, scm_list_set_x, scm_list_cdr_set_x,
2516 scm_c_memq, scm_memv, scm_member), load.c (scm_search_path),
2517 options.c (change_option_setting, scm_options), posix.c
2518 (environ_list_to_c), print.c (scm_iprlist), throw.c
2519 (scm_exit_status), vectors.c (scm_vector), weaks.c
2520 (scm_weak_vector): Use SCM_NULL_OR_NIL_P instead of SCM_NULLP.
2521
2522 * boolean.c (scm_not): Use `SCM_FALSEP || SCM_NILP' instead of
2523 just SCM_FALSEP.
2524
2525 * boolean.c (scm_boolean_p): Use `SCM_BOOLP || SCM_NILP' instead
2526 of just SCM_BOOLP.
2527
2528 * eval.c (scm_lisp_nil, scm_lisp_t, s_nil_ify, scm_m_nil_ify,
2529 s_t_ify, scm_m_t_ify, s_0_cond, scm_m_0_cond, s_0_ify,
2530 scm_m_0_ify, s_1_ify, scm_m_1_ify): Removed.
2531 (scm_m_atfop): Support function aliasing. Support both function
2532 args, which need transformation, and macro args, which do not.
2533 Add explanatory comments.
2534 (SCM_CEVAL): In switch cases for SCM_IM_AND, SCM_IM_COND,
2535 SCM_IM_DO, SCM_IM_IF and SCM_IM_OR, add `|| SCM_NILP' to existing
2536 checks for SCM_FALSEP. In switch case for SCM_IM_NIL_COND, use
2537 SCM_NULLP || SCM_NILP instead of checks against (removed)
2538 scm_lisp_nil. Removed switch cases for SCM_IM_NIL_IFY,
2539 SCM_IM_T_IFY, SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY.
2540
2541 * lang.c (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null,
2542 scm_m_while, scm_nil_eq): Commented out; I don't think we need
2543 these, but I don't want to remove them yet, just in case.
2544 (scm_init_lang): Define `%nil' variable on Scheme level to hold
2545 Elisp nil value.
2546
2547 * lang.h (SCM_NILP): Test against Elisp nil value instead of
2548 against (removed) scm_lisp_nil.
2549 (SCM_NILNULLP, SCM_NIL2EOL, SCM_EOL2NIL): Commented out.
2550 (SCM_NULL_OR_NIL_P): New.
2551
2552 * list.c (scm_append): Use SCM_VALIDATE_NULL_OR_NIL instead of
2553 SCM_VALIDATE_NULL.
2554
2555 * print.c (scm_isymnames): Fix comment. Remove #@nil-ify,
2556 #@t-ify, #@0-cond, #@0-ify, #@1-ify. Add #nil (for SCM_ELISP_NIL
2557 value).
2558
2559 * sort.c (scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
2560 scm_sort_x, scm_sort, scm_stable_sort_x, scm_stable_sort): Use
2561 SCM_NULL_OR_NIL_P instead of SCM_NULLP. In constructions like `if
2562 (SCM_NULLP (x)) return SCM_EOL;', return x rather than SCM_EOL.
2563
2564 * tags.h (SCM_IM_NIL_IFY, SCM_IM_T_IFY, SCM_IM_0_COND,
2565 SCM_IM_0_IFY, SCM_IM_1_IFY): Removed.
2566 (SCM_IM_BIND, SCM_IM_DELAY, SCM_IM_CALL_WITH_VALUES, SCM_UNBOUND):
2567 Numbering shifted down accordingly.
2568 (SCM_ELISP_NIL): New IFLAG.
2569
2570 * validate.h (SCM_VALIDATE_NULL_OR_NIL): New.
2571
2572 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2573
2574 * eval.c: Removed outdated references to "everr". Improved some
2575 comments.
2576
2577 (scm_deval_args, deval_args): Renamed scm_deval_args to
2578 deval_args, since it is not part of the interface.
2579
2580 (SCM_CEVAL): Added (maybe somewhat verbose) comment. Avoid to
2581 use references to debug.vect[0] before it exists. Add parentheses
2582 to switch statement.
2583
2584 * goops.h: Added local emacs variables.
2585
2586 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2587
2588 * eval.[ch] (scm_deval_args): Made static.
2589
2590 * srcprop.c (scm_source_property): Remove redundant SCM_IMP
2591 test.
2592
2593 * strings.c (scm_c_string2str): Clarified comment. Replaced
2594 THINKME by FIXME for uniformness. Removed question about whether
2595 arguments need to be protected from garbage collection: Arguments
2596 must be protected as any other variable.
2597
2598 2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2599
2600 * procs.h (SCM_CLOSURE_BODY): New Macro.
2601
2602 * debug.c (scm_procedure_name, scm_procedure_source), eval.c
2603 (SCM_CEVAL, SCM_APPLY), goops.c (scm_sys_initialize_object,
2604 get_slot_value, set_slot_value), procs.c
2605 (scm_procedure_documentation), sort.c (closureless), stacks.c
2606 (get_applybody): Replace SCM_CDR (SCM_CODE (...)) by
2607 SCM_CLOSURE_BODY.
2608
2609 * sort.c (closureless): Prefer !SCM_FOOP over SCM_NFOOP.
2610
2611 2001-12-26 Marius Vollmer <mvo@zagadka.ping.de>
2612
2613 * Makefile.am (guile-procedures.txt): When we don't have makeinfo,
2614 use "cp" instead.
2615
2616 2001-12-16 Marius Vollmer <mvo@zagadka.ping.de>
2617
2618 * stacks.c, stacks.h (scm_t_stackype): Renamed to scm_stack_type
2619 everywhere.
2620
2621 * continuations.c (scm_make_continuation): Do not retain the
2622 throw_value when the continuation is invoked.
2623
2624 2001-12-08 Stefan Jahn <stefan@lkcc.org>
2625
2626 * strings.c (scm_c_string2str): New function. Converts a
2627 given Scheme string into a C string. Also put in two
2628 THINKME's regarding the malloc policy for the missing converter
2629 routines.
2630
2631 2001-12-01 Neil Jerram <neil@ossau.uklinux.net>
2632
2633 * gh_data.c (gh_module_lookup): Use scm_str2symbol rather than
2634 gh_symbol2scm.
2635
2636 2001-11-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
2637
2638 * gc.h (SCM_GC_CELL_WORD, SCM_GC_CELL_OBJECT,
2639 SCM_GC_SET_CELL_WORD, SCM_GC_SET_CELL_OBJECT): New macros.
2640
2641 (SCM_GC_CELL_TYPE, SCM_CELL_WORD, SCM_CELL_OBJECT,
2642 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT, SCM_FREE_CELL_CDR,
2643 SCM_GC_SET_CELL_OBJECT): Express in terms of SCM_GC_CELL_*
2644 macros.
2645
2646 (SCM_FREE_CELL_P): Express in terms of SCM_GC_CELL_TYPE.
2647
2648 * inline.h (scm_alloc_cell, scm_alloc_double_cell): Use
2649 SCM_GC_CELL_* macros when accessing free cells.
2650
2651 2001-11-25 Marius Vollmer <mvo@zagadka.ping.de>
2652
2653 * vectors.h (SCM_MAKE_VECTOR_TAG): New.
2654 * unif.h (SCM_MAKE_BITVECTOR_TAG, SCM_MAKE_UVECTOR_TAG): New.
2655 * symbols.h (SCM_MAKE_SYMBOL_TAG): New.
2656 * strings.h (SCM_MAKE_STRING_TAG): New.
2657 * procs.h (SCM_MAKE_CCLO_TAG): New.
2658 * numbers.h (SCM_MAKE_BIGNUM_TAG): New.
2659
2660 * goops.h: Replaced SCM_DEBUG_DEPRECATED with
2661 !SCM_ENABLE_DEPRECATED.
2662
2663 * async.c, async.h (scm_system_async_mark_from_signal_handler):
2664 New.
2665
2666 * scmsigs.c (scm_take_signal): Removed all code that assumes that
2667 signal handlers are allowed to divert the flow of control. Call
2668 scm_system_async_mark_from_signal_handler instead of
2669 scm_system_async_mark.
2670
2671
2672 Deprecated SCM_NEWCELL and SCM_NEWCELL2. Added scm_alloc_cell and
2673 scm_alloc_double_cell in their place.
2674
2675 * gc.h (SCM_GC_SET_ALLOCATED, scm_debug_newcell,
2676 scm_debug_newcell2, scm_tc16_allocated): Removed from header.
2677 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
2678 (SCM_NEWCELL, SCM_NEWCELL2): Implement in terms of
2679 scm_deprecated_newcell and scm_deprecated_newcell2.
2680
2681 gc.c (scm_tc16_allocated): Only define when including deprecated
2682 features.
2683 (scm_debug_newcell, scm_debug_newcell2): Removed.
2684 (scm_init_storage): Do not initialize scm_tc16_allocated.
2685 (scm_init_gc): Do it here.
2686 (allocated_mark): New, from old code.
2687 (scm_deprecated_newcell, scm_deprecated_newcell2): New.
2688
2689 * inline.c, inline.h: New files.
2690 * Makefile.am: Added them in all the right places.
2691
2692 * _scm.h: Include "libguile/inline.h".
2693
2694 * alist.c, coop-threads.c, debug.c, environments.c, eval.c,
2695 fports.c, gh_data.c, goops.c, guardians.c, lang.c, list.c,
2696 num2float.i.c, numbers.c, pairs.c, ports.c, print.c, procs.c,
2697 smob.c, smob.h, strings.c, strports.c, struct.c, symbols.c,
2698 unif.c, variable.c, vectors.c, vports.c, weaks.c: Replaced
2699 SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and
2700 scm_alloc_double_cell, respectively.
2701
2702 2001-11-23 Marius Vollmer <mvo@zagadka.ping.de>
2703
2704 * modules.c (scm_c_use_module): Adapt to changes to
2705 `process-use-modules'.
2706
2707 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
2708
2709 * numbers.c (scm_divide): Fix more division by zero errors.
2710
2711 2001-11-21 Gary Houston <ghouston@arglist.com>
2712
2713 * Makefile.am (OMIT_DEPENDENCIES): removed, since it seems to be
2714 obsolete. autogen.sh says:
2715 invalid unused variable name: `OMIT_DEPENDENCIES'
2716
2717 2001-11-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
2718
2719 * numbers.c (scm_divide): Fix (/ 0). Thanks to Keith Wright for
2720 reporting the bug.
2721
2722 2001-11-21 Marius Vollmer <mvo@zagadka.ping.de>
2723
2724 * Makefile.am (install-exec-hook): Prepend $(DESTDIR) to filename.
2725 Thanks to Eric Gillespie, Jr!
2726
2727 2001-11-21 Stefan Jahn <stefan@lkcc.org>
2728
2729 * win32-socket.c (getservent, setservent, endservent,
2730 getprotoent, setprotoent, endprotoent): New functions.
2731 Appropriate replacements for M$-Windows.
2732
2733 * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced
2734 these definitions for GUILE_DEBUG.
2735
2736 * net_db.c: Include "win32-socket.h" if compiling with a native
2737 M$-Windows compiler. Include some pieces of code (protoent and
2738 servent interface) protected by HAVE_* macros when using a
2739 native M$-Windows compiler.
2740
2741 2001-11-20 Marius Vollmer <mvo@zagadka.ping.de>
2742
2743 * modules.c (scm_c_export): Do nothing when the first argument is
2744 already the terminating NULL. Thanks to Han-Wen Nienhuys!
2745
2746 2001-11-20 Thien-Thi Nguyen <ttn@glug.org>
2747
2748 * Makefile.am (libpath.h): In SCM_BUILD_INFO,
2749 also include `buildstamp'.
2750
2751 2001-11-18 Rob Browning <rlb@defaultvalue.org>
2752
2753 * version.c
2754 (s_scm_major_version): use SCM_MAJOR_VERSION.
2755 (s_scm_minor_version): use SCM_MINOR_VERSION.
2756 (s_scm_micro_version): use SCM_MICRO_VERSION.
2757 (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and
2758 SCM_MICRO_VERSION.
2759
2760 * version.h.in
2761 (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION.
2762 (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION.
2763 (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION.
2764
2765 2001-11-18 Neil Jerram <neil@ossau.uklinux.net>
2766
2767 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
2768 Rewrite docstrings without reference to substring-move-left/right,
2769 since the latter no longer exist.
2770
2771 2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2772
2773 * eval.c: Removed bogus comment about acros.
2774
2775 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
2776 Minimize scope of local variable. Eliminate dependency on
2777 macro DEBUG_EXTENSIONS.
2778
2779 (s_splicing): New error message string.
2780
2781 (scm_m_body): Issue 'bad body' message rather than 'missing
2782 expression' message.
2783
2784 (scm_m_quote): Eliminate unnecessary copying.
2785
2786 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
2787 checking of the body to scm_m_body.
2788
2789 (scm_m_do): Move comment to function header. Rename arg1 to
2790 binding. Made the code a bit easier to read.
2791
2792 (evalcar): Removed.
2793
2794 (iqq): Added a comment. Changed the depth parameter to
2795 unsigned. Use size_t for vector lengths. Make sure vector object
2796 is gc protected as long as its contents are read. Add some syntax
2797 checks. Get rid of unnecessary SCM_IMP test. Clean up the
2798 control structure a bit.
2799
2800 (scm_m_delay): Added comment about the implementation of
2801 scm_m_delay.
2802
2803 (scm_m_define): Add comment about guile's currying define
2804 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
2805 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
2806
2807 (scm_m_letrec1): Removed. Part of the functionality is taken
2808 over by the new function 'transform_bindings'.
2809
2810 (transform_bindings): New function. Takes over some of the
2811 functionality of removed function 'scm_m_letrec1', namely to split
2812 a list of bindings into a reversed list of variables and a list of
2813 initializers.
2814
2815 (scm_m_letrec): Call 'transform_bindings'.
2816
2817 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
2818 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
2819 test. Use 'transform_bindings'. Fixed scoping error with named
2820 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
2821 Jerram for suggesting the fix). Cleaned up the control structure
2822 a bit.
2823
2824 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
2825 unnecessary consing. Eliminated unnecessary
2826 SCM_DEFER/ALLOW_INTS.
2827
2828 (SCM_CEVAL): Un-obfuscated some loops.
2829
2830 2001-11-16 Neil Jerram <neil@ossau.uklinux.net>
2831
2832 * gc.h (scm_unhash_name): Old declaration removed.
2833
2834 * eval.c (s_scm_eval): Change @var{primitive-eval} to
2835 @code{primitive-eval}.
2836
2837 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
2838 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
2839 Change @deffnx lines in docstrings to say {Scheme Procedure}
2840 rather than primitive or procedure.
2841
2842 * posix.c (scm_execl), filesys.c (scm_close), unif.c
2843 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
2844 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
2845 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
2846 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
2847 (scm_string_split, scm_string_ci_to_symbol), strings.c
2848 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
2849 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
2850 Docstring fixes and improvements reflecting edits that have been
2851 made in the reference manual source.
2852
2853 * objprop.c (scm_object_properties, scm_set_object_properties_x,
2854 scm_object_property, scm_set_object_property_x): Remove invalid
2855 @deffnx lines for corresponding procedure property primitives.
2856
2857 These changes add a @deffnx C function declaration and function
2858 index entries for each Guile primitive to the copy of the doc
2859 snarf output that is used for reference manual synchronization.
2860 Online help is unchanged.
2861
2862 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
2863 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
2864 name to SCM_SNARF_DOCS.
2865
2866 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
2867 snarf-check-and-output-texi.
2868
2869 * Makefile.am (guile-procedures.texi): New rule.
2870 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
2871 Changed so that the last stage of doc snarfing is now performed
2872 twice, once to produce guile-procedures.txt for online help, and
2873 once to produce guile.texi for reference manual synchronization.
2874
2875 2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2876
2877 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
2878 safely usable as a single statement followed by a ';', for example
2879 in an if statement.
2880
2881 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
2882
2883 2001-11-13 Neil Jerram <neil@ossau.uklinux.net>
2884
2885 * random.c (scm_random_solid_sphere_x,
2886 scm_random_hollow_sphere_x): Correct "shere" typos.
2887
2888 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
2889
2890 * version.c (scm_version): Update docstring to include
2891 `micro-version'.
2892
2893 2001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
2894
2895 * modules.c (scm_c_export): Call va_end after collecting the
2896 symbols.
2897
2898 * strop.h, strop.c (scm_substring_move_left_x,
2899 scm_substring_move_right_x): Removed.
2900
2901 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
2902 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
2903 configure does.
2904
2905 2001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
2906
2907 * numbers.c: Document macros to define when including
2908 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
2909 now rely on SIZEOF_ macros that have been figured out at
2910 configure time.
2911
2912 * num2integral.i.c: Adapt to new interface.
2913 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
2914 target type by casting it and checking whether it is still the
2915 same. Do not try to handle bignums for integral types that are
2916 smaller than fixnums. When handling bignums, collect the
2917 magnituse first into a unsigned type, and correctly check for
2918 overflow.
2919 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
2920 only -MIN_VALUE can still be negative of all negative numbers (in
2921 twos-complement).
2922
2923 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
2924
2925 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
2926 HAVE_LONG_LONG depending on whether their size is non-zero.
2927
2928 2001-11-11 Thien-Thi Nguyen <ttn@glug.org>
2929
2930 * strop.c (scm_string_null_p): Docfix; nfc.
2931 Thanks to Scott Lenser.
2932
2933 2001-11-07 Neil Jerram <neil@ossau.uklinux.net>
2934
2935 * extensions.c (scm_load_extension): Canonicalize docstring
2936 whitespace.
2937
2938 * unif.c (scm_uniform_array_write), ports.c
2939 (scm_current_output_port, scm_force_output), dynwind.c
2940 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
2941 filesys.c (scm_open, scm_lstat), struct.c
2942 (scm_make_struct_layout), random.c (scm_random,
2943 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
2944 (scm_i_index): Remove superfluous whitespace from end of docstring
2945 lines.
2946
2947 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
2948 strings.c (scm_make_string), variable.c (scm_make_variable,
2949 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
2950 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
2951 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
2952 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
2953 newline at end of docstrings.
2954
2955 * modules.c (scm_set_current_module): Add missing newline to
2956 docstring.
2957
2958 2001-11-07 Stefan Jahn <stefan@lkcc.org>
2959
2960 * win32-socket.[ch]: New files. Defines Winsock-API error codes
2961 and makes them available through Guile. That is because the
2962 Winsock-API does not store its errors in `errno' and thus cannot
2963 return error messages via `strerror (errno)'.
2964
2965 * socket.c (scm_init_socket): Initialize `win32-socket' part
2966 here under M$-Windows.
2967
2968 * numbers.h: Added missing declaration of
2969 `scm_sys_check_number_conversions()'.
2970
2971 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
2972 and use in `(strerror)' and `(system-error)'.
2973
2974 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
2975 `win32-socket.[ch]' to extra source and header files.
2976
2977 2001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
2978
2979 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
2980 a call to turn-on-debugging when --debug has been given instead of
2981 turning it on directly. Also, handle new `--no-debug' option,
2982 which might suppress the call to turn-on-debugging.
2983
2984 2001-11-05 Stefan Jahn <stefan@lkcc.org>
2985
2986 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
2987
2988 2001-11-04 Stefan Jahn <stefan@lkcc.org>
2989
2990 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
2991 here (was at guile_LDADD) which describes the dependency
2992 correctly and allows a clean build on Win32.
2993
2994 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
2995 into FOO.
2996
2997 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
2998 import macros for external libraries (libcrypt, libqthreads,
2999 libreadline and libregex).
3000
3001 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
3002
3003 * posix.c (flock): Added support for flock() in M$-Windows.
3004
3005 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
3006 of __SCM_IMPORT__.
3007
3008 * fports.c (getflags): Differentiate reading and writing pipes
3009 descriptors.
3010
3011 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
3012 M$-Windows.
3013
3014 * coop.c (coop_condition_variable_timed_wait_mutex): Use
3015 conditionalized error code if `ETIMEDOUT' is not available.
3016 (scm_thread_usleep): Remove bogus declaration of `struct timeval
3017 timeout'.
3018
3019 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
3020 belongs. That is because NO_PREPRO_MAGIC gets undefined after
3021 each inclusion of `num2integral.i.c'.
3022 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
3023
3024 2001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
3025
3026 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
3027 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
3028
3029 2001-11-02 Mikael Djurfeldt <mdj@linnaeus>
3030
3031 * print.c (scm_iprin1): Mark print state as revealed when
3032 dispatching to generic write or display.
3033
3034 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
3035
3036 2001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
3037
3038 Support for native Win32. Thanks to Stefan Jahn!
3039
3040 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
3041 and win32-dirent.h to extra source and header files. These
3042 include the uname() and the POSIX dirent interface implementation
3043 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
3044 linkers which do not allow unresolved symbols inside shared
3045 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
3046 dependency.
3047
3048 * __scm.h: Defined SCM_API. This macro gets prepended to all
3049 function and data definitions which should be exported or imported
3050 in the resulting dynamic link library in the Win32 port.
3051
3052 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
3053 chars.h, continuations.h, coop-defs.h, coop-threads.h,
3054 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
3055 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
3056 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
3057 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
3058 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
3059 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
3060 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
3061 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
3062 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
3063 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
3064 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
3065 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
3066 vports.h, weaks.h:
3067 Prefixed each each exported symbol with SCM_API.
3068
3069 * continuations.c: Added comment about the use of the extern
3070 declarations of {get,set}context() functions used in the ia64 port.
3071
3072 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
3073 is meant to be a `unsigned long *'.
3074
3075 * filesys.c: Include `direct.h' if possible. Use local
3076 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
3077 macros for M$-Windows. Implementation of `fstat_Win32()' which is
3078 able to differentiate between sockets and other file descriptors.
3079 Use this function as wrapper in `scm_fstat()'. Fixed typo in
3080 `scm_dirname()'.
3081
3082 * fports.c: Include `io.h' is possible. Put `*fp' into referring
3083 statement block in `scm_fport_buffer_add()'.
3084 Some corrections in `getflags()'.
3085
3086 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
3087
3088 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
3089 build on Win32. Disable preloaded symbols on Win2 platforms.
3090
3091 * ioext.c, ports.c: Include `io.h' is possible.
3092
3093 * mkstemp.c: Include `process.h' is possible.
3094
3095 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
3096 too.
3097 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
3098
3099 * posix.c: Remove unnecessary dirent includes and defines. Include
3100 local `win32-uname.h' for MinGW. Extern declaration of
3101 `mkstemp()' for systems where it does not exists. Make
3102 `getlogin()' available on M$-Windows.
3103
3104 * scmsigs.c: Made `usleep()' avalable on MinGW.
3105
3106 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
3107
3108 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
3109
3110 * win32-uname.c: Include "win32-uname.h", not "uname.h".
3111
3112 2001-10-28 Mikael Djurfeldt <mdj@linnaeus>
3113
3114 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
3115 Don't apply scm_uniform_vector_length on arrays.
3116
3117 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
3118
3119 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
3120 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
3121 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
3122 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
3123 scm_list_<n> over scm_cons[2]?.
3124
3125 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
3126 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
3127 SCM_C[AD][AD]R instead of explicit form.
3128
3129 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
3130 comparison parameters.
3131
3132 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
3133 !SCM_NULLP instead of SCM_NIMP.
3134
3135 (scm_m_case): Don't copy the form. Renamed proc to clause and
3136 minimized its scope. Renamed x to clauses. Removed side
3137 effecting operation from macro call.
3138
3139 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
3140 minimized its scope. Renamed x to clauses. Minimized the scope
3141 of variable 'len'. Make sure the else clause is treated specially
3142 even in case of '=>' occurences. Don't change the else to #t in
3143 order to be able to distinguish this case in the evaluator. Leave
3144 type checking of the recipient to the evaluator.
3145
3146 (scm_c_improper_memq): Made the comment somewhat clearer.
3147
3148 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
3149 test for SCM_IM_LET at the place of the formal parameters.
3150 Simplified the formal parameter checking.
3151
3152 (scm_m_letstar): Added Comment. Renamed proc to bindings.
3153 Renamed arg1 to binding and minimized its scope. Eliminated
3154 unnecessary consing.
3155
3156 (scm_m_do): Renamed proc to bindings. Minimized the scope of
3157 variable 'len'.
3158
3159 (build_binding_list): New static function.
3160
3161 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
3162 Further, split up the 'letrec' unmemoizing code to the
3163 corresponding parts for 'do', 'let' and 'letrec', adding comments
3164 to each form. Cleanup the handling of the do form (This removes
3165 some *real* code :-).
3166
3167 (SCM_CEVAL): Removed side effecting operation from macro call.
3168 Handle the 'else clause of the 'cond form specially - the symbol
3169 'else is not replaced with #t any more.
3170
3171 2001-10-14 Gary Houston <ghouston@arglist.com>
3172
3173 * version.c (scm_version): use sprintf instead of snprintf,
3174 for portability. thanks to Bill Schottstaedt.
3175
3176 2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
3177
3178 * read.c (scm_lreadr): When user-defined hash procedure returns
3179 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
3180 an exception. (This prevents parsing of uniform vectors from
3181 interfering with parsing of numbers.)
3182
3183 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
3184
3185 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
3186 PTRDIFF_MIN. Thanks to Ken Raeburn.
3187
3188 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
3189
3190 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
3191
3192 * eval.c (scm_m_atbind): First try to find the variable without
3193 defining it locally; when it has not been found, define it
3194 locally.
3195
3196 * modules.c (module_variable): Pass over variables that exist but
3197 are unbound.
3198
3199 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
3200
3201 * backtrace.c (display_backtrace_file_and_line): Only use
3202 scm_basename when POSIX support is compiled in. Thanks to Chris
3203 Cramer.
3204
3205 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3206
3207 * numbers.c (mem2uinteger): Return number read so far when coming
3208 across a hexdigit after having read a # or if not reading a hex
3209 value. This will enable the calling code to correctly handle
3210 forms like 1e2. (The background is, that the exponent markers d,
3211 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
3212 providing this patch.
3213
3214 (mem2complex): Fix erroneous double-negation. Now, numbers like
3215 1-i will be read correctly.
3216
3217 2001-10-12 Mikael Djurfeldt <mdj@linnaeus>
3218
3219 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
3220
3221 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
3222
3223 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3224
3225 * print.c (scm_print_state_vtable, print_state_pool):
3226 Initialize. These variables are now registered as gc roots.
3227
3228 (scm_current_pstate): Update documentation.
3229
3230 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
3231 scm_prin1, scm_init_print): print_state_pool is registered as a
3232 gc root and thus does not need to be protected by a surrounding
3233 pair any more.
3234
3235 (make_print_state): The car of print_state_pool no longer holds
3236 the scm_print_state_vtable.
3237
3238 (scm_current_pstate, scm_make_print_state, print_circref,
3239 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
3240 SCM_N<foo>.
3241
3242 (scm_prin1): When building lists, prefer scm_list_<n> over
3243 scm_cons[2]?.
3244
3245 (scm_iprlist): Removed a redundant SCM_IMP test.
3246
3247 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
3248
3249 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
3250
3251 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
3252
3253 (scm_memcons, scm_mem_to_proc): When building lists, prefer
3254 scm_list_<n> over scm_cons[2]?.
3255
3256 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
3257
3258 (scm_procedure_name): Use SCM_CADR instead of explicit form.
3259
3260 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
3261 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
3262 for some reason his patch didn't make it into the cvs.
3263
3264 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
3265
3266 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
3267 little bit - should even be somewhat more accurate now.
3268
3269 2001-10-08 Rob Browning <rlb@defaultvalue.org>
3270
3271 * gc.c: support ia64 register backing store.
3272 (SCM_MARK_BACKING_STORE): new macro.
3273
3274 * continuations.h: support ia64 register backing store.
3275 (struct scm_t_contregs): add ia64 register backing store.
3276
3277 * continuations.c: support ia64 register backing store.
3278 (continuation_mark): mark ia64 register backing store.
3279 (continuation_free): free ia64 register backing store.
3280 (scm_make_continuation): capture ia64 register backing store.
3281 (copy_stack_and_call): copy ia64 register backing store.
3282
3283 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
3284
3285 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
3286 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
3287 instead of SCM_NIMP to test for that case.
3288
3289 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
3290 scm_t_bits instead of long.
3291
3292 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
3293
3294 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
3295 SCM_T_SIGNED_BITS_MIN): New.
3296 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
3297 Use them to make these macros computable by the preprocessor.
3298
3299 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
3300 whether the integral type fits in a fixnum, not the compiler.
3301 This removes a spurious compiler warning. Also, honor the
3302 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
3303 needed for `long long's.
3304
3305 * numbers.c: Define NO_PREPRO_MAGOC when including
3306 num2integral.c.i for `long long' and `signed long long'.
3307
3308 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
3309
3310 These changes fixes a race condition in the Guile coop - pthread
3311 compatibility code.
3312
3313 * coop.c (mother_awake_p): New variable.
3314 (coop_create): Set mother_awake_p before creating or signalling
3315 mother; wait until mother is going to sleep before returning.
3316 (mother): Reset mother_awake_p before going to sleep.
3317
3318 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
3319
3320 * options.c (protected_objects, scm_init_options): The content of
3321 protected_objects is now protected from garbage collection using
3322 scm_gc_register_root instead of scm_permanent_object.
3323
3324 (get_option_setting): New static function that computes an option
3325 setting as it was formerly done in the function scm_options.
3326
3327 (get_documented_option_setting): New static function that
3328 returns option documentation as it was formerly done in the
3329 function scm_options. Note that documentation C strings are no
3330 longer precomputed into SCM objects. Instead, they are converted
3331 into SCM strings every time get_documented_option_setting is
3332 called.
3333
3334 (change_option_setting): New static functions that modifies the
3335 option setting as it was formerly done in the function
3336 scm_options. The function is now exception safe, i. e. won't
3337 cause a memory leak when interrupted. Further, only non-immediate
3338 option values are added to the protection list.
3339
3340 (scm_options): This function now has only the purpose to dispatch
3341 to to get_option_setting, get_documented_option_setting or
3342 change_option_setting, depending on the arguments given to
3343 scm_options.
3344
3345 (scm_init_opts): Don't convert documentation C strings into SCM
3346 strings. Further, don't protect any object values: They _must_
3347 be immediate values, otherwise there is no guarantee that they
3348 have not been collected before anyway.
3349
3350 * options.[ch] (scm_t_option): Made type unsigned, name into a
3351 constant char* and val into a scm_t_bits type.
3352
3353 (scm_options, scm_init_opts): The number of options is guaranteed
3354 to be larger or equal to zero. Thus, the type is changed to
3355 unsigned.
3356
3357 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
3358
3359 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
3360 testing an unsigned value for being >= 0.
3361
3362 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
3363
3364 * numbers.h: Removed old comment about using SCM_CAR to access
3365 non-pair cells.
3366
3367 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
3368 the return value is signed. Thanks to Brian Crowder for the bug
3369 report.
3370
3371 (SCM_SRS): Avoid unnecessary casting and don't unpack input
3372 values. With this patch, SCM_SRS can be safely used for other
3373 types than scm_t_signed_bits. However, it should still better be
3374 an internal macro and thus be renamed to SCM_I_SRS.
3375
3376 (SCM_MAKINUM, SCM_INUM): Use proper casting.
3377
3378 2001-10-03 Gary Houston <ghouston@arglist.com>
3379
3380 * continuations.h, unif.h: in the descriptions of the bit patterns
3381 of the heap cells, make bit 0 the least significant.
3382
3383 2001-09-25 Thien-Thi Nguyen <ttn@glug.org>
3384
3385 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
3386 Thanks to Golubev I. N.
3387
3388 2001-09-25 Gary Houston <ghouston@arglist.com>
3389
3390 * ports.c (scm_drain_input): extended the docstring. thanks to
3391 Alex Schroeder and Thien-Thi Nguyen.
3392
3393 2001-09-23 Mikael Djurfeldt <mdj@linnaeus>
3394
3395 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
3396 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
3397 macros. (The NUM names might soon change.)
3398
3399 * numbers.h: Added missing declarations.
3400
3401 2001-09-22 Mikael Djurfeldt <mdj@linnaeus>
3402
3403 * Makefile.am: Distribute num2float.i.c.
3404
3405 * num2float.i.c: New file, multiply included by numbers.c, used
3406 to "templatize" the float <-> num conversion routines.
3407
3408 * numbers.c: New functions: scm_num2float, scm_float2num,
3409 scm_num2double, scm_double2num.
3410
3411 2001-09-21 Rob Browning <rlb@defaultvalue.org>
3412
3413 * .cvsignore: really add version.h
3414
3415 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
3416 Otherwise it fails on the alpha. However, we might rather choose
3417 this size conditionally.
3418
3419 * numbers.c (scm_gcd): change "k" to a long from an int.
3420 Otherwise it fails on the alpha. However, we might rather choose
3421 this size conditionally.
3422
3423 * error.c (scm_wta): coerce char* to intptr_t before int
3424 assignment.
3425
3426 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
3427 int.
3428
3429 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
3430
3431 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
3432
3433 * numbers.c (scm_integer_expt): Accept inexact integer in second
3434 argument. (Thanks to Bill Schottstaedt.)
3435
3436 2001-09-20 Rob Browning <rlb@defaultvalue.org>
3437
3438 * .cvsignore: add version.h
3439
3440 * versiondat.h.in: removed (obsolete).
3441
3442 * version.h.in: renamed from version.h.
3443 (SCM_GUILE_MAJOR_VERSION): new public macro.
3444 (SCM_GUILE_MINOR_VERSION): new public macro.
3445 (SCM_GUILE_MICRO_VERSION): new public macro.
3446
3447 * version.h: renamed to version.h.in.
3448
3449 * version.c
3450 (scm_major_version): support integer *_VERSION macros.
3451 (scm_minor_version): support integer *_VERSION macros.
3452 (scm_micro_version): support integer *_VERSION macros.
3453 (scm_version): support integer *_VERSION macros.
3454
3455 2001-09-20 Mikael Djurfeldt <mdj@linnaeus>
3456
3457 * error.c, error.h: Made error keys globally accessible.
3458 Applications might want to test for these or use them in a direct
3459 call to scm_error.
3460
3461 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
3462 routines are passed an inexact. This change in behavior is
3463 motivated by concordance with R5RS: It is more common that a
3464 primitive doesn't want to accept an inexact for an exact.
3465
3466 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3467
3468 The following patch partially undoes my patch from 2001-06-30,
3469 where I added the function scm_gc_mark_cell_conservatively. The
3470 function is buggy, since it breaks guile during conservative
3471 marking if a pointer on the stack points directly into the list of
3472 free cells on the heap: With conservative cell marking this will
3473 cause the whole free list to be scanned and marked - boom!
3474
3475 * gc.c (allocated_mark, MARK, heap_segment,
3476 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
3477 (scm_gc_mark_cell_conservatively): Remove function
3478 scm_gc_mark_cell_conservatively and update the corresponding
3479 comments and uses accordingly. Thanks to Christopher Cramer for
3480 the patch. (Minor corrections by me.)
3481
3482 2001-09-15 Gary Houston <ghouston@arglist.com>
3483
3484 * root.h (scm_root_state): removed the continuation_stack and
3485 continuation_stack_ptr members, which have no apparent purpose.
3486 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
3487 removed.
3488
3489 * root.c (root_mark), init.c (restart_stack, start_stack), gc
3490 (scm_igc): remove all references to contination_stack and
3491 continuation_stack_ptr, avoiding allocation of a vector and
3492 useless processing during gc.
3493
3494 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3495
3496 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
3497
3498 (TCONC_IN): Make sure that the cell word 0 is initialized last.
3499
3500 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
3501
3502 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
3503
3504 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
3505 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
3506
3507 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3508
3509 * guardians.c (mark_dependencies_in_tconc,
3510 whine_about_self_centered_zombies, scm_init_guardians): Register
3511 the static global variable `self_centered_zombies' via
3512 scm_gc_register_root, to make some cdr-ing unnecessary.
3513
3514 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
3515
3516 * backtrace.c (display_backtrace_file,
3517 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
3518 values, use SCM_FALSEP when comparing SCM values against #f.
3519 Thanks to Rob Browning for the bug report.
3520
3521 2001-09-12 Martin Baulig <martin@home-of-linux.org>
3522
3523 * strings.[ch] (scm_str2string): New function.
3524
3525 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
3526
3527 * gc.c (scm_done_free): Always subtract size from scm_mallocated
3528 when computing nm, even if it's negative.
3529 (scm_must_malloc): Abort on overflow of scm_mtrigger.
3530 (scm_must_realloc): Likewise.
3531
3532 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
3533
3534 * numbers.c (scm_sys_check_number_conversions): new function,
3535 defined if Guile is compiled in debugging mode. currently checks
3536 `scm_num2ulong', should check much much more.
3537
3538 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
3539 unsigned, ensure that it's positive. thanks to Martin Baulig!
3540
3541 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3542
3543 * __scm.h: Added new section about compile time selectable
3544 features.
3545
3546 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
3547 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
3548 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
3549 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
3550 Removed.
3551
3552 * deprecation.c (scm_include_deprecated_features): Simplified.
3553
3554 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
3555 `SCM_IMP´ instead of `!SCM_CELLP´.
3556
3557 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
3558 Extract side-effecting operations from macros.
3559
3560 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
3561 scm_top_level_lookup_closure_var and scm_system_transformer.
3562
3563 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
3564
3565 (heap_segment): Use CELL_P instead of SCM_CELLP.
3566
3567 * init.c (start_stack): Don't initialize
3568 scm_top_level_lookup_closure_var and scm_system_transformer.
3569
3570 * modules.c (scm_set_current_module): Don't access
3571 scm_top_level_lookup_closure_var and scm_system_transformer.
3572
3573 (scm_sym2var): Don't call scm_variable_set_name_hint.
3574
3575 (scm_post_boot_init_modules): Removed deprecated initializations.
3576
3577 * print.c (scm_ipruk): Don't access cell contents of non cells.
3578
3579 * strings.c (scm_string_set_x): All strings are writable.
3580
3581 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
3582 type. There is only one string type now.
3583
3584 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
3585
3586 * tags.h: Remove comments about two different string types.
3587
3588 (SCM_CELLP, SCM_NCELLP): Deprecated.
3589
3590 * variable.c (make_variable): Remove code variant for vcells.
3591
3592 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
3593 SCM_VARIABLE_LOC): Remove code variant for vcells.
3594
3595 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
3596 SCM_ENABLE_DEPRECATED with the logic reversed.
3597
3598 * dynl.c (moddata, registered_mods), dynl.[ch]
3599 (scm_register_module_xxx, scm_registered_modules,
3600 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
3601 (*top-level-lookup-closure*), eval.[ch]
3602 (scm_top_level_lookup_closure_var, scm_system_transformer,
3603 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
3604 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
3605 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
3606 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
3607 scm_unprotect_object), modules.c (root_module_lookup_closure,
3608 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
3609 beautify_user_module_x_var, try_module_autoload_var,
3610 scm_module_full_name), modules.[ch] (scm_the_root_module,
3611 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
3612 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
3613 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
3614 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
3615 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
3616 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
3617 scm_make_shared_substring), tags.h (scm_tc7_substring,
3618 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
3619 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
3620 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
3621 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
3622 Removed.
3623
3624 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
3625 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
3626 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
3627 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
3628 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
3629 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
3630 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
3631 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
3632 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
3633 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
3634 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
3635 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
3636 (setzone, scm_strftime, scm_strptime), vports.c
3637 (scm_make_soft_port): Remove calls to
3638 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
3639 gone, all strings are 0-terminated anyway.
3640
3641 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
3642 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
3643 double inclusion of the same headers to the SCM_<filename>_H
3644 format.
3645
3646 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
3647 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
3648 print.c (scm_iprin1): The type scm_tc7_substring does not exist
3649 any more.
3650
3651 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
3652 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
3653 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
3654 !SCM_<foo> over SCM_N<foo>.
3655
3656 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3657
3658 * Makefile.am: Remove references to symbols-deprecated.c.
3659
3660 * symbols.c (scm_init_symbols): Don't initialize deprecated
3661 symbol functions.
3662
3663 * symbols-deprecated.c: Removed.
3664
3665 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
3666 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
3667 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
3668 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
3669 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
3670 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
3671 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
3672 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
3673 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
3674 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
3675 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
3676 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
3677 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
3678 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
3679 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
3680 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
3681 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
3682 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
3683 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
3684 scm_intern0, scm_sysintern, scm_sysintern0,
3685 scm_sysintern0_no_module_lookup, scm_symbol_value0,
3686 scm_string_to_obarray_symbol, scm_intern_symbol,
3687 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
3688 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
3689 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
3690 vectors.[ch] (scm_vector_set_length_x): Removed.
3691
3692 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
3693 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
3694 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
3695 Renamed the macros that are defined to inhibit double inclusion of
3696 the same headers to the SCM_<filename>_H format.
3697
3698 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
3699 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
3700 SCM_N<foo>.
3701
3702 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3703
3704 * continuations.h (scm_contregs), debug.h (scm_debug_info,
3705 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
3706 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
3707 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
3708 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
3709 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
3710 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
3711 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
3712 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
3713 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
3714 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
3715 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
3716
3717 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
3718 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
3719 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
3720 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
3721 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
3722 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
3723 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
3724 double inclusion of the same headers to the SCM_<filename>_H
3725 format.
3726
3727 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
3728 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
3729 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
3730 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
3731 !SCM_<foo> over SCM_N<foo>.
3732
3733 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
3734
3735 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
3736 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
3737 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
3738 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
3739 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
3740 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
3741 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
3742 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
3743 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
3744 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
3745 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
3746 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
3747 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
3748 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
3749 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
3750 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
3751 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
3752 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
3753 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
3754 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
3755 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
3756 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
3757 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
3758 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
3759 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
3760 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
3761 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
3762 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
3763 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
3764 the macros that are defined to inhibit double inclusion of the
3765 same headers to the SCM_<filename>_H format.
3766
3767 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
3768
3769 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
3770 "scm_t_portable" with "scm_port_table" which was an artifact from
3771 the great "scm_*_t -> scm_t_" renaming.
3772
3773 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
3774
3775 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
3776 used; nfc. Thanks to Bill Schottstaedt.
3777
3778 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
3779 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
3780 Thanks to Chris Cramer.
3781
3782 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
3783
3784 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
3785
3786 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
3787 dynamic scope.
3788 * dynwind.h (scm_swap_bindings): Declare.
3789 * dynwind.c (scm_swap_bindings): Make non-static.
3790
3791 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
3792
3793 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
3794 doing exactly nothing about them). thanks Neil!
3795
3796 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
3797
3798 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
3799
3800 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
3801
3802 * gc.c: Fix omission bug: Add `heap_segment' forward decl
3803 (proto) in the case when either `GUILE_DEBUG' or
3804 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
3805
3806 (map_free_list): Fix typo: Ref `f' correctly.
3807
3808 Thanks to Chris Cramer.
3809
3810 2001-08-15 Rob Browning <rlb@defaultvalue.org>
3811
3812 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
3813 variables.
3814 (libpath.h): change libguileversion to libguileinterface.
3815
3816 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
3817
3818 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
3819 ChangeLog-2000. Thanks to Daniel Skarda!
3820
3821 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
3822
3823 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
3824 do it from the Makefile.
3825
3826 * Makefile.am: rearrange the snarfing slightly, so that .doc files
3827 are of a reasonable size.
3828
3829 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
3830
3831 * stacks.c (scm_make_stack): Improve docstring by explaining use
3832 of cutting args.
3833
3834 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
3835
3836 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
3837 scm_char_whitespace_p, scm_char_upper_case_p,
3838 scm_char_lower_case_p, scm_char_is_both_p): Do not require
3839 characters to fulfill isascii in addition to the primary
3840 predicate.
3841
3842 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3843
3844 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
3845 scm_istr2flo, scm_istring2number): Removed.
3846
3847 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
3848 SCM_SLOPPY_<foo>.
3849
3850 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
3851 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
3852 Added.
3853
3854 (scm_string_to_number): Use new number parser.
3855
3856 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
3857 handles complex numbers.
3858
3859 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
3860 SCM_<foo>_H.
3861
3862 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
3863 SCM_N<pred>.
3864
3865 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
3866
3867 (scm_i_mem2number): Added.
3868
3869 (scm_exact_to_inexact): Changed signature.
3870
3871 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
3872 here instead of within scm_i_mem2number. Call scm_i_mem2number
3873 instead of scm_istr2int and scm_istring2number.
3874
3875 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3876
3877 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
3878 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
3879 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
3880 !SCM_<pred> over SCM_N<pred>.
3881
3882 (scm_eval_body): Remove side effecting code from macro call.
3883
3884 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
3885 SCM_NIMP test.
3886
3887 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
3888
3889 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
3890
3891 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
3892
3893 Removed vcell slot from structs.
3894
3895 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
3896 subsequent indices.
3897
3898 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
3899 zero. Use scm_vtable_index_layout instead of "0" when accessing
3900 said slot.
3901 (scm_init_struct): Remove vcell slot layout code from
3902 required_vtable_fields.
3903
3904 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
3905
3906 * goops.c (build_class_class_slots): Removed vcell slot
3907 definition.
3908
3909 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
3910 Removed vcell slot layout code.
3911 (scm_si_vcell): Removed.
3912
3913 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
3914
3915 "Glocs" have been removed.
3916
3917 * tags.h: Update tag system docs.
3918 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
3919 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
3920 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
3921 or SCM_NCONSP, respectively.
3922
3923 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
3924 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
3925 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
3926
3927 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
3928 tell glocs from structs.
3929
3930 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
3931
3932 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
3933 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
3934 instead of with glocs.
3935 (EVALCAR): Do not test for glocs.
3936 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
3937 condition.
3938 (scm_unmemocar): Do not handle glocs.
3939 (scm_m_atfop): Memoize as a variable, not as a gloc.
3940 (scm_eval_args, scm_deval_args): Do not handle glocs.
3941 (scm_ceval, scm_deval): Likewise.
3942
3943 * eval.h (SCM_XEVALCAR): Do not test for glocs.
3944 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
3945 Removed.
3946
3947 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
3948
3949 * dynwind.c (scm_swap_bindings): Likewise.
3950 (scm_dowinds): Updated to recognize lists of variables instead of
3951 lists of glocs.
3952
3953 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
3954
3955
3956 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
3957 where it is needed.
3958
3959 2001-07-25 Gary Houston <ghouston@arglist.com>
3960
3961 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
3962 docstrings to reflect the n-ary implementation.
3963
3964 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
3965
3966 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
3967 value of a variable, not the plain "return" statement.
3968
3969 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
3970
3971 * eval.c: Allow variables in memoized code (in addition to glocs).
3972 (scm_lookupcar): Handle variables in lost races. Replace symbol
3973 with variable directly, do not make a gloc.
3974 (scm_unmemocar): Rewrite variables using a reverse lookup, just
3975 like glocs.
3976 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
3977 the main switch.
3978
3979 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3980
3981 * variable.c (scm_i_variable_print): Use "value" instead of
3982 "binding" since a binding is the mapping between symbols and
3983 variables, not between variables and their values.
3984
3985 * tags.h (scm_tc7_variable): New.
3986 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
3987 * print.c (scm_iprin1): Likewise.
3988
3989 * variable.h (scm_tc16_variable): Removed.
3990 (SCM_VARIABLEP): Test for new tc7 code.
3991 (scm_i_variable_print): New.
3992 * variable.c (scm_tc16_variable): Removed.
3993 (variable_print): Renamed to scm_i_variable_print and made
3994 non-static.
3995 (variable_equal_p): Removed.
3996 (make_variable): Construct a tc7 object instead of a smob.
3997 (scm_init_variable): Do not register smob.
3998
3999 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
4000
4001 * tags.h: Include inttypes.h when we have it.
4002
4003 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
4004
4005 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
4006 is taken by the new SCM_IM_CALL_WITH_VALUES.
4007 * print.c (scm_isymnames): Update table accordingly.
4008
4009 2001-07-22 Gary Houston <ghouston@arglist.com>
4010
4011 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
4012 SCM_MAKINUM to convert regoff_t value to SCM.
4013
4014 2001-07-21 Gary Houston <ghouston@arglist.com>
4015
4016 * scmsigs.c: include sys/time.h for itimer stuff.
4017
4018 2001-07-19 Rob Browning <rlb@defaultvalue.org>
4019
4020 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
4021
4022 * c-tokenize.lex: add option %nounput to quiet warning.
4023 Add prototype for yylex to quiet warning.
4024
4025 * scmconfig.h.in: add flags for setitimer and getitimer.
4026
4027 * scmsigs.h (scm_init_scmsigs): new prototype.
4028 (scm_init_scmsigs): new prototype.
4029
4030 * scmsigs.c (s_scm_setitimer): new function.
4031 (s_scm_setitimer): new function.
4032
4033 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4034
4035 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
4036 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
4037 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
4038 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
4039 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
4040 guile-func-name-check.in, guile-snarf-docs-texi.in,
4041 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
4042 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
4043 objprop.c, objprop.h, options.c, options.h, random.h,
4044 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
4045 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
4046 version.c, version.h: Updated copyright notice.
4047
4048 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
4049
4050 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
4051 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
4052 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
4053 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
4054 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
4055 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
4056 sym_environment, scm_sym_change_class): New static variables to
4057 hold predefined symbols.
4058
4059 (build_class_class_slots): Build the list using scm_list_n
4060 instead of cons. Also, slots are already created as lists, thus
4061 making a call to maplist unnecessary.
4062
4063 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
4064 scm_class_direct_subclasses, scm_class_direct_methods,
4065 scm_class_precedence_list, scm_class_slots, scm_class_environment,
4066 scm_method_procedure, create_standard_classes, purgatory): Use
4067 predefined symbols.
4068
4069 (build_slots_list, compute_getters_n_setters,
4070 scm_sys_initialize_object, scm_sys_inherit_magic_x,
4071 get_slot_value_using_name, set_slot_value_using_name,
4072 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
4073 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
4074 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
4075
4076 (scm_sys_prep_layout_x): Minimize variable scopes.
4077
4078 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
4079 scm_sys_fast_slot_set_x): Fix signedness.
4080
4081 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
4082 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
4083 scm_memoize_method, scm_wrap_object): Use packing and unpacking
4084 when converting to and from SCM values.
4085
4086 (scm_enable_primitive_generic_x): Add rest argument checking.
4087
4088 (map, filter_cpl, maplist, scm_sys_initialize_object,
4089 scm_sys_prep_layout_x, slot_definition_using_name,
4090 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
4091 call_memoize_method, scm_make, scm_make_class): Prefer explicit
4092 predicates over SCM_N?IMP tests.
4093
4094 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
4095 checking.
4096
4097 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
4098 alias.
4099
4100 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
4101
4102 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
4103
4104 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
4105
4106 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
4107
4108 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
4109
4110 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
4111
4112 * strings.c (s_scm_string): fix arg position in assert.
4113
4114 2001-07-11 Gary Houston <ghouston@arglist.com>
4115
4116 * strports.c (st_write): use memcpy, not strncpy. thanks to
4117 Dale P. Smith.
4118
4119 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
4120
4121 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
4122 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
4123 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
4124 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
4125 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
4126 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
4127 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
4128 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
4129 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
4130 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
4131 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
4132 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
4133 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
4134 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
4135 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
4136 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
4137 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
4138 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
4139 weaks.c, weaks.h: Remove "face-lift" comment.
4140
4141 2001-07-08 Rob Browning <rlb@defaultvalue.org>
4142
4143 * .cvsignore: add stamp-h.in.
4144
4145 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4146
4147 * hooks.c (scm_make_hook, scm_add_hook_x),
4148 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
4149 value info to the docstrings.
4150
4151 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4152
4153 Some more compatibility patches for Windows.
4154
4155 * posix.c (getlogin): getlogin() implementation for Windows.
4156
4157 * backtrace.c, ioext.c: Include <stdio.h>.
4158
4159 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
4160 exist.
4161
4162 * cpp_sig_symbols.in: Added SIGBREAK.
4163
4164 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
4165
4166 * strports.c (scm_read_0str, scm_eval_0str): Call
4167 scm_c_read_string and scm_c_eval_string respectively, not
4168 themselves. Thanks to Dale P. Smith!
4169
4170 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
4171
4172 * unif.c (scm_array_set_x): The variable args does not
4173 necessarily have to be a list. Further, got rid of a redundant
4174 SCM_NIMP test.
4175
4176 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
4177
4178 * list.c (SCM_I_CONS): Make sure the cell type is initialized
4179 last.
4180
4181 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
4182 init_heap_seg): Fixed signedness.
4183
4184 (init_heap_seg): Replaced strange for-loop with a while loop.
4185
4186 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
4187
4188 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
4189
4190 The following patch adds conservative marking for the elements of
4191 free or allocated cells.
4192
4193 * gc.c (allocated_mark, heap_segment): New static functions.
4194
4195 (which_seg): Deleted, since the functionality is now provided by
4196 function heap_segment.
4197
4198 (map_free_list): Use heap_segment instead of which_seg.
4199
4200 (MARK): If cell debugging is disabled, mark free cells
4201 conservatively.
4202
4203 (scm_mark_locations, scm_cellp): Extracted the search for the
4204 heap segment of a SCM value into function heap_segment.
4205
4206 (scm_init_storage): Allocated cells must be marked
4207 conservatively.
4208
4209 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
4210
4211 The following patch changes the representation of weak vectors to
4212 double cells instead of using an extension of the vector's
4213 allocated memory.
4214
4215 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
4216 the result of SCM_WVECT_GC_CHAIN.
4217
4218 (scm_gc_sweep): Weak vectors don't have extra fields any more.
4219
4220 * weaks.c (allocate_weak_vector): New static function. It does
4221 not patch any previously created vector object during the
4222 construction of a weak vector, and thus doesn't need to switch
4223 off interrupts during vector creation.
4224
4225 (scm_make_weak_vector, scm_make_weak_key_hash_table,
4226 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
4227 Use allocate_weak_vector to provide the new weak vector object.
4228
4229 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
4230 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
4231 now stored in the double cell.
4232
4233 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
4234 Use SCM_WVECT_TYPE.
4235
4236 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
4237 using an entry of the double cell.
4238
4239 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
4240
4241 * stamp-h.in: bye bye
4242
4243 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
4244
4245 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
4246 scm_eval_0str.
4247
4248 * load.c, load.h (scm_c_primitive_load,
4249 scm_c_primitive_load_path): New.
4250
4251 * strports.c, strports.h (scm_c_read_string): Renamed from
4252 scm_read_0str. Also, added "const" qualifier to argument.
4253 (scm_c_eval_string): Renamed from scm_eval_0str.
4254 (scm_read_0str, scm_eval_0str): Deprecated.
4255
4256 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4257
4258 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
4259 SCM_LIST1.
4260
4261 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
4262
4263 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
4264 scm_list_n): New functions.
4265 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
4266 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
4267 (lots of files): Use the new functions.
4268
4269 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
4270
4271 * strings.c: #include "libguile/deprecation.h".
4272
4273 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4274
4275 * read.c (scm_lreadr): When reading a hash token, check for a
4276 user-defined hash procedure first, so that overriding the builtin
4277 hash characters is possible (this was needed for implementing
4278 SRFI-4's read synax `f32(...)').
4279
4280 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
4281 because the latter is unsigned now and breaks comparisons like
4282 (n < (scm_t_signed_bits)MIN_VALUE).
4283
4284 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
4285
4286 * eval.h, eval.c (scm_call_4): New function.
4287
4288 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
4289 directly rather than dispatching to them via scm_ithrow and a lazy
4290 catch.
4291
4292 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
4293 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
4294 for trap handler procedures.
4295
4296 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
4297 procedures not being #f.
4298
4299 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
4300
4301 * Makefile.am (c-tokenize.c): add rule to generate it.
4302 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
4303
4304 filter-doc-snarfage.c: remove.
4305
4306 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4307
4308 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
4309
4310 The following set of changes makes compiling Guile under various
4311 Windows compilers easier. Compilation under GNU systems should
4312 not be affected at all.
4313
4314 Thanks to Stefan Jahn for all necessary information, patches and
4315 testing.
4316
4317 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
4318 getpgrp, ttyname, primitive-fork and some header inclusion for
4319 Windows.
4320
4321 * random.c: Define M_PI, if not predefined and use __int64 for
4322 LONG64 under Windows.
4323
4324 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
4325 Windows and conditionalize some signal names.
4326
4327 * socket.c (scm_getsockopt): Added missing comma.
4328 Include socket library header under Windows.
4329
4330 * stime.c (CLKTCK): Add cast to int, to make it compile under
4331 Windows.
4332
4333 * ports.c (truncate): New function, compiled only under Windows.
4334
4335 * net_db.c: Do not declare errno under Windows.
4336
4337 * iselect.h, inet_aton.c: Include socket library headers under
4338 Windows.
4339
4340 * guile.c (inner_main): Under Windows, initialize socket library
4341 and initialize gdb_interface data structures.
4342
4343 * gdb_interface.h: Under Windows, gdb_interface cannot be
4344 initialized statically. Initialize at runtime instead.
4345
4346 * fports.c (write_all): ssize_t -> size_t.
4347 (fport_print): Conditionalize call to ttyname().
4348 (getflags): New function, compiled only under Windows.
4349
4350 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
4351 primitives chown, link, fcntl.
4352 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
4353 as path seperator.
4354
4355 * backtrace.c: Include <io.h> under Windows.
4356
4357 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
4358
4359 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
4360 declaration.
4361
4362 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
4363
4364 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
4365 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
4366 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
4367 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
4368 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
4369 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
4370 (scm_dynamic_wind, scm_dowinds), environments.c
4371 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
4372 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
4373 goops.c (GETVAR, purgatory, make_class_from_template,
4374 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
4375 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
4376 (scm_primitive_load), modules.c (scm_resolve_module,
4377 scm_c_define_module, scm_c_use_module, scm_c_export,
4378 module_variable, scm_eval_closure_lookup, scm_sym2var,
4379 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
4380 ports.c (scm_port_for_each), print.c (scm_printer_apply),
4381 properties.c (scm_primitive_property_ref), ramap.c (ramap,
4382 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
4383 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
4384 (scm_object_to_string, scm_call_with_output_string,
4385 scm_call_with_input_string), throw.c (scm_body_thunk,
4386 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
4387 scm_make_shared_array), vports.c (sf_flush, sf_write,
4388 sf_fill_input, sf_close): Use one of the above functions.
4389 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
4390
4391 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4392
4393 * filesys.c (scm_close), ports.c (scm_close_port,
4394 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
4395 instead of SCM_NEGATE_BOOL.
4396
4397 * filesys.c (scm_stat): Clean up type dispatch.
4398
4399 * filesys.c (scm_stat), ports.c (scm_input_port_p,
4400 scm_output_port_p): Get rid of redundant IM type check.
4401
4402 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
4403 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
4404 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
4405 scm_return_entry), numbers.c (scm_number_to_string), objects.c
4406 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
4407 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
4408 scm_addr_vector), stime.c (scm_strftime), strings.c
4409 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
4410 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
4411 scm_string_split), strports.c (scm_strport_to_string), symbols.c
4412 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
4413 instead of scm_makfromstr.
4414
4415 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
4416 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
4417 scm_read_hash_extend), stime.c (scm_strftime), strings.c
4418 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
4419 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
4420 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
4421 !SCM_<pred> over SCM_N<pred>.
4422
4423 * strings.[ch] (scm_makfromstr): Deprecated.
4424
4425 (scm_mem2string): New function, replaces scm_makfromstr.
4426
4427 * strings.c (scm_substring), strop.c (string_copy,
4428 scm_string_split), strports.c (scm_strport_to_string), symbols.c
4429 (scm_symbol_to_string): Fix gc problem.
4430
4431 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
4432 SCM_<foo>_H.
4433
4434 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
4435 warning about comparing signed and unsigned values. This fix is
4436 not optimal, since it won't work reliably if sizeof (c_start) >
4437 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
4438 solution is to define this macro as an inline function, thus
4439 allowing to specifiy the types of c_start and c_end.
4440
4441 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
4442
4443 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
4444 scm_t_debug_frame*.
4445
4446 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
4447 Rename <foo>H to SCM_<foo>_H.
4448
4449 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
4450 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
4451
4452 (narrow_stack): Make i unsigned. Don't use side-effecting
4453 operations in conditions.
4454
4455 (narrow_stack, scm_make_stack, scm_stack_id,
4456 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
4457
4458 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
4459 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
4460 more.
4461
4462 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
4463 signedness.
4464
4465 (scm_last_stack_frame): Remove bogus `;´.
4466
4467 * stacks.h (SCM_FRAMEP): Fix type check.
4468
4469 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
4470
4471 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
4472 c-tokenize.c when doing maintainer-clean.
4473
4474 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
4475
4476 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
4477 simplify.
4478
4479 * eval.c: all hash signs are in column 0.
4480
4481 * Makefile.am (guile_filter_doc_snarfage): build using
4482 c-tokenize.c, not filter-doc-snarfage.c.
4483 rearrange snarfing dependencies a bit.
4484
4485 * c-tokenize.lex: new file.
4486
4487 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
4488
4489 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
4490 scm_t_srcpropso_plist. See the big type renaming.
4491 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
4492 Thanks to Seth Alves!
4493
4494 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
4495 they aren't defined already.
4496
4497 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
4498
4499 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
4500 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
4501 problem.
4502
4503 * backtrace.c (display_expression, scm_set_print_params_x,
4504 display_application, display_frame, scm_backtrace), numbers.c
4505 (scm_istring2number), objects.c (scm_class_of,
4506 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
4507 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
4508
4509 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
4510 always positive.
4511
4512 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
4513 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
4514
4515 * objects.c (scm_class_of): Type fix.
4516
4517 (scm_mcache_lookup_cmethod): Improved comment, simplified,
4518 eliminated goto.
4519
4520 * pairs.h (scm_error_pair_access): The function can return if
4521 called recursively.
4522
4523 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4524
4525 * init.c (scm_init_guile_1): Removed initialization of tag.c.
4526
4527 * gdbint.c, init.c: Removed inclusion of tag.h.
4528
4529 * tag.h, tag.c: Removed files.
4530
4531 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
4532
4533 2001-06-20 Gary Houston <ghouston@arglist.com>
4534
4535 * deprecation.c, extensions.c, rw.c: include string.h.
4536
4537 2001-06-19 Gary Houston <ghouston@arglist.com>
4538
4539 * filter-doc-snarfage.c (process): added ungetc in
4540 MULTILINE_COOKIE case since otherwise it fails when there's no
4541 space between the '(' and the quote of the following string
4542 (gcc 3.0).
4543
4544 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
4545
4546 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
4547
4548 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
4549
4550 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
4551 extension takes place.
4552 * strings.h (SCM_STRING_LENGTH): Likewise.
4553 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
4554
4555 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
4556 it.
4557
4558 * tags.h: Include <stdint.h> when we have it.
4559 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
4560 available. Else use "unsigned long".
4561 (scm_signed_bits_t): New.
4562
4563 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
4564 (SCM_INUM): Cast result to scm_signed_bits_t.
4565
4566 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
4567
4568 * mkstemp.c: Update path to #include file scmconfig.h.
4569 Thanks to Golubev I. N.
4570
4571 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
4572
4573 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
4574
4575 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
4576 the macro definition.
4577
4578 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
4579 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
4580 instead of SCM_INST_TYPE.
4581
4582 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
4583 the object is a struct before accessing its struct flags.
4584
4585 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
4586
4587 2001-06-10 Gary Houston <ghouston@arglist.com>
4588
4589 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
4590 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
4591 work reliably anymore. try it from boot-9.scm instead.
4592
4593 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
4594
4595 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
4596 Thanks to Matthias Köppe!
4597
4598 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
4599
4600 * snarf.h, filter-doc-snarfage.c: more changes to cope with
4601 space-happy C preprocessors.
4602
4603 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
4604 inside cookies. thanks to Matthias Köppe!
4605
4606 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4607
4608 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
4609 keywords. Fix gc protection.
4610
4611 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
4612 operations in macro calls.
4613
4614 * pairs.c (scm_error_pair_access): Avoid recursion.
4615
4616 Thanks to Matthias Koeppe for reporting the bugs that correspond
4617 to the following set of patches.
4618
4619 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
4620 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
4621 bitvector base address using SCM_BITVECTOR_BASE.
4622
4623 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
4624 unsigned long*.
4625
4626 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
4627
4628 * goops.c (SCM_CLASS_REDEF): Removed.
4629
4630 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
4631 SCM_<foo>_H.
4632
4633 Thanks to Matthias Koeppe for reporting the bugs that correspond
4634 to the following set of patches.
4635
4636 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
4637 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
4638 scm_sys_allocate_instance, clear_method_cache,
4639 scm_sys_invalidate_method_cache_x, scm_make,
4640 create_standard_classes, scm_make_port_classes, scm_make_class,
4641 scm_add_slot): Use SCM_SET_SLOT to set slot values.
4642
4643 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
4644
4645 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
4646
4647 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
4648 UNARY_ELTS_CODE): Remove bogus break statement.
4649
4650 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
4651 Don't access bit vectors elements as SCM objects.
4652
4653 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
4654 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
4655 Don't assign to an unpacked value.
4656
4657 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
4658
4659 * __scm.h (SCM_NORETURN): Moved here from error.h.
4660
4661 (SCM_UNUSED): New macro.
4662
4663 (SCM_DEBUG_PAIR_ACCESSES): New macro.
4664
4665 * backtrace.c (display_error_handler), continuations.c
4666 (continuation_print), debug.c (debugobj_print), dynwind.c
4667 (guards_print), environments.c (observer_print,
4668 core_environments_finalize, leaf_environment_cell,
4669 leaf_environment_print, eval_environment_print,
4670 eval_environment_observer, import_environment_define,
4671 import_environment_undefine, import_environment_print,
4672 import_environment_observer, export_environment_define,
4673 export_environment_undefine, export_environment_print,
4674 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
4675 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
4676 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
4677 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
4678 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
4679 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
4680 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
4681 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
4682 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
4683 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
4684 set_slot_value, test_slot_existence, scm_change_object_class,
4685 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
4686 default_setter), guardians.c (guardian_print, guardian_gc_init,
4687 guardian_zombify, whine_about_self_centered_zombies), guile.c
4688 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
4689 mallocs.c (malloc_print), numbers.c (scm_print_real,
4690 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
4691 end_input_default, scm_port_print, fill_input_void_port,
4692 write_void_port), root.c (root_print), smob.c (scm_mark0,
4693 scm_free0, scm_smob_print, scm_smob_apply_1_error,
4694 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
4695 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
4696 (scm_struct_free_0, scm_struct_free_standard,
4697 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
4698 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
4699 scm_handle_by_throw, scm_ithrow), weaks.c
4700 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
4701 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
4702 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
4703
4704 * error.h (SCM_NORETURN): Moved to __scm.h.
4705
4706 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
4707 Renamed <foo>H to SCM_<foo>_H.
4708
4709 * gc.c (debug_cells_gc_interval): New static variable.
4710
4711 (scm_assert_cell_valid): If selected by the user, perform
4712 additional garbage collections.
4713
4714 (scm_set_debug_cell_accesses_x): Extended to let the user specify
4715 if additional garbage collections are desired.
4716
4717 (mark_gc_async): If additional garbage collections are selected
4718 by the user, don't call the after-gc-hook. Instead require the
4719 user to run the hook manually.
4720
4721 * pairs.c (scm_error_pair_access): New function. Only compiled
4722 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
4723
4724 * pairs.h (SCM_VALIDATE_PAIR): New macro.
4725
4726 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
4727 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
4728 is a real pair object. (Glocs are also accepted, but that may
4729 change.) If not, abort with an error message.
4730
4731 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
4732
4733 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
4734
4735 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
4736 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
4737
4738 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
4739
4740 * extensions.c (scm_c_register_extension): Allow NULL as library
4741 name.
4742 (load_extension): Ignore NULL library names when comparing.
4743
4744 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
4745 non-pointers are being compared. Thanks to Alexander Klimov!
4746
4747 2001-06-04 Gary Houston <ghouston@arglist.com>
4748
4749 * rw.c (scm_write_string_partial): new procedure implementing
4750 write-string/partial in (ice-9 rw).
4751 * rw.h: declare scm_write_string_partial.
4752
4753 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
4754
4755 * keywords.c (keyword_print): Substract 1 from length of symbol
4756 name, accounting for the silly dash.
4757
4758 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
4759 Do not emit deprecation warning.
4760
4761 Added exception notice to all files.
4762
4763 * dynl.c: Include "deprecation.h".
4764
4765 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
4766
4767 * dynl.c (scm_register_module_xxx, scm_registered_modules,
4768 scm_clear_registered_modules): Deprecated.
4769
4770 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
4771
4772 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
4773 guile-snarf-docs-texi.
4774
4775 * fports.c: HAVE_ST_BLKSIZE changed to
4776 HAVE_STRUCT_STAT_ST_BLKSIZE.
4777 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
4778 HAVE_STRUCT_STAT_ST_BLKSIZE.
4779
4780 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
4781 HAVE_STRUCT_STAT_ST_RDEV.
4782 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
4783 HAVE_STRUCT_STAT_ST_BLKSIZE.
4784 (scm_stat2scm): HAVE_ST_BLOCKS changed to
4785 HAVE_STRUCT_STAT_ST_BLOCKS.
4786
4787 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
4788
4789 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
4790 of scm_eval_x to allow module changes between the forms in the
4791 string. Set/restore module using scm_c_call_with_current_module.
4792
4793 * mkstemp.c: New file, slightly modified from libiberties
4794 mkstemps.c.
4795
4796 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
4797
4798 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
4799 filter-doc-snarfage.c: new files.
4800
4801 * Makefile.am: add stuff to [build,] use and distribute
4802 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
4803
4804 * guile-snarf.in: grok the new snarf output.
4805
4806 * snarf.h: make the output both texttools- and `read'-friendly.
4807
4808 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
4809 guile-snarf-docs. (should also deprecate, I guess. maybe not).
4810
4811 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
4812
4813 * print.c (scm_simple_format): Support "~~" and "~%". Signal
4814 error for unsupported format controls and for superflous
4815 arguments. Thanks to Daniel Skarda!
4816
4817 * print.h, print.c (scm_print_symbol_name): Factored out of
4818 scm_iprin1.
4819 (scm_iprin1): Call it.
4820
4821 * keywords.c (keyword_print): Use scm_print_symbol_name so that
4822 weird names are printed correctly.
4823
4824 * print.c (scm_print_symbol_name): Symbols whose name starts with
4825 `#' or `:' or ends with `:' are considered weird.
4826
4827 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4828
4829 * numbers.c (scm_difference, scm_divide): Clarified comments for -
4830 and /.
4831
4832 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4833
4834 * debug.h: Removed prototype for scm_eval_string.
4835
4836 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4837
4838 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
4839 (make-string 2000 #\!))' in an older version).
4840
4841 Change strncpy to memcpy to allow embedded NUL characters in
4842 symbol prefix.
4843
4844 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
4845
4846 * hooks.c (scm_create_hook): deprecated.
4847 (make_hook): deleted.
4848 (scm_make_hook): all the hook creation code is now here.
4849
4850 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
4851 a hook, make it permanent, and do a `scm_c_define' on it.
4852
4853 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
4854
4855 * socket.c (s_scm_inet_pton): fix docstring quoting.
4856 (s_scm_inet_ntop): ditto.
4857
4858 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
4859
4860 * hashtab.c (scm_internal_hash_fold): fix argument position in
4861 SCM_ASSERT.
4862
4863 * environments.c (s_scm_import_environment_set_imports_x): fix
4864 argument position in SCM_ASSERT.
4865
4866 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
4867 (s_scm_make_iloc): ditto.
4868
4869 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
4870
4871 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
4872
4873 * eval.c (promise_print): Read the promise's value as an object.
4874
4875 (SCM_CEVAL): Don't perform side-effecting operations in macro
4876 parameters.
4877
4878 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
4879 conditional expression.
4880
4881 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
4882 initializer.
4883
4884 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
4885 text, removed redundant computation of effective_length and fixed
4886 the overflow check.
4887
4888 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
4889 values.
4890
4891 (wrap_init): Don't use SCM_C[AD]R for non pairs.
4892
4893 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
4894
4895 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
4896 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
4897
4898 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
4899
4900 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
4901 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
4902 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
4903 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
4904
4905 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
4906
4907 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
4908
4909 * ramap.c (ramap_rp): Removed bogus `;´.
4910
4911 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
4912 problem.
4913
4914 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
4915 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
4916 Read SCM objects rather than scm_bits_t values.
4917
4918 * tags.h (SCM_VOIDP_TEST): Removed.
4919
4920 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
4921 value of 2 now corresponds to the former 1, the current 1
4922 corresponds to the former situation that SCM_VOIDP_TEST was
4923 defined.
4924
4925 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
4926 If this appears to be not ANSI compliant, we will change it to
4927 typedef struct scm_unused_struct { } * SCM;
4928 Thanks to Han-Wen Nienhuys for the suggestion.
4929
4930 * unif.c (scm_array_set_x): Fix typing problem, and use
4931 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
4932 dealing with uniform vectors.
4933
4934 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
4935
4936 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
4937 (scm_igc): mark from them, too (precisely, not conservatively!).
4938
4939 * root.h (scm_gc_registered_roots): new object in
4940 scm_sys_protects.
4941
4942 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
4943 `scm_protect_object'. shouldn't call it at all, though, it seems.
4944
4945 * gc.c (scm_[un]protect_object): deprecated.
4946 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
4947 (scm_gc_[un]register_root[s]): new.
4948
4949 * gc.h: add prototypes for scm_gc_[un]protect_object,
4950 scm_gc_[un]register_root[s].
4951
4952 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
4953
4954 revert the controversial part of the 2001-05-24 changes.
4955
4956 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
4957
4958 * modules.c (scm_env_module): Exported to Scheme.
4959
4960 * eval.c (scm_debug_opts): New option `show-file-name'.
4961
4962 * debug.h (SCM_SHOW_FILE_NAME): New.
4963
4964 * backtrace.c: Include "libguile/filesys.h".
4965 (sym_base, display_backtrace_get_file_line,
4966 display_backtrace_file, display_backtrace_file_and_line): New.
4967 (display_frame): Call display_backtrace_file_and_line if that is
4968 requested.
4969 (display_backtrace_body): Call scm_display_backtrace_file if
4970 requested.
4971
4972 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
4973 Prototypes removed since there's no definition for these
4974 functions.
4975
4976 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
4977
4978 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
4979 Changed use of scm_array->scm_array_t and
4980 scm_array_dim->scm_array_dim_t to enable build with
4981 --disable-deprecated.
4982
4983 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
4984
4985 The purpose of this set of changes is to regularize Guile's usage
4986 of ANSI C integral types, with the following ideas in mind:
4987
4988 - SCM does not nesessarily have to be long.
4989 - long is not nesessarily enough to store pointers.
4990 - long is not nesessarily the same size as int.
4991
4992 The changes are incomplete and possibly buggy. Please test on
4993 something exotic.
4994
4995 * validate.h
4996 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
4997 new macros.
4998
4999 * unif.h: type renaming:
5000 scm_array -> scm_array_t
5001 scm_array_dim -> scm_array_dim_t
5002 the old names are deprecated, all in-Guile uses changed.
5003
5004 * tags.h (scm_ubits_t): new typedef, representing unsigned
5005 scm_bits_t.
5006
5007 * stacks.h: type renaming:
5008 scm_info_frame -> scm_info_frame_t
5009 scm_stack -> scm_stack_t
5010 the old names are deprecated, all in-Guile uses changed.
5011
5012 * srcprop.h: type renaming:
5013 scm_srcprops -> scm_srcprops_t
5014 scm_srcprops_chunk -> scm_srcprops_chunk_t
5015 the old names are deprecated, all in-Guile uses changed.
5016
5017 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
5018 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
5019 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
5020 vectors.c, vports.c, weaks.c:
5021 various int/size_t -> size_t/scm_bits_t changes.
5022
5023 * random.h: type renaming:
5024 scm_rstate -> scm_rstate_t
5025 scm_rng -> scm_rng_t
5026 scm_i_rstate -> scm_i_rstate_t
5027 the old names are deprecated, all in-Guile uses changed.
5028
5029 * procs.h: type renaming:
5030 scm_subr_entry -> scm_subr_entry_t
5031 the old name is deprecated, all in-Guile uses changed.
5032
5033 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
5034 type renaming:
5035 scm_option -> scm_option_t
5036 the old name is deprecated, all in-Guile uses changed.
5037
5038 * objects.c: various long -> scm_bits_t changes.
5039 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
5040
5041 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
5042 SCM_I_FIXNUM_BIT.
5043
5044 * num2integral.i.c: new file, multiply included by numbers.c, used
5045 to "templatize" the various integral <-> num conversion routines.
5046
5047 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
5048 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
5049 deprecated.
5050 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
5051 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
5052 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
5053 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
5054 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
5055 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
5056 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
5057 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
5058 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
5059 scm_num2size): new functions.
5060
5061 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
5062
5063 * load.c: change int -> size_t in various places (where the
5064 variable is used to store a string length).
5065 (search-path): call scm_done_free, not scm_done_malloc.
5066
5067 * list.c (scm_ilength): return a scm_bits_t, not long.
5068 some other {int,long} -> scm_bits_t changes.
5069
5070 * hashtab.c: various [u]int -> scm_bits_t changes.
5071 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
5072 (scm_ihashx): n: uint -> scm_bits_t
5073 use scm_bits2num instead of scm_ulong2num.
5074
5075 * gsubr.c: various int -> scm_bits_t changes.
5076
5077 * goops.[hc]: various {int,long} -> scm_bits_t changes.
5078
5079 * gh_data.c (gh_num2int): no loss of precision any more.
5080
5081 * gh.h (gh_str2scm): len: int -> size_t
5082 (gh_{get,set}_substr): start: int -> scm_bits_t,
5083 len: int -> size_t
5084 (gh_<num>2scm): n: int -> scm_bits_t
5085 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
5086 (gh_length): return scm_bits_t, not unsigned long.
5087
5088 * gc.[hc]: various small changes relating to many things stopping
5089 being long and starting being scm_[u]bits_t instead.
5090 scm_mallocated should no longer wrap around.
5091
5092 * fports.h: type renaming:
5093 scm_fport -> scm_fport_t
5094 the old name is deprecated, all in-Guile uses changed.
5095
5096 * fports.c (fport_fill_input): count: int -> scm_bits_t
5097 (fport_flush): init_size, remaining, count: int -> scm_bits_t
5098
5099 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
5100 those prototypes, as the functions they prototype don't exist.
5101
5102 * fports.c (default_buffer_size): int -> size_t
5103 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
5104 default_size: int -> size_t
5105 (scm_setvbuf): csize: int -> scm_bits_t
5106
5107 * fluids.c (n_fluids): int -> scm_bits_t
5108 (grow_fluids): old_length, i: int -> scm_bits_t
5109 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
5110 scm_bits_t
5111 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
5112
5113 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
5114 the new and shiny SCM_NUM2INT.
5115
5116 * extensions.c: extension -> extension_t (and made a typedef).
5117
5118 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
5119 there are no nasty surprises if/when the various deeply magic tag
5120 bits move somewhere else.
5121
5122 * eval.c: changed the locals used to store results of SCM_IFRAME,
5123 scm_ilength and such to be of type scm_bits_t (and not int/long).
5124 (iqq): depth, edepth: int -> scm_bits_t
5125 (scm_eval_stack): int -> scm_bits_t
5126 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
5127 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
5128 i: int -> scm_bits_t
5129
5130 * environments.c: changed the many calls to scm_ulong2num to
5131 scm_ubits2num.
5132 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
5133
5134 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
5135
5136 * debug.h: type renaming:
5137 scm_debug_info -> scm_debug_info_t
5138 scm_debug_frame -> scm_debug_frame_t
5139 the old names are deprecated, all in-Guile uses changed.
5140 (scm_debug_eframe_size): int -> scm_bits_t
5141
5142 * debug.c (scm_init_debug): use scm_c_define instead of the
5143 deprecated scm_define.
5144
5145 * continuations.h: type renaming:
5146 scm_contregs -> scm_contregs_t
5147 the old name is deprecated, all in-Guile uses changed.
5148 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
5149 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
5150
5151 * continuations.c (scm_make_continuation): change the type of
5152 stack_size from long to scm_bits_t.
5153
5154 * ports.h: type renaming:
5155 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
5156 scm_port -> scm_port_t
5157 scm_ptob_descriptor -> scm_ptob_descriptor_t
5158 the old names are deprecated, all in-Guile uses changed.
5159 (scm_port_t.entry): int -> scm_bits_t.
5160 (scm_port_t.line_number): int -> long.
5161 (scm_port_t.putback_buf_size): int -> size_t.
5162
5163 * __scm.h (long_long, ulong_long): deprecated (they pollute the
5164 global namespace and have little value beside that).
5165 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
5166 SCM handle).
5167 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
5168 exist (for size_t & ptrdiff_t).
5169 (scm_sizet): deprecated.
5170
5171 * Makefile.am (noinst_HEADERS): add num2integral.i.c
5172
5173 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
5174
5175 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
5176 SCM_VARIABLE_INIT since that it what it used to be.
5177
5178 * deprecation.c (scm_include_deprecated_features): Make docstring
5179 ANSIsh. Thanks to Matthias Köppe!
5180
5181 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
5182
5183 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
5184 needed for weak-key hashtables.
5185
5186 * procs.c (scm_make_subr_with_generic): Add missing last argument
5187 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
5188
5189 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
5190 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
5191
5192 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
5193
5194 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
5195
5196 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
5197 `duplicate_string'. Do not use an indirect cell, store symbol
5198 directly in collision list of hash table.
5199 (duplicate_string): Removed.
5200
5201 * init.c (scm_init_guile_1): Call scm_init_extensions.
5202
5203 * Makefile.am: Add "extensions.c" and related files in all the
5204 right places.
5205
5206 * extensions.h, extension.c: New files.
5207
5208 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
5209
5210 * modules.h (scm_system_module_env_p): Move out of deprecated
5211 section.
5212
5213 * rw.h (scm_init_rw): Added prototype.
5214
5215 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
5216 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
5217 New functions. They replace scm_make_gsubr and
5218 scm_make_gsubr_with_generic. The `make' variants only create the
5219 gsubr object, while the `define' variants also put it into the
5220 current module. Changed all callers.
5221 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
5222
5223 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
5224 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
5225 functions. They replace scm_make_subr, scm_make_subr_opt and
5226 scm_make_subr_with_generic. The `make' variants only create the
5227 subr object, while the `define' variants also put it into the
5228 current module. Changed all callers.
5229 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
5230 Deprecated.
5231
5232 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
5233 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
5234 the comments above.
5235
5236 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
5237
5238 * throw.c (scm_lazy_catch): Slight docstring clarification.
5239
5240 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
5241
5242 * throw.c: Lazy-catch handlers are no longer allowed to return.
5243 Fixed comments throughout.
5244 (scm_ithrow): Signal an error when a lazy-catch handler returns.
5245 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
5246 recognized as such.
5247
5248 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
5249 refered to s_scm_minor_version previously.
5250
5251 * modules.h, modules.c: Moved around a lot of code so that
5252 deprecated features appear at the bottom.
5253 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
5254 module_prefix, make_modules_in_var, beautify_user_module_x_var,
5255 scm_the_root_module, scm_make_module, scm_ensure_user_module,
5256 scm_load_scheme_module): Deprecated.
5257 (scm_system_module_env_p): Return SCM_BOOL_T directly for
5258 environments corresponding to the root module.
5259 (convert_module_name, scm_c_resolve_module,
5260 scm_c_call_with_current_module, scm_c_define_module,
5261 scm_c_use_module, scm_c_export): New.
5262 (the_root_module): New static variant of scm_the_root_module. Use
5263 it everywhere instead of scm_the_root_module.
5264
5265 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
5266 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
5267 (scm_c_with_fluid): New.
5268 (scm_with_fluids): Use scm_c_with_fluids instead of
5269 scm_internal_with_fluids.
5270
5271 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
5272 `scm_init_goops'. Do not explicitly create/switch modules.
5273 Return SCM_UNSPECIFIED.
5274 (scm_init_goops): Only register `%init-goops-builtins' procedure.
5275 (scm_load_goops): Use scm_c_resolve_module instead of
5276 scm_resolve_module.
5277
5278 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
5279 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
5280 `scm_init_rw' prior to loading the startup files.
5281
5282 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
5283 scm_init_rdelim. Do not explicitly create/switch modules.
5284 Return SCM_UNSPECIFIED.
5285 (scm_init_rdelim): Only register `%init-rdelim-builtins'
5286 procedure.
5287
5288 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
5289 explicitly create/switch modules. Return SCM_UNSPECIFIED.
5290 (scm_init_rw): Only register `%init-rw-builtins' procedure.
5291
5292 * script.c (scm_shell): Evaluate the compiled switches in the
5293 current module, not in the root module.
5294
5295 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
5296
5297 * fluids.c (scm_c_with_fluids): Rename from
5298 scm_internal_with_fluids.
5299 (scm_internal_with_fluids): Deprecated.
5300 (scm_c_with_fluid): New.
5301
5302 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
5303
5304 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
5305
5306 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
5307 accessed with SCM_C[AD]R.
5308
5309 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
5310
5311 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
5312
5313 * version.c (s_scm_major_version): doc fixes.
5314 (s_scm_minor_version): doc fixes.
5315 (s_scm_minor_version): new function.
5316
5317 * version.h (scm_init_version): new function.
5318
5319 * versiondat.h.in: add GUILE_MICRO_VERSION.
5320
5321 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
5322
5323 * deprecation.c (scm_init_deprecation): Renamed
5324 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
5325
5326 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
5327
5328 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
5329 dependent on cpp_cnvt.awk
5330
5331 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5332
5333 * script.c (scm_compile_shell_switches): New command line option
5334 `--use-srfi' for loading a list of SRFIs on startup.
5335 (scm_shell_usage): Added `--use-srfi' to help message.
5336
5337 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
5338
5339 Merged from mvo-vcell-cleanup-1-branch.
5340
5341 The concept of vcells has been removed from Guile. With it,
5342 explicit obarrays and associated operations are gone. Use
5343 hashtables instead of obarrays.
5344
5345 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
5346 result as variable instead of vcell. Glocs no longer point to a
5347 vcell but to a variable. Use scm_c_define instead of
5348 scm_sysintern and treat the result as a variable (which it is),
5349 not a vcell.
5350
5351 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
5352 SCM_DEFVARIABLEP): Deprecated.
5353 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
5354 (variable_print): Do not print name of variable.
5355 (variable_equalp): Compare values, not vcells.
5356 (anonymous_variable_sym): Removed.
5357 (make_vcell_variable): Removed.
5358 (make_variable): New, as replacement.
5359 (scm_make_variable, scm_make_undefined_variable): Do not take name
5360 hint parameter.
5361 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
5362 error in that case.
5363 (scm_builtin_variable): Deprecated.
5364
5365 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
5366 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
5367 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
5368 scm_sysintern, scm_sysintern0, scm_symbol_value0,
5369 scm_string_to_obarray_symbol, scm_intern_symbol,
5370 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
5371 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
5372 Deprecated and moved to "symbols-deprecated.c".
5373 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
5374 (scm_init_symbols): Call scm_init_symbols_deprecated.
5375 * symbols-deprecated.c: New file.
5376 * Makefile.am: Added symbols-deprecated.c and related files in all
5377 the right places.
5378
5379 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
5380 SCM_GLOBAL_VCELL_INIT): Deprecated.
5381 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
5382 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
5383
5384 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
5385 SCM_GLOC_SYM.
5386
5387 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
5388 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
5389 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
5390 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
5391 Changed according to the `throughout' comments.
5392
5393 * modules.h, modules.c (scm_module_system_booted_p): Changed type
5394 to `int'.
5395 (scm_module_type): Removed.
5396 (the_root_module): Renamed to the_root_module_var. Now points to
5397 a variable instead of a vcell. Updated all uses.
5398 (scm_the_root_module): Return SCM_BOOL_F when module systems
5399 hasn't been booted yet.
5400 (SCM_VALIDATE_STRUCT_TYPE): Removed.
5401 (scm_post_boot_init_modules): Made static.
5402 (scm_set_current_module): Call scm_post_boot_init_modules on first
5403 call.
5404 (make_modules_in, beautify_user_module_x, resolve_module,
5405 try_module_autoload, module_make_local_var_x): Tacked on "_var"
5406 suffix. Now point to variables instead of vcells. Updated all
5407 uses.
5408 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
5409 and return SCM_BOOL_F in that case.
5410 (scm_module_transformer): Likewise.
5411 (sym_module, scm_lookup_closure_module, scm_env_module): New.
5412 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
5413 (scm_eval_closure_lookup): Do not allow new definitions when
5414 `interface' flag is set.
5415 (scm_standard_interface_eval_closure): New.
5416 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
5417 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
5418 scm_c_lookup, scm_c_module_define, scm_c_define,
5419 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
5420 scm_modules_prehistory): New.
5421 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
5422 instead of scm_intern0.
5423
5424 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
5425 symbol.
5426
5427 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
5428 hashtable operations to maintain the keywords, not obarray ones.
5429
5430 * init.c (scm_load_startup_files): Do not call
5431 scm_post_boot_init_modules. This is done by
5432 scm_set_current_module now.
5433 (scm_init_guile_1): Call scm_modules_prehistory. Call
5434 scm_init_variable early on.
5435
5436 * goops.c (s_scm_sys_goops_loaded): Get
5437 var_compute_applicable_methods from scm_sym2var, not from a direct
5438 invocation of scm_goops_lookup_closure.
5439
5440 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
5441
5442 * gc.c: Added simple debugging hack to mark phase of GC: When
5443 activated, do not tail-call scm_gc_mark. This gives nice
5444 backtraces.
5445 (scm_unhash_name): Removed.
5446
5447 * feature.c (features): Renamed to features_var. Now points to a
5448 variable instead of a vcell. Updated all uses.
5449
5450 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
5451 `scm_current_module_lookup_closure' which will do the right thing
5452 when the module system hasn't been booted yet.
5453 (SCM_GLOC_SYM): Removed.
5454 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
5455 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
5456
5457 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
5458 instead of with vcells. Do not overwrite `var' with the result of
5459 the lookup, use the new `real_var' instead. Remove `var2' in
5460 exchange (which was only used with threads).
5461 (sym_three_question_marks): New.
5462 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
5463 `SCM_GLOC_SYM'.
5464 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
5465 (scm_m_atfop): Expect the function definition to be a variable
5466 instead of a vcell.
5467 (scm_macroexp): Do not use `unmemocar', explicitely remember the
5468 symbol instead.
5469 (scm_unmemocopy): Removed thoughts about anti-macro interface.
5470 (scm_eval_args): Use more explicit code in the gloc branch of the
5471 atrocious struct ambiguity test. The optimizer will sort this
5472 out.
5473 (scm_deval_args): Likewise.
5474 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
5475 remember the symbol instead. Added some comments where
5476 scm_tc3_cons_gloc really exclusively refers to structs.
5477 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
5478 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
5479 of scm_sysintern in general.
5480
5481 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
5482 explicit magic.
5483
5484 * debug.c (s_scm_make_gloc): Only allow proper variables, no
5485 pairs. Put the variable directly in the gloc.
5486 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
5487 (scm_init_debug): Use scm_c_define instead scm_sysintern.
5488
5489 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
5490
5491 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
5492 scm_the_last_stack_fluid_var. It now points to a variable instead
5493 of a vcell. Updated all uses.
5494 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
5495 instead of a vcell. Updated all uses.
5496
5497 * _scm.h: Include "variables.h" and "modules.h" since almost
5498 everybody needs them now.
5499
5500 * root.h (scm_symhash, scm_symhash_vars): Removed.
5501 * gc.c (scm_init_storage): Do not initialize them.
5502
5503 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
5504
5505 * eval.c (scm_init_eval): Initialize scm_undefineds and
5506 scm_listofnull.
5507
5508 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
5509 like the SCM_NEWCELL macro counterparts.
5510
5511 (scm_init_storage, scm_init_gc): Moved initialization of
5512 scm_tc16_allocated from scm_init_gc to scm_init_storage.
5513
5514 (scm_init_storage): Moved initialization of scm_undefineds and
5515 scm_listofnull to eval.c, initializion of scm_nullstr to
5516 strings.c, initializion of scm_nullvect to vectors.c.
5517
5518 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
5519 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
5520
5521 * init.c (scm_init_guile_1): Reordered some initializations and
5522 added dependcy information comments.
5523
5524 * load.c (scm_init_load): Use scm_nullstr.
5525
5526 * strings.c (scm_init_strings): Initialize scm_nullstr.
5527
5528 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
5529
5530 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
5531
5532 * values.c (print_values): Print as a unreadable object, not as
5533 multiple lines. Thanks to Matthias Köppe!
5534
5535 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
5536
5537 * deprecation.c: Fixed copyright date.
5538
5539 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
5540 DEPRECATION_H to SCM_DEPRECATION_H.
5541
5542 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
5543
5544 * guile-doc-snarf.in: Update copyright.
5545 Fix relative path bug. Thanks to Sergey Poznyakoff.
5546
5547 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
5548
5549 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
5550 accept open ports. Thanks to Quetzalcoatl Bradley!
5551
5552 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5553
5554 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
5555 has 779 primitives on startup.
5556
5557 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
5558
5559 * eval.c (scm_i_eval): Copy expression before passing it to
5560 SCM_XEVAL. The copy operation was removed unintendedly during my
5561 change on 2001-03-25.
5562
5563 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
5564
5565 from Matthias Köppe (thanks!):
5566
5567 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
5568 portable.
5569
5570 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
5571 docstring.
5572
5573 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
5574
5575 * gc.c (scm_init_gc): Added FIXME comment.
5576
5577 * hooks.c: Since hooks don't have a name any more, it is not
5578 necessary to include objprop.h.
5579
5580 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
5581
5582 (symbol_name, scm_make_hook_with_name): Removed.
5583
5584 (scm_create_hook): Don't set the hook's name property.
5585
5586 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
5587
5588 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
5589
5590 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
5591
5592 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
5593 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
5594 FLOBUFLEN and define it unconditionally.
5595
5596 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
5597
5598 * gh_data.c (gh_lookup): Call gh_module_lookup with
5599 `scm_current_module ()', not `#f'.
5600 (gh_module_lookup): Expect a module instead of an obarray as first
5601 argument and do lookup in that module.
5602
5603 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
5604 arrays. The length of array is already determined differently and
5605 scm_uniform_vector_length does not work on arrays.
5606
5607 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
5608
5609 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
5610 as well. "SCM (*)(...)" does not work on RedHat 7.1.
5611
5612 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
5613 they are not used. Changed `wrong type' error into `wrong num
5614 args' error. Changed all callers.
5615
5616 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
5617 arguments are supplied.
5618
5619 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
5620
5621 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
5622 describe `regexp/notbol' and `regexp/noteol' execution flags.
5623
5624 * strop.c (scm_substring_move_x): Doc fix; nfc.
5625
5626 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
5627
5628 * objects.c, objects.h (scm_valid_object_procedure_p): New.
5629 (scm_set_object_procedure_x): Use it to check argument. Fix
5630 docstring.
5631
5632 * evalext.c (scm_definedp): Fix docstring.
5633
5634 2001-05-05 Gary Houston <ghouston@arglist.com>
5635
5636 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
5637 support.
5638
5639 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
5640
5641 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
5642 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
5643 Change R4RS references to R5RS.
5644
5645 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
5646 docstring source are correctly reproduced in the output (ii)
5647 we don't anymore get occasional trailing quotes. Also reorganized
5648 and commented the code a little.
5649
5650 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
5651 fixes.
5652
5653 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
5654
5655 * strop.c (scm_string_split): New procedure.
5656
5657 * strop.h (scm_string_split): Added prototype.
5658
5659 2001-05-04 Gary Houston <ghouston@arglist.com>
5660
5661 * socket.c: define uint32_t if netdb.h doesn't. thanks to
5662 Dale P. Smith.
5663
5664 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
5665
5666 * rw.c: Include "modules.h" and "strports.h".
5667
5668 * net_db.h (scm_gethost): Added prototype.
5669
5670 * deprecation.h, deprecation.c: New.
5671 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
5672 (DOT_X_FILES): Added "deprecation.x".
5673 (modinclude_HEADERS): Added "deprecation.h".
5674
5675 * init.c: Include "deprecation.h".
5676 (scm_init_guile_1): Call scm_init_deprecation.
5677
5678 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
5679
5680 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
5681 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
5682 New.
5683
5684 2001-04-29 Gary Houston <ghouston@arglist.com>
5685
5686 * rw.c: new file, implementing C part of module (ice-9 rw).
5687 (scm_read_string_x_partial): moved from ioext.c
5688 (scm_init_rw): new proc.
5689 * rw.h: new file.
5690 init.c: include rw.h and call scm_init_rw.
5691 Makefile.am: include rw.c and rw.h.
5692
5693 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
5694
5695 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
5696 know what's supposed to happen to it.
5697
5698 * list.h (scm_list_star): deprecation expired - removed.
5699
5700 * numbers.h (scm_dblproc): deprecation expired - removed.
5701 (SCM_UNEGFIXABLE): deprecation expired - removed.
5702 (SCM_FLOBUFLEN): deprecation expired - removed.
5703 (SCM_INEXP): deprecation expired - removed.
5704 (SCM_CPLXP): deprecation expired - removed.
5705 (SCM_REAL): deprecation expired - removed.
5706 (SCM_IMAG): deprecation expired - removed.
5707 (SCM_REALPART): deprecation expired - removed.
5708 (scm_makdbl): deprecation expired - removed.
5709 (SCM_SINGP): deprecation expired - removed.
5710 (SCM_NUM2DBL): deprecation expired - removed.
5711 (SCM_NO_BIGDIG): deprecation expired - removed.
5712
5713 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
5714 (scm_tc_dblr): deprecation expired - removed.
5715 (scm_tc_dblc): deprecation expired - removed.
5716 (scm_tc16_flo): deprecation expired - removed.
5717 (scm_tc_flo): deprecation expired - removed.
5718
5719 * tag.h (scm_tag): deprecation expired - removed.
5720
5721 * tag.c: (scm_tag): deprecation expired - removed.
5722
5723 * ioext.c: (scm_fseek): deprecation expired - removed.
5724
5725 * ioext.h (scm_fseek): deprecation expired - removed.
5726
5727 * gh_data.c (gh_int2scmb): deprecation expired - removed.
5728
5729 * gh.h (gh_int2scmb): deprecation expired - removed.
5730
5731 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
5732
5733 * stacks.c (scm_make_stack): Fix typo in docstring.
5734
5735 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
5736
5737 * error.c (scm_sysmissing): deprecation expired - removed.
5738
5739 * error.h (scm_sysmissing): deprecation expired - removed.
5740
5741 * gc.c
5742 (scm_init_gc): gc-thunk deprecation expired - removed.
5743 (scm_gc_vcell): deprecation expired - removed.
5744 (gc_async_thunk): scm_gc_vcell related code removed.
5745
5746 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
5747
5748 * strings.h
5749 (SCM_NSTRINGP): deprecation expired - removed.
5750 (SCM_NRWSTRINGP): deprecation expired - removed.
5751
5752 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
5753
5754 * chars.h
5755 (SCM_ICHRP): deprecation expired - removed.
5756 (SCM_ICHR): deprecation expired - removed.
5757 (SCM_MAKICHR): deprecation expired - removed.
5758
5759 * ports.h
5760 (SCM_INPORTP): deprecation expired - removed.
5761 (SCM_OUTPORTP): deprecation expired - removed.
5762
5763 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
5764
5765 * modules.c (scm_module_type): New.
5766 (scm_post_boot_init_modules): Initialize from Scheme value.
5767 (the_module, scm_current_module, scm_init_modules): the_module is
5768 now a C only fluid.
5769 (scm_current_module): Export to Scheme.
5770 (scm_set_current_module): Do not call out to Scheme, do all the
5771 work in C. Export procedure to Scheme. Only accept modules, `#f'
5772 is no longer valid as the current module. Only set
5773 scm_top_level_lookup_closure_var and scm_system_transformer when
5774 they are not deprecated.
5775 (scm_module_transformer, scm_current_module_transformer): New.
5776
5777 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
5778 scm_current_module_transformer, scm_module_transformer): New.
5779
5780 * gh_data.c: Removed FIXME comment about gh_lookup returning
5781 SCM_UNDEFINED. That's the right thing to do.
5782
5783 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
5784 into the conditionally compiled sections.
5785 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
5786 scm_current_module_transformer instead of scm_system_transformer.
5787 * init.c (start_stack): Move initialization of
5788 scm_system_transformer to the deprecated section.
5789
5790 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
5791
5792 * throw.c (scm_throw): Correct docstring.
5793
5794 2001-04-22 Gary Houston <ghouston@arglist.com>
5795
5796 * socket.c: attempted to improve the docstrings slightly.
5797
5798 * net_db.c: remove bogus "close" declaration.
5799 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
5800 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
5801 moved to socket.c.
5802 * net_db.h: declarations moved too.
5803
5804 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
5805 long.
5806 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
5807 (VALIDATE_INET6): new macro.
5808 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
5809 inet-pton and inet-ntop.
5810 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
5811 (scm_addr_vector): use ipv6_net_to_num.
5812
5813 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
5814
5815 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
5816 smob number explicitly. Use SCM_TC2SMOBNUM instead.
5817
5818 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
5819 when compiled in debug mode.
5820
5821 (scm_gc_sweep): Only call smob's free function if it is defined.
5822
5823 * print.c (scm_iprin1): No need to check for validity of smob
5824 type or existence of print function.
5825
5826 * smob.[ch] (scm_smobs): Made into a fixed size global array.
5827 Resizing will not work well with preemptive threading.
5828
5829 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
5830
5831 (scm_make_smob_type): Extracted initialization of smob
5832 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
5833 of the critical section.
5834
5835 (scm_smob_prehistory): Initialize all smob descriptors. By
5836 default, don't assign a smob free function: Most smob types don't
5837 need one.
5838
5839 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
5840
5841 2001-04-21 Gary Houston <ghouston@arglist.com>
5842
5843 * socket.c (FLIP_NET_HOST_128): new macro.
5844 (scm_fill_sockaddr): use new macro.
5845 (scm_addr_vector): completed IPv6 address support. added const
5846 to the address parameter.
5847
5848 2001-04-20 Gary Houston <ghouston@arglist.com>
5849
5850 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
5851 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
5852 is defined.
5853 (scm_addr_vector): use a switch instead of multiple if statements.
5854 Add support for IPv6 (incomplete) .
5855 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
5856
5857 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
5858
5859 * struct.c (scm_free_structs): Only pairs may be accessed with
5860 SCM_C[AD]R.
5861
5862 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
5863
5864 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
5865
5866 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
5867 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
5868 parentheses in order to get the correct associativity.
5869
5870 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
5871
5872 * unif.c (scm_array_to_list): Added missing handling of arrays of
5873 bytes. Thanks to Masao Uebayashi for the bug report.
5874
5875 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
5876
5877 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
5878 consistently.
5879
5880 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
5881
5882 * procs.h (SCM_CLOSURE_FORMALS): New macro.
5883
5884 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
5885 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
5886 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
5887 SCM_CLOSURE_FORMALS.
5888
5889 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
5890 (scm_i_procedure_arity): Prefer stronger predicates like
5891 SCM_NULLP or SCM_FALSEP over SCM_IMP.
5892
5893 * macros.c (macro_print): Extracted macro printing code from
5894 print.c and simplified it.
5895
5896 (scm_macro_type): Use SCM_MACRO_TYPE;
5897
5898 (scm_init_macros): Use macro_print for printing macros.
5899
5900 * print.c (scm_print_opts): Improved option documentation.
5901
5902 (scm_iprin1): Extracted printing of macros to macros.c.
5903 Simplified printing of ordinary closures.
5904
5905 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
5906 Martin Grabmueller for the bug report.
5907
5908 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
5909
5910 This patch eliminates some further applications of SCM_C[AD]R to
5911 non pair cells.
5912
5913 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
5914 never been applied to real pairs.
5915
5916 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
5917
5918 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
5919
5920 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
5921 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
5922 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
5923
5924 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
5925 Added.
5926
5927 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
5928 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
5929
5930 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
5931 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
5932 SCM_SET{AND,OR}_CAR.
5933
5934 2001-04-17 Gary Houston <ghouston@arglist.com>
5935
5936 * some initial support for IPv6:
5937
5938 * socket.c (scm_fill_sockaddr): improve the argument validation.
5939 don't allocate memory until all args are checked. instead of
5940 unconditional memset of soka, try setting sin_len to 0 if
5941 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
5942 (scm_socket, scm_connect): extend docstrings for IPv6.
5943 (scm_init_socket): intern AF_INET6 and PF_INET6.
5944
5945 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
5946
5947 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
5948 matches SCM_DEFER_INTS at the beginning of the function.
5949
5950 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
5951
5952 * gc.c (scm_igc): Unconditionally call
5953 SCM_CRITICAL_SECTION_START/END.
5954
5955 * fluids.c (next_fluid_num): Unconditionally call
5956 SCM_CRITICAL_SECTION_START/END.
5957 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
5958
5959 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
5960 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
5961 Removed.
5962
5963 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
5964 Defined as nothing for the case of !defined(USE_THREADS).
5965 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
5966 Removed.
5967 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
5968 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
5969 LINE.
5970 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
5971 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
5972 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
5973 SCM_CRITICAL_SECTION_START/END.
5974 (SCM_REALLOW_INTS: Bug fix. Don't call
5975 SCM_THREAD_SWITCHING_CODE.
5976 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
5977 SCM_THREAD_SWITCHING_CODE directly.
5978 (SCM_ENTER_A_SECTION): Unconditionally use
5979 SCM_CRITICAL_SECTION_START/END. (was:
5980 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
5981
5982 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
5983
5984 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
5985 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
5986 allowed to explicitly set this macro via the CFLAGS variable
5987 during make.
5988
5989 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
5990 (SCM_THREAD_CRITICAL_SECTION_START,
5991 SCM_THREAD_CRITICAL_SECTION_END): Renamed
5992 SCM_THREAD_CRITICAL_SECTION_START/END to
5993 SCM_CRITICAL_SECTION_START/END.
5994
5995 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
5996
5997 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
5998 instead of bzero.
5999
6000 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
6001 (MISSING_BZERO_DECL): Remove the declaration.
6002
6003 Thanks to NIIBE Yutaka.
6004
6005 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6006
6007 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
6008 goops module should be registered in order to work for an
6009 application which uses libguile statically linked.)
6010
6011 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
6012
6013 * numbers.[ch] (scm_num2long, scm_num2long_long,
6014 scm_num2ulong_long, scm_num2ulong): Argument position is an
6015 unsigned integer.
6016
6017 * environments.c (eval_environment_folder,
6018 import_environment_folder), gh_data.c (gh_scm2longs,
6019 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
6020 for integers and pointers, respectively.
6021
6022 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
6023 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
6024 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
6025 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
6026
6027 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
6028 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
6029 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
6030 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
6031 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
6032 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
6033
6034 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
6035
6036 * strings.c (scm_read_only_string_p): Update docstring to reflect
6037 current (non-)usage of "read only" strings.
6038 (scm_make_shared_substring): Clarify docstring by changing
6039 "semantics" to "arguments".
6040
6041 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6042
6043 * hooks.c (scm_make_hook, scm_make_hook_with_name),
6044 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
6045 improvements.
6046
6047 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6048
6049 The following changes make the documentation more consistent.
6050
6051 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
6052 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
6053 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
6054 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
6055 ... @end lisp.
6056
6057 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
6058 (scm_array_dimensions, scm_make_shared_array),
6059 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
6060 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
6061 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
6062 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
6063 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
6064 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
6065 macros.c (scm_makmmacro), list.c (scm_append), environments.c
6066 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
6067 @example ... @end example to @lisp ... @end lisp.
6068
6069 * weaks.c (scm_weak_vector): Corrected docstring.
6070
6071 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
6072 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
6073 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
6074 (scm_hashx_set_x, scm_hashx_get_handle),
6075 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
6076 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
6077 vectors.c (scm_vector_fill_x), strings.c
6078 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
6079 objprop.c (scm_set_object_properties_x):
6080 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
6081 strports.c (scm_call_with_input_string), ports.c
6082 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
6083 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
6084 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
6085 (scm_make_weak_vector,scm_weak_vector_p),
6086 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
6087 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
6088 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
6089 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
6090 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
6091 Made parameter names match documentation by renaming parameters
6092 and/or fixing docstrings.
6093
6094 * numbers.c (scm_ash): Corrected Texinfo markup.
6095
6096 * strop.c (scm_string_index, scm_string_rindex),
6097 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
6098
6099 * vports.c (scm_make_soft_port), unif.c
6100 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
6101 (scm_dimensions_to_uniform_array, scm_transpose_array),
6102 (scm_array_in_bounds_p, scm_uniform_vector_ref),
6103 (scm_bit_count, scm_bit_position, scm_bit_count_star),
6104 (scm_array_to_list, scm_list_to_uniform_array),
6105 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
6106 (scm_open_input_string, scm_open_output_string),
6107 (scm_get_output_string), strop.c (scm_string_copy),
6108 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
6109 (scm_get_internal_real_time, scm_times),
6110 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
6111 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
6112 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
6113 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
6114 simpos.c (scm_system), random.c (scm_random_uniform),
6115 (scm_random_normal, scm_random_exp), ramap.c
6116 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
6117 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
6118 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
6119 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
6120 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
6121 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
6122 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
6123 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
6124 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
6125 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
6126 (scm_logand, scm_logior, scm_logxor, scm_lognot),
6127 (scm_integer_expt, scm_bit_extract, scm_logcount),
6128 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
6129 net_db.c (scm_inet_netof, scm_lnaof), modules.c
6130 (scm_interaction_environment), macros.c (scm_makacro),
6131 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
6132 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
6133 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
6134 (scm_fluid_ref), filesys.c (scm_open_fdes),
6135 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
6136 Docstring correction: `Returns' -> `Return'
6137
6138 * gc.c (scm_set_debug_cell_accesses_x):
6139 (s_scm_gc_set_debug_check_freelist_x):
6140 * fluids.c (scm_fluid_p): Added texinfo markup.
6141
6142 * error.c (scm_strerror): Made docstring more precise.
6143
6144 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
6145 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
6146 (scm_symbol_p, scm_symbol_to_string), strorder.c
6147 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
6148 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
6149 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
6150 (scm_string_ci_geq_p), strop.c (scm_string_copy),
6151 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
6152
6153 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
6154
6155 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
6156 mode, as suggested by Michael Livshin.
6157
6158 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
6159
6160 * backtrace.c (display_backtrace_body): since the `print_state'
6161 variable is not used (instead its data field is used directly as
6162 `pstate'), protect it from the hungry compiler optimizations.
6163 thanks to Bill Schottstaedt for the report.
6164
6165 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
6166
6167 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
6168 It is only defined and used if guile is compiled with
6169 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
6170 let cells with a free_cell type tag be visible outside of the
6171 garbage collector when in debug mode.
6172
6173 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
6174
6175 (scm_assert_cell_valid): Use a local static variable to avoid
6176 recursion.
6177
6178 (MARK): Only check for rogue cell pointers in debug mode. Use
6179 scm_cellp for this purpose and place all checks for rogue pointers
6180 into that function. Further, since due to conservative scanning
6181 we may encounter free cells during marking, don't use the standard
6182 cell type accessor macro to determine the cell type.
6183
6184 (scm_cellp): Check if the cell pointer actually points into a
6185 card header.
6186
6187 (scm_init_gc): Initalize scm_tc16_allocated.
6188
6189 * gc.h (GCH): Renamed to SCM_GC_H.
6190
6191 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
6192 might be unnecessary, but I feel better this way :-)
6193
6194 (SCM_GC_CELL_TYPE): New macro.
6195
6196 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
6197 in guile, and it is unlikely that they will be applied to real
6198 pairs anyway.
6199
6200 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
6201
6202 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
6203 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
6204
6205 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
6206 make sure that in debug mode no free cell will ever be visible
6207 outside of the garbage collector.
6208
6209 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
6210
6211 * async.c (scm_asyncs_pending): Don't use != to compare SCM
6212 values.
6213
6214 * async.c (scm_system_async), variable.c (scm_make_variable,
6215 scm_make_undefined_variable): Use scm_cons to create a pair.
6216
6217 * debug.c (scm_reverse_lookup): Perform proper type checking.
6218 Remove suspicious use of SCM_SLOPPY_CONSP.
6219
6220 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
6221 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
6222 the corresponding optimization.
6223
6224 * eval.c (iqq): Use proper type check.
6225
6226 (scm_m_expand_body): Remove redundant type checks.
6227
6228 (promise_print): Don't access promise cells as pairs.
6229
6230 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
6231 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
6232 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
6233 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
6234 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
6235
6236 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
6237 (scm_iprin1): Use new macro predicate and accessors.
6238
6239 * eval.h (scm_tc16_macro): Removed declaration. It is declared
6240 in macros.h.
6241
6242 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
6243 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
6244 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
6245 SCM_VARIABLE_H. Even the macros that are used to inhibit
6246 including a header file twice should be in the SCM_ namespace.
6247
6248 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
6249 properties.c (scm_primitive_property_ref,
6250 scm_primitive_property_del_x): Prefer stronger predicates like
6251 SCM_NULLP or SCM_FALSEP over SCM_IMP.
6252
6253 * gc.c (MARK): Use proper macros to access procedure-with-setter
6254 cell elements and closure cell elements.
6255
6256 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
6257 access free cells as pairs.
6258
6259 (scm_unprotect_object): scm_hashq_get_handle returns #f if
6260 no hashtab entry is found.
6261
6262 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
6263 SCM_CLR_PORT_OPEN_FLAG.
6264
6265 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
6266 use SCM_SET_C[AD]R for uninitialized cells.
6267
6268 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
6269 If the hashtable has no slots, return #f instead of '(). This
6270 unifies the return value with most assoc-functions.
6271
6272 (scm_hash_fn_ref): Use proper type check.
6273
6274 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
6275 Removed references to non-existing functions from documentation.
6276
6277 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
6278 access keyword cell elements.
6279
6280 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
6281 macros.
6282
6283 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
6284
6285 * print.c (scm_iprlist): Added comment. Improved loop
6286 conditions.
6287
6288 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
6289 pairs.
6290
6291 * smob.c (scm_markcdr): Don't access smob cells as pairs.
6292
6293 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
6294
6295 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
6296 cells as pairs.
6297
6298 * variable.c (variable_print, variable_equalp, scm_variable_ref,
6299 scm_variable_set_x): Use proper macros to access variable cell
6300 elements.
6301
6302 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
6303
6304 * variable.h (SCM_VARVCELL): Don't access variable cells as
6305 pairs.
6306
6307 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
6308 added FIXME comment, removed register specifier.
6309
6310 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
6311
6312 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
6313 * init.c (scm_init_guile_1): Don't init goopscore module.
6314
6315 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
6316
6317 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
6318
6319 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6320
6321 * strop.c (scm_string_to_list): Fixed docstring markup.
6322 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
6323 (scm_string_downcase, scm_string_capitalize_x),
6324 (scm_string_capitalize): Rewrote and corrected docstrings.
6325 (scm_string_ci_to_symbol): Made docstring more explicit.
6326
6327 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
6328
6329 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
6330 eval.c can use it.
6331 (scm_call_with_values): Removed.
6332 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
6333 so that it can be exported.
6334 (scm_call_with_values): Removed.
6335
6336 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
6337 * eval.c: Include "libguile/values.h"
6338 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
6339 New.
6340 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
6341 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
6342 New delcarations to support above change.
6343
6344 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
6345 errors with last change.
6346
6347 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
6348
6349 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
6350 scm_i_eval): Moved the application of the system transformer from
6351 scm_i_eval to scm_primitive_eval.
6352
6353 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
6354
6355 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
6356
6357 * strop.c (scm_string_index): Fix docstring line break
6358 regression.
6359
6360 * list.c (scm_cons_star): Fix docstring typo.
6361
6362 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
6363
6364 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
6365 (big2str), ports.c (scm_drain_input), read.c (scm_read,
6366 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
6367 scm_make_string, scm_string_append), strports.c (st_resize_port,
6368 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
6369 scm_makstr with calls to scm_allocate_string.
6370
6371 * strings.[ch] (scm_allocate_string): New function.
6372
6373 * strings.[ch] (scm_makstr): Deprecated.
6374
6375 2001-03-18 Gary Houston <ghouston@arglist.com>
6376
6377 * posix.c (scm_tmpnam): check that return value from tmpnam is not
6378 NULL. rewrote the docstring.
6379 (scm_mkstemp): new procedure implementing "mkstemp!".
6380 * posix.h: declare scm_mkstemp.
6381
6382 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
6383 normally it would be found in netdb.h.
6384
6385 2001-03-17 Gary Houston <ghouston@arglist.com>
6386
6387 * sort.c (scm_sort): move sortvec variable to avoid a compiler
6388 warning when HAVE_ARRAYS is not defined. move len too.
6389
6390 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
6391 (EXTRA_DOT_X_FILES): let configure set the value.
6392 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
6393
6394 * gc.c (scm_must_malloc): changed the comment explaining when
6395 scm_must variants of malloc/free etc., should be used, based on
6396 explanation from Dirk Herrmann.
6397 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
6398 string with procedure name. use scm_must_malloc instead of malloc.
6399 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
6400 of malloc/free.
6401 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
6402 scm_ungetc): use scm_must variants of malloc/realloc/free.
6403 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
6404
6405 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6406
6407 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
6408 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
6409 scm_wrong_type_arg instead.
6410
6411 (SCM_WNA): Deprecated.
6412
6413 * error.[ch] (scm_wta): Deprecated.
6414
6415 * numbers.c (s_i_log): Minor comment fix.
6416
6417 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
6418 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
6419 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
6420 wrong-num-args or misc errors.
6421
6422 * unif.c (scm_make_shared_array, scm_transpose_array,
6423 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
6424 Validate the rest argument (note: this is only done when guile is
6425 built with SCM_DEBUG_REST_ARGUMENT=1)
6426
6427 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
6428 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
6429
6430 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
6431 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
6432
6433 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6434
6435 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
6436 instead of scm_wrong_num_args.
6437
6438 * coop-threads.c: Don't include libguile/strings.h. (Was only
6439 needed for former implementation of SCM_WRONG_NUM_ARGS.)
6440
6441 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
6442 wrong-num-args errors.
6443
6444 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
6445
6446 * error.[ch] (scm_error_num_args_subr): New function.
6447
6448 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6449
6450 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
6451 (scm_length, scm_append, scm_reverse, scm_list_ref),
6452 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
6453 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
6454 (scm_delete1_x), gc.c (scm_map_free_list),
6455 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
6456 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
6457 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
6458 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
6459 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
6460 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
6461 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
6462
6463 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
6464 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
6465 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
6466 symbols.c (scm_symbol_interned_p), numbers.c
6467 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
6468 markup.
6469
6470 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
6471
6472 * snarf.h (SCM_CONST_LONG): Deprecated.
6473 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
6474
6475 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
6476
6477 * numbers.c (scm_num2ulong): Check that a bignum is positive
6478 before looking at the magnitude. Correctly check for overflow
6479 during conversion.
6480 (scm_num2long_long): Likewise.
6481 (scm_num2ulong_long): New.
6482 (ULONG_LONG_MAX): Define if not already defined.
6483 * numbers.h: (scm_num2ulong_long): New prototype.
6484
6485 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6486
6487 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
6488
6489 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
6490 (SCM_OPOUTSTRPORTP): New predicate macros.
6491 (scm_open_input_string, scm_open_output_string),
6492 (scm_get_output_string): New prototypes.
6493
6494 * strports.c (scm_open_input_string, scm_open_output_string),
6495 (scm_get_output_string): New procedures (SRFI-6 compliant).
6496 Made scm_tc16_strport non-static.
6497
6498 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
6499
6500 * macros.h (SCM_ASSYNT): Removed unused object argument from
6501 signature.
6502
6503 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
6504 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
6505 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
6506 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
6507 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
6508 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
6509 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
6510 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
6511 scm_m_atdispatch): Removed unused object argument from call to
6512 SCM_ASSYNT.
6513
6514 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
6515
6516 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
6517 const int* to reflect that the input array of integers remains
6518 unchanged. Thanks to Brett Viren for the hint.
6519
6520 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6521
6522 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
6523 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
6524 in various places.
6525 (gh_scm2newstr, gh_symbol2newstr): Change call to
6526 scm_must_malloc() to malloc(), because user-free()able memory is
6527 allocated.
6528
6529 * gc.c: Added declaration of `scm_debug_check_freelist'.
6530
6531 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6532
6533 * ports.c (scm_port_mode): Changed `mode' array size to 4.
6534
6535 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
6536
6537 * strports.c (scm_object_to_string): New procedure.
6538 (scm_strprint_obj): Deprecated.
6539 * strports.h: Reflect the changes.
6540
6541 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
6542
6543 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
6544
6545 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
6546 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
6547 SCM_ASSYNT to check for correct argument types. Either use some
6548 SCM_VALIDATE_* macro or an explicit test.
6549
6550 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
6551 misc-errors.
6552
6553 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
6554 instead of calling scm_wta.
6555
6556 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6557
6558 * load.c (scm_primitive_load, scm_primitive_load_path),
6559 (scm_sys_search_load_path): Corrected docstrings (file ->
6560 filename).
6561
6562 * eval.c (scm_force): Added texinfo markup to docstring.
6563 (scm_promise_p): Renamed parameter to `obj' to match docstring.
6564
6565 * debug-malloc.c: Reinserted #include <stdio.h>.
6566
6567 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
6568
6569 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
6570
6571 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
6572 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
6573 Use SCM_LISTn instead of scm_listify.
6574
6575 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6576
6577 * _scm.h: Removed #include <errno.h>.
6578
6579 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
6580 errno variable (can be a macro on some systems, for example when
6581 using linux libc with threads).
6582
6583 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
6584 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
6585 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
6586 #include <errno.h> in these 20 out of 100 files.
6587
6588 2001-03-10 Gary Houston <ghouston@arglist.com>
6589
6590 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
6591 not already defined.
6592
6593 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6594
6595 * coop.c: Inserted #include <stdio.h>.
6596
6597 * iselect.c: Reinserted #include <stdio.h>.
6598
6599 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
6600
6601 * posix.c: Replaced `#define' of __USE_XOPEN right before
6602 including unistd.h with a define of _GNU_SOURCE at the very top of
6603 the file.
6604
6605 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
6606
6607 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
6608 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
6609 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
6610 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
6611 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
6612 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
6613 print.c, procprop.c, procs.c, properties.c, ramap.c,
6614 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
6615 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
6616 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
6617 Remove #include <stdio.h>
6618 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
6619
6620 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
6621
6622 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6623
6624 * posix.c (scm_gethostname): Set initial name length to 256 for
6625 Solaris.
6626
6627 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6628
6629 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
6630 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
6631 (scm_sethostname, scm_gethostname): New prototypes.
6632
6633 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
6634 <sys/file.h>, if present.
6635 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
6636 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
6637 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
6638 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
6639 (scm_sethostname, scm_gethostname): New procedures.
6640
6641 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
6642
6643 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
6644 not optional (ii) "recommend" spelling correction.
6645
6646 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6647
6648 * ramap.c (racp): Removed optimization which caused array copying
6649 to fail if the two arrays shared storage. Re-inserted the IVDEP
6650 macros removed in the change of 2000-03-09. (Don't really have a
6651 complete grasp of what they are for, but they seem to be necessary
6652 on Crays. This needs testing!) Thanks to Miroslav Silovic.
6653
6654 * hash.c (scm_string_hash): Don't downcase characters.
6655
6656 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6657
6658 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
6659 size from 277 --> 1009.
6660
6661 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
6662 function.
6663
6664 * coop-threads.c: Fixed change of 2001-03-06.
6665
6666 * validate.h: Code formatting.
6667
6668 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
6669
6670 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
6671 (*.doc): Add dependency on guile-snarf.awk.in.
6672
6673 * guile-snarf.awk.in: Neglect spaces at the end of
6674 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
6675 middle of docstrings. (To avoid the problem with gcc-2.96.)
6676
6677 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
6678
6679 * coop-threads.c (scm_call_with_new_thread), load.c
6680 (scm_primitive_load, scm_sys_search_load_path), random.c
6681 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
6682 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
6683 (potentially) issue a scm-misc-error or wrong-num-args error
6684 message.
6685
6686 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
6687 about the expected type with the wrong-type-arg error message.
6688
6689 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
6690 a C level bug that can't be fixed from scheme anyway.
6691
6692 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6693
6694 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
6695 Duplicate bindings are OK in a let* since a let* is semantically
6696 equivalent to a nested set of let:s.
6697
6698 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6699
6700 * print.c (scm_print_options): Fixed texinfo in docstring.
6701
6702 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
6703 the underlying functions getservent, getprotoent or getnetent
6704 return NULL instead of signalling an error.
6705
6706 2001-03-04 Gary Houston <ghouston@arglist.com>
6707
6708 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
6709 taking an unexpectedly large filename for an AF_UNIX socket from
6710 bind/connect/sendto (thanks to Martin Grabmueller).
6711
6712 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
6713 former and adjusted the latter.
6714 (scm_socket, scm_socketpair): cosmetic changes.
6715 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
6716 size_t as socklen_t substitute. don't restrict args/return values
6717 to INUM: allow full range of int or size_t.
6718 (scm_fill_sockaddr): check arguments before allocating memory, to
6719 avoid leakage. use malloc, not scm_must_malloc.
6720 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
6721 substitute. free the sockaddr structure before throwing an error.
6722 (scm_init_add_buffer): procedure removed, together with its static
6723 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
6724 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
6725 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
6726 scm_sendto): use a local buffer instead of scm_addr_buffer.
6727 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
6728 not size_t.
6729 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
6730 call to detect whether recvfrom could be bothered to set the address.
6731 (scm_init_socket): don't call scm_init_addr_buffer.
6732
6733 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
6734
6735 * debug.c (scm_procedure_source, scm_procedure_environment),
6736 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
6737 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
6738 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
6739 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
6740 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
6741 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
6742 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
6743 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
6744 scm_array_to_list, scm_array_prototype), validate.h
6745 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
6746 scm_misc_error or scm_wrong_type_arg instead.
6747
6748 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
6749
6750 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6751
6752 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
6753 (scm_sys_tag_body): Added.
6754
6755 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
6756
6757 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
6758 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
6759 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
6760 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
6761 options.c (scm_options), ports.c (scm_remove_from_port_table),
6762 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
6763 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
6764 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
6765 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
6766 instead.
6767
6768 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6769
6770 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
6771
6772 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
6773
6774 * eval.c (scm_s_duplicate_bindings): New error message.
6775 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
6776
6777 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
6778
6779 * eval.h (SCM_EVALIM2): New macro. Use it when a
6780 immediate, literal constant should be evaluated.
6781 * eval.c (scm_s_duplicate_formals): New error message string.
6782 (scm_c_improper_memq): New function.
6783 (scm_m_lambda): Check for duplicate arguments.
6784 (scm_ceval, scm_deval): When executing a body: only cons a new
6785 toplevel environment frame when it is different from the
6786 existing one; use EVALCAR instead of SIDEVAL so that we can properly
6787 check for empty combinations; use SCM_EVALIM2 for the same reason
6788 in the non-toplevel loop.
6789 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
6790 New labels with the meaning of their non-"nontoplevel" partners,
6791 but they are used when it is known that the body is not evaluated at
6792 top-level.
6793 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
6794 reporting for empty combinations.
6795
6796 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
6797
6798 * Remove dump facilities.
6799 * dump.c, dump.h: Removed.
6800 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
6801 * init.c: Remove #include "libguile/dump.h".
6802 (scm_init_guile_1): Remove scm_init_dump.
6803 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
6804 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
6805 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
6806 (scm_set_smob_dump, scm_set_smob_undump): Removed.
6807
6808 * keywords.c: Remove #include "libguile/dump.h".
6809 (keyword_dump, keyword_undump): Removed.
6810 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
6811
6812 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6813
6814 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
6815 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
6816 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
6817 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
6818 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
6819 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
6820 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
6821 to @code{} as the texinfo manual recommends, converted the
6822 examples to use a @lisp{}-environment.
6823
6824 * strports.c (scm_eval_string): Cleaned up the docstring.
6825
6826 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
6827 markup.
6828
6829 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
6830 (scm_number_to_string, scm_string_to_number, scm_number_p)
6831 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
6832 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
6833 (scm_ash): Added texinfo markup and removed obsolete @refill.
6834 (scm_gr_p): Corrected comment.
6835 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
6836 docstring) comments.
6837 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
6838 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
6839 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
6840 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
6841 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
6842 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
6843 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
6844 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
6845
6846 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
6847
6848 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
6849 (Obviously nobody compiles with SCM_RECKLESS defined...)
6850
6851 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
6852
6853 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
6854
6855 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
6856
6857 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
6858
6859 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
6860
6861 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
6862 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
6863 since use of `z' suggests that the arguments may be complex.
6864
6865 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
6866 typos.
6867
6868 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
6869
6870 * dump.c (scm_binary_write, scm_binary_read), eval.c
6871 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
6872 scm_guardian_greedy_p, scm_make_guardian), fports.c
6873 (scm_file_port_p): Minor docstring fixes.
6874
6875 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
6876
6877 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
6878
6879 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
6880 scm_i_eval.
6881 (make_class_from_template): Do not bother to set the current
6882 module around the call to DEFVAR, scm_eval takes care of that.
6883 (scm_init_goops): Make scm_module_goops and
6884 scm_goops_lookup_closure permanent objects.
6885
6886 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
6887 top level, create a fresh top-level environment for each
6888 expression instead of mutating the exisint frame. This is
6889 important when that frame is closed over.
6890
6891 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
6892 SCM_DIGSPERLONG instead of DIGSPERLONG.
6893
6894 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
6895
6896 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
6897 before applying arrow procedure in `cond' and before applying
6898 receiver procedure in call-with-current-continuation.
6899 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
6900 macro. The argument is expanded more than one time.
6901
6902 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
6903 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
6904
6905 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
6906
6907 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
6908 notice and license.
6909
6910 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6911
6912 * variable.c (scm_make_variable, scm_make_undefined_variable)
6913 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
6914 (scm_variable_bound_p), values.c (scm_values)
6915 (scm_call_with_values), unif.c (scm_bit_count)
6916 (scm_bit_set_star_x), symbols.c (scm_gentemp)
6917 (scm_gensym), strings.c (scm_string_p, scm_make_string)
6918 (scm_read_only_string_p, scm_string_length, scm_string_ref)
6919 (scm_string_set_x, scm_substring, scm_string_append), stime.c
6920 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
6921 (scm_copy_random_state, scm_random), print.c (scm_newline)
6922 (scm_write_char, scm_simple_format), debug-malloc.c
6923 (scm_malloc_stats), environments.c (scm_environment_p)
6924 (scm_environment_bound_p, scm_environment_ref)
6925 (scm_environment_fold, scm_environment_define)
6926 (scm_environment_undefine, scm_environment_set_x)
6927 (scm_environment_cell, scm_environment_observe)
6928 (scm_environment_observe_weak, scm_environment_unobserve)
6929 (scm_make_eval_environment, scm_eval_environment_p)
6930 (scm_eval_environment_set_local_x, scm_eval_environment_local)
6931 (scm_eval_environment_imported)
6932 (scm_eval_environment_set_imported_x, scm_make_import_environment)
6933 (scm_import_environment_p, scm_import_environment_imports)
6934 (scm_import_environment_set_imports_x, scm_make_export_environment)
6935 (scm_export_environment_p, scm_export_environment_private)
6936 (scm_export_environment_set_private_x)
6937 (scm_export_environment_signature)
6938 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
6939 Added texinfo markup.
6940
6941 * ports.c (scm_drain_input): Lowercased argument to @var.
6942 (scm_current_input_port, scm_current_output_port): Filled in
6943 missing explanation.
6944 (scm_current_load_port, scm_set_current_output_port)
6945 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
6946 Added texinfo markup.
6947
6948 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
6949 (scm_release_arbiter): Added texinfo markup to docstrings.
6950 Changed `Returns' to `Return'.
6951 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
6952
6953 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
6954
6955 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
6956 by doubling them to `@@'.
6957
6958 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6959
6960 * numbers.c (scm_lognot), random.c (scm_random,
6961 scm_random_normal, scm_random_solid_sphere_x,
6962 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
6963 scm_random_exp), dynwind.c
6964 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
6965
6966 * goops.c (scm_sys_initialize_object, scm_instance_p,
6967 scm_class_name, scm_class_precedence_list, scm_class_slots,
6968 scm_class_environment, scm_generic_function_name,
6969 scm_generic_function_methods, scm_method_generic_function,
6970 scm_method_specializers, scm_method_procedure, scm_make_unbound,
6971 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
6972 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
6973 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
6974 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
6975 scm_class_direct_supers, scm_class_direct_slots,
6976 scm_class_direct_subclasses, scm_class_direct_methods,
6977 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
6978 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
6979 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
6980 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
6981 scm_memoized_environment, scm_procedure_name,
6982 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
6983 objects.c
6984 (scm_class_of, scm_entity_p, scm_operator_p,
6985 scm_set_object_procedure_x, scm_object_procedure,
6986 scm_make_class_object), hooks.c (scm_make_hook_with_name,
6987 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
6988 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
6989 scm_hook_to_list), lang.c
6990 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
6991 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
6992 (scm_print_options, scm_port_with_print_state,
6993 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
6994 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
6995 scm_make_procedure_with_setter, scm_procedure), throw.c
6996 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
6997 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
6998 scm_stack_ref, scm_stack_length, scm_frame_p,
6999 scm_last_stack_frame, scm_frame_number, scm_frame_source,
7000 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
7001 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
7002 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
7003 (scm_dirname, scm_basename), dynwind.c
7004 (scm_wind_chain), read.c (scm_read_options, scm_read,
7005 scm_read_hash_extend), gc.c
7006 (scm_unhash_name), eval.c (scm_eval_options_interface,
7007 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
7008 (scm_display_error, scm_set_print_params_x,
7009 scm_display_application, scm_display_backtrace, scm_backtrace),
7010 async.c (scm_async, scm_system_async, scm_async_mark,
7011 scm_system_async_mark, scm_run_asyncs, scm_noop,
7012 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
7013 scm_mask_signals): Added docstrings.
7014
7015 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
7016
7017 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
7018 address of car/cdr. (Thanks to Dirk Herrmann)
7019 Use scm_sizet to obtain the length of strings.
7020 (Thanks to Matthias Koeppe)
7021
7022 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
7023
7024 * symbols.c (scm_mem2symbol): Put a empty statement after the
7025 next_symbol label. This is mandated by ANSI, appearantly.
7026
7027 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
7028
7029 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
7030 sense to compile for a specific kernel version. Do not include
7031 <asm/signal.h> while defining __KERNEL__. This hack should no
7032 longer be needed and caused problems.
7033
7034 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
7035
7036 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
7037 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
7038 can not deal with immediates.
7039
7040 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
7041
7042 * list.c (scm_list_copy): Validate the first argument.
7043
7044 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
7045
7046 Fix evaluator so that top-level expressions are correctly
7047 evaluated with respect to the module system.
7048
7049 * modules.h. modules.c (scm_current_module_lookup_closure): New
7050 function.
7051
7052 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
7053 prototypes.
7054 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
7055 names to better reflect their meaning.
7056
7057 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
7058 evaluated at top-level and synronize lookup closure before
7059 executing every subform.
7060 (scm_primitve_eval_x, scm_primitive_eval): New functions.
7061 (scm_eval_x, scm_eval): Reimplement in terms of
7062 scm_primitive_eval_x and scm_primitive_eval, respectively.
7063
7064 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
7065
7066 * macros.c (scm_macro_name, scm_macro_transformer): Use
7067 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
7068 Thanks!
7069
7070 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
7071
7072 * dump.c (scm_store_bytes): Store data size before data.
7073 (scm_restore_bytes): Restore data size. Takes a pointer to size.
7074 * dump.h (scm_restore_bytes): Updated.
7075
7076 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
7077
7078 * dump.c: Use double cells for update schedule.
7079
7080 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
7081
7082 * ports.c (scm_unread_char): Take an optional argument.
7083
7084 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
7085
7086 * modules.h (scm_selected_module, scm_current_module): Renamed
7087 scm_selected_module to scm_current_module to synchronize Scheme
7088 and C names.
7089 (scm_select_module, scm_set_current_module): Likewise. Changed
7090 all uses.
7091
7092 * ports.c (scm_port_for_each): Make a snapshot of the port table
7093 before iterating over it. The table might change while the user
7094 code is running. With the snapshot, the user can depend on the
7095 fact that each port that existed at the start of the iteration is
7096 encountered exactly once. (ice-9 popen) depends on this.
7097
7098 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
7099
7100 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
7101
7102 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
7103 range checking for the size parameter. Thanks to Martin
7104 Grabmueller for the hint.
7105
7106 (scm_makstr): Reordered string initialization to make interrupt
7107 deferring unnecessary.
7108
7109 * vectors.c (scm_make_vector): Fixed range checking.
7110
7111 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
7112
7113 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
7114
7115 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
7116 checking of the size parameter for type correctness and valid
7117 range. Thanks to Rob Browning for reporting the problem. Instead
7118 of deferring interrupts, scm_remember_upto_here_1 is used.
7119
7120 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
7121
7122 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
7123 (scm_dump_cell_update): Removed.
7124 (scm_dump_update): Renamed from scm_dump_object_update.
7125 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
7126 a pointer instead of returning a value.
7127 * keywords.c (keyword_undump): Updated.
7128
7129 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
7130
7131 * dump.c, dump.h: Modified a lot.
7132 (SCM_DUMP_COOKIE): Version 0.1
7133 (scm_dump_mark): Removed.
7134 (scm_restore_cell_object, scm_store_cell_object): New functions.
7135
7136 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
7137 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
7138 New slots: dump, undump.
7139 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
7140 Updated.
7141
7142 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
7143 (keyword_undump): Renamed from keyword_alloc.
7144 (scm_init_keywords): Set keyword_dump and keyword_undump.
7145
7146 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
7147
7148 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
7149 the deprecated SCM_DOUBLE_CELLP.
7150
7151 * tags.h (SCM_DOUBLE_CELLP): deprecated.
7152
7153 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
7154
7155 * dump.c, dump.h: New files.
7156 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
7157 * init.c: #include "libguile/dump.h".
7158 (scm_init_guile_1): Call scm_init_dump.
7159 * smob.h (scm_smob_descriptor): New slots: dump_mark,
7160 dump_dealloc, dump_store, undump_alloc, undump_restore,
7161 undump_init.
7162 * smob.c (scm_make_smob_type): Init the new slots.
7163 (scm_set_smob_dump, scm_set_smob_undump): New functions.
7164 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
7165
7166 * keywords.c: #include "libguile/dump.h".
7167 (keyword_dealloc, keyword_alloc): New functions.
7168 (scm_init_keywords): Set smob_dump and smob_undump.
7169
7170 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
7171
7172 * vectors.c (scm_c_make_vector): New function.
7173 * vectors.h (scm_c_make_vector): Declared.
7174 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
7175 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
7176 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
7177 (scm_make_method_cache, scm_i_vector2list,
7178 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
7179 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
7180 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
7181 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
7182 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
7183 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
7184 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
7185 (scm_vector, scm_make_vector): Use scm_c_make_vector.
7186
7187 * hashtab.c (scm_c_make_hash_table): New function.
7188 * hashtab.h (scm_c_make_hash_table): Declared.
7189 * environments.c (scm_make_leaf_environment,
7190 scm_make_eval_environment), gc.c (scm_init_storage),
7191 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
7192 Use scm_c_make_hash_table.
7193
7194 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7195
7196 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
7197
7198 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
7199
7200 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
7201 end of docstring.
7202
7203 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
7204 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
7205 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
7206 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
7207 srcprop.c (scm_source_properties, scm_set_source_properties_x,
7208 scm_source_property, scm_set_source_property_x), sort.c
7209 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
7210 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
7211 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
7212 docstrings.
7213
7214 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7215
7216 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
7217 really get that arg.
7218
7219 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
7220
7221 * goops.c (s_scm_get_keyword): Bug fix.
7222
7223 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
7224
7225 The following patch was sent by Martin Grabmueller. It makes sure
7226 that in case of parameter errors the correct function name is
7227 shown, and that parameter types are only checked once.
7228
7229 * strop.c (string_copy, string_upcase_x, string_downcase_x,
7230 string_capitalize_x): New functions. Each one performs the core
7231 functionality of the corresponding scm_* function.
7232
7233 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
7234 scm_string_downcase_x, scm_string_downcase,
7235 scm_string_capitalize_x, scm_string_capitalize): Reduced to
7236 parameter checking wrappers of the above functions.
7237
7238 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
7239
7240 * continuations.c, dynl.c, keywords.c, load.c: Include
7241 strings.h. Thanks to Bill Schottstaedt for the bug report.
7242
7243 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
7244
7245 * backtrace.c (display_header): Make sure that line and column
7246 information is shown independent of whether the port the code was
7247 read from had an associated filename. Thanks to Martin
7248 Grabmueller for providing this patch.
7249
7250 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
7251
7252 * fports.[ch] (scm_file_port_p): New primitive.
7253
7254 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
7255
7256 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
7257 These are now defined in fports.c, strports.c and vports.c.
7258
7259 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
7260 vports.c (scm_tc16_sfport): Made variables (were macros defined in
7261 tags.h).
7262
7263 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
7264 (scm_make_sfptob): Made static. These return a type code now.
7265
7266 fports.c (scm_init_fports), strports.c (scm_init_strports),
7267 vports.c (scm_init_vports): Create the corresponding port types.
7268
7269 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
7270 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
7271
7272 * init.c (scm_init_guile_1): Make sure strports are initialized
7273 before gdbint.
7274
7275 * ports.[ch] (scm_make_port_type): Changed the return type to
7276 scm_bits_t.
7277
7278 * ports.c (scm_ports_prehistory): Don't create any port types
7279 here.
7280
7281 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
7282 against scm_tc16_fport directly.
7283
7284 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
7285
7286 * srcprop.c (scm_set_source_property_x): Fix to handle
7287 (set-source-property! <obj> 'copy <datum>) correctly.
7288
7289 2001-01-24 Gary Houston <ghouston@arglist.com>
7290
7291 * filesys.c (scm_link): docstring fix.
7292 * fports.h (scm_setfileno): obsolete declaration removed.
7293 * posix.c: bogus popen declaration removed.
7294
7295 * rdelim.c: new file, split from ioext.c.
7296 * rdelim.h: new file, split from ioext.h
7297 * Makefile.am: add rdelim.c and related files.
7298 * init.c: call scm_init_rdelim. include rdelim.h.
7299
7300 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
7301
7302 This patch was sent by Martin Grabmueller and makes sure that
7303 parameter errors are reported correctly by the lexicographic
7304 ordering predicates.
7305
7306 * strorder.c (string_less_p, string_ci_less_p): New functions.
7307
7308 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
7309 functionality into string_less_p, string_ci_less_p respectively.
7310 The remaining code is just a wrapper to do the parameter
7311 checking.
7312
7313 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
7314 parameters and call string_less_p instead of scm_string_less_p.
7315
7316 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
7317 Check the parameters and call string_less_ci_p instead of
7318 scm_string_ci_less_p.
7319
7320 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
7321
7322 This patch modifies scm_display_error to perform parameter
7323 checking. Thanks to Neil Jerram for the bug report.
7324
7325 * backtrace.[ch] (scm_i_display_error): New function.
7326
7327 * backtrace.c (scm_display_error): Added parameter check and
7328 extracted the core functionality into function
7329 scm_i_display_error.
7330
7331 * throw.c (handler_message): Call scm_i_display_error to display
7332 the error message.
7333
7334 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
7335
7336 * eval.c (SCM_APPLY): Added # args check for application of
7337 procedures with arity 3. (Thanks to Anders Holst.)
7338
7339 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
7340
7341 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
7342
7343 (SCM_OPDIRP): Deprecated.
7344
7345 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
7346 SCM_OPN.
7347
7348 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
7349 Instead, give an explicit error message in case the directory is
7350 closed.
7351
7352 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
7353 instead of SCM_OPENP and SCM_CLOSEDP.
7354
7355 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
7356
7357 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
7358
7359 * eval.c (inner_eval, scm_eval): Move all real functionality into
7360 inner_eval. Avoid to copy the expression twice by inlining some
7361 code from scm_i_eval.
7362
7363 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
7364
7365 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
7366 now has to be the last clause, as required by R5RS. Thanks to
7367 Martin Grabmueller for the patch.
7368
7369 2001-01-18 Gary Houston <ghouston@arglist.com>
7370
7371 * ioext.c: further simplify scm_read_string_x_partial by defining
7372 a macro SCM_EBLOCK.
7373
7374 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
7375
7376 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
7377
7378 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
7379
7380 * __scm.h: Added comment about architecture and compiler
7381 properties that are required by guile.
7382
7383 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
7384 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
7385
7386 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
7387
7388 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
7389
7390 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
7391 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
7392
7393 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
7394
7395 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
7396 to the names in limits.h.
7397
7398 * numbers.c (abs_most_negative_fixnum): Added.
7399
7400 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
7401 fixnum-min) special case.
7402
7403 (scm_big_and): Fix for negative first parameter.
7404
7405 (scm_bit_extract): Fix for fixnum paramters.
7406 Thanks to Rob Browning for the bug report.
7407
7408 (scm_init_numbers): Initialize abs_most_negative_fixnum.
7409
7410 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
7411
7412 * symbols.c (scm_symbol_bound_p): Fixed comment.
7413 Thanks to Chris Cramer.
7414
7415 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
7416
7417 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
7418 Thanks to Bill Schottstaedt.
7419
7420 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
7421
7422 from Matthias Köppe:
7423
7424 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
7425 casts its result, so doesn't yield an lvalue per ANSI C.
7426
7427 * goops.c (s_scm_sys_set_object_setter_x): use
7428 SCM_SET_ENTITY_SETTER.
7429 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
7430
7431 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
7432 its result, so doesn't yield an lvalue per ANSI C.
7433 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
7434 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
7435 SCM_GC_SET_CARD_FLAGS.
7436 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
7437
7438 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
7439
7440 2001-01-08 Gary Houston <ghouston@arglist.com>
7441
7442 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
7443 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
7444 socket.c (scm_recvfrom): use the new macro, plus minor docstring
7445 changes.
7446 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
7447 for fdes. if current input port is used, check that it's a file
7448 port.
7449
7450 2001-01-06 Gary Houston <ghouston@arglist.com>
7451
7452 * ioext.c (scm_read_string_x_partial): new procedure, implements
7453 read-string!/partial.
7454 * ports.c (scm_take_from_input_buffers): new procedure used by
7455 scm_read_string_x_partial.
7456 (scm_drain_input): use scm_take_from_input_buffers.
7457
7458 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
7459
7460 * validate.h (SCM_VALIDATE_NUMBER): New.
7461
7462 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
7463
7464 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
7465 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
7466 SET_DESTROYED): new defines/macros.
7467 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
7468 (add_to_live_list): takes a `guardian_t *' now, not SCM.
7469 (guardian_print): print more info.
7470 (guardian_apply): check if the guardian is destroyed, and throw an
7471 error if so. take one more optional argument `throw_p'.
7472 (scm_guard): depending on the value of `throw_p', return a boolean
7473 result.
7474 (scm_get_one_zombie): remove redundant property test.
7475 (guardian_t): represent the various (currently 3, I hope nothing
7476 more gets added) boolean fields as bit flags.
7477 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
7478 (scm_destroy_guardian_x): new procedure.
7479
7480 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
7481 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
7482
7483 2001-01-01 Gary Houston <ghouston@arglist.com>
7484
7485 * fports.c (fport_write): bugfix: handle short writes for
7486 unbuffered ports too. optimize the buffered case by minimizing
7487 the number of write/flush calls.
7488 (write_all): new helper procedure.
7489
7490 The ChangeLog continues in the file: "ChangeLog-2000"