Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692015-04-09T13:18:19ZOpen-Source Projects
Redmine Fortress - Task #5819 (Closed): Calculator for bit vectorshttps://forge.ispras.ru/issues/58192015-04-09T13:18:19ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subj. must be implemented.</p> Fortress - Bug #5775 (Closed): BitVector.longValue returns incorrect valueshttps://forge.ispras.ru/issues/57752015-03-27T09:00:32ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subject. The code blow fails:</p>
<pre><code class="java syntaxhl" data-language="java"><span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv1</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0x00000000000A0000</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv1</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv1</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0x00000000000A0000</span><span class="no">L</span><span class="o">,</span> <span class="n">bv1</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
<span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv2</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0xFFFFFFFFFFF5FFFF</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv2</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv2</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0xFFFFFFFFFFF5FFFF</span><span class="no">L</span><span class="o">,</span> <span class="n">bv2</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
<span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv3</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0xDEADBEEFBAADF00D</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv3</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv3</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0xDEADBEEFBAADF00D</span><span class="no">L</span><span class="o">,</span> <span class="n">bv3</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
</code></pre> MicroTESK - Bug #5708 (Closed): MicroTESK build fails: SsaAssembler - symbol Changes is not definedhttps://forge.ispras.ru/issues/57082015-03-13T11:06:24ZAndrei Tatarnikovandrewt@ispras.ru
<p>Artem, please add the Changes class to the SVN source code base. Now the build fails:</p>
<pre>
javac.core:
[mkdir] Created dir: /srv/hudson/jobs/MicroTESK/workspace/bin/microtesk
[javac] Compiling 272 source files to /srv/hudson/jobs/MicroTESK/workspace/bin/microtesk
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:42: error: cannot find symbol
[javac] Deque<Changes> changesStack;
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:43: error: cannot find symbol
[javac] Changes changes;
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:169: error: cannot find symbol
[javac] private static void join(Changes repo, Collection<GuardedBlock> blocks, Collection<Changes> containers, NodeTransformer xform) {
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:169: error: cannot find symbol
[javac] private static void join(Changes repo, Collection<GuardedBlock> blocks, Collection<Changes> containers, NodeTransformer xform) {
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:185: error: cannot find symbol
[javac] private static Node getJointFallback(String name, Changes master, Changes branch) {
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:185: error: cannot find symbol
[javac] private static Node getJointFallback(String name, Changes master, Changes branch) {
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:62: error: unexpected type
[javac] this.changesStack = new ArrayDeque<>();
[javac] ^
[javac] required: class
[javac] found: <E>ArrayDeque<E>
[javac] where E is a type-variable:
[javac] E extends Object declared in class ArrayDeque
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:65: error: cannot find symbol
[javac] this.changes = new Changes(changesStore, changesStore);
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:130: error: cannot find symbol
[javac] final Collection<Changes> containers = changes.fork(size);
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:131: error: cannot find symbol
[javac] final Iterator<Changes> rebasers = containers.iterator();
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java:172: error: cannot find symbol
[javac] for (Changes diff : containers) {
[javac] ^
[javac] symbol: class Changes
[javac] location: class SsaAssembler
[javac] Note: /srv/hudson/jobs/MicroTESK/workspace/src/main/java/core/ru/ispras/microtesk/translator/simnml/coverage/ssa/SsaAssembler.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 11 errors
BUILD FAILED
/srv/hudson/jobs/MicroTESK/workspace/build.xml:217: Compile failed; see the compiler error output for details.
Total time: 18 seconds
[WARNINGS] Skipping publisher since build result is FAILURE
Recording test results
Finished: FAILURE
</pre> MicroTESK - Task #5678 (Closed): Support for named branches in ISA specificationshttps://forge.ispras.ru/issues/56782015-03-03T10:46:59ZAndrei Tatarnikovandrewt@ispras.ru
<p>Named branches in ISA specifications must be supported:</p>
<ol>
<li>Support the construct "<code>branch("BranchName");</code>" in the nML translator;</li>
<li>Support situations for named branches in the coverage extractor.</li>
</ol> MicroTESK - Task #5666 (Closed): Estimate generation speedhttps://forge.ispras.ru/issues/56662015-03-03T07:38:30ZAndrei Tatarnikovandrewt@ispras.ru
<p>Performance benchmarks and corresponding examples are needed.</p> Fortress - Task #5665 (Closed): Support for CVC4https://forge.ispras.ru/issues/56652015-03-03T07:30:20ZAndrei Tatarnikovandrewt@ispras.ru
<p>Implement support for CVC4, a SMT solver that has no limits on its use (see <a class="external" href="http://cvc4.cs.nyu.edu/web/copyright/">http://cvc4.cs.nyu.edu/web/copyright/</a>).</p> Fortress - Bug #5463 (Closed): [S-expr] JavaDoc comments are neededhttps://forge.ispras.ru/issues/54632014-12-04T07:05:12ZAndrei Tatarnikovandrewt@ispras.ru
<p>The ru.ispras.fortress.esexpr package added in revisions r709 и r710 does not contain any description. It is not obvious what purpose it is supposed to serve. Corresponding JavaDoc comments should be included in the source code (including headers with the ISP RAS copyright).</p> Fortress - Bug #5460 (Closed): [project] Get rid of warningshttps://forge.ispras.ru/issues/54602014-12-04T06:55:25ZAndrei Tatarnikovandrewt@ispras.ru
<p>После коммитов r709 и r710 появилась куча Warning'ов. Нужно от них избавиться.</p>
<pre>
Description Resource Path Location Type
The import java.io.IOException is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 3 Java Problem
The import java.io.Reader is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 4 Java Problem
The import java.io.StreamTokenizer is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 5 Java Problem
The import java.io.StringReader is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 6 Java Problem
The import java.util.ArrayList is never used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 28 Java Problem
The import java.util.List is never used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 27 Java Problem
The method tryToParseError(String, SolverResultBuilder) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 245 Java Problem
The method tryToParseStatus(String, SolverResultBuilder) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 227 Java Problem
The method tryToParseVariable(String, Variable, SolverResultBuilder, Map<String,Variable>) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 302 Java Problem
The value of the local variable vi is not used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 123 Java Problem
</pre> Fortress - Bug #5217 (Closed): [expression] NodeBinding: hashCode and equals must be implementedhttps://forge.ispras.ru/issues/52172014-08-23T09:15:42ZAndrei Tatarnikovandrewt@ispras.ru
<p>У класса NodeBinding должны быть определены методы hashCode и equals, как это сделано в других классах Node.</p> Fortress - Task #5177 (Closed): [solver] Implement function templateshttps://forge.ispras.ru/issues/51772014-07-31T07:44:00ZAndrei Tatarnikovandrewt@ispras.ru
<p>Реализовать возможность расширять фонкциональность солвера операциями, основанными на шаблонах функций (Описывают семейство похожих функций, опрерирующих разными типами данных. Например, битовыми векторами разной длины). Солвер должен генерировать нужную функцию из семейства, описанного шаблоном, в зависимости от типа операндов.</p> Fortress - Task #5176 (Closed): [expression] Possibility to calculate the expression typehttps://forge.ispras.ru/issues/51762014-07-31T07:35:32ZAndrei Tatarnikovandrewt@ispras.ru
<p>Необходимо реализовать во всех подклассах Node метод getDataType для вычисления типа данных подвыражения:</p>
<pre>
public DataType getDataType()
</pre> MicroTESK - Bug #4996 (Closed): [translator] It should be possible to define the "instruction" op...https://forge.ispras.ru/issues/49962014-06-18T11:42:22ZAndrei Tatarnikovandrewt@ispras.ru
<p>The current version has an unreasonable limitation: the "instruction" operation (root) can be defined as an AND rule only. This should be changed. It should be allowed to define the "instruction" operation as an OR rule.</p> Fortress - Task #4693 (Closed): [data] Реализации операций над битовыми векторами (BitVector)https://forge.ispras.ru/issues/46932014-02-13T11:58:00ZAndrei Tatarnikovandrewt@ispras.ru
<p>Необходима реализация стандартного набора операций над битовыми векторами (BitVector) включая побитовые операции, логические операции и часто используемые арифметические операции. Подобная реализация существует в виде наброска в Model API MicroTESK. Ещё нужно перенести в Fortress, унифицировать, расширить и создать для неё модульные тесты.</p> MicroTESK - Task #4283 (Closed): [translator] Support for custom attributes in operations and add...https://forge.ispras.ru/issues/42832013-07-01T10:24:28ZAndrei Tatarnikovandrewt@ispras.ru
<p>Транслятор и модель должны поддерживатить использование <strong>кастомных аттрибутов</strong>. Например, в приведённом ниже куске используется аттрибут loop, который организует цикл путём рекурсии. Для трансляции модели MIPS требуется эта возможность.</p>
<pre>
op CLZ(rd : index, rs : REG_IND_ZERO)
syntax = format ("CLZ %d,%s", rd, rs.syntax)
image = format ("011100%s%5b%5b00000100000", rs.image, rd, rd)
action = {
tmp_signed_byte = 31;
GPR [rd] = 32;
loop;
}
loop = {
if tmp_signed_byte >= 0 then
if ( rs < tmp_signed_byte..tmp_signed_byte > == 0 ) then
tmp_signed_byte = tmp_signed_byte - 1;
else
GPR [ rd ] = 31 - tmp_signed_byte;
tmp_signed_byte = -1;
endif;
loop;
endif;
}
</pre> MicroTESK - Bug #4281 (Closed): [translator] Support for aliases in memory (aka mem) definitions.https://forge.ispras.ru/issues/42812013-07-01T06:29:20ZAndrei Tatarnikovandrewt@ispras.ru
<p>Подобные конструкции сейчас не поддерживаются транслятором Sim-nML:</p>
<pre>
mem tmp_signed_half_word [1, int(16)]
mem tmp_signed_half_word_A0 [1, int(8)] alias = tmp_signed_half_word[8]
</pre>
<p>Это одна из причин, по которой не удаётся оттранслировать спецификацию процессора MIPS.</p>