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