diff --git a/website/blog/2026-04-30-release.md b/website/blog/2026-04-30-release.md new file mode 100644 index 00000000000..e98809fb620 --- /dev/null +++ b/website/blog/2026-04-30-release.md @@ -0,0 +1,25 @@ +--- +slug: 2026-04-30-release +title: v2026.04.30 Release +authors: + name: Redex Team + title: Redex Team + url: https://fbredex.com + image_url: https://fbredex.com/img/favicon.png +tags: [release] +--- + +## Optimizations + +This release brings several code-size and inlining improvements: + +- `RemoveUnreachablePass` can now sweep annotation elements (via the `sweep_annotation_elements` option). This yields a large code-size reduction for apps that cannot enable `AnnoKill`, and a modest reduction for those that do. +- More lenient cross-store reference (`XStoreRefs`) handling when `normal_primary_dex` is enabled, improving inlining across primary and secondary dex files for apps using native multidex. +- `ResolveRefsPass` now does a better job resolving interface references. + +## Other improvements + +- New `CompactPointerVector` container, a memory-efficient alternative to `std::vector` for storing a small number of pointers inline without heap allocation. +- Broader use of `AtomicStatCounter` for thread-safe stats collection. +- Partial migration from `boost::optional` to `std::optional`. +- Systematic include cleanup and const-correctness improvements across the codebase.