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