https://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692014-12-04T12:05:41ZOpen-Source ProjectsFortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=213262014-12-04T12:05:41ZArtem Kotsynyak
<ul></ul><p>Проблема решится, если использовать основания по умолчанию как определено DataTypeId.radix() (2 for bv and bool, 10 for int and real)? Другими словами, используется ли где-нибудь возможность использовать другие основания при конвертации в строки? Для решения <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Task: [arrays] arrays initialization is inconvenient (Closed)" href="https://forge.ispras.ru/issues/5462">#5462</a> написан тип, реализующий интерфейс Map<Data, Data>, при использовании которого можно будет гарантировать, что используются основания по умолчанию.</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=213292014-12-04T12:30:28ZSergey Smolovsmolov@ispras.ru
<ul></ul><p>На данный момент были отмечены только массивы из integer'ов с основанием 10 и битовых векторов с основанием 2. Но, чисто теоретически, HDL-описания могут содержать значения с произвольными натуральными основаниями >= 2. Это задача парсера - определить, какое основание используется в данный момент. В Проблеме 2 меня смутило то, что метод всегда возвращает 10.</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=213312014-12-04T12:39:51ZArtem Kotsynyak
<ul></ul><p>Издержка интерфейса DataTypeId, так как он требует указание основания для чтения значения из строки и был изначально рассчитан на единственное значение. При использовании оснований по умолчанию MAP.radix() вообще теряет смысл, так как не будет использоваться. Насколько я понимаю, проблемы возникают непосредственно из-за необходимости работы со строками и окажутся скрытыми, если использовать Map для работы с массивами.</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=213322014-12-04T12:48:37ZSergey Smolovsmolov@ispras.ru
<ul></ul><p>Метод radix() вызывается в методе getTypeRadix(), который, собственно, я и пытался использовать (что было, вообще говоря, неверно - он не для моих задач сделан). Раз код метода для MAP - заглушечный - то стоило бы отметить сей факт комментарием. Этим тогда Проблема 2 исчерпывается.</p>
<p>В данном тикете главная и самая существенная проблема - Проблема 1. Она костыльным образом сейчас мной решена. Если решение тебе, как специалисту по массивам, кажется нормальным - то задачу можно считать решенной (меня оно устраивает - в HDL-описаниях не встречаются массивы, у которых индексы <em>не</em> Integer). Если нет - то, видимо, при инициализации массивов надо отдельно передавать основания для индексов и для элементов.</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=215822014-12-25T10:57:12ZSergey Smolovsmolov@ispras.ru
<ul><li><strong>Priority</strong> changed from <i>Normal</i> to <i>High</i></li></ul><p>Что с этой задачей?</p>
<p>В преддверии выпуска нового Fortress настаиваю на её скорейшем решении.</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=215832014-12-25T11:52:00ZArtem Kotsynyak
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Resolved</i></li></ul><p>При инициализации массива из строкового представления используются основания по умолчанию для типов ключей и значений. Основание для составных типов вроде массивов считается неопределённым, методы radix() и getTypeRadix() всегда возвращают 0. Для инициализации массивов рекомендуется использовать класс DataMap (<a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Task: [arrays] arrays initialization is inconvenient (Closed)" href="https://forge.ispras.ru/issues/5462">#5462</a>).</p> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=215842014-12-25T12:10:48ZSergey Smolovsmolov@ispras.ru
<ul><li><strong>Status</strong> changed from <i>Resolved</i> to <i>Verified</i></li></ul> Fortress - Bug #5461: [arrays] Insufficient arrays supporthttps://forge.ispras.ru/issues/5461?journal_id=216232014-12-29T07:42:34ZAndrei Tatarnikovandrewt@ispras.ru
<ul><li><strong>Status</strong> changed from <i>Verified</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li><li><strong>Published in build</strong> set to <i>141226</i></li></ul>