Здравствуйте, _nn_, Вы писали:
__>Компилятор изрядно тормозит при компиляции этой структуры. (9 секунд компилирует файл) __>Что конкретно там создает проблему пока не искал.
__>Тут самодостаточный n файл для проверки: http://pastebin.com/tFearpY9
Надо комментировать методы и выявлять те что приводят к тормозам. Методом двоичного поиска (сначала комментируем половину методов, потом половину половины и т.п.) можно довольно быстро найти проблемное место.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, _nn_, Вы писали:
__>Nemerle.Compiler.nproj не открывается студией из-за одного файла. __>ncc\parsing\AST.n
__>А конкретно структура Location в этом файле.
__>Компилятор изрядно тормозит при компиляции этой структуры. (9 секунд компилирует файл) __>Что конкретно там создает проблему пока не искал.
__>Тут самодостаточный n файл для проверки: http://pastebin.com/tFearpY9
У меня этот файл скомпилировался за 1.6 секунды (в горячую и когда компилятор прекомпилирован джитом).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _nn_, Вы писали:
__>>Компилятор изрядно тормозит при компиляции этой структуры. (9 секунд компилирует файл) __>>Что конкретно там создает проблему пока не искал.
__>>Тут самодостаточный n файл для проверки: http://pastebin.com/tFearpY9
VD>Надо комментировать методы и выявлять те что приводят к тормозам. Методом двоичного поиска (сначала комментируем половину методов, потом половину половины и т.п.) можно довольно быстро найти проблемное место.
Если убрать все определения Location из файла, то работает.
Здравствуйте, VladD2, Вы писали:
VD>Надо комментировать методы и выявлять те что приводят к тормозам. Методом двоичного поиска (сначала комментируем половину методов, потом половину половины и т.п.) можно довольно быстро найти проблемное место.
Если в AST.n изменить имя с Location скажем на AnotherLocation, то ничего не зависает
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _nn_, Вы писали:
__>>Если в AST.n изменить имя с Location скажем на AnotherLocation, то ничего не зависает
VD>Видимо клинч с типами из Nemerle.Compiler.dll. Это и раньше было. Лично я даже не пробовал открывать проекты компилятора в интеграции.
Сообственно вопрос, как это решить ?
Все же править компилятор из интеграции гораздо приятнее, чем из блокнота.
Здравствуйте, _nn_, Вы писали:
__>Сообственно вопрос, как это решить?
Как и все остальное. Садиться и долго и упорно трахаться пока не решишь проблему. По другому никак.
__>Все же править компилятор из интеграции гораздо приятнее, чем из блокнота.
Я для этих целей создаю проект, подключаю к нему компиляторные сборки, создаю наследников нужных классов и копирую в них методы что нужно править. Далее те члены которые являются скрытыми так же копирую и добавляю к ним модификатор new. Далее редактирование идет с комплитом, блэкдеком и шлюхами. Единственный недостаток — копипэст постоянный (между реальными файлами и фалами этого фэйк-проекта).
Конечно было бы здорово если бы интеграция открывала бы компиляторе сборки, но что-то оно не взлетает. А тратить на это пол жизни тоже не хочется.
Вот в 2.0 это точно нужно будет обеспечить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Конечно было бы здорово если бы интеграция открывала бы компиляторе сборки, но что-то оно не взлетает. А тратить на это пол жизни тоже не хочется.
На самом деле можно сделать уже сейчас.
Открыть AST.n изменить struct Location на struct OtherLocation.
Открыть Nemerle-2008.sln
Изменить обратно на struct Location.
[!] Далее не открывать файл AST.n в студии если есть "struct Location".
Здравствуйте, _nn_, Вы писали:
__>На самом деле можно сделать уже сейчас. __> Открыть AST.n изменить struct Location на struct OtherLocation. __> Открыть Nemerle-2008.sln __> Изменить обратно на struct Location. __>[!] Далее не открывать файл AST.n в студии если есть "struct Location".
__>И все будет работать
Это не работа, а набор приседаний с негарантированным результатом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.