Skip to content

Latest commit

 

History

History
704 lines (604 loc) · 33 KB

CHANGELOG.md

File metadata and controls

704 lines (604 loc) · 33 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

  • #889: Add script for book hosting
  • #887: Fix interning example in the book
  • #884: Upgrade dependencies: notify is now at v7, thiserror is now at v2
  • #883: Mark decoder and parser not as unstable anymore
  • #880: Merge function calls emitted by the macro to save space.
  • #874: defmt: Fix doc test
  • #872: defmt: Add expect! as alias for unwrap! for discoverability
  • #871: Set MSRV to Rust 1.76
  • #869: macros: Add missing type hints
  • [#865]: defmt: Replace proc-macro-error with proc-macro-error2
  • #859: defmt: Satisfy clippy
  • #858: defmt: Implement "passthrough" trait impls for *2Format wrappers
  • #857: Add an octal display hint (:o)
  • #856: defmt: Add a Format impl for PanicInfo and related types.
  • #855: defmt-print: Now uses tokio to make tcp and stdin reads async (in preparation for a watch elf flag)
  • #852: CI: Update mdbook to v0.4.40
  • #848: decoder: add optional one-line format
  • #847: decoder: Fix log format width specifier not working as expected
  • #845: decoder: fix println!() records being printed with formatting
  • #843: defmt: Sort IDs of log msgs by severity to allow runtime filtering by severity
  • #822: CI: Run cargo semver-checks on every PR
  • #807: defmt-print: Add watch_elf flag to allow ELF file reload without restarting defmt-print

v0.3.8 - 2024-05-17

  • #840: defmt: Support pre-1.77
  • #839: CI: Fix tests
  • #838: defmt: Switch to Cargo instruction compatible with older versions of Cargo

defmt-macros v0.3.9

  • [#835]: macros: Fix some defmt crate name usage

v0.3.7 - 2024-05-13

  • #831: CI: Fix CI
  • [#830]: book: Add section about feature-gated derive Format
  • #828: defmt-decoder: Update to gimli 0.29
  • #821: Clean up
  • #813: doc: add note for the alloc feature flag
  • #812: defmt: Add a feature to stop linking a default panic handler
  • #811: book: Add some examples for byte slice/array hints as well
  • #805: defmt: Drop ip_in_core feature and re-enable nightly snapshot tests
  • #800: defmt-macros: Fix generic trait bounds in Format derive macro

v0.3.6 - 2024-02-05

  • #804: CI: Remove mdbook strategy
  • #803: CI: Disable nightly qemu-snapshot tests
  • #789: defmt: Add support for new time-related display hints
  • #783: defmt-decoder: Move formatting logic to Formatter

defmt-decoder v0.3.9, defmt-print v0.3.10 - 2023-10-04

  • #784: defmt-decoder: Prepare defmt-decoder v0.3.9 release
  • #781: defmt-decoder: Add pub struct Formatter to defmt_decoder::log
  • #778: defmt-decoder: Add support for nested log formatting
  • #777: defmt-decoder: Simplify StdoutLogger
  • #775: defmt-decoder: Ignore AArch64 mapping symbols
  • #771: defmt-macros: Ignore empty items in DEFMT_LOG
  • #769: defmt-decoder: Add support for color, style, width and alignment to format

defmt-decoder v0.3.8, defmt-print v0.3.8 - 2023-08-01

  • #766 decoder::log: Rename PrettyLogger to StdoutLogger
  • #765: defmt-decoder: Add support for customizable logger formatting

v0.3.5 - 2023-06-19

  • #760: defmt-macros: Upgrade to syn 2
  • #759: Release defmt v0.3.5, defmt-macros 0.3.6 and defmt-print 0.3.8
  • #758: defmt-print: Tidy up
  • #757: defmt-print: Allow reading from a tcp port
  • #756: CI: Switch from bors to merge queue
  • #753: demft Add Format impls for core::ptr::NonNull and fn(Args...) -> Ret (up to 12 arguments)

defmt-decoder v0.3.7, defmt-macros v0.3.5, defmt-parser v0.3.3, defmt-print v0.3.7 - 2023-05-05

  • #754: Release defmt-decoder v0.3.7, defmt-macros v0.3.5, defmt-parser v0.3.3, defmt-print v0.3.7
  • #750: Add support for decoding wire format version 3

v0.3.4 - 2023-04-05

  • #748: Release defmt-v0.3.4, defmt-decoder-v0.3.6, defmt-print-v0.3.4 and yank previous
  • #747: Bump wire version

v0.3.3 - 2023-03-29 (yanked)

  • #745: Release defmt-v0.3.3, defmt-decoder-v0.3.5, defmt-macros v0.3.4, defmt-parser v0.3.2, defmt-print v0.3.5 and panic-probe v0.3.1
  • #744: defmt-parser: Clean and simplify
  • #742: defmt-decoder: Include crate name in symbol name
  • #743: defmt-parser: Simplify tests with rstest
  • #741: defmt-macros: Disable default-features for rstest
  • #740: Snapshot tests for core::net
  • #739: xtask: Clean up
  • #737: panic-probe: Add hard_fault() for use in defmt::panic_handler
  • #733: defmt: Add formatting for core::net with the ip_in_core feature
  • #603: defmt: Raw pointers now print as 0x1234 instead of 1234
  • #536: defmt-parser: Switch to using an enum for errors, and add some help text pointing you to the defmt docs if you use the wrong type specifier in a format string.

defmt-decoder v0.3.4, defmt-print v0.3.4

  • #729: Release defmt-decoder v0.3.4, defmt-print v0.3.4
  • #726: defmt-decoder: Remove difference in favor of dissimilar
  • #725: defmt-decoder: Replace chrono with time
  • #719: defmt-print: Fix panic
  • #715: xtask: Update clap to version 4
  • #710: CI: Update CI
  • #706: defmt, defmt-decoder, defmt-itm, defmt-macros, defmt-parser, defmt-print, defmt-test-macros: Satisfy clippy

defmt-decoder v0.3.3, defmt-macros v0.3.3, defmt-print v0.3.3, vdefmt-rtt 0.4.0

  • #704: Release defmt-macros 0.3.3, defmt-print 0.3.3, defmt-rtt 0.4.0
  • #703: defmt-print: Update to clap 4.0.
  • #701: defmt-rtt: Pre-relase cleanup
  • #695: defmt-rtt: Refactor rtt [3/2]
  • [#689]: defmt-rtt: Update to critical-section 1.0
  • #692: defmt-macros: Wrap const fn in const item to ensure compile-time-evaluation.
  • #690: defmt-decoder, defmt-parser: Satisfy clippy
  • #688: Release defmt-decoder 0.3.3
  • #687: CI: Re-enable qemu-snapshot (nightly) tests
  • #686: CI: Temporarily disable qemu-snapshot (nightly)
  • #684: defmt-macros: Fix syn dependency version.
  • #683: defmt-rtt: Make sure the whole RTT structure is in RAM
  • #682: defmt-print: exit when stdin is closed
  • #681: defmt-decoder, defmt-parser:Make use of i/o locking being static since rust 1.61.
  • #679: CI: Add changelog enforcer
  • #678: defmt, defmt-decoder, defmt-macros, defmt-parser: Satisfy clippy

v0.3.2 - 2022-05-31

  • [#675]: Release defmt 0.3.2 and fix defmt-macros-releated compile-error
  • [#669]: Refine docs for --json flag

v0.3.1 - 2022-03-10

Added

  • #662: #[derive(Format)] now accepts attribute fields to format fields using the Debug2Format adapter instead of a Format implementation.
  • #661: Add tests for Cell types
  • #656: Implement defmt::Format for Cell and RefCell
  • #630: Add test instructions to README.md

Changed

  • #659: mark extern::acquire() and extern::release() as unsafe. this is not a breaking change; this is an internal API
  • #640: use crate critical-section in defmt-rtt
  • #634: update ELF parsing dependencies
  • #633: make RTT buffer size configurable
  • #626: Make errror message more meaningful in case of version-mismatch

v0.3.0 - 2021-11-09

  • #618: Support #[ignore] attribute in defmt_test
  • #621: Readme Diagram: Replace duplicate defmt-itm with defmt-rtt
  • #617: Add display hint to output u64 as ISO8601 time
  • #620: Tidy up: remove unused code and dependencies
  • #619: Update all crates to rust edition 2021! 🎉
  • #610: defmt-print: Log if malformed frame gets skipped
  • #547: Migration guide v0.2.x to v0.3.0
  • #604: defmt-test: #[cfg(test)] the #[defmt_test::tests] module
  • #616: Update user guide part of the book
  • #615: Document how to deal with backward compatibility breakage
  • #614: Bugfix: decoder breaks with pipe symbol
  • #605: Properly handle the off pseudo-level in presence of nested logging directives
  • #611: Fix cargo doc-warnings
  • #608: decoder: Fix that defmt::println! shows leading space when timestamps are disabled
  • #601: Move crate defmt to defmt/
  • #600: Run snapshot & backcompat tests in dev mode only
  • #519: Target-side env_logger-like env filter
  • #592: xtask: add backward compability test
  • #598: defmt-print: Recover from decoding-errors
  • #569: Add defmt println! macro
  • #580: Structure defmt::export
  • #594: panic-probe: use UDF instruction on nested panics
  • #591: Remove timestamps from snapshot test
  • #585: Add xtask option to run a single snapshot test by name
  • #589: Implement Format for arrays of any length
  • #587: Tweak inline attributes to remove machine code duplication
  • #574: Refactor rtt [1/2]
  • #584: Remove outdated doc "you may only call write! once"
  • #582: Release of panic-probe v0.2.1
  • #581: Add impl for alloc::Layout
  • #579: defmt-rtt: fix check for blocking RTT
  • #577: Fix typo in cfg of encoding-feature-compile_error!
  • #578: qemu: Allow dead code
  • #572: defmt-decoder: impl TryFrom<Option<String>> for Encoding
  • #570: Support referring to Self in bitflags constants
  • #568: Encoding docs.
  • #564: Make order of bitflags values deterministic
  • #561: Remove unused cortex-m-rt in panic-probe a=Dirbaio
  • #562: Remove call to fill in user survey from README
  • #560: Update cortex-m-rt crate from 0.6 to 0.7
  • #557: Add impl for TryFromSliceError
  • #556: Add impl for TryFromIntError
  • #551: Display git version & date to introduction section
  • #540: Separate "crate version" from "wire format version
  • #549: Fix clippy warnings.
  • #539: Add optional rzCOBS encoding+framing
  • #518: build.rs: Obtain version from macro; simplify
  • #543: CI: Temporarily drop backward-compatibility check
  • #542: snapshot-tests: Test alternate hint for bitfields
  • #538: Fix wrong bit count in comment.
  • #537: snapshot-tests: Delete :? hint without impact
  • #531: refactor the macros crate
  • #534: Attribute test progress message to the test in question;
  • #535: Don't print leading space when timestamp is absent
  • #529: Refactor user-guide of book
  • #528: Support bitflags
  • #533: Adds add for user survey into readme.
  • #527: book: Add logo and support text to introduction
  • #526: decoder: Simplify tests
  • #359: Implement precedence of inner display hint
  • #523: Minimize dependencies
  • #508: [5/n] Format trait v2
  • #522: Replace µs hint with us
  • #521: [3/n] Remove u24
  • #516: xtask: Only install additional targets for tests that require them
  • #512: Add overwrite option for xtask cross results.
  • #514: extend raw pointer implementation to include !Format types
  • #513: book/duplicates.md: discriminator -> disambiguator
  • #507: [2/n] - Remove code-size-costly optimizations
  • #505: [1/n] - Logger trait v2.

v0.2.3 - 2021-06-17

Added

  • #499 Illustrate structure of the defmt crates
  • #503 Add alternate hint ('#')
  • #509 impl Format for NonZero*

Changed

  • #488 Structure impl Formats into multiple files
  • #496 Bump build-dep semver to 1.0
  • #489 Structure lib
  • #500 book: fix leftover old formatting syntax; typos
  • #510 CI: Don't install MacOS dependency which is included by default

Fixed

  • #497 macros: match unused vars if logging is disabled

v0.2.2 - 2021-05-20

Added

  • #446 Add usage examples for Debug2Format, Display2Format
  • #464 impl<T> Format for {*const, *mut} T where T: Format + ?Sized
  • #472 impl Format for the core::{iter, ops, slice} structs
  • #473 impl Format for all the Cows
  • #478 add dbg! macro

Changed

  • #477 Disable logging calls via conditional compilation when all defmt features are disabled

v0.2.1 - 2021-03-08

Added

  • #403 Add knurling logo to API docs

Fixed

  • #413 Fix docs-rs build, by disabling feature "unstable-test"
  • #427 Drop outdated note about defmt v0.2.0 from book

v0.2.0 - 2021-02-19

Added

  • #284 Implement support for i128 and u128 types
  • #291 Allows using defmt on x86 platforms by making the test suite use an internal Cargo feature
  • #293 Make defmt attributes forward input attributes
  • #294 Permits use items inside #[defmt_test::tests] modules
  • #296 Allows skipping the defmt version check in order to make development easier
  • #302 derive(Format) now supports more than 256 variants
  • #304 impl Format for chars
  • #313 Add display hints
  • #323 Merge Uxx(u64) (Ixx(i64)) and U128(u128) (u128(i128)) data variants
  • #327 impl<T> Format for PhantomData<T>
  • #329 Document safety of implementation detail functions
  • #335 Add the defmt-itm crate
  • #338 Add defmt-logger and defmt-print crates
  • #343 Customizable timestamps
  • #347 Document the grammar of defmts current format parameter syntax
  • #351 Allow tools to distinguish user-controlled format strings from generated ones
  • #354 Add f64 support
  • #376 Make defmt-logger more configurable, remove probe-run strings
  • #377 defmt-test: support returning Result from tests
  • #382 impl Format for Infallible
  • #391 impl Format for core::time::Duration

Changed

  • #297 Improves the output formatting and includes a progress indicator
  • #299 Test embedded test runner (defmt-test) as part of our CI setup
  • #300 #[derive] now uses built-in primitive formatting for primitive references
  • #303 Employ the help of [bors]
  • #305 Formatter is now passed by value, i.e. consumed during formatting
  • #308 compile-fail test new Formatter move semantics
  • #312 str fields in structs are now treated as a native type by the encoder instead of going through the Format trait
  • #325 Update our UI tests to work with the latest stable release
  • #331 Add more compile-fail tests
  • #332 Improve Format trait docs
  • #333 Hide Formatter's inner field
  • #334 Fix dead link in parser docs
  • #337 Improve diagnostics on double write!
  • #339 Make leb64 encoding fully safe (while at the same time reducing its code footprint)
  • #340 Stream core::fmt adapters
  • #345 Reduce code size by avoiding 64-bit arithmetic in LEB encoding
  • #350 panic-probe now uses defmts Display2Format to log panic messages. In consequence, panic messages won't get truncated anymore.
  • #355 Clarify the docs on Write::write
  • #352 Do not display full version with --help. Thanks to [Javier-varez]!
  • #354 Support f64 floating point numbers.
  • #355 Clarify docs on Write::write.
  • #361, [#367] Make clippy happy by improving code quality
  • #363 Improve test coverage on basic defmt usage on std rust
  • #364 Split firmware code into separate workspace
  • #368 defmt-itm: Raise compile error on armv6m
  • #369 Move bors.toml to .github/
  • #371 Link to git version of defmt book
  • #372 Update Printers section in defmt book
  • #373 Improve information in Cargo.toml
  • #379 Make link to defmt book clickable
  • #380 Merge crates elf2table and logger into decoder
  • #383 defmt-test: Modify attributes in place and handle #[cfg]
  • #384 pin unstable path dependencies
  • #385 defmt_decoder: Skip allocation of datastructure for raw symbols of the table entries in fn get_locations
  • #386, #392 Refactor decoder
    • rename mod logger to log
    • make fn parse_*, fn get_locations, fn decode methods of struct Table
    • various simplifications and restructuring of internal code
  • #387 CI: bump timeout to 20 minutes
  • #389 defmt_decoder: Bump deps object and gimli

Fixed

  • #301 Fix the nightly builds after a linked_list_allocator feature change
  • #310, #311 remove the runtime check (and matching tests) if the write! macro was called multiple times as this can no longer happen since write! now consumes the Formatter due to #305.
  • #321 ASCII hint (:a) is now respected when used together with the Format trait (=? and =[?]).
  • #342 Fix a data corruption issue when using bools in write!
  • #357 Fix issue preventing defmt from compiling on MacOS.

v0.1.3 - 2020-11-30

Fixed

  • #290 fixed cross compilation to ARMv6-M and other targets that have no CAS (Compare-and-Swap) primitives when the "alloc" feature is enabled

v0.1.2 - 2020-11-26

Added

  • #263 #276 add and document write! macro
  • #273 #280 add and document unwrap! macro
  • #266 add panic!-like and assert!-like macros which will log the panic message using defmt and then call core::panic! (by default)
  • #267, #281 add Debug2Format and Display2Format adapters
  • #279 started adding notes about feature availability (e.g. "defmt 0.1.2 and up")

Changed

Fixed

  • #264 probe-run doesn't panic if log message is not UTF-8
  • #269 fixes compiler error that was thrown when using defmt::panic within e.g. a match expression
  • #272 braces in format args passed to the new defmt::panic! and defmt::assert! macros do not cause unexpected errors anymore

v0.1.1 - 2020-11-16

Fixed

  • #259 crates.io version of defmt crates no longer require git to be built

v0.1.0 - 2020-11-11

Initial release