1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 05:20:16 +02:00
Commit graph

2228 commits

Author SHA1 Message Date
Dirk Herrmann
f81e080b24 Fixed some bugs that are due to the fact that SCM is a void* now.
Cleaned up a macro definition.  Thanks to Dale P. Smith for both of
these patches.
2000-03-22 20:48:18 +00:00
Dirk Herrmann
1ff2fa6e1a Don't use SCM2PTR for non scheme values. 2000-03-22 10:27:36 +00:00
Mikael Djurfeldt
6f29dc6d2f *** empty log message *** 2000-03-22 02:12:58 +00:00
Mikael Djurfeldt
8f9da2f9e9 * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of
pointer-arithmetic induced by the SCM_PACK/UNPACK change.
2000-03-22 02:12:47 +00:00
Mikael Djurfeldt
998308d305 * print.c (scm_iprin1): SCM_PACK/UNPACK corrections. 2000-03-22 02:12:35 +00:00
Mikael Djurfeldt
890b019c74 * gc.c (scm_gc_sweep): SCM_PACK/UNPACK corrections. 2000-03-22 02:12:24 +00:00
Mikael Djurfeldt
a963f78704 * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections. 2000-03-22 02:12:13 +00:00
Mikael Djurfeldt
15237f3002 * dynwind.c (scm_swap_bindings): Ditto. 2000-03-22 02:09:10 +00:00
Mikael Djurfeldt
9c6599f96b Code layout 2000-03-22 00:21:56 +00:00
Mikael Djurfeldt
8d924bfebc *** empty log message *** 2000-03-21 23:39:00 +00:00
Mikael Djurfeldt
6587a96693 Oops 2000-03-21 23:36:28 +00:00
Mikael Djurfeldt
3920465b9c *** empty log message *** 2000-03-21 23:14:43 +00:00
Mikael Djurfeldt
9f0e55a65b * async.c, __scm.h: Removed lots of the old async click logic. It
is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
__scm.h.  Let's try this out and dump the old code after the
threads reorganization.
(set-tick-rate, set-switch-rate): Conditionally removed.
2000-03-21 23:14:31 +00:00
Mikael Djurfeldt
90cca6f9aa *** empty log message *** 2000-03-21 20:33:33 +00:00
Mikael Djurfeldt
77490b49ab * gc.c (scm_gc_mark): Bugfix 1: The recent SCM_PACK/UNPACK change
made SCM values into pointers.  This turned an arithmetic
computation of the address of the vcell into a pointer-arithmetic
one, thereby screwing up marking of structs.
Bugfix 2: Removed incompletely introduced loop variable `j' used
when protecting the tail array of a struct.
2000-03-21 20:33:18 +00:00
Dirk Herrmann
8246bf3eba Don't cast SCM values to pointers. 2000-03-21 16:44:18 +00:00
Dirk Herrmann
95c9e176a6 Make scm_strhash's string parameter constant. 2000-03-21 15:49:53 +00:00
Dirk Herrmann
7352d0b203 Fix: Don't cast SCM values to pointer. Use SCM2PTR instead. 2000-03-21 11:14:24 +00:00
Dirk Herrmann
b00c8cdc68 Fixed entry date. 2000-03-21 10:58:36 +00:00
Dirk Herrmann
9b139b4e2b Fix: Don't unpack results of SCM_INUM. 2000-03-21 10:04:07 +00:00
Mikael Djurfeldt
bd54e664ae *** empty log message *** 2000-03-21 03:58:05 +00:00
Mikael Djurfeldt
8fef55a81c * gc.c, gc.h (SCM_MIN_YIELD_1, SCM_MIN_YIELD_2,
min_yield_fraction, min_yield, adjust_min_yield): Renamed from
SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2, gc_trigger_fraction,
gc_trigger, adjust_gc_trigger.

* gc.c (SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2):
Adjusted to 45000 cells, 40% and 40%.  Gives quick startup
without extra heap allocation.
2000-03-21 03:57:53 +00:00
Mikael Djurfeldt
70a95005c0 * init.c (scm_boot_guile_1): Renamed GUILE_GC_TRIGGER_1 -->
GUILE_MIN_YIELD_1, GUILE_GC_TRIGGER_2 --> GUILE_MIN_YIELD_2.
2000-03-21 03:56:07 +00:00
Mikael Djurfeldt
df2d517825 *** empty log message *** 2000-03-21 02:38:12 +00:00
Mikael Djurfeldt
1811ebcee5 * gc.c (alloc_some_heap): Further improvement of minimal heap size
prediction.
(SCM_MAX): New macro.
(scm_freelist_t): New field: collected_1. Previous amount of
collected cells.
(gc_sweep_freelist_finish): Trigger based on two last values of
freelist->collected to avoid unnecessary allocation due to
temporary peaks.
2000-03-21 02:37:59 +00:00
Dirk Herrmann
f2961ccd8f A couple of typing problems (at leat partially) resolved. 2000-03-20 18:14:07 +00:00
Mikael Djurfeldt
f1083dd7d7 *** empty log message *** 2000-03-20 15:05:46 +00:00
Mikael Djurfeldt
7dbff8b15d (gc_sweep_freelist_finish): Inserted explanation of use of
gc_trigger.
2000-03-20 15:05:33 +00:00
Mikael Djurfeldt
80770ddc5f *** empty log message *** 2000-03-20 14:57:19 +00:00
Mikael Djurfeldt
37ddcaf606 * gc.c (scm_gc_stats): Inserted explanation of local_scm_mtrigger
etc.
(scm_gc_yield_1): New variable: Holds previous yield.  Used to
make better judgements.
2000-03-20 14:57:04 +00:00
Mikael Djurfeldt
f1d316dd37 *** empty log message *** 2000-03-20 14:39:36 +00:00
Mikael Djurfeldt
7febb4a206 * print.h, stacks.h, options.c, options.h: Changed C++
commentaries to C.
2000-03-20 14:39:23 +00:00
Mikael Djurfeldt
7b4cc8312d *** empty log message *** 2000-03-20 14:31:38 +00:00
Mikael Djurfeldt
6099260c65 * options.h (scm_option): Changed C++ commentary to C. 2000-03-20 14:31:28 +00:00
Dirk Herrmann
7a710745b4 Fix a couple of SCM_PACK / SCM_UNPACK uncleanlynesses. 2000-03-20 14:00:27 +00:00
Mikael Djurfeldt
1ef20c801b *** empty log message *** 2000-03-20 13:39:44 +00:00
Mikael Djurfeldt
bda1446cd5 * gc.c (adjust_gc_trigger): Improved documentation.
(alloc_some_heap): Since gc_trigger is used against
freelist->collected, this is the value which should be used to
predict minimum growth.
2000-03-20 13:39:33 +00:00
Dirk Herrmann
b464b97039 Fix mixup of packed/unpacked SCM values. (Thanks Thien-Thi Nguyen.) 2000-03-20 04:19:54 +00:00
Dirk Herrmann
3ab9f56eaf scm_ash: Fixed typing problems with the second parameter and added some
documentation.  (Thanks Thien-Thi Nguyen for indicating the problem.)
2000-03-20 04:02:56 +00:00
Mikael Djurfeldt
78a4915a1e *** empty log message *** 2000-03-19 21:00:43 +00:00
Mikael Djurfeldt
8b0d194f91 * gc.c, gc.h (scm_gc_yield): New variable.
(adjust_gc_trigger): Use scm_gc_yield.
(alloc_some_heap): Use scm_gc_yield instead of
scm_gc_cells_collected.
2000-03-19 21:00:30 +00:00
Mikael Djurfeldt
05bc3265aa *** empty log message *** 2000-03-19 20:05:47 +00:00
Mikael Djurfeldt
3e830be1eb * debug.c: Added #include "root.h". (Thanks to Thien-Thi Nguyen.) 2000-03-19 20:05:29 +00:00
Mikael Djurfeldt
db8c2c5a89 * coop-threads.c: Addd #include "root.h", #include "strings.h". 2000-03-19 20:05:19 +00:00
Mikael Djurfeldt
b37fe1c56e * gc.c (scm_gc_for_newcell, adjust_gc_trigger): Improved GC
trigger adjustmeant: Take yield (freed cells) for all freelists
into account.
(SCM_INIT_HEAP_SIZE_1, SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Tuned
to 50000 cell heap with 45% trigger.
(scm_gc_cells_collected): Reintroduced.
(SCM_HEAP_SIZE): New macro.
(scm_gc_sweep): Reintroduced correct computation of
scm_cells_allocated.
(scm_freelist_t): Corrected commentary for field `cluster_size':
Clustersize counts objects, not cells;  New member
`clusters_allocated'.
2000-03-19 20:05:02 +00:00
Michael Livshin
89e00824a0 * *.[hc]: add Emacs magic at the end of file, to ensure GNU
indentation style.
2000-03-19 19:01:16 +00:00
Mikael Djurfeldt
afcfc5bbe0 *** empty log message *** 2000-03-19 13:35:17 +00:00
Mikael Djurfeldt
1651c824c9 * threads.h: Added #include "libguile/throw.h". (Thanks to
Thien-Thi Nguyen.)
2000-03-19 13:35:03 +00:00
Michael Livshin
a00c95d9c6 * tags.h: (SCM_DOUBLE_CELLP, SCM_NDOUBLE_CELLP): new macros.
* gc.h: (typedef struct scm_freelist_t) remove from here.

* gc.c: (CELL_UP, CELL_DN) make these macros take additional
parameter (the span).
(CLUSTER_SIZE_IN_BYTES, ALIGNMENT_SLACK) new macros.
(typedef struct scm_freelist_t) move here from gc.h, it had no
business being externally visible.
(typedef struct scm_heap_seg_data_t) renamed from
scm_heap_seg_data, to be style-compliant.
(scm_mark_locations) if the possible pointer points to a
multy-cell, check that it's properly aligned.
(init_heap_seg) alighn multy-cells properly, work with the
assumption that the segment size divides cleanly by cluster size
(so that there's no spill).
(round_to_cluster_size) new function.
(alloc_some_heap, make_initial_segment) use round_to_cluster_size
to satisfy the new init_heap_seg invariant.
2000-03-18 11:09:41 +00:00
Dirk Herrmann
28b3236d36 Only include async.h where it is actually needed. 2000-03-18 09:16:48 +00:00