Hello! We have a new release of Soufflé for you. Key features are

  1. Low Level Machine Interpreter for improved non-synthesised performance (XiaowenHu96,HerbertJordan)
  2. Provenance support for negation and equivalence relations (taipan-snake)
  3. New semantics for RAM (b-scholz)
  4. Stratified RAM Analysis interfaces (b-scholz)
  5. New RAM Transformations: expand/collapsing conditions of filters, hoisting of conditions, index transformation to utilize index operations, if-conversions (converting scans to existence operations if possible), Choice
  6. conversion, hoisting aggregates, and parallelization (dcol97)
  7. Meta-transformers for RAM (sequence/loop/conditional) (b-scholz)
  8. Add RAM transform support to debug report (rdowavic)
  9. Enable complex aggregates (rdowavic)
  10. Memory use improvements (mmcgr)
  11. Allow input pipes for datalog (maweki)
  12. Allow arbitrary argument length formax/min/cat functors (azreika)
  13. AST optimisations (azreika)
  14. Add user-defined libraries for functors (mmcgr)
  15. Added -l parameter for functor libraries and -L for functor library paths (mmcgr)
  16. Added –interpreter[LVM|RAMI] parameter for interpreter choice (XiaowenHu96)
  17. Improved code documentation (dcol97)
  18. Refactoring for maintainability and readability (mmcgr)
  19. Performance enhancements
  20. Bug fixes