Skip to content

Harmony 2.0 RC 5

Pre-release
Pre-release
Compare
Choose a tag to compare
@pardeike pardeike released this 08 Feb 10:50
· 775 commits to master since this release

We are getting close! This is the last feature release. Expect maximum one more RC for bug fixes but other than that, this is the real deal. ENJOY

Compatibility warning:
DO NOT MIX HARMONY 2 WITH OLDER HARMONY 1 VERSIONS

Changes since RC 4:

  • New: Support for IL InlineSignature (patching methods with CALLI)
  • New: documentation can now be tested with dotnet tool
  • New: documentation now uses compiled code snippets for correctness
  • Update: MonoMod.Common 20.2.2.1
  • Fixed: Methods that result in dead code at the end can now be Prefixed (Mono issue only)
  • Fixed: Outdated content in documentation
  • Regression: injecting ___fields now works as before (considers base class fields again)
  • Fixed: Handling Ret in replacement method is now smarter
  • Regression: Reverse patching - transpiled code must now end with valid Ret
  • Fixed: don't use Setup to run tests
  • New: Selective debug log with [HarmonyDebug] annotation - works even with future changes of the method
  • New: Prepare/Cleanup will be called even with exceptions during patching
  • New: Cleanup can now receive and return the current Exception during patching
  • Fixed: Removed travic-ci.com and only use travis-ci.org
  • Fixed: github main page now has correct CI badges with links
  • New: If possible, an IL compile error will result in a new HarmonyException that contains the IL codes and the IL offset in a parseable format

Documentation
The documentation can be found at https://harmony.pardeike.net - feel free to file Issues for anything incorrect or for places that need more clarity or improvements.

Upgrading
The API has changed from Harmony 1.x to Harmony 2 so don't expect this to go without at least some renaming/refactoring. Shouldn't be hard though.

Help wanted
Please use [HarmonyDebug] to produce the debug log on your Desktop and compare the output to the original IL code of the method. Especially code offsets in methods with exception handling. Report any abnormalities.

Feedback
For bugs or suggestions, feel free to file Issues or join the official Discord.