proomt

Search

Search posts, papers, and topics

All posts

LLVM Project BlogDominic Stöcker8 min readintermediate

GSoC 2026: Extending Clang API Notes for C++: Overload-Specific Annotations for Functions and Methods

Summary

Clang’s API Notes now support overload‑specific selectors via a new optional `Where` block that can match parameter lists and implicit object qualifiers. The implementation adds YAML parsing, binary serialization, Sema integration and diagnostics while preserving existing name‑only behavior.

  • A `Where` block with `Parameters` and `Object` selectors lets API Notes target individual C++ overloads.
  • Selector normalization handles type aliases, whitespace, and strips top‑level const/volatile that don’t affect overload identity.
  • `Where.Object` captures const, volatile, and ref‑qualifiers of the implicit object, distinguishing const vs non‑const and lvalue/rvalue overloads.
  • Implementation spanned YAML model changes, binary format updates, declaration lookup, Sema integration, and added diagnostics for malformed selectors.

C++/Swift interop engineers and Clang developers should care because it enables precise per‑overload annotations without breaking existing API Notes.

6/10

Related reading

  1. GSoC 2026: Improving HLSL Support in clangd

    The GSoC 2026 project identified and closed numerous gaps in clangd’s HLSL support. By performing a systematic gap analysis, the author authored an RFC, opened 11 GitHub issues, and landed multiple PRs that improve hover (semantic annotations, out/inout parameters, swizzles, RootSignature, register ranges) and code‑completion (attributes, register, semantic annotations, swizzle). The work also ex…

    LLVM Project Blogllvm.org8 min
  2. Lambda MicroEgg

    lambda-microegg is a Rust e‑graph library that adds scoped, alpha‑aware binders and Miller‑style higher‑order patterns to the Egg framework, enabling capture‑avoiding substitution and higher‑order rewriting with modest performance overhead.

    Lobstersphilipzucker.com15 minHN3lobste.rs27
  3. App Hardening: One Obfuscation Pipeline Across Every Port

    Codename One adds a cloud‑side hardening step that runs on the merged JAR before it is split into Android, iOS, JavaScript, and desktop binaries. It can rename symbols, encrypt string literals, and insert opaque‑predicate control‑flow guards at configurable levels (off → standard → aggressive → paranoid). The transforms are selective per platform to avoid breaking optimizers, and a mapping is kep…

    CodeName Onecodenameone.com6 min
  4. Article: Your Next DSL Author Is a Language Model

    Typed Domain Grounding (TDG) embeds a DSL inside a mainstream language the LLM already knows (e.g., Kotlin) and uses the host compiler as an oracle. The author describes five building blocks—embedding, choosing a host language with high training‑data frequency, compiler‑driven type safety, a generate‑compile‑repair loop, and an on‑demand teaching tool—and shows measured results from kUML, a Kotli…

    InfoQinfoq.com18 min
  5. This Week in Rust 666

    This issue of *This Week in Rust* (2026‑08‑26) aggregates community news: official Rust announcements (maintainers‑in‑residence, next‑gen trait solver, supply‑chain attack on arrayref, function‑overloading experiment), a Mozilla JPEG‑XL tooling update, several observations (AI‑assisted C/C++ rewrites, enum‑to‑word speedup, compilation metadata shaving, driver state handling, async vs sync for a r…

    Mozilla Automation Teamthis-week-in-rust.org9 min
  6. Eliminating AI Code Hallucinations with TypeScript Compiler Diagnostics and TDD Loops

    The article shows how to replace raw TypeScript compiler output with a programmatic JSON feedback loop that merges diagnostics and Vitest test failures, feeding the structured data back to an LLM coding agent for self‑correction. It provides concrete code for extracting, enriching, validating, and de‑duplicating errors, and demonstrates token savings and deterministic iteration until compilation…

    SitePointsitepoint.com15 min