<commit_before>.. _relnotes:

*****************
  Release Notes
*****************

Release 0.27
============

Version 0.27.5
--------------

Fixed `Issue 121 <https://github.com/cjdrake/pyeda/issues/121>`_.

Version 0.27.4
--------------
<commit_msg>Create version 0.28 release notes<commit_after>.. _relnotes:

*****************
  Release Notes
*****************

Version 0.28
============

Moved the PicoSAT and Espresso code to a top-level ``thirdparty`` directory.

Did lots of work in the ``boolexpr`` library.
Primary change was to get rid of all dynamic stack allocations,
replacing them with heap allocations.
Most of this was internal stuff which won't be noticeable at the UI.
This includes a mega rename of ``boolexpr`` public functions and variables
to have a ``BX_*`` prefix.

Also added a new simplification:

.. code-block:: pycon

   >>> Xor(a, Xnor(b, c))
   Not(Xor(a, b, c))

Release 0.27
============

Version 0.27.5
--------------

Fixed `Issue 121 <https://github.com/cjdrake/pyeda/issues/121>`_.

Version 0.27.4
--------------

{'fraction_non_alphanumeric': 0.2438095238095238, 'fraction_numerical': 0.0380952380952381, 'mean_word_length': 3.2379032258064515, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 8, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7212727', 'n_tokens_mistral': 362, 'n_tokens_neox': 324, 'n_words': 111}