- fix comparison of theory elements (#485)
- fix manifest (#484)
- update cibw to also produce Python 3.12 wheels
- add AST node for comments (#417)
- add function to change undo mode (#409)
- add function to access priorities to API (#406)
- add
Model::is_consequence
to API (#423) - add option to preserve facts (#457)
- improve hash table performance (#441)
- extend add_theory_atom method of backend (#461) (breaks backward compatibility of the API)
- add contribution guidelines (#465)
- fix
add_theory_atom_with_guard
in Python API - fix AST bugs (#403)
- fix parsing of hexadecimal numbers (#421)
- fix assignment aggregates (#436)
- fix build scripts for Python 3.12 (#452)
- fix overflows in IESolver (#462)
- make sure
clingo_control_ground
is re-entrant (#418) - update clasp and dependencies
- fix AST comparison (#394)
- fix handling of n-ary comparisons in AST (#396)
- fix symbolic atom iterator (#389)
- build wheels using cibuildwheel (#391, #392) (this adds additional architectures)
- add support for parsing files in ASPIF format (#387) (breaks C API)
- add theory related functions to backend (#381)
- add support for comparisons with more than one relation (#368)
- extend safety by computing intervals from comparisons (#375)
- add and ground base part by default in Python API (#378)
- remove experimental CSP extensions (#367)
- require at least MSVC 15.0 to build on Windows
- large code refactoring (#376)
- replace internal hash set implementation by external one (#386)
- update to clasp version 3.3.9
- fix
parse_files
in C++ API - fix adding clauses during enumeration (#359)
- fix incremental projection with backend (#362)
- update to clasp version 3.3.8
- extend theory class to get version information
- improve performance of
Model.symbol
(#296) - tidy up
clingo.hh
header regarding C++17 deprecations (#344) - fix error handling while solving in Python API (#334)
- fix various outher bugs
- update to clasp version 3.3.7
- allow for using
not
as a theory operator (#193) - improve parsing of disjunctions (#171)
- rename
max_size
tosize
in APIs and remove previoussize
method (breaks backward compatibility but makes things consistent) - refine cmake configuration variables (#283) (package maintainers might have to pay attention here)
- extend clingo API (#236, #231, #228, #227, #187, #171, #174, #183)
- add type annotations and add stub files for type checkers (#212)
- reimplement Python API using CFFI (#253) (breaks backward compatibility regarding the AST and some details)
- add
remove_watch
andfreeze_literal
topropagate_init
(#285) - add support for Lua 5.4
- add options to select specific Lua/Python versions
- add single-shot solving option (#269) (see installation instructions)
- rename
clingo.Tuple
toclingo.Tuple_
(to avoid name clashes withtyping.Tuple
) - fix propagator initialization (#166)
- fix cleanup function and handling of theory (#169)
- fix shifting of disjunctions (in clasp) (#173)
- fix handling of pools in externals (#179)
- fix logger in Python API (#175)
- fix memory bugs regarding strings (#196)
- fix undo function (#191)
- fix adding literals in propagate init (#192)
- fix handling of undefined arithmetics (#218)
- fix incremental grounding (#248)
- fix/improve handling of classical negation (#268)
- update to clasp version 3.3.6 fixing various issues
- add extension to implement custom heuristics
- add const modifiers to C API
- add flags to external and const statements to match API functions
- fix python memleaks
- make compatible with msvc 15
- C ABI changes
- extended propagators
- C++ API changes
- unify usage of ProgramBuilder and Backend
- python API changes
TruthValue.{_True,_False}
becomesTruthValue.{True_,False_}
HeuristicType.{True,False}
becomesTruthValue.{True_,False_}
async
and yield becomesasync_
andyield_
- improve python API documentation
- use cmakes
find_python
module - update to clasp version 3.3.5
- change C API to use numeric instead of symbolic literals
- affects assumptions and assigning/releasing externals (breaks backward compatibility)
- added overloads to C++, python and lua API to support both numeric and symbolic version (preserves backward compatibility for most code)
- the python, C and C++ APIs now allow for customizing clingo by implementing a custom main function but reusing the rest of the application including the standard output
- add API function to detect conflicting programs
- add message logger to python and lua interface
- add support for primes in the beginning of identifiers and variable names
- add per solver registration of watches during propagator initialization
- add a directive to selectivel suppress undefined atom warnings
- add support for user defined statistics
- add _to_c functions for python API to be able to call C functions from python
- only create ground representations for requested program parts when grounding (#71)
- improve program observer (#19)
- support for binary, octal, and hexadecimal numbers (#65)
- the backend has to be opened/closed now
- release python's GIL while grounding (#82)
- TruthValue.{True,False} becomes TruthValue.{_True,_False} in python API
- improve API and it's documentation
- update to clasp version 3.3.4
- really fix --pre option
- fix link to potassco guide (#74)
- fix location printing (#78)
- fix linking problems (#79)
- fix modulo zero (#100)
- fix web builds (#103)
- fix addding clauses after a model has been found (#104)
- fix python program observer bindings (#105)
- expose exponentiation operator in APIs
- improve python docstrings (#101, #102)
- add option to build python and lua modules against an existing libclingo
- update to clasp version 3.3.3
- use GNUInstallDirs in cmake files to simplify packaging
- fix --pre option
- fix swapped clingo_assignment_size and clingo_assignment_max_size
- fix docstrings
- fix incremental mode
- fix sup and inf in python/lua bindings
- fix reified format term tuples
- fix wrong use of python API (causing trouble with python 3.6)
- fix compilation problems on 32bit linux (missing libatomic)
- update to clasp version 3.3.2
- fix handling of istop in incmode programs
- fix handling of undefined ** operations
- fix preprocessing of disjunctions with undefined operations (regression in clingo-5)
- fix segfault during preprocessing (regression in clingo-5)
- switch to MIT license
- improve compatibility with abstract gringo
- switch build system from scons to cmake
- improve windows compatibility
- make tests and examples python 3 compatible
- bison and re2c are no longer required to build source releases
- update to clasp 3.3.0
- the CLINGOPATH environment variable can be set to control from where to include files in logic programs
- propagators can add variables while solving now
- refactor interfaces (breaking backward compatibility)
- there is just one solve function now
- in the C API do not pass structs by value to functions because FFIs of some languages do not support this
- fix cleanup function
- numerous other bugfixes not listed here
- fix thread id to start with one in propagator.undo in lua
- fix version macro in clingo.h
- fix added missing methods to get thread id to model in lua/python
- fix child_key property in python ast
- update to clasp 3.2.1
- add interface to add variables during propagation
- add interface to inspect ground rules (C/C++ only)
- add experimental interface to access clasp facade (C/C++ only)
- fixed smodels output (--output=smodels)
- cleanup of python and lua API (breaks backwards compatibility)
- added new aspif output format replacing the old smodels format
- added input language support for clasp features
- #edge directives to add acyclicity constraints
- #project directives for enumeration of projected models
- #heuristic directives to steer clasp's search
- added theory atoms to write aggregate like constructs
- added stable C API documented with doxygen
- added experimental C++ API based on C API
- added theory propagator interface to clingo APIs
- added support for compilation with Visual Studio 2015
- improved data structures to reduce memory consumption on typical input
- updated to clasp version 3.2.0 + patches
- fixed bug when creating multiple Control objects (affects lua only)
- fixed bug when trying to configure more solvers than in portfolio (affects python only)
- fixed #disjoint constraints
- improved build scripts
- added option to keep facts in normal rules
- fixed regression w.r.t gringo 4.4 in translation of conditional literals
- fixed projection in incremental programs
- fixed bug with (double) negative literals in minimize constraints
- fixed memory leak in python API when enumerating models
- updated to clasp version 3.1.3
- ground term parser returns None/nil for undefined terms now
- added warning if a global variable occurs in a tuple of an aggregate element
- added auto detection of libraries
- changed option --update-domains into API function Control:cleanup_domains
- fixed domain cleanup when used with minimize constraints
- fixed grounding of recursive disjunctions (regression in 4.5.0)
- fixed Control.stats in lua bindings
- fixed a bug in clingo that would print 0-ary classically negated atoms wrongly
- fixed grounding of recursive aggregates
- fixed usage of lua_next
- fixed bug when applying constant definitions
- updated underlying clasp to version 3.1.1
- added support for negation in front of relation literals
- added option --update-domains to cleanup gringo's domains using clasp's top-level assignment when solving incrementally
- added domain inspection to scripting interface
- added term parser to scripting interface
- added support for python 3 (experimental)
- added support for one elementary tuples
- added support for unary - operator in front of functions and symbols
- added support for recursive nonmonotone aggregate via translation
- added program reify to reify logic programs
- added option to rewrite minimize constaints for use with reify
- changed inbuilt iclingo mode (breaks backwards compatibility)
- changed handling of pools, intervals, and undefined operations according to AG (breaks backwards compatibility)
- changed handling of ==, it is treated like = now
- changed SolveFuture.interrupt to SolveFuture.cancel (breaks backwards compatibility)
- updated underlying clasp to version 3.1.0
- this version brings numerous fixes regarding incremental solving
- scripting API changes
- ground takes a list of programs to ground now and immediately starts grounding (breaks backwards compatibility)
- asolve has been renamed to solveAsync (breaks backwards compatibility)
- the solver configuration is better integrated now (breaks backwards compatibility)
- solver statistics are a property now (breaks backwards compatibility)
- added a method to add clauses during solving
- added load method to load files
- added solveIter method to iterate over methods without using a callback
- added optional assumptions to solve/solveAsync/solveIter method
- enableEnumAssumption became a property
- added library that can be imported in python
- rules with fact heads where not simplified in all cases
- fixed grounding of recursive aggregates
- fixed translation of aggregates with multiple guards
- fixed bug with incremental parameters in minimize constraints
- fixed handling of empty tuples
- fixed translation of conditional literals
- fixed translation of factual body aggregates
- fixed bug not properly recognizing aggregates as non-monotone
- fixed bug not properly grounding recursive head aggregates
- fixed bug with recursive negated aggregates
- fixed bug with head aggregates with multiple elements
- improved handling of conditional literals
- added method to get optimization values of model in scripting language
- clingo uses clasp 3.0 now
- fixed bug in simplification of aggregates
- fixed bug with raw strings in macros
- fixed compilation issues with older glibc versions
- fixed output for enumeration of cautious consequences
- fixed bugs in clasp library
- fixed race in parallel model enumeration
- fixed incremental optimization
- fixed cleanup up of learnt constraints during incremental solving
- workaround for libstdc++'s bad choice for hash<uint64_t> on 32bit arches
- added clingo
- supports very flexible scripting support
- can cover iclingo and oclingo functionality now
- added stack traces to lua error messages
- added support for incremental optimization
- improved python error messages
- renamed gringo.Function to gringo.Fun
- removed luabind dependency
- removed boost-python dependency
- consistently use not instead of #not as keyword for negation
- fixed translation of conditions in head aggregates
- fixed replacement of constants
- fixed grounding of recursive head aggregates
- fixed translation of head aggregates
- fixed show statements for CSP variables (condition was ignored)
- fixed plain text output of body aggregates
- added a ton of new bugs
- added scripting languages python and lua
- added -c option to define constants
- added constraints over integer variables
- linear constraints
- disjoint constraints
- show statements for constraint variables
- (experimental and subject to change)
- improved translation of disjunctions
- fixed include directives
- fixed preprocessing of definitions
- fixed lparse translation of optimization constructs