Changes between Version 2 and Version 3 of ExternalCore
- Timestamp:
- 10/16/06 12:57:54 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ExternalCore
v2 v3 1 2 3 1 = The {{{ExternalCore}}} type = 4 2 5 The {{{ExternalCore}}} data type is used by GHC to communicate code represented in the [wiki:Commentary/Compiler/CoreSynType Core] data type with the outside world. It comes with an external syntax, a parser, a pretty printer, and code to convert between Core and External Core. Unfortunately, External Core has not been widely used, and the code has bit-rotted. The recent changes in Core to use [wiki:Commentary/Compiler/FC System FC] have exacerbated the problem. This page documents the process of getting External Core and Core back in sync.3 The {{{ExternalCore}}} data type is used by GHC to communicate code represented in the [wiki:Commentary/Compiler/CoreSynType Core] data type with the outside world. It comes with an external syntax, a parser, a pretty printer, and code to convert between Core and External Core. Unfortunately, External Core has not been widely used, and the code has bit-rotted. The recent changes in Core to use [wiki:Commentary/Compiler/FC System FC] have exacerbated the problem. This page documents the process of getting External Core and Core back in sync. 6 4 7 5 … … 10 8 * [[GhcFile(compiler/coreSyn/ExternalCore.lhs)]]: The definition of the External Core data type. 11 9 * [[GhcFile(compiler/coreSyn/MkExternalCore.lhs)]]: Some code to convert Core to External Core. 12 * [[GhcFile(compiler/coreSyn/PprExternalCore.lhs)]]: Some code to pretty-print External Core.10 * [[GhcFile(compiler/coreSyn/PprExternalCore.lhs)]]: Some code to pretty-print External Core. 13 11 * [[GhcFile(compiler/parser/LexCore.hs)]]: The lexer for External Core. 14 12 * [[GhcFile(compiler/parser/ParserCore.y)]]: The parser for External Core. 15 * [[GhcFile(compiler/parser/ParserCoreUtils.hs)]]: Some additional utility functions used by ParserCore.hs.16 * [[GhcFile(utils/ext-core/)]]: 13 * [[GhcFile(compiler/parser/ParserCoreUtils.hs)]]: Some additional utility functions used by {{{ParserCore.hs}}}. 14 * [[GhcFile(utils/ext-core/)]]: Old code intended as an executable specification of External Core. 17 15 18 16 Other files that contain some reference to External Core or are otherwise relevant: … … 24 22 == Documentation == 25 23 * [http://research.microsoft.com/~simonpj/papers/ext-f]: Description of the System FC language which GHC now uses internally. 26 * [[GhcFile(docs/ext-core/)]]: The current documentation for External Core, which should eventually become a chapter in the [http://www.haskell.org/ghc/docs/latest/html/users_guide/index.html GHC User's Guide].24 * [[GhcFile(docs/ext-core/)]]: The current documentation for External Core, which should eventually become a chapter in the [http://www.haskell.org/ghc/docs/latest/html/users_guide/index.html GHC User's Guide]. 27 25 * [http://www.haskell.org/ghc/docs/latest/html/users_guide/ext-core.html]: What the User's Guide currently has to say about External Core. 28 26 … … 33 31 == Tasks == 34 32 35 * Update the External Core data type to be compatible with the current Core data type.36 * Define an external text representation for External Core (which will probably be simply a minor modification of the old format)33 * Update the External Core data type to be compatible with the current Core data type. 34 * Define an external text representation for External Core (which will probably be simply a minor modification of the old format) 37 35 * Update {{{LexCore.hs}}}, {{{ParserCore.y}}}, and {{{ParserCoreUtils.hs}}} to support the new data type and external syntax. 38 * Update {{{MkExternalCore.lhs}}} to support both the current Core and the new External Core.36 * Update {{{MkExternalCore.lhs}}} to support both the current Core and the new External Core. 39 37 * Update {{{PprExternalCore.lhs}}} to print stuff that {{{LexCore}}} and {{{ParserCore}}} can understand. 40 38 * Convert the current External Core documentation (in LaTeX) into a chapter (in XML) in the User's Guide.
