|
@@ -25,7 +25,7 @@
|
|
|
|
|
|
\def\racketEd{0}
|
|
|
\def\pythonEd{1}
|
|
|
-\def\edition{0}
|
|
|
+\def\edition{1}
|
|
|
|
|
|
% material that is specific to the Racket edition of the book
|
|
|
\newcommand{\racket}[1]{{\if\edition\racketEd{#1}\fi}}
|
|
@@ -11476,10 +11476,6 @@ succeed.
|
|
|
%% and ToSpace.
|
|
|
%% \end{exercise}
|
|
|
|
|
|
-
|
|
|
-%% \section{Compiler Passes}
|
|
|
-%% \label{sec:code-generation-gc}
|
|
|
-
|
|
|
The introduction of garbage collection has a non-trivial impact on our
|
|
|
compiler passes. We introduce a new compiler pass named
|
|
|
\code{expose\_allocation}. We make significant changes to
|
|
@@ -15586,6 +15582,8 @@ def g(x_0 : int)-> int:
|
|
|
\label{sec:closure-conversion}
|
|
|
\index{subject}{closure conversion}
|
|
|
|
|
|
+[TODO: discuss conversion of \code{AnnAssign} to \code{Assign} -Jeremy]
|
|
|
+
|
|
|
The compiling of lexically-scoped functions into top-level function
|
|
|
definitions is accomplished in the pass \code{convert\_to\_closures}
|
|
|
that comes after \code{reveal\_functions} and before
|
|
@@ -15734,7 +15732,7 @@ application, we turn function references into closures.
|
|
|
\fi}
|
|
|
{\if\edition\pythonEd
|
|
|
\begin{lstlisting}
|
|
|
-FunRefArity(|$f$|, |$n$|)
|
|
|
+FunRef(|$f$|)
|
|
|
\end{lstlisting}
|
|
|
\fi}
|
|
|
\end{minipage}
|