1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 22:40:25 +02:00
Commit graph

11201 commits

Author SHA1 Message Date
Kevin Ryde
5df2ac97e9 (find, find-tail): Rewrite in C. 2005-03-13 22:49:28 +00:00
Kevin Ryde
6851314445 New file. 2005-03-13 22:43:07 +00:00
Kevin Ryde
938d99096d *** empty log message *** 2005-03-13 00:52:29 +00:00
Kevin Ryde
bf04b1a384 * tests/srfi-60.test: New file.
* Makefile.am (SCM_TESTS): Add it.
2005-03-13 00:52:01 +00:00
Kevin Ryde
17e69f21ce New file. 2005-03-13 00:51:30 +00:00
Kevin Ryde
85542c385d *** empty log message *** 2005-03-13 00:41:20 +00:00
Kevin Ryde
6e09703fa0 (lset-union): Call `=' procedure with args in the order specified by the SRFI. 2005-03-13 00:40:55 +00:00
Kevin Ryde
ba78f311d5 *** empty log message *** 2005-03-13 00:39:42 +00:00
Kevin Ryde
6bba4fad61 (LIBGUILE_SRFI_SRFI_60): New defines. 2005-03-13 00:36:50 +00:00
Kevin Ryde
9d3ea5718f * srfi-60.scm, srfi-60.c, srfi-60.h: New files.
* Makefile.am: Add them.
2005-03-13 00:31:32 +00:00
Kevin Ryde
8884a0844f New file. 2005-03-13 00:29:04 +00:00
Kevin Ryde
afd09cfba0 (logior): New tests, exercising negative bignums reducing to inum. 2005-03-13 00:21:45 +00:00
Kevin Ryde
f1531813b8 *** empty log message *** 2005-03-13 00:20:40 +00:00
Kevin Ryde
23c3b605b5 (scm_i_clonebig): Remove static, so can use in srfi-60. 2005-03-13 00:18:34 +00:00
Kevin Ryde
9806de0dca (scm_logior): Must scm_i_normbig results as per scm_logand,
because OR-ing bits into a negative can reduce the value to an inum.
2005-03-13 00:16:22 +00:00
Kevin Ryde
6f6847fa21 (=): Exercise inum/flonum cases that used to
round on 64-bit systems.
2005-03-13 00:14:23 +00:00
Kevin Ryde
e8c5b1f291 (scm_num_eq_p): On 64-bit systems, be careful about
casting inum to double since that can lose precision.
2005-03-13 00:13:10 +00:00
Marius Vollmer
a9fae247a3 *** empty log message *** 2005-03-10 18:43:04 +00:00
Marius Vollmer
98345eebf9 (scm_i_init_guile): Do not set scm_block_gc. 2005-03-10 18:42:52 +00:00
Marius Vollmer
fd20058d74 (SCM_BEGIN_FOREIGN_BLOCK, SCM_END_FOREIGN_BLOCK): Do not set
scm_block_gc.
2005-03-10 18:42:11 +00:00
Marius Vollmer
b17e0ac397 * gc.h, gc.c (SCM_FREECELL_P): Removed for good.
(scm_block_gc, scm_gc_heap_lock): Removed.  Removed all uses.
(scm_gc_running_p): Now a macro that refers to the scm_i_thread
field.
(scm_i_sweep_mutex): Now a non-recursive mutex.  GC can not happen
recursively.
(scm_igc, scm_i_gc): Renamed former to latter.  Changed all uses.
Do not lock scm_i_sweep_mutex, which is now non-recursive, or set
scm_gc_running_p.  Do not run the scm_after_gc_c_hook.
(scm_gc): Lock scm_i_sweep_mutex, set scm_gc_running_p and run the
scm_after_gc_c_hook here.
(scm_gc_for_new_cell): Set scm_gc_running_p here and run the
scm_after_gc_c_hook when a full GC has in fact been performed.
(scm_i_expensive_validation_check): Call scm_gc, not scm_i_gc.

* gc-segment.c (scm_i_get_new_heap_segment): Do not check
scm_gc_heap_lock.

* gc-malloc.c (scm_realloc, increase_mtrigger): Set
scm_gc_running_p while the scm_i_sweep_mutex is locked.
2005-03-10 18:39:53 +00:00
Marius Vollmer
94d375b5a7 (scm_cell, scm_double_cell): Do not check scm_gc_running_p, allocation
during sweeping is OK.
2005-03-10 18:08:12 +00:00
Marius Vollmer
1a8fdd7e12 (scm_i_thread): Added gc_running_p field.
(guilify_self_1): Initialize it.
2005-03-10 18:06:54 +00:00
Marius Vollmer
fc240b46e9 (scm_c_issue_deprecation_warning): Use malloc instead of scm_malloc.
The latter can not be used during GC.
2005-03-10 18:05:25 +00:00
Marius Vollmer
68ec32312f For 1.7.2. 2005-03-09 22:15:57 +00:00
Marius Vollmer
d1c38e114e *** empty log message *** 2005-03-09 22:15:32 +00:00
Marius Vollmer
2c47876347 (GUILE_MICRO_VERSION): Incremented to "2". 2005-03-09 22:14:46 +00:00
Marius Vollmer
d152d44ba8 (scm_compile_shell_switches): Added 2005 to Copyright years. 2005-03-09 22:11:56 +00:00
Marius Vollmer
a6d75e533e Couple cleanups. 2005-03-09 22:09:11 +00:00
Marius Vollmer
99ec43c198 *** empty log message *** 2005-03-09 19:23:55 +00:00
Marius Vollmer
b5fa979ca6 (ensure_state_size, ensure_all_state_sizes, resize_all_states):
Collapsed ensure_state_size and ensure_all_state_sizes into one
function named resize_all_states.  Allocate new vectors outside of
single threaded region.  Do only simple things inside that region.
(scm_make_fluid, scm_make_dynamic_state): Lock fluid_admin_mutex while
adding to the global lists.
2005-03-09 19:20:49 +00:00
Marius Vollmer
443840184b (scm_i_sweep_card): Do not increase/decrease scm_gc_running_p.
Sweeping can happen in parallel with allocation.
2005-03-09 19:17:19 +00:00
Marius Vollmer
b2a339f6e5 Updated comments for current threading implementation. 2005-03-09 19:14:36 +00:00
Marius Vollmer
0c97d7dd66 (scm_i_frame_single_threaded): Removed.
(scm_i_thread): Removed unused signal_asyncs field.
(threads_mark): Do not mark it.
(guilify_self_1): Do not initialize it.  Do initialize
continuation_root field.
(do_thread_exit): Do not remove thread from all_threads list.
(on_thread_exit): Do it here, after leaving guile mode.
(sleep_level): Removed.
(scm_i_thread_put_to_sleep): Leave thread_admin_mutex locked when
returning.  Do not support recursive sleeps.
(scm_i_thread_wake_up): Expect thread_admin_mutex to be locked on
entry.  Do not support recursive sleeps.
2005-03-09 19:13:59 +00:00
Marius Vollmer
461f34aa1b *** empty log message *** 2005-03-08 00:58:55 +00:00
Marius Vollmer
a98dbc879e * configure.in: Do not call AC_LIBLTDL_INSTALLABLE. Use
AC_CHECK_LIB instead. Do not subst LTDLINCL and LIBLTDL.  Do not
add "-DLIBLTDL_DLL_IMPORT" on MINGW32.

* Makefile.am (SUBDIRS): Removed libltdl.

* README: Talk about required external packages.

* autogen.sh: Do not call libtoolize.
2005-03-08 00:54:46 +00:00
Marius Vollmer
5a3ce59e21 (INCLUDES): Removed @LTDLINCL@.
(libguile_la_LIBADD): Removed @LIBLTDL@.
2005-03-08 00:53:21 +00:00
Kevin Ryde
d1ad188c38 *** empty log message *** 2005-03-07 22:52:58 +00:00
Kevin Ryde
84269297c3 (*features*): Remove 'random, need to use the slib code for
that module since guile doesn't provide `random:chunk'.
2005-03-07 22:52:01 +00:00
Kevin Ryde
9ae567ebda *** empty log message *** 2005-03-07 22:51:36 +00:00
Kevin Ryde
df2580a176 (*features*): Remove 'random, need to use the slib code for
that module since guile doesn't provide `random:chunk'.
2005-03-07 22:46:07 +00:00
Marius Vollmer
b9d9ad3a2a *** empty log message *** 2005-03-07 22:33:46 +00:00
Marius Vollmer
627c72a944 Include "libguile/async.h" for SCM_CRITICAL_SECTION_START/END. 2005-03-07 22:32:22 +00:00
Marius Vollmer
2567692aeb Moved up section on mutexes and condition variables. Added critical
"Critical Sections" section.
2005-03-07 21:49:43 +00:00
Marius Vollmer
32106a5ded Talk about critical sections. 2005-03-07 21:48:18 +00:00
Marius Vollmer
4e047c3e46 Include "libguile/async.h" for SCM_CRITICAL_SECTION_START/END. 2005-03-07 21:42:02 +00:00
Marius Vollmer
54f2445baa * throw.c (scm_ithrow): Abort when scm_i_critical_section_level is
not zero.
2005-03-07 21:40:19 +00:00
Marius Vollmer
8b7f0bb35b * continuations.c (scm_make_continuation): No longer a critical
section.
(scm_dynthrow):  Abort when scm_i_critical_section_level is
not zero.
2005-03-07 21:39:56 +00:00
Marius Vollmer
5e3545d00e (scm_debug_options): Replace SCM_CRITICAL_SECTION_START/END with a
frame and scm_frame_critical_section.
2005-03-07 21:33:18 +00:00
Marius Vollmer
aeba601d56 (scm_make_continuation): No longer a critical section. 2005-03-07 21:32:00 +00:00