Black Hole Solver's News File
=============================
Shlomi Fish <shlomif@cpan.org>
:Date: 2025-03-03
:Revision: $Id$

1.14.0       ( 03 March 2025 ):
-------------------------------

* Fixed running black_hole_solver_run with the same (or a smaller) iterations
limit.  It ran indefinetely then (Possible Denial-of-service?)

* Fix some hypothetical rresource leaks (e.g.: with "fopen()").

* Cleanups: add "const"s , convert "int" to "bool", etc.

* Add tests.

1.12.0       ( 28 March 2022 ):
-------------------------------

* Convert to cmake/rinutils_bootstrap.cmake .

* Minor refactorings .

1.10.1       ( 28 October 2020 ):
---------------------------------

* Fix the shared library's SOVERSION (it is back compat with
earlier 1.x.y versions).

1.10.0       ( 28 October 2020 ):
---------------------------------

* Add ENABLE_DISPLAYING_MAX_NUM_PLAYED_CARDS (off by default) which
gives the "--show-max-num-played-cards" flag.
** Inspired by https://politaire.com/article/blackhole.html by Jan Wolter. Thanks!

* New build dependency: python3 (3.4.0 or above).

* New "make check" dependency: https://metacpan.org/pod/Test::Some .
** Thanks to +#perl-qa+ on irc.perl.org.

1.8.0       ( 28 Jun 2020 ):
----------------------------

* Convert +CMakeLists.txt+ to GNUInstallDirs.

* Install the .dll on MS Windows builds. (Bug fix.)

* Better https://metacpan.org/release/Code-TidyAll[tidyall] compliance.

* Released a https://pypi.org/project/black-hole-solver/[Python wrapper].

1.6.0       ( 07 Dec 2019 ):
----------------------------

* Extract the "rinutils" library as a cmake package:
https://github.com/shlomif/rinutils/ .

* Convert some functions to inline ones.

1.4.0       ( 16 Jul 2019 ):
----------------------------

* Fix a build warning on latest cmake.

* Moved bit_rw to rinutils.

* Rename tests-time env vars to make them clearer.

1.2.1       ( 01 Jul 2019 ):
----------------------------

* Fix for platforms with unsigned chars (e.g: ARM Linux).

1.2.0       ( 30 Jun 2019 ):
----------------------------

* Add the +--output+ flag to output to a file.

* Add some tests.

* Several optimisations and cleanups.

1.0.0       ( 23 May 2019 ):
----------------------------

* Convert common headers to https://github.com/shlomif/rinutils/ .

* Convert NEWS to AsciiDoc.

* New major version number because the project seems mature enough.

0.24.0      ( 08 May 2019 ):
----------------------------

* Add the USE_SYSTEM_XXHASH cmake option.

0.22.0      ( 08 May 2019 ):
----------------------------

* Try to gracefully abort on memory allocation failure (due to out of RAM/etc.)

* Refactor the test suite.

* Introduce https://metacpan.org/pod/Games::Solitaire::Verify::Golf .

0.20.0      ( 17 Apr 2019 ):
----------------------------

* Add some API calls for +BLACK_HOLE_SOLVER__API__REQUIRES_SETUP_CALL+ .
Breaking change!

* Add black_hole_solver_recycle() .

* Add the multi-bhs-solve executable - not installed by default.

* Some speed ups, code clean-ups, tests, and refactorings.

0.18.0      ( 15 Jan 2019 ):
----------------------------

* Add support for three variants of
https://en.wikipedia.org/wiki/Golf_(patience) .

* API revamp - some types and function signatures were changed.

* SECURITY: Fixed a minor buffer overflow problem if one specified
a large max_num_cards_in_col in black_hole_solver_read_board() and
passed a large string (not exploitable using the command line exe).

* Added tests; some cleanups and some optimisations .

0.16.0      ( 12 Nov 2017 ):
----------------------------

* Fix a crash when reading a non-existent board file.
    - Thanks to Nandakumar Edamana for the report.

* Got the tests to work on MS Windows and other cleanups.

0.14.0      ( 24 Feb 2016 ):
----------------------------

* Move the version control system to Git and GitHub and enabled Travis-CI:
    - https://github.com/shlomif/black-hole-solitaire
    - https://travis-ci.org/shlomif/black-hole-solitaire
    - Part of it was done due to my problems in finding a good alternative
    to Travis-CI for Bitbucket.

* Add an SOVERSION to the library.

* Fixed a minor problem in the testing code as reported by Coverity Scan.
    - the global --max-iters was ignored.

0.12.0      ( 11 Oct 2014 ):
----------------------------

* Made the solver API resumable.

* Code is now -std=gnu99 (GCC/clang) specific due to refactorings and cleanups.

0.10.0      ( 21 May 2014 ):
----------------------------

* Add the API function black_hole_solver_set_iters_display_step

* Add the --iters-display-step command line flag.

* Fixed for CMake-3.0.0.

0.8.0       ( 03 Jun 2013 ):
----------------------------

* Add the --rank-reach-prune option and
black_hole_solver_enable_rank_reachability_prune().

* Add the API function black_hole_solver_get_lib_version().

* Add the --version flag.

0.6.0       ( 16 May 2013 ):
----------------------------

* Add the --display-boards flag.

* Add the --help flag.

0.4.0       ( 12 May 2013 ):
----------------------------

* Add support for All in a Row Solitaire in addition to Black Hole
Solitaire.

0.2.0       ( 22 Sep 2010 ):
----------------------------

* Translate to C.

0.0.1       ( 11 Jan 2010 ):
----------------------------

* Initial release as a Perl CPAN module.
