The new implementation for System::Xml was provided. Previously, we had custom implementation which was based on the libxml2 and libxslt libraries. The new version is based on the ported CoreFX code.
The Readme files were added to the Nuget and downloadable packages.
The double-conversion library was upgraded to 3.1.7 version.
The events_with_custom_accessors node was supported in the porter configuration files. It makes it possible to inform the porter on custom events in non-ported code.
The compound assignment operators now work with the ported structures containing corresponding arithmetic operators.
The comparison operators for the structures that have IsNull method were fixed.
The force_const_ref_parameters option was imrpoved. If applied to the class constructor, it also affects generated member MakeObject function (if any), thus improving the performance of the ported code.
Unwanted dependencies were removed from make_const_ref.h.
This-comparison was optimized in the ported code. SmartPtr instance is no longer created.
The Qt conversion functions were updated at GitHub.
The shaping for symbolic fonts was disabled, like in .Net.
Please consult respective sections of our wiki for more information.
Full List of Issues Covering all Changes in this Release
Add README to the Nuget and Downloads packages
Improve arithmetic operators translation
Fix comparison of structures with defined IsNull method
Replace ‘for’ loops with ‘foreach’ loops where possible
Resolve compilation errors in Linux
Find and try to enable disabled System.Xml tests
Fix failed product’s tests
Improve the ported code readability
Apply performance improvements to System.Xml implementation
Add documentation comments for System.Xml code ported from CoreFX
Rework CollectionBase implementation in CoreFX code used for System.Xml porting
Fix merge request issues with System.Xml code ported from CoreFX
Fix regressions occurred after performance optimizations in System.Xml port
Synchronize System.Xml ported code with the latest CodePorting.Native.Cs2Cpp library changes (2021/49)
Fix failed aspose_xml_gtest tests
Fix failed tests in Linux
Fix newly detected reference cycles in System.Xml code ported from CoreFX
Fix Regex issue with the new System::Xml
Fix XmlRegexIssue.TestXmlRegexIssue test
Investigate System.Xml runtime errors reported by Tasks team
Review code changes
Add Double-conversion build job for Windows
Avoid excess SmartPtr creation when compare with ‘this’ pointer.
Fix tests for ‘develop’ branch
Drop libxml2 and libxslt licenses from pdf file
Add tests for Qt converters to Jenkins sequence
Public API and Backward Incompatible Changes
The implementation of System::Xml classes was completely reworked. Some APIs may have become unavailable. Some APIs may have changed. The new API is much closer to such of .Net. Please use the API reference for more information.
The supported glibc version will be changed in the upcoming releases.
The new IEnumerable-level iterators and iterators for collections with duck typing will be introduced in one of the upcoming releases. The code which is dependent on EnumeratorBasedIterator or DuckTypedIterator may require some changes.
Some declarations (e. g. StreamPtr) will be removed from the global namespace in the upcoming releases.