1 2000-03-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
3 * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
4 loop and declare as register.
6 * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
9 Wed Mar 15 08:27:04 2000 Greg J. Badros <gjb@cs.washington.edu>
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?
15 Wed Mar 15 08:24:58 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
22 Wed Mar 15 08:12:14 2000 Greg J. Badros <gjb@cs.washington.edu>
24 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida!
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.
30 2000-03-15 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
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
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.
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.
46 2000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
48 The following change to init.c is only enabled if Guile was
49 configured with --enable-guile-debug.
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
57 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
58 scm_assoc. (Thanks to Keisuke Nishida.)
60 2000-03-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
62 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
63 scm_nil, scm_t. (Thanks to Keisuke Nishida.)
65 2000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
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
74 [Almost all of these changes should be documented in the NEWS
77 * gc.h (scm_freelist_t): New type.
79 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
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
84 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
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
90 (scm_heap_size, scm_gc_cells_collected): Removed.
92 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
94 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
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
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.
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.
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.
125 * numbers.c (scm_floprint, scm_floequal): Removed.
126 (scm_print_real, scm_print_complex, scm_real_equalp,
127 scm_complex_equalp): New functions.
129 * unif.c (scm_makflo): Removed.
131 * smob.h (SCM_SMOB_PREDICATE): New macro.
132 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
133 SCM_RETURN_NEWSMOB3): New macros.
135 1999-11-21 Michael Livshin <mlivshin@bigfoot.com>
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
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
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
155 (scm_debug_newcell2): multi-cell variants of
157 (scm_gc_for_newcell): take ncells and freelist pointer as
159 (scm_gc_mark): add case for tc7_pws (procedures with setters are
161 (scm_gc_sweep): don't free the float data, since it's not malloced
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}.
169 * numbers.c (scm_makdbl): no malloc'ing needed, so the
170 {DEFER,ALLOW}_INTS thing removed.
172 * numbers.h (struct scm_dbl): changed to represent a double cell,
173 with the number in the second half.
175 * dynwind.c: changed the wind-guards representation to double
178 * procs.c, procs.h: changed the procedure-with-setter representation
181 * async.c, async.h: made async representation a double cell.
183 * dynl.c: made dynamic_obj representation a double cell.
185 2000-03-13 Gary Houston <ghouston@arglist.com>
187 * ports.c (flush_void_port): renamed to flush_port_default.
188 (end_input_void_port): renamed to end_input_default.
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).
195 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
197 * void ports: make reading from a void port give EOF instead of
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.
205 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
206 which was incorrectly appended.
208 2000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
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
215 2000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
217 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
218 EXTRA_libguile_la_SOURCES.
220 * iselect.h: Always declare scm_internal_select.
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
226 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
228 2000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
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?)
234 Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
236 * Makefile.am: Added *.doc to DISTCLEANFILES.
238 2000-03-12 Gary Houston <ghouston@arglist.com>
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.
246 * throw.c: change an outdated comment about scm_internal_catch
247 BODY: it doesn't take a jumpbuf arg.
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.
257 2000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
259 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
260 Renamed from SCMWORD.
262 * tags.h (SCM_NCELLP): Removed (SCMWORD).
264 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
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).
276 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
278 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
279 tags.h: Fixed copyright notices.
281 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
283 2000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
285 * init.c (scm_standard_stream_to_port): Check whether the file
286 descriptor is valid and substitute "/dev/null" when not.
288 2000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
290 * coop-defs.h (struct timespec): Conditionally defined.
292 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
295 * readline.c (match_paren): Bugfix: First arg to select is not
296 number of descriptors but the number of the highest descriptor +
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.
304 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
306 * coop-defs.h (scm_mutex_trylock): New macro: alias for
308 (scm_cond_init): Changed definition to
309 coop_new_condition_variable_init.
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
319 (coop_condition_variable_timed_wait_mutex): New function.
320 (coop_key_create, coop_setspecific, coop_getspecific,
321 coop_key_delete): New functions.
323 * iselect.c (coop_timout_qinsert): Moved to coop.c
325 2000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
327 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
328 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
330 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
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.
337 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
340 2000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
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.
346 (logand, logior, logxor, logtest, logbit?): Extended scheme
347 logical functions to use bignums from SCM.
349 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
350 lognot from using bignums.
352 Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
354 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
355 eliminating some warnings.
357 * unif.c, strports.c, print.c, options.c: Fix some warnings on
360 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
361 what the scm_return_first* functions do.
363 2000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
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),
371 Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
373 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
374 various logXXX primitives. Thanks Eric Moore!
376 Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
383 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
385 Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
391 * __scm.h: Added SCM_ASSERT_TYPE macro.
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)
397 * Makefile.am: Rename scm_validate.h to validate.h.
399 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
400 prefix was superfluous).
402 Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
404 * hashtab.c: Improved documentation for lots of functions. Added
405 handwritten docs for `hash-fold'.
407 Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
409 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
411 Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
413 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
414 added append docs from R4RS.
416 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
419 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
420 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
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!
426 Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
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!
433 Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
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)
443 Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
445 * ports.c: Added docs for primitives missing them. Written by
448 Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
450 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
451 just execing guile-func-name-check. Thanks Michael Livshin!
453 Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
455 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
456 dead code. Patch from Michael Livshin.
458 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
461 2000-02-09 Gary Houston <ghouston@arglist.com>
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
469 2000-02-08 Gary Houston <ghouston@arglist.com>
471 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
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.
478 Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
480 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
483 Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
485 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
487 Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
489 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
490 (which is GNU GPL'd).
492 2000-01-31 Gary Houston <ghouston@arglist.com>
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>.
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.
502 (scm_makfromstr): cosmetic changes.
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.
511 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
513 2000-01-29 Gary Houston <ghouston@arglist.com>
515 * posix.c (scm_pipe): rewrote the docstring.
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.
523 Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
525 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
526 from Gregg Reynolds. Thanks Gregg!
528 Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
534 Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
536 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
539 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
542 Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
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'
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
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.
559 Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
561 * sort.c: typo in comment fixed.
563 * keywords.c: Added documentation.
565 * guardians.c: Added documentation (could be better).
567 * gc.c: Added docs for gc-set-debug-check-freelist.
569 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
571 * boolean.c: Added docs for `not', `boolean?' (by hand).
573 Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
575 * random.c: Added documentation, from SLIB page:
576 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
578 Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
580 * variable.c, version.c: Added documentation, written by hand
581 since I could not find anything already written that was
584 2000-01-23 Gary Houston <ghouston@arglist.com>
586 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
587 not defined (thanks to Richard Y. Kim).
589 Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
591 * Makefile.in: Removed, this is auto-generated.
593 Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
595 * list.c: Put some variable initialization code at the point of
596 declaration; Added a comment for list*; Formatting changes.
598 * load.c: use SCM_NNULLP to make sure the end of a list is not
601 2000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
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.)
608 * net_db.c (scm_resolv_error): Cast result from hstrerror.
610 * strports.c (st_end_input): Inserted parenthesis to get operator
613 * list.h (scm_init_list): Removed SCM_P around prototypes.
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.
619 Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
621 * posix.c (scm_mknod): Escape " occuring inside docstring.
623 2000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
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.
634 * filesys.c (scm_chmod), simpos.c (scm_system), version
635 (scm_version), vports (scm_make_soft_port): Escape " occuring
638 Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
640 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
641 SCM_VALIDATE_LONG_COPY
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.
648 2000-01-14 <mstachow@alum.mit.edu>
650 * Makefile.am: Augment path when running guile-doc-snarf so
651 guile-func-name-check is found.
653 Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
655 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
656 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
658 Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
664 Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
673 Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
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
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).
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!
692 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
693 SCM_VALIDATE_INUM_COPY once where it should've been used.
695 * fluids.c (scm_internal_with_fluids): Use
696 SCM_VALIDATE_LIST_COPYLEN.
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.
703 * evalext.c: line-break change on 1 line.
705 * eval.c (nconc2last): Takes a non-empty list as its first
706 argument, not just a list.
708 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
710 Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
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
716 * symbols.c (scm_sysintern0): Fixed the function name in a
717 scm_misc_error invocation.
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.
722 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
723 used before but should've been.
725 2000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
727 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
728 SCM_FUNC_CAST_ARBITRARY_ARGS.
730 Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
732 * guile-func-name-check.in: Added this script to statically check
733 #define FUNC_NAME, #undef FUNC_NAME in the source.
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
739 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
740 Caught by new guile-func-name-check-script.
742 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
744 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
745 guile-func-name-check.
747 * guile-doc-snarf.in: Run guile-func-name-check on the file before
750 Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
752 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
753 port function take const void*, not void*.
755 Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
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).
763 Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
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
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
777 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
779 * backtrace.c (scm_display_error_message): Rewrote to use
780 scm_simple_format() procedure.
782 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
784 2000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
786 Finally applied the libltdl patch from Thomas Tanner, with slight
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.
794 1999-07-25 Thomas Tanner <tanner@ffii.org>
796 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
798 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
799 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
801 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
802 * guile.c: register preloaded modules
803 * scmconfig.h.in: remove obsolete symbols
805 2000-01-09 Gary Houston <ghouston@arglist.com>
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
817 (scm_localtime, scm_strftime, scm_mktime): call tzset if
818 LOCALTIME_CACHE is defined.
820 2000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
822 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
824 2000-01-09 Gary Houston <ghouston@arglist.com>
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.
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,
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.
843 Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
845 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
847 Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
849 * backtrace.c: Fix spelling typo in a comment.
851 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
852 text. Reformatted some of the expansions.
854 Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
856 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
857 report the position of the argument.
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
863 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
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.
869 Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
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).
878 2000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
880 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
881 snarf macro definitions.
883 2000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
885 * chars.c (scm_integer_to_char): Use Greg's nice
886 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
889 Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
891 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
893 Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
895 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
896 instead of GUILE_PROC.
898 Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
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
904 Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
906 * scm_validate.h: Remove some redundant NIMP tests.
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.
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.
928 Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
930 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
931 macros and SCM_DEFINE macros to match GNU coding standards.
933 Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
935 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
937 Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
943 Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
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).
949 * guile-snarf.awk.in: Do argument/number mismatch checking and
950 print warnings in an Emacs compile-mode parseable format.
952 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
953 SCM_OUTOFRANGE as 3rd argument.
955 * random.c: Fix argument/number mismatch (that I introduced :-( ).
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.
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.
966 * ramap.c: Remove extraneous #undef FUNC_NAME.
968 Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
974 Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
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!
981 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
984 * ramap.c: whitespace change.
986 Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
988 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
989 removals from Dirk Hermann.
991 * alist.c: Rename formals to match the parameter names in the
992 documentation, updates to documentation. Thanks Dirk Hermann!
994 2000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
996 * eval.c (SCM_CEVAL): Reverse order of
997 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
998 (Thanks to Brad Knotwell.)
1000 Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
1002 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
1005 * pairs.h: Added a comment about the need for the SCM_SETCAR in
1008 Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
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.
1014 The ChangeLog continues in the file: "ChangeLog-1996-1999"