Size: a a a

2019 June 28

AK

Andrei Kurosh in .NET CIL Chat
Gradi
Получается душа — это такой компилятор, который свои внутренние, нам неизвестные процессы переводит в cil?
Наркоман штоле?
источник
2019 July 03

B

Bogdan in .NET CIL Chat
WTF,  полчему 32 битного кода меньше?
public static void Do(Action act){
       act();
}

x86; Desktop CLR v4.7.3362.00 (clr.dll) on x86.

C.Do(System.Action)
   L0000: mov eax, [ecx+0xc]
   L0003: mov ecx, [ecx+0x4]
   L0006: call eax
   L0008: ret


x64: ; Core CLR v4.6.27615.73 (coreclr.dll) on amd64.
C.Do(System.Action)
   L0000: push rax
   L0001: mov [rsp], rcx
   L0005: mov rcx, [rcx+0x8]
   L0009: mov rax, [rsp]
   L000d: mov rax, [rax+0x18]
   L0011: add rsp, 0x8
   L0015: jmp rax

плейграунд
источник

н

невидимка in .NET CIL Chat
разные версии рантайма тебя не смутили?
источник

B

Bogdan in .NET CIL Chat
невидимка
разные версии рантайма тебя не смутили?
окей

; Desktop CLR v4.7.3362.00 (clr.dll) on amd64.
C.Do(System.Action)
   L0000: sub rsp, 0x28
   L0004: mov rax, rcx
   L0007: lea rcx, [rax+0x8]
   L000b: mov rcx, [rcx]
   L000e: call qword [rax+0x18]
   L0011: nop
   L0012: add rsp, 0x28
   L0016: ret

разница не большая)
источник

B

Bogdan in .NET CIL Chat
ну тут еще длиннее (хотел подиграть дотнету)
источник

н

невидимка in .NET CIL Chat
выглядит как косяк джита
источник

н

невидимка in .NET CIL Chat
Bogdan
ну тут еще длиннее (хотел подиграть дотнету)
заходи в @pro_net
источник

DR

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

Dv

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

Dv

Dr. Friedrich von Never in .NET CIL Chat
Если прям воще полноценный — то да, плохая идея.
источник

н

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

н

невидимка in .NET CIL Chat
там не все и не всегда можно получить
источник

н

невидимка in .NET CIL Chat
поэтому либо трекать руками, либо сесил
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
источник

AK

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

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
И ты всё равно не всегда и не все нужные сборки можешь взять из нугетов, потому что есть x86/x64/.net standard/whatever ужасы.
источник

DR

Danila Romanov in .NET CIL Chat
есть ли в таком случае какой-то бест-практис-инструмент для переноса бэка на дотнет?
источник

AK

Andrei Kurosh in .NET CIL Chat
Dr. Friedrich von Never
Из опыта: сразу начинаются проблемы с нугетами
Так нугеты же не связаны с CIL
источник