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