Currently, we generate simulation code using metaprogramming tools from base julia, and evaluate them via eval. This is a lightweight setup.
However, in AlgebraicJulia/Catlab.jl#1001 and AlgebraicJulia/Catlab.jl#202 , I got to work with RuntimeGeneratedFunctions, and it has some features w.r.t. resolving world age issues that are appealing. It also offers a standardized (and upstreamed) means of supplying function definitions.
So, we should look at whether integrating with RuntimeGeneratedFunctions can improve Decapodes workflows, and whether these changes are worth the overhead of another (direct) dependency.
Currently, we generate simulation code using metaprogramming tools from base julia, and evaluate them via eval. This is a lightweight setup.
However, in AlgebraicJulia/Catlab.jl#1001 and AlgebraicJulia/Catlab.jl#202 , I got to work with RuntimeGeneratedFunctions, and it has some features w.r.t. resolving world age issues that are appealing. It also offers a standardized (and upstreamed) means of supplying function definitions.
So, we should look at whether integrating with RuntimeGeneratedFunctions can improve Decapodes workflows, and whether these changes are worth the overhead of another (direct) dependency.