1.2.5
-----------------------------------
- ci: dropping travis in favor or github-workflow
- python/gcc/clang versions updated

1.2.4
-----------------------------------
- prophyc: python codecs use relative imports proper for:
  * in-package and out-of-package imports
  * py2 and py3 language versions

1.2.3
-----------------------------------
- prophy: adding class comparison handlers for struct, union and enum
- prophyc: bitwise or in isar frontend bugfix
- prophyc: prophy backend docstring bugfix

1.2.2
-----------------------------------
- prophyc.generators.python: adding utf-8 encoding shebang
- prophyc.generators: prophy & python: reinforced unicode support for python2

1.2.1
-----------------------------------
- adopting to newer renew version: 0.4.1
- fixing ISAR unicode bug introduced in 1.2.0

# warning for python2: this version had troubles generating python codec with unicode characters
# please use 1.2.2 instead, works well with python3.x however

1.2.0
-----------------------------------
- prophyc.generators.prophy: introduced prophy language generator
- prophyc.generators.python:
  * generated source code is pep8-compliant (at least much more than it was before)
  * generated imports do not use asterisk, implicitly lists imported names
  * generated file contains annotation about fact of being generated by prophy
- prophyc.parsers.isar collects docstrings
- prophyc.model:
  * refactor performed, shaped nodes' inheritance tree
  * each node gets reproducible repr() (added renew package as dependency)
  * each node gets str implementation that returns its prophy language representation
  * each node may have a doc-string
  * node name and docstring can be defined in unicode (special care in python2)
  * Constant can be defined with numbers in hexadecimal literal format

# warning for python2: this version had troubles parsing XML's and generating python and prophy code
# with unicode characters, please use 1.2.2 instead, works well with python3.x however

1.1.2
-----------------------------------
- prophyc: python3 bug in C++ frontend fixed (libclang invocation contained unicode strings)

1.1.1
-----------------------------------
- prophy: decoding exceptions contain information about decoded type
- prophyc: sack parser processes isar-using hpp files with array members
- prophyc: bugfix - option parsing doesn't throws exception out of interpreter

1.1.0
-----------------------------------
- prophyc: can be invoked directly from python code
- prophyc: sack parser can implicity include definitionos from isar files
- prophyc: enums also included in model even if not used in structures
- prophy: forgiving misspelling in sizer name of ext sized array

1.0.2
-----------------------------------
- prophyc: sack parser properly handles typedef in namespace
- prophyc: sack parser prefers clangs up to 3.5, they don't ship with builtin headers (e.g. "stddef.h")

1.0.1
-----------------------------------
- prophy: copy_from works for optional fields
- prophyc: sack parser adapted to clang 391

1.0.0
-----------------------------------
- prophyc: clang python plugin vendored, libclang.so found more easily
- prophyc: isar parser: negative enum values treated as large unsigned numbers, like in sack
- prophyc: isar parser: optional struct member is optional according to attribute value, not presence
- prophy_cpp: packed attribute used in --cpp_out structs declarations
- prophy: python3 prints structs with bytes fields correctly
- housekeeping:
    - travis and tox improved
    - coverage added
    - flake8-compliant

0.8
-----------------------------------
- prophyc: raw cpp codec:
    - ensures naturally aligned message layouts by
      filling fields and compiler attribute setting alignment
    - fails generation if AST is not complete
      (missing size-related information)
    - may fail to compile on non-gcc and non-cgt compliant compiler
      (__attribute__((aligned(N))) used)
- prophyc: compiler pass evaluating alignments/sizes/paddings fires warnings
- prophyc: patch static may accept identifiers

0.7.8
-----------------------------------
- prophyc: cpp and cpp_full generator puts 'u' suffix in
  positive integer literals. It's meant not to increase
  deduced int type size over 'int' unnecessarily.

0.7.7
-----------------------------------
- prophyc: quiet option to silence warnings
- prophyc: patch extension by struct and rename
- prophy python library: struct and union introspection

0.7.6
-----------------------------------
- prophyc: ply parser tables concurrent filesystem access bug solved

0.7.5
-----------------------------------
- prophy & prophyc: support for extsized arrays

0.7.4
-----------------------------------
- prophyc: isar parser supports two-dimensional array

0.7.3
-----------------------------------
- prophyc: sack parser properly parses files with .h and .c extensions

0.7.2
-----------------------------------
- prophyc: isar parser treats non-trivial include paths correctly

0.7.1
-----------------------------------
- prophyc: python output imports by leaf filename without parent directories

0.7
-----------------------------------
- prophy & prophyc: python 3.4 support added

0.6
-----------------------------------
- prophyc: isar mode includes
- prophyc: sack mode warnings and errors
- prophyc: prophylang mode includes
- prophyc: prophylang constant, enumerator and struct array size expressions

0.5.1
-----------------------------------
- prophyc cpp output: generated headers contain declarations of swap template functions
- prophy cpp library: single swap function template and implementation details hidden

0.5
-----------------------------------
- new cpp full output, exposes structs and unions as classes with value semantics,
  provides means to encode/decode them in different endiannesses and print them
- prophy python library: union/optional alignment/padding bug fixed
- prophy python library: padding is always encoded after struct, even if it ends with an array
- prophy python library: empty line in stringified struct with empty optional field bug fixed
- documentation: encoding padding explained in-depth

0.4.2
-----------------------------------
- added documentation
- python prophy: encoding and decoding optimized

0.4.1
-----------------------------------
- installs dependencies automatically,
  dependency on plyplus removed, plain ply used instead
- prophyc: parsing error checking and reporting improved
- prophyc: version showing
- prophy: fixed array decoding error with array size bigger than 255
- prophy: version attribute

0.4
-----------------------------------
- prophyc: dedicated input language based on xdr and thrift

0.3
-----------------------------------

- prophyc: cpp output added
- prophyc: bitMaskOr and shiftLeft operators are translated by isar parser
- cpp prophy: new output consists of structs defining messages and endianness swap algorithms
- python prophy: messages with multiple dynamic fields are split in parts in such way that
  first part has alignment of all fields and each following part has alignment of its fields

0.2.5
-----------------------------------

- prophyc sorts symbols accorting to dependencies also in patched sack case
- prophy copy_from bug fixed

0.2.4
-----------------------------------

- prophyc sack mode doesn't use libclang to cross-compile for 32-bit platform
- prophyc sack mode removes all non-alphanumeric chars from identifiers in generic way
- prophy adds padding dynamically, which allows more freedom in using etc. strings

0.2.3
-----------------------------------

- prophyc dependency-sorts nodes in its model again after patching

0.2.2
-----------------------------------

- prophyc sack parses anonymous structs in files with hyphens in path name correctly

0.2.1
-----------------------------------

- prophyc sack parser parses incomplete arrays

0.2
-----------------------------------

- prophy structs, unions and arrays with enums return enum type instances instead of ints
  enum instance has access to enumerator name string

0.1
-----------------------------------

- isar input (xml parser from standard library)
- sack input (C++ parser based on python clang and libclang, version at least 3.4)
- python output (python descriptors turned into codecs by python prophy library)
- patch mechanism (allows to modify parsed structures before rendering output)

