iu-parfunc / gibbon

A compiler for functional programs on serialized data
http://iu-parfunc.github.io/gibbon/
157 stars 13 forks source link

Eventual: Self-hosting gibbon #43

Open rrnewton opened 7 years ago

rrnewton commented 7 years ago

This is a long time off, but I thought we should have a discussion about planning so that our eventual trajectory bends towards this goal.

@milindkulkarni, @kunalwagrawal, @samth and myself have plotted a course (and submitted a grant proposal) on parallel compilation. This overall plan requires a number of pieces and I think there are some tricky questions of how to make our work actually fit together, rather than just on paper. For example, when we work on pass-fusion, where should that go?

If Gibbon were its own stand-alone, self-hosted implementation, then the defacto place for where new gibbon work would go would be in gibbon itself.

By being a Racket #lang, Gibbon could lean on Racket to make a gradual transition to self hosting.

But before we seriously consider writing compiler passes for Gibbon, in gibbon, we need to sort out other parts of the "compiler DSL" story. Like the nano-pass / generic programming story. Here's a rough set of issues:

Please help brainstorm on this.

rrnewton commented 7 years ago

We could consider trying to migrate the Haskell code to use a small enough subset of Haskell that we could eventually feed it through gibbon as well... This would be challenging. The beta branch isn't moving in the right direction vis-a-vis this goal, because its making the IR types more complicated with additional type params.

There would need to be substantial IFDEFs to stub out dependencies on hackage libs like symbols and pretty printing.