Skip to content

Version 0.11.5

Latest
Compare
Choose a tag to compare
@uxmal uxmal released this 21 Mar 22:57
· 63 commits to master since this release

This Reko release contains a variety of new features and improvements.

New contributor @gregoral made huge improvements to Reko's Risc-V support:
added decoders and rewriters for many new Risc-V instructions both unprivileged
and privileged, fixed many bugs in existing instruction decoders, and provided
a new instruction renderer for the architecture. Reko's Risc-V disassembly output
can now be assembled by other toolchains -- it's round-trippable.

Contributor @throwaway96 continued improving support for the mysterious
AEON architecture, and various enhancements in the Reko implementation of the
C preprocessor. Now there is a #define symbol __REKO_DECOMPILER__ that is
set to 1 when parsing C header files with Reko.

Progress on the platform-indepentent Avalonia GUI is slow but continuous.
The project was moved to Avalonia 11 from the previous 0.10 verson. A major
milestone was reached when the MemoryControl and TextView classes were finally ported to Avalonia.
The only remaining custom controls remaining, the VisualizerView and the ImageMapView
controls, are scheduled to be completed in the coming weeks. The Avalonia user interface
is soon going to reach feature parity with the Windows Forms interface.

Contributor @ptomin continued improving Reko's type inference engine. We are
reaching a point where limitations in the general strategy of Reko's type inference
are hindering progress. An alterative type analysis, based on subtype constraints, is
being researched.

Contributor @smx-smx labored on the build system with various performance
improvements and bug fixes in preparation for support of .NET 8

Some other changes:

  • Reko now reads PE executables looking for the PE debug directory.
  • Very rudimentary PDB reading support is present. It's a starting point
    for extracting symbolic information from binaries with associated PDB
    files.
  • Fixes to the WASM rewriter.
  • Much improved support for COFF and OMF file formats
  • All known CR16c instructions now supported.
  • All known AVR32 instructions now supported.
  • Support for distingushing 16- and 20-bit MSP 430 instruction sets.
  • Added support for C-Sky architecture.
  • Stub implementations of Zilog Z8000 and eZ8 architectures.
  • Corrected behavior for Sparc SAVE/RESTORE instructions.
  • Introduced a new IMemory abstraction that hides the details
    of segmentations. New code is expected to using this new interface rather
    than manually looking up addresses in SegmentMap.
  • Added support for Architecture aliases. For instance, the X86 architecture can
    be referred to as i386 or x86.
  • Support for the PalmOS platform, including handling A-line trap calls
    on that platform and MacsBug symbol support.
  • New packing script for LzExe 0.91, written wholly in OllyScript and using Reko'scheduled
    X86 emulation.
  • Handle '*' in *printf format strings.
  • Introduced IFunctionalUnit abstraction to handle SIMD instructions in a
    coherent way.

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