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