Thu Mar 2 12:38:30 2000 Greg J. Badros * list.c: Moved append docs to append! Thanks Dirk Hermann. Also, added append docs from R4RS. * strings.c: Docstring typo fix, + eliminate unneeded IMP tests. Thanks Dirk Hermann! * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann! * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout. Drop use of SCM_P for function prototypes... assume an ANSI C compiler. Thanks Dirk Hermann! Sat Feb 19 12:20:12 2000 Greg J. Badros * ports.c: Made `set-port-column!' and `set-port-line!' each return SCM_UNSPECIFIED instead of a (not-scheme-object) integer that caused a seg fault. Also fixed `set-port-column!'s docstring. Thanks Han-Wen Nienhuys for finding the bug! Sun Feb 13 19:11:42 2000 Greg J. Badros * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c, regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c, strings.c, variable.c: Added lots of documentation, cleaned up some existing documentation. Occasionally changed formal params to match docs. Also folded an #ifdef into the inners of a primitive instead of having two copies of the primitive (`get-internal-real-time', from stime.c) Sun Feb 13 18:12:19 2000 Greg J. Badros * ports.c: Added docs for primitives missing them. Written by hand. Sun Feb 13 09:40:36 2000 Greg J. Badros * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not just execing guile-func-name-check. Thanks Michael Livshin! Thu Feb 10 11:43:23 2000 Greg J. Badros * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some dead code. Patch from Michael Livshin. * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from Michael Livshin. 2000-02-09 Gary Houston * init.c (scm_init_standard_ports): when stdout is a tty, make the current-output-port unbuffered by default. this is less confusing for interactive use. it was line-buffered because of a performance problem with unbuffered ports, but I think it will be OK now. 2000-02-08 Gary Houston * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS is not defined. * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor HAVE_TZNAME are defined, use an empty string instead of giving two spurious compile-time errors. Tue Feb 8 13:57:46 2000 Greg J. Badros * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme. Thanks Richard! Mon Feb 7 09:07:31 2000 Greg J. Badros * macros.c: Doc patches from Richard Kim. Pasted from scm.texi. Sun Feb 6 20:26:21 2000 Greg J. Badros * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme (which is GNU GPL'd). 2000-01-31 Gary Houston * strings.h: don't use SCM_P. don't include . * error.c, gh_data.c, ports.c, script.c, strop.c: include . * strings.c (scm_string_ref): make the 2nd argument compulsory. previously it defaulted to zero for no good reason that I can see. use a local variable for SCM_INUM (k). replace SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY. (scm_makfromstr): cosmetic changes. (scm_string): Accept only chars in the list, not strings, for conformance to R5RS (particularly for list->string, which is supposed to be the inverse of string->list.) remove SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since scm_makstr handles the cell allocation. when reporting wrong-type arg, don't report the position as 1. * posix.c (scm_init_posix): intern PIPE_BUF if it's defined. 2000-01-29 Gary Houston * posix.c (scm_pipe): rewrote the docstring. * filesys.c (scm_select, retrieve_select_type, get_element, fill_select_type, set_element): modified so that Scheme "select" tests port buffers for the ability to provide input or accept output. Previously only the underlying file descriptors were checked. Rewrote the docstring. Thu Jan 27 10:14:25 2000 Greg J. Badros * vectors.c, symbols.c, strorder.c: Documentation cut and pasted from Gregg Reynolds. Thanks Gregg! Thu Jan 27 09:59:38 2000 Greg J. Badros * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by adding "x" prefix to the line so that guile-func-name-check doesn't complain unnecessarily. Wed Jan 26 17:33:52 2000 Greg J. Badros * throw.c: Factor out an #ifdef/#else/#endif choice more finely for maintainability. * strop.c: Documentation added by Gregg A. Reynolds. Pasted in from qdocs, RnRs. Wed Jan 26 10:02:11 2000 Greg J. Badros * tag.c: Added doc for `tag', but mark as deprecated since Mikael suggests removing tag.c altogether (and using a new `class-of' instead). * strings.c: Added documentation from Gregg A. Reynolds. Edited a bit by me to use FOO instead of @var{foo} and to have the summary come before preconditions on input. Also dropped trailing (rnrs) note. * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the function with scm_make_subr_opt w/ last arg of 0 so it is not visible at the Scheme level. Mikael says that this is the right thing because the first arg to the proc is the guts of a compiled closure and shouldn't be exposed to the Scheme level. Tue Jan 25 17:15:47 2000 Greg J. Badros * sort.c: typo in comment fixed. * keywords.c: Added documentation. * guardians.c: Added documentation (could be better). * gc.c: Added docs for gc-set-debug-check-freelist. * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS. * boolean.c: Added docs for `not', `boolean?' (by hand). Tue Jan 25 13:28:56 2000 Greg J. Badros * random.c: Added documentation, from SLIB page: http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html Mon Jan 24 17:50:20 2000 Greg J. Badros * variable.c, version.c: Added documentation, written by hand since I could not find anything already written that was relevant. 2000-01-23 Gary Houston * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is not defined (thanks to Richard Y. Kim). Thu Jan 20 13:00:38 2000 Greg J. Badros * Makefile.in: Removed, this is auto-generated. Thu Jan 20 11:33:47 2000 Dirk Hermann --applied 01/20/00 gjb * list.c: Put some variable initialization code at the point of declaration; Added a comment for list*; Formatting changes. * load.c: use SCM_NNULLP to make sure the end of a list is not reached yet. 2000-01-18 Mikael Djurfeldt * backtrace.c (scm_display_error_message): Bugfix: Don't use result of scm_list_p as C boolean. (scm_display_error_message, scm_set_print_params_x): Use new validation macros. (Thanks to Dirk Herrmann.) * net_db.c (scm_resolv_error): Cast result from hstrerror. * strports.c (st_end_input): Inserted parenthesis to get operator grouping correct. * list.h (scm_init_list): Removed SCM_P around prototypes. * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c, filesys.c, posix.c: Converted docstrings to ANSI C format and escaped " occurring inside string literals. Tue Jan 18 13:21:08 2000 Mikael Djurfeldt * posix.c (scm_mknod): Escape " occuring inside docstring. 2000-01-18 Mikael Djurfeldt * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c, evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c, keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c, objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c, ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c, symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c, weaks.c: Converted docstrings to ANSI C format. * filesys.c (scm_chmod), simpos.c (scm_system), version (scm_version), vports (scm_make_soft_port): Escape " occuring inside docstring. Mon Jan 17 11:41:22 2000 Greg J. Badros * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY, SCM_VALIDATE_LONG_COPY * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a couple of formal arguments (and fix their uses) to make arguments match the documentation. 2000-01-14 * Makefile.am: Augment path when running guile-doc-snarf so guile-func-name-check is found. Fri Jan 14 09:34:55 2000 Greg J. Badros * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use def, not SCM_MAKINUM(def); thanks Janis Bzerins! Wed Jan 12 00:06:53 2000 Greg J. Badros * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's the way guile-1.3.4 worked, but #if 0 out the version using SCM_VALIDATE_INUM_COPY for stricter testing. Tue Jan 11 18:24:18 2000 Greg J. Badros * guile-doc-snarf.in: Use new $fullfilename for running guile-func-name-check, and put "$fullfilename" and "$filename" in quotes at uses to make sure re-splitting on whitespace does not occur (so filenames w/ embedded whitespace would work okay, though I sure hope we never have to deal with that! :-) ). Thanks to Mikael for pointing out the source_dir != build_dir was broken. Tue Jan 11 17:42:40 2000 Greg J. Badros * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY variants. * ports.c (scm_port_closed_p): Validate that the arg is a PORT, then return whether it's an open port (was validating that it was an open port -- this was a bug I introduced back in December, but my careful reading of diffs caught it). * numbers.c: Recombine the two conditional-compilation paths for all the log* primitives -- they were split based on #ifndef scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed some bugs and inconsistencies in the two sets of implementations. (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer! * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and SCM_VALIDATE_INUM_COPY once where it should've been used. * fluids.c (scm_internal_with_fluids): Use SCM_VALIDATE_LIST_COPYLEN. * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY; this is questionable as it relaxes type safety, but other changes were useful and all SCM_NUM2LONG's should probably be revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG. * evalext.c: line-break change on 1 line. * eval.c (nconc2last): Takes a non-empty list as its first argument, not just a list. * dynl.c: Use new SCM_COERCE_ROSTRING macro. Tue Jan 11 15:44:23 2000 Greg J. Badros * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c, net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR where possible. * symbols.c (scm_sysintern0): Fixed the function name in a scm_misc_error invocation. * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and use scm_return_first to ward off latent GC bug that Mikael caught. * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't used before but should've been. 2000-01-12 Mikael Djurfeldt * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with SCM_FUNC_CAST_ARBITRARY_ARGS. Tue Jan 11 13:44:07 2000 Greg J. Badros * guile-func-name-check.in: Added this script to statically check #define FUNC_NAME, #undef FUNC_NAME in the source. * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing redundant comment, semicolon; caught by new guile-func-name-check script. * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc. Caught by new guile-func-name-check-script. * Makefile.am: Added guile-func-name-check to bin_SCRIPTS * ramap.c: Fix #if 0'd out code to be syntactically acceptable to guile-func-name-check. * guile-doc-snarf.in: Run guile-func-name-check on the file before doing the snarf. Tue Jan 11 11:31:10 2000 Greg J. Badros * fports.c, ports.c, ports.h, strports.c, vports.c: Make write port function take const void*, not void*. Tue Jan 11 11:18:07 2000 Greg J. Badros * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c, strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for consistency with the other macros dealing with immediate characters. (Similar to INT -> INUM change a week or so ago). Tue Jan 11 10:41:46 2000 Greg J. Badros * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c, net_db.c, read.c, socket.c: Update error messages to use ~A for %s, ~S for %S to work with new `simple-format' format and be standardized better. * print.h, print.c (scm_simple_format): Added `simple-format' primitive. It's the old scm_display_error, with ARGS now a rest parameter, and the destination first instead of last (and a couple new capabilities inspired by `format' -- #t as destination means current-output-port, #f means return the formatted text as a string. * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications. * backtrace.c (scm_display_error_message): Rewrote to use scm_simple_format() procedure. * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST 2000-01-09 Marius Vollmer Finally applied the libltdl patch from Thomas Tanner, with slight modifications. * DYNAMIC-LINKING: Removed because it is obsolete. * dynl.c: Use ANSI prototypes. (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen. * scmconfig.h.in: Do not change, as it is automatically generated. 1999-07-25 Thomas Tanner * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted (obsolete) * Makefile.am: likewise, add INCLTDL (libltdl headers) to INCLUDES, set dlpreopened files in LDFLAGS, link libguile against libltdl * dynl.c: use libltdl if DYNAMIC_LINKING is enabled, * guile.c: register preloaded modules * scmconfig.h.in: remove obsolete symbols 2000-01-09 Gary Houston * These changes should make it unnecessary to call tzset from Scheme after modifying the TZ environment variable, even if the system date facilities cache the value. * stime.c (setzone, scm_localtime): added comments. (tzset): don't define a noop tzset macro if HAVE_TZSET not defined. (setzone): don't call tzset. (restorezone): call tzset only if HAVE_TZSET is defined. (scm_tzset): don't define if HAVE_TZSET not defined. Change the doc string to indicate that this procedure isn't likely to do anything useful. (scm_localtime, scm_strftime, scm_mktime): call tzset if LOCALTIME_CACHE is defined. 2000-01-09 Mikael Djurfeldt * posix.c (scm_sync): Return SCM_UNSPECIFIED. 2000-01-09 Gary Houston * eval.c: define scm_unbound_variable_key ('unbound-variable). scm_lookupcar1: throw an error with key 'unbound-variable instead of 'misc-error when an unbound variable is encountered. * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select, scm_symlink, scm_readlink, scm_lstat), posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp, scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice, scm_sync), simpos.c (scm_system), stime.c (scm_times, scm_strptime): move the HAVE_XXX feature tests out of the procedure bodies. don't use SCM_SYSMISSING. scm_validate.h (SCM_SYSMISSING): removed. error.h, error.c (scm_sysmissing): comment that this is deprecated. see ChangeLog entry for 1999-12-28. Sat Jan 8 19:52:04 2000 Greg J. Badros * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo. Sat Jan 8 17:06:46 2000 Greg J. Badros * backtrace.c: Fix spelling typo in a comment. * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT text. Reformatted some of the expansions. Fri Jan 7 15:50:46 2000 Greg J. Badros * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to report the position of the argument. * error.h, error.c (scm_out_of_range_pos): Added this function to take extra "pos" argument, the position number of the errant argument. * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range. * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael prefers that and I'm reasonably indifferent. Fri Jan 7 15:03:32 2000 Greg J. Badros * snarf.h: Factor out differences between C++ and non-C++ into SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like Mikael's macros, below, but changed names and SCM_SNARFING no longer expands to include %%% -- that must appear in the argument so that the token appears at the call-site as a reminder). 2000-01-07 Mikael Djurfeldt * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user snarf macro definitions. 2000-01-06 Mikael Djurfeldt * chars.c (scm_integer_to_char): Use Greg's nice SCM_VALIDATE_INUM_RANGE macro for argument checking for closer adherence to R5RS. Thu Jan 6 11:48:49 2000 Greg J. Badros * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout. Thu Jan 6 11:22:53 2000 Greg J. Badros * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1 instead of GUILE_PROC. Thu Jan 6 11:21:49 2000 Greg J. Badros * alist.c: Do not report mismatch errors on some uses of `tmp' (do this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS macro call. Thu Jan 6 09:54:33 2000 Dirk Herrmann --gjb applied * scm_validate.h: Remove some redundant NIMP tests. * alist.c: minimize scope of the tmp variables, and initialize them when declared. The strange SCM_NIMP tests are replaced by SCM_CONSP tests that more closely reflect the intended semantics. However, we don't get a performance penalty here, because the SCM_CONSP test was performed by the ALISTCELL test anyway. * The extremely ugly use of ASRTGO macros was removed: The calls to ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a label parameter that only exists when SCM_RECKLESS is not defined. This works, because ASRTGO itself is defined in a way that it only makes use of the label parameter if SCM_RECKLESS is not defined (shudder!). Does guile make at all use of the possibility to define SCM_RECKLESS? * Codesize is likely to be reduced, since instead of two calls to SCM_ASSERT performed by the ALISTCELL test we now only get one test. * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on some variables in `list?'. Fix `reverse' and `reverse!' primitives to handle improper lists better. Wed Jan 5 11:24:53 2000 Greg J. Badros * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_* macros and SCM_DEFINE macros to match GNU coding standards. Wed Jan 5 11:04:24 2000 Greg J. Badros * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE. Wed Jan 5 10:59:06 2000 Greg J. Badros * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for better consistency with the names of other SCM_VALIDATE_ macros and better conformance to guile naming policy. Wed Jan 5 10:50:39 2000 Greg J. Badros * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a SCM_VALIDATE instead of 1 to avoid a check on the argument (since it's not the actual name of the formal). * guile-snarf.awk.in: Do argument/number mismatch checking and print warnings in an Emacs compile-mode parseable format. * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/ SCM_OUTOFRANGE as 3rd argument. * random.c: Fix argument/number mismatch (that I introduced :-( ). * __scm.h: Do not #define SCM_ARG* when snarfing; lets us distinguish between 1 and SCM_ARG1 when snarfing as only the former (using the number) requires the argument to match the formal in the current argument snarfing check. * snarf.h: Give new definition of SCM_ASSERT when in snarfing mode to output a lexically-identifiable sequence that the guile-snarf.awk script uses to verify argument/position matching. * ramap.c: Remove extraneous #undef FUNC_NAME. Wed Jan 5 08:36:38 2000 Greg J. Badros * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the current version of the same functionality; it writes the .x output to stdout instead of directly into the file. Wed Jan 5 08:15:04 2000 Greg J. Badros * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c, posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now redundant with the safer macros. Patch from Dirk Hermann applied by hand. Thanks Dirk! * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some uses in random.c. * ramap.c: whitespace change. Tue Jan 4 14:21:35 2000 Greg J. Badros * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP removals from Dirk Hermann. * alist.c: Rename formals to match the parameter names in the documentation, updates to documentation. Thanks Dirk Hermann! 2000-01-04 Mikael Djurfeldt * eval.c (SCM_CEVAL): Reverse order of scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P (Thanks to Brad Knotwell.) Mon Jan 3 08:30:02 2000 Greg Harvey (applied --01/03/00 gjb) * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly allocated cell. * pairs.h: Added a comment about the need for the SCM_SETCAR in SCM_NEWCELL macro. Mon Jan 3 08:25:19 2000 Greg J. Badros * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More SCM_NIMP tests that were redundant are now eliminated. Patches from Dirk Hermann applied by hand. The ChangeLog continues in the file: "ChangeLog-1996-1999"