Removed the dynamic and unmanaged forms of indefinite containers, as
originally noted in the 20110612 release (thanks to David Henry for
pointing this out).
Small performance improvement in Clear for unbounded and unmanaged
Removed warnings from GCC 4.9.0 (mainly style).
Shellsort raises Sort_Error, not Container_Error, if the wrong kind of
Container is used.
The BCs can be built against the Ada 2005 or 2012 standards if
required; the GNAT Project scenario variable LANGUAGE can be set to
gnat95 (default), gnat05 or gnat12.
A problem with building any indefinite dynamic form under GCC 4.7
has been resolved.
BC.Support.Indefinite_Dynamic was missing.
Includes a patch to allow use of bc.gpr on Debian 6.
Ordered Collections are now provided in all forms.
Although the index parameters to Append(After) and Insert(Before) were
not used for Ordered Collections, there should have been checks that
they were in range. Out-of-range values now cause Range_Error to be
The behaviour of Append(After), Insert(Before) and Replace when the
indicated location contains a value that is equivalent to the current
value has been improved.
The behaviour of Replace when the new item is not equivalent to the
replaced item was not specified (it was always treated as a Remove
followed by an Insert). It has now been improved.
Added Indefinite Unmanaged Queues.
'make install' didn't actually install the source code.
A release with installation script and instructions, and minor
Can be installed as a library in GCC and GNAT GPL installations.
All uses of ".all'Access" eliminated.
Release 20110612 was missing the top-level bc.gpr and support files
for Indefinite Maps.
Compilation warnings eliminated.
A release with various fixes and new Indefinite Unmanaged Container
There was a problem with BC.Support.High_Resolution_Time on 64-bit
compilers. Cleared by doing the Right Thing and using
Unchecked_Conversion instead of overlays.
On Mac OS X Snow Leopard, BC.Support.High_Resolution_Time failed
because the OS stops the Time Stamp Counter while the processor is
sleeping. Fortunately, on this OS, the resolution of the system clock
is 1 microsecond, so an implementation is provided that uses
Pragmas Pure and Preelaborate used where possible.
Indefinite_Reference.Adjust failed if the Pointer was null (this
happened with Null_Container).
Finalization of Smart Pointers wasn't idempotent.
Bags, Maps and Sets allowed predefined equality to emerge (for Maps,
in the case of keys).
The dynamic and unmanaged forms of the Indefinite Containers have been
removed; dynamic on the grounds that it's an unneeded complexity, and
unmanaged in favour of Indefinite Unmanaged Containers.
A new tree of Indefinite Unmanaged Containers has been started,
containing for the moment just Collections and Maps. These provide
containment for indefinite types without the need for the user to
provide any storage managers.
A release with fixes for Ring containers.
There was a problem when the Mark denoted an internal index before the
Top; Insert would improperly increment the Mark.
This entry is intended as catch-up for the changes made between the
20070822 and 20090216 releases.
A release with some fixes for MacOS.
Altered the directory structure to a more standard form; the top level
is still bc-yyyymmdd, but under that is GNAT/ (supporting GNUAda and
other Ada projects on SourceForge), src/ for source, tests/ for tests
and demos/ for demos.