11th Ada Developer Room at FOSDEM 2022Craeynest, Dirk
doi: 10.1145/3577949.3577951pmid: N/A
FOSDEM is a huge open source event organized each year in Brussels, Belgium. Among others, it features dozens of tracks on specific topics: the Developer Rooms. This year, for the 11th time, there was a track about the Ada programming language and related technologies. A brief overview of the full-day "Ada DevRoom" program is given, followed by reports of most presentations by their respective authors.
Ada Looks Good, Now Program a Game Without Knowing AnythingHild, Stefan
doi: 10.1145/3577949.3577952pmid: N/A
In 2020 I started live streaming the development of a turn-based strategy game. At that time I had little idea about Ada, programming or game development (nothing has changed about that to this day). But by September 2020 it had taken the early form of a Civilization clone. After more than a year of development, it has become almost a real game with its own features. And now I'm going to talk a little bit about some experiences and weirdnesses with game development in Ada.
Alire 2022 UpdateMosteo, Alejandro R.; Chouteau, Fabien
doi: 10.1145/3577949.3577954pmid: N/A
The Alire Package Manager released its first stable version in 2021 and, since then, it has seen continued improvement and new features. Herein we present the latest major features that have been added for the benefit of Ada developers, which include toolchain installation, a publishing assistant, generation of configuration code, and a so-called pin system for concurrent development of multiple projects. We also take a look at the status of its ecosystem of available libraries.
Use (and Abuse) of Ada 2022 Features in Designing a JSON-Like Data StructureMosteo, Alejandro R.
doi: 10.1145/3577949.3577956pmid: N/A
Ada 2022 introduces new features that enable more natural-looking initializations. On the one hand, it is now possible to use universal numbers and strings to initialize any private type; on the other hand, containers can be initialized directly without the explicit use of converting functions. Both features are enabled through new aspects that associate user-defined subprograms with the necessary initialization calls. In this work, the possibility of using these new features is explored to define a container type that allows initializations using heterogeneous types, as is usual in textual formats for structured data such as JSON, TOML and YAML, and still without the need to resort to explicit conversion calls or "crutch" functions like the often-seen trick of overloading the "+" operator. Although this has proven ultimately avoidable, there is still the need to use qualifications in certain circumstances.
Getting Started with AdaWebPackReznik, Max
doi: 10.1145/3577949.3577957pmid: N/A
This article introduces the AdaWebPack project recently presented at the 12th Ada Developer Room at FOSDEM 2022 [3]. The AdaWebPack project aims for providing a toolchain and Ada libraries to enable developing of web applications to be executed in a web browser.
Overview of Ada GUICarter, Jeffrey R.
doi: 10.1145/3577949.3577958pmid: N/A
This is a summary of the presentation of the same title made in the Ada devroom at FOSDEM 2022. Traditional GUIs require registering callbacks and then giving up the program's thread of control to the GUI. This results in an unnatural programming style that runs counter to the way people typically learn to read programs. Ada GUI uses an alternative approach suited to a concurrent language.
Proving the Correctness of GNAT Light Runtime LibraryMoy, Yannick; Dross, Claire
doi: 10.1145/3577949.3577959pmid: N/A
The GNAT light runtime library is a version of the runtime library targeted at embedded platforms and certification, which has been certified for use at the highest levels of criticality in several industrial domains. It contains around 180 units focused mostly on I/O, numerics, text manipulation, memory operations. We have used SPARK to prove the correctness of 40 of them: that the code is free of runtime errors, and that it satisfies its functional specifications.
Implementing a Build Manager in AdaCarrez, Stéphane
doi: 10.1145/3577949.3577960pmid: N/A
A build manager is a tool used to automate the building, testing and delivery of software projets. Porion is a new build manager that was first presented at the FOSDEM 2022 event in the "Continuous Integration and Continuous Deployment Developer Room" [1] and in the "Ada Developer Room" [2]. This paper is a summary of these two presentations and it focuses on the complexity of designing a build manager. It highlights some security issues that apply to a build manager and its implementation. It explains the overall architecture that was chosen and the reason of the choice. Finally it presents the Ada generation tools that have been used in this project.