Ayrat
Погодь, кто кого выпиливает?
Ayrat
причём здесь Сайм?
Pavel
типа пофиг мороз скорость одинаковая не партесь
Ayrat
уточни, кто кого выпиливает
Pavel
jit оптимизирует обрашеник к филду через проперь как прямое обращение к филду
Pavel
но это не точно )
Ayrat
jit оптимизирует обрашеник к филду через проперь как прямое обращение к филду
ну я об этом и сказал Я ДУМАЮ что жид инлайнит гетеры это значит что МЕТОД класса (коим и является геттер) вида member x.GetA() = a и его вызов типа class.GetA() будет заинлайнен по месту до просто a
Ayrat
но т.к. это всё же метод, то в нём можно сколько угодно дичи написать
Ayrat
и я хз когда он инлайнит а когда нет. Думаю что почти всегда Но это не точно)
Ayrat
Это к Егору :) Не Бугаенко
ну да, но вопрос не очень насущный, я и сам могу его загуглить)
Bonart
Там боюсь не гуглить, а тестить и реверсить надо
Pavel
в релизе оптимизит
Pavel
let o = y.C 00770873 mov ebx,dword ptr [eax+4]
Pavel
из type A() = member val C = 0 with get, set
Pavel
вот так нагляднее let o = y.C 00770873 mov ebx,dword ptr [eax+4] printfn "%A" o
Ayrat
а в дебаге нет?
Pavel
в дебаге нет
Ayrat
ну, логично
Pavel
там функция дергается
Ayrat
т.е. можно смело лепить пропертя и не ибать мозги
Ayrat
ну в принципе я догадывался
Ayrat
но хорошо когда есть подтверждение
Vasily
Кстати, а если туда сайд эффект засадить?
Ayrat
Ну кстати да
Ayrat
может он тривиальные только методы инлайнит
Vasily
Не, ну понятно, что поведение в дебаг/релиз отличается
Ayrat
типа в геттер печать в консоль забахать
Vasily
Ваще, канеш, диалог напоминает старый анекдот про мужиков, рельсу и японскую бензопилу
Pavel
тогда jit не найдет подходящий шаблон и нече не заинлайнит.
Vasily
Ну привезли на деревообрабатывающий завод новую японскую бензопилу
Vasily
Собрались мужики
Vasily
Думают
Vasily
Ща протестим
Vasily
Подсунули ветку
Pavel
let o = y.C 02DF086D mov ecx,55D64B4h 02DF0872 call 015A30F4 02DF0877 mov esi,eax 02DF0879 mov eax,dword ptr ds:[3F1230Ch] 02DF087F lea edx,[esi+4] 02DF0882 call 7280E780 02DF0887 call 717D1950 02DF088C mov edi,eax 02DF088E mov ecx,55D6AECh 02DF0893 call 015A30F4 02DF0898 mov ecx,eax 02DF089A lea edx,[ecx+4] 02DF089D call 7280E840 02DF08A2 push esi 02DF08A3 push 55D6FCCh 02DF08A8 mov edx,edi 02DF08AA call dword ptr ds:[55D6F9Ch] printfn "%A" o type A() = member this.C with get() = printfn "aaa"; 0 and set (v : int) = ()
Vasily
Вжух- сказала бензопила Хуясе, сказали мужики Подсунули ствол. Вжжжжуууууух - сказала бензопила Ну нихуясе - сказали мужики Подсунули рельс БЗДЫНЬ - сказала бензопила Вооот - выдохнули мужики
Ayrat
Да, хороший анекдот)
Ayrat
я тож выдохнул спокойно когда увидел портянку говнокода выше
Ayrat
короче, тривиальным пропертям быть, а то делать ПОЛЯ в F# как-то заёбно, много правил тут и там
Vasily
А зачем тебе вообще там поля понадобились?
Ayrat
А зачем тебе вообще там поля понадобились?
ну мне надо что-то похуй как инициализируемое
Ayrat
null вполне сойдёт)
Ayrat
и в стракте
Ayrat
этот стракт будет тредстатик и ему будет подсовываться новый референс постоянно
Ayrat
т.е. это изменяемое поле в долго живущем объекте на стаке
Ayrat
я подумал что ПОЛЕ хороший вариант. Но проперти тривиальное тоже сойдёт
Pavel
какое то другое окончание я у этого анекдота всегда видел
Pavel
не такое унылое
Pavel
-Тото, бля - сказали суровые сибирские мужики
Vladislav
а тут 140 сообщений про теорию поля
Ayrat
abstract?
не, там всё не так просто!
Ayrat
val Bar: int ?
Ф шарп так просто не сдаётся
Vladislav
Vladislav
а ответ есть?
Ayrat
а ответ есть?
там же выше)) от @vshapenko который в спеку слазил
Vladislav
а, норм
Igor
там же выше)) от @vshapenko который в спеку слазил
Почему по твоей фотки кажется что ты упорот
Vasily
А почему кажется?
Vasily
Он и есть упоротый
Igor
Vladislav
А не упоротый
Vasily
Почему по твоей фотки кажется что ты упорот
По твоей фотке ваще можно странное подумать
Vladislav
Он монада в 4 измерении
Igor
По твоей фотке ваще можно странное подумать
Я кстати закончил первый курс Москвина на степике
Igor
Vasily
Ни про первое, ни про второго не слышал
Igor
А кто это?
Ребят, ну стыдно не знать лучше курсы евер на русском (по хаскелю) https://stepik.org/course/75 https://stepik.org/course/693
Igor
А ещё у него есть https://www.youtube.com/playlist?list=PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr
Igor
Первые 6 часов курса - он рассказывает про лямбда-исчисление
Igor
Я УЖЕ НЕ В ТОМ ВОЗРАСТЕ, ЧТОБЫ УЧИТЬСЯ, МОЛОКОСОС!!!!!!111111
Не думаю что ты сильно старше меня (а я тот ещё старпер)
Vasily
Бля, карма работает, однако... Отдал фичу тестерам потестить. В фиче багов не нашли, но нашли в окружающей экосистеме