Ada 95 Booch Components and EWS Update

Simon J. Wright released updates to his Ada 95 Booch Components and EWS (Embedded Web Server) projects while I was away on vacation, so I’m a bit late on these. Sorry! Both updates are pure maintenance, so no new features, only fixed bugs.

The Ada 95 Booch Components is…

…a container library, supporting Bags, Collections, Maps, Queues, Rings, Sets, Stacks, and Trees of various flavours, together with supporting utilities.

And for the August 9th. release we get the following two fixes:

  • Can be installed as a library in GCC and GNAT GPL installations
  • All uses of “.all’Access” eliminated

Next up we have EWS:

The Embedded Web Server is designed for use in embedded systems with limited resources (eg, no disk). It supports both static (converted from a standard web tree, including graphics and Java class files) and dynamic pages. It is written in GCC Ada.

And the fixes for this little gem is

  • Makefiles recognise the need for .exe on Windows
  • Updated build hints
  • Don’t build ews-pages
  • Uses an in-memory Stream to accumulate all elements of a Response
  • Added a favicon

Good stuff. You can see some of the other projects Simon is involved in here.

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. – Ada Programming and Documentation

It frequently happens that while surfing around for other things, I suddenly find myself at an Ada related website that I haven’t heard about before. One minute I’m checking out, the worlds most private search engine, and the next I’m looking at the Ada website of Martin Krischik.

The internet is indeed a fantastic place and a marvelous invention.

While clicking around on the website, I soon found myself lead to the Martin Krischik’s home, where we see that he has quite a few Ada projects going:

If you’re a regular reader of comp.lang.ada then you’ll surely have noticed Martin Krischik also, as he often participates in discussions.