ANN: Simple Components v4.81

The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, 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), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations.

Simple components for Ada

Changes (2 July 2026) to the version 4.80:

  • Compatibility to GNAT 16.1.1. This GNAT 16.1.1 has the recurring issue/bug related to the visibility of names from formal generic packages;
  • Constant expression folding was added to Ada expression parser (Parsers.Generic_Ada_Parser). Folding is optional. If enabled expressions in universal types and constant Boolean expressions are folded. e.g. 1 + 2 + A (5) → 3 + A (5);
  • The subprograms Get, Put, Value were added to the package Parsers.Multiline_Source;
  • The call-back On_Success was added to the Generic_Lexer’s parser;
  • The procedures Mark and Release were added to the package Parsers.Generic_Lexer;
  • The package Stack_Storage.Text_IO was added to output stack pool statistics;
  • Parameter Message was added to the procedure Put_Line of the package Parsers.Generic_Source.Text_IO;
  • Ada expression parser supports raise-statements outside immediate pair of parentheses;
  • Checking positional and named aggregates was added in the Ada expression parser;
  • Checking positional and named parameters was added in the Ada expression parser;
  • Array objects were added to the declare expressions in the Ada expression parser;
  • Aspects recognition was added to the declare expressions in the Ada expression parser;
  • Subtype marks and indications were added in the Ada expression parser;
  • Attributes were added in the Ada expression parser;
  • Target name @ support was added in the Ada expression parser;
  • The parser can start with the first operand already recognized;
  • An ability to parse an expression in parenthesis with a consumed left parenthesis was added;
  • Comparisons of Unbounded_Integer bug fixed;
  • Log procedure was added to Unbounded_Unsigneds;
  • Column_Name function was added to the SQLIte bindings (contributed by Xavier Grave).
2 Likes