Even Wiik Thomassen committed c273e71


Comments (0)

Files changed (3)

 This chapter describes \gls{ghc}'s external core functionality, its limitations
 and issues (\autoref{sec:issues}), and what needs to be done to improve it.
-External core is an external representation of the Core datastructure used in
+External core is an external representation of the Core data-structure used in
 \gls{ghc}'s compilation process\footnote{\gls{ghc}'s compilation process can be
 seen in \mypref{fig:ghc-compilation}.}. As explained in \autoref{sec:ghc},
 \gls{ghc} desugar Haskell to Core, after which \gls{ghc}'s main optimizations
 are performed as semantics-preserving transformations on Core. The language
-that the Core datastructure implements is described in \mypref{sec:core}.
+that the Core data-structure implements is described in \mypref{sec:core}.
 External core representation of a Haskell source file is produced by giving
 \gls{ghc} the flag \mycode{-fext-core}. \gls{ghc} also supports parsing
 While Core has been improved and upgraded to different iterations based of
 \sysf (currently \sysfp), external core has been neglected and drifted out of
-sync with Core. 
+sync with Core.
+\citet{eisenberg} have presented a formal definition of Core/\sysfp for the
+latest \gls{ghc} version, 7.6, while \citet{tolmach} describe a precise
+definition of external core that was last updated for \gls{ghc} version 6.10.
+The time period between these two versions are about four years. In these four
+years core has seen significant work, while external core has not.
+TODO: Describe what doesn't work, and some of the issues this creates.
 %getting External Core and Core back in sync
 faster~\cite{ghc, jones94}. During these steps \gls{ghc} performs traditional
 optimizations such as common sub-expression elimination, unboxing, inlining,
 and more~\cite{jones91}.
 package called extcore\footnote{extcore package: \url{}}.
 Finally the JSCore file is parsed and interpreted by PyHaskell~\cite{skrede}.
-TODO: explain and link to \mypref{ghc-optimizations} how we miss out on some,
-and unboxing is only half-done.
+TODO: explain and link to \mypref{sec:ghc-optimizations} how we miss out on
+some, and unboxing is only half-done.