What is electrod?

Greetings! What is electrod and how does it related to Alloy’s main repo? I am under the rough understanding that Electrum work was merged in for Alloy6 and that all-is-alloy now, but I see recent activity in the electrod repo.

In the repo it says “Electrod is mainly meant to be used as a backend for the Alloy Analyzer 6.” but I don’t know how I would do that or what advantages it has etc.

Don’t worry, there would be a public announcement of you had to do anything. The official release of Alloy on the public web site is all what users have to worry about.

That being said, electrod is part of Alloy 6 indeed, it acts as a bridge between Alloy and SMV solvers. It is embedded in the released JAR. You saw some activity because a new version of Alloy is in preparation.

I’m curious from a potential-contributor standpoint, and also since I might like to do custom builds or internal-API linking for a custom CLI alloy interface or maybe even some LSP integration. Also because I like to understand things :slight_smile: (and I see a dash of OCaml and I :heart: OCaml)

I cloned down the main repo and build, but I don’t see any place that it is pulling in the electrod repo or even the opam stuff. I do see in .github/workflows/subflow-electrod.yaml (triggered from workflows/trigger-native.yaml via pushes to master in certain paths) that it gets built in the github pipeline. If I want to build the exact same jar as what ends up getting distributed, do I need to additionally execute what these steps do? And if so what do I get that is different?

Yes curiosity killed the cat and all that heh.

1 Like

Ohh, I see it pulling in the binary as automated pull requests into org.alloytools.pardinus.native/. OK I get it now (good enough for a high-level infrastructure understanding). Thanks!

Notice there will be LSP integration in the forthcoming version of Alloy. Check the new Alloy command-line. Then, of course, the VS Code plugin will have to be updated.

1 Like

Super cool. Yes, I saw all the new command line goodies! I have some feedback that I’ll put into an issue or two.

@grayswandyr The pull request from nmacedo seems to be the best current git build I can find – the main master repo doesn’t work as well, at least in the cli testing I’ve been doing. I opened up some minor issues / PRs against the forked-repo. I could look into the JSON-instances output issue, but I’m not sure if someone is in the middle of doing stuff with JSON output – do you know by chance? Is it fine for me to keep working against this PR, and then re-target back to the main repo once it is merged?

I think so.

AFAIK the CLI (incl. JSON output) is still in development by @peter.kriens (he and I have been talking about it a few times). Thank you very much for your involvement in streamlining the forthcoming version. I think both @peter.kriens and @nmacedo, who are the main developers, will be happy to get your feedback.