fluffynukeit / adaspark

MIT License
14 stars 6 forks source link

Update everything to latest versions #6

Open ethindp opened 2 years ago

ethindp commented 2 years ago

I was doing this, but I ran into a problem for the SPARK tools: I don't know what version of GCC corresponds to what SPARK tools release. I can submit a PR once I figure that out. Is there a guide somewhere?

ethindp commented 2 years ago

@fluffynukeit Okay, so actually doing this just breaks gnat. This ridiculous recursive gnat requirement is preventing the build from actually working. So we can't upgrade gnat, or I can't, anyway, which means I can't test changes that I've made to ensure that they actually work, even if I revert back to gnat 10.

fluffynukeit commented 2 years ago

I've been thinking about revisiting this old repo for a few reasons:

  1. I have much more experience with nix and flakes now. I probably could put this together in a better way.
  2. My renewed interest in Ada because of community developments.
  3. The encouraged method of development going forward will likely be through alire, and it's unclear to me how that fits into nix, or even whether it should or not. Alire is modeled after cargo, and cargo, to my knowledge, does not integrate easily into nix.. Maybe nix-based development of Ada will be fighting the current.
ethindp commented 2 years ago

@fluffynukeit You can integrate cargo/alire into nix if you (don't) install it through the package manager, I think. Maybe alire will work even if installed through nix? I haven't tried much Rust through Nix, myself, but I'm very interested in getting a full Ada environment running on Nix, GPS included. I'm not, however, very good with flakes, so...

fluffynukeit commented 2 years ago

Hi @ethindp , I took a crack at this. See the branch nix_21.11. Newer releases of nixpkgs now include the gprbuild tool, so my flake does not need that any longer. This was the main source of complexity in my flake, although there's a bug in 22.05 preventing me from updating to that version. The other simplification is that alire will likely be the de facto project management tool in the community going forward, and it has the ability to install what you need in a project environment. This limits the applicability of nix for Ada development generally. As a result of both of these, the flake now just provides alire, which allows you to install and declare crate dependencies like gnatprove on a project by project basis.

Check out the flake and see if it fills your niche. I think the value of such a flake is quite limited now. I expect alire will make it into nixpkgs in due time, and this flake will be deprecated thereafter.

nyabinary commented 6 months ago

@fluffynukeit the flake is completely broken now I think :<