Dequesterity v1.5 released
2016-04-22 Filed in: Tech Library
(Buffers of many shapes and sizes)
Dequesterity is a set of Ada 2005 generics that provide various forms of general purpose buffer containers.
Buffers may be used as deques, queues, ring buffers, stacks, double ended stacks, vectors, priority queues, and similar abstractions.
There are various concurrent buffers, priority buffers, streaming buffers, remote buffers. In fact there are now over 100 buffer packages to choose from.
This release mostly fixes some issues with the streaming Ravenscar buffers.https://sourceforge.net/projects/dequesterity/files/
Thanks to Daniel for alerting me to the fact that the Ravenscar examples were no longer compiling.
Those examples were no longer compiling with the GNAT GPL 2015 version of the compiler. The compilations were failing due to violations of the Ravenscar
restrictions, No_Protected_Type_Allocators and No_Local_Protected_Objects.
I believe these are valid restrictions that just were not being caught in earlier versions of the compiler. The problem is that the Stream Buffer has an
internal record component that is an internal buffer implemented as a protected type.
To address these restrictions, I had to pull out the internal buffer declaration, and instead have the programmer declare this separately, then on the Stream Buffer declaration, have the programmer reference the "internal" buffer via an access discriminant.