Telegram Web
Всем привет. Немного о ближайшем и повседневном.

1. 5 июля в 14 часов я провожу встречу с читателями в Казани в магазине "Книга плюс" (ТРЦ Южный, Проспект Победы, 91). Никакой формы для записи организаторы не дали, так что пока записывайтесь по моей чтобы я примерно знал чего ждать по посещаемости.

https://forms.gle/fZTnAeuFTZTKwgzQA

2. Открыт набор в летний лагерь Неймарк для 9-11 классов. Участие бесплатное, но есть отбор. Я скорее всего приеду туда выступить перед подрастающим поколением где-то в июле.

https://neimark-it.ru/camp2025

3. Сделал плейлист из своих выступлений на конференциях. Если было несколько дубликатов по темам, я оставил лучшее из. Буду его пополнять.

https://www.youtube.com/playlist?list=PL3BR09unfgcgT5av9JVYlcuE84RgXkRss

4. Подал заявку на Zero Cost Conf, которая будет где-то в конце июля в Москве. Участие бесплатное, но есть отбор. Всех буду рад там увидеть, можно будет пообщаться и подписать книги кто в Москве ещё не успел.

#author_event #conference #official
🔥78👍105👏4😱2👎1
Всем привет. Включил новую телеграмную штуковину direct messages, разумеется бесплатно. Её можно и нужно использовать для предложений по каналу в целом. Например если вы очень хотите видеть какой-то пост или какую-то лекцию, напишите туда. У меня раньше был для этого пост, теперь я его удалю т.к. это стало удобнее через официальный механизм. Также обновлю закреп.

Для тех кто не может найти: заходите на канал https://www.tgoop.com/cpp_lects_rus и жмёте значок сообщения внизу слева. Большая просьба не писать бессмысленных сообщений вроде "Привет", а сразу переходить к делу.

Есть ещё одна штука которую давно хотел: говорят с достижением каналом так называемого "уровня 50" можно отключить рекламу чтобы её не видел никто, а не только платные пользователи. Проблема в том что дойти до этого уровня почти нереально, нужна тонна бустов. А ничего полезного кроме этого бусты не дают кроме всяких сторисов (тех, кто постит сторисы, я лично считаю электросамокатчиками) обложечек и новых смайликов. Так что тут пока даже не знаю.

#official
🔥92👍1916😁7👾3👌2🦄2
В отпуске дошли руки написать обзор на книгу Андрея Карпова "Вредные советы для C++ программистов". Тем более мне недавно подарили физический экземпляр, как раз появился повод.

https://telegra.ph/Vrednyj-obzor-vrednyh-sovetov-06-23

Я бы конечно хотел видеть больше самых разных книг по программированию, выходящих в России. Здесь автор явно постарался и с оформлением и с изданием и с продвижением своей книги. Ну и я в обзоре постарался не жестить сверх минимально необходимого. Have fun.

В обзор также приложена фотка моего рабочего стола в Туле с этой книгой и моим конспектом. Можно поизучать что у меня там под стеклом.

P. S. Если у вас тоже есть книга по программированию, вы хотите мне её подарить и бесплатно получить честный отзыв, стучитесь ))

#books
👍13019🔥7❤‍🔥6🤔3
Всем привет. Напоминаю, что на ближайших выходных я приезжаю в Казань провести там встречу с читателями. Встреча будет в классическом формате и в основном в режиме живого диалога. Можно будет затронуть как обычно широкий круг вопросов.

Дата и время: суббота, 5 июля в 14 часов. Место: магазин "Книга плюс" (ТРЦ Южный, Проспект Победы, 91).

Территориально локация не очень удобная: это как если бы в Москве встреча была где-то на МКАДе. Зато локация вроде бы большая, хорошая. Транспортная доступность, в общем, тоже не худшая из всего, что бывало в других городах. И, как обычно, неизвестно когда я вообще ещё окажусь в Казани. Книжки можно приносить свои, можно будет купить на месте гарантированно актуальный тираж.

Магазин прислал свою ссылку на регистрацию: https://forms.gle/18MF1qctrqwG6cwe6

Пожалуйста зарегистрируйтесь по ней. По моей ссылке из прошлого поста зарегистрировалось существенно меньше людей, чем проголосовали вот тут https://www.tgoop.com/cpp_lects_rus/283. Там было 80 голосов, а по моей ссылке я пока вижу только 20 регистраций. Мне интересно где все проголосовавшие? Вероятно будут на встрече, не могут же люди просто так тыкать в рандомные города ))

Также я буду в Казани в воскресенье. Я пока планирую просто гулять, но если у вас есть возможность организовать что-то полезное, скажем встречу ещё где-то ещё с кем-то или какое-то выступление, то ещё не поздно мне написать в лс обсудить детали.

P. S. пост временный, снесу по проведении мероприятия.

#author_event
👍30👌43
Выложили мой доклад, посвящённый компиляторным технологиям в верификации, сделанный на конференции Sysconf этого года. Мы продолжаем развивать проект llvm-snippy и я продолжаю про него рассказывать, освещая новые возможности инструмента. На этот раз я несколько сместил акценты: я рассматриваю не только железо, а весь спектр моделей RISC-V разного уровня -- от функциональных симуляторов до потактовых моделей. На самом деле на работе мы тестируем с помощью snippy даже отладчики и валгринд.

https://www.youtube.com/watch?v=J6MjH4kb0ag

00:00 Intro
01:28 Начало: моделирование RISC-V
06:45 Идея и проблемы генератора потока инструкций
11:48 Компиляторы спешат на помощь: LLVM и llvm-snippy
15:06 Базовые возможности llvm-snippy
20:24 Сложность операций с памятью
25:12 Поток управления и вызовы функций
33:30 Использование в опен-сорс и учебных проектах и призыв к действию
36:45 Вопросы и завершение

Вообще в этом году Sysconf была, пожалуй, пока что самой сильной по составу конференцией из тех, где я был. Там было много отличных докладов и про компиляторы и про отладчики и про операционные системы. Когда всё выложат надо будет сделать обзор лучших. Конференция проходит первый год и у них на канале всего 66 подписчиков. Если вы интересуетесь такими темами, вы знаете что делать ))

Альтернативное видео: https://vkvideo.ru/video-228047553_456239026

#conference #snippy
🔥9015👍124💩2🐳1🦄1
Провёл встречу с читателями в Казани. Обсудили детали сосуществования ML-guided и profile-guuded оптимизаций, компиляторы для разработки аппаратуры, перспективы нейросетей и состояние преподавания информатики.

Было довольно камерно, в топе не более 20 человек (не все в кадре, некоторые опоздали к началу, многие ушли до общей фотки в конце). Мне понравилась исключительно приветливая площадка, нас терпели три часа и потом меня ещё и поблагодарили. Огромное спасибо всему персоналу магазина Книга-плюс особенно ведущей Саше (на моих фотках нет, я выложу в комментарии когда мне скинут фотки от площадки если она там будет).

Сама Казань очень интересна, мне ещё предстоит её исследовать сегодня и завтра. Какие то путевые заметки тоже положу в комментарии.

Спасибо всем кто пришёл за то что пришли и за отличные вопросы, было супер.

#author_event
👍124🔥4310👌4👾1
Пятница, вечер. Время чилаута и развлекательного C++.

Представим у вас есть куча специализаций некоего шаблона функции foo.

template <typename T> int foo() { return 1; } 
template <> int foo<int>() { return 2; }
template <> int foo<float>() { return 4; }


И функция sumfoos которая подставляет по ним пачку типов и как-то её сворачивает. Ну скажем складывает.

template <typename ...T>
int sumfoos() { return (foo<T>() + ...); }


Вы хотели бы написать шаблон функции apply_sumfoos с вот такой сигнатурой

template <typename Tuple> auto apply_sumfoos();


Идея в том что он принимает кортеж, разворачивает его и для его содержимого вызывает sumfoos.

std::tuple<int, float, double> t;
assert(apply_sumfoos<decltype(t)>() == 7);


Можно предложить кривой и косой, уродливый как черт с рогами, но рабочий вариант с dummy-аргументом.

https://godbolt.org/z/zxY1qf9hT

Но это не наш метод. Я утверждаю что есть более красивые способы (и даже можно обойтись без сворачивания с index sequence).

Наливайте себе чаю с булочкой или пивка с орешками и подключайтесь. Попробуйте придумать как это решали бы вы, а потом смотрите в комментарии и ставьте лайки лучшим вариантам. Ну и если вашего там не будет — смело постите. Если никто не угадает мой вариант, скажу его завтра.

UPD: мой вариант вычислили за 20 минут. Горжусь своим каналом ))

UPD2: выношу из комментариев самые интересные варианты.

0. Просто уход от nullptr за счёт type_identity, но всё ещё dummy arg https://godbolt.org/z/P41eeTcfK via @PaRat07
1. Биндинг свёртки: https://godbolt.org/z/85EhzdWve совместно @savvatelegram и @xray_3d
2. Рефлексия: https://godbolt.org/z/Pdqd75nxq via @xray_3d
3. Вывод типов и deduction guides: https://godbolt.org/z/6zTT6M8zh via @redPergament
3a. Его разновидность через оператор приведения: https://godbolt.org/z/cTh1W3r3e от него же
4. Hana-style (я добавил к решению подписчика пару consteval потому что смог): https://godbolt.org/z/GxcqKnWMK via @n13625124998637487500
4a. Его очень красивая и лакончиная разновидность через decltype (я тоже добавил consteval от себя) https://godbolt.org/z/zjErr58zz via @alamat1
5. Виртуозный std::apply https://godbolt.org/z/Ydd5e86oP via @savvatelegram
5a. То же самое руками через index sequence https://godbolt.org/z/6feh3fvex via @vmishanin
6. Сохранение промежуточного адреса инстанцированной функции https://godbolt.org/z/racKGYnW1 опять @xray_3d
7. in_place_type подход https://godbolt.org/z/Gq9G9n773 via @alamat1

Ну и самый наивный вариант: https://godbolt.org/z/48jnhKz45 здесь в редакции @ePilnikoff но вообще до него многие дошли и он совпадает с моим решением.

Наивный вариант очень интересно улучшил @s_i_g_a до состояния https://godbolt.org/z/GePnj8qE1 чтобы функция принимала любой tuple-like тип вроде того же std::array. Понятно что так можно улучшить каждый из предложенных вариантов.

Итого мы с вами нашли десять нетривиальных и принципиально разных способов добиться цели. Очень круто.

#questions
🔥7195👍3🤔2🆒1💊1
Media is too big
VIEW IN TELEGRAM
Всем привет. Открыта регистрация на Zero Cost Conf этого года. Выступаем с Владиславом Беловым на вечнозелёную тему алиасинга.

Владислав работает в моей команде и он недавно подготовил довольно сложный патч в компилятор который наконец-то позволяет LLVM агрессивно оптимизировать код в котором соответствующие аннотации висят на локальных переменных, например. По пути мы оба, понятное дело, многое узнали.

https://cppzerocostconf.yandex.ru/2025

Пост временный, сотру как выложу видео (они обычно быстро выкладывают). А может и оставлю ради гифки. Гифка от организаторов уж очень хороша.

#conference
👍68🔥17😍62🐳1
Вечер пятницы и время чилаута в области C++. На этот раз мы снова сыграем в увлекательную игру "кто из компиляторов прав".

Я вытащил этот пример из переписки со студентом более чем годичной давности и проверил на свежих gcc и clang. Они всё ещё не согласны друг с другом.

https://godbolt.org/z/fe14q8aoz

Это упражнение на чтение стандарта, так что ссылки на стандарт обязательны.

Как обычно — наливайте себе пивка с орешками или чая с булочкой и сначала попробуйте решить сами, никуда не подглядывая. Потом пролайкайте самые вдумчивые из ответов.

#questions
👍246🔥2🐳2
На канале sysconf выложили первое сольное видео моей студентки и постоянной содокладчицы Анастасии Черниковой с детальным рассказом про llvm-exegesis и компиляторный бенчмаркинг.

https://www.youtube.com/watch?v=5Bsa1nBQRQU

00:00 Начало. RISC-V и LLVM
05:24 Компиляторный бенчмаркинг
09:14 Использование и возможности llvm-exegesis
18:03 История инструмента, его разнообразные применения и его путь в RISC-V
25:22 llvm-jit его устройство и использование: как отдельно так и внутри инструментов
29:56 Ответы на вопросы
35:00 Моё камео: ответ про соотношение llvm-mca и llvm-exegesis. Далее Настя продолжает отвечать сама.

Давайте поддержим Настю лайками и комментариями на youtube. У меня будет ещё несколько видео моих студентов с конференции sysconf, буду тут их анонсировать по мере выкладки.

P. S. И уже в эту субботу 2 августа мы с Владиком Беловым выступим на Zero Cost Conf, всех буду рад там увидеть.

#conference
👍9431🔥13💩3🐳3👎1😁1😱1🕊1🙉1
Сделали совместно с Владиславом Беловым очень важный доклад на C++ Zero Cost Conf про restrict и вообще алиасинг. Тема оказалась неожиданно глубокая и очень ёмкая для компиляторных оптимизаций. И конечно таящая в себе кучу подводных камней. Мне кажется получилось очень классно. Для Владика это первое публичное выступление, давайте накидаем на ютуб лайков и комментариев.

00:00 Начало. Компилятор хочет вам помочь
03:00 Strict aliasing в C++ и его реализация в компиляторах
08:00 Выберите свой язык: производительность или безопасность? Есть пять вариантов...
09:36 Там где нет механизмов, там вас ждут опасности
13:42 Появление Владислава. Язык C как язык "пятого типа" в связи с наличием restrict.
17:40 Пугающий restrict.
20:55 Рестрикт на пальцах.
27:25 Четыре простых вопроса для вашего размышления.
32:26 А почему этого нет в C++ кроме GNU extension? Я возвращаюсь на сцену и пугаю людей.
37:45 Развитие передовой мысли: обзор серьёзных попыток стандартизации restrict в C++.
41:30 Call for action и вопросы.

https://www.youtube.com/watch?v=MQf98rOc1TE

Предложение Владика в стандарт C: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3659.pdf

На этот раз немного ухудшился монтаж: много где я начинаю говорить, видно меня но не слайд о котором я говорю. Презентацию можно скачать отдельно: https://github.com/tilir/cpp-masters/releases/download/zerocost2023/aliasing.pdf

#conference
🔥89👍3310🍓3🙏1🤪1
И снова пятница и время чиллаута со стандартом нашего любимого языка.

Вашему разбору предлагается пример от @sibedir где два основных компилятора снова друг с другом не согласны.

https://godbolt.org/z/c9j6qr8hx

Нужно:
1. Со ссылками на стандарт обосновать правоту одного из них.
2. Починить gcc добавив что угодно в структуру TNullPtr но не меняя существующего кода (это возможно).

P. S. В комментариях уже разобрали так что туда смотрите только если сдаётесь ))

#questions
19👍9🤔3
Всем привет.

Время для важного апдейта: мы начинаем раннюю апробацию нового курса на Степике. Вы можете поучаствовать, это будет бесплатно.

https://stepik.org/course/241399

А теперь детали.

Как многие знают, я вхожу в Академический комитет Российского Альянса RISC-V. Также я часто читаю лекции по разным аспектам открытой и расширяемой. Но всё это было как-то разрозненно.

Поэтому этой весной появилась идея сделать один большой вводный курс по RISC-V, ассемблеру и средствам разработки. Этот курс было решено делать при поддержке Альянса, но при этом сохранить его открытым, бесплатным и после периода апробации, внедрять в те ВУЗы страны, где он вызовет интерес. Уже сейчас интерес к организации у себя пилотного проекта проявили СПБГУ, ННГУ, МИЭТ, ЛЭТИ и многие другие. Возможно потом присоединится более широкий круг ВУЗов со всей России.

В курсе кроме сведений про RISC-V и про ассемблер, содержатся также углубленные модули посвящённые работе отладчиков, симуляторов, микроархитектуре и многому другому. Мы старались научить людей читать и понимать ассемблер, использовать инструменты разработки по назначению и осознавать как и что происходит под капотом.

Мы ориентировались на аудиторию людей, которые уже знают C и хотят больше узнать про ассемблер.

Курс готовили в основном Марк Гончаров и Настя Черникова (вы их уже видели на этом канале), делалось это под моим общим и научным руководством. Я там тоже иногда появляюсь в кадре и читаю парочку лекций, причём не только вводные. Кроме того, мы переиспользовали немного материала по ассемблеру из моего курса в МФТИ, углубив и переведя его на RISC-V, так что некоторые задачи вы узнаете, если проходили курс по C.

Если вы вдруг забыли про Марка и Настю:

Марк:
https://www.tgoop.com/cpp_lects_rus/216

Настя:
https://www.tgoop.com/cpp_lects_rus/275

Сейчас курс, возможно, сыроватый, зато пока что мы можем в широких пределах его менять: переснимать целые модули, добавлять задачи и т. д. И я приглашаю моих уважаемых подписчиков поучаствовать в его ранней апробации: начать проходить и писать сюда (или в чат на Степике, но лучше сюда) о замеченных проблемах. Мы их планируем до нового года оперативно править.

Надеюсь курс будет встречен хорошо и будет полезен.

#riscv #toolchain #c_graduate
170🔥129👍41👏6❤‍🔥4🏆3🆒1
Вот и наступил сентябрь, начало учебного года.

Каждый год я делаю подзамочные стримы со своего магистерского и бакалаврского курсов. Этот год не станет исключением. Основной оргресурс для сообщества тех, кто смотрит мои стримы, это дискорд, там все даты, время, записи и т.п.

https://discord.gg/w73eVVraKg

Ссылки на стрим постятся до начала лекции на дискорд-сервер в каналы с соответствующими названиями (магистратура-2025-26 и бакалавриат-2025-26), так что вы можете участвовать онлайн в реальном времени. Вопросы по теме лекции из чата стрима зачитываются в аудитории. В основном канале дискорд-сервера обычно помещается организационная информация. Есть также канал для оффтопик общения. Как вы понимаете, я нигде не размещаю рекламу, ничего не монетизирую и не собираю донаты.

Стримы в этом году будут вестись на rutube, технология опробована и сюрпризов не ожидается. Стримы отличаются от публично выложенных на канале курсов некоторыми обновлениями материала, отсутствием видео и традиционно плохим звуком (с обработкой звука и съёмкой видео я заморачиваюсь только для официальной выкладки), на стримах у меня обычно только экран -- слайды и код. Записи стримов сохраняются и доступны после стрима.

#official
112👍45🔥18🙏5🤩1🏆1
Всем привет. Выложили доклад моего коллеги Никиты Руденко, в котором он рассказывает про некоторые особенности внедрения пакетного менеджера Conan в реальную корпоративную среду.

События этого доклада происходили больше двух лет и принесли нам бесконечное количество нового опыта. А опыт, как известно, это то, что ты получаешь, когда хочешь чего-то другого.

С моей точки зрения -- один из лучших непрофильных докладов на C++Russia этого года. И лучший по Conan на русском языке.

https://youtu.be/ENmSapNzs4I?si=M3OVYwC_ihRjwQdv

00:00 Начало. Мы решили внедрить конан.
05:09 Devops часть внедрения: конфиги, профили и т.д.
12:52 Приключение на пять минут.
26:43 Приключения продолжаются: скачивание пакетов.
36:22 Версионирование
42:25 Черная магия спешит на помощь
46:23 Вопросы

#conference
49👍25👏14🔥13😁3💅3❤‍🔥1
В этом году я буду выкладывать мой обновлённый магистерский курс по C++ на английском языке. Мне поступало довольно много запросов от людей из разных стран (Индии, Китая, Ирана и даже ЮАР) которые очень хотели бы посмотреть мой курс, но не знают русского языка.

Выкладка будет каждую неделю по субботам в 19 часов. В эту субботу мы начинаем сразу с двух лекций, далее выкладка будет по одной.

Первая лекция курса является введением в обобщённое программирование, но в первую очередь посвящена поведению программ и стандарту языка.

https://youtu.be/X6GVR_3FCHU

Вторая лекция вводит первый строительный блок обобщённого программирования. На примере строк мы изобретём обобщённые типы и разберём несколько важных проблем проектирования и эффективности.

https://youtu.be/RV6e7Sq0RmM

Плейлист: https://www.youtube.com/playlist?list=PL3BR09unfgcjSJXcCn7Y6VBdGfyqeix5w

Большая просьба накидать на ютуб лайков для продвижения, ютуб любит лайки. И если у вас есть знакомые за пределами России порекомендовать им курс. Курс не рассчитан на новичков -- мы будем систематично рассматривать глубокие вопросы языка, которые на других известных мне курсах редко даже затрагиваются. Все лекции сопровождаются заданиями для самостоятельной работы и списком литературы.

Курс сильно переработан по сравнению с уже вышедшим в 2022-м магистерским курсом, так что вам будет интересно даже если вы три года назад смотрели прошлый вариант.

#cpp_postgraduate
🔥276👍3428🤯13🥰3😱32🤩1
Выложил третью лекцию магистерского курса на английском.

https://youtu.be/AMyzI58JkE8

Лекция посвящена строительным блокам обобщённого программирования -- множествам перегрузки. Сначала мы разберёмся с их проектированием а дальше рассмотрим механизм ограничений и concepts и то как отношение subsumes позволяет с помощью вычисления дизъюнктивных нормальных форм строить действительно интерсеные и обобщённые множества перегрузки.

00:00 Raising number to a power
08:36 Overload sets
14:30 Winter's rules and their applications
22:08 Type requirements
31:31 Complex constraints and concepts
38:00 Details of requires expression and concept syntax
49:50 Partial order on concepts and subsuming
01:05:40 Dreams of early concepts, homework and bibliography

#cpp_postgraduate
🔥7915👍13🥰3😱21💩1
2025/10/15 05:06:22
Back to Top
HTML Embed Code: