1 2001-04-29 Gary Houston <ghouston@arglist.com>
3 * rw.c: new file, implementing C part of module (ice-9 rw).
4 (scm_read_string_x_partial): moved from ioext.c
5 (scm_init_rw): new proc.
7 init.c: include rw.h and call scm_init_rw.
8 Makefile.am: include rw.c and rw.h.
10 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
12 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
13 know what's supposed to happen to it.
15 * list.h (scm_list_star): deprecation expired - removed.
17 * numbers.h (scm_dblproc): deprecation expired - removed.
18 (SCM_UNEGFIXABLE): deprecation expired - removed.
19 (SCM_FLOBUFLEN): deprecation expired - removed.
20 (SCM_INEXP): deprecation expired - removed.
21 (SCM_CPLXP): deprecation expired - removed.
22 (SCM_REAL): deprecation expired - removed.
23 (SCM_IMAG): deprecation expired - removed.
24 (SCM_REALPART): deprecation expired - removed.
25 (scm_makdbl): deprecation expired - removed.
26 (SCM_SINGP): deprecation expired - removed.
27 (SCM_NUM2DBL): deprecation expired - removed.
28 (SCM_NO_BIGDIG): deprecation expired - removed.
30 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
31 (scm_tc_dblr): deprecation expired - removed.
32 (scm_tc_dblc): deprecation expired - removed.
33 (scm_tc16_flo): deprecation expired - removed.
34 (scm_tc_flo): deprecation expired - removed.
36 * tag.h (scm_tag): deprecation expired - removed.
38 * tag.c: (scm_tag): deprecation expired - removed.
40 * ioext.c: (scm_fseek): deprecation expired - removed.
42 * ioext.h (scm_fseek): deprecation expired - removed.
44 * gh_data.c (gh_int2scmb): deprecation expired - removed.
46 * gh.h (gh_int2scmb): deprecation expired - removed.
48 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
50 * stacks.c (scm_make_stack): Fix typo in docstring.
52 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
54 * error.c (scm_sysmissing): deprecation expired - removed.
56 * error.h (scm_sysmissing): deprecation expired - removed.
59 (scm_init_gc): gc-thunk deprecation expired - removed.
60 (scm_gc_vcell): deprecation expired - removed.
61 (gc_async_thunk): scm_gc_vcell related code removed.
63 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
66 (SCM_NSTRINGP): deprecation expired - removed.
67 (SCM_NRWSTRINGP): deprecation expired - removed.
69 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
72 (SCM_ICHRP): deprecation expired - removed.
73 (SCM_ICHR): deprecation expired - removed.
74 (SCM_MAKICHR): deprecation expired - removed.
77 (SCM_INPORTP): deprecation expired - removed.
78 (SCM_OUTPORTP): deprecation expired - removed.
80 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
82 * modules.c (scm_module_type): New.
83 (scm_post_boot_init_modules): Initialize from Scheme value.
84 (the_module, scm_current_module, scm_init_modules): the_module is
86 (scm_current_module): Export to Scheme.
87 (scm_set_current_module): Do not call out to Scheme, do all the
88 work in C. Export procedure to Scheme. Only accept modules, `#f'
89 is no longer valid as the current module. Only set
90 scm_top_level_lookup_closure_var and scm_system_transformer when
91 they are not deprecated.
92 (scm_module_transformer, scm_current_module_transformer): New.
94 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
95 scm_current_module_transformer, scm_module_transformer): New.
97 * gh_data.c: Removed FIXME comment about gh_lookup returning
98 SCM_UNDEFINED. That's the right thing to do.
100 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
101 into the conditionally compiled sections.
102 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
103 scm_current_module_transformer instead of scm_system_transformer.
104 * init.c (start_stack): Move initialization of
105 scm_system_transformer to the deprecated section.
107 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
109 * throw.c (scm_throw): Correct docstring.
111 2001-04-22 Gary Houston <ghouston@arglist.com>
113 * socket.c: attempted to improve the docstrings slightly.
115 * net_db.c: remove bogus "close" declaration.
116 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
117 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
119 * net_db.h: declarations moved too.
121 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
123 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
124 (VALIDATE_INET6): new macro.
125 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
126 inet-pton and inet-ntop.
127 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
128 (scm_addr_vector): use ipv6_net_to_num.
130 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
132 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
133 smob number explicitly. Use SCM_TC2SMOBNUM instead.
135 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
136 when compiled in debug mode.
138 (scm_gc_sweep): Only call smob's free function if it is defined.
140 * print.c (scm_iprin1): No need to check for validity of smob
141 type or existence of print function.
143 * smob.[ch] (scm_smobs): Made into a fixed size global array.
144 Resizing will not work well with preemptive threading.
146 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
148 (scm_make_smob_type): Extracted initialization of smob
149 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
150 of the critical section.
152 (scm_smob_prehistory): Initialize all smob descriptors. By
153 default, don't assign a smob free function: Most smob types don't
156 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
158 2001-04-21 Gary Houston <ghouston@arglist.com>
160 * socket.c (FLIP_NET_HOST_128): new macro.
161 (scm_fill_sockaddr): use new macro.
162 (scm_addr_vector): completed IPv6 address support. added const
163 to the address parameter.
165 2001-04-20 Gary Houston <ghouston@arglist.com>
167 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
168 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
170 (scm_addr_vector): use a switch instead of multiple if statements.
171 Add support for IPv6 (incomplete) .
172 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
174 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
176 * struct.c (scm_free_structs): Only pairs may be accessed with
179 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
181 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
183 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
184 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
185 parentheses in order to get the correct associativity.
187 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
189 * unif.c (scm_array_to_list): Added missing handling of arrays of
190 bytes. Thanks to Masao Uebayashi for the bug report.
192 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
194 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
197 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
199 * procs.h (SCM_CLOSURE_FORMALS): New macro.
201 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
202 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
203 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
206 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
207 (scm_i_procedure_arity): Prefer stronger predicates like
208 SCM_NULLP or SCM_FALSEP over SCM_IMP.
210 * macros.c (macro_print): Extracted macro printing code from
211 print.c and simplified it.
213 (scm_macro_type): Use SCM_MACRO_TYPE;
215 (scm_init_macros): Use macro_print for printing macros.
217 * print.c (scm_print_opts): Improved option documentation.
219 (scm_iprin1): Extracted printing of macros to macros.c.
220 Simplified printing of ordinary closures.
222 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
223 Martin Grabmueller for the bug report.
225 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
227 This patch eliminates some further applications of SCM_C[AD]R to
230 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
231 never been applied to real pairs.
233 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
235 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
237 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
238 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
239 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
241 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
244 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
245 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
247 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
248 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
251 2001-04-17 Gary Houston <ghouston@arglist.com>
253 * some initial support for IPv6:
255 * socket.c (scm_fill_sockaddr): improve the argument validation.
256 don't allocate memory until all args are checked. instead of
257 unconditional memset of soka, try setting sin_len to 0 if
258 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
259 (scm_socket, scm_connect): extend docstrings for IPv6.
260 (scm_init_socket): intern AF_INET6 and PF_INET6.
262 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
264 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
265 matches SCM_DEFER_INTS at the beginning of the function.
267 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
269 * gc.c (scm_igc): Unconditionally call
270 SCM_CRITICAL_SECTION_START/END.
272 * fluids.c (next_fluid_num): Unconditionally call
273 SCM_CRITICAL_SECTION_START/END.
274 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
276 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
277 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
280 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
281 Defined as nothing for the case of !defined(USE_THREADS).
282 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
284 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
285 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
287 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
288 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
289 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
290 SCM_CRITICAL_SECTION_START/END.
291 (SCM_REALLOW_INTS: Bug fix. Don't call
292 SCM_THREAD_SWITCHING_CODE.
293 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
294 SCM_THREAD_SWITCHING_CODE directly.
295 (SCM_ENTER_A_SECTION): Unconditionally use
296 SCM_CRITICAL_SECTION_START/END. (was:
297 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
299 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
301 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
302 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
303 allowed to explicitly set this macro via the CFLAGS variable
306 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
307 (SCM_THREAD_CRITICAL_SECTION_START,
308 SCM_THREAD_CRITICAL_SECTION_END): Renamed
309 SCM_THREAD_CRITICAL_SECTION_START/END to
310 SCM_CRITICAL_SECTION_START/END.
312 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
314 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
317 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
318 (MISSING_BZERO_DECL): Remove the declaration.
320 Thanks to NIIBE Yutaka.
322 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
324 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
325 goops module should be registered in order to work for an
326 application which uses libguile statically linked.)
328 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
330 * numbers.[ch] (scm_num2long, scm_num2long_long,
331 scm_num2ulong_long, scm_num2ulong): Argument position is an
334 * environments.c (eval_environment_folder,
335 import_environment_folder), gh_data.c (gh_scm2longs,
336 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
337 for integers and pointers, respectively.
339 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
340 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
341 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
342 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
344 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
345 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
346 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
347 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
348 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
349 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
351 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
353 * strings.c (scm_read_only_string_p): Update docstring to reflect
354 current (non-)usage of "read only" strings.
355 (scm_make_shared_substring): Clarify docstring by changing
356 "semantics" to "arguments".
358 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
360 * hooks.c (scm_make_hook, scm_make_hook_with_name),
361 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
364 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
366 The following changes make the documentation more consistent.
368 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
369 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
370 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
371 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
374 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
375 (scm_array_dimensions, scm_make_shared_array),
376 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
377 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
378 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
379 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
380 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
381 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
382 macros.c (scm_makmmacro), list.c (scm_append), environments.c
383 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
384 @example ... @end example to @lisp ... @end lisp.
386 * weaks.c (scm_weak_vector): Corrected docstring.
388 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
389 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
390 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
391 (scm_hashx_set_x, scm_hashx_get_handle),
392 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
393 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
394 vectors.c (scm_vector_fill_x), strings.c
395 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
396 objprop.c (scm_set_object_properties_x):
397 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
398 strports.c (scm_call_with_input_string), ports.c
399 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
400 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
401 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
402 (scm_make_weak_vector,scm_weak_vector_p),
403 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
404 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
405 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
406 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
407 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
408 Made parameter names match documentation by renaming parameters
409 and/or fixing docstrings.
411 * numbers.c (scm_ash): Corrected Texinfo markup.
413 * strop.c (scm_string_index, scm_string_rindex),
414 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
416 * vports.c (scm_make_soft_port), unif.c
417 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
418 (scm_dimensions_to_uniform_array, scm_transpose_array),
419 (scm_array_in_bounds_p, scm_uniform_vector_ref),
420 (scm_bit_count, scm_bit_position, scm_bit_count_star),
421 (scm_array_to_list, scm_list_to_uniform_array),
422 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
423 (scm_open_input_string, scm_open_output_string),
424 (scm_get_output_string), strop.c (scm_string_copy),
425 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
426 (scm_get_internal_real_time, scm_times),
427 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
428 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
429 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
430 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
431 simpos.c (scm_system), random.c (scm_random_uniform),
432 (scm_random_normal, scm_random_exp), ramap.c
433 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
434 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
435 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
436 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
437 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
438 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
439 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
440 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
441 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
442 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
443 (scm_logand, scm_logior, scm_logxor, scm_lognot),
444 (scm_integer_expt, scm_bit_extract, scm_logcount),
445 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
446 net_db.c (scm_inet_netof, scm_lnaof), modules.c
447 (scm_interaction_environment), macros.c (scm_makacro),
448 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
449 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
450 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
451 (scm_fluid_ref), filesys.c (scm_open_fdes),
452 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
453 Docstring correction: `Returns' -> `Return'
455 * gc.c (scm_set_debug_cell_accesses_x):
456 (s_scm_gc_set_debug_check_freelist_x):
457 * fluids.c (scm_fluid_p): Added texinfo markup.
459 * error.c (scm_strerror): Made docstring more precise.
461 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
462 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
463 (scm_symbol_p, scm_symbol_to_string), strorder.c
464 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
465 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
466 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
467 (scm_string_ci_geq_p), strop.c (scm_string_copy),
468 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
470 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
472 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
473 mode, as suggested by Michael Livshin.
475 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
477 * backtrace.c (display_backtrace_body): since the `print_state'
478 variable is not used (instead its data field is used directly as
479 `pstate'), protect it from the hungry compiler optimizations.
480 thanks to Bill Schottstaedt for the report.
482 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
484 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
485 It is only defined and used if guile is compiled with
486 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
487 let cells with a free_cell type tag be visible outside of the
488 garbage collector when in debug mode.
490 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
492 (scm_assert_cell_valid): Use a local static variable to avoid
495 (MARK): Only check for rogue cell pointers in debug mode. Use
496 scm_cellp for this purpose and place all checks for rogue pointers
497 into that function. Further, since due to conservative scanning
498 we may encounter free cells during marking, don't use the standard
499 cell type accessor macro to determine the cell type.
501 (scm_cellp): Check if the cell pointer actually points into a
504 (scm_init_gc): Initalize scm_tc16_allocated.
506 * gc.h (GCH): Renamed to SCM_GC_H.
508 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
509 might be unnecessary, but I feel better this way :-)
511 (SCM_GC_CELL_TYPE): New macro.
513 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
514 in guile, and it is unlikely that they will be applied to real
517 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
519 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
520 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
522 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
523 make sure that in debug mode no free cell will ever be visible
524 outside of the garbage collector.
526 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
528 * async.c (scm_asyncs_pending): Don't use != to compare SCM
531 * async.c (scm_system_async), variable.c (scm_make_variable,
532 scm_make_undefined_variable): Use scm_cons to create a pair.
534 * debug.c (scm_reverse_lookup): Perform proper type checking.
535 Remove suspicious use of SCM_SLOPPY_CONSP.
537 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
538 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
539 the corresponding optimization.
541 * eval.c (iqq): Use proper type check.
543 (scm_m_expand_body): Remove redundant type checks.
545 (promise_print): Don't access promise cells as pairs.
547 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
548 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
549 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
550 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
551 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
553 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
554 (scm_iprin1): Use new macro predicate and accessors.
556 * eval.h (scm_tc16_macro): Removed declaration. It is declared
559 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
560 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
561 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
562 SCM_VARIABLE_H. Even the macros that are used to inhibit
563 including a header file twice should be in the SCM_ namespace.
565 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
566 properties.c (scm_primitive_property_ref,
567 scm_primitive_property_del_x): Prefer stronger predicates like
568 SCM_NULLP or SCM_FALSEP over SCM_IMP.
570 * gc.c (MARK): Use proper macros to access procedure-with-setter
571 cell elements and closure cell elements.
573 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
574 access free cells as pairs.
576 (scm_unprotect_object): scm_hashq_get_handle returns #f if
577 no hashtab entry is found.
579 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
580 SCM_CLR_PORT_OPEN_FLAG.
582 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
583 use SCM_SET_C[AD]R for uninitialized cells.
585 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
586 If the hashtable has no slots, return #f instead of '(). This
587 unifies the return value with most assoc-functions.
589 (scm_hash_fn_ref): Use proper type check.
591 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
592 Removed references to non-existing functions from documentation.
594 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
595 access keyword cell elements.
597 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
600 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
602 * print.c (scm_iprlist): Added comment. Improved loop
605 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
608 * smob.c (scm_markcdr): Don't access smob cells as pairs.
610 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
612 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
615 * variable.c (variable_print, variable_equalp, scm_variable_ref,
616 scm_variable_set_x): Use proper macros to access variable cell
619 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
621 * variable.h (SCM_VARVCELL): Don't access variable cells as
624 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
625 added FIXME comment, removed register specifier.
627 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
629 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
630 * init.c (scm_init_guile_1): Don't init goopscore module.
632 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
634 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
636 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
638 * strop.c (scm_string_to_list): Fixed docstring markup.
639 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
640 (scm_string_downcase, scm_string_capitalize_x),
641 (scm_string_capitalize): Rewrote and corrected docstrings.
642 (scm_string_ci_to_symbol): Made docstring more explicit.
644 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
646 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
648 (scm_call_with_values): Removed.
649 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
650 so that it can be exported.
651 (scm_call_with_values): Removed.
653 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
654 * eval.c: Include "libguile/values.h"
655 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
657 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
658 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
659 New delcarations to support above change.
661 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
662 errors with last change.
664 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
666 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
667 scm_i_eval): Moved the application of the system transformer from
668 scm_i_eval to scm_primitive_eval.
670 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
672 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
674 * strop.c (scm_string_index): Fix docstring line break
677 * list.c (scm_cons_star): Fix docstring typo.
679 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
681 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
682 (big2str), ports.c (scm_drain_input), read.c (scm_read,
683 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
684 scm_make_string, scm_string_append), strports.c (st_resize_port,
685 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
686 scm_makstr with calls to scm_allocate_string.
688 * strings.[ch] (scm_allocate_string): New function.
690 * strings.[ch] (scm_makstr): Deprecated.
692 2001-03-18 Gary Houston <ghouston@arglist.com>
694 * posix.c (scm_tmpnam): check that return value from tmpnam is not
695 NULL. rewrote the docstring.
696 (scm_mkstemp): new procedure implementing "mkstemp!".
697 * posix.h: declare scm_mkstemp.
699 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
700 normally it would be found in netdb.h.
702 2001-03-17 Gary Houston <ghouston@arglist.com>
704 * sort.c (scm_sort): move sortvec variable to avoid a compiler
705 warning when HAVE_ARRAYS is not defined. move len too.
707 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
708 (EXTRA_DOT_X_FILES): let configure set the value.
709 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
711 * gc.c (scm_must_malloc): changed the comment explaining when
712 scm_must variants of malloc/free etc., should be used, based on
713 explanation from Dirk Herrmann.
714 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
715 string with procedure name. use scm_must_malloc instead of malloc.
716 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
718 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
719 scm_ungetc): use scm_must variants of malloc/realloc/free.
720 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
722 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
724 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
725 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
726 scm_wrong_type_arg instead.
728 (SCM_WNA): Deprecated.
730 * error.[ch] (scm_wta): Deprecated.
732 * numbers.c (s_i_log): Minor comment fix.
734 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
735 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
736 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
737 wrong-num-args or misc errors.
739 * unif.c (scm_make_shared_array, scm_transpose_array,
740 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
741 Validate the rest argument (note: this is only done when guile is
742 built with SCM_DEBUG_REST_ARGUMENT=1)
744 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
745 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
747 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
748 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
750 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
752 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
753 instead of scm_wrong_num_args.
755 * coop-threads.c: Don't include libguile/strings.h. (Was only
756 needed for former implementation of SCM_WRONG_NUM_ARGS.)
758 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
759 wrong-num-args errors.
761 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
763 * error.[ch] (scm_error_num_args_subr): New function.
765 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
767 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
768 (scm_length, scm_append, scm_reverse, scm_list_ref),
769 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
770 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
771 (scm_delete1_x), gc.c (scm_map_free_list),
772 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
773 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
774 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
775 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
776 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
777 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
778 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
780 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
781 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
782 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
783 symbols.c (scm_symbol_interned_p), numbers.c
784 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
787 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
789 * snarf.h (SCM_CONST_LONG): Deprecated.
790 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
792 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
794 * numbers.c (scm_num2ulong): Check that a bignum is positive
795 before looking at the magnitude. Correctly check for overflow
797 (scm_num2long_long): Likewise.
798 (scm_num2ulong_long): New.
799 (ULONG_LONG_MAX): Define if not already defined.
800 * numbers.h: (scm_num2ulong_long): New prototype.
802 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
804 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
806 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
807 (SCM_OPOUTSTRPORTP): New predicate macros.
808 (scm_open_input_string, scm_open_output_string),
809 (scm_get_output_string): New prototypes.
811 * strports.c (scm_open_input_string, scm_open_output_string),
812 (scm_get_output_string): New procedures (SRFI-6 compliant).
813 Made scm_tc16_strport non-static.
815 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
817 * macros.h (SCM_ASSYNT): Removed unused object argument from
820 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
821 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
822 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
823 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
824 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
825 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
826 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
827 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
828 scm_m_atdispatch): Removed unused object argument from call to
831 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
833 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
834 const int* to reflect that the input array of integers remains
835 unchanged. Thanks to Brett Viren for the hint.
837 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
839 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
840 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
842 (gh_scm2newstr, gh_symbol2newstr): Change call to
843 scm_must_malloc() to malloc(), because user-free()able memory is
846 * gc.c: Added declaration of `scm_debug_check_freelist'.
848 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
850 * ports.c (scm_port_mode): Changed `mode' array size to 4.
852 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
854 * strports.c (scm_object_to_string): New procedure.
855 (scm_strprint_obj): Deprecated.
856 * strports.h: Reflect the changes.
858 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
860 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
862 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
863 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
864 SCM_ASSYNT to check for correct argument types. Either use some
865 SCM_VALIDATE_* macro or an explicit test.
867 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
870 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
871 instead of calling scm_wta.
873 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
875 * load.c (scm_primitive_load, scm_primitive_load_path),
876 (scm_sys_search_load_path): Corrected docstrings (file ->
879 * eval.c (scm_force): Added texinfo markup to docstring.
880 (scm_promise_p): Renamed parameter to `obj' to match docstring.
882 * debug-malloc.c: Reinserted #include <stdio.h>.
884 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
886 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
888 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
889 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
890 Use SCM_LISTn instead of scm_listify.
892 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
894 * _scm.h: Removed #include <errno.h>.
896 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
897 errno variable (can be a macro on some systems, for example when
898 using linux libc with threads).
900 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
901 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
902 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
903 #include <errno.h> in these 20 out of 100 files.
905 2001-03-10 Gary Houston <ghouston@arglist.com>
907 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
910 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
912 * coop.c: Inserted #include <stdio.h>.
914 * iselect.c: Reinserted #include <stdio.h>.
916 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
918 * posix.c: Replaced `#define' of __USE_XOPEN right before
919 including unistd.h with a define of _GNU_SOURCE at the very top of
922 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
924 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
925 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
926 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
927 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
928 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
929 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
930 print.c, procprop.c, procs.c, properties.c, ramap.c,
931 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
932 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
933 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
934 Remove #include <stdio.h>
935 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
937 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
939 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
941 * posix.c (scm_gethostname): Set initial name length to 256 for
944 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
946 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
947 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
948 (scm_sethostname, scm_gethostname): New prototypes.
950 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
951 <sys/file.h>, if present.
952 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
953 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
954 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
955 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
956 (scm_sethostname, scm_gethostname): New procedures.
958 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
960 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
961 not optional (ii) "recommend" spelling correction.
963 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
965 * ramap.c (racp): Removed optimization which caused array copying
966 to fail if the two arrays shared storage. Re-inserted the IVDEP
967 macros removed in the change of 2000-03-09. (Don't really have a
968 complete grasp of what they are for, but they seem to be necessary
969 on Crays. This needs testing!) Thanks to Miroslav Silovic.
971 * hash.c (scm_string_hash): Don't downcase characters.
973 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
975 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
976 size from 277 --> 1009.
978 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
981 * coop-threads.c: Fixed change of 2001-03-06.
983 * validate.h: Code formatting.
985 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
987 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
988 (*.doc): Add dependency on guile-snarf.awk.in.
990 * guile-snarf.awk.in: Neglect spaces at the end of
991 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
992 middle of docstrings. (To avoid the problem with gcc-2.96.)
994 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
996 * coop-threads.c (scm_call_with_new_thread), load.c
997 (scm_primitive_load, scm_sys_search_load_path), random.c
998 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
999 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
1000 (potentially) issue a scm-misc-error or wrong-num-args error
1003 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
1004 about the expected type with the wrong-type-arg error message.
1006 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
1007 a C level bug that can't be fixed from scheme anyway.
1009 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1011 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
1012 Duplicate bindings are OK in a let* since a let* is semantically
1013 equivalent to a nested set of let:s.
1015 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1017 * print.c (scm_print_options): Fixed texinfo in docstring.
1019 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
1020 the underlying functions getservent, getprotoent or getnetent
1021 return NULL instead of signalling an error.
1023 2001-03-04 Gary Houston <ghouston@arglist.com>
1025 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
1026 taking an unexpectedly large filename for an AF_UNIX socket from
1027 bind/connect/sendto (thanks to Martin Grabmueller).
1029 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
1030 former and adjusted the latter.
1031 (scm_socket, scm_socketpair): cosmetic changes.
1032 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
1033 size_t as socklen_t substitute. don't restrict args/return values
1034 to INUM: allow full range of int or size_t.
1035 (scm_fill_sockaddr): check arguments before allocating memory, to
1036 avoid leakage. use malloc, not scm_must_malloc.
1037 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
1038 substitute. free the sockaddr structure before throwing an error.
1039 (scm_init_add_buffer): procedure removed, together with its static
1040 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
1041 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
1042 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
1043 scm_sendto): use a local buffer instead of scm_addr_buffer.
1044 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
1046 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
1047 call to detect whether recvfrom could be bothered to set the address.
1048 (scm_init_socket): don't call scm_init_addr_buffer.
1050 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1052 * debug.c (scm_procedure_source, scm_procedure_environment),
1053 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
1054 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
1055 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
1056 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
1057 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
1058 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
1059 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
1060 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
1061 scm_array_to_list, scm_array_prototype), validate.h
1062 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
1063 scm_misc_error or scm_wrong_type_arg instead.
1065 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
1067 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1069 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
1070 (scm_sys_tag_body): Added.
1072 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1074 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
1075 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
1076 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
1077 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
1078 options.c (scm_options), ports.c (scm_remove_from_port_table),
1079 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
1080 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
1081 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
1082 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
1085 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1087 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
1089 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
1091 * eval.c (scm_s_duplicate_bindings): New error message.
1092 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
1094 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
1096 * eval.h (SCM_EVALIM2): New macro. Use it when a
1097 immediate, literal constant should be evaluated.
1098 * eval.c (scm_s_duplicate_formals): New error message string.
1099 (scm_c_improper_memq): New function.
1100 (scm_m_lambda): Check for duplicate arguments.
1101 (scm_ceval, scm_deval): When executing a body: only cons a new
1102 toplevel environment frame when it is different from the
1103 existing one; use EVALCAR instead of SIDEVAL so that we can properly
1104 check for empty combinations; use SCM_EVALIM2 for the same reason
1105 in the non-toplevel loop.
1106 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
1107 New labels with the meaning of their non-"nontoplevel" partners,
1108 but they are used when it is known that the body is not evaluated at
1110 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
1111 reporting for empty combinations.
1113 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
1115 * Remove dump facilities.
1116 * dump.c, dump.h: Removed.
1117 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
1118 * init.c: Remove #include "libguile/dump.h".
1119 (scm_init_guile_1): Remove scm_init_dump.
1120 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
1121 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
1122 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
1123 (scm_set_smob_dump, scm_set_smob_undump): Removed.
1125 * keywords.c: Remove #include "libguile/dump.h".
1126 (keyword_dump, keyword_undump): Removed.
1127 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
1129 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1131 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
1132 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
1133 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
1134 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
1135 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
1136 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
1137 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
1138 to @code{} as the texinfo manual recommends, converted the
1139 examples to use a @lisp{}-environment.
1141 * strports.c (scm_eval_string): Cleaned up the docstring.
1143 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
1146 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
1147 (scm_number_to_string, scm_string_to_number, scm_number_p)
1148 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
1149 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
1150 (scm_ash): Added texinfo markup and removed obsolete @refill.
1151 (scm_gr_p): Corrected comment.
1152 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
1153 docstring) comments.
1154 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
1155 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
1156 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
1157 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
1158 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
1159 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
1160 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
1161 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
1163 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1165 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
1166 (Obviously nobody compiles with SCM_RECKLESS defined...)
1168 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
1170 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1172 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
1174 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
1176 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
1178 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
1179 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
1180 since use of `z' suggests that the arguments may be complex.
1182 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
1185 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
1187 * dump.c (scm_binary_write, scm_binary_read), eval.c
1188 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
1189 scm_guardian_greedy_p, scm_make_guardian), fports.c
1190 (scm_file_port_p): Minor docstring fixes.
1192 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
1194 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
1196 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
1198 (make_class_from_template): Do not bother to set the current
1199 module around the call to DEFVAR, scm_eval takes care of that.
1200 (scm_init_goops): Make scm_module_goops and
1201 scm_goops_lookup_closure permanent objects.
1203 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
1204 top level, create a fresh top-level environment for each
1205 expression instead of mutating the exisint frame. This is
1206 important when that frame is closed over.
1208 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
1209 SCM_DIGSPERLONG instead of DIGSPERLONG.
1211 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
1213 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
1214 before applying arrow procedure in `cond' and before applying
1215 receiver procedure in call-with-current-continuation.
1216 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
1217 macro. The argument is expanded more than one time.
1219 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
1220 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
1222 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
1224 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
1227 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1229 * variable.c (scm_make_variable, scm_make_undefined_variable)
1230 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
1231 (scm_variable_bound_p), values.c (scm_values)
1232 (scm_call_with_values), unif.c (scm_bit_count)
1233 (scm_bit_set_star_x), symbols.c (scm_gentemp)
1234 (scm_gensym), strings.c (scm_string_p, scm_make_string)
1235 (scm_read_only_string_p, scm_string_length, scm_string_ref)
1236 (scm_string_set_x, scm_substring, scm_string_append), stime.c
1237 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
1238 (scm_copy_random_state, scm_random), print.c (scm_newline)
1239 (scm_write_char, scm_simple_format), debug-malloc.c
1240 (scm_malloc_stats), environments.c (scm_environment_p)
1241 (scm_environment_bound_p, scm_environment_ref)
1242 (scm_environment_fold, scm_environment_define)
1243 (scm_environment_undefine, scm_environment_set_x)
1244 (scm_environment_cell, scm_environment_observe)
1245 (scm_environment_observe_weak, scm_environment_unobserve)
1246 (scm_make_eval_environment, scm_eval_environment_p)
1247 (scm_eval_environment_set_local_x, scm_eval_environment_local)
1248 (scm_eval_environment_imported)
1249 (scm_eval_environment_set_imported_x, scm_make_import_environment)
1250 (scm_import_environment_p, scm_import_environment_imports)
1251 (scm_import_environment_set_imports_x, scm_make_export_environment)
1252 (scm_export_environment_p, scm_export_environment_private)
1253 (scm_export_environment_set_private_x)
1254 (scm_export_environment_signature)
1255 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
1256 Added texinfo markup.
1258 * ports.c (scm_drain_input): Lowercased argument to @var.
1259 (scm_current_input_port, scm_current_output_port): Filled in
1260 missing explanation.
1261 (scm_current_load_port, scm_set_current_output_port)
1262 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
1263 Added texinfo markup.
1265 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
1266 (scm_release_arbiter): Added texinfo markup to docstrings.
1267 Changed `Returns' to `Return'.
1268 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
1270 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
1272 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
1273 by doubling them to `@@'.
1275 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1277 * numbers.c (scm_lognot), random.c (scm_random,
1278 scm_random_normal, scm_random_solid_sphere_x,
1279 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
1280 scm_random_exp), dynwind.c
1281 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
1283 * goops.c (scm_sys_initialize_object, scm_instance_p,
1284 scm_class_name, scm_class_precedence_list, scm_class_slots,
1285 scm_class_environment, scm_generic_function_name,
1286 scm_generic_function_methods, scm_method_generic_function,
1287 scm_method_specializers, scm_method_procedure, scm_make_unbound,
1288 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
1289 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
1290 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
1291 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
1292 scm_class_direct_supers, scm_class_direct_slots,
1293 scm_class_direct_subclasses, scm_class_direct_methods,
1294 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
1295 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
1296 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
1297 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
1298 scm_memoized_environment, scm_procedure_name,
1299 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
1301 (scm_class_of, scm_entity_p, scm_operator_p,
1302 scm_set_object_procedure_x, scm_object_procedure,
1303 scm_make_class_object), hooks.c (scm_make_hook_with_name,
1304 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
1305 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
1306 scm_hook_to_list), lang.c
1307 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
1308 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
1309 (scm_print_options, scm_port_with_print_state,
1310 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
1311 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
1312 scm_make_procedure_with_setter, scm_procedure), throw.c
1313 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
1314 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
1315 scm_stack_ref, scm_stack_length, scm_frame_p,
1316 scm_last_stack_frame, scm_frame_number, scm_frame_source,
1317 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
1318 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
1319 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
1320 (scm_dirname, scm_basename), dynwind.c
1321 (scm_wind_chain), read.c (scm_read_options, scm_read,
1322 scm_read_hash_extend), gc.c
1323 (scm_unhash_name), eval.c (scm_eval_options_interface,
1324 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
1325 (scm_display_error, scm_set_print_params_x,
1326 scm_display_application, scm_display_backtrace, scm_backtrace),
1327 async.c (scm_async, scm_system_async, scm_async_mark,
1328 scm_system_async_mark, scm_run_asyncs, scm_noop,
1329 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
1330 scm_mask_signals): Added docstrings.
1332 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
1334 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
1335 address of car/cdr. (Thanks to Dirk Herrmann)
1336 Use scm_sizet to obtain the length of strings.
1337 (Thanks to Matthias Koeppe)
1339 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
1341 * symbols.c (scm_mem2symbol): Put a empty statement after the
1342 next_symbol label. This is mandated by ANSI, appearantly.
1344 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1346 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
1347 sense to compile for a specific kernel version. Do not include
1348 <asm/signal.h> while defining __KERNEL__. This hack should no
1349 longer be needed and caused problems.
1351 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
1353 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
1354 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
1355 can not deal with immediates.
1357 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
1359 * list.c (scm_list_copy): Validate the first argument.
1361 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
1363 Fix evaluator so that top-level expressions are correctly
1364 evaluated with respect to the module system.
1366 * modules.h. modules.c (scm_current_module_lookup_closure): New
1369 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
1371 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
1372 names to better reflect their meaning.
1374 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
1375 evaluated at top-level and synronize lookup closure before
1376 executing every subform.
1377 (scm_primitve_eval_x, scm_primitive_eval): New functions.
1378 (scm_eval_x, scm_eval): Reimplement in terms of
1379 scm_primitive_eval_x and scm_primitive_eval, respectively.
1381 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
1383 * macros.c (scm_macro_name, scm_macro_transformer): Use
1384 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
1387 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
1389 * dump.c (scm_store_bytes): Store data size before data.
1390 (scm_restore_bytes): Restore data size. Takes a pointer to size.
1391 * dump.h (scm_restore_bytes): Updated.
1393 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
1395 * dump.c: Use double cells for update schedule.
1397 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
1399 * ports.c (scm_unread_char): Take an optional argument.
1401 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1403 * modules.h (scm_selected_module, scm_current_module): Renamed
1404 scm_selected_module to scm_current_module to synchronize Scheme
1406 (scm_select_module, scm_set_current_module): Likewise. Changed
1409 * ports.c (scm_port_for_each): Make a snapshot of the port table
1410 before iterating over it. The table might change while the user
1411 code is running. With the snapshot, the user can depend on the
1412 fact that each port that existed at the start of the iteration is
1413 encountered exactly once. (ice-9 popen) depends on this.
1415 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1417 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
1419 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
1420 range checking for the size parameter. Thanks to Martin
1421 Grabmueller for the hint.
1423 (scm_makstr): Reordered string initialization to make interrupt
1424 deferring unnecessary.
1426 * vectors.c (scm_make_vector): Fixed range checking.
1428 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1430 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
1432 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
1433 checking of the size parameter for type correctness and valid
1434 range. Thanks to Rob Browning for reporting the problem. Instead
1435 of deferring interrupts, scm_remember_upto_here_1 is used.
1437 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1439 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
1440 (scm_dump_cell_update): Removed.
1441 (scm_dump_update): Renamed from scm_dump_object_update.
1442 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
1443 a pointer instead of returning a value.
1444 * keywords.c (keyword_undump): Updated.
1446 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1448 * dump.c, dump.h: Modified a lot.
1449 (SCM_DUMP_COOKIE): Version 0.1
1450 (scm_dump_mark): Removed.
1451 (scm_restore_cell_object, scm_store_cell_object): New functions.
1453 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
1454 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
1455 New slots: dump, undump.
1456 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
1459 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
1460 (keyword_undump): Renamed from keyword_alloc.
1461 (scm_init_keywords): Set keyword_dump and keyword_undump.
1463 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
1465 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
1466 the deprecated SCM_DOUBLE_CELLP.
1468 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1470 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1472 * dump.c, dump.h: New files.
1473 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
1474 * init.c: #include "libguile/dump.h".
1475 (scm_init_guile_1): Call scm_init_dump.
1476 * smob.h (scm_smob_descriptor): New slots: dump_mark,
1477 dump_dealloc, dump_store, undump_alloc, undump_restore,
1479 * smob.c (scm_make_smob_type): Init the new slots.
1480 (scm_set_smob_dump, scm_set_smob_undump): New functions.
1481 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
1483 * keywords.c: #include "libguile/dump.h".
1484 (keyword_dealloc, keyword_alloc): New functions.
1485 (scm_init_keywords): Set smob_dump and smob_undump.
1487 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1489 * vectors.c (scm_c_make_vector): New function.
1490 * vectors.h (scm_c_make_vector): Declared.
1491 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
1492 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
1493 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
1494 (scm_make_method_cache, scm_i_vector2list,
1495 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
1496 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
1497 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
1498 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
1499 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
1500 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
1501 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
1502 (scm_vector, scm_make_vector): Use scm_c_make_vector.
1504 * hashtab.c (scm_c_make_hash_table): New function.
1505 * hashtab.h (scm_c_make_hash_table): Declared.
1506 * environments.c (scm_make_leaf_environment,
1507 scm_make_eval_environment), gc.c (scm_init_storage),
1508 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
1509 Use scm_c_make_hash_table.
1511 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1513 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1515 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1517 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1520 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
1521 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
1522 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
1523 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1524 srcprop.c (scm_source_properties, scm_set_source_properties_x,
1525 scm_source_property, scm_set_source_property_x), sort.c
1526 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
1527 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
1528 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
1531 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1533 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1534 really get that arg.
1536 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1538 * goops.c (s_scm_get_keyword): Bug fix.
1540 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1542 The following patch was sent by Martin Grabmueller. It makes sure
1543 that in case of parameter errors the correct function name is
1544 shown, and that parameter types are only checked once.
1546 * strop.c (string_copy, string_upcase_x, string_downcase_x,
1547 string_capitalize_x): New functions. Each one performs the core
1548 functionality of the corresponding scm_* function.
1550 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
1551 scm_string_downcase_x, scm_string_downcase,
1552 scm_string_capitalize_x, scm_string_capitalize): Reduced to
1553 parameter checking wrappers of the above functions.
1555 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1557 * continuations.c, dynl.c, keywords.c, load.c: Include
1558 strings.h. Thanks to Bill Schottstaedt for the bug report.
1560 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1562 * backtrace.c (display_header): Make sure that line and column
1563 information is shown independent of whether the port the code was
1564 read from had an associated filename. Thanks to Martin
1565 Grabmueller for providing this patch.
1567 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1569 * fports.[ch] (scm_file_port_p): New primitive.
1571 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1573 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
1574 These are now defined in fports.c, strports.c and vports.c.
1576 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1577 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1580 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
1581 (scm_make_sfptob): Made static. These return a type code now.
1583 fports.c (scm_init_fports), strports.c (scm_init_strports),
1584 vports.c (scm_init_vports): Create the corresponding port types.
1586 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1587 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1589 * init.c (scm_init_guile_1): Make sure strports are initialized
1592 * ports.[ch] (scm_make_port_type): Changed the return type to
1595 * ports.c (scm_ports_prehistory): Don't create any port types
1598 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1599 against scm_tc16_fport directly.
1601 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1603 * srcprop.c (scm_set_source_property_x): Fix to handle
1604 (set-source-property! <obj> 'copy <datum>) correctly.
1606 2001-01-24 Gary Houston <ghouston@arglist.com>
1608 * filesys.c (scm_link): docstring fix.
1609 * fports.h (scm_setfileno): obsolete declaration removed.
1610 * posix.c: bogus popen declaration removed.
1612 * rdelim.c: new file, split from ioext.c.
1613 * rdelim.h: new file, split from ioext.h
1614 * Makefile.am: add rdelim.c and related files.
1615 * init.c: call scm_init_rdelim. include rdelim.h.
1617 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1619 This patch was sent by Martin Grabmueller and makes sure that
1620 parameter errors are reported correctly by the lexicographic
1621 ordering predicates.
1623 * strorder.c (string_less_p, string_ci_less_p): New functions.
1625 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
1626 functionality into string_less_p, string_ci_less_p respectively.
1627 The remaining code is just a wrapper to do the parameter
1630 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
1631 parameters and call string_less_p instead of scm_string_less_p.
1633 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
1634 Check the parameters and call string_less_ci_p instead of
1635 scm_string_ci_less_p.
1637 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1639 This patch modifies scm_display_error to perform parameter
1640 checking. Thanks to Neil Jerram for the bug report.
1642 * backtrace.[ch] (scm_i_display_error): New function.
1644 * backtrace.c (scm_display_error): Added parameter check and
1645 extracted the core functionality into function
1646 scm_i_display_error.
1648 * throw.c (handler_message): Call scm_i_display_error to display
1651 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1653 * eval.c (SCM_APPLY): Added # args check for application of
1654 procedures with arity 3. (Thanks to Anders Holst.)
1656 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1658 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
1660 (SCM_OPDIRP): Deprecated.
1662 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
1665 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
1666 Instead, give an explicit error message in case the directory is
1669 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
1670 instead of SCM_OPENP and SCM_CLOSEDP.
1672 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
1674 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1676 * eval.c (inner_eval, scm_eval): Move all real functionality into
1677 inner_eval. Avoid to copy the expression twice by inlining some
1678 code from scm_i_eval.
1680 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1682 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
1683 now has to be the last clause, as required by R5RS. Thanks to
1684 Martin Grabmueller for the patch.
1686 2001-01-18 Gary Houston <ghouston@arglist.com>
1688 * ioext.c: further simplify scm_read_string_x_partial by defining
1691 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1693 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
1695 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1697 * __scm.h: Added comment about architecture and compiler
1698 properties that are required by guile.
1700 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1701 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
1703 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
1705 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
1707 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1708 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
1710 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1712 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
1713 to the names in limits.h.
1715 * numbers.c (abs_most_negative_fixnum): Added.
1717 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
1718 fixnum-min) special case.
1720 (scm_big_and): Fix for negative first parameter.
1722 (scm_bit_extract): Fix for fixnum paramters.
1723 Thanks to Rob Browning for the bug report.
1725 (scm_init_numbers): Initialize abs_most_negative_fixnum.
1727 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1729 * symbols.c (scm_symbol_bound_p): Fixed comment.
1730 Thanks to Chris Cramer.
1732 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1734 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
1735 Thanks to Bill Schottstaedt.
1737 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
1739 from Matthias Köppe:
1741 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
1742 casts its result, so doesn't yield an lvalue per ANSI C.
1744 * goops.c (s_scm_sys_set_object_setter_x): use
1745 SCM_SET_ENTITY_SETTER.
1746 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
1748 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
1749 its result, so doesn't yield an lvalue per ANSI C.
1750 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
1751 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
1752 SCM_GC_SET_CARD_FLAGS.
1753 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
1755 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
1757 2001-01-08 Gary Houston <ghouston@arglist.com>
1759 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
1760 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
1761 socket.c (scm_recvfrom): use the new macro, plus minor docstring
1763 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
1764 for fdes. if current input port is used, check that it's a file
1767 2001-01-06 Gary Houston <ghouston@arglist.com>
1769 * ioext.c (scm_read_string_x_partial): new procedure, implements
1770 read-string!/partial.
1771 * ports.c (scm_take_from_input_buffers): new procedure used by
1772 scm_read_string_x_partial.
1773 (scm_drain_input): use scm_take_from_input_buffers.
1775 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
1777 * validate.h (SCM_VALIDATE_NUMBER): New.
1779 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
1781 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
1782 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
1783 SET_DESTROYED): new defines/macros.
1784 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
1785 (add_to_live_list): takes a `guardian_t *' now, not SCM.
1786 (guardian_print): print more info.
1787 (guardian_apply): check if the guardian is destroyed, and throw an
1788 error if so. take one more optional argument `throw_p'.
1789 (scm_guard): depending on the value of `throw_p', return a boolean
1791 (scm_get_one_zombie): remove redundant property test.
1792 (guardian_t): represent the various (currently 3, I hope nothing
1793 more gets added) boolean fields as bit flags.
1794 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
1795 (scm_destroy_guardian_x): new procedure.
1797 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
1798 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
1800 2001-01-01 Gary Houston <ghouston@arglist.com>
1802 * fports.c (fport_write): bugfix: handle short writes for
1803 unbuffered ports too. optimize the buffered case by minimizing
1804 the number of write/flush calls.
1805 (write_all): new helper procedure.
1807 The ChangeLog continues in the file: "ChangeLog-2000"