haslab / Electrum2

Electrum is a temporal extension to Alloy. Alloy is a language for describing structures and a tool for exploring them. It has been used in a wide range of applications from finding holes in security mechanisms to designing telephone switching networks. This repository contains the code for the tool.

Home Page:http://haslab.github.io/Electrum/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Electrum2 on windows10

LauraPanizo opened this issue · comments

Hi,
I have installed elctrum2, electrod and NUSMV on a windows10 machine.
When I select Electrod/NuSMV as solver, and run the leader election example there is a fatal error. The stacktrace shows some error related to a file (.elo) not existing. Any help will be appreciated.

Here is the trace:

class edu.mit.csail.sdg.alloy4.ErrorFatal: Unknown exception occurred: kodkod.engine.AbortedException: Electrod problem generation failed.
edu.mit.csail.sdg.translator.TranslateAlloyToKodkod.execute_commandFromBook(TranslateAlloyToKodkod.java:617)
edu.mit.csail.sdg.alloy4whole.SimpleReporter$SimpleTask1.run(SimpleReporter.java:705)
edu.mit.csail.sdg.alloy4.WorkerEngine.runLocally(WorkerEngine.java:227)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doRun(SimpleGUI.java:1190)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doExecuteLatest(SimpleGUI.java:1255)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
edu.mit.csail.sdg.alloy4whole.SimpleGUI$3.run(SimpleGUI.java:513)
edu.mit.csail.sdg.alloy4.Runner.actionPerformed(Runner.java:66)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$500(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
caused by...
class kodkod.engine.AbortedException: Electrod problem generation failed.
kodkod.engine.ElectrodSolver.go(ElectrodSolver.java:202)
kodkod.engine.ElectrodSolver.access$3(ElectrodSolver.java:179)
kodkod.engine.ElectrodSolver$SolutionIterator.next(ElectrodSolver.java:147)
kodkod.engine.ElectrodSolver$SolutionIterator.next(ElectrodSolver.java:1)
edu.mit.csail.sdg.translator.A4Solution$Peeker.(A4Solution.java:1244)
edu.mit.csail.sdg.translator.A4Solution$Peeker.(A4Solution.java:1240)
edu.mit.csail.sdg.translator.A4Solution.solve(A4Solution.java:1616)
edu.mit.csail.sdg.translator.TranslateAlloyToKodkod.execute_commandFromBook(TranslateAlloyToKodkod.java:605)
edu.mit.csail.sdg.alloy4whole.SimpleReporter$SimpleTask1.run(SimpleReporter.java:705)
edu.mit.csail.sdg.alloy4.WorkerEngine.runLocally(WorkerEngine.java:227)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doRun(SimpleGUI.java:1190)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doExecuteLatest(SimpleGUI.java:1255)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
edu.mit.csail.sdg.alloy4whole.SimpleGUI$3.run(SimpleGUI.java:513)
edu.mit.csail.sdg.alloy4.Runner.actionPerformed(Runner.java:66)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$500(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
caused by...
class java.io.FileNotFoundException: C:\Users\laura\AppData\Local\Temp\C:\Users\laura\DriveUMA\Docencia_2019_2020\MétodosFormales\Ideas\tutorial-Check_Liveness2_for_3_but_1..20_Time-2020-07-02-13-28-1742472909\00000.elo (El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos)
java.io.FileOutputStream.open0(Native Method)
java.io.FileOutputStream.open(Unknown Source)
java.io.FileOutputStream.(Unknown Source)
java.io.FileOutputStream.(Unknown Source)
java.io.PrintWriter.(Unknown Source)
kodkod.engine.ElectrodSolver.go(ElectrodSolver.java:196)
kodkod.engine.ElectrodSolver.access$3(ElectrodSolver.java:179)
kodkod.engine.ElectrodSolver$SolutionIterator.next(ElectrodSolver.java:147)
kodkod.engine.ElectrodSolver$SolutionIterator.next(ElectrodSolver.java:1)
edu.mit.csail.sdg.translator.A4Solution$Peeker.(A4Solution.java:1244)
edu.mit.csail.sdg.translator.A4Solution$Peeker.(A4Solution.java:1240)
edu.mit.csail.sdg.translator.A4Solution.solve(A4Solution.java:1616)
edu.mit.csail.sdg.translator.TranslateAlloyToKodkod.execute_commandFromBook(TranslateAlloyToKodkod.java:605)
edu.mit.csail.sdg.alloy4whole.SimpleReporter$SimpleTask1.run(SimpleReporter.java:705)
edu.mit.csail.sdg.alloy4.WorkerEngine.runLocally(WorkerEngine.java:227)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doRun(SimpleGUI.java:1190)
edu.mit.csail.sdg.alloy4whole.SimpleGUI.doExecuteLatest(SimpleGUI.java:1255)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
edu.mit.csail.sdg.alloy4whole.SimpleGUI$3.run(SimpleGUI.java:513)
edu.mit.csail.sdg.alloy4.Runner.actionPerformed(Runner.java:66)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$500(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

This is an issue at the electrod level, grayswandyr/electrod#4, will update when new version available.

Hi @nmacedo
we were able to build Windows binaries (using Github Actions) and to fix an issue specific to this OS. In principle, it works, now.