3 ms·
to add, as you know, this is part of a more general problem about type level programming vs write your own compiler vs the non composability of DSLs, where Jul
by amkkma 4y ago
to add, as you know, this is part of a more general problem about type level programming vs write your own compiler vs the non composability of DSLs, where Julia folks in various other non ML domains like PPLs and fancy arrays have been wondering about how to do things that get compiled away, without relying on compiler heuristics or generated function blowups: https://julialang.zulipchat.com/#narrow/stream/256674-compiler-plugins/topic/Optimizer.20vs.20type.20system https://julialang.zulipchat.com/#narrow/stream/256674-compil...
Another non ML example I discussed with some Probprog folks is that there was an arxiv review of PPLs and Julian ones that heavily rely on macros don't compose well within and across packages. The same mechanism for composability which Dex uses for parallelism and AD (effect handlers) is what new gen PPLs in jax and Haskell are using for composable transformable semantics, so maybe that's worth looking into.
We've been having some discussions about how to bring that to Julia, but stalled on engineering time and PL knowledge. Eventually wanted to talk to the core team about it with proposal in hand, but never got there. Let me know if you'd like to talk to some of those folks who have been involved in the discussions as you design the new compiler plugin infra.
https://julialang.zulipchat.com/#narrow/stream/256674-compiler-plugins/topic/Optimizer.20vs.20type.20system https://julialang.zulipchat.com/#narrow/stream/256674-compil...