Simple components for Ada v3.17

If you’re in need of smart pointers, directed graphs, sets, maps, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), pseudo-random non-repeating numbers, symmetric encoding and decoding or IEEE 754 representations support, then Dmitry Kazakov’s Simple components library might be just what you need. It’s up to version 3.17 now, and with the version comes the following changes:

  • This release provides generic sets and maps of discrete types based on ranges of elements and keys. Differently to the standard implementation these allows very large sets and maps.
  • Set complement operation was added to the generic set packages
  • Deep equality operation was added to the generic map packages.

You can read the full release announcement here.

Another Round of Dmitry Kazakov Updates

The productivity of Dmitry Kazakov continues to amaze me. Not only is he producing some rather large libraries and projects, he is also very actively updating and maintaining them.

I could probably learn a lot from this guy. 🙂

Today we’ve got updates to the following projects:

Simple components for Ada v3.16:

Changes in version 3.16 (and 3.15, since I forgot to report those):

  • Bug fix in the package Storage_Streams. The bug was caused by an overflow in index computations.
  • Parsers now have a mechanism to disallow an operation outside brackets.
  • Closing brackets can be returned back when misplaced switching to infix context. For example, it is now possible to parse expressions like f(|a|+1|x), where | is both |·|-brackets and an infix operation.
  • Association checks are performed on all operations and brackets.

Simple components provides…

…implementations of smart pointers, directed graphs, sets, maps, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support. Tables management and strings editing are described in separate documents see Tables and Strings edit. The library is kept conform to both Ada 95 and Ada 2005 language standards.

The next contender is the Ada industrial widget library v1.2:

Changes to the previous version:

  • Bug fix in waveform sampling which had the effect that sometimes the amplifier get permanently rescaled when in auto-scale mode.
  • Rendering waveform annotations was changed to prevent values shown as xxx*10**0.

The key features of the Ada industrial widget library are..

…widgets composed of transparent layers drawn by cairo, fully scalable graphics, support of time controlled refresh policy for real-time and heavy-duty applications, caching graphical operations, stream I/O support for serialization and deserialization, ready-to-use gauge, meter, oscilloscope widgets, editor widget for WYSIWYG design of complex dashboards.

Go get ’em while they are hot!

A Slew of Dmitry Kazakov Updates

Dmitry Kazakov refreshed a bunch of his Ada packages a few days ago:

If Ada programming is your game, then there’s a good chance you’ll find one or more of Dmitry’s Ada packages beneficial, so be sure to check them out.

Dmitry Kazakov release a bunch of updates

The always prolific Dmitry Kazakov is on fire today. With three new releases on the block, he must’ve been pretty busy these past days:

Tables for Ada provides a table that is searched using string keys. Strings edit implements and abundance of I/O facilities, and Simple components provides implementations of smart pointers, directed graphs, sets, maps, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support. Yea, I ripped that last wall of features directly from the website.

You can read the full release announcements for Tables for Ada, Strings edit and Simple components to get the full story on what exactly has been updated/fixed/changed in these packages.

Simple Components v. 3.12

In the latest edition of Dmitry Kazakov’s Simple Components library, Dmitry provides support for streams:

  • The package Block_Streams provides a stream built upon a stream of blocks transported over another stream. The stream can be used to store binary data in files access using Stream_IO or for sending data over a socket.
  • The package Storage_Streams provides a memory-resident stream. The memory is allocated by blocks.

Other than that, Simple Components is still the same massive collection of all sorts of goodies:

The current version provides implementations of smart pointers, directed graphs, sets, maps, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support. It grew out of needs and does not pretend to be universal. Tables management and strings editing are described in separate documents see Tables and Strings edit. The library is kept conform to both Ada 95 and Ada 2005 language standards.

Yea, the individual components might be simple (though I think some of them are _very_ advanced and complex – at least to someone at my level…), but the amount of stuff this package can do is simply staggering. You can read the full release announcement here.