* rw.c: new file, implementing C part of module (ice-9 rw).
[bpt/guile.git] / libguile / ChangeLog
1 2001-04-29 Gary Houston <ghouston@arglist.com>
2
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.
6 * rw.h: new file.
7 init.c: include rw.h and call scm_init_rw.
8 Makefile.am: include rw.c and rw.h.
9
10 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
11
12 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
13 know what's supposed to happen to it.
14
15 * list.h (scm_list_star): deprecation expired - removed.
16
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.
29
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.
35
36 * tag.h (scm_tag): deprecation expired - removed.
37
38 * tag.c: (scm_tag): deprecation expired - removed.
39
40 * ioext.c: (scm_fseek): deprecation expired - removed.
41
42 * ioext.h (scm_fseek): deprecation expired - removed.
43
44 * gh_data.c (gh_int2scmb): deprecation expired - removed.
45
46 * gh.h (gh_int2scmb): deprecation expired - removed.
47
48 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
49
50 * stacks.c (scm_make_stack): Fix typo in docstring.
51
52 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
53
54 * error.c (scm_sysmissing): deprecation expired - removed.
55
56 * error.h (scm_sysmissing): deprecation expired - removed.
57
58 * gc.c
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.
62
63 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
64
65 * strings.h
66 (SCM_NSTRINGP): deprecation expired - removed.
67 (SCM_NRWSTRINGP): deprecation expired - removed.
68
69 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
70
71 * chars.h
72 (SCM_ICHRP): deprecation expired - removed.
73 (SCM_ICHR): deprecation expired - removed.
74 (SCM_MAKICHR): deprecation expired - removed.
75
76 * ports.h
77 (SCM_INPORTP): deprecation expired - removed.
78 (SCM_OUTPORTP): deprecation expired - removed.
79
80 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
81
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
85 now a C only fluid.
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.
93
94 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
95 scm_current_module_transformer, scm_module_transformer): New.
96
97 * gh_data.c: Removed FIXME comment about gh_lookup returning
98 SCM_UNDEFINED. That's the right thing to do.
99
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.
106
107 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
108
109 * throw.c (scm_throw): Correct docstring.
110
111 2001-04-22 Gary Houston <ghouston@arglist.com>
112
113 * socket.c: attempted to improve the docstrings slightly.
114
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.):
118 moved to socket.c.
119 * net_db.h: declarations moved too.
120
121 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
122 long.
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.
129
130 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
131
132 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
133 smob number explicitly. Use SCM_TC2SMOBNUM instead.
134
135 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
136 when compiled in debug mode.
137
138 (scm_gc_sweep): Only call smob's free function if it is defined.
139
140 * print.c (scm_iprin1): No need to check for validity of smob
141 type or existence of print function.
142
143 * smob.[ch] (scm_smobs): Made into a fixed size global array.
144 Resizing will not work well with preemptive threading.
145
146 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
147
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.
151
152 (scm_smob_prehistory): Initialize all smob descriptors. By
153 default, don't assign a smob free function: Most smob types don't
154 need one.
155
156 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
157
158 2001-04-21 Gary Houston <ghouston@arglist.com>
159
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.
164
165 2001-04-20 Gary Houston <ghouston@arglist.com>
166
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
169 is defined.
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.
173
174 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
175
176 * struct.c (scm_free_structs): Only pairs may be accessed with
177 SCM_C[AD]R.
178
179 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
180
181 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
182
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.
186
187 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
188
189 * unif.c (scm_array_to_list): Added missing handling of arrays of
190 bytes. Thanks to Masao Uebayashi for the bug report.
191
192 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
193
194 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
195 consistently.
196
197 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
199 * procs.h (SCM_CLOSURE_FORMALS): New macro.
200
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
204 SCM_CLOSURE_FORMALS.
205
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.
209
210 * macros.c (macro_print): Extracted macro printing code from
211 print.c and simplified it.
212
213 (scm_macro_type): Use SCM_MACRO_TYPE;
214
215 (scm_init_macros): Use macro_print for printing macros.
216
217 * print.c (scm_print_opts): Improved option documentation.
218
219 (scm_iprin1): Extracted printing of macros to macros.c.
220 Simplified printing of ordinary closures.
221
222 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
223 Martin Grabmueller for the bug report.
224
225 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
226
227 This patch eliminates some further applications of SCM_C[AD]R to
228 non pair cells.
229
230 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
231 never been applied to real pairs.
232
233 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
234
235 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
236
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.
240
241 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
242 Added.
243
244 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
245 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
246
247 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
248 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
249 SCM_SET{AND,OR}_CAR.
250
251 2001-04-17 Gary Houston <ghouston@arglist.com>
252
253 * some initial support for IPv6:
254
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.
261
262 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
263
264 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
265 matches SCM_DEFER_INTS at the beginning of the function.
266
267 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
268
269 * gc.c (scm_igc): Unconditionally call
270 SCM_CRITICAL_SECTION_START/END.
271
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.
275
276 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
277 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
278 Removed.
279
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):
283 Removed.
284 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
285 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
286 LINE.
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).
298
299 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
300
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
304 during make.
305
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.
311
312 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
313
314 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
315 instead of bzero.
316
317 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
318 (MISSING_BZERO_DECL): Remove the declaration.
319
320 Thanks to NIIBE Yutaka.
321
322 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
323
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.)
327
328 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
329
330 * numbers.[ch] (scm_num2long, scm_num2long_long,
331 scm_num2ulong_long, scm_num2ulong): Argument position is an
332 unsigned integer.
333
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.
338
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.
343
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.
350
351 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
352
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".
357
358 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
359
360 * hooks.c (scm_make_hook, scm_make_hook_with_name),
361 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
362 improvements.
363
364 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
365
366 The following changes make the documentation more consistent.
367
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
372 ... @end lisp.
373
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.
385
386 * weaks.c (scm_weak_vector): Corrected docstring.
387
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.
410
411 * numbers.c (scm_ash): Corrected Texinfo markup.
412
413 * strop.c (scm_string_index, scm_string_rindex),
414 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
415
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'
454
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.
458
459 * error.c (scm_strerror): Made docstring more precise.
460
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.
469
470 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
471
472 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
473 mode, as suggested by Michael Livshin.
474
475 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
476
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.
481
482 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
483
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.
489
490 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
491
492 (scm_assert_cell_valid): Use a local static variable to avoid
493 recursion.
494
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.
500
501 (scm_cellp): Check if the cell pointer actually points into a
502 card header.
503
504 (scm_init_gc): Initalize scm_tc16_allocated.
505
506 * gc.h (GCH): Renamed to SCM_GC_H.
507
508 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
509 might be unnecessary, but I feel better this way :-)
510
511 (SCM_GC_CELL_TYPE): New macro.
512
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
515 pairs anyway.
516
517 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
518
519 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
520 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
521
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.
525
526 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
527
528 * async.c (scm_asyncs_pending): Don't use != to compare SCM
529 values.
530
531 * async.c (scm_system_async), variable.c (scm_make_variable,
532 scm_make_undefined_variable): Use scm_cons to create a pair.
533
534 * debug.c (scm_reverse_lookup): Perform proper type checking.
535 Remove suspicious use of SCM_SLOPPY_CONSP.
536
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.
540
541 * eval.c (iqq): Use proper type check.
542
543 (scm_m_expand_body): Remove redundant type checks.
544
545 (promise_print): Don't access promise cells as pairs.
546
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
552
553 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
554 (scm_iprin1): Use new macro predicate and accessors.
555
556 * eval.h (scm_tc16_macro): Removed declaration. It is declared
557 in macros.h.
558
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.
564
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.
569
570 * gc.c (MARK): Use proper macros to access procedure-with-setter
571 cell elements and closure cell elements.
572
573 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
574 access free cells as pairs.
575
576 (scm_unprotect_object): scm_hashq_get_handle returns #f if
577 no hashtab entry is found.
578
579 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
580 SCM_CLR_PORT_OPEN_FLAG.
581
582 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
583 use SCM_SET_C[AD]R for uninitialized cells.
584
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.
588
589 (scm_hash_fn_ref): Use proper type check.
590
591 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
592 Removed references to non-existing functions from documentation.
593
594 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
595 access keyword cell elements.
596
597 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
598 macros.
599
600 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
601
602 * print.c (scm_iprlist): Added comment. Improved loop
603 conditions.
604
605 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
606 pairs.
607
608 * smob.c (scm_markcdr): Don't access smob cells as pairs.
609
610 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
611
612 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
613 cells as pairs.
614
615 * variable.c (variable_print, variable_equalp, scm_variable_ref,
616 scm_variable_set_x): Use proper macros to access variable cell
617 elements.
618
619 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
620
621 * variable.h (SCM_VARVCELL): Don't access variable cells as
622 pairs.
623
624 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
625 added FIXME comment, removed register specifier.
626
627 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
628
629 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
630 * init.c (scm_init_guile_1): Don't init goopscore module.
631
632 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
633
634 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
635
636 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
637
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.
643
644 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
645
646 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
647 eval.c can use it.
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.
652
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):
656 New.
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.
660
661 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
662 errors with last change.
663
664 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
665
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.
669
670 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
671
672 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
673
674 * strop.c (scm_string_index): Fix docstring line break
675 regression.
676
677 * list.c (scm_cons_star): Fix docstring typo.
678
679 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
680
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.
687
688 * strings.[ch] (scm_allocate_string): New function.
689
690 * strings.[ch] (scm_makstr): Deprecated.
691
692 2001-03-18 Gary Houston <ghouston@arglist.com>
693
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.
698
699 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
700 normally it would be found in netdb.h.
701
702 2001-03-17 Gary Houston <ghouston@arglist.com>
703
704 * sort.c (scm_sort): move sortvec variable to avoid a compiler
705 warning when HAVE_ARRAYS is not defined. move len too.
706
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.
710
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
717 of malloc/free.
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.
721
722 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
723
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.
727
728 (SCM_WNA): Deprecated.
729
730 * error.[ch] (scm_wta): Deprecated.
731
732 * numbers.c (s_i_log): Minor comment fix.
733
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.
738
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)
743
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.
746
747 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
748 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
749
750 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
751
752 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
753 instead of scm_wrong_num_args.
754
755 * coop-threads.c: Don't include libguile/strings.h. (Was only
756 needed for former implementation of SCM_WRONG_NUM_ARGS.)
757
758 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
759 wrong-num-args errors.
760
761 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
762
763 * error.[ch] (scm_error_num_args_subr): New function.
764
765 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
766
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.
779
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
785 markup.
786
787 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
788
789 * snarf.h (SCM_CONST_LONG): Deprecated.
790 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
791
792 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
793
794 * numbers.c (scm_num2ulong): Check that a bignum is positive
795 before looking at the magnitude. Correctly check for overflow
796 during conversion.
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.
801
802 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
803
804 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
805
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.
810
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.
814
815 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
816
817 * macros.h (SCM_ASSYNT): Removed unused object argument from
818 signature.
819
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
829 SCM_ASSYNT.
830
831 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
832
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.
836
837 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
838
839 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
840 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
841 in various places.
842 (gh_scm2newstr, gh_symbol2newstr): Change call to
843 scm_must_malloc() to malloc(), because user-free()able memory is
844 allocated.
845
846 * gc.c: Added declaration of `scm_debug_check_freelist'.
847
848 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
849
850 * ports.c (scm_port_mode): Changed `mode' array size to 4.
851
852 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
853
854 * strports.c (scm_object_to_string): New procedure.
855 (scm_strprint_obj): Deprecated.
856 * strports.h: Reflect the changes.
857
858 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
859
860 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
861
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.
866
867 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
868 misc-errors.
869
870 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
871 instead of calling scm_wta.
872
873 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
874
875 * load.c (scm_primitive_load, scm_primitive_load_path),
876 (scm_sys_search_load_path): Corrected docstrings (file ->
877 filename).
878
879 * eval.c (scm_force): Added texinfo markup to docstring.
880 (scm_promise_p): Renamed parameter to `obj' to match docstring.
881
882 * debug-malloc.c: Reinserted #include <stdio.h>.
883
884 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
885
886 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
887
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.
891
892 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
893
894 * _scm.h: Removed #include <errno.h>.
895
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).
899
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.
904
905 2001-03-10 Gary Houston <ghouston@arglist.com>
906
907 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
908 not already defined.
909
910 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
911
912 * coop.c: Inserted #include <stdio.h>.
913
914 * iselect.c: Reinserted #include <stdio.h>.
915
916 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
917
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
920 the file.
921
922 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
923
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>.
936
937 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
938
939 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
940
941 * posix.c (scm_gethostname): Set initial name length to 256 for
942 Solaris.
943
944 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
945
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.
949
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.
957
958 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
959
960 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
961 not optional (ii) "recommend" spelling correction.
962
963 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
964
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.
970
971 * hash.c (scm_string_hash): Don't downcase characters.
972
973 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
974
975 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
976 size from 277 --> 1009.
977
978 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
979 function.
980
981 * coop-threads.c: Fixed change of 2001-03-06.
982
983 * validate.h: Code formatting.
984
985 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
986
987 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
988 (*.doc): Add dependency on guile-snarf.awk.in.
989
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.)
993
994 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
995
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
1001 message.
1002
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.
1005
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.
1008
1009 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1010
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.
1014
1015 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1016
1017 * print.c (scm_print_options): Fixed texinfo in docstring.
1018
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.
1022
1023 2001-03-04 Gary Houston <ghouston@arglist.com>
1024
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).
1028
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,
1045 not size_t.
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.
1049
1050 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1051
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.
1064
1065 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
1066
1067 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1068
1069 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
1070 (scm_sys_tag_body): Added.
1071
1072 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
1073
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
1083 instead.
1084
1085 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1086
1087 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
1088
1089 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
1090
1091 * eval.c (scm_s_duplicate_bindings): New error message.
1092 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
1093
1094 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
1095
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
1109 top-level.
1110 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
1111 reporting for empty combinations.
1112
1113 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
1114
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.
1124
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.
1128
1129 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1130
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.
1140
1141 * strports.c (scm_eval_string): Cleaned up the docstring.
1142
1143 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
1144 markup.
1145
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.
1162
1163 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1164
1165 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
1166 (Obviously nobody compiles with SCM_RECKLESS defined...)
1167
1168 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
1169
1170 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1171
1172 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
1173
1174 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
1175
1176 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
1177
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.
1181
1182 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
1183 typos.
1184
1185 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
1186
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.
1191
1192 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
1193
1194 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
1195
1196 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
1197 scm_i_eval.
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.
1202
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.
1207
1208 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
1209 SCM_DIGSPERLONG instead of DIGSPERLONG.
1210
1211 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
1212
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.
1218
1219 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
1220 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
1221
1222 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
1223
1224 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
1225 notice and license.
1226
1227 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1228
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.
1257
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.
1264
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.
1269
1270 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
1271
1272 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
1273 by doubling them to `@@'.
1274
1275 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1276
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.
1282
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),
1300 objects.c
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.
1331
1332 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
1333
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)
1338
1339 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
1340
1341 * symbols.c (scm_mem2symbol): Put a empty statement after the
1342 next_symbol label. This is mandated by ANSI, appearantly.
1343
1344 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1345
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.
1350
1351 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
1352
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.
1356
1357 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
1358
1359 * list.c (scm_list_copy): Validate the first argument.
1360
1361 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
1362
1363 Fix evaluator so that top-level expressions are correctly
1364 evaluated with respect to the module system.
1365
1366 * modules.h. modules.c (scm_current_module_lookup_closure): New
1367 function.
1368
1369 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
1370 prototypes.
1371 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
1372 names to better reflect their meaning.
1373
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.
1380
1381 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
1382
1383 * macros.c (scm_macro_name, scm_macro_transformer): Use
1384 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
1385 Thanks!
1386
1387 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
1388
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.
1392
1393 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
1394
1395 * dump.c: Use double cells for update schedule.
1396
1397 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
1398
1399 * ports.c (scm_unread_char): Take an optional argument.
1400
1401 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
1402
1403 * modules.h (scm_selected_module, scm_current_module): Renamed
1404 scm_selected_module to scm_current_module to synchronize Scheme
1405 and C names.
1406 (scm_select_module, scm_set_current_module): Likewise. Changed
1407 all uses.
1408
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.
1414
1415 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1416
1417 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
1418
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.
1422
1423 (scm_makstr): Reordered string initialization to make interrupt
1424 deferring unnecessary.
1425
1426 * vectors.c (scm_make_vector): Fixed range checking.
1427
1428 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1429
1430 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
1431
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.
1436
1437 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1438
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.
1445
1446 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
1447
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.
1452
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):
1457 Updated.
1458
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.
1462
1463 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
1464
1465 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
1466 the deprecated SCM_DOUBLE_CELLP.
1467
1468 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1469
1470 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1471
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,
1478 undump_init.
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.
1482
1483 * keywords.c: #include "libguile/dump.h".
1484 (keyword_dealloc, keyword_alloc): New functions.
1485 (scm_init_keywords): Set smob_dump and smob_undump.
1486
1487 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1488
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.
1503
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.
1510
1511 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1512
1513 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1514
1515 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1516
1517 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1518 end of docstring.
1519
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
1529 docstrings.
1530
1531 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1532
1533 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1534 really get that arg.
1535
1536 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1537
1538 * goops.c (s_scm_get_keyword): Bug fix.
1539
1540 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1541
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.
1545
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.
1549
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.
1554
1555 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1556
1557 * continuations.c, dynl.c, keywords.c, load.c: Include
1558 strings.h. Thanks to Bill Schottstaedt for the bug report.
1559
1560 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1561
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.
1566
1567 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1568
1569 * fports.[ch] (scm_file_port_p): New primitive.
1570
1571 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1572
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.
1575
1576 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1577 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1578 tags.h).
1579
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.
1582
1583 fports.c (scm_init_fports), strports.c (scm_init_strports),
1584 vports.c (scm_init_vports): Create the corresponding port types.
1585
1586 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1587 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1588
1589 * init.c (scm_init_guile_1): Make sure strports are initialized
1590 before gdbint.
1591
1592 * ports.[ch] (scm_make_port_type): Changed the return type to
1593 scm_bits_t.
1594
1595 * ports.c (scm_ports_prehistory): Don't create any port types
1596 here.
1597
1598 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1599 against scm_tc16_fport directly.
1600
1601 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1602
1603 * srcprop.c (scm_set_source_property_x): Fix to handle
1604 (set-source-property! <obj> 'copy <datum>) correctly.
1605
1606 2001-01-24 Gary Houston <ghouston@arglist.com>
1607
1608 * filesys.c (scm_link): docstring fix.
1609 * fports.h (scm_setfileno): obsolete declaration removed.
1610 * posix.c: bogus popen declaration removed.
1611
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.
1616
1617 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1618
1619 This patch was sent by Martin Grabmueller and makes sure that
1620 parameter errors are reported correctly by the lexicographic
1621 ordering predicates.
1622
1623 * strorder.c (string_less_p, string_ci_less_p): New functions.
1624
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
1628 checking.
1629
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.
1632
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.
1636
1637 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1638
1639 This patch modifies scm_display_error to perform parameter
1640 checking. Thanks to Neil Jerram for the bug report.
1641
1642 * backtrace.[ch] (scm_i_display_error): New function.
1643
1644 * backtrace.c (scm_display_error): Added parameter check and
1645 extracted the core functionality into function
1646 scm_i_display_error.
1647
1648 * throw.c (handler_message): Call scm_i_display_error to display
1649 the error message.
1650
1651 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1652
1653 * eval.c (SCM_APPLY): Added # args check for application of
1654 procedures with arity 3. (Thanks to Anders Holst.)
1655
1656 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1657
1658 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
1659
1660 (SCM_OPDIRP): Deprecated.
1661
1662 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
1663 SCM_OPN.
1664
1665 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
1666 Instead, give an explicit error message in case the directory is
1667 closed.
1668
1669 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
1670 instead of SCM_OPENP and SCM_CLOSEDP.
1671
1672 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
1673
1674 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1675
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.
1679
1680 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1681
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.
1685
1686 2001-01-18 Gary Houston <ghouston@arglist.com>
1687
1688 * ioext.c: further simplify scm_read_string_x_partial by defining
1689 a macro SCM_EBLOCK.
1690
1691 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1692
1693 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
1694
1695 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1696
1697 * __scm.h: Added comment about architecture and compiler
1698 properties that are required by guile.
1699
1700 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1701 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
1702
1703 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
1704
1705 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
1706
1707 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1708 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
1709
1710 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1711
1712 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
1713 to the names in limits.h.
1714
1715 * numbers.c (abs_most_negative_fixnum): Added.
1716
1717 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
1718 fixnum-min) special case.
1719
1720 (scm_big_and): Fix for negative first parameter.
1721
1722 (scm_bit_extract): Fix for fixnum paramters.
1723 Thanks to Rob Browning for the bug report.
1724
1725 (scm_init_numbers): Initialize abs_most_negative_fixnum.
1726
1727 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1728
1729 * symbols.c (scm_symbol_bound_p): Fixed comment.
1730 Thanks to Chris Cramer.
1731
1732 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1733
1734 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
1735 Thanks to Bill Schottstaedt.
1736
1737 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
1738
1739 from Matthias Köppe:
1740
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.
1743
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.
1747
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.
1754
1755 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
1756
1757 2001-01-08 Gary Houston <ghouston@arglist.com>
1758
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
1762 changes.
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
1765 port.
1766
1767 2001-01-06 Gary Houston <ghouston@arglist.com>
1768
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.
1774
1775 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
1776
1777 * validate.h (SCM_VALIDATE_NUMBER): New.
1778
1779 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
1780
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
1790 result.
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.
1796
1797 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
1798 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
1799
1800 2001-01-01 Gary Houston <ghouston@arglist.com>
1801
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.
1806
1807 The ChangeLog continues in the file: "ChangeLog-2000"