Project

General

Profile

Actions

Task #5891

closed

New EFSM structure support in CgaaEfsmTransformer

Added by Igor Melnichenko over 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Engine (Transformer)
Target version:
Start date:
04/30/2015
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
0.2.1

Description

I've created the SVN branch called hierarchical-efsm which introduces new EFSM structure. It is necessary to modify EFSM-related classes in this branch.

Actions #1

Updated by Igor Melnichenko over 9 years ago

  • Tracker changed from Bug to Task
Actions #2

Updated by Sergey Smolov over 9 years ago

  • Status changed from New to Open
Actions #3

Updated by Sergey Smolov over 9 years ago

  • Status changed from Open to Resolved

I have the following code in my CgaaEfsmTransformer component:

efsm.addState(Efsm.PREINITIAL_STATE);
efsm.createTransition(Efsm.PREINITIAL_STATE, initState, getInitTransition());

What should I do with it now? I've found the similar Efsm.UNINITIALIZED_STATE field, but this state is unused now.

Actions #4

Updated by Igor Melnichenko over 9 years ago

Sergey Smolov wrote:

I have the following code in my CgaaEfsmTransformer component:

[...]

What should I do with it now? I've found the similar Efsm.UNINITIALIZED_STATE field, but this state is unused now.

Please refer to our correspondence of April 9th.
Uninitialised state must be used in an EFSM (as an initial state) only if state variables are initially uninitialised (as in default case of Verilog). In other cases initial state must be chosen from the set of EFSM states on the basis of initial values of state variables.

Actions #5

Updated by Sergey Smolov over 9 years ago

  • Status changed from Resolved to Open
Actions #6

Updated by Sergey Smolov over 9 years ago

  • Status changed from Open to Resolved
  • % Done changed from 0 to 100

Done in r2019, hierarchical-efsm branch.

Actions #7

Updated by Igor Melnichenko over 9 years ago

  • Status changed from Resolved to Open

The exception during sample.vhd EFSM creation (all variables must be declared before expression processing):

ERROR: The exception has been encountered: java.lang.IllegalArgumentException: There is no declaration of variable STATE neither in this EFSM nor in its parent
at ru.ispras.retrascope.model.efsm.Efsm.processAddedExpression(Efsm.java:852)
at ru.ispras.retrascope.model.efsm.Efsm.addState(Efsm.java:121)
at ru.ispras.retrascope.model.efsm.Efsm.createState(Efsm.java:105)
at ru.ispras.retrascope.engine.cgaa.transformer.efsm.CgaaEfsmTransformer.addStates(CgaaEfsmTransformer.java:551)
at ru.ispras.retrascope.engine.cgaa.transformer.efsm.CgaaEfsmTransformer.getOutput(CgaaEfsmTransformer.java:251)
at ru.ispras.retrascope.engine.cfg.CfgEngine.start(CfgEngine.java:121)
at ru.ispras.retrascope.basis.Engine.start(Engine.java:201)
at ru.ispras.retrascope.basis.ToolChain.start(ToolChain.java:111)
at ru.ispras.retrascope.basis.Engine.start(Engine.java:201)
at ru.ispras.retrascope.Retrascope$ToolRun.start(Retrascope.java:194)
at ru.ispras.retrascope.Retrascope.main(Retrascope.java:366)
at ru.ispras.retrascope.Retrascope.main(Retrascope.java:383)
at ru.ispras.retrascope.util.VhdlUtilTest.runRetrascope(VhdlUtilTest.java:157)
at ru.ispras.retrascope.util.VhdlUtilTest.runVhdl(VhdlUtilTest.java:77)
at ru.ispras.retrascope.util.HdlUtilTest.runVhdl(HdlUtilTest.java:97)
at ru.ispras.retrascope.engine.efsm.generator.test.EfsmTestGeneratorVhdlTestCase.generate(EfsmTestGeneratorVhdlTestCase.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Actions #8

Updated by Sergey Smolov over 9 years ago

  • File compile-log.txt added
  • Status changed from Open to Feedback
  • % Done changed from 100 to 0

I've tried to compile hierarchical-efsm branch and I've got almost 100 compilation errors.

Have you committed all the new source files (for example, the compiler complains about the absence of ProcessSimulationSnapshot class)?

I've attached the compiler log to the ticket (see compiler-log.txt).

Actions #9

Updated by Igor Melnichenko over 9 years ago

Oops. I've just commited a version without compilation errors in my classes but there are still some unupdated classes related to http://forge.ispras.ru/issues/5889

Actions #10

Updated by Sergey Smolov over 9 years ago

  • File deleted (compile-log.txt)
Actions #11

Updated by Sergey Smolov over 9 years ago

I still have compilation errors:

compile.java:
    [mkdir] Created dir: D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\bin\classes
    [javac] Compiling 189 source files to D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\bin\classes
    [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\jaxb\JaxbEfsmAdapter.ja
va:19: error: cannot find symbol
    [javac] import ru.ispras.retrascope.model.basis.Model;
    [javac]                                        ^
    [javac]   symbol:   class Model
    [javac]   location: package ru.ispras.retrascope.model.basis
    [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\EfsmConflictExtractor.j
ava:106: error: cannot find symbol
    [javac]     List<Efsm> efsmList = efsmModel.getEfsmList();
    [javac]                                    ^
    [javac]   symbol:   method getEfsmList()
    [javac]   location: variable efsmModel of type EfsmModel
    [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\EfsmConflictExtractor.j
ava:193: error: cannot find symbol
    [javac]         Efsm product = Efsm.product(efsmList.get(i), efsmList.get(j));
    [javac]                            ^
    [javac]   symbol:   method product(Efsm,Efsm)
    [javac]   location: class Efsm
    [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\jaxb\JaxbEfsmAdapter.ja
va:42: error: constructor Efsm in class Efsm cannot be applied to given types;
    [javac]     return new Efsm(string);
    [javac]            ^
    [javac]   required: EfsmModule,String
    [javac]   found: String
    [javac]   reason: actual and formal argument lists differ in length
    [javac] 4 errors

Actions #12

Updated by Igor Melnichenko over 9 years ago

Yes, it is the classes I talked about. Their functionality relates to conflict extraction and the http://forge.ispras.ru/issues/5889 task.

Actions #13

Updated by Sergey Smolov over 9 years ago

  • Status changed from Feedback to Open
Actions #14

Updated by Sergey Smolov over 9 years ago

  • Status changed from Open to Resolved
  • % Done changed from 0 to 100

Done in r2343

Actions #15

Updated by Igor Melnichenko about 9 years ago

  • Status changed from Resolved to Verified
Actions #16

Updated by Sergey Smolov almost 9 years ago

  • Status changed from Verified to Closed
  • Published in build set to 0.2.1
Actions

Also available in: Atom PDF