Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Componolit/ada-runtime
https://github.com/Componolit/ada-runtime
Last synced: 14 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/Componolit/ada-runtime
- Owner: Componolit
- License: agpl-3.0
- Archived: true
- Created: 2018-06-08T09:38:27.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-02T09:12:12.000Z (over 2 years ago)
- Last Synced: 2024-07-31T20:30:24.299Z (3 months ago)
- Language: Ada
- Size: 7.55 MB
- Stars: 33
- Watchers: 8
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ada - ada-runtime - A downsized Ada runtime which can be adapted to different platforms. (Runtimes / Continuous Integration)
README
# Generic Ada Runtime [![CI](https://github.com/Componolit/ada-runtime/workflows/CI/badge.svg)](https://github.com/Componolit/ada-runtime/actions)
The generic Ada runtime is a downsized Ada runtime which can be adapted to different platforms.
The offered feature set is a tradeoff between complexity and useful features.## Features
The runtime includes a variety of specs providing types and compiler intrinsics.
It furthermore adds a small selection of more complex features:- Secondary stack
- SPARK proof:
no runtime errors,
safe program abort in case of stack overflow, stack underflow or invalid stack count
- 64bit arithmetic
- SPARK proof:
addition and subtraction with overflow check have no runtime errors,
both functions perform a correct addition/subtraction
- Exception support
- Exceptions can only be thrown but not catched, there is only a last chance handler available## Platforms
- Posix/Linux
- [Genode](https://genode.org/)
- nRF52832
- STM32F051
- ESP8266 on Arduino## Directory Structure
- `contrib/`: external sources (GCC 8.3)
- `platform/`: platform-specific sources of Ada runtime
- `src/`: Ada runtime sources
- `tests/`: test sources
- `build`: platform specific build directories## Platform-specific Symbols
To enable a new platform for this runtime the platform needs to provide a set of linker symbols.
Please have a look into the [platform interface](doc/Platform-interface.md) description.