C++ and other lectures
8.46K subscribers
39 photos
2 files
210 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Небольшой опрос.

Какие изменения в C++23 вам кажутся самыми существенными (рассматриваем только core language, не библиотеку)? Я понимаю, что вопрос расплывчатый, выберите критерий "существенности" самостоятельно. Можно выбрать несколько.
Final Results
20%
Explicit object parameter (deducing this)
11%
if consteval
24%
import std
4%
Метки и goto в constexpr функциях
13%
Многомерные индексаторы
10%
Статические операторы [] и ()
4%
Чисто бюрократические уточнения в стандарт относительно некоторых семантических процессов
0%
Свой вариант в комментарии
52%
Просто посмотреть результаты
🤔19👍4🤩2🤡21👎1
Выложил последний семинар курса по языку C. Собственно языка C тут уже не будет, мы поговорим скорее о программировании в целом и про его пределы.

https://youtu.be/k9qO7Jthk60

На этом семинаре мы начнём с обычного ассемблера и будем его упрощать. Сначала на этом пути мы получим RAM-модель, далее машину Минского ну и в конце машину Тьюринга. Где-то там, на том краю, где программирование уже смыкается с математикой, мы рассмотрим фундаментальные проблемы вычислимости и познакомимся с быстро растущими функциями.

В конце видео я скажу пару слов в напутствие. Ну а ниже напишу чуть больше. Пожалуйста дальше читайте только после просмотра ))

—-

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

Я бы не вытянул этот проект, если бы не помощь в первую очередь Марка Гончарова, Юлия Тарасова, а также Владислава Белова, Станислава Сидельникова и Сергея Циммермана, которые всё это время были за кадром (Марк впрочем в кадре ненадолго появился) но делали куда больше чем многим кажется. Хочется казать им большое спасибо, в том числе за преподавание на открытых в этом году дополнительных курсах лаборатории RISC-V. Очень надеюсь, что эти курсы получат своё продолжение и будут в свою очередь записаны через несколько лет, но уже без меня.

—-

Немного о дальнейших творческих планах я напишу уже летом. Они есть и скоро всех моих уважаемых подписчиков ждёт нечто крайне интересное.

—-

P. S.

Марка на следующий год для преподавания на РТ не утвердили. Формальное основание: набор студентов сокращается, в этом году группы и так были маленькие, много преподавателей не надо. Так что курс остаётся как чистый онлайн, а на первом курсе в наступающем году на ФРКТ будет всё как обычно, но уже без возможности учиться по этой семинарской программе (у каждого семинариста программа индивидуальная). В общем я его очень вовремя записал. Такие дела.

#c_graduate
👍137🔥4733👏5😢5👌1
Выступил на конференции МТС с вечным докладом на тему открытой и расширяемой архитектуры RISC-V.

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

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

Сама конференция к слову произвела на меня отличное впечатление, это без преувеличений было пока что самое эпичное из мероприятий куда меня в этом году звали. С другой стороны я пока не сходил на C++ Russia и на Сбер GigaConf (и туда и туда я тоже приглашён) так что пока что сезон не закрыт.

UPD: слайды https://sourceforge.net/projects/cpp-lects-rus/files/conference-talks/mts-riscv-2024-nopwd.pdf/download

#conference #riscv
👍100🔥3212👏2👌2
Выступил весной на конференции Heizenbug с докладом про генератор llvm-snippy, который мы недавно заопенсорсили. Сейчас видео стало доступно публично.

https://www.youtube.com/watch?v=ceAK85rAkfY&t=146s

Timeline
00:00 -- Разминка и вводная информация про RISC-V (иначе никто бы ничего не понял)
05:53 -- Постановка задачи
11:00 -- Недостатки существующих генераторов и как мы их адресуем компиляторными технологиями
18:10 -- Архитектура llvm-snippy
23:30 -- Генерация доступов к памяти
27:17 -- Условные переходы и вызовы функций
35:27 -- Система пассов. Сниппи как последний в мире генератор, потому что других теперь не надо.
38:24 -- Вопросы

Слайды к докладу: https://github.com/tilir/snippy/releases/download/1.0/snippy-heizenbug.pdf

Собственно генератор: https://github.com/syntacore/snippy

Документация к генератору является частью первого релиза: https://github.com/syntacore/snippy/releases/tag/snippy-1.0

---

В целом это был очень интересный опыт. Конференция была отчётливо "не моя". Я редко выступаю перед пустыми залами. Обычно на мои выступления идут, что бы я ни рассказывал. На Гейзенбаге, наконец-то, это был тот самый случай когда меня вообще никто не знал, и, логично, что почти никто не пришёл. Зал был человек на 150, по факту же в нём сидело где-то 25 человек из них человек двадцать это джаваскриптеры со стеклянными глазами. Остальные ушли в другие залы. Осудим ли мы их за это? ))

С одной стороны можно сказать, что вообще идти туда было ошибкой. С другой стороны, а где найти в России не слишком душную конференцию по дизайну и верификации аппаратуры? Если у вас такая есть, позовите меня туда. Я понадеялся что на Гейзенбаге будут интересные доклады по тестированию разного уровня и что для того уровня, о котором рассказываю я, тоже найдутся те, кто его поймёт и воспримет. Если судить по оценкам, то можно сказать так: всем, кто его посмотрел, доклад очень понравился. Просто мало кто посмотрел.

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

Посмотрим будет ли интересно моей уважаемой аудитории здесь ))

#conference
❤‍🔥77👍4212🔥8🤷‍♂1😁1
Опубликовали нашу с Ильёй Андреевым https://t.me/BruceGliff очередную статью. Её тематика хорошо продолжает тему прошлого поста (может мне для snippy и системной верификации завести тег?). Генератор llvm-snippy принципиально однопоточный, он никак не учитывает возможных эффектов многопоточного true sharing. А что если развить идею и из нескольких сниппетов, каждый из которых исполняется на отдельном ядре, сделать поверх некий граф возможных общих обращений в память, смоделировать мьютексы, смоделировать CAS-циклы и т.п. Возможно ли тогда по этому графу понять корректность многопоточного кода с учётом возможных переупорядочений операций и с учётом слабой модели памяти?

Нечто подобное делают давно известные литмус-тесты, но они маленькие и короткие. Можно ли как-то решить проблему комбинаторного взрыва при росте числа верифицируемых операций? Собственно об этом статья.

http://sitito.cs.msu.ru/index.php/SITITO/article/view/1068

Фактически, как вы догадываетесь, мы сделали LLVM-based инструмент, теория для которого изложена в этой статье. Сам инструмент пока в опен-сорсе не появился и в ближайшее время вряд ли мне удастся согласовать его появление, т.к. такого рода программы продаются и стоят дорого (см. например breker от brekersystems.com). Но в статье мы постарались достаточно подробно описать основные алгоритмы.

PDF надеюсь скоро доедет до сайта.

P. S. установочная статья по llvm-snippy тоже в процессе подготовки.

#publications
🔥60👍225🤮3🤔1😢1
Всем привет. Выложили по ссылке моё выступление на C++ Russia. Через годик откроют, а пока как водится эксклюзив для моих уважаемых подписчиков.

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

Сама конференция в этом году была довольно удачной организационно и мне очень понравилась аудитория, много с кем очень приятно было пообщаться в кулуарах. Правда, с моей точки зрения, программный комитет недоработал и в программу натащили неприлично много контента, не имеющего отношения к C++. И не просто не имеющего, а агрессивно не желающего иметь. Когда я в своё время ходил на эту же конференцию с докладом про GPU и SYCL, я, тем не менее, выделил минут десять тайминга на связь с эволюцией языка и всякие поклоны в сторону собственно C++. А тут люди просто приходили с докладами про работу с матрицами на фортране или там про ручную векторизацию на интринсиках, не упоминая C++ вообще.

Мой доклад в этом отношении возвысился этакой скалой традиционных ценностей. Он про язык и только про него. Это второй в серии моих семантических докладов. Рассказав год назад про синтаксис и семантику в целом, в этом году я ныряю в разрешение имён.

P. S. и к слову, меня включили в этом году в программу Zero Cost Conf, туда вход будет свободный.

#conference
👍12739🔥25👏2😍2🤝2🥰1👀1
Всем привет. Поступают вопросы что я намерен делать в связи с возможными блокировками. Что же, можно сказать, что я неплохо к ним подготовлен.

Во-первых, благодаря уважаемым добровольцам, я богато представлен на торрентах, например https://rutracker.org/forum/viewtopic.php?t=6188137 и мн. др.

Во-вторых, у меня есть мой собственный канал на rutube, даже верифицированный. Пока там только бакалаврский курс, но вообще дублировать туда всё подряд не так уж и сложно, подписывайтесь: https://rutube.ru/channel/10218561/

В-третьих, всё, что я недовыкладываю, то довыкладывают многочисленные уважаемые добровольцы, упомянутые мной выше и не только. Я сам иногда с интересом нахожу где меня в очередном месте довыложили.
Например магистерский курс на rutube, залитый внезапно не мной: https://rutube.ru/plst/214137/
А вот курс по языку C, тоже не мной залитый: https://rutube.ru/plst/371362/
И так далее, ищется это очень легко. Я никак не препятствую распространению своих видео кем угодно, даже приветствую.

С другой стороны, всем конечно удобнее ориентироваться на единый источник, которым является мой youtube-канал, чем собирать всё в интернете по крохам.

Поэтому я буду продолжать выкладки на свой youtube-канал. Но, пока ограничения/блокировки не будут сняты, я буду сопровождать каждое видео ссылкой в описании на какой-либо неблокируемый ресурс.

#official #torrent
248👍102🔥22🤝5👏3🥰2🫡2🤗1
Выложил с разрешения организаторов выступление на конференции Сбер 27 июня 2024 года. Доклад несложный и развлекательный, посвящён многогранности тех возможностей которые даёт LLVM. Мы начинаем с того, что это бэкенд компилятора. Далее оказывается, что LLVM как платформа может быть использован для многих интересных инструментов, имеющих к компилятору весьма мало отношения. Это и статический анализ (clang-tidy) и бенчмаркинг (llvm-exegesis) и генерация тестов (llvm-snippy). Мы поговорим как и за счёт чего всё это совмещается.

Для меня это был интересный опыт, т.к. я впервые пошёл не один, а взял с собой содокладчицу Анастасию Черникову @anastasiya_chernik0va. Настя училась у меня на 1 и 2 курсе и сейчас работает под моим руководством в качестве инженера-стажёра и как раз среди прочего занимается llvm-exegesis для RISC-V. Кроме того что Настя прекрасно пишет код, она также очень хочет больше выступать. Для неё это первое выступление, но, я думаю, вы её ещё много где увидите.

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

Патч с RISC-V бэкендом в exegesis: https://github.com/llvm/llvm-project/pull/89047

Альтернативная ссылка на VK Video, как и обещал, в описании.

#conference
🔥109👍40201👏1😁1🫡1
В связи с тем, что МФТИ-шные контесты по C для первого курса нестабильны, особенно летом, мой уважаемый подписчик Никита Мальцев https://t.me/hfhhdp перенёс coursework на Yandex contest:

https://contest.yandex.ru/contest/66459/enter

Я сегодня заслал несколько решений, работает как часы. Просьба протестировать, отписать ощущения и я тогда обновлю видео на канале альтернативной ссылкой в описании. Там пока не хватает ассемблера, но это наживное.

#c_graduate
88🔥44👍25🐳41
Выступил с ещё одним рассказом про генератор llvm-snippy, на этот раз на C++ Zero Cost Conf. В данном случае я чуть меньше рассказывал про его применение и чуть больше про внутренности, в частности про некоторые проблемы проектирования, которые мы вынуждены были решать.

https://youtu.be/A8FSh8eFj1w

Timeline
00:00 Вступление: открытая и расширяемая
04:55 Идея LLVM-based тестового генератора
09:20 Рантайм-полиморфизм в стиле LLVM
17:27 LLVM-snippy и его генплан
23:44 Появление generation requests и как всё запутывается
29:23 Изменяем проектирование через скрытый полиморфизм
36:18 Завершение и вопросы

В целом Zero Cost Conf мне показалась в этом году технически сильней и интересней, чем даже C++ Russia. К тому же они уже выложили некоторые другие доклады. Так что я тут сделаю также обзор того, что на мой взгляд было удачным и что нет. Но несколько позже.

UPD: мне обещали исходник видео для альтернативной выкладки на неблокируемые ресурсы, но пока он до меня не доехал. Как только будет, сделаю дополнение этого поста.

#conference
🔥67👍2511❤‍🔥31🫡1
Продолжаем тему Zero Cost Conference этого года (благо почти все видео уже выложены).

Прежде, чем я перейду к общему обзору, давайте немного поговорим про лучший доклад. Обычно, когда я выступаю на какой-то конференции, лучшим докладом там я считаю, конечно, свой. Так было на этой C++ Russia и много ещё где. Есть понятные исключения, когда я просто прихожу на огонёк поболтать про открытую и расширяемую и т.п. (кстати зовите), там, разумеется, я ни на что не претендую, я сейчас про содержательные доклады.

Итак я всегда иду с предположением что я лучший. Но, с другой стороны, мне всегда очень приятно ошибаться в этом предположении. И вот как раз на ZCC'24 был доклад, который я считаю несомненно лучшим, чем даже мой, причём лучшим с отрывом и с гандикапом. Он прекрасен и по композиции и по глубине и по раскрытию темы.

Встречайте, Сергей Слотин.

https://youtu.be/Lrjjqc1bRHo

Timeline (моя версия)
00:00 Начало и правила игры
06:00 Первый вопрос
11:30 Memory sharing
19:20 Пропускная способность
29:52 Ассоциативность
37:50 Виртуальная память
47:40 Завершение

В опросе, который проводился в процессе доклада, я по итогу занял 13-е место. Я бы удержался в десятке, но я ответил "about the same" на первый вопрос, так как именно в таком эксперименте мне никогда не удавалось пронаблюдать лесенку. После конференции обсудили с Сергеем его способ бенчмаркинга. Исходники для желающих перемерить:

https://github.com/sslotin/amh-code/tree/main/cpu-cache

Сергей, как выяснилось, также является автором вот этого превосходного материала, который я многие годы использовал при подготовке разного уровня лекций.

https://en.algorithmica.org/hpc/

Прекрасный материал, прекрасный доклад, очень рекомендую.

#talks
🔥92👍247
Ну и завершая тему Zero Cost Conference написал (довольно длинный) обзор всего остального что там было по обоим трекам и в Москве и в Ереване (ну кроме откровенно странных штук типа геогессинга).

https://telegra.ph/Obzor-dokladov-proshedshej-Zero-Cost-Conf2024-08-11

Было бы интересно увидеть в комментариях что из содержания докладов понравилось и запомнилось вам и насколько вы бы скорректировали мои отдельные оценки в плюс или в минус (разумеется только если вы действительно смотрели соответствующий доклад).

#conference #talks
40👍33🔥18🫡2
Настало время этого анонса.

Моя книга по оптимизирующим компиляторам, над которой я работал с прошлого лета, наконец-то доступна в предварительной продаже.

Финальный вариант книги ещё не свёрстан, так что на шрифт и верстку пока не смотрите, в печати всё будет гораздо лучше.

https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667

Начиная с осени, вероятно с середины октября, когда эта книга поступит в продажу уже в магазинах, я начну выкладку на свой канал (youtube и rutube) снятого этим летом видеокурса по этой книге. Надеюсь успеть его полностью выложить к новому году, если не решу доснять специальных выпусков. В итоге можно будет читать книгу и смотреть курс.

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

P. S. Статистика по предпродажам сильно повлияет на тираж книги. Ну и в предпродаже её можно купить со значительной скидкой.

#publications
🔥325👍11730👏8❤‍🔥7🫡4😱2
Приближается сентябрь, начало учебного года.

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

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

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

https://discord.gg/w73eVVraKg

#official
👍135🔥3618👏2🤩2
Вместо того, чтобы:
* готовиться к выступлению на ШМУ в Сириусе 20-го сентября.
* готовиться к выступлению на конференции "Стачка" в Питере 28-го сентября
* готовится к первой бакалаврской лекции в понедельник
* прочее

Я вчера весь вечер писал вот этот сомнительный длиннопост про разум, вычислимость, тезис Тьюринга и, главное, недооценённую многими людьми гениальность так называемого "теста Тьюринга", очерчивающего границы нашей возможности к распознаванию разума.

https://telegra.ph/Tezis-Tyuringa-09-06

Внутри много философии, вы предупреждены.

P. S. книгу сверстали, результат в целом ок, но там разъехались листинги, я отправил правки, их сейчас вносят и далее нас ждёт ещё один круг. Ориентировочная дата выхода -- середина октября.

#computability #conference #publications
114🔥57👍41🦄43👏3🆒3
Пятница, вечер, самое время для свежепридуманного этюда по C++. Придумал утром, сегодня опробовал на коллегах и остался доволен.

https://godbolt.org/z/8EaEbPz9x — это не работает
https://godbolt.org/z/6b3977Pac — то же, но без инстанцирования структуры отлично работает

Вам нужно обосновать со ссылкой на стандарт в чём причина. И предложить некую починку неработающего варианта. Вариантов починки, кстати, заведомо больше одного.

Увы, призов, кроме зрительских симпатий, не обещаю.

#questions #cpp_postgraduate
👍36🤯1910
Всем привет. 28 сентября в субботу выступаю на IT-конференции Стачка в СПб.

С 11:40 до 12:45 со мной можно будет пообщаться в "экспертной зоне". Это для владельцев VIP-билетов. Подразумевается неспешный разговор серьёзных людей и лакшери времяпрепровождение. Презентация мне дорогих напитков приветствуется, но остаётся на ваше усмотрение.

В 13:40 мы с очаровательной содоклачицей Настей расскажем про инструмент автоматического бенчмаркинга llvm-exegesis. И конечно про его бэкенд для открытой и расширяемой архитектуры RISC-V, сделанный нашей командой. И даже немного про LLVM-based ORC JIT. Это уже в основном треке и для всех.

P. S. книга всё ближе. Вчера отослал последние мелкие правки по вёрстке. Уже готовится печатный файл, середина октября выглядит реалистично. Скоро начну выкладку курса на youtube/rutube, информация будет на этом канале.

#conference
95🔥50👍28💅13🦄32😁2🤔1
Всем привет. Типография поставила дату 22.10, соответственно выкладку курса начну в субботу 19-го.

UPDATE: Типография справилась быстрее. Попробую начать выкладку пораньше ))

А сейчас у меня будет для всех важный вопрос. Хочется сделать встречу с читателями, издательство поможет организовать. Допустим я сделаю встречу с читателями в Москве в выходной. Мне надо знать сколько людей придёт. Опрос сейчас сделаю, но пожалуйста, голосуйте только если придёте с высокой вероятностью. И то же самое в Питере.

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

#official
🔥60👍233❤‍🔥2😢1
Придёте на встречу с читателями?
Anonymous Poll
20%
Москва
12%
Питер
24%
Другой город
44%
Результаты
👍23❤‍🔥5🔥2
Итак, книга приехала из типографии чуть раньше, чем должна была.

Поэтому также чуть раньше выкладываю первое видео курса по этой книге. Можно читать книгу и смотреть курс ))

Видео будут появляться каждую субботу с утра где-то до конца декабря.

https://youtu.be/shvOI7SQ3q4

https://rutube.ru/video/3702d41e19ad5fd3b653820b530023dd/

Первая лекция очень простая и ознакомительная — на ней мы поговорим о тех задачах, которые решает компилятор, о синтаксисе и семантике программ, рассмотрим разные оптимизации и в конце введём HIR — High Level IR, которым будем пользоваться при дальнейшем изложении.

#toolchain #compilers
143🔥96👍21🤩3🐳2💅1