Мультиклет: Issueshttp://multiclet.com/communityhttp://multiclet.com/community/community/favicon.ico?15601711372015-05-29T05:02:24ZМультиклет
Redmine MCC/LiME - Улучшение #41 (В работе): Реализация логики rvalue для писваиванийhttp://multiclet.com/community/issues/412015-05-29T05:02:24Zm.bakhterevm.bakhterev@multiclet.com
<p>Необходима корректная трансляция выражений типа <code>a = (a = b) + (c * d)</code>. Тут нужно метко заметить, что поток вычисления <code>[] + (c * d)</code> (скобками [] обозначаю дыру в выражении) тоже придётся прерывать и выводить во временную переменную. Это полезная подготовка к различным делениям и вызовам функций внутри выражений.</p> MCC/LiME - Ошибка #39 (Новая): Нужно исправить в ядре реконструкцию графов перед выводомhttp://multiclet.com/community/issues/392015-05-29T04:25:27Zm.bakhterevm.bakhterev@multiclet.com
<p>Перед выводом графов, ядро их реконструирует: восстанавливает описание типов, символов и окружений, генерируя .T, .S, .E и .EDef узлы. Текущий косяк в том, что этот алгоритм реконструкции слишком сложный и с некими эвристиками, решающими, когда и что выводить. Всё может быть намного проще:</p>
<p>1. Символы можно сразу же выводить вначале того линейного блока, который первым встречается в определённом окружении.</p>
<p>2. Типы сейчас выводятся нормально, по мере необходимости.</p>
<p>3. Окружения, по идее, тоже имеет смысл выводить только по мере необходимости и начала вывода линейного блока. Сейчас там некая зубодробительная эвристика, связанная с тем, что ссылки на символы выводятся по мере обращения к ним, а не вообще все подряд, в начале линейного блока. Поэтому ссылки на окружения, как ожидается, должны быть разбросаны по всем линейным блокам, но это не соответствует действительности. Происходит нечто непонятное.</p>