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