* Added function scm_error_num_args_subr.
[bpt/guile.git] / libguile / ChangeLog
1 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * error.[ch] (scm_error_num_args_subr): New function.
4
5 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
6
7 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
8 (scm_length, scm_append, scm_reverse, scm_list_ref),
9 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
10 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
11 (scm_delete1_x), gc.c (scm_map_free_list),
12 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
13 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
14 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
15 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
16 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
17 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
18 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
19
20 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
21 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
22 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
23 symbols.c (scm_symbol_interned_p), numbers.c
24 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
25 markup.
26
27 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
28
29 * snarf.h (SCM_CONST_LONG): Deprecated.
30 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
31
32 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
33
34 * numbers.c (scm_num2ulong): Check that a bignum is positive
35 before looking at the magnitude. Correctly check for overflow
36 during conversion.
37 (scm_num2long_long): Likewise.
38 (scm_num2ulong_long): New.
39 (ULONG_LONG_MAX): Define if not already defined.
40 * numbers.h: (scm_num2ulong_long): New prototype.
41
42 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
43
44 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
45
46 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
47 (SCM_OPOUTSTRPORTP): New predicate macros.
48 (scm_open_input_string, scm_open_output_string),
49 (scm_get_output_string): New prototypes.
50
51 * strports.c (scm_open_input_string, scm_open_output_string),
52 (scm_get_output_string): New procedures (SRFI-6 compliant).
53 Made scm_tc16_strport non-static.
54
55 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
56
57 * macros.h (SCM_ASSYNT): Removed unused object argument from
58 signature.
59
60 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
61 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
62 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
63 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
64 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
65 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
66 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
67 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
68 scm_m_atdispatch): Removed unused object argument from call to
69 SCM_ASSYNT.
70
71 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
72
73 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
74 const int* to reflect that the input array of integers remains
75 unchanged. Thanks to Brett Viren for the hint.
76
77 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
78
79 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
80 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
81 in various places.
82 (gh_scm2newstr, gh_symbol2newstr): Change call to
83 scm_must_malloc() to malloc(), because user-free()able memory is
84 allocated.
85
86 * gc.c: Added declaration of `scm_debug_check_freelist'.
87
88 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
89
90 * ports.c (scm_port_mode): Changed `mode' array size to 4.
91
92 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
93
94 * strports.c (scm_object_to_string): New procedure.
95 (scm_strprint_obj): Deprecated.
96 * strports.h: Reflect the changes.
97
98 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
99
100 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
101
102 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
103 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
104 SCM_ASSYNT to check for correct argument types. Either use some
105 SCM_VALIDATE_* macro or an explicit test.
106
107 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
108 misc-errors.
109
110 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
111 instead of calling scm_wta.
112
113 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
114
115 * load.c (scm_primitive_load, scm_primitive_load_path),
116 (scm_sys_search_load_path): Corrected docstrings (file ->
117 filename).
118
119 * eval.c (scm_force): Added texinfo markup to docstring.
120 (scm_promise_p): Renamed parameter to `obj' to match docstring.
121
122 * debug-malloc.c: Reinserted #include <stdio.h>.
123
124 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
125
126 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
127
128 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
129 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
130 Use SCM_LISTn instead of scm_listify.
131
132 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
133
134 * _scm.h: Removed #include <errno.h>.
135
136 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
137 errno variable (can be a macro on some systems, for example when
138 using linux libc with threads).
139
140 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
141 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
142 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
143 #include <errno.h> in these 20 out of 100 files.
144
145 2001-03-10 Gary Houston <ghouston@arglist.com>
146
147 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
148 not already defined.
149
150 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
151
152 * coop.c: Inserted #include <stdio.h>.
153
154 * iselect.c: Reinserted #include <stdio.h>.
155
156 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
157
158 * posix.c: Replaced `#define' of __USE_XOPEN right before
159 including unistd.h with a define of _GNU_SOURCE at the very top of
160 the file.
161
162 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
163
164 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
165 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
166 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
167 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
168 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
169 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
170 print.c, procprop.c, procs.c, properties.c, ramap.c,
171 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
172 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
173 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
174 Remove #include <stdio.h>
175 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
176
177 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
178
179 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
180
181 * posix.c (scm_gethostname): Set initial name length to 256 for
182 Solaris.
183
184 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
185
186 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
187 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
188 (scm_sethostname, scm_gethostname): New prototypes.
189
190 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
191 <sys/file.h>, if present.
192 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
193 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
194 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
195 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
196 (scm_sethostname, scm_gethostname): New procedures.
197
198 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
199
200 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
201 not optional (ii) "recommend" spelling correction.
202
203 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
204
205 * ramap.c (racp): Removed optimization which caused array copying
206 to fail if the two arrays shared storage. Re-inserted the IVDEP
207 macros removed in the change of 2000-03-09. (Don't really have a
208 complete grasp of what they are for, but they seem to be necessary
209 on Crays. This needs testing!) Thanks to Miroslav Silovic.
210
211 * hash.c (scm_string_hash): Don't downcase characters.
212
213 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
214
215 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
216 size from 277 --> 1009.
217
218 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
219 function.
220
221 * coop-threads.c: Fixed change of 2001-03-06.
222
223 * validate.h: Code formatting.
224
225 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
226
227 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
228 (*.doc): Add dependency on guile-snarf.awk.in.
229
230 * guile-snarf.awk.in: Neglect spaces at the end of
231 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
232 middle of docstrings. (To avoid the problem with gcc-2.96.)
233
234 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
235
236 * coop-threads.c (scm_call_with_new_thread), load.c
237 (scm_primitive_load, scm_sys_search_load_path), random.c
238 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
239 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
240 (potentially) issue a scm-misc-error or wrong-num-args error
241 message.
242
243 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
244 about the expected type with the wrong-type-arg error message.
245
246 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
247 a C level bug that can't be fixed from scheme anyway.
248
249 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
250
251 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
252 Duplicate bindings are OK in a let* since a let* is semantically
253 equivalent to a nested set of let:s.
254
255 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
256
257 * print.c (scm_print_options): Fixed texinfo in docstring.
258
259 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
260 the underlying functions getservent, getprotoent or getnetent
261 return NULL instead of signalling an error.
262
263 2001-03-04 Gary Houston <ghouston@arglist.com>
264
265 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
266 taking an unexpectedly large filename for an AF_UNIX socket from
267 bind/connect/sendto (thanks to Martin Grabmueller).
268
269 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
270 former and adjusted the latter.
271 (scm_socket, scm_socketpair): cosmetic changes.
272 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
273 size_t as socklen_t substitute. don't restrict args/return values
274 to INUM: allow full range of int or size_t.
275 (scm_fill_sockaddr): check arguments before allocating memory, to
276 avoid leakage. use malloc, not scm_must_malloc.
277 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
278 substitute. free the sockaddr structure before throwing an error.
279 (scm_init_add_buffer): procedure removed, together with its static
280 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
281 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
282 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
283 scm_sendto): use a local buffer instead of scm_addr_buffer.
284 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
285 not size_t.
286 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
287 call to detect whether recvfrom could be bothered to set the address.
288 (scm_init_socket): don't call scm_init_addr_buffer.
289
290 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
291
292 * debug.c (scm_procedure_source, scm_procedure_environment),
293 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
294 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
295 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
296 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
297 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
298 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
299 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
300 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
301 scm_array_to_list, scm_array_prototype), validate.h
302 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
303 scm_misc_error or scm_wrong_type_arg instead.
304
305 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
306
307 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
308
309 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
310 (scm_sys_tag_body): Added.
311
312 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
313
314 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
315 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
316 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
317 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
318 options.c (scm_options), ports.c (scm_remove_from_port_table),
319 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
320 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
321 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
322 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
323 instead.
324
325 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
326
327 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
328
329 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
330
331 * eval.c (scm_s_duplicate_bindings): New error message.
332 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
333
334 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
335
336 * eval.h (SCM_EVALIM2): New macro. Use it when a
337 immediate, literal constant should be evaluated.
338 * eval.c (scm_s_duplicate_formals): New error message string.
339 (scm_c_improper_memq): New function.
340 (scm_m_lambda): Check for duplicate arguments.
341 (scm_ceval, scm_deval): When executing a body: only cons a new
342 toplevel environment frame when it is different from the
343 existing one; use EVALCAR instead of SIDEVAL so that we can properly
344 check for empty combinations; use SCM_EVALIM2 for the same reason
345 in the non-toplevel loop.
346 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
347 New labels with the meaning of their non-"nontoplevel" partners,
348 but they are used when it is known that the body is not evaluated at
349 top-level.
350 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
351 reporting for empty combinations.
352
353 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
354
355 * Remove dump facilities.
356 * dump.c, dump.h: Removed.
357 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
358 * init.c: Remove #include "libguile/dump.h".
359 (scm_init_guile_1): Remove scm_init_dump.
360 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
361 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
362 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
363 (scm_set_smob_dump, scm_set_smob_undump): Removed.
364
365 * keywords.c: Remove #include "libguile/dump.h".
366 (keyword_dump, keyword_undump): Removed.
367 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
368
369 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
370
371 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
372 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
373 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
374 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
375 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
376 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
377 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
378 to @code{} as the texinfo manual recommends, converted the
379 examples to use a @lisp{}-environment.
380
381 * strports.c (scm_eval_string): Cleaned up the docstring.
382
383 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
384 markup.
385
386 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
387 (scm_number_to_string, scm_string_to_number, scm_number_p)
388 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
389 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
390 (scm_ash): Added texinfo markup and removed obsolete @refill.
391 (scm_gr_p): Corrected comment.
392 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
393 docstring) comments.
394 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
395 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
396 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
397 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
398 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
399 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
400 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
401 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
402
403 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
404
405 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
406 (Obviously nobody compiles with SCM_RECKLESS defined...)
407
408 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
409
410 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
411
412 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
413
414 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
415
416 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
417
418 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
419 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
420 since use of `z' suggests that the arguments may be complex.
421
422 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
423 typos.
424
425 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
426
427 * dump.c (scm_binary_write, scm_binary_read), eval.c
428 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
429 scm_guardian_greedy_p, scm_make_guardian), fports.c
430 (scm_file_port_p): Minor docstring fixes.
431
432 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
433
434 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
435
436 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
437 scm_i_eval.
438 (make_class_from_template): Do not bother to set the current
439 module around the call to DEFVAR, scm_eval takes care of that.
440 (scm_init_goops): Make scm_module_goops and
441 scm_goops_lookup_closure permanent objects.
442
443 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
444 top level, create a fresh top-level environment for each
445 expression instead of mutating the exisint frame. This is
446 important when that frame is closed over.
447
448 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
449 SCM_DIGSPERLONG instead of DIGSPERLONG.
450
451 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
452
453 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
454 before applying arrow procedure in `cond' and before applying
455 receiver procedure in call-with-current-continuation.
456 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
457 macro. The argument is expanded more than one time.
458
459 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
460 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
461
462 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
463
464 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
465 notice and license.
466
467 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
468
469 * variable.c (scm_make_variable, scm_make_undefined_variable)
470 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
471 (scm_variable_bound_p), values.c (scm_values)
472 (scm_call_with_values), unif.c (scm_bit_count)
473 (scm_bit_set_star_x), symbols.c (scm_gentemp)
474 (scm_gensym), strings.c (scm_string_p, scm_make_string)
475 (scm_read_only_string_p, scm_string_length, scm_string_ref)
476 (scm_string_set_x, scm_substring, scm_string_append), stime.c
477 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
478 (scm_copy_random_state, scm_random), print.c (scm_newline)
479 (scm_write_char, scm_simple_format), debug-malloc.c
480 (scm_malloc_stats), environments.c (scm_environment_p)
481 (scm_environment_bound_p, scm_environment_ref)
482 (scm_environment_fold, scm_environment_define)
483 (scm_environment_undefine, scm_environment_set_x)
484 (scm_environment_cell, scm_environment_observe)
485 (scm_environment_observe_weak, scm_environment_unobserve)
486 (scm_make_eval_environment, scm_eval_environment_p)
487 (scm_eval_environment_set_local_x, scm_eval_environment_local)
488 (scm_eval_environment_imported)
489 (scm_eval_environment_set_imported_x, scm_make_import_environment)
490 (scm_import_environment_p, scm_import_environment_imports)
491 (scm_import_environment_set_imports_x, scm_make_export_environment)
492 (scm_export_environment_p, scm_export_environment_private)
493 (scm_export_environment_set_private_x)
494 (scm_export_environment_signature)
495 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
496 Added texinfo markup.
497
498 * ports.c (scm_drain_input): Lowercased argument to @var.
499 (scm_current_input_port, scm_current_output_port): Filled in
500 missing explanation.
501 (scm_current_load_port, scm_set_current_output_port)
502 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
503 Added texinfo markup.
504
505 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
506 (scm_release_arbiter): Added texinfo markup to docstrings.
507 Changed `Returns' to `Return'.
508 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
509
510 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
511
512 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
513 by doubling them to `@@'.
514
515 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
516
517 * numbers.c (scm_lognot), random.c (scm_random,
518 scm_random_normal, scm_random_solid_sphere_x,
519 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
520 scm_random_exp), dynwind.c
521 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
522
523 * goops.c (scm_sys_initialize_object, scm_instance_p,
524 scm_class_name, scm_class_precedence_list, scm_class_slots,
525 scm_class_environment, scm_generic_function_name,
526 scm_generic_function_methods, scm_method_generic_function,
527 scm_method_specializers, scm_method_procedure, scm_make_unbound,
528 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
529 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
530 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
531 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
532 scm_class_direct_supers, scm_class_direct_slots,
533 scm_class_direct_subclasses, scm_class_direct_methods,
534 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
535 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
536 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
537 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
538 scm_memoized_environment, scm_procedure_name,
539 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
540 objects.c
541 (scm_class_of, scm_entity_p, scm_operator_p,
542 scm_set_object_procedure_x, scm_object_procedure,
543 scm_make_class_object), hooks.c (scm_make_hook_with_name,
544 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
545 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
546 scm_hook_to_list), lang.c
547 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
548 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
549 (scm_print_options, scm_port_with_print_state,
550 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
551 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
552 scm_make_procedure_with_setter, scm_procedure), throw.c
553 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
554 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
555 scm_stack_ref, scm_stack_length, scm_frame_p,
556 scm_last_stack_frame, scm_frame_number, scm_frame_source,
557 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
558 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
559 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
560 (scm_dirname, scm_basename), dynwind.c
561 (scm_wind_chain), read.c (scm_read_options, scm_read,
562 scm_read_hash_extend), gc.c
563 (scm_unhash_name), eval.c (scm_eval_options_interface,
564 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
565 (scm_display_error, scm_set_print_params_x,
566 scm_display_application, scm_display_backtrace, scm_backtrace),
567 async.c (scm_async, scm_system_async, scm_async_mark,
568 scm_system_async_mark, scm_run_asyncs, scm_noop,
569 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
570 scm_mask_signals): Added docstrings.
571
572 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
573
574 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
575 address of car/cdr. (Thanks to Dirk Herrmann)
576 Use scm_sizet to obtain the length of strings.
577 (Thanks to Matthias Koeppe)
578
579 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
580
581 * symbols.c (scm_mem2symbol): Put a empty statement after the
582 next_symbol label. This is mandated by ANSI, appearantly.
583
584 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
585
586 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
587 sense to compile for a specific kernel version. Do not include
588 <asm/signal.h> while defining __KERNEL__. This hack should no
589 longer be needed and caused problems.
590
591 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
592
593 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
594 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
595 can not deal with immediates.
596
597 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
598
599 * list.c (scm_list_copy): Validate the first argument.
600
601 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
602
603 Fix evaluator so that top-level expressions are correctly
604 evaluated with respect to the module system.
605
606 * modules.h. modules.c (scm_current_module_lookup_closure): New
607 function.
608
609 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
610 prototypes.
611 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
612 names to better reflect their meaning.
613
614 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
615 evaluated at top-level and synronize lookup closure before
616 executing every subform.
617 (scm_primitve_eval_x, scm_primitive_eval): New functions.
618 (scm_eval_x, scm_eval): Reimplement in terms of
619 scm_primitive_eval_x and scm_primitive_eval, respectively.
620
621 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
622
623 * macros.c (scm_macro_name, scm_macro_transformer): Use
624 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
625 Thanks!
626
627 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
628
629 * dump.c (scm_store_bytes): Store data size before data.
630 (scm_restore_bytes): Restore data size. Takes a pointer to size.
631 * dump.h (scm_restore_bytes): Updated.
632
633 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
634
635 * dump.c: Use double cells for update schedule.
636
637 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
638
639 * ports.c (scm_unread_char): Take an optional argument.
640
641 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
642
643 * modules.h (scm_selected_module, scm_current_module): Renamed
644 scm_selected_module to scm_current_module to synchronize Scheme
645 and C names.
646 (scm_select_module, scm_set_current_module): Likewise. Changed
647 all uses.
648
649 * ports.c (scm_port_for_each): Make a snapshot of the port table
650 before iterating over it. The table might change while the user
651 code is running. With the snapshot, the user can depend on the
652 fact that each port that existed at the start of the iteration is
653 encountered exactly once. (ice-9 popen) depends on this.
654
655 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
656
657 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
658
659 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
660 range checking for the size parameter. Thanks to Martin
661 Grabmueller for the hint.
662
663 (scm_makstr): Reordered string initialization to make interrupt
664 deferring unnecessary.
665
666 * vectors.c (scm_make_vector): Fixed range checking.
667
668 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
669
670 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
671
672 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
673 checking of the size parameter for type correctness and valid
674 range. Thanks to Rob Browning for reporting the problem. Instead
675 of deferring interrupts, scm_remember_upto_here_1 is used.
676
677 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
678
679 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
680 (scm_dump_cell_update): Removed.
681 (scm_dump_update): Renamed from scm_dump_object_update.
682 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
683 a pointer instead of returning a value.
684 * keywords.c (keyword_undump): Updated.
685
686 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
687
688 * dump.c, dump.h: Modified a lot.
689 (SCM_DUMP_COOKIE): Version 0.1
690 (scm_dump_mark): Removed.
691 (scm_restore_cell_object, scm_store_cell_object): New functions.
692
693 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
694 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
695 New slots: dump, undump.
696 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
697 Updated.
698
699 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
700 (keyword_undump): Renamed from keyword_alloc.
701 (scm_init_keywords): Set keyword_dump and keyword_undump.
702
703 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
704
705 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
706 the deprecated SCM_DOUBLE_CELLP.
707
708 * tags.h (SCM_DOUBLE_CELLP): deprecated.
709
710 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
711
712 * dump.c, dump.h: New files.
713 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
714 * init.c: #include "libguile/dump.h".
715 (scm_init_guile_1): Call scm_init_dump.
716 * smob.h (scm_smob_descriptor): New slots: dump_mark,
717 dump_dealloc, dump_store, undump_alloc, undump_restore,
718 undump_init.
719 * smob.c (scm_make_smob_type): Init the new slots.
720 (scm_set_smob_dump, scm_set_smob_undump): New functions.
721 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
722
723 * keywords.c: #include "libguile/dump.h".
724 (keyword_dealloc, keyword_alloc): New functions.
725 (scm_init_keywords): Set smob_dump and smob_undump.
726
727 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
728
729 * vectors.c (scm_c_make_vector): New function.
730 * vectors.h (scm_c_make_vector): Declared.
731 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
732 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
733 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
734 (scm_make_method_cache, scm_i_vector2list,
735 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
736 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
737 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
738 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
739 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
740 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
741 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
742 (scm_vector, scm_make_vector): Use scm_c_make_vector.
743
744 * hashtab.c (scm_c_make_hash_table): New function.
745 * hashtab.h (scm_c_make_hash_table): Declared.
746 * environments.c (scm_make_leaf_environment,
747 scm_make_eval_environment), gc.c (scm_init_storage),
748 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
749 Use scm_c_make_hash_table.
750
751 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
752
753 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
754
755 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
756
757 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
758 end of docstring.
759
760 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
761 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
762 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
763 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
764 srcprop.c (scm_source_properties, scm_set_source_properties_x,
765 scm_source_property, scm_set_source_property_x), sort.c
766 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
767 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
768 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
769 docstrings.
770
771 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
772
773 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
774 really get that arg.
775
776 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
777
778 * goops.c (s_scm_get_keyword): Bug fix.
779
780 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
781
782 The following patch was sent by Martin Grabmueller. It makes sure
783 that in case of parameter errors the correct function name is
784 shown, and that parameter types are only checked once.
785
786 * strop.c (string_copy, string_upcase_x, string_downcase_x,
787 string_capitalize_x): New functions. Each one performs the core
788 functionality of the corresponding scm_* function.
789
790 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
791 scm_string_downcase_x, scm_string_downcase,
792 scm_string_capitalize_x, scm_string_capitalize): Reduced to
793 parameter checking wrappers of the above functions.
794
795 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
796
797 * continuations.c, dynl.c, keywords.c, load.c: Include
798 strings.h. Thanks to Bill Schottstaedt for the bug report.
799
800 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
801
802 * backtrace.c (display_header): Make sure that line and column
803 information is shown independent of whether the port the code was
804 read from had an associated filename. Thanks to Martin
805 Grabmueller for providing this patch.
806
807 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
808
809 * fports.[ch] (scm_file_port_p): New primitive.
810
811 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
812
813 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
814 These are now defined in fports.c, strports.c and vports.c.
815
816 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
817 vports.c (scm_tc16_sfport): Made variables (were macros defined in
818 tags.h).
819
820 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
821 (scm_make_sfptob): Made static. These return a type code now.
822
823 fports.c (scm_init_fports), strports.c (scm_init_strports),
824 vports.c (scm_init_vports): Create the corresponding port types.
825
826 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
827 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
828
829 * init.c (scm_init_guile_1): Make sure strports are initialized
830 before gdbint.
831
832 * ports.[ch] (scm_make_port_type): Changed the return type to
833 scm_bits_t.
834
835 * ports.c (scm_ports_prehistory): Don't create any port types
836 here.
837
838 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
839 against scm_tc16_fport directly.
840
841 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
842
843 * srcprop.c (scm_set_source_property_x): Fix to handle
844 (set-source-property! <obj> 'copy <datum>) correctly.
845
846 2001-01-24 Gary Houston <ghouston@arglist.com>
847
848 * filesys.c (scm_link): docstring fix.
849 * fports.h (scm_setfileno): obsolete declaration removed.
850 * posix.c: bogus popen declaration removed.
851
852 * rdelim.c: new file, split from ioext.c.
853 * rdelim.h: new file, split from ioext.h
854 * Makefile.am: add rdelim.c and related files.
855 * init.c: call scm_init_rdelim. include rdelim.h.
856
857 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
858
859 This patch was sent by Martin Grabmueller and makes sure that
860 parameter errors are reported correctly by the lexicographic
861 ordering predicates.
862
863 * strorder.c (string_less_p, string_ci_less_p): New functions.
864
865 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
866 functionality into string_less_p, string_ci_less_p respectively.
867 The remaining code is just a wrapper to do the parameter
868 checking.
869
870 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
871 parameters and call string_less_p instead of scm_string_less_p.
872
873 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
874 Check the parameters and call string_less_ci_p instead of
875 scm_string_ci_less_p.
876
877 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
878
879 This patch modifies scm_display_error to perform parameter
880 checking. Thanks to Neil Jerram for the bug report.
881
882 * backtrace.[ch] (scm_i_display_error): New function.
883
884 * backtrace.c (scm_display_error): Added parameter check and
885 extracted the core functionality into function
886 scm_i_display_error.
887
888 * throw.c (handler_message): Call scm_i_display_error to display
889 the error message.
890
891 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
892
893 * eval.c (SCM_APPLY): Added # args check for application of
894 procedures with arity 3. (Thanks to Anders Holst.)
895
896 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
897
898 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
899
900 (SCM_OPDIRP): Deprecated.
901
902 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
903 SCM_OPN.
904
905 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
906 Instead, give an explicit error message in case the directory is
907 closed.
908
909 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
910 instead of SCM_OPENP and SCM_CLOSEDP.
911
912 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
913
914 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
915
916 * eval.c (inner_eval, scm_eval): Move all real functionality into
917 inner_eval. Avoid to copy the expression twice by inlining some
918 code from scm_i_eval.
919
920 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
921
922 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
923 now has to be the last clause, as required by R5RS. Thanks to
924 Martin Grabmueller for the patch.
925
926 2001-01-18 Gary Houston <ghouston@arglist.com>
927
928 * ioext.c: further simplify scm_read_string_x_partial by defining
929 a macro SCM_EBLOCK.
930
931 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
932
933 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
934
935 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
936
937 * __scm.h: Added comment about architecture and compiler
938 properties that are required by guile.
939
940 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
941 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
942
943 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
944
945 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
946
947 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
948 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
949
950 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
951
952 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
953 to the names in limits.h.
954
955 * numbers.c (abs_most_negative_fixnum): Added.
956
957 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
958 fixnum-min) special case.
959
960 (scm_big_and): Fix for negative first parameter.
961
962 (scm_bit_extract): Fix for fixnum paramters.
963 Thanks to Rob Browning for the bug report.
964
965 (scm_init_numbers): Initialize abs_most_negative_fixnum.
966
967 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
968
969 * symbols.c (scm_symbol_bound_p): Fixed comment.
970 Thanks to Chris Cramer.
971
972 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
973
974 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
975 Thanks to Bill Schottstaedt.
976
977 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
978
979 from Matthias Köppe:
980
981 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
982 casts its result, so doesn't yield an lvalue per ANSI C.
983
984 * goops.c (s_scm_sys_set_object_setter_x): use
985 SCM_SET_ENTITY_SETTER.
986 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
987
988 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
989 its result, so doesn't yield an lvalue per ANSI C.
990 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
991 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
992 SCM_GC_SET_CARD_FLAGS.
993 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
994
995 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
996
997 2001-01-08 Gary Houston <ghouston@arglist.com>
998
999 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
1000 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
1001 socket.c (scm_recvfrom): use the new macro, plus minor docstring
1002 changes.
1003 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
1004 for fdes. if current input port is used, check that it's a file
1005 port.
1006
1007 2001-01-06 Gary Houston <ghouston@arglist.com>
1008
1009 * ioext.c (scm_read_string_x_partial): new procedure, implements
1010 read-string!/partial.
1011 * ports.c (scm_take_from_input_buffers): new procedure used by
1012 scm_read_string_x_partial.
1013 (scm_drain_input): use scm_take_from_input_buffers.
1014
1015 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
1016
1017 * validate.h (SCM_VALIDATE_NUMBER): New.
1018
1019 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
1020
1021 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
1022 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
1023 SET_DESTROYED): new defines/macros.
1024 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
1025 (add_to_live_list): takes a `guardian_t *' now, not SCM.
1026 (guardian_print): print more info.
1027 (guardian_apply): check if the guardian is destroyed, and throw an
1028 error if so. take one more optional argument `throw_p'.
1029 (scm_guard): depending on the value of `throw_p', return a boolean
1030 result.
1031 (scm_get_one_zombie): remove redundant property test.
1032 (guardian_t): represent the various (currently 3, I hope nothing
1033 more gets added) boolean fields as bit flags.
1034 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
1035 (scm_destroy_guardian_x): new procedure.
1036
1037 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
1038 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
1039
1040 2001-01-01 Gary Houston <ghouston@arglist.com>
1041
1042 * fports.c (fport_write): bugfix: handle short writes for
1043 unbuffered ports too. optimize the buffered case by minimizing
1044 the number of write/flush calls.
1045 (write_all): new helper procedure.
1046
1047 The ChangeLog continues in the file: "ChangeLog-2000"