X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;ds=sidebyside;f=Chapters%2FPrototype.tex;h=ff24bb001403c3a339546c4cb93b074c8b84f406;hb=28b745e6faf774843ecdfbce67bdd22b8b4fc550;hp=e2e5db7f0581a1d01315e683396dab6c942a66ac;hpb=14ba857230ddd3bed3e9fbdde81ad2f693488493;p=matthijs%2Fmaster-project%2Freport.git diff --git a/Chapters/Prototype.tex b/Chapters/Prototype.tex index e2e5db7..ff24bb0 100644 --- a/Chapters/Prototype.tex +++ b/Chapters/Prototype.tex @@ -678,6 +678,7 @@ support. \placeintermezzo{}{ + \defref{id function} \startframedtext[width=8cm,background=box,frame=no] \startalignment[center] {\tfa The \hs{id} function} @@ -795,7 +796,7 @@ A predicate type introduces a constraint on a type variable introduced by a forall type (or type lambda). In the example above, the type variable \lam{t} can only contain types that are an \emph{instance} of - the \emph{type class} \lam{Show}. \refdef{type class} + the \emph{type class} \lam{Show}. There are other sorts of predicate types, used for the type families extension, which we will not discuss here. @@ -1326,7 +1327,7 @@ res \stopbuffer \placeexample[here][ex:AvgStateRemoved]{Normalized version of \in{example}[ex:AvgState] with ignored parts crossed out} - {\typebufferlam{AvgStatRemoved}} + {\typebufferlam{AvgStateRemoved}} When we actually leave out the crossed out parts, we get a slightly weird program: there is a variable \lam{s} which has no value, and there @@ -1430,6 +1431,22 @@ {\typebuffervhdl{AccStateVHDL}} \placeexample[][ex:AvgStateVHDL]{\VHDL\ generated for \hs{avg} from \in{example}[ex:AvgState]} {\typebuffervhdl{AvgStateVHDL}} + \section{Prototype implementation} + The prototype has been implemented using Haskell as its + implementation language, just like \GHC. This allows the prototype + do directly use parts of \GHC\ through the \small{API} it exposes + (which essentially taps directly into the internals of \GHC, making + this \small{API} not really a stable interface). + + Cλash can be run from a separate library, but has also been + integrated into \type{ghci} \cite[baaij09]. The latter does requires + a custom \GHC\ build, however. + + The latest version and all history of the Cλash code can be browsed + online or retrieved using the \type{git} program. + + http://git.stderr.nl/gitweb?p=matthijs/projects/cλash.git + % \subsection{Initial state} % How to specify the initial state? Cannot be done inside a hardware % function, since the initial state is its own state argument for the first