Difference between revisions of "Yhc/Core conversion infrastructure"
(Added libraries' info) |
(→Front ends: added link to the corehugs project) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
Existing front ends: |
Existing front ends: |
||
+ | |||
'''Hugs''' |
'''Hugs''' |
||
Line 26: | Line 27: | ||
'''Repo''': http://code.haskell.org/hugs2yc/ |
'''Repo''': http://code.haskell.org/hugs2yc/ |
||
+ | |||
+ | This Google Code [http://code.google.com/p/corehugs/ project] hosts custom snapshots of Hugs with Yhc |
||
+ | Core front end bundled. Proceed to the [http://code.google.com/p/corehugs/downloads/list downloads section]. |
||
===Central Core processing=== |
===Central Core processing=== |
||
These libraries provide facilities to run overall optimizations on linked Yhc Core that are not specific to any front- and back-end. |
These libraries provide facilities to run overall optimizations on linked Yhc Core that are not specific to any front- and back-end. |
||
+ | |||
'''Yhccore''' |
'''Yhccore''' |
||
Line 42: | Line 47: | ||
'''Hackage''': http://hackage.haskell.org/cgi-bin/hackage-scripts/package/yhccore |
'''Hackage''': http://hackage.haskell.org/cgi-bin/hackage-scripts/package/yhccore |
||
− | |||
'''Ycextra''' |
'''Ycextra''' |
||
− | Provides extended functionality to handle Yhc Core, including the Annotations facility, and specification of the Normal Set of primitives |
+ | Provides extended functionality to handle Yhc Core, including the Annotations facility, and specification of the [https://spreadsheets.google.com/pub?key=pwq-dUByH2-cC8hmKIoRdBg&hl=en Normal Set of primitives] |
'''Developer''': Dimitry |
'''Developer''': Dimitry |
||
Line 60: | Line 64: | ||
===Back ends=== |
===Back ends=== |
||
+ | |||
+ | These libraries provide facilities to convert linked Yhc Core to a format recognizable by the target platform. They may as well provide some extended inter-language interface tools such as automatic Haskell foreign import generators, etc. |
||
+ | |||
+ | |||
+ | |||
+ | '''Core Erlang''' |
||
+ | |||
+ | Converts linked Yhc Core to Core Erlang source for subsequent compilation to Erlang loadable modules (BEAM) by erlc. |
||
+ | |||
+ | '''Developer''': Dimitry |
||
+ | |||
+ | '''Status''': 50% developed (as of Aug 2008) |
||
+ | |||
+ | '''Cabal name''': yc2erl |
||
+ | |||
+ | '''Repo''': http://code.haskell.org/yc2erl/ |
||
+ | |||
===Drivers=== |
===Drivers=== |
||
+ | |||
+ | This class of tools provides complete solutions to use a particular compiler with a patricular target platform. |
||
+ | |||
+ | None developed at the moment. |
||
==Historical development== |
==Historical development== |
||
+ | |||
+ | <small>put information about existing Yhc backends here</small> |
Latest revision as of 10:10, 3 October 2008
Definition
Yhc Core Conversion Infrastructure is a collection of libraries and tools written mainly in Haskell, and also in other programming languages, aimed at producing of Yhc Core by existing and future Haskell (not excluding possibilities for other languages) compilers, unified optimization and linkage of compiled Yhc Core, and conversion of Yhc Core into executable modules for various runtimes.
Classes of libraries
The infrastructure includes libraries and tools that fall into following classes: front-ends, central Core processing, back-ends, and drivers. The following sections describe the purpose of libraries and tools in each category, and also what exists and/or being developed.
Front ends
These libraries provide functionality to accept some form of output from a compiler, and produce linked Yhc Core. Some front-end specific optimizations may be performed.
Existing front ends:
Hugs
Intermediate output (Hugs Core) is parsed and converted into linked Yhc Core.
Developer: Dimitry
Status: 75% developed (as of Aug 2008)
Cabal name: hugs2yc
Repo: http://code.haskell.org/hugs2yc/
This Google Code project hosts custom snapshots of Hugs with Yhc Core front end bundled. Proceed to the downloads section.
Central Core processing
These libraries provide facilities to run overall optimizations on linked Yhc Core that are not specific to any front- and back-end.
Yhccore
Main library to handle Yhc Core.
Developer: Neil
Status: released
Cabal name: yhccore
Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/yhccore
Ycextra
Provides extended functionality to handle Yhc Core, including the Annotations facility, and specification of the Normal Set of primitives
Developer: Dimitry
Status: 75% developed (as of Aug 2008)
Cabal name: ycextra
Repo: http://code.haskell.org/ycextra/
Back ends
These libraries provide facilities to convert linked Yhc Core to a format recognizable by the target platform. They may as well provide some extended inter-language interface tools such as automatic Haskell foreign import generators, etc.
Core Erlang
Converts linked Yhc Core to Core Erlang source for subsequent compilation to Erlang loadable modules (BEAM) by erlc.
Developer: Dimitry
Status: 50% developed (as of Aug 2008)
Cabal name: yc2erl
Repo: http://code.haskell.org/yc2erl/
Drivers
This class of tools provides complete solutions to use a particular compiler with a patricular target platform.
None developed at the moment.
Historical development
put information about existing Yhc backends here