* gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
(scm_gc_sweep): Make n and j local to the blocks they're used in,
so they can have appropriate types for each application. Make i
signed. Use initializers in some spots. I'll probably pay for
all this tweaking.
(scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
(scm_must_realloc): Make nm unsigned.
(init_heap_seg): Make new_seg_index and n_new_objects signed.
(scm_init_storage): Use prototype-style definition, and make the
argument unsigned.
* gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
avoid signed/unsigned comparison warnings, and because the return
value of readlink may be -1. Don't bother casting the third
argument to readlink.
* filesys.c (scm_dirname, scm_basename): Move these to their own
page, at the end of the file.
* filesys.h (scm_dirname, scm_basename): Add prototypes for these.
whose reason for existence is explained in no documentation or
comment. I think it's there as a default for some Tcl-style
initialization, but Tcl abandoned that approach a while ago.
* Makefile.am (libguile_la_SOURCES): Remove appinit.c.
(BUILT_SOURCES): Remove appinit.x.
* Makefile.in: Regenerated.
* configure: Regenerated.
* HACKING: Ask people not to make changes that introduce those
warnings. Now I have to go through the code and actually bring it
up to standards... :(
* Makefile.am (lib_LTLIBRARIES, EXTRA_LTLIBRARIES,
libqthreads_la_SOURCES, libqthreads_la_LIBADD): These replace
lib_LIBRARIES, EXTRA_LIBRARIES, libqthreads_a_SOURCES,
libqthreads_a_LIBADD. Use the variables set by the new config
system.
(libqthreads_la_DEPENDENCIES): New var.
(libqthreads_la_LDFLAGS): Add -rpath; automake claims it can't set
it itself, but I don't completely understand why.
(qtmds.o, qtmdc.o): Rules removed. Use implicit build rules.
(qtmds.s, qtmdc.c, qtdmdb.s): Rules added, to make symlinks to the
appropriate files in the source tree.
* Makefile.in, md/Makefile.in, time/Makefile.in: Regenerated.
* Makefile.am (lib_LTLIBRARIES, EXTRA_LTLIBRARIES,
libqthreads_la_SOURCES, libqthreads_la_LIBADD): These replace
lib_LIBRARIES, EXTRA_LIBRARIES, libqthreads_a_SOURCES,
libqthreads_a_LIBADD. Use the variables set by the new config
system.
(libqthreads_la_DEPENDENCIES): New var.
(libqthreads_la_LDFLAGS): Add -rpath; automake claims it can't set
it itself, but I don't completely understand why.
(qtmds.o, qtmdc.o): Rules removed. Use implicit build rules.
(qtmds.s, qtmdc.c, qtdmdb.s): Rules added, to make symlinks to the
appropriate files in the source tree.
* Makefile.in: Regenerated.
(INCLUDES): Include the value of THREAD_CPPFLAGS.
(guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
THREAD_LIBS.
(THREAD_LIBS): Definition deleted; automake will generate such
things automatically.
* Makefile.in: Regenerated.
* qthreads.m4: New file, which knows how to configure the qthreads
library.
* configure.in: Replace all thread package selection code. Do the
--with-threads argument processing here. Enable the appropriate
thread interface files in libguile. Remove all qthreads
configuration code; call QTHREADS_CONFIGURE instead. Set
GUILE_LIBS using the info provided by QTHREADS_CONFIGURE.
* threads.m4: Removed; not used any more.
* Makefile.am (aclocal_DATA): Mention qthreads.m4, not threads.m4.
* Makefile.in, aclocal.m4, configure: Rgnrtd. (Sv th vwls!)
Note that these were regenerated with the tools available from
Cygnus's source tree, which have patches not available to the
general public. I'm not sure this was a good idea; feel free to
revert them to the latest released versions of the tools.
marking code, and make marker routines only responsible for
turning up outgoing pointers.
* gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
before calling the marking function. Don't call the marking
function if it's zero.
* markers.c (scm_mark0): Just return #f. This function isn't
necessary at all now, but it's harmless to call it. We'll leave
it in so other folks' code doesn't croak at link time.
(scm_markcdr): Don't call SCM_SETGC8MARK.
* async.c (mark_async): Don't call SCM_SETGC8MARK.
* dynl.c (mark_dynl_obj): Same.
* root.c (mark_root): Same.
* srcprop.c (marksrcprops): Same.
* unif.c (markra): Same.
* variable.c (scm_markvar): Same.
* ports.c (scm_markstream): Same.
(void_port_ptob): Specify zero for our marking function.
* debug.c (debugobjsmob): Same.
* dynwind.c (guardsmob): Same.
* filesys.c (dir_smob): Same.
* fluids.c (fluid_smob): Same.
* fports.c (scm_fptob, scm_pipob): Same.
* mallocs.c (mallocsmob): Same.
* regex-posix.c (regex_t_smob): Same.
* smob.c (freecell, flob, bigob): Same.
* threads.c (thread_smob, mutex_smob, condvar_smob): Same.
* throw.c (jbsmob, lazy_catch_funs): Same.
ungetc-char-ready?, since we don't provide that function any
more. The unread-string function doesn't interact properly with
any of the standard I/O functions anyway. (Thanks to Andrew
Archibald.)
scm_copy_tree on code in order not to let memoized code to leak
out. Thus, scm_copy_tree needs to copy vectors as well since
quasiquote can introduce evaluated code also inside vector
constants.