Hydra-Haskell is Hydra's original bootstrapping-capable implementation. However, it is no longer the only bootstrapping-capable implementation. Hydra-Python and Hydra-Java are now on the same level. It is time for Hydra-Haskell to take its place as one head among several, rather than the unique provider of the Hydra kernel, which should move up into an independent subproject.
One way of organizing the code would be to place all of the heads into a new heads directory, and as a sibling of that, we would put the kernel, the test kernel, and their sources into a directory called body.
We do need to pick a DSL syntax for the kernel sources, and the Haskell DSL is still a good fit for this, but the actual sources no longer need to be in hydra-haskell. What remains behind in hydra-haskell are the Haskell coder sources and the Haskell-based generation code, as well as the primitives and primitive registry, the DSLs, and Haskell-specific tests and utilities -- the same things which we find in the other heads.
Hydra-Haskell is Hydra's original bootstrapping-capable implementation. However, it is no longer the only bootstrapping-capable implementation. Hydra-Python and Hydra-Java are now on the same level. It is time for Hydra-Haskell to take its place as one head among several, rather than the unique provider of the Hydra kernel, which should move up into an independent subproject.
One way of organizing the code would be to place all of the heads into a new
headsdirectory, and as a sibling of that, we would put the kernel, the test kernel, and their sources into a directory calledbody.We do need to pick a DSL syntax for the kernel sources, and the Haskell DSL is still a good fit for this, but the actual sources no longer need to be in
hydra-haskell. What remains behind inhydra-haskellare the Haskell coder sources and the Haskell-based generation code, as well as the primitives and primitive registry, the DSLs, and Haskell-specific tests and utilities -- the same things which we find in the other heads.