You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.