|
@@ -10693,7 +10693,7 @@ for the compilation of \LangLoop{}.
|
|
In this chapter we study the implementation of
|
|
In this chapter we study the implementation of
|
|
tuples\racket{, called vectors in Racket}.
|
|
tuples\racket{, called vectors in Racket}.
|
|
%
|
|
%
|
|
-This language feature is the first of ours to use the computer's
|
|
|
|
|
|
+This language feature is the first to use the computer's
|
|
\emph{heap}\index{subject}{heap} because the lifetime of a tuple is
|
|
\emph{heap}\index{subject}{heap} because the lifetime of a tuple is
|
|
indefinite, that is, a tuple lives forever from the programmer's
|
|
indefinite, that is, a tuple lives forever from the programmer's
|
|
viewpoint. Of course, from an implementer's viewpoint, it is important
|
|
viewpoint. Of course, from an implementer's viewpoint, it is important
|
|
@@ -11194,7 +11194,7 @@ way.
|
|
|
|
|
|
So the goal of the garbage collector is twofold:
|
|
So the goal of the garbage collector is twofold:
|
|
\begin{enumerate}
|
|
\begin{enumerate}
|
|
-\item preserve all tuple that are reachable from the root set via a
|
|
|
|
|
|
+\item preserve all tuples that are reachable from the root set via a
|
|
path of pointers, that is, the \emph{live} tuples, and
|
|
path of pointers, that is, the \emph{live} tuples, and
|
|
\item reclaim the memory of everything else, that is, the
|
|
\item reclaim the memory of everything else, that is, the
|
|
\emph{garbage}.
|
|
\emph{garbage}.
|
|
@@ -11459,7 +11459,7 @@ compiler passes. We introduce a new compiler pass named
|
|
make minor changes in several more passes. The following program will
|
|
make minor changes in several more passes. The following program will
|
|
serve as our running example. It creates two tuples, one nested
|
|
serve as our running example. It creates two tuples, one nested
|
|
inside the other. Both tuples have length one. The program accesses
|
|
inside the other. Both tuples have length one. The program accesses
|
|
-the element in the inner tuple tuple.
|
|
|
|
|
|
+the element in the inner tuple.
|
|
% tests/vectors_test_17.rkt
|
|
% tests/vectors_test_17.rkt
|
|
{\if\edition\racketEd
|
|
{\if\edition\racketEd
|
|
\begin{lstlisting}
|
|
\begin{lstlisting}
|
|
@@ -11536,7 +11536,7 @@ of the tuple:
|
|
\VECTY{\racket{$\Type_1 \ldots \Type_n$}\python{$\Type_1, \ldots, \Type_n$}}
|
|
\VECTY{\racket{$\Type_1 \ldots \Type_n$}\python{$\Type_1, \ldots, \Type_n$}}
|
|
%
|
|
%
|
|
where $\Type_i$ is the type of the $i$th element in the tuple. The
|
|
where $\Type_i$ is the type of the $i$th element in the tuple. The
|
|
-\CGLOBAL{\itm{name}} form reads the value of a global variable, such
|
|
|
|
|
|
+\CGLOBALVALUE{\itm{name}} form reads the value of a global variable, such
|
|
as \code{free\_ptr}.
|
|
as \code{free\_ptr}.
|
|
%
|
|
%
|
|
\python{The \code{begin} form is an expression that executes a
|
|
\python{The \code{begin} form is an expression that executes a
|