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