Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 22.03.10 21:33
Оценка:
Добавил давеча параметр в компилятор, позволяющий отключить проверку переполнения, осуществляющуюся по-умолчанию: -checked+/-
Он работает, фсе замечательно, но вот при добавлении соответствующего параметра в msbuild возник вопрос.
Обновленный мною Nemerle.MSBuild.targets (в <Ncc> добавил атрибут CheckIntegerOverflow="$(CheckIntegerOverflow)") копируется в boot каталог и используется для билда всего что есть. Но сборщик ругается, что для моего параметра (CheckIntegerOverflow) не нашлось свойства в классе Ncc. И правильно — его там еще нет.
Как вообще быть в такой ситуации?
Напрашивается банальное решение — в boot иметь targets-файл, с которым сборщик сможет работать, а не копировать его из каталога проекта Nemerle.MSBuild.Tasks.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 21:49
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Обновленный мною Nemerle.MSBuild.targets (в <Ncc> добавил атрибут CheckIntegerOverflow="$(CheckIntegerOverflow)") копируется в boot каталог и используется для билда всего что есть. Но сборщик ругается, что для моего параметра (CheckIntegerOverflow) не нашлось свойства в классе Ncc. И правильно — его там еще нет.

H>Как вообще быть в такой ситуации?

Комитить бут, чтобы в нем лежали свежие сборки.

H>Напрашивается банальное решение — в boot иметь targets-файл, с которым сборщик сможет работать, а не копировать его из каталога проекта Nemerle.MSBuild.Tasks.


Тоже логично.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Nemerle.MSBuild.targets, почему не в boot?
От: gloomy rocker Россия  
Дата: 23.03.10 07:30
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Обновленный мною Nemerle.MSBuild.targets (в <Ncc> добавил атрибут CheckIntegerOverflow="$(CheckIntegerOverflow)") копируется в boot каталог и используется для билда всего что есть.

Он копируется не только в boot, но и в папку каждой стадии сборки $(NRoot)\bin\$(Configuration)\StageX (X=1..4). При внесении каких-либо изменений это тоже нужно учитывать.
Скука — двигатель прогресса.
Re[2]: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.10 09:46
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

H>>Обновленный мною Nemerle.MSBuild.targets (в <Ncc> добавил атрибут CheckIntegerOverflow="$(CheckIntegerOverflow)") копируется в boot каталог и используется для билда всего что есть.

GR>Он копируется не только в boot, но и в папку каждой стадии сборки $(NRoot)\bin\$(Configuration)\StageX (X=1..4). При внесении каких-либо изменений это тоже нужно учитывать.

В общем, нужно подумать. От Nemerle.MSBuild.targets зависит сборка проектов компилятора. Боюсь, что если хранить его старую копию в БУТ-е, это может привести к тому, что с его помощью бедет нельзя собрать проекты компилятора, так как в них уже будут использоваться новые свойства.

Так что нужно просто комитить бинарники при любом изменении Nemerle.MSBuild.targets или MSBuildTask.dll.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 23.03.10 10:49
Оценка: +1
Здравствуйте, VladD2, Вы писали:


VD>Так что нужно просто комитить бинарники при любом изменении Nemerle.MSBuild.targets или MSBuildTask.dll.


Т.е. получается такой цирк:

1) собираю обновленный Nemerle.MSBuild.Task.dll и остальное со старым targets-файлом,
2) заменяю в boot новой версией Nemerle.MSBuild.Task.dll
3) обновляю targets-файл, и снова пересобираюсь (для проверки)
4) выполняю коммит
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Nemerle.MSBuild.targets, почему не в boot?
От: gloomy rocker Россия  
Дата: 23.03.10 13:19
Оценка: +1
Здравствуйте, hardcase, Вы писали:

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



VD>>Так что нужно просто комитить бинарники при любом изменении Nemerle.MSBuild.targets или MSBuildTask.dll.


H>Т.е. получается такой цирк:


H>1) собираю обновленный Nemerle.MSBuild.Task.dll и остальное со старым targets-файлом,

H>2) заменяю в boot новой версией Nemerle.MSBuild.Task.dll
H>3) обновляю targets-файл, и снова пересобираюсь (для проверки)
H>4) выполняю коммит

Если перевести Nemerle.MSBuild.Task.dll на C#, то эта процедура сильно упростится.
Скука — двигатель прогресса.
Re[5]: Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 23.03.10 13:29
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

GR>Если перевести Nemerle.MSBuild.Task.dll на C#, то эта процедура сильно упростится.


Предлагаешь этим заняться? Могу сделать в принципе.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[6]: Nemerle.MSBuild.targets, почему не в boot?
От: gloomy rocker Россия  
Дата: 23.03.10 13:32
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, gloomy rocker, Вы писали:


GR>>Если перевести Nemerle.MSBuild.Task.dll на C#, то эта процедура сильно упростится.


H>Предлагаешь этим заняться? Могу сделать в принципе.

Думаю такая переделка избавит от этой и от некоторых других проблем.
Скука — двигатель прогресса.
Re[7]: Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 23.03.10 14:11
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

GR>Думаю такая переделка избавит от этой и от некоторых других проблем.


А может всетаки складывать в boot соответствующую версию targets-файла?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.10 17:46
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

GR>Если перевести Nemerle.MSBuild.Task.dll на C#, то эта процедура сильно упростится.


Это давно надо было сделать (да исходно даже). Просто руки все не доходят. Там интелекта — 0. Шарпа за глаза. А всех этих проблем с компиляцией и блокировками можно было бы избежать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.10 17:47
Оценка:
Здравствуйте, hardcase, Вы писали:

H>А может всетаки складывать в boot соответствующую версию targets-файла?


Дык вылезет другая проблема. Проекты то будут уже другой версии и все равно придется комитить бинарники.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle.MSBuild.targets, почему не в boot?
От: seregaa Ниоткуда http://blogtani.ru
Дата: 23.03.10 19:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это давно надо было сделать (да исходно даже). Просто руки все не доходят. Там интелекта — 0. Шарпа за глаза. А всех этих проблем с компиляцией и блокировками можно было бы избежать.


Я хотел ее рефлектором в c# декомпилировать и все, кроме функции Ncc.LogEventsFromTextOutput выглядит после декомпиляции вполне прилично, но с LogEventsFromTextOutput получается совсем харкор:
protected override void LogEventsFromTextOutput(string singleLine, MessageImportance _N_wildcard_1855)
{
    _N_closure_7353 e_ = new _N_closure_7353();
    e_._N_singleLine_7360 = singleLine;
    e_._N__N_closurised_this_ptr_7358 = this;
    FunctionVoid<string, int, int, int, int, string> logError = new _N_logError__7498(e_);
    FunctionVoid<string, int, int, int, int, string> logWarning = new _N_logWarning__7513(e_);
    bool flag1 = !(!(!(!this._N_tryReport_7400(e_, "error:", logError) ? this._N_tryReport_7400(e_, "warning:", logWarning) : true) ? this._N_tryReport_7400(e_, "debug:", logError) : true) ? this._N_tryReport_7400(e_, "hint:", logWarning) : true) ? this.Log.LogMessageFromText(e_._N_singleLine_7360, MessageImportance.High) : true;
}

а попытка декомпилировать две локальные функции, объявленные внутри LogEventsFromTextOutput вызывают падение рефлектора.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[7]: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.10 19:55
Оценка:
Здравствуйте, seregaa, Вы писали:

S>Я хотел ее рефлектором в c# декомпилировать и все,


Ну, это уже черезчур. Как потом этот код поддерживать то?

S>кроме функции Ncc.LogEventsFromTextOutput выглядит после декомпиляции вполне прилично, но с LogEventsFromTextOutput получается совсем харкор:

S>
S>protected override void LogEventsFromTextOutput(string singleLine, MessageImportance _N_wildcard_1855)
S>{
S>    _N_closure_7353 e_ = new _N_closure_7353();
S>    e_._N_singleLine_7360 = singleLine;
S>    e_._N__N_closurised_this_ptr_7358 = this;
S>    FunctionVoid<string, int, int, int, int, string> logError = new _N_logError__7498(e_);
S>    FunctionVoid<string, int, int, int, int, string> logWarning = new _N_logWarning__7513(e_);
S>    bool flag1 = !(!(!(!this._N_tryReport_7400(e_, "error:", logError) ? this._N_tryReport_7400(e_, "warning:", logWarning) : true) ? this._N_tryReport_7400(e_, "debug:", logError) : true) ? this._N_tryReport_7400(e_, "hint:", logWarning) : true) ? this.Log.LogMessageFromText(e_._N_singleLine_7360, MessageImportance.High) : true;
S>}
S>

S>а попытка декомпилировать две локальные функции, объявленные внутри LogEventsFromTextOutput вызывают падение рефлектора.

А не проще просто взять и переписать?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Nemerle.MSBuild.targets, почему не в boot?
От: seregaa Ниоткуда http://blogtani.ru
Дата: 23.03.10 20:00
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А не проще просто взять и переписать?

Получается, что проще. Но для этого нужно, чтобы до этой задачи дошли чьи то руки. Я думал обойтись малой кровью, но не вышло (
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[9]: Nemerle.MSBuild.targets, почему не в boot?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.10 20:05
Оценка:
Здравствуйте, seregaa, Вы писали:

S>Получается, что проще. Но для этого нужно, чтобы до этой задачи дошли чьи то руки. Я думал обойтись малой кровью, но не вышло (


Выбор решений малой крови очень часто со временем становится причиной большого кровопролития, но уже других лиц.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 23.03.10 22:41
Оценка:
Здравствуйте, VladD2, Вы писали:

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


S>>Получается, что проще. Но для этого нужно, чтобы до этой задачи дошли чьи то руки. Я думал обойтись малой кровью, но не вышло (


VD>Выбор решений малой крови очень часто со временем становится причиной большого кровопролития, но уже других лиц.


ОК. Я займусь.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[11]: Nemerle.MSBuild.targets, почему не в boot?
От: hardcase Пират http://nemerle.org
Дата: 24.03.10 12:26
Оценка:
Здравствуйте, hardcase, Вы писали:

H>ОК. Я займусь.


Nemerle.MSBuild.Tasks переписан на C#, структура его идентична прежнему на Nemerle. Осталось лишь использовать этот проект для полного билда, я не слишком хорошо разбираюсь в сборке потому сделать это самостоятельно не смог.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.