Skip to content

v0.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 21 Nov 19:56
· 192 commits to main since this release
  • Added: A new default diff algorithm, and the ability to switch between algorithms. (See below)
  • Added: An "Incomplete" filter to the object list. Allows filtering out objects marked as "complete".
  • Fixed: Excessive repaints (especially on Windows). The app should use significantly less resources and be more responsive to file changes.
  • Fixed: Loading the last file on start when "Rebuild on changes" is disabled.
  • Removed: "Run in WSL" option for the build system. This was janky and overall not recommended as opposed to running natively. If you used this feature, please let me know.
  • Changed: Release builds of objdiff now use the glow (OpenGL) backend instead of wgpu. wgpu being enabled on release builds was unintentional, and adds unnecessary complexity/overhead.
    • Primarily, this means that OpenGL is used instead of Vulkan on Linux, Metal on macOS, and D3D12 on Windows.
    • If this causes issues or degrades performance for you, please create an issue.

Diff algorithms

New diff algorithms have been introduced, and a new default is now used for code and data:

  • Patience (new default)
  • Levenshtein (old default)
  • Myers
  • LCS (WARNING: slow & broken)

Compared to Levenshtein's space complexity of O(NM), Patience has a space complexity of O(N+M), meaning that much larger comparisons are possible (and faster, to boot). Previously, translation units with large data sections could easily eat up gigabytes of RAM or straight up crash with Levenshtein.

Change the active diff algorithm in "Diff Options" -> "Algorithm...".
Please try both Patience and Levenshtein and provide feedback on the change.

Full Changelog: v0.5.2...v0.6.0