Recent Releases of Metatheory.jl

Metatheory.jl - v2.0.2

Metatheory v2.0.2

Diff since v2.0.1

Merged pull requests: - remove print statement in init (#155) (@willow-ahrens) - Create dependabot.yml (#159) (@ranocha) - Bump actions/checkout from 2 to 3 (#160) (@dependabot[bot]) - Bump actions/cache from 1 to 3 (#161) (@dependabot[bot]) - Bump codecov/codecov-action from 1 to 3 (#162) (@dependabot[bot]) - Bump actions/checkout from 3 to 4 (#165) (@dependabot[bot]) - Remove noise in tests, restructure tests, update deps (#167) (@0x0f0f0f) - Add debugging and GraphViz visualization utilities (#169) (@0x0f0f0f) - Allow use of local buffers (#170) (@rayegun) - Allow local buffers (#172) (@0x0f0f0f)

Closed issues: - Refactor Codebase (#107) - Struct-Valued Analysis Cause Infinite Loop (#153) - regression in simplification compared to v1 (#166) - Try Dictionaries.jl (#168)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 2 years ago

Metatheory.jl - v2.0.1

Metatheory v2.0.1

Diff since v2.0.0

Closed issues: - Make the EGraph pattern matcher instantiate to ENodes instead of actual expressions with eclasses as children. (#83) - Register (#135) - 2.0 Docs not deploying (#149) - Should egraph hang on cancellation rule? (#154)

Merged pull requests: - One-line change to fix error message (#152) (@kylebd99)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] about 3 years ago

Metatheory.jl - v2.0.0

Metatheory v2.0.0

Diff since v1.4.0

Closed issues: - Rule Macro Quotes Function Names (#87) - Fix CI (#136) - Scope of classic @rule matcher (#137) - @areequal not working with matching multiple sub-expressions (xs...) (#141) - OddEvenAnalysis in the docs is implemented incorrectly (#146)

Merged pull requests: - CompatHelper: bump compat for TermInterface to 0.3, (keep existing compat) (#133) (@github-actions[bot]) - fixed issues discovered bj JET.jl (#138) (@dpinol) - bump DocStringExtensions (#139) (@t-bltg) - DocStringExtensions 0.9 (#140) (@chriselrod) - Version 2.0.0 (#144) (@0x0f0f0f)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 3 years ago

Metatheory.jl - v1.3.5

Metatheory v1.3.5

Diff since v1.3.4

Closed issues: - Rule Macro Quotes Function Names (#87) - Unable to saturate (#124)

Merged pull requests: - Fixed a few typos (#127) (@pitmonticone) - Minor optimizations and refactors (#128) (@0x0f0f0f) - Bump docstring extensions (#131) (@ChrisRackauckas) - CompatHelper: bump compat for TermInterface to 0.3, (keep existing compat) (#133) (@github-actions[bot]) - DocStringExtensions 0.9 (#140) (@chriselrod)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 3 years ago

Metatheory.jl - v1.4.0

Metatheory v1.4.0

Diff since v1.3.4

Closed issues: - Unable to saturate (#124)

Merged pull requests: - Fixed a few typos (#127) (@pitmonticone) - Minor optimizations and refactors (#128) (@0x0f0f0f) - Bump docstring extensions (#131) (@ChrisRackauckas)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] almost 4 years ago

Metatheory.jl - v1.3.4

Metatheory v1.3.4

Diff since v1.3.3

Closed issues: - PatSegment (AKA slotvars in SymbolicUtils.jl) not implemented for new classical rewriting module. (#72) - istree(e::T) versus istree(T) (#90) - Monoid macro in Metatheory.Library missing interpolation (#98) - Extracting an Expr from ENodeTerm (#102) - EqualityRule does not support user defined types (#103) - EGraph saturation does not run its iterations (#104) - how could I pass the automatically generated rules into @rule and @theory macro? (#116) - Predicates does not work in Egraph saturation? (#117) - dynamic rule for egraph has weird behaviour of push! append! operation on vectors (#120) - bug in @areequal (#121) - project that manipulate quantum circuit using Metatheory.jl (#122) - Predicates not working in egraph (#123)

Merged pull requests: - fix small typo in egraphs.md (#91) (@herrgahr) - Fix binarization type inconsistency bug issue #95 (#96) (@0x0f0f0f) - Fix the library macros (#100) (@0x0f0f0f) - Similarterm, istree and issym only dispatch on objects and not on types. Fix EGraphs tests (#101) (@0x0f0f0f) - version bump (v2.0.0-DEV) (#106) (@Wilkenfeld) - add julia-format workflow (#108) (@Wilkenfeld) - format codebase (#109) (@Wilkenfeld) - Structure tests in testsets & Separate unit and integration tests (#112) (@Wilkenfeld) - Simplify E-Graph Analysis Interface. Use Symbols or functions for identifying Analyses. Remove duplicates in E-Graph analyses data. (#115) (@0x0f0f0f) - Remove unneeded prints (#118) (@Wilkenfeld)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] almost 4 years ago

Metatheory.jl - v1.3.3

Metatheory v1.3.3

Diff since v1.3.2

  • Store references to egraph in every eclass
  • Fixed @capture macro not working
  • Various bug fixes and test fixes

Closed issues: - The capture macro does not escape the left hand side pattern before splatting (#86) - Simple rules do not work (#88)

Merged pull requests: - avoid conversion from ENodeTerm to ENodeLiteral (#85) (@emaibb)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.3.2

Metatheory v1.3.2

Diff since v1.3.1

Fix a bug in syntax for using segment variables with splat operator syntax: @rule x f(x...) => ...

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.3.1

Metatheory v1.3.1

Diff since v1.3.0

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.3.0

Metatheory v1.3.0

Diff since v1.2.1

  • Custom similarterm can be passed to extract!
  • SaturationParams now has a timelimit field of type Dates.Period that can be used to halt saturation after a time period has elapsed.
  • Minor tweaks and optimizations in extraction

Closed issues: - Remove unsorted_arguments from Walks in Rewriters (#84)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.2.1

Metatheory v1.2.1

Diff since v1.2.0

  • Fixed application of DynamicRules in egraph rewriting

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.2.0

Metatheory v1.2.0

Diff since v1.1.0

  • Fixes when printing patterns
  • Can pass custom similarterm to SaturationParams by using SaturationParams.simterm.

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.1.0

Metatheory v1.1.0

Diff since v1.0.0

  • Fixes for SymbolicUtils integration
  • Egraph pattern matcher can now match against symbol and function objects at the same time

Closed issues: - AC Rules/Loop Prevention for MatchCore rewriting backend (#9) - Document analyses and AbstractAnalysis (#16) - Knuth-Bendix Completion for Classical Backend (#35) - How to write your own Analysis/Scheduler tutorials (#42) - UPDATE DOCUMENTATION (#67) - Full compatibility of rules syntax with SymbolicUtils.jl rule syntax (#68) - Symbolics rules macro is broken (#79) - Downstream CI (#81)

Merged pull requests: - Fixes for Symbolics (#80) (@shashi)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v1.0.0

Metatheory v1.0.0

Diff since v0.6.0

Metatheory.jl + SymbolicUtils.jl = ❤️

  • Metatheory.jl now supports the same syntax as SymbolicUtils.jl for the rule definition DSL!
  • The classical pattern matcher has been redesigned, and it is a port of SymbolicUtils.jl's pattern matcher. Now Metatheory.jl can be used in place of SU's rewriting backend.
  • Performance improvements: caching of ground terms when doing e-matching in equality saturation.
  • Dynamic Rules do not use RuntimeGeneratedFunctions when not needed.
  • Improved manual.
  • Removed @metatheory_init
  • Rules now support type and function predicates as in SymbolicUtils.jl
  • Redesigned the library
  • Introduced @timerewrite to time the execution of classical rewriting systems.

Closed issues: - Is @metatheory_init really needed? (#45) - Experiment conditional rules (#52) - Move over repository to JuliaSymbolics (#76)

Merged pull requests: - [WIP] Import and unify the rule syntax and classical pattern matching system from SymbolicUtils.jl (#77) (@0x0f0f0f) - Broken links due to move to JuliaSymbolics (#78) (@jlperla)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v0.6.0

Metatheory v0.6.0

Diff since v0.5.0

  • Faster e-matching! :rocket:
  • Updated TermInterface.jl and pattern matchers to support exprhead.

Closed issues: - Match on :: and ... (and optionally where) without triggering special ematching functions. (#12) - @when macro for conditional dynamic rules (#26) - Metatheory incorrectly merges e-classes? (#74)

Merged pull requests: - Improve pattern display. (#73) (@MrVPlusOne)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v0.5.0

Metatheory v0.5.0

Diff since v0.4.1

  • Goodbye MatchCore.jl, welcome Rewriters.jl. One can now define rewrite strategies as in SymbolicUtils.jl
  • Rule-by-Rule timing reports like in SymbolicUtils thanks to TimerOutputs.jl
  • No more global ematching cache. Rule objects now contain their own cache.
  • Rules are callable functions!
  • No more confusing passing of modules around functions. Everything runs in its definition module (static scoping).
  • Rule is now AbstractRule.
  • Tests now reside each one in its own module
  • Various fixes and speedups, fixed parallelism thanks to @MrVPlusOne .
  • Refactoring and cleaner codebase.
  • Updated some dependencies, mostly TermInterface.jl.
  • Temporary hack: If you have custom expression types where TermInterface.operation(x::MyType) is not a :call, you can still match on :call by setting Metatheory.iscall(x::MyType) = true. Defaults to false. This needs to be revised.

Closed issues: - Use TimerOutputs.jl (#65) - Use SafeTestsets.jl (#66)

Merged pull requests: - Rename patterns.jl to pattern.jl for dev on case insensitive filesystems (#63) (@gpeairs) - Fix equality saturation when threaded=true. Improve search performance. (#70) (@MrVPlusOne) - Fix inform! for ScoredScheduler. (#71) (@MrVPlusOne)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 4 years ago

Metatheory.jl - v0.4.1

Metatheory v0.4.1

Diff since v0.4.0

Dollar interpolation in @theory macro. Initial support for TermInterface.jl package

Closed issues: - interpolation of objects in theory macro with $ (#62)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] almost 5 years ago

Metatheory.jl - v0.4.0

Metatheory v0.4.0

Diff since v0.3.2

Completely renewed the pattern matcher! MT is now dozens of times faster than before. Added reports about equality saturation results, many more parameters, improved schedulers. Completely changed the metadata system. Added a new interface for rewriting on custom types, and added a custom interface for building patterns and rules programmatically.

Closed issues: - Optimize the E-Graph Pattern Matcher (#6) - Use a Term-like interface instead of Expr (#18) - Testing Rule eqivalence with == (#30) - A custom type for specifying goals (#47) - Bugs when function calls have no arguments (#54) - Parametrize the metadata field type in ENodes. (#56) - Using the interface to work on Syms (presumably correctly) gives wrong answers (#58) - overlap with symbolics.jl? (#61)

Merged pull requests: - Examples of the ZX-calculus (#55) (@ChenZhao44) - Changed eval to resolve in pattern syntax. (#57) (@femtomc)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] almost 5 years ago

Metatheory.jl -

Scientific Software - Peer-reviewed - Julia
Published by 0x0f0f0f about 5 years ago

Metatheory.jl - v0.3.1

Metatheory v0.3.1

Diff since v0.3.0

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] about 5 years ago

Metatheory.jl - v0.3.0

Metatheory v0.3.0

Diff since v0.2.1

  • Extreme performance improvements!!
  • Added a ScoredScheduler useful for proving and simplification.
  • Creating custom analyses is now much easier. Added example tests for a CAS.
  • Fixed various pattern matching bugs.
  • Unified interface for EClasses in a single type, no more shallow references.
  • Moved saturation parameters to their own type SaturationParams
  • Added example tests for using custom Term types.

Closed issues: - Support Conditional/Dynamic rewrite rules for E-Graphs backend (#5) - Possible bug involving turnstile operator (#25) - Anti-rules (#33) - Fix docs Package.toml (#37) - Serious egraphs pattern matcher bug (#40)

Merged pull requests: - Remove extra dependencies from docs/Project.toml (#38) (@giordano)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] about 5 years ago

Metatheory.jl - v0.2.1

Metatheory v0.2.1

Diff since v0.2.0

Huge speed improvements! Moved classical rewriting to Classic submodule. Removed StaticArrays dependency.

Merged pull requests: - Update analysis.md (#34) (@NumHack)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] about 5 years ago

Metatheory.jl - v0.2.0

Metatheory v0.2.0

Diff since v0.1.1

Closed issues: - Symbol literals are treated as QuoteNode in the rewrite backend. (#14) - Equational theories require symmetric rules (#20) - Bug in ematch for no argument functions (#21) - Should error on nonsensical rules (#28) - Consistency of literal symbols and pattern variables between backends (#29)

Merged pull requests: - add some tests for (monoidal) categories (#19) (@jpfairbanks) - Added egg generating script in benchmarks (#27) (@philzook58) - Merge new Enode implementation (#31) (@0x0f0f0f) - Added Guarded Category Theory File (#32) (@philzook58)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] about 5 years ago

Metatheory.jl - v0.1.1

Metatheory v0.1.1

Closed issues: - Implement E-Class Analysis (#1) - Extraction from E-Graph (#2) - Support Type Assertions for literals in the left hand of rules in the egraph backend. (#4) - Backoff scheduler (#8) - Support comparisons in AST (#10) - Tests error on Julia v1.5.3 stable. (#11)

Scientific Software - Peer-reviewed - Julia
Published by github-actions[bot] over 5 years ago