Ada Booch Components release 20110612

Today Simon Wright announced on his track the 20110612 release of the Ada95 Booch Components library.

This is release contains a bunch of fixes and new Indefinite Unmanaged Container forms. The fixes and new stuff:

  • 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 Ada.Calendar.Time.
  • Finalization of Smart Pointers wasn’t idempotent.
  • Indefinite_Reference.Adjust failed if the Pointer was null (this happened wtih Null_Container).
  • Pragmas Pure and Preelaborate used where possible.
  • 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.

If you’re interested in using the Ada95 Booch Components, then the documentation and the accompanying tutorial case study might be good places to start.

Leave a Reply