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