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