* Add df_box2d 0.1.0
* df_box2d: build note -> notes field (Alire review)
* df_box2d: drop the test action — its scripts/test.sh needs CMake (libbox2d), absent on the index runners; the Ada library builds without it (Alire CI feedback)
---------
Co-authored-by: Tony Gair <tony.gair@thedarkfactory.co.uk>
* Add df_stb 0.1.0
* df_stb: post-fetch action for build-stb.sh + notes field (review #1955); re-pin to c3442ad
---------
Co-authored-by: Tony Gair <tony.gair@thedarkfactory.co.uk>
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
Initial Alire community-index submission for crate `clara`, a
type-safe CLI argument parsing library for Ada 2022 built on top
of `functional` (Result / Option monads, railway-oriented parsing).
This is the first version of clara to be submitted to the
community index. v1.0.0 was tagged in the source repo but
intentionally not submitted after `alr publish --skip-submit`
dry-run validation surfaced SSH submodule URLs in the source
repo's `.gitmodules` (the same publishability defect that
functional 4.1.0 carried before 4.1.1, also unpublished). The
v1.0.1 source tree carries the HTTPS `.gitmodules` repair and
G9-dry passes cleanly.
Origin commit:
1dafa0e89978ca214aab806d137b2641668b2458
Manifest content was produced by `alr publish --skip-submit`
in dev-container-ada-system-1 (Alire 2.1.0) against the v1.0.1
annotated tag (object 23e6a76162b27d6198c6db60f6d774ae2f4fb731,
target 1dafa0e89978ca214aab806d137b2641668b2458). The file
submitted in this PR is byte-identical to the generated
manifest (MD5 7f695a185909a912e56a496ab159af69).
Dependencies:
gnat >= 13
functional ^4.0.0 (already on the community index)
License: BSD-3-Clause
* Create lea-0.94.0.toml for LEA editor
LEA 0.94
* For Ada or .gpr code, the copy operation puts an HTML-formatted version of the selection into the clipboard.
* Copy operation: when nothing is selected, copy the current line (VS / VS Code - style).
* Added “Alire mode”. The user can control alr build and alr run: Build -> alr build; Run -> alr run.
* LEA checks externally changed files and provide options to the user for handling that.
* Minor improvements (menu texts, colors, ...)
* Triggering a new test
* Update LEA version and source URL in configuration
Removed relative path to memorymodule.o
* pico_ada_c01_blink 1.7.0 (via `alr publish`)
* Remove redundant line in TOML file
to force a rebuild
* pico_ada_c01_blink-1.7.0 update tar.
* Update pico_ada_c01_blink-1.7.0.toml to use pico_xbsp 1.7
* pico_ada_c01_blink_e 1.7.0 (via `alr publish`)
* Downgrade rp2040_hal dependency to version 2.7.0
Downgrade HAL to last known working version.
* Update rp2040_hal dependency version constraint
Force downgrade.
* pico_ada_c01_blink_e update tar
* Update pico_ada_c01_blink_e-1.7.0.toml to use pico_xbsp 1.7
* pico_ada_c07_buzzer 1.7.0 (via `alr publish`)
* pico_ada_c07_buzzer-1.7.0 add ravenscar_build.gpr
* pico_ada_c07_buzzer update tar
* Fix formatting in pico_ada_c07_buzzer TOML file
To force a rebuild.
* Update pico_xbsp dependency version to 1.7
Since pico_ada_c07_buzzer-1.7.1 compiled without error I check step by step the differences.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
Removed build of examples: this causes a new, mysterious issue in at least one crate (LEA) using the GWindows crate.
Examples will be built in a separate crate.
Note that gwindows_contrib.gpr also has some own examples but is not exposed to that issue which is related to an extra file added for the linker.
GWindows release, 09-May-2026 [revision 635]
=========================================
629: GWindows.Clipboard: added Clipboard_HTML procedure (copy HTML fragment
to the clipboard; useful for copying more than plain texts)
626: GWindows.Common_Controls: added check box feature to List_View's
* Add ZanyBlue framework 1.4.0.
* Fix folder hierarchy.
* Fix name of ZanyBlue library crate.
* Sync also origin repo.
* Adapt bin and obj folder location to Alire requirement.
Fix typos in alire (zbinfo and zbmcompile).
* Change version for Alire as 1.4.0 is already registered.
* Suppress old 1.4.0 version.
* restore disabled 1.4.0 releases
* Restore original commit
* Restore original commit
---------
Co-authored-by: Alejandro R. Mosteo <amosteo@unizar.es>
* ZanyBlue release 1.5.0.
* Add .gitattributes with eol=lf for Ada files on Windows.
Avoid (style) incorrect line terminator [-gnatyd].
* Add .gitattributes with eol=lf for ads files on Windows.
Avoid (style) incorrect line terminator [-gnatyd].
* Add .gitattributes with "text=auto eol=lf" for ads, adb and ada files on Windows.
Avoid (style) incorrect line terminator [-gnatyd].
* Synchronize zbinfo and zbmcompile crates.
* Remove zbinfo and zbmcompile crates.
Only one at a time.
* Change .gitattributes back without auto.
* Avoid (style) incorrect line terminator [-gnatyd] with BUILD = "Production".
* Pi Ada Tutorial release 1.6.0
* Remove extra newline before URL in TOML file
Force rebuild by removing redundant lines at the end of the file
---------
Co-authored-by: Martin Krischik <martin.krischik@kpt.ch>
SPARK-proved CCSDS protocol suite for Ada 2022. Covers Space Packet,
Time Code Formats (CUC / CDS), AOS Transfer Frame with FECF,
Encapsulation Packet, CFDP PDU with optional CRC, SLE identifiers,
and the shared CRC-16-CCITT-FALSE primitive. 440 SPARK Level 2 proof
obligations, all discharged, no pragma Assume, no justified checks.
Phil's RP2040 Microcontroller Embedded Profile Firmware Template
Added web site link.
Added long description.
Refined postbuild.sh to make search for implicit mount point much more robust.
* Pi Ada Tutorial release 1.5.1
Add installation via openocd. Update description.
* Fix URL formatting in pico_ada_c01_blink TOML file
Remove new lines - will also trigger a rebuild.
* Remove unnecessary line break in TOML file
And trigger a rebuild.
---------
Co-authored-by: Martin Krischik <martin.krischik@kpt.ch>
* libsimpleio release 2.24736.1 Wed Mar 25 07:14:37 AM PDT 2026
Corrected Raspberry Pi 5 PWM output designators.
With kernel 6.12, we are back to pwmchip0.
* libsimpleio drop 2.24736.1
* libsimpleio release 2.24736.1 Thu Mar 26 08:59:46 AM PDT 2026
Corrected Raspberry Pi 5 PWM output designators.
With kernel 6.12, we are back to pwmchip0.
* Add Wi2wic crate
Wi2wic is a small server that allows to convert HTML in Wiki text
such as Markdown, MediaWiki, Dotclear or Creole. It can also convert
one Wiki syntax to another. It can be used to:
- Migrate HTML page in Markdown or another Wiki,
- Convert Wiki page in HTML,
- Convert HTML documentation in Markdown or another Wiki,
- Cleanup a complex and noisy HTML page
* Unpin Ada Wiki repo
* Change repo to github since it seems gitlab is now blocked by Alire
See comment in PR https://github.com/alire-project/alire-index/pull/1804 for LEA:
"Using [gpr-set-externals] here will make the build modes impossible to override by users. Use a default in the GPR file by using External (<VAR>, <default>)."
* Add mathpaqs configuration file
Added a new TOML configuration file for the Mathpaqs library.
This version has a few graphical demos converted from the old "Graph" package to PDF_Out, using the APDF crate.
* Add dependency (APDF) information to mathpaqs
* Create apdf-9.0.0.toml for package metadata
009 version adds custom coordinates for vector graphics.
* Update apdf-9.0.0.toml
Just triggering a new build.
* fix: improper syntax that will be rejected post-2.1 (#1417) (#1445)
We had a missing check in index loading logic that should have rejected an unexpected array.
* Add Gentoo package name.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* vss_extra 26.0.0
* Remove redundant gpr-externals in vss_extra.toml
Comment out gpr-externals and related OS settings.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* muntsos_aarch64 release 11.0.1 Tue Dec 2 01:22:11 PM PST 2025
Add a post-build script to the superordinate program project that will
optionally scp the executable file(s) from bin/ to the MuntsOS Embedded
Linux target computer indicated by the TARGETCOMPUTER environment variable,
which must contain a value of the following form:
root@snoopy:/usr/local/bin
* muntsos_raspberrypi1 release 11.0.1 Tue Dec 2 01:22:57 PM PST 2025
Add a post-build script to the superordinate program project that will
optionally scp the executable file(s) from bin/ to the MuntsOS Embedded
Linux target computer indicated by the TARGETCOMPUTER environment variable,
which must contain a value of the following form:
root@snoopy:/usr/local/bin
* Add coap_spark-0.10.0
CoAP-SPARK is a library implementing the Constrained Application Protocol (CoAP) in SPARK/Ada, with client and server sides.
* Add coap_client-0.10.0
This only update the `xmlada` or `aws` dependencies in the crate declaration so that
these two crates can be used with AWS 25 + XML 25 as well as AWS 25 + XML 24
The declarations:
aws = "^24.0"
xmlada = "^24.0"
are not enough to allow that and the pull request only change them to accept ^25.0 explicitly.
This is a proposal for another way to integrate the Ada Web Server as a crate.
The issue with the current approach is the Makefile-based environment used
by AWS and the fact that we have to completely build and then install AWS
to use it.
In this proposal, only the 'make setup' phase is done to let the AWS Makefile
do the important setup and prepare the required files in target directory.
That target directory is named by AWS by using `gcc -dumpmachine` which brings
other issues and to solve and fix things, that directory is moved to a fixed
directory `build` so that every target will use that fix value.
The installation and build is not made and instead we reference the two
important GNAT projects 'aws.gpr' (top-level) and `build/projects/aws_config.gpr`
which was generated by `make setup`. The build is then handled by Alire
since it knowns the AWS projects. The AWS GNAT projects rely on the following
important variables which are set through the makefiles and we can set
them for each target as follows:
TGT_DIR = "../build"
TARGET = "build"
It is a proposal in the hope it will solve the AWS crate integration issues....
* Ada Binding to the GNU Binutils library
The Ada-BFD library allows to:
* list and scan the ELF sections of an executable or object file,
* get the content of the ELF sections,
* get access to the symbol table,
* use the BFD disassembler
Requires some binutils-dev
* Fix build
Added conflicting packages to [[forbids]] section:
libsimpleio, mcp2221, wioe5_ham1, wioe5_ham2, wioe5_p2p.
Include support for Wio-E5 LoRa Transceiver Module.
Added -gnatwK to compiler flags to suppress a lot of warnings.
Reworked Linux Industrial I/O infrastructure.
Added support for Linux Industrial I/O temperature sensors.
Added support for Hardware Monitoring (hwmon) temperature sensors.
Include (more properly: no longer *exclude*) Wio-E5 LoRA Transceiver
packages.
Forbid packages whose functionality is already included in libsimpleio,
namely: mcp2221, remoteio, wioe5_ham1, wioe5_ham2, wioe5_p2p.
* fix: improper syntax that will be rejected post-2.1 (#1417) (#1445)
We had a missing check in index loading logic that should have rejected an unexpected array.
* Add gentoo package names.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* lwt 1.0.0 (via `alr publish`)
* Update lwt-1.0.0.toml to remove MacOS-specific flags
The MacOS-specific flag "-ld_classic" and also a weirdly-named extraneous file (":wq").
* Dependency on libgomp on Windows
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* Ada Utility Library 2.8.1 crates
* Remove the AWS support because AWS is broken as usual
Now, it fails when building libgpr which is imported by GNATCOLL:
```
[Ada] gpr-env.adb
gpr-util-put_resource_usage__unix.adb:34:24: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:35:24: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:69:34: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:78:34: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:84:50: error: invalid prefix in selected component "This"
gpr-util-put_resource_usage__unix.adb:86:20: error: invalid prefix in selected component "This"
gpr-util-put_resource_usage__unix.adb:34:24: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:35:24: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:69:34: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:78:34: error: "Timeval" not declared in "Thin_Common"
gpr-util-put_resource_usage__unix.adb:84:50: error: invalid prefix in selected component "This"
gpr-util-put_resource_usage__unix.adb:86:20: error: invalid prefix in selected component "This"
compilation of gpr-env.adb failed
compilation of gpr-util-aux.adb failed
gprbuild: *** compilation phase failed
make: *** [Makefile:188: build-awsres-tool-native] Error 4
```
* coap_spark 0.9.0 (via `alr publish`)
* Include coap_client as subdir of the coap_spark repository
* coap_spark: remove unneded dependency for users
* Revert "coap_spark: remove unneded dependency for users"
This reverts commit d8c395bfa6.
The dependency is needed for SPARKlib, which is not packaged
separately from gnatprove.
* muntsos_aarch64 release 10.4.0 Wed May 14 07:38:24 PM PDT 2025
Added wioe5_ham1, wioe5_ham2, and wioe5_p2p to the list of crates that are
included in this one.
* wioe5_p2p release 1.23340.1 Wed May 14 10:49:49 PM PDT 2025
Backported some improvements from wioe5_ham2.
* wioe5_ham1 release 1.23340.1 Wed May 14 10:52:00 PM PDT 2025
Backported some improvements from wioe5_ham2.
* wioe5_ham2 release 1.23340.1 Wed May 14 10:53:28 PM PDT 2025
Added new crate wioe5_ham2, for Amateur Radio Unicast Flavor #2.
Removed Wio-E5 LoRa Transceiver Module device drivers. Since
these drivers now use GNAT.Serial_Communications, they work
on Windows, and will soon have their own crates.
🆕 Changes in this version:
* Vector graphics: added Arc and Circle.
* Navigation: added Hyperlink methods for producing links within or outside the document.
The main demo (pdf_out_demo.adb) includes now some pie charts and hyperlink examples.
An additional demo shows graphically various steps of the k-means data clustering / unsupervised machine learning method.
New feature: added compression for the BZip2 format for .bz2 and .zip files or streams.
Note that Zip-Ada now tops (or rather, bottoms ;-) in terms of compressed size) 7-Zip for both Calgary (*) and Canterbury benchmarks, for the .zip format and even the .7z format.
* Create hac-0.40.0.toml
HAC v0.40
* Source stream is buffered: ~3x faster build on large sources
* HAT: added Create_Directory, Create_Path and Delete_Directory
* Added warning on variables read before they are written
* Update hac-0.40.0.toml
Reduced tag length.
---------
Co-authored-by: Fabien Chouteau <Fabien-Chouteau@users.noreply.github.com>
* Add Ada Database Objects 2.4.1 crates
* Remove ado_all due to issues in alr pin when building
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* Add Ada Utility Library AWS support for 2.6.0
* Try to build with AWS 24 or 23 for Windows
* Disable for Windows and MacOS since the automated build failed
* Try to fix crate due to crash in Alire:
DEPLOYING CRATE utilada_aws=2.6.0
stderr: CONSTRAINT_ERROR
stderr: alire-conditional_trees-case_nodes.adb:178 range check failed
stderr: raised CONSTRAINT_ERROR : alire-conditional_trees-case_nodes.adb:178 range check failed
[/usr/bin/alr]
0xd5d8a6 Alire.Toml_Load.Dependency_Loader.Case_Nodes.Leaf_Count.2Xnb at alire-conditional_trees-case_nodes.adb:178
0x5d5f9d Alire.Conditional.For_Dependencies.Leaf_Count at alire-conditional_trees.adb:226
0x6706e5 Alire.Conditional.For_Dependencies.Leaf_Count at alire-conditional_trees.ads:464
0xc14e52 Alire.Releases.Deploy.Create_Authoritative_Manifest at alire-releases.adb:298
0xc14496 Alire.Releases.Deploy at alire-releases.adb:351
0xc4f580 Alire.Roots.Create_For_Release at alire-roots.adb:717
0xc4fbd2 Alire.Roots.Create_For_Release at alire-roots.adb:708
0x4a3aa9 Alr.Commands.Get.Retrieve at alr-commands-get.adb:134
0x4a87b2 Alr.Commands.Get.Execute at alr-commands-get.adb:368
0x4a8a49 Alr.Commands.Get.Execute at alr-commands-get.adb:246
0x53939b Alr.Commands.Sub_Cmd.Execute at clic-subcommand-instance.adb:749
0x54587e Alr.Commands.Execute at alr-commands.adb:561
0x436183 Alr.Main at alr-main.adb:13
0x438de1 Main at b__alr-main.adb:2257
[/lib64/libc.so.6]
* Fix location of project file relative to crate root
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* json 5.0.x: Add gnat <= 13 dependency
The json 5.0.x releases do not compile with GNAT >= 14 because the
compiler is checking more SPARK restrictions.
* json 6.0.0
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* Add Ada Utility Library 2.7.0 crate
* Update utilada_aws crate to disable Windows because AWS is broken on that host
* Submit update Ada Utility Crate 2.7.0 with Windows re-enabled for AWS
* Try to use AWS 23.0 on Windows since AWS 24.0 is broken
* Create gid-13.0.1.toml
The library is unchanged, but the demo/tools output now to PNG instead of the unknown PPM.
* Update gid-13.0.1.toml
Improved description.
* Update gid-13.0.1.toml
Fixed typo.
* Create bar_codes-3.0.0.toml
New version with Data Matrix 2D bar codes.
* Update bar_codes-3.0.0.toml
Shortened description string.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* webif_example 0.1.0 (via `alr publish --submit`)
* Change name of declared executable program.
* Change name of executable and update commit.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* lispcli 0.1.0 (via `alr publish --submit`)
* Update hash to point to later commit with fix.
* Build fails on OpenSuSe so make crate unavailable for suse.
* Adjust syntax to exclude OpenSuse.
This fixes two issues:
Issue 3, Maps don’t have a Clear operation.
Issue 4, Vectors can’t be indexed by Natural.
* index/mi/minimal_containers/minimal_containers-1.2.0.toml: new.
* Add files via upload
* Add files via upload
* Add files via upload
* Delete index/po/powerjoular/alire.toml
* Version 0.7.0
* Version 1.0.1 of PowerJoular
Version 1.0 of PowerJoular is a major release allowing monitoring inside virtual machine and maturing the code base.
* 1.0.4
---------
Co-authored-by: Adel Noureddine <adelnoureddine@users.noreply.github.com>
* Update libmariadb Debian/Ubuntu package name
The Debian package was renamed into libmariadb-dev
* Keep both package names
---------
Co-authored-by: Alejandro R. Mosteo <amosteo@unizar.es>
* Update globe_3d-2023.11.12.toml metadata (tags)
Metadata update only in .toml: added a few tags.
* Update globe_3d-2023.11.12.toml metadata (tags)
Metadata update only in .toml: added a few more tags.
* Update globe_3d-2023.11.12.toml metadata (tags)
Metadata update only in .toml: shortened tags (max len=15).
* Create texcad-4.5.2.toml
First presence of TeXCAD on Alire!
* Update texcad-4.5.2.toml
Correct license naming.
* Update texcad-4.5.2.toml
Enriched the tag list.
New features:
- UnZip.Streams: added Set_Index & Index subprograms for inward streams from Zip archives.
- Zip.Create: added procedure Add_Empty_Folder
* Upgrade UXStrings to version 0.7.0.
Add UXStrings 4 implementation (Ada.Containers.Vectors).
Use scenario variables in project files for choosing between UXStrings implementation UXS_VARIANT=UXS1..4.
Add Keep_Empty_Parts default parameter to Split.
* Change GNAT required version.
* Bring back strings_edit source codes from Simple Components since dependancies of SC puzzled Alire.
* Suppress 0.7.0 as it puzzles Alire checks.
---------
Co-authored-by: Alejandro R Mosteo <amosteo@unizar.es>
* hirtos_separation_kernel 2.0.0 (via `alr publish --submit`)
* Addressed PR review comments
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* Fixed post-build errors to pass CI checks
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* Skip unsupported build steps when building on Windows
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
---------
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* hirtos 2.0.0 (via `alr publish --submit`)
* Addressed PR review comments
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* Fixed post-build errors to pass CI
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* Skip unsupported build steps when building on Windows
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
* Added gprbuild 22 dependency for test crates for CI
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
---------
Signed-off-by: J. German Rivera <jgrivera67@gmail.com>
@@ -6,12 +6,15 @@ Because Alire comes late in the history of the Ada and SPARK languages we will n
- Respect the ownership of projects: Owner and maintainers of a project deserve to be credited for their work.
- Avoid user confusion on the name of crates: Crate names should be clear with regards to the project they contain. For instance, do not try to impersonate existing crates or projects.
To that extent we will potentially reject a create or transfer the ownership of a crate.
To that extent we will potentially reject a crate or transfer the ownership of a crate.
We count on the goodwill of the contributors to help us conduct this moderation in a kind and courteous way. Do not submit a crate to the Alire index if you are not willing to comply with this policy.
As the Alire project matures, we expect to do less moderation and potentially remove this policy in favor of a first come, first served policy.
As the Alire project matures, we expect to do less moderation and potentially remove this policy in favor of a first come, first served policy.
# Release immutability
A release (identified by a unique semantic version) is protected against changes by its integrity hashes. If errors are identified post-publication, a release could be withdrawn, or superseded by a new one (using the appropriate major/minor/patch/build version changes), but not modified.
A release (identified by a unique semantic version) is protected against
changes by its integrity hashes. If errors are identified post-publication, a
release could be marked unavailable, or superseded by a new one (using the
appropriate major/minor/patch/build version changes), but not modified.
description="Fundamental types, GCC built-ins, and base packages for Ada projects"
website="https://github.com/godunko/a0b-base"
version="0.5.0"
long-description="""
The `a0b_base` crate provides the root package hierarchy and foundational components tailored for embedded, bare-metal, and low-level Ada applications.
Key features include:
* Foundational Types:
- `Integer_*` and `Unsigned_*` types of various sizes (1 to 64 bits) with shift and rotate operations.
- `Unsigned_*_Array` types and "Enumerable" modular types (2 to 8 bits).
* Low-Level Utilities:
- Big-endian formatted types (`A0B.Types.Big_Endian`) for low-level protocol specifications.
- Type declarations specifically designed for use with the SVD2Ada code generator.
* Compiler Bindings:
- Direct bindings to GCC built-ins (such as `bswap`, `clz`, `ffs`) in `A0B.Types.GCC_Builtins`.
description="A0B: Utilities for various Sensirion's sensors"
long-description="""
The a0b-sensirion crate provides essential low-level utilities for interfacing with Sensirion sensors, specifically focusing on the data integrity requirements of their communication protocols.
It offers specialized routines for CRC calculation and provides automated packet encoding and decoding logic that handles the insertion and deletion of CRC bytes.
By abstracting these boilerplate tasks, the crate ensures reliable data transmission and simplifies the implementation of drivers for any Sensirion hardware utilizing checksum-protected packets.
The primary tool in this crate is the `a0b-runtime` generator.
While GNAT provides several standard runtimes (such as `light`, `light-tasking`, and `embedded`), these can be difficult to customize for specific project requirements.
`a0b-tools` solves this by allowing developers to generate a tailored, project-specific runtime from a single configuration file.
It also enables the creation of runtimes for hardware platforms and MCUs that do not have prebuilt GNAT runtimes available, providing full control over startup code, linker scripts, and Ada library components.
Traditionally, GUIs have been implemented by the client registering callback operations, then giving up its thread of control to the GUI. This is a hack to address the inherent parallelism of a GUI in sequential languages. It results in code that is unnecessarily difficult to understand.
In a concurrent language like Ada, a better design for a GUI is for the GUI to have its own task, so it doesn't require that its client give up a thread of control. GUI events are communicated to the client through a protected queue of events. The client software can be written in the clearest way possible, unconstrained by the GUI.
Ada_GUI is such a GUI.
The purpose of Ada_GUI is to provide the specification, in hopes that multiple implementations will be created. Note that some of the comments in the specification are specific to the sample implementation, and should be removed or modified for other implementations. Especially interesting would be an implementation that is not GNAT specific.
## Sample Implementation
A sample implementation of Ada_GUI is supplied, derived from Gnoga, but simplified, reorganized, and converted to put events on a protected queue rather than call callbacks. The name Gnoga has been retained for the name of the implementation hierarchy, located at Ada_GUI.Gnoga, in recognition. Those parts of Kazakov's Simple Components used by the implementation are provided as well, with some minor modifications. If you have your own version of the Simple Components, you may use it instead: Delete all Ada source files that do not begin with ada_gui.
The sample implementation is reasonably full-featured and useful. The implementation is more responsive than the former proof-of-concept directly on full Gnoga.
The Test directory contains boot.html, boot.js, and jquery.min.js. These files must be available to every Ada-GUI program. It also contains favicon.ico, an icon of Ada.
Show_All creates at least one of each widget. Visibility, playing audio, and responding to key-press events is demonstrated. Changing this program is the easiest way to experiment with the sample implementation. The audio file glass.ogg and image file rgb.jpg are used by Show_All.
Luhn_Gen calculates Luhn checksum digits. Enter the first 15 digits of your credit-card number and it will generate the 16th.
Random_Int is a Gnoga program that has been revised to use Ada GUI instead. It will generate random integers in a desired range.
## Installation of the Sample Implementation
Gnoga and the Simple Components require a recent GNAT compiler, so Ada_GUI cannot be compiled with another compiler. The file gnat.adc is needed to compile the Simple Components extensions to GNAT.Sockets. The use of gnatmake is recommended, as gprbuild is for mixed-language or complicated builds, which this is not. After compiling, it is recommended that you write-protect the .ali files. Typically, you can use a command such as
If you keep the Ada-GUI source files in a single directory, including the Simple Components source files, and have the compiler put the object and .ali files in that directory, then you need only add -I/path/to/Ada_GUI/ to your program's gnatmake command to use Ada_GUI.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.