P2300 std::execution for concurrency and parallelism was formally adopted to merge into the C++26 working paper
P2996 Reflection was design-approved, and is now in specification wording review aiming for C++26
P2900 Contracts made considerable progress and has a chance of being in C++26
сколько я не бился против P2300, моих сил не хватило
жаль
ерик еблер всех победил
Здравствуйте, reversecode, Вы писали:
R>с тех пор как еблер спрыгнул с ренжей и взялся за нетворкинг R>стало понятно на то этот нетворкинг станет похож — ренжи, "вид сбоку"
- во всяческих опросах комитета насчет нетворкинга где это фигурировало
— в блогах еблера, где мой коммент сразу удалили, хотя ценза не было, были деликатные возражения
— в "общениях" с полухиным о том как бы это по другому и лучше сделать
понятно, кто я такой, комент там, коммент здесь, попытка объяснить туда сюда
да
но нюанс в том что к нетворкингу будет прибит этот екзекушин
и заюзать свой екзекушин нельзя
я пытался дискутировать с полухиным о том что бы отвязать нетворкинг от екзекушина
но результата не принесло
полухин дальше будет изобретать свои сокеты для своего унылого усервера
вместо того что бы донести дядькам в комитете и дотянуть нетворкинг до уровня что бы поюзать его в своем усервере
и сделать таким образом нетворкинг связаным с екзекушином только через некую условную абстракцию
Здравствуйте, reversecode, Вы писали:
R>да R>но нюанс в том что к нетворкингу будет прибит этот екзекушин R>и заюзать свой екзекушин нельзя
Допустим. А разве сложно написать свою легкую обёртку, которая на первом шаге перенесёт данные в очередь на обработку и завершится?
В любом случае у нас будут callback'и в том или ином виде, а использовать этот безумный стиль из примеров вовсе не обязательно.
Я, конечно, не углублялся в детали, но надеюсь, что в этот раз в комитете не напортачили так же как с std::filesystem::directory_iterator.
Здравствуйте, reversecode, Вы писали:
R>- во всяческих опросах комитета насчет нетворкинга где это фигурировало R>- в блогах еблера, где мой коммент сразу удалили, хотя ценза не было, были деликатные возражения R>- в "общениях" с полухиным о том как бы это по другому и лучше сделать
Здравствуйте, B0FEE664, Вы писали:
BFE>Допустим. А разве сложно написать свою легкую обёртку, которая на первом шаге перенесёт данные в очередь на обработку и завершится? BFE>В любом случае у нас будут callback'и в том или ином виде, а использовать этот безумный стиль из примеров вовсе не обязательно.
Да это примерно одно и тоже, только записано в функциональном стиле. В академических кругах считается, что "так надо". На первый взгляд мне кажется, что можно переписать одно в другое и наоборот.
Здравствуйте, reversecode, Вы писали:
R>- во всяческих опросах комитета насчет нетворкинга где это фигурировало R>- в блогах еблера, где мой коммент сразу удалили, хотя ценза не было, были деликатные возражения R>- в "общениях" с полухиным о том как бы это по другому и лучше сделать
Я уж подумал, что на заседаниях самого комитета. Или что вы засылали в комитет свой пропозал с критикой предложений P2300.
Здравствуйте, reversecode, Вы писали:
R>но нюанс в том что к нетворкингу будет прибит этот екзекушин R>и заюзать свой екзекушин нельзя
Да всё нормально. Все будут продолжать использовать whatever нетворкинг библиотеки они использовали до этого, игнорируя, что примут в стандарт C++26. К C++41 Ниблер уйдёт на пенсию, и std::execution задепрекейтят по той причине, что в нём так никто и не разобрался. В C++50 примут новую библиотеку для работы с сетью. Осталось совсем немножко подождать.
Здравствуйте, reversecode, Вы писали:
R>ерик еблер всех победил
Давно не писал на С++, но в других языках тоже хватает неудачных решений и кривых API, ими просто не пользуются, предпочитая сторонние библиотеки.
Неужели в плюсах так нельзя?)
Здравствуйте, reversecode, Вы писали:
R>Three major features made strong progress:
Вот репорт Саттера, кому интересно: https://herbsutter.com/2024/07/02/trip-report-summer-iso-c-standards-meeting-st-louis-mo-usa/
Там три примера этого std::execution со ссылками на godbolt. Честно говоря, я понял только третий пример, который не сильно отличается от прямого использования jthreads.
В остальных двух нифига не понятно, как там работает асинхронность, в каком месте там что саспендится-ресьюмится?
В общем, std::execution легкому пониманию не поддаётся. Понимают ли это те, кто в коммитете за него голосуют? Я что-то сомневаюсь.
Здравствуйте, uncommon, Вы писали:
U>Здравствуйте, reversecode, Вы писали:
R>>Three major features made strong progress:
U>Вот репорт Саттера, кому интересно: https://herbsutter.com/2024/07/02/trip-report-summer-iso-c-standards-meeting-st-louis-mo-usa/ U>Там три примера этого std::execution со ссылками на godbolt. Честно говоря, я понял только третий пример, который не сильно отличается от прямого использования jthreads. U>В остальных двух нифига не понятно, как там работает асинхронность, в каком месте там что саспендится-ресьюмится?
если вы знаете как устроены ranges и как работают для них пайпы | то все там понятно
но да, уродско
U>В общем, std::execution легкому пониманию не поддаётся. Понимают ли это те, кто в коммитете за него голосуют? Я что-то сомневаюсь.
в комитете есть мажоры
которые могут протянуть любую херню
в целом я ранее уже рассказывал из того что знаю
что ранее пытались пропихнуть интерфейс asio в качестве стандарта
но отвергли, где смысл сводился к тому что это невозможно натянуть на CUDA и всякие GPU вычисления
после чего приперся еблер
и сделал тоже самое, но только спрятал под капотом идеи ranges с пайпами |
как это теперь упростило натягивание на CUDA/GPU я не вижу
но если пропихиватель в стандарт является мажор
то ничего удивительного
Здравствуйте, reversecode, Вы писали:
R>если вы знаете как устроены ranges и как работают для них пайпы | то все там понятно R>но да, уродско
Дело не в пайпах даже. А в том, что происходит со всеми этими функциями и "алгоритмами" под густым покровом дыма в std::execution. Сама модель исполнения в std::execution непонятна в принципе. Я пробовал читать код Ниблера, но потом мне пришлось бежать в аптеку за таблетками от головной боли.
R>что ранее пытались пропихнуть интерфейс asio в качестве стандарта R>но отвергли, где смысл сводился к тому что это невозможно натянуть на CUDA и всякие GPU вычисления
Это как-то странно. Даже если не брать в расчёт, что модель asio гораздо более понятна и естессвенна, если нам нужна библиотека для работы с сетью, какое дело до того, натягивается ли на неё GPU и CUDА?
R>>что ранее пытались пропихнуть интерфейс asio в качестве стандарта R>>но отвергли, где смысл сводился к тому что это невозможно натянуть на CUDA и всякие GPU вычисления
U>Это как-то странно. Даже если не брать в расчёт, что модель asio гораздо более понятна и естессвенна, если нам нужна библиотека для работы с сетью, какое дело до того, натягивается ли на неё GPU и CUDА?
экзекуторы не только на сеть натягивать они хотели
там и вся асинхронщина std::async если оно еще не померло
алгоритмы итд
Ну это я понимаю. Но вопрос был несколько в другом. Есть сетевая библиотека asio, зачем на неё натягивать CUDA?
Кстати, сейчас ради интереса прошёлся по ниблеровской реализации std::execution (https://github.com/NVIDIA/stdexec/tree/main) и ничего даже близкого к сети там не увидел. Зато там есть tbb_thread_pool. Мне почему-то сразу показалось, что std::execution по идее близок к TBB. С TBB я дело как-то имел. Она хорошо работает для организации параллельных вычислений (типа, построил граф вычислений, а TBB тебе идеальным образом всё распараллелит), но плохо подходит как общая модель асинхронного взаимодействия между компонентами (где никакого заранее предопределённого графа нет).
все несколько не так
асио состоит из двух частей
тред пула аля экзекутора
и сокета, который там увязан в треид пул
пытаясь втянуть сеть
комитет вспомнил что в стандарте куча всего висит и требует этого самого тред пул экзекутора
и асио разделили
часть что касается сокета там более менее протянули и засуспендили
а тред пул экзекутор начали кроме сетевой части
пытаться натянуть на другие части стандарта
оно вроде кажется даже натянулось
но потом кто то вспомнил что всякие стд алгоритмы
могут же выполнятся на всяких куда, чуда, юда
я не спец в куда
но интерфейс этого тред пула экзекутора который дотачивали с асио
вдруг оказывается нифига не натягивается на куда
или выглядит коряво
и тут пришел еблер
взял каждую операцию разделил на условные атомы
где взаимодействие с атомами соединил через пайпы
и видим то что видим
вдруг всем в комитете это понравилось
Здравствуйте, reversecode, Вы писали:
R>сколько я не бился против P2300, моих сил не хватило R>жаль
Я много примеров вспомнить не могу, но ведь из стандарта бывает, что удаляют неудачные решения? Типа, приняли, увидели, что фигня, объявили deprecated и удалили?
Экспорт шаблонов приходит в голоову. auto_ptr не столько удалили, сколько расширили.
а не ждать когда еблер уйдет в мир иной
комитет возглавит полухин
жаждущие скинутся баблом
наймут какую нибудь джей.ло
которая соблазнит полухина
и уговорит отменить эту хрень
и сделать правильно
R>P2300 std::execution for concurrency and parallelism was formally adopted to merge into the C++26 working paper
R>P2996 Reflection was design-approved, and is now in specification wording review aiming for C++26
R>P2900 Contracts made considerable progress and has a chance of being in C++26
R>сколько я не бился против P2300, моих сил не хватило R>жаль R>ерик еблер всех победил
Reflection тоже еблер делать будет? На std как-то наплевать, можно это творчество душевнобольных не использовать. Вопрос как Reflection сделают?