* scheme-options.texi, scheme-procedures.texi,
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
9a6976cd
DH
12001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
4 mode, as suggested by Michael Livshin.
5
463b2219
ML
62001-03-31 Michael Livshin <mlivshin@bigfoot.com>
7
8 * backtrace.c (display_backtrace_body): since the `print_state'
9 variable is not used (instead its data field is used directly as
10 `pstate'), protect it from the hungry compiler optimizations.
11 thanks to Bill Schottstaedt for the report.
12
61045190
DH
132001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
14
15 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
16 It is only defined and used if guile is compiled with
17 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
18 let cells with a free_cell type tag be visible outside of the
19 garbage collector when in debug mode.
20
21 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
22
23 (scm_assert_cell_valid): Use a local static variable to avoid
24 recursion.
25
26 (MARK): Only check for rogue cell pointers in debug mode. Use
27 scm_cellp for this purpose and place all checks for rogue pointers
28 into that function. Further, since due to conservative scanning
29 we may encounter free cells during marking, don't use the standard
30 cell type accessor macro to determine the cell type.
31
32 (scm_cellp): Check if the cell pointer actually points into a
33 card header.
34
35 (scm_init_gc): Initalize scm_tc16_allocated.
36
37 * gc.h (GCH): Renamed to SCM_GC_H.
38
39 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
40 might be unnecessary, but I feel better this way :-)
41
42 (SCM_GC_CELL_TYPE): New macro.
43
44 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
45 in guile, and it is unlikely that they will be applied to real
46 pairs anyway.
47
48 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
49
50 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
51 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
52
53 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
54 make sure that in debug mode no free cell will ever be visible
55 outside of the garbage collector.
56
85d6df6a
DH
572001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
58
59 * async.c (scm_asyncs_pending): Don't use != to compare SCM
60 values.
61
62 * async.c (scm_system_async), variable.c (scm_make_variable,
63 scm_make_undefined_variable): Use scm_cons to create a pair.
64
65 * debug.c (scm_reverse_lookup): Perform proper type checking.
66 Remove suspicious use of SCM_SLOPPY_CONSP.
67
68 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
69 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
70 the corresponding optimization.
71
72 * eval.c (iqq): Use proper type check.
73
74 (scm_m_expand_body): Remove redundant type checks.
75
76 (promise_print): Don't access promise cells as pairs.
77
78 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
79 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
80 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
81 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
82 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
83
84 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
85 (scm_iprin1): Use new macro predicate and accessors.
86
87 * eval.h (scm_tc16_macro): Removed declaration. It is declared
88 in macros.h.
89
90 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
91 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
92 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
93 SCM_VARIABLE_H. Even the macros that are used to inhibit
94 including a header file twice should be in the SCM_ namespace.
95
96 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
97 properties.c (scm_primitive_property_ref,
98 scm_primitive_property_del_x): Prefer stronger predicates like
99 SCM_NULLP or SCM_FALSEP over SCM_IMP.
100
101 * gc.c (MARK): Use proper macros to access procedure-with-setter
102 cell elements and closure cell elements.
103
104 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
105 access free cells as pairs.
106
107 (scm_unprotect_object): scm_hashq_get_handle returns #f if
108 no hashtab entry is found.
109
110 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
111 SCM_CLR_PORT_OPEN_FLAG.
112
113 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
114 use SCM_SET_C[AD]R for uninitialized cells.
115
116 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
117 If the hashtable has no slots, return #f instead of '(). This
118 unifies the return value with most assoc-functions.
119
120 (scm_hash_fn_ref): Use proper type check.
121
122 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
123 Removed references to non-existing functions from documentation.
124
125 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
126 access keyword cell elements.
127
128 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
129 macros.
130
131 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
132
133 * print.c (scm_iprlist): Added comment. Improved loop
134 conditions.
135
136 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
137 pairs.
138
139 * smob.c (scm_markcdr): Don't access smob cells as pairs.
140
141 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
142
143 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
144 cells as pairs.
145
146 * variable.c (variable_print, variable_equalp, scm_variable_ref,
147 scm_variable_set_x): Use proper macros to access variable cell
148 elements.
149
150 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
151
152 * variable.h (SCM_VARVCELL): Don't access variable cells as
153 pairs.
154
155 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
156 added FIXME comment, removed register specifier.
157
1b27e91a
KN
1582001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
159
160 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
161 * init.c (scm_init_guile_1): Don't init goopscore module.
162
16c634ec
MV
1632001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
164
165 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
166
91344ceb
MG
1672001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
168
169 * strop.c (scm_string_to_list): Fixed docstring markup.
170 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
171 (scm_string_downcase, scm_string_capitalize_x),
172 (scm_string_capitalize): Rewrote and corrected docstrings.
173 (scm_string_ci_to_symbol): Made docstring more explicit.
174
07576812
MV
1752001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
176
177 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
178 eval.c can use it.
179 (scm_call_with_values): Removed.
180 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
181 so that it can be exported.
182 (scm_call_with_values): Removed.
183
184 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
185 * eval.c: Include "libguile/values.h"
186 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
187 New.
188 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
189 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
190 New delcarations to support above change.
191
192 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
193 errors with last change.
194
1952001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
196
197 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
198 scm_i_eval): Moved the application of the system transformer from
199 scm_i_eval to scm_primitive_eval.
200
a17bb5fd
NJ
2012001-03-23 Neil Jerram <neil@ossau.uklinux.net>
202
a6be01a4
NJ
203 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
204
a17bb5fd
NJ
205 * strop.c (scm_string_index): Fix docstring line break
206 regression.
207
208 * list.c (scm_cons_star): Fix docstring typo.
209
be54b15d
DH
2102001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
211
212 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
213 (big2str), ports.c (scm_drain_input), read.c (scm_read,
214 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
215 scm_make_string, scm_string_append), strports.c (st_resize_port,
216 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
217 scm_makstr with calls to scm_allocate_string.
218
219 * strings.[ch] (scm_allocate_string): New function.
220
221 * strings.[ch] (scm_makstr): Deprecated.
222
789ecc05
GH
2232001-03-18 Gary Houston <ghouston@arglist.com>
224
6d163216
GH
225 * posix.c (scm_tmpnam): check that return value from tmpnam is not
226 NULL. rewrote the docstring.
227 (scm_mkstemp): new procedure implementing "mkstemp!".
228 * posix.h: declare scm_mkstemp.
229
789ecc05
GH
230 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
231 normally it would be found in netdb.h.
232
c6c79933
GH
2332001-03-17 Gary Houston <ghouston@arglist.com>
234
e9e225e5
GH
235 * sort.c (scm_sort): move sortvec variable to avoid a compiler
236 warning when HAVE_ARRAYS is not defined. move len too.
237
238 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
239 (EXTRA_DOT_X_FILES): let configure set the value.
240 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
241
c6c79933
GH
242 * gc.c (scm_must_malloc): changed the comment explaining when
243 scm_must variants of malloc/free etc., should be used, based on
244 explanation from Dirk Herrmann.
245 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
246 string with procedure name. use scm_must_malloc instead of malloc.
247 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
248 of malloc/free.
249 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
250 scm_ungetc): use scm_must variants of malloc/realloc/free.
251 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
252
b3fcac34
DH
2532001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
254
255 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
256 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
257 scm_wrong_type_arg instead.
258
259 (SCM_WNA): Deprecated.
260
261 * error.[ch] (scm_wta): Deprecated.
262
263 * numbers.c (s_i_log): Minor comment fix.
264
265 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
266 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
267 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
268 wrong-num-args or misc errors.
269
270 * unif.c (scm_make_shared_array, scm_transpose_array,
271 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
272 Validate the rest argument (note: this is only done when guile is
273 built with SCM_DEBUG_REST_ARGUMENT=1)
274
275 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
276 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
277
278 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
279 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
280
68baa7e7
DH
2812001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
282
283 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
284 instead of scm_wrong_num_args.
285
286 * coop-threads.c: Don't include libguile/strings.h. (Was only
287 needed for former implementation of SCM_WRONG_NUM_ARGS.)
288
289 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
290 wrong-num-args errors.
291
9f40cd87
DH
2922001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
293
294 * error.[ch] (scm_error_num_args_subr): New function.
295
5352393c
MG
2962001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
297
298 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
299 (scm_length, scm_append, scm_reverse, scm_list_ref),
300 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
301 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
302 (scm_delete1_x), gc.c (scm_map_free_list),
303 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
304 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
305 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
306 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
307 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
308 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
309 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
310
311 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
312 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
313 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
314 symbols.c (scm_symbol_interned_p), numbers.c
315 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
316 markup.
317
a9205f07
KN
3182001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
319
320 * snarf.h (SCM_CONST_LONG): Deprecated.
321 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
322
6d583887
MV
3232001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
324
325 * numbers.c (scm_num2ulong): Check that a bignum is positive
326 before looking at the magnitude. Correctly check for overflow
327 during conversion.
328 (scm_num2long_long): Likewise.
329 (scm_num2ulong_long): New.
330 (ULONG_LONG_MAX): Define if not already defined.
331 * numbers.h: (scm_num2ulong_long): New prototype.
332
e87a03fc
MG
3332001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
334
335 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
336
337 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
338 (SCM_OPOUTSTRPORTP): New predicate macros.
339 (scm_open_input_string, scm_open_output_string),
340 (scm_get_output_string): New prototypes.
341
342 * strports.c (scm_open_input_string, scm_open_output_string),
343 (scm_get_output_string): New procedures (SRFI-6 compliant).
344 Made scm_tc16_strport non-static.
345
160bb34a
DH
3462001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
347
348 * macros.h (SCM_ASSYNT): Removed unused object argument from
349 signature.
350
351 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
352 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
353 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
354 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
355 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
356 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
357 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
358 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
359 scm_m_atdispatch): Removed unused object argument from call to
360 SCM_ASSYNT.
361
80dee77b
DH
3622001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
363
364 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
365 const int* to reflect that the input array of integers remains
366 unchanged. Thanks to Brett Viren for the hint.
367
d3dd80ab
MG
3682001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
369
370 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
371 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
372 in various places.
373 (gh_scm2newstr, gh_symbol2newstr): Change call to
374 scm_must_malloc() to malloc(), because user-free()able memory is
375 allocated.
376
377 * gc.c: Added declaration of `scm_debug_check_freelist'.
378
26a3038d
MG
3792001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
380
381 * ports.c (scm_port_mode): Changed `mode' array size to 4.
382
1f3908c4
KN
3832001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
384
385 * strports.c (scm_object_to_string): New procedure.
386 (scm_strprint_obj): Deprecated.
387 * strports.h: Reflect the changes.
388
e11208ca
DH
3892001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
390
391 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
392
393 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
394 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
395 SCM_ASSYNT to check for correct argument types. Either use some
396 SCM_VALIDATE_* macro or an explicit test.
397
398 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
399 misc-errors.
400
401 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
402 instead of calling scm_wta.
403
67e8151b
MG
4042001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
405
406 * load.c (scm_primitive_load, scm_primitive_load_path),
407 (scm_sys_search_load_path): Corrected docstrings (file ->
408 filename).
409
410 * eval.c (scm_force): Added texinfo markup to docstring.
411 (scm_promise_p): Renamed parameter to `obj' to match docstring.
412
413 * debug-malloc.c: Reinserted #include <stdio.h>.
414
e0c08f17
KN
4152001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
416
e39c3de4
KN
417 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
418
e0c08f17
KN
419 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
420 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
421 Use SCM_LISTn instead of scm_listify.
422
e6e2e95a
MD
4232001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
424
425 * _scm.h: Removed #include <errno.h>.
426
427 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
428 errno variable (can be a macro on some systems, for example when
429 using linux libc with threads).
430
431 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
432 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
433 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
434 #include <errno.h> in these 20 out of 100 files.
435
97d0e20b
GH
4362001-03-10 Gary Houston <ghouston@arglist.com>
437
438 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
439 not already defined.
440
e75341b3
MD
4412001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
442
443 * coop.c: Inserted #include <stdio.h>.
444
445 * iselect.c: Reinserted #include <stdio.h>.
446
74355186
MV
4472001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
448
449 * posix.c: Replaced `#define' of __USE_XOPEN right before
450 including unistd.h with a define of _GNU_SOURCE at the very top of
451 the file.
452
783e7774
KN
4532001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
454
455 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
456 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
457 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
458 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
459 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
460 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
461 print.c, procprop.c, procs.c, properties.c, ramap.c,
462 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
463 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
464 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
465 Remove #include <stdio.h>
466 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
467
468 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
469
9a677c37
MG
4702001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
471
472 * posix.c (scm_gethostname): Set initial name length to 256 for
473 Solaris.
474
94e6d793
MG
4752001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
476
477 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
478 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
479 (scm_sethostname, scm_gethostname): New prototypes.
480
481 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
482 <sys/file.h>, if present.
483 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
484 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
485 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
486 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
487 (scm_sethostname, scm_gethostname): New procedures.
488
650a1cf9
NJ
4892001-03-08 Neil Jerram <neil@ossau.uklinux.net>
490
491 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
492 not optional (ii) "recommend" spelling correction.
493
9636b49c
MD
4942001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
495
5e4a4d09
MD
496 * ramap.c (racp): Removed optimization which caused array copying
497 to fail if the two arrays shared storage. Re-inserted the IVDEP
498 macros removed in the change of 2000-03-09. (Don't really have a
499 complete grasp of what they are for, but they seem to be necessary
500 on Crays. This needs testing!) Thanks to Miroslav Silovic.
501
9636b49c
MD
502 * hash.c (scm_string_hash): Don't downcase characters.
503
04a4d666
MD
5042001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
505
9636b49c 506 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
04a4d666
MD
507 size from 277 --> 1009.
508
509 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
510 function.
511
512 * coop-threads.c: Fixed change of 2001-03-06.
513
514 * validate.h: Code formatting.
515
66418d34
KN
5162001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
517
518 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
519 (*.doc): Add dependency on guile-snarf.awk.in.
520
521 * guile-snarf.awk.in: Neglect spaces at the end of
522 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
523 middle of docstrings. (To avoid the problem with gcc-2.96.)
524
2ade72d7
DH
5252001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
526
527 * coop-threads.c (scm_call_with_new_thread), load.c
528 (scm_primitive_load, scm_sys_search_load_path), random.c
529 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
530 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
531 (potentially) issue a scm-misc-error or wrong-num-args error
532 message.
533
534 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
535 about the expected type with the wrong-type-arg error message.
536
537 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
538 a C level bug that can't be fixed from scheme anyway.
539
586d7da2
MD
5402001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
541
542 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
543 Duplicate bindings are OK in a let* since a let* is semantically
544 equivalent to a nested set of let:s.
545
1dd05fd8
MG
5462001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
547
548 * print.c (scm_print_options): Fixed texinfo in docstring.
549
550 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
551 the underlying functions getservent, getprotoent or getnetent
552 return NULL instead of signalling an error.
553
439006bf
GH
5542001-03-04 Gary Houston <ghouston@arglist.com>
555
556 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
557 taking an unexpectedly large filename for an AF_UNIX socket from
558 bind/connect/sendto (thanks to Martin Grabmueller).
559
560 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
561 former and adjusted the latter.
562 (scm_socket, scm_socketpair): cosmetic changes.
563 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
564 size_t as socklen_t substitute. don't restrict args/return values
565 to INUM: allow full range of int or size_t.
566 (scm_fill_sockaddr): check arguments before allocating memory, to
567 avoid leakage. use malloc, not scm_must_malloc.
568 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
569 substitute. free the sockaddr structure before throwing an error.
570 (scm_init_add_buffer): procedure removed, together with its static
571 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
572 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
573 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
574 scm_sendto): use a local buffer instead of scm_addr_buffer.
575 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
576 not size_t.
577 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
578 call to detect whether recvfrom could be bothered to set the address.
579 (scm_init_socket): don't call scm_init_addr_buffer.
580
276dd677
DH
5812001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
582
583 * debug.c (scm_procedure_source, scm_procedure_environment),
584 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
585 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
586 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
587 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
588 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
589 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
590 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
591 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
592 scm_array_to_list, scm_array_prototype), validate.h
593 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
594 scm_misc_error or scm_wrong_type_arg instead.
595
596 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
597
5e03762c
MD
5982001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
599
600 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
601 (scm_sys_tag_body): Added.
602
db4b4ca6
DH
6032001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
604
605 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
606 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
607 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
608 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
609 options.c (scm_options), ports.c (scm_remove_from_port_table),
610 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
611 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
612 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
613 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
614 instead.
615
87e7741d
MD
6162001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
617
618 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
619
d19b0aac
MV
6202001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
621
622 * eval.c (scm_s_duplicate_bindings): New error message.
623 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
624
2fd945df
MV
6252001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
626
627 * eval.h (SCM_EVALIM2): New macro. Use it when a
628 immediate, literal constant should be evaluated.
629 * eval.c (scm_s_duplicate_formals): New error message string.
630 (scm_c_improper_memq): New function.
631 (scm_m_lambda): Check for duplicate arguments.
632 (scm_ceval, scm_deval): When executing a body: only cons a new
633 toplevel environment frame when it is different from the
634 existing one; use EVALCAR instead of SIDEVAL so that we can properly
635 check for empty combinations; use SCM_EVALIM2 for the same reason
636 in the non-toplevel loop.
637 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
638 New labels with the meaning of their non-"nontoplevel" partners,
639 but they are used when it is known that the body is not evaluated at
640 top-level.
641 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
642 reporting for empty combinations.
643
9e6fc585
KN
6442001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
645
646 * Remove dump facilities.
647 * dump.c, dump.h: Removed.
648 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
649 * init.c: Remove #include "libguile/dump.h".
650 (scm_init_guile_1): Remove scm_init_dump.
651 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
652 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
653 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
654 (scm_set_smob_dump, scm_set_smob_undump): Removed.
655
656 * keywords.c: Remove #include "libguile/dump.h".
657 (keyword_dump, keyword_undump): Removed.
658 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
659
eae54bf0
MG
6602001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
661
662 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
663 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
664 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
665 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
666 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
667 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
668 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
669 to @code{} as the texinfo manual recommends, converted the
670 examples to use a @lisp{}-environment.
671
672 * strports.c (scm_eval_string): Cleaned up the docstring.
673
674 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
675 markup.
676
677 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
678 (scm_number_to_string, scm_string_to_number, scm_number_p)
679 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
680 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
681 (scm_ash): Added texinfo markup and removed obsolete @refill.
682 (scm_gr_p): Corrected comment.
683 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
684 docstring) comments.
685 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
686 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
687 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
688 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
689 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
690 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
691 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
692 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
693
23deee81
DH
6942001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
695
696 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
697 (Obviously nobody compiles with SCM_RECKLESS defined...)
698
699 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
700
6fe692e9
MD
7012001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
702
703 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
704
705 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
706
27c37006
NJ
7072001-02-24 Neil Jerram <neil@ossau.uklinux.net>
708
709 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
710 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
711 since use of `z' suggests that the arguments may be complex.
712
713 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
714 typos.
715
2069af38
NJ
7162001-02-23 Neil Jerram <neil@ossau.uklinux.net>
717
718 * dump.c (scm_binary_write, scm_binary_read), eval.c
719 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
720 scm_guardian_greedy_p, scm_make_guardian), fports.c
721 (scm_file_port_p): Minor docstring fixes.
722
b42ff180
MV
7232001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
724
2069af38 725 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
97ea55f8
MV
726
727 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
728 scm_i_eval.
729 (make_class_from_template): Do not bother to set the current
730 module around the call to DEFVAR, scm_eval takes care of that.
731 (scm_init_goops): Make scm_module_goops and
732 scm_goops_lookup_closure permanent objects.
733
734 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
735 top level, create a fresh top-level environment for each
736 expression instead of mutating the exisint frame. This is
737 important when that frame is closed over.
738
b42ff180
MV
739 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
740 SCM_DIGSPERLONG instead of DIGSPERLONG.
741
09f2ab1e
MV
7422001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
743
744 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
745 before applying arrow procedure in `cond' and before applying
746 receiver procedure in call-with-current-continuation.
747 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
748 macro. The argument is expanded more than one time.
749
750 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
751 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
752
7532001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
754
755 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
756 notice and license.
757
7090240c
MG
7582001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
759
760 * variable.c (scm_make_variable, scm_make_undefined_variable)
761 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
762 (scm_variable_bound_p), values.c (scm_values)
763 (scm_call_with_values), unif.c (scm_bit_count)
764 (scm_bit_set_star_x), symbols.c (scm_gentemp)
765 (scm_gensym), strings.c (scm_string_p, scm_make_string)
766 (scm_read_only_string_p, scm_string_length, scm_string_ref)
767 (scm_string_set_x, scm_substring, scm_string_append), stime.c
768 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
769 (scm_copy_random_state, scm_random), print.c (scm_newline)
770 (scm_write_char, scm_simple_format), debug-malloc.c
771 (scm_malloc_stats), environments.c (scm_environment_p)
772 (scm_environment_bound_p, scm_environment_ref)
773 (scm_environment_fold, scm_environment_define)
774 (scm_environment_undefine, scm_environment_set_x)
775 (scm_environment_cell, scm_environment_observe)
776 (scm_environment_observe_weak, scm_environment_unobserve)
777 (scm_make_eval_environment, scm_eval_environment_p)
778 (scm_eval_environment_set_local_x, scm_eval_environment_local)
779 (scm_eval_environment_imported)
780 (scm_eval_environment_set_imported_x, scm_make_import_environment)
781 (scm_import_environment_p, scm_import_environment_imports)
782 (scm_import_environment_set_imports_x, scm_make_export_environment)
783 (scm_export_environment_p, scm_export_environment_private)
784 (scm_export_environment_set_private_x)
785 (scm_export_environment_signature)
786 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
787 Added texinfo markup.
788
789 * ports.c (scm_drain_input): Lowercased argument to @var.
790 (scm_current_input_port, scm_current_output_port): Filled in
791 missing explanation.
792 (scm_current_load_port, scm_set_current_output_port)
793 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
794 Added texinfo markup.
795
796 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
797 (scm_release_arbiter): Added texinfo markup to docstrings.
798 Changed `Returns' to `Return'.
799 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
800
25703850
NJ
8012001-02-16 Neil Jerram <neil@ossau.uklinux.net>
802
803 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
804 by doubling them to `@@'.
805
73c0fdce
MG
8062001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
807
808 * numbers.c (scm_lognot), random.c (scm_random,
809 scm_random_normal, scm_random_solid_sphere_x,
810 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
811 scm_random_exp), dynwind.c
812 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
813
814 * goops.c (scm_sys_initialize_object, scm_instance_p,
815 scm_class_name, scm_class_precedence_list, scm_class_slots,
816 scm_class_environment, scm_generic_function_name,
817 scm_generic_function_methods, scm_method_generic_function,
818 scm_method_specializers, scm_method_procedure, scm_make_unbound,
819 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
820 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
821 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
822 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
823 scm_class_direct_supers, scm_class_direct_slots,
824 scm_class_direct_subclasses, scm_class_direct_methods,
825 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
826 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
827 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
828 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
829 scm_memoized_environment, scm_procedure_name,
830 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
831 objects.c
832 (scm_class_of, scm_entity_p, scm_operator_p,
833 scm_set_object_procedure_x, scm_object_procedure,
834 scm_make_class_object), hooks.c (scm_make_hook_with_name,
835 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
836 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
837 scm_hook_to_list), lang.c
838 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
839 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
840 (scm_print_options, scm_port_with_print_state,
841 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
842 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
843 scm_make_procedure_with_setter, scm_procedure), throw.c
844 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
845 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
846 scm_stack_ref, scm_stack_length, scm_frame_p,
847 scm_last_stack_frame, scm_frame_number, scm_frame_source,
848 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
849 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
850 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
851 (scm_dirname, scm_basename), dynwind.c
852 (scm_wind_chain), read.c (scm_read_options, scm_read,
853 scm_read_hash_extend), gc.c
854 (scm_unhash_name), eval.c (scm_eval_options_interface,
855 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
856 (scm_display_error, scm_set_print_params_x,
857 scm_display_application, scm_display_backtrace, scm_backtrace),
858 async.c (scm_async, scm_system_async, scm_async_mark,
859 scm_system_async_mark, scm_run_asyncs, scm_noop,
860 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
861 scm_mask_signals): Added docstrings.
862
e228a203
KN
8632001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
864
865 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
866 address of car/cdr. (Thanks to Dirk Herrmann)
867 Use scm_sizet to obtain the length of strings.
868 (Thanks to Matthias Koeppe)
869
1552a59d
MV
8702001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
871
872 * symbols.c (scm_mem2symbol): Put a empty statement after the
873 next_symbol label. This is mandated by ANSI, appearantly.
874
3178f751
MV
8752001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
876
877 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
878 sense to compile for a specific kernel version. Do not include
879 <asm/signal.h> while defining __KERNEL__. This hack should no
880 longer be needed and caused problems.
881
7af4defe
MV
8822001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
883
884 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
885 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
886 can not deal with immediates.
887
5d6bb349
KN
8882001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
889
890 * list.c (scm_list_copy): Validate the first argument.
891
ec9709f0
MV
8922001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
893
894 Fix evaluator so that top-level expressions are correctly
895 evaluated with respect to the module system.
896
897 * modules.h. modules.c (scm_current_module_lookup_closure): New
898 function.
899
900 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
901 prototypes.
902 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
903 names to better reflect their meaning.
904
905 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
906 evaluated at top-level and synronize lookup closure before
907 executing every subform.
908 (scm_primitve_eval_x, scm_primitive_eval): New functions.
909 (scm_eval_x, scm_eval): Reimplement in terms of
910 scm_primitive_eval_x and scm_primitive_eval, respectively.
911
9122001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
913
914 * macros.c (scm_macro_name, scm_macro_transformer): Use
915 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
916 Thanks!
917
42417394
KN
9182001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
919
920 * dump.c (scm_store_bytes): Store data size before data.
921 (scm_restore_bytes): Restore data size. Takes a pointer to size.
922 * dump.h (scm_restore_bytes): Updated.
923
bf942687
KN
9242001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
925
926 * dump.c: Use double cells for update schedule.
927
1be4270a
KN
9282001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
929
930 * ports.c (scm_unread_char): Take an optional argument.
931
548728ea
MV
9322001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
933
934 * modules.h (scm_selected_module, scm_current_module): Renamed
935 scm_selected_module to scm_current_module to synchronize Scheme
936 and C names.
937 (scm_select_module, scm_set_current_module): Likewise. Changed
938 all uses.
939
940 * ports.c (scm_port_for_each): Make a snapshot of the port table
941 before iterating over it. The table might change while the user
942 code is running. With the snapshot, the user can depend on the
c5408bc3 943 fact that each port that existed at the start of the iteration is
548728ea
MV
944 encountered exactly once. (ice-9 popen) depends on this.
945
cb0d8be2
DH
9462001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
947
948 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
949
950 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
951 range checking for the size parameter. Thanks to Martin
952 Grabmueller for the hint.
953
954 (scm_makstr): Reordered string initialization to make interrupt
955 deferring unnecessary.
956
957 * vectors.c (scm_make_vector): Fixed range checking.
958
e382fdbe
DH
9592001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
960
961 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
962
963 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
964 checking of the size parameter for type correctness and valid
965 range. Thanks to Rob Browning for reporting the problem. Instead
966 of deferring interrupts, scm_remember_upto_here_1 is used.
967
bf8f0922
KN
9682001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
969
970 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
971 (scm_dump_cell_update): Removed.
972 (scm_dump_update): Renamed from scm_dump_object_update.
973 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
974 a pointer instead of returning a value.
975 * keywords.c (keyword_undump): Updated.
976
914cceec
KN
9772001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
978
979 * dump.c, dump.h: Modified a lot.
5f17c66f 980 (SCM_DUMP_COOKIE): Version 0.1
914cceec
KN
981 (scm_dump_mark): Removed.
982 (scm_restore_cell_object, scm_store_cell_object): New functions.
983
984 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
985 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
986 New slots: dump, undump.
987 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
988 Updated.
989
990 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
991 (keyword_undump): Renamed from keyword_alloc.
992 (scm_init_keywords): Set keyword_dump and keyword_undump.
993
ecf470a2
ML
9942001-02-03 Michael Livshin <mlivshin@bigfoot.com>
995
996 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
997 the deprecated SCM_DOUBLE_CELLP.
998
999 * tags.h (SCM_DOUBLE_CELLP): deprecated.
1000
03416a99
KN
10012001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
1002
1003 * dump.c, dump.h: New files.
1004 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
1005 * init.c: #include "libguile/dump.h".
1006 (scm_init_guile_1): Call scm_init_dump.
1007 * smob.h (scm_smob_descriptor): New slots: dump_mark,
1008 dump_dealloc, dump_store, undump_alloc, undump_restore,
1009 undump_init.
1010 * smob.c (scm_make_smob_type): Init the new slots.
1011 (scm_set_smob_dump, scm_set_smob_undump): New functions.
1012 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
1013
1014 * keywords.c: #include "libguile/dump.h".
1015 (keyword_dealloc, keyword_alloc): New functions.
1016 (scm_init_keywords): Set smob_dump and smob_undump.
1017
00ffa0e7
KN
10182001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
1019
1020 * vectors.c (scm_c_make_vector): New function.
1021 * vectors.h (scm_c_make_vector): Declared.
1022 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
1023 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
1024 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
1025 (scm_make_method_cache, scm_i_vector2list,
1026 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
1027 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
1028 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
1029 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
1030 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
1031 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
1032 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
1033 (scm_vector, scm_make_vector): Use scm_c_make_vector.
1034
1035 * hashtab.c (scm_c_make_hash_table): New function.
1036 * hashtab.h (scm_c_make_hash_table): Declared.
1037 * environments.c (scm_make_leaf_environment,
1038 scm_make_eval_environment), gc.c (scm_init_storage),
1039 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
1040 Use scm_c_make_hash_table.
1041
b8446ce8
MD
10422001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1043
1044 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
1045
e3239868
DH
10462001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1047
1048 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
1049 end of docstring.
1050
1051 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
1052 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
1053 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
1054 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
1055 srcprop.c (scm_source_properties, scm_set_source_properties_x,
1056 scm_source_property, scm_set_source_property_x), sort.c
1057 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
1058 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
1059 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
1060 docstrings.
1061
41ee56dd
MD
10622001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1063
1064 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
1065 really get that arg.
1066
b6311c08
KN
10672001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
1068
1069 * goops.c (s_scm_get_keyword): Bug fix.
1070
a49af0c0
DH
10712001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1072
1073 The following patch was sent by Martin Grabmueller. It makes sure
1074 that in case of parameter errors the correct function name is
1075 shown, and that parameter types are only checked once.
1076
1077 * strop.c (string_copy, string_upcase_x, string_downcase_x,
1078 string_capitalize_x): New functions. Each one performs the core
1079 functionality of the corresponding scm_* function.
1080
1081 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
1082 scm_string_downcase_x, scm_string_downcase,
1083 scm_string_capitalize_x, scm_string_capitalize): Reduced to
1084 parameter checking wrappers of the above functions.
1085
13070bd3
DH
10862001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1087
1088 * continuations.c, dynl.c, keywords.c, load.c: Include
1089 strings.h. Thanks to Bill Schottstaedt for the bug report.
1090
2f2b390c
DH
10912001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1092
1093 * backtrace.c (display_header): Make sure that line and column
1094 information is shown independent of whether the port the code was
1095 read from had an associated filename. Thanks to Martin
1096 Grabmueller for providing this patch.
1097
efa40607
DH
10982001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1099
1100 * fports.[ch] (scm_file_port_p): New primitive.
1101
a98bddfd
DH
11022001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1103
1104 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
1105 These are now defined in fports.c, strports.c and vports.c.
1106
1107 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
1108 vports.c (scm_tc16_sfport): Made variables (were macros defined in
1109 tags.h).
1110
1111 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
1112 (scm_make_sfptob): Made static. These return a type code now.
1113
1114 fports.c (scm_init_fports), strports.c (scm_init_strports),
1115 vports.c (scm_init_vports): Create the corresponding port types.
1116
1117 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
1118 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
1119
1120 * init.c (scm_init_guile_1): Make sure strports are initialized
1121 before gdbint.
1122
1123 * ports.[ch] (scm_make_port_type): Changed the return type to
1124 scm_bits_t.
1125
1126 * ports.c (scm_ports_prehistory): Don't create any port types
1127 here.
1128
1129 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
1130 against scm_tc16_fport directly.
1131
0419a528
DH
11322001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1133
1134 * srcprop.c (scm_set_source_property_x): Fix to handle
1135 (set-source-property! <obj> 'copy <datum>) correctly.
1136
6d36532c
GH
11372001-01-24 Gary Houston <ghouston@arglist.com>
1138
1139 * filesys.c (scm_link): docstring fix.
1140 * fports.h (scm_setfileno): obsolete declaration removed.
1141 * posix.c: bogus popen declaration removed.
1142
1143 * rdelim.c: new file, split from ioext.c.
1144 * rdelim.h: new file, split from ioext.h
1145 * Makefile.am: add rdelim.c and related files.
1146 * init.c: call scm_init_rdelim. include rdelim.h.
1147
3ba5a6c2
DH
11482001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1149
1150 This patch was sent by Martin Grabmueller and makes sure that
1151 parameter errors are reported correctly by the lexicographic
1152 ordering predicates.
1153
1154 * strorder.c (string_less_p, string_ci_less_p): New functions.
1155
1156 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
1157 functionality into string_less_p, string_ci_less_p respectively.
1158 The remaining code is just a wrapper to do the parameter
1159 checking.
1160
1161 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
1162 parameters and call string_less_p instead of scm_string_less_p.
1163
1164 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
1165 Check the parameters and call string_less_ci_p instead of
1166 scm_string_ci_less_p.
1167
e40a4095
DH
11682001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1169
ed6a2db9
DH
1170 This patch modifies scm_display_error to perform parameter
1171 checking. Thanks to Neil Jerram for the bug report.
1172
e40a4095
DH
1173 * backtrace.[ch] (scm_i_display_error): New function.
1174
1175 * backtrace.c (scm_display_error): Added parameter check and
1176 extracted the core functionality into function
1177 scm_i_display_error.
1178
1179 * throw.c (handler_message): Call scm_i_display_error to display
1180 the error message.
1181
f1e06a96
MD
11822001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
1183
1184 * eval.c (SCM_APPLY): Added # args check for application of
1185 procedures with arity 3. (Thanks to Anders Holst.)
1186
30ea841d
DH
11872001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1188
1189 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
1190
1191 (SCM_OPDIRP): Deprecated.
1192
1193 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
1194 SCM_OPN.
1195
1196 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
1197 Instead, give an explicit error message in case the directory is
1198 closed.
1199
1200 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
1201 instead of SCM_OPENP and SCM_CLOSEDP.
1202
1203 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
1204
312ae976
DH
12052001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1206
1207 * eval.c (inner_eval, scm_eval): Move all real functionality into
1208 inner_eval. Avoid to copy the expression twice by inlining some
1209 code from scm_i_eval.
1210
4567ed78
DH
12112001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
1212
1213 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
1214 now has to be the last clause, as required by R5RS. Thanks to
1215 Martin Grabmueller for the patch.
1216
10288a09
GH
12172001-01-18 Gary Houston <ghouston@arglist.com>
1218
1219 * ioext.c: further simplify scm_read_string_x_partial by defining
1220 a macro SCM_EBLOCK.
1221
8f379a8f
DH
12222001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1223
1224 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
1225
5c75b29f
DH
12262001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1227
1228 * __scm.h: Added comment about architecture and compiler
1229 properties that are required by guile.
1230
1231 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1232 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
1233
1234 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
1235
1236 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
1237
1238 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
1239 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
1240
ac0c002c
DH
12412001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1242
1243 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
1244 to the names in limits.h.
1245
1246 * numbers.c (abs_most_negative_fixnum): Added.
1247
1248 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
1249 fixnum-min) special case.
1250
1251 (scm_big_and): Fix for negative first parameter.
1252
1253 (scm_bit_extract): Fix for fixnum paramters.
1254 Thanks to Rob Browning for the bug report.
1255
1256 (scm_init_numbers): Initialize abs_most_negative_fixnum.
1257
debe0dc2
DH
12582001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1259
1260 * symbols.c (scm_symbol_bound_p): Fixed comment.
1261 Thanks to Chris Cramer.
1262
8a39e3fc
DH
12632001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1264
1265 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
1266 Thanks to Bill Schottstaedt.
1267
322ec19d
ML
12682001-01-11 Michael Livshin <mlivshin@bigfoot.com>
1269
1270