Skip to content

Releases: Decompollaborate/mapfile_parser

2.3.2

17 Jan 03:12
Compare
Choose a tag to compare

[2.3.2] - 2024-01-17

Added

  • Add optional categoryColumnSize parameter to ProgressStats.getHeaderAsStr
    and ProgressStats.getEntryAsStr.
    • Allows to set the size of the first column.

Fixed

  • Fix Rust's implementation of File not returning a pathlib.Path object for
    the filepath member.

2.3.1

24 Dec 00:27
e4afed5
Compare
Choose a tag to compare

[2.3.1] - 2023-12-23

Added

  • Add a few utility methods to ProgressStats.

Changed

  • pyo3 is no longer needed to use this crate as Rust-only library.
  • Updated Rust dependencies.

2.3.0

05 Nov 21:12
ff3d522
Compare
Choose a tag to compare

[2.3.0] - 2023-11-05

Added

  • Support for parsing clang lld's map fles.
  • New functions:
    • MapFile.parseMapContents/MapFile::parse_map_contents
      • Parses the map contents passed as the argument, without requiring the map
        being on an actual file.
      • The map format will be guessed on the contents. Currently both the GNU ld
        and clang ld.lld map formats are recognized.
    • MapFile.parseMapContentsGNU/MapFile::parse_map_contents_gnu
      • Parses the map contents passed as the argument, without requiring the map
        being on an actual file.
      • This function only parses the GNU ld map format.
    • MapFile.parseMapContentsLLD/MapFile::parse_map_contents_lld
      • Parses the map contents passed as the argument, without requiring the map
        being on an actual file.
      • This function only parses the clang ld.lld map format.
  • New members:
    • Symbol.align/Symbol::align, File.align/File::align and
      Segment.align/Segment::align: The alignment the given type. This member
      will be filled by the parser only if the mapfile provides this information.

Changed

  • MapFile.readMapFile/MapFile::read_map_file can now guess the map format
    between any of the known formats.
  • Some known symbol names will be automatically filtered out during the parsing
    step.
    • Currently only gcc2_compiled. is filtered out.

Fixed

  • Fix parser not detecting *fill* lines on GNU ld maps if they specified the
    value that was used for filling/padding.
  • .sbss, COMMON and .scommon sections are now properly considered noload
    sections.

2.2.1

08 Oct 18:15
c021532
Compare
Choose a tag to compare

[2.2.1] - 2023-10-08

Fixed

  • Fix Rust crate size being too big
    • crates.io was rejecting the package because of the size
    • Cargo was packaging all the map files and test cases, making the package be
      15 MiB. Now it is around 16.3 KiB

2.2.0

08 Oct 17:29
6efe39f
Compare
Choose a tag to compare

[2.2.0] - 2023-10-08

Added

  • Add new Rust re-implementation (#15)
    • Allows using this library in native Rust projects
    • It does not replace the Python implementation due to restrictions on how
      Rust bindings work.
    • Python bindings for the Rust implementation exists, but they are not used
      or exposed to the user
  • Now this library has a Rust crate.

Changed

  • Speed-up the actual parsing of a mapfile by using the native Rust implementation
    • Up to 10 times faster parsing has been registered
  • Change build system from hatchling to maturin

2.1.5

02 Oct 15:00
e87e598
Compare
Choose a tag to compare

[2.1.5] - 2023-10-02

Added

  • Add CHANGELOG.md
  • Add markdown linter to CI

Changed

  • Cleanup the README.md a bit
  • Update Github Action's dependencies

Deprecated

  • Deprecate File.getName
    • The method itself doesn't make sense, instead operate on File.filepath directly
  • Deprecate MapFile.debugging
  • Deprecate progress frontend's --debugging flag

2.1.4

11 Sep 18:39
f982b63
Compare
Choose a tag to compare
  • Fix vrom calculation if the first symbol of a file is not available in the map file

1.3.2

11 Sep 18:29
Compare
Choose a tag to compare
  • Add version info to the cli
  • Add small testing suite
  • Allow csv conversion to be written to a file instead of only printing to stdout
  • Output none instead of "None" for symbols with no vrom when generating json output.
  • Add machine-friendly/non-human-readable option for json generation.
    • Numbers are outputted as real numbers instead of prettified strings
  • Fix vrom calculation if the first symbol of a file is not available in the map file

Full changes: 702a734...ba444b0

2.1.3

30 Aug 03:03
54ee08c
Compare
Choose a tag to compare
  • Fix version number
    • pypi thought previous version was a prerelease instead of a full release

2.1.2

30 Aug 02:42
f6cd42b
Compare
Choose a tag to compare
  • Output none instead of "None" for symbols with no vrom when generating json output.
  • Add machine-friendly/non-human-readable option for json generation.
    • Numbers are outputted as real numbers instead of prettified strings
  • Make dummy files for *fill* lines instead of adding them to the previous file.
  • Don't drop the dummy segment if it actually has data on it
  • Add some CI tests