Date | Title | Description |
03.11.2024 | Fedora Linux 41: A Leap Forward in Open Source Innovation | On October 29, 2024, the Fedora Project unveiled Fedora Linux 41, a significant upgrade that showcases the evolution of open-source software. This release is not just a collection of updates; it’s a bold step into the future of Linux distri... |
31.10.2024 | The Evolution of WebAssembly: Unleashing New Potentials in Browser Computing | WebAssembly (Wasm) is not just a buzzword; it’s a revolution in how we think about web applications. Imagine a world where web apps run as fast as native applications. This is the promise of WebAssembly. As we dive into its capabilities, we... |
30.10.2024 | Состоялся релиз Fedora Linux 41 | 29 октября 2024 года разработчики проекта Fedora выпустили стабильную сборку проекта Fedora Linux 41 с Linux 6.11, LLVM 19, LXQt 2.0, Python 3.13, DNF5, RPM 4.20, PyTorch 2.4, AMD ROCm 6.2, GCC 14, GNU Binutils 2.42, GNU C Library 2.40, GDB... |
30.10.2024 | Релиз Wasmer 5.0 — открытого инструментария для создания приложений на базе WebAssembly | В конце октября 2024 года состоялся релиз проекта Wasmer 5.0. Это открытый инструментарий для создания приложений на базе WebAssembly, который можно использовать для создания универсальных приложений, способных выполняться в разных операцио... |
29.10.2024 | The Art of Finding Errors: A Deep Dive into Static Code Analysis | In the world of software development, errors are like hidden landmines. They lurk beneath the surface, waiting to explode at the worst possible moment. Static code analysis is the flashlight that illuminates these dangers. It helps develope... |
29.10.2024 | Использование статических анализаторов кода при разработке безопасного ПО | Как часто анализировать проект? Сколько анализаторов использовать? Как размечать полученные предупреждения? Отвечаем на эти и другие вопросы, разбираясь в подробностях свежего ГОСТ Р 71207-2024, посвящённого статическому анализу.
В 2016 год... |
23.10.2024 | Разработчики из проекта AlmaLinux представили дистрибутив Kitten 10 на пакетной базе CentOS Stream 10 | Разработчики из проекта AlmaLinux представили первый релиз дистрибутива Kitten 10. Это проект на пакетной базе CentOS Stream 10, используемой для разработки будущего значительного выпуска Red Hat Enterprise Linux 10. Kitten 10 преподносится... |
19.10.2024 | Rust 1.82.0: A New Dawn for Developers | The world of programming is ever-evolving. In this landscape, Rust stands out like a lighthouse guiding developers through the fog. The recent release of Rust 1.82.0 brings with it a treasure trove of features and improvements. This update ... |
18.10.2024 | Инженер Red Hat Никита Попов стал ведущим мейнтейнером проекта LLVM | Сообщество разработчиков единогласно одобрило и подтвердило назначение инженера Red Hat Никиты Попова официальным ведущим мейнтейнером проекта компилятора LLVM с открытым исходным кодом.
Разработчик Аарон Баллман изложил суть ситуации о наз... |
18.10.2024 | Rust 1.82.0: cargo info, AArch64 для macOS в tier1, use, небезопасные указатели и другое | Команда Rust рада сообщить о новой версии языка — 1.82.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то... |
13.10.2024 | Язык программирования Julia 1.11: новый релиз и много возможностей. Что добавили разработчики и что изменилось? | Источник.
Выпущена новая версия языка программирования Julia 1.11, который сочетает высокую производительность с гибкостью динамической типизации, а также предлагает встроенные средства для параллельного программирования. Синтаксис языка сх... |
09.10.2024 | Вычисления на RISC-V: исследуем производительность OpenCL на CPU и совместимых GPU | Привет! Меня зовут Михаил Козлов, я инженер-стажер в группе разработки математических библиотек в YADRO. Эта сфера активно развивается на RISC-V: известные математические библиотеки, такие как OpenBLAS, Eigen и многие другие, портируют и оп... |
08.10.2024 | Такие разные «плюсы»: моя карьера разработчика C++ в «Коде безопасности», Яндексе и Huawei | Хабр, привет! Меня зовут Никита, я софтвер-инженер в Huawei. Мой путь в IT был не совсем обычным — я осваивал алгоритмы раньше языка, откатывался почти к старту на каждом месте работы, а однажды даже занял второе место в хакатоне для «питон... |
08.10.2024 | Релиз Python 3.13 | 7 октября 2024 года состоялся релиз стабильной версии языка программирования Python 3.13 с экспериментальным JIT-компилятором, улучшенным интерактивным интерпретатором на основе PyPy и экспериментальным режимом сборки free-threaded build mo... |
30.09.2024 | Google’s NotebookLM: A New Era of Video Analysis and Memory Safety | In the digital age, information flows like a river. It’s vast, overwhelming, and often chaotic. Google’s NotebookLM aims to tame this torrent. Launched last year, this AI-powered tool is now evolving. It’s not just about text anymore; it’s ... |
30.09.2024 | Как устранить первопричину уязвимостей безопасности памяти | Уязвимости безопасности памяти остаются серьёзной угрозой для защиты ПО. Мы, работники Google, считаем, что путь к крупномасштабному устранению этого класса уязвимостей и к защищённому ПО заключается в Safe Coding — подходе secure-by-design... |
29.09.2024 | The Winamp Saga: Open Source, Licensing Woes, and a Legacy Reborn | In late September 2024, the digital world was rocked by revelations surrounding Winamp, the iconic media player that has survived the test of time. The Llama Group, the current steward of Winamp, opened its source code to the public, but no... |
28.09.2024 | GNUstep: A Journey Through Time in Software Development | In the ever-evolving landscape of technology, some projects stand out like ancient ruins, whispering tales of innovation and ambition. One such project is GNUstep, a free implementation of the Cocoa framework. It’s a relic from the past, ye... |
28.09.2024 | The Evolution of GNUstep: A Journey Through Time and Code | In the ever-evolving landscape of technology, some projects stand out like ancient trees in a forest of fleeting trends. GNUstep is one such project. It is a testament to the power of open-source software and the relentless spirit of develo... |
27.09.2024 | std::array в С++ не медленнее массива в С | Или почему не нужно бояться того, что удобно работает.
Стойте! Уберите руки от клавиатуры, дайте человеку сказать! У этой статьи есть обоснованные причины и благая цель! В прошлой моей статье о массивах (которую необязательно читать для пон... |
27.09.2024 | GNUstep: разрывая все шаблоны | В удивительном мире ИТ существуют проекты, узнав о которых можно сильно поменять свои взгляды на жизнь, реальность и саму разработку. Об одном из таких проектов и будет наш рассказ.
Внимание! Начинается процесс форматирования мозга!О чем ре... |
17.09.2024 | Релиз FreeBSD 13.4 | 17 сентября 2024 года вышла новая минорная версия FreeBSD 13.4. Пятый выпуск стабильной ветки FreeBSD 13.х доступен для скачивания для всех основных архитектур (amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64... |
20.08.2024 | Как подружить PyTorch и видеокарты AMD с помощью pytorch_dlprim | Когда начинаешь изучать или использовать машинное обучение, то думаешь, как приспособить те устройства, которые есть в наличии, чтобы снизить свои траты на вход. И, в частности, обладатели довольно мощных старых карт AMD (типа AMD Fury), на... |
16.08.2024 | Cisco представила выпуск свободного антивирусного инструментария ClamAV 1.4.0 | 15 августа 2024 года Cisco представила выпуск свободного антивирусного инструментария ClamAV 1.4.0. Предыдущая стабильная версия проекта вышла в феврале этого года.
Проект ClamAV перешёл в управление Cisco в 2013 году после покупки компании... |
27.07.2024 | The Rise of Tiny11 on iPhone: A New Era of Emulation | In a world where technology evolves at lightning speed, the recent news of Tiny11 running on the iPhone 15 Pro through the UTM SE emulator is a game-changer. This development, shared by NTDEV, showcases the potential of lightweight operatin... |
27.07.2024 | The Double-Edged Sword of AI in Software Development | Artificial Intelligence (AI) is a buzzword that has permeated every industry, from healthcare to finance. In software development, AI tools promise to revolutionize the way programmers write code. However, the reality is often a mixed bag. ... |
23.07.2024 | Бинарные уязвимости и способы борьбы с ними | Статья про бинарные уязвимости была написана на основе лекций на ту же тематику, подготовленных мной для младших специалистов нашего отдела, которым надо было быстро разобраться в видах бинарных уязвимостей. Она предназначена для начинающих... |
21.07.2024 | Почему LLVMpipe ORCJIT важен для RISC-V? | 16 июля официальный репозиторий mesa объединил MR о RISC-V, llvmpipe: add a new JIT engine based on LLVM ORCJIT, also add RISC-V support (updated)
Это радует всех пользователей RISC-V. Мы ждали патча больше двух лет, и он наконец-то вышел!
... |
18.07.2024 | И целых 20 ядер мало | Если вы посмотрите на общую раздутость современного софта, загружаемые 100 гигабайтные игры, ежегодную Nvidia X090 дающую +20% год от года, и 20-ядерные процессоры, то со стороны может показаться, что оптимизация производительности неважно ... |
15.07.2024 | Побеждаем компилятор в скорости при помощи ассемблера | В наше время все знают, что писать ассемблерный код — занятие для дураков. Компиляторы — это результат буквально человеко-веков разработки, и они понимают процессор гораздо лучше, чем вы.
Тем не менее, иногда до нас доносятся слухи.
Написан... |
09.07.2024 | UB или не UB – вот в чём вопрос: как gcc и clang обрабатывают статически известное неопределённое поведение | Недавно у нас в команде зашла дискуссия о неопределённом поведении (UB) в C. Напомню для тех, кто не знает: если мы пишем такой код, эффект от выполнения которого (и события в процессе его выполнения) строго не определён в спецификации язык... |
07.07.2024 | Компиляторные оптимизации сложны, так как компиляторы забывчивы | Как именно вы спроектировали бы оптимизирующий компилятор? Точнее, как именно вы спроектировали и реализовали бы конкретные оптимизации? Попытка решить эту задачу за один присест — дело ошеломительно сложное и, пожалуй, даже невозможное, та... |
05.07.2024 | Как подружить DynamoRIO и LibFuzzer | Введение
Приветствую всех обитателей Хабра и случайных гостей!
Этой статьёй я хотел бы начать цикл заметок, посвящённых моей научной работе в вузе, связанной с фаззинг-тестированием. Всего на данный момент я работаю над темой 2 семестра.
За... |
02.07.2024 | Zig — что это за язык программирования и для чего он создан? | Согласно результатам последнего исследования Stack Overflow, разработчикам на языке программирования Zig платят больше, чем остальным. Данные надежны: в опросе приняли участие почти 90 тысяч IT-специалистов из 185 стран. То есть выборка впо... |
19.06.2024 | Как бороться с ReDoS | Проверка кода (Code Scanning) автоматически обнаруживает ReDoS-уязвимости, но исправить их бывает не всегда просто. В этой статье описана 4-х этапная стратегия исправления багов ReDoS.
Это правда, что некоторые ReDoS-уязвимости могут быть о... |
17.06.2024 | С++ вам не нянька! Делайте, что хотите, но виноваты будете сами | Поговорили о перспективах С++, его особенностях и востребованности на рынке с Андреем Никитиным, ведущим инженером-разработчиком направления системного программирования Нижегородского подразделения компании «Криптонит».
С++ уже более сорока... |
11.06.2024 | Сколько UB в моём компиляторе? | У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком-то "моём" компиляторе. Если точнее, то о наборе к... |
07.06.2024 | Коротко о «внезапном» релизе Zig версии 0.13.0 | Резкий и дерзкий релиз версии 0.13.0. Очень удивил своей внезапностью. Нововведений немного, потому коротко. Но есть заметные изменения. О них чуть детальнее. Критически релиз связан с выходом LLVM версии 18. Эндрю Келли хотел скорее выпуст... |
04.06.2024 | Укрощаем суммы с плавающей запятой | Допустим, у нас есть массив чисел с плавающей запятой, и мы хотим их суммировать. Можно наивно подумать, что их достаточно просто сложить, например, на Rust:
fn naive_sum(arr: &[f32]) -> f32 { let mut out = 0.0; for x in arr { out +=... |
29.05.2024 | Какие ошибки есть в коде LLVM? | LLVM — open-source проект с огромной кодовой базой. Лучший из лучших, если говорить о качестве кода, учитывая его размеры и открытость. Ведь кому, как не разработчикам инструментов для компиляторов, лучше знать о возможностях языка и правил... |
28.05.2024 | Апдейт, ещё апдейт: вышел Red Hat Enterprise Linux 8.10. Что нового? | Совсем недавно мы публиковали статью о выходе Red Hat Enterprise Linux 9.4. В то же время стоит помнить, что обновляется и прошлая ветка — это Red Hat Enterprise Linux 8.10. Разработчики будут поддерживать её минимум до 2029 года. Что касае... |
20.05.2024 | Compiler Explorer — уникальный проект для исследования компилируемого кода | Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.
CE — потрясающий инструмент. Если вы с ним н... |
17.05.2024 | Когда целый день программировал на Zig: впечатления Rust-энтузиаста | Я — большой фанат Rust, так как в этом языке предоставляется отличное инструментальное оснащение, и, когда я пишу на этом языке, я могу быть вполне уверен, что этот код будет работать надёжно. Но иногда Rust ненавистен. Чтобы написать код н... |
12.05.2024 | Ответ на «Коротко о том, почему Rust лучше C/C++» или меня не бомбит | Прочитал недавно данную статью. Будем считать, что всё же её написал живой человек, а не ГПТ, хотелось бы надеяться. Скажу честно, хоть и автор уверял, что статья наполнена объективным сравнением, описаны плюсы и минусы двух языков, но на д... |
11.05.2024 | Коротко о том, почему Rust лучше C/C++ | Это будет статья-рассуждение о том, почему Rust лучше C/C++. Тут будут затронуты не столько сравнение производительности, сколько сравнение удобства инфраструктуры языка, его темпы развития и актуальность.
Толчком к её написанию были многоч... |
09.05.2024 | Вышла первая бета-версия языка программирования Python 3.13.0b1 | 8 мая 2024 года вышла первая бета-версия языка программирования Python 3.13.0b1 (3.13.0 beta 1) для тестирования с экспериментальным JIT-компилятором и улучшенным интерактивным интерпретатором на основе PyPy.
Ещё одним интересным моментом в... |
07.05.2024 | Язык программирования Mojo: что нового в версии 24.3? | На днях была опубликована новая версия языка программирования Mojo, теперь это 24.3. Новинка получила несколько важных компонентов, которые требуются для создания приложений на этом языке. Например, компилятор, интерактивная REPL-оболочка д... |
06.05.2024 | AlmaLinux 9.4 now available | AlmaLinux 9.4 is officially available for download here. Closely aligned with Red Hat Enterprise Linux (RHEL) 9.4, it reinforces its status as a robust, open-source enterprise Linux solution. This latest version is built directly from RHEL'... |
27.04.2024 | Состоялся релиз Ubuntu 24.04: разбираем главные изменения в новой версии | Два дня назад Canonical выпустила Ubuntu 24.04 LTS с кодовым названием Noble Numbat. Эта версия будет поддерживаться дольше обычного — 12 лет вместо стандартных 3-5 лет. В статье расскажем про главные изменения в новой версии, особенно обра... |
25.04.2024 | Canonical представила Ubuntu 24.04 LTS Noble Numbat | 25 апреля 2024 года Canonical представила стабильный выпуск Ubuntu 24.04 LTS (выпуск с длительным сроком поддержки) Noble Numbat (Благородный Намбат). Это событие произошло в соответствии с текущим планом подготовки финальной сборки и без з... |
24.04.2024 | Fedora Linux 40: новая версия дистрибутива. Что нового и что изменилось? | В мире дистрибутивов Linux всё идёт по плану. Разработчики Fedora Linux 40 выпустили финальный релиз 23 апреля. Уже готовы версии Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition и Live-сборки. Они пос... |
23.04.2024 | Состоялся релиз Fedora Linux 40 | 23 апреля 2024 года разработчики проекта Fedora выпустили стабильную сборку проекта Fedora Linux 40. Релиз Fedora Linux 39 состоялся 7 ноября 2023 года, спустя 20 лет и 1 день после запуска проекта по выпуску популярного дистрибутива Linux.... |
22.04.2024 | Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора | Всем привет! Я Евгений Биричевский, занимаюсь в Positive Technologies обнаружением вредоносного ПО.
Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отла... |
12.04.2024 | Canonical представила бета-выпуск Ubuntu 24.04 LTS Noble Numbat | 12 апреля 2024 года Canonical представила бета-выпуск Ubuntu 24.04 LTS Noble Numbat (Благородный Намбат). Это событие произошло на неделю позже ранее запланированного срока, задержка не помешает к подготовке стабильного релиза. Проект с 26 ... |
11.04.2024 | Почему Accelerate — это не страшно | Всем привет! Я Игорь Белов, iOS-разработчик в Тинькофф Бизнесе, выпускник Университета Иннополис и энтузиаст в области Computer Science. Занимаюсь iOS-разработкой почти четыре года, мне нравится изучать фундаментальные темы программирования... |
30.03.2024 | Fedora Linux 40 появится уже через месяц: что нового в дистрибутиве? | На днях стартовал тестовый процесс для бета-версии Fedora Linux 40, релиз которого запланирован на 23 апреля. Стоит отметить, что этот выпуск касается Fedora Workstation, Fedora Server, Fedora Silverblue, Fedora IoT, Fedora CoreOS, Fedora C... |
29.03.2024 | Динамическая JIT компиляция C++ | Когда-то давно я писал статью-наблюдение про использование Хабра в качестве площадки для архитектурных ревью технических решений практически любой сложности Хабр — ума палата, и продолжаю пользоваться этим способом на постоянной основе.
А т... |
08.03.2024 | Настоящий игровой роутер | Гоняем GTA: Vice City на беспроводном роутере TP-Link TL-WDR4900.
❯ Что это такое?
Это беспроводной роутер TP-Link, оснащённый внешним графическим процессором AMD Radeon GPU. Он подключается через PCIe, работает под Debian Linux, и на этом ... |
12.02.2024 | Как ZKP и ZK-Rollups помогают в решении проблемы масштабирования: обзор блокчейна zkSync | Привет, Хабр! Меня зовут Рома и я Solidity-разработчик. Вместе с коллегами мы создаем базу знаний по тематике блокчейна и web3-разработке. Меня заинтересовал блокчейн zkSync, т.к. он выделяется среди других Layer 2 решений, но сначала хочу ... |
25.12.2023 | Разработка тензорного компилятора под RISC-V CPU с помощью OpenVINO и MLIR | Привет, Хабр! Меня зовут Владислав Виноградов, я инженер группы исследований и разработки ПО глубокого обучения в YADRO. Моя команда создает и оптимизирует связанное с искусственным интеллектом программное обеспечение. Сегодня я расскажу, к... |
19.12.2023 | Анализ виртуальной машины на примере VMProtect. Часть 1 | В этой статье мы рассмотрим, как может выглядеть работа виртуальной машины VMProtect, а также посмотрим, что можно сделать для понимания защищенного функционала (в зависимости от того, как далеко вы готовы зайти в этом не всегда благодарном... |
12.12.2023 | Как собрать Си программу в OS Windows | Иногда возникает ситуация, когда надо что‑то посчитать согласно сложному алгоритму прямо на LapTop/NetTop/DeskTop PC. При этом этот алгоритм написан на Си. Это может быть цифровой фильтр, дискретное преобразование Фурье, генератор QR кода, ... |
11.12.2023 | Предварительная оценка вероятности наличия уязвимостей в программах с учетом семантики средствами нейронных сетей (1/3)... | Изображение сгенерировано нейросетью Kandinsky 3.0
Полное название: Предварительная оценка вероятности наличия уязвимостей в программах в двоичном представлении с учетом семантики средствами нейронных сетей.
Часть 2
Часть 3
Предварительная ... |
25.10.2023 | Хардварный проброс | Мой очень вольный и дополненый перевод моей же статьи на interrupt.memfault.com блог
Оказывается пробрасывать можно не только сетевые порты, а еще и регистры периферии микроконтроллера(МК). Идея та же самая - открыть периферию для использов... |
05.10.2023 | Современное состояние инструментов поиска утечек памяти | Несмотря на большое количество доступных инструментов поиска утечек памяти, в том числе от таких гигантов ИТ как FaceBook, существует ряд ограничений применимости этих инструментов. В данной статье я хочу подробно представить и сравнить сущ... |
03.07.2023 | Будущее программирования с помощью ИИ — первые примеры | Научно-техническая революция стимулирует спрос на вычисления. Последние полвека прогресс шёл в основном за счёт совершенствования железа. Но чипы приближаются к физическому пределу. Чтобы не снижать темпы развития, нужно улучшать программны... |
28.06.2023 | Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1 | Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памят... |
16.06.2023 | Расшифровка доклада: О чём я говорю, когда говорю о тестировании корректности работы компиляторов | Привет, Хабр! Эта статья о том, как тестируют компиляторы. Она будет интересна разработчикам и тестировщикам компиляторов, а также всем, кто тестирует сложные технологии. Разберём проблемы тестирования LuaJIT и подходы к решению: неструктур... |
14.06.2023 | Поговорим об оптимизирующих компиляторах. Сказ третий: неопределённое поведение и оптимизации | Это цикл статей об оптимизирующих компиляторах вообще и LLVM в частности. Смотри все статьи данного цикла:
SSA форма
Доминирование
Неопределённое поведение
Вообще-то, третья статья данного цикла должна была рассказывать о конкретных оптимиз... |
09.06.2023 | Говорим про системное программирование и дизайн микропроцессоров простым языком | Системное программирование и разработка процессоров — область достаточно узкая, из-за чего её часто воспринимают как что-то непонятное и недоступное. Хотим поделиться новым подкастом «Битовые маски», который планирует исправить это впечатле... |
28.05.2023 | Поговорим об оптимизирующих компиляторах. Сказ второй: Доминирование | Сказ 1 > Сказ 2
Сегодня мы продолжаем наш разговор об оптимизирующих компиляторах для самых маленьких и не очень. Для тех, кто пока не в курсе происходящего, но желает приобщиться - я поставил себе задачу написать цикл вводных статей в э... |
24.05.2023 | На грани между exceptions и std::expected | Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям.
В данной статье хочу немного рассказать... |
11.04.2023 | Эксплойтинг браузера Chrome, часть 3: анализ и эксплойт уязвимости CVE-2018-17463
Разбираемся с Patch Gapping
Анализ первопричин CVE-2018-17463
Настройка среды
Генерация Proof of Concept
Эксплойт... | Это третья и последняя часть серии статьей про эксплойтинг браузера Chrome. Основная задача этой серии заключалась в том, чтобы познакомить читателя с внутренним устройством браузера и погрузиться в тему эксплойтинга Chrome в Windows.
В пер... |
23.03.2023 | Создаем свой собственный язык программирования с использованием LLVM. Часть 4: Поддержка составных типов | В предыдущей статье мы закончили на том, что реализовали полностью законченное подмножество нашего учебного языка, в котором есть целые и вещественные числа, функции и множество управляющих конструкций, такие как: циклы, операторы ветвления... |
22.03.2023 | Linux-порт Far Manager: новости весны 2023 | Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу нескол... |
20.02.2023 | C++23 — финал, C++26 — начало
C++23
C++26
Итоги | С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.
Комитет занимался полировкой C++23:
static operator[];
static constexpr в constexpr-функциях;
безопасный range-based for;
взаимодейс... |
19.02.2023 | Создаем свой собственный язык программирования с использованием LLVM. Часть 3: Генерация кода | В предыдущих статьях мы рассмотрели и реализовали лексический и синтаксический анализаторы, а так же реализовали семантический анализ для нашего учебного языка, что дало нам основу. В данной статье мы продолжим начатое и реализуем генерацию... |
19.02.2023 | 5 простых способов выйти из вложенных циклов в Python | Python - элегантный язык программирования. Но у него есть слабые стороны. Иногда Python не так элегантен, как должен быть.
Например, когда нам нужно выйти из вложенных циклов:
for a in list_a: for b in list_b: if condition(a,b): break
break... |
19.02.2023 | Компилятор с полностью гомоморфным шифрованием от Google | Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил по... |
28.01.2023 | Создаем свой собственный язык программирования с использованием LLVM. Часть 1: Лексический и синтаксический анализ... | Об авторе
С 2003 года, когда я поступил в ВУЗ, по нынешнее время я написал много различных парсеров, от простых (чтение конфигурационных файлов в ini, json и yaml форматах) до более сложных (полноценный парсер С++ подобного языка с поддержк... |
19.01.2023 | Fuzzing-тесты в Go после v1.18: знакомство и практика | Когда говорят о Go 1.18, обычно вспоминают про дженерики и незаслуженно забывают об остальных изменениях. Например, о fuzzing-тестировании, которое раньше можно было запустить только с помощью открытых библиотек. Пора это исправить.
По моти... |
16.01.2023 | Более Быстрые Сборки Apple с помощью lld Linker | TL; DR: lld — отличный выбор для более быстрой компоновки отладочных двоичных файлов iOS, macOS и т. д. Он завершает работу на 50-80% быстрее, чем ld64, и сейчас используется многими крупными компаниями. Шаги по интеграции описаны в разделе... |
08.12.2022 | Добавим динамическую среду в C: мой проект компоновщика
Как жил мир без этого компоновщика?
Что будет уметь делать мой компоновщик?
Похожие проекты и источники вдохновения
Другие применения
Момен... | Я пишу компоновщик (linker). Не совсем обычный. Он ориентирован не на создание исполняемых файлов, а на облегчение быстрой итерации программы без необходимости в перекомпоновке (re-link) и повторном открытии после внесения изменений. Это «г... |
07.12.2022 | Использование final для повышения производительности в C++ | Динамический полиморфизм (виртуальные функции) занимает центральное место в объектно-ориентированном программировании (ООП). При правильном использовании он способствует созданию входных точек в существующей кодовой базе, с помощью которых ... |
25.10.2022 | Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0 | Компиляторы развиваются и выдают всё больше предупреждений. Остаются ли преимущества от использования статических анализаторов кода, таких как PVS-Studio? Да, так как анализаторы тоже развиваются. Перед вами статья о том, как PVS-Studio нах... |
15.08.2022 | История одного перехода с gcc на clang | На прошлой неделе, после нескольких месяцев разработки, вышла очередная версия языка программирования NewLang. Одной из технических особенностей данного релиза является переход на использования компилятора clang вместо gcc.
Данная статья оп... |
19.07.2022 | Как устроена разработка ReactOS, зачем в неё контрибьютить и почему она уже 20 лет в альфе | Виктор Перевёрткин, cистемный разработчик в «Лаборатории Касперского» и активный участник комьюнити разработчиков ReactOS — о том, как устроена и кем создаётся ReactOS и работают ли в ней HOMM III. Статья написана на основе выпуска подкаста... |
14.07.2022 | Межмодульный анализ C и C++ проектов в деталях. Часть 2 | В первой части статьи мы рассматривали основы теории компиляции C и C++ проектов, в частности особое внимание уделили алгоритмам компоновки и оптимизациям. Во второй части мы погрузимся глубже и покажем ещё одно применение межмодульного ана... |
29.06.2022 | Запускаем Julia на Arduino | У меня нет особого опыта работы с микроконтроллерами. Раньше я немного экспериментировал с Arduino, а главной точкой входа моей домашней сети является Raspberry Pi, но на этом мой недавний опыт заканчивается. Я прошёл один курс по микроконт... |
20.05.2022 | Do it yourself: JIT компиляция SQL в Tarantool | Привет, Хабр! Меня зовут Георгий Лебедев, я работаю в команде разработки ядра Tarantool. В 2021 году мы впервые участвовали в Google Summer of Code (GSoC): одним из предложенных студентам проектов была миграция SQL с VDBE на JIT-платформу —... |
17.05.2022 | Как помочь компилятору повысить быстродействие вашей программы | Современные компиляторы весьма далеко продвинулись в области оптимизации ПО. Но иногда им бывает трудно подобрать наилучший способ оптимизации. К счастью, мы можем помочь им в этом выборе.
Под катом старший разработчик ПО компании Google, M... |
25.04.2022 | Меняем std::sort для Google
Глава 1. История
Глава 2. Заменить сортировку легко, не правда ли?
Глава 3. Какую сортировку мы заменяем?
Заключение... | Мы меняем std::sort в библиотеке libcxx проекта LLVM. В этой статье мы подробно расскажем о том, как мы пришли к этому решению и какими будут возможные последствия, о багах, с которыми вы можете столкнуться в примерах из open source. Мы пок... |
14.03.2022 | Как написать рефлексию для C++ | C++ поистине противоречивый язык. Старый добрый С существует аж с 1972 года, С++ появился в 1985 и сохранил с ним обратную совместимость. За это время его не раз хоронили, сперва Java, теперь его потихоньку продолжают хоронить Go и Rust. Вс... |
09.02.2022 | Программируем Arduino Uno на Rust: настраиваем среду и моргаем светодиодом | Кто-то из вас наверняка задавался вопросом: а нельзя ли программировать Arduino на чём-то более современном и удобном? Вот и я задавался. И нашёл Rust (не то, чтобы я о нём не знал). И на нём можно программировать микроконтроллеры AVR и пла... |
30.12.2021 | Как Mozilla упустила (не)очевидную уязвимость | Этот пост в блоге необычный. Обычно я пишу посты о скрытых видах атак или интересном и сложном классе уязвимостей. На этот раз речь пойдёт о совершенно иной уязвимости. Впечатляет её простота. Её должны были заметить раньше, и я хочу выясни... |
29.11.2021 | Си должен умереть | Язык Си - один из наиболее влиятельных языков программирования за всю историю. Он стал незаменимым инструментом разработки операционных систем, сместив с этого пьедестала языки ассемблера. Изучение Си обязательно для любого уважающего себя ... |
18.11.2021 | Роковой каскад: JIT, и как обновление Postgres привело к 70% отказов на национальном сервисе критической важности | От переводчика: Для этой статьи, вероятно, подошел бы заголовок "Незнание значений по умолчанию не освобождает от ответственности". Перед нами классический пример "эффекта швейцарского сыра", когда несколько мелочей прив... |
25.10.2021 | Тестирование СУБД: 10 лет опыта | Меня зовут Сергей Бронников, я работаю в команде Tarantool. Когда я присоединился к ней, то не нашёл общего описания того, как устроено тестирование в проекте. Поэтому я вёл для себя заметки по мере погружения в разработку. Я решил перерабо... |
06.10.2021 | The Soul of the Movement: 30 Years of Linux (Part 2) | Description of icon when needed15 Min Read
In part 1 of this blog series, we discussed Linux's rise as a cornerstone of IT, and how the Linux Foundation has been at the long standing center of the broader open source community, serving as t... |
03.10.2021 | Тайные знания: библиотеки для С++ | Рун не должен резать
Тот, кто в них не смыслит.
В непонятных знаках
Всякий может сбиться.
Десять знаков тайных
Я прочел и знаю...
(Сага об Эгиле)
Многие начинающие программисты, уже освоив синтаксис C++, обнаруживают, что нет простого спосо... |