##############
Meliae Changes
##############

.. contents:: List of Releases
   :depth: 1

Meliae 0.2.1
############

:0.2.1: 2010-07-20

* When dumping a ``PyFrame`` look at the function object for
  ``co_name``, so you don't have to wander through the references to
  get their yourself. (Andrew Bennetts)

* Fixes for the simple regex parser (w/o simplejson). However,
  simplejson is still recommended, because it is both faster and more
  accurate (decodes unicode escapes, etc). (John Arbash Meinel)

* ``loader.load()`` now defaults to computing parents and collapsing
  instance dicts. It does mean that loading will be a bit slower, and
  consume more memory, but it is almost always what you need to do
  first anyway. (John Arbash Meinel)


Meliae 0.2.1rc1
###############

:0.2.1rc1: 2010-06-30

* Avoid calling ``PyType_Type.tp_traverse`` when the argument is not a
  heap-class. There is an assert that gets tripped if you are running a
  debug build (or something to do with how Fedora builds its python).
  (John Arbash Meinel, #586122)

* Flush the file handle before exiting. We were doing it at the Python
  layer, but that might not translate into the ``FILE*`` object.
  (John Arbash Meinel, #428165)

* Handle some issues when using Pyrex 0.9.8.4. It was treating
  ``<unsigned long>`` as casting the object pointer, not as a Python
  level "extract an integer". However, assignment to an ``cdef unsigned
  long`` does the right thing. (John Arbash Meinel)

* Tweak some memory performance issues (Gary Poster, #581918)


Meliae 0.2.0
############

:0.2.0: 2010-01-08

A fairly major reworking of the internals, provides significant memory
savings and easier navigation of the object graph.


New Features
************

* The loader internals have been rewritten significantly. Instead of
  storing a bunch of objects in a regular python dict, they are now
  stored in a custom Pyrex collection, and proxy objects are created on
  demand.  This means significantly improved memory usage. (roughly
  2:1). (John Arbash Meinel)

* The internals change also changes the interface a bit. When viewing
  an object, a shorter display is given. One can use ``obj[offset]`` to
  get the object at that reference, rather than the reference itself.
  (so fewer indirections through the ObjManager). (John Arbash Meinel)

* Now supports the ``__sizeof__`` interface introduced in python 2.6.
  This allows a class (especially extension classes) to inform
  Meliae/Python how many bytes it is consuming in memory.
  (John Arbash Meinel)

* Memory objects now use a ``.children`` and ``.parents`` notation,
  rather than ``.ref_list`` and ``.referrers``. For one, this makes it
  clearer as 'referred to' and 'referred from' is a bit tricky. We also
  now have ``.c`` and ``.p`` which return a list of Memory objects,
  rather than just a list of addresses. This makes it very quick to
  move around. Especially with ``.refs_as_dict`` and other such
  niceties. (John Arbash Meinel)


Bug Fixes
*********

* Some 


.. vim: tw=71 ft=rst
