Size: a a a

Конференция C++ Russia

2021 July 18

AD

Alexander Dudin in Конференция C++ Russia
Как то сомнительно, что для переключения контекста нужно всего 6 регистров сохранить 🤔
источник

NK

Nickolay Kononov in Конференция C++ Russia
а сколько?
источник

NK

Nickolay Kononov in Конференция C++ Russia
уже скинули ссылку на SwitchContext их в любом случае немного
источник

A

Arelav in Конференция C++ Russia
Или хочется stackfull? А чем не нравится boost.fiber? Я не юзал, только читал код и писал игрушечные, так что могу быть не в курсе каких то проблем или например возможно ли вытащить из буста, не вытащив весь буст. Из зависимостей которые я помню это интрузив и контекст
источник

AD

Alexander Dudin in Конференция C++ Russia
Одних fp-регистров 16 штук
источник

NK

Nickolay Kononov in Конференция C++ Russia
Они сallee saved?
источник

AD

Alexander Dudin in Конференция C++ Russia
Это имеет значение? Контекст  же можно переключить в любой момент.
источник

NK

Nickolay Kononov in Конференция C++ Russia
Переключение контекста в файберах (а мы говорили про стекфул корутину) это вызов какой-то функции по типу Yield() так что остальные регистры должен сохранить компилятор на стек твоего файбера
источник

A

Arelav in Конференция C++ Russia
Ну вы отчасти правы например если делать прерывания в обработчике сигнала, а не просто по вызову функции во время работы треда, то нужно помнить больше регистров https://elixir.bootlin.com/linux/latest/source/arch/x86/include/uapi/asm/sigcontext.h#L256 до flags]
источник

o

ololoshwin in Конференция C++ Russia
Просто надо это делать автоматами конечными )
источник

AD

Alexander Dudin in Конференция C++ Russia
Подоспели результаты опроса JetBrains по экосистеме C++: https://www.jetbrains.com/lp/devecosystem-2021/cpp/

40% - используют C++11
30% - вообше не пишут юнит-тесты
36% - используют для сборки Makefile-ы

Сразу видно людей старой закалки 👍
источник

t

ttldtor in Конференция C++ Russia
да блин, придут какие-нибудь с центос 7, а там C++11 и то с трудом, а они хотят сами собирать, потому что безопасники не доверяют сборочкам в докерах, а предложить им собрать компилятор поновее язык не поворачивается, да и посикс  будет очень олдовый, может что-то из thread\mutex\future работать нормально не будет. Только что-то примитивное.

Или придут... какие-нибудь со стареньким AIX, где с трудом CMake заводится...
источник

t

ttldtor in Конференция C++ Russia
так и хочется их послать всех
источник

W

Wild_Wind in Конференция C++ Russia
Или какой-нибудь кривой ембеддед с пропритеаренным компилем и еле-еле поддержкой языковых фич 03 стандарта.
И не забываем после template< type<U> ставить пробел > дабы компилятор говорил синтакс еррор, оператор >> вы делаете фигню...
источник

o

ololoshwin in Конференция C++ Russia
тут есть ещё ньюанс кто вообще проходил эти вопросы. Вероятно профессионалы просто не нашли на это времени, и отвечали скучающие.
Как в firefox принимались решения для хомячков, потому что продвинутые пользователи отключали телеметрию ))
источник
2021 July 19

AD

Andrey Davydov in Конференция C++ Russia
Можно не строить гипотезы, а прочитать: https://www.jetbrains.com/lp/devecosystem-2021/demographics/
Ну и в целом про методологию: https://www.jetbrains.com/lp/devecosystem-2021/methodology/
источник
2021 July 20

NK

ID:0 in Конференция C++ Russia
Да, признаем, С++ за десять минут не выучить. Зато за десять минут можно прочитать биографию его создателя: https://habr.com/ru/company/jugru/blog/568068/
источник
2021 July 21

*

*cyberzx in Конференция C++ Russia
мне не нравится запредельная сложность требуемая для управления стейтлес корутинами.
нельзя просто взять компилятор С++20 с актуальной стандартной библиотекой и написать tcp клиент на корутинах в 200 строк. Для этого нужно написать сотни килобайт кода.
А ещё корутины трудно читать и понимать как они работают. Читаешь корутину, вроде там несколько строчек, но что они делают - ты не можешь сказать. Надо лезть и изучать устройство промизов и авейтейбл.
Если я в Go вижу go func() я всегда могу сказать, что произойдёт, при этом мне не надо знать внутрянку горутин. В отличии от плюсовых корутин, что бы ими пользоваться, надо быть магистром по корутинам.

Вообще это уникальная фича для меня, так как впервые я прочитав все статьи, которые мне гугл выдавал по запросу C++ coroutines и пересмотрев десяток лекций на ютубе, так и не понял, как с ними работать. Я знаю, как работает co_await, co_yield, co_return. Но я не знаю, как мне сделать неблокирующее чтение потока байт из TCP, разбитие потока на сообщения, распаковку их, и парсинг json. Вроде бы простая задача для корутин, которую я на Го напишу за полчаса, но как это сделать в С++ - не понятно.
Я 15 лет ждал корутин в языке и сейчас чувствую себя обманутым :(
источник

AF

Alexey Fyodorov in Конференция C++ Russia
Звучит как тема для доклада!
источник

IL

Ilya L in Конференция C++ Russia
Yet another Coroutines doklad?
источник