Cx# - первая задача - типизация выражений
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.01.17 14:15
Оценка:
У меня много работы по Нитре. Так что не смогу начать работать над Cx# и Немерле в ближайшее время.

Но над ними можно работать уже сейчас.

Первая задача которую можно делать уже сейчас: типизация стейтментов и выражений С#.

Я могу объяснить, что и как надо делать.

Если ли желающие?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Cx# - первая задача - типизация выражений
От: ijsgaus  
Дата: 26.01.17 20:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>У меня много работы по Нитре. Так что не смогу начать работать над Cx# и Немерле в ближайшее время.


VD>Но над ними можно работать уже сейчас.


VD>Первая задача которую можно делать уже сейчас: типизация стейтментов и выражений С#.


VD>Я могу объяснить, что и как надо делать.


VD>Если ли желающие?

Влад. Я восхищаюсь твоим упорством. Если моя помощь по мере сил может быть полезна.. К сожалению с нитрой я еше не разобрался, только общие принципы. Все остальное из требований обеспечу. Чем кстати мешает 2017 студия? Опыт в в программировании свыше 30 лет. С языковой базой то же вроде ничего, под 30 языков знаю. Принципы компиляци, вроде то же. Только начинаю буксовать на неопрделенности задач. Синтаксис ни одного из пары языков не нашел. Чем Nemerle 2 отличается от первого? Что вносить в 7 C#? Както все плавет. Так то я готов.
Если есть какая то заинтересованность, пиши на майл. Сама идея мне близка.
С уважением, Иван Симонгауз (ijsgaus@gmail.com)
Re[2]: Cx# - первая задача - типизация выражений
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.01.17 01:10
Оценка:
Здравствуйте, ijsgaus, Вы писали:

I>Влад. Я восхищаюсь твоим упорством. Если моя помощь по мере сил может быть полезна.. К сожалению с нитрой я еше не разобрался, только общие принципы. Все остальное из требований обеспечу. Чем кстати мешает 2017 студия?


Потому что нам нужна совместимость с 2015-й, а новые весрии будут неизбежно ставить разную новую хрень. Плюс модули скомпилированные для более старших фреймворков не будут работать со старыми (это уже тараканы текущей версии Nemerle). Так что более новый фреймворк — это тоже проблема.

I>Опыт в в программировании свыше 30 лет. С языковой базой то же вроде ничего, под 30 языков знаю.


Ого! Я, пожалуй, столько названий то не знаю.

I>Принципы компиляци, вроде то же. Только начинаю буксовать на неопрделенности задач.


Это не беда. В интерактивном режиме разберемся.

I>Синтаксис ни одного из пары языков не нашел.


На первой файзе будем развивать Cx#. Точнее даже C#, так как Cx# должен быть развитием C#.

Сам проект Cx# находится в солюшене Nita:
https://github.com/rsdn/nitra/tree/master/Grammars/CSharp/CSharp.Grammar
Грамматика находится в подкаталоге CSharp.

Описание спецификации от MS можно найти каталоге студии ("путь-к-VS2015\VC#\Specifications\1033\CSharp Language Specification.docx") или скачать здесь.

Спеки по C# 6 и 7 пока нет (я не нашел). Расширения C# 6 описаны здесь: https://docs.microsoft.com/ru-ru/dotnet/articles/csharp/csharp-6

I>Чем Nemerle 2 отличается от первого?


Главным образом макросистемой, которая будет на базе Nitra. На первом этапе на него забиваем. Это облегчит вход в тему. Плюс у C# есть спецификация.

Собственно по Nemerle 2 пока вообще ничего нет. Но он будет довольно сильно пересекаться с Cx#. Так что труд вложенный в Cx# можно считать началом по работе над Nemerle 2.

I>Что вносить в 7 C#?


Не понял вопрос.

Проект C# уже существует. На первом этапе нужно просто научиться его собирать и запускать под отладку в Nitra.Visualizer.exe.

I>Както все плавет. Так то я готов.


Ничего, разберемся. Мой скайп vc.rsdn.ru. Для оперативного общения лучше использовать Скайп. Так же на случай если возникнет нужна в непосредственной помощи лучше иметь на машине TeamViewer последней версии.

I>Если есть какая то заинтересованность, пиши на майл. Сама идея мне близка.

I>С уважением, Иван Симонгауз (ijsgaus@gmail.com)

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

Общаться лучше прямо здесь или по Скайпу (для оперативного общения). Общение здесь, надеюсь, с подвигнет и других. А главное, будет некоторой заменой документации и инструкций на первое время.

Собственно первой задачей является сборка Nemerle и Nitra из исходников. Nemerle лучше тоже иметь собранныи из исходиков. Это упрощает его отладку. В прочем, это не обязательно и его можно поставить инсталлятором.

Вот здесь инструкция по сборке: https://github.com/rsdn/nitra/wiki/Nitra-Build-process

Если возникнут какие-то проблемы со сборкой, дергай меня по Скайпу или пиши тут.

При успешной сборке проекта можно запустить под отладкой Nitra.Visualizer.exe и открыть в нем тесты C#-а (Tests\Visualizer\CSharp.nsln).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Cx# - первая задача - типизация выражений
От: MAMOHT  
Дата: 14.03.17 14:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если возникнут какие-то проблемы со сборкой, дергай меня по Скайпу или пиши тут.


VD>При успешной сборке проекта можно запустить под отладкой Nitra.Visualizer.exe и открыть в нем тесты C#-а (Tests\Visualizer\CSharp.nsln).


Заманчивая идея: поучаствовать в таком большом проекте, но провалился на этапе BuildBoot.cmd
Если ноутбук починят и не будет аврала на работе, можно попробовать вечерочками поработать.
Пока, с рабочего компа, вижу такое:
  лог
бла-бла-бла, тут все хорошо.

/ref:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.Parallel.dll"
/ref:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.ReaderWriter.dll"
/ref:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XDocument.dll"
/ref:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XmlSerializer.dll"

/out:obj\Debug\Boot\Nitra.Compiler.dll
CompilingNitraProject.Passes.n(400,9,400,35): error : there is no member named `BeforeSaveAssembly' in Nemerle.Compiler.ManagerClass with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(400,9,400,16): error : unbound name `BeforeSaveAssembly' in `Manager' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(400,9,400,60): error : needed a writable location for assignment target, got an erroneous expression, which is read-only [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,35): error : there is no member named `BeforeSaveAssembly' in Nemerle.Compiler.ManagerClass with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,16): error : unbound name `BeforeSaveAssembly' in `Manager' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,60): error : needed a writable location for assignment target, got an erroneous expression, which is read-only [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
Generation\Ast\BaseAstEmitter.DefineDependentPropertiesEvaluation.n(40,11,40,33): error : there is no member named `SkipEmiting' in Nemerle.Compiler.MethodBuilder with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
Generation\Ast\BaseAstEmitter.DefineDependentPropertiesEvaluation.n(40,11,40,21): error : unbound name `SkipEmiting' in `evalMethod' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
Построение проекта "D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj" завершено (целевые объекты Build) с ошибкой.
Построение проекта "D:\dev\Nitra\nitra\Common\BootTasks.proj" завершено (целевые объекты BuildBoot) с ошибкой.

Не удалось выполнить построение.

"D:\dev\Nitra\nitra\Common\BootTasks.proj" (целевой объект BuildBoot ) (1) ->
"D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj" (целевой объект Build ) (2) ->
(Целевой объект CoreCompile) ->
CompilingNitraProject.Passes.n(400,9,400,35): error : there is no member named `BeforeSaveAssembly' in Nemerle.Compiler.ManagerClass with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(400,9,400,16): error : unbound name `BeforeSaveAssembly' in `Manager' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(400,9,400,60): error : needed a writable location for assignment target, got an erroneous expression, which is read-only [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,35): error : there is no member named `BeforeSaveAssembly' in Nemerle.Compiler.ManagerClass with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,16): error : unbound name `BeforeSaveAssembly' in `Manager' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
CompilingNitraProject.Passes.n(403,9,403,60): error : needed a writable location for assignment target, got an erroneous expression, which is read-only [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
Generation\Ast\BaseAstEmitter.DefineDependentPropertiesEvaluation.n(40,11,40,33): error : there is no member named `SkipEmiting' in Nemerle.Compiler.MethodBuilder with type ? [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]
Generation\Ast\BaseAstEmitter.DefineDependentPropertiesEvaluation.n(40,11,40,21): error : unbound name `SkipEmiting' in `evalMethod' [D:\dev\Nitra\nitra\Boot2\Nitra.Compiler\Nitra.Compiler.nproj]

Предупреждений: 0
Ошибок: 8
Re[4]: Cx# - первая задача - типизация выражений
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.17 16:21
Оценка:
Здравствуйте, MAMOHT, Вы писали:

MAM>CompilingNitraProject.Passes.n(400,9,400,35): error : there is no member named `BeforeSaveAssembly' in Nemerle.Compiler.ManagerClass with type ?


Судя по всему на машине стоит какой-то очень древний Nemerle. Надо его анинсталлировать и скачать новый (отсюда). Или собрать его из исходников.

На всякий случай подправил Nitra-Build-process.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Cx# - первая задача - типизация выражений
От: MAMOHT  
Дата: 15.03.17 06:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Судя по всему на машине стоит какой-то очень древний Nemerle. Надо его анинсталлировать и скачать новый (отсюда). Или собрать его из исходников.


VD>На всякий случай подправил Nitra-Build-process.


Да, спасибо, заработало.
Последняя засада: фишки C#7.0 в проекте WpfHint2, типа token.Attributes.TryGetValue("size", out var size)

На голой VS2015 c Update 3 не билдится.
Re[6]: Cx# - первая задача - типизация выражений
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.03.17 13:27
Оценка:
Здравствуйте, MAMOHT, Вы писали:

MAM>Да, спасибо, заработало.

MAM>Последняя засада: фишки C#7.0 в проекте WpfHint2, типа token.Attributes.TryGetValue("size", out var size)

MAM>На голой VS2015 c Update 3 не билдится.


Да, это мой косяк. У меня это дело каким-то чудом само на машине
Автор: VladD2
Дата: 08.03.17
оказалось (без установки 2017-й студии) и я по предложениям квикфиксов заюзал его уже кое-где.

Я сейчас в раздумьях. То ли переходить на 2017-ю студию, то ли найти способ позволяющий работать на обоих (раз на моей машине пашет, то значит путь есть), или вычищать все это дело.

Вычищать очень не хочется.

По идее для сборки должно быть достаточно установки вот этого нюгет-пакета. По крайней мере товарищ тут об этом пишет
Автор: KRT
Дата: 09.03.17
.

Попробуй пока его. А я пока проработаю вопрос перехода на 2017-ю студию. Говорят она сильно быстрее грузится. Это благо для отладки расширений. Плюс 7-й Шарп сильно меньше нервы портит на фоне Немерла.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Cx# - первая задача - типизация выражений
От: MAMOHT  
Дата: 15.03.17 15:01
Оценка:
Здравствуйте, VladD2, Вы писали:

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


VD>Я сейчас в раздумьях. То ли переходить на 2017-ю студию, то ли найти способ позволяющий работать на обоих (раз на моей машине пашет, то значит путь есть), или вычищать все это дело.

VD>Вычищать очень не хочется.
VD>По идее для сборки должно быть достаточно установки вот этого нюгет-пакета. По крайней мере товарищ тут об этом пишет
Автор: KRT
Дата: 09.03.17
.


VD>Попробуй пока его. А я пока проработаю вопрос перехода на 2017-ю студию. Говорят она сильно быстрее грузится. Это благо для отладки расширений. Плюс 7-й Шарп сильно меньше нервы портит на фоне Немерла.


Окей, запустилось. Смущает, что этот пакте поддерживает только 4.5

Есть люди, которые сразу перескакивают на все новое, есть люди, которые держатся старого.

Лично я бы остался на 2015. Она уже у меня стоит. И все в отделе так же ее пользуют.

Плюс твои слова, чуть ранее:
VD>Потому что нам нужна совместимость с 2015-й, а новые весрии будут неизбежно ставить разную новую хрень. Плюс модули скомпилированные для более старших фреймворков не будут VD>работать со старыми (это уже тараканы текущей версии Nemerle). Так что более новый фреймворк — это тоже проблема.

Вообщем, ты — хозяин-барин.
Re[8]: Cx# - первая задача - типизация выражений
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.03.17 17:12
Оценка:
Здравствуйте, MAMOHT, Вы писали:

MAM>Окей, запустилось. Смущает, что этот пакте поддерживает только 4.5


Видимо компилятор Шарпа на меньшем не собирается.

Кстати, возможно, вот этот плагин добавляет в VS2015 поддержку C# 7:


MAM>Есть люди, которые сразу перескакивают на все новое, есть люди, которые держатся старого.


Да, я как-то по молодости все скакал, а сейчас стал переходить только по необходимости. Учитывая, что весь окружающий народ рвется, то и нам надо. Плюс C# 7 все же полезное новвоведение. Правда вроде как оно и так доступно.

MAM>Лично я бы остался на 2015. Она уже у меня стоит. И все в отделе так же ее пользуют.


Ну, 2017-я ставится параллельно не портя 2015-й. Так что это не беда.

В принципе, если C# 7 будет доступен и на 2015, то можно и на двух разработку вести. Но обычно это вызывает разный геморрой.

MAM>Вообщем, ты — хозяин-барин.


В общем, попробуй пока с 2015-й. Я с 2017 эксперементирую. В течении пары дней определюсь что и как.

В принципе сама нитра и на дотнет 4.5 должна собираться, а студия ей по фигу. А вот для плагинов все несколько сложнее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.