| :tocdepth: 2 |
| |
| .. _docs-changelog: |
| |
| ===================== |
| What's new in Pigweed |
| ===================== |
| |
| -------------------------------- |
| Talk to the team at Pigweed Live |
| -------------------------------- |
| .. pigweed-live:: |
| |
| .. _docs-changelog-latest: |
| .. _docs-changelog-2025-01-09: |
| |
| ----------- |
| Jan 9, 2025 |
| ----------- |
| .. changelog_highlights_start |
| |
| Highlights (Dec 27, 2024 to Jan 9, 2025): |
| |
| * **Bazel 8**: Pigweed now :ref:`depends on Bazel 8 |
| <docs-changelog-2025-01-09-Build-systems-Bazel>`. |
| |
| * **FuzzTest and CMake**: FuzzTest is now :ref:`supported in |
| CMake projects <docs-changelog-2025-01-09-Modules-pw_fuzzer>`. |
| |
| * **BoringSSL**: ``pw_crypto`` now :ref:`supports |
| BoringSLL <docs-changelog-2025-01-09-Modules-pw_crypto>`. |
| |
| * **pw_rpc Java improvements**: The ``pw_rpc`` Java client now |
| has better :ref:`concurrent RPC request support |
| <docs-changelog-2025-01-09-Modules-pw_rpc>`. |
| |
| .. changelog_highlights_end |
| |
| .. _docs-changelog-2025-01-09-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| New features: |
| |
| .. 68e18edf9f1b3913c73b1a4332bbce6521609916 |
| |
| * Intrusive lists now support move operations. Commit: `Support moving |
| intrusive lists <https://pwrev.dev/255894>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_chrono: |
| |
| pw_chrono |
| --------- |
| New features: |
| |
| .. e88f3c4397c5cafafda8635ac93d42483059a9f9 |
| |
| * ``pw_chrono`` snapshots now support optional clock names. Commit: `Add |
| support for clock names <https://pwrev.dev/253753>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_crypto: |
| |
| pw_crypto |
| --------- |
| New features: |
| |
| .. 462b37b0820e284069b8e42f6e61438177b60cb7 |
| |
| * ``pw_crypto`` now supports :ref:`BoringSSL <module-pw_crypto-boringssl>`. |
| Commit: `Add BoringSSL backend for AES <https://pwrev.dev/231914>`__. |
| |
| Changes: |
| |
| .. 483a24a69950b8be7ae924e28a7504150378c8ee |
| |
| * ``micro_ecc`` support has been removed. Commit: `Remove micro_ecc |
| support <https://pwrev.dev/229672>`__. Bug: :bug:`359924206`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_digital_io_mcuxpresso: |
| |
| pw_digital_io_mcuxpresso |
| ------------------------ |
| New features: |
| |
| .. 8a5fc59a80af2fb2b11c2cd16ecc21a210fe1065 |
| |
| * The new ``pw::digital_io::McuxpressoDigitalInOutInterrupt`` class |
| supports interrupts on the GPIO interrupt block which enables using |
| interrupts on more pins. Commit: `Add McuxpressoDigitalInOutInterrupt |
| support <https://pwrev.dev/247972>`__. |
| |
| Changes: |
| |
| .. 34521ea9d72066a02d4b562eb6d2dd628e424e58 |
| |
| * ``pw::digital_io::McuxpressoDigitalInInterrupt`` has been deprecated. |
| ``pw::digital_io::McuxpressoPintInterrupt`` should be used instead. |
| Commit: `Introduce McuxpressoPintInterrupt |
| <https://pwrev.dev/258994>`__. Bug: :bug:`337927184`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_fuzzer: |
| |
| pw_fuzzer |
| --------- |
| New features: |
| |
| .. 736d6a39f5cdde223bfcbaf6f8c8fec7d512379a |
| |
| * :ref:`FuzzTest <module-pw_fuzzer-guides-using_fuzztest>` can now be |
| used in CMake projects. Commit: `Make FuzzTest usable be external CMake |
| projects <https://pwrev.dev/239049>`__. Bug: :bug:`384978398`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_log_basic: |
| |
| pw_log_basic |
| ------------ |
| Changes: |
| |
| .. a542e417c4367b3b6c4fed88a172b9c2bdd2a837 |
| |
| * The maximum length for the function name field has increased from 20 |
| to 30 characters and is now left-aligned. Commit: `Adjust field widths |
| <https://pwrev.dev/258174>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| Changes: |
| |
| .. 8706efb9847543d226c5cb17494faffcd034cfa0 |
| |
| * Regular callbacks now ignore fields with unset decode callbacks. |
| Previously they caused ``DATA_LOSS`` errors. Commit: `Allow unset |
| callback fields in message structs <https://pwrev.dev/258392>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| New features: |
| |
| .. 15d4ae5ff36cd452023fdfc07835f5f1635f05ef |
| |
| * The Java client now supports making multiple concurrent RPC requests |
| to the same method. Commit: `Increment call_ids for java client |
| <https://pwrev.dev/258792>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_span: |
| |
| pw_span |
| ------- |
| New features: |
| |
| .. 031bf132386f7350cb86338928368f46c5b76d1c |
| |
| * The new docs section :ref:`module-pw_span-start-params` explains why |
| ``pw::span`` objects should be passed by value. Commit: `Recommend passing |
| pw::span objects by value <https://pwrev.dev/257072>`__. Bug: |
| :bug:`387107922`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_stream: |
| |
| pw_stream |
| --------- |
| New features: |
| |
| .. e7380e5da83527b80087e86b63224e052074d10f |
| |
| * The new ``pw::stream::SocketStream::IsReady()`` method indicates |
| whether the streaming socket connection is ready. Commit: `Add ready |
| method to socket stream <https://pwrev.dev/253772>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| Changes: |
| |
| .. 717e4f58092e947eba23afb8be099d2ccf1247c3 |
| |
| * It is now simpler to disable the ``join()`` function when it's not |
| supported. Commit: `Simplify disabling join() function when not |
| supported <https://pwrev.dev/257913>`__. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| Changes: |
| |
| .. 8adc4c3e84423554c5ad6549fefe3d0e035985c6 |
| |
| * The float ABI configuration for Arm Cortex-M33 was changed from |
| ``soft`` to ``softfp``. Commit: `Update m33 float-abi |
| <https://pwrev.dev/259412>`__. Bug: :bug:`388354690`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_toolchain_bazel: |
| |
| pw_toolchain_bazel |
| ------------------ |
| Changes: |
| |
| .. 413a81576837f344c55a8d64b5d1807769e513b0 |
| |
| * Most of ``pw_toolchain_bazel`` has been removed because it has been |
| upstreamed to ``rules_cc``. Commit: `Remove contents |
| <https://pwrev.dev/252472>`__. Bug: :bug:`346388161`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_uart: |
| |
| pw_uart |
| ------- |
| Changes: |
| |
| .. 71c2d0d0e9eb7cc27111a20b3190af1593944676 |
| |
| * It is no longer safe to call any ``pw_uart`` read or write methods |
| from a ``pw::uart::UartNonBlocking::DoRead()`` callback context. Commit: |
| `Restrict UartNonBlocking::DoRead() callback |
| <https://pwrev.dev/255732>`__. Bug: :bug:`384966926`. |
| |
| .. _docs-changelog-2025-01-09-Modules-pw_unit_test: |
| |
| pw_unit_test |
| ------------ |
| Bug fixes: |
| |
| .. 203c6c8fd11fbdf01b51e564de03150f38dab430 |
| |
| * The buffer for expectation logs was increased in size to prevent |
| expectation logs from getting cut off. Commit: `Expectation buffer |
| cleanup <https://pwrev.dev/259055>`__. Bug: :bug:`387513166`. |
| |
| .. _docs-changelog-2025-01-09-Build-systems: |
| |
| Build systems |
| ============= |
| |
| .. _docs-changelog-2025-01-09-Build-systems-Bazel: |
| |
| Bazel |
| ----- |
| Changes: |
| |
| .. b13f7bf334b239174e87d91fbfac8b8c1d209403 |
| |
| * Pigweed now depends on Bazel 8.0.0. Commit: `Update to Bazel 8.0.0 |
| <https://pwrev.dev/242033>`__. Bug: :bug:`372510795`. |
| |
| .. _docs-changelog-2025-01-09-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. b977a3aeb1f4cf5a1b113396bbf9f9af6c1f1658 |
| |
| * The :ref:`Sense tutorial <showcase-sense-tutorial-intro>` has been |
| updated to cover all variations on the Raspberry Pi Pico. Commit: |
| `Refresh Sense tutorial <https://pwrev.dev/254652>`__. |
| |
| .. 9337bf2516b4e0876d5308ec15939cb2dc9e6ab8 |
| |
| * :ref:`Pigweed Toolchain <toolchain>` now has a homepage. Commit: `Add |
| toolchain homepage <https://pwrev.dev/247593>`__. Bug: :bug:`373454866`. |
| |
| .. _docs-changelog-2024-12-26: |
| |
| ------------ |
| Dec 26, 2024 |
| ------------ |
| Highlights (Dec 12, 2024 to Dec 26, 2024): |
| |
| * **TLSF allocator**: ``pw_allocator`` has a new :ref:`two-layer, segregated |
| fit allocator <docs-changelog-2024-12-26-Modules-pw_allocator>`. |
| * **Checked arithmetic**: ``pw_numeric`` has :ref:`a suite of new arithmetic |
| operations <docs-changelog-2024-12-26-Modules-pw_numeric>` that check for |
| overflows. |
| * **Constant expression unit tests**: ``pw_unit_test`` has a |
| :ref:`new constexpr unit test <docs-changelog-2024-12-26-Modules-pw_unit_test>` |
| that runs at both compile-time and runtime. |
| * **Bazel module integration guidance**: :ref:`docs-bazel-integration` now provides |
| guidance on how to integrate Pigweed into projects that use Bazel modules. |
| |
| .. _docs-changelog-2024-12-26-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| New features: |
| |
| .. f674d68203b26bf0207ab79099696e2b3b3cd9b3 |
| |
| * The new :cpp:class:`pw::allocator::TlsfAllocator` is a two-layer, |
| segregated fit allocator. Its 2D array of buckets incurs overhead but it |
| can satisfy requests quickly and has much better fragmentation performance |
| than ``WorstFitAllocator``. Commit: `Add TLSF allocator |
| <https://pwrev.dev/234818>`__. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_build: |
| |
| pw_build |
| -------- |
| New features: |
| |
| .. ee6f9976ba7e78737a1a74ae05f06da397b896c8 |
| |
| * The new ``pw_rust_crates_extension`` Bazel extension lets a project |
| override the ``rust_crates`` repo when needed without requiring every |
| project to define one. Commit: `Add pw_rust_crates_extension |
| <https://pwrev.dev/254952>`__. Bug: :bug:`384536812`. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| New features: |
| |
| .. 999adb191f8f512b524f0a65bd0662ac7854ef20 |
| |
| * Queues and dequeues now have explicit ``constexpr`` constructors. |
| Commit: `Add explicit constexpr constructors for deques/queues |
| <https://pwrev.dev/250434>`__. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_multibuf: |
| |
| pw_multibuf |
| ----------- |
| Changes: |
| |
| .. b439dd3e602e6c3568ff2ed68a12c2ecf90391a9 |
| |
| * :cpp:class:`pw::multibuf::MultiBufAllocator` no longer supports async. |
| :cpp:class:`pw::multibuf::MultiBufAllocatorAsync` should be used |
| instead. Commit: `Move async to new MultiBufAllocatorAsync |
| <https://pwrev.dev/255015>`__. Bug: :bug:`384583239`. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_numeric: |
| |
| pw_numeric |
| ---------- |
| New features: |
| |
| .. d6827c16644efa06f524a702903397e3cc07ba4c |
| |
| .. TODO: https://pwbug.dev/389134105 - Fix these links. |
| |
| * :cpp:type:`pw::CheckedAdd`, :cpp:type:`pw::CheckedIncrement`, |
| :cpp:type:`pw::CheckedSub`, :cpp:type:`pw::CheckedDecrement`, and |
| :cpp:type:`pw::CheckedMul` are new arithmetic methods that check for |
| overflows. Commit: `Add checked_arithmetic.h |
| <https://pwrev.dev/253172>`__. Bug: :bug:`382262919`. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| New features: |
| |
| .. 4f536c6c1137a7282e7f800aa636c79c5c629191 |
| |
| * The new :cpp:class:`pw::ThreadPriority` class is a generic priority |
| class that can be used by any ``pw_thread`` backend. Commit: `Thread |
| priority class <https://pwrev.dev/242214>`__. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| New features: |
| |
| .. 13446e506fb94bcf4345bbf74b7987cff0fe0e3a |
| |
| * ``pw_toolchain`` now supports Arm Cortex-M3. Commit: `Add Cortex M3 |
| support <https://pwrev.dev/254474>`__. |
| |
| .. _docs-changelog-2024-12-26-Modules-pw_unit_test: |
| |
| pw_unit_test |
| ------------ |
| New features: |
| |
| .. c13d91eae61a50dfbe08023983337086509e7a8e |
| |
| * :c:macro:`PW_CONSTEXPR_TEST` is a new unit test that is executed both |
| at compile-time in a ``static_assert()`` and at runtime as a GoogleTest |
| ``TEST()``. Commit: `Test framework for constexpr unit tests |
| <https://pwrev.dev/242213>`__. |
| |
| .. _docs-changelog-2024-12-26-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. 42962f4a909048bb7f9464af018515bb5c9ee94c |
| |
| * :ref:`docs-bazel-integration` has been updated to describe how to |
| integrate Pigweed into projects that use Bazel modules (``bzlmod``). Commit: |
| `Bazel integration: bzlmod, Bazel versions |
| <https://pwrev.dev/254413>`__. |
| |
| .. _docs-changelog-2024-12-11: |
| |
| ------------ |
| Dec 11, 2024 |
| ------------ |
| Highlights (Nov 28, 2024 to Dec 11, 2024): |
| |
| * **New blog post**: :ref:`docs-blog-06-better-cpp-toolchains` |
| summarizes our journey to upstream modular toolchains in rules_cc. |
| |
| * **Customizable enum tokenization**: The new |
| :c:macro:`PW_TOKENIZE_ENUM_CUSTOM` macro lets you customize how enum values |
| are tokenized. |
| |
| * **AES API in pw_crypto**: :ref:`module-pw_crypto` now has an |
| Mbed-TLS backend for AES. |
| |
| .. _docs-changelog-2024-12-11-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| Bug fixes: |
| |
| .. b3d4f6ec721999b6bd4a856386a16c0b102d4f3c |
| |
| * A bug was fixed where the ``FirstFitAllocator`` incorrectly allocated |
| from the front. Commit: `Fix first-fit with threshold |
| <https://pwrev.dev/253233>`__. Bug: :bug:`382513957`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_assert: |
| |
| pw_assert |
| --------- |
| Changes: |
| |
| .. bb9f65d47f203a2623543f5adf20ef15d747524e |
| |
| * Error messages in constant expressions have been improved. Commit: |
| `Improve error messages in constant expressions |
| <https://pwrev.dev/251914>`__. Bug: :bug:`277821237`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. 4a1d9b2c3f76002ad7462e2a4373fa3eedfda692 |
| |
| * :cpp:class:`pw::async2::OnceReceiver` can now be constructed with a |
| value. Commit: `Support value constructor for OnceReceiver |
| <https://pwrev.dev/251452>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_bluetooth_proxy: |
| |
| pw_bluetooth_proxy |
| ------------------ |
| New features: |
| |
| .. ffb532447804634ffa9a97f78886e8422025f9c2 |
| |
| * The new |
| :cpp:func:`pw::bluetooth::proxy::ProxyHost::SendAdditionalRxCredits` |
| method lets you send additional RX credits when needed. Previously this |
| logic was coupled with the L2CAP connection-oriented channel |
| acquisition. Commit: `Separate rx_additional_credits method |
| <https://pwrev.dev/252352>`__. Bug: :bug:`380076024`. |
| |
| .. b336566abf4d6d1119f5373dc534e1f1e1070523 |
| |
| * Transport type for ``pw::bluetooth::proxy::BasicL2capChannel`` can now |
| be specified during channel creation. Commit: `Un-hardcode transport |
| type for BasicL2capChannel <https://pwrev.dev/252556>`__. |
| |
| .. e85884825ea35e9b3b6f86ab0d12d1a1c5e3518d |
| |
| * A flow control mechanism for writes was added. When a channel's write |
| fails because there's no space, and then space becomes available, the |
| channel is now notified. Commit: `Add write flow control mechanism |
| <https://pwrev.dev/251435>`__. Bug: :bug:`380299794`. |
| |
| .. 99944ede9942532e5a12996575497ecb31a10442 |
| |
| * Proxies now reset after receiving ``HCI_Reset`` commands. Commit: |
| `Reset proxy on HCI_Reset <https://pwrev.dev/251472>`__. Bug: |
| :bug:`381902130`. |
| |
| .. 2bfeaec98417551db59ec6dcc718f526a15d193f |
| |
| * The new :cpp:class:`pw::bluetooth::proxy::L2capStatusDelegate` class |
| lets you receive connection/disconnection notifications for a particular |
| L2CAP service. Commit: `Add L2cap service listener API |
| <https://pwrev.dev/249754>`__. Bug: :bug:`379558046`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_build: |
| |
| pw_build |
| -------- |
| New features: |
| |
| .. b8d1cd064d4440e216f62802ab2378eb0c3eb269 |
| |
| * New guidance on :ref:`module-pw_build-bazel-pw_cc_binary` was added. |
| Commit: `Document pw_cc_binary <https://pwrev.dev/252052>`__. |
| |
| Changes: |
| |
| .. 2ce8bc27e467224bf503fada12a29d8a4a2b81d7 |
| |
| * When a ``pw_python_venv`` targets has no source packages and no |
| requirements, an empty Python venv is created and ``pip-compile`` is no |
| longer used. Commit: `Allow for empty Python build venvs |
| <https://pwrev.dev/253253>`__. Bug: :bug:`380293856`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_cli: |
| |
| pw_cli |
| ------ |
| New features: |
| |
| .. 13c7f3ca42864136624da1d8452b0110d61b850e |
| |
| * Specifying whether color should be enabled on an output is now more |
| granular. Commit: `Allow output-specific color checks |
| <https://pwrev.dev/252292>`__. |
| |
| Changes: |
| |
| .. 73b5fbf1ba77139796d29b7a064ec3c76127bae4 |
| |
| * The Python function ``pw_presubmit.tools.exclude_paths()`` was moved |
| to the ``pw_cli.file_filter`` module. Commit: `Move exclude_paths |
| <https://pwrev.dev/252293>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| Bug fixes: |
| |
| .. a7c4dd8b045259a12194742793eaa03aa9e07443 |
| |
| * A bug was fixed where :cpp:class:`pw::Vector` was move-assigning to |
| destroyed objects. Commit: `Do not move assign to destroyed objects in |
| Vector::erase <https://pwrev.dev/251992>`__. Bug: :bug:`381942905`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_crypto: |
| |
| pw_crypto |
| --------- |
| New features: |
| |
| .. 9aceb7c03cab42e1d2ae7c4e2dd9de718fbe3c68 |
| |
| * :ref:`module-pw_crypto` now has an Mbed-TLS backend for AES. Commit: |
| `Implement Mbed-TLS backend for AES <https://pwrev.dev/231912>`__. |
| |
| .. 23cc90c00be0e6f8c3eef0adfe1a0906fa77b346 |
| |
| * The new :cpp:func:`pw::crypto::aes::backend::DoEncryptBlock` is an |
| initial facade for AES. Commit: `Add AES facade |
| <https://pwrev.dev/231911>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_grpc: |
| |
| pw_grpc |
| ------- |
| New features: |
| |
| .. d30c2bbc46ccb4e874da27c3b33dc48e30cdc893 |
| |
| * Data is now queued if a stream or connection has no available send |
| window. Previously data was dropped in this case. The send queues are |
| non-blocking. Commit: `Implement per stream send queues and make sending |
| non-blocking <https://pwrev.dev/249952>`__. Bug: :bug:`382294674`. |
| |
| Bug fixes: |
| |
| .. 983b4f196331b7873c59f555a39ed519cb707943 |
| |
| * A :cpp:class:`pw::multibuf::MultiBufAllocator` is now required when |
| creating a :cpp:class:`pw::grpc::Connection` instance. Commit: `Remove |
| old constructor and make multibuf allocator required |
| <https://pwrev.dev/252555>`__. Bug: :bug:`382294674`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_presubmit: |
| |
| pw_presubmit |
| ------------ |
| New features: |
| |
| .. 9720483d67050eeda1910c707195aca45879ff90 |
| |
| * A new guide for Pigweed contributors on :ref:`managing the Bazel |
| lockfile <docs-bazel-lockfile>` was published. Commit: `Bazel lockfile |
| check <https://pwrev.dev/253554>`__. Bug: :bug:`383387420`. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| Changes: |
| |
| .. eb762cabb91d3712fe2ca6a470172f2164247072 |
| |
| * The newly public ``internal_packet_proto`` library makes it possible |
| to generate ``packet.proto`` code for non-supported languages. E.g. this |
| makes it possible to write a Dart/Flutter RPC client. Commit: `Make |
| packet proto library public in Bazel <https://pwrev.dev/249692>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_snapshot: |
| |
| pw_snapshot |
| ----------- |
| New features: |
| |
| .. b950987d209c57b18389aaca91d9a3a9ef7066f5 |
| |
| * The new ``thread_processing_callback`` parameter of |
| :py:func:`pw_snapshot.processor.process_snapshot` lets you do custom |
| thread processing during snapshot decoding. Commit: `Add per-thread |
| processing callback for snapshot decoding <https://pwrev.dev/251392>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_system: |
| |
| pw_system |
| --------- |
| New features: |
| |
| .. a4d795f13b833950d14ff9803d43e49ec1fb5e47 |
| |
| * In the Bazel build ``rpc_server`` is now a |
| :ref:`module-pw_build-bazel-pw_facade` which lets you swap out the default |
| HDLC server with something else in your project. Commit: `Add facade for rpc |
| server in Bazel <https://pwrev.dev/252172>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| Changes: |
| |
| .. 9e4c976345d4d2de321e17853e9fb86493ff2200 |
| |
| * ``ThreadCore`` logic was moved out of ``pw::Thread``. Commit: `Move |
| ThreadCore logic out of pw::Thread <https://pwrev.dev/253264>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. 23370ed5ed0e01273080c231ee3475916dc74fba |
| |
| * The new :c:macro:`PW_TOKENIZE_ENUM_CUSTOM` macro lets you customize |
| how enum values are tokenized. Commit: `Add macro for tokenizing enums |
| with custom string <https://pwrev.dev/250492>`__. |
| |
| .. _docs-changelog-2024-12-11-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| New features: |
| |
| .. 807a3aa14a2035f3c1693e3c023740d086ce7c94 |
| |
| * In the GN build it is now possible to completely move away from GNU |
| libraries. Commit: `Support replacing GNU libs for ARM |
| <https://pwrev.dev/250572>`__. Bug: :bug:`322360978`. |
| |
| .. _docs-changelog-2024-12-11-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. 4a28597bf8cc64f7cfc4cc019ba969bc10747c2b |
| |
| * A new :ref:`Bazel style guide <docs-pw-style-bazel>` was added. |
| Commit: `Add Bazel style guide <https://pwrev.dev/240811>`__. Bug: |
| :bug:`371564331`. |
| |
| .. 5a62fe471eab617742ded0ba84c693e4f2d29585 |
| |
| * A new blog post on :ref:`C/C++ Bazel toolchains |
| <docs-blog-06-better-cpp-toolchains>` was published. |
| Commit: `Shaping a better future for Bazel C/C++ toolchains |
| <https://pwrev.dev/253332>`__. |
| |
| .. _docs-changelog-2024-11-27: |
| |
| ------------ |
| Nov 27, 2024 |
| ------------ |
| Highlights (Nov 15, 2024 to Nov 27, 2024): |
| |
| * **pw_allocator updates**: The :ref:`module-pw_allocator-api-bucket` class |
| has been refactored to be more flexible and the :ref:`block API |
| <module-pw_allocator-api-block>` has been refactored to support static |
| polymorphism. |
| |
| .. _docs-changelog-2024-11-27-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| Changes: |
| |
| .. 0942b69025f2987ca9512141fe3cf3a7046f042c |
| |
| * ``BestFitBlockAllocator`` was renamed to ``BestFitAllocator`` and |
| ``WorstFitBlockAllocator`` was renamed to ``WorstFitAllocator``. These |
| classes have been refactored to use :ref:`buckets |
| <module-pw_allocator-api-bucket>`. Commit: `Refactor best- and worst-fit |
| allocators to use buckets <https://pwrev.dev/234817>`__. |
| |
| .. 0766dbaf5305202c6f67e18184bb165df8426713 |
| |
| * ``FirstFitBlockAllocator``, ``LastFitBlockAllocator``, and |
| ``DualFirstFitBlockAllocator`` were merged into a single class: |
| :ref:`module-pw_allocator-api-first_fit_allocator`. Commit: `Refactor |
| first fit allocators <https://pwrev.dev/234816>`__. |
| |
| .. 3bfdac7a7826a4e2a1dc7a7174fd8d6276546c26 |
| |
| * The :ref:`module-pw_allocator-api-bucket` class has been refactored to |
| be more flexible. Commit: `Refactor Bucket |
| <https://pwrev.dev/234815>`__. |
| |
| .. 65b5e336df018fbc9d124ca09d71a5dcccd1a8c0 |
| |
| * Metric calculation for blocks that shift bytes has changed. Commit: |
| `Fix metrics for blocks that shift bytes <https://pwrev.dev/249372>`__. |
| Bug: :bug:`378743727`. |
| |
| .. 33d00a77472a6ff545032b213aa24dfe6a39d606 |
| |
| * :cpp:class:`pw::allocator::BlockAllocator` now returns |
| :cpp:class:`pw::allocator::BlockResult`. Commit: `Use BlockResult in |
| BlockAllocator <https://pwrev.dev/234811>`__. |
| |
| .. 6417a523b06e03dce3453e96c3a1bec6ab511768 |
| |
| * The :ref:`block API <module-pw_allocator-api-block>` has been |
| refactored to support static polymorphism. Commit: `Add static |
| polymorphism to Block <https://pwrev.dev/232214>`__. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_bytes: |
| |
| pw_bytes |
| -------- |
| New features: |
| |
| .. a287811e5e99eab8d4ddfcaf9f1a505fd1e3eb17 |
| |
| * The new :cpp:func:`pw::IsAlignedAs` utility functions make it easier |
| to check alignment. Commit: `Add utility for checking alignment |
| <https://pwrev.dev/248192>`__. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_presubmit: |
| |
| pw_presubmit |
| ------------ |
| New features: |
| |
| .. e278ead3bfe1361c3ff08e5329636a35abbcef6c |
| |
| * The new ``includes_presubmit_check`` verifies that ``cc_library`` |
| Bazel targets don't use the ``includes`` attribute. Commit: `Add check |
| for cc_library includes <https://pwrev.dev/251172>`__. Bug: |
| :bug:`380934893`. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| New features: |
| |
| .. f776679bbea5f4ae376ab924d80760bb2f1e69a0 |
| |
| * :ref:`pw_protobuf-message-limitations` now has more guidance around |
| protobuf versioning and ``optional`` fields. Commit: `Expand message |
| structure limitations docs section <https://pwrev.dev/249072>`__. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_transfer: |
| |
| pw_transfer |
| ----------- |
| Changes: |
| |
| .. 1c771e0fd88511ef3550108572572db1f036d0a5 |
| |
| * Warnings logs are now emitted when client or server streams close |
| unexpectedly. Commit: `Log when streams close unexpectedly |
| <https://pwrev.dev/249912>`__. |
| |
| .. 48712ad0655654b4dcc9b62085a58445fe0af696 |
| |
| * The window size on retried data now shrinks in an attempt to reduce |
| network congestion. Commit: `Shrink window size on retried data |
| <https://pwrev.dev/249532>`__. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_unit_test: |
| |
| pw_unit_test |
| ------------ |
| Changes: |
| |
| .. c4d59ce4d011e11781bcb6dc6660ad947a7ee8df |
| |
| * Successful expectations are no longer stringified by default. Commit: |
| `Stop stringifying successful expectations |
| <https://pwrev.dev/248693>`__. |
| |
| .. _docs-changelog-2024-11-27-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| Changes: |
| |
| .. 92e854a4d179f0b340a0f8b5a662012ea4b8635c |
| |
| * A warning log is now emitted when a server receives a completion |
| request but client completion callbacks have been disabled. Commit: |
| `Warn when client completion callback is disabled |
| <https://pwrev.dev/249414>`__. |
| |
| .. _docs-changelog-2024-11-14: |
| |
| ------------ |
| Nov 14, 2024 |
| ------------ |
| .. changelog_highlights_start |
| |
| Highlights (Nov 1, 2024 to Nov 14, 2024): |
| |
| * **ELF API**: The new :cpp:class:`pw::elf::ElfReader` class is a |
| basic reader for ELF files. |
| * **Updated Bluetooth APIs**: There's a new low energy |
| connection-oriented channels API and the :ref:`module-pw_bluetooth` |
| API has been modernized. |
| * **Updated SEED process**: "Intent Approved" and "On Hold" statuses |
| were added to the SEED lifecycle. |
| |
| .. changelog_highlights_end |
| |
| .. _docs-changelog-2024-11-14-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| Changes: |
| |
| .. 1dcac6a863b8adfc930de769ec56fd44f1e4448f |
| |
| * ``pw::allocator::AsPmrAllocator`` was renamed to |
| :cpp:class:`pw::allocator::PmrAllocator`. Commit: `Separate PMR from |
| Allocator <https://pwrev.dev/246412>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. 21933c60384c25d73dba60c90e74cc44d2a446de |
| |
| * The ``new`` operator for coroutines now accepts an optional alignment |
| argument. Commit: `Accept alignment in CoroPromiseType::operator new |
| <https://pwrev.dev/248638>`__. Bug: :bug:`378929156`. |
| |
| .. d20009a8e35dfdb881f77b6d171c697b61dba5c3 |
| |
| * The new :c:macro:`PW_TRY_READY` and :c:macro:`PW_TRY_READY_ASSIGN` |
| helper macros reduce boilerplate in non-coroutine async code. Commit: |
| `Add PW_TRY_READY_* control flow macros <https://pwrev.dev/243818>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_bluetooth: |
| |
| pw_bluetooth |
| ------------ |
| New features: |
| |
| .. c9ad96cf7be8a05a7d1bf6ec933114c7cc39f012 |
| |
| * The new :cpp:class:`pw::bluetooth::low_energy::Channel`, |
| :cpp:class:`pw::bluetooth::low_energy::ChannelListener`, and |
| :cpp:class:`pw::bluetooth::low_energy::ChannelListenerRegistry` classes |
| provide a low energy connection-oriented channels API. Commit: `Add LE |
| Connection-Oriented Channels API <https://pwrev.dev/227371>`__. Bug: |
| :bug:`357142749`. |
| |
| Changes: |
| |
| .. a615b8bf5234f48b8a33e6c837aa7521fa80d92a |
| |
| * The :ref:`module-pw_bluetooth` API has been modernized. Commit: |
| `Modernize APIs <https://pwrev.dev/219393>`__. Bug: :bug:`350994818`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_bluetooth_proxy: |
| |
| pw_bluetooth_proxy |
| ------------------ |
| New features: |
| |
| .. b8ee89e76ff4e8c467ea35291b2a141175c737e9 |
| |
| * :cpp:class:`pw::bluetooth::proxy::L2capCoc` now supports reading. |
| Commit: `L2CAP CoC supports reading <https://pwrev.dev/232172>`__. Bug: |
| :bug:`360934032`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_channel: |
| |
| pw_channel |
| ---------- |
| New features: |
| |
| .. 0a4e6db6ad35d0bf062c22b471fef2a66948a90f |
| |
| * The new :cpp:func:`pw::Channel::PendAllocateWriteBuffer` method |
| simplifies the allocation of write buffers that need small |
| modifications. Commit: `Move to PendAllocateWriteBuffer |
| <https://pwrev.dev/246239>`__. |
| |
| Changes: |
| |
| .. bd17ed6971f608e2d66da8b2954bc13ad3e2c664 |
| |
| * The ``pw::channel::WriteToken`` method was removed. Commit: `Remove |
| WriteToken <https://pwrev.dev/245932>`__. |
| |
| .. 0422de1761e52ad5d1fad821880025fc27facf1c |
| |
| * ``pw_channel`` inheritance has been refactored |
| to ensure that conversions between compatible variants are valid. |
| Commit: `Rework inheritance to avoid SiblingCast |
| <https://pwrev.dev/247732>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_elf: |
| |
| pw_elf |
| ------ |
| New features: |
| |
| .. 8ee78791500354f85df94b228f63b3a42a882040 |
| |
| * The new :cpp:class:`pw::elf::ElfReader` class is a basic reader for |
| ELF files. Commit: `Add ElfReader <https://pwrev.dev/244893>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_i2c: |
| |
| pw_i2c |
| ------ |
| Bug fixes: |
| |
| .. 6165aa470b35106b79b2e57ecec9951cff30acdc |
| |
| * I2C flags are now correctly set for transactions that occur on an I3C |
| bus. Commit: `Set the i2c flags correctly for transactions on an i3c bus |
| <https://pwrev.dev/245754>`__. Bug: :bug:`373451623`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_metric: |
| |
| pw_metric |
| --------- |
| New features: |
| |
| .. a751fa9bd38a30f08a14c336e7bc77878a5d60c5 |
| |
| * ``pwpb`` now prioritizes the ``.pwpb_options`` for protobuf codegen. |
| Commit: `Add metrics_service.pwpb_options to BUILD.gn |
| <https://pwrev.dev/246112>`__. |
| |
| .. aacf94efb59dac4a661e88e2ba95acda20c5ccb1 |
| |
| * The new :cpp:func:`PW_METRIC_TOKEN` makes it easier for tests to |
| create tokens for metrics. Commit: `Expose metric token format via |
| PW_METRIC_TOKEN <https://pwrev.dev/244332>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| New features: |
| |
| .. acbeaab3d280f748d235a31025d7a35dd38fa516 |
| |
| * The ``Find*()`` methods have been extended to support iterating over |
| repeated fields. See :ref:`module-pw_protobuf-read`. Commit: |
| `Extend Find() APIs to support repeated fields <https://pwrev.dev/248432>`__. |
| |
| Changes: |
| |
| .. 6a16fab34795f2976e04457d099a05c671b79b54 |
| |
| * It's no longer necessary to set a callback for every possible field in |
| a message when you're only interested in a few fields. Commit: `Allow |
| unset oneof callbacks <https://pwrev.dev/246692>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_protobuf_compiler: |
| |
| pw_protobuf_compiler |
| -------------------- |
| Changes: |
| |
| .. cd0b4fb52d8fb2012fbd8483f66a48d593e83bb9 |
| |
| * ``pwpb_options`` files are now explicitly processed first, followed by |
| regular ``.options`` files. Commit: `Don't rely on options file ordering |
| <https://pwrev.dev/247472>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| Changes: |
| |
| .. f0ba9b05187506d7526ca3585401c8df7b4e9d4d |
| |
| * The Python client previously reused call IDs after ``16384``. The limit |
| has been increased to ``2097152``. Commit: `Allocate more call IDs in |
| the Python client <https://pwrev.dev/245067>`__. Bug: :bug:`375658481`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_rpc_transport: |
| |
| pw_rpc_transport |
| ---------------- |
| New features: |
| |
| .. 18d5fbfb289c8675dd683d62ab69b83147e9d70e |
| |
| * The new ``pw::rpc::RpcIngress::num_total_packets`` method tracks how |
| many packets an ingress RPC handler has received. Commit: `Track number |
| of RPC packets received <https://pwrev.dev/247194>`__. Bug: |
| :bug:`373449543`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_sensor: |
| |
| pw_sensor |
| --------- |
| New features: |
| |
| .. b7246bf88df6aa030dec7b9510e7015b5035616c |
| |
| * The new ``extras`` key lets applications specify additional metadata |
| that's not supported or used by Pigweed. Commit: `Add freeform extras |
| field to sensor.yaml <https://pwrev.dev/248195>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_spi: |
| |
| pw_spi |
| ------ |
| Changes: |
| |
| .. 6aadd54afb308c09edb833985b387442df732fef |
| |
| * :cpp:class:`pw::spi::Initiator` is now a `non-virtual interface |
| <https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non-Virtual_Interface>`__. |
| Commit: `Finalize non-Virtual interface on |
| Initiator <https://pwrev.dev/236236>`__. Bug: :bug:`308479791`. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_spi_linux: |
| |
| pw_spi_linux |
| ------------ |
| Bug fixes: |
| |
| .. d17b5acd42c6e983ce4b12a7ebc3184205a06d45 |
| |
| * The ``pw::Spi::Initiator::DoWriteRead()`` method now correctly handles |
| transfers where either the write buffer or the read buffer is empty. |
| Commit: `Fix read/write-only transfers <https://pwrev.dev/246053>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_stream: |
| |
| pw_stream |
| --------- |
| New features: |
| |
| .. b2c1616caaff13d41e434cbcb8ae0530a20962ca |
| |
| * The new :cpp:func:`pw::stream::Stream::ReadExact` method reads exactly |
| the number of bytes requested into a provided buffer, if supported. |
| Commit: `Add ReadExact() wrapper <https://pwrev.dev/243552>`__. |
| |
| .. _docs-changelog-2024-11-14-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. 94e2314ddea1499a7868bd3d30621b709e25f7d4 |
| |
| * The new :cpp:func:`pw::tokenizer::Detokenizer::FromElfFile` method |
| constructs a detokenizer from the ``.pw_tokenizer.entries`` section of |
| an ELF binary. Commit: `Add Detokenizer::FromElfFile |
| <https://pwrev.dev/243532>`__. Bug: :bug:`374367947`. |
| |
| Bug fixes: |
| |
| .. 7fb7bb1dc5d69c79de1b0b72316a34a800f2d5b0 |
| |
| * The Python detokenizer now correctly handles multiple nested tokens in |
| one log string. Commit: `Update regex for nested args |
| <https://pwrev.dev/248232>`__. |
| |
| .. _docs-changelog-2024-11-14-SEEDs: |
| |
| SEEDs |
| ===== |
| New features: |
| |
| .. a1acd00d02ebe42116a4982ad809264f3c673021 |
| |
| * "Intent Approved" and "On Hold" statuses were added to the SEED |
| lifecycle. Commit: `(SEED-0001) Add "Intent Approved" and "On Hold" |
| states to lifecycle <https://pwrev.dev/248692>`__. |
| |
| .. _docs-changelog-2024-10-31: |
| |
| ------------ |
| Oct 31, 2024 |
| ------------ |
| Highlights (Oct 18, 2024 to Oct 31, 2024): |
| |
| * The new :c:macro:`PW_TEST_EXPECT_OK`, :c:macro:`PW_TEST_ASSERT_OK`, |
| and :c:macro:`PW_TEST_ASSERT_OK_AND_ASSIGN` macros provide test matchers |
| for :ref:`module-pw_status` and :ref:`module-pw_result` values. |
| * The Sense tutorial has expanded guidance around :ref:`handling crashes |
| and viewing snapshots <showcase-sense-tutorial-crash-handler>`. |
| * The new :cpp:class:`pw::LinkerSymbol` class represents a symbol |
| provided by a linker. |
| * The new ``extra_frame_handlers`` parameter lets you add custom HDLC frame |
| handlers when using the Python-based :ref:`module-pw_system` console. |
| |
| .. _docs-changelog-2024-10-31-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| New features: |
| |
| .. 6fd4792308999b9c5949e9b778994d064a80a8b7 |
| |
| * The new :c:macro:`PW_ALLOCATOR_ENABLE_PMR` macro lets you disable the |
| ability to use an allocator with the polymorphic versions of standard |
| library containers. Commit: `Make pw::Allocator::as_pmr optional |
| <https://pwrev.dev/245254>`__. |
| |
| Changes: |
| |
| .. c3c61885927ee9e8fac187a52b1ab139919fe5e7 |
| |
| * Multiple methods were renamed or removed in preparation for upcoming |
| work to split up :cpp:class:`pw::allocator::Block`. Commit: `Streamline |
| Block API <https://pwrev.dev/232213>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_assert: |
| |
| pw_assert |
| --------- |
| Changes: |
| |
| .. 673e56ac476a345a0f25319633d8ce0ad0c0cd93 |
| |
| * ``pw_assert`` now verifies whether ``PW_CHECK`` message arguments are |
| valid, regardless of what ``pw_assert`` backend is being used. Commit: |
| `Verify PW_CHECK message arguments in the API |
| <https://pwrev.dev/244744>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_assert_tokenized: |
| |
| pw_assert_tokenized |
| ------------------- |
| New features: |
| |
| .. ef5f6bf505343c0926532f53dc788b26c3640048 |
| |
| * :c:macro:`pw_assert_HandleFailure` is now supported. Commit: `Support |
| pw_assert_HandleFailure <https://pwrev.dev/244793>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. cec451dc5c2cb132717068d686e4e034b06762c9 |
| |
| * :cpp:class:`pw::async2::Join` lets you join several separate pendable |
| values. Commit: `Add Join combinator <https://pwrev.dev/244612>`__. |
| |
| .. 0945ffb46234253d08467adebd8869ebb39234fa |
| |
| * The new :cpp:func:`pw::async2::TimeFuture::Reset` method resets a |
| ``TimeFuture`` instance to expire at a specified time. Commit: `Add |
| TimerFuture::Reset <https://pwrev.dev/243993>`__. |
| |
| Changes: |
| |
| .. 9528eac2b6c6243dc5fb6a4d72f33d8d7e0d573c |
| |
| * Waker storage has moved to a macro-based API. See |
| :c:macro:`PW_ASYNC_STORE_WAKER` and :c:macro:`PW_ASYNC_CLONE_WAKER`. |
| Commit: `Move to macro-based Waker API <https://pwrev.dev/245068>`__. |
| Bug: :bug:`376123061`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_bluetooth_proxy: |
| |
| pw_bluetooth_proxy |
| ------------------ |
| New features: |
| |
| .. a8c756860ae104ef5e87439ef4f8cc4fbbb2fab7 |
| |
| * Bazel builds are now supported. Commit: `Add bazel build support |
| <https://pwrev.dev/243874>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_build: |
| |
| pw_build |
| -------- |
| New features: |
| |
| .. 170f745d98d101d73564fa61420f1a0836053033 |
| |
| * The new :cpp:class:`pw::LinkerSymbol` class represents a symbol |
| provided by a linker. Commit: `Add LinkerSymbol |
| <https://pwrev.dev/242635>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_channel: |
| |
| pw_channel |
| ---------- |
| Changes: |
| |
| .. 5f2649a6e5afdecd7b5d59aab06f59bb4d73d9f3 |
| |
| * ``pw::channel::AnyChannel::Write`` was renamed to |
| :cpp:func:`pw::channel::AnyChannel::StageWrite` and |
| ``pw::channel::AnyChannel::PendFlush`` was renamed to |
| :cpp:func:`pw::channel::AnyChannel::PendWrite`. Commit: `Rename |
| {Write->StageWrite, PendFlush->PendWrite} <https://pwrev.dev/245539>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| New features: |
| |
| .. afb18a6ded0c43e91ce85e5ec97ae0206c4873ca |
| |
| * :cpp:class:`pw::IntrusiveSet` is a new class like ``std::set<Key, |
| Compare>`` that uses intrusive items as keys and |
| :cpp:class:`pw::IntrusiveMultiSet` is a new class like |
| ``std::multiset<Key, Compare>`` that uses intrusive items. Commit: `Add |
| IntrusiveSet and IntrusiveMultiSet <https://pwrev.dev/240053>`__. |
| |
| Changes: |
| |
| .. bde3f80e6e038cebe264283af625faf06a64d8d0 |
| |
| * The ``erase`` methods of |
| :cpp:class:`pw::containers::future::IntrusiveList`, |
| :cpp:class:`pw::IntrusiveMap`, and :cpp:class:`pw::IntrusiveMultiMap` |
| have been overloaded to make them easier to use. Commit: `Add methods to |
| erase by item <https://pwrev.dev/243257>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_log: |
| |
| pw_log |
| ------ |
| Changes: |
| |
| .. 661bf47f06e604384a4c7eb7bf79d2f3da71ee74 |
| |
| * The signature for :c:macro:`PW_LOG` macro changed. A ``verbosity`` |
| level must now always be passed as the second argument when invoking |
| ``PW_LOG``. Commit: `Explicitly pass verbosity to PW_LOG |
| <https://pwrev.dev/239035>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_multibuf: |
| |
| pw_multibuf |
| ----------- |
| New features: |
| |
| .. 9ab6e749821eddb8a82f7724c1af10ef6accc016 |
| |
| * The new :cpp:func:`pw::multibuf::FromSpan` function creates a multibuf from |
| an existing span and a ``deleter`` callback. Commit: `Add FromSpan |
| <https://pwrev.dev/245132>`__. Bug: :bug:`373725545`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_multisink: |
| |
| pw_multisink |
| ------------ |
| New features: |
| |
| .. 773331a904413e92d86c6e4cb658af77cf889d76 |
| |
| * The new :cpp:func:`pw::multisink::UnsafeDumpMultiSinkLogsFromEnd` |
| utilitiy function dumps contents as a series of log entries. Commit: |
| `Add UnsafeForEachEntryFromEnd() <https://pwrev.dev/244556>`__. Bug: |
| :bug:`375653884`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_polyfill: |
| |
| pw_polyfill |
| ----------- |
| Changes: |
| |
| .. d3e10fad55171d8cdce399916acbf37b2dec732b |
| |
| * :c:macro:`PW_CONSTINIT` now fails when used without compiler support. |
| Commit: `Make PW_CONSTINIT support mandatory |
| <https://pwrev.dev/243892>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| Bug fixes: |
| |
| .. 368cf8be3cb1909453c9c2cc67ec951517943086 |
| |
| * ``pw_protobuf`` now fails when the ``max_count`` or ``fixed_count`` |
| options of ``pwpb`` are used on unsupported field types. Commit: `Fail |
| when a max count is set with an unsupported type |
| <https://pwrev.dev/236816>`__. |
| |
| Changes: |
| |
| .. 9525d75843cede1c67f78de7c2f86bb30ac98efe |
| |
| * Code generator options can now be specified in files ending with |
| ``.pwpb_options``. This is useful for projects that wish to strictly |
| separate Nanopb and ``pw_protobuf`` options. Commit: `Allow |
| .pwpb_options as an options file extension |
| <https://pwrev.dev/241137>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_ring_buffer: |
| |
| pw_ring_buffer |
| -------------- |
| New features: |
| |
| .. b90180561658453318c36b125fd8af37de713a3f |
| |
| * ``pw_ring_buffer`` readers now support the ``--`` decrement operator. |
| Commit: `Add a decrement operator <https://pwrev.dev/244555>`__. Bug: |
| :bug:`375653884`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_system: |
| |
| pw_system |
| --------- |
| New features: |
| |
| .. 1f2341cd64eaacb9de474510293397b50165b3b5 |
| |
| * The new ``extra_frame_handlers`` parameter lets you add custom HDLC |
| frame handlers when using the Python-based ``pw_system`` console. |
| Commit: `Make console support extra hdlc frame handlers |
| <https://pwrev.dev/245192>`__. |
| |
| Bug fixes: |
| |
| .. 9b2dd9ccb35a49f57c053e88a55da35ad24fc93d |
| |
| * A bug was fixed where the latest logs were not being captured in crash |
| snapshots. Commit: `Ensure latest logs are captured in crash snapshot |
| <https://pwrev.dev/244557>`__. Bug: :bug:`375653884`. |
| |
| .. 0aa57cea2e06c48a24266b21d472155c2379189f |
| |
| * The ``pw_system`` crash dump now includes a main stack thread |
| backtrace. Commit: `Add main stack thread backtrace capture to crash |
| dump <https://pwrev.dev/242337>`__. Bug: :bug:`354767156`. |
| |
| .. ed55dbc3fa5eb05e2b557fad0eff2b1bf1f93751 |
| |
| * The ``pw_system`` crash dump now includes FreeRTOS thread backtraces. |
| Commit: `Add freertos thread backtrace capture to crash dump |
| <https://pwrev.dev/234155>`__. Bug: :bug:`354767156`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| Changes: |
| |
| .. e5db91d7df18444134ce4fede3a1a0c3a9f5c1fc |
| |
| * The legacy ``thread::Id`` alias has been migrated to |
| ``pw::Thread::id``. Commit: `Migrate to Thread::id |
| <https://pwrev.dev/238432>`__. Bug: :bug:`373524945`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. 4b7733f3f0c9e010ccd6bee3ff45d64b92e65fa7 |
| |
| * :c:macro:`PW_APPLY` is a new general macro that supports macro |
| expansion and makes tokenizing enums easier. Commit: `Create generic |
| macro for tokenizing enums <https://pwrev.dev/242715>`__. Bug: |
| :bug:`3627557773`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| New features: |
| |
| .. b40ecc98b47a37b187f40408ae0c3d89ef9b5f79 |
| |
| * ``pw_toolchain`` now supports the Arm Cortex-M55F GCC toolchain. |
| Commit: `Add ARM Cortex-M55F GCC toolchain |
| <https://pwrev.dev/244672>`__. Bug: :bug:`375562597`. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_unit_test: |
| |
| pw_unit_test |
| ------------ |
| New features: |
| |
| .. ce0e3e2d1b7eec7cdf59fbb2ceed2b1cb3edd1ec |
| |
| * The new :c:macro:`PW_TEST_EXPECT_OK`, :c:macro:`PW_TEST_ASSERT_OK`, |
| and :c:macro:`PW_TEST_ASSERT_OK_AND_ASSIGN` macros provide test matchers |
| for :ref:`module-pw_status` and :ref:`module-pw_result` values. Commit: |
| `Define pw::Status matchers <https://pwrev.dev/243615>`__. Bugs: |
| :bug:`338094795`, :bug:`315370328`. |
| |
| Changes: |
| |
| .. 618eaa4f4c1ee0357bdfba85290a9a6e8c9aee71 |
| |
| * :cpp:func:`RUN_ALL_TESTS` is now a function. Previously it was a |
| macro. Commit: `Use a function for RUN_ALL_TESTS() |
| <https://pwrev.dev/243889>`__. |
| |
| .. _docs-changelog-2024-10-31-Modules-pw_watch: |
| |
| pw_watch |
| -------- |
| New features: |
| |
| .. 5e7d1a0fddab1204d94ff43cee833431eda75af8 |
| |
| * ``pw_watch`` can now be invoked through ``bazelisk``. Commit: `Bazel |
| run support <https://pwrev.dev/242094>`__. Bug: :bug:`360140397`. |
| |
| .. _docs-changelog-2024-10-31-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. c5e6cab3b190f4cdc32e3209582a7697f2992a85 |
| |
| * The Sense tutorial has expanded guidance around :ref:`handling crashes |
| and viewing snapshots <showcase-sense-tutorial-crash-handler>`. Commit: |
| `Add crash handler section to sense tutorial |
| <https://pwrev.dev/242735>`__. Bug: :bug:`354767156`. |
| |
| .. _docs-changelog-2024-10-31-Targets: |
| |
| Targets |
| ======= |
| |
| .. _docs-changelog-2024-10-31-Targets-RP2350: |
| |
| RP2350 |
| ------ |
| New features: |
| |
| .. 892394fe74db6decd3799873f910862cef6a182d |
| |
| * ``MemManage``, ``BusFault``, and ``UsageFault`` exception handlers are |
| now enabled on the RP2350 target. Commit: `Add MemManage, BusFault & |
| UsageFault exception handler <https://pwrev.dev/242336>`__. Bug: |
| :bug:`354767156`. |
| |
| .. _docs-changelog-2024-10-17: |
| |
| ------------ |
| Oct 17, 2024 |
| ------------ |
| Highlights (Oct 04, 2024 to Oct 17, 2024): |
| |
| * **Math module**: The new :ref:`module-pw_numeric` module is a collection of |
| mathematical utilities optimized for embedded systems. |
| * **C++ Coroutines**: The new :ref:`docs-blog-05-coroutines` blog post |
| discusses the nuances of using coroutines in embedded systems. |
| * **New SEEDs**: SEEDs :ref:`seed-0103` and :ref:`seed-0128` were accepted. |
| |
| .. _docs-changelog-2024-10-17-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| New features: |
| |
| .. 9aae89c7bab1de5a914c462f814fec6528e27a0f |
| |
| * The new :cpp:func:`pw::Allocator::MakeUniqueArray` template function |
| allows a ``UniquePtr`` to hold an array of elements. Commit: `Add |
| UniquePtr::MakeUniqueArray <https://pwrev.dev/239913>`__. |
| |
| .. d3a6358972d5897266e2b5ecf50681a8e8456e5b |
| |
| * The new :cpp:class:`pw::allocator::BlockResult` class communicates the |
| results and side effects of allocation requests. Commit: `Add |
| BlockResult <https://pwrev.dev/232212>`__. |
| |
| Bug fixes: |
| |
| .. 57183dee645126c67dcccbb479c730492ef168f6 |
| |
| * A data race was fixed. Commit: `Fix data race |
| <https://pwrev.dev/242736>`__. Bug: :bug:`372446436`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. 068949bbe9f8a5a03d9b44ae740461c4c01691ca |
| |
| * The new :cpp:func:`pw::async2::EnqueueHeapFunc` function heap-allocates |
| space for a function and enqueues it to run on a dispatcher. |
| Commit: `Add EnqueueHeapFunc <https://pwrev.dev/242035>`__. |
| |
| Changes: |
| |
| .. eb03d32b80c25d59000d86fc8417cce91cbc243a |
| |
| * :cpp:class:`pw::async2::PendFuncTask` now has a default template type |
| of :cpp:type:`pw::Function`. Commit: `Provide default template type for |
| PendFuncTask <https://pwrev.dev/242918>`__. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_build: |
| |
| pw_build |
| -------- |
| New features: |
| |
| .. 7698704f57a69ff5a913f0b2d43d3cc419d10446 |
| |
| * The newly relanded ``pw_copy_and_patch_file`` feature provides the |
| ability to patch a file during a Bazel or GN build. Commit: `Add |
| pw_copy_and_patch_file <https://pwrev.dev/240832>`__. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_cli_analytics: |
| |
| pw_cli_analytics |
| ---------------- |
| New features: |
| |
| .. 6ae64ef2889810d43682b85e0c793018ae9a507c |
| |
| * The new :ref:`module-pw_cli_analytics` module collects and transmits |
| analytics on usage of the ``pw`` command line interface. Commit: |
| `Initial commit <https://pwrev.dev/188432>`__. Bug: :bug:`319320838`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_console: |
| |
| pw_console |
| ---------- |
| Bug fixes: |
| |
| .. 8bd77aba07ab3dce5220b23994cd3ecfbcefda10 |
| |
| * A divide-by-zero error in the ``pw_console`` progress bar was fixed. |
| Commit: `Fix progress bar division by zero |
| <https://pwrev.dev/233033>`__. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_env_setup: |
| |
| pw_env_setup |
| ------------ |
| Changes: |
| |
| .. a789e9c308f3b289c950e8afb3d891fa5b7b39ac |
| |
| * ``//pw_env_setup/py/pw_env_setup/cipd_setup/black.json`` has been |
| removed. Commit: `Remove black.json <https://pwrev.dev/241359>`__. |
| |
| .. c42ec10b3824a5e15bc4e92d2065bd95143e9aad |
| |
| * Python 2 support has been removed from ``pw_env_setup``. Commit: `Drop |
| Python 2 support <https://pwrev.dev/242713>`__. Bug: :bug:`373905972`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_numeric: |
| |
| pw_numeric |
| ---------- |
| New features: |
| |
| .. 0c98e51f046d2de13e5ea8509452b99beb6776ec |
| |
| * The new :ref:`module-pw_numeric` module is a collection of |
| mathematical utilities optimized for embedded systems. Commit: `New |
| module for mathematical utilities <https://pwrev.dev/240655>`__. |
| |
| .. 1eadbb9e0d8de149ee300c9f60933878498b3544 |
| |
| * The new :cpp:func:`pw::IntegerDivisionRoundNearest` function performs |
| integer division and rounds to the nearest integer. It gives the same |
| result as ``std::round(static_cast<double>(dividend) / |
| static_cast<double>(divisor))`` but requires no floating point |
| operations and is ``constexpr``. Commit: `Rounded integer division |
| <https://pwrev.dev/240656>`__. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| Changes: |
| |
| .. 205570386eac8fe6e0269b7fbbab1449eb565036 |
| |
| * ``oneof`` protobuf fields can't be inlined within a message structure. |
| They must be encoded and decoded using callbacks. See |
| :ref:`pw_protobuf-per-field-apis`. Commit: `Force use of callbacks for oneof |
| <https://pwrev.dev/242392>`__. Bug: :bug:`373693434`. |
| |
| .. 6efc99b3ee854dd54a0b1465d9014c54e01b21b9 |
| |
| * The ``import_prefix`` parameter in the |
| ``pw_protobuf.options.load_options`` Python function was replaced with |
| an ``options_files`` parameter that lets you directly specify the |
| location of ``.options`` files. Commit: `Support directly specifying |
| options file locations <https://pwrev.dev/240833>`__. Bug: |
| :bug:`253068333`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| Bug fixes: |
| |
| .. 05e93dadc080e45d624d92b80879297cfade417c |
| |
| * A bug was fixed where previously ``Call`` objects were not getting |
| reinitialized correctly. Commit: `Fix Call not getting reset on default |
| constructor assignment <https://pwrev.dev/239718>`__. Bug: |
| :bug:`371211198`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_spi: |
| |
| pw_spi |
| ------ |
| Changes: |
| |
| .. 4321a46654fae21df8e8fb971cd5c618b8b73d3f |
| |
| * :cpp:class:`pw::spi::Initiator` now uses a non-virtual interface (NVI) |
| pattern. Commit: `Use non-virtual interface (NVI) pattern on |
| pw::spi::Initiator <https://pwrev.dev/236234>`__. Bug: :bug:`308479791`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_stream_uart_mcuxpresso: |
| |
| pw_stream_uart_mcuxpresso |
| ------------------------- |
| Changes: |
| |
| .. d08c60cad881afa835a22d2bbfe36a0d6f018c1c |
| |
| * :ref:`module-pw_stream_uart_mcuxpresso` is being merged into |
| :ref:`module-pw_uart_mcuxpresso`. Commit: `Remove dma_stream |
| <https://pwrev.dev/241201>`__. Bug: :bug:`331617914`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_system: |
| |
| pw_system |
| --------- |
| New features: |
| |
| .. fd6b7a96cd142fcfbf979c2ebf3ea4ac2e342612 |
| |
| * The new ``--debugger-listen`` and ``--debugger-wait-for-client`` |
| options make it easier to debug the ``pw_system`` console. Commit: `Add |
| \`debugger-listen\` and \`debugger-wait-for-client\` options |
| <https://pwrev.dev/233752>`__. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. be439834757b0abcd0e81a77a0c8c39beca2d4db |
| |
| * All domains from ELF files are now loaded by default. Commit: `Load |
| all domains from ELF files by default <https://pwrev.dev/239509>`__. |
| Bugs: :bug:`364955916`, :bug:`265334753`. |
| |
| .. 56aa667aaa527d86241d27c5361e0d27f5aed06d |
| |
| * CSV databases now include the token's domain as the third column. |
| Commit: `Include the domain in CSV databases |
| <https://pwrev.dev/234414>`__. Bug: :bug:`364955916`. |
| |
| .. 9c37b722d9a807222c289069967222166c8613f5 |
| |
| * Tokenizing enums is now supported. Commit: `Add support for tokenizing |
| enums <https://pwrev.dev/236262>`__. Bug: :bug:`362753838`. |
| |
| Changes: |
| |
| .. 17df82d4c2b77d1667f24f5b27a256dbab31686f |
| |
| * When a domain is specified, any whitespace will be ignored in domain |
| names and removed from the database. Commit: `Ignore whitespace in |
| domain values <https://pwrev.dev/241212>`__. Bug: :bug:`362753840`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| New features: |
| |
| .. 0125f4a94c827612f1ae863b60d3fa301fbd773c |
| |
| * The new :ref:`module-pw_toolchain-bazel-compiler-specific-logic` |
| documentation provides guidance on how to handle |
| logic that differs between compilers. Commit: `Add Bazel mechansim for |
| clang/gcc-specific flags <https://pwrev.dev/238429>`__. Bug: |
| :bug:`361229275`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_uart: |
| |
| pw_uart |
| ------- |
| New features: |
| |
| .. b39ad5c71df860223a8f908219bfdcfbdda1e5f5 |
| |
| * The new :cpp:class:`pw::uart::UartStream` class implements the |
| :cpp:class:`pw::stream::NonSeekableReaderWriter` interface on top of a |
| UART device. Commit: `Add pw::uart::UartStream |
| <https://pwrev.dev/241200>`__. Bug: :bug:`331603164`. |
| |
| .. f6a7bb781754447aa9eea82af60962070815b4f8 |
| |
| * The new :cpp:class:`pw::uart::UartBlockingAdapter` class provides a |
| blocking UART interface on top of a |
| :cpp:class:`pw::uart::UartNonBlocking` device. Commit: `Add |
| UartBlockingAdapter <https://pwrev.dev/238393>`__. Bug: |
| :bug:`369679732`. |
| |
| .. bdcf65850213372533c9422fdec0a199af112161 |
| |
| * The new :cpp:func:`pw::uart::UartNonBlocking::FlushOutput` function |
| ensures that all enqueued data has been transmitted. Commit: `Add |
| UartNonBlocking::FlushOutput() <https://pwrev.dev/238572>`__. Bug: |
| :bug:`370051726`. |
| |
| .. _docs-changelog-2024-10-17-Modules-pw_web: |
| |
| pw_web |
| ------ |
| Changes: |
| |
| .. c4ea179e91c6aee6b9d41b9fe301269189970850 |
| |
| * The ``device`` RPC APIs now support creating request messages for RPCs |
| and calling the ``device`` API with those request messages. Commit: |
| `Improvements to \`device\` RPC APIs <https://pwrev.dev/238052>`__. |
| |
| .. _docs-changelog-2024-10-17-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. 91d4349e08e22c50e5a738dee31cc95724eab50d |
| |
| * The new :ref:`docs-blog-05-coroutines` blog post discusses the nuances |
| of using coroutines in embedded systems. Commit: `Add coroutine blog |
| post <https://pwrev.dev/216111>`__. |
| |
| Changes: |
| |
| .. 84375274c2a7dbc0fc29cb1e718d8cdfa05085fa |
| |
| * Guides for contributing ``pigweed.dev`` documentation have been |
| consolidated into :ref:`contrib-docs-guides`. Commit: `Consolidate |
| content for pigweed.dev contributors <https://pwrev.dev/242192>`__. |
| |
| .. _docs-changelog-2024-10-17-SEEDs: |
| |
| SEEDs |
| ===== |
| New features: |
| |
| .. 385019a0292797dd63f00f008efe36d52d4d698a |
| |
| * SEED :ref:`seed-0103` was accepted. Commit: `(SEED-0103) pw_protobuf: |
| Past, present, and future <https://pwrev.dev/133971>`__. |
| |
| .. ec62be9c7c9e28c8bae26d9e73f1ce341e5e5cd5 |
| |
| * :ref:`seed-0128` was accepted. Commit: `(SEED-0128) Abstracting thread |
| creation <https://pwrev.dev/206670>`__. |
| |
| .. _docs-changelog-2024-10-17-Targets: |
| |
| Targets |
| ======= |
| |
| .. _docs-changelog-2024-10-17-Targets-rp2040: |
| |
| RP2040 |
| ------ |
| New features: |
| |
| .. 8e0d91c3f7da31448419584ae9287de57ed5452f |
| |
| * A new helper, ``flash_rp2350``, was added to |
| ``//targets/rp2040/flash.bzl``. Commit: `Update \`flash_rp2040\` helper |
| with --chip argument <https://pwrev.dev/242917>`__. |
| |
| .. _docs-changelog-2024-10-03: |
| |
| ----------- |
| Oct 3, 2024 |
| ----------- |
| |
| Highlights (Sep 20, 2024 to Oct 3, 2024): |
| |
| * The :ref:`module-pw_async2` and :ref:`module-pw_containers` docs |
| now contain code examples that are built and tested alongside the rest |
| of Pigweed, minimizing the chance that they bit rot over time. |
| * The new :cpp:class:`pw::async2::Dispatcher` class is a single- |
| threaded, cooperatively scheduled runtime for async tasks. |
| * The new :cpp:class:`pw::uart::UartBase` class provides a common |
| abstract base class for UART interfaces. |
| * :cpp:class:`pw::rpc::RawServerReaderWriter` and |
| :cpp:class:`pw::rpc::RawClientReaderWriter` have new methods that let |
| you directly serialize RPC payloads to the RPC system's encoding buffer |
| instead of requiring a copy from an externally managed buffer. |
| |
| .. _docs-changelog-2024-10-03-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| New features: |
| |
| .. 020780642847dba69a9b2025f1f698fe3d8e4801 |
| |
| * The new :cpp:func:`pw::allocator::CalculateFragmentation` method |
| calculates a fragmentation metric. This should not be invoked on-device |
| unless the device has robust floating-point support. Commit: `Add |
| MeasureFragmentation <https://pwrev.dev/238417>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. 801fb32919777aefd7a734ce9c2c1e6aec782ab7 |
| |
| * The new :cpp:class:`pw::async2::Dispatcher` class is a single- |
| threaded, cooperatively scheduled runtime for async tasks. Commit: |
| `Refactor Dispatcher to raise top-level API out of CRTP |
| <https://pwrev.dev/237972>`__. Bug: :bug:`342000726`. |
| |
| .. 846bb7d3672e94c13451bec81098d3304d8395a9 |
| |
| * The :ref:`module-pw_async2` docs now have examples. Commit: `Expand |
| docs with examples <https://pwrev.dev/234095>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_boot: |
| |
| pw_boot |
| ------- |
| Changes: |
| |
| .. fba0833c176a79ec83403fa9d48407c5ddebb99f |
| |
| * The ``main()`` function forward declaration has been moved out of an |
| explicit ``extern C`` block to prevent pedantic warnings in newer Clang |
| toolchains. Commit: `Move main forward declaration out of extern "C" |
| block <https://pwrev.dev/237333>`__. Bug: :bug:`366374135`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_build: |
| |
| pw_build |
| -------- |
| Changes: |
| |
| .. 53b16cd8d2907855b13bec9159286927de602a72 |
| |
| * The rules that previously existed in ``//pw_build/pigweed.bzl`` have |
| been split into separate files. If you relied on |
| ``//pw_build/pigweed.bzl`` you may need to update some ``load()`` |
| statements in your Bazel files. Commit: `Break apart pigweed.bzl |
| <https://pwrev.dev/239133>`__. Bug: :bug:`370792896`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_chrono: |
| |
| pw_chrono |
| --------- |
| New features: |
| |
| .. 279ab4a35543900b62e674d14c2e663532ad5a18 |
| |
| * The new ``--stamp`` Bazel flag ensures that Bazel builds properly |
| record the actual build time as opposed to a cached value. Commit: |
| `Properly stamp build time in Bazel <https://pwrev.dev/237809>`__. Bug: |
| :bug:`367739962`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| New features: |
| |
| .. 819dd2ceb430eae53909bea7d5a23c7743ef0fc2 |
| |
| * The ``pw_containers`` docs now provides examples on how to add |
| intrusive items to multiple containers. See |
| :ref:`module-pw_containers-intrusive_list-example`. Commit: |
| `Multiple container example <https://pwrev.dev/237472>`__. |
| |
| .. 85469bdd7f4b8eea95fad4514002383e09210a6f |
| |
| * The :ref:`module-pw_containers` docs now have code examples that are |
| built and tested as part of the normal upstream Pigweed build, which |
| helps ensure that they don't bit rot. Commit: `Add examples |
| <https://pwrev.dev/236612>`__. |
| |
| Bug fixes: |
| |
| .. 92ab0326113d1d6732a6d81dcc25abb330053b22 |
| |
| * A bug was fixed where nodes in an ``AATreeItem`` could become |
| orphaned. Commit: `Fix tree rebalancing <https://pwrev.dev/237415>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_log: |
| |
| pw_log |
| ------ |
| Changes: |
| |
| .. 5d9a1e84e7c55a7b194a8bf459b720cbba220d0c |
| |
| * The ``PW_MODULE_LOG_NAME_DEFINED`` macro has been removed. Commit: |
| `Remove unused macro PW_MODULE_LOG_NAME_DEFINED |
| <https://pwrev.dev/238554>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_metric: |
| |
| pw_metric |
| --------- |
| Bug fixes: |
| |
| .. 30dcf2b202c792599151e7b09699e836e3cc44a3 |
| |
| * A bug causing ``pw::metric::Metric::Dump()`` and |
| ``pw::metric::Group::Dump()`` to log invalid JSON objects was fixed. |
| Commit: `Emit valid JSON from Metric::Dump |
| <https://pwrev.dev/237933>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_preprocessor: |
| |
| pw_preprocessor |
| --------------- |
| Changes: |
| |
| .. 92438518417d49c3457090c1b3c57f71007743e8 |
| |
| * ``PW_MACRO_ARG_COUNT`` now supports up to 256 arguments. Commit: |
| `Expand PW_MACRO_ARG_COUNT to 256 arguments |
| <https://pwrev.dev/237993>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_presubmit: |
| |
| pw_presubmit |
| ------------ |
| Bug fixes: |
| |
| .. 6422c9ae137ad37a9ec172dcd95f294ce5631f82 |
| |
| * A bug was fixed that was causing Pigweed's auto-generated ``rustdoc`` |
| API references to not be built. ``rustdoc`` documentation at |
| ``pigweed.dev/rustdoc/*`` should be working again. Commit: `Have |
| docs_build check rust docs <https://pwrev.dev/238189>`__. Bug: |
| :bug:`369864378`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_rpc: |
| |
| pw_rpc |
| ------ |
| New features: |
| |
| .. 8e2fc6cfe825631416043a972cdd93875562a4fd |
| |
| * :cpp:class:`pw::rpc::RawServerReaderWriter` and |
| :cpp:class:`pw::rpc::RawClientReaderWriter` have new methods that let |
| you directly serialize RPC payloads to the RPC system's encoding buffer |
| instead of requiring a copy from an externally managed buffer. Commit: |
| `Add callback writes to raw RPC call objects |
| <https://pwrev.dev/239353>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_spi: |
| |
| pw_spi |
| ------ |
| New features: |
| |
| .. c25923e13c339cc678e8900770a512b85064f99a |
| |
| * ``operator!=`` is now implemented. Commit: `Minor enhancements to |
| pw::spi::Config <https://pwrev.dev/238932>`__. |
| |
| Changes: |
| |
| .. c25923e13c339cc678e8900770a512b85064f99a |
| |
| * ``operator()``, ``operator==``, and ``operator!=`` are now marked |
| ``constexpr`` to enable compile-time equality checking. Commit: `Minor |
| enhancements to pw::spi::Config <https://pwrev.dev/238932>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_spi_rp2040: |
| |
| pw_spi_rp2040 |
| ------------- |
| Changes: |
| |
| .. 783b29c23dd865fde344501c1b99adba4c956479 |
| |
| * ``spi_init()`` from the Pico SDK must be called before using the |
| ``pw_spi`` initiator. Commit: `Minor cleanup |
| <https://pwrev.dev/236233>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| Changes: |
| |
| .. 30bdace4866039e26a05f8baa379630e066ad660 |
| |
| * The old ``pw::Thread`` constructor that takes ``void(void*)`` has been |
| removed from the public API. This is a breaking change. Constructor |
| usage should be migrated to the new constructor that takes |
| ``pw::Function<void()>``. Commit: `Make the deprecated Thread |
| constructor private <https://pwrev.dev/236435>`__. Bug: |
| :bug:`367786892`. |
| |
| .. 2a0f0dfccc19b86a686777afa647b0c75a87c863 |
| |
| * The ``pw::thread::Thread`` class was renamed to |
| :cpp:type:`pw::Thread`. Commit: `Migrate from pw::thread::Thread to |
| pw::Thread <https://pwrev.dev/236723>`__. |
| |
| .. f1070484e7d2f4e429332c6d8520a3676b8cb965 |
| |
| * ``pw::thread::Id`` has been renamed to ``pw::Thread::id``. Commit: |
| `Introduce pw::Thread and pw::Thread::id <https://pwrev.dev/236796>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. e26be58d6db0215e6a762a5a28ad74584e9a0482 |
| |
| * The new :c:macro:`PW_TOKENIZER_DEFINE_TOKEN` macro makes it easier to |
| support tokenized enums and domains. Commit: `Expose API to define new |
| token entry <https://pwrev.dev/238272>`__. Bug: :bug:`369881416`. |
| |
| Changes: |
| |
| .. 02a68bb680ebddeba8f0ad6cbbc6bb81d7568759 |
| |
| * CSV databases now have 4 columns: token, date removed, domain, and |
| string. The domain column was added as part of :ref:`seed-0105`. Legacy |
| databases that only support the other 3 columns continue to be |
| supported. Tokens in legacy databases are always in the default domain |
| ``""``. Commit: `Support CSV databases with the domain |
| <https://pwrev.dev/234413>`__. Bug: :bug:`364955916`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| Changes: |
| |
| .. bf7078a044353df9683ecb65561a0edca45a4f95 |
| |
| * The ``pw_toolchain`` docs were refactored. Bazel-specific guidance is |
| now in :ref:`module-pw_toolchain-bazel` and GN-specific guidance is now |
| in :ref:`module-pw_toolchain-gn`. Commit: `Split out build-system |
| specific docs <https://pwrev.dev/238816>`__. |
| |
| .. 3d0fac908c139ce83eed93727601d13747b03bf7 |
| |
| * The Bazel rules at ``//pw_toolchain/args/BUILD.bazel`` moved to |
| ``//pw_toolchain/cc/args/BUILD.bazel``. If you rely on these rules you |
| may need to update your ``load()`` statements. Commit: `Move |
| pw_toolchain/args to pw_toolchain/cc/args <https://pwrev.dev/238817>`__. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_transfer: |
| |
| pw_transfer |
| ----------- |
| Bug fixes: |
| |
| .. da9a7e7cc2bd983d428949a6f5d85b9757b5178f |
| |
| * A bug was fixed where resumed transfers would send a window of ``0`` |
| repeatedly. Commit: `Fix offset receive transfer startup |
| <https://pwrev.dev/237095>`__. Bug: :bug:`368620868`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_uart: |
| |
| pw_uart |
| ------- |
| New features: |
| |
| .. 7dc3b1b2a69972ae19bbe43f922aefd6dda73a3e |
| |
| * The new :cpp:class:`pw::uart::UartBase` class provides a common |
| abstract base class for UART interfaces. Commit: `Add UartBase class |
| <https://pwrev.dev/238092>`__. Bug: :bug:`369678735`. |
| |
| .. b4e75393442526d409968e4aac685515944b3e3e |
| |
| * The new :cpp:func:`pw::uart::Uart::ReadAtLeast` method reads data from |
| the UART and blocks until at least the specified number of bytes have |
| been received. The new :cpp:func:`pw::uart::Uart::ReadExactly` method |
| reads data from the UART and blocks until the entire buffer has been |
| filled. Commit: `Add ReadAtLeast and ReadExactly methods |
| <https://pwrev.dev/236268>`__. Bug: :bug:`368149122`. |
| |
| .. f946f6ae13c3bbc2a648b36f9ff55642e9d23b34 |
| |
| * The new :cpp:class:`pw::uart::UartNonBlocking` class provides a |
| callback-based interface for performing non-blocking UART communication. |
| It defines the interface that concrete UART implementations must adhere |
| to. Commit: `Add uart_non_blocking.h API <https://pwrev.dev/210371>`__. |
| Bugs: :bug:`341356437`, :bug:`331617095`. |
| |
| .. 1dc9a789f52aad1f0e738a1cfd5993e2272c38d2 |
| |
| * The new :cpp:func:`pw::uart::Uart::SetFlowControl` method lets |
| applications configure hardware flow control on UART devices. Commit: |
| `Add method to set flow control <https://pwrev.dev/237953>`__. |
| |
| Changes: |
| |
| .. d31705b84d24f0ef17e6b8eef6cae13f96f942e4 |
| |
| * ``pw::uart::Uart::ConservativeReadAvailable()`` was moved to |
| :cpp:func:`pw::uart::UartBase::ConservativeReadAvailable()` and |
| ``pw::uart::Uart::ClearPendingReceiveBytes()`` was moved to |
| :cpp:func:`pw::uart::UartBase::ClearPendingReceiveBytes()`. Commit: |
| `Move non-blocking methods from Uart to UartBase |
| <https://pwrev.dev/238533>`__. Bug: :bug:`369679732`. |
| |
| .. _docs-changelog-2024-10-03-Modules-pw_uart_mcuxpresso: |
| |
| pw_uart_mcuxpresso |
| ------------------ |
| Bug fixes: |
| |
| .. 94d2c3995c8a14995490ef7de015e933a960c2d5 |
| |
| * A bug was fixed where the ``pw::uart::DmaUartMcuxpresso::Deinit()`` |
| method didn't clear an initialization flag, which caused the |
| ``pw::uart::DmaUartMcuxpresso::Init()`` method to be skipped on |
| subsequent enables. Commit: `Fix disable bug |
| <https://pwrev.dev/237394>`__. |
| |
| .. _docs-changelog-2024-10-03-Docs: |
| |
| Docs |
| ==== |
| New features: |
| |
| .. 2ef99131bbb73e475f64281b6515eedba4a8cb79 |
| |
| * The Pigweed blog now has an `RSS feed <https://pigweed.dev/rss.xml>`_. |
| Commit: `Create RSS feed for blog <https://pwrev.dev/225491>`__. Bug: |
| :bug:`345857642`. |
| |
| .. 8f18755dc9a225caacf2b190d1114ebfda4a2642 |
| |
| * The new blog post :ref:`blog-04-fixed-point` outlines how replacing |
| soft floats with fixed-point arithmetic can result in speed improvements |
| and binary size reductions without sacrificing correctness. Commit: `Add |
| fixed point blog <https://pwrev.dev/234312>`__. |
| |
| Bug fixes: |
| |
| .. e81cd5e642a0c92264caafb14a2f4931cb14fced |
| |
| * When a Pigweed module is listed as supporting Rust in |
| ``//docs/module_metadata.json``, a link to that module's ``rustdoc`` API |
| reference is now auto-generated in the ``pigweed.dev`` site nav. Commit: |
| `Auto-link to Rust API references <https://pwrev.dev/237934>`__. Bug: |
| :bug:`328503976`. |
| |
| .. _docs-changelog-2024-10-03-SEEDs: |
| |
| SEEDs |
| ===== |
| Changes: |
| |
| .. 905bce3bd61280a8254ac5b3b2f78e2d3059faa0 |
| |
| * SEED-0123 was rejected because Pigweed ended up upstreaming the |
| relevant APIs to ``rules_cc`` instead of sprouting them into a separate |
| repo. Commit: `(SEED-123) Reject the SEED <https://pwrev.dev/236453>`__. |
| |
| .. _docs-changelog-2024-10-03-Targets: |
| |
| Targets |
| ======= |
| .. a5a199593f1375177d5805f882f303d4c8b8cea2 |
| |
| * The ``main()`` forward declaration for ``emcraft_sf2_som``, |
| ``host_device_simulator``, and ``stm32f429i_disc1_stm32cube`` are no |
| longer explicitly marked ``extern C`` to prevent pedantic warnings in |
| newer Clang toolchains. Commit: `Remove implicit extern C |
| <https://pwrev.dev/237092>`__. Bug: :bug:`366374135`. |
| |
| .. _docs-changelog-2024-09-19: |
| |
| ------------ |
| Sep 19, 2024 |
| ------------ |
| Highlights (Sep 06, 2024 to Sep 19, 2024): |
| |
| * **New container classes**: The new :cpp:class:`pw::IntrusiveMap` and |
| :cpp:class:`pw::IntrusiveMultiMap` classes can be used for associative |
| dictionaries, sorted lists, and more. |
| * **Protobuf Editions**: Initial support for `Protobuf Editions |
| <https://protobuf.dev/editions/overview>`__ was added for GN-based and |
| CMake-based projects. |
| * **Token domains**: The :ref:`Detokenizer |
| <module-pw_tokenizer-detokenization>` now supports |
| :ref:`token domains <seed-0105>`. |
| |
| .. _docs-changelog-2024-09-19-Modules: |
| |
| Modules |
| ======= |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_allocator: |
| |
| pw_allocator |
| ------------ |
| New features: |
| |
| .. d5fcc90b39ee7568855390535fa854cea8f33c95 |
| |
| * The new :c:macro:`PW_ALLOCATOR_STRICT_VALIDATION` option lets you |
| enable more expensive checks to aggressively enforce invariants when |
| testing. The new :c:macro:`PW_ALLOCATOR_BLOCK_POISON_INTERVAL` option |
| allows setting the poisoning rate more easily from the build rather than |
| in code via template parameters. See |
| :ref:`module-pw_allocator-module-configuration`. Commit: `Add module config |
| <https://pwrev.dev/232211>`__. |
| |
| Bug fixes: |
| |
| .. 82759ccb711c3f34320ae9ae37bf70a029baec57 |
| |
| * A bug was fixed where ``pw_allocator`` always split the first block |
| even if there was not enough room for the first block to be split into |
| two, which could cause heap corruption and crashes. Commit: `Check for |
| room to split the first block <https://pwrev.dev/235312>`__. Bug: |
| :bug:`366175024`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_assert: |
| |
| pw_assert |
| --------- |
| Changes: |
| |
| .. cfcf0059926589e26f318e29df8733e5a09c2928 |
| |
| * :c:macro:`PW_CHECK_OK` now accepts any expression that's convertible |
| to :cpp:class:`pw::Status`. Commit: `Update PW_CHECK_OK() to handle any |
| expr convertible to Status <https://pwrev.dev/234820>`__. Bugs: |
| :bug:`357682413`, :bug:`365592494`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_async2: |
| |
| pw_async2 |
| --------- |
| New features: |
| |
| .. cfcbaf5bbc67288b5e8954f22528c4de9312effe |
| |
| * The new |
| :cpp:func:`pw::async2::SimulatedTimeProvider::AdvanceUntilNextExpiration` |
| utility method is useful for advancing test time without |
| random periods or endless iterations. Commit: `Add more |
| SimulatedTimeProvider utilities <https://pwrev.dev/234929>`__. |
| |
| Changes: |
| |
| .. ed0fd1f45a3a137965dbb2075227b8ef0e91f935 |
| |
| * Coroutines now log the requested size when an allocation fails. |
| Commit: `Log size of failed coroutine allocations |
| <https://pwrev.dev/234801>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_build: |
| |
| pw_build |
| -------- |
| Bug fixes: |
| |
| .. 3919d9638b6454512595c8ad39fb8806d4ac9629 |
| |
| * An issue was fixed where bootstrap failed when |
| ``pw_rust_static_library`` was used. Commit: `Fix Undefined identifier |
| <https://pwrev.dev/232371>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_bytes: |
| |
| pw_bytes |
| -------- |
| New features: |
| |
| .. cda5ba673366d189e0ea326a0fa808df181730a7 |
| |
| * The new :cpp:class:`pw::PackedPtr` template class provides a way to |
| store extra data in the otherwise unused least significant bits of a |
| pointer. Commit: `Add PackedPtr <https://pwrev.dev/235104>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_containers: |
| |
| pw_containers |
| ------------- |
| New features: |
| |
| .. df3b7ba1f94902e81e375ce9935749163c411515 |
| |
| * ``pw::IntrusiveList`` now has a :ref:`size report |
| <module-pw_containers-intrusivelist-size-report>`. Commit: |
| `Add IntrusiveForwardList size report to the docs |
| <https://pwrev.dev/233651>`__. |
| |
| .. 8a3250d2f4287c2f66c4afd7679f9b10f789e764 |
| |
| * The new :cpp:class:`pw::IntrusiveMap` and |
| :cpp:class:`pw::IntrusiveMultiMap` classes can be used for associative |
| dictionaries, sorted lists, and more. Commit: `Add IntrusiveMap and |
| IntrusiveMultiMap <https://pwrev.dev/216828>`__. |
| |
| Changes: |
| |
| .. 314e457eaf3a801115542d777e2157e6df85fb31 |
| |
| * ``pw::IntrusiveList<T>`` was renamed to |
| ``pw::IntrusiveForwardList<T>`` and a new doubly-linked intrusive list |
| was added as ``pw::containers::future::IntrusiveList<T>``. An alias, |
| ``pw::IntrusiveList<T>``, was added to maintain compatibility with |
| existing code and will be removed in the future. The original |
| implementation can still be temporarily enabled by setting |
| ``PW_CONTAINERS_USE_LEGACY_INTRUSIVE_LIST``. Commit: `Add doubly linked |
| list <https://pwrev.dev/230811>`__. Bug: :bug:`362348318`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_env_setup: |
| |
| pw_env_setup |
| ------------ |
| Changes: |
| |
| .. 16f0f6387505dc27e7c1a76387b05524752b4602 |
| |
| * The Git submodule check is now skipped when no ``.git`` file or |
| directory is detected. Commit: `Add check for git in |
| _check_submodule_presence <https://pwrev.dev/234212>`__. Bug: |
| :bug:`365557573`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_ide: |
| |
| pw_ide |
| ------ |
| Bug fixes: |
| |
| .. 145b45747105fb95e5625c00a7533e5375d124ea |
| |
| * When ``clangd`` is not found, ``pw ide sync`` now cleanly handles the |
| lack of ``clangd`` and successfully completes the rest of the sync. |
| Commit: `Don't fail sync on missing clangd |
| <https://pwrev.dev/236475>`__. Bug: :bug:`349189723`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_protobuf: |
| |
| pw_protobuf |
| ----------- |
| New features: |
| |
| .. b299522cffb0a18e07528e923f376ceee3e9c188 |
| |
| * Initial support for `Protobuf Editions |
| <https://protobuf.dev/editions/overview>`__ was added for GN-based and |
| CMake-based projects. Commit: `Basic edition support |
| <https://pwrev.dev/235873>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_spi_linux: |
| |
| pw_spi_linux |
| ------------ |
| Bug fixes: |
| |
| .. eefd313bdb13098552cd713598b937debe80d3d4 |
| |
| * A performance issue was fixed where ``Configure()`` was being called |
| on each ``pw::spi::Device::WriteRead()`` call. Commit: `Avoid |
| unnecessary ioctl()s in Configure() <https://pwrev.dev/235877>`__. Bug: |
| :bug:`366541694`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_spi_mcuxpresso: |
| |
| pw_spi_mcuxpresso |
| ----------------- |
| Changes: |
| |
| .. 9d175062d56972f082ce99753092b75419a228ce |
| |
| * ``pw::spi::McuxpressoInitiator::DoConfigure()`` was renamed to |
| ``pw::spi::McuxpressoInitiator::DoConfigureLocked()``. Commit: `Rename |
| DoConfigure() to DoConfigureLocked() <https://pwrev.dev/236232>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_sys_io_stm32cube: |
| |
| pw_sys_io_stm32cube |
| ------------------- |
| Bug fixes: |
| |
| .. b0f73feb04effde3b7751c53c21b7a163f234eb8 |
| |
| * A bug was fixed where the GPIO mode of the UART RX GPIO pin on |
| STM32F1XX devices was not being correctly set. Commit: `Fix UART RX GPIO |
| mode for f1xx family <https://pwrev.dev/235332>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_system: |
| |
| pw_system |
| --------- |
| New features: |
| |
| .. 5e148c19477521afbbedcc8a91a2c5b2a07bc334 |
| |
| * The console's new ``timestamp_decoder`` constructor parameter lets |
| applications provide custom timestamp parsers. Commit: `Support |
| timestamp parser as an argument <https://pwrev.dev/234931>`__. Bug: |
| :bug:`344606797`. |
| |
| Changes: |
| |
| .. faac61757b5428be3787729d328f6f2f3ebfa9f1 |
| |
| * The log library header (``pw_system/log.h``) of ``pw_system`` is now |
| public and can be used outside of ``pw_system``. Commit: `Make log |
| library header public <https://pwrev.dev/233411>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_thread: |
| |
| pw_thread |
| --------- |
| Changes: |
| |
| .. 8a67d6b57b526757ffa010be2be402c42cd13ac4 |
| |
| * ``pw::thread::Thread`` now takes ``pw::Function<void()>``, which |
| should be used in place of the ``void(void*)`` function pointer and |
| ``void*`` argument. Commit: `Mark legacy function* / void* constructor |
| as deprecated <https://pwrev.dev/236454>`__. Bug: :bug:`367786892`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_tokenizer: |
| |
| pw_tokenizer |
| ------------ |
| New features: |
| |
| .. 9fb87e78e4c41778fc950714d58e6602f63d27e6 |
| |
| * The :ref:`Detokenizer <module-pw_tokenizer-detokenization>` now |
| supports :ref:`token domains <seed-0105>`. Commit: |
| `Add token domain support to Detokenizer <https://pwrev.dev/234968>`__. |
| Bug: :bug:`362752722`. |
| |
| .. 08ff555993b8ab250ea03a9f12aaf5c2d1c9c705 |
| |
| * :py:class:`pw_tokenizer.tokens.Database` now supports :ref:`token |
| domains <seed-0105>`. Commit: `Use domains in the Python tokens.Database |
| class <https://pwrev.dev/234412>`__. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_toolchain: |
| |
| pw_toolchain |
| ------------ |
| New features: |
| |
| .. 40f756e2d3c40eeb32832309dbcae989fb750268 |
| |
| * ``WORKSPACE`` toolchain registration is now configurable so that |
| downstream projects can manually control which toolchains get |
| registered. Commit: `Make toolchain registration configurable |
| <https://pwrev.dev/235712>`__. Bug: :bug:`346388161`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_transfer: |
| |
| pw_transfer |
| ----------- |
| Bug fixes: |
| |
| .. f1f654a15a3adce476c2d68643eee56f3c225dd4 |
| |
| * A bug was fixed where a handshake timeout was not set after |
| ``START_ACK`` is processed. Commit: `Bugfix for start handshake, and |
| rate limit logs <https://pwrev.dev/236572>`__. Bug: :bug:`361281209`. |
| |
| Changes: |
| |
| .. 2496aee1a4ab3d98526a7357943b69347a39903a |
| |
| * When a receiver receives a chunk of data it already has the receiver |
| now sends a ``PARAMETERS_CONTINUE`` chunk instead of requesting |
| retransmission. Commit: `Send continue parameters for already received |
| chunks <https://pwrev.dev/235100>`__. |
| |
| .. f1f654a15a3adce476c2d68643eee56f3c225dd4 |
| |
| * TX data chunk logs have been rate-limited to only send once every 3 |
| seconds. Commit: `Bugfix for start handshake, and rate limit logs |
| <https://pwrev.dev/236572>`__. Bug: :bug:`361281209`. |
| |
| .. _docs-changelog-2024-09-19-Modules-pw_uart_mcuxpresso: |
| |
| pw_uart_mcuxpresso |
| ------------------ |
| New features: |
| |
| .. e8ab2b0ac31c0dde6febd0d384c0ea7d688f6803 |
| |
| * Flow control can now be configured. Commit: `Add support for |
| configuring flow control <https://pwrev.dev/236896>`__. Bug: |
| :bug:`368150004`. |
| |
| Changes: |
| |
| .. e8ab2b0ac31c0dde6febd0d384c0ea7d688f6803 |
| |
| * Flow control, parity mode, and stop bits now have default values. |
| Commit: `Add support for configuring flow control |
| <https://pwrev.dev/236896>`__. Bug: :bug:`368150004`. |
| |
| .. _docs-changelog-2024-09-19-Build-systems: |
| |
| Build systems |
| ============= |
| |
| .. _docs-changelog-2024-09-19-Build-systems-Bazel: |
| |
| Bazel |
| ----- |
| New features: |
| |
| .. 4ceb5b8bf0faf75c0b051114abf85a2ea73ca39c |
| |
| * The new ``do_not_build`` tag specifies targets that should be excluded |
| from wildcard builds. The new ``do_not_run_test`` tag specifies test |
| targets that should be built but not executed. Commit: `Introduce |
| do_not_build, do_no_run_test tags <https://pwrev.dev/223492>`__. Bug: |
| :bug:`353531487`. |
| |
| .. 54679d205e4888302ab24882e6fb64bf8ba964c6 |
| |
| * `Platform-based flags <https://github.com/bazelbuild/proposals/blob/ma |
| in/designs/2023-06-08-platform-based-flags.md>`__ have been re-enabled. |
| Commit: `Re-enable platform-based flags <https://pwrev.dev/234135>`__. |
| Bug: :bug:`301334234`. |
| |
| .. _docs-changelog-2024-09-19-Miscellaneous: |
| |
| Miscellaneous |
| ============= |
| Bug fixes: |
| |
| .. 982c7f42878871e7f85dbc5420ff17f0b8ede237 |
| |
| * An issue was fixed where the Fuchsia SDK was always fetched during |
| Bazel workspace initialization and caused unnecessary downloads. Commit: |
| `Use @fuchsia_clang as a cipd repository <https://pwrev.dev/233531>`__. |
| Bug: :bug:`346416385`. |
| |
| ----------- |
| Sep 5, 2024 |
| ----------- |
| .. note:: |
| |
| This changelog update is shorter than previous ones because we're |
| experimenting with only showing user-facing new features, changes, |
| and bug fixes. I.e. we're omitting commits that don't affect |
| downstream Pigweed projects. |
| |
| Highlights (Aug 24, 2024 to Sep 5, 2024): |
| |
| * **New backends**: :ref:`module-pw_async_fuchsia` (a ``pw_async`` |
| backend for Fuchsia that implements ``Task`` and ``FakeDispatcher``), |
| :ref:`module-pw_log_fuchsia` (a ``pw_log`` backend for Fuchsia |
| that uses the ``fuchsia.logger.LogSink`` FIDL API to send logs), |
| :ref:`module-pw_random_fuchsia` (a ``pw_random`` backend for Fuchsia |
| that implements :cpp:class:`pw::random::RandomGenerator`) |
| and :ref:`module-pw_uart_mcuxpresso` (a ``pw_uart`` backend for |
| NXP MCUXpresso devices). |
| * **New theme**: The underlying Sphinx theme powering ``pigweed.dev`` is now |
| `PyData <https://pydata-sphinx-theme.readthedocs.io/en/stable/>`_. In |
| addition to improving website usability, this theme should also reduce |
| the ``pigweed.dev`` maintenance workload over time. See |
| :ref:`seed-0130` for more information. |
| * **Arm Cortex-M55 support**: ``pw_toolchain`` and ``pw_system`` now |
| support Arm Cortex-M55 cores. |
| * **Bazel cloud demo**: The new :ref:`Bazel cloud features |
| <showcase-sense-tutorial-bazel_cloud>` |
| page in the Sense tutorial shows you how to use BuildBuddy |
| to share logs and speed up builds with remote caching. |
| |
| Modules |
| ======= |
| |
| pw_async2 |
| --------- |
| * The new :cpp:class:`pw::async2::TimeProvider` class can be used to |
| create timers in a dependency-injection-friendly way. |
| Commit: `Add TimeProvider |
| <https://pwrev.dev/232411>`__ |
| |
| pw_async_fuchsia |
| ---------------- |
| * :ref:`module-pw_async_fuchsia` is a new ``pw_async`` backend for Fuchsia |
| that implements ``Task`` and ``FakeDispatcher``. |
| Commit: `Create pw_async Fuchsia backend |
| <https://pwrev.dev/230896>`__ |
| |
| pw_chrono |
| --------- |
| * :cpp:class:`pw::chrono::VirtualClock` is a new virtual base class for |
| timers that enables writing |
| timing-sensitive code that can be tested using simulated clocks such as |
| :cpp:class:`pw::chrono::SimulatedSystemClock`. |
| Commit: `Add VirtualClock |
| <https://pwrev.dev/233031>`__ |
| |
| pw_cli |
| ------ |
| * The new :py:meth:`pw_cli.git_repo.GitRepo.commit_date()` method returns |
| the datetime of a specified commit. |
| Commit: `Add in option to retrieve commit date |
| <https://pwrev.dev/216275>`__ |
| |
| pw_digital_io_mcuxpresso |
| ------------------------ |
| * The GPIO clock is now enabled even when GPIO is disabled. |
| Commit: `Enable gpio clock even when disabling gpio |
| <https://pwrev.dev/232131>`__ |
| (issue `#356689514 <https://pwbug.dev/356689514>`__) |
| |
| pw_log_fuchsia |
| -------------- |
| * :ref:`module-pw_log_fuchsia` is a new ``pw_log`` backend that uses the |
| ``fuchsia.logger.LogSink`` FIDL API to send logs. |
| Commit: `Create pw_log Fuchsia backend |
| <https://pwrev.dev/231052>`__ |
| |
| pw_log_rpc |
| ---------- |
| * ``pw_log_rpc.LogStreamHandler.listen_to_logs()`` was renamed to |
| :py:meth:`pw_log_rpc.LogStreamHandler.start_logging()`. |
| Commit: `Invoke pw.log.Logs.Listen() to restore prior behavior |
| <https://pwrev.dev/233991>`__ |
| (issue `#364421706 <https://pwbug.dev/364421706>`__) |
| |
| pw_log_zephyr |
| ------------- |
| * Use of shell ``printf`` macros within ``if`` blocks that don't use |
| braces no longer causes compile errors. |
| Commit: `Make shell printf macros safe for use in if/else blocks |
| <https://pwrev.dev/232031>`__ |
| |
| pw_package |
| ---------- |
| * ``picotool`` installation on macOS was fixed. |
| Commit: `Fix pictotool install on mac |
| <https://pwrev.dev/234238>`__ |
| |
| pw_random_fuchsia |
| ----------------- |
| * :ref:`module-pw_random_fuchsia` provides an implementation of |
| :cpp:class:`pw::random::RandomGenerator` that uses Zircon. |
| Commit: `Create Fuchsia backend for pw_random |
| <https://pwrev.dev/230895>`__ |
| |
| pw_rpc |
| ------ |
| * New documentation (:ref:`module-pw_rpc-guides-raw-fallback`) was added that |
| explains how to define a raw method within a non-raw service. |
| Commit: `Provide examples of raw methods in docs |
| <https://pwrev.dev/232877>`__ |
| * Many RPC-related classes were moved out of ``pw_hdlc`` and into |
| ``pw_rpc`` or ``pw_stream``. |
| Commit: `Relocate RPC classes from pw_hdlc |
| <https://pwrev.dev/230172>`__ |
| (issues `#330177657 <https://pwbug.dev/330177657>`__, |
| `#360178854 <https://pwbug.dev/360178854>`__) |
| |
| pw_spi_mcuxpresso |
| ----------------- |
| * The new ``pw::spi::FifoErrorCheck`` enum lets you configure whether |
| ``pw::spi::McuxpressoResponder`` instances should log FIFO errors. |
| Commit: `Add check_fifo_error to responder config |
| <https://pwrev.dev/232215>`__ |
| |
| pw_stream_uart_linux |
| -------------------- |
| * The new :cpp:struct:`pw::stream::UartStreamLinux::Config` struct lets |
| you configure baud rate and control flow. |
| Commit: `Add Config struct |
| <https://pwrev.dev/233591>`__ |
| (issue `#331871421 <https://pwbug.dev/331871421>`__) |
| |
| pw_sync |
| ------- |
| * :cpp:func:`pw::sync::InterruptSpinLock::try_lock` and similar functions |
| have been annotated with ``[[nodiscard]]`` which means that ignoring |
| their return values will result in compiler warnings. |
| Commit: `[[nodiscard]] for try_lock() and similar functions |
| <https://pwrev.dev/229311>`__ |
| |
| pw_system |
| --------- |
| * :ref:`module-pw_system` now supports Arm Cortex-M55 systems. |
| Commit: `Support ARM Cortex M55 system |
| <https://pwrev.dev/231632>`__ |
| (issue `#361691368 <https://pwbug.dev/361691368>`__) |
| |
| pw_thread |
| --------- |
| * :cpp:class:`pw::thread::Options` has moved to its own header |
| (``pw_thread/options.h``) to make it possible to work with the class |
| without relying on the thread facade. |
| Commit: `Move pw::thread::Options to its own header |
| <https://pwrev.dev/232151>`__ |
| |
| pw_tokenizer |
| ------------ |
| * In Python the detokenizer prefix is now set in the |
| :py:class:`pw_tokenizer.detokenize.Detokenizer` constructor. |
| Commit: `Set prefix in Detokenizer; fix typing issues |
| <https://pwrev.dev/234311>`__ |
| |
| pw_toolchain |
| ------------ |
| * Arm Cortex-M55 toolchain support was added. |
| Commit: `Add ARM Cortex-M55 toolchain |
| <https://pwrev.dev/231631>`__ |
| (issue `#361691368 <https://pwbug.dev/361691368>`__) |
| |
| pw_uart_mcuxpresso |
| ------------------ |
| * The new :ref:`module-pw_uart_mcuxpresso` module is a |
| :ref:`module-pw_uart` backend for NXP MCUXpresso devices. |
| Commit: `Introduce DMA UART backend for NXP devices |
| <https://pwrev.dev/232831>`__ |
| |
| Docs |
| ==== |
| * New documentation (:ref:`docs-pw-style-cpp-logging`) about logging best |
| practices was added. |
| Commit: `Add logging recommendations |
| <https://pwrev.dev/210204>`__ |
| * The new :ref:`Bazel cloud features <showcase-sense-tutorial-bazel_cloud>` |
| page in the Sense tutorial shows you how to use BuildBuddy |
| to share logs and speed up builds with remote caching. |
| Commit: `Add cloud build section to Sense tutorial |
| <https://pwrev.dev/233751>`__ |
| (issue `#363070027 <https://pwbug.dev/363070027>`__) |
| * :ref:`docs-contributing` now links to good first issues for people who |
| want to contribute to upstream Pigweed. |
| Commit: `Add link to good first issue list |
| <https://pwrev.dev/233652>`__ |
| * ``pigweed.dev/live`` now links to the Pigweed Live meeting notes. |
| Commit: `Add shortlink for Pigweed Live notes |
| <https://pwrev.dev/232032>`__ |
| |
| Targets |
| ======= |
| |
| RP2350 |
| ------ |
| * RP2350 crash snapshots now show the correct architecture. |
| Commit: `Fix architecture in crash snapshot |
| <https://pwrev.dev/232231>`__ |
| (issue `#362506213 <https://pwbug.dev/362506213>`__) |
| |
| ------------ |
| Aug 23, 2024 |
| ------------ |
| .. _Google Pigweed comes to our new RP2350: https://www.raspberrypi.com/news/google-pigweed-comes-to-our-new-rp2350/ |
| |
| Highlights (Aug 8, 2024 to Aug 23, 2024): |
| |
| * **RP2350 Support**: Pigweed now supports the new Raspberry Pi RP2350 MCU. |
| Check out `Google Pigweed comes to our new RP2350`_ on the Raspberry Pi |
| blog for the full story and :ref:`showcase-sense` to try it out. |
| |
| Build systems |
| ============= |
| |
| Bazel |
| ----- |
| * `Add missing counting_semaphore and thread_yield backends |
| <https://pwrev.dev/228392>`__ |
| |
| Modules |
| ======= |
| |
| pw_allocator |
| ------------ |
| * `Disable example spin_lock test on RP2 |
| <https://pwrev.dev/231251>`__ |
| (issues `#358411629 <https://pwbug.dev/358411629>`__, |
| `#361354335 <https://pwbug.dev/361354335>`__) |
| |
| pw_async2 |
| --------- |
| The new ``pw::async2::MakeOnceSenderAndReceiver()`` function template makes it |
| easier to simultaneously create a sender and receiver for asynchronously |
| sending values. The new ``pw::async2::MakeOnceSenderAndReceiver()`` function |
| template works similarly but is used for references. |
| |
| * `Create OnceSender & OnceReceiver |
| <https://pwrev.dev/226231>`__ |
| (issue `#350994818 <https://pwbug.dev/350994818>`__) |
| * `Remove accidental macro #undef |
| <https://pwrev.dev/229275>`__ |
| |
| pw_bloat |
| -------- |
| The ``pw bloat`` CLI command now supports a ``--custom-config`` option to |
| specify a custom Bloaty config file so that non-memory regions can be |
| analyzed. |
| |
| * `Support custom bloaty configs in CLI command |
| <https://pwrev.dev/216133>`__ |
| |
| pw_bluetooth |
| ------------ |
| * `Create more emboss event definitions |
| <https://pwrev.dev/231091>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Add create connection cancel return |
| <https://pwrev.dev/230251>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Add LEReadSupportedStates emboss event |
| <https://pwrev.dev/228961>`__ |
| * `Add HCI Command OpCode definitions |
| <https://pwrev.dev/228672>`__ |
| * `Add more emboss definitions |
| <https://pwrev.dev/228671>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Make SupportedCommands emboss struct more ergonomic |
| <https://pwrev.dev/228155>`__ |
| |
| pw_bluetooth_proxy |
| ------------------ |
| * `Release H4 buff on error |
| <https://pwrev.dev/229011>`__ |
| |
| pw_bluetooth_sapphire |
| --------------------- |
| * `Add common bt-host clang warnings |
| <https://pwrev.dev/228651>`__ |
| (issue `#345799180 <https://pwbug.dev/345799180>`__) |
| * `Add new emboss compiler file ir_data_fields.py |
| <https://pwrev.dev/228655>`__ |
| (issue `#358665524 <https://pwbug.dev/358665524>`__, |
| `#335724776 <https://pwbug.dev/335724776>`__) |
| |
| pw_build |
| -------- |
| The new ``glob_dirs()`` Starlark helper returns a list of directories matching |
| the provided glob pattern. The new ``match_dir()`` Starlark helper returns a |
| single directory that matches the provided glob pattern and fails if there's |
| more than one match. |
| |
| * `Add mod proc_macro to rust macro targets |
| <https://pwrev.dev/230013>`__ |
| * `Remove output_name attr in rust_library |
| <https://pwrev.dev/230012>`__ |
| * `Make pw_load_phase_test host only |
| <https://pwrev.dev/230072>`__ |
| * `Add glob_dirs() Starlark helper |
| <https://pwrev.dev/228956>`__ |
| |
| pw_channel |
| ---------- |
| * `Ensure that stream_channel_test resources live forever |
| <https://pwrev.dev/228154>`__ |
| (issue `#358078118 <https://pwbug.dev/358078118>`__) |
| |
| pw_cpu_exception_cortex_m |
| ------------------------- |
| * `Fix cpu exception handler on armv8m |
| <https://pwrev.dev/231372>`__ |
| (issue `#323215726 <https://pwbug.dev/323215726>`__) |
| |
| pw_display |
| ---------- |
| The new :ref:`module-pw_display` experimental module provides graphic display |
| support and framebuffer management. |
| |
| * `Color library |
| <https://pwrev.dev/229606>`__ |
| (issue `#359953386 <https://pwbug.dev/359953386>`__) |
| * `Create module directory |
| <https://pwrev.dev/229712>`__ |
| |
| pw_env_setup |
| ------------ |
| * `Get bazelisk instead of bazel |
| <https://pwrev.dev/226376>`__ |
| (issue `#355438774 <https://pwbug.dev/355438774>`__) |
| |
| pw_grpc |
| ------- |
| When a frame with a payload has a stream-reset error, the payload is now skipped. |
| |
| * `Improve logging when receiving unknown RPC |
| <https://pwrev.dev/231011>`__ |
| * `Skip HTTP2 frame payload for frames that result in stream reset |
| <https://pwrev.dev/230951>`__ |
| |
| pw_i2c_rp2040 |
| ------------- |
| The ``clock_frequency`` field in ``pw::i2c::Rp2040Initiator::Config`` has been |
| renamed to ``clock_frequency_hz``. |
| |
| * `Include label in clock_frequency |
| <https://pwrev.dev/221412>`__ |
| |
| pw_ide |
| ------ |
| ``pw_ide`` now searches all parent directories for the presence of a |
| ``pigweed.json`` file to determine the root directory. The workspace |
| root can be programmatically configured via the new |
| ``pw_ide.settings.PigweedIdeSettings.workspace_root`` property. The |
| ``pigweed.activateBazeliskInNewTerminals`` option in VS Code now defaults |
| to ``false``. |
| |
| * `Fix .pw_ide.yaml paths |
| <https://pwrev.dev/230991>`__ |
| * `Support different workspace root |
| <https://pwrev.dev/217220>`__ |
| * `Disable Bazelisk auto-activation by default |
| <https://pwrev.dev/228493>`__ |
| (issue `#358384211 <https://pwbug.dev/358384211>`__) |
| |
| pw_kvs |
| ------ |
| References to ``pw::kvs::Key`` must be replaced with ``std::string_view``. |
| |
| * `Remove unnecessary Key alias and test |
| <https://pwrev.dev/229976>`__ |
| * `Pass EntryHeader by const reference |
| <https://pwrev.dev/229727>`__ |
| (issue `#254601862 <https://pwbug.dev/254601862>`__) |
| * `Move inline variable definition to .cc file |
| <https://pwrev.dev/228514>`__ |
| (issue `#357162923 <https://pwbug.dev/357162923>`__) |
| |
| pw_module |
| --------- |
| * `Fix OWNERS file parsing |
| <https://pwrev.dev/226177>`__ |
| |
| pw_multibuf |
| ----------- |
| The ``pw::multibuf::MultiBuf::Chunks()`` method and |
| ``pw::multibuf::MultiBuf::ChunkIterable`` class have been removed; use the |
| new ``pw::multibuf::MultiBufChunks`` class instead. |
| |
| * `Restructure ChunkIterable |
| <https://pwrev.dev/230892>`__ |
| * `Comment updates for consistency |
| <https://pwrev.dev/230891>`__ |
| |
| pw_package |
| ---------- |
| * `Use bazel to build picotool package |
| <https://pwrev.dev/229431>`__ |
| |
| pw_preprocessor |
| --------------- |
| The new ``PW_MODIFY_DIAGNOSTIC_CLANG`` define lets you handle Clang-only |
| warnings separately from other compilers. |
| |
| * `Test GCC/Clang diagnostic modification macros |
| <https://pwrev.dev/231336>`__ |
| * `Introduce PW_MODIFY_DIAGNOSTIC_CLANG |
| <https://pwrev.dev/231332>`__ |
| (issue `#356935569 <https://pwbug.dev/356935569>`__) |
| * `Expand comment for PW_PACKED |
| <https://pwrev.dev/226994>`__ |
| |
| pw_rpc |
| ------ |
| Java client: The new ``PacketByteFactory`` Java class is a helper for creating |
| request and response packets during testing. |
| |
| Python client: The ``pw_rpc.console_tools.watchdog.Watchdog`` Python class has a |
| new ``stop()`` method to stop the watchdog. The |
| ``pw_rpc.callback_client.call.Call`` Python class now accepts a |
| ``max_responses`` argument that lets you limit how many responses should be |
| received after a streaming RPC call. The ``ignore_errors``, |
| ``cancel_duplicate_calls``, and ``override_pending_options`` arguments |
| previously available in some Python client methods have been removed. |
| |
| TypeScript client: The ``invoke()`` method in the TypeScript client now accepts |
| a ``maxResponses`` argument which lets you limit how many responses to a |
| streaming RPC call should be stored. |
| |
| * `Avoid recompiling protos for every test |
| <https://pwrev.dev/230135>`__ |
| (issue `#360184800 <https://pwbug.dev/360184800>`__) |
| * `Fix typing in unaryWait return value in TS client |
| <https://pwrev.dev/231071>`__ |
| * `Create PacketByteFactory |
| <https://pwrev.dev/230011>`__ |
| (issue `#360174359 <https://pwbug.dev/360174359>`__) |
| * `Add stop method to Watchdog |
| <https://pwrev.dev/230692>`__ |
| (issue `#350822543 <https://pwbug.dev/350822543>`__) |
| * `Limit maximum stored responses in TypeScript client |
| <https://pwrev.dev/229975>`__ |
| * `Add missing Bazel test rules |
| <https://pwrev.dev/230691>`__ |
| * `Restore RpcIds for testing; move packet encoding to packets.py |
| <https://pwrev.dev/230471>`__ |
| * `Limit maximum stored responses in Python client |
| <https://pwrev.dev/229974>`__ |
| (issue `#262749163 <https://pwbug.dev/262749163>`__) |
| * `Remove deprecated / obsolete features |
| <https://pwrev.dev/229908>`__ |
| * `Fix open in callback_client |
| <https://pwrev.dev/169174>`__ |
| (issue `#309159260 <https://pwbug.dev/309159260>`__) |
| * `Merge PendingRpc and RpcIds |
| <https://pwrev.dev/228952>`__ |
| * `Require an output function for channels |
| <https://pwrev.dev/227855>`__ |
| |
| pw_spi_linux |
| ------------ |
| * `Remove linkage specification from cli main |
| <https://pwrev.dev/230291>`__ |
| |
| pw_status |
| --------- |
| The ``StatusWithSize::size_or()`` method has been removed. |
| |
| * `Convert StatusWithSize to Doxygen |
| <https://pwrev.dev/229980>`__ |
| * `Remove StatusWithSize::size_or() |
| <https://pwrev.dev/229979>`__ |
| |
| pw_stream |
| --------- |
| * `Disable mpsc_stream_test for Pi Pico |
| <https://pwrev.dev/231212>`__ |
| (issue `#361369435 <https://pwbug.dev/361369435>`__) |
| |
| pw_system |
| --------- |
| The ``pw_system.device.Device`` class constructor now accepts an ``Iterable`` |
| of proto libraries rather than a ``list``. |
| |
| * `Add type annotation to pw_system.device.Device() write arg |
| <https://pwrev.dev/229653>`__ |
| * `Update Device ctor to take Iterable of proto libraries |
| <https://pwrev.dev/229811>`__ |
| |
| pw_thread |
| --------- |
| * `Disable test_thread_context_facade_test on Pi Pico |
| <https://pwrev.dev/231291>`__ |
| (issue `#361369192 <https://pwbug.dev/361369192>`__) |
| |
| pw_tokenizer |
| ------------ |
| * `Remove unsupported C++11 and C++14 code |
| <https://pwrev.dev/222432>`__ |
| |
| pw_trace_tokenized |
| ------------------ |
| * `Fix TokenizedTracer initialization |
| <https://pwrev.dev/230314>`__ |
| (issue `#357835484 <https://pwbug.dev/357835484>`__) |
| |
| pw_transfer |
| ----------- |
| Transfer handler registration and unregistration functions now return a boolean |
| indicating success or failure. The C++ client now always includes a protocol |
| version in the final chunk. |
| |
| * `Add return values to handler registrations |
| <https://pwrev.dev/230912>`__ |
| * `Always set protocol version in final chunk |
| <https://pwrev.dev/229289>`__ |
| |
| pw_unit_test |
| ------------ |
| * `Delete unsupported C++14 compatibility code |
| <https://pwrev.dev/229972>`__ |
| * `Fix multi-line test macros |
| <https://pwrev.dev/229314>`__ |
| |
| Docs |
| ==== |
| * `Require unit tests to be in unnamed namespace |
| <https://pwrev.dev/231211>`__ |
| * `Add structured data to Kudzu blog post |
| <https://pwrev.dev/230647>`__ |
| (issue `#360924425 <https://pwbug.dev/360924425>`__) |
| * `Fix Pigweed Live CTA link |
| <https://pwrev.dev/230693>`__ |
| (issue `#357957451 <https://pwbug.dev/357957451>`__) |
| * `Replace 'bazel' with 'bazelisk' |
| <https://pwrev.dev/226377>`__ |
| * `Update Sense flashing instructions |
| <https://pwrev.dev/229608>`__ |
| * `Update RP2 family udev rules |
| <https://pwrev.dev/228513>`__ |
| (issue `#355291899 <https://pwbug.dev/355291899>`__) |
| * `Update "Who's using Pigweed" section |
| <https://pwrev.dev/228494>`__ |
| * `Update Bazel quickstart mentions |
| <https://pwrev.dev/228531>`__ |
| * `Launch Sense |
| <https://pwrev.dev/228431>`__ |
| |
| Targets |
| ======= |
| |
| rp2350 |
| ------ |
| Pigweed now supports the new Raspberry Pi RP2350 MCU. |
| |
| * `Add support for RP2350 |
| <https://pwrev.dev/228326>`__ |
| (issue `#354942782 <https://pwbug.dev/354942782>`__) |
| |
| rp2040 |
| ------ |
| * `Reset tty flags after successful flash on posix |
| <https://pwrev.dev/229721>`__ |
| * `Remove references to b/261603269 |
| <https://pwrev.dev/229397>`__ |
| * `Add -fexceptions for the rp2040 PIO assembler |
| <https://pwrev.dev/229531>`__ |
| * `Get Pico SDK and Picotool from BCR |
| <https://pwrev.dev/228327>`__ |
| |
| Third-party software |
| ==================== |
| |
| Emboss |
| ------ |
| * `Remove -Wdeprecated-copy from public_config |
| <https://pwrev.dev/228563>`__ |
| (issue `#345526399 <https://pwbug.dev/345526399>`__) |
| * `Update emboss to v2024.0809.170004 |
| <https://pwrev.dev/228562>`__ |
| (issue `#345526399 <https://pwbug.dev/345526399>`__) |
| |
| Fuchsia |
| ------- |
| * `Update patch to ignore warnings in result.h |
| <https://pwrev.dev/231253>`__ |
| * `Copybara import |
| <https://pwrev.dev/231293>`__ |
| |
| Rolls |
| ----- |
| * `fuchsia_infra: [roll] Roll fuchsia-infra-bazel-rules-bazel_sdk-ci |
| <https://pwrev.dev/230635>`__ |
| * `fuchsia_infra 54 commits |
| <https://pwrev.dev/230634>`__ |
| * `go |
| <https://pwrev.dev/230631>`__ |
| * `rust |
| <https://pwrev.dev/230472>`__ |
| * `go |
| <https://pwrev.dev/228811>`__ |
| * `gn |
| <https://pwrev.dev/228731>`__ |
| * `fuchsia_infra 27 commits |
| <https://pwrev.dev/228712>`__ |
| * `rust |
| <https://pwrev.dev/228566>`__ |
| |
| Miscellaneous |
| ============= |
| * `Change typedef to using |
| <https://pwrev.dev/230351>`__ |
| * `Handle ignored status comments |
| <https://pwrev.dev/229652>`__ |
| (issues `#357136096 <https://pwbug.dev/357136096>`__, |
| `#357139112 <https://pwbug.dev/357139112>`__) |
| |
| Owners |
| ------ |
| * `Add davidroth@ |
| <https://pwrev.dev/230071>`__ |
| |
| ----------- |
| Aug 7, 2024 |
| ----------- |
| Highlights (Jul 26, 2024 to Aug 7, 2024): |
| |
| * **Tour of Pigweed**: The new :ref:`Tour of Pigweed <showcase-sense>` |
| is a hands-on, guided walkthrough of many key Pigweed features working |
| together in a medium-complexity application. |
| * **Easier pw_digital_io testing**: The new |
| ``pw::digital_io::DigitalInOutMock`` class is a mock implementation of |
| ``pw:digital_io::DigitalInOut`` that can be used for testing. |
| * **Code intelligence in VS Code**: The new |
| :ref:`module-pw_ide-guide-vscode-code-intelligence` document provides |
| guides on using the code intelligence features of the ``pw_ide`` |
| extension for VS Code. |
| |
| Build systems |
| ============= |
| |
| Bazel |
| ----- |
| * `Get picotool from the BCR |
| <https://pwrev.dev/227838>`__ |
| (issue `#354270165 <https://pwbug.dev/354270165>`__) |
| * `Manage pw_ide deps via bzlmod |
| <https://pwrev.dev/226733>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Manage Java deps through bzlmod |
| <https://pwrev.dev/226481>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Provide symlink to clangd at root |
| <https://pwrev.dev/226451>`__ |
| (issue `#355655415 <https://pwbug.dev/355655415>`__) |
| * `Partial revert of http://pwrev.dev/226007 |
| <https://pwrev.dev/226271>`__ |
| (issue `#352389854 <https://pwbug.dev/352389854>`__) |
| |
| Modules |
| ======= |
| |
| pw_allocator |
| ------------ |
| * `Fix bucketed block corruption |
| <https://pwrev.dev/227604>`__ |
| (issue `#345526413 <https://pwbug.dev/345526413>`__) |
| * `Add missing include |
| <https://pwrev.dev/227174>`__ |
| (issue `#356667663 <https://pwbug.dev/356667663>`__) |
| |
| pw_bluetooth |
| ------------ |
| ``ReadLocalSupportedCommandsCommandCompleteEvent`` now provides both a raw bytes |
| field (``supported_commands_bytes``) and a sub-struct (``supported_commands``) |
| for easier access to command bits. You can use either ``SupportedCommandsOctet`` |
| or ``SupportedCommands`` to parse a saved ``uint8_t[64]``. |
| |
| * `Improve ergonomics of emboss SupportedCommands |
| <https://pwrev.dev/227931>`__ |
| * `Add more emboss definitions |
| <https://pwrev.dev/227951>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| |
| pw_bluetooth_proxy |
| ------------------ |
| * `Release active connections once zero |
| <https://pwrev.dev/226400>`__ |
| * `Only log disconnect events for active connections |
| <https://pwrev.dev/226393>`__ |
| |
| pw_bluetooth_sapphire |
| --------------------- |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227044>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227043>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227025>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Write Variable PIN Type for Legacy Pairing |
| <https://pwrev.dev/227042>`__ |
| (issues `#42173830 <https://pwbug.dev/42173830>`__, |
| `# b/342151162 <https://pwbug.dev/ b/342151162>`__) |
| * `Add LegacyPairingState to BrEdrConnectionRequest |
| <https://pwrev.dev/227041>`__ |
| (issue `#42173830 <https://pwbug.dev/42173830>`__) |
| * `Create and implement LegacyPairingState class |
| <https://pwrev.dev/227023>`__ |
| (issues `#342150626 <https://pwbug.dev/342150626>`__, |
| `#42173830 <https://pwbug.dev/42173830>`__) |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227040>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227039>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Translate information & additional attributes |
| <https://pwrev.dev/227038>`__ |
| (issue `#327758656 <https://pwbug.dev/327758656>`__) |
| * `Return registered services after bredr.Advertise |
| <https://pwrev.dev/227022>`__ |
| (issue `#327758656 <https://pwbug.dev/327758656>`__) |
| * `Handle switch enum warning with pigweed |
| <https://pwrev.dev/227037>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Handle switch warning with pigweed |
| <https://pwrev.dev/227021>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Fix shadow variable warnings |
| <https://pwrev.dev/227036>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Add panic to EventTypeToString |
| <https://pwrev.dev/227035>`__ |
| (issue `#356388419 <https://pwbug.dev/356388419>`__) |
| * `Switch over to pw::utf8 |
| <https://pwrev.dev/227020>`__ |
| (issue `#337305285 <https://pwbug.dev/337305285>`__) |
| * `Remove unnecessary cast qual pragma |
| <https://pwrev.dev/227034>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Fix statement expression extension warnings |
| <https://pwrev.dev/227033>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Fix variadic macro warnings |
| <https://pwrev.dev/227019>`__ |
| (issue `#355511476 <https://pwbug.dev/355511476>`__) |
| * `Add SetupDataPath FIDL handler |
| <https://pwrev.dev/227018>`__ |
| (issue `#311639690 <https://pwbug.dev/311639690>`__) |
| * `Create abstract base for IsoStream |
| <https://pwrev.dev/227017>`__ |
| * `Remove CommandPacketVariant |
| <https://pwrev.dev/227032>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Use emboss for setting ACL priority |
| <https://pwrev.dev/227031>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Add test for A2DP offloading |
| <https://pwrev.dev/227014>`__ |
| (issue `#330921787 <https://pwbug.dev/330921787>`__) |
| * `Explicitly move WeakRef in GetWeakPtr |
| <https://pwrev.dev/227013>`__ |
| (issue `#354026910 <https://pwbug.dev/354026910>`__) |
| * `Clean up some type sizes |
| <https://pwrev.dev/227012>`__ |
| (issue `#354057871 <https://pwbug.dev/354057871>`__) |
| * `Use emboss for LELongTermKeyRequestReply |
| <https://pwrev.dev/227011>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Remove manufacturer list |
| <https://pwrev.dev/226472>`__ |
| |
| pw_build |
| -------- |
| * `Fix configs in pw_rust_executable |
| <https://pwrev.dev/212171>`__ |
| (issue `#343111481 <https://pwbug.dev/343111481>`__) |
| * `Auto disable project builder progress bars |
| <https://pwrev.dev/226379>`__ |
| |
| pw_chrono_stl |
| ------------- |
| System clock and timer interfaces have been moved to separate directories so |
| that you can pick up the backend of one of these without bringing in the other. |
| This makes it possible to use a custom system timer with the STL system clock, |
| for example. |
| |
| * `Move system clock and timer into separate directories |
| <https://pwrev.dev/225992>`__ |
| |
| pw_clock_tree_mcuxpresso |
| ------------------------ |
| The new ``pw::clock_tree::ClockMcuxpressoClockIp`` class lets you manage |
| ``clock_ip_name_t`` clocks with the clock tree to save power when |
| ``FSL_SDK_DISABLE_DRIVE_CLOCK_CONTROL`` is set. |
| |
| * `Introduce ClockMcuxpressoClockIp |
| <https://pwrev.dev/226069>`__ |
| (issue `#355486338 <https://pwbug.dev/355486338>`__) |
| |
| pw_console |
| ---------- |
| * `Additional UI and code themes |
| <https://pwrev.dev/226720>`__ |
| * `Bump version of console js, add titles to log panes |
| <https://pwrev.dev/226831>`__ |
| |
| pw_digital_io |
| ------------- |
| The new ``pw::digital_io::DigitalInOutMock`` class is a mock implementation |
| of ``pw:digital_io::DigitalInOut`` that can be used for testing. |
| |
| * `Add Mock |
| <https://pwrev.dev/227836>`__ |
| |
| pw_digital_io_linux |
| ------------------- |
| The default ``pw_log`` logging level changed from ``DEBUG`` to ``INFO``. |
| |
| * `Set log level to INFO |
| <https://pwrev.dev/225912>`__ |
| |
| pw_digital_io_rp2040 |
| -------------------- |
| * `Don't discard status returns |
| <https://pwrev.dev/227712>`__ |
| (issue `#357090965 <https://pwbug.dev/357090965>`__) |
| |
| pw_env_setup |
| ------------ |
| * `Update rust thumbv7m target |
| <https://pwrev.dev/226951>`__ |
| * `Add rustc thumbv7m target |
| <https://pwrev.dev/211991>`__ |
| (issue `#343111481 <https://pwbug.dev/343111481>`__) |
| |
| pw_hex_dump |
| ----------- |
| * `Add rule for pw_hex_dump/log_bytes.h |
| <https://pwrev.dev/227651>`__ |
| (issue `#357595992 <https://pwbug.dev/357595992>`__) |
| |
| pw_ide |
| ------ |
| The Pigweed extension for VS Code will now immediately update the code analysis |
| target if the ``pigweed.codeAnalysisTarget`` setting in ``settings.json`` is |
| changed. The new ``pigweed.activateBazeliskInNewTerminals`` setting lets you |
| specify whether the path to Bazelisk should be added when a VS Code terminal is |
| launched. The new :ref:`module-pw_ide-guide-vscode-code-intelligence` document |
| provides guides on using the VS Code extension's code intelligence features. |
| |
| * `VSC extension 1.3.2 release |
| <https://pwrev.dev/225391>`__ |
| * `Show progress bar on manual refreshes |
| <https://pwrev.dev/227731>`__ |
| * `Detect manual target change in settings |
| <https://pwrev.dev/227606>`__ |
| * `Much faster VSC config parsing |
| <https://pwrev.dev/227605>`__ |
| * `Automatically activate Bazelisk in new terminals |
| <https://pwrev.dev/226382>`__ |
| * `Use stable clangd path |
| <https://pwrev.dev/226431>`__ |
| (issue `#355655415 <https://pwbug.dev/355655415>`__) |
| * `Add inactive source file decoration |
| <https://pwrev.dev/225733>`__ |
| * `VSC extension refactoring |
| <https://pwrev.dev/226059>`__ |
| |
| pw_multibuf |
| ----------- |
| * `Add missing includes |
| <https://pwrev.dev/227331>`__ |
| (issue `#356667663 <https://pwbug.dev/356667663>`__) |
| |
| pw_multisink |
| ------------ |
| The new ``pw::multisink::Drain::GetUnreadEntriesCount()`` method is a |
| thread-safe way to return the number of unread entries in a drain's sink. |
| |
| * `Interface to read entries count |
| <https://pwrev.dev/226351>`__ |
| (issue `#355104976 <https://pwbug.dev/355104976>`__) |
| |
| pw_presubmit |
| ------------ |
| * `Fix incl-lang when not at repo root |
| <https://pwrev.dev/227185>`__ |
| * `Remove misc program |
| <https://pwrev.dev/226995>`__ |
| (issue `#356888002 <https://pwbug.dev/356888002>`__) |
| * `Rename "misc" program to "sapphire" |
| <https://pwrev.dev/226993>`__ |
| (issue `#356888002 <https://pwbug.dev/356888002>`__) |
| * `Add new presubmit steps |
| <https://pwrev.dev/226712>`__ |
| (issue `#356619766 <https://pwbug.dev/356619766>`__) |
| * `Allow fxbug.dev and crbug.com TODOs |
| <https://pwrev.dev/226474>`__ |
| * `Expose name of Bazel executable |
| <https://pwrev.dev/226378>`__ |
| (issue `#355438774 <https://pwbug.dev/355438774>`__) |
| |
| pw_router |
| --------- |
| * `Add missing includes |
| <https://pwrev.dev/227331>`__ |
| (issue `#356667663 <https://pwbug.dev/356667663>`__) |
| |
| pw_rpc |
| ------ |
| * `Fix TypeScript client streaming return type |
| <https://pwrev.dev/226717>`__ |
| * `Add yield mode constraint_setting |
| <https://pwrev.dev/226551>`__ |
| (issue `#345199579 <https://pwbug.dev/345199579>`__) |
| |
| pw_rust |
| ------- |
| The new ``pw_rust_USE_STD`` toolchain configuration option lets you control |
| whether the "std" feature should be used when building executables. |
| |
| * `Add no_std build to basic_executable |
| <https://pwrev.dev/211993>`__ |
| (issue `#343111481 <https://pwbug.dev/343111481>`__) |
| * `Rename host_executable |
| <https://pwrev.dev/211992>`__ |
| (issue `#343111481 <https://pwbug.dev/343111481>`__) |
| |
| pw_spi_mcuxpresso |
| ----------------- |
| * `Add SPI_RxError() and SPI_TxError() |
| <https://pwrev.dev/226992>`__ |
| |
| pw_status |
| --------- |
| ``PW_STATUS_CFG_CHECK_IF_USED`` now defaults to ``true`` in Bazel projects, |
| meaning that ``pw::Status`` objects returned from function calls must be used or |
| else a compilation error is raised. See :ref:`module-pw_status-reference-unused`. |
| |
| * `In Bazel, make Status nodiscard |
| <https://pwrev.dev/227411>`__ |
| (issue `#357090965 <https://pwbug.dev/357090965>`__) |
| * `Don't silently discard status returns |
| <https://pwrev.dev/227277>`__ |
| (issue `#357090965 <https://pwbug.dev/357090965>`__) |
| |
| pw_symbolizer |
| ------------- |
| * `Add missing runfiles dep |
| <https://pwrev.dev/226719>`__ |
| (issue `#355527449 <https://pwbug.dev/355527449>`__) |
| * `Get llvm-symbolizer path from Bazel |
| <https://pwrev.dev/226254>`__ |
| (issue `#355527449 <https://pwbug.dev/355527449>`__) |
| |
| pw_system |
| --------- |
| The ``pw_system`` console now lets you control host log and device log levels |
| separately via the new ``--host-log-level`` and ``--device-log-level`` |
| arguments. The new ``echo()``, ``reboot()``, and ``crash()`` methods of |
| ``pw_system.device.Device`` make it easier to access these common |
| operations. Crash snapshots are now saved to ``/tmp`` (``C:\\TEMP`` on Windows) |
| by default. Crash detection logs are now printed across multiple lines to make |
| them easier to spot. |
| |
| * `Separate host and device console log levels |
| <https://pwrev.dev/227599>`__ |
| * `Don't use implementation_deps |
| <https://pwrev.dev/226977>`__ |
| (issues `#304374970 <https://pwbug.dev/304374970>`__, |
| `#356667663 <https://pwbug.dev/356667663>`__) |
| * `Add console device aliases for common RPCs |
| <https://pwrev.dev/226476>`__ |
| * `Save snapshots to /tmp |
| <https://pwrev.dev/226392>`__ |
| * `Make crash detection logs louder |
| <https://pwrev.dev/226373>`__ |
| |
| pw_tokenizer |
| ------------ |
| * `decode_optionally_tokenized without a Detokenizer |
| <https://pwrev.dev/226727>`__ |
| |
| pw_toolchain |
| ------------ |
| * `Clang support for Arm Cortex-M33 |
| <https://pwrev.dev/228391>`__ |
| (issue `#358108912 <https://pwbug.dev/358108912>`__) |
| * `Register Cortex-M7 toolchain |
| <https://pwrev.dev/227598>`__ |
| * `Use \`crate_name\` for GN rust targets |
| <https://pwrev.dev/223391>`__ |
| * `proc_macro GN cross compile |
| <https://pwrev.dev/215011>`__ |
| * `Rustc cross compile to qemu-clang |
| <https://pwrev.dev/211994>`__ |
| (issue `#343111481 <https://pwbug.dev/343111481>`__) |
| * `Expose a symlink to clangd |
| <https://pwrev.dev/226262>`__ |
| (issue `#355655415 <https://pwbug.dev/355655415>`__) |
| |
| pw_transfer |
| ----------- |
| * `Add a delay after opening a stream to delay transfer start |
| <https://pwrev.dev/225734>`__ |
| (issue `#355249134 <https://pwbug.dev/355249134>`__) |
| * `Use initial timeout when resending start chunks |
| <https://pwrev.dev/226452>`__ |
| |
| pw_web |
| ------ |
| The log viewer now defaults to using line wrapping in table cells. The new |
| ``logViews`` property makes it easier to customize each individual log view. |
| The ``severity`` field for controlling what types of logs to display has |
| been renamed to ``level``. |
| |
| * `Add resize handler to message col |
| <https://pwrev.dev/221433>`__ |
| (issue `#351901512 <https://pwbug.dev/351901512>`__) |
| * `Change word-wrap to default true and save to state |
| <https://pwrev.dev/226730>`__ |
| (issue `#354283022 <https://pwbug.dev/354283022>`__) |
| * `NPM version bump to 0.0.22 |
| <https://pwrev.dev/226726>`__ |
| * `Show REPL message at every run |
| <https://pwrev.dev/226872>`__ |
| * `NPM version bump to 0.0.21 |
| <https://pwrev.dev/226713>`__ |
| * `Enable custom titles, log-view access |
| <https://pwrev.dev/226771>`__ |
| (issue `#355272099 <https://pwbug.dev/355272099>`__) |
| * `Change severity to level |
| <https://pwrev.dev/225573>`__ |
| (issue `#354282161 <https://pwbug.dev/354282161>`__) |
| * `Replace column menu with MWC components |
| <https://pwrev.dev/226151>`__ |
| (issues `#354712931 <https://pwbug.dev/354712931>`__, |
| `#342452087 <https://pwbug.dev/342452087>`__) |
| |
| Docs |
| ==== |
| The new :ref:`Tour of Pigweed <showcase-sense>` is a hands-on, guided |
| walkthrough of many key Pigweed features working together in a medium-complexity |
| application. |
| |
| * `Start Sense tutorial |
| <https://pwrev.dev/220311>`__ |
| * `Fix some bad links in the changelog |
| <https://pwrev.dev/226811>`__ |
| * `Update changelog |
| <https://pwrev.dev/226251>`__ |
| |
| Rolls |
| ===== |
| * `gn |
| <https://pwrev.dev/227612>`__ |
| * `fuchsia_infra 119 commits |
| <https://pwrev.dev/227476>`__ |
| * `cmake |
| <https://pwrev.dev/227289>`__ |
| * `rust |
| <https://pwrev.dev/227287>`__ |
| * `Clang |
| <https://pwrev.dev/226725>`__ |
| (issue `#356689444 <https://pwbug.dev/356689444>`__) |
| * `bazel_skylib |
| <https://pwrev.dev/226979>`__ |
| * `rust |
| <https://pwrev.dev/226257>`__ |
| |
| Third-party software |
| ==================== |
| |
| Emboss |
| ------ |
| * `Append public_deps in GN template |
| <https://pwrev.dev/227062>`__ |
| |
| ICU |
| --- |
| * `Remove ICU |
| <https://pwrev.dev/228234>`__ |
| |
| STM32Cube |
| --------- |
| * `bzlmod-friendly changes |
| <https://pwrev.dev/226479>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| |
| Miscellaneous |
| ------------- |
| * `Run 'pw format --fix' |
| <https://pwrev.dev/227186>`__ |
| |
| ------------ |
| Jul 25, 2024 |
| ------------ |
| Highlights (Jul 12, 2024 to Jul 25, 2024): |
| |
| * **Extensive Bazel support in the Pigweed extension for VS Code**: |
| See :ref:`docs-changelog-20240725-pw_ide` for the full story. |
| * **Bazel module support**: Upstream Pigweed is now usable as a `Bazel |
| module <https://bazel.build/external/module>`_ dependency. |
| * **Trapping backend for pw_assert**: :ref:`module-pw_assert_trap` is a |
| new backend for :ref:`module-pw_assert` that calls ``__builtin_trap()`` |
| when an assert is triggered. |
| * **Crash handling in async pw_system**: Crash snapshots can be downloaded |
| from ``pw_console`` by calling ``device.get_crash_snapshots()`` in the |
| REPL. |
| |
| Build systems |
| ============= |
| |
| Bazel |
| ----- |
| Toolchain registration moved from ``WORKSPACE`` to ``MODULE.bazel``, making |
| it possible for downstream projects to use upstream Pigweed's toolchains |
| directly. Pigweed is now usable as a Bazel module dependency. Pigweed now |
| provides an example ``.bazelrc`` at ``//pw_build/pigweed.bazelrc`` that |
| downstream users can copy into their own projects. |
| |
| * `Remove @pigweed from bzl files |
| <https://pwrev.dev/226007>`__ |
| (issue `#352389854 <https://pwbug.dev/352389854>`__) |
| * `Remove stray @pigweed in load statement |
| <https://pwrev.dev/226006>`__ |
| (issue `#352389854 <https://pwbug.dev/352389854>`__) |
| * `Move toolchain registration to MODULE.bazel |
| <https://pwrev.dev/225471>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Enable bzlmod |
| <https://pwrev.dev/211362>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Remove sanitizers from default program |
| <https://pwrev.dev/223572>`__ |
| (issue `#301487567 <https://pwbug.dev/301487567>`__) |
| * `Modernize pip deps style (2) |
| <https://pwrev.dev/224316>`__ |
| * `Organize and document required flags |
| <https://pwrev.dev/223817>`__ |
| (issue `#353750350 <https://pwbug.dev/353750350>`__) |
| * `Use Python toolchain in custom rules |
| <https://pwrev.dev/224298>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Use Python toolchain in custom rules |
| <https://pwrev.dev/224272>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Use Python toolchain in custom rules |
| <https://pwrev.dev/224272>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Modernize pip deps style |
| <https://pwrev.dev/223871>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Create separate "sanitizers" CI program |
| <https://pwrev.dev/223595>`__ |
| (issue `#301487567 <https://pwbug.dev/301487567>`__) |
| * `Run under tsan, ubsan in presubmit |
| <https://pwrev.dev/223631>`__ |
| (issue `#301487567 <https://pwbug.dev/301487567>`__) |
| * `Run tests with asan in CQ |
| <https://pwrev.dev/222792>`__ |
| (issue `#301487567 <https://pwbug.dev/301487567>`__) |
| |
| Docs |
| ==== |
| The fonts on ``pigweed.dev`` have been updated. |
| |
| * `Prefer "change" to Google-specific "CL" |
| <https://pwrev.dev/226004>`__ |
| * `Minor changelog update |
| <https://pwrev.dev/224271>`__ |
| * `Update pigweed.dev fonts |
| <https://pwrev.dev/223591>`__ |
| (issue `#353530954 <https://pwbug.dev/353530954>`__) |
| * `Minor updates |
| <https://pwrev.dev/223571>`__ |
| * `Update changelog |
| <https://pwrev.dev/222831>`__ |
| |
| Modules |
| ======= |
| |
| pw_assert_trap |
| -------------- |
| :ref:`module-pw_assert_trap` is a new backend for :ref:`module-pw_assert` |
| that calls ``__builtin_trap()`` when an assert is triggered. |
| |
| * `Add a new assert backend which traps on assert |
| <https://pwrev.dev/220135>`__ |
| (issues `#351888988 <https://pwbug.dev/https://pwbug.dev/351888988>`__, |
| `#351886597 <https://pwbug.dev/https://pwbug.dev/351886597>`__) |
| |
| pw_async2 |
| --------- |
| The new :cpp:class:`pw::async2::CoroOrElseTask` class lets you run a coroutine |
| in a task and invokes a handler function on error. The new |
| :cpp:func:`pw::async2::Task::IsRegistered` method checks if a task is |
| currently registered with a dispatcher. The new |
| :cpp:func:`pw::async2::Coro::Empty()` method creates an empty, invalid |
| coroutine object. The new :cpp:func:`pw::async2::Task::Deregister` method |
| unlinks a task from a dispatcher and any associated waker values. |
| |
| * `Fix minor doc issues |
| <https://pwrev.dev/226111>`__ |
| * `Add CoroOrElseTask |
| <https://pwrev.dev/225778>`__ |
| * `Add Task::IsRegistered |
| <https://pwrev.dev/225995>`__ |
| * `Add Coro::Empty |
| <https://pwrev.dev/225993>`__ |
| * `Add Task::Deregister |
| <https://pwrev.dev/225775>`__ |
| |
| pw_async2_epoll |
| --------------- |
| * `Fix block on racing wakeups |
| <https://pwrev.dev/224291>`__ |
| |
| pw_bluetooth |
| ------------ |
| * `Generate emboss headers in Soong |
| <https://pwrev.dev/225152>`__ |
| (issue `#352364622 <https://pwbug.dev/352364622>`__) |
| * `Add generic HCI command definition |
| <https://pwrev.dev/224931>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| |
| pw_bluetooth_proxy |
| ------------------ |
| * `Create Soong library for pw_bluetooth_proxy |
| <https://pwrev.dev/225153>`__ |
| (issue `#352393966 <https://pwbug.dev/352393966>`__) |
| * `Update emboss deps |
| <https://pwrev.dev/224991>`__ |
| * `Do not pass on NOCP events without credits |
| <https://pwrev.dev/224434>`__ |
| (issue `#353546115 <https://pwbug.dev/353546115>`__) |
| * `Have functions handle passing on the packet |
| <https://pwrev.dev/224433>`__ |
| (issue `#353546115 <https://pwbug.dev/353546115>`__) |
| * `Update tests to verify number of sent packets |
| <https://pwrev.dev/224300>`__ |
| * `Remove debugging log |
| <https://pwrev.dev/224032>`__ |
| (issue `#353546115 <https://pwbug.dev/353546115>`__) |
| |
| pw_bluetooth_sapphire |
| --------------------- |
| The latest ``pw_bluetooth_sapphire`` commits were brought |
| into Pigweed from the Fuchsia repository. |
| |
| * `Reduce scope of security_manager |
| <https://pwrev.dev/225036>`__ |
| (issue `#337315598 <https://pwbug.dev/337315598>`__) |
| * `Cleanup BrEdrConnectionManager test file |
| <https://pwrev.dev/225035>`__ |
| * `Fix integer conversion warnings |
| <https://pwrev.dev/225034>`__ |
| (issue `#354057871 <https://pwbug.dev/354057871>`__) |
| * `Cleanup WritePageScanType into shared test file |
| <https://pwrev.dev/225033>`__ |
| * `Add missing optional include |
| <https://pwrev.dev/225051>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Remove unused method |
| <https://pwrev.dev/224043>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Remove variant from LE SendCommands |
| <https://pwrev.dev/224042>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Remove CommandPacketVariant |
| <https://pwrev.dev/224041>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Remove variant from QueueCommand |
| <https://pwrev.dev/224040>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Remove variant from QueueLeAsyncCommand |
| <https://pwrev.dev/224112>`__ |
| (issue `#42167863 <https://pwbug.dev/42167863>`__) |
| * `Create IsoDataChannel |
| <https://pwrev.dev/224039>`__ |
| (issue `#311639040 <https://pwbug.dev/311639040>`__) |
| * `Check legacy adv for rand addr in FakeController |
| <https://pwrev.dev/224038>`__ |
| (issue `#42161900 <https://pwbug.dev/42161900>`__) |
| * `Use platform-independent format strings |
| <https://pwrev.dev/224096>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Processing of CIS Established event |
| <https://pwrev.dev/224037>`__ |
| (issue `#311639432 <https://pwbug.dev/311639432>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/224036>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Cleanup WritePageScanActivity |
| <https://pwrev.dev/224095>`__ |
| * `Cleanup into shared test file |
| <https://pwrev.dev/224035>`__ |
| * `Cleanup WriteLocalNameResponse to shared file |
| <https://pwrev.dev/224094>`__ |
| * `Fix camel case for CIS acronym |
| <https://pwrev.dev/224034>`__ |
| * `Cleanup Inquiry command packets into shared file |
| <https://pwrev.dev/224033>`__ |
| * `Implement AcceptCis() |
| <https://pwrev.dev/224093>`__ |
| (issue `#311639432 <https://pwbug.dev/311639432>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221311>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221250>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Reorganize test_packets.h/.cc files |
| <https://pwrev.dev/221249>`__ |
| * `Cleanup WriteInquiryScanActivity packets |
| <https://pwrev.dev/221266>`__ |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221265>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221264>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221248>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Remove unneeded #include |
| <https://pwrev.dev/221262>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221261>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221247>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221246>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Use pw_bytes for endianness conversions |
| <https://pwrev.dev/221245>`__ |
| (issue `#313665184 <https://pwbug.dev/313665184>`__) |
| * `Rename link_initiated to outgoing_connection |
| <https://pwrev.dev/221244>`__ |
| * `Cleanup WriteScanEnable packets into shared file |
| <https://pwrev.dev/221243>`__ |
| * `Cleanup ReadScanEnable packets into shared file |
| <https://pwrev.dev/221260>`__ |
| * `Remove alias for BrEdrConnectionRequest |
| <https://pwrev.dev/221242>`__ |
| * `BrEdrConnectionRequest create HCI connection req |
| <https://pwrev.dev/221241>`__ |
| * `Add connection role to fake controller |
| <https://pwrev.dev/221258>`__ |
| (issue `#311639432 <https://pwbug.dev/311639432>`__) |
| * `Remove double std::move in PairingStateManager |
| <https://pwrev.dev/221238>`__ |
| * `Fix BrEdrDynamicChannel crash |
| <https://pwrev.dev/221257>`__ |
| (issue `#42076625 <https://pwbug.dev/42076625>`__) |
| * `Cleanup BrEdrConnectionRequest and Manager |
| <https://pwrev.dev/221237>`__ |
| * `Implement IsoStreamServer |
| <https://pwrev.dev/221256>`__ |
| (issue `#311639275 <https://pwbug.dev/311639275>`__) |
| * `Modernize fuchsia.hardware.bluetooth.Peer API |
| <https://pwrev.dev/221255>`__ |
| (issue `#330591131 <https://pwbug.dev/330591131>`__) |
| * `Rename to secure_simple_pairing_state |
| <https://pwrev.dev/221236>`__ |
| (issue `#342150626 <https://pwbug.dev/342150626>`__) |
| * `Use weak hci::BrEdrConnection pointer |
| <https://pwrev.dev/221253>`__ |
| * `Create and use PairingStateManager class |
| <https://pwrev.dev/221252>`__ |
| (issues `#342150626 <https://pwbug.dev/342150626>`__, |
| `#42173830 <https://pwbug.dev/42173830>`__) |
| * `Implement GetCodecLocalDelayRange |
| <https://pwrev.dev/221251>`__ |
| (issue `#311639690 <https://pwbug.dev/311639690>`__) |
| * `Add Bazel rules for FIDL layer |
| <https://pwrev.dev/221190>`__ |
| (issue `#324105856 <https://pwbug.dev/324105856>`__) |
| * `Refactor ScoConnection |
| <https://pwrev.dev/221189>`__ |
| (issue `#330590954 <https://pwbug.dev/330590954>`__) |
| * `Fix max connection event length value |
| <https://pwrev.dev/221188>`__ |
| (issue `#323255182 <https://pwbug.dev/323255182>`__) |
| * `Add AdvertisingData.ToString |
| <https://pwrev.dev/221187>`__ |
| (issue `#42157647 <https://pwbug.dev/42157647>`__) |
| * `Make UUID string parsing optional |
| <https://pwrev.dev/221234>`__ |
| (issue `#339726884 <https://pwbug.dev/339726884>`__) |
| * `Add Adapter::GetSupportedDelayRange |
| <https://pwrev.dev/221233>`__ |
| (issue `#311639690 <https://pwbug.dev/311639690>`__) |
| * `Clean up legacy advertising report parsing API |
| <https://pwrev.dev/221185>`__ |
| (issue `#308500308 <https://pwbug.dev/308500308>`__) |
| * `Add missing climits include |
| <https://pwrev.dev/221183>`__ |
| (issue `#338408169 <https://pwbug.dev/338408169>`__) |
| * `Add Emboss support to SendCommand completion |
| <https://pwrev.dev/221182>`__ |
| (issue `#311639690 <https://pwbug.dev/311639690>`__) |
| * `Improve naming of android namespace aliases |
| <https://pwrev.dev/221232>`__ |
| (issue `#335491380 <https://pwbug.dev/335491380>`__) |
| * `Migrate emboss aliases to new names |
| <https://pwrev.dev/221181>`__ |
| (issue `#338068316 <https://pwbug.dev/338068316>`__) |
| * `Add tests for LE Read Max. Adv. Data Length |
| <https://pwrev.dev/221180>`__ |
| (issue `#338058140 <https://pwbug.dev/338058140>`__) |
| * `Ensure command is supported before issuing it |
| <https://pwrev.dev/221178>`__ |
| (issue `#338058140 <https://pwbug.dev/338058140>`__) |
| * `Use duration_cast for constants |
| <https://pwrev.dev/221029>`__ |
| (issue `#337928450 <https://pwbug.dev/337928450>`__) |
| * `Implement extended adv. pdus with fragmentation |
| <https://pwrev.dev/221177>`__ |
| (issue `#312898345 <https://pwbug.dev/312898345>`__, |
| `#309013696 <https://pwbug.dev/309013696>`__) |
| * `Use \`ull\` constants for enums |
| <https://pwrev.dev/221028>`__ |
| (issue `#337928450 <https://pwbug.dev/337928450>`__) |
| * `Update semantics of \`bredr.Advertise\` |
| <https://pwrev.dev/221176>`__ |
| (issues `#330590954 <https://pwbug.dev/330590954>`__, |
| `#327758656 <https://pwbug.dev/327758656>`__) |
| * `Add the credit-based flow control RxEngine |
| <https://pwrev.dev/221175>`__ |
| * `Migrate LEAdvertisingReportSubevent to Emboss |
| <https://pwrev.dev/221174>`__ |
| (issue `#86811 <https://pwbug.dev/86811>`__) |
| * `Lenient LEGetVendorCapabilitiesCommandComplete |
| <https://pwrev.dev/221027>`__ |
| (issues `#337947318 <https://pwbug.dev/337947318>`__, |
| `#332924521 <https://pwbug.dev/332924521>`__, |
| `#332924195 <https://pwbug.dev/332924195>`__) |
| * `Migrate FIDL to bt::testing::TestLoopFixture |
| <https://pwrev.dev/221172>`__ |
| (issue `#324105856 <https://pwbug.dev/324105856>`__) |
| * `Fix all available lint errors |
| <https://pwrev.dev/221171>`__ |
| * `Move LinkKey simple constructors to the h file |
| <https://pwrev.dev/221025>`__ |
| * `Add operator!= for LinkKey |
| <https://pwrev.dev/221049>`__ |
| * `Add extra diagnostics |
| <https://pwrev.dev/221048>`__ |
| * `Improve management of advertising modes |
| <https://pwrev.dev/221045>`__ |
| (issue `#309013696 <https://pwbug.dev/309013696>`__) |
| * `Add Bazel rules for socket library |
| <https://pwrev.dev/221024>`__ |
| (issue `#324105856 <https://pwbug.dev/324105856>`__) |
| * `Update LowEnergyAdvertiser to use std::vector |
| <https://pwrev.dev/221023>`__ |
| (issue `#312898345 <https://pwbug.dev/312898345>`__, |
| `#309013696 <https://pwbug.dev/309013696>`__) |
| * `Add more values to LEEventMask |
| <https://pwrev.dev/221022>`__ |
| * `Pass hci::AdvertisingIntervalRange as const |
| <https://pwrev.dev/221044>`__ |
| * `Shorten pw::bluetooth::emboss to pwemb |
| <https://pwrev.dev/221021>`__ |
| * `Pass extended_pdu booleans through the stack |
| <https://pwrev.dev/221043>`__ |
| (issue `#312898345 <https://pwbug.dev/312898345>`__, |
| `#309013696 <https://pwbug.dev/309013696>`__) |
| * `Update AdvertisingHandleMap for extended PDUs |
| <https://pwrev.dev/221020>`__ |
| (issue `#312898345 <https://pwbug.dev/312898345>`__, |
| `#309013696 <https://pwbug.dev/309013696>`__) |
| * `Update missing header |
| <https://pwrev.dev/221019>`__ |
| (issue `#331673100 <https://pwbug.dev/331673100>`__) |
| * `Add the credit-based flow control TxEngine |
| <https://pwrev.dev/221017>`__ |
| * `Prevent protected member access in TxEngine |
| <https://pwrev.dev/221016>`__ |
| * `Add Bazel tests |
| <https://pwrev.dev/221015>`__ |
| * `Fix conversions from iterators to raw pointers |
| <https://pwrev.dev/221014>`__ |
| (issue `#328282937 <https://pwbug.dev/328282937>`__) |
| * `Add bt-host Bazel tests |
| <https://pwrev.dev/221042>`__ |
| (issue `#324105856 <https://pwbug.dev/324105856>`__) |
| * `Low energy advertiser general cleanup |
| <https://pwrev.dev/221041>`__ |
| * `Use using aliases for Emboss type references |
| <https://pwrev.dev/221012>`__ |
| * `Add Bazel build files |
| <https://pwrev.dev/221036>`__ |
| (issue `#324105856 <https://pwbug.dev/324105856>`__) |
| |
| pw_build |
| -------- |
| ``pw_py_binary`` is a new wrapper for ``py_binary`` that provides some |
| defaults, such as marking all Python binaries as incompatible with MCUs. |
| |
| * `Introduce pw_py_binary |
| <https://pwrev.dev/224296>`__ |
| (issue `#258836641 <https://pwbug.dev/258836641>`__) |
| * `Use incompatible_with_mcu in pw_py_test |
| <https://pwrev.dev/224294>`__ |
| |
| pw_channel |
| ---------- |
| The new :cpp:class:`pw::channel::StreamChannel` adapter makes it easier for |
| a channel to interact with an underlying reader and writer stream. |
| |
| * `Add StreamChannel adapter |
| <https://pwrev.dev/225651>`__ |
| |
| pw_chrono_freertos |
| ------------------ |
| * `Work around no std::unique_lock in baremetal libc++ |
| <https://pwrev.dev/223636>`__ |
| (issue `#353601672 <https://pwbug.dev/353601672>`__) |
| |
| pw_chrono_stl |
| ------------- |
| * `Consolidate SystemTimer into a single thread |
| <https://pwrev.dev/224295>`__ |
| |
| pw_console |
| ---------- |
| Typing out RPCs to invoke from the web console REPL should now autocomplete |
| as expected. The web console log viewer now has a default config, defined |
| at ``//pw_console/py/pw_console/html/defaultconfig.json``. A new boolean |
| config option, ``recolor_log_lines_to_match_level``, has been added to |
| allow users to control whether log messages should be restyled to match |
| their severity level. |
| |
| * `Fix RPC autocompletion in web kernel |
| <https://pwrev.dev/225935>`__ |
| * `Set a default config for web console's log viewer |
| <https://pwrev.dev/225751>`__ |
| * `Pass rpc completions to web_kernel |
| <https://pwrev.dev/224311>`__ |
| * `Add config option for log message recoloring |
| <https://pwrev.dev/224475>`__ |
| * `Default WebHandler.kernel_params to an empty dictionary |
| <https://pwrev.dev/223932>`__ |
| * `Handle web logging in a separate thread |
| <https://pwrev.dev/223691>`__ |
| * `Cleanup web kernel on page close |
| <https://pwrev.dev/223178>`__ |
| * `Replace placeholder page with real web console |
| <https://pwrev.dev/223155>`__ |
| |
| pw_cpu_exception_cortex_m |
| ------------------------- |
| The new ``PW_CPU_EXCEPTION_CORTEX_M_CRASH_ANALYSIS_INCLUDE_PC_LR`` |
| option lets you control whether PC and LR register values are included |
| in the ``AnalyzeCpuStateAndCrash()`` analysis. |
| |
| * `Make PC LR optional |
| <https://pwrev.dev/221731>`__ |
| * `Fix assembly |
| <https://pwrev.dev/223131>`__ |
| (issue `#261603269 <https://pwbug.dev/261603269>`__) |
| * `Temporarily disable tests on Cortex-M33 |
| <https://pwrev.dev/223594>`__ |
| (issues `#353533678 <https://pwbug.dev/353533678>`__, |
| `#323215726 <https://pwbug.dev/323215726>`__) |
| |
| pw_crypto |
| --------- |
| * `Don't build micro-ecc |
| <https://pwrev.dev/223152>`__ |
| (issue `#261603269 <https://pwbug.dev/261603269>`__) |
| |
| pw_env_setup |
| ------------ |
| * `Add luci-cv to environment |
| <https://pwrev.dev/222811>`__ |
| |
| pw_grpc |
| ------- |
| * `Fix shadowed variable warning |
| <https://pwrev.dev/225931>`__ |
| |
| .. _docs-changelog-20240725-pw_ide: |
| |
| pw_ide |
| ------ |
| General updates: ``pw_ide`` now detects Bazel projects based on the presence |
| of ``MODULE.bazel`` files. The :ref:`module-pw_ide` docs have been revamped. |
| Shared VS Code settings can now be stored in ``.vscode/settings.shared.json``. |
| The extension no longer attempts to infer the working directory if a project |
| root isn't explicitly provided; instead it prompts users to manually specify |
| the project root. The VS Code extension now has better support for Fish |
| terminals. |
| |
| VS Code extension updates related to code intelligence in Bazel-based projects: |
| The new ``Pigweed: Select Code Analysis Target`` command controls which Bazel |
| target in your project to use for code intelligence. The new ``Pigweed: Refresh |
| Compile Commands`` command lets you manually refresh code intelligence data. |
| There's also a ``Pigweed: Refresh Compile Commands and Select Code Analysis |
| Target`` that combines these two steps. In the VS Code status bar there's a new |
| icon to indicate whether ``clangd`` code intelligence is on or off. Code |
| intelligence data compilation output is now streamed so that you can monitor |
| the progress of the tool in real-time. The easiest way to access these logs is |
| by running the new ``Pigweed: Open Output Panel`` command. The extension now |
| supports a ``.clangd.shared`` file that can be used to control project-wide |
| ``clangd`` settings. |
| |
| VS Code extension updates related to other Bazel tools: The extension now |
| bundles Bazelisk and Buildifier. These bundled versions get updated when the |
| extension itself updates. The extension recommends users to use these bundled |
| versions by default. You can use the new ``Activate Bazelisk in Terminal`` |
| command to manually specify which Bazelisk version to use. |
| |
| * `Support bzlmod projects |
| <https://pwrev.dev/225913>`__ |
| * `Block on spawned refresh process |
| <https://pwrev.dev/225731>`__ |
| * `Status bar item for inactive file disabling |
| <https://pwrev.dev/225392>`__ |
| * `Support disabling clangd for inactive files |
| <https://pwrev.dev/224893>`__ |
| * `Update vendored tools on extension update |
| <https://pwrev.dev/225934>`__ |
| * `Use vendored Bazelisk in recommended config |
| <https://pwrev.dev/225933>`__ |
| * `Improve VSC settings interface |
| <https://pwrev.dev/225932>`__ |
| * `Add shared settings management |
| <https://pwrev.dev/224573>`__ |
| * `Associate target groups with active files |
| <https://pwrev.dev/222735>`__ |
| * `Don't unnecessarily infer working dir |
| <https://pwrev.dev/224572>`__ |
| * `VSC extension 1.1.1 release |
| <https://pwrev.dev/224897>`__ |
| * `Add missing command stubs |
| <https://pwrev.dev/224892>`__ |
| * `Stream refresh compile commands output |
| <https://pwrev.dev/224313>`__ |
| * `Update dev build configs |
| <https://pwrev.dev/224312>`__ |
| * `Add fish to Bazelisk+VSC terminal |
| <https://pwrev.dev/224292>`__ |
| * `VSC extension 1.1.0 release |
| <https://pwrev.dev/224171>`__ |
| * `Patch Bazelisk into VSC terminal |
| <https://pwrev.dev/223823>`__ |
| * `VSC extension 1.0.0 release |
| <https://pwrev.dev/223911>`__ |
| * `Revise docs |
| <https://pwrev.dev/223157>`__ |
| * `Update VSC extension packaging |
| <https://pwrev.dev/223634>`__ |
| * `Add proto extension as dependency |
| <https://pwrev.dev/223156>`__ |
| * `Fix VSC troubleshooting links |
| <https://pwrev.dev/223576>`__ |
| * `Update compile commands tool version |
| <https://pwrev.dev/222575>`__ |
| * `Don't show root comp DB dir as target |
| <https://pwrev.dev/223633>`__ |
| * `VSC status bar item for target selection |
| <https://pwrev.dev/220134>`__ |
| * `Add IDE support refresh manager |
| <https://pwrev.dev/219973>`__ |
| * `Integrate Bazelisk in VSC |
| <https://pwrev.dev/219971>`__ |
| * `Bazel comp DB management in VSC |
| <https://pwrev.dev/218832>`__ |
| * `VSC/JS project management |
| <https://pwrev.dev/222734>`__ |
| * `Create VSC settings interface |
| <https://pwrev.dev/222733>`__ |
| * `Use VSC output panel for logging |
| <https://pwrev.dev/222732>`__ |
| * `VSC extension cleanup |
| <https://pwrev.dev/222731>`__ |
| |
| pw_kvs |
| ------ |
| * `Missing <string> includes |
| <https://pwrev.dev/223352>`__ |
| (issue `#298822102 <https://pwbug.dev/298822102>`__) |
| * `Update bazel config |
| <https://pwrev.dev/223171>`__ |
| |
| pw_libcxx |
| --------- |
| ``pw_libcxx`` now has support for the ``new`` operator. |
| |
| * `Actually implement operator delete |
| <https://pwrev.dev/223692>`__ |
| * `Add operator new |
| <https://pwrev.dev/223632>`__ |
| |
| pw_log |
| ------ |
| * `Log decoder timestamp cleanup |
| <https://pwrev.dev/223271>`__ |
| * `Fix log_decoder timestamp formatting |
| <https://pwrev.dev/222771>`__ |
| (issue `#351905996 <https://pwbug.dev/351905996>`__) |
| |
| pw_multibuf |
| ----------- |
| * `Add more context on chunk regions |
| <https://pwrev.dev/222431>`__ |
| |
| pw_presubmit |
| ------------ |
| ``pw_presubmit.inclusive_language.check_file`` now accepts an optional |
| ``check_path`` argument which controls whether to check the path for |
| non-inclusive language. |
| |
|