Jeremy Siek před 6 roky
rodič
revize
cb4d546e09
1 změnil soubory, kde provedl 16 přidání a 22 odebrání
  1. 16 22
      book.tex

+ 16 - 22
book.tex

@@ -4199,12 +4199,6 @@ the procedure call stack. These addresses are called the \emph{root
 transitively reachable from the root set. Thus, it is safe for the
 transitively reachable from the root set. Thus, it is safe for the
 garbage collector to reclaim the tuples that are not reachable in this
 garbage collector to reclaim the tuples that are not reachable in this
 way.
 way.
-%
-\footnote{The sitation in Figure~\ref{fig:copying-collector}, with a
-  cycle, cannot be created by a well-typed program in $R_3$. However,
-  creating cycles will be possible once we get to $R_6$.  We design
-  the garbage collector to deal with cycles to begin with, so we will
-  not need to revisit this issue.}
 
 
 So the goal of the garbage collector is twofold:
 So the goal of the garbage collector is twofold:
 \begin{enumerate}
 \begin{enumerate}
@@ -4214,17 +4208,22 @@ So the goal of the garbage collector is twofold:
   \emph{garbage}.
   \emph{garbage}.
 \end{enumerate}
 \end{enumerate}
 A copying collector accomplishes this by copying all of the live
 A copying collector accomplishes this by copying all of the live
-objects into the ToSpace and then performs a slight of hand, treating
-the ToSpace as the new FromSpace and the old FromSpace as the new
-ToSpace.  In the example of Figure~\ref{fig:copying-collector}, there
-are three pointers in the root set, one in a register and two on the
-stack.  All of the live objects have been copied to the ToSpace (the
-right-hand side of Figure~\ref{fig:copying-collector}) in a way that
-preserves the pointer relationships. For example, the pointer in the
-register still points to a 2-tuple whose first element is a 3-tuple
-and second element is a 2-tuple.  There are four tuples that are not
-reachable from the root set and therefore do not get copied into the
-ToSpace.
+objects from the FromSpace into the ToSpace and then performs a slight
+of hand, treating the ToSpace as the new FromSpace and the old
+FromSpace as the new ToSpace.  In the example of
+Figure~\ref{fig:copying-collector}, there are three pointers in the
+root set, one in a register and two on the stack.  All of the live
+objects have been copied to the ToSpace (the right-hand side of
+Figure~\ref{fig:copying-collector}) in a way that preserves the
+pointer relationships. For example, the pointer in the register still
+points to a 2-tuple whose first element is a 3-tuple and second
+element is a 2-tuple.  There are four tuples that are not reachable
+from the root set and therefore do not get copied into the ToSpace.
+(The sitation in Figure~\ref{fig:copying-collector}, with a
+cycle, cannot be created by a well-typed program in $R_3$. However,
+creating cycles will be possible once we get to $R_6$.  We design
+the garbage collector to deal with cycles to begin with, so we will
+not need to revisit this issue.)
 
 
 \begin{figure}[tbp]
 \begin{figure}[tbp]
 \centering
 \centering
@@ -4234,11 +4233,6 @@ ToSpace.
 \label{fig:copying-collector}
 \label{fig:copying-collector}
 \end{figure}
 \end{figure}
 
 
-%% \margincomment{\tiny Need to add comment somewhere about the goodness
-%%  of copying collection, especially that it doesn't touch
-%%  the garbage, so its time complexity only depends on the
-%%  amount of live data.\\ --Jeremy}
-
 There are many alternatives to copying collectors (and their older
 There are many alternatives to copying collectors (and their older
 siblings, the generational collectors) when its comes to garbage
 siblings, the generational collectors) when its comes to garbage
 collection, such as mark-and-sweep and reference counting.  The
 collection, such as mark-and-sweep and reference counting.  The