Skip to content

Dec v0.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Mar 15:06

Added

  • Added IUserSettings, which is passed throughout the Dec system and can be used to change the behavior of Parser and Recorder.
  • Added IConditionalRecorder, which can be used to conditionally record objects.
  • CloneWithAssignmentAttribute can now be used to specify that objects can be cloned with basic assignment, speeding up array cloning considerably.
  • IPostCloneOriginal/IPostCloneNew interfaces that can be used to perform post-clone operations on objects.
  • Converter.TreatAsValuelike() which can be used to treat any type like a valuelike. See documentation for details.

Breaking

  • Ignoring provided fields in a Recorder is now considered a warning. Use the new recorder.Ignore() method to explicitly suppress this warning for a field.
  • Extra RecorderEnumerator's RecordableClosures attribute now needs to be applied to the class instead of the function (but you weren't using this yet, right?)

Obsoleted

  • Bespoke.IgnoreRecordDuringParserAttribute has been obsoleted in favor of IConditionalRecorder. It remains in the codebase for now but will be removed in the future.

Improved

  • Major revamp of Recorder.Clone functionality to dramatically improve performance (approx 200x in one real-life test case.)
  • Recorder no longer depends on Parser.Finish() to find Converters.
  • Better support for parallel operations in multiple threads (but not Parser.)
  • Fleshed out an error message.

Fixed

  • Inconsistent behavior in Extra RecorderEnumerator Delegate deserialization. (Hopefully.)
  • Improper storage of this with Extra RecorderEnumerator iterators.
  • Unexpected shrapnel caused by the above two fixes.

Testing

  • Improved consistency of a few tests.