advent_of_code
misra-rust
Our great sponsors
advent_of_code | misra-rust | |
---|---|---|
5 | 8 | |
0 | 112 | |
- | 3.6% | |
0.0 | 0.0 | |
over 1 year ago | almost 3 years ago | |
Ada | Rust | |
- | MIT License |
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.
advent_of_code
-
It's a brand new year! January 2023 What Are You Working On?
I've updated the README file of my github repository where I have put solutions to Advent of Code. The README file outlines my thoughts and considerations when writing the code which uses a minimal subset of the full Ada language, uses AdaControl to know the intended subset is used, how memory safety and resource management in general has been done when not taking advantage of SPARK. https://github.com/joakim-strandberg/advent_of_code
-
Outsider's Guide to Ada
I am aware that controlled types are associated with performance penalty although I haven't fully understood why. When I write Ada code I try to avoid using them although sometimes there seem to be no workaround like for example when using Gautier's multi precision integer implementation when doing Advent of Code 2021 (https://github.com/joakim-strandberg/advent_of_code, the "Big_Int_Holder" package in advent_of_code_2021.adb). Return value optimization (RVO) does make me think of extended return and limited types in Ada 2005, although as was discussed in the video that move semantics is more than that. Thanks for bringing up the subject!
-
AdaCore and Ferrous Systems Joining Forces to Support Rust
It's kind of the opposite for me. It takes much less time to understand what Ada-written code is doing compared to any of the C-type languages, or even Rust. It is very plainly written. Verbose, yes, but much more plainly written.
Just take a look at this, and tell me it's not legible: https://github.com/joakim-strandberg/advent_of_code/blob/mas...
-
-🎄- 2021 Day 2 Solutions -🎄-
Ada95, part one (full code at https://github.com/joakim-strandberg/advent_of_code/):
-
Ada and Advent of Code 2021
Ouch, link doesn't work, due to escape characters. The proper link: https://github.com/joakim-strandberg/advent_of_code
misra-rust
-
United States White House Report on Memory Safe Programming [pdf]
MISRA and Ferrocene are not really related.
MISRA is, as you say, a set of rules for writing C code, that restrict what you can do.
Ferrocene is a qualified compiler. You write any normal Rust code you want: it's still the upstream Rust compiler. There are no restrictions.
Incidentally, someone has compared what MISRA does to what Rust does: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...
Given that they can't repeat the MISRA stuff there, it's a bit disjoined, but it sure is interesting!
-
Misra C++:2023 Published
A fun github repo: "what would MISRA look like applied to Rust" https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...
(They're comparing with the C version, not the C++ version...)
- Memory Safe Languages in Android 13
-
Ferrocene: Rust toolchain to safety-critical environments
> There are huge swathes of MISRA which forbid things which not only aren't possible in Rust or SPARK
I can't vouch for its accuracy, but https://github.com/PolySync/misra-rust
-
High Assurance Rust: Developing Secure and Robust Software
When it comes to MISRA C, it is interesting to note how many (a majority) of its rules do not apply or have native enforcement[1].
You might have also seen the AUTOSTAR Rust in Automotive Working Group announcement recently[2].
[1]: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...
[2]: for some reason the announcement was removed from the "News and events" site, https://webcache.googleusercontent.com/search?q=cache%3Ahttp... but it is still available as a PDF https://www.autosar.org/fileadmin/user_upload/20220308_RustW...
-
AUTOSAR announces new Working Group for Programming Language Rust in Automotive Software context
There's actually already a comparison: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rules.md
-
AdaCore and Ferrous Systems Joining Forces to Support Rust
Rust makes quite a few things more rigorous (e.g. pairing allocations with deallocations and reference validity). It basically fulfills the job of a static analyzer baked into the language.
It's also a vastly more analyzable language (in that its syntax is reasonably unambiguous and there's no dynamic runtime in play) and it can be integrated well.
Toolchain quality (error reporting, built in testing, awareness of primitives like "libraries", etc.) is also a huge strong point.
We're reasonably confident that we can use safe Rust as is, with strong guidance on how to do unsafe Rust.
For a tangible investigation of that space, PolySync has a project that has a look at MISRA rules from a Rust perspective. https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...
Ada is a good example here: the language has not evolved something like MISRA-C (it has evolved SPARK for formal verification, but I see that differently).
- Resources for learning C/C++ coming from a Rust background
What are some alternatives?
aoc-ada-2021 - Advent of Code 2021 in Ada
Welcome - Welcome to AeroRust- a Rust 🦀 in Aerospace 🚀 community & working group
advent-of-code - My Advent of Code solutions through the years - mostly JS
high-assurance-rust - A free book about developing secure and robust systems software.
AdventOfCode - My solutions to Advent of Code
creusot - Creusot helps you prove your code is correct in an automated fashion. [Moved to: https://github.com/creusot-rs/creusot]
adventOfCode - https://adventofcode.com/
rubble - (going to be a) BLE stack for embedded Rust
aoc21
rust-verification-tools - RVT is a collection of tools/libraries to support both static and dynamic verification of Rust programs.
scratch-www - Standalone web client for Scratch
wayland-ada - Ada 2012 bindings for Wayland