Please open Telegram to view this post
VIEW IN TELEGRAM
🤷18🔥5❤2😱1
Принял вчера экзамен по C++ у магистрантов на физтехе. Из 17 человек в ведомости, 6 сдали на оценку "отлично", это прекрасный результат для группы.
Есть ли на канале те, кто весь год смотрел (немного обновлённый) магистерский курс по ссылкам в дискорде (или даже лично ходил, т.к. у меня были вольнослушатели в аудитории) и теперь хочет сдать экзамен?
По хорошей традиции (см. https://t.me/cpp_lects_rus/106 и далее) я устраиваю пиринговые экзамены для всех желающих. Это когда вы пишете задание и оно отправляется на проверку двум другим людям сдающим экзамен и вам тоже приходят два задания от других людей сдающих тот же экзамен. Вы проводите ревью и ставите две оценки. Очень важны обе фазы -- вам нужно и хорошо написать экзамен и потом качественно провести ревью (это не значит занизить оценку). Вы сами получаете за каждый вопрос среднее из двух оценок которые вам поставили другие люди.
Задание будет состоять из двух задач. Одна вида "спроектируйте класс" (нечто многопоточное или с умными указателями или с аллокаторами или всё вместе), другая вида "напишите код" (обычно что-то с корутинами или параллелизмом или всё вместе). Решения вы пишете на годболте и отлаживаете до минимальной работоспособности.
Четыре часа на выполнение, потом четыре часа на кросс-проверку. На прошлом пиринговом экзамене люди очень жаловались на нехватку времени, но мне кажется уложиться реалистично, да и современные нейросети могут очень сильно помочь. Ну и потом это же экзамен, он должен быть сложным и стрессовым. В процессе решения, как вы догадываетесь, можно подглядывать куда угодно, а также использовать любые материалы и любые инструменты.
Регистрация: https://forms.gle/fQbF9wCjcPmeeX7P7
Зарегистрироваться можно до 12 часов понедельника 16-го июня. Дата проведения: суббота, 21 июня. Будет отдельный чат для сдающих, поэтому в анкете я прошу ссылку на телеграм.
#official
Есть ли на канале те, кто весь год смотрел (немного обновлённый) магистерский курс по ссылкам в дискорде (или даже лично ходил, т.к. у меня были вольнослушатели в аудитории) и теперь хочет сдать экзамен?
По хорошей традиции (см. https://t.me/cpp_lects_rus/106 и далее) я устраиваю пиринговые экзамены для всех желающих. Это когда вы пишете задание и оно отправляется на проверку двум другим людям сдающим экзамен и вам тоже приходят два задания от других людей сдающих тот же экзамен. Вы проводите ревью и ставите две оценки. Очень важны обе фазы -- вам нужно и хорошо написать экзамен и потом качественно провести ревью (это не значит занизить оценку). Вы сами получаете за каждый вопрос среднее из двух оценок которые вам поставили другие люди.
Задание будет состоять из двух задач. Одна вида "спроектируйте класс" (нечто многопоточное или с умными указателями или с аллокаторами или всё вместе), другая вида "напишите код" (обычно что-то с корутинами или параллелизмом или всё вместе). Решения вы пишете на годболте и отлаживаете до минимальной работоспособности.
Четыре часа на выполнение, потом четыре часа на кросс-проверку. На прошлом пиринговом экзамене люди очень жаловались на нехватку времени, но мне кажется уложиться реалистично, да и современные нейросети могут очень сильно помочь. Ну и потом это же экзамен, он должен быть сложным и стрессовым. В процессе решения, как вы догадываетесь, можно подглядывать куда угодно, а также использовать любые материалы и любые инструменты.
Регистрация: https://forms.gle/fQbF9wCjcPmeeX7P7
Зарегистрироваться можно до 12 часов понедельника 16-го июня. Дата проведения: суббота, 21 июня. Будет отдельный чат для сдающих, поэтому в анкете я прошу ссылку на телеграм.
#official
❤88🔥28👍19😱10😢1
Всем привет. Немного о ближайшем и повседневном.
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
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
Google Docs
Встреча с читателями Казань 5 июля
"Книга плюс", ТРЦ Южный, Проспект Победы, 91.
🔥78👍10❤5👏4😱2👎1
Всем привет. Включил новую телеграмную штуковину direct messages, разумеется бесплатно. Её можно и нужно использовать для предложений по каналу в целом. Например если вы очень хотите видеть какой-то пост или какую-то лекцию, напишите туда. У меня раньше был для этого пост, теперь я его удалю т.к. это стало удобнее через официальный механизм. Также обновлю закреп.
Для тех кто не может найти: заходите на канал https://t.me/cpp_lects_rus и жмёте значок сообщения внизу слева. Большая просьба не писать бессмысленных сообщений вроде "Привет", а сразу переходить к делу.
Есть ещё одна штука которую давно хотел: говорят с достижением каналом так называемого "уровня 50" можно отключить рекламу чтобы её не видел никто, а не только платные пользователи. Проблема в том что дойти до этого уровня почти нереально, нужна тонна бустов. А ничего полезного кроме этого бусты не дают кроме всяких сторисов (тех, кто постит сторисы, я лично считаю электросамокатчиками) обложечек и новых смайликов. Так что тут пока даже не знаю.
#official
Для тех кто не может найти: заходите на канал https://t.me/cpp_lects_rus и жмёте значок сообщения внизу слева. Большая просьба не писать бессмысленных сообщений вроде "Привет", а сразу переходить к делу.
Есть ещё одна штука которую давно хотел: говорят с достижением каналом так называемого "уровня 50" можно отключить рекламу чтобы её не видел никто, а не только платные пользователи. Проблема в том что дойти до этого уровня почти нереально, нужна тонна бустов. А ничего полезного кроме этого бусты не дают кроме всяких сторисов (тех, кто постит сторисы, я лично считаю электросамокатчиками) обложечек и новых смайликов. Так что тут пока даже не знаю.
#official
Telegram
C++ and other lectures
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
🔥92👍19❤16😁7👾3👌2🦄2
В отпуске дошли руки написать обзор на книгу Андрея Карпова "Вредные советы для C++ программистов". Тем более мне недавно подарили физический экземпляр, как раз появился повод.
https://telegra.ph/Vrednyj-obzor-vrednyh-sovetov-06-23
Я бы конечно хотел видеть больше самых разных книг по программированию, выходящих в России. Здесь автор явно постарался и с оформлением и с изданием и с продвижением своей книги. Ну и я в обзоре постарался не жестить сверх минимально необходимого. Have fun.
В обзор также приложена фотка моего рабочего стола в Туле с этой книгой и моим конспектом. Можно поизучать что у меня там под стеклом.
P. S. Если у вас тоже есть книга по программированию, вы хотите мне её подарить и бесплатно получить честный отзыв, стучитесь ))
#books
https://telegra.ph/Vrednyj-obzor-vrednyh-sovetov-06-23
Я бы конечно хотел видеть больше самых разных книг по программированию, выходящих в России. Здесь автор явно постарался и с оформлением и с изданием и с продвижением своей книги. Ну и я в обзоре постарался не жестить сверх минимально необходимого. Have fun.
В обзор также приложена фотка моего рабочего стола в Туле с этой книгой и моим конспектом. Можно поизучать что у меня там под стеклом.
P. S. Если у вас тоже есть книга по программированию, вы хотите мне её подарить и бесплатно получить честный отзыв, стучитесь ))
#books
Telegraph
Вредный обзор вредных советов
На днях мне подарили книгу Андрея Карпова «Вредные советы для C++ программистов». Судя по выходным данным, книга вышла в 2023 году, но по стилю текста видно, что это перепечатка более раннего варианта. Поскольку книг по C++ на русском в 2023 году вышло немного…
👍127❤18🔥7❤🔥6🤔3
Всем привет. Напоминаю, что на ближайших выходных я приезжаю в Казань провести там встречу с читателями. Встреча будет в классическом формате и в основном в режиме живого диалога. Можно будет затронуть как обычно широкий круг вопросов.
Дата и время: суббота, 5 июля в 14 часов. Место: магазин "Книга плюс" (ТРЦ Южный, Проспект Победы, 91).
Территориально локация не очень удобная: это как если бы в Москве встреча была где-то на МКАДе. Зато локация вроде бы большая, хорошая. Транспортная доступность, в общем, тоже не худшая из всего, что бывало в других городах. И, как обычно, неизвестно когда я вообще ещё окажусь в Казани. Книжки можно приносить свои, можно будет купить на месте гарантированно актуальный тираж.
Магазин прислал свою ссылку на регистрацию: https://forms.gle/18MF1qctrqwG6cwe6
Пожалуйста зарегистрируйтесь по ней. По моей ссылке из прошлого поста зарегистрировалось существенно меньше людей, чем проголосовали вот тут https://t.me/cpp_lects_rus/283. Там было 80 голосов, а по моей ссылке я пока вижу только 20 регистраций. Мне интересно где все проголосовавшие? Вероятно будут на встрече, не могут же люди просто так тыкать в рандомные города ))
Также я буду в Казани в воскресенье. Я пока планирую просто гулять, но если у вас есть возможность организовать что-то полезное, скажем встречу ещё где-то ещё с кем-то или какое-то выступление, то ещё не поздно мне написать в лс обсудить детали.
P. S. пост временный, снесу по проведении мероприятия.
#author_event
Дата и время: суббота, 5 июля в 14 часов. Место: магазин "Книга плюс" (ТРЦ Южный, Проспект Победы, 91).
Территориально локация не очень удобная: это как если бы в Москве встреча была где-то на МКАДе. Зато локация вроде бы большая, хорошая. Транспортная доступность, в общем, тоже не худшая из всего, что бывало в других городах. И, как обычно, неизвестно когда я вообще ещё окажусь в Казани. Книжки можно приносить свои, можно будет купить на месте гарантированно актуальный тираж.
Магазин прислал свою ссылку на регистрацию: https://forms.gle/18MF1qctrqwG6cwe6
Пожалуйста зарегистрируйтесь по ней. По моей ссылке из прошлого поста зарегистрировалось существенно меньше людей, чем проголосовали вот тут https://t.me/cpp_lects_rus/283. Там было 80 голосов, а по моей ссылке я пока вижу только 20 регистраций. Мне интересно где все проголосовавшие? Вероятно будут на встрече, не могут же люди просто так тыкать в рандомные города ))
Также я буду в Казани в воскресенье. Я пока планирую просто гулять, но если у вас есть возможность организовать что-то полезное, скажем встречу ещё где-то ещё с кем-то или какое-то выступление, то ещё не поздно мне написать в лс обсудить детали.
P. S. пост временный, снесу по проведении мероприятия.
#author_event
👍30👌4❤3
Выложили мой доклад, посвящённый компиляторным технологиям в верификации, сделанный на конференции 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
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
YouTube
Константин Владимиров — Компиляторные технологии в верификации аппаратного обеспечения
—
Скачать презентацию с сайта sysconf — https://jrg.su/A7B89r
Поговорили про генератор тестов llvm-snippy, построенный на основе фреймворка LLVM для системной верификации RISC-V ядер.
Рассмотрели место генераторов в верификации, существующие подходы к написанию…
Скачать презентацию с сайта sysconf — https://jrg.su/A7B89r
Поговорили про генератор тестов llvm-snippy, построенный на основе фреймворка LLVM для системной верификации RISC-V ядер.
Рассмотрели место генераторов в верификации, существующие подходы к написанию…
🔥90❤15👍12⚡4💩2🐳1🦄1
Провёл встречу с читателями в Казани. Обсудили детали сосуществования ML-guided и profile-guuded оптимизаций, компиляторы для разработки аппаратуры, перспективы нейросетей и состояние преподавания информатики.
Было довольно камерно, в топе не более 20 человек (не все в кадре, некоторые опоздали к началу, многие ушли до общей фотки в конце). Мне понравилась исключительно приветливая площадка, нас терпели три часа и потом меня ещё и поблагодарили. Огромное спасибо всему персоналу магазина Книга-плюс особенно ведущей Саше (на моих фотках нет, я выложу в комментарии когда мне скинут фотки от площадки если она там будет).
Сама Казань очень интересна, мне ещё предстоит её исследовать сегодня и завтра. Какие то путевые заметки тоже положу в комментарии.
Спасибо всем кто пришёл за то что пришли и за отличные вопросы, было супер.
#author_event
Было довольно камерно, в топе не более 20 человек (не все в кадре, некоторые опоздали к началу, многие ушли до общей фотки в конце). Мне понравилась исключительно приветливая площадка, нас терпели три часа и потом меня ещё и поблагодарили. Огромное спасибо всему персоналу магазина Книга-плюс особенно ведущей Саше (на моих фотках нет, я выложу в комментарии когда мне скинут фотки от площадки если она там будет).
Сама Казань очень интересна, мне ещё предстоит её исследовать сегодня и завтра. Какие то путевые заметки тоже положу в комментарии.
Спасибо всем кто пришёл за то что пришли и за отличные вопросы, было супер.
#author_event
👍124🔥41❤10👌4👾1
Пятница, вечер. Время чилаута и развлекательного C++.
Представим у вас есть куча специализаций некоего шаблона функции foo.
И функция
Вы хотели бы написать шаблон функции
Идея в том что он принимает кортеж, разворачивает его и для его содержимого вызывает
Можно предложить кривой и косой, уродливый как черт с рогами, но рабочий вариант с 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
Представим у вас есть куча специализаций некоего шаблона функции 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
godbolt.org
Compiler Explorer - C++ (x86-64 gcc 15.1)
// this is not constexpr
template <typename T> int foo() { return 1; }
template <> int foo<int>() { return 2; }
template <> int foo<float>() { return 4; }
// this also is not constexpr
template <typename ...T>
int sumfoos() { return (foo<T>() + ...); }…
template <typename T> int foo() { return 1; }
template <> int foo<int>() { return 2; }
template <> int foo<float>() { return 4; }
// this also is not constexpr
template <typename ...T>
int sumfoos() { return (foo<T>() + ...); }…
🔥71❤9⚡5👍3🤔2🆒1💊1
Media is too big
VIEW IN TELEGRAM
Всем привет. Открыта регистрация на Zero Cost Conf этого года. Выступаем с Владиславом Беловым на вечнозелёную тему алиасинга.
Владислав работает в моей команде и он недавно подготовил довольно сложный патч в компилятор который наконец-то позволяет LLVM агрессивно оптимизировать код в котором соответствующие аннотации висят на локальных переменных, например. По пути мы оба, понятное дело, многое узнали.
https://cppzerocostconf.yandex.ru/2025
Пост временный, сотру как выложу видео (они обычно быстро выкладывают). А может и оставлю ради гифки. Гифка от организаторов уж очень хороша.
#conference
Владислав работает в моей команде и он недавно подготовил довольно сложный патч в компилятор который наконец-то позволяет LLVM агрессивно оптимизировать код в котором соответствующие аннотации висят на локальных переменных, например. По пути мы оба, понятное дело, многое узнали.
https://cppzerocostconf.yandex.ru/2025
Пост временный, сотру как выложу видео (они обычно быстро выкладывают). А может и оставлю ради гифки. Гифка от организаторов уж очень хороша.
#conference
👍68🔥17😍6❤2🐳1
Вечер пятницы и время чилаута в области C++. На этот раз мы снова сыграем в увлекательную игру "кто из компиляторов прав".
Я вытащил этот пример из переписки со студентом более чем годичной давности и проверил на свежих gcc и clang. Они всё ещё не согласны друг с другом.
https://godbolt.org/z/fe14q8aoz
Это упражнение на чтение стандарта, так что ссылки на стандарт обязательны.
Как обычно — наливайте себе пивка с орешками или чая с булочкой и сначала попробуйте решить сами, никуда не подглядывая. Потом пролайкайте самые вдумчивые из ответов.
#questions
Я вытащил этот пример из переписки со студентом более чем годичной давности и проверил на свежих gcc и clang. Они всё ещё не согласны друг с другом.
https://godbolt.org/z/fe14q8aoz
Это упражнение на чтение стандарта, так что ссылки на стандарт обязательны.
Как обычно — наливайте себе пивка с орешками или чая с булочкой и сначала попробуйте решить сами, никуда не подглядывая. Потом пролайкайте самые вдумчивые из ответов.
#questions
godbolt.org
Compiler Explorer - C++
namespace A { struct SA{}; }
template <typename T> void buz(T &&a) {
bar(a);
}
template void buz(A::SA &&a); // POI
namespace A {
void bar(A::SA &) {}
}
template <typename T> void buz(T &&a) {
bar(a);
}
template void buz(A::SA &&a); // POI
namespace A {
void bar(A::SA &) {}
}
👍24❤6🔥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
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
YouTube
Анастасия Черникова — Компиляторный бенчмаркинг и JIT-компиляция
—
Скачать презентацию с сайта sysconf — https://jrg.su/eccdsR
Обсудили инструмент автоматического бенчмаркинга llvm-exegesis и то, какие проблемы он помогает решать.
Недавно появилась поддержка RISC-V backend: Анастасия рассказала про ее особенности, реализацию…
Скачать презентацию с сайта sysconf — https://jrg.su/eccdsR
Обсудили инструмент автоматического бенчмаркинга llvm-exegesis и то, какие проблемы он помогает решать.
Недавно появилась поддержка RISC-V backend: Анастасия рассказала про ее особенности, реализацию…
👍94❤31🔥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
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
YouTube
Алиасинг памяти в компиляторе и в вашей программе / Константин Владимиров и Владислав Белов
На C++ Zero Cost Conf 2025 выступили ребята из Syntacore: инженер-программист отдела компиляторов и инструментов разработки Владислав Белов и руководитель отдела Константин Владимиров. Они разобрали оптимизацию C++ на основе strict aliasing и restrict. А…
🔥87👍33❤10🍓3🙏1🤪1
И снова пятница и время чиллаута со стандартом нашего любимого языка.
Вашему разбору предлагается пример от @sibedir где два основных компилятора снова друг с другом не согласны.
https://godbolt.org/z/c9j6qr8hx
Нужно:
1. Со ссылками на стандарт обосновать правоту одного из них.
2. Починить gcc добавив что угодно в структуру TNullPtr но не меняя существующего кода (это возможно).
P. S. В комментариях уже разобрали так что туда смотрите только если сдаётесь ))
#questions
Вашему разбору предлагается пример от @sibedir где два основных компилятора снова друг с другом не согласны.
https://godbolt.org/z/c9j6qr8hx
Нужно:
1. Со ссылками на стандарт обосновать правоту одного из них.
2. Починить gcc добавив что угодно в структуру TNullPtr но не меняя существующего кода (это возможно).
P. S. В комментариях уже разобрали так что туда смотрите только если сдаётесь ))
#questions
godbolt.org
Compiler Explorer - C++
struct TNullPtr {
operator std::nullptr_t() { return nullptr; }
};
int main() {
TNullPtr NPtr;
int* ip = nullptr;
return NPtr == ip;
}
operator std::nullptr_t() { return nullptr; }
};
int main() {
TNullPtr NPtr;
int* ip = nullptr;
return NPtr == ip;
}
❤18👍9🤔3
Всем привет.
Время для важного апдейта: мы начинаем раннюю апробацию нового курса на Степике. Вы можете поучаствовать, это будет бесплатно.
https://stepik.org/course/241399
А теперь детали.
Как многие знают, я вхожу в Академический комитет Российского Альянса RISC-V. Также я часто читаю лекции по разным аспектам открытой и расширяемой. Но всё это было как-то разрозненно.
Поэтому этой весной появилась идея сделать один большой вводный курс по RISC-V, ассемблеру и средствам разработки. Этот курс было решено делать при поддержке Альянса, но при этом сохранить его открытым, бесплатным и после периода апробации, внедрять в те ВУЗы страны, где он вызовет интерес. Уже сейчас интерес к организации у себя пилотного проекта проявили СПБГУ, ННГУ, МИЭТ, ЛЭТИ и многие другие. Возможно потом присоединится более широкий круг ВУЗов со всей России.
В курсе кроме сведений про RISC-V и про ассемблер, содержатся также углубленные модули посвящённые работе отладчиков, симуляторов, микроархитектуре и многому другому. Мы старались научить людей читать и понимать ассемблер, использовать инструменты разработки по назначению и осознавать как и что происходит под капотом.
Мы ориентировались на аудиторию людей, которые уже знают C и хотят больше узнать про ассемблер.
Курс готовили в основном Марк Гончаров и Настя Черникова (вы их уже видели на этом канале), делалось это под моим общим и научным руководством. Я там тоже иногда появляюсь в кадре и читаю парочку лекций, причём не только вводные. Кроме того, мы переиспользовали немного материала по ассемблеру из моего курса в МФТИ, углубив и переведя его на RISC-V, так что некоторые задачи вы узнаете, если проходили курс по C.
Если вы вдруг забыли про Марка и Настю:
Марк:
https://t.me/cpp_lects_rus/216
Настя:
https://t.me/cpp_lects_rus/275
Сейчас курс, возможно, сыроватый, зато пока что мы можем в широких пределах его менять: переснимать целые модули, добавлять задачи и т. д. И я приглашаю моих уважаемых подписчиков поучаствовать в его ранней апробации: начать проходить и писать сюда (или в чат на Степике, но лучше сюда) о замеченных проблемах. Мы их планируем до нового года оперативно править.
Надеюсь курс будет встречен хорошо и будет полезен.
#riscv #toolchain #c_graduate
Время для важного апдейта: мы начинаем раннюю апробацию нового курса на Степике. Вы можете поучаствовать, это будет бесплатно.
https://stepik.org/course/241399
А теперь детали.
Как многие знают, я вхожу в Академический комитет Российского Альянса RISC-V. Также я часто читаю лекции по разным аспектам открытой и расширяемой. Но всё это было как-то разрозненно.
Поэтому этой весной появилась идея сделать один большой вводный курс по RISC-V, ассемблеру и средствам разработки. Этот курс было решено делать при поддержке Альянса, но при этом сохранить его открытым, бесплатным и после периода апробации, внедрять в те ВУЗы страны, где он вызовет интерес. Уже сейчас интерес к организации у себя пилотного проекта проявили СПБГУ, ННГУ, МИЭТ, ЛЭТИ и многие другие. Возможно потом присоединится более широкий круг ВУЗов со всей России.
В курсе кроме сведений про RISC-V и про ассемблер, содержатся также углубленные модули посвящённые работе отладчиков, симуляторов, микроархитектуре и многому другому. Мы старались научить людей читать и понимать ассемблер, использовать инструменты разработки по назначению и осознавать как и что происходит под капотом.
Мы ориентировались на аудиторию людей, которые уже знают C и хотят больше узнать про ассемблер.
Курс готовили в основном Марк Гончаров и Настя Черникова (вы их уже видели на этом канале), делалось это под моим общим и научным руководством. Я там тоже иногда появляюсь в кадре и читаю парочку лекций, причём не только вводные. Кроме того, мы переиспользовали немного материала по ассемблеру из моего курса в МФТИ, углубив и переведя его на RISC-V, так что некоторые задачи вы узнаете, если проходили курс по C.
Если вы вдруг забыли про Марка и Настю:
Марк:
https://t.me/cpp_lects_rus/216
Настя:
https://t.me/cpp_lects_rus/275
Сейчас курс, возможно, сыроватый, зато пока что мы можем в широких пределах его менять: переснимать целые модули, добавлять задачи и т. д. И я приглашаю моих уважаемых подписчиков поучаствовать в его ранней апробации: начать проходить и писать сюда (или в чат на Степике, но лучше сюда) о замеченных проблемах. Мы их планируем до нового года оперативно править.
Надеюсь курс будет встречен хорошо и будет полезен.
#riscv #toolchain #c_graduate
Stepik: online education
RISC-V: архитектура, ассемблер и инструменты разработки
На данном курсе мы рассмотрим основы архитектуры RISC-V, познакомимся с инструментарием разработчика RISC-V. Узнаем, как работают компиляторы, симуляторы, отладчики, какие возможности они предоставляют и как анализировать архитектуру и микроархитектуру процессора…
❤169🔥126👍41👏6❤🔥3🏆3🆒1
Вот и наступил сентябрь, начало учебного года.
Каждый год я делаю подзамочные стримы со своего магистерского и бакалаврского курсов. Этот год не станет исключением. Основной оргресурс для сообщества тех, кто смотрит мои стримы, это дискорд, там все даты, время, записи и т.п.
https://discord.gg/w73eVVraKg
Ссылки на стрим постятся до начала лекции на дискорд-сервер в каналы с соответствующими названиями (магистратура-2025-26 и бакалавриат-2025-26), так что вы можете участвовать онлайн в реальном времени. Вопросы по теме лекции из чата стрима зачитываются в аудитории. В основном канале дискорд-сервера обычно помещается организационная информация. Есть также канал для оффтопик общения. Как вы понимаете, я нигде не размещаю рекламу, ничего не монетизирую и не собираю донаты.
Стримы в этом году будут вестись на rutube, технология опробована и сюрпризов не ожидается. Стримы отличаются от публично выложенных на канале курсов некоторыми обновлениями материала, отсутствием видео и традиционно плохим звуком (с обработкой звука и съёмкой видео я заморачиваюсь только для официальной выкладки), на стримах у меня обычно только экран -- слайды и код. Записи стримов сохраняются и доступны после стрима.
#official
Каждый год я делаю подзамочные стримы со своего магистерского и бакалаврского курсов. Этот год не станет исключением. Основной оргресурс для сообщества тех, кто смотрит мои стримы, это дискорд, там все даты, время, записи и т.п.
https://discord.gg/w73eVVraKg
Ссылки на стрим постятся до начала лекции на дискорд-сервер в каналы с соответствующими названиями (магистратура-2025-26 и бакалавриат-2025-26), так что вы можете участвовать онлайн в реальном времени. Вопросы по теме лекции из чата стрима зачитываются в аудитории. В основном канале дискорд-сервера обычно помещается организационная информация. Есть также канал для оффтопик общения. Как вы понимаете, я нигде не размещаю рекламу, ничего не монетизирую и не собираю донаты.
Стримы в этом году будут вестись на rutube, технология опробована и сюрпризов не ожидается. Стримы отличаются от публично выложенных на канале курсов некоторыми обновлениями материала, отсутствием видео и традиционно плохим звуком (с обработкой звука и съёмкой видео я заморачиваюсь только для официальной выкладки), на стримах у меня обычно только экран -- слайды и код. Записи стримов сохраняются и доступны после стрима.
#official
Discord
Join the Лекции по C++, год от года Discord Server!
Лекции по C++ в МФТИ | 1346 members
❤110👍44🔥15🙏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
События этого доклада происходили больше двух лет и принесли нам бесконечное количество нового опыта. А опыт, как известно, это то, что ты получаешь, когда хочешь чего-то другого.
С моей точки зрения -- один из лучших непрофильных докладов на 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
YouTube
Никита Руденко — Использование Conan на практике: неочевидные проблемы и решения
Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
— —
Скачать презентацию с сайта C++ Russia — https://jrg.su/nDHw6q
Управление проектными зависимостями остается самым болезненным пунктом для C++ разработчиков по версии ежегодного исследования isocpp.org.…
— —
Скачать презентацию с сайта C++ Russia — https://jrg.su/nDHw6q
Управление проектными зависимостями остается самым болезненным пунктом для C++ разработчиков по версии ежегодного исследования isocpp.org.…
❤45👍23👏14🔥12😁3💅3