Maude

Latest version: v1.4.0

Safety actively analyzes 621008 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

3.2.1

---------------------
* The bindings are now linked to Maude 3.2.1, which includes several improvements and bug fixes.
* New global functions `setAllowDir` for setting whether access to the file system through the directory API is allowed, and `setAssocUnifDepth` to set the depth multiplier for associative unification.
* The `Term.vu_narrow` method takes two new optional arguments `filter` and `delay` that correspond to the homonym options of the interpreter command.

Other improvements
------------------
* New method `Kind.hash` for hashing `Kind` objects. In Python, they can now be used in dictionaries, sets, etc.

Known problems
----------------
* The packages distributed through [PyPI](https://pypi.org/project/maude) lack the files [`process.maude`](https://raw.githubusercontent.com/SRI-CSL/Maude/3.2.1/src/Main/process.maude) and [`time.maude`](https://raw.githubusercontent.com/SRI-CSL/Maude/3.2.1/src/Main/time.maude) that are part of Maude 3.2.1, unlike those that can be downloaded below. However, the missing files can be automatically replaced with the [`fix-missing.py`](https://github.com/fadoss/maude-bindings/releases/download/v1.1.0/fix-missing.py) script below, or manually by copying them to the package installation path or anywhere else inside the Maude library path.

3.1

-------------------

The Maude version used by the library is now [Maude 3.1](https://maude.cs.illinois.edu), including some new features and bug fixes.

* The new command `variant match` has been mapped to `Module.variant_match`, and `filtered variant unify` and `irredundant unify` can be selected with additional Boolean arguments to `Module.variant_unify` and `Module.unify`.
* Access to the external objects of the `FILE` and `PROCESS` modules can be enabled and disabled with the `allowFiles` and `allowProcesses` functions. The release packages for Windows do not support processes.

New features
------------

* New method `Module.upStrategy` to obtain the metarepresentation of a strategy expression.
* Terms, symbols and sorts are hashable with `Term.hash`, `Symbol.hash` and `Sort.hash`. In Python, the `hash` builtin function can be used too.
* Keyword arguments can now be used in methods having more than one default argument like `Term.match`, `get_variants`, `search`, `vu_narrow`, and `Module.variant_unify`.

Changes
-------
* In the previous version, interrupts were handled by Maude by default (the `handleInterrupts` argument of `maude.init` was true by omission). This may print misleading messages attributing to Maude errors that are caused by a misuse of the library or by foreign code, and typing <kbd>Ctrl</kbd>+<kbd>C</kbd> will terminate the program. The current version recovers as default the behavior in all other previous versions, where the signal handlers set by the target language are kept, with some improvements in the case of Python. Typing <kbd>Ctrl</kbd>+<kbd>C</kbd> when running Maude code will try to abort gracefully and raise a `KeyboardInterrupt` exception. Signals handlers set with the [signal](https://docs.python.org/3/library/signal.html) package will be effectively executed, if they are set before calling `maude.init`.

Bug fixes
---------

* Terms and other objects can be safely compared in Python with `None` using the `==` operator.
* Error or kind sorts `[s]` were incorrectly printed as `s`.

1.4.0

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.8, 3.9, 3.10, 3.11 and 3.12).

* This version is built against Maude 3.4.
* The new `=>` search type of Maude 3.4 can be used as `maude.BRANCH` in the `search` command.
* Regression: `Term.arguments` recovers its default behavior before 1.3, i.e. it normalizes terms before iterating over its arguments. `Term.arguments(False)` can be used to iterate over the unnormalized term, but the arguments are fragile objects that will be destroyed as soon as the whole term is destroyed.
* `pyproject.toml`-based build using [scikit-build-core](https://scikit-build-core.readthedocs.io/en/latest) instead of [scikit-build](https://scikit-build.readthedocs.io/en/latest).
* New string constant `maude.MAUDE_VERSION` with the version of Maude against the library is built. In the binaries of this release it takes the value `3.4+smc`.

1.3.0

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.8, 3.9, 3.10, 3.11 and 3.12).

* This version is built against Maude alpha154 (see changes [here](https://github.com/SRI-CSL/Maude/releases)).
* `Term.arguments()` does no longer normalize the term modulo axioms before iterating over its arguments. For example, the arguments of `(1 + 2) + 3` were previously obtained as `[3, 1 + 2]`, but now `[1 + 2, 3]` is given. The new method `Term.normalize(False)` before iterating can be used to reproduce the previous behavior, and `Term.normalize(True)` to obtain `[1, 2, 3]`.
* New experimental methods `Module.toLatex`, `View.toLatex`, `Term.toLatex`, and `StrategyExpression.toLatex` to obtain the LaTeX representation of a term.
* Fixed some problems when `maude.init` is called twice.

1.2.3

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.7, 3.8, 3.9, 3.10, and 3.11).

* This version is built against Maude 3.3.1, whose main new feature is object-oriented modules. However, since they are essentially syntactic sugar on top of system modules, there are no related changes in this release of the library.
* `Equation` has two new methods `isOwise` and `isVariant` to check the corresponding attributes.

1.2.2

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.7, 3.8, 3.9, 3.10, and 3.11).

* The new version is built against Maude 3.2.2. However, that is a bug-fix release and no new features have been added.
* Fixes a bug introduced in 1.2.1 that caused a segmentation fault when `findSort` and other related methods do not succeed.
* Unlike in 1.2.1 and in the operator attribute, the argument indices of `Symbol.getFrozen` now start from zero since this is more natural in the target programming language.
* New methods `getOpHooks` and `getTermHooks` in `Symbol` that return a dictionary with the operator and term bindings of a special operator, respectively. This is only available in Python for the moment and the interface may change in the future.
* The Python bindings do not longer include some wrappers over the C++ structures like `IntVector` and `TermIntPair`, which are not useful and only increase the package size.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.