Session
Schedule FOSDEM 2022
Ada

SweetAda

A Lightweight Development Framework for the Implementation of Ada-based Software Systems
D.ada
Gabriele Galeotti
<p>SweetAda is a lightweight development framework whose purpose is the implementation of Ada-based software systems.</p>
Welcome to SweetAda. SweetAda is a lightweight development framework whose purpose is the implementation of Ada-based software systems. The code produced by SweetAda is able to run on a wide range of machines, from ARM® embedded boards up to x86-64-class machines, as well as MIPS® machines and Virtex®/Spartan® PowerPC®/MicroBlaze® FPGAs. It could theoretically run even on System/390® IBM® mainframes (indeed it runs on the Hercules emulator). SweetAda is not an operating system, however it includes a set of both low- and high-level primitives and kernel services, like memory management, PCI bus handling, FAT mass-storage handling, which could be used as building blocks in the construction of complex software-controlled devices. SweetAda has some distinctive characteristics, like: - is ROMable - uses a ZFP run-time - has no dependencies; neither external libraries nor underlying code are needed SweetAda has a complete toolchain (assembler, linker, Ada compiler and debugger), and optionally you could even use a machine emulator, which can execute the final output code inside a virtual target. In order to use SweetAda, a decent POSIX® environment with a Bash shell and GNU Make are required. For a Linux® workstation this is quite standard, while for a Windows® machine you can download and install either MSYS2 (preferred) or Cygwin®. Anyway, SweetAda toolchains for Windows have an integrated Make suited for a Windows CLI. Being completely makefile- and script- driven, SweetAda is completely configurable and has many hooks which allow an easy integration in a GUI environment such as, e.g., Eclipse, KDE Kate or Visual Studio Code. Insight debugger is also available. SweetAda comes with high-quality GNU toolchains based on modern official FSF Binutils/GCC/GDB releases, unpatched and compiled with strictly controlled options. The emulators are mainly based on the latest QEMU™ official release, augmented with the IOEMU physical I/O system, which allows software code to interact with a visual environment. To make SweetAda generic and, at the same time, reliable, it is regularly tested against an heterogeneous set of machines which are able to successfully execute the system code, e.g.: - PC-style PIIX3/PIIX4 motherboards (ROM-boot) - DECstation 5000/133 MIPS R3000 (ROM-boot) - Memec FX12 Virtex-4 PPC405 (JTAG-boot) - DigiNS7520 board ARM7TDMI (JTAG-boot) - Terasic DE10-Lite Nios®II softcore (JTAG-boot) - MVME1600-011 PPC603 VME board (JTAG-boot) - Force SPARC®/CPU-3CE VME board (ROM-boot) - M5235BCC ColdFire development board (ROM-boot) - SPARCstation™ 5 (ROM-boot) - Spartan 3E MicroBlaze softcore (JTAG-boot) - Raspberry Pi™ 3 ARMv8 (microSD-boot) Your browser does not support the HTML5 Video element. The SweetAda software code is compiled by a build machinery which enforces a very high severity level. Usefulness, simplicity and expandability rather than extreme or obscure optimizations are the key features behind the project. Nevertheless, SweetAda grants the possibility of employ appropriate customizations, down to machine code level, to satisfy specific needs. SweetAda is in a state of steady growth. BSPs, device drivers, a TLSF memory allocator, TCP/IP basic functionalities, as well as low-level CAN primitives are under heavy development. More target machines and additional feautures/modules such as intrinsic floating point support and expanded SFP runtimes are scheduled in future releases, as well as language tools and system utilities, like ASIS. Please note that the platform-specific code included in SweetAda is given as an example. The emphasis of SweetAda is not about operating system design, but rather on exploiting the Ada language everywhere. SweetAda is distributed under the terms of the MIT license.

Additional information

Type devroom

More sessions

2/6/22
Ada
Fernando Oleo Blanco
D.ada
<p>Welcome to the Ada Developer Room at FOSDEM 2020, which is organized in cooperation with Ada-Europe and Ada-Belgium.</p> <p>This year marks the first edition on which the devroom takes place on an online format. For that reason, this presentation will explain how does it work and how can the public use the systems provided by FOSDEM and interact with the speakers. We will also introduce the Ada-Europe and Ada-Belgium organisations. This small introduction also serves as a test to make sure ...
2/6/22
Ada
Jean-Pierre Rosen
D.ada
<p>An overview of the main features of the Ada language, with special emphasis on those features that make it especially attractive for free software development.</p> <p>Ada is a feature-rich language, but what really makes Ada stand-out is that the features are nicely integrated towards serving the goals of software engineering. If you prefer to spend your time on designing elegant solutions rather than on low-level debugging, if you think that software should not fail, if you like to build ...
2/6/22
Ada
Stefan Hild
D.ada
<p>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</p>
2/6/22
Ada
Jean-Pierre Rosen
D.ada
<p>The requirements for Ada numerics were to provide portable arithmetics without unacceptable performance cost. This talk shows how this was achieved by interval arithmetics without requiring a particular implementation model, like IEEE arithmetics.</p>
2/6/22
Ada
D.ada
<p>At FOSDEM 2020 we presented the first version of Alire, the package manager for the Ada Open Source ecosystem. Two years later, the tools and its ecosystem have evolved, in some instances based on the feedback received at FOSDEM. So we want to give you an update on the new features and improvements, including:</p> <ul> <li>Pin system: intended to help with the development and use of WIP crates.</li> <li>Crate configuration: that enables static code generation before compilation.</li> ...
2/6/22
Ada
Alejandro R. Mosteo
D.ada
<p>Ada 2022 is around the corner with many goodies in the form of new features and featurettes. Arguably small syntax sugar additions combine for the programmer's comfort, like for example user-defined literals and container aggregates, that allow natural initialization of user-defined containers with the same expressions used for basic arrays since the beginnings of Ada. In this talk, I discuss how these features allow the initialization of a container data type for heterogeneous values (a-la ...
2/6/22
Ada
Max Reznik
D.ada
<p>Have been tired from JavaScript in Web development? Do you want to write both client and server sides in Ada? Are you looking for modern user interface for you application? Try to use AdaWebPack and run your Ada code in the web browser!</p> <p>The presentation introduces AdaWebPack - Ada compiler to WebAssembly, customized Run-Time library and Web API binding. It explains the overall architecture of the pack and includes a short get started demo.</p>