mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 14:21:10 +02:00
remove GC bits documentation from the tags table.
This commit is contained in:
parent
39e8f371e2
commit
33138b0567
4 changed files with 22 additions and 10 deletions
|
@ -1,5 +1,7 @@
|
||||||
2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
|
2002-08-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
|
||||||
|
|
||||||
|
* tags.h: remove GC bits documentation from the tags table.
|
||||||
|
|
||||||
* read.c (INPUT_ERROR): Prepare for file:line:column error
|
* read.c (INPUT_ERROR): Prepare for file:line:column error
|
||||||
messages for errors in scm_lreadr() and friends.
|
messages for errors in scm_lreadr() and friends.
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,7 @@ scm_i_sweep_card (scm_t_cell * p, SCM *free_list, int span)
|
||||||
the bitvec in turn, but it wasn't any faster, but quite bit
|
the bitvec in turn, but it wasn't any faster, but quite bit
|
||||||
hairier.
|
hairier.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (p += offset; p < end; p += span, offset += span)
|
for (p += offset; p < end; p += span, offset += span)
|
||||||
{
|
{
|
||||||
SCM scmptr = PTR2SCM(p);
|
SCM scmptr = PTR2SCM(p);
|
||||||
|
|
|
@ -192,7 +192,7 @@ scm_gc_mark (SCM ptr)
|
||||||
|
|
||||||
Mark the dependencies of an object.
|
Mark the dependencies of an object.
|
||||||
|
|
||||||
TODO:
|
Prefetching:
|
||||||
|
|
||||||
Should prefetch objects before marking, i.e. if marking a cell, we
|
Should prefetch objects before marking, i.e. if marking a cell, we
|
||||||
should prefetch the car, and then mark the cdr. This will improve CPU
|
should prefetch the car, and then mark the cdr. This will improve CPU
|
||||||
|
@ -204,7 +204,13 @@ garbage collector cache misses.
|
||||||
|
|
||||||
Prefetch is supported on GCC >= 3.1
|
Prefetch is supported on GCC >= 3.1
|
||||||
|
|
||||||
*/
|
(Some time later.)
|
||||||
|
|
||||||
|
Tried this with GCC 3.1.1 -- the time differences are barely measurable.
|
||||||
|
Perhaps this would work better with an explicit markstack?
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
scm_gc_mark_dependencies (SCM p)
|
scm_gc_mark_dependencies (SCM p)
|
||||||
#define FUNC_NAME "scm_gc_mark_dependencies"
|
#define FUNC_NAME "scm_gc_mark_dependencies"
|
||||||
|
@ -225,6 +231,8 @@ scm_gc_mark_dependencies (SCM p)
|
||||||
ptr = SCM_CAR (ptr);
|
ptr = SCM_CAR (ptr);
|
||||||
goto gc_mark_nimp;
|
goto gc_mark_nimp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
scm_gc_mark (SCM_CAR (ptr));
|
scm_gc_mark (SCM_CAR (ptr));
|
||||||
ptr = SCM_CDR (ptr);
|
ptr = SCM_CDR (ptr);
|
||||||
goto gc_mark_nimp;
|
goto gc_mark_nimp;
|
||||||
|
@ -232,6 +240,7 @@ scm_gc_mark_dependencies (SCM p)
|
||||||
ptr = SCM_CDR (ptr);
|
ptr = SCM_CDR (ptr);
|
||||||
goto gc_mark_loop;
|
goto gc_mark_loop;
|
||||||
case scm_tc7_pws:
|
case scm_tc7_pws:
|
||||||
|
|
||||||
scm_gc_mark (SCM_SETTER (ptr));
|
scm_gc_mark (SCM_SETTER (ptr));
|
||||||
ptr = SCM_PROCEDURE (ptr);
|
ptr = SCM_PROCEDURE (ptr);
|
||||||
goto gc_mark_loop;
|
goto gc_mark_loop;
|
||||||
|
@ -285,8 +294,10 @@ scm_gc_mark_dependencies (SCM p)
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
break;
|
break;
|
||||||
while (--i > 0)
|
while (--i > 0)
|
||||||
if (SCM_NIMP (SCM_VELTS (ptr)[i]))
|
{
|
||||||
scm_gc_mark (SCM_VELTS (ptr)[i]);
|
if (SCM_NIMP (SCM_VELTS (ptr)[i]))
|
||||||
|
scm_gc_mark (SCM_VELTS (ptr)[i]);
|
||||||
|
}
|
||||||
ptr = SCM_VELTS (ptr)[0];
|
ptr = SCM_VELTS (ptr)[0];
|
||||||
goto gc_mark_loop;
|
goto gc_mark_loop;
|
||||||
#ifdef CCLO
|
#ifdef CCLO
|
||||||
|
|
|
@ -229,12 +229,10 @@ typedef signed long scm_t_signed_bits;
|
||||||
*
|
*
|
||||||
* Here is a summary of tags in the CAR of a non-immediate:
|
* Here is a summary of tags in the CAR of a non-immediate:
|
||||||
*
|
*
|
||||||
* HEAP CELL: G=gc_mark; 1 during mark, 0 other times.
|
* cons ..........SCM car..............0 ...........SCM cdr.............0
|
||||||
*
|
* struct ..........void * type........001 ...........void * data.........0
|
||||||
* cons ..........SCM car..............0 ...........SCM cdr.............G
|
* closure ..........SCM code...........011 ...........SCM env.............0
|
||||||
* struct ..........void * type........001 ...........void * data.........G
|
* tc7 ......24.bits of data...0xxxx1S1 ..........void *data............
|
||||||
* closure ..........SCM code...........011 ...........SCM env.............G
|
|
||||||
* tc7 ......24.bits of data...Gxxxx1S1 ..........void *data............
|
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue