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