I am pleased to announce the availability of Deepend 3.0.
Deepend is a dynamic storage pool with Subpool capabilities for Ada 2005
and Ada 2012 where all the objects in a subpool can be reclaimed all at
once, instead of requiring each object to be individually reclaimed one
at a time. A Dynamic Pool may have any number of subpools. If subpools
are not reclaimed prior to finalization of the pool, then they are
finalized when the pool is finalized.
Rather than deallocate items individually which is error prone and
susceptible to memory leaks and other memory issues, a subpool can be
freed all at once automatically when the pool object goes out of scope.
With this Storage pool, Unchecked_Deallocation is implemented as a No-Op
(null procedure), because it is not needed or intended to be used.
Subpool based storage management provides a safer means of memory
management, which can outperform other mechanisms for storage
reclamation including garbage collection.
Major differences in this release:
- Ada 2012 version is available which utilizes the new
System.Storage_Pools.Subpools package defined in the Ada2012 standard.
- Ada 2012 version allows objects of unconstrained types, and objects
that need finalization such as protected objects and controlled types
to be allocated to subpools. These objects are properly finalized when
the subpool is deallocated.
- Ada 2012 version uses other new features of the language, including
in out parameters for function calls instead of access parameters,
and provides a default discriminant for the Dynamic_Pool type. Pre
and Post conditions are also used.
- The Storage_Size primitive is now implemented so that it reports the
amount of storage currently used
- The Binary_Tree benchmark that uses access type finalization was
updated to use the Basic_Dynamic_Pools package instead of the
Dynamic_Pools package, since that particular test does not use subpools.
The latest stable release and older releases may be downloaded from;