AdaCore Blog

Ada/SPARK Crate Of The Year 2021 Winners Announced!

by Fabien Chouteau

In June of 2021 we announced the launch of a new programming competition called Ada/SPARK Crate Of The Year Awards. We believe the Alire source package manager is a game changer for Ada/SPARK, so we want to use this competition to reward the people contributing to the ecosystem. Today we are pleased to announce the results.

But first, we want to congratulate all the participants, and the Alire community at large, for reaching 200 crates in the ecosystem in January of this year. We truly believe in a bright future for the Ada/SPARK open-source ecosystem with Alire at the forefront. Reaching this milestone is a great sign, inside and outside the Ada/SPARK community, of the evolution and the energy of the ecosystem.

Without further ado, the winners of the 2021 Ada/SPARK Crate of the Year Awards are:

The Ada Crate of the Year Prize is awarded to Septum by Paul Jarrett.

Septum is a context-based code search tool, in the author's words:

“Septum is like grep, but searches and returns matching contexts of contiguous lines, rather than just single lines or a multi-line search mode.”

It is an “end user” application that is not only useful for Ada/SPARK programmers but to the developer community at large. Septum is based on a couple of other crates that Paul also contributed (dir_iterators, trendy_terminal, trendy_test) showing a good use of the source package manager’s modularity.

Last but not least, Paul used GitHub Actions and his own unit testing framework (trendy_test) to perform automatic quality assurance on the project. A great showcase of the best open-source software practices for Ada development.

The Embedded Crate of the Year Prize is awarded to rp2040_hal by Jeremy Grosser.

The RP2040 is a new ARM microcontroller developed by the Raspberry Pi foundation, and HAL stands for Hardware Abstraction Layer. rp2040_hal is a crate providing drivers for the peripherals of this trendy new embedded computer.

The RP2040 is getting very popular in the open-source/open-hardware community. In part because it is not as much impacted by the worldwide semiconductor shortage, but mostly because of its great design and low price. Therefore, having first class support for the RP2040 in Ada is great for the adoption of the languages and opens a lot of possibilities for the community.

Along with the rp2040_hal crates, Jeremy and other contributors added a few other crates providing a Board Support Package (BSP) and examples for the official development board of the Raspberry Pi, the Raspberry Pi Pico. Once again a nice use of package management to improve code re-use, as other Ada developers can now develop BSPs for new boards based on the RP2040.

And special mention to the excellent documentation provided by Jeremy, and the low level driver unit-testing.

The SPARK Crate of the Year Prize is awarded to spark_unbound by Manuel Hatzl.

Rather than expecting every allocation to succeed, users of this library have to explicitly handle cases where fresh memory is not available. For instance, resizing an array may not be possible in case of memory exhaustion.

The advantage of SPARK here is two fold. On one hand, Manuel used SPARK and GNATprove to ensure that his implementation of an unbound array is safe. On the other hand, users of this library programming in SPARK, will be able to prove their application is protected against memory exhaustion.

We are eager to see the evolution of this crate, with maybe an option to provide a custom memory allocator for embedded applications.

Conclusion

Thanks again to all the participants and stay tuned for more news on the Ada/SPARK Crate Of The Year Awards.

Posted in

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.