*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
2
3 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
4 arrays. The length of array is already determined differently and
5 scm_uniform_vector_length does not work on arrays.
6
7 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
8
9 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
10 as well. "SCM (*)(...)" does not work on RedHat 7.1.
11
12 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
13 they are not used. Changed `wrong type' error into `wrong num
14 args' error. Changed all callers.
15
16 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
17 arguments are supplied.
18
19 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
20
21 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
22 describe `regexp/notbol' and `regexp/noteol' execution flags.
23
24 * strop.c (scm_substring_move_x): Doc fix; nfc.
25
26 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
27
28 * objects.c, objects.h (scm_valid_object_procedure_p): New.
29 (scm_set_object_procedure_x): Use it to check argument. Fix
30 docstring.
31
32 * evalext.c (scm_definedp): Fix docstring.
33
34 2001-05-05 Gary Houston <ghouston@arglist.com>
35
36 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
37 support.
38
39 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
40
41 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
42 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
43 Change R4RS references to R5RS.
44
45 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
46 docstring source are correctly reproduced in the output (ii)
47 we don't anymore get occasional trailing quotes. Also reorganized
48 and commented the code a little.
49
50 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
51 fixes.
52
53 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
54
55 * strop.c (scm_string_split): New procedure.
56
57 * strop.h (scm_string_split): Added prototype.
58
59 2001-05-04 Gary Houston <ghouston@arglist.com>
60
61 * socket.c: define uint32_t if netdb.h doesn't. thanks to
62 Dale P. Smith.
63
64 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
65
66 * rw.c: Include "modules.h" and "strports.h".
67
68 * net_db.h (scm_gethost): Added prototype.
69
70 * deprecation.h, deprecation.c: New.
71 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
72 (DOT_X_FILES): Added "deprecation.x".
73 (modinclude_HEADERS): Added "deprecation.h".
74
75 * init.c: Include "deprecation.h".
76 (scm_init_guile_1): Call scm_init_deprecation.
77
78 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
79
80 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
81 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
82 New.
83
84 2001-04-29 Gary Houston <ghouston@arglist.com>
85
86 * rw.c: new file, implementing C part of module (ice-9 rw).
87 (scm_read_string_x_partial): moved from ioext.c
88 (scm_init_rw): new proc.
89 * rw.h: new file.
90 init.c: include rw.h and call scm_init_rw.
91 Makefile.am: include rw.c and rw.h.
92
93 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
94
95 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
96 know what's supposed to happen to it.
97
98 * list.h (scm_list_star): deprecation expired - removed.
99
100 * numbers.h (scm_dblproc): deprecation expired - removed.
101 (SCM_UNEGFIXABLE): deprecation expired - removed.
102 (SCM_FLOBUFLEN): deprecation expired - removed.
103 (SCM_INEXP): deprecation expired - removed.
104 (SCM_CPLXP): deprecation expired - removed.
105 (SCM_REAL): deprecation expired - removed.
106 (SCM_IMAG): deprecation expired - removed.
107 (SCM_REALPART): deprecation expired - removed.
108 (scm_makdbl): deprecation expired - removed.
109 (SCM_SINGP): deprecation expired - removed.
110 (SCM_NUM2DBL): deprecation expired - removed.
111 (SCM_NO_BIGDIG): deprecation expired - removed.
112
113 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
114 (scm_tc_dblr): deprecation expired - removed.
115 (scm_tc_dblc): deprecation expired - removed.
116 (scm_tc16_flo): deprecation expired - removed.
117 (scm_tc_flo): deprecation expired - removed.
118
119 * tag.h (scm_tag): deprecation expired - removed.
120
121 * tag.c: (scm_tag): deprecation expired - removed.
122
123 * ioext.c: (scm_fseek): deprecation expired - removed.
124
125 * ioext.h (scm_fseek): deprecation expired - removed.
126
127 * gh_data.c (gh_int2scmb): deprecation expired - removed.
128
129 * gh.h (gh_int2scmb): deprecation expired - removed.
130
131 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
132
133 * stacks.c (scm_make_stack): Fix typo in docstring.
134
135 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
136
137 * error.c (scm_sysmissing): deprecation expired - removed.
138
139 * error.h (scm_sysmissing): deprecation expired - removed.
140
141 * gc.c
142 (scm_init_gc): gc-thunk deprecation expired - removed.
143 (scm_gc_vcell): deprecation expired - removed.
144 (gc_async_thunk): scm_gc_vcell related code removed.
145
146 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
147
148 * strings.h
149 (SCM_NSTRINGP): deprecation expired - removed.
150 (SCM_NRWSTRINGP): deprecation expired - removed.
151
152 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
153
154 * chars.h
155 (SCM_ICHRP): deprecation expired - removed.
156 (SCM_ICHR): deprecation expired - removed.
157 (SCM_MAKICHR): deprecation expired - removed.
158
159 * ports.h
160 (SCM_INPORTP): deprecation expired - removed.
161 (SCM_OUTPORTP): deprecation expired - removed.
162
163 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
164
165 * modules.c (scm_module_type): New.
166 (scm_post_boot_init_modules): Initialize from Scheme value.
167 (the_module, scm_current_module, scm_init_modules): the_module is
168 now a C only fluid.
169 (scm_current_module): Export to Scheme.
170 (scm_set_current_module): Do not call out to Scheme, do all the
171 work in C. Export procedure to Scheme. Only accept modules, `#f'
172 is no longer valid as the current module. Only set
173 scm_top_level_lookup_closure_var and scm_system_transformer when
174 they are not deprecated.
175 (scm_module_transformer, scm_current_module_transformer): New.
176
177 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
178 scm_current_module_transformer, scm_module_transformer): New.
179
180 * gh_data.c: Removed FIXME comment about gh_lookup returning
181 SCM_UNDEFINED. That's the right thing to do.
182
183 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
184 into the conditionally compiled sections.
185 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
186 scm_current_module_transformer instead of scm_system_transformer.
187 * init.c (start_stack): Move initialization of
188 scm_system_transformer to the deprecated section.
189
190 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
191
192 * throw.c (scm_throw): Correct docstring.
193
194 2001-04-22 Gary Houston <ghouston@arglist.com>
195
196 * socket.c: attempted to improve the docstrings slightly.
197
198 * net_db.c: remove bogus "close" declaration.
199 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
200 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
201 moved to socket.c.
202 * net_db.h: declarations moved too.
203
204 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
205 long.
206 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
207 (VALIDATE_INET6): new macro.
208 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
209 inet-pton and inet-ntop.
210 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
211 (scm_addr_vector): use ipv6_net_to_num.
212
213 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
214
215 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
216 smob number explicitly. Use SCM_TC2SMOBNUM instead.
217
218 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
219 when compiled in debug mode.
220
221 (scm_gc_sweep): Only call smob's free function if it is defined.
222
223 * print.c (scm_iprin1): No need to check for validity of smob
224 type or existence of print function.
225
226 * smob.[ch] (scm_smobs): Made into a fixed size global array.
227 Resizing will not work well with preemptive threading.
228
229 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
230
231 (scm_make_smob_type): Extracted initialization of smob
232 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
233 of the critical section.
234
235 (scm_smob_prehistory): Initialize all smob descriptors. By
236 default, don't assign a smob free function: Most smob types don't
237 need one.
238
239 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
240
241 2001-04-21 Gary Houston <ghouston@arglist.com>
242
243 * socket.c (FLIP_NET_HOST_128): new macro.
244 (scm_fill_sockaddr): use new macro.
245 (scm_addr_vector): completed IPv6 address support. added const
246 to the address parameter.
247
248 2001-04-20 Gary Houston <ghouston@arglist.com>
249
250 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
251 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
252 is defined.
253 (scm_addr_vector): use a switch instead of multiple if statements.
254 Add support for IPv6 (incomplete) .
255 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
256
257 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
258
259 * struct.c (scm_free_structs): Only pairs may be accessed with
260 SCM_C[AD]R.
261
262 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
263
264 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
265
266 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
267 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
268 parentheses in order to get the correct associativity.
269
270 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
271
272 * unif.c (scm_array_to_list): Added missing handling of arrays of
273 bytes. Thanks to Masao Uebayashi for the bug report.
274
275 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
276
277 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
278 consistently.
279
280 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
281
282 * procs.h (SCM_CLOSURE_FORMALS): New macro.
283
284 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
285 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
286 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
287 SCM_CLOSURE_FORMALS.
288
289 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
290 (scm_i_procedure_arity): Prefer stronger predicates like
291 SCM_NULLP or SCM_FALSEP over SCM_IMP.
292
293 * macros.c (macro_print): Extracted macro printing code from
294 print.c and simplified it.
295
296 (scm_macro_type): Use SCM_MACRO_TYPE;
297
298 (scm_init_macros): Use macro_print for printing macros.
299
300 * print.c (scm_print_opts): Improved option documentation.
301
302 (scm_iprin1): Extracted printing of macros to macros.c.
303 Simplified printing of ordinary closures.
304
305 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
306 Martin Grabmueller for the bug report.
307
308 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
309
310 This patch eliminates some further applications of SCM_C[AD]R to
311 non pair cells.
312
313 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
314 never been applied to real pairs.
315
316 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
317
318 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
319
320 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
321 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
322 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
323
324 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
325 Added.
326
327 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
328 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
329
330 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
331 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
332 SCM_SET{AND,OR}_CAR.
333
334 2001-04-17 Gary Houston <ghouston@arglist.com>
335
336 * some initial support for IPv6:
337
338 * socket.c (scm_fill_sockaddr): improve the argument validation.
339 don't allocate memory until all args are checked. instead of
340 unconditional memset of soka, try setting sin_len to 0 if
341 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
342 (scm_socket, scm_connect): extend docstrings for IPv6.
343 (scm_init_socket): intern AF_INET6 and PF_INET6.
344
345 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
346
347 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
348 matches SCM_DEFER_INTS at the beginning of the function.
349
350 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
351
352 * gc.c (scm_igc): Unconditionally call
353 SCM_CRITICAL_SECTION_START/END.
354
355 * fluids.c (next_fluid_num): Unconditionally call
356 SCM_CRITICAL_SECTION_START/END.
357 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
358
359 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
360 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
361 Removed.
362
363 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
364 Defined as nothing for the case of !defined(USE_THREADS).
365 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
366 Removed.
367 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
368 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
369 LINE.
370 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
371 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
372 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
373 SCM_CRITICAL_SECTION_START/END.
374 (SCM_REALLOW_INTS: Bug fix. Don't call
375 SCM_THREAD_SWITCHING_CODE.
376 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
377 SCM_THREAD_SWITCHING_CODE directly.
378 (SCM_ENTER_A_SECTION): Unconditionally use
379 SCM_CRITICAL_SECTION_START/END. (was:
380 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
381
382 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
383
384 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
385 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
386 allowed to explicitly set this macro via the CFLAGS variable
387 during make.
388
389 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
390 (SCM_THREAD_CRITICAL_SECTION_START,
391 SCM_THREAD_CRITICAL_SECTION_END): Renamed
392 SCM_THREAD_CRITICAL_SECTION_START/END to
393 SCM_CRITICAL_SECTION_START/END.
394
395 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
396
397 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
398 instead of bzero.
399
400 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
401 (MISSING_BZERO_DECL): Remove the declaration.
402
403 Thanks to NIIBE Yutaka.
404
405 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
406
407 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
408 goops module should be registered in order to work for an
409 application which uses libguile statically linked.)
410
411 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
412
413 * numbers.[ch] (scm_num2long, scm_num2long_long,
414 scm_num2ulong_long, scm_num2ulong): Argument position is an
415 unsigned integer.
416
417 * environments.c (eval_environment_folder,
418 import_environment_folder), gh_data.c (gh_scm2longs,
419 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
420 for integers and pointers, respectively.
421
422 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
423 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
424 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
425 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
426
427 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
428 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
429 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
430 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
431 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
432 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
433
434 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
435
436 * strings.c (scm_read_only_string_p): Update docstring to reflect
437 current (non-)usage of "read only" strings.
438 (scm_make_shared_substring): Clarify docstring by changing
439 "semantics" to "arguments".
440
441 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
442
443 * hooks.c (scm_make_hook, scm_make_hook_with_name),
444 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
445 improvements.
446
447 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
448
449 The following changes make the documentation more consistent.
450
451 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
452 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
453 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
454 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
455 ... @end lisp.
456
457 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
458 (scm_array_dimensions, scm_make_shared_array),
459 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
460 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
461 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
462 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
463 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
464 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
465 macros.c (scm_makmmacro), list.c (scm_append), environments.c
466 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
467 @example ... @end example to @lisp ... @end lisp.
468
469 * weaks.c (scm_weak_vector): Corrected docstring.
470
471 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
472 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
473 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
474 (scm_hashx_set_x, scm_hashx_get_handle),
475 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
476 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
477 vectors.c (scm_vector_fill_x), strings.c
478 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
479 objprop.c (scm_set_object_properties_x):
480 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
481 strports.c (scm_call_with_input_string), ports.c
482 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
483 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
484 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
485 (scm_make_weak_vector,scm_weak_vector_p),
486 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
487 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
488 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
489 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
490 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
491 Made parameter names match documentation by renaming parameters
492 and/or fixing docstrings.
493
494 * numbers.c (scm_ash): Corrected Texinfo markup.
495
496 * strop.c (scm_string_index, scm_string_rindex),
497 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
498
499 * vports.c (scm_make_soft_port), unif.c
500 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
501 (scm_dimensions_to_uniform_array, scm_transpose_array),
502 (scm_array_in_bounds_p, scm_uniform_vector_ref),
503 (scm_bit_count, scm_bit_position, scm_bit_count_star),
504 (scm_array_to_list, scm_list_to_uniform_array),
505 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
506 (scm_open_input_string, scm_open_output_string),
507 (scm_get_output_string), strop.c (scm_string_copy),
508 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
509 (scm_get_internal_real_time, scm_times),
510 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
511 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
512 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
513 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
514 simpos.c (scm_system), random.c (scm_random_uniform),
515 (scm_random_normal, scm_random_exp), ramap.c
516 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
517 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
518 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
519 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
520 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
521 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
522 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
523 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
524 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
525 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
526 (scm_logand, scm_logior, scm_logxor, scm_lognot),
527 (scm_integer_expt, scm_bit_extract, scm_logcount),
528 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
529 net_db.c (scm_inet_netof, scm_lnaof), modules.c
530 (scm_interaction_environment), macros.c (scm_makacro),
531 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
532 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
533 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
534 (scm_fluid_ref), filesys.c (scm_open_fdes),
535 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
536 Docstring correction: `Returns' -> `Return'
537
538 * gc.c (scm_set_debug_cell_accesses_x):
539 (s_scm_gc_set_debug_check_freelist_x):
540 * fluids.c (scm_fluid_p): Added texinfo markup.
541
542 * error.c (scm_strerror): Made docstring more precise.
543
544 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
545 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
546 (scm_symbol_p, scm_symbol_to_string), strorder.c
547 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
548 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
549 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
550 (scm_string_ci_geq_p), strop.c (scm_string_copy),
551 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
552
553 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
554
555 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
556 mode, as suggested by Michael Livshin.
557
558 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
559
560 * backtrace.c (display_backtrace_body): since the `print_state'
561 variable is not used (instead its data field is used directly as
562 `pstate'), protect it from the hungry compiler optimizations.
563 thanks to Bill Schottstaedt for the report.
564
565 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
566
567 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
568 It is only defined and used if guile is compiled with
569 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
570 let cells with a free_cell type tag be visible outside of the
571 garbage collector when in debug mode.
572
573 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
574
575 (scm_assert_cell_valid): Use a local static variable to avoid
576 recursion.
577
578 (MARK): Only check for rogue cell pointers in debug mode. Use
579 scm_cellp for this purpose and place all checks for rogue pointers
580 into that function. Further, since due to conservative scanning
581 we may encounter free cells during marking, don't use the standard
582 cell type accessor macro to determine the cell type.
583
584 (scm_cellp): Check if the cell pointer actually points into a
585 card header.
586
587 (scm_init_gc): Initalize scm_tc16_allocated.
588
589 * gc.h (GCH): Renamed to SCM_GC_H.
590
591 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
592 might be unnecessary, but I feel better this way :-)
593
594 (SCM_GC_CELL_TYPE): New macro.
595
596 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
597 in guile, and it is unlikely that they will be applied to real
598 pairs anyway.
599
600 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
601
602 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
603 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
604
605 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
606 make sure that in debug mode no free cell will ever be visible
607 outside of the garbage collector.
608
609 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
610
611 * async.c (scm_asyncs_pending): Don't use != to compare SCM
612 values.
613
614 * async.c (scm_system_async), variable.c (scm_make_variable,
615 scm_make_undefined_variable): Use scm_cons to create a pair.
616
617 * debug.c (scm_reverse_lookup): Perform proper type checking.
618 Remove suspicious use of SCM_SLOPPY_CONSP.
619
620 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
621 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
622 the corresponding optimization.
623
624 * eval.c (iqq): Use proper type check.
625
626 (scm_m_expand_body): Remove redundant type checks.
627
628 (promise_print): Don't access promise cells as pairs.
629
630 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
631 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
632 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
633 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
634 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
635
636 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
637 (scm_iprin1): Use new macro predicate and accessors.
638
639 * eval.h (scm_tc16_macro): Removed declaration. It is declared
640 in macros.h.
641
642 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
643 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
644 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
645 SCM_VARIABLE_H. Even the macros that are used to inhibit
646 including a header file twice should be in the SCM_ namespace.
647
648 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
649 properties.c (scm_primitive_property_ref,
650 scm_primitive_property_del_x): Prefer stronger predicates like
651 SCM_NULLP or SCM_FALSEP over SCM_IMP.
652
653 * gc.c (MARK): Use proper macros to access procedure-with-setter
654 cell elements and closure cell elements.
655
656 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
657 access free cells as pairs.
658
659 (scm_unprotect_object): scm_hashq_get_handle returns #f if
660 no hashtab entry is found.
661
662 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
663 SCM_CLR_PORT_OPEN_FLAG.
664
665 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
666 use SCM_SET_C[AD]R for uninitialized cells.
667
668 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
669 If the hashtable has no slots, return #f instead of '(). This
670 unifies the return value with most assoc-functions.
671
672 (scm_hash_fn_ref): Use proper type check.
673
674 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
675 Removed references to non-existing functions from documentation.
676
677 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
678 access keyword cell elements.
679
680 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
681 macros.
682
683 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
684
685 * print.c (scm_iprlist): Added comment. Improved loop
686 conditions.
687
688 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
689 pairs.
690
691 * smob.c (scm_markcdr): Don't access smob cells as pairs.
692
693 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
694
695 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
696 cells as pairs.
697
698 * variable.c (variable_print, variable_equalp, scm_variable_ref,
699 scm_variable_set_x): Use proper macros to access variable cell
700 elements.
701
702 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
703
704 * variable.h (SCM_VARVCELL): Don't access variable cells as
705 pairs.
706
707 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
708 added FIXME comment, removed register specifier.
709
710 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
711
712 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
713 * init.c (scm_init_guile_1): Don't init goopscore module.
714
715 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
716
717 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
718
719 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
720
721 * strop.c (scm_string_to_list): Fixed docstring markup.
722 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
723 (scm_string_downcase, scm_string_capitalize_x),
724 (scm_string_capitalize): Rewrote and corrected docstrings.
725 (scm_string_ci_to_symbol): Made docstring more explicit.
726
727 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
728
729 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
730 eval.c can use it.
731 (scm_call_with_values): Removed.
732 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
733 so that it can be exported.
734 (scm_call_with_values): Removed.
735
736 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
737 * eval.c: Include "libguile/values.h"
738 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
739 New.
740 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
741 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
742 New delcarations to support above change.
743
744 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
745 errors with last change.
746
747 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
748
749 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
750 scm_i_eval): Moved the application of the system transformer from
751 scm_i_eval to scm_primitive_eval.
752
753 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
754
755 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
756
757 * strop.c (scm_string_index): Fix docstring line break
758 regression.
759
760 * list.c (scm_cons_star): Fix docstring typo.
761
762 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
763
764 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
765 (big2str), ports.c (scm_drain_input), read.c (scm_read,
766 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
767 scm_make_string, scm_string_append), strports.c (st_resize_port,
768 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
769 scm_makstr with calls to scm_allocate_string.
770
771 * strings.[ch] (scm_allocate_string): New function.
772
773 * strings.[ch] (scm_makstr): Deprecated.
774
775 2001-03-18 Gary Houston <ghouston@arglist.com>
776
777 * posix.c (scm_tmpnam): check that return value from tmpnam is not
778 NULL. rewrote the docstring.
779 (scm_mkstemp): new procedure implementing "mkstemp!".
780 * posix.h: declare scm_mkstemp.
781
782 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
783 normally it would be found in netdb.h.
784
785 2001-03-17 Gary Houston <ghouston@arglist.com>
786
787 * sort.c (scm_sort): move sortvec variable to avoid a compiler
788 warning when HAVE_ARRAYS is not defined. move len too.
789
790 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
791 (EXTRA_DOT_X_FILES): let configure set the value.
792 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
793
794 * gc.c (scm_must_malloc): changed the comment explaining when
795 scm_must variants of malloc/free etc., should be used, based on
796 explanation from Dirk Herrmann.
797 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
798 string with procedure name. use scm_must_malloc instead of malloc.
799 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
800 of malloc/free.
801 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
802 scm_ungetc): use scm_must variants of malloc/realloc/free.
803 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
804
805 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
806
807 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
808 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
809 scm_wrong_type_arg instead.
810
811 (SCM_WNA): Deprecated.
812
813 * error.[ch] (scm_wta): Deprecated.
814
815 * numbers.c (s_i_log): Minor comment fix.
816
817 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
818 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
819 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
820 wrong-num-args or misc errors.
821
822 * unif.c (scm_make_shared_array, scm_transpose_array,
823 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
824 Validate the rest argument (note: this is only done when guile is
825 built with SCM_DEBUG_REST_ARGUMENT=1)
826
827 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
828 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
829
830 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
831 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
832
833 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
834
835 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
836 instead of scm_wrong_num_args.
837
838 * coop-threads.c: Don't include libguile/strings.h. (Was only
839 needed for former implementation of SCM_WRONG_NUM_ARGS.)
840
841 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
842 wrong-num-args errors.
843
844 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
845
846 * error.[ch] (scm_error_num_args_subr): New function.
847
848 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
849
850 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
851 (scm_length, scm_append, scm_reverse, scm_list_ref),
852 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
853 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
854 (scm_delete1_x), gc.c (scm_map_free_list),
855 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
856 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
857 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
858 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
859 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
860 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
861 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
862
863 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
864 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
865 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
866 symbols.c (scm_symbol_interned_p), numbers.c
867 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
868 markup.
869
870 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
871
872 * snarf.h (SCM_CONST_LONG): Deprecated.
873 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
874
875 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
876
877 * numbers.c (scm_num2ulong): Check that a bignum is positive
878 before looking at the magnitude. Correctly check for overflow
879 during conversion.
880 (scm_num2long_long): Likewise.
881 (scm_num2ulong_long): New.
882 (ULONG_LONG_MAX): Define if not already defined.
883 * numbers.h: (scm_num2ulong_long): New prototype.
884
885 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
886
887 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
888
889 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
890 (SCM_OPOUTSTRPORTP): New predicate macros.
891 (scm_open_input_string, scm_open_output_string),
892 (scm_get_output_string): New prototypes.
893
894 * strports.c (scm_open_input_string, scm_open_output_string),
895 (scm_get_output_string): New procedures (SRFI-6 compliant).
896 Made scm_tc16_strport non-static.
897
898 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
899
900 * macros.h (SCM_ASSYNT): Removed unused object argument from
901 signature.
902
903 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
904 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
905 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
906 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
907 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
908 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
909 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
910 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
911 scm_m_atdispatch): Removed unused object argument from call to
912 SCM_ASSYNT.
913
914 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
915
916 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
917 const int* to reflect that the input array of integers remains
918 unchanged. Thanks to Brett Viren for the hint.
919
920 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
921
922 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
923 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
924 in various places.
925 (gh_scm2newstr, gh_symbol2newstr): Change call to
926 scm_must_malloc() to malloc(), because user-free()able memory is
927 allocated.
928
929 * gc.c: Added declaration of `scm_debug_check_freelist'.
930
931 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
932
933 * ports.c (scm_port_mode): Changed `mode' array size to 4.
934
935 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
936
937 * strports.c (scm_object_to_string): New procedure.
938 (scm_strprint_obj): Deprecated.
939 * strports.h: Reflect the changes.
940
941 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
942
943 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
944
945 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
946 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
947 SCM_ASSYNT to check for correct argument types. Either use some
948 SCM_VALIDATE_* macro or an explicit test.
949
950 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
951 misc-errors.
952
953 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
954 instead of calling scm_wta.
955
956 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
957
958 * load.c (scm_primitive_load, scm_primitive_load_path),
959 (scm_sys_search_load_path): Corrected docstrings (file ->
960 filename).
961
962 * eval.c (scm_force): Added texinfo markup to docstring.
963 (scm_promise_p): Renamed parameter to `obj' to match docstring.
964
965 * debug-malloc.c: Reinserted #include <stdio.h>.
966
967 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
968
969 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
970
971 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
972 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
973 Use SCM_LISTn instead of scm_listify.
974
975 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
976
977 * _scm.h: Removed #include <errno.h>.
978
979 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
980 errno variable (can be a macro on some systems, for example when
981 using linux libc with threads).
982
983 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
984 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
985 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
986 #include <errno.h> in these 20 out of 100 files.
987
988 2001-03-10 Gary Houston <ghouston@arglist.com>
989
990 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
991 not already defined.
992
993 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
994
995 * coop.c: Inserted #include <stdio.h>.
996
997 * iselect.c: Reinserted #include <stdio.h>.
998
999 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
1000
1001 * posix.c: Replaced `#define' of __USE_XOPEN right before
1002 including unistd.h with a define of _GNU_SOURCE at the very top of
1003 the file.
1004
1005 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
1006
1007 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
1008 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
1009 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
1010 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
1011 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
1012 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
1013 print.c, procprop.c, procs.c, properties.c, ramap.c,
1014 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
1015 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
1016 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
1017 Remove #include <stdio.h>
1018 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
1019
1020 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
1021
1022 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1023
1024 * posix.c (scm_gethostname): Set initial name length to 256 for
1025 Solaris.
1026
1027 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1028
1029 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
1030 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
1031 (scm_sethostname, scm_gethostname): New prototypes.
1032
1033 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
1034 <sys/file.h>, if present.
1035 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
1036 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
1037 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
1038 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
1039 (scm_sethostname, scm_gethostname): New procedures.
1040
1041 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
1042
1043 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
1044 not optional (ii) "recommend" spelling correction.
1045
1046 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1047
1048 * ramap.c (racp): Removed optimization which caused array copying
1049 to fail if the two arrays shared storage. Re-inserted the IVDEP
1050 macros removed in the change of 2000-03-09. (Don't really have a
1051 complete grasp of what they are for, but they seem to be necessary
1052 on Crays. This needs testing!) Thanks to Miroslav Silovic.
1053
1054 * hash.c (scm_string_hash): Don't downcase characters.
1055
1056 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1057
1058 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
1059 size from 277 --> 1009.
1060
1061 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
1062 function.
1063
1064 * coop-threads.c: Fixed change of 2001-03-06.
1065
1066 * validate.h: Code formatting.
1067
1068 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
1069
1070 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
1071 (*.doc): Add dependency on guile-snarf.awk.in.
1072
1073 * guile-snarf.awk.in: Neglect spaces at the end of
1074 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
1075 middle of docstrings. (To avoid the problem with gcc-2.96.)
1076
1077 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
1078
1079 * coop-threads.c (scm_call_with_new_thread), load.c
1080 (scm_primitive_load, scm_sys_search_load_path), random.c
1081 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
1082 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
1083 (potentially) issue a scm-misc-error or wrong-num-args error
1084 message.
1085
1086 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
1087 about the expected type with the wrong-type-arg error message.
1088
1089 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
1090 a C level bug that can't be fixed from scheme anyway.
1091
1092 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1093
1094 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
1095 Duplicate bindings are OK in a let* since a let* is semantically
1096 equivalent to a nested set of let:s.
1097
1098 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1099
1100 * print.c (scm_print_options): Fixed texinfo in docstring.
1101
1102 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
1103 the underlying functions getservent, getprotoent or getnetent
1104 return NULL instead of signalling an error.
1105
1106 2001-03-04 Gary Houston <ghouston@arglist.com>
1107
1108 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
1109 taking an unexpectedly large filename for an AF_UNIX socket from
1110 bind/connect/sendto (thanks to Martin Grabmueller).
1111
1112 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
1113 former and adjusted the latter.
1114 (scm_socket, scm_socketpair): cosmetic changes.
1115 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
1116 size_t as socklen_t substitute. don't restrict args/return values
1117 to INUM: allow full range of int or size_t.
1118 (scm_fill_sockaddr): check arguments before allocating memory, to
1119 avoid leakage. use malloc, not scm_must_malloc.
1120 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
1121 substitute. free the sockaddr structure before throwing an error.
1122 (scm_init_add_buffer): procedure removed, together with its static
1123 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
1124 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
1125 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
1126 scm_sendto): use a local buffer instead of scm_addr_buffer.
1127 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
1128 not size_t.
1129 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
1130 call to detect whether recvfrom could be bothered to set the address.
1131 (scm_init_socket): don't call scm_init_addr_buffer.
1132
1133 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1134
1135 * debug.c (scm_procedure_source, scm_procedure_environment),
1136 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
1137 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
1138 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
1139 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
1140 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
1141 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
1142 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
1143 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
1144 scm_array_to_list, scm_array_prototype), validate.h
1145 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
1146 scm_misc_error or scm_wrong_type_arg instead.
1147
1148 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
1149
1150 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1151
1152 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
1153 (scm_sys_tag_body): Added.
1154
1155 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1156
1157 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
1158 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
1159 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
1160 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
1161 options.c (scm_options), ports.c (scm_remove_from_port_table),
1162 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
1163 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
1164 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
1165 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
1166 instead.
1167
1168 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1169
1170 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
1171
1172 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
1173
1174 * eval.c (scm_s_duplicate_bindings): New error message.
1175 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
1176
1177 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
1178
1179 * eval.h (SCM_EVALIM2): New macro. Use it when a
1180 immediate, literal constant should be evaluated.
1181 * eval.c (scm_s_duplicate_formals): New error message string.
1182 (scm_c_improper_memq): New function.
1183 (scm_m_lambda): Check for duplicate arguments.
1184 (scm_ceval, scm_deval): When executing a body: only cons a new
1185 toplevel environment frame when it is different from the
1186 existing one; use EVALCAR instead of SIDEVAL so that we can properly
1187 check for empty combinations; use SCM_EVALIM2 for the same reason
1188 in the non-toplevel loop.
1189 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
1190 New labels with the meaning of their non-"nontoplevel" partners,
1191 but they are used when it is known that the body is not evaluated at
1192 top-level.
1193 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
1194 reporting for empty combinations.
1195
1196 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
1197
1198 * Remove dump facilities.
1199 * dump.c, dump.h: Removed.
1200 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
1201 * init.c: Remove #include "libguile/dump.h".
1202 (scm_init_guile_1): Remove scm_init_dump.
1203 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
1204 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
1205 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
1206 (scm_set_smob_dump, scm_set_smob_undump): Removed.
1207
1208 * keywords.c: Remove #include "libguile/dump.h".
1209 (keyword_dump, keyword_undump): Removed.
1210 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
1211
1212 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1213
1214 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
1215 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
1216 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
1217 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
1218 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
1219 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
1220 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
1221 to @code{} as the texinfo manual recommends, converted the
1222 examples to use a @lisp{}-environment.
1223
1224 * strports.c (scm_eval_string): Cleaned up the docstring.
1225
1226 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
1227 markup.
1228
1229 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
1230 (scm_number_to_string, scm_string_to_number, scm_number_p)
1231 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
1232 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
1233 (scm_ash): Added texinfo markup and removed obsolete @refill.
1234 (scm_gr_p): Corrected comment.
1235 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
1236 docstring) comments.
1237 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
1238 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
1239 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
1240 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
1241 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
1242 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
1243 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
1244 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
1245
1246 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1247
1248 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
1249 (Obviously nobody compiles with SCM_RECKLESS defined...)
1250
1251 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
1252
1253 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1254
1255 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
1256
1257 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
1258
1259 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
1260
1261 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
1262 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
1263 since use of `z' suggests that the arguments may be complex.
1264
1265 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
1266 typos.
1267
1268 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
1269
1270 * dump.c (scm_binary_write, scm_binary_read), eval.c
1271 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
1272 scm_guardian_greedy_p, scm_make_guardian), fports.c
1273 (scm_file_port_p): Minor docstring fixes.
1274
1275 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
1276
1277 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
1278
1279 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
1280 scm_i_eval.
1281 (make_class_from_template): Do not bother to set the current
1282 module around the call to DEFVAR, scm_eval takes care of that.
1283 (scm_init_goops): Make scm_module_goops and
1284 scm_goops_lookup_closure permanent objects.
1285
1286 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
1287 top level, create a fresh top-level environment for each
1288 expression instead of mutating the exisint frame. This is
1289 important when that frame is closed over.
1290
1291 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
1292 SCM_DIGSPERLONG instead of DIGSPERLONG.
1293
1294 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
1295
1296 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
1297 before applying arrow procedure in `cond' and before applying
1298 receiver procedure in call-with-current-continuation.
1299 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
1300 macro. The argument is expanded more than one time.
1301
1302 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
1303 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
1304
1305 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
1306
1307 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
1308 notice and license.
1309
1310 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1311
1312 * variable.c (scm_make_variable, scm_make_undefined_variable)
1313 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
1314 (scm_variable_bound_p), values.c (scm_values)
1315 (scm_call_with_values), unif.c (scm_bit_count)
1316 (scm_bit_set_star_x), symbols.c (scm_gentemp)
1317 (scm_gensym), strings.c (scm_string_p, scm_make_string)
1318 (scm_read_only_string_p, scm_string_length, scm_string_ref)
1319 (scm_string_set_x, scm_substring, scm_string_append), stime.c
1320 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
1321 (scm_copy_random_state, scm_random), print.c (scm_newline)
1322 (scm_write_char, scm_simple_format), debug-malloc.c
1323 (scm_malloc_stats), environments.c (scm_environment_p)
1324 (scm_environment_bound_p, scm_environment_ref)
1325 (scm_environment_fold, scm_environment_define)
1326 (scm_environment_undefine, scm_environment_set_x)
1327 (scm_environment_cell, scm_environment_observe)
1328 (scm_environment_observe_weak, scm_environment_unobserve)
1329 (scm_make_eval_environment, scm_eval_environment_p)
1330 (scm_eval_environment_set_local_x, scm_eval_environment_local)
1331 (scm_eval_environment_imported)
1332 (scm_eval_environment_set_imported_x, scm_make_import_environment)
1333 (scm_import_environment_p, scm_import_environment_imports)
1334 (scm_import_environment_set_imports_x, scm_make_export_environment)
1335 (scm_export_environment_p, scm_export_environment_private)
1336 (scm_export_environment_set_private_x)
1337 (scm_export_environment_signature)
1338 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
1339 Added texinfo markup.
1340
1341 * ports.c (scm_drain_input): Lowercased argument to @var.
1342 (scm_current_input_port, scm_current_output_port): Filled in
1343 missing explanation.
1344 (scm_current_load_port, scm_set_current_output_port)
1345 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
1346 Added texinfo markup.
1347
1348 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
1349 (scm_release_arbiter): Added texinfo markup to docstrings.
1350 Changed `Returns' to `Return'.
1351 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
1352
1353 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
1354
1355 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
1356 by doubling them to `@@'.
1357
1358 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1359
1360 * numbers.c (scm_lognot), random.c (scm_random,
1361 scm_random_normal, scm_random_solid_sphere_x,
1362 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
1363 scm_random_exp), dynwind.c
1364 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
1365
1366 * goops.c (scm_sys_initialize_object, scm_instance_p,
1367 scm_class_name, scm_class_precedence_list, scm_class_slots,
1368 scm_class_environment, scm_generic_function_name,
1369 scm_generic_function_methods, scm_method_generic_function,
1370 scm_method_specializers, scm_method_procedure, scm_make_unbound,
1371 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
1372 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
1373 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
1374 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
1375 scm_class_direct_supers, scm_class_direct_slots,
1376 scm_class_direct_subclasses, scm_class_direct_methods,
1377 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
1378 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
1379 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
1380 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
1381 scm_memoized_environment, scm_procedure_name,
1382 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
1383 objects.c
1384 (scm_class_of, scm_entity_p, scm_operator_p,
1385 scm_set_object_procedure_x, scm_object_procedure,
1386 scm_make_class_object), hooks.c (scm_make_hook_with_name,
1387 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
1388 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
1389 scm_hook_to_list), lang.c
1390 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
1391 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
1392 (scm_print_options, scm_port_with_print_state,
1393 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
1394 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
1395 scm_make_procedure_with_setter, scm_procedure), throw.c
1396 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
1397 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
1398 scm_stack_ref, scm_stack_length, scm_frame_p,
1399 scm_last_stack_frame, scm_frame_number, scm_frame_source,
1400 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
1401 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
1402 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
1403 (scm_dirname, scm_basename), dynwind.c
1404 (scm_wind_chain), read.c (scm_read_options, scm_read,
1405 scm_read_hash_extend), gc.c
1406 (scm_unhash_name), eval.c (scm_eval_options_interface,
1407 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
1408 (scm_display_error, scm_set_print_params_x,
1409 scm_display_application, scm_display_backtrace, scm_backtrace),
1410 async.c (scm_async, scm_system_async, scm_async_mark,
1411 scm_system_async_mark, scm_run_asyncs, scm_noop,
1412 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
1413 scm_mask_signals): Added docstrings.
1414
1415 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
1416
1417 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
1418 address of car/cdr. (Thanks to Dirk Herrmann)
1419 Use scm_sizet to obtain the length of strings.
1420 (Thanks to Matthias Koeppe)
1421
1422 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
1423
1424 * symbols.c (scm_mem2symbol): Put a empty statement after the
1425 next_symbol label. This is mandated by ANSI, appearantly.
1426
1427 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1428
1429 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
1430 sense to compile for a specific kernel version. Do not include
1431 <asm/signal.h> while defining __KERNEL__. This hack should no
1432 longer be needed and caused problems.
1433
1434 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
1435
1436 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
1437 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
1438 can not deal with immediates.
1439
1440 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
1441
1442 * list.c (scm_list_copy): Validate the first argument.
1443
1444 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
1445
1446 Fix evaluator so that top-level expressions are correctly
1447 evaluated with respect to the module system.
1448
1449 * modules.h. modules.c (scm_current_module_lookup_closure): New
1450 function.
1451
1452 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
1453 prototypes.
1454 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
1455 names to better reflect their meaning.
1456
1457 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
1458 evaluated at top-level and synronize lookup closure before
1459 executing every subform.
1460 (scm_primitve_eval_x, scm_primitive_eval): New functions.
1461 (scm_eval_x, scm_eval): Reimplement in terms of
1462 scm_primitive_eval_x and scm_primitive_eval, respectively.
1463
1464 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
1465
1466 * macros.c (scm_macro_name, scm_macro_transformer): Use
1467 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
1468 Thanks!
1469
1470 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
1471
1472 * dump.c (scm_store_bytes): Store data size before data.
1473 (scm_restore_bytes): Restore data size. Takes a pointer to size.
1474 * dump.h (scm_restore_bytes): Updated.
1475
1476 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
1477
1478 * dump.c: Use double cells for update schedule.
1479
1480 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
1481
1482 * ports.c (scm_unread_char): Take an optional argument.
1483
1484 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1485
1486 * modules.h (scm_selected_module, scm_current_module): Renamed
1487 scm_selected_module to scm_current_module to synchronize Scheme
1488 and C names.
1489 (scm_select_module, scm_set_current_module): Likewise. Changed
1490 all uses.
1491
1492 * ports.c (scm_port_for_each): Make a snapshot of the port table
1493 before iterating over it. The table might change while the user
1494 code is running. With the snapshot, the user can depend on the
1495 fact that each port that existed at the start of the iteration is
1496 encountered exactly once. (ice-9 popen) depends on this.
1497
1498 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1499
1500 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
1501
1502 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
1503 range checking for the size parameter. Thanks to Martin
1504 Grabmueller for the hint.
1505
1506 (scm_makstr): Reordered string initialization to make interrupt
1507 deferring unnecessary.
1508
1509 * vectors.c (scm_make_vector): Fixed range checking.
1510
1511 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1512
1513 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
1514
1515 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
1516 checking of the size parameter for type correctness and valid
1517 range. Thanks to Rob Browning for reporting the problem. Instead
1518 of deferring interrupts, scm_remember_upto_here_1 is used.
1519
1520 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1521
1522 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
1523 (scm_dump_cell_update): Removed.
1524 (scm_dump_update): Renamed from scm_dump_object_update.
1525 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
1526 a pointer instead of returning a value.
1527 * keywords.c (keyword_undump): Updated.
1528
1529 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1530
1531 * dump.c, dump.h: Modified a lot.
1532 (SCM_DUMP_COOKIE): Version 0.1
1533 (scm_dump_mark): Removed.
1534 (scm_restore_cell_object, scm_store_cell_object): New functions.
1535
1536 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
1537 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
1538 New slots: dump, undump.
1539 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
1540 Updated.
1541
1542 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
1543 (keyword_undump): Renamed from keyword_alloc.
1544 (scm_init_keywords): Set keyword_dump and keyword_undump.
1545
1546 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
1547
1548 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
1549 the deprecated SCM_DOUBLE_CELLP.
1550
1551 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1552
1553 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1554
1555 * dump.c, dump.h: New files.
1556 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
1557 * init.c: #include "libguile/dump.h".
1558 (scm_init_guile_1): Call scm_init_dump.
1559 * smob.h (scm_smob_descriptor): New slots: dump_mark,
1560 dump_dealloc, dump_store, undump_alloc, undump_restore,
1561 undump_init.
1562 * smob.c (scm_make_smob_type): Init the new slots.
1563 (scm_set_smob_dump, scm_set_smob_undump): New functions.
1564 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
1565
1566 * keywords.c: #include "libguile/dump.h".
1567 (keyword_dealloc, keyword_alloc): New functions.
1568 (scm_init_keywords): Set smob_dump and smob_undump.
1569
1570 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1571
1572 * vectors.c (scm_c_make_vector): New function.
1573 * vectors.h (scm_c_make_vector): Declared.
1574 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
1575 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
1576 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
1577 (scm_make_method_cache, scm_i_vector2list,
1578 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
1579 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
1580 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
1581 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
1582 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
1583 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
1584 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
1585 (scm_vector, scm_make_vector): Use scm_c_make_vector.
1586
1587 * hashtab.c (scm_c_make_hash_table): New function.
1588 * hashtab.h (scm_c_make_hash_table): Declared.
1589 * environments.c (scm_make_leaf_environment,
1590 scm_make_eval_environment), gc.c (scm_init_storage),
1591 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
1592 Use scm_c_make_hash_table.
1593
1594 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1595
1596 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1597
1598 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1599
1600 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1601 end of docstring.
1602
1603 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
1604 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
1605 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
1606 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1607 srcprop.c (scm_source_properties, scm_set_source_properties_x,
1608 scm_source_property, scm_set_source_property_x), sort.c
1609 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
1610 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
1611 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
1612 docstrings.
1613
1614 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1615
1616 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1617 really get that arg.
1618
1619 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1620
1621 * goops.c (s_scm_get_keyword): Bug fix.
1622
1623 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1624
1625 The following patch was sent by Martin Grabmueller. It makes sure
1626 that in case of parameter errors the correct function name is
1627 shown, and that parameter types are only checked once.
1628
1629 * strop.c (string_copy, string_upcase_x, string_downcase_x,
1630 string_capitalize_x): New functions. Each one performs the core
1631 functionality of the corresponding scm_* function.
1632
1633 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
1634 scm_string_downcase_x, scm_string_downcase,
1635 scm_string_capitalize_x, scm_string_capitalize): Reduced to
1636 parameter checking wrappers of the above functions.
1637
1638 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1639
1640 * continuations.c, dynl.c, keywords.c, load.c: Include
1641 strings.h. Thanks to Bill Schottstaedt for the bug report.
1642
1643 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1644
1645 * backtrace.c (display_header): Make sure that line and column
1646 information is shown independent of whether the port the code was
1647 read from had an associated filename. Thanks to Martin
1648 Grabmueller for providing this patch.
1649
1650 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1651
1652 * fports.[ch] (scm_file_port_p): New primitive.
1653
1654 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1655
1656 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
1657 These are now defined in fports.c, strports.c and vports.c.
1658
1659 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1660 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1661 tags.h).
1662
1663 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
1664 (scm_make_sfptob): Made static. These return a type code now.
1665
1666 fports.c (scm_init_fports), strports.c (scm_init_strports),
1667 vports.c (scm_init_vports): Create the corresponding port types.
1668
1669 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1670 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1671
1672 * init.c (scm_init_guile_1): Make sure strports are initialized
1673 before gdbint.
1674
1675 * ports.[ch] (scm_make_port_type): Changed the return type to
1676 scm_bits_t.
1677
1678 * ports.c (scm_ports_prehistory): Don't create any port types
1679 here.
1680
1681 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1682 against scm_tc16_fport directly.
1683
1684 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1685
1686 * srcprop.c (scm_set_source_property_x): Fix to handle
1687 (set-source-property! <obj> 'copy <datum>) correctly.
1688
1689 2001-01-24 Gary Houston <ghouston@arglist.com>
1690
1691 * filesys.c (scm_link): docstring fix.
1692 * fports.h (scm_setfileno): obsolete declaration removed.
1693 * posix.c: bogus popen declaration removed.
1694
1695 * rdelim.c: new file, split from ioext.c.
1696 * rdelim.h: new file, split from ioext.h
1697 * Makefile.am: add rdelim.c and related files.
1698 * init.c: call scm_init_rdelim. include rdelim.h.
1699
1700 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1701
1702 This patch was sent by Martin Grabmueller and makes sure that
1703 parameter errors are reported correctly by the lexicographic
1704 ordering predicates.
1705
1706 * strorder.c (string_less_p, string_ci_less_p): New functions.
1707
1708 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
1709 functionality into string_less_p, string_ci_less_p respectively.
1710 The remaining code is just a wrapper to do the parameter
1711 checking.
1712
1713 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
1714 parameters and call string_less_p instead of scm_string_less_p.
1715
1716 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
1717 Check the parameters and call string_less_ci_p instead of
1718 scm_string_ci_less_p.
1719
1720 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1721
1722 This patch modifies scm_display_error to perform parameter
1723 checking. Thanks to Neil Jerram for the bug report.
1724
1725 * backtrace.[ch] (scm_i_display_error): New function.
1726
1727 * backtrace.c (scm_display_error): Added parameter check and
1728 extracted the core functionality into function
1729 scm_i_display_error.
1730
1731 * throw.c (handler_message): Call scm_i_display_error to display
1732 the error message.
1733
1734 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1735
1736 * eval.c (SCM_APPLY): Added # args check for application of
1737 procedures with arity 3. (Thanks to Anders Holst.)
1738
1739 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1740
1741 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
1742
1743 (SCM_OPDIRP): Deprecated.
1744
1745 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
1746 SCM_OPN.
1747
1748 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
1749 Instead, give an explicit error message in case the directory is
1750 closed.
1751
1752 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
1753 instead of SCM_OPENP and SCM_CLOSEDP.
1754
1755 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
1756
1757 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1758
1759 * eval.c (inner_eval, scm_eval): Move all real functionality into
1760 inner_eval. Avoid to copy the expression twice by inlining some
1761 code from scm_i_eval.
1762
1763 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1764
1765 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
1766 now has to be the last clause, as required by R5RS. Thanks to
1767 Martin Grabmueller for the patch.
1768
1769 2001-01-18 Gary Houston <ghouston@arglist.com>
1770
1771 * ioext.c: further simplify scm_read_string_x_partial by defining
1772 a macro SCM_EBLOCK.
1773
1774 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1775
1776 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
1777
1778 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1779
1780 * __scm.h: Added comment about architecture and compiler
1781 properties that are required by guile.
1782
1783 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1784 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
1785
1786 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
1787
1788 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
1789
1790 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1791 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
1792
1793 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1794
1795 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
1796 to the names in limits.h.
1797
1798 * numbers.c (abs_most_negative_fixnum): Added.
1799
1800 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
1801 fixnum-min) special case.
1802
1803 (scm_big_and): Fix for negative first parameter.
1804
1805 (scm_bit_extract): Fix for fixnum paramters.
1806 Thanks to Rob Browning for the bug report.
1807
1808 (scm_init_numbers): Initialize abs_most_negative_fixnum.
1809
1810 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1811
1812 * symbols.c (scm_symbol_bound_p): Fixed comment.
1813 Thanks to Chris Cramer.
1814
1815 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1816
1817 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
1818 Thanks to Bill Schottstaedt.
1819
1820 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
1821
1822 from Matthias Köppe:
1823
1824 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
1825 casts its result, so doesn't yield an lvalue per ANSI C.
1826
1827 * goops.c (s_scm_sys_set_object_setter_x): use
1828 SCM_SET_ENTITY_SETTER.
1829 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
1830
1831 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
1832 its result, so doesn't yield an lvalue per ANSI C.
1833 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
1834 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
1835 SCM_GC_SET_CARD_FLAGS.
1836 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
1837
1838 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
1839
1840 2001-01-08 Gary Houston <ghouston@arglist.com>
1841
1842 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
1843 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
1844 socket.c (scm_recvfrom): use the new macro, plus minor docstring
1845 changes.
1846 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
1847 for fdes. if current input port is used, check that it's a file
1848 port.
1849
1850 2001-01-06 Gary Houston <ghouston@arglist.com>
1851
1852 * ioext.c (scm_read_string_x_partial): new procedure, implements
1853 read-string!/partial.
1854 * ports.c (scm_take_from_input_buffers): new procedure used by
1855 scm_read_string_x_partial.
1856 (scm_drain_input): use scm_take_from_input_buffers.
1857
1858 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
1859
1860 * validate.h (SCM_VALIDATE_NUMBER): New.
1861
1862 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
1863
1864 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
1865 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
1866 SET_DESTROYED): new defines/macros.
1867 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
1868 (add_to_live_list): takes a `guardian_t *' now, not SCM.
1869 (guardian_print): print more info.
1870 (guardian_apply): check if the guardian is destroyed, and throw an
1871 error if so. take one more optional argument `throw_p'.
1872 (scm_guard): depending on the value of `throw_p', return a boolean
1873 result.
1874 (scm_get_one_zombie): remove redundant property test.
1875 (guardian_t): represent the various (currently 3, I hope nothing
1876 more gets added) boolean fields as bit flags.
1877 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
1878 (scm_destroy_guardian_x): new procedure.
1879
1880 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
1881 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
1882
1883 2001-01-01 Gary Houston <ghouston@arglist.com>
1884
1885 * fports.c (fport_write): bugfix: handle short writes for
1886 unbuffered ports too. optimize the buffered case by minimizing
1887 the number of write/flush calls.
1888 (write_all): new helper procedure.
1889
1890 The ChangeLog continues in the file: "ChangeLog-2000"