AdaCL release 7.1.2 (#1977)

* Pi Ada Tutorial release 7.1.2

            Update adacl_embedded

* Update adacl-7.1.2.toml

delete line to force rebuild.
This commit is contained in:
Martin Krischik
2026-06-22 11:02:23 +02:00
committed by GitHub
parent 758416bbaa
commit 4206a1952e
6 changed files with 439 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
name = "adacl"
description = "Ada Class Library: Strings, Tracing, AUnit, Smart Pointers, Getopt"
long-description = """A versatile Ada 2022 class library for robust application development.
Features:
- Getopt: Command-line argument parser with wide character support
- Strings: Utilities for String, Wide_String, and Wide_Wide_String
- Calendar: Time and date utilities with wide character support
- Tracing: Diagnostic trace utility with wide character support
- Protected Queue: Supports finish, wait, and abort operations
- Smart Pointers:
- Reference-counted pointers
- Unique pointers (C++-style)
- Shared pointers (C++-style)
Related crates:
- AUnit: AUnit-Compatible Assertions for access, array, discrete, floating-point, fixed-point, decimal, and vector types
- EAStrings: Encoding-aware string utilities
- RegEx: SPITBOL-inspired pattern matching and regular expressions for String, Wide_String, and Wide_Wide_String
- SAR: Text search and replace for String, Wide_String, and Wide_Wide_String
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl/src/)
Documentation: [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "command-line", "trace", "logging", "string", "aunit", "assert", "container", "smart-pointer", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
# vim: set textwidth=0 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:f164e66e7ab67aba80a4947feccd1012b1ab7d5a94584fd73884851e5daaca41",
"sha512:5ba56c74a14149e264b8dcc0c0b85a36d08adc929a464e2ca792bce5b675c562acbe18c01b7a9e515a05c0f4a821d71197117e49471351bef1b1da7f6dc9c008",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl-7.1.2.tgz"
+109
View File
@@ -0,0 +1,109 @@
name = "adacl_aunit"
description = "Ada 2022 AUnit with readable asserts & paramerised test"
long-description = """A versatile Ada 2022 testing library, enhancing AUnit with readable assertions and parameterised tests.
## Features
### AUnit-Compatible Assertions
- Generic support for access, array, discrete, floating-point, fixed-point, decimal, vector types, and files.
- **Readable Error Messages**: Assertions provide detailed feedback.
Example for unbounded strings:
```ada
procedure Equal
(Actual : Ada.Strings.Unbounded.Unbounded_String;
Expected : String;
Name : String;
Source : String := GNAT.Source_Info.File;
Line : Natural := GNAT.Source_Info.Line)
is
use Ada.Strings.Unbounded;
begin
if not (Actual = Expected) then
Report_Assertion
(Message => "In string «" & Name & "» the " & Actual'Image & " is not equal to " & Expected'Image,
Source => Source,
Line => Line);
end if;
end Equal;
```
This yields clear, context-rich error messages, surpassing standard AUnit
output.
## Parameterised Tests
Run the same test with varied inputs and expected values, boosting coverage
efficiently.
Example from hp41cx_tools:
```ada
overriding procedure Register_Tests (T : in out Test_Case) is
pragma Debug (AdaCL.Trace.Entering (In_Parameter => T.Name.all'Image));
begin
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "WAKE_UP", "2024-12-01 08:00:00", [3, 9, 4, 2, 0, 2, 8, 8, 0, 0, 0], 3942028800.0);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "^LBLTEST", "2025-07-22 12:00:00", [3, 9, 6, 2, 1, 7, 4, 4, 0, 0, 0], 3962174400.0);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "TONE", "2025-11-12 09:12:34", [3, 9, 7, 1, 9, 2, 7, 5, 5, 4, 0], 3971927554.0);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "FRACTION", "2025-11-12 09:12:34.5", [3, 9, 7, 1, 9, 2, 7, 5, 5, 4, 5], 3971927554.5);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "REPEAT24", "24:00:00", [0, 0, 0, 0, 0, 8, 6, 4, 0, 0, 0], 0000086400.0);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "REPEAT'First", "0000:00:01.0", [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 0000000010.0);
T.Parameter.Register_Routine (T, Test_To_HP_Duration_01'Access, "REPEAT'Last", "9999:59:59.9", [0, 0, 3, 5, 9, 9, 9, 9, 9, 9, 9], 0035999999.9);
pragma Debug (AdaCL.Trace.Exiting);
return;
end Register_Tests;
```
Registering tests multiple times with different data enhances test coverage
without redundant code.
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl_aunit/test/src/)
Documentation: [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl_aunit_test/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl_aunit/"
tags = ["library", "aunit", "assert", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[[depends-on]]
adacl = "^7.1"
aunit = "^26.0.0"
# [[pins]]
# adacl = { path = "../adacl" }
# vim: set textwidth=0 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:26ea0bad6222af3bed97456328d75ae292e37de7939e2f948b58ce1f613f10e7",
"sha512:0fa1159df8cbadba08eab8c474ac8d252d2f6513530d2030d321abda32fe71ee3fbd6fe28ed369e7c4e1070862e1133c8380191259e8af12d0274f7b04ca643f",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_aunit-7.1.2.tgz"
@@ -0,0 +1,70 @@
name = "adacl_eastrings"
description = "AdaCL: Encoding-Aware String Utilities"
long-description = """Encoding-aware string utilities for Ada 2022, developed by Björn Persson for robust internationalization (i18n).
Supports text processing with the following encodings:
- Universal Character Set 4, Big-Endian (UCS-4 BE)
- Universal Character Set 4, Little-Endian (UCS-4 LE)
- Universal Character Set 2, Big-Endian (UCS-2 BE)
- Universal Character Set 2, Little-Endian (UCS-2 LE)
- Unicode Transformation Format 16, Big-Endian (UTF-16 BE)
- Unicode Transformation Format 16, Little-Endian (UTF-16 LE)
- Unicode Transformation Format 8 (UTF-8)
- American Standard Code for Information Interchange (ASCII)
- ISO/IEC 8859-1 (Latin-1)
- Code Page 850 (DOS Latin-1)
- Windows Code Page 1252
Additional features:
- Text I/O for encoding-aware input/output
- Basic command-line parsing for internationalized text
Licensed under GPL-3.0-or-later. Integrates with the Ada Class Library (AdaCL).
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl_eastrings/src/)
Documentation: [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl_eastrings/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>" ,"Björn Persson <rombobeorn@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>" ,"Björn Persson <rombobeorn@users.sourceforge.net>"]
maintainers-logins = ["krischik", "rombobeorn"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "strings", "i18n", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[[depends-on]]
adacl = "^7.1"
# [[pins]]
# adacl = { path = "../adacl" }
# vim: set textwidth=0 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:6bb988d2cb432befb802f7f026b0381f5621b73339b270351f9cba169d1c9493",
"sha512:92a0af84f6133f80f1da80905bf6e73f4e91a2c9c8c6f4418d12a75f93a62be1b1d0946011bd0e425356314dfbc41a16bb7bb128abcc94b149ca122f39ce881e",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_eastrings-7.1.2.tgz"
@@ -0,0 +1,76 @@
name = "adacl_embedded"
description = "Ada Embedded Library"
long-description = """## AdaCL Embedded - Lightweight Embedded Ada Library
AdaCL-Embedded focuses on embedded and real-time programming on the Raspberry Pi and similar platforms.
It favours predictability, minimal runtime overhead, and static data structures. Object-oriented programming, unbounded
strings, and wide strings are avoided or kept to an absolute minimum.
### Current Features
* **AdaCL.Embedded.Trace** - Interrupt-safe, lightweight tracing facility using a ring buffer.
* **AdaCL.Embedded.Text_IO** - Extended Ada.Text_IO.
### Configuration Options
* `Variant`
* `no_tasking` - for the lightest runtimes (no protected objects). Also works well with interrupt-driven runtimes.
* `tasking` - for runtimes with tasking support.
* `Event_Log_Buffer_Length` - maximum length of each trace line (default: 200, min: 1, max: 1024)
* `Event_Log_Buffer_Size` - number of entries in the ring buffer (default: 0, max: 1024, min: 0 (buffer disabled))
A text length of 200 is the standart minimum used in the Ada Standart (i.E. `Ada.Text_IO.Get_Line`, exception messages,
etc.pp).
Memory needed is approximately `(Event_Log_Buffer_Length + 4) * Event_Log_Buffer_Size` bytes, plus some overhead for the
buffer management. For example: 1024 buffer size with 200 line lenght is about the maximum size that can be used with
the static memory of Raspberry Pi Pico. The buffer size can be set to 0 to disable the trace buffer and the related code
completely.
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl-embedded/src/)
Documentation: [GNATdoc](https://adacl-embedded.sourceforge.net/gnatdoc/adael/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "embedded", "trace", "logging", "raspberry-pi", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[configuration.variables]
Variant = {type = "Enum", values = ["tasking", "no_tasking"], default = "no_tasking" }
Event_Log_Buffer_Length = {type = "Integer", first = 1, last = 1024, default = 200 }
Event_Log_Buffer_Size = {type = "Integer", first = 0, last = 1024, default = 0 }
# vim: set textwidth=120 wrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:fe91db4f952655498fd733d3f4132d55f33e5286a296c1e9b9a62d03afa98d6c",
"sha512:a0fc7fe07d29e8e26d2a16f8664297d1359be2ea4a0ba6d9dd9944162dea1f6b220263133707a52e305a0c7026f4824ac5c6167a96e70946249f7412fdc16279",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_embedded-7.1.2.tgz"
@@ -0,0 +1,62 @@
name = "adacl_regexp"
description = "AdaCL: Regex and SPITBOL Patterns with Wide Character Support"
long-description = """Regular expression and SPITBOL pattern matching for Ada 2022, with wide character support.
Features:
- Regular Expressions:
- Generic implementation for any discrete element array
- Instantiations for String, Wide_String, and Wide_Wide_String
- SPITBOL Patterns:
- Pattern construction and matching, inspired by Macro-SPITBOL (Robert Dewar)
- Supports String, Wide_String, and Wide_Wide_String
- Forked from GNAT.Regexp and GNAT.Spitbol with enhanced wide and wide-wide character support
Licensed under GPL-3.0-or-later. Integrates with the Ada Class Library (AdaCL).
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl_regexp/src/)
Documentation: [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl_regexp/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "strings", "wide-strings", "search", "regexp", "unicode", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[[depends-on]]
adacl = "^7.1"
# [[pins]]
# adacl = { path = "../adacl" }
# vim: set textwidth=0 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:33dc6d3df5198bfbeae063f6c1d239feb71a512485b29afe716475c3984b8bd9",
"sha512:52ce5fa534742a653a96ca0077555b6d64d9301affeee39d4d0637cf8fcfcb401714dbd9478a837a698d63f50a1a96315ad0a5b640e0a988140d9556f07618a0",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_regexp-7.1.2.tgz"
+61
View File
@@ -0,0 +1,61 @@
name = "adacl_sar"
description = "AdaCL: Search and Replace with Wide/Wide-Wide Support"
long-description = """Powerful search-and-replace library for Ada 2022, developed by Martin Krischik, with wide and wide-wide character support.
Features:
- Load, transform, and store text
- Vector-based text transformations for efficient processing
- Supports standard, wide, and wide-wide characters for internationalisation
- Embedded transformations for internal text processing
- Extensible transformations via tagged types for complex operations
- Integrates with the Ada Class Library (AdaCL) for robust text handling
Licensed under GPL-3.0-or-later. Integrates with the Ada Class Library (AdaCL).
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl_sar/src/)
Documentation: [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl_sar/index.html)
"""
version = "7.1.2"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "strings", "search", "replace", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[[depends-on]]
adacl = "^7.1"
# [[pins]]
# adacl = { path = "../adacl" }
# vim: set textwidth=0 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:dff0c40c7c1685dc75bd20a80f21c4d07448d29d3a00f8fc219a828a1a45b122",
"sha512:df7f487cca52ba81f34c414be35a8c3bd7c0b007b245ecfa2c85c1108fc41c33e2e05b341334cc8bc5c779bcbbc6c47602824a9e061aad1dc5d541cefbcca7a6",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_sar-7.1.2.tgz"