Боремся с 16-летним легаси-кодом, или исправляем C и C++ front-end в PVS-Studio

В 2022 году статическому анализатору PVS-Studio для языков C и C++ исполняется 16 лет. Если бы анализатор был человеком, то он бы уже заканчивал школу. Это очень старый проект, и система типов в нем не потерпела кардинальных изменений практически с сам…

Do it yourself: JIT компиляция SQL в Tarantool

Привет, Хабр! Меня зовут Георгий Лебедев, я работаю в команде разработки ядра Tarantool. В 2021 году мы впервые участвовали в Google Summer of Code (GSoC): одним из предложенных студентам проектов была миграция SQL с VDBE на JIT-платформу — с неё и нач…

Как мы используем LLVM для ускорения формирования отчётов

Для бизнес-приложений очень важна возможность быстро сформировать нужный отчёт. Для этого, в частности, важно быстро получить результат запроса (часто – очень сложного запроса) к СУБД. Что не всегда просто, потому что с этой СУБД работают на чтение и з…

Кросс-компилиция с Clang – это просто

Разберемся с кросс-компиляцией при помощи Clang на пальцах, попутно посмотрим на CMake, не оставим без внимания Conan, соберем самый настоящий .deb пакет и конечно же — максимально контейнизируем и автоматизируем весь процесс. Посмотрим зачем нам тут C…

[Перевод] Осваиваем кросс-компиляцию с помощью Clang и LLVM

Каждый, кто когда-либо пробовал собрать программу на C/C++ через кросс-компиляцию знает, насколько болезненным может быть этот процесс. Главными причинами столь печального положения вещей являются недружелюбность систем сборки при конфигурации кросс-ко…

Написание компилятора на Haskell + LLVM

На работе я пишу почти исключительно на Python, с университетской скамьи остались некоторые знания C/C++, в одном pet-project использовал Haskell. С таким багажом знаний я взялся за написание компилятора на основе LLVM — зачем и что получилось я уже ра…