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