Skip to content

Pattern Language rewrite, better file IO performance and macOS support

Compare
Choose a tag to compare
@WerWolv WerWolv released this 08 Jan 21:07
· 4231 commits to master since this release

Changelog

Additions

  • Added official support for MacOS
    • Made possible by @Thog's amazing contributions to the build system
  • Added Plugin support
    • Allows creation of custom windows, custom entries to the Tools window and custom data providers
    • An example can be found under /plugins/example
  • Rewrote the entire pattern language parser and evaluator
    • The language is now faster, more robust and has much less issues
    • A in-depth guide for all the features in the Pattern Language can now be found in the Wiki
  • Many new features have been added to the pattern language
    • Added mathematical expressions with many operators, bit operators and value access
    • Added a much more featureful way of using values of other variables everywhere where a number is required
    • Added conditional statements for structs and unions (if, else and else if)
    • Added back zero sized array. These will simply be ignored
    • Added scope resolution operator for using enum values in expressions
    • Added built-in functions to find sequences and read values at addresses
    • Added boolean patterns
    • Added unsized character arrays for null-terminated strings
  • Use file memory mapping instead of using standard file IO
    • This greatly increases performance on older computers and brings down background file IO to a minimum.
  • Added Decimal, Hexadecimal and Octal number format options to data inspector
  • Added nightlies for all platforms
    • These are available under the Actions tab
    • Thanks to @Thog for the macOS nightlies
  • Added full DPI scaling
  • Added custom font support
    • To use this, place your font named font.ttf next to the executable
  • Added version info to about page
    • Version info, current commit hash and branch are shown
  • Added selected region information to hex editor footer
  • Various UI/UX improvements

Bug fixes

  • Greatly improved byte highlighting performance
    • Previously, when scrolling down with a big pattern running, huge slowdowns started happening. The algorithm used for highlighting has been greatly improved to fix this.
  • Fixed opening of files with a non-ASCII file path
  • Fixed crashes with zero-sized arrays
  • Fixed byte selection in read-only files
  • Fixed ImHex refusing to be closed in some circumstances
  • Fixed data inspector not updating in all cases
  • Fixed ASCII characters drawing above the hex editor footer
  • Fixed floating point displaying in pattern data view
  • Fixed pattern data not updating when a new file is loaded