Fix: Don't cast SCM values to pointer. Use SCM2PTR instead.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
7352d0b2
DH
12000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * vectors.h (SCM_VELTS, SCM_VELTS_AS_STACKITEMS): Don't cast SCM
4 values to pointers. Use SCM2PTR instead.
5
b00c8cdc 62000-03-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
9b139b4e
DH
7
8 * async.c (scm_set_tick_rate, scm_set_switch_rate): Don't unpack
9 results of SCM_INUM.
10
df2d5178
MD
112000-03-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
12
bd54e664
MD
13 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
14 GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
15 GUILE_MIN_YIELD_X now take *positive* fractions of heap size.
16
17 * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
18 min_yield_fraction, min_yield, adjust_min_yield): Renamed from
19 SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
20 gc_trigger, adjust_gc_trigger.
21
df2d5178
MD
22 * gc.c (alloc_some_heap): Further improvement of minimal heap size
23 prediction.
24 (SCM_MAX): New macro.
25 (scm_freelist_t): New field: collected_1. Previous amount of
26 collected cells.
27 (gc_sweep_freelist_finish): Trigger based on two last values of
28 freelist->collected to avoid unnecessary allocation due to
29 temporary peaks.
bd54e664
MD
30 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
31 Adjusted to 45000 cells, 40% and 40%. Gives quick startup
32 without extra heap allocation.
df2d5178 33
f2961ccd
DH
342000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
35
36 * numbers.h (SCM_MAKINUM): The parameter to SCM_MAKINUM should
37 already be a C value. No need to unpack it.
38
39 * numbers.h (scm_long_long2num): Cast the parameter to scm_bits_t
40 if we know it fits into an inum.
41
42 * ramap.c (ramap_rp): An scm_tc7_[ui]vect object does point to a
43 field of long values. In contrast, SCM_VELTS accesses a field of
44 SCM values.
45
7b4cc831
MD
462000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
47
f1d316dd
MD
48 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
49 etc.
80770ddc
MD
50 (scm_gc_yield_1): New variable: Holds previous yield. Used to
51 make better judgements.
f1083dd7
MD
52 (gc_sweep_freelist_finish): Inserted explanation of use of
53 gc_trigger.
f1d316dd
MD
54
55 * print.h, stacks.h, options.c, options.h: Changed C++
56 commentaries to C.
7b4cc831 57
7a710745
DH
582000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
59
60 * tags.h (SCM2PTR, PTR2SCM): Use SCM_PACK / SCM_UNPACK correctly.
61
62 * numbers.h (SCM_INUMP, SCM_MAKINUM, SCM_INUM0, SCM_COMPLEX_REAL,
63 SCM_COMPLEX_IMAG, SCM_NUMP, SCM_BDIGITS): Use SCM_PACK /
64 SCM_UNPACK / SCM2PTR correctly.
65
1ef20c80
MD
662000-03-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
67
68 * gc.c (adjust_gc_trigger): Improved documentation.
69 (alloc_some_heap): Since gc_trigger is used against
70 freelist->collected, this is the value which should be used to
71 predict minimum growth.
72
b464b970
DH
732000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
74
75 * eval.h: Fix mixup of packed/unpacked SCM values. (Thanks
76 Thien-Thi Nguyen for the patch.)
77
3ab9f56e
DH
782000-03-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
79
80 * numbers.c (scm_ash): Fixed typing problems with the second
81 parameter and added some documentation. (Thanks Thien-Thi Nguyen
82 for indicating the problem.)
83
05bc3265
MD
842000-03-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
85
78a4915a
MD
86 * gc.c, gc.h (scm_gc_yield): New variable.
87 (adjust_gc_trigger): Use scm_gc_yield.
88 (alloc_some_heap): Use scm_gc_yield instead of
89 scm_gc_cells_collected.
90
05bc3265
MD
91 * coop-threads.c: Addd #include "root.h", #include "strings.h".
92
93 * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.)
94
95 * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
96 trigger adjustmeant: Take yield (freed cells) for all freelists
97 into account.
98 (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
99 to 50000 cell heap with 45% trigger.
100 (scm_gc_cells_collected): Reintroduced.
101 (SCM_HEAP_SIZE): New macro.
102 (scm_gc_sweep): Reintroduced correct computation of
103 scm_cells_allocated.
104 (scm_freelist_t): Corrected commentary for field `cluster_size':
105 Clustersize counts objects, not cells; New member
106 `clusters_allocated'.
107
89e00824
ML
1082000-03-19 Michael Livshin <mlivshin@bigfoot.com>
109
110 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
111 indentation style.
112
afcfc5bb
MD
1132000-03-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
114
115 * threads.h: Added #include "libguile/throw.h". (Thanks to
116 Thien-Thi Nguyen.)
117
a00c95d9
ML
1182000-03-18 Michael Livshin <mlivshin@bigfoot.com>
119
120 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros.
121
122 * gc.h: (typedef struct scm_freelist_t) remove from here.
123
124 * gc.c: (CELL_UP, CELL_DN) make these macros take additional
125 parameter (the span).
126 (CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
127 (typedef struct scm_freelist_t) move here from gc.h, it had no
128 business being externally visible.
129 (typedef struct scm_heap_seg_data_t) renamed from
130 scm_heap_seg_data, to be style-compliant.
131 (scm_mark_locations) if the possible pointer points to a
132 multy-cell, check that it's properly aligned.
133 (init_heap_seg) alighn multy-cells properly, work with the
134 assumption that the segment size divides cleanly by cluster size
135 (so that there's no spill).
136 (round_to_cluster_size) new function.
137 (alloc_some_heap, make_initial_segment) use round_to_cluster_size
138 to satisfy the new init_heap_seg invariant.
139
28b3236d
DH
1402000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
141
142 * _scm.h: Don't include async.h everywhere...
143
144 * eq.c eval.c iselect.c: ... only include it here.
145
ba11fd4c
DH
1462000-03-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
147
148 * _scm.h: Don't include root.h everywhere...
149
150 * async.c continuations.c eq.c eval.c evalext.c feature.c gc.c
151 gdbint.c gsubr.c ioext.c keywords.c lang.c load.c macros.c
152 numbers.c objprop.c ports.c print.c procprop.c ramap.c read.c
153 srcprop.c stackchk.c stacks.c strports.c symbols.c unif.c
154 variable.c vectors.c vports.c: ... only include it here.
155
7ab3fdd5
DH
1562000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
157
158 * _scm.h: Don't include strings.h everywhere...
159
160 * backtrace.c dynl.c error.c feature.c filesys.c fports.c gc.c
161 gdbint.c ioext.c load.c net_db.c numbers.c objects.c options.c
162 ports.c posix.c print.c procs.c random.c read.c regex-posix.c
163 simpos.c socket.c stacks.c stime.c strop.c strports.c struct.c
164 symbols.c unif.c vectors.c version.c vports.c: ... only include it
165 here.
166
f04d8caf
DH
1672000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
168
169 * _scm.h: Don't include ports.h everywhere...
170
171 * arbiters.c backtrace.c debug.c dynl.c dynwind.c eval.c feature.c
172 fluids.c gc.c gdbint.c guardians.c hash.c keywords.c mallocs.c
173 numbers.c objects.c print.c read.c root.c smob.c srcprop.c
174 stackchk.c strports.c struct.c throw.c variable.c: ... only
175 include it here.
176
003d1fd0
DH
1772000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
178
179 * _scm.h: Don't include vectors.h everywhere...
180
181 * eq.c eval.c filesys.c gc.c gsubr.c guardians.c hash.c hashtab.c
182 keywords.c net_db.c numbers.c objects.c posix.c print.c procprop.c
183 procs.c ramap.c random.c read.c scmsigs.c socket.c sort.c stime.c
184 strports.c symbols.c unif.c vports.c weaks.c: ... only include it
185 here.
186
0fa27efa
DH
1872000-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
188
189 * genio.h: removed. (Only content was '/* delete me */'.)
190
191 * Makefile.am arbiters.c backtrace.c debug.c dynl.c dynwind.c
192 error.c filesys.c fluids.c gc.c gsubr.c guardians.c keywords.c
193 libguile.h mallocs.c numbers.c print.c random.c read.c root.c
194 srcprop.c stackchk.c struct.c threads.c throw.c variable.c:
195 Removed reference to genio.h
196
148f31de
MD
1972000-03-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
198
199 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
200 Cluster sizes are now independent of GC trigger values.
201 GUILE_GC_TRIGGER_n can now specify a relative trigger value:
202 A negative integer gives fraction of total heap size in percent.
1eb489a2 203 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
148f31de
MD
204
205 * init.c (scm_boot_guile_1): Introduced new variable
206 GUILE_MAX_SEGMENT_SIZE; New environment variable names:
207 GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
208 GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
209
6d0f81dd 2102000-03-16 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
a00c95d9 211
6d0f81dd
MD
212 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
213 freeing of segment work with the new GC scheme. (Thanks to
bc2c8d98
MD
214 Michael Livshin.) Oops, also happened to make GUILE_NEW_GC_SCHEME
215 the default, but I'll let this change stay in CVS Guile since this
216 code is not expected to contain serious bugs.
a00c95d9 217
17351a6f 2182000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
c5133dc9 219
6c7c449e
MD
220 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
221 defined.
5a551542
MD
222 (scm_free_list_length): New procedure (GUILE_DEBUG).
223 Fixed a small but serious bug introduced by the previous change.
224
17351a6f
MD
225 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
226 loop and declare as register.
6c7c449e 227
c5133dc9
MD
228 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
229 after GC.
230
3820581c
GB
231Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
232
233 * fluids.c: Docstring patch from Keisuke Nishida. Some
234 reindentation, too, and a couple formals renamed. Should
235 fluid-set! return UNSPECIFIED instead of a value?
236
237Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
238
239 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
a00c95d9 240 generate the latter from the concrete listing of the former. Then
3820581c
GB
241 make guile-procedures.txt depend on DOT_DOC_FILES instead of
242 *.doc, so that rebuilding it works.
243
dd6390bf
GB
244Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
245
246 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
247
248 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
249 with nothing and \n, respectively. Thanks Keisuke Nishida for
250 noticing this problem.
251
4fdb0ae2
MD
2522000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
253
254 * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
255 new way of allocating heap. It makes Guile fast, but still
256 contains bugs.
257
258 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
259 allocating heap. The basic idea is to trigger GC every Nth
260 allocated cell and grow heap when free list runs out. The scheme
261 has been extended so that GC isn't triggered until all remaining
262 cells are used. The implementation is also prepared for
263 development in the direction of POSIX threads.
264
265 * gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
266 SCM_EXPHEAP should return half of the heap size.
267
3d8d1283
MD
2682000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
269
5f4edb86
MD
270 The following change to init.c is only enabled if Guile was
271 configured with --enable-guile-debug.
a00c95d9 272
5f4edb86
MD
273 * init.c (scm_i_getenv_int): New function.
274 (scm_boot_guile_1): Use the environment variables
275 GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
276 they exist. (This may be replaced by a Scheme level mechanism in
277 the future.)
278
3d8d1283 279 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
90e77861 280 scm_assoc. (Thanks to Keisuke Nishida.)
3d8d1283 281
b0e37c83
MD
2822000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
283
284 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
2b260c0f 285 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
b0e37c83 286
16d35552
MD
2872000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
288
5ebf0091
MD
289 * init.c (scm_boot_guile_1): Use same initial segment size for
290 1-word and 2-word segments. Having the smaller size causes Guile
291 to GC too often. Obviously something needs to be done to allow
292 for a smaller 2-word segment without this to happen. (The amount
293 of heap for each type should be automatically adapted to the
294 application somehow.)
295
31ed4cff
MD
296 [Almost all of these changes should be documented in the NEWS
297 file.]
298
cf2c7413
MD
299 * gc.h (scm_freelist_t): New type.
300
301 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
302
303 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
304 all of Guile basics fits into one segment and there suitable room
305 for work.
306 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
307 instead of 2.
308 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
309 Freelists now contains information about object span, cells
310 collected and amount of cells in heap segments belonging to the
311 list.
312 (scm_heap_size, scm_gc_cells_collected): Removed.
313
314 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
315
16d35552
MD
316 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
317 number.
318
cf2c7413 319 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
320 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
321 rewrite of handling of real and complex numbers.
322 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
323 removed along with the support for floats. (Float vectors are
324 still supported.)
325
326 * tags.h (scm_tcs_bignums): Removed.
327 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
328 Use SCM_BIGSIGN(x) to test for sign!
329 (scm_tc16_big): The new bignum type.
330 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
331
332 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
333 (scm_makdbl): Deprecated.
334 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
335 (SCM_SINGP): Deprecated.
336 (SCM_FLO): Removed.
337 (SCM_INEXP, SCM_CPLXP): Deprecated.
338 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
339 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
340 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
341 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
342 for doubles and complex numbers.
343 (SCM_REAL_VALUE): New selector for doubles.
344 (scm_double_t, scm_complex_t): New types.
345 (scm_dbl): Removed.
346
347 * numbers.c (scm_floprint, scm_floequal): Removed.
348 (scm_print_real, scm_print_complex, scm_real_equalp,
349 scm_complex_equalp): New functions.
350
351 * unif.c (scm_makflo): Removed.
352
353 * smob.h (SCM_SMOB_PREDICATE): New macro.
354 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
355 SCM_RETURN_NEWSMOB3): New macros.
356
3571999-11-21 Michael Livshin <mlivshin@bigfoot.com>
358
359 The following changes implement primitive support for double cells
360 (i.e. four-word cells) and change the representation of some
361 things to multi-cells instead of cons+malloc. (Applied and
362 modified by mdj.)
363
364 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
365 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
366 multi-cell access macros (used by the ones below).
367 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
368 macros.
369
370 * gc.c (scm_freelist2): multi-cell freelists.
371 (inner_map_free_list): map_free_list, parameterized on ncells.
372 "nn cells in segment mm" was misleading for ncells > 1; changed to
373 "objects". still print cells too, though.
374 (scm_map_free_list): rewritten using inner_map_free_list.
375 (scm_check_freelist): get freelist as parameter, since now we have
376 more than one.
377 (scm_debug_newcell2): multi-cell variants of
378 scm_debug_newcell.
379 (scm_gc_for_newcell): take ncells and freelist pointer as
380 parameters.
381 (scm_gc_mark): add case for tc7_pws (procedures with setters are
382 now double cells).
383 (scm_gc_sweep): don't free the float data, since it's not malloced
384 anymore.
385 (init_heap_seg): didn't understand what n_new_objects stood for,
386 so changed to n_new_cells.
387 (make_initial_segment): new function, makes an initial segment
388 according to given ncells.
389 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
390
391 * numbers.c (scm_makdbl): no malloc'ing needed, so the
392 {DEFER,ALLOW}_INTS thing removed.
393
394 * numbers.h (struct scm_dbl): changed to represent a double cell,
395 with the number in the second half.
16d35552
MD
396
397 * dynwind.c: changed the wind-guards representation to double
398 cell.
399
400 * procs.c, procs.h: changed the procedure-with-setter representation
401 to double cell.
402
403 * async.c, async.h: made async representation a double cell.
404
16d35552 405 * dynl.c: made dynamic_obj representation a double cell.
a00c95d9 406
b70ecbd0
GH
4072000-03-13 Gary Houston <ghouston@arglist.com>
408
409 * ports.c (flush_void_port): renamed to flush_port_default.
410 (end_input_void_port): renamed to end_input_default.
411
412 * init.c (scm_standard_stream_to_port): create a void port instead
413 of opening /dev/null if the standard file descriptors are bad.
414 advantages: no portability problems, doesn't waste a file descriptor,
415 simplifies the code (thanks to Marius for the idea).
416
417 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
418
419 * void ports: make reading from a void port give EOF instead of
420 segv:
421 * ports.c (s_scm_sys_make_void_port): modified docstring.
422 (fill_input_void_port): new proc.
423 (scm_init_ports): set up fill_input_void_port.
424 * ports.c (scm_port_non_buffer): new proc.
425 (scm_void_port): call scm_port_non_buffer.
426
427 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
428 which was incorrectly appended.
429
fdc7ea2d
MD
4302000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
431
432 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
433 that we can't use autoconf for this. Autoconf itself relies on
26fba922 434 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d 435 Herrman.)
a00c95d9 436
68933ba3
MD
4372000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
438
b44a555a
MD
439 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
440 EXTRA_libguile_la_SOURCES.
441
442 * iselect.h: Always declare scm_internal_select.
443
444 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
445 end. Also let scm_internal_select be a real function also when
446 not using threads.
447
68933ba3
MD
448 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
449
c7f6ea11
MD
4502000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
451
452 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
453 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
454 and kind of an experiment: Will this cause problems?)
455
62dbc244
GB
456Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
457
458 * Makefile.am: Added *.doc to DISTCLEANFILES.
459
4f2f645d
GH
4602000-03-12 Gary Houston <ghouston@arglist.com>
461
462 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
463 the fdes is valid before doing anything else. check that
464 the file descriptor supports the modes required.
465 (scm_fport_buffer_add): don't throw an error if fstat doesn't
466 work: just use the default buffer size.
467
468 * throw.c: change an outdated comment about scm_internal_catch
469 BODY: it doesn't take a jumpbuf arg.
470
471 * init.c (scm_standard_stream_to_port): install a handler in case
472 scm_fdes_to_port throws an error. don't check here whether the
473 file descriptor is valid, since scm_fdes_to_port will do that.
474 set the revealed count depending on whether the port got the
475 standard file descriptor.
476 (stream_body_data): new type.
477 (stream_body, stream_handler): new procs.
478
7f782a0a
MD
4792000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
480
67673f75
MD
481 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
482 Renamed from SCMWORD.
483
484 * tags.h (SCM_NCELLP): Removed (SCMWORD).
485
f1267706 486 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 487
74a426ae
MD
488 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
489 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
490 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
491 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
492 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
493 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
494 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 495 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
496 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
497
7f782a0a
MD
498 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
499
500 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
501 tags.h: Fixed copyright notices.
502
503 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 504
7f782a0a 5052000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
a00c95d9 506
0cd87628
MV
507 * init.c (scm_standard_stream_to_port): Check whether the file
508 descriptor is valid and substitute "/dev/null" when not.
a00c95d9 509
f3b5e185
MD
5102000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
511
512 * coop-defs.h (struct timespec): Conditionally defined.
513
514 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
515 instead of ETIME.
38eca29b
MD
516
517 * readline.c (match_paren): Bugfix: First arg to select is not
518 number of descriptors but the number of the highest descriptor +
519 1.
520
521 This is a preliminary attempt at a cleanup of the threads support
522 code. It moves things to better places, makes arguments more
523 consistent with the POSIX API (which is used in GNOME's glib), and
524 adds new functionality.
a00c95d9 525
38eca29b
MD
526 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
527
528 * coop-defs.h (scm_mutex_trylock): New macro: alias for
529 coop_mutex_trylock.
530 (scm_cond_init): Changed definition to
531 coop_new_condition_variable_init.
a00c95d9 532
38eca29b
MD
533 * coop.c: #include <errno.h>
534 (coop_timeout_qinsert): Moved here from iselect.c
535 (coop_new_mutex_init, coop_new_condition_variable_init): New
536 functions. The strange names are temporary. Use scm_mutex_init
537 and scm_cond_init instead.
538 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
539 is ANSI C, but should we check for individual error codes in
540 configure.in?
541 (coop_condition_variable_timed_wait_mutex): New function.
542 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 543 coop_key_delete): New functions.
38eca29b
MD
544
545 * iselect.c (coop_timout_qinsert): Moved to coop.c
546
32e1616c
MD
5472000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
548
549 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
550 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
551
552 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
553 Layout cleanups.
554
555 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
556 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
557 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
558
559 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
560 dealing with ilocs.
561
d5c39069
GB
5622000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
563
564 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
565 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
566 logical functions from SCM.
567
568 (logand, logior, logxor, logtest, logbit?): Extended scheme
569 logical functions to use bignums from SCM.
570
571 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
572 lognot from using bignums.
573
3e892913
GB
574Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
575
a00c95d9 576 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
3e892913
GB
577 eliminating some warnings.
578
579 * unif.c, strports.c, print.c, options.c: Fix some warnings on
580 mis-use of SCM/long
581
582 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
583 what the scm_return_first* functions do.
584
7ac030d6
GB
5852000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
586
587 * libguile/*.[ch]: make a distinction between SCM as a generic
588 name for a Scheme object (now a void*), and SCM as 32 bit word for
589 storing tags and immediates (now a long int). Introduced
590 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
591 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
a00c95d9 592
f635d2d4
GB
593Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
594
595 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
596 various logXXX primitives. Thanks Eric Moore!
597
9eaa7fb6
GB
598Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
599
600 * run-test, remaining-docs-needed: Added these scripts. The
601 second one is only temporary until the docstring additions are
602 complete. run-test may best live on, but is here mostly for
603 convenience and awareness for now.
604
605 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
606
49673698
GB
607Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
608
609 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
610 displaying the expected type. Use SCM_LISTn in a couple places
611 instead of scm_cons-ing by hand.
612
613 * __scm.h: Added SCM_ASSERT_TYPE macro.
614
615 * validate.h, scm_validate.h: Added the former, as a renamed
616 version of the latter with SCM_ASSERT_TYPE used in
617 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
618
619 * Makefile.am: Rename scm_validate.h to validate.h.
620
621 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
622 prefix was superfluous).
623
417bdef8
GB
624Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
625
626 * hashtab.c: Improved documentation for lots of functions. Added
627 handwritten docs for `hash-fold'.
628
629Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
630
631 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
632
26a760c6
GB
633Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
634
a00c95d9 635 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
26a760c6
GB
636 added append docs from R4RS.
637
638 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
639 Thanks Dirk Hermann!
640
641 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
642 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
a00c95d9 643
26a760c6
GB
644 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
645 Drop use of SCM_P for function prototypes... assume an ANSI C
646 compiler. Thanks Dirk Hermann!
647
898942f8
GB
648Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
649
650 * ports.c: Made `set-port-column!' and `set-port-line!' each
651 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
652 that caused a seg fault. Also fixed `set-port-column!'s
653 docstring. Thanks Han-Wen Nienhuys for finding the bug!
654
84a3df2c
GB
655Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
656
657 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
a00c95d9 658 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
84a3df2c
GB
659 strings.c, variable.c: Added lots of documentation, cleaned up
660 some existing documentation. Occasionally changed formal params
661 to match docs. Also folded an #ifdef into the inners of a
662 primitive instead of having two copies of the primitive
663 (`get-internal-real-time', from stime.c)
664
665Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
666
667 * ports.c: Added docs for primitives missing them. Written by
668 hand.
669
3f557de6
GB
670Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
671
672 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
673 just execing guile-func-name-check. Thanks Michael Livshin!
674
ddcccdb3
GB
675Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
676
677 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
678 dead code. Patch from Michael Livshin.
679
680 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
681 Michael Livshin.
682
720e8692
GH
6832000-02-09 Gary Houston <ghouston@arglist.com>
684
685 * init.c (scm_init_standard_ports): when stdout is a tty, make the
686 current-output-port unbuffered by default. this is less confusing
687 for interactive use. it was line-buffered because of a
688 performance problem with unbuffered ports, but I think it will be
689 OK now.
690
43ff3170
GH
6912000-02-08 Gary Houston <ghouston@arglist.com>
692
693 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
694 is not defined.
695
696 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
697 HAVE_TZNAME are defined, use an empty string instead of giving two
698 spurious compile-time errors.
699
4ba47302
GB
700Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
701
702 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
703 Thanks Richard!
704
09a617f7
GB
705Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
706
707 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
708
9dbcf010
GB
709Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
710
711 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
712 (which is GNU GPL'd).
713
bd9e24b3
GH
7142000-01-31 Gary Houston <ghouston@arglist.com>
715
716 * strings.h: don't use SCM_P. don't include <string.h>.
717 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
a00c95d9 718
bd9e24b3
GH
719 * strings.c (scm_string_ref): make the 2nd argument compulsory.
720 previously it defaulted to zero for no good reason that I can see.
721 use a local variable for SCM_INUM (k). replace
722 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
723
724 (scm_makfromstr): cosmetic changes.
725
726 (scm_string): Accept only chars in the list, not strings, for
727 conformance to R5RS (particularly for list->string, which is
728 supposed to be the inverse of string->list.) remove
729 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
730 scm_makstr handles the cell allocation. when reporting wrong-type
731 arg, don't report the position as 1.
732
733 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
734
28d77376
GH
7352000-01-29 Gary Houston <ghouston@arglist.com>
736
ae1b098b
GH
737 * posix.c (scm_pipe): rewrote the docstring.
738
28d77376
GH
739 * filesys.c (scm_select, retrieve_select_type, get_element,
740 fill_select_type, set_element): modified so that Scheme
741 "select" tests port buffers for the ability to provide input
742 or accept output. Previously only the underlying file descriptors
743 were checked. Rewrote the docstring.
a00c95d9 744
7f1497ce
GB
745Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
746
747 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
748 from Gregg Reynolds. Thanks Gregg!
749
2288ff9b
GB
750Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
751
752 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
753 adding "x" prefix to the line so that guile-func-name-check
754 doesn't complain unnecessarily.
755
349af6dd
GB
756Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
757
758 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
759 for maintainability.
760
761 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
762 from qdocs, RnRs.
763
a28eb127
GB
764Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
765
a00c95d9 766 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
a28eb127
GB
767 suggests removing tag.c altogether (and using a new `class-of'
768 instead).
769
770 * strings.c: Added documentation from Gregg A. Reynolds. Edited
771 a bit by me to use FOO instead of @var{foo} and to have the
a00c95d9 772 summary come before preconditions on input. Also dropped trailing
a28eb127
GB
773 (rnrs) note.
774
775 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
776 function with scm_make_subr_opt w/ last arg of 0 so it is not
777 visible at the Scheme level. Mikael says that this is the right
778 thing because the first arg to the proc is the guts of a compiled
779 closure and shouldn't be exposed to the Scheme level.
780
ac2259fc
GB
781Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
782
783 * sort.c: typo in comment fixed.
784
785 * keywords.c: Added documentation.
786
787 * guardians.c: Added documentation (could be better).
788
789 * gc.c: Added docs for gc-set-debug-check-freelist.
790
791 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
792
793 * boolean.c: Added docs for `not', `boolean?' (by hand).
a00c95d9 794
d928e0b4
GB
795Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
796
797 * random.c: Added documentation, from SLIB page:
798 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
799
800Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
801
802 * variable.c, version.c: Added documentation, written by hand
803 since I could not find anything already written that was
804 relevant.
805
d831b039
GH
8062000-01-23 Gary Houston <ghouston@arglist.com>
807
a00c95d9 808 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
d831b039
GH
809 not defined (thanks to Richard Y. Kim).
810
88ec97ad
GB
811Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
812
813 * Makefile.in: Removed, this is auto-generated.
814
078e9092
GB
815Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
816
817 * list.c: Put some variable initialization code at the point of
818 declaration; Added a comment for list*; Formatting changes.
819
820 * load.c: use SCM_NNULLP to make sure the end of a list is not
821 reached yet.
822
e7a96050
MD
8232000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
824
a177af34
MD
825 * backtrace.c (scm_display_error_message): Bugfix: Don't use
826 result of scm_list_p as C boolean.
827 (scm_display_error_message, scm_set_print_params_x): Use new
828 validation macros. (Thanks to Dirk Herrmann.)
829
d06bcb02
MD
830 * net_db.c (scm_resolv_error): Cast result from hstrerror.
831
832 * strports.c (st_end_input): Inserted parenthesis to get operator
833 grouping correct.
834
835 * list.h (scm_init_list): Removed SCM_P around prototypes.
836
837 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
838 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
839 escaped " occurring inside string literals.
840
682eefe9
MD
841Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
842
843 * posix.c (scm_mknod): Escape " occuring inside docstring.
844
56cfe22b
MD
8452000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
846
847 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
848 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
849 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
850 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
851 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
852 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
853 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
854 weaks.c: Converted docstrings to ANSI C format.
a00c95d9 855
56cfe22b
MD
856 * filesys.c (scm_chmod), simpos.c (scm_system), version
857 (scm_version), vports (scm_make_soft_port): Escape " occuring
858 inside docstring.
859
fcb1720f
GB
860Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
861
862 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
863 SCM_VALIDATE_LONG_COPY
864
865 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
866 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
867 couple of formal arguments (and fix their uses) to make arguments
868 match the documentation.
869
b9af3d0e
MS
8702000-01-14 <mstachow@alum.mit.edu>
871
872 * Makefile.am: Augment path when running guile-doc-snarf so
873 guile-func-name-check is found.
874
153511a7
GB
875Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
876
877 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
878 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
879
59d5245f
GB
880Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
881
882 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
883 the way guile-1.3.4 worked, but #if 0 out the version using
884 SCM_VALIDATE_INUM_COPY for stricter testing.
885
95aec69f
GB
886Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
887
888 * guile-doc-snarf.in: Use new $fullfilename for running
889 guile-func-name-check, and put "$fullfilename" and "$filename" in
890 quotes at uses to make sure re-splitting on whitespace does not
a00c95d9 891 occur (so filenames w/ embedded whitespace would work okay, though
95aec69f
GB
892 I sure hope we never have to deal with that! :-) ). Thanks to
893 Mikael for pointing out the source_dir != build_dir was broken.
894
b7ac2837
GB
895Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
896
897 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
898 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
899 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
900 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
901 variants.
902
903 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
904 then return whether it's an open port (was validating that it was
905 an open port -- this was a bug I introduced back in December, but
906 my careful reading of diffs caught it).
907
908 * numbers.c: Recombine the two conditional-compilation paths for
909 all the log* primitives -- they were split based on #ifndef
910 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
911 some bugs and inconsistencies in the two sets of implementations.
912 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
913
914 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
915 SCM_VALIDATE_INUM_COPY once where it should've been used.
916
917 * fluids.c (scm_internal_with_fluids): Use
918 SCM_VALIDATE_LIST_COPYLEN.
919
920 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
921 this is questionable as it relaxes type safety, but other changes
922 were useful and all SCM_NUM2LONG's should probably be
923 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
924
925 * evalext.c: line-break change on 1 line.
926
927 * eval.c (nconc2last): Takes a non-empty list as its first
928 argument, not just a list.
929
930 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
931
932Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
933
934 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
935 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
936 where possible.
937
938 * symbols.c (scm_sysintern0): Fixed the function name in a
939 scm_misc_error invocation.
940
941 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
942 use scm_return_first to ward off latent GC bug that Mikael caught.
943
944 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
945 used before but should've been.
946
d61f6b02
MD
9472000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
948
949 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
950 SCM_FUNC_CAST_ARBITRARY_ARGS.
951
88423ab1
GB
952Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
953
954 * guile-func-name-check.in: Added this script to statically check
955 #define FUNC_NAME, #undef FUNC_NAME in the source.
956
957 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
958 redundant comment, semicolon; caught by new guile-func-name-check
959 script.
960
961 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
962 Caught by new guile-func-name-check-script.
963
964 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
965
966 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
967 guile-func-name-check.
968
a00c95d9 969 * guile-doc-snarf.in: Run guile-func-name-check on the file before
88423ab1
GB
970 doing the snarf.
971
7f15e635
GB
972Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
973
974 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
975 port function take const void*, not void*.
976
bf121b59
GB
977Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
978
979 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
980 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
981 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
982 consistency with the other macros dealing with immediate
983 characters. (Similar to INT -> INUM change a week or so ago).
984
7965d98f
GB
985Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
986
987 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
988 net_db.c, read.c, socket.c: Update error messages to use ~A for
989 %s, ~S for %S to work with new `simple-format' format and be
990 standardized better.
991
992 * print.h, print.c (scm_simple_format): Added `simple-format'
993 primitive. It's the old scm_display_error, with ARGS now a rest
a00c95d9 994 parameter, and the destination first instead of last (and a couple
7965d98f
GB
995 new capabilities inspired by `format' -- #t as destination means
996 current-output-port, #f means return the formatted text as a
997 string.
998
999 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
1000
1001 * backtrace.c (scm_display_error_message): Rewrote to use
1002 scm_simple_format() procedure.
1003
1004 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
1005
f73d2411
MV
10062000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
1007
1008 Finally applied the libltdl patch from Thomas Tanner, with slight
1009 modifications.
1010
1011 * DYNAMIC-LINKING: Removed because it is obsolete.
1012 * dynl.c: Use ANSI prototypes.
1013 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
1014 * scmconfig.h.in: Do not change, as it is automatically generated.
a00c95d9 1015
f73d2411
MV
1016 1999-07-25 Thomas Tanner <tanner@ffii.org>
1017
1018 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
1019 (obsolete)
1020 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
1021 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
1022 against libltdl
1023 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
1024 * guile.c: register preloaded modules
1025 * scmconfig.h.in: remove obsolete symbols
1026
38c1d3c4
GH
10272000-01-09 Gary Houston <ghouston@arglist.com>
1028
1029 * These changes should make it unnecessary to call tzset from
1030 Scheme after modifying the TZ environment variable, even if the
1031 system date facilities cache the value.
1032 * stime.c (setzone, scm_localtime): added comments.
1033 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
1034 (setzone): don't call tzset.
1035 (restorezone): call tzset only if HAVE_TZSET is defined.
1036 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
1037 doc string to indicate that this procedure isn't likely to do
1038 anything useful.
1039 (scm_localtime, scm_strftime, scm_mktime): call tzset if
1040 LOCALTIME_CACHE is defined.
1041
9359d657
MD
10422000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1043
1044 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
1045
f25f761d
GH
10462000-01-09 Gary Houston <ghouston@arglist.com>
1047
1048 * eval.c: define scm_unbound_variable_key ('unbound-variable).
1049 scm_lookupcar1: throw an error with key 'unbound-variable instead
1050 of 'misc-error when an unbound variable is encountered.
1051
a00c95d9 1052 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
f25f761d
GH
1053 scm_symlink, scm_readlink, scm_lstat),
1054 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
1055 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
1056 scm_sync),
a00c95d9 1057 simpos.c (scm_system),
f25f761d
GH
1058 stime.c (scm_times, scm_strptime):
1059 move the HAVE_XXX feature tests out of the procedure bodies.
1060 don't use SCM_SYSMISSING.
1061 scm_validate.h (SCM_SYSMISSING): removed.
1062 error.h, error.c (scm_sysmissing): comment that this is deprecated.
1063 see ChangeLog entry for 1999-12-28.
1064
a4dd2611
GB
1065Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1066
1067 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
1068
1069Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1070
1071 * backtrace.c: Fix spelling typo in a comment.
1072
1073 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
1074 text. Reformatted some of the expansions.
1075
5ac36451
GB
1076Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
1077
1078 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
1079 report the position of the argument.
1080
a00c95d9 1081 * error.h, error.c (scm_out_of_range_pos): Added this function to
5ac36451 1082 take extra "pos" argument, the position number of the errant
a00c95d9 1083 argument.
5ac36451
GB
1084
1085 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
1086
1087 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
1088 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
1089 prefers that and I'm reasonably indifferent.
1090
1091Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
1092
1093 * snarf.h: Factor out differences between C++ and non-C++ into
1094 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
1095 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
1096 Mikael's macros, below, but changed names and SCM_SNARFING no
1097 longer expands to include %%% -- that must appear in the argument
1098 so that the token appears at the call-site as a reminder).
1099
088bb1d4
MD
11002000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1101
1102 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
1103 snarf macro definitions.
1104
636480e6
MD
11052000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1106
1107 * chars.c (scm_integer_to_char): Use Greg's nice
1108 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
1109 adherence to R5RS.
1110
7c5628e2
GB
1111Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1112
1113 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
1114
2cc0f8cb
GB
1115Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1116
1117 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
1118 instead of GUILE_PROC.
1119
1120Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
1121
a00c95d9 1122 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
2cc0f8cb
GB
1123 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
1124 macro call.
1125
9179dcdd
GB
1126Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
1127
1128 * scm_validate.h: Remove some redundant NIMP tests.
1129
1130 * alist.c: minimize scope of the tmp variables, and initialize
1131 them when declared. The strange SCM_NIMP tests are replaced by
1132 SCM_CONSP tests that more closely reflect the intended semantics.
1133 However, we don't get a performance penalty here, because the
1134 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
1135 extremely ugly use of ASRTGO macros was removed: The calls to
1136 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
1137 label parameter that only exists when SCM_RECKLESS is not defined.
1138 This works, because ASRTGO itself is defined in a way that it only
1139 makes use of the label parameter if SCM_RECKLESS is not defined
1140 (shudder!). Does guile make at all use of the possibility to
1141 define SCM_RECKLESS? * Codesize is likely to be reduced, since
1142 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
1143 we now only get one test.
1144
1145 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
1146 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
1147 some variables in `list?'. Fix `reverse' and `reverse!'
1148 primitives to handle improper lists better.
1149
15b33280
GB
1150Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
1151
1152 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
1153 macros and SCM_DEFINE macros to match GNU coding standards.
1154
ca8cd130
GB
1155Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
1156
1157 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
1158
fb764465
GB
1159Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
1160
1161 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
1162 better consistency with the names of other SCM_VALIDATE_ macros
1163 and better conformance to guile naming policy.
1164
1165Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
1166
1167 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
1168 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
1169 it's not the actual name of the formal).
1e484823
GB
1170
1171 * guile-snarf.awk.in: Do argument/number mismatch checking and
1172 print warnings in an Emacs compile-mode parseable format.
1173
1174 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
1175 SCM_OUTOFRANGE as 3rd argument.
1176
1177 * random.c: Fix argument/number mismatch (that I introduced :-( ).
1178
1179 * __scm.h: Do not #define SCM_ARG* when snarfing;
1180 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
1181 the former (using the number) requires the argument to match the
1182 formal in the current argument snarfing check.
1183
1184 * snarf.h: Give new definition of SCM_ASSERT when in
a00c95d9 1185 snarfing mode to output a lexically-identifiable sequence that the
1e484823
GB
1186 guile-snarf.awk script uses to verify argument/position matching.
1187
1188 * ramap.c: Remove extraneous #undef FUNC_NAME.
1189
53fc4636
GB
1190Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
1191
1192 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
a00c95d9 1193 current version of the same functionality; it writes the .x output
53fc4636
GB
1194 to stdout instead of directly into the file.
1195
1196Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
1197
1198 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
1199 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
1200 redundant with the safer macros. Patch from Dirk Hermann applied
1201 by hand. Thanks Dirk!
1202
1203 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
1204 uses in random.c.
1205
1206 * ramap.c: whitespace change.
1207
3b5345d9
GB
1208Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
1209
1210 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
1211 removals from Dirk Hermann.
1212
1213 * alist.c: Rename formals to match the parameter names in the
1214 documentation, updates to documentation. Thanks Dirk Hermann!
1215
169aec65
MD
12162000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1217
db62436e
MD
1218 * eval.c (SCM_CEVAL): Reverse order of
1219 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
1220 (Thanks to Brad Knotwell.)
169aec65 1221
da43d822
GB
1222Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
1223
1224 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
a00c95d9 1225 allocated cell.
da43d822
GB
1226
1227 * pairs.h: Added a comment about the need for the SCM_SETCAR in
1228 SCM_NEWCELL macro.
1229
1230Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
1231
1232 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
1233 SCM_NIMP tests that were redundant are now eliminated. Patches
1234 from Dirk Hermann applied by hand.
1235
339999c7 1236The ChangeLog continues in the file: "ChangeLog-1996-1999"