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

* 2 февраля в 16 часов, Санкт-Петербург, "Буквоед", Невский 46, встреча с читателями.
* 16 февраля в 15 часов, Москва, Московский Дом Книги, Новый Арбат 8, встреча с читателями.
* 28 февраля, Новосибирск, выступаю на конференции SnowOne на студенческом дне, рассказываю про странные ограничения статических компиляторов.
* 1 марта в 16 часов, Новосибирск, "Книжный бункер", Геодезическая ул., 4/1, встреча с читателями.
* 20 или 21 марта, Москва, выступаю на C++Russia, рассказываю про модули в С++
* 22 марта, Москва, выступаю на SysConf Pro, рассказываю про компиляторные технологии в системной верификации.

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

#official
🔥150👍42🥰17❤‍🔥76🤯3😱3
Провёл встречу с читателями в СПб. Прекрасные вопросы, отличные люди, мне всё очень понравилось. Вместо часа общение растянулось на 2.5 часа и даже небольшую фотосессию (где меньше людей т.к. многие ушли раньше).

Народу было человек 25-30. В тг в своё время проголосовали больше ста и я волновался что не поместимся. Зря волновался.

Видеозапись для гурманов: https://vkvideo.ru/video-32038_456241226

Почему то там в описании видео написано "лекция". Лекции собственно не было, не знаю зачем они так сделали ))

16 февраля -- Москва.

#author_event
105👍55🔥18💯3🤯1🙏1👌1🏆1
Всем привет. Пост для errata к книге размещу на выходных. А пока давайте откалибруемся по дальнейшим встречам. Голосуйте только если придёте с очень высокой вероятностью.

#official
Anonymous Poll
8%
16 февраля, Москва, МДК в 15-00
3%
1 марта, Новосибирск, Книжный бункер, в 16-00
4%
15 или 16 марта Минск
4%
Где-то в апреле Екатеринбург или Челябинск
2%
Где-то в апреле Ростов
5%
Другой город в комментариях
75%
Для любопытных тыц
👍8🔥4👀31
Официальный пост для развёрнутых отзывов к книге "Оптимизирующие компиляторы, структура и алгоритмы".

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

https://www.litres.ru/book/konstantin-vladimirov/optimiziruuschie-kompilyatory-struktura-i-algoritmy-71185981/

И на курс к ней: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1

Отзывы не модерируются, комментарии к этому посту могут быть сколь угодно агрессивными и нелицеприятными (в обоих смыслах этого слова). Я буду тереть только откровенный спам и флуд либо оффтопик.

Не постите сюда конкретные баги, пост с errata будет следующим. Этот пост -- чисто поделиться впечатлениями.

#official #compilers
👍30🔥64👏3🍓1
Официальный пост для errata к книге "Оптимизирующие компиляторы, структура и алгоритмы".

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

https://www.litres.ru/book/konstantin-vladimirov/optimiziruuschie-kompilyatory-struktura-i-algoritmy-71185981/

И на курс к ней: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1

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

#official #compilers
👍33🏆8🔥43💅2🍾1
Всем привет. Немного апдейтов по текущим моментам.

В пятницу 28-го февраля выступаю в Новосибирске на студенческом дне SnowOne, рассказываю про странные ограничения статических компиляторов.

https://snowone.ru/talks/aa356d242b8844af918d2da3a0d69629/

В субботу 1 марта в Новосибирске встреча с читателями в 16-00 в магазине "Книжный бункер", всех жду.

Кроме того приближается конференция C++ Russia где мне дали завершающий персональный слот для доклада про модули в C++. Получится так, что конференцию откроет Полухин и закрою я. Тоже очень приятно и программа тоже уже доступна https://cppconf.ru/talks/c04f2494ed2440619fcb6e9d7029f903

И разумеется sysconf: там слот не такой топовый но тоже отличный https://sysconf.pro/talks/d56e0032e52e4221a8e1fa3398e89477

Поступают вопросы почему меня нет в списке участников круглого стола по преподаванию компиляторов. Очень просто: потому что для C++Russia я считаю эту тему неподходящей, не относящейся к C++. Я с удовольствием поучаствовал бы в таком круглом столе на sysconf или любой другой конференции общего плана.

Поступают также вопросы не выдали ли мне что-то вроде промокода на билеты на C++Russia или sysconf с отличной скидкой. Конечно выдали. Детали в лс.

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

Про встречу с читателями 15 марта в Минске напишу позже. Она будет, но там неожиданные приключения с местом проведения, вопрос решается.

Всех буду рад везде увидеть.

#official #conference
👍78🔥2911🤝21😱1🤡1🌭1
Вернулся из Новосибирска.

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

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

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

Небольшие путевые заметки, коротко.

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

2. Новосибирск оказался прекрасным городом. Конференция была в академгородке, он на меня впечатления не произвёл. А вот встреча с читателями была уже в самом городе и я потом использовал все возможности чтобы максимально по нему погулять. Даже перешёл в полночь Обь по мосту (в хорошей компании разумеется). Масштаб Новосибирска это даже не Нижний (чего я ожидал), это что-то вроде Москвы: широкие проспекты, соразмерные основательные здания, выстроенные по канонам классицизма, обилие интересных мест. Умилили ностальгические ларьки а-ля девяностые, в том числе в переходах. Мне теперь хочется как-нибудь приехать на недельку-другую, может быть лучше летом.

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

Хочется поблагодарить организаторов SnowOne за такую прекрасную возможность повидать Сибирь и за подаренные мне валенки. Также хочется поблагодарить дирекцию магазина Книжный Бункер. Очень милые и приятные люди, сделали всё чтобы моя встреча с читателями прошла идеально. Впереди Минск, детали распишу позднее.

#conference
🔥114👍49231
И снова время пятничного зачила. Наливайте пивка, открывайте последний драфт стандарта C++23 (N4950) и поехали.

Рассмотрим вот такой пример, обозначим его [1].

class X {
template <typename U> struct Hidden {};
};

template <typename T>
using Wrapper = typename X::template Hidden<T>;

int main() {
Wrapper<float> w;
}


https://godbolt.org/z/sMnec5nx4

В нём clang и gcc почему-то не выдают ошибок, хотя имя является скрытым. Тут хочется воскликнуть — ну наверное по стандарту открытость using зависит от него а не от того что он алиасит. Не торопитесь, читайте дальше.

Уберём шаблоны и получим пример [2].

class X {
struct Hidden {};
};

using Wrapper = typename X::Hidden;

int main() {
Wrapper w;
}


https://godbolt.org/z/q9TYMeaYo

Вроде он мало чем отличается, тоже using, но тут оба компилятора отказываются компилировать.

Теперь пойдём от [1] в другом направлении: заменим using на struct и получим пример [3].

class X {
template <typename U> struct Hidden {};
};

template <typename T>
struct Wrapper : X::template Hidden<T> {};

int main() {
Wrapper<int> w;
}


https://godbolt.org/z/Gs1s3z8qn

Оба компилятора отказываются компилировать. То есть using всё-таки важен? Ситуация становится интересней.

И теперь сделаем последний шаг: запишем пример [3], но не будем инстанцировать шаблон (т.е. уберём функцию main) и получим пример [4].

https://godbolt.org/z/9EM1avbxe

И внезапно тут мнения компиляторов расходятся. Clang выдаёт ошибку, тогда как gcc отлично компилирует.

Вопросы:
1. Обоснуйте с точки зрения стандарта чем отличается [1] от [2]
2. Обоснуйте с точки зрения стандарта чем отличается [1] от [3]
3. Обоснуйте с точки зрения стандарта какой из компиляторов прав в [4]?

Ответы кидайте в комментарии к посту. Ссылки на нормативные документы обязательны.

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

#questions
🤔42😁17👍12🫡6🤯5🔥4😱21
Для всех любителей открытой и расширяемой архитектуры RISC-V.

В пятницу 14 марта пройдёт очередной RISC-V & YADRO митап, посвящённый экосистеме ПО для RISC-V. Участие бесплатное, но надо зарегистрироваться по ссылке. Количество мест в оффлайн ограничено, там бесплатно покормят и можно будет пообщаться. Нормальный такой пятничный вечерочек.

Я там буду сидеть экспертом на каком-то обсуждении в конце. Ну а уже в субботу я буду в Минске, о чём тоже будет пост вскоре.

#official #riscv #conference
🔥55👍17🍓61💩1
Продолжаем тему встреч с читателями -- и на этот раз пришло время приключений.

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

Четвёртую встречу мне очень хотелось провести в Минске. Во-первых, я там никогда не был. Во-вторых, именно оттуда приходило много запросов. Я наметил поездку на 15–16 марта. И тут началось.

1. Книжные магазины

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

2. Университет

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

Проректор оказался приятным человеком и очень хотел помочь, но на уровне ректората встречу запретили. Причина: университет не может пустить так много посторонних, даже если заранее собрать паспортные данные.

Отступление. В принципе, оформление пропусков в кампус -- несложная процедура, я это знаю как преподаватель МФТИ. Тем более, что схема была абсолютно win-win: суббота, занятий нет, аудитории пустые. Студенты БГУИР -- моя целевая аудитория, и им бы наверняка было интересно. Но логика "как бы чего не вышло" оказалась сильнее. Можно было сделать что-то интересное, но не сделаем ничего.

3. Книжная ярмарка

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

Что дальше?

На этом этапе я почувствовал себя в Москве времён так называемого ковида, когда в университет и в офис меня не пускали. Что я делал? Я проводил семинары в коворкингах.

Так что я попробую найти подходящий коворкинг и позвать всех туда в субботу, 15-го марта или в воскресенье 16-го. Где именно и во сколько -- напишу на этой неделе.

Если же и этот вариант не сработает, придётся отменять поездку. Надеюсь, что этого не случится.

#author_event
😱74👍21😁95🥴4🕊321🔥1👏1😭1
Наконец-то выложили один доклад на C++Russia прошлого года, который я хотел бы всем порекомендовать.

Увы, на конференции в прошлом году было очень много шлака, не имеющего даже отношения к C++. И тем ценнее увидеть очень серьёзный и интересный доклад, в целом мирового уровня. Тем более от столь молодого спикера.

Итак, встречаем:

Сергей Добычин — constexpr-аллокатор для контейнеров стандартной библиотеки

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

2:55 Начало. Transient выделения памяти при компиляции. Невозможность non-transient в C++
8:45 Подробный разбор предложения P0639 по CE аллокатору
11:30 Проблемы с размером буфера
18:16 Двухэтапное определения размера буфера во время компиляции
20:40 Постановка задачи: как сделать чтобы CE аллокатор сам определял размер буфера? Общий вид решения.
23:13 Интересные детали реализации
27:45 Передача инициализирующего значения через типы (разбор P2781)
31:20 Завершение: QR код на полное решение в C++20 и примеры
34:08 Вопросы

Интересно в этом докладе также то, что я немного помог в его создании. До конференции Сергей обратился ко мне вот с таким кодом и спросил баг ли это в компиляторе.

https://godbolt.org/z/EcKhhGfzr

Я немного подумал и мы с ним вместе доминимизировали это до вот такого кейса.

https://godbolt.org/z/69PEPojzo

Тут проблема стала очевидной и стало очевидным, что она и впрямь в компиляторе.

После этого я зафайлил эту проблему в GCC и она до сих пор висит там и ждёт своего героя.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115233

Но пока не дождалась.

#talks
🔥112👍23👀116🏆2❤‍🔥1👏1💩1🤡1
Продолжаем встречи с читателями. Если вы не знали, я могу не только приехать к вам в город но и (если концентрация читателей в компании велика) придти к вам в офис. И первыми кто меня позвали были ребята из VK. Приём был прекрасным, люди не просто заказали моих книг на всех, они ещё отпечатали глянцевые фотки меня для автографов на обратной стороне тем, кому книг не хватило. Получилось очень мило.

Встреча состояла из двух частей. Сначала общались вживую не под запись, а потом со мной записали подкаст. Изначально это планировалось как подкаст для сотрудников VK, но сейчас подкаст стал доступным по ссылке и конечно мне хочется поделиться им с моими читателями.

https://vk.com/audio-227738875_456239017_ed542bafbed1461fbe

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

P. S. Кстати встреча в Минске в субботу 15-го в 12 часов. Кажется это уже сегодня и я уже еду в Минск. Всех буду ждать ))

#author_event
🔥93👍75🍓4💯31🤯1💩1😍1
Провели встречу в Минске.

На встречу записалось 56 человек см. https://t.me/cpp_lects_rus/245

Пришло человек пятнадцать. Я прикреплю фотку в первом комментарии. Это худшая конверсия из записавшихся в пришедших по всем городам. Обычно что-то вроде 60-70%, а тут меньше трети.

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

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

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

На очереди Ростов, Нижний Новгород и Екатеринбург, следите за апдейтами. Кроме того меня приглашают выступить в "Школе 21" в Великом Новгороде, тоже внесу это в планы. Надеюсь там всё будет как в Питере и Новосибе. А не как в Минске ))

P. S. Завёл новый тег для встреч с читателями и информации по ним.

#author_event
😢10117😁16🔥8👍6😱31💩1🌚1
Выступил на Sysconf и на C++Russia этого года.

https://cppconf.ru/schedule/table/
https://sysconf.pro/schedule/table/

Выступление на C++Russia получилось потрясающим: у меня был забитый до отказа зал и я уже получил на него массу отличных отзывов. На Sysconf тоже неплохо. Теперь ждём пока видео станут публично доступны, я здесь сообщу.

Немного пост-конференционных соображений.

1. Хотелось бы всем рассказать о прекрасной инициативе, о которой я узнал от Михаила Лукина (но как я понимаю там много людей участвует): Friendly Journal of Software Systems

https://systems-journal.github.io

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

Статьи туда уже в принципе можно потихоньку готовить и подавать.

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

2. В своём докладе я приводил примеры в godbolt с модулями и целыми проектами и обещал кому-то дать ссылку на моём канале, чтобы быстро начать эксперименты.

Предлагаю к размышлению вот этот кейс: https://godbolt.org/z/zsKn5hjWG

Он несколько отличается от представленного на конференции. Я тут разметил пару интересных мест, чтобы обратить внимание на некоторые проблемы с достижимостью, которые не успел включить в доклад.

3. На Sysconf я выступил с неким lightning talk не под запись. Его текстовый материал пойдёт в ближайший пятничный зачил.

#conference
👍82🔥28192💩1🙏1
Пятница, вечер, время почитать стандарт. Увертюра в четырёх актах.

1. Рассмотрим следующий пример. Тут компилятор считает запятую разделителем для макроса, а не для шаблона.

https://godbolt.org/z/s7s453v1o

Что делать? Очевидно поставить скобки:

2. https://godbolt.org/z/86Wj5nh4Y

Стало лучше, но всё ещё можно сломать. Как сломать? С помощью фигурных скобок и фантазии:

3. https://godbolt.org/z/v3qnf519v

Как починить?

После некоторой игры с компилятором я нашёл решение работающее на обоих основных компиляторах (я верю вы его тоже легко найдёте).

4. https://godbolt.org/z/1919eKvnr

Предлагается обосновать по стандарту почему это работает.

#questions
🔥39👍9💩1
Небольшое развлечение с микроволновками на выходных.

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

Просим нейронку перевести это на английский с несколькими ограничениями:

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

2. На выходе это должна быть именно пословица, то есть нечто в свою очередь идиоматическое со всякими курочками, рыбками, которых трудно вытащить из пруда и прочими оленями.

3. Должен быть элемент технарского юмора в области компьютерных наук.

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

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

#llm
43😁34👍9🔥3🤔2
Всем привет. Небольшое, но важное объявление.

Yadro открывает регистрацию на летнюю программу Yadro Импульс. Среди направлений и C и C++ и даже немного компиляторы и тулчейны, всё как мы любим. Набирают сотни человек. Стажировка два месяца -- июль и август, неплохо оплачивается. Рассчитана, конечно, на студентов, там написаны ограничения на сайте.

Подробности и запись: https://edu.yadro.com/impulse

#official
🔥69🐳137🌭3👍2👎1😱1