AdaCore Blog

Ada/SPARK Crate Of The Year 2024 Winners Announced!

Ada/SPARK Crate Of The Year 2024 Winners Announced!

by Fabien Chouteau

In 2024 we announced our fourth Ada/SPARK Crate Of The Year Awards. We see the Alire source package manager as a game changer for Ada/SPARK, so we want to use the Crate of the Year awards to honor the people contributing to the ecosystem. Today we are pleased to announce the results.

Here are the winners of the 2024 Crate of the Year Awards.

The Ada Crate of the Year Prize is awarded to Lionel Draghi for BBT

BBT stands for Black Box Tester, a command line tool that combines behavior specifications written in plain English with test automation. Let’s look at an example taken from BBT’s documentation. The following behavior specification is written in Markdown format (shown rendered below, source here):

As you can see, it is very readable and easy to understand. Given this specification, BBT will:

  • Create a file named config.ini with the provided content

  • Run the rpl command

  • Compare config.ini with the expected output, and report an error when different

A clever way to test command line tools.

The SPARK Crate of the Year Prize is awarded to Kevin Chadwick for elogs

Elogs is a portable message-logging library. The code is validated at SPARK’s Silver level and therefore proven to be absent of runtime errors. Dealing with logging and messages implies a lot of memory manipulations and the need to prevent “buffer overflow” errors, whether malicious or not. SPARK is therefore very relevant here, as Silver level proof ensures memory safety.

With constrained memory usage in mind, the library allocates static buffers for the message using Alire’s crate configuration feature. For example, users of the crate can specify the maximum message length like so:


[[depends-on]]
elogs = "~1.2.0"

[configuration.values]
elogs.Max_Message_Length = 80

The Embedded Crate of the Year Prize is awarded to Brent Seidel for bbs_lisp

bbs_lisp is an embeddable Lisp interpreter written in Ada. Embeddable in the sense that one can integrate the interpreter into any Ada project. In addition, Brent designed the project to be usable in constrained hardware environments, a.k.a embedded systems, as demonstrated here: https://github.com/BrentSeidel/Ada-Lisp-Embedded

We selected this project for the Embedded Crate of the Year Prize because portability is one of Ada's strongest advantages, and designing libraries that can be used in native and embedded systems is a great way to contribute to the ecosystem.

Conclusion

Thanks again to all the participants. Stay tuned for more news about the Ada/SPARK Crate Of The Year Awards.


Posted in #Alire    #Crate of the year    #Ada    #SPARK   

About Fabien Chouteau

Fabien Chouteau

Fabien joined AdaCore in 2010 after his engineering degree at the EPITA (Paris). He is involved in real-time, embedded and hardware simulation technology. Maker/DIYer in his spare time, his projects include electronics, music and woodworking.