LINUX.ORG.RU

Избранные сообщения Jini

Записи докладов с C++Russia 2023

Форум — Development

В преддверии конференции C++Russia 2024 организаторы выложили на YouTube записи докладов с прошлогодней C++Russia 2023. Публикация прошлогодних докладов началась месяца три назад но по одному докладу в неделю, а пару дней назад вроде как выложили вообще все.

На данный момент на канале конференции доступны следующие видео (если к докладу прилагались слайды, то рядом приведена и ссылка на PDF-ку):

Евгений Григорчук — GPU Driven Rendering Pipeline, или Как пишется графика в современных видеоиграх, PDF

Юрий Грибов — Как правильно писать компараторы, PDF

Илья Казаков — Кастомизируем ASIO, PDF

Дмитрий Мельник — Безопасный компилятор: надежная оптимизация и улучшение защищенности кода, PDF

Эрнест Асанов — Модель асинхронности в C++: теория и практика

Антон Сысоев — Dynamic Libraries for Bare Metal, PDF

Илья Шишков — Что-то у меня тормозит: заглядываем внутрь С++ контейнеров, PDF

Тот самый стендап от Павла Филонова на C++ Russia 2023

Дмитрий Ермолов — Roren — С++ фреймворк для описания пайплайнов распределенных вычислений, PDF

Ростислав Михеев — Эффективное использование GPU на примере разработки игр, PDF

Олег Сенин — Sizecoding: взгляд изнутри

Максим Кита — Техники оптимизации производительности, PDF

Александр Еналдиев — C++ Experiments: The Battle Continues: Cpp2 vs Carbon, PDF

Иван Смирнов — YsonStruct: дешевая сериализация иерархических JSON-структур, PDF

Владимир Ситников — B-tree индексы в базах данных на примере SQLite и PostgreSQL

Артем Хорошев — Ускоряем синтез: от TensorRT до CUDA C++, PDF

Аяз Салихов — Имплементируем класс tuple в 100 строк кода, PDF

Ashot Vardanian — Advanced Linux Kernel Bypass Techniques in 2023

Егор Суворов — Санитайзеры и стандарт не спасут, PDF

Александр Ганюхин — Машина состояний: непридуманная история

Rainer Grimm — Concurrency Patterns, PDF

Денис Легезо — Злые фреймворки и генерируемый ими позиционно-независимый код, PDF

Елена Веселовская — Как перейти от ученичества к работе, PDF

Андрей Аксенов — Про алгоритмы в поисковых движках

Техническое интервью: Архитектурная секция

Сергей Ларин, Владислав Столяров — Как сделать фронтенд компилятора в домашних условиях, PDF

Антон Потапов, Антон Малахов — Учим Кукушку Летать, или ConcurrentHashMap with Seqlocks, PDF

Александр Фокин — Designing Robust APIs: C++ Code that’s Safe, Extensible, Efficient & Easy to Use, PDF

Дмитрий Стародубцев, Ольга Кузьмичева — Практическое применение dev-контейнеров, PDF

Степан Дятковский — Почти полноценный RTTI с контролируемым overhead, PDF

Иван Афанасьев — Loop unrolling в деталях, PDF

Александр Ляпунов — Максимально быстрый и максимально удобный С++ msgpack-кодек

Марсель Галимуллин — Back to Basics: Lock-free, PDF

Алексей Степанов, Евгений Зуев — Исходный код: скрытое знание и как его показать?, PDF

Павел Новиков — Про flat_map, PDF

Антон Ласточкин — Мониторим FSM во встраиваемом ПО, PDF

Александр Бычук — Производство ПО глазами разработчика и менеджера, PDF

Константин Владимиров — Семантические процессы в C++

Александр Кирсанов — nocc — распределенный компилятор для гигантских проектов на C++, PDF

Евгений Ерохин — Back Deep to Basics: Наследование и виртуальность в C++ (Часть 1), PDF

Евгений Опарин — Опыт использования Bazel

Семен Буденков — С Conan за кроссплатформенностью, PDF

Сергей Талантов — С++ и безопасность: правда ли все так плохо?, PDF

Александр Боргардт — Колоночное хранилище в памяти: void* и шаблоны

Петр Советов — Автоматизация программирования в СССР. Трансляторы (60–70-е годы), PDF

Александр Корнилов — Идея по улучшению многопоточного кода, PDF

Александр Кухаренко — Демосцена: в погоне за wow-фактором, PDF

Виктор Шампаров — Компилятор LCC и оптимизация слияния кода, PDF

Евгений Зощук — Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году, PDF

Михаил Лукин — Практика программирования тензорных ядер

Вадим Винник — Элементы функционального программирования в языке C++, PDF

Антон Соснин — С++ в мемах, PDF

Антон Полухин — C++ трюки из userver

Нужны ли профсоюзы в IT?

Тренды от HR

Интервью с Максимом Бабенко

PS. Практически все доклады перечислены в том порядке, в котором их мне показывает YouTube, никакой сортировки по какому-либо принципу здесь нет.

PPS. Сам ничего из этого не смотрел, никаких рекомендаций на тему «интересно/не интересно» дать не могу.

 

eao197
()

refinement type, формальная верификация в нефункцональных языках?

Форум — Development

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

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

  uint32_t a[100];

  for (size_t i = 0; i < 100; i++)
  {
    if ( scanf("%" SCNu32 "\n", &a[i]) != 1)
    {
      exit(-1);
    }
  }

Вот после этого for цикла (если не произошло exit (-1)) в массиве a[100] образовались какие-то там данные, нам про них ничего в точности неизвестно, там пользователь что попало мог ввести.

Скажем, если мы после этого сделаем такое:

  for (size_t i = 0; i < 100; i++)
  {
    printf("%" PRIu32 "\n", 100500 / a[i]);
  }
То у нас нет гарантии что этот код завершится корректно т.к. в этом a[i] может быть 0 и будет SIGFPE.

А если например перед этим сделать нечто такое

  for (size_t i = 0; i < 100; i++)
  {
    if(a[i] == 0)
    {
      a[i] = 1;
    }
  }
То тогда норм. Вот я хочу, чтобы код в котором может возникнуть ошибка SIGFPE из-за поступления внешних непроверенных данных — вообще не компилировался.

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

Ну и это еще можно использовать для оптимизации, скажем если мы отсортировали некий массив, то потом если мы пытаемся его отсортировать второй раз подряд, то во-первых можно вывести предупреждение от компилятора «этот массив и так сортирован, нечего его сортировать» а во-вторых можно просто вызов сортировки выкинуть т.к. он ничего не делает. Ну и кроме того, есть алгоритмы которым обязательно сортированные данные нужны, например это алгоритм двоичного поиска. Можно на каком-то языке описать, что алгоритм двоичного поиска, если ему на вход подать сортированный массив, он там сможет найти некий элемент если он там точно есть и не найти если его нет. А если ему несортированный массив подать (т.е. для которого нет свойства что a[n] <= a[n+1] для всех n от 0 до размермассива) то тогда это уже неверно, т.е. должна быть ошибка компиляции, если мы не проверенные на сортированность данные пускаем на вход к двоичному поиску

Вообще, есть такой GNU экстеншен __builtin_unreachable() и им можно например такую ерунду вытворять https://godbolt.org/z/dN6ozS

#define ALWAYS_FALSE(a) if(a) __builtin_unreachable()
#define ALWAYS_TRUE(a) ALWAYS_FALSE(!(a))

unsigned div_eq(unsigned a, unsigned b)
{
  ALWAYS_TRUE(a == b);
  ALWAYS_TRUE(a != 0);
  return a/b;
}

unsigned div(unsigned a, unsigned b)
{
  return a/b;
}

Ну и тут вариант div_eq оптимизируется до return 1; (шланг неосиливает) - но это все костыли. И язык аннотаций из Frama-C это тоже костыли - из них такую оптимзацию не сделать, это внешний костыль для проверки контрактов.

Почему нет нормального компилируемого в натив языка без жирного рантайма с GC, чтоб там можно было вот так специфицировать поведение функций, допустимые входные параметры, кванторы-шманторы там, чтоб это все проверялось и оптимизировалось на основе спецификации-контрактов? И чтоб с суперкомпиляцией!

 , refinement type, , ,

SZT
()

А есть нормальная и адекватная литература по структурам данных и алгоритмам

Форум — Development

Собственно потребовалось ручками реализовывать разные деревья, решил книжки посмотреть, а там непотребство пишут - даже на простых вещах обсираются по полной, как пример путают Tree Sort с поиском по BST дереву, хотя Tree Sort в общем случае вполне себе работает с данными, которые дублируются, т.к. работает с частично-упорядоченными бинарными деревьями, а не с BST деревьями, которые по определению полностью упорядоченные.

 , ,

peregrine
()

Композитор для Wayland на Common Lisp

Форум — Development

Сабж пока только работает на SBCL:

https://github.com/malcolmstill/ulubis

 , , ,

Oxdeadbeef
()

ИИ в стратегиях реального времени.

Форум — Development

Что учить что бы написать интеллект для ботов? Что то типа Red Alert 2 .

knotri
()