All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
get_conjuncts(p: HplPredicate | HplExpression)
function tohpl.rewrite
module.get_disjuncts(p: HplPredicate | HplExpression)
function tohpl.rewrite
module.
- Small improvement in
hpl.rewrite.simplify
.
split_and(p: HplPredicate | HplExpression)
function tohpl.rewrite
module.simplify(p: HplPredicate | HplExpression)
function tohpl.rewrite
module.is_inclusion
andis_comparison
properties toBinaryOperatorDefinition
.- Factory functions
boolean
,number
andstring
toHplLiteral
.
- Small optimization to
HplExpression
type checking system.
HplPredicateExpression.expression
is now cast toDataType.BOOL
on construction.
canonical_form(property: HplProperty)
function tohpl.rewrite
module.
HplAstObject.but()
returns the same object if no attributes would change.
- Sanity error when creating some types of predicates that was too strict.
- Exception when parsing specifications.
hpl
CLI script to test file/property parsing
- Python 2 is no longer supported.
- Modernized tooling and package structure.
- Improved API in various aspects, with some backward-incompatible changes.
- AST objects are mostly immutable, with available methods to create mutated copies.
- Added a number of attribute validators for AST data types.
- Fixed a bug with properties that had complex events such as disjunctions.
MANIFEST.in
was missingrequirements.txt
, causing an issue when installing withpip
.
- More builtin functions to use with
HplFunctionCall
.
HplEventDisjunction
requires unique ROS names for each disjoint event.
HplProperty
sanity checks for Requirement pattern.
- Convenience methods in
HplPredicate
to check references to aliases. - Event disjunctions; e.g.,
(a or b) causes c
. - Convenience methods to duplicate
HplAstObject
instances. logic
module with some convenience, logic-related functions.