Some of the thread support code (threads.c, coop.c, etc.) used to live in a separate directory called threads. In April 1997, that dir was merged with libguile; this is the ChangeLog from the old directory. Please put new entries in the ordinary ChangeLog. Mon Feb 24 21:48:12 1997 Mikael Djurfeldt * configure.in: Added AM_MAINTAINER_MODE Fri Feb 21 23:52:16 1997 Mikael Djurfeldt * Makefile.am (modincludedir, modinclude_HEADERS): Added until libthreads is integrated into libguile, otherwise people who try to use Guile from an independent application will have trouble finding libguile/../threads/threads.h. Sat Jan 11 18:35:39 1997 Marius Vollmer * Makefile.am (noinst_HEADERS): Added coop-defs.h so that it gets distributed. Tue Jan 7 14:05:35 1997 Mikael Djurfeldt * coop-defs.h: Added includes which define `time_t'. Sun Jan 5 15:07:07 1997 Jim Blandy * Makefile.am (EXTRA_DIST): Add .cvsignore. * Makefile.am (libthreads_a_SOURCES): Add threads.h. I think this is right... (noinst_HEADERS): Remove it from here. * Makefile.in: Rebuilt. Thu Jan 2 15:15:16 1997 Mikael Djurfeldt These changes separates threads declarations which everybody wants to see (coop-defs.h) from declarations internal to the threads module (coop-threads.h), thereby solving the "-I ../qt" problem. (This is not the final solution. All files in the threads directory should be moved into libguile since 1. it is too tightly interconnected with libguile internals to be a separate module and 2. it is actually quite small. When doing this, things can be organized in a more natural way.) * coop-defs.h: New file. * coop-threads.c: Added #include "coop-threads.h" * coop-threads.h: Moved coop_t struct and threads macros to coop-defs.h. Added #include "coop-defs.h". * threads.h: Changed #include "coop-threads.h" --> #include "coop-defs.h". Mon Dec 9 17:20:39 1996 Tom Tromey * Makefile.am (.c.x): Use guile-snarf. (INCLUDES): Search for headers in libguile source and build directories. Mon Dec 2 20:37:07 1996 Tom Tromey * PLUGIN/greet: Removed. * Makefile.am, aclocal.m4: New files. * configure.in: Updated for Automake. Sun Nov 10 18:21:00 1996 Jim Blandy * Makefile.in (uninstall_threads): rmdir -f isn't portable; use rm -rf instead. Sun Nov 10 17:41:21 1996 Jim Blandy * Makefile.in, configure.in: When threads are disabled, short-circuit the `install' and `uninstall' Makefile targets too. Sat Nov 2 21:29:33 1996 Mikael Djurfeldt * threads.c: Added #include "dynwind.h". Added scheme level procedure `single-active-thread?'. * mit-pthreads.c, mit-pthreads.h: Port completed but untested. * coop-threads.h: Increased SCM_THREAD_SWITCH_COUNT from 10 to 50 to decrease overhead at the cost of granularity. * coop.c, coop-threads.h: Made coop_global_runq and coop_global_sleepq visible globally. * coop-threads.c (scm_single_thread_p): New function. Thu Oct 24 22:37:03 1996 Mikael Djurfeldt * threads.c: #include "dynwind.h" * coop-threads.c (scm_threads_mark_stacks): Removed unused variable. * coop.c (coop_qput, coop_all_qput, coop_all_qremove): Removed unused variable. Wed Oct 9 19:46:00 1996 Jim Blandy * Makefile.in: Doc fixes. * Makefile.in (ancillary): Corrected spelling from `ancillery'. * Makefile.in (source, h_files, ancillary): Updated to describe the actual contents of the tree. (PLUGIN_distfiles): New variable. (dist-dir): New target, to create a sub-tree of a distribution. * Makefile.in (all): Depend on @target_all@ instead of libthreads.a, so the configure script can make this makefile do nothing when threads aren't in use. * configure.in: If we using cooperative threads, then let @target_all@ expand to libthreads.a; otherwise, let it expand to the empty string. Sat Oct 5 18:40:09 1996 Mikael Djurfeldt * threads.c, threads.h (scm_init_threads, scm_threads_init): Added stack base pointer argument so that main thread can be initialized properly. * configure.in: Added lines to set default -g flag in CFLAGS and LDFLAGS. * coop-threads.c: Added argument checking to scheme level procedures. Change the way threads are launched. * threads.h: Added #include "procs.h" Added macros SCM_THREADP, SCM_MUTEXP and SCM_CONDVARP. Wed Oct 2 14:36:44 1996 Mikael Djurfeldt * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex, scm_threads_free_condvar): free --> scm_must_free * coop-threads.h: Added macros SCM_THREAD_LOCAL_DATA and SCM_SET_THREAD_LOCAL_DATA. Tue Oct 1 00:05:54 1996 Mikael Djurfeldt * coop-threads.c (scm_threads_mark_stacks): scm_save_regs_gc_mark is already in root state (should it really?). Don't allocate it locally; Remove extra argument to scm_mark_locations. * coop-threads.h: Changed #include --> #include "../qt/qt.h" (SCM_THREAD_INITIALIZE_STORAGE, SCM_DEFER_INTS, SCM_ALLOW_INTS, SCM_REDEFER_INTS, SCM_REALLOW_INTS, scm_coop_create_info_type): Removed; Declaration of scm_coop_create_info removed. Added definition of SCM_THREADS_SWITCHING_CODE. * coop-threads.c: Removed gscm_type objects. Renamed all gscm_threads__die --> scm_threads_free_ and let them return freed size as smob freeing code normally does. Removed thread creation mutex and thread creation info structure. (gscm_threads_thread_equal, gscm_pthread_delete_info, scm_threads_init): Removed. (scm_threads_init_coop_threads): Removed allocation of thread local data. Removed initialization of thread creation mutex. Renamed scm_threads_init_coop_threads --> scm_threads_init. (scm_threads_mark_stacks): Mark root object instead of local protects. (launch_thread): thunk and handler is passed as a scheme list. Call scm_with_new_root instead of scm_with_dynamic_root. Let scm_with_new_root care about thread local variables. Removed unlocking of creation mutex. (scm_call_with_new_thread): Remove initialization of create info structure and locking of creation mutex. Do smob allocation. (scm_join_thread): Extract thread data in a new way. (scm_make_mutex): Do smob allocation. (scm_lock_mutex, scm_unlock_mutex): Extract thread data in a new way. (scm_make_condition_variable): Do smob allocation. (scm_wait_condition_variable, scm_signal_condition_variable): Extract thread data in a new way. * threads.c: Don't use files "no-threads.[hc]". Removed old code for creation of thread, mutex and condition-variable objects. Added smobs instead. Use scm_threads_free_ for freeing. (scm_init_threads): Moved scm_add_feature ("threads") to feature.c. * threads.h: Added declaration of scm_init_threads. Added macro selectors SCM_THREAD_DATA, SCM_MUTEX_DATA and SCM_CONDVAR_DATA. * coop-threads.c, coop-threads.h, coop.c, fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h, threads.c, threads.h: Replaced "gscm" --> "scm" everywhere. Lots of name changes to concord with new Guile. Thu Apr 4 10:19:56 1996 Tom Tromey Fixed CFLAGS usage: * Makefile.in (XCFLAGS): New macro. (.c.x): Use it. (.c.o): Ditto. * configure.in: Use DEFS, not X_CFLAGS. Fri Mar 29 17:08:14 1996 Anthony Green * no-threads.c (gscm_threads_init_all): This function is now found in libguile. Fri Mar 29 16:52:27 1996 Tom Tromey * configure.in (CFLAGS): Use "test !=", not "! test". Fri Mar 29 11:51:18 1996 Anthony Green * Makefile.in (install): make install now works properly. Thu Mar 28 07:52:11 1996 Anthony Green * mit-pthreads.c: dynwinds set to BOOL_T for new threads. Added dummy yield function. Tue Mar 26 15:17:42 1996 Anthony Green (green@gerbil.cygnus.com) * coop.c: Added new sleep() function. Behaves properly among multiple cooperative threads. Replaces system call. Mon Mar 25 11:05:41 1996 Anthony Green (green@gerbil.cygnus.com) * coop.c (COOP_STKSIZE): Boosted default stack size. * coop-threads.c: Moved declaration of scm_coop_create_info to avoid multiple definitions at link time. Sun Mar 24 23:04:29 1996 Anthony Green (green@gerbil.cygnus.com) * configure: Rebuilt * configure.in: Upgraded thread library/include support. Tue Mar 19 12:44:26 1996 Anthony Green (green@gerbil.cygnus.com) * coop.c, coop-threads.h coop-threads.c: Major cleanup of cooperative threading code. Tue Feb 13 15:45:39 1996 Anthony Green * mit-pthreads.h: Defined pthread aware SCM_DEFER_INTS and friends. Mon Feb 12 19:59:55 1996 Anthony Green * threads.c, no-threads.c, mit-pthreads.c, threads.scm: Creation.