Freecell Solver Changelog

What's new in Freecell Solver 3.22.0

Oct 8, 2013
  • The Windows NSIS package should now build, install, and run properly.
  • A bug in command line option processing was fixed.

New in Freecell Solver 3.20.1 (Jul 3, 2013)

  • The Win32/MinGW build process was fixed.

New in Freecell Solver 3.20.0 (Jun 27, 2013)

  • This version adds a major speed optimization to the Simple Simon solving code, a "qualified-seed-improved" ("qsi" for short) preset for shorter solutions, and many cleanups, refactorings, and optimizations.

New in Freecell Solver 3.18.1 (May 31, 2013)

  • A JavaScript port was added (compiled from the C sources).
  • The executables and tests now work properly on 32-bit systems.
  • The RPM .spec now runs the test suite.

New in Freecell Solver 3.16.0 (Dec 11, 2012)

  • Options have been added to help reduce the average solution length ("--flares-choice" and "--flares-iters-factor").
  • There are two new presets for doing that.
  • This release adds a memory optimisation for flares-based presets.

New in Freecell Solver 3.14.0 (Nov 1, 2012)

  • This version adds a sixth Best-first-search weight of the negated number of cards not above their parents, implements "random-dfs" ordering based on this a-star weight, adds several new commandline themes ("-l as" for speed, and "-l mf" for short solutions), implements "DeBondt" state encoding for the dbm_fc_solvers, and implement a prune for Baker's Dozen and similar games.
  • It drops support for compiling with Microsoft Visual C++ and other non-GCC-compatible compilers.

New in Freecell Solver 3.12.0 (Jun 14, 2012)

  • This version adds the --show-exceeded-limits flag for less ambiguous input.
  • It has a fix for misbehaviour with using "-sp r:tf" in conjunction with "-opt".
  • It adds the "three-eighty" preset.
  • Some enhancements have been made to the so-called "dbm_fc_solver" and a new "fcc_fc_solver", based on Fully Connected Components.
  • Support has been added for building and testing the distribution in an out-of-tree build.

New in Freecell Solver 3.10.0 (Jan 17, 2012)

  • Convert the references to the web-site and repository away from berlios.de, as it was announced it will become offline.
  • Bug fix: correct the handling of foundations with values 0 (e.g: +H-0+,+S-0+ ).
  • Bug fix: made the +-mi+/+--max-iters+ flag global for all instances.Previously, it affected only the last one.
  • Add an experimental +delta_states.c+ implementation and +dbm_solver.c+ that uses it to drive a Freecell Solver scan with an on-disk database (currently Google LevelDB and Berkeley DB are supported). So far it seems that with a limited cache size, this does not scale too well.
  • Add the experimental +pruner-main.c+ (not installed by default).
  • Add support for generating "all_in_a_row" deals to +make_pysol_freecll_board.py+
  • Many small optimizations and cleanups.

New in Freecell Solver 3.8.0 (Jul 4, 2011)

  • This release fixes some crashes using --trim-max-stored-states, adds a more meaningful man page instead of the token one that was previously present, adds scripts/parallel-range-solver-total to solve a range of deals in parallel by splitting them into chunks, and many smaller improvements and fixes.
  • We also forgot to mention the 3.6.0 release, which fixed the installation of fcs_dllexport.h, added the --tracemem compile time option, added a bug fix for incrementally increasing the iterations/stored-states limits, added a built-in version of kazlib's balanced binary search tree as a possible back-end for storage, and had some other improvements.

New in Freecell Solver 3.4.0 (Dec 6, 2010)

  • The --set-pruning option was added, as well as the "enlightened-ostrich" preset for speed and the "maliciously-obscure" preset for generating short solutions.
  • A compile-time option has been added to use RCS-like states storage, which conserves a lot of RAM.
  • The CMake configuration now uses "lib${LIB_SUFFIX}", which allows building on some 64-bit systems.
  • An experimental --trim-max-stored-states flag has been added, which currently may crash the solver (a known bug that should be fixed in a future release.)

New in Freecell Solver 3.2.0 (Jul 14, 2010)

  • This release implements the --depth-tests-order flag that allows varying the tests' order based on the depth which allows for interesting (and faster) searches. Several new presets : -l the-iglu-cabal , -l foss-nessy and -l tea-for-two have been added , the latter optimised for two freecell deals. There are also several bug-fixes, optimisations and code cleanups.

New in Freecell Solver 3.0.0 (May 25, 2010)

  • This release implements the flares API (see the usage document), which allows running several alternative scans and then picking up the one with the shortest solution. It also adds the -l children-playing-ball and -l sentient-pearls presets that optimise on solution length (based on flares).

New in Freecell Solver 2.42.0 (Mar 29, 2010)

  • This release finally adds a -o/--output flag to the "fc-solve" executable, and installs the newly created executables ( freecell-solver-fc-pro-range-solve , freecell-solver-multi-thread-solve , freecell-solver-range-parallel-solve , etc.) by default. There are also several bug-fixes and one can now input "const char *" instead of "char *" (with a compile-time flag that typedefs the strings to their old interface).
  • There has been some internals cleanups and optimisations. Finally, the file pqueue.h was converted to the MIT/X11 license, with permission of its originator, Justin Heyes Jones making Freecell Solver fully licensed under MIT/X11.

New in Freecell Solver 2.40.0 (Jan 28, 2010)

  • This release contains a fix to a string overflow with processing the command line arguments, and an optimised command-line preset that can be invoked as -l blue-yonder (or -l by for short) that solves the Microsoft 32,000 deals in under 100 seconds on a Pentium 4 2.4GHz machine. It also contains some more minor changes: there is now a Scan: header with the name of the current soft thread, when debugging under -s -i, an off-by-1 iterations count was fixed and the iteration handling callback is now applied globally to all the instances. Finally, make_pysol_freecell_board.py has support for generating PySol's and PySolFC's "Black Hole" Solitaire deals, intended for my newly released Black Hole Solitaire Solver.

New in Freecell Solver 2.38.0 (Dec 30, 2009)

  • This is a minor release which makes sure one can build Freecell Solver outside the source distribution (e.g: mkdir build ; cd build ; cmake ..) without AsciiDoc, adds a --pysfolfc (or an -F for short) flag to make_pysol_freecell_board.py and fixes one of the help displays.

New in Freecell Solver 2.36.0 (Nov 27, 2009)

  • The main highlight of this release is that the plaintext documentation that was part of the source distribution were converted to AsciiDoc, a lightweight markup language that allows the plaintext and human-readable sources to be converted to HTML, to DocBook/XML, to PDF and to other formats. As a result, they are now also available online in HTML formats.
  • Furthermore, the process for getting the test suite and benchmarking process up and running were considerably simplified, thanks to the input received by Dimitri Leca (Pythack).
  • Finally, there are some other more minor improvements. This release has been delayed quite a bit due to some neglect on the part of the main maintainer, but we hope you find what's new satisfying enough. Happy solving!

New in Freecell Solver 2.34.0 (Jul 13, 2009)

  • Back in the abandoned 2.10.x branch a programmer called Michael Mann contributed a new Simple Simon move function that allowed it to solve more games. In 2.34.0 this move function was restored, and made optional. We now have a theme called "the-last-mohican" (or "tlm" for short), after the movie "The Last of the Mohicans" by a different Michael Mann, which I have watched and enjoyed, that is capable of solving over 90% of the first 5,000 PySol Simple Simon deals. (Incidentally "The Last Mohican" is the direct translation of the book and movie's name in Hebrew). The solutions of the solver were verified to be correct using Games-Solitaire-Verify.
  • Working on this theme uncovered a bug in the solver where the --next-instance flag was removed by accident, and it is now fixed.
  • Aside from that, there's now an improved atomic moves theme - "toons-for-twenty-somethings", which can solve all of MS Freecell's 32,000 deals. It is still much slower than the meta-moves-based theme.

New in Freecell Solver 2.32.1 (Jun 26, 2009)

  • This release fixes several important build bugs, especially on Windows, but also on UNIXes.

New in Freecell Solver 2.32.0 (Jun 24, 2009)

  • This version features a large code cleanup which also resulted in a substantial speed boost. The code cleanup was guided by a script that was written to list all occurences of identifiers with the same name, in order to find uncommon identifiers.
  • There were several bug-fixes done to the CMake-based build system, and there's now suppot for Google's tcmalloc and hidden internal identifiers in the DLL/shared-library. The inline keyword for definining inline functions is now supported on more compilers and more functions or macros have been converted to inline functions.

New in Freecell Solver 2.28.1 (May 18, 2009)

  • This version contains several significant optimisations. Now the "freecell-only" preset can solve the first 32,000 Microsoft Freecell deals at 286 deals per second with gcc, and 301 deals per seconds with Intel's icc. (on a Pentium 4 2.4GHz computer). There are many other internal cleanups, build system tweaks, and new makefiles to build using some alternative C compilers.

New in Freecell Solver 2.26.0 (Apr 28, 2009)

  • Several significant optimisations (up to the point where the "freecell-only" preset can solve the first 32,000 Microsoft Freecell deals in 200 deals per second.)
  • Improvements to the build system (including the elimination of compiler warnings).
  • Finally, the test suite now builds correctly inside the source distribution.

New in Freecell Solver 2.24.0 (Apr 19, 2009)

  • This version contains some fixes to crashes and memory leaks when using the -opt with a range of boards (or otherwise when a solver instance is recycled), a new "freecell-solver-fc-pro-range-solve" executable (built by default, but not installed), which runs a range of deals using the solver and outputs the number of FCS moves, the number of FC-Pro moves, and the FC-Pro moves in standard notation.

New in Freecell Solver 2.22.0 (Apr 1, 2009)

  • This release converts from Public Domain "licensing" which is problematic for source code to the more explicit and less controversial MIT/X11 License. (Some source files that had been originated by other parties are still under the public domain).

New in Freecell Solver 2.20.0 (Mar 27, 2009)

  • The big news is that executables for Microsoft Windows (x86) are now available for it, for the first time since the early 2.8.x releases. And this time, they come in the form of an interactive "Next→Next→Finish" installer based on the Nullsoft Scriptable Install System (NSIS).
  • Also in this release are a fix to a crash when using the range solver with the "-opt" flag (and other similar scenarios), a more comprehensive NEWS file and some other fixes.

New in Freecell Solver 2.18.0 (Mar 22, 2009)

  • The FCS_FRECELL_ONLY compile-time flag was added.
  • The libredblack support was fixed and libJudy support was added.
  • The TODO and NEWS files were updated.
  • The Hard-DFS scan was eliminated, and specifying it now defaults to Soft-DFS.

New in Freecell Solver 2.16.0 (Mar 16, 2009)

  • The iteration numbers in the "-s -i" display are now consecutive.
  • Refactoring of the ptr_state_with_locations_t struct into a separate ptr_state_t (key) and a ptr_state_extra_info_t (value).

New in Freecell Solver 2.14 (Jan 26, 2009)

  • This release has a major speed boost.
  • The unlimited sequence move has been fixed.
  • The identifier names were shortened to make the code more readable.
  • Tests now work out of the box.

New in Freecell Solver 2.12.0 (Dec 11, 2008)

  • A new configuration and build system based on CMake, which results in faster configurations and builds, and a greatly reduced archive size.
  • A new suite of automated tests.
  • The command line processing was optimized and there's a new --version flag.

New in Freecell Solver 2.11.10 (Nov 20, 2008)

  • The command line argument processing was converted to use a radix tree.
  • The source archive can be built as an RPM again.
  • The parallel tester was fixed and more tests were added.