Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please upgrade dnsmasq from 2.64 to 2.66 #56

Closed
joshie opened this issue May 22, 2013 · 1 comment
Closed

Please upgrade dnsmasq from 2.64 to 2.66 #56

joshie opened this issue May 22, 2013 · 1 comment

Comments

@joshie
Copy link

joshie commented May 22, 2013

dnsmasq can now act as an authoritative server, rad.

@mamash
Copy link

mamash commented May 28, 2013

I updated the dnsmasq package upstream to 2.66. It will show up in 2013Q2 (ETA: first half of July).

@mamash mamash closed this as completed May 28, 2013
jperkin pushed a commit that referenced this issue Dec 9, 2013
== 1.8.1 / 2013-01-02

Bug Fixes
- Diagnostic context thread inheritance [issue #56]
- Fixing trace reporting in JRuby 1.7
jperkin pushed a commit that referenced this issue Dec 9, 2013
libass (0.10.1)
 * Fix letter spacing
 * Add \rSTYLENAME syntax support (GC #43)
 * Fix border generation and border style reset (GC #56)
 * Fix various issues with bug-for-bug compatibility of
   transformations (\fax, \fay, etc.) to VSFilter (GC #46, GC #42)
 * Fix drawing parsing (GC #47)
 * Various fixes to shaper (GC #54, GC #55, GC#59)
 * Fix change detection
 * Add ass_set_line_position API to set a vertical subtitle offset
 * Fix scaling of drawing baseline offset (\pbo) values
 * Fix skipping of zero-width characters for FriBiDi shaper
 * Use LTR text base direction by default, similar to VSFilter

libass (0.10.0)
 * Bidirectional layout and Arabic shaping via FriBidi (GC #13)
 * OpenType shaping via HarfBuzz-ng (GC #13)
 * Add API for shaper configuration
 * Add support for `Language' Script Info property, this can be used for
   hinting the text language
 * Vertical layout improvements
   * Use `vert' and `vkna' OpenType features for vertical glyph variants
   * Position rotated glyphs onto baseline
 * Parse font encoding property for base text direction hinting
 * Refactor cache system
 * Use generic outlines in place of FreeType glyphs
 * Direct outline bitmap rendering
 * Fix whitespace trimming (GC #35)
 * Do not render border if there's no shadow or glyph (GC #29)
 * Adjust spacing after a italic to non-italic style change (GC #37)
 * Fix fade timing
 * Fix x positioning with borders (GC #27)
 * Build system tweaks
jperkin pushed a commit that referenced this issue Jan 21, 2014
Changelog (from History.txt)

=== 1.0.6 2014-01-17

* rescue Launchy::CommandNotFoundError #56

=== 1.0.5 2014-01-16

* use HTTPS for OAuth::Consumer #55
  * thank you for contributing @ymrl

=== 1.0.4 2014-01-08

* update gem dependencies

=== 1.0.3 2014-01-08

* bugfix for rainbow 1.99.x #54
* use launchy gem to open OAuth-URL #53

=== 1.0.2 2013-11-27

* fix syntax error on ruby1.8.7

=== 1.0.1 2013-11-23

* bugfix -user:add #51

=== 1.0.0 2013-11-21

* fix for twitter gem v5.0.0 #50
jperkin pushed a commit that referenced this issue Jan 21, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.

Changes to 2.4.0 (in py-pyfits):

Changelog
===========

3.2 (2013-11-26)
----------------

Highlights
^^^^^^^^^^

- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
  It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
  as before.  PyFITS ships with its own copy of CFITSIO v3.35 which supports
  the latest version of the Tiled Image Convention (v2.3), but system
  packagers may choose instead to strip this out in favor of a
  system-installed version of CFITSIO.  Earlier versions may work, but nothing
  earlier than 3.28 has been tested yet. (#169)

- Added support for reading and writing tables using the Q format for columns.
  The Q format is identical to the P format (variable-length arrays) except
  that it uses 64-bit integers for the data descriptors, allowing more than
  4 GB of variable-length array data in a single table. (#160)

- Added initial support for table columns containing pseudo-unsigned integers.
  This is currently enabled by using the ``uint=True`` option when opening
  files; any table columns with the correct BZERO value will be interpreted
  and returned as arrays of unsigned integers.

- Some refactoring of the table and ``FITS_rec`` modules in order to better
  separate the details of the FITS binary and ASCII table data structures from
  the HDU data structures that encapsulate them.  Most of these changes should
  not be apparent to users (but see API Changes below).


API Changes
^^^^^^^^^^^

- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
  ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
  lists of column properties is no longer supported.  Assigning to those lists
  will no longer update the corresponding columns.  Instead, please just
  modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
  etc.)

- The ``pyfits.new_table`` function is marked "pending deprecation".  This
  does not mean it will be removed outright or that its functionality has
  changed.  It will likely be replaced in the future for a function with
  similar, if not subtly different functionality.  A better, if not slightly
  more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
  a new ``FITS_rec`` table--this has the same interface as
  ``pyfits.new_table``.  The difference is that it returns a plan ``FITS_rec``
  array, and not an HDU instance.  This ``FITS_rec`` object can then be used
  as the data argument in the constructors for ``BinTableHDU`` (for binary
  tables) or ``TableHDU`` (for ASCII tables).  This is analogous to creating
  an ``ImageHDU`` by passing in an image array.
  ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
  FITS-compatible recarray from a FITS column specification.

- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
  methods of the ``CompDataHDU`` class are pending deprecation and moved to
  internal methods.  The operation of these methods depended too much on
  internal state to be used safely by users; instead they are invoked
  automatically in the appropriate places when reading/writing compressed image
  HDUs.

- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
  the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.

- The constructor for ``CompDataHDU`` has been changed to accept new keyword
  arguments.  The new keyword arguments are essentially the same, but are in
  underscore_separated format rather than camelCase format.  The old arguments
  are still pending deprecation.

- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
  ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
  and ``_data_size`` respectively.  The old attribute names are still pending
  deprecation.  This should only be of interest to advanced users who have
  created their own HDU subclasses.

- The following previously deprecated functions and methods have been removed
  entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
  ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
  ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.

  If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
  the ``python -Wd`` argument, warnings for all deprecated interfaces still in
  use will be displayed.

- Interfaces that were pending deprecation are now fully deprecated.  These
  include: ``create_card``, ``create_card_from_string``, ``upper_key``,
  ``Header.get_history``, and ``Header.get_comment``.

- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
  that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.

- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
  ``pyfits.file.PYFITS_MODES`` which better reflects its purpose.  This is
  rarely used by client code, however.  Support for the old name will be
  removed by PyFITS 3.4.


Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
  keywords added in more recent versions of this FITS Tile Compression spec.
  This includes support for lossless compression with GZIP. (#198) By default
  no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
  ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
  constants to the ``quantize_method`` argument to the ``CompImageHDU``
  constuctor.  A seed can be manually specified, or automatically generated
  using either the system clock or checksum-based methods via the
  ``dither_seed`` argument.  See the documentation for ``CompImageHDU`` for
  more details. (#198) (spacetelescope/PYFITS#32)

- Images compressed with the Tile Compression standard can now be larger than
  4 GB through support of the Q format. (#159)

- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
  the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist.  This
  was added for consistency with the ``.name`` attribute which returns the
  EXTNAME value from the header.

- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
  which give the Numpy dtype for the column data in the first case, and the
  full Numpy compound dtype for each table row in the latter case.

- There was an issue where new tables created defaulted the values in all
  string columns to '0.0'.  Now string columns are filled with empty strings
  by default--this seems a less surprising default, but it may cause
  differences with tables created with older versions of PyFITS.

- Improved round-tripping and preservation of manually assigned column
  attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
  (astropy/astropy#996)


Bug Fixes
^^^^^^^^^

- Binary tables containing compressed images may, optionally, contain other
  columns unrelated to the tile compression convention. Although this is an
  uncommon use case, it is permitted by the standard. (#159)

- Reworked some of the file I/O routines to allow simpler, more consistent
  mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
  "PyFITS-specific" modes used by PyFITS like "readonly" and "update".
  That is, if reading a FITS file from an open file object, it doesn't matter
  as much what "mode" it was opened in so long as it has the right
  capabilities (read/write/etc.)  Also works around bugs in the Python io
  module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)


3.1.3 (2013-11-26)
------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (spacetelescope/PyFITS#11)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general.

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.0.12 (2013-11-26)
-------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (Backported from 3.1.3)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (Backported from 3.1.3)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general. (Backported from 3.1.3)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.1.2 (2013-04-22)
------------------

- When an error occurs opening a file in fitsdiff the exception message will
  now at least mention which file had the error. (#168)

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images
  did not correctly write the TFORMn keywords for variable-length array
  columns (they ommitted the max array length parameter of the format). (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. (#201)

- Added use of the console_scripts entry point to install the fitsdiff and
  fitscheck scripts, which if nothing else provides better Windows support.
  The generated scripts now override the ones explicitly defined in the
  scripts/ directory (which were just trivial stubs to begin with). (#202)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. (#218)

- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
  versus unicode strings in Python 2--CONTINUE cards can now be created
  properly from unicode strings (so long as they are convertable to ASCII).
  (spacetelescope/PyFITS#1)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. (spacetelescope/PyFITS#3)

- Fixed a bug in parsing HIERARCH keywords that do not have a space after
  the first equals sign (before the value). (spacetelescope/PyFITS#5)

- Prevented extra leading whitespace on HIERARCH keywords from being treated
  as part of the keyword. (spacetelescope/PyFITS#6)

- Fixed a bug where HIERARCH keywords containing lower-case letters was
  mistakenly marked as invalid during header validation.
  (spacetelescope/PyFITS#7)

- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
  ``Header.index()`` method did not work correctly with HIERARCH keywords
  containing lower-case letters.


3.0.11 (2013-04-17)
-------------------

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. Backported from 3.1.2. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. Backported from 3.1.2. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images did
  not correctly write the TFORMn keywords for variable-length array columns
  (they ommitted the max array length parameter of the format). Backported from
  3.1.2. (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. Backported from 3.1.2. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. Backported from 3.1.2. (#201)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
  (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. Backported from 3.1.2. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. Backported from 3.1.2. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. Backported
  from 3.1.2. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. Backported from 3.1.2. (#218)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. Backported from 3.1.2.
  (spacetelescope/PyFITS#3)


3.1.1 (2013-01-02)
------------------

This is a bug fix release for the 3.1.x series.

Bug Fixes
^^^^^^^^^

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verboten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will automatically use compatible tile sizes even if they're not
  explicitly specified. (#171)

- Added support for the optional ``endcard`` parameter in the
  ``Header.fromtextfile()`` and ``Header.totextfile()`` methods.  Although
  ``endcard=False`` was a reasonable default assumption, there are still text
  dumps of FITS headers that include the END card, so this should have been
  more flexible. (#176)

- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
  (#178)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. (#180)

- Fixed a crash when generating diff reports from diffs using the
  ``ignore_comments`` options. (#181)

- Fixed some bugs with WCS Paper IV record-valued keyword cards:

  - Cards that looked kind of like RVKCs but were not intended to be were
    over-permissively treated as such--commentary keywords like COMMENT and
    HISTORY were particularly affected. (#183)

  - Looking up a card in a header by its standard FITS keyword only should
    always return the raw value of that card.  That way cards containing
    values that happen to valid RVKCs but were not intended to be will still
    be treated like normal cards. (#184)

  - Looking up a RVKC in a header with only part of the field-specifier (for
    example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
    wildcard lookup. (#184)

- Fixed a crash when diffing two FITS files where at least one contains a
  compressed image HDU which was not recognized as an image instead of a
  table. (#187)

- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
  and ``CardList.count`` methods. (#190)

- Improved ``__repr__`` and text file representation of cards with long values
  that are split into CONTINUE cards. (#193)

- Fixed a crash when trying to assign a long (> 72 character) value to blank
  ('') keywords. This also changed how blank keywords are represented--there
  are still exactly 8 spaces before any commentary content can begin; this
  *may* affect the exact display of header cards that assumed there could be
  fewer spaces in a blank keyword card before the content begins. However, the
  current approach is more in line with the requirements of the FITS standard.
  (#194)


3.0.10 (2013-01-02)
-------------------

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too.  Backported from 3.1.1. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing.  Backported
  from 3.1.1. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verbotten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  Backported from 3.1.1. (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will not automatically use compatible tile sizes even if they're not
  explicitly specified.  Backported from 3.1.1. (#171)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  Backported from 3.1.0. (#174)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified.  Backported from 3.1.1. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)


3.1 (2012-08-08)
----------------

Highlights
^^^^^^^^^^

- The ``Header`` object has been significantly reworked, and ``CardList``
  objects are now deprecated (their functionality folded into the ``Header``
  class).  See API Changes below for more details.

- Memory maps are now used by default to access HDU data.  See API Changes
  below for more details.

- Now includes a new version of the ``fitsdiff`` program for comparing two
  FITS files, and a new FITS comparison API used by ``fitsdiff``.  See New
  Features below.

API Changes
^^^^^^^^^^^

- The ``Header`` class has been rewritten, and the ``CardList`` class is
  deprecated.  Most of the basic details of working with FITS headers are
  unchanged, and will not be noticed by most users.  But there are differences
  in some areas that will be of interest to advanced users, and to application
  developers.  For full details of the changes, see the "Header Interface
  Transition Guide" section in the PyFITS documentation.  See ticket #64 on
  the PyFITS Trac for futher details and background. Some highlights are
  listed below:

  * The Header class now fully implements the Python dict interface, and can
    be used interchangably with a dict, where the keys are header keywords.

  * New keywords can be added to the header using normal keyword assignment
    (previously it was necessary to use ``Header.update`` to add new
    keywords).  For example::

        >>> header['NAXIS'] = 2

    will update the existing 'FOO' keyword if it already exists, or add a new
    one if it doesn't exist, just like a dict.

  * It is possible to assign both a value and a comment at the same time using
    a tuple::

        >>> header['NAXIS'] = (2, 'Number of axes')

  * To add/update a new card and ensure it's added in a specific location, use
    ``Header.set()``::

        >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')

    This works the same as the old ``Header.update()``.  ``Header.update()``
    still works in the old way too, but is deprecated.

  * Although ``Card`` objects still exist, it generally is not necessary to
    work with them directly.  ``Header.ascardlist()``/``Header.ascard`` are
    deprecated and should not be used.  To directly access the ``Card``
    objects in a header, use ``Header.cards``.

  * To access card comments, it is still possible to either go through the
    card itself, or through ``Header.comments``.  For example::

       >>> header.cards['NAXIS'].comment
       Number of axes
       >>> header.comments['NAXIS']
       Number of axes

  * ``Card`` objects can now be used interchangeably with
    ``(keyword, value, comment)`` 3-tuples.  They still have ``.value`` and
    ``.comment`` attributes as well.  The ``.key`` attribute has been renamed
    to ``.keyword`` for consistency, though ``.key`` is still supported (but
    deprecated).

- Memory mapping is now used by default to access HDU data.  That is,
  ``pyfits.open()`` uses ``memmap=True`` as the default.  This provides better
  performance in the majority of use cases--there are only some I/O intensive
  applications where it might not be desirable.  Enabling mmap by default also
  enabled finding and fixing a large number of bugs in PyFITS' handling of
  memory-mapped data (most of these bug fixes were backported to PyFITS
  3.0.5). (#85)

  * A new ``pyfits.USE_MEMMAP`` global variable was added.  Set
    ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
    opening files.  This is especially useful for controlling the behavior in
    applications where pyfits is deeply embedded.

  * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
    Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
    behavior.

- The ``size()`` method on HDU objects is now a ``.size`` property--this
  returns the size in bytes of the data portion of the HDU, and in most cases
  is equivalent to ``hdu.data.nbytes`` (#83)

- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
  ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead.  The new methods
  output the table data in a slightly different format from previous versions,
  which places quotes around each value.  This format is compatible with data
  dumps from previous versions of PyFITS, but not vice-versa due to a parsing
  bug in older versions.

- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
  versions of these methods have been renamed ``pyfits.tabledump`` and
  ``pyfits.tableload``.  The old deprecated, but currently retained for
  backwards compatibility. (r1125)

- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
  This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
  which is not deprecated and may be removed in a future version.  To enable
  case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
  set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``.  The default is
  ``False``. (r1139)

- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
  added.  By default, if a string value in a header contains trailing
  whitespace, that whitespace is automatically removed when the value is read.
  Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
  preserved. (#146)

- The old ``classExtensions`` extension mechanism (which was deprecated in
  PyFITS 3.0) is removed outright.  To our knowledge it was no longer used
  anywhere. (r1309)

- Warning messages from PyFITS issued through the Python warnings API are now
  output to stderr instead of stdout, as is the default.  PyFITS no longer
  modifies the default behavior of the warnings module with respect to which
  stream it outputs to. (r1319)

- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
  'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
  and removed when the file is saved.

New Features
^^^^^^^^^^^^

- Added support for the proposed "FITS" extension HDU type.  See
  http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html.  FITS
  HDUs contain an entire FITS file embedded in their data section.  `FitsHDU`
  objects work like other HDU types in PyFITS.  Their ``.data`` attribute
  returns the raw data array.  However, they have a special ``.hdulist``
  attribute which processes the data as a FITS file and returns it as an
  in-memory HDUList object.  FitsHDU objects also support a
  ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
  that embeds the supplied HDUList. (#80)

- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
  data is an 'image' as opposed to a table or something else.  Here the
  meaning of 'image' is fairly loose, and mostly just means a Primary or Image
  extension HDU, or possibly a compressed image HDU (#71)

- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
  already in memory and instantiate and ``HDUList`` object from it.  This
  could be useful for integrating PyFITS with other libraries that work on
  FITS file, such as CFITSIO.  It may also be useful in streaming
  applications.  The name is a slight misnomer, in that it actually accepts
  any Python object that implements the buffer interface, which includes
  ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)

- Added a new ``pyfits.diff`` module which contains facilities for comparing
  FITS files.  One can use the ``pyfits.diff.FITSDiff`` class to compare two
  FITS files in their entirety.  There is also a ``pyfits.diff.HeaderDiff``
  class for just comparing two FITS headers, and other similar interfaces.
  See the PyFITS Documentation for more details on this interface.  The
  ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
  PyFITS.  After installing PyFITS, run ``fitsdiff --help`` for usage details.

- ``pyfits.open()`` now accepts a ``scale_back`` argument.  If set to
  ``True``, this automatically scales the data using the original BZERO and
  BSCALE parameters the file had when it was first opened, if any, as well as
  the original BITPIX.  For example, if the original BITPIX were 16, this
  would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
  calling ``flush()`` or ``close()`` on the file.  This option applies to all
  HDUs in the file. (#120)

- ``pyfits.open()`` now accepts a ``save_backup`` argument.  If set to
  ``True``, this automatically saves a backup of the original file before
  flushing any changes to it (this of course only applies to update and append
  mode).  This may be especially useful when working with scaled image data.
  (#121)

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Warnings from PyFITS are not output to stderr by default, instead of stdout
  as it has been for some time.  This is contrary to most users' expectations
  and makes it more difficult for them to separate output from PyFITS from the
  desired output for their scripts. (r1319)

Bug Fixes
^^^^^^^^^

- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
  when encountering blank lines in a column definition file (#14)

- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
  when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
  PyFITS). (r1330)

- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
  object from a string/buffer containing the header and data of that HDU.
  This allowed for the implementation of ``HDUList.fromstring`` described
  above. (#90)

- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
  malformatted float values in headers were not properly returned as floats.
  (#137)

- Fixed a corollary to the previous bug where float values with a leading zero
  before the decimal point had the leading zero unnecessarily removed when
  saving changes to the file (eg. "0.001" would be written back as ".001" even
  if no changes were otherwise made to the file). (#137)

- When opening a file containing CHECKSUM and/or DATASUM keywords in update
  mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
  opened with checksum=False.  This change in behavior prevents checksums from
  being unintentionally removed. (#148)

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  This fix will be backported to the 3.0.x series in
  version 3.0.10.  (#174)


3.0.9 (2012-08-06)
------------------

This is a bug fix release for the 3.0.x series.

Bug Fixes
^^^^^^^^^

- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
  ``Header.iteritems()`` to correctly return the different values for
  duplicate keywords (particularly commentary keywords like HISTORY and
  COMMENT).  This makes the old Header implementation slightly more compatible
  with the new implementation in PyFITS 3.1. (#127)

  .. note::
      This fix did not change the existing behavior from earlier PyFITS
      versions where ``Header.keys()`` returns all keywords in the header with
      duplicates removed.  PyFITS 3.1 changes that behavior, so that
      ``Header.keys()`` includes duplicates.

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug where opening a file containing compressed image HDUs in
  'update' mode and then immediately closing it without making any changes
  caused the file to be rewritten unncessarily. (#167)

- Fixed two memory leaks that could occur when writing compressed image data,
  or in some cases when opening files containing compressed image HDUs in
  'update' mode. (#168)


3.0.8 (2012-06-04)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Prior to this release, image data sections did not work with scaled
  data--that is, images with non-trivial BSCALE and/or BZERO values.
  Previously, in order to read such images in sections, it was necessary to
  manually apply the BSCALE+BZERO to each section.  It's worth noting that
  sections *did* support pseudo-unsigned ints (flakily).  This change just
  extends that support for general BSCALE+BZERO values.

Bug Fixes
^^^^^^^^^

- Fixed a bug that prevented updates to values in boolean table columns from
  being saved.  This turned out to be a symptom of a deeper problem that could
  prevent other table updates from being saved as well. (#139)

- Fixed a corner case in which a keyword comment ending with the string "END"
  could, in some circumstances, cause headers (and the rest of the file after
  that point) to be misread. (#142)

- Fixed support for scaled image data and psuedo-unsigned ints in image data
  sections (``hdu.section``).  Previously this was not supported at all.  At
  some point support was supposedly added, but it was buggy and incomplete.
  Now the feature seems to work much better. (#143)

- Fixed the documentation to point out that image data sections *do* support
  non-contiguous slices (and have for a long time).  The documentation was
  never updated to reflect this, and misinformed users that only contiguous
  slices were supported, leading to some confusion. (#144)

- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
  HDUs caused an infinite recursion when validating the object prior to
  writing to a file. (#145)

- Fixed a rare but serious case where saving an update to a file that
  previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
  in saving, could cause the file to be slightly corrupted and unreadable.
  (#147)

- Fixed problems with reading "non-standard" FITS files with primary headers
  containing SIMPLE = F.  PyFITS has never made many guarantees as to how such
  files are handled.  But it should at least be possible to read their
  headers, and the data if possible.  Saving changes to such a file should not
  try to prepend an unwanted valid PRIMARY HDU. (#157)

- Fixed a bug where opening an image with ``disable_image_compression = True``
  caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
  (r1651)


3.0.7 (2012-04-10)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Slices of GroupData objects now return new GroupData objects instead of
  extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
  FITS_rec slicing, and should have been fixed for GroupData at the same time.
  The old behavior caused bugs where functions internal to Numpy expected that
  slicing an ndarray would return a new ndarray.  As this is a rare usecase
  with a rare feature most users are unlikely to be affected by this change.

- The previously internal _Group object for representing individual group
  records in a GroupData object are renamed Group and are now a public
  interface.  However, there's almost no good reason to create Group objects
  directly, so it shouldn't be considered a "new feature".

- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
  keyword was always being set to F if there are not actually any extension
  HDUs.  It was unnecessary to modify this value.

Bug Fixes
^^^^^^^^^

- Fixed GroupData objects to return new GroupData objects when sliced instead
  of _Group record objects.  See "Changes in behavior" above for more details.

- Fixed slicing of Group objects--previously it was not possible to slice
  slice them at all.

- Made it possible to assign `np.bool_` objects as header values. (#123)

- Fixed overly strict handling of the EXTEND keyword; see "Changes in
  behavior" above. (#124)

- Fixed many cases where an HDU's header would be marked as "modified" by
  PyFITS and rewritten, even when no changes to the header are necessary.
  (#125)

- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
  were forced to be all lower-case when saving the file. (#130)

- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
  causing some slowdown when opening files containing a large number of
  extensions, plus a few other small (but not insignficant) performance
  improvements thanks to Julian Taylor. (#133)

- Fixed a regression where header blocks containing invalid end-of-header
  padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
  Such headers can be parsed again, but a warning is raised, as such headers
  are not valid FITS. (#136)

- Fixed a memory leak where table data in random groups HDUs weren't being
  garbage collected. (#138)


3.0.6 (2012-02-29)
------------------

Highlights
^^^^^^^^^^

The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data.  Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application.  So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.

This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.

Bug Fixes
^^^^^^^^^

- More accurate error messages when opening files containing invalid header
  cards. (#109)

- Fixed a possible reference cycle/memory leak that was caught through more
  extensive testing on Windows. (#112)

- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
  mode. (#112)

- Fixed a Windows-only issue where trying to save updates to a resized FITS
  file could result in a crash due to there being open mmaps on that file.
  (#112)

- Fixed a crash when trying to create a FITS table (i.e. with new_table())
  from a Numpy array containing bool fields. (#113)

- Fixed a bug where manually initializing an ``HDUList`` with a list of of
  HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
  (#114)

- Fixed a crash that could occur when trying to deepcopy a Header in Python <
  2.7. (#115)

- Fixed an issue where merely opening a scaled image in 'update' mode would
  cause the data to be converted to floats when the file is closed. (#119)


3.0.5 (2012-01-30)
------------------

- Fixed a crash that could occur when accessing image sections of files
  opened with memmap=True. (r1211)

- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
  when memmap=True vs. when memmap=False.  In the latter case, although
  changes to array data were not saved to disk, it was possible to update the
  array data in memory.  On the other hand with memmap=True, 'readonly' mode
  prevented even in-memory modification to the data.  This is what
  'copyonwrite' mode was for, but difference in behavior was confusing.  Now
  'readonly' is equivalent to 'copyonwrite' when using memmap.  If the old
  behavior of denying changes to the array data is necessary, a new
  'denywrite' mode may be used, though it is only applicable to files opened
  with memmap. (r1275)

- Fixed an issue where files opened with memmap=True would return image data
  as a raw numpy.memmap object, which can cause some unexpected
  behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)

- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
  interacted badly with some other software, namely to vo.table package (and
  possibly others). (r1320, r1337, and #110)

- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
  interrupts) while flushing changes to a FITS file.  PyFITS already prevented
  SIGINTs from causing an incomplete flush, but did not clean up the signal
  handlers properly afterwards, or reraise the keyboard interrupt once the
  flush was complete. (r1321)

- Fixed a crash that could occur in Python 3 when opening files with checksum
  checking enabled. (r1336)

- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
  when using Numpy below version 1.5.

- Fixed a crash that could occur when creating a new `CompImageHDU` from an
  array of big-endian data. (#104)

- Fixed a crash when opening a file with extra zero padding at the end.
  Though FITS files should not have such padding, it's not explictly forbidden
  by the format either, and PyFITS shouldn't stumble over it. (#106)

- Fixed a major slowdown in opening tables containing large columns of string
  values.  (#111)


3.0.4 (2011-11-22)
------------------

- Fixed a crash when writing HCOMPRESS compressed images that could happen on
  Python 2.5 and 2.6. (r1217)

- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
  memmap=True. (r1230)

- Writing changes to a file or writing to a new file verifies the output in
  'fix' mode by default instead of 'exception'--that is, PyFITS will
  automatically fix common FITS format errors rather than raising an
  exception. (r1243)

- Fixed a bug where convenience functions such as getval() and getheader()
  crashed when specifying just 'PRIMARY' as the extension to use (r1263).

- Fixed a bug that prevented passing keyword arguments (beyond the standard
  data and header arguments) as positional arguments to the constructors of
  extension HDU classes.

- Fixed some tests that were failing on Windows--in this case the tests
  themselves failed to close some temp files and Windows refused to delete them
  while there were still open handles on them. (r1295)

- Fixed an issue with floating point formatting in header values on Python 2.5
  for Windows (and possibly other platforms).  The exponent was zero-padded to
  3 digits; although the FITS standard makes no specification on this, the
  formatting is now normalized to always pad the exponent to two digits.
  (r1295)

- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
  broken into multiple CONTINUE cards.  However, commentary cards are not
  expected to be found in CONTINUE cards.  Instead these long cards are broken
  into multiple commentary cards. (#97)

- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
  their filename extension. (#99)

- Fixed a serious bug where opening scaled images in 'update' mode and then
  closing the file without touching the data would cause the file to be
  corrupted. (#101)


3.0.3 (2011-10-05)
------------------

- Fixed several small bugs involving corner cases in record-valued keyword
  cards (#70)

- In some cases HDU creation failed if the first keyword value in the header
  was not a string value (#89)

- Fixed a crash when trying to compute the HDU checksum when the data array
  contains an odd number of bytes (#91)

- Disabled an unnecessary warning that was displayed on opening compressed
  HDUs with disable_image_compression = True (#92)

- Fixed a typo in code for handling HCOMPRESS compressed images.


3.0.2 (2011-09-23)
------------------

- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
  function don't get tripped up by blank lines anymore (#14)

- The presence, value, and position of the EXTEND keyword in Primary HDUs is
  verified when reading/writing a FITS file (#32)

- Improved documentation (in warning messages as well as in the handbook) that
  PyFITS uses zero-based indexing (as one would expect for C/Python code, but
  contrary to the PyFITS standard which was written with FORTRAN in mind)
  (#68)

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69) [Note: This and the bug above it
  were originally reported as being fixed in version 3.0.1, but the fix was
  never included in the release.]

- Improved file handling, particularly in Python 3 which had a few small file
  I/O-related bugs (#76)

- Fixed a bug where updating a FITS file would sometimes cause it to lose its
  original file permissions (#79)

- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
  the axis order backards (they were treated as though they were row-major)
  (#82)

- Fixed a crash when a FITS file containing scaled data is opened and
  immediately written to a new file without explicitly viewing the data first
  (#84)

- Fixed a bug where creating a table with columns named either 'names' or
  'formats' resulted in an infinite recursion (#86)


3.0.1 (2011-09-12)
------------------

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
  ``FITS_rec`` object with zero rows is returned rather than ``None``.

- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
  keyword+field-specifier value, instead of just the plain keyword (#46)

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69)

- Fixed a bug where writing a table with zero rows could fail in some cases
  (#72)

- Miscellanous small bug fixes that were causing some tests to fail,
  particularly on Python 3 (#74, #75)

- Fixed a bug where creating a table column from an array in non-native byte
  order would not preserve the byte order, thus interpreting the column array
  using the wrong byte order (#77)


3.0.0 (2011-08-23)
--------------------

- Contains major changes, bumping the version to 3.0

- Large amounts of refactoring and reorganization of the code; tried to
  preserve public API backwards-compatibility with older versions (private API
  has many changes and is not guaranteed to be backwards-compatible).  There
  are a few small public API changes to be aware of:

  * The pyfits.rec module has been removed completely.  If your version of
    numpy does not have the numpy.core.records module it is too old to be used
    with PyFITS.

  * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
    attribute instead.

  * ``Card`` instances have a new ``.cardimage`` attribute that should be used
    rather than ``.ascardimage()``, which may become deprecated.

  * The ``Card.fromstring()`` method is now a classmethod.  It returns a new
    ``Card`` instance rather than modifying an existing instance.

  * The ``req_cards()`` method on HDU instances has changed:  The ``pos``
    argument is not longer a string.  It is either an integer value (meaning
    the card's position must match that value) or it can be a function that
    takes the card's position as it's argument, and returns True if the
    position is valid.  Likewise, the ``test`` argument no longer takes a
    string, but instead a function that validates the card's value and returns
    True or False.

  * The ``get_coldefs()`` method of table HDUs is deprecated.  Use the
    ``.columns`` attribute instead.

  * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
    instead (though in general you shouldn't mess with it directly--it might
    become internal at some point).

  * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
    ``startColumn`` and ``endColumn`` (these are rarely created manually, so
    it's unlikely that this change will affect anyone).

  * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
    ``BinTableHDU`` instance.

  * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
    classes.  They are now public interfaces, wheres previously they were
    private and prefixed with underscores.

  * Possibly others--please report if you find any changes that cause
    difficulties.

- Calls to deprecated functions will display a Deprecation warning.  However,
  in Python 2.7 and up Deprecation warnings are ignored by default, so run
  Python with the `-Wd` option to see if you're using any deprecated
  functions.  If we get close to actually removing any functions, we might
  make the Deprecation warnings display by default.

- Added basic Python 3 support

- Added support for multi-dimensional columns in tables as specified by the
  TDIMn keywords (#47)

- Fixed a major memory leak that occurred when creating new tables with the
  ``new_table()`` function (#49)
  be padded with zero-bytes) vs ASCII tables (where strings are padded with
  spaces) (#15)

- Fixed a bug in which the case of Random Access Group parameters names was not
  preserved when writing (#41)

- Added support for binary table fields with zero width (#42)

- Added support for wider integer types in ASCII tables; although this is non-
  standard, some GEIS images require it (#45)

- Fixed a bug that caused the index_of() method of HDULists to crash when the
  HDUList object is created from scratch (#48)

- Fixed the behavior of string padding in binary tables (where strings should
  be padded with nulls instead of spaces)

- Fixed a rare issue that caused excessive memory usage when computing
  checksums using a non-standard block size (see r818)

- Add support for forced uint data in image sections (#53)

- Fixed an issue where variable-length array columns were not extended when
  creating a new table with more rows than the original (#54)

- Fixed tuple and list-based indexing of FITS_rec objects (#55)

- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
  the wrong location (#56)

- ``FITS_record`` objects (table rows) have full slicing support, including
  stepping, etc. (#59)

- Fixed a bug where updating multiple files simultaneously (such as when
  running parallel processes) could lead to a race condition with mktemp()
  (#61)

- Fixed a bug where compressed image headers were not in the order expected by
  the funpack utility (#62)
jperkin pushed a commit that referenced this issue Jan 29, 2014
Changes from 2.2.1 to 2.2.2
===========================

* The `copy_args` argument of `NumExpr` function has been brought
  back.  This has been mainly necessary for compatibility with
  PyTables < 3.0, which I decided to continue to support.  Fixed #115.

* The `__nonzero__` method in `ExpressionNode` class has been
  commented out.  This is also for compatibility with PyTables < 3.0.
  See #24 for details.

* Fixed the type of some parameters in the C extension so that s390
  architecture compiles.  Fixes #116.  Thank to Antonio Valentino for
  reporting and the patch.


Changes from 2.2 to 2.2.1
=========================

* Fixes a secondary effect of "from numpy.testing import `*`", where
  division is imported now too, so only then necessary functions from
  there are imported now.  Thanks to Christoph Gohlke for the patch.

Changes from 2.1 to 2.2
=======================

* [LICENSE] Fixed a problem with the license of the
  numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
  platforms.  After persmission from the original authors is granted,
  these files adopt the MIT license and can be redistributed without
  problems.  See issue #109 for details
  (https://code.google.com/p/numexpr/issues/detail?id=110).

* [ENH] Improved the algorithm to decide the initial number of threads
  to be used.  This was necessary because by default, numexpr was
  using a number of threads equal to the detected number of cores, and
  this can be just too much for moder systems where this number can be
  too high (and counterporductive for performance in many cases).
  Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
  in case this is not present, a maximum number of *8* threads are
  setup initially.  The new algorithm is fully described in the Users
  Guide now in the note of 'General routines' section:
  https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
  Closes #110.

* [ENH] numexpr.test() returns `TestResult` instead of None now.
  Closes #111.

* [FIX] Modulus with zero with integers no longer crashes the
  interpreter.  It nows puts a zero in the result.  Fixes #107.

* [API CLEAN] Removed `copy_args` argument of `evaluate`.  This should
  only be used by old versions of PyTables (< 3.0).

* [DOC] Documented the `optimization` and `truediv` flags of
  `evaluate` in Users Guide
  (https://code.google.com/p/numexpr/wiki/UsersGuide).

Changes from 2.0.1 to 2.1
===========================

* Dropped compatibility with Python < 2.6.

* Improve compatibiity with Python 3:

  - switch from PyString to PyBytes API (requires Python >= 2.6).
  - fixed incompatibilities regarding the int/long API
  - use the Py_TYPE macro
  - use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT

* Fixed several issues with different platforms not supporting
  multithreading or subprocess properly (see tickets #75 and #77).

* Now, when trying to use pure Python boolean operators, 'and',
  'or' and 'not', an error is issued suggesting that '&', '|' and
  '~' should be used instead (fixes #24).

Changes from 2.0 to 2.0.1
=========================

* Added compatibility with Python 2.5 (2.4 is definitely not supported
  anymore).

* `numexpr.evaluate` is fully documented now, in particular the new
  `out`, `order` and `casting` parameters.

* Reduction operations are fully documented now.

* Negative axis in reductions are not supported (they have never been
  actually), and a `ValueError` will be raised if they are used.


Changes from 1.x series to 2.0
==============================

- Added support for the new iterator object in NumPy 1.6 and later.

  This allows for better performance with operations that implies
  broadcast operations, fortran-ordered or non-native byte orderings.
  Performance for other scenarios is preserved (except for very small
  arrays).

- Division in numexpr is consistent now with Python/NumPy.  Fixes #22
  and #58.

- Constants like "2." or "2.0" must be evaluated as float, not
  integer.  Fixes #59.

- `evaluate()` function has received a new parameter `out` for storing
  the result in already allocated arrays.  This is very useful when
  dealing with large arrays, and a allocating new space for keeping
  the result is not acceptable.  Closes #56.

- Maximum number of threads raised from 256 to 4096.  Machines with a
  higher number of cores will still be able to import numexpr, but
  limited to 4096 (which is an absurdly high number already).
jperkin pushed a commit that referenced this issue Feb 27, 2014
Forward ported the existing patches that were not upstream yet.
Also added patches for cfmakeraw and log10(int) amgiguity to fix build on SunOS.
From the changelog since 0.17.1

15-07-2013 Darkice 1.2 released
    o Issue #75: Added Ogg/Opus support. Patch by Doug Kelly
	dougk.ff7@gmail.com
    o Fix 'Ring Ruffer' reports.
      - Increased buffer for jack to 5 seconds
      - prevent darkice termination by jack, report no fatal problem when we
        have a ringbuffer overflow, can happen during startup
        If we can not handle input audio fast enough we just ignore the buffer
        and skip it, and just report it.
      - new multithreaded connector code, now handles encoders in parallel
        and does not spin waiting, cpu load will be very much lower now
        Codes uses 2 condition variables to report data availability and
        consumer thread availability
      - Hopes are that glitching reports will be a thing of the past
      - minor compiler warnings fixed
        (Fix by Edwin van den Oetelaar)
    o Issue #56: Wrong icecast2 password isn't properly reported, fixed.
	  thanks to Filipe Roque <flip.roque@gmail.com>
    o Issue #57: BufferedSink makes streams invalid, fixed.
	  thanks to Alban Peignier <alban.peignier@gmail.com>
    o Issue #30: Segmentation Fault when creating file with fileAddDate, fixed
	  thanks to Filipe Roque <flip.roque@gmail.com>

27-10-2011 Darkice 1.1 released
    o Updated aac+ encoding to use libaacplus-2.0.0 api.
	  thanks to Sergiy <piratfm@gmail.com>
    o Added pulseaudio support
	  closes ticket #25
	  thanks to Filipe Roque <flip.roque@gmail.com> and
	  and Johann Fot <johann.fot@dunkelfuerst.com>
    o Added rtprio parameter and revisited realtime priority
	  closes ticket #21
          thanks to Adrian Knoth <adi@drcomp.erfurt.thur.de>
    o Fixed a call to a deprecated jack call
	  closes ticket #22
	  thanks to Adrian Knoth again.

09-05-2010 Darkice 1.0 released
    o fixed a bug in BufferedSink.cpp that leads to some buffers
	  being written twice, causing corruption of datastream,
	  closes ticked #20
	  thanks to Edwin van den Oetelaar <oetelaar.automatisering@gmail.com>
    o implemented samplerate conversion for all codecs using libsamplerate,
	  and keeping internal aflibConverter as fallback,
          thanks to Sergiy <piratfm@gmail.com>
    o bugfix: fix for alsa driver - closes ticked #8
          thanks to Clemens Ladisch <clemens@ladisch.de>

14-11-2009 Darkice 0.20.1 released
    o added rc.darkice init script
	  thanks to Niels Dettenbach <nd@syndicat.com>
    o bugfix: fix for gcc 4.4

05-11-2009 Darkice 0.20 released

    o new maintainer: Rafael Diniz <rafael@riseup.net>
    o added AAC HEv2 encoding support (branch darkice-aacp merged) through
	  libaacplus, http://tipok.org.ua/ru/node/17
	  thanks to tipok <piratfm@gmail.com> and others for the contribution.
    o bugfix: the configure script recognizes Ogg Vorbis shared objects
	  now, not just static libraries. Thanks to omroepvenray.
    o bugfix: enabling jack source compilation on Debian Lenny,
	  thanks to Alessandro Beretta <alessandro.baretta@radiomaria.org>

07-07-2008 Darkice 0.19 released

    o added mount point option for Darwin Streaming Server
      thanks to Pierre Souchay <pierre@souchay.net>
    o fix for some reliablity issues when using a Jack source
      thanks to Pierre Souchay <pierre@souchay.net>
    o enable easier finding of jack libraries on MacOS X,
      thanks to Daniel Hazelbaker <daniel@highdesertchurch.com>
    o added ability to specify name of jack device created by darkice,
      thanks to Alessandro Beretta <alessandro.baretta@radiomaria.org>

26-04-2007 DarkIce 0.18.1 released

    o enable real-time scheduling for non-super-users, if they have
      the proper operating system permissions,
      thanks to Jens Maurer <Jens.Maurer@gmx.net>
    o fix to enable compliation of the Serial ULAW code on MacOS X,
      thanks to Elod Horvath <elod@itfais.com>
    o fix to solve Shoutcast login failures, introduced in 0.18

05-03-2007 DarkIce 0.18 released

    o added serial ulaw input device support, thanks to
      Clyde Stubbs <clyde@htsoft.com>
    o improvements on reconnecting:
      added TCP connection keep-alive to TCP sockets
      added graceful sleep when trying to reconnect
    o added user-defined date formatting for the fileAddDate options,
      thanks to dsk <derrick@csociety.org>
    o added logging facility - [file-X] targets will cut the saved file
      and rename it as needed when darkice recieves the SIGUSR1 signal
    o added default configuration file handling - if no configuration file
      is specified, /etc/darkice.cfg is used
    o fix to enable compiling on 64 bit platforms
      thanks to Alexander Vlasov <zulu@galaradio.com> and
      Mariusz Mazur <mmazur@kernel.pl>
    o fix to enable file dump feature using ogg vorbis.
      thanks to dsk <derrick@csociety.org>
    o fix to enable compiling with jack installed at arbitrary locations
jperkin pushed a commit that referenced this issue Mar 14, 2014
== 1.8.1 / 2013-01-02

Bug Fixes
- Diagnostic context thread inheritance [issue #56]
- Fixing trace reporting in JRuby 1.7
jperkin pushed a commit that referenced this issue Mar 14, 2014
libass (0.10.1)
 * Fix letter spacing
 * Add \rSTYLENAME syntax support (GC #43)
 * Fix border generation and border style reset (GC #56)
 * Fix various issues with bug-for-bug compatibility of
   transformations (\fax, \fay, etc.) to VSFilter (GC #46, GC #42)
 * Fix drawing parsing (GC #47)
 * Various fixes to shaper (GC #54, GC #55, GC#59)
 * Fix change detection
 * Add ass_set_line_position API to set a vertical subtitle offset
 * Fix scaling of drawing baseline offset (\pbo) values
 * Fix skipping of zero-width characters for FriBiDi shaper
 * Use LTR text base direction by default, similar to VSFilter

libass (0.10.0)
 * Bidirectional layout and Arabic shaping via FriBidi (GC #13)
 * OpenType shaping via HarfBuzz-ng (GC #13)
 * Add API for shaper configuration
 * Add support for `Language' Script Info property, this can be used for
   hinting the text language
 * Vertical layout improvements
   * Use `vert' and `vkna' OpenType features for vertical glyph variants
   * Position rotated glyphs onto baseline
 * Parse font encoding property for base text direction hinting
 * Refactor cache system
 * Use generic outlines in place of FreeType glyphs
 * Direct outline bitmap rendering
 * Fix whitespace trimming (GC #35)
 * Do not render border if there's no shadow or glyph (GC #29)
 * Adjust spacing after a italic to non-italic style change (GC #37)
 * Fix fade timing
 * Fix x positioning with borders (GC #27)
 * Build system tweaks
jperkin pushed a commit that referenced this issue Mar 14, 2014
Changelog (from History.txt)

=== 1.0.6 2014-01-17

* rescue Launchy::CommandNotFoundError #56

=== 1.0.5 2014-01-16

* use HTTPS for OAuth::Consumer #55
  * thank you for contributing @ymrl

=== 1.0.4 2014-01-08

* update gem dependencies

=== 1.0.3 2014-01-08

* bugfix for rainbow 1.99.x #54
* use launchy gem to open OAuth-URL #53

=== 1.0.2 2013-11-27

* fix syntax error on ruby1.8.7

=== 1.0.1 2013-11-23

* bugfix -user:add #51

=== 1.0.0 2013-11-21

* fix for twitter gem v5.0.0 #50
jperkin pushed a commit that referenced this issue Mar 14, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.

Changes to 2.4.0 (in py-pyfits):

Changelog
===========

3.2 (2013-11-26)
----------------

Highlights
^^^^^^^^^^

- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
  It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
  as before.  PyFITS ships with its own copy of CFITSIO v3.35 which supports
  the latest version of the Tiled Image Convention (v2.3), but system
  packagers may choose instead to strip this out in favor of a
  system-installed version of CFITSIO.  Earlier versions may work, but nothing
  earlier than 3.28 has been tested yet. (#169)

- Added support for reading and writing tables using the Q format for columns.
  The Q format is identical to the P format (variable-length arrays) except
  that it uses 64-bit integers for the data descriptors, allowing more than
  4 GB of variable-length array data in a single table. (#160)

- Added initial support for table columns containing pseudo-unsigned integers.
  This is currently enabled by using the ``uint=True`` option when opening
  files; any table columns with the correct BZERO value will be interpreted
  and returned as arrays of unsigned integers.

- Some refactoring of the table and ``FITS_rec`` modules in order to better
  separate the details of the FITS binary and ASCII table data structures from
  the HDU data structures that encapsulate them.  Most of these changes should
  not be apparent to users (but see API Changes below).


API Changes
^^^^^^^^^^^

- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
  ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
  lists of column properties is no longer supported.  Assigning to those lists
  will no longer update the corresponding columns.  Instead, please just
  modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
  etc.)

- The ``pyfits.new_table`` function is marked "pending deprecation".  This
  does not mean it will be removed outright or that its functionality has
  changed.  It will likely be replaced in the future for a function with
  similar, if not subtly different functionality.  A better, if not slightly
  more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
  a new ``FITS_rec`` table--this has the same interface as
  ``pyfits.new_table``.  The difference is that it returns a plan ``FITS_rec``
  array, and not an HDU instance.  This ``FITS_rec`` object can then be used
  as the data argument in the constructors for ``BinTableHDU`` (for binary
  tables) or ``TableHDU`` (for ASCII tables).  This is analogous to creating
  an ``ImageHDU`` by passing in an image array.
  ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
  FITS-compatible recarray from a FITS column specification.

- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
  methods of the ``CompDataHDU`` class are pending deprecation and moved to
  internal methods.  The operation of these methods depended too much on
  internal state to be used safely by users; instead they are invoked
  automatically in the appropriate places when reading/writing compressed image
  HDUs.

- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
  the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.

- The constructor for ``CompDataHDU`` has been changed to accept new keyword
  arguments.  The new keyword arguments are essentially the same, but are in
  underscore_separated format rather than camelCase format.  The old arguments
  are still pending deprecation.

- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
  ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
  and ``_data_size`` respectively.  The old attribute names are still pending
  deprecation.  This should only be of interest to advanced users who have
  created their own HDU subclasses.

- The following previously deprecated functions and methods have been removed
  entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
  ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
  ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.

  If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
  the ``python -Wd`` argument, warnings for all deprecated interfaces still in
  use will be displayed.

- Interfaces that were pending deprecation are now fully deprecated.  These
  include: ``create_card``, ``create_card_from_string``, ``upper_key``,
  ``Header.get_history``, and ``Header.get_comment``.

- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
  that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.

- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
  ``pyfits.file.PYFITS_MODES`` which better reflects its purpose.  This is
  rarely used by client code, however.  Support for the old name will be
  removed by PyFITS 3.4.


Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
  keywords added in more recent versions of this FITS Tile Compression spec.
  This includes support for lossless compression with GZIP. (#198) By default
  no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
  ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
  constants to the ``quantize_method`` argument to the ``CompImageHDU``
  constuctor.  A seed can be manually specified, or automatically generated
  using either the system clock or checksum-based methods via the
  ``dither_seed`` argument.  See the documentation for ``CompImageHDU`` for
  more details. (#198) (spacetelescope/PYFITS#32)

- Images compressed with the Tile Compression standard can now be larger than
  4 GB through support of the Q format. (#159)

- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
  the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist.  This
  was added for consistency with the ``.name`` attribute which returns the
  EXTNAME value from the header.

- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
  which give the Numpy dtype for the column data in the first case, and the
  full Numpy compound dtype for each table row in the latter case.

- There was an issue where new tables created defaulted the values in all
  string columns to '0.0'.  Now string columns are filled with empty strings
  by default--this seems a less surprising default, but it may cause
  differences with tables created with older versions of PyFITS.

- Improved round-tripping and preservation of manually assigned column
  attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
  (astropy/astropy#996)


Bug Fixes
^^^^^^^^^

- Binary tables containing compressed images may, optionally, contain other
  columns unrelated to the tile compression convention. Although this is an
  uncommon use case, it is permitted by the standard. (#159)

- Reworked some of the file I/O routines to allow simpler, more consistent
  mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
  "PyFITS-specific" modes used by PyFITS like "readonly" and "update".
  That is, if reading a FITS file from an open file object, it doesn't matter
  as much what "mode" it was opened in so long as it has the right
  capabilities (read/write/etc.)  Also works around bugs in the Python io
  module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)


3.1.3 (2013-11-26)
------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (spacetelescope/PyFITS#11)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general.

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.0.12 (2013-11-26)
-------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (Backported from 3.1.3)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (Backported from 3.1.3)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general. (Backported from 3.1.3)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.1.2 (2013-04-22)
------------------

- When an error occurs opening a file in fitsdiff the exception message will
  now at least mention which file had the error. (#168)

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images
  did not correctly write the TFORMn keywords for variable-length array
  columns (they ommitted the max array length parameter of the format). (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. (#201)

- Added use of the console_scripts entry point to install the fitsdiff and
  fitscheck scripts, which if nothing else provides better Windows support.
  The generated scripts now override the ones explicitly defined in the
  scripts/ directory (which were just trivial stubs to begin with). (#202)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. (#218)

- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
  versus unicode strings in Python 2--CONTINUE cards can now be created
  properly from unicode strings (so long as they are convertable to ASCII).
  (spacetelescope/PyFITS#1)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. (spacetelescope/PyFITS#3)

- Fixed a bug in parsing HIERARCH keywords that do not have a space after
  the first equals sign (before the value). (spacetelescope/PyFITS#5)

- Prevented extra leading whitespace on HIERARCH keywords from being treated
  as part of the keyword. (spacetelescope/PyFITS#6)

- Fixed a bug where HIERARCH keywords containing lower-case letters was
  mistakenly marked as invalid during header validation.
  (spacetelescope/PyFITS#7)

- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
  ``Header.index()`` method did not work correctly with HIERARCH keywords
  containing lower-case letters.


3.0.11 (2013-04-17)
-------------------

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. Backported from 3.1.2. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. Backported from 3.1.2. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images did
  not correctly write the TFORMn keywords for variable-length array columns
  (they ommitted the max array length parameter of the format). Backported from
  3.1.2. (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. Backported from 3.1.2. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. Backported from 3.1.2. (#201)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
  (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. Backported from 3.1.2. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. Backported from 3.1.2. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. Backported
  from 3.1.2. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. Backported from 3.1.2. (#218)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. Backported from 3.1.2.
  (spacetelescope/PyFITS#3)


3.1.1 (2013-01-02)
------------------

This is a bug fix release for the 3.1.x series.

Bug Fixes
^^^^^^^^^

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verboten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will automatically use compatible tile sizes even if they're not
  explicitly specified. (#171)

- Added support for the optional ``endcard`` parameter in the
  ``Header.fromtextfile()`` and ``Header.totextfile()`` methods.  Although
  ``endcard=False`` was a reasonable default assumption, there are still text
  dumps of FITS headers that include the END card, so this should have been
  more flexible. (#176)

- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
  (#178)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. (#180)

- Fixed a crash when generating diff reports from diffs using the
  ``ignore_comments`` options. (#181)

- Fixed some bugs with WCS Paper IV record-valued keyword cards:

  - Cards that looked kind of like RVKCs but were not intended to be were
    over-permissively treated as such--commentary keywords like COMMENT and
    HISTORY were particularly affected. (#183)

  - Looking up a card in a header by its standard FITS keyword only should
    always return the raw value of that card.  That way cards containing
    values that happen to valid RVKCs but were not intended to be will still
    be treated like normal cards. (#184)

  - Looking up a RVKC in a header with only part of the field-specifier (for
    example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
    wildcard lookup. (#184)

- Fixed a crash when diffing two FITS files where at least one contains a
  compressed image HDU which was not recognized as an image instead of a
  table. (#187)

- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
  and ``CardList.count`` methods. (#190)

- Improved ``__repr__`` and text file representation of cards with long values
  that are split into CONTINUE cards. (#193)

- Fixed a crash when trying to assign a long (> 72 character) value to blank
  ('') keywords. This also changed how blank keywords are represented--there
  are still exactly 8 spaces before any commentary content can begin; this
  *may* affect the exact display of header cards that assumed there could be
  fewer spaces in a blank keyword card before the content begins. However, the
  current approach is more in line with the requirements of the FITS standard.
  (#194)


3.0.10 (2013-01-02)
-------------------

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too.  Backported from 3.1.1. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing.  Backported
  from 3.1.1. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verbotten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  Backported from 3.1.1. (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will not automatically use compatible tile sizes even if they're not
  explicitly specified.  Backported from 3.1.1. (#171)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  Backported from 3.1.0. (#174)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified.  Backported from 3.1.1. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)


3.1 (2012-08-08)
----------------

Highlights
^^^^^^^^^^

- The ``Header`` object has been significantly reworked, and ``CardList``
  objects are now deprecated (their functionality folded into the ``Header``
  class).  See API Changes below for more details.

- Memory maps are now used by default to access HDU data.  See API Changes
  below for more details.

- Now includes a new version of the ``fitsdiff`` program for comparing two
  FITS files, and a new FITS comparison API used by ``fitsdiff``.  See New
  Features below.

API Changes
^^^^^^^^^^^

- The ``Header`` class has been rewritten, and the ``CardList`` class is
  deprecated.  Most of the basic details of working with FITS headers are
  unchanged, and will not be noticed by most users.  But there are differences
  in some areas that will be of interest to advanced users, and to application
  developers.  For full details of the changes, see the "Header Interface
  Transition Guide" section in the PyFITS documentation.  See ticket #64 on
  the PyFITS Trac for futher details and background. Some highlights are
  listed below:

  * The Header class now fully implements the Python dict interface, and can
    be used interchangably with a dict, where the keys are header keywords.

  * New keywords can be added to the header using normal keyword assignment
    (previously it was necessary to use ``Header.update`` to add new
    keywords).  For example::

        >>> header['NAXIS'] = 2

    will update the existing 'FOO' keyword if it already exists, or add a new
    one if it doesn't exist, just like a dict.

  * It is possible to assign both a value and a comment at the same time using
    a tuple::

        >>> header['NAXIS'] = (2, 'Number of axes')

  * To add/update a new card and ensure it's added in a specific location, use
    ``Header.set()``::

        >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')

    This works the same as the old ``Header.update()``.  ``Header.update()``
    still works in the old way too, but is deprecated.

  * Although ``Card`` objects still exist, it generally is not necessary to
    work with them directly.  ``Header.ascardlist()``/``Header.ascard`` are
    deprecated and should not be used.  To directly access the ``Card``
    objects in a header, use ``Header.cards``.

  * To access card comments, it is still possible to either go through the
    card itself, or through ``Header.comments``.  For example::

       >>> header.cards['NAXIS'].comment
       Number of axes
       >>> header.comments['NAXIS']
       Number of axes

  * ``Card`` objects can now be used interchangeably with
    ``(keyword, value, comment)`` 3-tuples.  They still have ``.value`` and
    ``.comment`` attributes as well.  The ``.key`` attribute has been renamed
    to ``.keyword`` for consistency, though ``.key`` is still supported (but
    deprecated).

- Memory mapping is now used by default to access HDU data.  That is,
  ``pyfits.open()`` uses ``memmap=True`` as the default.  This provides better
  performance in the majority of use cases--there are only some I/O intensive
  applications where it might not be desirable.  Enabling mmap by default also
  enabled finding and fixing a large number of bugs in PyFITS' handling of
  memory-mapped data (most of these bug fixes were backported to PyFITS
  3.0.5). (#85)

  * A new ``pyfits.USE_MEMMAP`` global variable was added.  Set
    ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
    opening files.  This is especially useful for controlling the behavior in
    applications where pyfits is deeply embedded.

  * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
    Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
    behavior.

- The ``size()`` method on HDU objects is now a ``.size`` property--this
  returns the size in bytes of the data portion of the HDU, and in most cases
  is equivalent to ``hdu.data.nbytes`` (#83)

- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
  ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead.  The new methods
  output the table data in a slightly different format from previous versions,
  which places quotes around each value.  This format is compatible with data
  dumps from previous versions of PyFITS, but not vice-versa due to a parsing
  bug in older versions.

- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
  versions of these methods have been renamed ``pyfits.tabledump`` and
  ``pyfits.tableload``.  The old deprecated, but currently retained for
  backwards compatibility. (r1125)

- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
  This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
  which is not deprecated and may be removed in a future version.  To enable
  case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
  set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``.  The default is
  ``False``. (r1139)

- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
  added.  By default, if a string value in a header contains trailing
  whitespace, that whitespace is automatically removed when the value is read.
  Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
  preserved. (#146)

- The old ``classExtensions`` extension mechanism (which was deprecated in
  PyFITS 3.0) is removed outright.  To our knowledge it was no longer used
  anywhere. (r1309)

- Warning messages from PyFITS issued through the Python warnings API are now
  output to stderr instead of stdout, as is the default.  PyFITS no longer
  modifies the default behavior of the warnings module with respect to which
  stream it outputs to. (r1319)

- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
  'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
  and removed when the file is saved.

New Features
^^^^^^^^^^^^

- Added support for the proposed "FITS" extension HDU type.  See
  http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html.  FITS
  HDUs contain an entire FITS file embedded in their data section.  `FitsHDU`
  objects work like other HDU types in PyFITS.  Their ``.data`` attribute
  returns the raw data array.  However, they have a special ``.hdulist``
  attribute which processes the data as a FITS file and returns it as an
  in-memory HDUList object.  FitsHDU objects also support a
  ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
  that embeds the supplied HDUList. (#80)

- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
  data is an 'image' as opposed to a table or something else.  Here the
  meaning of 'image' is fairly loose, and mostly just means a Primary or Image
  extension HDU, or possibly a compressed image HDU (#71)

- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
  already in memory and instantiate and ``HDUList`` object from it.  This
  could be useful for integrating PyFITS with other libraries that work on
  FITS file, such as CFITSIO.  It may also be useful in streaming
  applications.  The name is a slight misnomer, in that it actually accepts
  any Python object that implements the buffer interface, which includes
  ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)

- Added a new ``pyfits.diff`` module which contains facilities for comparing
  FITS files.  One can use the ``pyfits.diff.FITSDiff`` class to compare two
  FITS files in their entirety.  There is also a ``pyfits.diff.HeaderDiff``
  class for just comparing two FITS headers, and other similar interfaces.
  See the PyFITS Documentation for more details on this interface.  The
  ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
  PyFITS.  After installing PyFITS, run ``fitsdiff --help`` for usage details.

- ``pyfits.open()`` now accepts a ``scale_back`` argument.  If set to
  ``True``, this automatically scales the data using the original BZERO and
  BSCALE parameters the file had when it was first opened, if any, as well as
  the original BITPIX.  For example, if the original BITPIX were 16, this
  would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
  calling ``flush()`` or ``close()`` on the file.  This option applies to all
  HDUs in the file. (#120)

- ``pyfits.open()`` now accepts a ``save_backup`` argument.  If set to
  ``True``, this automatically saves a backup of the original file before
  flushing any changes to it (this of course only applies to update and append
  mode).  This may be especially useful when working with scaled image data.
  (#121)

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Warnings from PyFITS are not output to stderr by default, instead of stdout
  as it has been for some time.  This is contrary to most users' expectations
  and makes it more difficult for them to separate output from PyFITS from the
  desired output for their scripts. (r1319)

Bug Fixes
^^^^^^^^^

- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
  when encountering blank lines in a column definition file (#14)

- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
  when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
  PyFITS). (r1330)

- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
  object from a string/buffer containing the header and data of that HDU.
  This allowed for the implementation of ``HDUList.fromstring`` described
  above. (#90)

- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
  malformatted float values in headers were not properly returned as floats.
  (#137)

- Fixed a corollary to the previous bug where float values with a leading zero
  before the decimal point had the leading zero unnecessarily removed when
  saving changes to the file (eg. "0.001" would be written back as ".001" even
  if no changes were otherwise made to the file). (#137)

- When opening a file containing CHECKSUM and/or DATASUM keywords in update
  mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
  opened with checksum=False.  This change in behavior prevents checksums from
  being unintentionally removed. (#148)

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  This fix will be backported to the 3.0.x series in
  version 3.0.10.  (#174)


3.0.9 (2012-08-06)
------------------

This is a bug fix release for the 3.0.x series.

Bug Fixes
^^^^^^^^^

- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
  ``Header.iteritems()`` to correctly return the different values for
  duplicate keywords (particularly commentary keywords like HISTORY and
  COMMENT).  This makes the old Header implementation slightly more compatible
  with the new implementation in PyFITS 3.1. (#127)

  .. note::
      This fix did not change the existing behavior from earlier PyFITS
      versions where ``Header.keys()`` returns all keywords in the header with
      duplicates removed.  PyFITS 3.1 changes that behavior, so that
      ``Header.keys()`` includes duplicates.

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug where opening a file containing compressed image HDUs in
  'update' mode and then immediately closing it without making any changes
  caused the file to be rewritten unncessarily. (#167)

- Fixed two memory leaks that could occur when writing compressed image data,
  or in some cases when opening files containing compressed image HDUs in
  'update' mode. (#168)


3.0.8 (2012-06-04)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Prior to this release, image data sections did not work with scaled
  data--that is, images with non-trivial BSCALE and/or BZERO values.
  Previously, in order to read such images in sections, it was necessary to
  manually apply the BSCALE+BZERO to each section.  It's worth noting that
  sections *did* support pseudo-unsigned ints (flakily).  This change just
  extends that support for general BSCALE+BZERO values.

Bug Fixes
^^^^^^^^^

- Fixed a bug that prevented updates to values in boolean table columns from
  being saved.  This turned out to be a symptom of a deeper problem that could
  prevent other table updates from being saved as well. (#139)

- Fixed a corner case in which a keyword comment ending with the string "END"
  could, in some circumstances, cause headers (and the rest of the file after
  that point) to be misread. (#142)

- Fixed support for scaled image data and psuedo-unsigned ints in image data
  sections (``hdu.section``).  Previously this was not supported at all.  At
  some point support was supposedly added, but it was buggy and incomplete.
  Now the feature seems to work much better. (#143)

- Fixed the documentation to point out that image data sections *do* support
  non-contiguous slices (and have for a long time).  The documentation was
  never updated to reflect this, and misinformed users that only contiguous
  slices were supported, leading to some confusion. (#144)

- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
  HDUs caused an infinite recursion when validating the object prior to
  writing to a file. (#145)

- Fixed a rare but serious case where saving an update to a file that
  previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
  in saving, could cause the file to be slightly corrupted and unreadable.
  (#147)

- Fixed problems with reading "non-standard" FITS files with primary headers
  containing SIMPLE = F.  PyFITS has never made many guarantees as to how such
  files are handled.  But it should at least be possible to read their
  headers, and the data if possible.  Saving changes to such a file should not
  try to prepend an unwanted valid PRIMARY HDU. (#157)

- Fixed a bug where opening an image with ``disable_image_compression = True``
  caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
  (r1651)


3.0.7 (2012-04-10)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Slices of GroupData objects now return new GroupData objects instead of
  extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
  FITS_rec slicing, and should have been fixed for GroupData at the same time.
  The old behavior caused bugs where functions internal to Numpy expected that
  slicing an ndarray would return a new ndarray.  As this is a rare usecase
  with a rare feature most users are unlikely to be affected by this change.

- The previously internal _Group object for representing individual group
  records in a GroupData object are renamed Group and are now a public
  interface.  However, there's almost no good reason to create Group objects
  directly, so it shouldn't be considered a "new feature".

- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
  keyword was always being set to F if there are not actually any extension
  HDUs.  It was unnecessary to modify this value.

Bug Fixes
^^^^^^^^^

- Fixed GroupData objects to return new GroupData objects when sliced instead
  of _Group record objects.  See "Changes in behavior" above for more details.

- Fixed slicing of Group objects--previously it was not possible to slice
  slice them at all.

- Made it possible to assign `np.bool_` objects as header values. (#123)

- Fixed overly strict handling of the EXTEND keyword; see "Changes in
  behavior" above. (#124)

- Fixed many cases where an HDU's header would be marked as "modified" by
  PyFITS and rewritten, even when no changes to the header are necessary.
  (#125)

- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
  were forced to be all lower-case when saving the file. (#130)

- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
  causing some slowdown when opening files containing a large number of
  extensions, plus a few other small (but not insignficant) performance
  improvements thanks to Julian Taylor. (#133)

- Fixed a regression where header blocks containing invalid end-of-header
  padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
  Such headers can be parsed again, but a warning is raised, as such headers
  are not valid FITS. (#136)

- Fixed a memory leak where table data in random groups HDUs weren't being
  garbage collected. (#138)


3.0.6 (2012-02-29)
------------------

Highlights
^^^^^^^^^^

The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data.  Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application.  So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.

This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.

Bug Fixes
^^^^^^^^^

- More accurate error messages when opening files containing invalid header
  cards. (#109)

- Fixed a possible reference cycle/memory leak that was caught through more
  extensive testing on Windows. (#112)

- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
  mode. (#112)

- Fixed a Windows-only issue where trying to save updates to a resized FITS
  file could result in a crash due to there being open mmaps on that file.
  (#112)

- Fixed a crash when trying to create a FITS table (i.e. with new_table())
  from a Numpy array containing bool fields. (#113)

- Fixed a bug where manually initializing an ``HDUList`` with a list of of
  HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
  (#114)

- Fixed a crash that could occur when trying to deepcopy a Header in Python <
  2.7. (#115)

- Fixed an issue where merely opening a scaled image in 'update' mode would
  cause the data to be converted to floats when the file is closed. (#119)


3.0.5 (2012-01-30)
------------------

- Fixed a crash that could occur when accessing image sections of files
  opened with memmap=True. (r1211)

- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
  when memmap=True vs. when memmap=False.  In the latter case, although
  changes to array data were not saved to disk, it was possible to update the
  array data in memory.  On the other hand with memmap=True, 'readonly' mode
  prevented even in-memory modification to the data.  This is what
  'copyonwrite' mode was for, but difference in behavior was confusing.  Now
  'readonly' is equivalent to 'copyonwrite' when using memmap.  If the old
  behavior of denying changes to the array data is necessary, a new
  'denywrite' mode may be used, though it is only applicable to files opened
  with memmap. (r1275)

- Fixed an issue where files opened with memmap=True would return image data
  as a raw numpy.memmap object, which can cause some unexpected
  behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)

- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
  interacted badly with some other software, namely to vo.table package (and
  possibly others). (r1320, r1337, and #110)

- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
  interrupts) while flushing changes to a FITS file.  PyFITS already prevented
  SIGINTs from causing an incomplete flush, but did not clean up the signal
  handlers properly afterwards, or reraise the keyboard interrupt once the
  flush was complete. (r1321)

- Fixed a crash that could occur in Python 3 when opening files with checksum
  checking enabled. (r1336)

- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
  when using Numpy below version 1.5.

- Fixed a crash that could occur when creating a new `CompImageHDU` from an
  array of big-endian data. (#104)

- Fixed a crash when opening a file with extra zero padding at the end.
  Though FITS files should not have such padding, it's not explictly forbidden
  by the format either, and PyFITS shouldn't stumble over it. (#106)

- Fixed a major slowdown in opening tables containing large columns of string
  values.  (#111)


3.0.4 (2011-11-22)
------------------

- Fixed a crash when writing HCOMPRESS compressed images that could happen on
  Python 2.5 and 2.6. (r1217)

- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
  memmap=True. (r1230)

- Writing changes to a file or writing to a new file verifies the output in
  'fix' mode by default instead of 'exception'--that is, PyFITS will
  automatically fix common FITS format errors rather than raising an
  exception. (r1243)

- Fixed a bug where convenience functions such as getval() and getheader()
  crashed when specifying just 'PRIMARY' as the extension to use (r1263).

- Fixed a bug that prevented passing keyword arguments (beyond the standard
  data and header arguments) as positional arguments to the constructors of
  extension HDU classes.

- Fixed some tests that were failing on Windows--in this case the tests
  themselves failed to close some temp files and Windows refused to delete them
  while there were still open handles on them. (r1295)

- Fixed an issue with floating point formatting in header values on Python 2.5
  for Windows (and possibly other platforms).  The exponent was zero-padded to
  3 digits; although the FITS standard makes no specification on this, the
  formatting is now normalized to always pad the exponent to two digits.
  (r1295)

- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
  broken into multiple CONTINUE cards.  However, commentary cards are not
  expected to be found in CONTINUE cards.  Instead these long cards are broken
  into multiple commentary cards. (#97)

- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
  their filename extension. (#99)

- Fixed a serious bug where opening scaled images in 'update' mode and then
  closing the file without touching the data would cause the file to be
  corrupted. (#101)


3.0.3 (2011-10-05)
------------------

- Fixed several small bugs involving corner cases in record-valued keyword
  cards (#70)

- In some cases HDU creation failed if the first keyword value in the header
  was not a string value (#89)

- Fixed a crash when trying to compute the HDU checksum when the data array
  contains an odd number of bytes (#91)

- Disabled an unnecessary warning that was displayed on opening compressed
  HDUs with disable_image_compression = True (#92)

- Fixed a typo in code for handling HCOMPRESS compressed images.


3.0.2 (2011-09-23)
------------------

- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
  function don't get tripped up by blank lines anymore (#14)

- The presence, value, and position of the EXTEND keyword in Primary HDUs is
  verified when reading/writing a FITS file (#32)

- Improved documentation (in warning messages as well as in the handbook) that
  PyFITS uses zero-based indexing (as one would expect for C/Python code, but
  contrary to the PyFITS standard which was written with FORTRAN in mind)
  (#68)

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69) [Note: This and the bug above it
  were originally reported as being fixed in version 3.0.1, but the fix was
  never included in the release.]

- Improved file handling, particularly in Python 3 which had a few small file
  I/O-related bugs (#76)

- Fixed a bug where updating a FITS file would sometimes cause it to lose its
  original file permissions (#79)

- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
  the axis order backards (they were treated as though they were row-major)
  (#82)

- Fixed a crash when a FITS file containing scaled data is opened and
  immediately written to a new file without explicitly viewing the data first
  (#84)

- Fixed a bug where creating a table with columns named either 'names' or
  'formats' resulted in an infinite recursion (#86)


3.0.1 (2011-09-12)
------------------

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
  ``FITS_rec`` object with zero rows is returned rather than ``None``.

- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
  keyword+field-specifier value, instead of just the plain keyword (#46)

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69)

- Fixed a bug where writing a table with zero rows could fail in some cases
  (#72)

- Miscellanous small bug fixes that were causing some tests to fail,
  particularly on Python 3 (#74, #75)

- Fixed a bug where creating a table column from an array in non-native byte
  order would not preserve the byte order, thus interpreting the column array
  using the wrong byte order (#77)


3.0.0 (2011-08-23)
--------------------

- Contains major changes, bumping the version to 3.0

- Large amounts of refactoring and reorganization of the code; tried to
  preserve public API backwards-compatibility with older versions (private API
  has many changes and is not guaranteed to be backwards-compatible).  There
  are a few small public API changes to be aware of:

  * The pyfits.rec module has been removed completely.  If your version of
    numpy does not have the numpy.core.records module it is too old to be used
    with PyFITS.

  * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
    attribute instead.

  * ``Card`` instances have a new ``.cardimage`` attribute that should be used
    rather than ``.ascardimage()``, which may become deprecated.

  * The ``Card.fromstring()`` method is now a classmethod.  It returns a new
    ``Card`` instance rather than modifying an existing instance.

  * The ``req_cards()`` method on HDU instances has changed:  The ``pos``
    argument is not longer a string.  It is either an integer value (meaning
    the card's position must match that value) or it can be a function that
    takes the card's position as it's argument, and returns True if the
    position is valid.  Likewise, the ``test`` argument no longer takes a
    string, but instead a function that validates the card's value and returns
    True or False.

  * The ``get_coldefs()`` method of table HDUs is deprecated.  Use the
    ``.columns`` attribute instead.

  * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
    instead (though in general you shouldn't mess with it directly--it might
    become internal at some point).

  * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
    ``startColumn`` and ``endColumn`` (these are rarely created manually, so
    it's unlikely that this change will affect anyone).

  * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
    ``BinTableHDU`` instance.

  * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
    classes.  They are now public interfaces, wheres previously they were
    private and prefixed with underscores.

  * Possibly others--please report if you find any changes that cause
    difficulties.

- Calls to deprecated functions will display a Deprecation warning.  However,
  in Python 2.7 and up Deprecation warnings are ignored by default, so run
  Python with the `-Wd` option to see if you're using any deprecated
  functions.  If we get close to actually removing any functions, we might
  make the Deprecation warnings display by default.

- Added basic Python 3 support

- Added support for multi-dimensional columns in tables as specified by the
  TDIMn keywords (#47)

- Fixed a major memory leak that occurred when creating new tables with the
  ``new_table()`` function (#49)
  be padded with zero-bytes) vs ASCII tables (where strings are padded with
  spaces) (#15)

- Fixed a bug in which the case of Random Access Group parameters names was not
  preserved when writing (#41)

- Added support for binary table fields with zero width (#42)

- Added support for wider integer types in ASCII tables; although this is non-
  standard, some GEIS images require it (#45)

- Fixed a bug that caused the index_of() method of HDULists to crash when the
  HDUList object is created from scratch (#48)

- Fixed the behavior of string padding in binary tables (where strings should
  be padded with nulls instead of spaces)

- Fixed a rare issue that caused excessive memory usage when computing
  checksums using a non-standard block size (see r818)

- Add support for forced uint data in image sections (#53)

- Fixed an issue where variable-length array columns were not extended when
  creating a new table with more rows than the original (#54)

- Fixed tuple and list-based indexing of FITS_rec objects (#55)

- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
  the wrong location (#56)

- ``FITS_record`` objects (table rows) have full slicing support, including
  stepping, etc. (#59)

- Fixed a bug where updating multiple files simultaneously (such as when
  running parallel processes) could lead to a race condition with mktemp()
  (#61)

- Fixed a bug where compressed image headers were not in the order expected by
  the funpack utility (#62)
jperkin pushed a commit that referenced this issue Mar 14, 2014
Changes from 2.2.1 to 2.2.2
===========================

* The `copy_args` argument of `NumExpr` function has been brought
  back.  This has been mainly necessary for compatibility with
  PyTables < 3.0, which I decided to continue to support.  Fixed #115.

* The `__nonzero__` method in `ExpressionNode` class has been
  commented out.  This is also for compatibility with PyTables < 3.0.
  See #24 for details.

* Fixed the type of some parameters in the C extension so that s390
  architecture compiles.  Fixes #116.  Thank to Antonio Valentino for
  reporting and the patch.


Changes from 2.2 to 2.2.1
=========================

* Fixes a secondary effect of "from numpy.testing import `*`", where
  division is imported now too, so only then necessary functions from
  there are imported now.  Thanks to Christoph Gohlke for the patch.

Changes from 2.1 to 2.2
=======================

* [LICENSE] Fixed a problem with the license of the
  numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
  platforms.  After persmission from the original authors is granted,
  these files adopt the MIT license and can be redistributed without
  problems.  See issue #109 for details
  (https://code.google.com/p/numexpr/issues/detail?id=110).

* [ENH] Improved the algorithm to decide the initial number of threads
  to be used.  This was necessary because by default, numexpr was
  using a number of threads equal to the detected number of cores, and
  this can be just too much for moder systems where this number can be
  too high (and counterporductive for performance in many cases).
  Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
  in case this is not present, a maximum number of *8* threads are
  setup initially.  The new algorithm is fully described in the Users
  Guide now in the note of 'General routines' section:
  https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
  Closes #110.

* [ENH] numexpr.test() returns `TestResult` instead of None now.
  Closes #111.

* [FIX] Modulus with zero with integers no longer crashes the
  interpreter.  It nows puts a zero in the result.  Fixes #107.

* [API CLEAN] Removed `copy_args` argument of `evaluate`.  This should
  only be used by old versions of PyTables (< 3.0).

* [DOC] Documented the `optimization` and `truediv` flags of
  `evaluate` in Users Guide
  (https://code.google.com/p/numexpr/wiki/UsersGuide).

Changes from 2.0.1 to 2.1
===========================

* Dropped compatibility with Python < 2.6.

* Improve compatibiity with Python 3:

  - switch from PyString to PyBytes API (requires Python >= 2.6).
  - fixed incompatibilities regarding the int/long API
  - use the Py_TYPE macro
  - use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT

* Fixed several issues with different platforms not supporting
  multithreading or subprocess properly (see tickets #75 and #77).

* Now, when trying to use pure Python boolean operators, 'and',
  'or' and 'not', an error is issued suggesting that '&', '|' and
  '~' should be used instead (fixes #24).

Changes from 2.0 to 2.0.1
=========================

* Added compatibility with Python 2.5 (2.4 is definitely not supported
  anymore).

* `numexpr.evaluate` is fully documented now, in particular the new
  `out`, `order` and `casting` parameters.

* Reduction operations are fully documented now.

* Negative axis in reductions are not supported (they have never been
  actually), and a `ValueError` will be raised if they are used.


Changes from 1.x series to 2.0
==============================

- Added support for the new iterator object in NumPy 1.6 and later.

  This allows for better performance with operations that implies
  broadcast operations, fortran-ordered or non-native byte orderings.
  Performance for other scenarios is preserved (except for very small
  arrays).

- Division in numexpr is consistent now with Python/NumPy.  Fixes #22
  and #58.

- Constants like "2." or "2.0" must be evaluated as float, not
  integer.  Fixes #59.

- `evaluate()` function has received a new parameter `out` for storing
  the result in already allocated arrays.  This is very useful when
  dealing with large arrays, and a allocating new space for keeping
  the result is not acceptable.  Closes #56.

- Maximum number of threads raised from 256 to 4096.  Machines with a
  higher number of cores will still be able to import numexpr, but
  limited to 4096 (which is an absurdly high number already).
jperkin pushed a commit that referenced this issue Mar 14, 2014
Forward ported the existing patches that were not upstream yet.
Also added patches for cfmakeraw and log10(int) amgiguity to fix build on SunOS.
From the changelog since 0.17.1

15-07-2013 Darkice 1.2 released
    o Issue #75: Added Ogg/Opus support. Patch by Doug Kelly
	dougk.ff7@gmail.com
    o Fix 'Ring Ruffer' reports.
      - Increased buffer for jack to 5 seconds
      - prevent darkice termination by jack, report no fatal problem when we
        have a ringbuffer overflow, can happen during startup
        If we can not handle input audio fast enough we just ignore the buffer
        and skip it, and just report it.
      - new multithreaded connector code, now handles encoders in parallel
        and does not spin waiting, cpu load will be very much lower now
        Codes uses 2 condition variables to report data availability and
        consumer thread availability
      - Hopes are that glitching reports will be a thing of the past
      - minor compiler warnings fixed
        (Fix by Edwin van den Oetelaar)
    o Issue #56: Wrong icecast2 password isn't properly reported, fixed.
	  thanks to Filipe Roque <flip.roque@gmail.com>
    o Issue #57: BufferedSink makes streams invalid, fixed.
	  thanks to Alban Peignier <alban.peignier@gmail.com>
    o Issue #30: Segmentation Fault when creating file with fileAddDate, fixed
	  thanks to Filipe Roque <flip.roque@gmail.com>

27-10-2011 Darkice 1.1 released
    o Updated aac+ encoding to use libaacplus-2.0.0 api.
	  thanks to Sergiy <piratfm@gmail.com>
    o Added pulseaudio support
	  closes ticket #25
	  thanks to Filipe Roque <flip.roque@gmail.com> and
	  and Johann Fot <johann.fot@dunkelfuerst.com>
    o Added rtprio parameter and revisited realtime priority
	  closes ticket #21
          thanks to Adrian Knoth <adi@drcomp.erfurt.thur.de>
    o Fixed a call to a deprecated jack call
	  closes ticket #22
	  thanks to Adrian Knoth again.

09-05-2010 Darkice 1.0 released
    o fixed a bug in BufferedSink.cpp that leads to some buffers
	  being written twice, causing corruption of datastream,
	  closes ticked #20
	  thanks to Edwin van den Oetelaar <oetelaar.automatisering@gmail.com>
    o implemented samplerate conversion for all codecs using libsamplerate,
	  and keeping internal aflibConverter as fallback,
          thanks to Sergiy <piratfm@gmail.com>
    o bugfix: fix for alsa driver - closes ticked #8
          thanks to Clemens Ladisch <clemens@ladisch.de>

14-11-2009 Darkice 0.20.1 released
    o added rc.darkice init script
	  thanks to Niels Dettenbach <nd@syndicat.com>
    o bugfix: fix for gcc 4.4

05-11-2009 Darkice 0.20 released

    o new maintainer: Rafael Diniz <rafael@riseup.net>
    o added AAC HEv2 encoding support (branch darkice-aacp merged) through
	  libaacplus, http://tipok.org.ua/ru/node/17
	  thanks to tipok <piratfm@gmail.com> and others for the contribution.
    o bugfix: the configure script recognizes Ogg Vorbis shared objects
	  now, not just static libraries. Thanks to omroepvenray.
    o bugfix: enabling jack source compilation on Debian Lenny,
	  thanks to Alessandro Beretta <alessandro.baretta@radiomaria.org>

07-07-2008 Darkice 0.19 released

    o added mount point option for Darwin Streaming Server
      thanks to Pierre Souchay <pierre@souchay.net>
    o fix for some reliablity issues when using a Jack source
      thanks to Pierre Souchay <pierre@souchay.net>
    o enable easier finding of jack libraries on MacOS X,
      thanks to Daniel Hazelbaker <daniel@highdesertchurch.com>
    o added ability to specify name of jack device created by darkice,
      thanks to Alessandro Beretta <alessandro.baretta@radiomaria.org>

26-04-2007 DarkIce 0.18.1 released

    o enable real-time scheduling for non-super-users, if they have
      the proper operating system permissions,
      thanks to Jens Maurer <Jens.Maurer@gmx.net>
    o fix to enable compliation of the Serial ULAW code on MacOS X,
      thanks to Elod Horvath <elod@itfais.com>
    o fix to solve Shoutcast login failures, introduced in 0.18

05-03-2007 DarkIce 0.18 released

    o added serial ulaw input device support, thanks to
      Clyde Stubbs <clyde@htsoft.com>
    o improvements on reconnecting:
      added TCP connection keep-alive to TCP sockets
      added graceful sleep when trying to reconnect
    o added user-defined date formatting for the fileAddDate options,
      thanks to dsk <derrick@csociety.org>
    o added logging facility - [file-X] targets will cut the saved file
      and rename it as needed when darkice recieves the SIGUSR1 signal
    o added default configuration file handling - if no configuration file
      is specified, /etc/darkice.cfg is used
    o fix to enable compiling on 64 bit platforms
      thanks to Alexander Vlasov <zulu@galaradio.com> and
      Mariusz Mazur <mmazur@kernel.pl>
    o fix to enable file dump feature using ogg vorbis.
      thanks to dsk <derrick@csociety.org>
    o fix to enable compiling with jack installed at arbitrary locations
jperkin pushed a commit that referenced this issue Mar 17, 2014
=== 2.9.4 / 2014-02-10

* Bug fixes
  * Improve proxy escaping from 2.9.2.  Pull request #59 by Mislav Marohnić.

=== 2.9.3 / 2014-02-06

* Bug fixes
  * Fix breakage in 2.9.2 for users without proxies.  Pull request #56 by
    Yoshihiro TAKAHARA (merged), #57 by ChuckLin, #58 by Kenny Meyer.

=== 2.9.2 / 2014-02-05

* Bug fixes
  * Special characters in proxy passwords are now handled correctly.  Issue
    #48 by Mislav Marohnić.  Pull request #54 by Juha Kajava

=== 2.9.1 / 2014-01-22

* Bug fixes
  * Added license to gemspec.  Issue #47 by Benjamin Fleischer
  * Set Net::HTTP#keep_alive_timeout when supported by ruby.  Pull request #53
    by Dylan Thacker-Smith.
  * The backtrace is preserved for errors in #reset to help with debugging.
    Issue #41 by Andrew Cholakian.
jperkin pushed a commit that referenced this issue Mar 18, 2014
=== 2.9.4 / 2014-02-10

* Bug fixes
  * Improve proxy escaping from 2.9.2.  Pull request #59 by Mislav Marohnić.

=== 2.9.3 / 2014-02-06

* Bug fixes
  * Fix breakage in 2.9.2 for users without proxies.  Pull request #56 by
    Yoshihiro TAKAHARA (merged), #57 by ChuckLin, #58 by Kenny Meyer.

=== 2.9.2 / 2014-02-05

* Bug fixes
  * Special characters in proxy passwords are now handled correctly.  Issue
    #48 by Mislav Marohnić.  Pull request #54 by Juha Kajava

=== 2.9.1 / 2014-01-22

* Bug fixes
  * Added license to gemspec.  Issue #47 by Benjamin Fleischer
  * Set Net::HTTP#keep_alive_timeout when supported by ruby.  Pull request #53
    by Dylan Thacker-Smith.
  * The backtrace is preserved for errors in #reset to help with debugging.
    Issue #41 by Andrew Cholakian.
jperkin pushed a commit that referenced this issue Apr 15, 2014
        Feature request #44: Allow override of the From: field on forensic
                reports.
        Feature request #45: Log the host portion of ignored
                Authentication-Results fields at "debug" level.
        Feature request #56: Add "RequiredHeaders" setting to enforce syntax
                checks against a message and reject those that don't comply.
        Feature request #65: Add "ForensicReportsBcc".
        Fix bug #46: Charitable tweak to a couple of log messages.
        Fix bug #55: The "SoftwareHeader" setting wasn't being set properly.
        Fix bug #58: The "smtp.mailfrom" part of an Authentication-Results
                field might contain only a domain name.
        Fix bug #60: Default AuthservID to the name provided by the MTA,
                not the local host name, which is consistent with what
                OpenDKIM does.
        Merge request #2: Validate external recipients before adding them to
                report recipient lists.
        Record all DKIM results to the history file, rather than only
                passing results.
        BUILD: Fix bug #50: Check libbsd for strlcat() and strlcpy() so we
                don't make our own when we don't need to.
        CONTRIB: Fix bug #52: Update path to draft RFC in contrib/spec.
        CONTRIB: Fix bug #59: Allow database name, userid and password to be
                specified on the command line rather than hard-coding them.
        DOCS: Fix bug #48: Add a libopendmarc use overview page.
        DOCS: Fix bug #53: Add man page for opendmarc-importstats.
        REPORTS: Fix bug #51: Check status after every phase of SMTP when
                sending reports.
        REPORTS: Fix DKIM status importing.
        LIBOPENDMARC: Fix bug #68: Fix strict/relaxed checking logic when
                a public suffix list is available.
        LIBOPENDMARC: Fixed a bug where in some instances the fetch of the
                orgainizational domain could wrongly return the from domain.
        LIBOPENDMARC: Fix call to missing function.
jperkin pushed a commit that referenced this issue May 19, 2014
Changes:
2014-05-03  David Schweikert  <david@schweikert.ch>
  * Version 3.10
  * Fix confusing error message with -g and IPv6 addresses (#58, reported by
  * Axel Beckert)
  * Allow option '-f' also for non-root (since setuid privileges are
  * dropped)
  * Do not retry twice DNS lookup on DNS lookup problem
  * Remove support for NIS groups
  * Better document -B backoff-factor and when it can be used (#33, Oleksiy
  * Zagorskyi)
  * More tests added

2014-03-08  David Schweikert  <david@schweikert.ch>
  * Version 3.9
  * Fix random output on socket error (reported by Aleksandrs Saveljevs,
  * #56)
  * Support ppc64le architecture by including alpha libtool version
    (reported by Amit Kumar Gupta and Aravinda B Thunug)
  * Fix compilation problem on FreeBSD (#57)
  * Initial test suite and continous intergration (with travis-ci.org /
  * coveralls.io)
  * Don't output usage information on error

2013-11-08  David Schweikert  <david@schweikert.ch>
  * Version 3.8
  * Fix segmentation fault introduced in version 3.7 with loop mode
  * (reported
    by Vlad Glagolev, #55)

2013-11-04  David Schweikert  <david@schweikert.ch>
  * Version 3.7
  * Allow running as non-root on Mac OS X by using non-privileged ICMP (#7)
  * Remove unnecessary IPv6 socket options
  * Fix again compatibility issue with FreeBSD (Shawn Chu)
  * Fix fping hanging forever on permanent sendto failure (Shawn Chu)
  * Fix duplicate echo reply packets causing early stop in count mode
    (reported by Ramon Schwammberger, #53)

2013-10-10  David Schweikert  <david@schweikert.ch>
  * Version 3.6
  * Fix loop issue after 65536 pings (reported by Peter Folk and GBert, #12)
  * Minimum ping data size is now 0
  * Removed setsockopt IPV6_CHECKSUM, which shouldn't be set and breaks
    compiling on Solaris (reported by Juergen Arndt)
  * Fix wrong min RTT value with -Q option (reported by Alexander Ivanov,
  * #51)

2013-05-22  David Schweikert  <david@schweikert.ch>
  * Version 3.5
  * Fix sprint_tm buffer size crash (reported by Japheth Cleaver)
  * Addded -D flag to print timestamps (Toke Høiland-Jørgensen)
  * Fix fping6 build on OS X 10.8 (unknown contributor)
  * Fix compatibility issue with FreeBSD (Alexandre Raynaud, Jason Harris,
  * #39)
  * Fping.spec: fix setuid permissions and provides fping6 (Marcus Vinicius
  * Ferreira)
  * Re-create configure script with autoconf 2.69 for aarch64 support (Chuck
  * Anderson, #45)

2012-09-04  David Schweikert  <david@schweikert.ch>
  * Version 3.4
  * Revert "Output statistics to stdout instead of stderr", because it
  * breaks
    tools assuming the output goes to stderr

2012-08-19  David Schweikert  <david@schweikert.ch>
  * Version 3.3
  * Do not output icmp errors with -q (#1)
  * Add --enable-ipv4 and --enable-ipv6 options to configure (Niclas
  * Zeising)
  * Fix removing of unreachable hosts when doing loop (Thomas Liske, #13
  * #23)
  * Fix -A for fping6 (reported by Matt LaPlante, #14)
  * Fix "options inet6" breaking IPv4 name resolution (reported by Matt
  * LaPlante, #17)
  * Output statistics to stdout instead of stderr (suggested by Simon
  * Leinen, #9)
  * Set default data size to 56 bytes on all architectures (#18)
  * Added contrib/fping.spec (Stephen Schaefer, #24)
  * Convert man-page source to POD for easier maintenance
  * Fix error message on DNS error for IPv6 hosts (#27)
  * Fix -n flag in fping6 (#28)
  * Man-page fix: TOS option typo (Thomas Liske, #23)
  * Man-page fix: inconsistency in regards to numeric arguments (Robert
  * Henney)
  * Man-page fix: better description of option -q (#15)

2012-05-29  David Schweikert  <david@schweikert.ch>
  * Version 3.2
  * Improve documentation for -g option (G.W. Haywood)
  * Performance optimization for big select timeouts (#10, Andrey
  * Bondarenko)
  * Fix restart of select call after interrupt signal (#8, Boian Bonev)
  * Fix infinite loop caused by linked list corruption (#11, Boian Bonev)

2012-04-26  David Schweikert  <david@schweikert.ch>
  * Version 3.1
  * -g option (generate): exclude network and broadcast address for cidr
    ranges (idea by Eric Brander)
  * do not explicitely check if running as root, to make it possible to
    install fping with linux capabilities instead of making it setuid
    (setcap cap_net_raw+ep fping)
  * ANSI C (C89) compiler now a requirement
  * Portability fixes
  * Reorganized source directory
  * Bugfix: fix timeout issue on Solaris (Sandor Geller)
  * Man-page fixes (Axel Beckert)
  * Added -H option to specify number of hops (Paul Duda)
  * Output usage information to stdout when called with -h (Paul Duda)

2011-12-28  David Schweikert  <david@schweikert.ch>
  * Version 3.0
  * rewritten main loop for improved performance
  * -T parameter (select timeout) now obsolete
  * Maintenance taken over from unresponsive previous maintainer
    (anybody please step up, if you disagree)
  * New homepage: www.fping.org

2009-12-21  Tobi Oetiker  <tobi@oetiker.ch>
  * Version v2.4b2-to3-ipv6
  * added -On option to set the TOS octet
  * Removed unused variables from code
  * updated to current autoconf standards
  * Merged Debian changes (see below)

----------------------------------------------------------------------

fping (2.4b2-to-ipv6-16.1) unstable; urgency=low

  * NMU during Moenchengladbach BSP
  * Fixes FTBFS on kfreebsd (Closes: #555398)
  * Fixes typo "Paramter" in binary

 -- Axel Beckert <abe@deuxchevaux.org>  Sat, 23 Jan 2010 16:22:02 +0100

fping (2.4b2-to-ipv6-16) unstable; urgency=low

  * Fix the following bugs
    - Network byte order sensitivity was missing completely.
      Added hopefully all missing calls.
    - The sequence numbering scheme used led to packet drops.
      Changed it to a more senseful numbering scheme.
    - Some minor C programming mistakes ('=' instead of '==').
    Patch by Stephan Fuhrmann; closes: #502569
  * Add support for command line select timeout setting
    Patch by Marton Balint; closes: #502575
  * Remove symlinks in /usr/sbin; closes: #377732
  * Standards-Version is 3.8.0

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sat, 18 Oct 2008 12:04:52
 -- +1100

fping (2.4b2-to-ipv6-15) unstable; urgency=low

  * Added interface binding (-I) for fping
    Patch by Peter Naulls <peter@mushroomnetworks.com>
    Closes: #439014
  * Fixed a couple of typos in fping.8. Closes: #423180
  * Added homepage control header
  * Bumped Standards-Version to 3.7.3
  * Fixed the following lintian issue:
    - debian-rules-sets-DH_COMPAT

 -- Anibal Monsalve Salazar <anibal@debian.org>  Mon, 03 Mar 2008 17:46:17
 -- +1100

fping (2.4b2-to-ipv6-13) unstable; urgency=low

  * Fixed stdout flush problem, closes: #340146.
    Patch by Bart Martens <bart.martens@advalvas.be>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Fri, 30 Dec 2005 08:30:09
 -- +1100

fping (2.4b2-to-ipv6-12) unstable; urgency=low

  * Fixed "problem with option -r (retry limit)", closes: #318402.
    Patch by Qingning Huo <qingningh@lanware.co.uk>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sat, 08 Oct 2005 21:26:35
 -- +1000

fping (2.4b2-to-ipv6-11) unstable; urgency=low

  * Fixed "would be useful to specify 'source address' like ping for multi
    homed machines", closes: #198486.
    Patch by Marc Haber <mh+debian-bugs@zugschlus.de>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Thu, 02 Jun 2005 08:14:54
 -- +1000

fping (2.4b2-to-ipv6-10) unstable; urgency=low

  * Fixed "unnecessary delay with the -c option after the last packet"
    (Closes: #293856). Patch by Niko Tyni <ntyni@iki.fi>

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sun, 06 Feb 2005 23:25:57
 -- +1100

fping (2.4b2-to-ipv6-9) unstable; urgency=low

  * Fixed "fping6 always does reverse lookup" (Closes: #273647).
    Patch by Jeroen Massar and forwarded by Bernhard Schmidt
<berni@birkenwald.de>

 -- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org>  Mon, 10 Jan 2005
 -- 00:01:32 +1100

fping (2.4b2-to-ipv6-7) unstable; urgency=low

  * Build fping in build/ipv[46] instead of build and build-ipv6.
  * Made DNS errors non-fatal for IPv6 (closes: #198056).

 -- Herbert Xu <herbert@debian.org>  Fri, 20 Jun 2003 21:36:30 +1000

fping (2.4b2-to-ipv6-6) unstable; urgency=low

  * Do not use incorrect linux.h file (closes: #85468).

 -- Herbert Xu <herbert@debian.org>  Sat, 17 May 2003 14:13:11 +1000

fping (2.4b2-to-ipv6-5) unstable; urgency=low

  * Fixed yet another divide by zero bug (closes: #148445).

 -- Herbert Xu <herbert@debian.org>  Tue,  4 Jun 2002 12:18:03 +1000

fping (2.4b2-to-ipv6-4) unstable; urgency=low

  * Made fping6 setuid (closes: #136386).
  * Moved fping back into bin.
  * Partially applied IPv6 patch to fix IPv6 checksums (closes: #136479).

 -- Herbert Xu <herbert@debian.org>  Sun,  7 Apr 2002 20:36:56 +1000

fping (2.4b2-to-ipv6-3) unstable; urgency=low

  * Added compatibility symlink for fping (closes: #135203).

 -- Herbert Xu <herbert@debian.org>  Sat, 23 Feb 2002 08:34:11 +1100

fping (2.4b2-to-ipv6-2) unstable; urgency=low

  * Fixed another divide by zero error (closes: #132370).

 -- Herbert Xu <herbert@debian.org>  Thu,  7 Feb 2002 20:10:48 +1100

fping (2.4b2-to-ipv6-1) unstable; urgency=low

  * New upstream release.
  * Install fping into sbin as done by upstream.
jperkin pushed a commit that referenced this issue Jun 2, 2014
Changes:
2014-05-03  David Schweikert  <david@schweikert.ch>
  * Version 3.10
  * Fix confusing error message with -g and IPv6 addresses (#58, reported by
  * Axel Beckert)
  * Allow option '-f' also for non-root (since setuid privileges are
  * dropped)
  * Do not retry twice DNS lookup on DNS lookup problem
  * Remove support for NIS groups
  * Better document -B backoff-factor and when it can be used (#33, Oleksiy
  * Zagorskyi)
  * More tests added

2014-03-08  David Schweikert  <david@schweikert.ch>
  * Version 3.9
  * Fix random output on socket error (reported by Aleksandrs Saveljevs,
  * #56)
  * Support ppc64le architecture by including alpha libtool version
    (reported by Amit Kumar Gupta and Aravinda B Thunug)
  * Fix compilation problem on FreeBSD (#57)
  * Initial test suite and continous intergration (with travis-ci.org /
  * coveralls.io)
  * Don't output usage information on error

2013-11-08  David Schweikert  <david@schweikert.ch>
  * Version 3.8
  * Fix segmentation fault introduced in version 3.7 with loop mode
  * (reported
    by Vlad Glagolev, #55)

2013-11-04  David Schweikert  <david@schweikert.ch>
  * Version 3.7
  * Allow running as non-root on Mac OS X by using non-privileged ICMP (#7)
  * Remove unnecessary IPv6 socket options
  * Fix again compatibility issue with FreeBSD (Shawn Chu)
  * Fix fping hanging forever on permanent sendto failure (Shawn Chu)
  * Fix duplicate echo reply packets causing early stop in count mode
    (reported by Ramon Schwammberger, #53)

2013-10-10  David Schweikert  <david@schweikert.ch>
  * Version 3.6
  * Fix loop issue after 65536 pings (reported by Peter Folk and GBert, #12)
  * Minimum ping data size is now 0
  * Removed setsockopt IPV6_CHECKSUM, which shouldn't be set and breaks
    compiling on Solaris (reported by Juergen Arndt)
  * Fix wrong min RTT value with -Q option (reported by Alexander Ivanov,
  * #51)

2013-05-22  David Schweikert  <david@schweikert.ch>
  * Version 3.5
  * Fix sprint_tm buffer size crash (reported by Japheth Cleaver)
  * Addded -D flag to print timestamps (Toke Høiland-Jørgensen)
  * Fix fping6 build on OS X 10.8 (unknown contributor)
  * Fix compatibility issue with FreeBSD (Alexandre Raynaud, Jason Harris,
  * #39)
  * Fping.spec: fix setuid permissions and provides fping6 (Marcus Vinicius
  * Ferreira)
  * Re-create configure script with autoconf 2.69 for aarch64 support (Chuck
  * Anderson, #45)

2012-09-04  David Schweikert  <david@schweikert.ch>
  * Version 3.4
  * Revert "Output statistics to stdout instead of stderr", because it
  * breaks
    tools assuming the output goes to stderr

2012-08-19  David Schweikert  <david@schweikert.ch>
  * Version 3.3
  * Do not output icmp errors with -q (#1)
  * Add --enable-ipv4 and --enable-ipv6 options to configure (Niclas
  * Zeising)
  * Fix removing of unreachable hosts when doing loop (Thomas Liske, #13
  * #23)
  * Fix -A for fping6 (reported by Matt LaPlante, #14)
  * Fix "options inet6" breaking IPv4 name resolution (reported by Matt
  * LaPlante, #17)
  * Output statistics to stdout instead of stderr (suggested by Simon
  * Leinen, #9)
  * Set default data size to 56 bytes on all architectures (#18)
  * Added contrib/fping.spec (Stephen Schaefer, #24)
  * Convert man-page source to POD for easier maintenance
  * Fix error message on DNS error for IPv6 hosts (#27)
  * Fix -n flag in fping6 (#28)
  * Man-page fix: TOS option typo (Thomas Liske, #23)
  * Man-page fix: inconsistency in regards to numeric arguments (Robert
  * Henney)
  * Man-page fix: better description of option -q (#15)

2012-05-29  David Schweikert  <david@schweikert.ch>
  * Version 3.2
  * Improve documentation for -g option (G.W. Haywood)
  * Performance optimization for big select timeouts (#10, Andrey
  * Bondarenko)
  * Fix restart of select call after interrupt signal (#8, Boian Bonev)
  * Fix infinite loop caused by linked list corruption (#11, Boian Bonev)

2012-04-26  David Schweikert  <david@schweikert.ch>
  * Version 3.1
  * -g option (generate): exclude network and broadcast address for cidr
    ranges (idea by Eric Brander)
  * do not explicitely check if running as root, to make it possible to
    install fping with linux capabilities instead of making it setuid
    (setcap cap_net_raw+ep fping)
  * ANSI C (C89) compiler now a requirement
  * Portability fixes
  * Reorganized source directory
  * Bugfix: fix timeout issue on Solaris (Sandor Geller)
  * Man-page fixes (Axel Beckert)
  * Added -H option to specify number of hops (Paul Duda)
  * Output usage information to stdout when called with -h (Paul Duda)

2011-12-28  David Schweikert  <david@schweikert.ch>
  * Version 3.0
  * rewritten main loop for improved performance
  * -T parameter (select timeout) now obsolete
  * Maintenance taken over from unresponsive previous maintainer
    (anybody please step up, if you disagree)
  * New homepage: www.fping.org

2009-12-21  Tobi Oetiker  <tobi@oetiker.ch>
  * Version v2.4b2-to3-ipv6
  * added -On option to set the TOS octet
  * Removed unused variables from code
  * updated to current autoconf standards
  * Merged Debian changes (see below)

----------------------------------------------------------------------

fping (2.4b2-to-ipv6-16.1) unstable; urgency=low

  * NMU during Moenchengladbach BSP
  * Fixes FTBFS on kfreebsd (Closes: #555398)
  * Fixes typo "Paramter" in binary

 -- Axel Beckert <abe@deuxchevaux.org>  Sat, 23 Jan 2010 16:22:02 +0100

fping (2.4b2-to-ipv6-16) unstable; urgency=low

  * Fix the following bugs
    - Network byte order sensitivity was missing completely.
      Added hopefully all missing calls.
    - The sequence numbering scheme used led to packet drops.
      Changed it to a more senseful numbering scheme.
    - Some minor C programming mistakes ('=' instead of '==').
    Patch by Stephan Fuhrmann; closes: #502569
  * Add support for command line select timeout setting
    Patch by Marton Balint; closes: #502575
  * Remove symlinks in /usr/sbin; closes: #377732
  * Standards-Version is 3.8.0

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sat, 18 Oct 2008 12:04:52
 -- +1100

fping (2.4b2-to-ipv6-15) unstable; urgency=low

  * Added interface binding (-I) for fping
    Patch by Peter Naulls <peter@mushroomnetworks.com>
    Closes: #439014
  * Fixed a couple of typos in fping.8. Closes: #423180
  * Added homepage control header
  * Bumped Standards-Version to 3.7.3
  * Fixed the following lintian issue:
    - debian-rules-sets-DH_COMPAT

 -- Anibal Monsalve Salazar <anibal@debian.org>  Mon, 03 Mar 2008 17:46:17
 -- +1100

fping (2.4b2-to-ipv6-13) unstable; urgency=low

  * Fixed stdout flush problem, closes: #340146.
    Patch by Bart Martens <bart.martens@advalvas.be>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Fri, 30 Dec 2005 08:30:09
 -- +1100

fping (2.4b2-to-ipv6-12) unstable; urgency=low

  * Fixed "problem with option -r (retry limit)", closes: #318402.
    Patch by Qingning Huo <qingningh@lanware.co.uk>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sat, 08 Oct 2005 21:26:35
 -- +1000

fping (2.4b2-to-ipv6-11) unstable; urgency=low

  * Fixed "would be useful to specify 'source address' like ping for multi
    homed machines", closes: #198486.
    Patch by Marc Haber <mh+debian-bugs@zugschlus.de>.

 -- Anibal Monsalve Salazar <anibal@debian.org>  Thu, 02 Jun 2005 08:14:54
 -- +1000

fping (2.4b2-to-ipv6-10) unstable; urgency=low

  * Fixed "unnecessary delay with the -c option after the last packet"
    (Closes: #293856). Patch by Niko Tyni <ntyni@iki.fi>

 -- Anibal Monsalve Salazar <anibal@debian.org>  Sun, 06 Feb 2005 23:25:57
 -- +1100

fping (2.4b2-to-ipv6-9) unstable; urgency=low

  * Fixed "fping6 always does reverse lookup" (Closes: #273647).
    Patch by Jeroen Massar and forwarded by Bernhard Schmidt
<berni@birkenwald.de>

 -- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org>  Mon, 10 Jan 2005
 -- 00:01:32 +1100

fping (2.4b2-to-ipv6-7) unstable; urgency=low

  * Build fping in build/ipv[46] instead of build and build-ipv6.
  * Made DNS errors non-fatal for IPv6 (closes: #198056).

 -- Herbert Xu <herbert@debian.org>  Fri, 20 Jun 2003 21:36:30 +1000

fping (2.4b2-to-ipv6-6) unstable; urgency=low

  * Do not use incorrect linux.h file (closes: #85468).

 -- Herbert Xu <herbert@debian.org>  Sat, 17 May 2003 14:13:11 +1000

fping (2.4b2-to-ipv6-5) unstable; urgency=low

  * Fixed yet another divide by zero bug (closes: #148445).

 -- Herbert Xu <herbert@debian.org>  Tue,  4 Jun 2002 12:18:03 +1000

fping (2.4b2-to-ipv6-4) unstable; urgency=low

  * Made fping6 setuid (closes: #136386).
  * Moved fping back into bin.
  * Partially applied IPv6 patch to fix IPv6 checksums (closes: #136479).

 -- Herbert Xu <herbert@debian.org>  Sun,  7 Apr 2002 20:36:56 +1000

fping (2.4b2-to-ipv6-3) unstable; urgency=low

  * Added compatibility symlink for fping (closes: #135203).

 -- Herbert Xu <herbert@debian.org>  Sat, 23 Feb 2002 08:34:11 +1100

fping (2.4b2-to-ipv6-2) unstable; urgency=low

  * Fixed another divide by zero error (closes: #132370).

 -- Herbert Xu <herbert@debian.org>  Thu,  7 Feb 2002 20:10:48 +1100

fping (2.4b2-to-ipv6-1) unstable; urgency=low

  * New upstream release.
  * Install fping into sbin as done by upstream.
jperkin pushed a commit that referenced this issue Aug 12, 2014
2014-07-02 version 0.5.9:

  * Support std::tr1 unordered containers by default (#51, #63, #68, #69)
  * Remove some warnings (#56)
  * Fix segmentation fault after malloc failures (#58, #59)
  * Fix alloc/dealloc mismatch (#52, #61)
  * Fix sample codes (#60, #64)
  * Support implicit conversion from integer to float/double (#54)
  * Improve documents (#45, #75, #82, #83)
  * Support CMake (#20, #87)
  * Remove Ruby dependencies in bootstrap (#86, #87)
  * Add FILE* buffer (#40)
  * Other bug fixes and refactoring: #39, #73, #77, #79, #80, #81, #84, #90
jperkin pushed a commit that referenced this issue Aug 30, 2014
Based on PR pkg/48141 by Tobias Nygren.

1.4.12
======
Bug #3565 - Encryption fails when typing fast (Invalid message from client)
Bug #3606 - GUI is elevated after setup
Bug #3572 - Mac caps lock causes disconnect

1.4.11
======
Feature #12 - Encryption
Feature #421 - Portable version
Bug #2855 - Mouse cursor remains hidden on Mac client (intermittently/randomly)
Bug #3281 - server start on OS X defaults to 'interactive'
Bug #3310 - P&ort in settings screen

1.4.10
======
Bug #2799 - Right shift broken (Windows server, Mac OS X client)
Bug #3302 - GUI does not show/hide when tray icon is double clicked (Windows)
Bug #3303 - Mac OS X IPC integ test fails intermittently
Feature #2974 - Gesture Support for Magic Mouse/Trackpad
Feature #3172 - Button to stop Synergy when in service mode
Feature #3241 - Option to elevate synergyc/s when in service mode
Feature #3242 - Show a list of available IP addresses and screen name on the main screen
Feature #3296 - 64-bit Windows installer should display helpful message on 32-bit Windows
Feature #3300 - Make service mode default mode (now that we have elevate option)
Feature #3301 - Add process mode option to settings (remove startup wizard page)
Feature #3306 - Gatekeeper compatibility on Mac OS X 10.8

1.4.9
=====
Bug #3159 - In service mode, server doesn't start unless GUI is running
Bug #3214 - Client sometimes can't connect if GUI is closed
Bug #56 - Mac OS X server not sending keystrokes to client
Bug #3161 - First time GUI appears, service doesn't send logging
Bug #3164 - In service mode, you need to add a firewall exception
Bug #3166 - Service shutdown stalls when GUI is closed
Bug #3216 - Fatal error if plugins folder doesn't exist
Bug #3221 - ERROR: could not connect to service, error: 2
Feature #3192 - Add support for JOYINFOEX structure to poll game device info
Feature #3202 - Plugin support (sending for primary screen events on Windows only)
Feature #3155 - Cross-platform TCP IPC between GUI and service
Task #3177 - Fix Mac buildslave to build multiple versions
Task #3193 - Add Micro Synergy to repository
Task #3275 - Change hostname label to "IP address or hostname"
Task #3276 - Installation recovery mechanism for synrgyhk.dll

1.4.8
=====
Bug #143: Cursor on Mac OS X goes to center when inactive
Bug #146: Screen Resize causes problems with moving off right-hand side of screen
Bug #3058: Modifier keys not working on Mac OS X server
Bug #3139: Double click too strict (click, move, click should not count)
Bug #3195: Service install can fail first time
Bug #3196: Wizard buttons not visible
Bug #3197: GUI doesn't take focus after install
Bug #3202: Hook DLL (synrgyhk.dll) is not released
Feature #3143: Setup wizard for first time users
Feature #3145: Check for updates
Feature #3174: Startup mode wizard page
Feature #3184: New service for process management

1.4.7
=====
Bug #3132: GUI hides before successful connection
Bug #3133: Can't un-hide GUI on Mac
Feature #3054: Hide synergy[cs] dock icon (Mac OS X)
Feature #3135: Integrate log into main window
Task #3134: Move hotkey warnings to DEBUG

1.4.6
=====
Bug #155: Build error on FreeBSD (missing sentinel in function call)
Bug #571: Synergy SegFaults with "Unknown Quartz Event type: 0x1d"
Bug #617: xrandr rotation on client confines cursor in wrong area
Bug #642: `synergyc --help` segfaults on sparc64 architecture
Bug #652: Stack overflow in getIDForKey
Bug #1071: Can't copy from the Firefox address bar on Linux
Bug #1662: Copying text from remote computer crashes java programs.
Bug #1731: YouTube can cause server to freeze randomly
Bug #2752: Use SAS for ctrl+alt+del on win7
Bug #2763: Double-click broken on Mac OS
Bug #2817: Keypad Subtract has wrong keycode on OS X
Bug #2958: GNOME 3 mouse problem (gnome-shell)
Bug #2962: Clipboard not working on mac client
Bug #3063: Segfault in copy buffer
Bug #3066: Server segfault on clipboard paste
Bug #3089: Comma and Period translated wrong when using the NEO2-layout
Bug #3092: Wrong screen rotation detected
Bug #3105: There doesn't seem to be a system tray available. Quitting
Bug #3116: Memory Leak due to the XInput2 patches
Bug #3117: Dual monitors not detected properly anymore
Feature #3073: Re-introduce auto-start GUI (Windows)
Feature #3076: Re-introduce auto-start backend
Feature #3077: Re-introduce hidden on start
Feature #3091: Add option to remap altgr modifier
Feature #3119: Mac OS X secondary screen
Task #2905: Unit tests: Clipboard classes
Task #3072: Downgrade Linux build machines
Task #3090: CXWindowsKeyState integ test args wrong

(no changelog for prior versions).
jperkin pushed a commit that referenced this issue Apr 20, 2015
* Feature #56: Treat '-' file parameter as stdin.
* Feature #57: Retain escaping of html except within code or pre tags.
* Feature #59: Write image tags with height and width attrs as raw
  html to retain dimensions
jperkin pushed a commit that referenced this issue Apr 24, 2015
* Feature #56: Treat '-' file parameter as stdin.
* Feature #57: Retain escaping of html except within code or pre tags.
* Feature #59: Write image tags with height and width attrs as raw
  html to retain dimensions
jperkin pushed a commit that referenced this issue Dec 14, 2015
Pkgsrc changes:

- use ${PREFIX} for icon path in example.jwmrc
- rename patch files per new format
- add patch comments
- take maintainership


Upstream changes list from
 http://joewing.net/projects/jwm/release-2.3.shtml

JWM v2.3 Release Notes

This is a collection of major changes between JWM v2.2 and JWM v2.3.
Version 2.3.0 was released 20150618.
You can download the latest snapshot of JWM here: jwm-1356.tar.xz.

New Features

  * Added support for client requested XRaiseWindow (issue #117).
  * Added native language support for the confirm dialog.
  * Added support for _NET_RESTACK_WINDOW (issue #118).
  * Added key binding to send the current window to a different desktop (issue
    #119).
  * Support the specification of an alternate configuration file (patch from
    Brian Bidulock)
  * Added Corner option to configure the roundedness of windows.
  * Updated the look of borders around menus and trays.
  * Add support for _NET_WM_MOVERESIZE (issue #142).
  * Add the fullscreen group option (patch from George Shaw).
  * Made window style configuration more consistent (may break old
    configuration files).
  * Add scale background type.
  * Added group options: nomin, nomax, noclose, nomove, noresize (issue #152),
    and nofullscreen (issue #163).
  * Added the Outline tag to MenuStyle to specify the color of menu outlines
    (issue #31).
  * Added the Outline tag to TrayStyle to specify the color of tray outlines.
  * To conform with GNU standards, running "make install" no longer strips the
    executable. To strip the executable, "make install?strip" can be used
    instead.
  * Added the ability to swallow the same client into a tray multiple times.
  * Added the ability to specify where the tray is hidden when auto-hide is
    enabled (issue #34).
  * Menu Includes are now loaded dynamically when a menu is shown rather than
    when JWM starts.
  * Added the sendu, sendd, sendl and sendr key bindings to send a window to a
    different desktop (issue #119).
  * Added the maxh, maxv, maxtop, maxbottom, maxleft and maxright key bindings
    (issues #120 and #157).
  * Added the ability to have separate actions per mouse button for tray
    buttons (issue #171). This is accomplished using the Button tag. For
    example:
    <TrayButton label="My Button">
      <Button mask="1">
        exec:program_for_left_click
      </Button>
      <Button mask="45">
        exec:program_for_scroll_wheel
      </Button>
    </TrayButton>
    The Button tags are optional. By default the action will use mouse button
    mask 123.
  * Add the ability to have separate actions per mouse button for clock tray
    components (issue #171) and the ability to have clock tray components run
    actions like tray buttons (issue #172).
  * Add support for more than 10 menus. Now 26 additional menus can be defined
    using the letters a through z.

Configuration Changes

The following XSLT is available to update JWM v2.2 configuration files for use
with JWM v2.3: jwm-2.3.xslt.

To convert an existing v2.2 configuration file using xsltproc, run:

cp ~/.jwmrc ~/.jwmrc.old
xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc

If you have multiple configuration files, it may be necessary to apply the XSLT
to some or all of them depending on what configuration options are stored in
the file.

A summary of configuration changes follows.

  * The ActiveBackground and ActiveForeground tags have been replaced by
    Background and Foreground under the Active tag. This applies to TrayStyle,
    TaskListStyle, TrayButtonStyle, PagerStyle, and MenuStyle.
  * The Inactive tag under WindowStyle has been removed. The tags that used to
    go within this tag now go directly under the WindowStyle tag.
  * The autohide attribute in Tray now determines where the tray should be
    hidden (left, right, top, bottom, or off) instead of true or false.
  * Now actions in the Clock tag must be prefixed with exec: to run an external
    program.

See the configuration documentation for documentation on all configuration
options.

Bug Fixes

  * ICCCM 2.0 WM_S selection compliance (patch from Brian Bidulock).
  * Fixed client window position after maximize/restore (issue #115, patch from
    Biran Bidulock).
  * Fixed window mapping bug with show desktop (issue #114).
  * Give focus to the top-most window after show desktop (issue #64).
  * Fix uninitialized memory when loading images (patch from Brian Bidulock).
  * Fix overlapping string issue with FriBidi (patch from Brian Bidulock).
  * Fixed non-UTF8 locales (issue #56).
  * Fixed transparency issue with some applications (issue #130).
  * Fixed focus after key events (patch from Brian Bidulock).
  * Fixed loss of focus after restoring windows (issue #131).
  * Fix setting of _NET_WM_STATE_HIDDEN when a window is minimized (issue #133,
    patch from Brian Bidulock).
  * Grab input focus at startup if not already set (issue #148).

Updated Translations

  * Russian (Aleksandr Samusenko)
  * French (Pierrick)
  * Italian (Flavio aka Man from Mars)
  * Spanish (Pablo Lezaeta)

Changes in 2.3.1 (20150628)

  * Added an option to group windows by class in the task bar. (the group
    attribute of the TrayStyle tag).
  * Fixed an issue with menus showing up across monitors when Xinerama is
    enabled.
  * Added the ability to show Motif-style handles on windows (the decorations
    attribute of WindowStyle).
  * Fixed an issue where the next/prev key bindings would not advance past a
    window that does not accept input focus.
  * Fixed the behavior of the Include tag within menus so that it no longer
    creates a submenu.
  * Menus included using Include are no longer loaded each time the menu is
    accessed.
  * Added a Dynamic submenu that will re-load its menu contents each time it is
    accessed.

Changes in 2.3.2 (20150913)

  * Restored the ability to specifiy that windows should not have an icon
    (using the "icon:" group option).
  * JWM will now try several common extensions when loading icons.
  * Fixed the height and default label for dynamic menus (issue #188).
  * Improved handling of colormaps for pseudo-color displays.
  * Fixed handling of WM_STATE on big-endian machines.
  * Fixed an issue with menus getting stuck open.
  * Removed the TaskListStyle, TrayButtonStyle, and ClockStyle configuration
    options. These options are now set from TrayStyle.
  * Added the Hungarian translation (from Hermit).
  * Added the ability to give a 3D look to menus and trays by specifying
    decorations="motif" in MenuStyle and TrayStyle respectively.
  * Fixed an issue where JWM key bindings would not be available to
    applications (issue #201).
  * JWM now highlights the first menu item when opening a menu with the
    keyboard (issue #102).
  * Add the ability to selectively enable popups (issue #189).
  * Various other fixes.

Changes in 2.3.3 (20151118)

  * JWM windows now set _NET_WM_WINDOW_TYPE (issue #223).
  * Added the Chinese translation (from Christopher Meng).
  * Added the height attribute to TaskList (issue #227).
  * Fixed tray button mouse bindings for the scroll wheel buttons (issue #229).
  * Added the restore key binding (issue #233).
  * Made middle-click on a task list item close the window (issue #232).
  * Added support for tooltips in menus (issue #111).
  * Added Portuguese (Brazil) translation (from Holmes).
  * Fixed an issue where the dock would change size if its size was not
    explicitly set (issue #238).
  * Fixed the height calculation of vertical trays (issue #228).

Changes in 2.3.4 (20151122)

  * Now a negative tray width/height can be specified to subtract from the
    screen width/height (issue #250).
  * Added the list configuration option to TrayStyle to allow displaying
    windows from all desktops (all) or only the current desktop (the default,
    desktop) in task lists.
  * Improved scaling of JPEG and SVG images (issue #253).
  * Fixed the rendering of fixed-aspect background images.
  * Added the drag group option (issue #235).
  * Fixed rendering of window borders without a title bar.
mamash pushed a commit that referenced this issue Apr 6, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this issue Apr 7, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this issue Jun 7, 2016
Notable changes between 0.5 and 0.6:

Options from OpenSSL 1.0.2f
Use "any" protocol, but SSL.
Merge pull request #20 from Zash/zash/checkissued
    Method for checking if one certificate issued another
Merge pull request #68 from ignacio/master
    Enables building with LuaRocks and MS compilers
Enables building with LuaRocks and MS compilers
Merge pull request #56 from gleydsonsoares/Makefile-tweaks
    Makefile tweaks
Keep 'sslv23' for compability, but deprected. (it will be removed in the next version)
Merge pull request #62 from gleydsonsoares/update_protocol_samples
    add TLS_method / rename "sslv23" to "any" / update protocol samples.
update protocol samples(bring "tlsv1_2" to clients and "any" to servers)
for consistency and readability, rename "sslv23" to "any" since that it is related to {TLS, SSLv23}methods that handles all supported protocols.
add TLS_method(). for now, keep SSLv23_method() for compatibility.
Update samples (using 'tlsv1').
Merge pull request #55 from gleydsonsoares/ifndef-OPENSSL_NO_SSL3
    guard SSLv3_method() with #ifndef OPENSSL_NO_SSL3
Add lsec_testcontext().
bump MACOSX_VERSION
fix typo; s,intall,install,
guard SSLv3_method() with #ifndef OPENSSL_NO_SSL3
Set flags to compile with internal inet_ntop() by default.
Tag "alpha" explicit.
MinGW progress.
Merge pull request #53 from hishamhm/master
Reuse tag in the LuaSec upstream repository.
Merge pull request #26 from Tieske/master
    Update rockspec to fix Windows build
Alternative implementation to inet_ntop() for old versions of Windows.
Do not hardcode ar
added batch files to generate sample certs on Windows
Perform all validation before allocating structures
Validate signatures too.
    API changes to root:issued([intermediate]*, cert)
Fix inet_ntop() on Windows.
Merge branch 'master' of https://github.com/brunoos/luasec
Merge branch 'moteus_rock'
added bindir to lib section, as mingw links against dll's to be found in bindir
updated defines in rockspec
Merge branch 'master' of github.com:Tieske/luasec into moteus_rock
use winsock 2
Don't set globals from C.
Fix unpack().
Stop using module().
Change to luaL_newlib().
Remove luaL_optint() and luaL_checkint().
BSD headers.
Merge pull request #21 from Zash/zash/iPAddress-fix
    iPAddress encoding
Stop if we don't have a string.
Changed for strict compiles.
Fix for LibreSSL/OPENSSL_NO_COMP
Problem on Win64, since double does not represent SOCKET_INVALID exactly.
- Add a parameter to server:sni(), so that we can accept an unknown name, using the initial context.
- Add the method :getsniname() to retrieve the SNI hostname used.
Updated (and renamed) rockspec Windows
Encode iPAddress fields in human readable form
Don't try to encode IP addresses as UTF-8
Return early if ASN1 string is invalid
Push nil if unable to encode ASN1 string as UTF-8
Return human readable error message from cert:issued()
SNI support.
SNI support.
Merge pull request #17 from Zash/zash/checkkey
    Verify that certificate and key belong together
Merge pull request #19 from Zash/zash/pubkey
    Zash/pubkey
Add cert:pubkey() to methods registry
Add cert:issued(leafcert) for checking chains
Check if private key matches cert only if both key and cert are set
Check that certificate matches private key
Add method for extracting public key, type and size from x509 objects
jperkin pushed a commit that referenced this issue Aug 12, 2016
----------------------------------
Revision: 2.85 Date: 2016/08/04 03:15:58
! Encode.pm bin/enc2xs bin/encguess bin/piconv bin/ucmlint bin/unidump
  Pulled: CVE-2016-1238: avoid loading optional modules from .
  dankogai/p5-encode#58
! Encode.pm t/utf8warnings.t
  Pulled: Rethrow 'utf8' warnings in from_to as well #57
  dankogai/p5-encode#57
! Encode.xs
  Pulled and fixed:
    Encode::utf8: Performance optimization for strict UTF-8 encoder #56
  dankogai/p5-encode#56
! t/Encode.t
  s/use Test/use Test::More/
! t/Encode.t t/decode.t
  Skip tests that pass typeglobs to decode if perl < v5.16
! Encode.xs t/cow.t
  Patched: #115540 (from_to affecting COW strings)
  https://rt.cpan.org/Ticket/Display.html?id=115540
! Encode.xs t/Encode.t t/decode.t
  Merged: RT#115168:
    [PATCH] Passing regex globals to decode() results in wrong result
  https://rt.cpan.org/Ticket/Display.html?id=115168
! Makefile.pl
  Pulled: t/encoding-locale.t fails with Test::More@0.80 or before.
  dankogai/p5-encode#55
! Encode.pm
  Pulled: In-place modifications made explicit in docs for encode(),
  decode() and decode_utf8()
  dankogai/p5-encode#54
jperkin pushed a commit that referenced this issue Aug 24, 2016
Changes:
v0.8.19 2016-03-23  The Irssi team <staff@irssi.org>
	- Fixed regression when joining and parting channels on IRCnet (#435)
	- Fixed SASL EXTERNAL (#432)
	- Fixed regression when not using SASL (#438)
	- Fixed incorrect SSL disconnects when using SSL from modules/scripts
	  (#439)
	- Fixed regression where proxy_string could not be configured or
	  certain file transfers could not be accepted (#445)
	- Fixed storing layout of !channels (#183)
	- Fixed restoration of bracketed paste mode on quit (#449)
	- Make the usage of meta-O for cursor keys configurable with
	      /set term_appkey_mode off

v0.8.18 2016-02-13  The Irssi team <staff@irssi.org>
	* Modules will now require to define a
	      void MODULENAME ## _abicheck(int *version)
	  method to ensure that they are compiled against the correct Irssi
	  version.
	* The signature of "message private" has been changed to
	      5: server, message, nick, address, target
	  in order to support "self messages". Module authors should
	  implement this change if they are using this signal.
	* Removing networks will now remove all attached servers and channels
          (#45).
	* The proxy module now has an /irssiproxy command.
	* sb_search has been moved to scripts.irssi.org
	* WIN32 has been completely removed (it had not been working and is
          lacking a maintainer.)
	* Garbage Collection support has been removed. This will hardly have any
	  effect for anyone given that it has been unsupported for several years.
	+ CAP SASL PLAIN login is now supported natively.
	+ Paste bracket markers can be requested from terminal with
	      /set paste_use_bracketed_mode on
	+ "Self messages" generated by some bouncers can now be received in the
	  proper window.
	+ Try to split long lines on spaces to avoid words being splitted. Adds
	  a new option: 'split_line_on_space' which defaults to on.
	+ Add setting hilight_nick_matches_everywhere (#56).
	+ The config parser is more robust and prints out better diagnostics on
	  incorrect config files.
	+ Ctrl+^ (FS#721) and Ctrl+J can now be bound.
	+ Command history can be cleared with /window history -clear
	+ /hilight -mask -line is now supported (FS#275).
	+ CHANTYPES are now supported.
	+ Improved reload speed of ignores.
	+ Add -date feature to /lastlog
	+ irssiproxy can be more easily enabled and disabled.
	+ Expando for hostname (FS#829).
	+ UNIX sockets can now also be specified in the config file.
	+ Disable SSLv3 due to the POODLE vulnerability.
	+ SSL ciphers can now be specified per server.
	+ Added SNI support for SSL.
	- /ignore now respects -pattern on merge (#78).
	- irssiproxy (BNC) module now uses correct line endings.
	- Fix missing lines on large pastes (FS#905).
	- Correctly preserve STATUSMSG prefixes (#291).
	- Fix infinite recursion in key bindings (FS#817).
	- Fix incomplete awaylog caused by buffering.
	- Fix calculation of UTF-8 string length display in some cases.
	- Fix some Perl warnings related to @isa.
	- EXEC windowitems now get proper references on the Perl side.
	- Incremental help file improvements.
	- ANSI attributes are now properly reset.
	- Fixed regression where text would blink when terminal lacks color
          support.
	- Permit the usage of Freenode extban syntax in /ban (#150)
	- Fixed regression in scriptassist on unload of scripts.
	- Fixed regression in -actcolor %n
jperkin pushed a commit that referenced this issue Aug 24, 2016
NEWS:
Version 2.5.3
-------------
- Updated zoneinfo to 2016d
- Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is
  set to true. (gh issue #233, pr #234)
- Bug in zoneinfo file on platforms such as Google App Engine which do not
  do not allow importing of subprocess.check_call was reported and fixed by
  @savraj (gh issue #239, gh pr #240)
- Fixed incorrect version in documentation (gh issue #235, pr #243)

Version 2.5.2
-------------
- Updated zoneinfo to 2016c
- Fixed parser bug where yearfirst and dayfirst parameters were not being
  respected when no separator was present. (gh issue #81 and #217, pr #229)

Version 2.5.1
-------------
- Updated zoneinfo to 2016b
- Changed MANIFEST.in to explicitly include test suite in source distributions,
  with help from @koobs (gh issue #193, pr #194, #201, #221)
- Explicitly set all line-endings to LF, except for the NEWS file, on a
  per-repository basis (gh pr #218)
- Fixed an issue with improper caching behavior in rruleset objects (gh issue
  #104, pr #207)
- Changed to an explicit error when rrulestr strings contain a missing BYDAY
  (gh issue #162, pr #211)
- tzfile now correctly handles files containing leapcnt (although the leapcnt
  information is not actually used). Contributed by @hjoukl (gh issue #146, pr
  #147)
- Fixed recursive import issue with tz module (gh pr #204)
- Added compatibility between tzwin objects and datetime.time objects (gh issue
  #216, gh pr #219)
- Refactored monolithic test suite by module (gh issue #61, pr #200 and #206)
- Improved test coverage in the relativedelta module (gh pr #215)
- Adjusted documentation to reflect possibly counter-intuitive properties of
  RFC-5545-compliant rrules, and other documentation improvements in the rrule
  module (gh issue #105, gh issue #149 - pointer to the solution by @phep,
  pr #213).


Version 2.5.0
-------------
- Updated zoneinfo to 2016a
- zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py
  script will work with older zoneinfo_metadata.json files, but new metadata
  files will not work with older updatezinfo.py versions. Additionally, we have
  started hosting our own mirror of the Olson databases on a github pages
  site (https://dateutil.github.io/tzdata/) (gh pr #183)
- dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used
  to generate them. (gh issue #27, gh pr #85)
- relativedelta can now be safely subclassed without derived objects reverting
  to base relativedelta objects as a result of arithmetic operations.
  (lp:1010199, gh issue #44, pr #49)
- relativedelta 'weeks' parameter can now be set and retrieved as a property of
  relativedelta instances. (lp: 727525, gh issue #45, pr #49)
- relativedelta now explicitly supports fractional relative weeks, days, hours,
  minutes and seconds. Fractional values in absolute parameters (year, day, etc)
  are now deprecated. (gh issue #40, pr #190)
- relativedelta objects previously did not use microseconds to determine of two
  relativedelta objects were equal. This oversight has been corrected.
  Contributed by @elprans (gh pr #113)
- rrule now has an xafter() method for retrieving multiple recurrences after a
  specified date. (gh pr #38)
- str(rrule) now returns an RFC2445-compliant rrule string, contributed by
  @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160)
- rrule performance under certain conditions has been significantly improved
  thanks to a patch contributed by @dekoza, based on an article by Brian Beck
  (@exogen) (gh pr #136)
- The use of both the 'until' and 'count' parameters is now deprecated as
  inconsistent with RFC2445 (gh pr #62, #185)
- Parsing an empty string will now raise a ValueError, rather than returning the
  datetime passed to the 'default' parameter. (gh issue #78, pr #187)
- tzwinlocal objects now have a meaningful repr() and str() implementation
  (gh issue #148, prs #184 and #186)
- Added equality logic for tzwin and tzwinlocal objects. (gh issue #151,
  pr #180, #184)
- Added some flexibility in subclassing timelex, and switched the default
  behavior over to using string methods rather than comparing against a fixed
  list. (gh pr #122, #139)
- An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576,
  gh issue #51, pr #55)
- An issue with string encoding causing exceptions under certain circumstances
  when tzname() is called was fixed. (gh issue #60, #74, pr #75)
- Parser issue where calling parse() on dates with no day specified when the
  day of the month in the default datetime (which is "today" if unspecified) is
  greater than the number of days in the parsed month was fixed (this issue
  tended to crop up between the 29th and 31st of the month, for obvious reasons)
  (canonical gh issue #25, pr #30, #191)
- Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception
  in certain circumstances. Contributed by @MichaelAquilina (gh pr #91)
- Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed
  by @Bachmann1234 (gh pr #130)
- Fixed parser issue where commas were not a valid separator between seconds
  and microseconds, preventing parsing of ISO 8601 dates. Contributed by
  @ryanss (gh issue #28, pr #106)
- Fixed issue with tzwin encoding in locales with non-Latin alphabets
  (gh issue #92, pr #98)
- Fixed an issue where tzwin was not being properly imported on Windows.
  Contributed by @labrys. (gh pr #134)
- Fixed a problem causing issues importing zoneinfo in certain circumstances.
  Issue and solution contributed by @alexxv (gh issue #97, pr #99)
- Fixed an issue where dateutil timezones were not compatible with basic time
  objects. One of many, many timezone related issues contributed and tested by
  @labrys. (gh issue #132, pr #181)
- Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135,
  pr #141, #142)
- Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly
  parsed from the registry. (gh issue #143, pr #178)
- updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv
  (gh pr #164)
- An issue that arose when timezone locale changes during runtime has been
  fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109)
- Python 3.5 was added to the supported platforms in the metadata (@tacaswell
  gh pr #159) and the test suites (@moreati gh pr #117).
- An issue with tox failing without unittest2 installed in Python 2.6 was fixed
  by @moreati (gh pr #115)
- Several deprecated functions were replaced in the tests by @moreati
  (gh pr #116)
- Improved the logic in Travis and Appveyor to alleviate issues where builds
  were failing due to connection issues when downloading the IANA timezone
  files. In addition to adding our own mirror for the files (gh pr #183), the
  download is now retried a number of times (with a delay) (gh pr #177)
- Many failing doctests were fixed by @moreati. (gh pr #120)
- Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere,
  gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits)
- Added a code coverage tool to the CI to help improve the library. (gh pr #182)
- We now have a mailing list - dateutil@python.org, graciously hosted by
  Python.org.


Version 2.4.2
-------------
- Updated zoneinfo to 2015b.
- Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded
  if not a unicode type. gh #51 (lp:1331576), gh pr #55.
- Fix a parser issue where AM and PM tokens were showing up in fuzzy date
  stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63.
- Missing function "setcachesize" removed from zoneinfo __all__ list by @ryanss,
  fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66).
- (PyPi only) Fix an issue with source distributions not including the test
  suite.


Version 2.4.1
-------------

- Added explicit check for valid hours if AM/PM is specified in parser.
  (gh pr #22, issue #21)
- Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not
  handled properly. (gh pr #35, issue #34)
- Fix error where parser allowed some invalid dates, overwriting existing hours
  with the last 2-digit number in the string. (gh pr #32, issue #31)
- Fix and add test for Python 2.x compatibility with boolean checking of
  relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cédric Krier
  (lp: 1035038)
- Replaced parse() calls with explicit datetime objects in unit tests unrelated
  to parser. (gh pr #36)
- Changed private _byxxx from sets to sorted tuples and fixed one currently
  unreachable bug in _construct_byset. (gh pr #54)
- Additional documentation for parser (gh pr #29, #33, #41) and rrule.
- Formatting fixes to documentation of rrule and README.rst.
- Updated zoneinfo to 2015a.
jperkin pushed a commit that referenced this issue Sep 26, 2016
chat/irssi: security fix, bugfixes
chat/irssi-icb: security fix, bugfixes
chat/irssi-xmpp: security fix, bugfixes

Revisions pulled up:
- chat/irssi-icb/Makefile                                       1.39
- chat/irssi-icb/distinfo                                       1.23-1.24
- chat/irssi-icb/patches/patch-src_core_icb-core.c              1.1
- chat/irssi-icb/patches/patch-src_fe-common_fe-icb.c           1.1
- chat/irssi-xmpp/Makefile                                      1.6-1.7,1.9-1.10
- chat/irssi-xmpp/PLIST                                         1.2
- chat/irssi-xmpp/distinfo                                      1.5-1.6
- chat/irssi/Makefile                                           1.72-1.73
- chat/irssi/Makefile.common                                    1.17-1.18
- chat/irssi/PLIST                                              1.13-1.14
- chat/irssi/distinfo                                           1.35-1.37
- chat/irssi/options.mk                                         1.12
- chat/irssi/patches/patch-scripts_buf.pl                       1.1

---
   Module Name:    pkgsrc
   Committed By:   maya
   Date:           Sun Aug 14 21:10:35 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi: Makefile Makefile.common PLIST distinfo options.mk

   Log Message:
   Update irssi to 0.8.19

   Changes:
   v0.8.19 2016-03-23  The Irssi team <staff%irssi.org@localhost>
           - Fixed regression when joining and parting channels on IRCnet (#435)
           - Fixed SASL EXTERNAL (#432)
           - Fixed regression when not using SASL (#438)
           - Fixed incorrect SSL disconnects when using SSL from modules/scripts
             (#439)
           - Fixed regression where proxy_string could not be configured or
             certain file transfers could not be accepted (#445)
           - Fixed storing layout of !channels (#183)
           - Fixed restoration of bracketed paste mode on quit (#449)
           - Make the usage of meta-O for cursor keys configurable with
                 /set term_appkey_mode off

   v0.8.18 2016-02-13  The Irssi team <staff%irssi.org@localhost>
           * Modules will now require to define a
                 void MODULENAME ## _abicheck(int *version)
             method to ensure that they are compiled against the correct Irssi
             version.
           * The signature of "message private" has been changed to
                 5: server, message, nick, address, target
             in order to support "self messages". Module authors should
             implement this change if they are using this signal.
           * Removing networks will now remove all attached servers and channels
             (#45).
           * The proxy module now has an /irssiproxy command.
           * sb_search has been moved to scripts.irssi.org
           * WIN32 has been completely removed (it had not been working and is
             lacking a maintainer.)
           * Garbage Collection support has been removed. This will hardly have any
             effect for anyone given that it has been unsupported for several years.
           + CAP SASL PLAIN login is now supported natively.
           + Paste bracket markers can be requested from terminal with
                 /set paste_use_bracketed_mode on
           + "Self messages" generated by some bouncers can now be received in the
             proper window.
           + Try to split long lines on spaces to avoid words being splitted. Adds
             a new option: 'split_line_on_space' which defaults to on.
           + Add setting hilight_nick_matches_everywhere (#56).
           + The config parser is more robust and prints out better diagnostics on
             incorrect config files.
           + Ctrl+^ (FS#721) and Ctrl+J can now be bound.
           + Command history can be cleared with /window history -clear
           + /hilight -mask -line is now supported (FS#275).
           + CHANTYPES are now supported.
           + Improved reload speed of ignores.
           + Add -date feature to /lastlog
           + irssiproxy can be more easily enabled and disabled.
           + Expando for hostname (FS#829).
           + UNIX sockets can now also be specified in the config file.
           + Disable SSLv3 due to the POODLE vulnerability.
           + SSL ciphers can now be specified per server.
           + Added SNI support for SSL.
           - /ignore now respects -pattern on merge (#78).
           - irssiproxy (BNC) module now uses correct line endings.
           - Fix missing lines on large pastes (FS#905).
           - Correctly preserve STATUSMSG prefixes (#291).
           - Fix infinite recursion in key bindings (FS#817).
           - Fix incomplete awaylog caused by buffering.
           - Fix calculation of UTF-8 string length display in some cases.
           - Fix some Perl warnings related to @isa.
           - EXEC windowitems now get proper references on the Perl side.
           - Incremental help file improvements.
           - ANSI attributes are now properly reset.
           - Fixed regression where text would blink when terminal lacks color
             support.
           - Permit the usage of Freenode extban syntax in /ban (#150)
           - Fixed regression in scriptassist on unload of scripts.
           - Fixed regression in -actcolor %n

---
   Module Name:    pkgsrc
   Committed By:   leot
   Date:           Sun Aug 14 21:15:12 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi-icb: Makefile distinfo
   Added Files:
           pkgsrc/chat/irssi-icb/patches: patch-src_core_icb-core.c
               patch-src_fe-common_fe-icb.c

   Log Message:
   Add support for irssi>=0.8.18 and update distinfo for irssi-0.8.19 update

---
   Module Name:    pkgsrc
   Committed By:   leot
   Date:           Sun Aug 14 21:16:04 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi-xmpp: Makefile PLIST distinfo

   Log Message:
   Update chat/irssi-xmpp to 0.53

   pkgsrc changes:
    - Drop MAINTAINERship
    - Update distinfo for irssi-0.8.19

   Changes:
   0.53 - 18/03/2016
    - Irssi 0.8.18 support
    - Bug fixes and stability improvements

---
   Module Name:    pkgsrc
   Committed By:   jperkin
   Date:           Mon Sep 19 17:17:27 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi-xmpp: Makefile

   Log Message:
   Use correct linker flags on Darwin.

---
   Module Name:    pkgsrc
   Committed By:   maya
   Date:           Wed Sep 21 20:53:57 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi: Makefile.common PLIST distinfo
           pkgsrc/chat/irssi-icb: distinfo
           pkgsrc/chat/irssi-xmpp: Makefile distinfo

   Log Message:
   irssi: update to 0.8.20, security fix.

   catch up with irssi-icb, irssi-xmpp distinfo (they grab irssi versioned
   file).

   comment out part of irssi-xmpp makefile which is breaking the build.

   irssi 0.8.20 changes:

           - Correct the name of an emitted sasl signal (#484)
           - Correct the prototype for the 'message private' signal (#515)
           - Corrections in away and hilight help text (#477, #518)
           - /squery and /servlist commands have been restored.
           - Where Irssi would previously only report "System error" on connect,
             it will now try harder to retrieve the system error message.
           - Fixed issue with +channels not working properly (#533)
           - Fixed crash in optchan when item has no server (#485)
           - Fixed random remote crash in the nicklist handling (#529)
           - Fixed remote crash due to incorrect bounds checking on
             formats, reported by Gabriel Campana and Adrien Guinet from
             Quarkslab.

---
   Module Name:    pkgsrc
   Committed By:   jperkin
   Date:           Wed Sep 21 20:58:15 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi-xmpp: Makefile

   Log Message:
   Fix Darwin subst.

---
   Module Name:    pkgsrc
   Committed By:   maya
   Date:           Thu Sep 22 09:07:08 UTC 2016

   Modified Files:
           pkgsrc/chat/irssi: Makefile distinfo
   Added Files:
           pkgsrc/chat/irssi/patches: patch-scripts_buf.pl

   Log Message:
   irssi: add patch for buf.pl update as it is shipped with irssi.

   previously it would create a world readable file containing chat
   logs when /upgrade was used.

   while a security fix, you have to jump through many hoops to be
   affected by it - we don't enable perl scripts by default, we
   don't run that perl script by default, and you'd have to know that
   /upgrade exists in the first place, and run on a system where world
   readability of files is a concern.

   still, grab upstream update, bump PKGREVISION.
jperkin pushed a commit that referenced this issue Feb 6, 2017
2016.04
- Implement heap snapshots support, exposed through the profiling API
- Don't mark tc->cur_frame twice during GC
- Move thread object mark into thread root mark, removing a special case in the
  main collector
- Add API for adding a permanent root together with a description
- Mark thread blocked for GC when doing synchronous reads
- Make MVM_bigint_from_num jit-friendly
- JIT coerce_nI as a call to bigint_from_num
- Set debug_name on a few more built-in types
- Add REPR API for getting unmanaged size, implement it for many REPRs
- Fix compile on FreeBSD 9
- Handle single-char build directory names by changing capture to lookahead
- Fix performance of reading very long lines
- Fix utf8-c8 decode crash caused by off-by-1
- Fix a full vs. partial collection detection bug
- Factor unmanaged size into promoted bytes
- Enhance scheme for deciding when to do a full collect
- Bail out if HLL name string index is invalid in bytecode unpack
- Don't try to set flags beyond num_lexicals when reading in call frames
- Adjust byte count when UTF-16 BOM marker consumed
- Fix buffer overrun in utf8-c8 decoding
- Initialize object registers with VMNull when allocating frames, to avoid a
  number of possible segfaults
- Fix incorrect boolification of "" under mode MODE_UNBOX_STR_NOT_EMPTY_OR_ZERO
- Utilize debug_name in nativecall error messages

2016.05
- Use MSVC-provided stdint.h and inttypes.h when possible
- Improved various error messages to include the debug type name
- Eliminate call frame reference counts, instead using a linear call stack for
  frames that never become heap-referenced and using the garbage collector to
  manage those that do
- Tune number of gen2 sized bins
- Improve error reporting in P6opaque's compose function
- Improved GC debugging support to catch more problems
- Fix a race between serialization context resolution and garbage collection
- Add a missing MVMROOT in shell/spawn
- Fix segfault when trying to serialize an uncomposed P6opaque type
- Update the build system to autodetect system provided libs
- Add missing rooting, since the instrumentation level barrier may allocate
- Fix cleanup of temp roots at thread exit
- Add missing rooting of exception message in `die`
- Fix CUnion layout computation GC issues
- Fix data race in clearing of "in inter-gen set" flag
- Various improvements and fixes to the spesh_graph tool
- Add missing optimization of decont_s and decont_u ops
- Eliminate duplicate MVMContext creation code
- Fix full cleanup crash: the NFG uses the FSA, so have to destroy NFG first
- Close dynvar log filehandle in instance destroy
- Clean up cross-thread write logging mutex
- Free debug names in STables
- Free the string_heap_fast_table in CompUnit bodies
- Free permroot descriptions
- Free thread's finalization queue in tc destruction
- Add docs about MVMROOT
- Fix crash when GCing an ended thread
- Implement loadbytecodebuffer and loadbytecodefh ops
- Speed up initialization of non-specialized frames
- Use varints to make serialization of various integers more compact, reducing
  size of compiled output
- Ensure we always produce at least one snapshot when heap profiling
- Remove debug output when taking heap snapshots

2016.06
- Serialize the HLL role field of STables
- Avoid VMNull setup memcpy/loop in specialized frame initialization
- Stop caching MVMContext on a frame
- Use frames directly when serializing closures, rather than having to create
  an MVMContext wrapper for every one
- Write SC index when deserializing, repossessing, and preparing to serialize,
  saving a huge amount of linear scanning
- Only used cached SC index if SC itself matches
- Remove an unrequired memset to clear the args buffer
- Inline args preparation into interpreter, and JIT it directly instead of
  making a call to a tiny function
- Mark getlexcaller as :noinline
- Don't lose handlers during multi-level inlines
- Eliminate loop in P6opaque's get_boxed_ref function, decreasing cost
- Implement payload throw/handler support
- Implement callerlex throwing mode
- Make moar-gdb.py source-able, instead of only autoloadable
- Fix inlining causing wrong lexical handler lookup
- Make build in dir containing space work
- Allow HLL handler for unhandled lexical exception
- Add debug_name to "cannot iterate X with Y REPR" message
- Give "this is not a X iterator" more info, too

2016.07
- Implement a new multi-dispatch cache, structured as a tree, able to hold more
  entries more memory-compactly, and able to cache dispatches involving named
  parameters
- JIT read_fhs op
- Implement elems REPR function for MVMContext
- Implement a BB-splitting manipulation function in the optimizer
- Fix sha1 op to work with null bytes
- Fix bad interaction between profiling and dead allocation elimination; the
  presence of allocation logging would prevent the optimization, leading to
  misleading profiler output results

2016.08
- Don't crash in P6opaque on NULL name_to_index_mapping
- Fix off-by-one in grapheme iterator
- Block/unblock thread for GC on semaphore wait
- Mark blocked around some more lock acquisitions
- Fix various cases of out-dated pointer reads on concurrency control constructs
- Hold uv_sem_t at a level of indirection, so it won't move in memory
- Add a flag for PIPE_MERGED_OUT_ERR; fix stdio setup for merge
- Fix EOF detection when reading files from /proc and similar
- Fix lost socket listen errors
- Implement async cancellation completion notifications
- Add some missing fact dependencies in spesh, fixing some wrong guard
  eliminations
- Avoid use of possibly-invalidated decont facts in spesh
- Remove keep_caller from MVMFrame
- Correctly NULL-terminate the buffer in MVM_vm_dump_file

2016.09
- Do not crash when the container configuration can't be read
- Correctly calculate the work_size when inlining between compilation units
- Validate indices of param_ ops and require checkarity before param_*
- Fix tautological comprison; snprintf returns an int, not a size_t
- Fix tell for files that haven't been read from
- Don't allow zero alignment in P6opaque storage spec
- Index check lexicals when reading static flags
- Add Decoder REPR and a number of ops that provide access to VM-backed
  streaming decoding
- Don't segfault when serializing an uncomposed p6opaque
- Don't read_int into a size_t which is unsigned
- Never leak sym_name from nativecall_build
- Fix a couple of potential leaks in heap snapshots
- Kick arg_ and argconst_ ops from the correct basic block when inlining
- Use HASH_FIND_CACHE instead of HASH_FIND in MVMHash
- Correct wording of named arguments error
- Bounds check for hints in get_attribute and bind_attribute
- Use hints for is_attribute_initialized, and null-check repr_data
- Clean up various unused variables
- Mark thread GC blocked while accepting a socket to prevent deadlocks
- Configure.pl now has an explicit use lib "."
- Fix missing finalization queue cleanup at thread exit
- Mark SC used in bytecode loading as claimed to avoid keeping them around for
  too long
- Fix an error in multi caching of named arguments that could cause lookups to
  fail and the cache to keep growing

2016.10
- Fix build without libtommath source
- Make MVM_file_open_fh() throw if the file we opened was a directory
- Fix bug and memory leaks in MVM_file_open_fh()
- Add error message for likely MacOS build failure
- Don't set inheriting process on inherited pipe, fixing a segfault
- Update to the Unicode 9 database
- Die on CStruct without any fields
- Constant-fold unipropcode and unipvalcode
- Use PRId64 instead of %d for 64 bit int format string args
- "Cannot unbox type object" error gets debugname and native type info
- Fix uninitialized arg_names of an MVMCallsite
- Handle C++ constructors on libffi
- Fix CUnion get_attribute treating inlined attrs as pointers
- Fix 32 bit issue with rw args in NativeCall callbacks
- Use better throw-away type for void nativecalls
- Gracefully handle a 0 RSS reported by the Linux kernel
- Fix "Invalid free()" in empty repossessed arrays
- Make sure we mean "signed char" when we say "char"
- Fix calculating structure sizes for arm64 and others
- Disable JIT on x32, since it has a different calling convention
- Fix pointer size unit in configure message
- Use set_uint64 in from_num, otherwise we overflow on x32
- Rewrite mkdir_p api, no function changes
- Improve nativecall attribute error messages
- Include debug_name in crossthreadwritelog and serialization errors
- Deprecate async string I/O ops
- Deprecate flattenropes op
- Implement indexingoptimized op (replaces flattenropes, but is not in-place)
- Fix memory leadk in ord_basechar_at
- Ensure errno is grabbed before MVM_free is called
- Make extra sure unlock only happens if lock happened

2016.11
- Workaround tommath issue #56 which affects random bigint numbers > 32 bits
- Fix memory leaks in nqp_nfa_run
- Fix a sizeof arg that allocated a much-too-big buffer for callsite arg names
- Add missing breaks in MVMString's copy_to
- Prevent null deref when calling MVM_string_utf16_encode
- Corrections to mkdir on Windows
- Introduce MVM_SPESH_LIMIT, which limits how many specializations will be
  performed; this is useful for debugging which specialized block is to blame
  for a bug
- Make sure we never box a NULL filename when creating backtraces
- Fix the nativecall attribute error messages
- Remove (non-existent) num16 from error message
- Make the fixed size allocator provide useful information to Valgrind
- Implement serialization of SCRef
- Include file/line of unserializable closure, to aid debugging
- Add type info when failing to bind an attribute
- Use ffi_arg type for libffi nativecall return types
- Handle libffi return type more correctly
- Work around missing libatomic_ops prototype on s390x
- Panic when trying to GC a locked mutex
- Make VM panic output state that a panic occurred
- Fix JIT code generation bug in nqp::exception
- Add missing rooting of value pushed to concurrent queue
- Add src/gc/debug.h dependency to Makefile
- Mark a thread GC-blocked while it is in native code
- Have "Cannot * a type object" also outputs the type's debug name
- Don't reveal partially deserialized method cache
- Give a bunch of exception ops REPR and debug name output
- Prevent segfault when null string used as hash key
- Request POSIX.1.c compliance on solaris
- Change to use readdir insteal of readdir_r
- Use GCC on Solaris by default
- Give diagnostic output when compiling fails
- Handle current Solaris compiler not understanding -mt
- Fixed readdir so it won't check old errno
- Work around clock_gettime issue on OSX
- Refactor hashes to no longer need to flatten ropes in string keys
- Save 8 (64-bit) or 4 (32-bit) bytes per entry in the MVMHash REPR
- Remove the deprecated flattenropes op
- Remove now-unused MVM_string_flatten function
- Don't treat an nread of 0 in libuv read callbacks as an error
- Bump to latest libatomic_ops

2016.12
- Decode Latin-1 and UTF-8 strings to 8-bit width when possible
- Teach a few string functions to compress results into 8-bit storage
- Fix for AIX's INFINITY not being a constant
- Unlink libmoar before (re)installing it
- Add configuration for AIX
- Support Perl older than 5.10 for Configure.pl
- Use "pkgconfig --libs libffi" additionally to --cflags
- Fix powerpc detection on AIX (gcc)
- Make multidim error messages say they are multidim
- Add comment about where to find UNIDATA
- Implement captureinnerlex op, for fixing QUIT/LAST phaser scoping in Perl 6
- Fix mis-sized free in the NFG trie that only showed up in 32-bit
- Add GC debug helper to "find" a pointer in nurseries/gen2 bins
- Make ASSERT_NOT_FROMSPACE check fromspaces of all threads
- Fix missing MVMROOT around an allocation
- Fix typo in nfg.h comment
- Fix native callback and GC interaction when embedded
- Add GC block management functions to the public API
- Mark throwpayload* as :throwish in oplist
- Optimize the check for negative bignums
- Remove useless mp_neg calls
- Fix premature free of UV socket handles
- Fix premature handle free in async UDP sockets
- Add a "check every register access" GC debug mode
- Provide a #define to disable dynlex caching
- Provide a #define for deopt logging
- Invalidate dynlex caches during deopt
- Fix pow_I when it takes an exponent larger than 2**32
- Only do MVM_ASSERT_NOT_FROMSPACE in GC debug mode
- Add a fromspace assertion in finalize
- Avoid a number of spesh GC invariant violations
- Panic if we try to GC when speshing/JITing
- Ensure we don't leak partially deserialized objects
- Fix unrooted frame around SC object lookup
- Remove some GC debug code
- Avoid reading nativerefs in spesh, since it can cause boxing and thus GC
- Cope with push being used on concurrent queues
- MVMROOT around putting work on concurrent queue
- MVMROOT eventloop queue when polling it
- Do MVM_ASSIGN_REF after block/unblock in concurrent queue
- Fix more unrooted frame around SC object lookup

2017.01
- Extract spesh block allocator from spesh, for wider use
- Add a number of missing MVMROOTs, which could lead to outdated pointers; also
  removed some unrequired MVMROOTs
- Fix arg_flags allocation sizes
- Remove an obsolete path from ldrpath
- Check lexical accesses in GC debug mode 2 also
- Add a #define to turn on inline logging
- Fix callstack reset bug, which could corrupt deeply recursing callstacks
- Don't allow re-compose of a P6opaque
- Add a new unicmp_s op, which compares using the Unicode Collation Algorithm
- Make sure we generate all values of the Line_Break property
- Re-implement utf8-c8 encoding, fixing bugs and ensuring that non-NFC input
  will round-trip properly also
- Implement Bidi_Mirroring_Glyph as an integer property
- Implement Emoji grapheme breaking and other combined codes
- Add support for Grapheme_Cluster_Break=Prepend from Unicode 9.0
- Make sure we break after Prepend if it's a control character
- Add a script to download the latest version of all of the Unicode data
- Missing rooting GC in rare exit handler case
- Implement new setdispatcherfor op and add JIT for it
- Use much faster atoi function in normalizer; 14% less CPU use when slurping a
  file in UTF-8 encoding
- For Decompose_Type, use int lookup instead of str for better performance
- Fix heap snapshot crash on eventloop thread
- Use /usr/bin/env perl for ./Configure.pl
- Don't break after ZWJ or for MALE SIGN and FEMALE SIGN
- Take into account actual allocated size of I/O buffers in gen2 promotion
  statistics
- Tweak full collection criteria in heap profiling
- Free up spesh log slots after specialization, avoiding some leaks
- Removed the getregref_ ops (unused by NQP or Perl 6)
- Removed the continuationclone op (unused by Perl 6)
- Enforce one-shot invocation of continuations
- Greatly simplify handling of call frame working register lifetimes, leading
  to consistently shorter lifetimes, less memory pressure, and faster calling
- Eliminate now-unused `tc` field in MVMFrame, saving a pointer per callframe
- Simplify args cleanup functions
- Reduce number of checks in call frame marking, making it faster
- Implement getstrfromname op, to get named Unicode sequences
- Fix GC in spesh triggered by managed mutex use
- Fix data race in inlining extop fixup
- Fix data race in callsite fixup during inlining
- Fix data race in string fixup during inlining
- Fix charname lookups of LINE FEED and CARRIAGE RETURN
- Remove Unicode 1 names and add Unicode Name Aliases
- Convert MVM_malloc+memset to MVM_calloc
- Clean out ancient "remove after rebootstrap" line
- Fix typo in MVM_CALLSTACK_REGIONS_SIZE's name
- Fix missing cleanup of managed DecodeStream
- Have DecodeStrem clean leftover char buffers
- Fix a typo in decode stream destroy function
jperkin pushed a commit that referenced this issue Apr 10, 2017
----------------------------------------------
1.049     2017-03-28 16:02:10-05:00 America/Chicago
    [Fixed]
    - Fixed failing tests on Windows because of path separator
      interpolation. Thanks @nanis [Github #56]

    - Added explicit core dependency on Sys::Syslog in case of Perls
      with non-standard core libraries. Thanks @nanis [Github #57]

1.048     2017-03-27 15:16:12-05:00 America/Chicago
    - No changes since 1.047 trial release

1.047     2017-03-22 20:22:47-05:00 America/Chicago (TRIAL RELEASE)
    [Fixed]
    - Fixed backwards-compatibility with users using the Unix::Syslog
      macros in Log::Any::Adapter::Syslog. This requires that the user
      have Unix::Syslog installed (which Log::Any does not explicitly
      depend on).

    - Log level aliases are now case-insensitive to match the regular
      log levels. Prior to this, "WARNING", "Warning", and "warning"
      would all work, but "WARN", and "Warn" would not, only "warn".
      Thanks to @0x62ash for reporting this issue. [Github #55]

    - Invalid log levels for the File, Stderr, and Stdout adapters now
      result in a warning, and the default level of "trace" is used.
      Previously, no warning would be issued and no logs would be
      generated. Thanks to @0x62ash for reporting this issue. [Github
      #55]

1.046     2017-01-11 21:22:57-06:00 America/Chicago (TRIAL RELEASE)
    [Added]
    - The Syslog adapter is now part of the core distribution, since it
      relies only on core Perl modules.
jperkin pushed a commit that referenced this issue Apr 18, 2017
pkgsrc changes:
 - Use REPLACE_PYTHON instead of REPLACE_INTERPRETER (no functional changes
   intended)
 - Use ALTERNATIVE and instruct PLIST and Makefile post-install target
   accordingly to permit coexistence of multi-pkgs py-cssutils

Changes:
1.0.2 170304
------------
 - FIXED issue #61: Nesting of `@media` rules
 - FIXED issue #51 and #56: Slow font-family regex
 - FIXED issue #68: failing tests on Python 3
 - FIXED issue #69: our DOM implementation now delegates unsupported methods
 - FIXED issue #72: importing now faster since regexes are no longer pre-cached on import time

1.0.1 151008
------------
 - Fixed Python 3.5 compatibility
jperkin pushed a commit that referenced this issue Jun 21, 2017
removed.

2017.06

- Make coerce_s_n work more like the Perl 6 Str.Num method
- Eliminate socket string I/O
- Re-implement synchronous sockets without using libuv, enabling them to
  be passed between threads
- Add ability to get port from already bind-ed socket
- Add cpucores op to get the number of CPU cores
- Fix inconsistency in decode stream take bytes API, so it returns null
  if that number of bytes is not available
- Fix memory leak in syncpipe
- Removed unsed header file in threads.c
- Remove unused args to bind_stdio_handle
- Remove char-level I/O ops and the functions they called
- Remove char-level I/O from synchronous I/O vtables
- Remove unused encoding option in dir handle
- Re-implement print/say debug output ops to encode and then use binary
  I/O
- Eliminate use of libuv in synchronous file handles
- Switch standard handles to use the new synchronous file handle code,
  which means they can now be safely used from multiple threads also
- Remove unused ->filename slot of syncfile
- Debugging aid for introspecting P6opaque objects
- Support merge_bytes in async proc ops, for reading STDOUT and STDERR
  together
- Support binding handles to file descriptors in async procs
- Fix off-by-one in profiler node GC
- Add string eqat/index ignorecase+ignoremark functions
- Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark
- Use norm instead of n for the normalizer variable
- Add improved support for GCB=Prepend
- Improve Regional Indicators support during normalization
- Serialize a Decoder REPR object into null, so incidental file handle
  serialization in Perl 6 does not blow up
- Improve named argument optimization, so we can specialize and throw
  out instructions in more cases
- JIT decodertakeline
- Fix missed opportunity to run JITted code
- Have inline log note what couldn't inline also
- Remove successor when optional named argument is passed, so default
  code can be eliminated
- Flag writers that die when a basic block is eliminated, and disregard
  them in PHI node analysis, provide more precise type information
- Make a basic block elimination pre-pass before the main optimization
  work
- Set dead writer when deleting instructions also, to further aid PHI
  merges
- Track which basic blocks are part of a jump list
- Delete pointless goto instructions (those at the end of a basic block
  that simply go to the next block)
- Remove bad Windows quoting option async proc code
- Actually log inlines to stderr as the comment up top claims
- Make find_separator only look at the last chars, which is far cheaper
- Add help text for environment variables to Configure
- Move NFG initialization into nfg.c
- Cache CRLF grapheme value
- Cache maximum separator length, to save recomputing it for every line
  that is read
- Cache a list of final separator graphemes, for faster stopper
  detection in streaming decoders
- Introduce a max final grapheme codepoint filter, for faster stopper
  detection in streaming decoders
- Add a UTF-8 decoding fast-path that doesn't need to go through the
  full normalizer
- Keep last freed chars buffer handy for re-use in streaming decoder
- Make a smarter guess at decode result buffer size in streaming decoder
- Don't copy when we can steal decoder output, saving a memory copy in
  most line reading operations
- Various micro-optimizations to UTF-8 decoding fast path
- Fix newline translation in various encoding's streaming decoder


2017.05

- Mark profiler call graphs iteratively instead of recursively
- Keep around line number annotations in spesh, for more accurate source
  position information for coverage data in specialized code
- Introduce "telemeh", a high-precision-time low-impact logger
- Fix error reporting in chdir
- Fix memory leak on error in chdir
- Travis: readlink doesn't have `-f` on MacOS so make our own solution
- Fix bug in index ignorecase and equal at ignorecase
- Fix all known remaining bugs in indexic and eqatic
- Zero slot when popping a VMArray, to avoid junk reads if it grows
  again later
- Add can_fit_into_8bit funct, put logic used many places into one
  function
- Use -1 instead of 0 when long right-shifting negative smallints
- Remove workaround for tommath issue #56, which is now fixed upstream
- Don't crash on reading a closed dir handle
- Remove deprecated async string I/O ops

2017.04

- Shorten the nursery when creating large bigints, to bring GC forward
  and resolve excessive memory use
- Use correct format for repeat/concat errors
- Fix bug in indexic_s if expanding codepoint is the last codepoint
- Special case "\r\n" in MVM_nfg_is_concat_stable for performance
  reasons
- Further optimize MVM_nfg_is_concat_stable to speed up concatenation
- Do not set use rpath if installing into proper system locations
- Optimize passes_quickcheck_and_zero_ccc to be much faster
- Give this_repr constants more meaningful names to aid debugging
- Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s
- Fix case-insensitive string compare bug when synthetics are in the
  haystack
- Improve description for "should eventually be unreachable" error
- Correctly detect and handle overflow in mp_get_int64
- Split into mp_get_int64 and mp_get_uint64
- Only allocate and normalize for cp's that require it in
  MVM_string_chr, and short-circuit Unicode property test for codepoints
below 0x300
- Provide a better error when failing to encode surrogates in UTF-8
- Add a cast to suppress a compiler warning in strings/ops.c
- Factor out code from equal_at_ignore_case for use in index_ignore_case
  also
- Use both hex and decimal for UTF8 encoding error messages
- Add parentheses in various places to suppress compiler warnings
- Use PRIu64 in fprintf's to fix compiler warning about incorrect types
- Add a check that introspection->is_tty is not NULL, avoiding a crash
- Mention debug_name in errors about uncomposed repr
- Add new --coverage option for Configure.pl
- First prototype of a per-line coverage reporter, enabled by setting
  MVM_COVERAGE_LOG
- Cope with a native type with no nativesize, but signedness
- Remove two functions in normalize.c that have been superseded
- Give collapse_strands a 5.4% speed boost under some workloads
- Add MVM_string_graphs_nocheck funct, use it in places we previously
  already checked
- Have a two-part loop in collapse strands to make loop tighter when
  possible
- Implement serialize/deserialize in VMHash REPR
- Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds
  the FreeBSD memmem.c for use on Windows
- Fix a join NFG bug when there was an empty string and an empty
  seperator
- Reorder MVMStaticFrameBody to save 16 bytes according to pahole;
  similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8
bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader
- Remove arbitrary and small length range check for reading bytes from a
  file
- Remove unused defines in threadcontext.h
- Greatly reduce contention in the fixed-size allocator for
  multi-threaded programs, giving up to 40% speedup in some cases
- Add continuous coverage analysis to Travis builds, along with other
  Travis improvements
- Mark thread GC blocked when doing synchronous writes
- Add missing MVMROOT when reading bytes, which could result in
  occasional data loss

2017.03

- Fix some missing variable initializations
- Set effective_handlers in context-only frame
- Streamline code in hash computation, hopefully fixing a Coverity
  warning
- Detect and throw on over-size array
- Put in a limit for codepoints in a grapheme, to avoid various
  overflows
- Fix a missing NULL check at end of profiling
- Panic when a new thread context can't create an uv_loop
- Better handling of out of memory when creating a thread
- Another attempt at silencing the pthread_yield warnings
- Missing GC block marking in event loop starting, fixing a deadlock
- Fix CArray marshalling of type objects
- Provide a way to put Decoder in nl-translate mode
- Ensure Decoder REPR never sees concurrent use
- Debug option to detect concurrent VMArray use
- Encode strings as UTF-8 in MVM_unicode_string_from_name
- Reword exception message for read() outside original thread
- Check that results of repeat/concat fit in an MVMString
- Fix div_i JIT round to negative infinity
- Ignore SIGPIPE by default
- Only start readers if a process spawned OK
- Remove deprecated char-mode async proc reading
- Signal error to stdout/stderr on spawn failure
- Do gen2 sweep before letting stolen threads go, fixing occasional
  SEGVs
- Turn libtommath dependency into a submodule, use a MoarVM fork
- Update libtommath fork to have expmod hang fix
- Change MVM_string_equal_at_ignore_case to use fc
- Fix MVM_string_equal_at_ignore_case when folding the haystack changes
  length
- Mention debug name and REPR name in "requires obj with repr X" errors
- Remove unneeded variable in MVM_string_index
- Add MVM_string_index_ignore_case function and indexic_s op
- A range of improvements to the MoarVM GDB plug-in

2017.02

- Fix format strings that warn during compile
- Implement missing cleanup of async task handles, fixing a memory leak
- Make Unicode sequence and codepoint name lookup case-insensitive
- Add Unicode sequences from NamedSequences.txt in the Unicode database
- Remove second declaration of MVM_frame_destroy
- JIT MVM_radix()
- Make radix and radix_I 50% faster with Unicode Nd
- Add East_Asian_Width prop
- Fix memory leaks in synchronous sockets
- Fix crashes in socket connect error handling
- Don't leak memory in STable repossession
- Missing MVMROOT around a lock acquisition
- Refuse to form an NFA with a zeroed to-state
- Add data section for JIT code, and use it for extop 'fake' registers
- Correct typo in NFG trie node struct name
- Fix overflow in div_i op
- Implement support for synthetic graphemes in
  MVM_unicode_string_compare
- Implement configurable collation_mode for MVM_unicode_string_compare
- Use LDFLAGS in ld invocations
- On Windows, create UTF-8 encoded argv upon program entry
- On Windows, populate environment hash from Unicode environment
- Some additional heuristics to cut down on cross-thread write log
  output
- Fix abs_n op for negative zeros
- Sort out semantics of closed async sockets
- Fix overflow on 32-bit systems in is_full_collection()
- Rename MVMArray file and constant to VMArray
- Remove bogus indication that MoarVM builds on `cygwin`
- Use utf8 for unicode_db files
- Fix invalid read when GC was triggered in the string repeat op
- Don't call MVM_string_graphs twice in indexing op, plus cleanup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants