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