* guile-doc-snarf.in: put the preprocessed file through sed to
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
a564e775
ML
12000-05-22 Michael Livshin <mlivshin@bigfoot.com>
2
3 * guile-doc-snarf.in: put the preprocessed file through sed to
4 trim all lines to 512 chars. I hope it doesn't break anybody's
5 shell. we'll see.
6
7 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): reverted
8 the previous change to this macros, after deciding to torture the
9 snarfer instead.
10
686765af
ML
112000-05-21 Michael Livshin <mlivshin@bigfoot.com>
12
13 * gc.h (SCM_[SET_]CELL_{WORD,OBJECT}, SCM_VALIDATE_CELL): brought
cebd4392
ML
14 the yucky, ugly and nasty conditional compilation back. sorry,
15 but it was either that or requiring GAWK to build Guile.
16 (lots of places): removed the code that implemented the old GC
17 scheme.
686765af
ML
18
19 * init.c (scm_boot_guile_1): removed the code conditioned on
20 !GUILE_NEW_GC_SCHEME.
21
22 * __scm.h: (GUILE_NEW_GC_SCHEME): removed.
23
24 * gc.c (scm_protect_object, scm_unprotect_object): change the
25 implementation to more efficient (at least in the time complexity
26 sense). the calls should now also be thread-safe -- I suspect
27 that people expect them to be. (thanks to Han-Wen Nienhuys)
cebd4392
ML
28 (lots of places): removed the code that implemented the old GC
29 scheme.
686765af
ML
30
31 * hashtab.c (scm_hash_fn_create_handle_x): add missing
cebd4392
ML
32 SCM_REALLOW_INTS before return. I really wonder about the
33 possible interactions between hashtables, threads & GC. it
34 doesn't look healthy at all.
686765af 35
44e47754
DH
362000-05-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
37
38 * unif.c (scm_bit_count): Fixed the parameter checks. Thanks to
39 Dale P. Smith.
40
46d53380
DH
412000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
42
43 * __scm.h (SCM_DEBUG_CELL_ACCESSES), gc.h (SCM_): Added as a new
44 debug option to verify all accesses to cells actually access
45 objects on the heap.
46
47 * gc.h (SCM_VALIDATE_CELL): Added. Only performs validation if
48 SCM_DEBUG_CELL_ACCESSES is set to 1.
49
50 (SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD,
51 SCM_SET_CELL_OBJECT): Use SCM_VALIDATE_CELL to check every cell
52 that is accessed.
53
1a548472
DH
542000-05-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
55
56 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs,
57 gh_scm2floats, gh_scm2doubles): Change !SCM_NIMP to SCM_IMP.
58
59 * gc.c (scm_cellp): Fixed and simplified.
60
61 * throw.c (JBJMPBUF, SETJBJMPBUF, SCM_JBDFRAME, SCM_SETJBDFRAME,
62 make_jmpbuf, scm_init_throw): Now using double cells to represent
63 jump buffers when using debug extensions.
64
65 (freejb): Removed.
66
bcee10dd
DH
672000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
68
69 * gh.h gh_data.c gh_funcs.c (gh_new_procedure*, gh_chars2byvect,
70 gh_shorts2svect, gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect,
71 gh_doubles2dvect, gh_doubles2scm, gh_define, gh_lookup,
72 gh_module_lookup): Accept const pointers as parameters.
73
74 * gh.h gh_data.c (gh_int2scmb): Deprecated.
75
762000-05-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
af45e3b0
DH
77
78 * __scm.h (SCM_DEBUG_REST_ARGUMENT): Renamed from
79 SCM_DEBUG_REST_ARGUMENTS in order to clarify that we don't test
80 the actual arguments in the list, but rather the rest argument as
81 a list of arguments.
82
83 * validate.h (SCM_VALIDATE_REST_ARGUMENT): Added.
84
85 * async.c (scm_noop), eval.c (scm_map, scm_for_each), list.c
86 (scm_list_star, scm_append, scm_append_x), ports.c
87 (scm_close_all_ports_except), ramap.c (scm_array_map_x,
88 scm_array_for_each), regex-posix.c (scm_make_regexp), stacks.c
89 (scm_make_stack), strings.c (scm_string_append), struct.c
90 (scm_make_struct, scm_make_vtable_vtable): Validate rest arguments.
91
92 * dynl.c (DYNL_GLOBAL, sysdep_dynl_link, kw_global, sym_global,
93 scm_dynamic_link, scm_init_dynamic_linking), dynl.h
94 (scm_dynamic_link): Removed possibility to pass flags to
95 scm_dynamic_link, as it had no effect anyway.
96
97 * filesys.c (scm_fcntl): Made single optional rest argument into
98 a standard optional argument.
99
100 * hooks.c (scm_run_hook): A list of rest arguments is never
101 SCM_UNBNDP.
102
103 * list.c (scm_append, scm_append_x), stacks.c (scm_make_stack),
104 strings.c (scm_string_append): Don't perform half-hearted checks
105 to see whether the rest argument forms a proper list any more, use
106 SCM_VALIDATE_REST_ARGUMENTS instead.
107
108 * ports.c (scm_close_all_ports_except): Accept empty list of rest
109 arguments.
110
111 * posix.c (scm_convert_exec_args), print.c (scm_simple_format):
112 Simplify verification of rest argument.
113
114 * stacks.c (scm_make_stack), stacks.h (scm_make_stack), throw.c
115 (ss_handler, handler_message): Make first mandatory rest argument
116 of scm_make_stack into a standard mandatory argument.
117
118 * unif.c (scm_transpose_array, scm_enclose_array,
119 scm_array_in_bounds_p), unif.h (scm_transpose_array,
120 scm_enclose_array, scm_array_in_bounds_p): Make first mandatory
121 rest argument into a standard mandatory argument.
122
c8a54c4b
DH
1232000-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
124
125 * __scm.h: Added SCM_DEBUG as default debug option. (Thanks to
126 Keisuke Nishida for the suggestion.) Added debug option
127 SCM_DEBUG_REST_ARGUMENTS.
128
129 * eval.c (scm_map, scm_for_each): Make sure all lists have the
130 same length. Also, removed redundant parameter checks.
131
56100716
DH
1322000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
133
134 * Makefile.am: Let 'make clean' remove *.x and *.doc files.
135
136 * __scm.h: Improved explanation of giving options to make.
137
138 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS), tags.h
139 (SCM_STRICT_TYPING, SCM_DEBUG_TYPING_STRICTNESS): Renamed
140 SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS and moved the
141 corresponding declaration and comment to __scm.h.
142
143 * _scm.h (errno), gc.h (SCM_CELLPTR, SCM_PTR_LT), numbers.c
144 (scm_remainder, scm_modulo), numbers.h (SCM_SRS, SCM_MAKINUM,
145 SCM_INUM): Removed conditionally compiled code for Turbo C.
146
147 * gdbint.c (gdb_maybe_valid_type_p): Eliminated call to scm_tag.
148 That check can be assumed to be redundant except for very rare
149 conditions that actually indicate broken heap data.
150
3c9f20f8
DH
1512000-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
152
153 * numbers.c (scm_logcount, scm_integer_length): Reordered
154 dispatch sequence.
155
8536a982
GH
1562000-05-15 Gary Houston <ghouston@arglist.com>
157
158 * stime.c (scm_strftime): don't reset TZ if zone is an empty
159 string. append a "0" to the zone for TZ.
c8a54c4b 160
78166ad5
DH
1612000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
162
163 * numbers.c (scm_logbit_p, scm_bit_extract): Reordered dispatch
164 sequence.
165
166 (scm_bit_extract): Fixed handling of bignums.
167
f5f2dcff
DH
1682000-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
169
170 * async.c (scm_sys_gc_async_thunk), chars.h (SCM_ICHRP, SCM_ICHR,
171 SCM_MAKICHR), continuations.h (SCM_SETJMPBUF), error.c
172 (scm_sysmissing), error.h (scm_sysmissing), evalext.c
173 ('serial-map), ioext.c (scm_fseek), ioext.h (scm_fseek),
174 keywords.c (scm_tc16_kw, scm_init_keywords), ports.h (SCM_CRDY,
175 SCM_INPORTP, SCM_OUTPORTP), ramap.c ('serial-array-copy!,
176 'serial-array-map!), smob.c (scm_newsmob), smob.h (scm_smobfuns,
177 scm_newsmob), tag.c (scm_tag), tag.h (scm_tag), tags.h
178 (scm_tc16_flo, scm_tc_flo, scm_tc_dblr, scm_tc_dblc): Wrapped
179 deprecated code between #if (SCM_DEBUG_DEPRECATED == 0) #endif.
180
181 * fports.c (scm_fport_buffer_add), ports.c (scm_input_port_p,
182 scm_output_port_p), print.c (scm_get_print_state), validate.h
183 (SCM_VALIDATE_CHAR): Replace use of deprecated macros
184 SCM_INPORTP, SCM_OUTPORTP, SCM_ICHRP by SCM_INPUT_PORT_P,
185 SCM_OUTPUT_PORT_P, SCM_CHARP, respectively.
186
07ccd85d
GH
1872000-05-14 Gary Houston <ghouston@arglist.com>
188
32f1b9fd
GH
189 * stime.c (scm_strftime): if HAVE_TM_ZONE is not defined, hack the
190 TZ environment variable so that the %Z format returns the zone
191 from the input vector instead of the system default.
192
07ccd85d
GH
193 from Keisuke Nishida:
194 * fports.c (scm_setvbuf): minor docstring fix.
195 * ports.h (scm_generic_fgets): obsolete prototype deleted.
196
3a9809df
DH
1972000-05-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
198
199 * __scm.h: Added new section for debugging options.
200
201 (SCM_DEBUG_DEPRECATED): If 1, no deprecated code is included to
202 help developers to get rid of references to deprecated code.
203
204 * numbers.[ch] (SCM_POSFIXABLE, SCM_NEGFIXABLE, SCM_UNEGFIXABLE,
205 SCM_FIXABLE, SCM_FLOBUFLEN): These macros are no longer provided
206 as part of the interface and are marked as deprecated in the
207 header file.
208
209 * numbers.c (scm_make_real, scm_make_complex): Inlined the
210 corresponding macros SCM_NEWREAL and SCM_NEWCOMPLEX,
211 respectively.
212
213 * numbers.h (SCM_NEWREAL, SCM_NEWCOMPLEX, SCM_INEXP, SCM_CPLXP,
214 SCM_REAL, SCM_IMAG, SCM_REALPART, scm_makdbl, SCM_SINGP,
215 SCM_NO_BIGDIG, SCM_NUM2DBL, scm_dblproc): Deprecated.
216
e828cb75
DH
2172000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
218
219 * gc.h (scm_cell, SCM_CELL_WORD, SCM_CELL_OBJECT,
220 SCM_SET_CELL_WORD, SCM_SET_CELL_OBJECT): Scheme cells now consist
221 of two scm_bits_t values instead of two SCM values, because it is
222 legal for cell entries to hold values that are not scheme objects.
223
224 (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR):
225 Use SCM_SETC[AD]R to modify contents of pairs.
226
5986c47d
DH
2272000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
228
229 * numbers.c (IS_INF, isfinite): Added FIXME comment.
230
231 (scm_abs, scm_magnitude): Make these two independent of each
232 other. scm_abs now reports an error if given a complex argument.
233
234 (scm_istr2flo, scm_integer_p). Use SCM_REAL_VALUE instead of
235 SCM_REALPART if the object is known to be real.
236
237 (scm_init_numbers): No need to use SCM_NEWREAL macro for speed
238 here.
239
240 * numbers.h (SCM_SINGP): Set to 0 instead of SCM_BOOL_F.
241
eb42e2f0
DH
2422000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
243
244 * eq.c (scm_eqv_p): Separate handling of real and complex
245 values. Remove #ifdef SCM_BIGDIG #endif test.
246
247 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_scm2floats,
248 gh_scm2doubles), hash.c (scm_hasher), ramap.c (scm_array_fill_int,
249 ramap_rp, scm_array_map_x), random.c (vector_scale,
250 vector_sum_squares), unif.c (scm_make_uve, scm_array_p,
251 scm_array_set_x): Use SCM_REAL_VALUE instead of SCM_REALPART if
252 the object is known to be real. Use SCM_COMPLEXP instead of
253 deprecated SCM_CPLXP. Use SCM_INEXACTP instead of deprecated
254 SCM_INEXP.
255
7235ee58
DH
2562000-05-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
257
258 * numbers.c: No need to include unif.h.
259
260 (IS_INF): Returned to old test for now: x == x + 1 will not work
261 for large numbers due to rounding errors.
262 Thanks to Kalle Olavi Niemitalo.
263
bb628794
DH
2642000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
265
266 * numbers.c (scm_divbigdig): Removed outdated comment.
267
268 (scm_number_to_string, scm_string_to_number, scm_number_p,
269 scm_real_p, scm_integer_p, scm_inexact_p, scm_gr_p, scm_leq_p,
270 scm_geq_p, scm_make_rectangular, scm_make_polar,
271 scm_inexact_to_exact): Added comments.
272
273 (add1, scm_init_numbers): Removed add1.
274
98cb6e75
DH
2752000-05-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
276
277 * numbers.c (IS_INF): The new test is x == x + 1. The old test
278 x == x/2 did not work for zero values. Thanks to Han-Wen Nienhuys
279 and Ivan Toshkov.
280
281 (scm_number_to_string, scm_sum, scm_difference, scm_two_doubles,
282 scm_num2long, scm_num2long_long, scm_num2ulong): Reordered
283 dispatch sequence.
284
c45c2b6b
MV
2852000-05-09 Marius Vollmer <mvo@zagadka.ping.de>
286
287 * scmsigs.c (take_signal): Execute SCM_ASYNC_TICK for SIGSEGV,
288 SIGILL and SIGBUS signals. These signals are not continuable and
289 must be handled for real right away.
290
c2ff8ab0
DH
2912000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
292
293 * numbers.c (scm_zero_p, scm_positive_p, scm_negative_p,
294 scm_real_part, scm_imag_part, scm_magnitude,
295 scm_inexact_to_exact): Reordered dispatch sequence.
296
1a450153
DH
2972000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
298
299 * feature.c: No need to include "libguile/smob.h"
300
301 (scm_loc_features, features, scm_add_feature, scm_init_feature):
302 Removed variable 'scm_loc_features' as a pointer to the SCM value
303 holding the features list. Using variable 'features' instead,
304 which holds the interned pair. Thus, SCM_SETCDR can be used
305 instead of pointer trickery.
306
665aeda3
DH
3072000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
308
309 * alist.c (scm_acons): Use SCM{_SET}?_CELL_OBJECT as long as a
310 cell is not known to be a valid pair.
311
ab66ae47
DH
3122000-05-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
313
314 * eval.c (ASRTSYNTAX, scm_m_body, scm_m_letrec1): Removed
315 ASRTSYNTAX. Using SCM_ASSYNT instead.
316
317 (scm_m_body): Don't create a redundant cons cell.
318
319 (scm_m_do): Removed redundant test 'bodycheck'.
320
321 (bodycheck): Removed.
322
323 * stacks.c (stack_depth, read_frame, read_frames): Removed
324 redundant calculation of size, minimized some variable scopes.
325
4983cbe4
DH
3262000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
327
328 * pairs.c (scm_cons, scm_cons2): Use SCM{_SET}?_CELL_OBJECT as
329 long as a cell is not known to be a valid pair.
330
331 (scm_pair_p): Eliminated redundant SCM_IMP test.
332
44d3cb0d
DH
3332000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
334
335 * eval.c (scm_m_body, scm_macroexp, unmemocopy, scm_eval_args,
336 scm_deval_args): Eliminated redundant SCM_IMP tests.
337
338 * hashtab.c (scm_ihashx, scm_sloppy_assx, scm_delx_x), weaks.c
339 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table,
340 scm_make_doubly_weak_hash_table): Fixed critical sections.
341 Thanks to Keisuke Nishida.
342
9a00c9fc
DH
3432000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
344
345 * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
346 Fixed some goto-related initialization bugs (introduced by me).
347
b82c6ce0
DH
3482000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
349
350 * numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
351
352 * dynl.c (dynl_obj, DYNL_OBJ, get_dynl_obj): Removed.
353
354 (DYNL_FILENAME, DYNL_HANDLE): Use SCM_CELL... macros instead of
355 pointer trickery.
356
357 (SET_DYNL_HANDLE): Added.
358
359 (scm_dynamic_object_p): Simplified.
360
361 (scm_dynamic_unlink, scm_dynamic_func): Changed comment. Deliver
362 better error message when accessing unlinked dynamic objects.
363 Eliminated call to get_dynl_obj.
364
106428b3
MV
3652000-05-03 Marius Vollmer <mvo@zagadka.ping.de>
366
7eea5296 367 * scmsigs.c (orig_handlers) [!HAVE_SIGACTION]: Fix declaration to
106428b3
MV
368 be an array of function pointers instead of being a pointer to an
369 array returning function. Thanks to Kalle Olavi Niemitalo!
370
f4c627b3
DH
3712000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
372
373 * numbers.c (scm_divbigbig, scm_divbigint), numbers.h
374 (scm_divbigbig, scm_divbigint): Don't return zero any more to
375 indicate that a division has a remainder, return SCM_UNDEFINED
376 instead. It is improbable that anyone actually used these
377 functions outside of numbers.c. For this reason and due to the
378 change in behaviour the functions are static now. Thus, if
379 surprisingly there are users of these functions they will at least
380 get alarmed.
381
382 * numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
383 that already have a clean dispatch order. Note: SCM_BIGDIG is
384 always defined.
385
386 * numbers.c (scm_inexact_p): Simplified.
387
388 * numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
389 scm_product, scm_num2dbl, scm_angle): Reordered dispatch
390 sequence, thereby fixing some comparisons of SCM values with
391 integer constants.
392
393 * numbers.c (scm_divide): Division by zero of inums leads to an
394 error now. (Formerly, an infinite number was returned.)
395
396 Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
397 if a division has a remainder.
398
3a6e6616
GH
3992000-05-02 Gary Houston <ghouston@arglist.com>
400
401 * Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
402
f8de44c1
DH
4032000-05-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
404
405 * numbers.c (scm_logtest, scm_division): Reordered dispatch
406 sequence, thereby fixing some comparisons of SCM values with
407 integer constants.
408
409 * numbers.h (scm_makdbl): Mark as deprecated at the point of
410 declaration.
411
412 * eval.c (SCM_CEVAL, SCM_APPLY), gh_data.c (gh_double2scm,
413 gh_doubles2scm), numbers.c (scm_istr2flo, scm_max, scm_min,
414 scm_sum, scm_difference, scm_product, scm_divide, scm_sys_expt,
415 scm_sys_atan2, scm_make_rectangular, scm_make_polar,
416 scm_real_part, scm_imag_part, scm_magnitude, scm_angle,
417 scm_long2num, scm_long_long2num, scm_ulong2num), ramap.c
418 (ramap_rp, scm_array_map_x), random.c (scm_random,
419 scm_random_uniform, scm_random_normal_vector_x, scm_random_exp),
420 struct.c (scm_struct_ref), unif.c (scm_array_to_list): Replace
421 call to scm_makdbl with a call to scm_make_real or
422 scm_make_complex, depending on whether the imaginary part is known
423 to be zero.
424
7f5fa419
GH
4252000-05-01 Gary Houston <ghouston@arglist.com>
426
0607c109
GH
427 * scmsigs.c: fix the definition of orig_handlers for the case
428 that HAVE_SIGACTION is not defined (thanks to
429 Kalle Olavi Niemitalo).
430
7f5fa419
GH
431 * Makefile.am: remove include_HEADERS (was libguile.h)
432 libguile.h: moved to top level directory.
433
09fb7599
DH
4342000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
435
436 * numbers.c (SCM_SWAP): Moved to the top of the file to allow for
437 a wider use.
438
439 * numbers.c (scm_modulo, scm_gcd, scm_lcm, scm_logand, scm_logior,
440 scm_logxor): Reordered dispatch sequence, thereby fixing some
441 comparisons of SCM values with integer constants.
442
443 * number.c (scm_logtest): Removed some redundant SCM_{N}?IMP
444 tests.
445
89a7e495
DH
4462000-04-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
447
448 * numbers.c (scm_quotient, scm_remainder): Removed code that was
449 conditionally compiled based on BADIVSGNS. BADIVSGNS does not
450 occur anywhere else throughout guile.
451
452 * numbers.c (scm_quotient): Fixed parameter number in error
453 message.
454
455 * numbers.c (scm_remainder): Reordered dispatch sequence.
456
a4fbabb3
GH
4572000-04-25 Gary Houston <ghouston@arglist.com>
458
459 * posix.c (scm_execlp): docstring fix (thanks to Martin
460 Grabmueller).
461
09e4d064
DH
4622000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
463
464 * eval.c (undef_object): Made into a local static variable
465 (suggested by Jost Boekemeier).
466
e59bb516
DH
4672000-04-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
468
469 * pairs.c (cxrs, scm_init_pairs): Simplify initialization of
470 c[ad]+r functions.
471
472 * procs.c (scm_init_iprocs), procs.h (scm_subr, scm_iproc,
473 scm_dsubr, scm_init_iprocs): Removed.
474
475 * procs.h (SCM_SUBRF, SCM_DSUBRF): Access the cell words
476 directly instead of casting a cell to a C struct.
477
820920e6
MD
4782000-04-22 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
479
480 Better modularization of GC extensions through new C level GC
481 hooks:
482
483 * weaks.c (scm_weaks_prehistory): New function: Add
484 scm_weak_vector_gc_init to scm_before_mark_c_hook; Add
485 scm_mark_weak_vector_spines to scm_before_sweep_c_hook.
486 (scm_scan_weak_vectors): New function; added to
487 scm_after_sweep_c_hook.
488
489 * weaks.h (scm_weak_vectors, scm_weaks_prehistory): Added
490 declarations.
491
492 * guardians.h (scm_guardian_gc_init, scm_guardian_zombify): Are
493 now static.
494
495 * guardians.c (scm_guardian_gc_init): Turned into a hook function
496 and added to scm_before_mark_c_hook.
497 (scm_guardian_zombify): Turned into a hook function and added to
498 scm_before_sweep_c_hook.
499
500 * async.c (scm_sys_gc_async_thunk): Run after-gc-hook.
501 Added #include "libguile/gc.h".
502
503 * gc.h: Added #include "libguile/hooks.h".
504
505 * gc.c: Removed #include "libguile/guardians.h".
506 (scm_before_gc_c_hook, scm_before_mark_c_hook,
507 scm_before_sweep_c_hook, scm_after_sweep_c_hook,
508 scm_after_gc_c_hook): New C level hooks.
509 (scm_after_gc_hook): New Scheme level hook.
510 (scm_gc_sweep): Moved scanning of weak vectors to weaks.c.
511 (scm_igc): Moved initialization of scm_weak_vectors and the call
512 to scm_guardian_gc_init to respective module.
513 (scm_mark_weak_vector_spines): Moved to weaks.c;
514 Call to scm_guardian_zombify moved to guardians.c;
515 Run scm_before_gc_c_hook, scm_before_sweep_c_hook,
516 scm_after_gc_c_hook at appropriate places.
517 (scm_init_gc): Initialize scm_after_gc_hook.
518
519 * hooks.c, hooks.h (scm_make_hook_with_name): Removed deprecated
520 function.
521
522 * init.c (scm_boot_guile_1): Added `scm_init_hooks'.
523
524 * Makefile.am: Added hooks.c, hooks.h, hooks.x.
525
526 * feature.c, feature.h: Broke out hook code into separate files.
527
528 * hooks.c, hooks.h: New files.
9764c29b 529
a0599745
MD
530 * *.*: Change includes so that they always use the "prefixes"
531 libguile/, qt/, guile-readline/, or libltdl/.
532 (Thanks to Tim Mooney.)
533
534 * Makefile.am (INCLUDES): Removed THREAD_CPPFLAGS and INCLTDL.
535 (DEFS): Added. automake adds -I options to DEFS, and we don't
536 want that.
537 Removed all -I options except for the root source directory and
538 the root build directory.
539
f4b0c568
MD
540 * numbers.c (scm_odd_p, scm_even_p): Use SCM_WRONG_TYPE_ARG
541 instead of SCM_ASSERT (0, ...). (Some compilers will complain
542 about control reaching end of function otherwise, and, besides,
543 the new code is not less clear.)
544
9764c29b
MD
545 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Added
546 calls to malloc debugging functions.
547
548 * init.c (scm_boot_guile_1): Added calls to debug-malloc init
549 functions.
550
551 * Makefile.am: Added debug-malloc.c, debug-malloc.h,
552 debug-malloc.x.
553
554 * debug-malloc.c, debug-malloc.h: New files.
555
4219f20d
DH
5562000-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
557
558 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p): Added
559 documentation strings.
560
561 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p, scm_abs,
562 scm_quotient): Reordered dispatch sequence to first handle
563 immediates, second handle bignums and finally handle generic
564 functions respectively signal wrong type arguments. Hopefully
565 this will allow for easier separation when goops is integrated.
566
195e6201
DH
5672000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
568
569 * gc.c (which_seg): Use SCM2PTR to convert a non immediate SCM
570 variable into a pointer to a heap cell.
571
572 * gc.c (scm_mark_locations, scm_cellp, init_heap_seg,
573 scm_unhash_name): Remove redundant cast to SCM_CELLPTR.
574
9e882eec
DH
5752000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
576
577 * print.c (scm_iprin1): Don't assign zero to SCM values, use
578 SCM_UNDEFINED instead.
579
580 * weaks.c (scm_make_weak_vector): Fix assignment of zero to a
581 vector element. (Still to be improved)
582
3201d763
DH
5832000-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
584
585 * eval.c (undef_cell): Removed, replaced by:
586
587 (undef_object): Added to replace undef_cell.
588
589 (scm_lookupcar, scm_lookupcar1): Use undef_object.
590
591 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
592 scm_m_atbind, CHECK_EQVISH, SCM_CEVAL), procs.h (SCM_SETCODE):
593 Don't perform arithmetic operations with SCM values.
594
595 * eval.c (scm_lookupcar, scm_lookupcar1, scm_m_atfop,
596 scm_m_atbind, scm_eval_args, scm_deval_args, SCM_CEVAL): Use
597 symbolic names for the tc3 type codes.
598
599 * eval.c (scm_m_define, SCM_CEVAL, SCM_APPLY): Remove redundant
600 cast to SCM.
601
602 * eval.c (scm_eval_args, scm_deval_args, SCM_CEVAL): Made the
603 access of the struct vcell element explicit.
604
f7c38587
MD
6052000-04-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
606
607 * struct.c (scm_struct_free_light, scm_struct_free_standard,
608 scm_struct_free_entity): Use `scm_must_free' instead of `free'.
609
610 * procs.c (scm_make_subr_opt): Tell scm_must_realloc that we're
611 realloc:ing scm_subr_table ("what" instead of "who").
612
613 * numbers.c (scm_adjbig): Ditto.
614
baa702c8
DH
6152000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
616
617 * unif.c (l2ra): Don't eliminate the call to scm_array_set_x
618 itself, as was done in the previous 'patch'. (Thanks to Radey
619 Shouman)
620
fee7ef83
DH
6212000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
622
623 * options.c (scm_options), read.c (recsexpr): Remove redundant
624 SCM_IMP test.
625
626 * print.c (scm_iprin1): Made the access of the struct vcell
627 element explicit.
628
629 * print.h (SCM_PRINT_CLOSURE): Added call to SCM_PACK.
630
631 * ramap.c (scm_ra_eqp, ra_compare), unif.c
632 (scm_uniform_vector_ref, scm_cvref, rapr1): Separated accesses to
633 unsigned long and signed long arrays and clarified the way the
634 access is performed.
635
636 * ramap.c (scm_array_map_x, raeql), read.c (scm_lreadr), stacks.c
637 (narrow_stack), unif.c (scm_cvref, scm_uniform_array_read_x,
638 scm_raprin1): Use SCM_EQ_P to compare SCM values.
639
640 * strings.c (scm_makstr): Treat the msymbol slots as a field of
641 scm_bits_t values.
642
643 * struct.h (SCM_SET_VTABLE_DESTRUCTOR): Treat the struct data as
644 a field of scm_bits_t values.
645
646 * unif.c (l2ra): Don't test result of scm_array_set_x against
647 zero: It is always SCM_UNSPECIFIED.
648
9d0633a8
MD
6492000-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
650
651 * script.c (scm_compile_shell_switches): Also enable
652 record-positions when given the --debug option. (Thanks to Diego
653 Dainese.)
654
230d095f
DH
6552000-04-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
656
657 * print.c (ENTER_NESTED_DATA, print_circref, scm_iprlist):
658 Compare SCM's with SCM_EQ_P.
659
660 * print.c (scm_make_print_state), srcprop.c
661 (scm_source_properties): Use valid scheme object to initialize
662 SCM variable.
663
664 * print.c (scm_iprin1): Remove redundant calls to SCM_UNPACK.
665
c8045e8d
DH
6662000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
667
668 * struct.c (scm_alloc_struct, scm_struct_free_0,
669 scm_struct_free_light, scm_struct_free_standard,
670 scm_struct_free_entity, scm_make_struct, scm_make_vtable_vtable),
671 struct.h (scm_struct_free_t, scm_alloc_struct, scm_struct_free_0,
672 scm_struct_free_light, scm_struct_free_standard,
673 scm_struct_free_entity): Struct data regions (and thus also
674 vtable data regions) are now C arrays of scm_bits_t elements.
675
676 * gc.c (scm_gc_mark, scm_gc_sweep, scm_unhash_name): Made the
677 mixup of glocs and structs explicit.
678
679 * gc.c (scm_unprotect_object): Compare SCM's with SCM_EQ_P.
680
b0c54567
DH
6812000-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
682
683 * eval.c (scm_unmemocar): Use macros to test for gloc cell.
684 Minimize scope of variable 'ir'.
685
686 * eval.h (SCM_IFRAME, SCM_IDIST), weaks.h (SCM_IS_WHVEC_ANY):
687 Added missing call to SCM_UNPACK.
688
b9c90f11
MD
6892000-04-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
690
7aac9824 691 * validate.h (SCM_VALIDATE_INUM_RANGE_COPY,
2891588b 692 SCM_VALIDATE_NUMBER_COPY): New macros.
b9c90f11 693
9ae58e2d
MD
6942000-04-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
695
696 * script.c (scm_compile_shell_switches): Added --debug option.
697
49e12eb3
MD
6982000-04-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
699
700 * vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
701 specified by R5RS).
702
7c1e0b12
MD
7032000-04-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
704
705 * ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
706 (SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
707
708 * validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
709 New macros.
710 Cleanup of code layout.
711
712 * ports.c, ports.h (close-input-port, close-output-port): New R5RS
713 procedures.
714
01c8a3dd
DH
7152000-04-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
716
717 * continuations.c (scm_make_cont, scm_dynthrow): Completely
718 separated implementations for defined (CHEAP_CONTINUATIONS) and
719 !defined (CHEAP_CONTINUATIONS). Also, now using memcpy for stack
720 copying.
721
722 * continuations.c (grow_stack): Renamed from grow_throw.
723
724 * continuations.c (copy_stack_and_call): New static function.
725
726 * continuations.c (scm_dynthrow): Simplified and made static.
727
728 * continuations.h (scm_dynthrow): Made static.
729
553f4414
MD
7302000-04-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
731
732 * unif.c, unif.h (shared-array-root, shared-array-offset,
733 shared-array-increments): New primitives.
734
cf551a2b
DH
7352000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
736
737 * gc.c (scm_gc_sweep): Simplify the computation of freed memory
738 size for msymbols.
739
740 * symbols.h (SCM_SLOTS, SCM_SYMBOL_FUNC, SCM_SYMBOL_PROPS,
741 SCM_SYMBOL_HASH): The msymbol slots are now a field of scm_bits_t
742 values.
743
744 * symbols.h (SCM_SET_SYMBOL_FUNC, SCM_SET_SYMBOL_PROPS): New
745 macros.
746
747 symbols.c (scm_intern_obarray_soft, msymbolize, scm_symbol_fset_x,
748 scm_symbol_pset_x): Use them.
749
750 * symbols.c (scm_symbol_hash): Unpack to access SCM raw data.
751
12a8b769
DH
7522000-04-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
753
754 * ports.c (scm_port_print): The port data is read as raw data.
755
756 * ports.h (SCM_TC2PTOBNUM, SCM_PTOBNUM): Fix SCM/scm_bits_t
757 mismatch.
758
d8c40b9f
DH
7592000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
760
761 * eval.c (SCM_CEVAL), objects.c (scm_mcache_lookup_cmethod,
762 scm_make_subclass_object), objects.h (SCM_CLASS_FLAGS,
763 SCM_ENTITY_PROCEDURE, SCM_ENTITY_SETTER), struct.c
764 (scm_struct_init, scm_struct_vtable_p, scm_make_struct,
765 scm_struct_ref, scm_struct_set_x), struct.h (SCM_STRUCT_DATA):
766 The struct data is now an array of scm_bits_t variables.
767
768 * objects.h (SCM_SET_ENTITY_PROCEDURE): New macro.
769
cf551a2b 770 objects.c (scm_set_object_procedure_x): Use it.
d8c40b9f
DH
771
772 * struct.c (scm_struct_init): Unused variable 'data' removed.
773
774 (scm_struct_vtable_p): Redundant SCM_IMP tests removed.
775
1c3e63f0
DH
7762000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
777
778 * objects.h (SCM_OBJ_CLASS_FLAGS, SCM_OBJ_CLASS_REDEF), struct.h
779 (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_LAYOUT, SCM_STRUCT_VTABLE,
780 SCM_STRUCT_PRINTER): The struct vtable data is now an array of
781 scm_bits_t variables.
782
783 * struct.h (SCM_SET_STRUCT_LAYOUT): New macro.
784
cf551a2b 785 struct.c (scm_make_vtable_vtable): Use it.
1c3e63f0 786
bc66755e
DH
7872000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
788
789 * symbols.c (scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
790 scm_intern_obarray_soft, scm_sysintern0,
791 scm_string_to_obarray_symbol, scm_intern_symbol,
792 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
793 scm_symbol_bound_p, scm_symbol_set_x): Don't use C operators to
794 compare SCM values.
795
828865c3
DH
7962000-04-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
797
798 * numbers.c (scm_quotient, scm_modulo): Reordered to handle the
799 case of immediate numbers parameters first. Also, only use
800 decoded numbers for numerical comparison.
801
1cf49a85
MD
8022000-04-10 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
803
804 * objects.h: Don't redeclare scm_call_generic_0 and
805 scm_apply_generic. (Thanks to Tal Tversky.)
806
dba97178
DH
8072000-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
808
809 * hash.c (scm_hasher): Use symbolic names for the tc3 constants.
810 Unpack SCM value to use it as a switch parameter. Don't cast SCM
811 values to int values.
812
3da01fa3
MD
8132000-04-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
814
815 * coop.c (mother): Handled EINTR (the wait has been interrupted by
816 a signal).
817
451e591c
DH
8182000-04-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
819
820 * __scm.h (SCM_WTA_DISPATCH_[012n]): To test whether a SCM value
821 contains a raw zero value it has to be unpacked.
822
823 * debug.c (with_traps_inner, scm_with_traps): Passing SCM values
824 via void * requires unpacking / packing.
825
826 * stacks.h (SCM_STACKP): Remove unnecessary SCM_NIMP test and use
827 SCM_EQ_P to compare SCM values.
828
829 * stacks.h (SCM_FRAME_VOID_P, SCM_FRAME_REAL_P, SCM_FRAME_PROC_P,
830 SCM_FRAME_EVAL_ARGS_P, SCM_FRAME_OVERFLOW_P): Remove unnecessary
831 call to SCM_UNPACK.
832
833 * tags.h (SCM_NECONSP): Define in terms of SCM_ECONSP
834
835 * tags.h (SCM_ECONSP): Clarify the test for glocs. This is still
836 quite ugly.
837
e94e3f21
ML
8382000-04-05 Michael Livshin <mlivshin@bigfoot.com>
839
840 * async.[ch]: unexpose low-level async access macros (thanks to
841 Dirk Herrmann).
842
843 * validate.h: move async validation macros to async.c (nobody else
844 needs them anyway), and rename them.
845
843e4e9d
ML
8462000-04-04 Michael Livshin <mlivshin@bigfoot.com>
847
848 * async.h: kill the scm_async_t struct. having a heap cell
849 pretending to be a C struct is not helthy, and is not needed here
850 anyway, as asyncs happily fit in one heap cell.
851
852 * async.c: reflect the fact that asyncs are now represented by
853 single heap cell each.
854
873c35ee
GH
8552000-04-04 Gary Houston <ghouston@arglist.com>
856
857 * error.c (scm_syserror): save errno before doing anything else,
858 since it's used in two expressions and may get mutated (thanks to
859 Dirk Herrmann).
860
4260a7fc
DH
8612000-04-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
862
863 * debug.c (scm_procedure_source, scm_procedure_environment),
864 gsubr.c (scm_make_gsubr_with_generic, scm_gsubr_apply), procs.c
865 (scm_procedure, scm_setter): Return valid scheme value as dummy.
866
867 * filesys.c (scm_readdir, scm_rewinddir, scm_closedir,
868 scm_dir_print, scm_dir_free), numbers.h (SCM_COMPLEX_REAL,
869 SCM_COMPLEX_IMAG), regex-posix.h (SCM_RGX), throw.c (JBJMPBUF,
870 SETJBJMPBUF, JBJMPBUF, SETJBJMPBUF, freejb, print_lazy_catch,
871 scm_ithrow), unif.c (scm_uniform_vector_ref, scm_cvref,
872 scm_array_set_x, rapr1), unif.h (SCM_ARRAY_V, SCM_ARRAY_BASE),
873 vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS, SCM_SETVELTS): Use
874 SCM_{SET_}?CELL_WORD* to access cell entries with raw data.
875
876 * filesys.c (scm_closedir), numbers.c (scm_addbig), numbers.h
877 (SCM_SETNUMDIGS), throw.c (JBACTIVE, SCM_JBDFRAME,
878 SCM_SETJBDFRAME): Read and modify data bits in cell entry #0 using
879 SCM_{SET_}?CELL_WORD_0.
880
881 * filesys.c (fill_select_type, retrieve_select_type, scm_select),
882 numbers.c (scm_gcd, scm_lcm, scm_integer_expt, scm_zero_p,
883 scm_product, scm_divide), posix.c (scm_getgrgid), ramap.c
884 (scm_array_fill_int, racp), throw.c (scm_catch, scm_lazy_catch,
885 scm_ithrow), unif.c (scm_make_uve, scm_array_p,
886 scm_transpose_array, scm_array_set_x, scm_bit_set_star_x,
887 scm_bit_count_star, l2ra), variable.c (prin_var,
888 scm_make_variable, scm_make_undefined_variable,
889 scm_builtin_variable), vectors.c (scm_vector_set_length_x),
890 vports.c (sf_flush, sf_close): Don't use C operators to compare
891 SCM values.
892
893 * numbers.c (scm_odd_p, scm_even_p), variable.c (prin_var): Must
894 unpack SCM values to access their raw contents.
895
896 * numbers.c (big2str): Eliminate unnecessary casts to SCM.
897
898 * numbers.h (SCM_NEWREAL), regex-posix.h (SCM_RGXP), vports.c
899 (scm_make_soft_port): Use SCM_{SET_}?CELL_TYPE to access the cell
900 type information.
901
902 * throw.c (printjb): Eliminated unnecessary unpack.
903
904 * variable.c (make_vcell_variable): Smob data is of type
905 scm_bits_t.
906
5b15c3b4
MD
9072000-04-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
908
909 * print.c: Removed promise to rewrite printer code before next
910 release. :)
911
395c8567
MD
9122000-04-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
913
914 * iselect.c (add_fd_sets): Insert empty statement after label.
915 (Thanks to Tim Mooney.)
916
50fecba9
ML
9172000-04-03 Michael Livshin <mlivshin@bigfoot.com>
918
919 * guardians.c (scm_guardian_zombify): mark all zombies in a
920 separate loop after processing all the currently known live
921 guardians, so as to not introduce order dependencies (thanks to
f6e2fd8b 922 Gary Houston). note that the order problems are still there if
843e4e9d 923 some guardians are themselves zombies, but that's a sick case that
f6e2fd8b
ML
924 I'm not going to worry about.
925 also, make another outer loop to process zombified
50fecba9
ML
926 guardians (which are uncovered while marking zombies).
927
54778cd3
DH
9282000-04-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
929
930 * evalext.c (scm_definedp, scm_m_undefine), gc.c
931 (scm_mark_weak_vector_spines, scm_gc_sweep), hashtab.c
932 (scm_hashq_ref, scm_hashv_ref, scm_hash_ref, scm_hashx_ref),
933 keywords.c (scm_make_keyword_from_dash_symbol), lang.c
934 (scm_nil_eq), lang.h (SCM_NILP, SCM_NIL2EOL), load.c
935 (scm_primitive_load), modules.c (scm_module_full_name), objects.c
936 (scm_class_of, scm_mcache_lookup_cmethod, scm_make_class_object),
937 ports.c (scm_close_all_ports_except), ports.h (SCM_EOF_OBJECT_P),
938 print.c (scm_iprin1, scm_prin1, scm_iprlist, scm_simple_format),
939 print.h (SCM_PRINT_STATE_P), procprop.c (scm_i_procedure_arity,
940 scm_stand_in_scm_proc, scm_procedure_property,
941 scm_set_procedure_property_x), procs.c
942 (scm_procedure_documentation), read.c (scm_lreadr, scm_lreadparen,
943 scm_lreadrecparen, scm_read_hash_extend), script.c
944 (scm_compile_shell_switches), srcprop.c (scm_source_property,
945 scm_set_source_property_x), srcprop.h (SCM_WHASHFOUNDP), stacks.c
946 (read_frame, NEXT_FRAME, read_frames, narrow_stack,
947 scm_make_stack, scm_stack_id), strop.c (scm_i_index,
948 scm_string_index, scm_string_rindex), struct.c (scm_struct_init),
949 validate.h (SCM_VALIDATE_BOOL_COPY, SCM_VALIDATE_INUM_DEF,
950 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_PROC,
951 SCM_VALIDATE_ARRAY): Don't use C operators to compare SCM values.
952
953 * feature.c (make_hook), keywords.c
954 (scm_make_keyword_from_dash_symbol), macros.c (scm_makacro,
955 scm_makmacro, scm_makmmacro), print.c (scm_iprin1,
956 scm_printer_apply, scm_port_with_print_state): Smob data is of type
957 scm_bits_t.
958
959 * feature.c (print_hook), gc.c (scm_object_address), hash.c
960 (scm_ihashq, scm_ihashv), print.c (scm_iprin1, scm_ipruk), smob.c
843e4e9d 961 (freeprint), struct.c (scm_print_struct): Must unpack
54778cd3
DH
962 SCM values to access their raw contents.
963
964 * fluids.c (apply_thunk, scm_with_fluids), hashtab.c (fold_proc,
965 scm_hash_fold), load.c (load, scm_primitive_load): Passing SCM
966 values via void * requires unpacking / packing.
967
968 * fports.c (scm_fport_buffer_add, scm_setvbuf), procs.h
969 (SCM_SUBRNUM, SCM_SET_SUBRNUM), srcprop.h (SRCPROPBRK, SRCBRKP):
970 Read and modify data bits in cell entry #0 using
971 SCM_{SET_}?CELL_WORD_0.
972
973 * fports.c (scm_fdes_to_port), gc.c (scm_gc_for_newcell,
974 scm_gc_sweep, init_heap_seg), init.c (start_stack), ports.c
975 (scm_void_port), procs.c (scm_make_subr_opt,
976 scm_make_procedure_with_setter), root.c (scm_internal_cwdr),
977 smob.c (scm_make_smob), strports.c (scm_mkstrport): Use
978 SCM_SET_CELL_TYPE to write the cell type information.
979
980 * gc.c (scm_gc_mark): Use SCM_CELL_OBJECT* to access SCM values
981 from cells that are no scheme pairs.
982
983 * gc.c (scm_gc_sweep), mallocs.c (prinmalloc), mallocs.h
984 (SCM_MALLOCDATA, SCM_SETMALLOCDATA), print.c (scm_ipruk), random.h
985 (SCM_RSTATE), root.h (SCM_ROOT_STATE), smob.c (scm_smob_free),
986 srcprop.c (freesrcprops), srcprop.h (SRCPROPPOS, SRCPROPFNAME,
987 SRCPROPCOPY, SRCPROPPLIST), struct.c (scm_make_struct,
988 scm_make_vtable_vtable): Use SCM_{SET_}?CELL_WORD* to access cell
989 entries with raw data.
990
991 * gc.c (scm_init_storage), sort.c (applyless), strop.c
992 (scm_string_to_list): Eliminate unnecessary casts to SCM.
993
994 * mallocs.c (scm_malloc_obj): Store result of malloc as raw
995 data.
996
997 * ports.c (scm_close_all_ports_except): Duplicate documentation
998 text removed.
999
1000 * print.c (scm_iprin1): Use SCM_ITAG3.
1001
1002 * procs.h (SCM_SET_SUBRNUM): Fix shift direction.
1003
1004 * snarf.h (SCM_GPROC, SCM_GPROC1, SCM_SYMBOL, SCM_GLOBAL_SYMBOL,
1005 SCM_KEYWORD, SCM_GLOBAL_KEYWORD, SCM_VCELL, SCM_GLOBAL_VCELL,
1006 SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Don't initialize globals
1007 and static variables at their point of declaration, but rather in
1008 the init function.
1009
1010 * tags.h (SCM_PACK): Automatically cast to scm_bits_t.
1011
abeed821
GH
10122000-04-02 Gary Houston <ghouston@arglist.com>
1013
1014 * guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
1015 empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
1016 use of an improper list (which breaks g_print. g_print isn't
1017 used).
1018 guardians.c: Added more comments and modified the make-guardian
1019 docstring. Reordered a few procedures.
1020
cf498326
DH
10212000-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
1022
1023 * eval.c (scm_lookupcar1, scm_lookupcar, scm_m_case, scm_m_cond,
1024 scm_m_lambda, iqq, scm_m_define, scm_m_expand_body, unmemocopy,
1025 SCM_CEVAL), procs.h (SCM_TOP_LEVEL): Don't use C operators to
1026 compare SCM values.
1027
1028 (scm_makprom): Smob data is of type scm_bits_t.
1029
cffcab30
DH
10302000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1031
1032 * backtrace.c (display_error_body), debug.c (scm_procedure_source,
1033 scm_reverse_lookup), dynl.c (scm_dynamic_link): Don't use C
1034 operators to compare SCM values.
1035
1036 * debug.c (scm_make_debugobj), debug.h (SCM_DEBUGOBJ_FRAME,
1037 SCM_SET_DEBUGOBJ_FRAME): Update SCM_{SET_}?DEBUGOBJ_FRAME to
1038 access raw cell data with SCM_{SET_}?CELL_WORD_1.
1039
1040 * debug.c (scm_make_debugobj): Don't use SCM_SETCAR to set types.
1041
1042 * debug.c (scm_make_memoized), dynl.c (scm_dynamic_link): Smob
1043 data is of type scm_bits_t.
1044
7fa93bf8
DH
10452000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1046
1047 * gdbint.c (gdb_maybe_valid_type_p), guardians.c (TCONC_EMPTYP,
1048 scm_guardian_zombify): Use SCM_EQ_P to compare SCM values.
1049
1050 * guardians.c (GUARDIAN): Use SCM_CELL_WORD_1 for raw data.
1051
74a16888
DH
10522000-03-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
1053
1054 * ports.h (scm_port): Change type of stream member to scm_bits_t.
1055
1056 * gdbint.c (unmark_port, remark_port), ports.c (scm_markstream),
1057 strports.c (st_resize_port, scm_mkstrport), vports (sf_flush,
1058 sf_write, sf_fill_input, sf_close, scm_make_soft_port): Since
1059 streams are now of type scm_bits_t, SCM streams have to be
1060 unpacked/packed.
1061
1062 * ports.h (SCM_SETPTAB_ENTRY, SCM_SETSTREAM): Cast input to
1063 scm_bits_t.
1064
b6cc0ef6
MD
10652000-03-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1066
6a878357
MD
1067 * coop-defs.h (struct coop_t): Added `sto'-field again because of
1068 binary compatibility---let's remove it next time we alter some
1069 major structure.
1070
b6cc0ef6
MD
1071 * coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
1072 coop_mother, coop_child): New variables.
1073 (mother): New function.
1074 (coop_create): New thread spawning mechanism which uses a "mother
1075 thread". The "dummy" pthreads aren't healthy enough to give birth
1076 to new threads since Linux threads thinks they are asleep.
1077
1078 * coop-defs.h (struct coop_t): Removed dummy_mutex.
1079
1080 * coop-defs.h, coop-threads.c (struct coop_t): Eliminate
1081 `sto'-field when GUILE_PTHREAD_COMPAT is enabled.
1082
843524cc
DH
10832000-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
1084
1085 * arbiters.c (scm_make_arbiter), async.c (scm_async), dynwind.c
1086 (scm_internal_dynamic_wind): Smob data is always of type
1087 scm_bits_t.
1088
1089 * arbiters.c (SCM_ARB_LOCKED, SCM_LOCK_ARB, SCM_UNLOCK_ARB):
1090 Access the locking information in cell entry 0 with
1091 SCM_{SET_}?CELL_WORD_0 instead of SCM_*CAR.
1092
1093 * async.c (scm_run_asyncs): Use SCM_NULLP to test for the empty
1094 list.
1095
1096 * dynwind.c (scm_dowinds): Use SCM_EQ_P to compare SCM values.
1097
1098 * ports.h (SCM_PTAB_ENTRY, SCM_SETPTAB_ENTRY): Access the ptab
1099 entry data using SCM_{SET_}?CELL_WORD_1 instead of SCM_{SET}?CDR.
1100
fbd485ba
DH
11012000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1102
1103 * alist.c (scm_sloppy_assq, scm_assq), eq.c (scm_eq_p, scm_eqv_p,
1104 scm_equal_p), list.c (scm_ilength, scm_last_pair, scm_reverse,
1105 scm_sloppy_memq, scm_delq_x, scm_delq1_x), tags.h (SCM_UNBNDP):
1106 Don't use C operators == and != to compare SCM values, use
1107 SCM_EQ_P instead.
1108
1109 * boolean.c (scm_boolean_p): Use SCM_BOOLP to determine whether a
1110 SCM value is equal to #t or #f.
1111
1112 * eq.c (scm_eqv_p, scm_equal_p): Don't use SCM_CAR to access the
1113 cell type entry of non immediate objects of unknown type. Use
1114 SCM_CELL_TYPE instead.
1115
1116 * gh_data.c (gh_scm2bool, gh_module_lookup), list.c
1117 (scm_sloppy_memv, scm_sloppy_member, scm_delv_x, scm_delete_x,
1118 scm_delv1_x, scm_delete1_x), scmsigs.c (scm_sigaction): Use
1119 SCM_FALSEP and SCM_TRUE_P to compare SCM values against #f and
1120 #t.
1121
1122 * list.c (scm_listify): Use SCM_UNBNDP to test for an unbound
1123 scheme value.
1124
64e3bf6c
MD
11252000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1126
0208baa0
MD
1127 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
1128 scm_make_mutex, scm_make_condition_variable): Cast data to
1129 scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
1130
64e3bf6c
MD
1131 * coop.c (coop_create): Set `specific' field, not `data' to NULL.
1132
94113249
DH
11332000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1134
1135 * smob.h (SCM_NEWSMOB, SCM_NEWSMOB2, SCM_NEWSMOB3, SCM_SMOB_DATA,
1136 SCM_SET_SMOB_DATA, SCM_TC2SMOBNUM, SCM_SMOBNUM): To access smob
1137 data, use SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
1138
1139 Note that this implies that smob data has always to be passed as
1140 values of type scm_bits_t.
1141
1978b33e
MD
11422000-03-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1143
1144 * threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
1145 for scm_tc16_thread. As the current COOP threads are written, GC
1146 is not supposed to manage storage for threads.
1147
1148 * error.c (scm_error): Don't try to throw an error if
1149 scm_gc_heap_lock is true.
1150
1151 * coop.c (coop_finish): New function. Called at exit.
1152 (coop_aborthelp): Free thread structures when threads die.
1153 Finished LinuxThreads compatibility support => COOP threads now
1154 mesh with LinuxThreads.
843e4e9d 1155
1978b33e
MD
1156 * coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
1157 Changed SETCDR --> SET_CELL_WORD_1.
1158
1159 * coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
1160 when thread dies.
1161
dd039d6d
DH
11622000-03-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
1163
1164 * boolean.h (SCM_TRUE_P): New macro.
1165
1166 * boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP), pairs.h
1167 (SCM_NULLP, SCM_NNULLP): Use SCM_EQ_P to compare SCM values.
1168
8b3bda20
DH
11692000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1170
1171 * continuations.h (SCM_CONTREGS, SCM_SET_CONTREGS): New macros to
1172 access continuation data.
1173
1174 (SCM_SETJMPBUF): Deprecated. Use SCM_SET_CONTREGS instead.
1175
1176 (SCM_JMPBUF, SCM_DYNENV, SCM_THROW_VALUE, SCM_BASE, SCM_SEQ,
1177 SCM_DFRAME): Use SCM_CONTREGS instead of SCM_CHARS to access
1178 continuation data.
1179
843e4e9d 1180 * continuations.c (scm_make_cont), init.c (start_stack),
8b3bda20
DH
1181 root.c (scm_internal_cwdr): Use SCM_SET_CONTREGS instead of
1182 SCM_SETJMPBUF.
1183
3210f49a
DH
11842000-03-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
1185
1186 * symbols.h (SCM_LENGTH, SCM_SETLENGTH): Access the length field
1187 of strings and symbols by using SCM_{SET_}?CELL_WORD_0.
1188
1189 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS): Use SCM_{SET_}?CELL_WORD_1
1190 to access the char * field of strings and symbols.
1191
2d67e390
DH
11922000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1193
1194 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Use SCM_SET_CELL_TYPE to set
1195 the type entry of a new cell. Added a comment about things to
1196 remember when updating the list of free cells.
1197
1198 (SCM_FREEP, SCM_MARKEDP): Use SCM_CELL_TYPE to access the type
1199 entry of a cell.
1200
76a369d9
DH
12012000-03-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
1202
1203 * pairs.h (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): Use
1204 SCM_CELL_OBJECT and SCM_SET_CELL_OBJECT. This change implies that
1205 with strict type checking enabled these macros will only work if
1206 given valid SCM parameters.
1207
3210f49a 1208 (SCM_GCCDR): Moved to tags.h.
76a369d9
DH
1209
1210 * tags.h (SCM_GCCDR): Moved here from pairs.h.
1211
2549a709
DH
12122000-03-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1213
1214 * tags.h (SCM2PTR, PTR2SCM): Moved to gc.h.
1215
1216 * pairs.h (scm_cell, SCM_CELLPTR, SCM_CELL_WORD*, SCM_CELL_OBJECT*,
1217 SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*, SCM_CELL_TYPE,
1218 SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK, SCM_PTR_GT,
1219 SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC, SCM_NEWCELL,
1220 SCM_NEWCELL2): Moved to gc.h.
1221
1222 (SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR, SCM_SETAND_CDR,
1223 SCM_SETOR_CAR, SCM_SETOR_CDR): Moved to gc.h. These names should
1224 be changed, though, since the macros are not only pair related.
1225
1226 (SCMPTR): Deleted.
1227
1228 * gc.h (SCM2PTR, PTR2SCM, scm_cell, SCM_CELLPTR, SCM_CELL_WORD*,
1229 SCM_CELL_OBJECT*, SCM_SET_CELL_WORD*, SCM_SET_CELL_OBJECT*,
1230 SCM_CELL_TYPE, SCM_SET_CELL_TYPE, SCM_PTR_LT, SCM_PTR_MASK,
1231 SCM_PTR_GT, SCM_PTR_LE, SCM_PTR_GE, SCM_CELL_WORD_LOC,
1232 SCM_NEWCELL, SCM_NEWCELL2, SCM_CARLOC, SCM_CDRLOC, SCM_SETAND_CAR,
1233 SCM_SETAND_CDR, SCM_SETOR_CAR, SCM_SETOR_CDR): Moved here from
1234 tags.h and pairs.h.
1235
8d3356e7
DH
12362000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1237
1238 * tags.h (SCM_STRICT_TYPING): New macro that, if defined,
1239 activates strict compile time type checking for variables of
1240 type SCM.
1241 (SCM, SCM_PACK, SCM_UNPACK): Define according to whether
1242 SCM_STRICT_TYPING or SCM_VOIDP_TEST are defined.
1243 (SCM_EQ_P): Defined as a macro equivalent for eq?.
1244
96f6f4ae
DH
12452000-03-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
1246
1247 * tags.h (SCM_POINTERS_MUNGED): Removed.
1248
1249 * gc.c (scm_gc_sweep, init_heap_seg): Removed use of
1250 SCM_POINTERS_MUNGED, thus fixing some illegal casts to SCM.
1251
0cbaaf0b
DH
12522000-03-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
1253
1254 * pairs.h (SCM_CELL_OBJECT, SCM_CELL_OBJECT_[0-3],
1255 SCM_SET_CELL_OBJECT, SCM_SET_CELL_OBJECT_[0-3], SCM_CELL_TYPE,
1256 SCM_SET_CELL_TYPE): Added a set of low level macros for accessing
1257 cell entries.
1258 (SCM_CELL_WORD_[0-3]): Renamed from the SCM_CELL_WORD[0-3].
1259
1260 * procs.h, procs.c: Instead of SCM_{SET_}?CELL_WORD[12], use the
1261 newly introduced SCM_{SET_}?CELL_OBJECT_[12] macros.
1262
7284d584
MD
12632000-03-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1264
1265 * tags.h: Disabled definition of SCM_VOIDP_TEST.
1266
1267 Defining SCM as void * introduces problems which haven't been
1268 handled yet. Developers who work with these issues can enable it
1269 in their working copies.
1270
1271 Disabling this definition exposes a set of newly introduced and
1272 older misuses of types which causes warning messages during
1273 compilation. We'll fix this successively.
1274
1275 * gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
1276 in order to obtain a value of type SCM.
1277 (scm_cellp): Updated with new changes to scm_mark_locations.
1278
1279 * continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
1280
2f9055ea
MD
1281 * continuations.c (scm_make_cont): Removed cast of size_t into
1282 long.
1283
7284d584
MD
1284 * symbols.h (SCM_SETCHARS): Cast second arg into SCM.
1285
f81e080b
DH
12862000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1287
1288 * numbers.h (SCM_SETNUMDIGS): Use SCM_BIGSIZEFIELD macro for
1289 shifting, not constant. Thanks to Dale P. Smith.
1290
1291 * numbers.c (scm_sum, scm_difference): Don't test a SCM value
1292 for being less than zero. Decode it to a C value first. Again,
1293 thank you Dale.
1294
1ff2fa6e
DH
12952000-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
1296
1297 * numbers.h, ramap.c, struct.h, vectors.h: Don't use SCM2PTR for
1298 non scheme values. If raw data is stored in SCM variables, it has
1299 to be accessed using SCM_UNPACK until a better solution is found.
1300
3920465b
MD
13012000-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1302
6f29dc6d
MD
1303 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
1304 pointer-arithmetic induced by the SCM_PACK/UNPACK change.
1305
1306 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections.
1307
1308 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections.
1309
1310 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections.
1311
1312 * dynwind.c (scm_swap_bindings): SCM_PACK/UNPACK corrections.
1313
3920465b
MD
1314 * async.c, __scm.h: Removed lots of the old async click logic. It
1315 is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
1316 __scm.h. Let's try this out and dump the old code after the
1317 threads reorganization.
1318 (set-tick-rate, set-switch-rate): Conditionally removed.
1319
90cca6f9
MD
13202000-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1321
1322 * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
1323 made SCM values into pointers. This turned an arithmetic
1324 computation of the address of the vcell into a pointer-arithmetic
1325 one, thereby screwing up marking of structs.
1326 Bugfix 2: Removed incompletely introduced loop variable `j' used
1327 when protecting the tail array of a struct.
1328
8246bf3e
DH
13292000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1330
1331 * struct.h (SCM_STRUCT_DATA): Don't cast SCM values to pointers.
1332
95c9e176
DH
13332000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1334
1335 * symbols.h, symbols.c (scm_strhash): Declare the string
1336 parameter as constant, since it is not modified.
1337
1338 * symbols.c (scm_intern_obarray_soft,
1339 scm_sysintern0_no_module_lookup): Can now pass constant strings
1340 to scm_strhash without need for casting.
1341
7352d0b2
DH
13422000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
1343
1344 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
1345 values to pointers. Use SCM2PTR instead.
1346
b00c8cdc 13472000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
1348
1349 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
1350 results of SCM_INUM.
1351
df2d5178
MD
13522000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1353
bd54e664
MD
1354 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
1355 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
1356 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
1357
1358 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
1359 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
1360 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
1361 gc_trigger, adjust_gc_trigger.
1362
df2d5178
MD
1363 * gc.c (alloc_some_heap): Further improvement of minimal heap size
1364 prediction.
1365 (SCM_MAX): New macro.
1366 (scm_freelist_t): New field: collected_1. Previous amount of
1367 collected cells.
1368 (gc_sweep_freelist_finish): Trigger based on two last values of
1369 freelist->collected to avoid unnecessary allocation due to
1370 temporary peaks.
bd54e664
MD
1371 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
1372 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
1373 without extra heap allocation.
df2d5178 1374
f2961ccd
DH
13752000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1376
1377 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
1378 already be a C value. No need to unpack it.
1379
3210f49a 1380 * numbers.c (scm_long_long2num): Cast the parameter to scm_bits_t
f2961ccd
DH
1381 if we know it fits into an inum.
1382
1383 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
1384 field of long values. In contrast, SCM_VELTS accesses a field of
1385 SCM values.
1386
7b4cc831
MD
13872000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1388
f1d316dd
MD
1389 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
1390 etc.
80770ddc
MD
1391 (scm_gc_yield_1): New variable: Holds previous yield. Used to
1392 make better judgements.
f1083dd7
MD
1393 (gc_sweep_freelist_finish): Inserted explanation of use of
1394 gc_trigger.
f1d316dd
MD
1395
1396 * print.h, stacks.h, options.c, options.h: Changed C++
1397 commentaries to C.
7b4cc831 1398
7a710745
DH
13992000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1400
1401 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
1402
1403 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
1404 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
1405 SCM_UNPACK / SCM2PTR correctly.
1406
1ef20c80
MD
14072000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1408
1409 * gc.c (adjust_gc_trigger): Improved documentation.
1410 (alloc_some_heap): Since gc_trigger is used against
1411 freelist->collected, this is the value which should be used to
1412 predict minimum growth.
1413
b464b970
DH
14142000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1415
1416 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
1417 Thien-Thi Nguyen for the patch.)
1418
3ab9f56e
DH
14192000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
1420
1421 * numbers.c (scm_ash): Fixed typing problems with the second
1422 parameter and added some documentation. (Thanks Thien-Thi Nguyen
1423 for indicating the problem.)
1424
05bc3265
MD
14252000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1426
78a4915a
MD
1427 * gc.c, gc.h (scm_gc_yield): New variable.
1428 (adjust_gc_trigger): Use scm_gc_yield.
1429 (alloc_some_heap): Use scm_gc_yield instead of
1430 scm_gc_cells_collected.
1431
05bc3265
MD
1432 * coop-threads.c: Addd #include "root.h", #include "strings.h".
1433
1434 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
1435
1436 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
1437 trigger adjustmeant: Take yield (freed cells) for all freelists
1438 into account.
1439 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
1440 to 50000 cell heap with 45% trigger.
1441 (scm_gc_cells_collected): Reintroduced.
1442 (SCM_HEAP_SIZE): New macro.
1443 (scm_gc_sweep): Reintroduced correct computation of
1444 scm_cells_allocated.
1445 (scm_freelist_t): Corrected commentary for field `cluster_size':
1446 Clustersize counts objects, not cells; New member
1447 `clusters_allocated'.
1448
89e00824
ML
14492000-03-19 Michael Livshin <mlivshin@bigfoot.com>
1450
1451 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
1452 indentation style.
1453
afcfc5bb
MD
14542000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1455
1456 * threads.h: Added #include "libguile/throw.h". (Thanks to
1457 Thien-Thi Nguyen.)
1458
a00c95d9
ML
14592000-03-18 Michael Livshin <mlivshin@bigfoot.com>
1460
50fecba9
ML
1461 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros (bad
1462 names, anyone got any better ones?)
a00c95d9
ML
1463
1464 * gc.h: (typedef struct scm_freelist_t) remove from here.
1465
50fecba9 1466 * gc.c: (CELL_UP, CELL_DN) made these macros take additional
a00c95d9
ML
1467 parameter (the span).
1468 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
50fecba9 1469 (typedef struct scm_freelist_t) moved here from gc.h, it had no
a00c95d9
ML
1470 business being externally visible.
1471 (typedef struct scm_heap_seg_data_t) renamed from
1472 scm_heap_seg_data, to be style-compliant.
1473 (scm_mark_locations) if the possible pointer points to a
50fecba9
ML
1474 double-cell, check that it's properly aligned.
1475 (init_heap_seg) align double-cells properly, work with the
1476 assumption that the segment size divides cleanly by cluster size.
a00c95d9
ML
1477 (round_to_cluster_size) new function.
1478 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
1479 to satisfy the new init_heap_seg invariant.
1480
28b3236d
DH
14812000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1482
1483 * _scm.h: Don't include async.h everywhere...
1484
1485 * eq.c eval.c iselect.c: ... only include it here.
1486
ba11fd4c
DH
14872000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
1488
1489 * _scm.h: Don't include root.h everywhere...
1490
1491 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
1492 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
1493 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
1494 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
1495 variable.c vectors.c vports.c: ... only include it here.
1496
7ab3fdd5
DH
14972000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1498
1499 * _scm.h: Don't include strings.h everywhere...
1500
1501 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
1502 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
1503 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
1504 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
1505 symbols.c unif.c vectors.c version.c vports.c: ... only include it
1506 here.
1507
f04d8caf
DH
15082000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1509
1510 * _scm.h: Don't include ports.h everywhere...
1511
1512 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
1513 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
1514 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
1515 stackchk.c strports.c struct.c throw.c variable.c: ... only
1516 include it here.
1517
003d1fd0
DH
15182000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1519
1520 * _scm.h: Don't include vectors.h everywhere...
1521
1522 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
1523 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
1524 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
1525 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
1526 here.
1527
0fa27efa
DH
15282000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1529
1530 * genio.h: removed. (Only content was '/* delete me */'.)
1531
1532 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
1533 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
1534 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
1535 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
1536 Removed reference to genio.h
1537
148f31de
MD
15382000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1539
1540 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
1541 Cluster sizes are now independent of GC trigger values.
1542 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
1543 A negative integer gives fraction of total heap size in percent.
1eb489a2 1544 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
1545
1546 * init.c (scm_boot_guile_1): Introduced new variable
1547 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
1548 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
1549 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
1550
6d0f81dd 15512000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 1552
6d0f81dd
MD
1553 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
1554 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
1555 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
1556 the default, but I'll let this change stay in CVS Guile since this
1557 code is not expected to contain serious bugs.
a00c95d9 1558
17351a6f 15592000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 1560
6c7c449e
MD
1561 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
1562 defined.
5a551542
MD
1563 (scm_free_list_length): New procedure (GUILE_DEBUG).
1564 Fixed a small but serious bug introduced by the previous change.
1565
17351a6f
MD
1566 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
1567 loop and declare as register.
6c7c449e 1568
c5133dc9
MD
1569 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
1570 after GC.
1571
3820581c
GB
1572Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1573
1574 * fluids.c: Docstring patch from Keisuke Nishida. Some
1575 reindentation, too, and a couple formals renamed. Should
1576 fluid-set! return UNSPECIFIED instead of a value?
1577
1578Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1579
1580 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 1581 generate the latter from the concrete listing of the former. Then
3820581c
GB
1582 make guile-procedures.txt depend on DOT_DOC_FILES instead of
1583 *.doc, so that rebuilding it works.
1584
dd6390bf
GB
1585Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
1586
1587 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
1588
1589 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
1590 with nothing and \n, respectively. Thanks Keisuke Nishida for
1591 noticing this problem.
1592
4fdb0ae2
MD
15932000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1594
1595 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
1596 new way of allocating heap. It makes Guile fast, but still
1597 contains bugs.
1598
1599 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
1600 allocating heap. The basic idea is to trigger GC every Nth
1601 allocated cell and grow heap when free list runs out. The scheme
1602 has been extended so that GC isn't triggered until all remaining
1603 cells are used. The implementation is also prepared for
1604 development in the direction of POSIX threads.
1605
1606 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
1607 SCM_EXPHEAP should return half of the heap size.
1608
3d8d1283
MD
16092000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1610
5f4edb86
MD
1611 The following change to init.c is only enabled if Guile was
1612 configured with --enable-guile-debug.
a00c95d9 1613
5f4edb86
MD
1614 * init.c (scm_i_getenv_int): New function.
1615 (scm_boot_guile_1): Use the environment variables
1616 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
1617 they exist. (This may be replaced by a Scheme level mechanism in
1618 the future.)
1619
3d8d1283 1620 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 1621 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 1622
b0e37c83
MD
16232000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1624
1625 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 1626 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 1627
16d35552
MD
16282000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1629
5ebf0091
MD
1630 * init.c (scm_boot_guile_1): Use same initial segment size for
1631 1-word and 2-word segments. Having the smaller size causes Guile
1632 to GC too often. Obviously something needs to be done to allow
1633 for a smaller 2-word segment without this to happen. (The amount
1634 of heap for each type should be automatically adapted to the
1635 application somehow.)
1636
31ed4cff
MD
1637 [Almost all of these changes should be documented in the NEWS
1638 file.]
1639
cf2c7413
MD
1640 * gc.h (scm_freelist_t): New type.
1641
1642 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
1643
1644 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
1645 all of Guile basics fits into one segment and there suitable room
1646 for work.
1647 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
1648 instead of 2.
1649 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
1650 Freelists now contains information about object span, cells
1651 collected and amount of cells in heap segments belonging to the
1652 list.
1653 (scm_heap_size, scm_gc_cells_collected): Removed.
1654
1655 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
1656
16d35552
MD
1657 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
1658 number.
1659
cf2c7413 1660 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
1661 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
1662 rewrite of handling of real and complex numbers.
1663 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
1664 removed along with the support for floats. (Float vectors are
1665 still supported.)
1666
1667 * tags.h (scm_tcs_bignums): Removed.
1668 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
1669 Use SCM_BIGSIGN(x) to test for sign!
1670 (scm_tc16_big): The new bignum type.
1671 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
1672
1673 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
1674 (scm_makdbl): Deprecated.
1675 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
1676 (SCM_SINGP): Deprecated.
1677 (SCM_FLO): Removed.
1678 (SCM_INEXP, SCM_CPLXP): Deprecated.
1679 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
1680 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
1681 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
1682 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
1683 for doubles and complex numbers.
1684 (SCM_REAL_VALUE): New selector for doubles.
1685 (scm_double_t, scm_complex_t): New types.
1686 (scm_dbl): Removed.
1687
1688 * numbers.c (scm_floprint, scm_floequal): Removed.
1689 (scm_print_real, scm_print_complex, scm_real_equalp,
1690 scm_complex_equalp): New functions.
1691
1692 * unif.c (scm_makflo): Removed.
1693
1694 * smob.h (SCM_SMOB_PREDICATE): New macro.
1695 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
1696 SCM_RETURN_NEWSMOB3): New macros.
1697
16981999-11-21 Michael Livshin <mlivshin@bigfoot.com>
1699
1700 The following changes implement primitive support for double cells
1701 (i.e. four-word cells) and change the representation of some
1702 things to multi-cells instead of cons+malloc. (Applied and
1703 modified by mdj.)
1704
1705 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
1706 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
1707 multi-cell access macros (used by the ones below).
1708 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
1709 macros.
1710
1711 * gc.c (scm_freelist2): multi-cell freelists.
1712 (inner_map_free_list): map_free_list, parameterized on ncells.
1713 "nn cells in segment mm" was misleading for ncells > 1; changed to
1714 "objects". still print cells too, though.
1715 (scm_map_free_list): rewritten using inner_map_free_list.
1716 (scm_check_freelist): get freelist as parameter, since now we have
1717 more than one.
1718 (scm_debug_newcell2): multi-cell variants of
1719 scm_debug_newcell.
1720 (scm_gc_for_newcell): take ncells and freelist pointer as
1721 parameters.
1722 (scm_gc_mark): add case for tc7_pws (procedures with setters are
1723 now double cells).
1724 (scm_gc_sweep): don't free the float data, since it's not malloced
1725 anymore.
1726 (init_heap_seg): didn't understand what n_new_objects stood for,
1727 so changed to n_new_cells.
1728 (make_initial_segment): new function, makes an initial segment
1729 according to given ncells.
1730 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
1731
1732 * numbers.c (scm_makdbl): no malloc'ing needed, so the
1733 {DEFER,ALLOW}_INTS thing removed.
1734
1735 * numbers.h (struct scm_dbl): changed to represent a double cell,
1736 with the number in the second half.
16d35552
MD
1737
1738 * dynwind.c: changed the wind-guards representation to double
1739 cell.
1740
1741 * procs.c, procs.h: changed the procedure-with-setter representation
1742 to double cell.
1743
1744 * async.c, async.h: made async representation a double cell.
1745
16d35552 1746 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 1747
b70ecbd0
GH
17482000-03-13 Gary Houston <ghouston@arglist.com>
1749
1750 * ports.c (flush_void_port): renamed to flush_port_default.
1751 (end_input_void_port): renamed to end_input_default.
1752
1753 * init.c (scm_standard_stream_to_port): create a void port instead
1754 of opening /dev/null if the standard file descriptors are bad.
1755 advantages: no portability problems, doesn't waste a file descriptor,
1756 simplifies the code (thanks to Marius for the idea).
1757
1758 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
1759
1760 * void ports: make reading from a void port give EOF instead of
1761 segv:
1762 * ports.c (s_scm_sys_make_void_port): modified docstring.
1763 (fill_input_void_port): new proc.
1764 (scm_init_ports): set up fill_input_void_port.
1765 * ports.c (scm_port_non_buffer): new proc.
1766 (scm_void_port): call scm_port_non_buffer.
1767
1768 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
1769 which was incorrectly appended.
1770
fdc7ea2d
MD
17712000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1772
1773 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
1774 that we can't use autoconf for this. Autoconf itself relies on
26fba922 1775 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 1776 Herrman.)
a00c95d9 1777
68933ba3
MD
17782000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1779
b44a555a
MD
1780 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
1781 EXTRA_libguile_la_SOURCES.
1782
1783 * iselect.h: Always declare scm_internal_select.
1784
1785 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
1786 end. Also let scm_internal_select be a real function also when
1787 not using threads.
1788
68933ba3
MD
1789 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
1790
c7f6ea11
MD
17912000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1792
1793 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
1794 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
1795 and kind of an experiment: Will this cause problems?)
1796
62dbc244
GB
1797Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1798
1799 * Makefile.am: Added *.doc to DISTCLEANFILES.
1800
4f2f645d
GH
18012000-03-12 Gary Houston <ghouston@arglist.com>
1802
1803 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
1804 the fdes is valid before doing anything else. check that
1805 the file descriptor supports the modes required.
1806 (scm_fport_buffer_add): don't throw an error if fstat doesn't
1807 work: just use the default buffer size.
1808
1809 * throw.c: change an outdated comment about scm_internal_catch
1810 BODY: it doesn't take a jumpbuf arg.
1811
1812 * init.c (scm_standard_stream_to_port): install a handler in case
1813 scm_fdes_to_port throws an error. don't check here whether the
1814 file descriptor is valid, since scm_fdes_to_port will do that.
1815 set the revealed count depending on whether the port got the
1816 standard file descriptor.
1817 (stream_body_data): new type.
1818 (stream_body, stream_handler): new procs.
1819
7f782a0a
MD
18202000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1821
67673f75
MD
1822 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
1823 Renamed from SCMWORD.
1824
1825 * tags.h (SCM_NCELLP): Removed (SCMWORD).
1826
f1267706 1827 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 1828
74a426ae
MD
1829 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
1830 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
1831 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
1832 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
1833 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
1834 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
1835 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 1836 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
1837 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
1838
7f782a0a
MD
1839 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
1840
1841 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
1842 tags.h: Fixed copyright notices.
1843
1844 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 1845
7f782a0a 18462000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 1847
0cd87628
MV
1848 * init.c (scm_standard_stream_to_port): Check whether the file
1849 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 1850
f3b5e185
MD
18512000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1852
1853 * coop-defs.h (struct timespec): Conditionally defined.
1854
1855 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
1856 instead of ETIME.
38eca29b
MD
1857
1858 * readline.c (match_paren): Bugfix: First arg to select is not
1859 number of descriptors but the number of the highest descriptor +
1860 1.
1861
1862 This is a preliminary attempt at a cleanup of the threads support
1863 code. It moves things to better places, makes arguments more
1864 consistent with the POSIX API (which is used in GNOME's glib), and
1865 adds new functionality.
a00c95d9 1866
38eca29b
MD
1867 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
1868
1869 * coop-defs.h (scm_mutex_trylock): New macro: alias for
1870 coop_mutex_trylock.
1871 (scm_cond_init): Changed definition to
1872 coop_new_condition_variable_init.
a00c95d9 1873
38eca29b
MD
1874 * coop.c: #include <errno.h>
1875 (coop_timeout_qinsert): Moved here from iselect.c
1876 (coop_new_mutex_init, coop_new_condition_variable_init): New
1877 functions. The strange names are temporary. Use scm_mutex_init
1878 and scm_cond_init instead.
1879 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
1880 is ANSI C, but should we check for individual error codes in
1881 configure.in?
1882 (coop_condition_variable_timed_wait_mutex): New function.
1883 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 1884 coop_key_delete): New functions.
38eca29b
MD
1885
1886 * iselect.c (coop_timout_qinsert): Moved to coop.c
1887
32e1616c
MD
18882000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1889
1890 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
1891 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
1892
1893 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
1894 Layout cleanups.
1895
1896 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
1897 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
1898 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
1899
1900 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
1901 dealing with ilocs.
1902
d5c39069
GB
19032000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1904
1905 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
1906 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
1907 logical functions from SCM.
1908
1909 (logand, logior, logxor, logtest, logbit?): Extended scheme
1910 logical functions to use bignums from SCM.
1911
1912 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
1913 lognot from using bignums.
1914
3e892913
GB
1915Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1916
a00c95d9 1917 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
1918 eliminating some warnings.
1919
1920 * unif.c, strports.c, print.c, options.c: Fix some warnings on
1921 mis-use of SCM/long
1922
1923 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
1924 what the scm_return_first* functions do.
1925
7ac030d6
GB
19262000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
1927
1928 * libguile/*.[ch]: make a distinction between SCM as a generic
1929 name for a Scheme object (now a void*), and SCM as 32 bit word for
1930 storing tags and immediates (now a long int). Introduced
1931 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
1932 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 1933
f635d2d4
GB
1934Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
1935
1936 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
1937 various logXXX primitives. Thanks Eric Moore!
1938
9eaa7fb6
GB
1939Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
1940
1941 * run-test, remaining-docs-needed: Added these scripts. The
1942 second one is only temporary until the docstring additions are
1943 complete. run-test may best live on, but is here mostly for
1944 convenience and awareness for now.
1945
1946 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
1947
49673698
GB
1948Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
1949
1950 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
1951 displaying the expected type. Use SCM_LISTn in a couple places
1952 instead of scm_cons-ing by hand.
1953
1954 * __scm.h: Added SCM_ASSERT_TYPE macro.
1955
1956 * validate.h, scm_validate.h: Added the former, as a renamed
1957 version of the latter with SCM_ASSERT_TYPE used in
1958 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
1959
1960 * Makefile.am: Rename scm_validate.h to validate.h.
1961
1962 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
1963 prefix was superfluous).
1964
417bdef8
GB
1965Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1966
1967 * hashtab.c: Improved documentation for lots of functions. Added
1968 handwritten docs for `hash-fold'.
1969
1970Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
1971
1972 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
1973
26a760c6
GB
1974Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
1975
a00c95d9 1976 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
1977 added append docs from R4RS.
1978
1979 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
1980 Thanks Dirk Hermann!
1981
1982 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
1983 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 1984
26a760c6
GB
1985 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
1986 Drop use of SCM_P for function prototypes... assume an ANSI C
1987 compiler. Thanks Dirk Hermann!
1988
898942f8
GB
1989Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
1990
1991 * ports.c: Made `set-port-column!' and `set-port-line!' each
1992 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
1993 that caused a seg fault. Also fixed `set-port-column!'s
1994 docstring. Thanks Han-Wen Nienhuys for finding the bug!
1995
84a3df2c
GB
1996Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
1997
1998 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 1999 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
2000 strings.c, variable.c: Added lots of documentation, cleaned up
2001 some existing documentation. Occasionally changed formal params
2002 to match docs. Also folded an #ifdef into the inners of a
2003 primitive instead of having two copies of the primitive
2004 (`get-internal-real-time', from stime.c)
2005
2006Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2007
2008 * ports.c: Added docs for primitives missing them. Written by
2009 hand.
2010
3f557de6
GB
2011Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
2012
2013 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
2014 just execing guile-func-name-check. Thanks Michael Livshin!
2015
ddcccdb3
GB
2016Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2017
2018 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
2019 dead code. Patch from Michael Livshin.
2020
2021 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
2022 Michael Livshin.
2023
720e8692
GH
20242000-02-09 Gary Houston <ghouston@arglist.com>
2025
2026 * init.c (scm_init_standard_ports): when stdout is a tty, make the
2027 current-output-port unbuffered by default. this is less confusing
2028 for interactive use. it was line-buffered because of a
2029 performance problem with unbuffered ports, but I think it will be
2030 OK now.
2031
43ff3170
GH
20322000-02-08 Gary Houston <ghouston@arglist.com>
2033
2034 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
2035 is not defined.
2036
2037 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
2038 HAVE_TZNAME are defined, use an empty string instead of giving two
2039 spurious compile-time errors.
2040
4ba47302
GB
2041Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2042
2043 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
2044 Thanks Richard!
2045
09a617f7
GB
2046Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
2047
2048 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
2049
9dbcf010
GB
2050Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
2051
2052 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
2053 (which is GNU GPL'd).
2054
bd9e24b3
GH
20552000-01-31 Gary Houston <ghouston@arglist.com>
2056
2057 * strings.h: don't use SCM_P. don't include <string.h>.
2058 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 2059
bd9e24b3
GH
2060 * strings.c (scm_string_ref): make the 2nd argument compulsory.
2061 previously it defaulted to zero for no good reason that I can see.
2062 use a local variable for SCM_INUM (k). replace
2063 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
2064
2065 (scm_makfromstr): cosmetic changes.
2066
2067 (scm_string): Accept only chars in the list, not strings, for
2068 conformance to R5RS (particularly for list->string, which is
2069 supposed to be the inverse of string->list.) remove
2070 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
2071 scm_makstr handles the cell allocation. when reporting wrong-type
2072 arg, don't report the position as 1.
2073
2074 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
2075
28d77376
GH
20762000-01-29 Gary Houston <ghouston@arglist.com>
2077
ae1b098b
GH
2078 * posix.c (scm_pipe): rewrote the docstring.
2079
28d77376
GH
2080 * filesys.c (scm_select, retrieve_select_type, get_element,
2081 fill_select_type, set_element): modified so that Scheme
2082 "select" tests port buffers for the ability to provide input
2083 or accept output. Previously only the underlying file descriptors
2084 were checked. Rewrote the docstring.
a00c95d9 2085
7f1497ce
GB
2086Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
2087
2088 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
2089 from Gregg Reynolds. Thanks Gregg!
2090
2288ff9b
GB
2091Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2092
2093 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
2094 adding "x" prefix to the line so that guile-func-name-check
2095 doesn't complain unnecessarily.
2096
349af6dd
GB
2097Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
2098
2099 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
2100 for maintainability.
2101
2102 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
2103 from qdocs, RnRs.
2104
a28eb127
GB
2105Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
2106
a00c95d9 2107 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
2108 suggests removing tag.c altogether (and using a new `class-of'
2109 instead).
2110
2111 * strings.c: Added documentation from Gregg A. Reynolds. Edited
2112 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 2113 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
2114 (rnrs) note.
2115
2116 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
2117 function with scm_make_subr_opt w/ last arg of 0 so it is not
2118 visible at the Scheme level. Mikael says that this is the right
2119 thing because the first arg to the proc is the guts of a compiled
2120 closure and shouldn't be exposed to the Scheme level.
2121
ac2259fc
GB
2122Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
2123
2124 * sort.c: typo in comment fixed.
2125
2126 * keywords.c: Added documentation.
2127
2128 * guardians.c: Added documentation (could be better).
2129
2130 * gc.c: Added docs for gc-set-debug-check-freelist.
2131
2132 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
2133
2134 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 2135
d928e0b4
GB
2136Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
2137
2138 * random.c: Added documentation, from SLIB page:
2139 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
2140
2141Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
2142
2143 * variable.c, version.c: Added documentation, written by hand
2144 since I could not find anything already written that was
2145 relevant.
2146
d831b039
GH
21472000-01-23 Gary Houston <ghouston@arglist.com>
2148
a00c95d9 2149 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
2150 not defined (thanks to Richard Y. Kim).
2151
88ec97ad
GB
2152Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2153
2154 * Makefile.in: Removed, this is auto-generated.
2155
078e9092
GB
2156Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
2157
2158 * list.c: Put some variable initialization code at the point of
2159 declaration; Added a comment for list*; Formatting changes.
2160
2161 * load.c: use SCM_NNULLP to make sure the end of a list is not
2162 reached yet.
2163
e7a96050
MD
21642000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2165
a177af34
MD
2166 * backtrace.c (scm_display_error_message): Bugfix: Don't use
2167 result of scm_list_p as C boolean.
2168 (scm_display_error_message, scm_set_print_params_x): Use new
2169 validation macros. (Thanks to Dirk Herrmann.)
2170
d06bcb02
MD
2171 * net_db.c (scm_resolv_error): Cast result from hstrerror.
2172
2173 * strports.c (st_end_input): Inserted parenthesis to get operator
2174 grouping correct.
2175
2176 * list.h (scm_init_list): Removed SCM_P around prototypes.
2177
2178 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
2179 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
2180 escaped " occurring inside string literals.
2181
682eefe9
MD
2182Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
2183
2184 * posix.c (scm_mknod): Escape " occuring inside docstring.
2185
56cfe22b
MD
21862000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2187
2188 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
2189 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
2190 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
2191 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
2192 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
2193 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
2194 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
2195 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 2196
56cfe22b
MD
2197 * filesys.c (scm_chmod), simpos.c (scm_system), version
2198 (scm_version), vports (scm_make_soft_port): Escape " occuring
2199 inside docstring.
2200
fcb1720f
GB
2201Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
2202
2203 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
2204 SCM_VALIDATE_LONG_COPY
2205
2206 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
2207 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
2208 couple of formal arguments (and fix their uses) to make arguments
2209 match the documentation.
2210
b9af3d0e
MS
22112000-01-14 <mstachow@alum.mit.edu>
2212
2213 * Makefile.am: Augment path when running guile-doc-snarf so
2214 guile-func-name-check is found.
2215
153511a7
GB
2216Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
2217
2218 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
2219 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
2220
59d5245f
GB
2221Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2222
2223 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
2224 the way guile-1.3.4 worked, but #if 0 out the version using
2225 SCM_VALIDATE_INUM_COPY for stricter testing.
2226
95aec69f
GB
2227Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
2228
2229 * guile-doc-snarf.in: Use new $fullfilename for running
2230 guile-func-name-check, and put "$fullfilename" and "$filename" in
2231 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 2232 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
2233 I sure hope we never have to deal with that! :-) ). Thanks to
2234 Mikael for pointing out the source_dir != build_dir was broken.
2235
b7ac2837
GB
2236Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
2237
2238 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
2239 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
2240 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
2241 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
2242 variants.
2243
2244 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
2245 then return whether it's an open port (was validating that it was
2246 an open port -- this was a bug I introduced back in December, but
2247 my careful reading of diffs caught it).
2248
2249 * numbers.c: Recombine the two conditional-compilation paths for
2250 all the log* primitives -- they were split based on #ifndef
2251 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
2252 some bugs and inconsistencies in the two sets of implementations.
2253 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
2254
2255 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
2256 SCM_VALIDATE_INUM_COPY once where it should've been used.
2257
2258 * fluids.c (scm_internal_with_fluids): Use
2259 SCM_VALIDATE_LIST_COPYLEN.
2260
2261 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
2262 this is questionable as it relaxes type safety, but other changes
2263 were useful and all SCM_NUM2LONG's should probably be
2264 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
2265
2266 * evalext.c: line-break change on 1 line.
2267
2268 * eval.c (nconc2last): Takes a non-empty list as its first
2269 argument, not just a list.
2270
2271 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
2272
2273Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
2274
2275 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
2276 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
2277 where possible.
2278
2279 * symbols.c (scm_sysintern0): Fixed the function name in a
2280 scm_misc_error invocation.
2281
2282 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
2283 use scm_return_first to ward off latent GC bug that Mikael caught.
2284
2285 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
2286 used before but should've been.
2287
d61f6b02
MD
22882000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2289
2290 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
2291 SCM_FUNC_CAST_ARBITRARY_ARGS.
2292
88423ab1
GB
2293Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2294
2295 * guile-func-name-check.in: Added this script to statically check
2296 #define FUNC_NAME, #undef FUNC_NAME in the source.
2297
2298 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
2299 redundant comment, semicolon; caught by new guile-func-name-check
2300 script.
2301
2302 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
2303 Caught by new guile-func-name-check-script.
2304
2305 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
2306
2307 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
2308 guile-func-name-check.
2309
a00c95d9 2310 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
2311 doing the snarf.
2312
7f15e635
GB
2313Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
2314
2315 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
2316 port function take const void*, not void*.
2317
bf121b59
GB
2318Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
2319
2320 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
2321 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
2322 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
2323 consistency with the other macros dealing with immediate
2324 characters. (Similar to INT -> INUM change a week or so ago).
2325
7965d98f
GB
2326Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2327
2328 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
2329 net_db.c, read.c, socket.c: Update error messages to use ~A for
2330 %s, ~S for %S to work with new `simple-format' format and be
2331 standardized better.
2332
2333 * print.h, print.c (scm_simple_format): Added `simple-format'
2334 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 2335 parameter, and the destination first instead of last (and a couple
7965d98f
GB
2336 new capabilities inspired by `format' -- #t as destination means
2337 current-output-port, #f means return the formatted text as a
2338 string.
2339
2340 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
2341
2342 * backtrace.c (scm_display_error_message): Rewrote to use
2343 scm_simple_format() procedure.
2344
2345 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
2346
f73d2411
MV
23472000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
2348
2349 Finally applied the libltdl patch from Thomas Tanner, with slight
2350 modifications.
2351
2352 * DYNAMIC-LINKING: Removed because it is obsolete.
2353 * dynl.c: Use ANSI prototypes.
2354 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
2355 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 2356
f73d2411
MV
2357 1999-07-25 Thomas Tanner <tanner@ffii.org>
2358
2359 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
2360 (obsolete)
2361 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
2362 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
2363 against libltdl
2364 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
2365 * guile.c: register preloaded modules
2366 * scmconfig.h.in: remove obsolete symbols
2367
38c1d3c4
GH
23682000-01-09 Gary Houston <ghouston@arglist.com>
2369
2370 * These changes should make it unnecessary to call tzset from
2371 Scheme after modifying the TZ environment variable, even if the
2372 system date facilities cache the value.
2373 * stime.c (setzone, scm_localtime): added comments.
2374 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
2375 (setzone): don't call tzset.
2376 (restorezone): call tzset only if HAVE_TZSET is defined.
2377 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
2378 doc string to indicate that this procedure isn't likely to do
2379 anything useful.
2380 (scm_localtime, scm_strftime, scm_mktime): call tzset if
2381 LOCALTIME_CACHE is defined.
2382
9359d657
MD
23832000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2384
2385 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
2386
f25f761d
GH
23872000-01-09 Gary Houston <ghouston@arglist.com>
2388
2389 * eval.c: define scm_unbound_variable_key ('unbound-variable).
2390 scm_lookupcar1: throw an error with key 'unbound-variable instead
2391 of 'misc-error when an unbound variable is encountered.
2392
a00c95d9 2393 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
2394 scm_symlink, scm_readlink, scm_lstat),
2395 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
2396 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
2397 scm_sync),
a00c95d9 2398 simpos.c (scm_system),
f25f761d
GH
2399 stime.c (scm_times, scm_strptime):
2400 move the HAVE_XXX feature tests out of the procedure bodies.
2401 don't use SCM_SYSMISSING.
2402 scm_validate.h (SCM_SYSMISSING): removed.
2403 error.h, error.c (scm_sysmissing): comment that this is deprecated.
2404 see ChangeLog entry for 1999-12-28.
2405
a4dd2611
GB
2406Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2407
2408 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
2409
2410Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2411
2412 * backtrace.c: Fix spelling typo in a comment.
2413
2414 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
2415 text. Reformatted some of the expansions.
2416
5ac36451
GB
2417Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
2418
2419 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
2420 report the position of the argument.
2421
a00c95d9 2422 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 2423 take extra "pos" argument, the position number of the errant
a00c95d9 2424 argument.
5ac36451
GB
2425
2426 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
2427
2428 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
2429 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
2430 prefers that and I'm reasonably indifferent.
2431
2432Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
2433
2434 * snarf.h: Factor out differences between C++ and non-C++ into
2435 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
2436 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
2437 Mikael's macros, below, but changed names and SCM_SNARFING no
2438 longer expands to include %%% -- that must appear in the argument
2439 so that the token appears at the call-site as a reminder).
2440
088bb1d4
MD
24412000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2442
2443 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
2444 snarf macro definitions.
2445
636480e6
MD
24462000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2447
2448 * chars.c (scm_integer_to_char): Use Greg's nice
2449 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
2450 adherence to R5RS.
2451
7c5628e2
GB
2452Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2453
2454 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
2455
2cc0f8cb
GB
2456Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2457
2458 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
2459 instead of GUILE_PROC.
2460
2461Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
2462
a00c95d9 2463 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
2464 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
2465 macro call.
2466
9179dcdd
GB
2467Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
2468
2469 * scm_validate.h: Remove some redundant NIMP tests.
2470
2471 * alist.c: minimize scope of the tmp variables, and initialize
2472 them when declared. The strange SCM_NIMP tests are replaced by
2473 SCM_CONSP tests that more closely reflect the intended semantics.
2474 However, we don't get a performance penalty here, because the
2475 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
2476 extremely ugly use of ASRTGO macros was removed: The calls to
2477 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
2478 label parameter that only exists when SCM_RECKLESS is not defined.
2479 This works, because ASRTGO itself is defined in a way that it only
2480 makes use of the label parameter if SCM_RECKLESS is not defined
2481 (shudder!). Does guile make at all use of the possibility to
2482 define SCM_RECKLESS? * Codesize is likely to be reduced, since
2483 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
2484 we now only get one test.
2485
2486 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
2487 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
2488 some variables in `list?'. Fix `reverse' and `reverse!'
2489 primitives to handle improper lists better.
2490
15b33280
GB
2491Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
2492
2493 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
2494 macros and SCM_DEFINE macros to match GNU coding standards.
2495
ca8cd130
GB
2496Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
2497
2498 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
2499
fb764465
GB
2500Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
2501
2502 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
2503 better consistency with the names of other SCM_VALIDATE_ macros
2504 and better conformance to guile naming policy.
2505
2506Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
2507
2508 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
2509 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
2510 it's not the actual name of the formal).
1e484823
GB
2511
2512 * guile-snarf.awk.in: Do argument/number mismatch checking and
2513 print warnings in an Emacs compile-mode parseable format.
2514
2515 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
2516 SCM_OUTOFRANGE as 3rd argument.
2517
2518 * random.c: Fix argument/number mismatch (that I introduced :-( ).
2519
2520 * __scm.h: Do not #define SCM_ARG* when snarfing;
2521 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
2522 the former (using the number) requires the argument to match the
2523 formal in the current argument snarfing check.
2524
2525 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 2526 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
2527 guile-snarf.awk script uses to verify argument/position matching.
2528
2529 * ramap.c: Remove extraneous #undef FUNC_NAME.
2530
53fc4636
GB
2531Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
2532
2533 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 2534 current version of the same functionality; it writes the .x output
53fc4636
GB
2535 to stdout instead of directly into the file.
2536
2537Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
2538
2539 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
2540 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
2541 redundant with the safer macros. Patch from Dirk Hermann applied
2542 by hand. Thanks Dirk!
2543
2544 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
2545 uses in random.c.
2546
2547 * ramap.c: whitespace change.
2548
3b5345d9
GB
2549Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
2550
2551 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
2552 removals from Dirk Hermann.
2553
2554 * alist.c: Rename formals to match the parameter names in the
2555 documentation, updates to documentation. Thanks Dirk Hermann!
2556
169aec65
MD
25572000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2558
db62436e
MD
2559 * eval.c (SCM_CEVAL): Reverse order of
2560 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
2561 (Thanks to Brad Knotwell.)
169aec65 2562
da43d822
GB
2563Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
2564
2565 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 2566 allocated cell.
da43d822
GB
2567
2568 * pairs.h: Added a comment about the need for the SCM_SETCAR in
2569 SCM_NEWCELL macro.
2570
2571Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
2572
2573 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
2574 SCM_NIMP tests that were redundant are now eliminated. Patches
2575 from Dirk Hermann applied by hand.
2576
339999c7 2577The ChangeLog continues in the file: "ChangeLog-1996-1999"