Since the name Paraffin in itself doesn’t give away what it does, here’s a quote from the project website:
A suite of Ada 2005 generics to facilitate iterative and recursive parallelism for multicore systems and provide safer recursion for single and multicore systems. Includes useful generics for parallel quicksort, fast fourier transform, function integration, and Red-Black trees.
New in this release is:
- Added a reusable utility to solve a matrix of linear equations using Gauss-Jordan Elimination.
- Added test_matrix test driver for parallel/sequential matrix solvers.
- Red-Black Tree containers fully implemented now. (Delete, and Contains calls work)
- Split Red-Black Tree container into separate generics
- Work sharing
- Work Seeking
- Stack Safe Work Seeking
- The Red Black Tree generic was previously intended mostly as a test driver for Paraffin Recursive generics. Now the generic has been completed to a state where it can be reused on its own as a generic container.
- Changed use of Unchecked_Conversion for Recurse supprogram access to use ‘Unrestricted_Access instead. This cleaned the code up considerably in this area. One issue to look into, is that ‘Unrestricted_Access is a non-standard attribute. It is supported by both GNAT and the ICC compiler however. It may not be supported by other Ada 2005 compilers. Unfortunately, Unchecked_Conversion in this case is not portable either, and may not even continue to work with the existing compilers, so it was thought that using ‘Unrestricted_Access was the best option for now. Will investigate to see if there is a possibility for a better solution, or providing a portable mechanism in a future version of Ada.
Yea, Brad’s been busy!
You can read the full release announcement here.