Ayrat
это же все компайл тайм сахар с юзингом
Vagif
Для любителей модели акторов. Беседа с Аароном и Сергеем на Дотнексте. https://www.youtube.com/watch?v=4JfqqJ7bjOQ
Tako
Для любителей модели акторов. Беседа с Аароном и Сергеем на Дотнексте. https://www.youtube.com/watch?v=4JfqqJ7bjOQ
Если на дебатах никто ни с кем не подрался то смотреть нету смысла
Ilya
Ayrat
Нахрена плодить дак тайпинг?
но ведь это выгодно для структур
Vagif
надо было еще автора скаловской акки позвать)
Ну это было бы сложнее. К тому же дотнет
Ayrat
нет каста к интерфейсам -_-
Ayrat
почему только для реф структур - неясно
Ayrat
прям зОгадка
Anatoly
почему только для реф структур - неясно
В следующей версии языка сделают
Anatoly
И опять кпи выполнят
Mark
читаешь чат и чувство что шарпы язык для отсталых
Mark
и заработка денег разрабами МС
Ayrat
читаешь чат и чувство что шарпы язык для отсталых
нормальный язык, просто последние несколько мажорных версий имеют странные фичи оторванные от реальности и странные имплементации
Ayrat
вот как Хейлсберг ушел и понеслась. реально
Ayrat
ридонли реф ридолни
Ayrat
но делали реф стракты для 2х задротов
Ayrat
то есть юзеры голосуют за рекорды, хкт, ДУ
Ayrat
но делают другое
Anatoly
Рекорды сделали
Anatoly
Меня не отпускает ощущение хунты, когда я ими пользуюсь, правда
Ayrat
Рекорды сделали
дада, но пропозал на них еще с юзервойса трансфернули на гитхаб
Ayrat
юзервойс это из 2000ых
Anatoly
юзервойс это из 2000ых
Я знаю, что такое юзервойс
Ayrat
Ayrat
не все такие старые как ты
Ayrat
О, нашел дискашн по инит пропертям - 13 лайков https://github.com/dotnet/csharplang/issues/3376 ДУ - сотни лайков, ракет, всего подряд https://github.com/dotnet/csharplang/issues/113
Ilya
но ведь это выгодно для структур
Не понял ща, чем выгодно в данном случае?
Vasiliy
https://northernsound.ru/events/radiotapok-stadium/
Ilya
Без каста в тырфейс
В каком месте каст?
Ilya
Ты все ещё не можешь скастить реф стракт к интерфейсу
Ilya
В юзинге для структур нет каста
Ayrat
Ты все ещё не можешь скастить реф стракт к интерфейсу
Это боксинг, а значит утекание на хип стек онли структуры
Ayrat
В каком месте каст?
Бля в обычных структурах. В обычных
Ilya
Это боксинг, а значит утекание на хип стек онли структуры
Именно, поэтому я не понял, чем тебе поможет дипозабл для структур
Ilya
На дак тацйпинге
Ayrat
Я короче заебался с тобой спорить честно скажу второй день подряд.
Ayrat
Пойду лучше в хадеса поиграю
Ilya
В реф стракт добавили потому что они не могут имплеметить интерфейсы
Ilya
Зачем это делать везде - не ясно
Vasily
Шо у нас тут? Илья опять с умным видом отстаивает взгляд на мир?
Vasily
Право слово, рекомендую все же разбираться в предмете спора
Anatoly
Зачем это делать везде - не ясно
затем, чтобы struct A : IDisposable {}; using var a = new A(); работало без боксинга
Ilya
откуда там боксинг?
Anatoly
при касте к интерфейсу
Vasily
Илья этого не может понять пока
Doge
Да напишите пример в sharplab
Anatoly
там нет каста
там всю жизнь был каст
Doge
Там сразу этот несчастный бокс у стркутур при касте к интерфейсу будет виден
Anatoly
и был какой-то фикс джита конкретно этого случая
Anatoly
но я так и не понял, доехал ли фикс в мейнлайн и в какой версии
Андрей
Для любителей модели акторов. Беседа с Аароном и Сергеем на Дотнексте. https://www.youtube.com/watch?v=4JfqqJ7bjOQ
спасибо Роджера из протоакторов еще нехватает, чтоб прояснил за комбинацию подходов )
Anatoly
о, там опять @VagifAbilov в телевизоре :)
Kirill
по какому каналу?
Mikhαil
по какому каналу?
Криминальная Россия по нтв
Kirill
ох, такого у меня нет. не смогу глянуть(
Ilya
там всю жизнь был каст
да никогда не было
Ilya
https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQAwAIpwHQBkCWAdgI4DcyamcALOSgMyYzoDC6A3sut5o1NegCycABQBKDlx49KANwCGAJ3Tz0AXnSEApgHd0AQXF1pAXyndzAZwAuigK4BjawfQh0ASQAi+SwAcA9pbyAEYANlqSSDJ8At5+gVri7CZmURZIJkA===
Ilya
вот тут нагляднее https://sharplab.io/#v2:C4LglgNgNAJiDUAfAAgJgIwFgBQyAMABMugHQAyYAdgI4DcO+R6ALPbgMxGoEDCBA3jgLCinZMwIBZdAAoAlAKEiRjAG4BDAE4F1BALwFKAUwDuBAILy2y5UuEBfOwSfIxEgELyng7CI3bdA2MzSzlrG2F1EgBxI2AACXUAZwALHgB7GCMrJ0dfETsk4E0AVwBjYAsCEAIASQARMCSAB3Sk9QAjCCNFfNEiCUaWtuy5fns8gux7IA===
Ilya
хешкод так же вызывается через constrained + callvirt
Anatoly
If thisType is a value type and thisType implements method then ptr is passed unmodified as the ‘this’ pointer to a call method instruction, for the implementation of method by thisType. If thisType is a value type and thisType does not implement method then * ptr is dereferenced, boxed*, and passed as the ‘this’ pointer to the callvirt method instruction.
Ilya
но в реальности - никого боксинга нет
Ilya
If thisType is a value type and thisType does not implement method
Ilya
оно что не имплементирует?
Критерий
это оптимизация джита же, ну
Критерий
если тип известен, то можно девиртуализовать вызов
Doge
https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQAwAIpwHQBkCWAdgI4DcyamcALOSgMyYzoDC6A3sut5o1NegCycABQBKDlx49KANwCGAJ3Tz0AXnSEApgHd0AQXF1pAXyndzAZwAuigK4BjawfQh0ASQAi+SwAcA9pbyAEYANlqSSDJ8At5+gVri7CZmURZIJkA===
Так речь как раз про то, что если бы это сделал руками в языке, а на через компилятор, то боксинг ещё как был бы: https://sharplab.io/#v2:C4LglgNgNAJiDUAfAAgJgIwFgBQyAMABMugHQAyYAdgI4DcO+R6ALPbgMxGoEDCBA3jgLCinZMwIBZdAAoAlAKEiRANwCGAJwJqCAXgKUApgHcCAQXltlImTICSAETABnAA4B7Z2oBGEQ3LU5Eic3T0NLJWEAX0iCSOdgDQBXAGNgcwIQAkcXDy9fQ0VsEWQxCRC88Ll+KJji4RwooA= А так компилятор специально юзинги по другому компилит чем обычный код
Ilya
короче, здесь не и не было боксингга со времен 4.5 дотнета точно
Ilya
ну-ну.
пруф?