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