s-arash / ascent

logic programming in Rust
MIT License
393 stars 16 forks source link

Comparison to Crepe? #9

Closed langston-barrett closed 9 months ago

langston-barrett commented 1 year ago

Crepe is another Rust-macro-embedded Datalog-like eDSL. It would be nice to point to it from the README as an alternative, or even better, to provide a short comparison between the two projects.

kmicinski commented 1 year ago

Thanks for the great points. We did look into Crepe a while back, we should write about it in the readme, etc.. I believe we currently are getting better results than Crepe due to our efficient parallel compilation strategy--also, Crepe does not support lattices. So those are two main differences that Ascent implementations should use if they hope to achieve scalability gains vs. Crepe.

s-arash commented 1 year ago

Additionally, we support user-extensible stratified aggregation. It looks to me that Crepe currently only supports stratified negation.

s-arash commented 1 year ago

I'll likely reference this issue in README. Until then, I'll keep it open.

kmicinski commented 9 months ago

I am closing this issue--we have some discussion of Crepe in our BYODS paper. It is a nice system as well and I encourage folks to check it out, but I don't think we need to do more comparison against Crepe as they have diverged in substantively different directions: with BYODS and parallelism (not supported by Crepe).