Releases: fadoss/maude-bindings
Python packages v1.4.0
The following Python packages have been uploaded to PyPI, 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 asmaude.BRANCH
in thesearch
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 instead of scikit-build.- 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 value3.4+smc
.
Python packages v1.3.0
The following Python packages have been uploaded to PyPI, 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).
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 methodTerm.normalize(False)
before iterating can be used to reproduce the previous behavior, andTerm.normalize(True)
to obtain[1, 2, 3]
.- New experimental methods
Module.toLatex
,View.toLatex
,Term.toLatex
, andStrategyExpression.toLatex
to obtain the LaTeX representation of a term. - Fixed some problems when
maude.init
is called twice.
Python packages v1.2.3
The following Python packages have been uploaded to PyPI, 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 methodsisOwise
andisVariant
to check the corresponding attributes.
Python packages v1.2.2
The following Python packages have been uploaded to PyPI, 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
andgetTermHooks
inSymbol
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
andTermIntPair
, which are not useful and only increase the package size.
Python packages v1.2.1
The following Python packages are not yet uploaded to PyPI. .whl
files can be directly installed with pip
for the matching Python version (3.7, 3.8, 3.9, and 3.10).
Bug fixes
- Overwritten modules (i.e. replaced by another module of the same name) were not internally released in Maude when its wrapper object becomes unreachable (reported in #3).
Improvements
- New method
Symbol.hasAttr
to check some attributes of the operator like associativity (OP_ASSOC
), commutativity (OP_COMM
), whether it is iterable (OP_ITER
), idempotent (OP_IDEM
), has left identity (OP_LEFT_ID
), right identity (OP_RIGHT_ID
), memoizationOP_MEMO
(with memoization), or is special (i.e. primitive,OP_SPECIAL
). It takes as argument one of the global constants enumerated above. - New methods
getIdentity
,getFrozen
,getStrategy
,getPrec
,getFormat
, andgetIdHooks
ofSymbol
to obtain the identity constant, thefrozen
attribute, the reduction strategy, the syntactic precedence, the format specification, and the id-hooks associated to that symbol. - New method
Term.getIterExponent
to get the exponent ofiter
operators (suggested in #2).
Python packages v1.2.0
The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).
Improvements
- All module module elements (
Sort
,Kind
,Equation
,Rule
, ...) are now hashable and comparable for equality. This allows using them in data structures like dictionaries and sets in Python. - The methods
parseTerm
andparseStrategy
ofModule
can now receive an optional additional argument with a collection of variables to be declared before parsing. This provides the functionality of the second argument ofmetaParse
(see §17.6.13 of the Maude manual).
Python packages v1.1.2
The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).
Small improvements
- Two new methods have been added to the
Kind
class:nrMaximalSort
to obtain the number of maximal sorts (according to the subsort relation) anderrorFree
to know whether error terms are contained in the kind.
Bug fixes
- The methods
getCondition
andisNonexec
were missing in theMembershipAxiom
class. - Custom special operators with
id-hook SpecialHubSymbol (name)
forgot thename
when being imported.
Python packages v1.1.1
The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).
Bug fixes
Term
objects produced bySymbol.makeTerm
were not properly garbage-collected.- The Python packages now include the
process.maude
andtime.maude
files of the Maude distribution (known problem in 1.1.0).
Python packages v1.1.0
The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).
Update to Maude 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, andsetAssocUnifDepth
to set the depth multiplier for associative unification. - The
Term.vu_narrow
method takes two new optional argumentsfilter
anddelay
that correspond to the homonym options of the interpreter command.
Other improvements
- New method
Kind.hash
for hashingKind
objects. In Python, they can now be used in dictionaries, sets, etc.
Known problems
- The packages distributed through PyPI lack the files
process.maude
andtime.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 thefix-missing.py
script below, or manually by copying them to the package installation path or anywhere else inside the Maude library path.
Python packages v1.0.1
The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).
Bug fixes
- Using the
getLine
message of the stream and file API caused a segmentation fault. - The underlying Maude implementation (
libmaude.so
) contained a bug related to the probabilistic strategy language.