Size: a a a

2019 July 03

Dv

Dr. Friedrich von Never in .NET CIL Chat
Просто наша — она не совсем наша
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
В смысле таргет платформа у него другая, например
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Ну и там ещё есть некоторые особенности резолва, из-за которых ты не хочешь загружать либы во время компиляции
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Потому что загрузка либов любит отваливаться
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
По пустякам каким-нибудь
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Т.е. ошибка резолва типов во время компиляции может не воспроизводиться в рантайме, даже если у тебя какой-то либы (обычно семиколенной зависимости какой-нибудь) не хватает
источник

AK

Andrei Kurosh in .NET CIL Chat
Охотно верю, что с компиляцией под целевую платформу, отличную от текущей, может быть куча приколов. Такое RefEmit впринципе не поддерживает. Но разве есть что-то, что избавит тебя от этого гемора при разработке языка под NET?
источник

AK

Andrei Kurosh in .NET CIL Chat
Какой-то типа языковой фреймворк со встроенной поддержкой нугета сразу?
источник

AK

Andrei Kurosh in .NET CIL Chat
Я знаю про CCI, но вряд ли там такое есть, да и после перехода на Roslyn он вроде как устарел
источник
2019 July 05

DB

Dmitry Babushkin in .NET CIL Chat
А зачем такие сложности? Не проще транслировать язык в C#, а его уже комплировать стандартными средствами под любую платформу?
Зачем изобретать свой Roslyn?
источник

B

Bogdan in .NET CIL Chat
Danila Romanov
Громадяне!
Была на ютубе инфа, что использовать Reflection.Emit для создания бэкенда компилятора - плохая идея. Так ли это, и если нет, то что лучше использовать для этого. Есть ли вообще какая-то литература\рефернсы в целом по переносу  языков на CLI
Плохо, потому что емит может только под текущий фремворк, нельзя кросскомпиляцию делать скажем в кор с обычной, или в нетстандарт
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Dmitry Babushkin
А зачем такие сложности? Не проще транслировать язык в C#, а его уже комплировать стандартными средствами под любую платформу?
Зачем изобретать свой Roslyn?
1. Лол это для неосиляторов
2. Семантика твоего языка совершенно необязательно напрямую транслируется в C#
3. А с дебагом что?
источник

DB

Dmitry Babushkin in .NET CIL Chat
2. А зачем гадать? Тут же конкретный случай, а не решение на все случаи жизни.
3. Тоесть .NET сборку с отладочными символами и валидным кодом дебажить сложнее, чем сгенерированный IL? D:
источник

AK

Andrei Kurosh in .NET CIL Chat
Dmitry Babushkin
2. А зачем гадать? Тут же конкретный случай, а не решение на все случаи жизни.
3. Тоесть .NET сборку с отладочными символами и валидным кодом дебажить сложнее, чем сгенерированный IL? D:
.NET сборка будет содержать отладочные символы для промежуточного кода на сишарпе, а не для исходного кода на создаваемом языке
источник

DB

Dmitry Babushkin in .NET CIL Chat
А так их не будет вовсе.
источник

AK

Andrei Kurosh in .NET CIL Chat
почему?
источник

DB

Dmitry Babushkin in .NET CIL Chat
Потому что автору придется пилить еще и отладчик. Вопрос - зачем?
источник

AK

Andrei Kurosh in .NET CIL Chat
Не отладчик, а только генерацию pdb
источник

DB

Dmitry Babushkin in .NET CIL Chat
Хмм.
источник

AK

Andrei Kurosh in .NET CIL Chat
Это довольно несложный процесс, по крайней мере в RefEmit - наверняка в Mono.Cecil тоже
источник