Size: a a a

F# Flood: Be a cheif

2021 January 29

S

Sergey in F# Flood: Be a cheif
Ayrat Hudaygulov
Начал интервьюировать в МС, кадры как всегда поражают.
Ждите прохладных историй
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Это мы буквально получим, если будем делать lowering по спеке
public struct A: IDisposable
   {
        void IDisposable.Dispose(){}
   }
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
вот для таких случаев
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
потому что ты явно пишешь
Я буквально тебе говорю сейчас то, что написано в комментах в компиляторе Вот один в один.

Что у них там специальный кодген для структур, чтобы не было боксинга:
            // First: if the type is a non-nullable value type then we do not do the 
           // *boxing conversion* from the resource to IDisposable. Rather, we do
           // a *constrained virtual call* that elides the boxing if possible.
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Я буквально тебе говорю сейчас то, что написано в комментах в компиляторе Вот один в один.

Что у них там специальный кодген для структур, чтобы не было боксинга:
            // First: if the type is a non-nullable value type then we do not do the 
           // *boxing conversion* from the resource to IDisposable. Rather, we do
           // a *constrained virtual call* that elides the boxing if possible.
да, так и есть и это обычный IL код
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
не вижу в это ничего предрассудительного
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
не вижу, чтобы это нарушало спеку
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
да, так и есть и это обычный IL код
Это не обычный IL код для этого кейса, это один специальный кейс, который не распространяется на другие случаи структура + каст в интерфейс + вызов метода.
источник

DS

Doge Shibu in F# Flood: Be a cheif
Как было показано выше
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Как было показано выше
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
ты для классов видишь каст?
источник

R

Roman in F# Flood: Be a cheif
@omgszer а твой GiraffeGenerator умеет спеку из жсона читать? Или только ямл нужен?
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
ты для классов видишь каст?
Речь про структуры всё это время был, причём тут классы
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Roman
@omgszer а твой GiraffeGenerator умеет спеку из жсона читать? Или только ямл нужен?
хороший вопрос!!11
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
мне вот кажется что внезапно сможет
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
я ее не сам паршу
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
а через либу
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Речь про структуры всё это время был, причём тут классы
речь оригинально шла про боксинг структур в using (которого нет), а потом перешла на компилятор
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
я просто чот не думал что кто-то жсоном опенапи описывает
источник

R

Roman in F# Flood: Be a cheif
Ayrat Hudaygulov
хороший вопрос!!11
а то я добавил спеку жсон, добавил Generated.fs пустой, сбилдил и нихуя. Generated.fs так и остался с декларейшном модуля и нихуями
источник