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