Deepend is a set of storage pools for Ada 95, Ada 2005, and Ada 2012 that includes subpool capabilities. Groups of memory allocations from a storage pool can be assigned to specific subpools where groups of objects can be deallocated as a group by deallocating the subpool, rather than by individual deallocations of objects.

Each subpool is "owned" by a specific task in Ada, allowing allocations and deallocations to be efficient, as well as being safer and less error prone.

Since version 3.4, the most notable changes are:

Ada 2012 subpools were not working in version 3.4, but now work properly with the Ada 2012 subpool syntax.

It is now possible to set task ownership of the storage pool itself, as well as subpools.

Portability changes made to integrate with PTC's ObjectAda 64bit compiler for Ada 2005 and Ada 95

Memory allocations returned by the generic allocators were not initializing memory. This is important for types that have discriminants or tags. Now memory is initialised which is consistent with behaviour when one uses Ada's "new" keyword syntax to provide the allocations.

The generic allocator routines now support allocating unconstrained types, such as strings.