diff --git a/docs/changelog.rst b/docs/changelog.rst index 7e490b2f4b..f3c674cc4f 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -6,18 +6,445 @@ What's New In Pigweed ===================== ----------------------------------------- -Discuss what's new with the Pigweed team ----------------------------------------- +-------------------------------- +Talk to the team at Pigweed Live +-------------------------------- .. pigweed-live:: .. _docs-changelog-latest: +----------- +Feb 9, 2024 +----------- +.. changelog_highlights_start + +Highlights (Jan 26, 2024 to Feb 9, 2024): + +* The new :ref:`module-pw_grpc` module provides classes that map between + ``pw_rpc`` packets and HTTP/2 gRPC frames, allowing ``pw_rpc`` services to + be exposed as gRPC services. +* A lot of the remaining ``pw_toolchain_bazel`` feature work from + :ref:`seed-0113` was finished and rough edges were polished up. +* The new generic ``pw::allocator::BlockAllocator`` interface supported several + derived types that enable fine-grained control over how a block satisfies an + allocation request. + +* ``pw_transfer`` now supports :ref:`resumable transfers + `. + +.. changelog_highlights_end + +Active SEEDs +============ +Help shape the future of Pigweed! Please visit :ref:`seed-0000` +and leave feedback on the RFCs (i.e. SEEDs) marked +``Open for Comments``. + +Modules +======= + +pw_alignment ------------ -Jan 26, 2024 +* `Add CMake & Soong support + `__ + +pw_allocator ------------ -.. changelog_highlights_start +The new generic :cpp:class:`pw::allocator::BlockAllocator` interface supports +:ref:`several derived types ` that enable +fine-grained control over how a block satisfies an allocation request. The new +:cpp:func:`pw::allocator::GetLayout()` method retrieves the layout that was +used to allocate a given pointer. The new +:cpp:class:`pw::allocator::AllocatorSyncProxy` interface synchronizes access to +another allocator, allowing it to be used by multiple threads. + +* `Refactor metric collection for tests + `__ +* `Add Allocator::GetLayout + `__ +* `Add BlockAllocator + `__ +* `Fix SynchronizedAllocator typo + `__ +* `Streamline Block and improve testing + `__ +* `Separate metrics from Fallback-, MultiplexAllocator + `__ +* `Make TrackingAllocator::Init optional + `__ +* `Check for integer overflow in Layout + `__ +* `Add additional metrics + `__ +* `Rename AllocatorMetricProxy to TrackingAllocator + `__ +* `Add SynchronizedAllocator + `__ +* `Fix typo + `__ +* `Fix Allocator::Reallocate + `__ + +pw_assert +--------- +* `Break out compatibility backend target + `__ + (issue `#322057191 `__) + +pw_async_basic +-------------- +* `Remove unneeded locks from test + `__ +* `Test flake fix + `__ + (issue `#323251704 `__) +* `Fix data race in newly added test + `__ +* `Fix ordering of tasks posted at same time + `__ + +pw_bazel_toolchain +------------------ +* `Support regular binaries as tools + `__ + (issue `#322872628 `__) + +pw_bloat +-------- +The new boolean argument ``ignore_unused_labels`` for ``pw_size_report()`` +enables you to remove labels from the JSON size report that have a size of 0. + +* `Allow removal of zero sized labels + `__ + (issue `#282057969 `__) + +pw_bluetooth +------------ +* `Add l2cap_frames.emb + `__ +* `Fix typo in SbcAllocationMethod + `__ + +pw_boot +------- +* `Update status and general doc cleanup + `__ + +pw_build +-------- +The new ``PW_USE_COLOR``, ``NO_COLOR``, and ``CLICOLOR_FORCE`` OS environment +variables enable you to control whether output in CI/CQ is color formatted. + +* `Add Fuchsia to TARGET_COMPATIBLE_WITH_HOST_SELECT + `__ +* `Enable fixed point types for clang builds + `__ + (issue `#323425639 `__) +* `Support disabling colors + `__ + (issue `#323056074 `__) + +pw_bytes +-------- +* `Check for integer overflow + `__ + +pw_channel +---------- +The initial ``pw::channel::Channel`` class from :ref:`seed-0114` has been +introduced but it is experimental and should not be used yet. + +* `Docs fix + `__ +* `Module for async data exchange with minimal copying + `__ + +pw_cli +------ +* `Add json_config_loader_mixin + `__ + +pw_compilation_testing +---------------------- +* `Do not expand regexes + `__ +* `Minor improvements + `__ + +pw_config_loader +---------------- +The code from ``pw_cli`` related to looking up user-specific configuration +files has been moved to this separate module. + +* `Add support for nested keys + `__ +* `Add tests + `__ +* `Initial commit + `__ + +pw_cpu_exception_cortex_m +------------------------- +* `Handle ARM v8.1 case + `__ + (issue `#311766664 `__) + +pw_digital_io +------------- +* `[[nodiscard]] on as() conversion functions + `__ +* `Use pw::internal::SiblingCast + `__ + +pw_env_setup +------------ +* `Roll cipd + `__ + (issue `#315378787 `__) +* `Make npm actions more robust + `__ + (issues `#323378974 `__, + `#322437881 `__, + `#323378974 `__) +* `Only add mingw to PATH once + `__ + (issue `#322437881 `__) + +pw_format +--------- +* `Fix safe buildifier warnings + `__ + (issue `#242181811 `__) + +pw_function +----------- +* `Follow new docs guidelines + `__ + +pw_fuzzer +--------- +* `Fix Bazel run target instructions + `__ + +pw_grpc +------- +The new :ref:`module-pw_grpc` module is an implementation of the gRPC HTTP/2 +protocol. It provides classes that map between :ref:`module-pw_rpc` packets +and ``pw_grpc`` HTTP/2 frames, allowing ``pw_rpc`` services to be exposed as +gRPC services. + +* `Fix off-by-one error when handling DATA frames + `__ + (issue `#323924487 `__) +* `Add new module + `__ + +pw_ide +------ +* `Disable Python terminal activation in VSC + `__ +* `Remove terminal env vars from VSC settings + `__ +* `VSC extension 0.1.4 release + `__ + +pw_presubmit +------------ +Color formatting in CI/CQ has been improved for readability. + +* `Simplify 'gn gen' color logic + `__ +* `Use color logic in gn gen call + `__ +* `Apply color logic in more cases + `__ +* `Support disabling colors + `__ + (issue `#323056074 `__) + +pw_protobuf +----------- +* `Use pw::internal::SiblingCast + `__ + +pw_random +--------- +* `Clean up build files + `__ + +pw_result +--------- +* `Add missing libs in Soong blueprint + `__ + +pw_rpc +------ +* `Avoid undefined behavior when casting to rpc::Writer + `__ + +pw_stream +--------- +* `Use pw::internal::SiblingCast + `__ + +pw_target_runner +---------------- +* `Remove .dev from path name + `__ +pw_thread +--------- +* `Incease the sleep duration in tests + `__ + (issue `#321832803 `__) + +pw_tokenizer +------------ +:ref:`Troubleshooting docs ` were added +that explain how to workaround GCC's template function tokenization bug in GCC +releases prior to 14. + +* `Mention GCC template bug in the docs + `__ + +pw_toolchain +------------ +* `Disable unstable features in rust toolchains + `__ +* `Fix divergent configuration in arm_clang M0+ toolchain + `__ +* `Use less generic names for B1-B5 + `__ +* `Use LLVM compiler-rt builtins + `__ +* `Internal wrapper for casting between siblings + `__ + (issue `#319144706 `__) +* `Small docs update + `__ + (issue `#300471936 `__) + +pw_toolchain_bazel +------------------ +A lot of the remaining ``pw_toolchain_bazel`` feature work from +:ref:`seed-0113` was finished and rough edges were polished up. + +* `Remove support for *_files + `__ + (issue `#323448214 `__) +* `Add support for setting environment variables + `__ + (issue `#322872628 `__) +* `Implement per-action files + `__ + (issue `#322872628 `__) +* `Migrate to PwToolInfo + `__ + (issue `#322872628 `__) +* `Pull file collection into config rule + `__ + (issue `#322872628 `__) +* `Implement pw_cc_provides + `__ + (issue `#320177248 `__) +* `Implement PwActionConfigInfo + `__ + (issue `#322872628 `__) +* `Create temporary variable + `__ + (issue `#322872628 `__) +* `Add a concept of well-known features + `__ + (issue `#320177248 `__) +* `Implement requires_any_of for flag sets + `__ + (issue `#320177248 `__) +* `Migrate to custom PwFeatureInfo + `__ + (issue `#320177248 `__) +* `Add custom PwFlagSetInfo + `__ + (issue `#322872628 `__) +* `Replace bazel_tools providers with PW providers + `__ + (issue `#322872628 `__) + +pw_transfer +----------- +``pw_transfer`` now supports :ref:`resumable transfers +`. + +* `Account for remaining_bytes in payload buffer + `__ +* `Rename TransferHandle -> Handle + `__ +* `Add resumeable transfers + `__ +* `Make cancellation a method on handles + `__ +* `Allow setting a transfer resource size in C++ + `__ + (issue `#319731837 `__) + +pw_unit_test +------------ +* `Remove obsolete label flag + `__ + +Build +===== +* (Bazel) `Update clang version + `__ + +OS support +========== +* (Zephyr) `Fix default logging in chromium CQ + `__ + +Docs +==== +* `Nest backends under respective facades in sitenav + `__ +* `Add doxygengroup to the style guide + `__ +* `Update homepage + `__ +* `Update README links + `__ +* `Fix module homepage canonical URLs + `__ + (issue `#323077749 `__) +* `Update Bazel quickstart output sample + `__ + (issue `#300471936 `__) + +SEEDs +===== +* (SEED-0122) `Update status, add bug reference + `__ +* `Fix pw_seed_index template deps + `__ +* `Add authors to SEED document headers + `__ +* (SEED-0119) `Add sensors SEED + `__ + +Miscellaneous +============= +* `Update the bootstrap script to have start/end guards + `__ +* `Migrate bug numbers + `__ + (issue `#298074672 `__) +* `Upgrade mbedtls to 3.5.0 + `__ + (issue `#319289775 `__) +* `Fix clang-format findings + `__ + +------------ +Jan 26, 2024 +------------ Highlights (Jan 12, 2024 to Jan 26, 2024): * The new :ref:`docs-bazel-integration` guide shows you how to integrate a @@ -28,8 +455,6 @@ Highlights (Jan 12, 2024 to Jan 26, 2024): * A longstanding GCC bug that caused tokenized logging within a function template to not work has been fixed. -.. changelog_highlights_end - Active SEEDs ============ Help shape the future of Pigweed! Please visit :ref:`seed-0000` diff --git a/pw_allocator/docs.rst b/pw_allocator/docs.rst index c993e115d5..e367a07a24 100644 --- a/pw_allocator/docs.rst +++ b/pw_allocator/docs.rst @@ -40,6 +40,8 @@ using ``Block``. :start-after: [pw_allocator_examples_simple_allocator] :end-before: [pw_allocator_examples_simple_allocator] +.. _module-pw_allocator-other-impls: + Other Implemetations -------------------- Provided implementations of the ``Allocator`` interface include: diff --git a/pw_tokenizer/tokenization.rst b/pw_tokenizer/tokenization.rst index 7a8eb390fc..54fdb0aae2 100644 --- a/pw_tokenizer/tokenization.rst +++ b/pw_tokenizer/tokenization.rst @@ -511,6 +511,8 @@ the ``database.py`` command line tool. Limitations, bugs, and future work ================================== +.. _module-pw_tokenizer-gcc-template-bug: + GCC bug: tokenization in template functions ------------------------------------------- GCC releases prior to 14 incorrectly ignore the section attribute for template