# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] ## [v0.5.0] - 2022-07-07 ### Changed - [breaking-change] changed error handling from `failure` to `thiserror` (`std::error::Error`) ### Removed - [breaking-change] removed the `stack-sizes` and `cargo-stack-sizes` *tools* - [breaking-change] removed the `tools` Cargo feature ## [v0.4.0] - 2019-03-22 ### Added - A `stack_sizes::analyze_object` function has been added. This function is geared towards analyzing relocatable object (`.o`) files. ### Changed - [breaking-change] `stack_sizes::analyze` has been renamed to `stack_sizes::analyze_executable` and its returns type has changed to `Functions`. - `analyze_executable` no longer includes tags like `$a.1`, `$d.2` and `$t.3` in the list of aliases of a function. - [breaking-change] `Function` no longer provides an `address` method and it's no longer a generic struct . - the `stack-sizes-rustc` binary, which was an implementation detail of `cargo-stack-sizes`, has been removed. - The `stack-sizes` tool can now analyze relocatable object (`.o`) files. - `cargo-stack-sizes` now always forces a rebuild -- the Cargo caching behavior makes it hard to locate the object file that contains the stack usage information. ## [v0.3.1] - 2019-03-10 ### Added - `Function` now has a `size` method to get the size of the subroutine in bytes. ## [v0.3.0] - 2019-03-03 ### Changed - [breaking-change] `Function.address` now returns an `Option`. - `stack_sizes::analyze` now detects even more function aliases, specially ones that has been created using linker scripts (see `PROVIDE`). - `stack_sizes::analyze` does *not* error if the `.stack_sizes` section is missing. - `stack_sizes::analyze` now also reports undefined symbols (symbols that will be loaded at runtime from a dynamic library); these have an address of `None`. - `Function` now implements the `Debug` trait ## v0.2.0 - 2018-12-02 ### Added - `analyze` now handles symbol aliases. `Function` gained a `names` method that returns a list of names (or aliases) associated to an address. ### Changed - [breaking-change] `Function.stack` now returns `Option`. - `analyze` now returns *all* the symbols in the ELF; even those for which there is no information about their stack usage. ### Removed - [breaking-change] `Function.name` method has been removed. ## v0.1.1 - 2018-11-30 ### Changed - Extended the lifetime of the string returned by `Function.name` ## v0.1.0 - 2018-09-28 - Initial release [Unreleased]: https://github.com/japaric/stack-sizes/compare/v0.5.0...HEAD [v0.5.0]: https://github.com/japaric/stack-sizes/compare/v0.4.0...v0.5.0 [v0.4.0]: https://github.com/japaric/stack-sizes/compare/v0.3.1...v0.4.0 [v0.3.1]: https://github.com/japaric/stack-sizes/compare/v0.3.0...v0.3.1 [v0.3.0]: https://github.com/japaric/stack-sizes/compare/v0.2.0...v0.3.0 [v0.2.0]: https://github.com/japaric/stack-sizes/compare/v0.1.1...v0.2.0 [v0.1.1]: https://github.com/japaric/stack-sizes/compare/v0.1.0...v0.1.1