Add / update TODOs.
[matthijs/master-project/report.git] / Chapters / Normalization.tex
index 89c2d4a13faafd1ac6df231082632d1d78777148..f2d0fbba13be843158d19e4644604ccb6c07d307 100644 (file)
@@ -7,9 +7,9 @@
   % space at the start of the frame.
   \define[1]\example{
     \framed[offset=1mm,align=right,strut=no,background=box,frame=off]{
   % space at the start of the frame.
   \define[1]\example{
     \framed[offset=1mm,align=right,strut=no,background=box,frame=off]{
-      \setuptyping[option=LAM,style=sans,before=,after=]
+      \setuptyping[option=LAM,style=sans,before=,after=,strip=auto]
       \typebuffer[#1]
       \typebuffer[#1]
-      \setuptyping[option=none,style=\tttf]
+      \setuptyping[option=none,style=\tttf,strip=auto]
     }
   }
 
     }
   }
 
         Since its exact role and need is not clear yet, this transformation is
         not yet specified.
 
         Since its exact role and need is not clear yet, this transformation is
         not yet specified.
 
+        TODO: Cast propagation
+
       \subsubsection{Top level binding inlining}
         This transform takes simple top level bindings generated by the
         \small{GHC} compiler. \small{GHC} sometimes generates very simple
       \subsubsection{Top level binding inlining}
         This transform takes simple top level bindings generated by the
         \small{GHC} compiler. \small{GHC} sometimes generates very simple
         architecture which would just add its inputs. This generates a lot of
         overhead in the VHDL, which is particularly annoying when browsing the
         generated RTL schematic (especially since + is not allowed in VHDL
         architecture which would just add its inputs. This generates a lot of
         overhead in the VHDL, which is particularly annoying when browsing the
         generated RTL schematic (especially since + is not allowed in VHDL
-        architecture names\footnote{Technically, it is allowed when using
-        extended identifiers, but it seems that none of the tooling likes
-        extended identifiers in filenames, so it effectively doesn't work}, so
-        the entity would be called \quote{w7aA7f} or something similarly
-        unreadable and autogenerated).
+        architecture names\footnote{Technically, it is allowed to use
+        non-alphanumerics when using extended identifiers, but it seems that
+        none of the tooling likes extended identifiers in filenames, so it
+        effectively doesn't work}, so the entity would be called
+        \quote{w7aA7f} or something similarly unreadable and autogenerated).
 
     \subsection{Program structure}
       These transformations are aimed at normalizing the overall structure
 
     \subsection{Program structure}
       These transformations are aimed at normalizing the overall structure
 
         \starttrans
         (letrec binds in E) M
 
         \starttrans
         (letrec binds in E) M
-        -----------------
+        ------------------------
         letrec binds in E M
         \stoptrans
 
         letrec binds in E M
         \stoptrans
 
         Note that \lam{x0} and {x1} will still need normalization after this.
 
       \subsubsection{Argument propagation}
         Note that \lam{x0} and {x1} will still need normalization after this.
 
       \subsubsection{Argument propagation}
+        TODO: Generalize this section into specialization, so other
+        transformations can refer to this (since specialization is really used
+        in multiple categories).
+
         This transform deals with arguments to user-defined functions that are
         not representable at runtime. This means these arguments cannot be
         preserved in the final form and most be {\em propagated}.
         This transform deals with arguments to user-defined functions that are
         not representable at runtime. This means these arguments cannot be
         preserved in the final form and most be {\em propagated}.