Size: a a a

F# Flood: Be a cheif

2021 January 29

OM

Oleg Morozov in F# Flood: Be a cheif
чтоб дженерик аргумент был 1
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Oleg Morozov
да, хорошее решение
проблемы только на Mono и IL2CPP могут возникнуть, что незаинлайнятся вызовы и будет беда

а если таким способом собрать условный Vector<T>, то будет Vector<T, TEv>
и во всех объявлениях придется два типа долбить постоянно
дак и тут тоже не инлайнится
источник

DS

Doge Shibu in F# Flood: Be a cheif
Oleg Morozov
да, хорошее решение
проблемы только на Mono и IL2CPP могут возникнуть, что незаинлайнятся вызовы и будет беда

а если таким способом собрать условный Vector<T>, то будет Vector<T, TEv>
и во всех объявлениях придется два типа долбить постоянно
Можно попробовать обильно аннотациями с инлайном всё это разложить.
источник

OM

Oleg Morozov in F# Flood: Be a cheif
Ilya Chernoudov
дак и тут тоже не инлайнится
ну AddThreeTimes нормально схлопнулся
источник

OM

Oleg Morozov in F# Flood: Be a cheif
например
источник

DS

Doge Shibu in F# Flood: Be a cheif
Doge Shibu
Можно попробовать обильно аннотациями с инлайном всё это разложить.
Но я не знаю как тот же IL2CPP на них реагирует
источник

OM

Oleg Morozov in F# Flood: Be a cheif
Doge Shibu
Но я не знаю как тот же IL2CPP на них реагирует
прямолинейно, в отличии от классического джита, который может забить
источник

OM

Oleg Morozov in F# Flood: Be a cheif
можно инлайнить даже толстенные методы
источник

DS

Doge Shibu in F# Flood: Be a cheif
Oleg Morozov
прямолинейно, в отличии от классического джита, который может забить
Ну отлично, а-то я с IL2CPP ни разу не работал на практике, не особо представляю насколько он эти аннотации уважает.
источник

КП

Крылатый Пегас... in F# Flood: Be a cheif
Ilya Chernoudov
3 китайца мимо? он с китая? или из ирландии?
Коренная китайская народность Ирландии.
источник

OM

Oleg Morozov in F# Flood: Be a cheif
Doge Shibu
Ну отлично, а-то я с IL2CPP ни разу не работал на практике, не особо представляю насколько он эти аннотации уважает.
ну это по сути транспайлер на коленке, он очень лобовой
там основную работу делает уже clang потом, как ему месиво из плюсов отдали
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Ilya Chernoudov
3 китайца мимо? он с китая? или из ирландии?
Не, там были русский, турок и индус. Вот они мимо
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Oleg Morozov
ну AddThreeTimes нормально схлопнулся
попробуй даблы
источник

КП

Крылатый Пегас... in F# Flood: Be a cheif
Крылатый Пегас
Коренная китайская народность Ирландии.
Попали туда как наследники азиатских рабов времён поздней римской Империи.
источник

OM

Oleg Morozov in F# Flood: Be a cheif
Ilya Chernoudov
попробуй даблы
источник

OM

Oleg Morozov in F# Flood: Be a cheif
still okay
источник

OM

Oleg Morozov in F# Flood: Be a cheif
но кстати с лобовой трансляцией у il2cpp в случае с реализацией стд вектора большие проблемы

он касты к обджекту транслирует напрямую, а силанг думает, что это нужно и не режет
в итоге конструкции

(T)(object) someT выливаются в печальную картину
источник

R

Roman in F# Flood: Be a cheif
Oleg Morozov
не понимаю какие проблемы с боксингом
в 21 веке достаточно иметь райдер + хип аллокейшен вьювер, чтоб не тупить

в качестве правила достаточно взять - писать вместо

void Foo(ISome some) {
}


вот так
void Foo<T>(T some) where T : ISome {
}


в большинстве случаев спасет от лишнего боксинга
в фшарпе чуть проще)
let foo (some: ISome) = ()
let foo2 (some: #ISome) = ()
источник

OM

Oleg Morozov in F# Flood: Be a cheif
ну в фшарпе помимо боксинга есть куда более дорогие вещи 🙂
там всякие коллекции и прочее, которые хотят в иммутабельность

можно конечно писать сишарп лайк, но зачем
источник

R

Roman in F# Flood: Be a cheif
ну там бенчмарки странные вещи показывали
источник