2019-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remember to free bddhash on exit

	* src/kernel.c (bdd_done): Free bddhash.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not use ACLOCAL_AMFLAGS anymore

	Fixes #326.

	* Makefile.am: Here.

2018-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not use ACLOCAL_AMFLAGS anymore

	Fixes #326.

	* Makefile.am: Here.

2017-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	switch to C++14 compilation

	* configure.ac: Here.  Rename --enable-c++14 into --enable-c++17.

2017-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use powers of two for the sizes of all hash tables

	* src/bddop.c, src/bddx.h, src/cache.c, src/cache.h, src/kernel.c,
	src/kernel.h, src/prime.c, src/prime.h, src/reorder.c: Use power of
	two for the sizes of all hash tables, in order to reduce the amount of
	divisions performed.  Also allow bddhash to be smaller than bddnodes.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix handling of bdd_apply_biimp

	* src/bddop.c: Fix shortcut.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix handling of bdd_apply_biimp

	* src/bddop.c: Fix shortcut.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename ChangeLog

	We generate ChangeLog from git log now.

	* ChangeLog: Rename as...
	* ChangeLog.1: ... this.
	* Makefile.am: Distribute the latter.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix libbddx.pc generation

	Report from Jeroen Meijer.

	* src/Makefile.am (libbddx.pc): Depends on Makefile.  Use a
	temporary.  Declare in CLEANFILES instead of DISTCLEANFILES.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename ChangeLog

	We generate ChangeLog from git log now.

	* ChangeLog: Rename as...
	* ChangeLog.1: ... this.
	* Makefile.am: Distribute the latter.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix libbddx.pc generation

	Report from Jeroen Meijer.

	* src/Makefile.am (libbddx.pc): Depends on Makefile.  Use a
	temporary.  Declare in CLEANFILES instead of DISTCLEANFILES.

2017-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix previous patch

	* src/fdd.c: C++ comments are not supported in C90.

2017-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix previous patch

	* src/fdd.c: C++ comments are not supported in C90.

2017-04-19  Michael Weber  <michaelw@foldr.org>

	Addref in fdd_intaddvarblock

	* src/fdd.c (fdd_intaddvarblock): Add missing addref.

2017-04-19  Michael Weber  <michaelw@foldr.org>

	Addref in fdd_intaddvarblock

	* src/fdd.c (fdd_intaddvarblock): Add missing addref.

2017-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typos in comments

	* src/kernel.c (bdd_addref): Fix typo documentation.
	* src/bddop.c (bdd_appall, bdd_appallcomp): Likewise.

2017-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typos in comments

	* src/kernel.c (bdd_addref): Fix typo documentation.
	* src/bddop.c (bdd_appall, bdd_appallcomp): Likewise.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add -Wno-gnu if supported

	* m4/gccwarns.m4: Add -Wno-gnu to workaround a diagnostic from
	clang 3.9.1 on arch Linux.  clang was complaining whtat assert()
	is using a GNU extension.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove useless #include<assert.h>

	* src/bddio.c, src/bddop.c, src/imatrix.c, src/pairs.c: Here.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add -Wno-gnu if supported

	* m4/gccwarns.m4: Add -Wno-gnu to workaround a diagnostic from
	clang 3.9.1 on arch Linux.  clang was complaining whtat assert()
	is using a GNU extension.

2017-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove useless #include<assert.h>

	* src/bddio.c, src/bddop.c, src/imatrix.c, src/pairs.c: Here.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update the warning flags to match Spot's

	* m4/gccwarns.m4: Add more flags taken from Spot.
	Also add -Wno-long-long to suppress one warning.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some -Wpedantic messages

	* src/bddop.c: Empty macro arguments are undefined ISO C90 and
	ISO C++98.  Use '+' when calling APPLY_SHORTCUTS.
	* src/fdd.c, src/kernel.c: Avoid constructs invalid in C90.
	* src/bddop.c, src/bddx.h, src/kernel.c, src/kernel.h,
	examples/cmilner/cmilner.c: Remove C++ comments.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	install a pkg-config file

	* src/libbddx.pc.in: New file.
	* src/Makefile.am: Generate libbddx.pc, and install it.
	Distribute libbddx.pc.in.
	* src/.gitignore: Ignore *.pc.

2016-12-13  Maximilien Colange  <colange@lrde.epita.fr>

	Add an option to enable C++14.

	* configure.ac: add an option --enable-c++14.

2016-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix bdd_noderesize

	* src/kernel.c: Fix error introduced by 5a862295.
	Report from Tomáš Babiak.

2016-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	avoid costly calls to setjmp() when BDD_REORDER_NONE

	* src/reorder.c, src/kernel.h: Expose bddreordermethod.
	* src/bddop.c: Test bddreordermethod before ever calling setjmp().

2016-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	consolidate shortcuts for binary operation

	* src/bddop.c (apply_rec, appquant_rec): Define missing shortcuts
	for bddop_less, bddop_diff, bddop_revimpl and define them once.

2016-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve initialization of bddnode

	* src/kernel.c, src/kernel.h: Here.

2016-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix several PVS-Studio warnings

	For #192.

	* src/bddio.c, src/cppext.cxx, src/kernel.c: Fix printf formats, calls
	to new, and simplify one check in bdd_delref_nc().

2016-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	slight optimization of bdd_implies

	* src/bddop.c: Avoid the first recursion when it is obvious that the
	second will fail.

2016-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typo in comment

	* src/bddop.c (bdd_implies): Fix documentation.

2016-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	speedup bdd_init and bdd_noderesize

	* src/kernel.c: The initialization code of the BDD cache was
	awfully slow due to multiple references to global variables.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix an undefined behavior

	* src/prime.c (BitIsSet): Do not shift signed
	int by 31 places; shift unsigned int instead.

2015-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	backport some fixes from upstream

	* src/fdd.c, src/imatrix.c, src/kernel.c, src/reorder.c: Here.

2015-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix undefined behavior

	The bug was found while running Spot's src/tgbatest/randpsl.test
	on Debian i386 with gcc-4.9.2.  The following call would crash:

	./ltl2tgba -R3 -t '(!(F(({{{(p0) |
	{[*0]}}:{{{(p1)}[*2]}[:*]}[*]:[*2]}[:*0..3]}[]-> (G(F(p1)))) &
	(G((!(p1)) | ((!(p2)) W (G(!(p0)))))))))'

	On amd64 the call does not crash, but valgrind nonetheless
	report that uninitialized memory is being read by bdd_gbc()
	during the second garbage collect.

	* src/kernel.h (PUSHREF): Define as a function rather than a macro
	to avoid undefined behavior.  See comments for details.

2014-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	pack cache entry on 16 bytes, not 20.

	The double result is never used with a triple keys,
	so we can pack the cache entry more tightly.

	* src/cache.h: Reorganize the cache entry the structure.
	* src/cache.c: Cleanup the code while we are at it.
	* src/bddop.c: Adjust to accesses to cache entries.

2014-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a harmless uninitialized read.

	This can only cause failure when running under valgrind (i.e., in the
	test suite), but is not a problem in practice as the test is certain
	to fail the entry->c check whenever entry->b is uninitialized.

	* src/bddop.c (bdd_implies): Here.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a harmless uninitialized read.

	This can only cause failure when running under valgrind (i.e., in the
	test suite), but is not a problem in practice as the test is certain
	to fail the entry->c check whenever entry->b is uninitialized.

	* src/bddop.c (bdd_implies): Here.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve handling of bddtrue and bddfalse.

	* src/bdd.h, src/cppext.cxx: Handle bddtrue and bddfalse using
	special types.
