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