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