Alexander "SonnySlave"
Inline вообще мусор :)
Berkus
чуваки не тратьте время на с++ )
Alexander "SonnySlave"
Сейчас бы всё на Раст переписывать, лол
Andrei
На Хаскелль.
Крылатый
Го на Агде
Крылатый
Зависимые типы наше всё.
Andrei
Идрис.
Крылатый
Можно и Идрис.
Крылатый
Кстати, как там нонче с быстродействием?
Andrei
Там проблемы с автопрувером тотальности, о каком быстродействии речь :D
Крылатый
='(
Berkus
Сейчас бы всё на Раст переписывать, лол
ты читал пропосал гном перепатчивать на раст? они уже начали кстати
Berkus
там фишка в том что раст дает обычный c-compatible abi
Anonymous
constexpr нужен столько же сколько и inline - ни сколько.
они не нужны в том виде, в каком они сейчас. если вызываем функцию, можно былобы вызывать ее вот так noinline(func(arg)) или так inline(func(arg)). а то что есть сейчас - хрень какая-то.
Berkus
можно функции ПО ОДНОЙ заменять
Berkus
ну пусть посоны пишут, чо 😊
ну это к вопросу что гном переплёвывает кде напрочь
Berkus
пока кдешники там в плазму сжв засовывают
Alexander "SonnySlave"
не понимаю, как применение раста поможет гному перестать быть говном
Berkus
да в целом легко, лучше кодобаза - лучше архитектура - лучше кодобаза
Alexander "SonnySlave"
пока кдешники там в плазму сжв засовывают
кдешники хуже делают - они забивают на десктоп и ушли на мобилки
Berkus
кдешники хуже делают - они забивают на десктоп и ушли на мобилки
ушли ага, то-то у меня айфон весь в кдешных виджетах (нет)
Alexander "SonnySlave"
пилят плазму телефоны, дауны
Ildar
КДЕ на десктопах в любом случае уделывает гном, поэтому могут себе позволить, в принципе
Anonymous
не не для этого, а для гарантий.
Berkus
лучшие кеды были 3.5.10 когда они уделывали гном
🦥Alex Fails
Ох. Десктопосрач
Berkus
сейчас они в основном уделываются под себя
Ildar
Насколько давно? У меня пятые кеды стоят, всё хорошо
Berkus
(пишу это как контрибутор в КДЕ и автор и контрибутор нескольких софтин)
Ildar
Последнее, что помню из гнома это поделие под названием "Gnome 3", после этого ни разу на него не смотрел даже
Ildar
как там вейланд?
всё ещё не нужен
Berkus
кек, понятно, кде смотрю на острие прогресса нынче
Alexander "SonnySlave"
ааа, ну да. мобилки нужнее. хех
Крылатый
Vladimir
они не нужны в том виде, в каком они сейчас. если вызываем функцию, можно былобы вызывать ее вот так noinline(func(arg)) или так inline(func(arg)). а то что есть сейчас - хрень какая-то.
В нынешних компилляторах, inline - это даже не подсказка компиллятору. У неё семантика совсем другого рода - способ использовать одну и ту же функцию (в C++17 еще и переменные такие бывают), но определённую в нескольких TU. Я бы сказал, что у неё название поганое, а вещь, в принципе, полезная. А constexpr - это более строгая типизация, ограничения примерно такого же рода, как и const. Когда человек видит слово constexpr, он точно знает, что эта функция "чистая", она гарантированно не лазит в глобальные переменные (чтобы их изменить) и гарантированно не разадресовывает указатели. На мой взгляд, если constexpr не нужен, то можно пойти ещё дальше - const не нужен, ведь в Питоне его нет, и люди отлично живут.
Ignat
насколько я знаю, по меньшей мере в gcc и clang наличие модификатора inline у функции влияет на её score для инлайнинга
Alexander "SonnySlave"
не так давно
Igor
есть поток А, находящийся в какой-то момент в функции Х, состоящей из действий 1,2,3,... есть поток Б, который может выставить потоку А флаг прекратить выполнение этой функции это можно сделать как-то красивее, чем void x() { do1(); if (flag) return; do2(); if (flag) return; ... } ?
Ignat
откуда ты такое взял?
https://blog.tartanllama.xyz/inline-hints/
Vladimir
насколько я знаю, по меньшей мере в gcc и clang наличие модификатора inline у функции влияет на её score для инлайнинга
Chandler Caruth говорил, что в llvm'е (читай в clang'е) вообще не влияет это слово на поведение оптимизатора.
Berkus
а по ссылке выше обратное исследование
blog.tartanllama.xyz uses an invalid security certificate. я бы не доверял человеку который не может у себя в блоге ссл сертификат настроить
Berkus
ну может корп.файрвол шалит
Berkus
все равно я чандлеру больше доверяю в плане внутреннойстей ллвм чем саймону
Berkus
уж извените
Ignat
согласен, код LLVM — источник ненадёжный
Berkus
согласен, код LLVM — источник ненадёжный
ну даже если слово inline влияет на скор каким-то образом, это не слишком большое число по весу
Alexander "SonnySlave"
но влияет ведь 😊
Alexander "SonnySlave"
а то, сильно или нет - это уже надо смотреть глубжке
Vladimir
С другой стороны, да какая разница, влияет или нет, в стандарте вообще хоть что-нибудь написано про инлайнинг функций? По этому в терминах языка - inline вообще не имеет связи с оптимизатором.
Ignat
оптимизатор относится к числу терминов языка?
Vladimir
О том и речь
Berkus
поэтому на инлайн и надо смотреть как на ODR-tool
Berkus
а не как подсказку оптимизатору, заинлайнить он и без вас умудрится
Ignat
у нас тут пацаны зачем-то транслируют скриптоту в кресты
Ignat
и им как-то помогало инлайнить функции на уровне сгенеренного кода
Ignat
правда, там компеляторы времён лихого 2012
Berkus
правда, там компеляторы времён лихого 2012
ну не смешно, всё что старше 2018 года рассматривать бессмысленно
Alexander "SonnySlave"
ну как бы про const странно вести споры про нужно\не нужно
Alexander "SonnySlave"
была б моя воля, сделал бы как в расте - всё иммутабельным пол умолчанию
Igor
была б моя воля, сделал бы как в расте - всё иммутабельным пол умолчанию
возможно это совокупное влияние пропаганды Берксуа, но кажется мне начинают нравиться идеи раста
Alexander "SonnySlave"
хотя бы на том уровне, что я его трогал, мне тоже очень понарвилось
Igor
просто он громче всех здесь тыкает окружающих носом в годность языка)
Alexander "SonnySlave"
просто он громче всех здесь тыкает окружающих носом в годность языка)
ну так правильно делает - крестам есть наконец-то где поучиться, как надо делать