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
: Addexpect!
as alias forunwrap!
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 aFormat
impl forPanicInfo
and related types. - #855:
defmt-print
: Now uses tokio to make tcp and stdin reads async (in preparation for awatch 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
: Runcargo semver-checks
on every PR - #807:
defmt-print
: Addwatch_elf
flag to allow ELF file reload without restartingdefmt-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
- [#835]:
macros
: Fix somedefmt
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 togimli 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 toFormatter
- #784:
defmt-decoder
: Preparedefmt-decoder v0.3.9
release - #781:
defmt-decoder
: Addpub struct Formatter
todefmt_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
- #766
decoder::log
: RenamePrettyLogger
toStdoutLogger
- #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
anddefmt-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
AddFormat
impls forcore::ptr::NonNull
andfn(Args...) -> Ret
(up to 12 arguments)
- #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
andpanic-probe v0.3.1
- #744:
defmt-parser
: Clean and simplify - #742:
defmt-decoder
: Include crate name in symbol name - #743:
defmt-parser
: Simplify tests withrstest
- #741:
defmt-macros
: Disable default-features forrstest
- #740: Snapshot tests for
core::net
- #739:
xtask
: Clean up - #737:
panic-probe
: Addhard_fault()
for use indefmt::panic_handler
- #733:
defmt
: Add formatting forcore::net
with theip_in_core
feature - #603:
defmt
: Raw pointers now print as0x1234
instead of1234
- #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.
- #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
: Updateclap
to version4
- #710:
CI
: Update CI - #706:
defmt
,defmt-decoder
,defmt-itm
,defmt-macros
,defmt-parser
,defmt-print
,defmt-test-macros
: Satisfy clippy
- #704: Release
defmt-macros 0.3.3
,defmt-print 0.3.3
,defmt-rtt 0.4.0
- #703:
defmt-print
: Update toclap 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-enableqemu-snapshot (nightly)
tests - #686:
CI
: Temporarily disableqemu-snapshot (nightly)
- #684:
defmt-macros
: Fixsyn
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 rust1.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 fixdefmt-macros
-releated compile-error - [#669]: Refine docs for
--json
flag
v0.3.1 - 2022-03-10
- #662:
#[derive(Format)]
now accepts attribute fields to format fields using theDebug2Format
adapter instead of aFormat
implementation. - #661: Add tests for Cell types
- #656: Implement
defmt::Format
forCell
andRefCell
- #630: Add test instructions to README.md
- #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
tov0.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 thatdefmt::println!
shows leading space when timestamps are disabled - #601: Move crate
defmt
todefmt/
- #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
to0.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 withus
- #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
- #499 Illustrate structure of the defmt crates
- #503 Add alternate hint ('#')
- #509
impl Format for NonZero*
- #488 Structure
impl Format
s into multiple files - #496 Bump build-dep
semver
to1.0
- #489 Structure lib
- #500 book: fix leftover old formatting syntax; typos
- #510
CI
: Don't install MacOS dependency which is included by default
- #497
macros
: match unused vars if logging is disabled
v0.2.2 - 2021-05-20
- #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 theCow
s - #478 add
dbg!
macro
- #477 Disable logging calls via conditional compilation when all defmt features are disabled
v0.2.1 - 2021-03-08
- #403 Add knurling logo to API docs
- #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
- #284 Implement support for
i128
andu128
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
forchar
s - #313 Add display hints
- #323 Merge
Uxx(u64)
(Ixx(i64)
) andU128(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
anddefmt-print
crates - #343 Customizable timestamps
- #347 Document the grammar of
defmt
s 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, removeprobe-run
strings - #377
defmt-test
: support returningResult
from tests - #382
impl Format for Infallible
- #391
impl Format for core::time::Duration
- #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 theFormat
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
'sinner
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 usesdefmt
sDisplay2Format
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 onstd
rust - #364 Split firmware code into separate workspace
- #368
defmt-itm
: Raise compile error onarmv6m
- #369 Move
bors.toml
to.github/
- #371 Link to git version of
defmt
book - #372 Update
Printers
section indefmt
book - #373 Improve information in
Cargo.toml
- #379 Make link to
defmt
book clickable - #380 Merge crates
elf2table
andlogger
intodecoder
- #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
tolog
- make
fn parse_*
,fn get_locations
,fn decode
methods ofstruct Table
- various simplifications and restructuring of internal code
- rename
- #387 CI: bump timeout to 20 minutes
- #389 defmt_decoder: Bump deps
object
andgimli
- #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 sincewrite!
now consumes theFormatter
due to #305. - #321 ASCII hint (
:a
) is now respected when used together with theFormat
trait (=?
and=[?]
). - #342 Fix a data corruption issue when using
bool
s inwrite!
- #357 Fix issue preventing
defmt
from compiling on MacOS.
v0.1.3 - 2020-11-30
- #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
- #263 #276 add and document
write!
macro - #273 #280 add and document
unwrap!
macro - #266 add
panic!
-like andassert!
-like macros which will log the panic message usingdefmt
and then callcore::panic!
(by default) - #267, #281 add
Debug2Format
andDisplay2Format
adapters - #279 started adding notes about feature availability (e.g. "defmt 0.1.2 and up")
- #257 code size optimizations
- #265 updated the 'how we deal with duplicated format strings' section of our implementation notes
- #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!
anddefmt::assert!
macros do not cause unexpected errors anymore
v0.1.1 - 2020-11-16
- #259 crates.io version of
defmt
crates no longer requiregit
to be built
Initial release