C++ and other lectures @cpp_lects_rus Channel on Telegram

C++ and other lectures

@cpp_lects_rus


Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir

C++ и другие лекции (Russian)

Добро пожаловать на учебный канал в Телеграм - C++ и другие лекции! Здесь вы найдете анонсы и ссылки на лекции и стримы, связанные с программированием на C++ и другими языками. Этот канал предназначен для тех, кто хочет углубить свои знания в области программирования и развиваться в этом направлении. Если вы интересуетесь С++, у вас есть возможность изучать его вместе с опытными преподавателями, которые делятся своими знаниями и опытом. Канал также предлагает ссылки на стримы, где вы сможете наблюдать за процессом обучения в реальном времени. Если у вас есть вопросы или предложения, не стесняйтесь обращаться к автору канала по имени @Tilir. Он всегда готов помочь и ответить на ваши запросы. Присоединяйтесь к нам, чтобы расширить свои знания и навыки в программировании на C++ и не только!

C++ and other lectures

31 Dec, 09:01


Пост итогов 2024-го года.

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

Главный итог для меня -- вышла моя книга по компиляторам и я выложил сопутствующий ей видео-курс.
Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667
Курс: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1

Я также записал до конца практический курс по языку C: https://www.youtube.com/playlist?list=PL3BR09unfgchRxdDws74aY4mlSk9eYGEs

Особое спасибо Юлию Тарасову, Владиславу Белову и Марку Гончарову без которых ничего бы не было.

Я также опубликовал ряд эссе. Хочется подсветить два:
1. Про поведение на моём канале https://telegra.ph/Styortye-kommentarii-moih-zabanennyh-podpischikov-04-13
2. Про тезис и тест Тьюринга https://telegra.ph/Tezis-Tyuringa-09-06

Для меня этот год снова был годом активного участия в конференциях. Пожалуй даже с элементами оверкоммитмента. Самые важные:
Yadro meetup про цену абстракции: https://youtu.be/cK4cMdx9QeQ
МТС про RISC-V: https://youtu.be/qoNjayusCX4
C++ Russia про разрешение имён: https://youtu.be/kJ6RvI9A1bU

На некоторых конференциях я выступал не один и вообще начал выводить в свет своих учеников.
Сбер Гига Конф про LLVM с Настей Черниковой: https://youtu.be/5HKSeLSIya4
RISC-V meetup про SLEEF с Марком Гончаровым: https://youtu.be/9hG9pFS-O7w
Лекция про вычислимость с Тимуром Голубовичем: https://youtu.be/skhIRK3cUBM

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

Также я со своей командой заопенсорсил генератор тестов для системной верификации llvm-snippy и ходил всюду его докладывал. И продолжу делать это.
Heisenbug про snippy: https://youtu.be/ceAK85rAkfY&t=146s
Zero cost conf про snippy: https://youtu.be/A8FSh8eFj1w

Мой телеграм-канал вырос до более чем 6.5к человек и мой youtube-канал до более чем 24к. Фактически это делает мой youtube-канал более популярным чем большинство крупных русскоязычных конференций (С++ Russia 15к, Heizenbug 19.5к, Истовый Инженер 11.5к, True Tech 2.7к, SaluteTech 2.2к). Хорошо, что есть YfD с его 67к, так что мне ещё есть куда расти. Это ставит передо мной интересную диллему: а надо ли мне вообще куда-то ездить? Может наоборот пора звать к себе гостей? Пока что я решил, что поезжу и уже записался на три конференции, посмотрим как пойдёт.

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

Ещё я хочу поездить в этом году по городам России и дружественных безвизовых государств, провести встречи с читателями. Как минимум Москва, Питер, Нижний и Новосибирск, с высокой вероятностью Екатеринбург и Минск, в идеале -- в каждый город собравший 10+ лайков под вот этим постом (и под предшествующим ему): https://t.me/cpp_lects_rus/197

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

Всех с наступающим Новым Годом!

#official #happynewyear

C++ and other lectures

28 Dec, 06:01


Пришло время для особой рождественской лекции.

Эта лекция продолжает серию посвящённую логике, языкам и автоматам и является в этой серии третьей (вторая была записана в 2021-м году). На этот раз она посвящена клеточным автоматам.

Я её готовил не один, с материалом мне помогал мой студент Тимур, который также выступил моим со-докладчиком. Его, точно также как Марка и Настю, вы ещё тут увидите.

https://youtu.be/skhIRK3cUBM

https://rutube.ru/video/f89fa9c9fc11a3cd4c66aa387e767f41

Новогодний пост подведения итогов будет 31-го.

#computability

C++ and other lectures

25 Dec, 09:39


Очередной гордости за учеников пост и немного ворчания.

Анастасия Черникова, которую многие из вас уже видели на моём канале, когда мы с ней выступали на конференции Сбера, была принята в апстрим LLVM с её патчем на добавление RISC-V бэкенда для утилиты llvm-exegesis.

Ссылка на патч:

https://github.com/llvm/llvm-project/pull/89047

Доклад с Настей (увы про экзегезис там немного, но есть):

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

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

И вот я бы очень хотел к этому посту прикрепить видео нашего с Настей выступления на конференции Стачка в Питере, где мы с ней этот самый llvm-exegesis докладывали.

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

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

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

Давайте лучше сконцентрируемся на позитиве и поздравим Настю с прекрасным достижением, а лучший и более расширенный доклад про llvm-exegesis мы имеем высокие шансы услышать на более серьёзной конференции https://sysconf.pro куда Настя уже подала заявку. На этот раз выступать она будет уже одна и от себя и очень надеюсь, что её там утвердят.

#conference

C++ and other lectures

21 Dec, 07:27


Меня очень редко зовут на интервью (и почему-то обычно перед Новым Годом).

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

https://youtu.be/u3uuGrptpBs

В этом интервью я:

* Ностальгирую по токсичным форумам нулевых
* Защищаю Windows
* Критикую free software
* Высказываюсь решительно за IDE
* Положительно отзываюсь о JavaScript и 1C разработке
* Объясняю почему системное программирование неполноценно
* Даю интервьюеру советы по использованию email
* Рекомендую Алгол-68 как первый язык программирования

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

#interview

C++ and other lectures

21 Dec, 06:01


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

https://youtu.be/L2aPTxzLFUQ

https://rutube.ru/video/f4d9c2056c7daf05cff5a14ce4cc628a/

Я знал, что вы соскучились по открытой и расширяемой, ведь так? Я думаю введу для неё специальный тег riscv.

#toolchain #conference #riscv

C++ and other lectures

20 Dec, 21:21


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

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

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

https://rutube.ru/video/7195e749cee30a138e3950d871251ea9/

#conference #riscv

C++ and other lectures

14 Dec, 06:01


Выложил десятую и последнюю в этом курсе лекцию по оптимизирующим компиляторам.

Пришла пора разрушить то, что мы так тщательно строили и чем так долго пользовались. Это будет не так просто и процесс будет иметь некоторые нюансы. И, конечно же, после разрушения SSA представления, нам всё ещё будет чем заняться. Например распределением регистров, рематериализацией значений, планированием инструкций и разрывание антизависимостей. Мы увидим как отлично зарекомендовавший себя в выборе инструкций подход через квадратичное булево программирование поможет нам с иррегулярными архитектурами. В конце нас ждут последние задания и последняя литература.

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

И я надеюсь вам понравилось.

https://youtu.be/RK8HfK6giL8

https://rutube.ru/video/7396f97feffd6f971570fe1bc38de413/

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

P. S. У меня также предусмотрены пара интересных конкурсов с призами в виде книги (издательство обещало оплатить доставку по РФ). Скоро начнём.

P. P. S. Далее на канале нас ждёт прикладная лекция по цикловым и межпроцедурным оптимизациям в RISC-V, прочитанная мной в Сириусе (Сочи) и, бонусная рождественская лекция с ещё одним интересным содокладчиком. Не отключайтесь.

#compilers

C++ and other lectures

13 Dec, 13:16


В продолжение https://t.me/cpp_lects_rus/199

Новости книги.

Наконец-то чистовой тираж был отпечатан и разъехался по магазинам, ищите во всех книжных.

Читатели, купившие книгу первого (бракованного) тиража, могут:

1. Либо сделать бесплатную замену в любом магазине.
2. Либо оставить себе книгу из первого тиража и для выдачи бесплатной электронной версии прислать на адрес [email protected] почту, к которой привязан аккаунт литрес, а также подтверждение покупки книги (чек/скрин + фото книги). В течение недели редакция соберёт письма, после запросит промокоды и, когда их сформируют, вышлет на указанные адреса

P. S. и завтра с утра последняя лекция курса будет на youtube.

#official

C++ and other lectures

07 Dec, 06:01


Выложил девятую (предпоследнюю лекцию) в курсе.

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

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

https://rutube.ru/video/000c34fb9c7107f443b0caaa7a29275b

Смотреть стоит хотя бы ради упомянутой конструкции Пробстинга. Очень красивая штука. Ну и тем, кого постоянно волновало что это за новый Global ISel в LLVM и откуда он растёт, тоже ИМХО будет полезно.

#compilers

C++ and other lectures

03 Dec, 20:45


Немного заслуженных поздравлений.

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

И я к таким заданиям обычно добавляю: поскольку очевидно кто-то не прав, вы получите высшую оценку за экзамен автоматом, т.е. безо всякого экзамена, если вы сделаете коммит в clang или gcc (смотря кто не прав) и его примут.

Много лет этой опцией никому не удавалось воспользовался. Люди пытались, но пройти ревью и влиться не могли. Но в этом году у нас есть первый победитель.

https://github.com/llvm/llvm-project/pull/118003

Мой студент Владислав Белов @sick_hoof со второго раза влил фикс в кланг. Первый раз его влили, но там в расширенных тестах упал assert и его откатили. Тот assert оказался ошибочным и в этом патче был торжественно удалён.

Ниже некоторые тесты, которые Владислав написал на свой коммит.

Вот тут он ожидает ошибку:
  template<typename T> struct A {
typedef int M;
struct B {
typedef void M;
struct C;
struct D;
};
};

template<typename T> struct A<T>::B::D : A<T*> {
M m;
// expected-error@-1 {{field has incomplete type 'M' (aka 'void'}}
};


А вот тут он ошибки не ожидает, это должно работать:
  template<typename T> struct G {
struct B {
typedef int M;
struct C {
typedef void M;
struct D;
};
};
};

template<typename T> struct G<T>::B::C::D : B {
M m;
};


Я полагаю, достойные студенты растут. Боевые. Самому иногда страшно становится.

#cpp_postgraduate

C++ and other lectures

30 Nov, 06:00


Выложил лекцию по межпроцедурным оптимизациям.

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

https://youtu.be/LzIvDMvZx6w

https://rutube.ru/video/26054b88c9ae1760cfd3244a369ae7ae

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

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

#compilers

C++ and other lectures

29 Nov, 22:36


Поздний пятничный вечер и пиво -- хороший фон для нашего с Полухиным и Гусаровым стендапа, записанного на C++ митапе Yadro.

https://youtu.be/LcnZKLmOUVo

Мне кажется, дискуссия была неплоха. Одна из лучших шуток это 43:55 -- моя подводка, а потом идеальная добивка от Антона. Мы не репетировали, честно.

Очередная лекция по компиляторам выйдет утром.

#conference

C++ and other lectures

26 Nov, 19:30


Продолжаю выводить в свет своих учеников. На этот раз предлагаю всеобщему вниманию наше совместное выступление с Марком Гончаровым @EverRester на RISC-V meetup в Нижнем Новгороде.

https://www.youtube.com/watch?v=9hG9pFS-O7w

В первой части я рассказываю про RISC-V и масштабируемую векторизацию, а также про цикловые оптимизации в нашем компиляторе. Это довольно обычный контент. Во второй части становится интереснее: Марк рассказывает про библиотеку SLEEF и про векторизацию циклов с математическими функциями внутри.

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

#conference #riscv

C++ and other lectures

23 Nov, 06:00


Выложил лекцию по цикловым оптимизациям

Здесь мы остановимся на основных оптимизациях циклов и попробуем их уложить в некую систему. Основными осями этой системы будут обработка индуктивностей и обработка инвариантов. Мы разберём LSR, раскрутку циклов, их пилинг и многое другое.

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

https://rutube.ru/video/339ee2a715b0bceabf22cecd3db6f9fb/

В лекции есть небольшая деталь для гурманов.

#compilers

C++ and other lectures

18 Nov, 06:00


Позвали недолго поговорить во время трансляции четвертьфинала ICPC. Основная тематика разговора: чего будет ждать индустрия от тех ребят, которые сейчас увлекаются спортивным программированием, когда они вырастут и постучат в её (индустрии) двери.

https://www.youtube.com/watch?v=dfl9IYa9gPU&t=10367s

Сам я к спортивному программированию отношусь настороженно. По сути это такие соревнования по экстремально плохому коду. В процессе трансляции там показывают экраны участников, местами это грустно. Впрочем, ребят можно понять. У них нечеловеческие условия -- 5 часов на 13 задач и каждая из этих задач довольно сложна.

Но я постарался говорить мягко и выделить в основном позитивные моменты, которых там тоже много.

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

#conference #interview

C++ and other lectures

16 Nov, 06:01


Выложил шестую лекцию курса по компиляторам.

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

https://youtu.be/V6hWKXvUQvo

https://rutube.ru/video/74991603431c25f8d08631b6a5c8e2bf/

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

#compilers

C++ and other lectures

09 Nov, 06:02


Выложил пятую лекцию курса по компиляторам.

Настало время познакомиться с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум основным идеям: продвижению информации вниз по графу потока управления (constant propagation, copy propagation, value range propagation) и удалению избыточности (global value numbering, partial redundancy elimination).

https://youtu.be/6yo4ofdLRfU

https://rutube.ru/video/62a76dc317939e381df018f6a61be6e0/

Я понимаю, что сложно. Держитесь, впереди самое интересное.

#compilers

C++ and other lectures

02 Nov, 06:01


Выложил четвёртую лекцию курса по компиляторам.

На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями как доминаторы, фронт доминирования и дерево доминаторов.

https://youtu.be/diSnBssZ1dQ

https://rutube.ru/video/00ea76b6e9c1406fdc7814ab16ce1c8d/

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

#compilers

C++ and other lectures

01 Nov, 19:22


Всем привет. Очередная лекция по компиляторам завтра в 9 утра, а сегодня вечер пятницы и небольшой брейн-тизер по C++.

template<typename T = void>
int foo(int x) { return 1; }

int foo(...) { return 2; }

template<typename T = void>
int bar() { return 1; }

int bar(...) { return 2; }

int main() {
std::cout << foo(2) << std::endl; // ?
std::cout << bar() << std::endl; // ???
}


https://godbolt.org/z/qfsEvxh4E

Громадное спасибо за него Владиславу Белову https://t.me/you_are_RTshnik наткнувшемуся на эту красоту во время выполнения одного из моих заданий.

Задача довольно обычная — объяснить в чём разница с детальными ссылками на C++23. Призов не будет, кроме зрительских симпатий.

P. S. книгу обещают перепечатать к 15 ноября.

UPD: Уважаемый подписчик Артём Колпаков @ddvamp развил и усилил пример до https://godbolt.org/z/ab31ah199

#questions #cpp_postgraduate

C++ and other lectures

26 Oct, 06:00


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

https://youtu.be/fLUnJGwEmYY

https://rutube.ru/video/6753137f2fe26ea94101956c5ac2f4e4/

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

#compilers

C++ and other lectures

21 Oct, 16:13


Не так давно мои МФТИ-шные контесты по C для первого курса (которые больше недоступны через ejudge) были добавлены на Яндекс контест, о чём я писал вот тут: https://t.me/cpp_lects_rus/187

Сейчас случилось ещё более радостное событие: задачи были добавлены на stepik.

https://stepik.org/209865

Громадное спасибо Артёму Ершову https://t.me/iam28th за эту замечательную работу!

#c_graduate

C++ and other lectures

19 Oct, 06:01


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

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

https://youtu.be/0DQOmHfPErA

https://rutube.ru/video/8efdba83efac337400af15a8c81e7dbb/

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

#compilers

C++ and other lectures

15 Oct, 17:01


Загадка недостающих страниц (конкурс с призом)

Участники процесса: редактор Алиса и наборщик Боб (имена не настоящие, взяты сами понимаете откуда).

На этапе предзаказа Алиса посылает Бобу некий драфт, который Боб адаптирует для листалки на сайте и сохраняет у себя.

Далее перед печатью в типографии Алиса посылает Бобу финальный печатный файл.

Но в ночь перед печатью, Алиса замечает на четырёх страницах, а именно на страницах 22, 167, 169 и 173 некую проблему, которая не очевидна на этих страницах, но после печати в типографии станет очевидной и неприятной. Поэтому она пишет Бобу просьбу заменить эти четыре страницы на те, которые она прислала.

Боб заменяет, но случайно делает это не в финальном файле, а в драфте и отправляет на печать драфт с заменёнными четырьмя страницами.

Чему нас учит эта история? Не надо коммитить без CI в ночь перед релизом.

В общем в истории с моей книгой все события -- как будто бы из нашей жизни.

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

#questions

C++ and other lectures

14 Oct, 17:32


Всем привет.

Как многие заметили в предзаказе книга пришла странная. Она фактически отпечатана с раннего драфта и там есть уже ставшая знаменитой страница 22, оставшаяся от той книги, какой она должна была быть. Также проблемы есть со страницами 167, 169 и 173.

Издательство отзывает бракованный тираж и останавливает продажи. Всем кто уже купил по предзаказу будет некая компенсация, например в виде бесплатной электронной копии. Ну и кроме того, если смотреть на вещи позитивно, у вас остаётся уникальный авторский экземпляр с авторской пунктуацией. При этом по смыслу книга вполне полноценная. Там есть все смысловые блоки, только не закончена корректура.

Подробности будут позже.

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

#official

C++ and other lectures

12 Oct, 06:01


Итак, книга приехала из типографии чуть раньше, чем должна была.

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

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

https://youtu.be/shvOI7SQ3q4

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

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

#toolchain #compilers

C++ and other lectures

07 Oct, 14:51


Всем привет. Типография поставила дату 22.10, соответственно выкладку курса начну в субботу 19-го.

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

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

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

#official

C++ and other lectures

25 Sep, 22:06


Всем привет. 28 сентября в субботу выступаю на IT-конференции Стачка в СПб.

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

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

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

#conference

C++ and other lectures

13 Sep, 19:20


Пятница, вечер, самое время для свежепридуманного этюда по C++. Придумал утром, сегодня опробовал на коллегах и остался доволен.

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

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

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

#questions #cpp_postgraduate

C++ and other lectures

07 Sep, 08:34


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

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

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

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

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

#computability #conference #publications

C++ and other lectures

27 Aug, 20:01


Приближается сентябрь, начало учебного года.

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

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

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

https://discord.gg/w73eVVraKg

#official

C++ and other lectures

22 Aug, 16:28


Настало время этого анонса.

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

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

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

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

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

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

#publications

C++ and other lectures

11 Aug, 15:06


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

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

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

#conference #talks

C++ and other lectures

09 Aug, 18:59


Продолжаем тему 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

C++ and other lectures

08 Aug, 09:25


Выступил с ещё одним рассказом про генератор 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