Open Tiltedprogrammer opened 2 years ago
I'll take a look.
It seems that the current dataflow machinery in the current grin implementation is inefficient. That's why we switched to Souffle Datalog to fix this issue. I use Souffle Datalog in external stg and its corresponding analyses, however we have not integrated it to the grin implementation yet. Until that happens grin can only analyse tiny programs. Souffle could handle this input in few milliseconds.
Is there any relatively painless and seamless way to make these programs proceed grin pipeline? Maybe I can switch back and forth to stg to use souffle?
Hi!
I've made a simple frontend for GRIN and struggle with the optimizations.
stack exec grin -- --optimize --no-prelude --print-errors --continue-on-failed-lint dump.grin
for this I get a lot ofwhich fails the linting and I guess it is the result of eval inlining and case alternatives removal, but I don't know why linting should fail then. And finally, I get my process killed on RunPure stage:
stack exec grin -- --optimize --no-prelude --print-errors --continue-on-failed-lint dump_2.grin
for this I get the same but the process gets killed on hpt stage:and sometimes I also have some type env errors after HPT.
So the question is whether it is supposed to be like this and are there a set of transformations/optimizations/workarounds that are guaranteed to proceed successfully and output simple enough GRIN to compile it into hardware?
P.S. both examples work fine in
--eval