Skip to content

Commit 021f7b9

Browse files
committed
Add TODO for toolchain driver found-plan (de-)serialization
This TODO was prompted by Calyx's fud2 adding serialization and deserialization support in [1], with an initial implementation in [2]. [1] calyxir/calyx#2555 [2] calyxir/calyx#2564
1 parent f33fcd0 commit 021f7b9

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

TODO.org

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,18 @@ Once the Ninja is generated, Calyx "leaves" the world of Rust and Rhai and just
681681
Since we are in the dynamic world of Common Lisp, could actually have our system run inside of the "current" Common Lisp image itself.
682682
Whether or not that is a good idea, remains to be seen.
683683

684+
** Driver Plan Serialization
685+
fud2, the Calyx infrastructure's toolchain driver, is adding plan serialization and deserialization support.
686+
I think this is a good idea, because it could let us bypass having to invoke the hypergraph-traversal in common cases.
687+
For example, think of the common case where you are doing quick incremental development (fixing an error, recompiling, loop).
688+
Traversing the hypergraph might be a very expensive operation (I don't know yet, but I imagine it will be).
689+
In this quick case, it is unlikely that the chosen plan will change much, if at all.
690+
By serializing and caching the plan that the hypergraph traversal found, we could make Chil's toolchain react much faster.
691+
692+
fud2 currently supports JSON and is planning on adding a custom language of their own, called flang.
693+
In my case, I think the plan will just be an s-exp tree.
694+
Converting the s-exp tree to JSON is relatively trivial and we do not need to do too much to create a parser for the language (just ~read~ the s-exps).
695+
684696
* Optimization
685697
Within Chil, I would like to have an optimization framework for the higher-level language.
686698
I am not sure how much optimization is possible in the long-run.

0 commit comments

Comments
 (0)