Фоновый codegen?
От: nikov США http://www.linkedin.com/in/nikov
Дата: 12.11.10 16:23
Оценка:
В Nemerle есть фоновый вывод типов и анализ ошибок при наборе кода в редакторе. А не планируется ли фоновый codegen?
То есть как только в теле метода нет ошибок, для него в фоновом потоке генерируется IL и сохраняется в каком-нибудь кеше. При необходимости — инвалидируется. Как только закончили набирать код — у нас уже готова сборка.
Re: Фоновый codegen?
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.11.10 20:05
Оценка:
Здравствуйте, nikov, Вы писали:

N>В Nemerle есть фоновый вывод типов и анализ ошибок при наборе кода в редакторе. А не планируется ли фоновый codegen?


Я думал об этом. Сделать это можно. Но на сегодня качество кода компилятора слишком низкое для подобных доработок. Я думал сделать это в 2.0. Не знаю только хватит ли сил.

N>То есть как только в теле метода нет ошибок, для него в фоновом потоке генерируется IL и сохраняется в каком-нибудь кеше. При необходимости — инвалидируется. Как только закончили набирать код — у нас уже готова сборка.


В приципе сейчас почти так и делается. Только после стадии T3 дальнейшая обработка останавливается.

Но есть и проблемы. Основная — компиляция все же живет немного иначе. У нее нет проблем со временем. Так некоторые макросы в дизайн-тайме ведут себя иначе. Они не генерят код, а только лишь делают проверки. Если это не далеть, то IDE начнет тормозить.

Так что потенциально — это возможно, но реально ли сказать не берусь.

Вот во время отладки наверно это можно было бы сделать. Только надо научиться менять тела методов в рантайме.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Фоновый codegen?
От: hardcase Пират http://nemerle.org
Дата: 13.11.10 11:48
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я думал об этом. Сделать это можно.


А вообще было бы круто: нажал F5 и софта мигом запустилась.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Фоновый codegen?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.11.10 14:23
Оценка: :)
Здравствуйте, hardcase, Вы писали:

VD>>Я думал об этом. Сделать это можно.


H>А вообще было бы круто: нажал F5 и софта мигом запустилась.


Вот это ваше "F5" циганьщиной отдает (с))

Круто было бы тупо жить в рантайме... поменял код и он уже работает. Но это просто реализовать только для скриптов (с вытекающими последствиями для производительности и надежности).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Фоновый codegen?
От: Воронков Василий Россия  
Дата: 13.11.10 14:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Круто было бы тупо жить в рантайме... поменял код и он уже работает. Но это просто реализовать только для скриптов (с вытекающими последствиями для производительности и надежности).


"Тупо жить в рантайме" — это REPL называется
Это реализуемо для интерпретируемых языков. Производительность — да, но надежность тут не причем. Интерпретируемость сама по себе никаких ограничений на язык не накладывает, а строго наоборот. Вот если бы у Немерле был интерпретатор, то при разработке его и можно было бы использовать, чтобы "тупо жить в рантайме", а на продакшин — уже скомпилированный код.
Re[5]: Фоновый codegen?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.11.10 15:02
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>"Тупо жить в рантайме" — это REPL называется


Это скорее виртуальная машина Смолтока. Репл ей на фиг не нужен.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Фоновый codegen?
От: dotneter  
Дата: 13.11.10 18:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, hardcase, Вы писали:


VD>>>Я думал об этом. Сделать это можно.


H>>А вообще было бы круто: нажал F5 и софта мигом запустилась.


VD>Вот это ваше "F5" циганьщиной отдает (с))


VD>Круто было бы тупо жить в рантайме... поменял код и он уже работает. Но это просто реализовать только для скриптов (с вытекающими последствиями для производительности и надежности).

А если каждый файл компилить в свой dll? Соответсвенно при изменении нужно всего ничего сделать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Talk is cheap. Show me the code.
Re[5]: Фоновый codegen?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.11.10 19:35
Оценка:
Здравствуйте, dotneter, Вы писали:

D>А если каждый файл компилить в свой dll? Соответсвенно при изменении нужно всего ничего сделать.


Все не так просто как может показаться с первого взгляда.

При изменении АСТ верхнего уровня придется пересобирать все эти сборки. Делать суровый инкрементальный режим очень не просто.

Плюс будут проблемы с временем загрузки и областями видимости.

Потом еще раз повторюсь, некоторые макры делают большой объем работы. Например, макрос PerGrammar может, на больших грамматиках, работать по 30 секунд. Для работы в режиме IDE это не приемлемо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.