cortex-gnat-rts
ada-spark-rfcs
Our great sponsors
cortex-gnat-rts | ada-spark-rfcs | |
---|---|---|
7 | 13 | |
60 | 58 | |
- | - | |
2.7 | 2.8 | |
about 1 year ago | 4 days ago | |
Ada | ||
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cortex-gnat-rts
-
Writing Startup Code for STM32 in Completely Ada
Also, u/simonjwright 's cortex-gnat-rts was most helpful.
-
Define project-wide allocator on bare application.
You could look at providing your own version of System.Memory - this was easy enough in an embedded system with a restricted runtime, but much hairier in full Ada.
-
Ada on ESP32 and FreeRTOS
It includes a customized GNAT RunTime (besed on cortex-gnat-rts) and a ESP32 toolchain binaries. It's integrated in Espressif IoT Development Framework build system.
-
Clarification on Finalization
I looked into finalization without exceptions for Cortex GNAT RTS, branch finalization, not touched since 2018; not too difficult (largely reinstating stuff I’d cut out because of restriction No_Finalization).
-
Spunky (Kernel written in Ada) #4: Kernel Timing
What I had in mind was the usage generated by AdaCore’s SVD2Ada, e.g. the register without the pragma, and the place in the wider data structure in which it’s used, with the pragma.
-
Array copies on bare metal using GNU GNAT generate library calls
This code, which I unthinkingly wrote thinking "how clever!", in fact calls memcpy() and memset() under the hood, which works because the compiler was built including Newlib.
-
Please explain secondary stack to a C programmer!
.. and a simple version here.
ada-spark-rfcs
-
Ada news digest April 2022
Original discussion was there, I guess you can post your comments to that PR to keep the discussion in one place.
-
Is Maintaining An Ada ISO Standard Worthwhile?
I forgot where I saw it, but I do recall reading somewhere that the ARG had discussed whether a shorter revision cycle would be better or not. I wouldn't be surprised if the creation of this ( https://github.com/AdaCore/ada-spark-rfcs ) was inspired by that discussion.
-
Brett Slatkin: Why am I building a new functional programming language?
Ada might be getting pattern matching soon too:
https://github.com/AdaCore/ada-spark-rfcs/blob/master/protot...
-
Why Rust?
> I did some ADA in the past and yes, it is a nice language, but it lacks the modernity and a dynamic community like Rust. ADA did received some nice update to its specification, but, just like C++, it struggle / cannot really fit the latest innovation in programming language that easily.
I'm still learning both Ada and Rust, nevertheless I humbly disagree. The more I learn it and other "old" languages the more it looks to me like "modern" ones rediscover things that have been present in other languages for years.
The really significant difference I can see for now is that Ada is not focused so strongly on functional programming paradigm. Rust borrow checker is a strong success of course and was another significant difference, but latest SPARK got borrow checking capabilities too, AFAIK.
While Ada's open-source community is smaller, I find it as energetic and devoted to improving the ecosystem as Rust's. I have no idea about closed-source community, but in the past 4 years ArianeGroup [1], Airbus [2] and Nvidia [3] talked about choosing Ada for their high-integrity applications.
> And to be fair, it is fine. ADA is very much a "committee" language (its spec are ISO/IEC) instead of a "community" language (all the spec and rfc of Rust are on github and anyone can easily discuss them).
You can discuss Ada/SPARK RFCs here: https://github.com/AdaCore/ada-spark-rfcs . I think I once saw on Ada forum or chat that someone proposing changes to the language was simply invited to talk to people working on the standard, so it doesn't look like the language is developed in isolation or something.
> This makes it so that ADA doesn't get the attention, and the rapidity of innovation, that a language like Rust does, but ADA is mostly made for program that will need to be maintained in critical operations for decades with the code being maintainable and compilable far into the future.
I think that Ada adopted quiet quickly to standards set by Rust: lower entry barrier toolchain, compelling licensing, library distribution, RFCs, etc. And in terms of language features, in many areas it's not only on par, but ahead of competition. So you're less likely to see lots of changes, but they do happen nevertheless. I'm not saying Ada is perfect, of course. There are parts of it that other languages do better. No shame in that.
IMHO, the reason Ada is unknown to many people is a combination of its past, myths surrounding it, and general trend of people to follow trends. ;) But I currently find Ada/SPARK even more compelling option than Rust, even though I like both.
[1] https://www.facebook.com/ArianeGroup/posts/2872955946126067
- Lessons from Learning Ada in 2021
- RFC on exceptional contracts for SPARK
- [RFC] declare local variables without a declare block
-
Does ada support object methods?
There's a proposal to allow dot syntax for untagged types as well.
-
It's Ada Lovelace Day Learn the Ada Programming Language in 2021
There's also an active discussion about adding format strings to the language here: https://github.com/AdaCore/ada-spark-rfcs/pull/77
- Looking for feedback about the syntax for format strings in Ada
What are some alternatives?
esp32-gnat-rts - This project contains various GNAT Ada Run Time Systems (RTSs) targeted at Cortex boards: so far, the Arduino Due, the STM32F4-series evaluation boards from STMicroelectronics, and the BBC micro:bit
Kind - A next-gen functional language
svd2ada - An Ada binding generator from SVD descriptions for bare board ARM devices.
falcon.py - A python implementation of the signature scheme Falcon
Ada_Drivers_Library - Ada source code and complete sample GNAT projects for selected bare-board platforms supported by GNAT.
ada-spark-rfcs - Platform to submit RFCs for the Ada & SPARK languages
bingada - Bingo application in GTKAda
gcc
bare_bones - Ada Bare Bones OS development tutorial source code
pico_examples - Ada examples for the Raspberry Pi Pico
stm32-startup-code-ada - Startup code for STM32 written completely in Ada.