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