|
|
|
|
|
by onox
1372 days ago
|
|
I do not know the exact rationale of the Alire devs, but Ada already uses (since 83) the word "package" to indicate a module or namespace, so calling dependencies a "crate" seems to avoid confusion with an Ada "package". The crates of the community index [1] are somewhat vetted because they are added to the index using a PR on GitHub. You're not required to use these external crates though, you can create your own monorepo if you want. My personal experience has been that a package manager (for any language) makes it much easier to download and build some project. There's a decent amount of packages in the Ada standard library, but it's not up to the level of Go's.
Ada has a subset called SPARK for functional specification and static verification, so you can write, and some of the crates are actually written in SPARK. It's quite fun to write some parts of the code in SPARK and get it to prove it with the gnatprove tool (which you can get with `alr get gnatprove` and run it on your code with `alr gnatprove`). AdaCore also has a variant of the runtime library for embedded systems that is partially proven with SPARK [2]. [1] https://github.com/alire-project/alire-index
[2] https://blog.adacore.com/proving-the-correctness-of-gnat-lig... |
|