Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692016-11-28T13:25:42ZOpen-Source Projects
Redmine TestBase - Bug #7759 (Closed): Avoid using lambda functionshttps://forge.ispras.ru/issues/77592016-11-28T13:25:42ZAndrei Tatarnikovandrewt@ispras.ru
<p>Использование lambda-функций (<a href="http://forge.ispras.ru/projects/testbase/repository/revisions/50f3ae809bbfc504fc7745eee8b626a5e7f4b019/entry/src/main/java/ru/ispras/testbase/storage/SQLiteStorage/db/dao/FormulaDAO.java" class="external">как здесь</a>) в реализации нежелательно. Они не поддерживаются в Java 1.7, которая сейчас используется для сборки всех проектов.</p> MicroTESK - Bug #6194 (Rejected): Automated extraction of addressable unit sizehttps://forge.ispras.ru/issues/61942015-07-13T07:36:34ZAndrei Tatarnikovandrewt@ispras.ru
<p>Need to automatically extract size of addressable unit (by default, byte) from ISA specifications.</p> 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 - Task #5676 (Closed): [generator] Random generation - weighting / biasing distribution https://forge.ispras.ru/issues/56762015-03-03T09:20:51ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subj. must be implemented.</p>
<p>Discussion about the randomisation/seeding/biasing/buckets point (Randomisation and seeding / Biasing – not just :min, :max , but buckets):</p>
<blockquote>
<p>we were thinking about something available in languages with support for constrained-random activity, like Specman 'e' and SystemVerilog.</p>
<p>For instance this is a SystemVerilog example taken from <a class="external" href="http://www.asic-world.com/systemverilog/random_constraint7.html">http://www.asic-world.com/systemverilog/random_constraint7.html</a> :<br /><pre>
constraint src {
src_port dist {
0 := 1,
1 := 1,
2 := 5,
4 := 1
};
}
constraint des {
des_port dist {
[0 : 5 ] :/ 5,
[6 : 100 ] := 1,
[101 : 200 ] := 1,
[201 : 255 ] := 1
};
}
</pre><br />Basically the "dist" construct allows a "distribution" of probability to be specified.</p>
<p>For instance the value of "src_port" can have values 0,1,2,4, where values 0,1,4 all have the same weight whereas value 2 has five times the weight of the others.</p>
<p>As the total sum of all the weights is 8, values 0,1,4 will be extracted 1/8 of the time each (i.e. 12.5%), whereas value 2 will have a probability of 5/8 (i.e. 62.5%).</p>
<p>The second example for "dst_port" is a bit more complex (you can find an explanation of the operators here: <a class="external" href="http://www.testbench.in/CR_15_CONSTRAINT_EXPRESSION.html">http://www.testbench.in/CR_15_CONSTRAINT_EXPRESSION.html</a> ).</p>
<p>Basically all the values comprised for instance in the second range [6:100] will all have a weight of 1 each; whereas those in the first range will share the same weight of 5 (so the six numbers will have a weight of 5/6 each).</p>
<p>Each of these ranges can be considered a "bucket" (but we usually refer to this as "distributions" at the time of generation and "bucketing" at the time of collecting coverage).</p>
<p>In addition of getting generating values match the desired distribution across multiple generated tests, it is desirable to be able to generate exactly the same test again if the generator is invoked with the same randomization seed (typically from the command line).</p>
<p>Please note that the probability distribution doesn't necessarily have to only work with numbers, for instance something like this could be envisaged for load instructions:<br /><pre>
constraint c_LD_instr {
LD_instr dist {
LDR := 1,
LDRB := 1,
LDRH := 5,
LDUR := 1
};
}
</pre></p>
</blockquote> 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> MicroTESK - Task #5654 (Closed): [template] User-defined seed for random generationhttps://forge.ispras.ru/issues/56542015-02-24T11:19:25ZAndrei Tatarnikovandrewt@ispras.ru
<p>Need an option to specify a user-defined seed for random generation.</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> MicroTESK - Bug #4109 (Closed): [template] Update needed: Test templates do not work after change...https://forge.ispras.ru/issues/41092013-04-15T06:30:24ZAndrei Tatarnikovandrewt@ispras.ru
<p>У меня не запускаются скрипты. Ревизия последняя. Вот что выводится в консоль:</p>
<p>andrewt@uragan:~/Documents/ISPRAS/src/microtesk/trunk/microtesk> svn update<br />Updating '.':<br />At revision 1177.<br />andrewt@uragan:~/Documents/ISPRAS/src/microtesk/trunk/microtesk> sh generate.sh arm dist/scripts/templates/templates/arm_demo.rb <br />Creating model object<br />Model object created<br />' doesn't exist. File '/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/scripts/templates/templates/arm_demo.rb<br />generate.sh: line 3: $'\r': command not found</p> MicroTESK - Task #4104 (Closed): [translator] Reset VAR values after an instruction callhttps://forge.ispras.ru/issues/41042013-04-13T20:16:19ZAndrei Tatarnikovandrewt@ispras.ru
<p>Согласно спецификации переменные (объявлены ключевым словом var) не сохраняют своих значений между вызовами инструкции (в отличие от reg-ов и mem-ов). Нужно сбрасывать их значения, что бы там не скапливался мусор, который может привести к некорректным результатам.</p> MicroTESK - Bug #4015 (Closed): [translator] Shift and Rotate operations: negative distancehttps://forge.ispras.ru/issues/40152013-03-17T15:00:02ZAndrei Tatarnikovandrewt@ispras.ru
<p>Для данных, моделируемых через RawData, не будут работать операторы сдвига и поворота, если второй операнд (на сколько сдвигаем/поворачиваем) будет отрицательным.</p> MicroTESK - Bug #3996 (Closed): [translator] Support for long types (64-bit) in expressionshttps://forge.ispras.ru/issues/39962013-03-11T09:47:24ZAndrei Tatarnikovandrewt@ispras.ru
<p>Сейчас не поддерживаются числа больше 32-х бит (int). При трансляции встречаются выражения, использующие 64-битные константы и транслирующиеся напрямую в Java код (без упаковки в классы Data/RawData). Такие выражения мы не можем оттраслировать т.к. не используем тип long при трансляции в Java. Нужно его использовать.</p>
<p>if (sum < 0xffffffff80000001) then <br /> GPR[rd] = 0x80000001;<br /> CPSR<27..27> = 1;<br />else<br /> GPR[rd] = op1 - op2;<br />endif;</p> MicroTESK - Bug #3995 (Closed): [translator] Support for bitfields using non-constant expressionshttps://forge.ispras.ru/issues/39952013-03-11T09:39:51ZAndrei Tatarnikovandrewt@ispras.ru
<p>Для правильной индентификации типов при обращении к битовым полям вычисляется размер поля (на этапе трансляции).<br />Индексные выражения, как правило, - статически вычисляемые константные выражения. Однако, возможны следующие варианты:</p>
<p>shifter_carry_out = GPR[r]<amount-1..amount-1>;</p>
<p>Такой код не будет транслироваться т.к. amount - не константа. Однако, размер поля можно посчтитать и видно, что он будет равен 1.<br />В модели ARM встречается несколько подобных симметричных конструкций. Для них можно и НУЖНО вычислять размер поля.</p>