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