Re[4]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 07.12.14 08:53
Оценка:
Здравствуйте, Вестильд, Вы писали:

В>Это вы предлагаете в Nemerle? Может лучше mono допилить?


Конечно лучше, но кто этим займется ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 07.12.14 09:07
Оценка:
Здравствуйте, _NN_, Вы писали:

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


В>>Это вы предлагаете в Nemerle? Может лучше mono допилить?


_NN>Конечно лучше, но кто этим займется ?


Ну вот я пытаюсь. Вроде адаптировал старый патч с ItemDefinitionGroup.
Моя проблема в том, что почти не разбираюсь в MSBuild, и соответственно не понимаю, каким должен быть результат.
Ну и в open source никогда не комитил, надо научится это делать.
Re[6]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 07.12.14 09:52
Оценка:
Здравствуйте, Вестильд, Вы писали:

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


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


В>>>Это вы предлагаете в Nemerle? Может лучше mono допилить?


_NN>>Конечно лучше, но кто этим займется ?


В>Ну вот я пытаюсь. Вроде адаптировал старый патч с ItemDefinitionGroup.

Я пытался адаптировать но в итоге не сработало
https://bugzilla.xamarin.com/show_bug.cgi?id=10017

В>Моя проблема в том, что почти не разбираюсь в MSBuild, и соответственно не понимаю, каким должен быть результат.

Компилятор должен собираться

В>Ну и в open source никогда не комитил, надо научится это делать.

Это как раз проще всего.
Форк в github-е на github.com/mono/mono
Коммитим, пушим.
А сам пул реквест через веб можно сделать, в ващем форке даже сама кнопочка появится
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 07.12.14 11:58
Оценка:
Здравствуйте, _NN_, Вы писали:

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


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


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


В>>>>Это вы предлагаете в Nemerle? Может лучше mono допилить?


_NN>>>Конечно лучше, но кто этим займется ?


В>>Ну вот я пытаюсь. Вроде адаптировал старый патч с ItemDefinitionGroup.

_NN>Я пытался адаптировать но в итоге не сработало
_NN>https://bugzilla.xamarin.com/show_bug.cgi?id=10017

ArgumentNullException фиксится одной строчкой, вот только я опять же не понимаю, правильно ли я её пофиксил.

В>>Моя проблема в том, что почти не разбираюсь в MSBuild, и соответственно не понимаю, каким должен быть результат.

_NN>Компилятор должен собираться
компилятор-то и так собирается. я про то, что я очень плохо понимаю, как должны работать недостающие фичи xbuild-а.

В>>Ну и в open source никогда не комитил, надо научится это делать.

_NN>Это как раз проще всего.
_NN>Форк в github-е на github.com/mono/mono
_NN>Коммитим, пушим.
_NN>А сам пул реквест через веб можно сделать, в ващем форке даже сама кнопочка появится

наверно в нём надо будет сразу ветку под это дело открыть. только вопрос от какого коммита её делать? HEAD master-а естественно нифига не билдится.
Можно взять последний коммит в мастере, который билдился (он 26 сентября был https://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/)
а можно от mono-3.12.0-branch идти. Что посоветуете?
Re[8]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 07.12.14 12:34
Оценка:
Здравствуйте, Вестильд, Вы писали:

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


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


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


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


В>>>>>Это вы предлагаете в Nemerle? Может лучше mono допилить?


_NN>>>>Конечно лучше, но кто этим займется ?


В>>>Ну вот я пытаюсь. Вроде адаптировал старый патч с ItemDefinitionGroup.

_NN>>Я пытался адаптировать но в итоге не сработало
_NN>>https://bugzilla.xamarin.com/show_bug.cgi?id=10017

В>ArgumentNullException фиксится одной строчкой, вот только я опять же не понимаю, правильно ли я её пофиксил.

Можно тест добавить простой.
ItemDefinitionGroup
В принципе это как CreateItem + CreateProperty но проще в использовании.
Можно взять какой-нибудь готовый msbuild файл с этим делом и проверить.

Я вспомнил что проблема тут есть:
Nemerle.MSBuild.targets против http://https://github.com/rsdn/nemerle/blob/master/tools/msbuild-tas k/Nemerle.XBuild.targets.

Вот это XBuild разрулить так и не смог, и я сомневаюсь, что кто-то это починил.
 <ItemGroup>
<_NonMacroReferencePath Include="@(ReferencePath)" Condition="%(ReferencePath.OutputItemType) != 'macro'" />
<_MacroProjectReferencePath Include="@(ReferencePath)" Condition="%(ReferencePath.OutputItemType) == 'macro'" />
</ItemGroup>


Referencing Item Metadata in a Project File

В>>>Моя проблема в том, что почти не разбираюсь в MSBuild, и соответственно не понимаю, каким должен быть результат.

_NN>>Компилятор должен собираться
В>компилятор-то и так собирается. я про то, что я очень плохо понимаю, как должны работать недостающие фичи xbuild-а.
А Peg собирается тоже ?

В>>>Ну и в open source никогда не комитил, надо научится это делать.

_NN>>Это как раз проще всего.
_NN>>Форк в github-е на github.com/mono/mono
_NN>>Коммитим, пушим.
_NN>>А сам пул реквест через веб можно сделать, в ващем форке даже сама кнопочка появится

В>наверно в нём надо будет сразу ветку под это дело открыть. только вопрос от какого коммита её делать? HEAD master-а естественно нифига не билдится.

В>Можно взять последний коммит в мастере, который билдился (он 26 сентября был https://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/)
В>а можно от mono-3.12.0-branch идти. Что посоветуете?
Да тут как угодно, если свой форк то можно хоть с веткой хоть без.
Странно, обычно у меня мастер всегда собирается.
Я думаю не важно откуда начинать, в этой части все рано никто не меняет код и конфликтов не будет.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[9]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 29.12.14 06:12
Оценка: 10 (1)
Ура! Я впилил патч с ItemDefinitionGroup, ItemGroup и PropertyGroup в Target вроде бы ещё до меня сделали. И простейший проект собирается. Только кажется что это не связано с моими изменениями.

Но тесты по прежнему не билдятся.
xbuild Tests.nproj /p:TargetFrameworkVersion=v4.5 /p:Configuration=Release /tv:4.0

ncc/testsuite/test.n(342,29): error : expected list[Nemerle.Compiler.ISource], got list[string-] in assigned value: System.String is not a subtype of Nemerle.Compiler.ISource [simple require]


DevBuildFull тоже не билдится
build NemerleAll.nproj /target:DevBuildFull /p:TargetFrameworkVersion=v4.5 /p:Configuration=Release /tv:4.0

Command '"/usr/lib/mono/2.0/../../../bin/peverify" "/ld/program/nemerle/nemerle-trunk/nemerle/bin/Release/mono-4.5/Stage4/Nemerle.Compiler.dll"' exited with code: 1.


Изменения в репозитории https://github.com/vestild/mono/tree/improve_msbuild
Кто бы глянул?
И что с ними теперь делать? Push request в мастер основного репозитория?
Re[10]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 29.12.14 06:41
Оценка:
Здравствуйте, Вестильд, Вы писали:

В>Ура! Я впилил патч с ItemDefinitionGroup, ItemGroup и PropertyGroup в Target вроде бы ещё до меня сделали. И простейший проект собирается. Только кажется что это не связано с моими изменениями.


В>Но тесты по прежнему не билдятся.

В>DevBuildFull тоже не билдится
Тут есть другая проблема.
Если посмотреть в консоль то можно заметить , что берется всегда компилятор из Stage1, вместо 2,3 и 4.
Похоже проблема еще не решена.

Также при компиляции берутся зависимости без /macro из-за нерабочего Condition="%(ReferencePath.OutputItemType) != 'macro'" о котором я писал.
Тут даже не знаю как чинить, разве что надеется на открытие кода MSBuild

В>Изменения в репозитории https://github.com/vestild/mono/tree/improve_msbuild

В>Кто бы глянул?
В>И что с ними теперь делать? Push request в мастер основного репозитория?
Конечно !
Я только не понял зачем менять ToolsVersion=4.0 на 3.5 .

P.S. Pull-request
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[11]: Nemerle + Mono = ?
От: kekekeks  
Дата: 29.12.14 18:16
Оценка: 1 (1)
Есть мнение, что проще плюнуть и приспособить Nemerle к распространению через NuGet (то есть рантайма, компилятора, вообще всего). Нет, правда, тащить что-то в GAC — это моветон. Заодно автоматически починится проблема "не работает интеграция со студией после обновления, так как в GAC остались старые сборки".
Для Mono же отладочные символы можно всегда сконвертить в моновский формат через pdb2mdb.
Re[12]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 29.12.14 18:38
Оценка:
Здравствуйте, kekekeks, Вы писали:

K>Есть мнение, что проще плюнуть и приспособить Nemerle к распространению через NuGet (то есть рантайма, компилятора, вообще всего). Нет, правда, тащить что-то в GAC — это моветон. Заодно автоматически починится проблема "не работает интеграция со студией после обновления, так как в GAC остались старые сборки".

K>Для Mono же отладочные символы можно всегда сконвертить в моновский формат через pdb2mdb.

Только это не работает для пуристов , которые собирают все исключительно через исходники.
Как например требует ideone.com .
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[12]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 29.12.14 18:38
Оценка:
Здравствуйте, kekekeks, Вы писали:

K>Есть мнение, что проще плюнуть и приспособить Nemerle к распространению через NuGet (то есть рантайма, компилятора, вообще всего). Нет, правда, тащить что-то в GAC — это моветон. Заодно автоматически починится проблема "не работает интеграция со студией после обновления, так как в GAC остались старые сборки".

K>Для Mono же отладочные символы можно всегда сконвертить в моновский формат через pdb2mdb.

Проблема в сборке .nproj. Можно ли с помощью NuGet добавлять необходимые таргеты и таски?
Re[13]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 29.12.14 19:16
Оценка:
Здравствуйте, Вестильд, Вы писали:

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


K>>Есть мнение, что проще плюнуть и приспособить Nemerle к распространению через NuGet (то есть рантайма, компилятора, вообще всего). Нет, правда, тащить что-то в GAC — это моветон. Заодно автоматически починится проблема "не работает интеграция со студией после обновления, так как в GAC остались старые сборки".

K>>Для Mono же отладочные символы можно всегда сконвертить в моновский формат через pdb2mdb.

В>Проблема в сборке .nproj. Можно ли с помощью NuGet добавлять необходимые таргеты и таски?



Можно все что угодно.
К примеру: https://www.nuget.org/packages/MSBuildTasks/

NuGet умеет запускать Powershell скрипт, там вообще можно делать что хотим.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[14]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 29.12.14 19:33
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Можно все что угодно.

_NN>К примеру: https://www.nuget.org/packages/MSBuildTasks/

_NN>NuGet умеет запускать Powershell скрипт, там вообще можно делать что хотим.


Мы же в *nix Nemerle продвинуть хотим. Какой Powershell?

Вообще цель — пакет deb/rpm. Чтобы поставил пакет, и можешь xbuild Solution.sln с правильным выхлопом.
Re[13]: Nemerle + Mono = ?
От: kekekeks  
Дата: 30.12.14 04:36
Оценка:
ideone не поддерживает подключение nuget-пакетов?
Re[15]: Nemerle + Mono = ?
От: kekekeks  
Дата: 30.12.14 04:41
Оценка: 10 (1) +2
Здравствуйте, Вестильд, Вы писали:

В>Мы же в *nix Nemerle продвинуть хотим. Какой Powershell?


Вот такой. Используют Pash. Будущее наступило полгода назад, да.
Повторюсь, хватит мусорить в GAC, это порочная практика, создающая ненужные проблемы при сборке/деплое.
Re[15]: Nemerle + Mono = ?
От: kekekeks  
Дата: 30.12.14 04:47
Оценка:
И вообще, сложные PowerShell-скрипты не обязательны. Достаточно чтобы Nemerle ставил всё нужное ему, включая MSBuild-таски, в packages/Nemerle.1.2.3 (что NuGet делает без всяких скриптов сам), а содержимое nproj указывало туда, а не на C:\Program Files\Nemerle или куда там всё устанавливается. Разве что симлинк какой стоит сделать для упрощения жизни.
Re[15]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 30.12.14 06:52
Оценка:
Здравствуйте, Вестильд, Вы писали:

В>Мы же в *nix Nemerle продвинуть хотим. Какой Powershell?

А тогда какой NuGet ?

В>Вообще цель — пакет deb/rpm. Чтобы поставил пакет, и можешь xbuild Solution.sln с правильным выхлопом.

А зачем собирать если будет пакет ?
Кстати есть старый deb 0.9.3: https://launchpad.net/ubuntu/+source/nemerle
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[16]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 30.12.14 07:09
Оценка:
Здравствуйте, kekekeks, Вы писали:

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


В>>Мы же в *nix Nemerle продвинуть хотим. Какой Powershell?


K>Вот такой. Используют Pash. Будущее наступило полгода назад, да.


Круто.
Только в мире *Nix все равно удобнее пакетами deb/rpm распространять.

K>Повторюсь, хватит мусорить в GAC, это порочная практика, создающая ненужные проблемы при сборке/деплое.

Тут согласен полностью, даже MS уходят от этого.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[17]: Nemerle + Mono = ?
От: kekekeks  
Дата: 31.12.14 19:37
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Круто.

_NN>Только в мире *Nix все равно удобнее пакетами deb/rpm распространять.

Распространять что? Конечный софт — да. Библиотеки же по меньшей мере странно, это противоречит заложенному в .NET принципу распространения ПО "всё своё ношу с собой".

Посмотрите на список .NET-библиотек в репозиториях Ubuntu. Знаете, что их объединяет? Они либо поставляются как часть Mono, либо имеют нативные зависимости. Исключением являются MySql.Data, JSON.NET и libnini, которые нужны для работы MonoDevelop. Всё. Больше ничего нигде по пакетам не раскидывали, хотя .NET-приложений на GTK# в репозиториях предостаточно. Просто потому что это не имеет смысла. Зачем мучиться со сборкой и захламлять GAC, если можно сделать нормальное решение.



Да и сам переход на NuGet для Nemerle будет благом. Что имеем сейчас?

1) для работы над проектом Nemerle должен быть установлен на билд-сервере
2) каждый разработчик должен регулярно обновлять версию рантайма, которая глобальна
3) нет возможности работать над проектами, использующими разные версии Nemerle, если в одном новая что-то ломает, а в другом нужен позарез какой-то багфикс, надо каждый раз удалять и ставить нужную
4) единственный способ нормально распространять через NuGet библиотеки, написанные на Nemerle — использовать ILMerge и не выставлять наружу никаких немерлеспецифичных типов, что бред

Идеально:
1) рантайм и компилятор подключаются NuGet-пакетом
2) солюшн собирается на любом компьютере с .NET 4.0
Re[18]: Nemerle + Mono = ?
От: _NN_ www.nemerleweb.com
Дата: 01.01.15 12:21
Оценка:
Здравствуйте, kekekeks, Вы писали:

K>Идеально:

K>1) рантайм и компилятор подключаются NuGet-пакетом
K>2) солюшн собирается на любом компьютере с .NET 4.0

Я не против
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[18]: Nemerle + Mono = ?
От: Вестильд Россия  
Дата: 02.01.15 20:54
Оценка:
Здравствуйте, kekekeks, Вы писали:

K>Да и сам переход на NuGet для Nemerle будет благом. Что имеем сейчас?


K>1) для работы над проектом Nemerle должен быть установлен на билд-сервере

K>2) каждый разработчик должен регулярно обновлять версию рантайма, которая глобальна
K>3) нет возможности работать над проектами, использующими разные версии Nemerle, если в одном новая что-то ломает, а в другом нужен позарез какой-то багфикс, надо каждый раз удалять и ставить нужную
K>4) единственный способ нормально распространять через NuGet библиотеки, написанные на Nemerle — использовать ILMerge и не выставлять наружу никаких немерлеспецифичных типов, что бред

K>Идеально:

K>1) рантайм и компилятор подключаются NuGet-пакетом
K>2) солюшн собирается на любом компьютере с .NET 4.0

Звучит разумно. А расширение для студии сейчас в общем инсталляторе?
Надо будет тогда его отделить, чтобы он через менеджер плагинов в студии ставился.

Кажется вырисовывается Nemerle 1.3
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.