Skip to content

Version 0.11.4

Compare
Choose a tag to compare
@uxmal uxmal released this 03 Sep 17:53
· 445 commits to master since this release

Another few months, another Reko minor release. Development continues in various directions.

In the architecture department, support was improved for various architectures, especually AEON and H8. X86 string instructions (rep movsb etc) are replaced by their C library equivalents (memcpy etc) (contributed by @ptomin). Bugs in the X86 and 6502 emulators were fixed.

Reko's C parser and preprocessor in particular received some attention. Nested #if/endif statements are now handled, various stability contributions were provided by @throwaway96.

The command line executable was changed from decompile.exe to reko.exe. It was refactored to support sub-commands. Currently those are

  • reko disasseble, which loads a file and disassembles its contents
  • reko decompile, which in addition performs data, type and structure
    analysis.
  • reko assemble, which allows users to assemble source files.
    If no subcommand is specified, Reko will default to decompile.

Underneath the covers, the Reko decompiler is undergoing a slow but seismic refactoring. Progress was made in the new Scanner, which already is about 4x faster than the existing implementation. The Analysis phase was also refactored (via the new SccWorkerCoordinator class) to make it possible to run it multithreaded in the future. Across the board, global mutable state is being replaced with immutable data structures, or judiciously kept thread-safe by using appopriate critical sections and locks.

Reko will start understanding SIMD instructions better with the introduction of the SimdIntrinsic class.

The user interface is also seeing a slow but seismic overhaul. The Windows Forms GUI is refactored so that creating side-by-side interface elements in parallel with the Avalonia GUI is smoother. Various small GUI enhancements have been added, like support for flipping through architectures in the low level view. This feature allows the user to flip through Reko's architectures and see the results in the DisassemblyView. The new CallGraphNavigatorView improves the navigation of the decompiled program's call graph.

  • A new unpacker for PKLITE v1.12-1.20
  • Support for various [[reko::...]] attributes in header files, especially
    [[reko::characteristics]].
  • Partial support for the OpenVMS platform.
  • The pseudoregister %continuation is used to reify the return address of
    a called Procedure.
  • Improved support for LE binaries.
  • M68k fixed (with thanks to @gbody)
  • More MS-DOS INT 21h services defined.
  • Support translation of WASM IR into Reko IR.
  • Added support for calls-respect-abi heuristic.
  • Display the currently selected address range in the status bar (#1232)
  • Added the Padauk PDK13,PDK14 and PDK15 instruction sets.

Thanks to @gbody, @mjunix, @ptomin, @smx-smx, and @throwaway96 for their contributions and dedication.