# c/c++

C and C++ are programming languages with documented syntax, semantics, standards, implementations, and development tools.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## В OpenIDE появилась поддержка C/C++ благодаря независимому разработчику

DevFeed: [В OpenIDE появилась поддержка C/C++ благодаря независимому разработчику](<https://devfeed.tech/articles/openide-c-c-40882.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/haulmont/news/1083076/>)

Author: honest\_niceman (Haulmont)

Published: 2026-09-16T15:22:55Z

Content type: news

Language: ru

Sources: [Tagir Valeev](<https://devfeed.tech/sources/tagir-valeev.md>)

Topics: [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [CMake](<https://devfeed.tech/topics/cmake.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clangd](<https://devfeed.tech/tags/clangd.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [ide-c-plus-plus-5a4cbf95fd05](<https://devfeed.tech/tags/ide-c-plus-plus-5a4cbf95fd05.md>), [intellij-platform](<https://devfeed.tech/tags/intellij-platform.md>), [openide](<https://devfeed.tech/tags/openide.md>), [rdev](<https://devfeed.tech/tags/rdev.md>), [tag-a071763eb5bb](<https://devfeed.tech/tags/tag-a071763eb5bb.md>)

### AI overview

OpenIDE's marketplace has published the C/C++ Support plugin, created by an independent community developer. The beta plugin provides code completion, syntax highlighting, navigation, symbol renaming, project creation, and CMake-based compilation and builds.

### Source excerpt

В маркетплейсе OpenIDE появился плагин C/C++ Support, для работы с C и C++. Его написал независимый разработчик из сообщества. Поддержку C++ пользователи просили давно, и автор решил не ждать, а взяться за неё самостоятельно. Читать далее

## Куда уходит память? Семплирующее профилирование колонок с Алисой в проде

DevFeed: [Куда уходит память? Семплирующее профилирование колонок с Алисой в проде](<https://devfeed.tech/articles/article-24865.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1054774/>)

Author: Cthutq66a (Яндекс)

Published: 2026-07-16T07:02:46Z

Content type: tutorial

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [perforator](<https://devfeed.tech/tags/perforator.md>), [tag-2d1d9199270a](<https://devfeed.tech/tags/tag-2d1d9199270a.md>), [tag-4004cf5948d3](<https://devfeed.tech/tags/tag-4004cf5948d3.md>), [tag-967d8467ce56](<https://devfeed.tech/tags/tag-967d8467ce56.md>), [tag-d346fb5ae499](<https://devfeed.tech/tags/tag-d346fb5ae499.md>)

### AI overview

The article explains how Yandex analyzes memory consumption in production across Linux smart speakers with Alice. It focuses on inexpensive sampling of dynamic allocations because the devices have limited memory and full allocation tracing is too costly. The article compares tools such as Perfetto with heapprofd and Perforator and describes constraints including memory, flash storage, and 32-bit ARM compatibility.

### Source excerpt

Типичная умная колонка с Алисой -- это скромное железо и совсем немного оперативной памяти: у младших моделей её всего 256 МБ на всё устройство сразу. И за каждый мегабайт идёт настоящая борьба между множеством команд и компонентов: бизнес-логикой, обработкой звука, локальными нейросетями. Ежедневно мы собираем и анализируем memory-дампы с миллионов колонок -- нам важно понимать, куда уходят эти драгоценные мегабайты. Меня зовут Сергей, я работаю в команде, которая пишет прикладной код на C/C++ для умных устройств с Алисой (например, колонок, телевизоров и автомобилей). Под катом расскажу, как мы построили и используем инструмент для анализа потребления памяти в проде на нашем флоте Linux-колонок. Читать далее

## Swift 6.3 Released

DevFeed: [Swift 6.3 Released](<https://devfeed.tech/articles/swift-6-3-released-2934.md>)

Original publisher: [Read original article](<https://swift.org/blog/swift-6.3-released/>)

Author: Joe Heck

Published: 2026-03-24T10:00:00Z

Content type: release

Language: en

Sources: [Swift.org](<https://devfeed.tech/sources/swift-org.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Android](<https://devfeed.tech/topics/android.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [c](<https://devfeed.tech/tags/c.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

Swift 6.3 expands Swift across the software stack with improved C interoperability, cross-platform build tooling, embedded-environment support, and an official Swift SDK for Android. The release also adds module selectors and new controls for compiler optimizations.

### Source excerpt

Swift is designed to be the language you reach for at every layer of the software stack. Whether you're building embedded firmware, internet-scale services, or full-featured mobile apps, Swift delivers strong safety guarantees, performance control when you need it, and expressive language features and APIs. Swift 6.3 makes these benefits more accessible across the stack. This release expands Swift into new domains and improves developer ergonomics across the board, featuring: More flexible C interoperability Improvements to cross-platform build tooling Improvements for using Swift in embedded environments An official Swift SDK for Android Read on for an overview of the changes and next steps to get started. Language and Standard Library C interoperability Swift 6.3 introduces the @c attribute, which lets you expose Swift functions and enums to C code in your project. Annotating a function or enum with @c prompts Swift to include a corresponding declaration in the generated C header that you can include in your C/C++ files: @c func callFromC() { ... } // Generated C header void callFromC(void); You can provide a custom name to use for the generated C declaration: @c(MyLibrary_callFromC) func callFromC() { ... } // Generated C header void MyLibrary_callFromC(void); @c also works together with @implementation. This lets you provide a Swift implementation for a function declared in a C header: // C header void callFromC(void); // Implementation written in Swift @c @implementation func callFromC() { ... } When using @c together with @implementation, Swift will validate that the Swift function matches a pre-existing declaration in a C header, rather than including a C declaration in the generated header. Module name selectors Swift 6.3 introduces module selectors to specify which imported module Swift should look in for an API used in your code. If you import more than one module that provides API with the same name, module selectors let you disambiguate which API to use:

## Introduction to Fuzzing ESP-IDF components

DevFeed: [Introduction to Fuzzing ESP-IDF components](<https://devfeed.tech/articles/introduction-to-fuzzing-esp-idf-components-13743.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/01/fuzzing/>)

Author: John Lee

Published: 2026-01-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Fuzzing/Fuzz testing](<https://devfeed.tech/topics/fuzzing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [component](<https://devfeed.tech/tags/component.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [fuzzing](<https://devfeed.tech/tags/fuzzing.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

This article introduces fuzzing for ESP-IDF components and embedded libraries. It explains how to fuzz host-compiled code with sanitizers, compares black-box, grey-box, and white-box approaches, and outlines workflows using a basic mutator, AFL++, and protocol-focused harnesses.

### Source excerpt

This article introduces fuzzing -- a technique for finding vulnerabilities -- and demonstrates practical workflows and lessons learned for ESP-IDF components and embedded libraries in general.

## Mitigating a rsync Vulnerability: A Lesson in Compiler Hardening

DevFeed: [Mitigating a rsync Vulnerability: A Lesson in Compiler Hardening](<https://devfeed.tech/articles/mitigating-a-rsync-vulnerability-a-lesson-in-compiler-hardening-13161.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/mitigating-a-rsync-vulnerability-a-lesson-in-compiler-hardening>)

Published: 2025-03-19T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [chainguard](<https://devfeed.tech/topics/chainguard.md>), [Security](<https://devfeed.tech/topics/security.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [compiler-flags](<https://devfeed.tech/tags/compiler-flags.md>), [compiler-hardening](<https://devfeed.tech/tags/compiler-hardening.md>), [cves](<https://devfeed.tech/tags/cves.md>), [defense-in-depth](<https://devfeed.tech/tags/defense-in-depth.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [product-security](<https://devfeed.tech/tags/product-security.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [security](<https://devfeed.tech/tags/security.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

Chainguard describes how compiler hardening in its C/C++ toolchain helped protect against an rsync vulnerability before public disclosure. The article presents compiler hardening flags as layers of defense for memory-unsafe software and discusses Chainguard's implementation of recommendations from OpenSSF and GCC.

### Source excerpt

Chainguard's defense-in-depth security strategy protected against multiple rsync CVEs before they were even reported. See how we did it, using compiler flags.

## GitHub Copilot Now in Espressif-IDE with Copilot4Eclipse

DevFeed: [GitHub Copilot Now in Espressif-IDE with Copilot4Eclipse](<https://devfeed.tech/articles/github-copilot-now-in-espressif-ide-with-copilot4eclipse-13680.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/02/github-copilot-in-espressif-ide/>)

Author: John Lee

Published: 2025-02-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [ide](<https://devfeed.tech/topics/ide.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [coding-assistant](<https://devfeed.tech/tags/coding-assistant.md>), [debug](<https://devfeed.tech/tags/debug.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [espressif-ide](<https://devfeed.tech/tags/espressif-ide.md>), [github-copilot](<https://devfeed.tech/tags/github-copilot.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [install](<https://devfeed.tech/tags/install.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [sign-in](<https://devfeed.tech/tags/sign-in.md>), [subscription](<https://devfeed.tech/tags/subscription.md>)

### AI overview

This article presents Copilot4Eclipse as a plugin that brings GitHub Copilot assistance to Espressif-IDE's Eclipse-based C/C++ editor. It describes code suggestions, completions, refactoring, Copilot Chat, and setup steps including installation and GitHub authentication.

### Source excerpt

We all love GitHub Copilot as a powerful AI-powered coding assistant that enhances productivity. However, until now, it has been officially available only for VS Code and a few other editors. But here's some good news for Eclipse users! We have tried the Copilot4Eclipse plugin with the Espressif-IDE LSP C/C++ Editor, and it works amazingly well, helping to write code faster and fix bugs.

## Enhanced Compiler Flags for Building Chainguard's Guarded Images

DevFeed: [Enhanced Compiler Flags for Building Chainguard's Guarded Images](<https://devfeed.tech/articles/enhanced-compiler-flags-for-building-chainguard-s-guarded-images-13030.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/enhanced-compiler-flags-for-building-chainguards-guarded-images>)

Published: 2024-11-19T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Security](<https://devfeed.tech/topics/security.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compiler-flags](<https://devfeed.tech/tags/compiler-flags.md>), [compiler-hardening](<https://devfeed.tech/tags/compiler-hardening.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [openssf](<https://devfeed.tech/tags/openssf.md>), [secure-by-default](<https://devfeed.tech/tags/secure-by-default.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

Chainguard Images now use enhanced compiler flags for C/C++ projects. The OpenSSF-recommended hardening is implemented through clang configuration files and gcc spec files in Wolfi, helping mitigate memory-safety vulnerabilities such as stack-based buffer overflows and unsafe memory usage.

### Source excerpt

Chainguard Images are now built using enhanced compiler flags for C/C++ projects. See how this strengthens the security posture of Chainguard's build systems.

## Accelerate C/ C++ security with Snyk

DevFeed: [Accelerate C/ C++ security with Snyk](<https://devfeed.tech/articles/accelerate-c-c-security-with-snyk-7790.md>)

Original publisher: [Read original article](<https://snyk.io/blog/accelerate-c-cpp-security-snyk/>)

Author: Lauren Place; Marcie Cheung

Published: 2023-12-05T14:00:00Z

Content type: release

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [snyk-code](<https://devfeed.tech/topics/snyk-code.md>), [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Code](<https://devfeed.tech/topics/code.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-cpp](<https://devfeed.tech/tags/c-cpp.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [ide](<https://devfeed.tech/tags/ide.md>), [pmm](<https://devfeed.tech/tags/pmm.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [vs-code](<https://devfeed.tech/tags/vs-code.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Snyk announced general availability of C/C++ support for Snyk Code. The feature analyzes C/C++ source code directly without requiring compilation or a build, provides fast feedback, and integrates with IDE, CLI, Git, pull request, and CI/CD workflows. It also detects vulnerable open source packages and non-compliant licenses, with support for Windows, Linux, desktop, server, web, embedded applications, and frameworks such as Yocto, STL, and Boost.

### Source excerpt

Today, Snyk is welcoming C/C++ security into the world of modern development with the general availability of C/C++ support for Snyk Code!

## How Async-Profiler's crash handler works

DevFeed: [How Async-Profiler's crash handler works](<https://devfeed.tech/articles/how-async-profiler-s-crash-handler-works-25637.md>)

Original publisher: [Read original article](<https://richardstartin.github.io/posts/async-profiler-crash-handler>)

Author: Richard Startin's Blog

Published: 2023-11-12T00:00:00Z

Content type: article

Language: en

Sources: [Richard Startin's Blog](<https://devfeed.tech/sources/richard-startin-s-blog.md>)

Topics: [async](<https://devfeed.tech/topics/async.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Java](<https://devfeed.tech/topics/java.md>), [JIT](<https://devfeed.tech/topics/jit.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [crash](<https://devfeed.tech/tags/crash.md>), [handler](<https://devfeed.tech/tags/handler.md>), [jit](<https://devfeed.tech/tags/jit.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [run](<https://devfeed.tech/tags/run.md>), [safety](<https://devfeed.tech/tags/safety.md>), [signal](<https://devfeed.tech/tags/signal.md>)

### AI overview

This article explains how async-profiler uses Linux signals and signal handlers to inspect thread state and safely dereference arbitrary pointers without crashing the JVM. It introduces signal-based sampling and frame-pointer unwinding, including the role of JIT-compiled code.

### Source excerpt

Raw pointers in C/C++ open up entire classes of error that are practically unimaginable in higher level languages. So why does anybody use them at all? Unfortunately, it's impossible to write a profiler without getting close to some of the sharp edges of unsafe memory. The async-profiler code base contains a lot of low level tricks, and it's worth studying how some of them work.

## Application and AI roundup - September

DevFeed: [Application and AI roundup - September](<https://devfeed.tech/articles/application-and-ai-roundup-september-36687.md>)

Original publisher: [Read original article](<https://shostack.org/blog/appsec-roundup-september/>)

Author: Adam

Published: 2023-10-04T00:00:00Z

Content type: article

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [Application Security](<https://devfeed.tech/topics/application-security.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [open-source-security](<https://devfeed.tech/topics/open-source-security.md>), [Zig](<https://devfeed.tech/topics/zig.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [cisa](<https://devfeed.tech/topics/cisa.md>)

Tags: [appsec](<https://devfeed.tech/tags/appsec.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [development](<https://devfeed.tech/tags/development.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [open-source-software-security](<https://devfeed.tech/tags/open-source-software-security.md>)

### AI overview

A September roundup covering application security developments involving memory safety, C and C++, Zig, hardware memory tagging, secure-by-design AI guidance, cybersecurity policy for medical devices, and open-source software security.

### Source excerpt

September was a big month in appsec for both memory safety and policy

## Smarter C/C++ inlining with \_\_attribute\_\_((flatten))

DevFeed: [Smarter C/C++ inlining with \_\_attribute\_\_((flatten))](<https://devfeed.tech/articles/smarter-c-c-inlining-with-attribute-flatten-38362.md>)

Original publisher: [Read original article](<https://awesomekling.github.io/Smarter-C++-inlining-with-attribute-flatten/>)

Author: Andreas Kling

Published: 2020-04-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Andreas Kling](<https://devfeed.tech/sources/andreas-kling.md>)

Topics: [inlining](<https://devfeed.tech/topics/inlining.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [clang](<https://devfeed.tech/topics/clang.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [build times](<https://devfeed.tech/topics/build-times.md>)

Tags: [build-times](<https://devfeed.tech/tags/build-times.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpp](<https://devfeed.tech/tags/cpp.md>), [function](<https://devfeed.tech/tags/function.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [inlining](<https://devfeed.tech/tags/inlining.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This post explains how to use the __attribute__((flatten)) function attribute in C/C++ to apply aggressive inlining selectively. GCC and Clang support the attribute, which inlines a function's callees while limiting the program-size, cache-locality, and build-time costs of broader inlining.

### Source excerpt

This post describes a compile-time technique for getting the benefits of aggressive inlining in hot code while protecting cool code from its downsides.

## Clang on Windows

DevFeed: [Clang on Windows](<https://devfeed.tech/articles/clang-on-windows-27445.md>)

Original publisher: [Read original article](<https://ariya.io/2020/01/clang-on-windows/>)

Published: 2020-01-05T22:46:09Z

Content type: tutorial

Language: en

Sources: [Ariya Hidayat](<https://devfeed.tech/sources/ariya-hidayat.md>)

Topics: [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [make](<https://devfeed.tech/topics/make.md>), [Azure](<https://devfeed.tech/topics/azure.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [azure](<https://devfeed.tech/tags/azure.md>), [build](<https://devfeed.tech/tags/build.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cache](<https://devfeed.tech/tags/cache.md>), [clang](<https://devfeed.tech/tags/clang.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [make](<https://devfeed.tech/tags/make.md>), [pacman](<https://devfeed.tech/tags/pacman.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial on using MSYS2 to install and run Clang on Windows for building 32-bit and 64-bit C/C++ applications. It also describes integrating the toolchain with Azure Pipelines and caching downloaded packages.

### Source excerpt

Thanks to the MSYS2 project, now there is an easy way to utilize Clang to build C/C++ application on Windows. This works equally well for both 32-bit and 64-bit programs.

## C/C++ Include Guidelines

DevFeed: [C/C++ Include Guidelines](<https://devfeed.tech/articles/c-c-include-guidelines-28619.md>)

Original publisher: [Read original article](<https://upcoder.com/20/cc-include-guidelines>)

Published: 2019-10-13T12:14:00Z

Content type: tutorial

Language: en

Sources: [Thomas Young](<https://devfeed.tech/sources/thomas-young.md>)

Topics: [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Code](<https://devfeed.tech/topics/code.md>), [modules](<https://devfeed.tech/topics/modules.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [modules](<https://devfeed.tech/tags/modules.md>), [source](<https://devfeed.tech/tags/source.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

An opinionated set of guidelines for organizing include files in C and C++. It covers header and source-file responsibilities, include ordering, repeated-include protection, dependencies, namespaces, naming, and related practices, while noting that C++20 modules change the situation.

### Source excerpt

Some (opinionated) guidelines for include file organisation in C/C++. Intro I present a list of points, probably best considered as guidelines, but which I'll refer to as rules throughout the rest of this post, since it trips off the tongue that bit more easily (or perhaps I just have some hidden authoritarian streak). I'll assume the reader knows something about writing code in C or C++, and understands at least the basics about how compilation with include files works. Sometimes I'll say things are obvious to this intended audience, where I think this is necessary for completeness. This is about an ideal way to organise code. For large existing code bases changing the code to follow all of the rules may not be straightforward but it should be possible to make some incremental steps towards the code structure I describe, resulting in some kind of incremental improvements in overall code quality. Many of the rules have exceptions, and it can interesting to explore reasons for these exceptions, as well as the reasons for the rules themselves. Modules As an aside, please note that this is a 'pre-modules' document. If you're using c++ 20 and modules the situation will be different. (At the time of writing I don't have any experience working with modules, and I'm not aware of all the details about how modules will work. I'm hoping that if we follow the rules described here, we should be reasonably well placed for moving to C++20 modules, but if that's not the case, and there are module related details that you think should be taken into account in this document, please let me know in the comments.) The rules 1. Headers are for linkage details, implementation goes in source files. 2. Each source file should have a single matching header. 3. Linkage to a source file should go only through its header. 4. Guard against repeated includes. 5. Each header should be self-sufficient. 6. Each source file includes its own header first. 7. Low level includes come after high level i

## My First GSOC Experience and Introduction to ReactOS

DevFeed: [My First GSOC Experience and Introduction to ReactOS](<https://devfeed.tech/articles/my-first-ever-gsoc-32871.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/my-first-ever-gsoc/>)

Published: 2017-06-13T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [free](<https://devfeed.tech/tags/free.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [os](<https://devfeed.tech/tags/os.md>), [programming](<https://devfeed.tech/tags/programming.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

A personal introduction from a computer science student describing his interest in programming, open-source software, operating systems, and C/C++. The article explains how ReactOS led him toward applying for his first GSOC project and discovering its welcoming community.

### Source excerpt

#Introduction: Hi, I am shriraj (aka sr13), currently pursuing my B.Tech in CSE (Computer Science and Engineering) @ National Institute of Technology Goa, India. I am not just studying CSE but I like to play and experiment with CSE. Programming is just another hobby and I knew that its one of my forte the moment I had felt my first 'Hello World!!' with 'C'. (OK, that might be a little exaggeration XD, but yeah you can tell it when you start enjoying the subject so much that you felt code is better art than a poem.

## DDNet Server Statistics with ServerStatus, RRDtool and Nim

DevFeed: [DDNet Server Statistics with ServerStatus, RRDtool and Nim](<https://devfeed.tech/articles/ddnet-server-statistics-with-serverstatus-rrdtool-and-nim-30834.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/server-statistics/>)

Published: 2016-05-13T22:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [Server](<https://devfeed.tech/topics/server.md>), [Nim](<https://devfeed.tech/topics/nim.md>), [Statistics](<https://devfeed.tech/topics/statistics.md>), [Python](<https://devfeed.tech/topics/python.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [http](<https://devfeed.tech/tags/http.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [linux](<https://devfeed.tech/tags/linux.md>), [nim](<https://devfeed.tech/tags/nim.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [servers](<https://devfeed.tech/tags/servers.md>), [statistics](<https://devfeed.tech/tags/statistics.md>)

### AI overview

This article explains how DDNet monitors its official game servers using ServerStatus, RRDtool, and Nim while keeping resource usage low. It describes collecting server metrics with Python clients, transmitting them over TCP to a C/C++ server, aggregating them into JSON, displaying them through a JavaScript frontend, and recording CPU, network, and memory data in RRDtool.

### Source excerpt

About a month ago I set up statistics for the official DDNet servers. My motivations for this are: Monitor the servers more easily Get notified about server problems Have nice graphs to look at The choices for the software used are mainly made to keep resource usage low, a general principle used for DDNet since we run on cheap VPSes all around the world and are limited in CPU and memory resources. In the rest of this post we will explore the 3 major tools used, their purpose in our solution as well as their performance impact: ServerStatus: Gather live server statistics RRDtool: Record and graph data Nim: Favorite programming language for performance and readability Gathering live server statistics with ServerStatus We've been running BotoX's ServerStatus to get live server statistics for some time now. It works quite well to quickly notice major server problems like a high load or incoming (D)DoS attacks, provided that you keep an eye out for it. We use ServerStatus by running its simple Python client on each server to gather interesting information. The client transmits that data by TCP to the C/C++ server, which aggregates it into a JSON file. This JSON file is then fetched and displayed every two seconds by the JavaScript frontend of our Status page. On a regular Saturday morning the end result looks like this: On a quick glance you notice that the DDNet.tw server has high CPU usage (which is totally normal since it runs some hefty cron jobs every 20 minutes) and DDNet RUS is receiving a small DoS attack with just 1.6 MB/s (unfortunately also totally normal). Apart from that everything looks fine. ServerStatus footprint, calculated from Linux /proc statistics as follows (in Nim): import os, strutils, posix, strfmt # CPU and memory usage of process, based on PROC(5) and # http://stackoverflow.com/a/16736599 let pid = paramStr(1) # Clock ticks per second frequency = sysconf(SC_CLK_TCK) # Size of memory page in bytes pagesize = sysconf(SC_PAGESIZE) uptime = readFil

## Understanding Type in Go

DevFeed: [Understanding Type in Go](<https://devfeed.tech/articles/understanding-type-in-go-22062.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/07/understanding-type-in-go.html>)

Published: 2013-07-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [code](<https://devfeed.tech/tags/code.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [language](<https://devfeed.tech/tags/language.md>), [math](<https://devfeed.tech/tags/math.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [programming](<https://devfeed.tech/tags/programming.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

This tutorial explains why type information matters when interpreting memory and values in programming. It introduces numbering systems, including binary, decimal, and hexadecimal, and shows how the same value can be represented differently depending on the base.

### Source excerpt

When I was coding in C/C++ it was imperative to understand type. If you didn't, you would get into a lot of trouble with both the compiler and running your code. Regardless of the language, type touches every aspect of programming syntax. A good understand of types and pointers is critical to good programming. This post will focus on type. Take these bytes of memory for starters:

## Simplifying LLVM IR for PNaCl

DevFeed: [Simplifying LLVM IR for PNaCl](<https://devfeed.tech/articles/simplifying-llvm-ir-for-pnacl-21564.md>)

Original publisher: [Read original article](<http://lackingrhoticity.blogspot.com/2013/06/simplifying-llvm-ir-for-pnacl.html>)

Author: Mark Seaborn (noreply@blogger.com)

Published: 2013-06-29T19:08:00Z

Content type: article

Language: en

Sources: [Mark Seaborn](<https://devfeed.tech/sources/mark-seaborn.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Web](<https://devfeed.tech/topics/web.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [code](<https://devfeed.tech/tags/code.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [intermediate](<https://devfeed.tech/tags/intermediate.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [native](<https://devfeed.tech/tags/native.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [portable](<https://devfeed.tech/tags/portable.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This article explains how PNaCl simplifies LLVM IR to create a maintainable, architecture-neutral executable format for native code in web browsers. It describes removing types, names, metadata, and complex instructions, and compares the approach with Emscripten and asm.js.

### Source excerpt

Lately I've been working on Portable Native Client ("PNaCl" for short). Native Client (NaCl) is a sandboxing system that allows safe execution of native code in a web browser -- typically C/C++ code compiled to x86-32, x86-64 or ARM native code (with some support for MIPS too). The problem with NaCl has always been that you have to compile your program multiple times, once for each target architecture. PNaCl aims to solve that, so that your program can be compiled once to an architecture-neutral executable which is then translated to x86 or ARM inside the web browser. PNaCl is based on LLVM, and PNaCl's executable format is based on LLVM's IR ("Intermediate Representation") language and its binary encoding, LLVM bitcode. LLVM's IR language is quite complex, so we're pruning out and expanding out a lot of features in order to ensure that PNaCl will be maintainable in the long term and to reduce executable sizes. As an example, consider this fragment of C code: struct foo { int x; int y; }; void func(struct foo *ptr) { ptr->y = 123; } Normally in LLVM this compiles to the following LLVM assembly code: %struct.foo = type { i32, i32 } define void @func(%struct.foo* nocapture %ptr) #0 { entry: %y = getelementptr inbounds %struct.foo* %ptr, i32 0, i32 1 store i32 123, i32* %y, align 4, !tbaa !0 ret void } attributes #0 = { nounwind } !0 = metadata !{metadata !"int", metadata !1} With PNaCl, we strip out the types, names and metadata so that this becomes: define internal void @67(i32) { %2 = add i32 %0, 4 %3 = inttoptr i32 %2 to i32* store i32 123, i32* %3, align 1 ret void } The definition of the struct type goes away. The "getelementptr" instruction is how LLVM handles pointer arithmetic for indexing into structs and arrays -- this gets expanded out and is replaced with pointer arithmetic on integers. The "%struct.foo*" pointer type is replaced with the i32 type. The "inttoptr" instruction remains as a vestige of LLVM's type system: every "load" or "store" instruction in

## Newsletter 23

DevFeed: [Newsletter 23](<https://devfeed.tech/articles/newsletter-23-32889.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/newsletter-23/>)

Published: 2007-05-01T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Development](<https://devfeed.tech/topics/development.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [WINE](<https://devfeed.tech/topics/wine.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [development](<https://devfeed.tech/tags/development.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [free](<https://devfeed.tech/tags/free.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [newsletter](<https://devfeed.tech/tags/newsletter.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [technical](<https://devfeed.tech/tags/technical.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

ReactOS Newsletter 23 reports on development toward the 0.3.2 branch, including kernel stability, blocking bugs, hardware boot fixes, WIDL compiler integration, WINE library synchronization, and graphical subsystem work.

### Source excerpt

Just to make it clear, while we aim for a biweekly newsletter, we only aim for it to be up around Sunday. It can easily be delayed if there isn't enough to talk about. The Road to 0.3.2 For those of you who don't follow the ReactOS scene closely it may be hard to know what exactly is happening in terms of development progress. The technical nature of some improvements also proves confusing to most people.