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"