Skip to content

Evaluator rewrite, diffing view and more

Compare
Choose a tag to compare
@WerWolv WerWolv released this 22 Sep 00:43
· 3726 commits to master since this release

Documentation

A new documentation for ImHex (mainly the pattern language right now) is in the works and can be found here: https://imhex.werwolv.net/docs. It is a lot more detailed than the one found on the Wiki here and contains information about all the new features as well. Check it out!

Changelog

Additions

  • Added support for loading multiple files/data sources simultaneously
  • Added Binary Diffing view
  • Added Quit ImHex option to File menu
  • Added Follow system theme option
  • Added Chinese (Simplified) Localization. Many thanks to @xtexChooser

Pattern Language

  • Rewrote entire evaluation engine
    • Made Evaluator a lot simpler and faster
    • Function parameters now require a type definition
    • Strings may now be passed to functions using the str type
    • Added check to prevent huge arrays from being generated (can be overridden with a pragma)
    • Added cast expression
    • Added std::format
      • It and std::print now use libfmt / C++'s std::format syntax
    • Allow passing variables of custom types to functions
    • Added multi-variable declaration for functions
    • Many more under-the-hood changess
  • [[format]] attribute to override the way values are displayed
  • Added Unit tests
    • This will hopefully help with things breaking in the pattern language randomly
  • Unnecessary semicolons are now ignored
  • Added std::mem::read_string built-in function

Improvements

  • **On Windows, resources are now placed in the AppData folder in addition to next to the executable``
  • Fixed format-security warnings. Thanks to @russkel
  • Moved all Hex Editor settings to the settings menu
  • Restructured the settings menu into multiple tabs
  • Fixed footer items jumping around a lot when updating
  • Removed View suffix from all View names in the Views menu. Thanks to @xtexChooser
  • Fixed pattern language evaluator "lagging" behind when Automatic evaluation is active

Bug fixes

  • Fixed settings not being initialized correctly sometimes and causing crashes
    • No more crashes when settings have been set to invalid values
  • Fixed recent files not updating properly
  • Fixed Resize File option crashing
  • Fixed crash when creating arrays with negative size.
  • Fixed parent keyword not working correctly
  • Fixed constants store page not getting cleared correctly on reload
  • Fixed feedback button URL
  • Fixed padding not working correctly
  • Fixed enums not counting properly
  • Fixed bitfields not respecting endian setting
  • Fixed language selection combo box crashing in some circumstances
  • Fixed settings menu closing when changing language
  • Fixed Regex replacer tool
  • Fixed TTY console crashing if no COM ports are available. Thanks to @xtexChooser


If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!

GitHub donate button Patreon donate button PayPal donate button