I am pleased to announce the availability of Deepend version 3.2.
Deepend is a suite of dynamic storage pools with subpool capabilities
for Ada 95, Ada 2005, and Ada 2012.
Bounded and unbounded storage pools types are provided.
Storage pools with subpool capabilities allow all objects in a subpool
to be reclaimed all at once, instead of requiring each object to be
individually reclaimed one at a time. Deepend storage pools are more
efficient and safer than other schemes and can eliminate the need for
Unchecked_Deallocations. A Dynamic Pool may have any number of
Deepend can be downloaded from;
Differences since last release include;
- Ada 95 versions of the packages added
- Added Bounded forms for all the storage pool types.
- Added exception handling, and allowed scoped subpools to not be
allocated from the heap.
- Storage_Size call fixed to match description in the Ada Standard.
It is supposed to return the size of all storage allocated, including
free storage and used storage. Previously, Deepend was reporting the
amount of used storage. Instead, a new call, Storage_Used exists,
which now reports the amount of used storage.
- Scoped subpools are no longer created by the Create_Subpool call.
Instead they are just declared with appropriate discriminants.
- Fix bug with deallocation subpools, which needed to call the base
class, but then ensure not calling back into the protected object,
which caused hanging.
- Added accessibility check suppressions for Ada 2012 test code.
- Split source into three folders for Ada 95, Ada 2005, and Ada 2012
- Removed assertions that the size of the allocation had to be <=
the size of the block size. This restriction was unnecessary, as the
code will allocate a larger block if necessary to accommodate the
- Added portability restrictions to Ada 2012 version of the code
- Removed non-portable use of System.Task_Info package
- Moved pragma Precondition and Postcondition for Ada 2005 version to
body as portable assertions.
- Removed compile time warnings that were incorrect or no longer needed.