--------------------------
New benchmarks:
* Add ``crypto_pyaes``: Benchmark a pure-Python implementation of the AES
block-cipher in CTR mode using the pyaes module (version 1.6.0). Add
``pyaes`` dependency.
* Add ``sympy``: Benchmark on SymPy. Add ``scipy`` dependency.
* Add ``scimark`` benchmark
* Add ``deltablue``: DeltaBlue benchmark
* Add ``dulwich_log``: Iterate on commits of the asyncio Git repository using
the Dulwich module. Add ``dulwich`` (and ``mpmath``) dependencies.
* Add ``pyflate``: Pyflate benchmark, tar/bzip2 decompressor in pure
Python
* Add ``sqlite_synth`` benchmark: Benchmark Python aggregate for SQLite
* Add ``genshi`` benchmark: Render template to XML or plain text using the
Genshi module. Add ``Genshi`` dependency.
* Add ``sqlalchemy_declarative`` and ``sqlalchemy_imperative`` benchmarks:
SQLAlchemy Declarative and Imperative benchmarks using SQLite. Add
``SQLAlchemy`` dependency.
Enhancements:
* ``compare`` command now fails if the performance versions are different
* ``nbody``: add ``--reference`` and ``--iterations`` command line options.
* ``chaos``: add ``--width``, ``--height``, ``--thickness``, ``--filename``
and ``--rng-seed`` command line options
* ``django_template``: add ``--table-size`` command line option
* ``json_dumps``: add ``--cases`` command line option
* ``pidigits``: add ``--digits`` command line option
* ``raytrace``: add ``--width``, ``--height`` and ``--filename`` command line
options
* Port ``html5lib`` benchmark to Python 3
* Enable ``pickle_pure_python`` and ``unpickle_pure_python`` on Python 3
(code was already compatible with Python 3)
* Creating the virtual environment doesn't inherit environment variables
(especially ``PYTHONPATH``) by default anymore: ``--inherit-environ``
command line option must now be used explicitly.
Bugfixes:
* ``chaos`` benchmark now also reset the ``random`` module at each sample
to get more reproductible benchmark results
* Logging benchmarks now truncate the in-memory stream before each benchmark
run
Rename benchmarks:
* Rename benchmarks to get a consistent name between the command line and
benchmark name in the JSON file.
* Rename pickle benchmarks:
- ``slowpickle`` becomes ``pickle_pure_python``
- ``slowunpickle`` becomes ``unpickle_pure_python``
- ``fastpickle`` becomes ``pickle``
- ``fastunpickle`` becomes ``unpickle``
* Rename ElementTree benchmarks: replace ``etree_`` prefix with
``xml_etree_``.
* Rename ``hexiom2`` to ``hexiom_level25`` and explicitly pass ``--level=25``
parameter
* Rename ``json_load`` to ``json_loads``
* Rename ``json_dump_v2`` to ``json_dumps`` (and remove the deprecated
``json_dump`` benchmark)
* Rename ``normal_startup`` to ``python_startup``, and ``startup_nosite``
to ``python_startup_no_site``
* Rename ``threaded_count`` to ``threading_threaded_count``,
rename ``iterative_count`` to ``threading_iterative_count``
* Rename logging benchmarks:
- ``silent_logging`` to ``logging_silent``
- ``simple_logging`` to ``logging_simple``
- ``formatted_logging`` to ``logging_format``
Minor changes:
* Update dependencies
* Remove broken ``--args`` command line option.