Romɑn
чтобы я на C# написал точно такой же код как генерирует F#?
нет, я говорю, что обратный транспайлинн из il в с# не корректный во множестве кейсов, ТК возможности il шире чем возможности с#
Ilya
здесь точно должно быть 3 свича?
но вот тебе пример настолько же упоротого IL кода
Romɑn
https://t.me/fsharp_flood/311039
это я уже прочитал и все же не всегда корректно смотреть на с# вместо il. если этот же код, написанный на с# сгенерирует такой же il, тогда можно сравнивать
Ilya
в принципе декомпиляция нормално сработала В ЭТОМ случае
Romɑn
но вот тебе пример настолько же упоротого IL кода
да, я и на сишарпе говнокод напишу
Ilya
да, я и на сишарпе говнокод напишу
но это ведь компилятор!
Ilya
в паттерн матчинге F#
Romɑn
в паттерн матчинге F#
обычно никто не использует паттерн матчинг для такого
Ilya
я про левую часть
а я про правую)
Romɑn
а я про правую)
исходный говнокод будет компилиться в говнокод, ну
Ilya
обычно никто не использует паттерн матчинг для такого
а как вы енумы из одного в другой конвертируете?
Romɑn
енамы все же не через десяток идут
Ilya
енамы все же не через десяток идут
там имееет занчение подряд / не подряд
Ilya
1-2-3 - ок, 1-2-4 - не ок
Romɑn
там имееет занчение подряд / не подряд
нет возможности проверить, напиши
Romɑn
а как вы енумы из одного в другой конвертируете?
ок, ребят, не юзайте ф#, он энамы а энамы перегоняет с неким оверхедом
Ilya
ок, ребят, не юзайте ф#, он энамы а энамы перегоняет с неким оверхедом
поинт был не в этом, поинт в том, что компилятор некорректно формирует IL код
Romɑn
значит можно закнтрибьютить
Romɑn
а в il что?
Ilya
а в il что?
да там всё как в C#
Ilya
2 свича в втором случае
Ilya
Romɑn
а с enum?
Ilya
поинт был не в этом, поинт в том, что компилятор некорректно формирует IL код
а потом какой чет в твиитере пишет, что поглядите на ассемблер поцаны! тут ифы, тут джамп тейблы
Romɑn
а с enum?
все же компилятор знает про enum, а Инты они Инты, давай с энамом смотреть
Romɑn
да, грустно. что с этим будем делать?
Ilya
и страдать
Ilya
😔
Romɑn
те все же https://t.me/fsharp_flood/311061
Ilya
но вообще - хуй с ним
Ilya
F# это не про перфоманс в целом
Ilya
это про изнасилование IL кода через богатую систему типов
Romɑn
сишарпера haskell.net исправит
Ilya
сишарпера haskell.net исправит
да ж не против F# просто чел в твиттере пишет херню, и, что удивительно, ты её репостнул
Ilya
и чот бомбануло)
Romɑn
да ж не против F# просто чел в твиттере пишет херню, и, что удивительно, ты её репостнул
а, ну репост, означает полную солидарность с высказыванием
Romɑn
конечно, я и забыл
Ilya
а, ну репост, означает полную солидарность с высказыванием
ты это товарищу майору объяснять будешь!
Romɑn
:)
Roman
Че-то вы щас вообще на ровном месте на Илью накинулись
Anonymous
public long Len { get; set; } [NotMapped] public ulong LenAsUnsignedLong { get { unchecked { return (ulong)Len; } } set { unchecked { Len = (long)value; } } }
Ayrat
А я вообще не понял о чём речь. Вообще похуям на тот IL честно говоря, не уверен что это заслуживает даже внимания со стороны фарш компилятор тимы - пусть вон Котас с Егором ебутся над оптимизацией фарш IL
Ayrat
И была бы это оптимизация - название одно.
Ayrat
Вот кешировать делегаты - это оптимизация
Ayrat
Но вброс занятный!
Ilya
яснопонятно
Ilya
Я вообще ПРОБЛЕМЫ не вижу
дак её и нет, твит просто не очень, нахрена там смотреть асм - неясно
Ilya
jit сделал всё супер ожидаемо, а F# компитятор наворотил с 3 короба
Ayrat
Супер редкий кейс, генерит суб оптимальный IL, пусть джит занимается, а может похуй вообще
Ayrat
Честно скажу, я енамы не пользовал ни разу в фарше, но вовсе не потому что матч по ним более вербозный IL генерил.
Ayrat
То есть то что норма в сишарпе (енамы), в фарше пользуется 1% людей. Я думаю что тут фарш просто забыл про редкий кейс и поэтому субоптимально.
Ilya
в твите речь про байтоёбство
Ayrat
Понятно.
Anonymous
там треть кода это вот такие энамы
Anonymous
на эфшарпе
Ayrat
в пульсаре активно использую)
Я про тебя не забыл, ты и мобильщики тот самый 1%
Vasiliy
ну что вы, давайте тогда issue в репе и сразу на Саймона)
Vladimir
Я про тебя не забыл, ты и мобильщики тот самый 1%
ну я думаю больше) любой проект где фшарп торчит наружу должен их юзать
Vladislav
ты не видел код Париматча на на F#!
Блажен тот кто ничего не знает
Romɑn
ну что вы, давайте тогда issue в репе и сразу на Саймона)
к этому и вел, но недовел, работы куча
Roman
ну я думаю больше) любой проект где фшарп торчит наружу должен их юзать
Смотря в каком виде торчит. Если веб апи, то вообще похуй
Vladimir
Смотря в каком виде торчит. Если веб апи, то вообще похуй
ну я имею ввиду как либа торчит конечно)
Roman
Для либы я, кстати, делал бы просто отдельный сишарп апи, где в уютной резервации жили бы все эти енумы.
Ilya
а чем енумы не угодили в F#?