Release notes

Release notes

Receive email when this page changes

Click Here
Powered by Netmind

--

19 February 2000
Uses signature-based Hash Tables (for Bags, Maps, Sets).

Includes Guarded and Synchronized Maps.

3 January 2000
Added the ability to delete the item an Iterator is currently indicating (Delete_Item_At (It : Iterator)). Note, this feature doesn't yet work for Bags, Maps, Rings or Sets.

The C++ code offers two variants of accessors such as Queues.Front, one of which returns a value while the other returns a reference. The second case is now supported by generics such as eg Queues.Process_Front.

The Copy operation of Collections, Queues, Rings and Stacks checks for self-assignment before proceeding.

Synchronized Unbounded Rings now support blocking (balking); eg, an attempt to Pop will block until the Ring has something in it to pop. For related reasons, the Pop_Value operation is provided.

AVL Trees had an error (inherited from the C++) which would sometimes corrupt the Tree on deletion.

Containers have new versions of the Visit and Modify generics that include a parameter as an argument to Visit and Modify that is passed to the Apply routine. Thanks to Steve Doiel.

Added pragma Elaborate_Body throughout.

Continued the renaming of Container parameters from Obj to something slightly more mnemonic.

31st October 1999
Added Unbounded Ordered Queues.

AVL Trees are no longer limited.

Corrected ordering problem with Unbounded Ordered Collections when keys are equal. Insert now adds from the front of the Collection, Append from the rear.

21st June 1999
Added Unbounded Collections and Unbounded Ordered Collections.

BC.Support.Bounded, BC.Support.Unbounded subprogram specs were confused about whether indexing was from 0 (as in the C++) or 1 (in the Ada). BC.Support.Unbounded.Append(2) had an error when appending after the first element.

Corrected a GNAT compiler problem (GNAT was too permissive).

Added ObjectAda-special versions of the Bag test driver (avoiding compiler problems).

7th May 1999
Included the accidentally-omitted Bounded and Dynamic Bag sources.

4th May 1999
Added Bounded and Dynamic Bags.

Added Unbounded Rings in standard, Guarded and Synchronized forms.

ObjectAda problems with Semaphores.

14th March 1999
Eliminated a problem where a function call, used only for its side effect and not for its result, was deleted by high optimisation levels (-O3).

Passive iteration (in BC.Containers) didn't reset the passed-in Iterator.

Notes from John P. Woodruff on use with Rational Apex.

Added a word-counter demo, as suggested by John English in the Ada Standard Component Library Working Group.

Further contributions.

21st February 1999
Containers require a (defaultable) "=" operation for Items.

Added Bags (only in the Unbounded form so far).

Added Sets.

Reworked Iteration; passive iteration now obtains the Container over which to iterate via an Iterator bound to the container. This allows different styles of iteration with one interface.

Graphs have three Vertex iterators: incoming only, outgoing only, both ways.

Binary trees have in-order, pre-order and post-order iterators; Multiway trees have pre-order and post-order iterators. Only passive iteration is available, and the style is different from that of other Containers.

If a section of a list which didn't contain a shared node was purged, an invalid pointer access (Constraint_Error) would occur. This error was in the C++ (where it was OK, it seems, to free() a null pointer).

Assignment involving unbounded forms didn't correctly invalidate the cache in the copy.

Began a demos page.

Began a "contributions" section, with initial contributions from Daniel Gaudry.

29 January 1999
Corrected an error in AVL trees (only the second one that is an error in the original C++ and not in the translation!).

Added ObjectAda-special versions of test drivers (avoiding compiler problems).

Removed a use of the GNAT-special 'Img attribute.

Removed a couple of badly-placed pragma Inlines.

24 January 1999
Added Maps.

Added AVL Trees.

Removed some abbreviations; for instance, in BC.Containers.Stacks.Unbounded, the type Unb_Stack becomes Unbounded_Stack. These changes will break existing code.

Reworked Iteration throughout, with a vast improvement in the efficiency of List iterators. These changes will break existing code; compiler problems mean that you can't use GNAT 3.10p.

Moved Graph iterators up to the parent package (BC.Graphs), and included a little demonstration of Graph usage (Ada_Units).

For consistency, the concrete Graph, Vertex and Arc types are now prefixed with Undirected_ or Directed_ as appropriate; eg, a directed Vertex becomes Directed_Vertex.

20 October 1998
Added Graphs. There are more compiler problems, I'm afraid, though we have found a workround for one of the old ones.

Internal changes in Storage Management.

6 October 1998
Updated notes on compiler problems to give a workround for users of ObjectAda 7.1 Special Edition.

4 October 1998
Storage Management added, thanks to Pat Rogers. This has tickled some compiler problems, please check to see if you're affected.

Fixed inefficiency in Unbounded (and perhaps Dynamic) forms of Queues and Stacks.

Storage Management for Dynamic and Unbounded forms required that we instantiate some support packages inside the using generic rather than having the user pre-instantiate them. We decided to adopt the same policy for Bounded forms too. These changes will break existing code.

Added some comments to package specs.

Added some minor demo code (storage, time_lists and time_queues).

24 August 1998
Bugfix release.

There were several storage leaks.

It's illegal to declare abstract subprograms in a private part.

The Stack and Queue iterators were broken (by sjw).

1 August 1998
First release by Simon Wright. Added Binary and Multiway Trees, Smart Pointers.

--

[index]