1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-08 10:50:21 +02:00
Commit graph

3680 commits

Author SHA1 Message Date
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
Dirk Herrmann
ba11fd4cb6 Only include root.h where it is actually needed. 2000-03-18 08:44:04 +00:00
Dirk Herrmann
7ab3fdd51f Only include strings.h where it is actually needed. 2000-03-17 18:11:58 +00:00
Dirk Herrmann
f04d8caf82 Only include ports.h where it is actually needed. 2000-03-17 16:10:13 +00:00
Dirk Herrmann
003d1fd046 Only include vectors.h in those files, where it is actually needed. 2000-03-17 15:23:03 +00:00
Dirk Herrmann
0fa27efa4a Removed empty file genio.h and references to it. 2000-03-17 13:37:33 +00:00
Mikael Djurfeldt
85dd66c830 (SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -50. 2000-03-17 09:04:49 +00:00
Mikael Djurfeldt
1eb489a2da *** empty log message *** 2000-03-17 08:58:38 +00:00
Mikael Djurfeldt
1ba5ccd12b * gc.c, gc.h: Cleanup of the change of 2000-03-15.
Cluster sizes are now independent of GC trigger values.
GUILE_GC_TRIGGER_n can now specify a relative trigger value:
A negative integer gives fraction of total heap size in percent.
(SCM_GC_TRIGGER_1, SCM_GC_TRIGGER_2): Default values set to -40.
2000-03-17 08:58:27 +00:00
Mikael Djurfeldt
148f31de71 *** empty log message *** 2000-03-17 08:09:25 +00:00
Mikael Djurfeldt
4c48ba0605 * gc.c, gc.h: Cleanup of the change of 2000-03-15.
Cluster sizes are now independent of GC trigger values.
GUILE_GC_TRIGGER_n can now specify a relative trigger value:
A negative integer gives fraction of total heap size in percent.
2000-03-17 08:09:14 +00:00
Mikael Djurfeldt
08f77a4459 * init.c (scm_boot_guile_1): Introduced new variable
GUILE_MAX_SEGMENT_SIZE; New environment variable names:
GUILE_INIT_SEGMENT_SIZE_1, GUILE_GC_TRIGGER_1,
GUILE_INIT_SEGMENT_SIZE_2, GUILE_GC_TRIGGER_2
2000-03-17 08:09:03 +00:00
Jim Blandy
176067df1a Doc fix. 2000-03-16 21:11:45 +00:00
Mikael Djurfeldt
bc2c8d9886 *** empty log message *** 2000-03-16 20:17:52 +00:00
Mikael Djurfeldt
6d0f81ddaa *** empty log message *** 2000-03-16 18:23:00 +00:00
Mikael Djurfeldt
d2f51eaf14 * __scm.h (GC_FREE_SEGMENTS): Disable this until we have made
freeing of segment work with the new GC scheme.  (Thanks to
Michael Livshin.)
2000-03-16 18:22:50 +00:00
Mikael Djurfeldt
a8cffa9f69 *** empty log message *** 2000-03-16 04:26:12 +00:00
Mikael Djurfeldt
12e5fb3bb8 *** empty log message *** 2000-03-16 04:21:20 +00:00
Mikael Djurfeldt
5a55154239 *** empty log message *** 2000-03-16 04:04:25 +00:00
Mikael Djurfeldt
5384bc5b52 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
defined.
(scm_free_list_length): New procedure (GUILE_DEBUG).
2000-03-16 03:59:35 +00:00
Mikael Djurfeldt
6c7c449e6d *** empty log message *** 2000-03-16 01:29:21 +00:00
Mikael Djurfeldt
bb2c57fa98 * gc.c, gc.h (scm_map_free_list): Define also if GUILE_DEBUG is
defined.
2000-03-16 01:29:00 +00:00
Mikael Djurfeldt
17351a6f17 *** empty log message *** 2000-03-16 01:18:32 +00:00
Mikael Djurfeldt
0df07278df * gc.c (scm_gc_sweep): Moved variable n_objects to inner sweep
loop and declare as register.
2000-03-16 01:18:13 +00:00
Mikael Djurfeldt
c5133dc959 *** empty log message *** 2000-03-16 00:06:34 +00:00
Mikael Djurfeldt
8ded62a3db * gc.c (scm_gc_sweep): Sigh... forgot to clear private freelists
after GC.
2000-03-16 00:04:32 +00:00
Mikael Djurfeldt
90e7786109 *** empty log message *** 2000-03-15 19:08:27 +00:00
Greg J. Badros
3820581c58 *** empty log message *** 2000-03-15 16:54:30 +00:00
Greg J. Badros
ed4d7cee87 * fluids.c: Docstring patch from Keisuke Nishida. Some
reindentation, too, and a couple formals renamed.  Should
fluid-set! return UNSPECIFIED instead of a value?
2000-03-15 16:28:13 +00:00
Greg J. Badros
9515eae657 * Makefile.am: Separate out DOT_X_FILES and DOT_DOC_FILES, and
generate the latter from the concrete listing of the former.  Then
make guile-procedures.txt depend on DOT_DOC_FILES instead of
*.doc, so that rebuilding it works.
2000-03-15 16:25:37 +00:00
Greg J. Badros
dd6390bf76 *** empty log message *** 2000-03-15 16:13:40 +00:00
Greg J. Badros
3fea1002b6 * libguile.h: Include libguile/validate.h. Thanks Keisuke Nishida! 2000-03-15 16:12:40 +00:00
Greg J. Badros
09aebdb572 * guile-snarf.awk.in: Replace docstring line-ending \n" and \n\n"
with nothing and \n, respectively. Thanks Keisuke Nishida for
noticing this problem.
2000-03-15 16:09:58 +00:00
Mikael Djurfeldt
dd45c0dfdb Removed some stupid code. 2000-03-15 15:19:50 +00:00
Mikael Djurfeldt
4fdb0ae271 *** empty log message *** 2000-03-15 07:31:15 +00:00
Mikael Djurfeldt
4a4c9785e0 * gc.c, gc.h, pairs.h, init.c: Implementation of a new way of
allocating heap.  The basic idea is to trigger GC every Nth
allocated cell and grow heap when free list runs out.  The scheme
has been extended so that GC isn't triggered until all remaining
cells are used.  The implementation is also prepared for
development in the direction of POSIX threads.

* gc.c (SCM_EXPHEAP): In order to grow by a factor of 1.5,
SCM_EXPHEAP should return half of the heap size.
2000-03-15 07:30:53 +00:00
Mikael Djurfeldt
83c4c29dcb * __scm.h (GUILE_NEW_GC_SCHEME): Define this if you want to test a
new way of allocating heap.  It makes Guile fast, but still
contains bugs.
2000-03-15 07:30:39 +00:00
Mikael Djurfeldt
5f4edb864b *** empty log message *** 2000-03-14 22:15:24 +00:00
Mikael Djurfeldt
de1bc44946 The following change to init.c is only enabled if Guile was
configured with --enable-guile-debug.

* init.c (scm_i_getenv_int): New function.
(scm_boot_guile_1): Use the environment variables
GUILE_INIT_HEAP_SIZE, GUILE_INIT_HEAP_SIZE2 to select heap size if
they exist.  (This may be replaced by a Scheme level mechanism in
the future.)
2000-03-14 22:15:12 +00:00
Mikael Djurfeldt
2b260c0f2e *** empty log message *** 2000-03-14 18:03:27 +00:00
Mikael Djurfeldt
3d8d1283c6 *** empty log message *** 2000-03-14 17:24:57 +00:00
Mikael Djurfeldt
e869585c10 * objprop.c (s_scm_set_object_property_x): Use scm_assq instead of
scm_assoc.  (Thanks to Dirk Herrmann.)
2000-03-14 17:24:48 +00:00
Mikael Djurfeldt
b0e37c83f0 *** empty log message *** 2000-03-14 16:41:17 +00:00
Mikael Djurfeldt
43a912cfa6 * eval.c, lang.c, lang.h (scm_lisp_nil, scm_lisp_t): Renamed from
scm_nil, scm_t.  (Thanks to Dirk Herrmann.)
2000-03-14 16:41:03 +00:00
Mikael Djurfeldt
5ebf0091ec *** empty log message *** 2000-03-14 15:12:23 +00:00
Mikael Djurfeldt
069fe4257c * init.c (scm_boot_guile_1): Use same initial segment size for
1-word and 2-word segments.  Having the smaller size causes Guile
to GC too often.  Obviously something needs to be done to allow
for a smaller 2-word segment without this to happen.  (The amount
of heap for each type should be automatically adapted to the
application somehow.)
2000-03-14 15:12:12 +00:00
Mikael Djurfeldt
b20108743b *** empty log message *** 2000-03-14 12:36:05 +00:00
Mikael Djurfeldt
cf2c741398 *** empty log message *** 2000-03-14 09:03:56 +00:00
Mikael Djurfeldt
1201a982fa * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists. 2000-03-14 09:03:32 +00:00