Fix for mixed version loclists, tests (#521)
[pyelftools.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index da3262f755674ba44358ee1f3dd1f2a1e8491633..789820adf236f3ef4c1f7b9b085f41692397b001 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 Changelog
 =========
 
-+ Version 0.21 (??)
++ Version 0.30 (2023.09.06)
+
+  - Python 2 support officially dropped (#415)
+  - Optimization: cache instantiation of DWARF structs (#435)
+  - DWARFv5 CU headers (#442)
+  - Bug fix in attribute reporting for DWA_FORM_indirect (#475)
+  - Support for RISC-V attributes (#459)
+  - Readelf used for testing upgraded to 2.41 (#489)
+  - Support for MIPS64 object files (#495)
+  - LoongArch support (#470, #483)
+
++ Version 0.29 (2022.08.09)
+
+  - Lots of improvements to DWARFv5 support (#400, #411, #418, #419, #429 and
+    additional PRs)
+  - Support for compressed relocation sections (#395)
+  - Support for supplementary object files - debug fission (#426)
+  - Improved support for corrupted ELF headers (#434)
+  - Readelf used for testing upgraded to 2.38 (#420)
+  - Add auto-testing vs. llvm-dwarfdump (#428)
+
++ Version 0.28 (2022.02.03)
+
+  - Added a method for returning the index of a section by name (#331)
+  - Allow filtering by section types in iter_sections (#345)
+  - Support Android compressed rel/rela sections (#357)
+  - Initial support for PPC64LE (#360)
+  - Initial DWARF v5 support (#363 with several follow-ups)
+  - Fixed parsing for structures containing uids or gids in core
+    dumps (#354)
+  - Allow filtering by segment types in iter_segments (#375)
+  - Add support for .note.gnu.property (#386)
+  - Update readelf tests to work with more recent version of
+    readelf (#387)
+  - Add support for note GNU_PROPERTY_X86_FEATURE_1_AND (#388)
+
++ Version 0.27 (2020.10.27)
+
+  - Print addend wfor RELA relocations without symbol (#292)
+  - Implement symbol lookup for {GNU,}HashSection (#290)
+  - Major rewrite of expression parsing
+  - Cashed random access to CUs and DIEs (#264)
+  - GNU expressions (#303)
+  - Support parsing LSDA pointers from FDEs (#308)
+  - Add support for DWA_OP_GNU_push_tls_address in expressions (#315)
+  - Some initial support for AArch64 little-endian (#318)
+  - Support for ELF files with a large number of sections (#333)
+  - Some minimal support for DWARFv1 (#335)
+  - Many small bug fixes; see git log.
+
++ Version 0.26 (2019.12.05)
+
+  - Call relocation for ARM v3 (#194)
+  - More complete architecture coverage for ENUM_E_MACHINE (#206)
+  - Support for .debug_pubtypes and .debug_pubnames sections (#208)
+  - Support for DWARF v4 location lists (#214)
+  - Decode strings in dynamic string tables (#217)
+  - Improve symbol table handling in dynamic segments (#219)
+  - Improved handling of location information (#225)
+  - Avoid deprecation warnings in Python 3.7+
+  - Add DWARF v5 OPs (#240)
+  - Handle many new translation forms and constants
+  - Lazy DIE parsing to speed up partial parsing of DWARF info (#249)
+
++ Version 0.25 (2018.09.01)
+
+  - Make parsing of SH_TYPE and PT_TYPE fields dependent on the machine
+    (e_machine header field), making it possible to support conflicting type
+    enums between different machines (#71 and #121).
+  - Add parsing and readelf dumping for .eh_frame (#155)
+  - Support compressed sections (#152)
+  - Better support for parsing core dumps (#147)
+  - More comprehensive handling of ARM relocations (#121)
+  - Convert all ascii encoding to utf-8 encoding (#182)
+  - Don't attempt to hex/string dump SHT_NOBITS sections in readelf (#119).
+  - Test with Python 3.6
+  - Minor bugfixes (#118)
+  - Cleanup: Use argparse instead of optparse
+  - Make readelf comparison tests run in parallel using multiprocessing; cuts
+    testing time 3-5x
+  - Improvements in MIPS flags handling (#165)
+
++ Version 0.24 (2016.08.04)
+
+  - Retrieve symbols by name - get_symbol_by_name (#58).
+  - Symbol/section names are strings internally now, not bytestrings (this may
+    affect API usage in Python 3) (#76).
+  - Added DT_MIPS_* constants to ENUM_D_TAG (#79)
+  - Made dwarf_decode_address example a bit more useful for command-line
+    invocation.
+  - More DWARF v4 support w.r.t decoding function ranges; DW_AT_high_pc value
+    is now either absolute or relative to DW_AT_low_pc, depending on the class
+    of the form encoded in the file. Also #89.
+  - Support for SHT_NOTE sections (#109)
+  - Support for .debug_aranges section (#108)
+  - Support for zlib-compressed debug sections (#102)
+  - Support for DWARF v4 line programs (#82)
+
++ Version 0.23 (2014.11.08)
+
+  - Minimal Python 2.x version raised to 2.7
+  - Basic support for MIPS (contributed by Karl Vogel).
+  - Support for PT_NOTE segment parsing (contributed by Alex Deymo).
+  - Support for parsing symbol table in dynamic segment
+    (contributed by Nam T. Nguyen).
+
++ Version 0.22 (2014.03.30)
+
+  - pyelftools repository moved to https://github.com/eliben/pyelftools
+  - Support for version sections - contributed by Yann Rouillard.
+  - Better ARM support (including AArch64) - contributed by Dobromir Stefanov.
+  - Added some initial support for parsing Solaris OpenCSW ELF files
+    (contributed by Yann Rouillard).
+  - Added some initial support for DWARF4 (as generated by gcc 4.8)
+    and DWARF generated by recent versions of Clang (3.3).
+  - Added the get_full_path utility method to DIEs that have an associated
+    file name / path (based on pull request #16 by Shaheed Haque).
+  - Set up Travis CI integration.
+
++ Version 0.21 (2013.04.17)
 
   - Added new example: dwarf_decode_address - decode function name and
     file & line information from an address.
   - Issue #7: parsing incorrect DWARF was made a bit more forgiving for cases
     where serialized DIE trees have extra NULLs at the end.
+  - Very initial support for ARM ELF files (Matthew Fernandez - pull
+    request #6).
+  - Support for dumping the dynamic section (Mike Frysinger - pull
+    request #7).
+  - Output of scripts/readelf.py now matches that of binutils 2.23.52.
+  - Added more machine EM_ values to ENUM_E_TYPE.
 
-+ Version 0.20 (27.01.2012)
++ Version 0.20 (2012.01.27)
 
   - Python 3 support
   - Fixed some problems with running tests
   - Issue #2: made all examples run (and test/run_examples_test.py pass)
     on Windows.
 
-+ Version 0.10 - Initial public release (06.01.2012)
-
++ Version 0.10 - Initial public release (2012.01.06)