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