Code documentation was improved significantly. Some previously undocumented members now have descriptions.
Translation of type references in code comments was improved. Using ‘translate_code_from_comments_system_dlls’ configuration item is no longer required as the porter automatically looks through the types in all referenced assemblies. Class properties are now properly replaced when translating documentation comments.
Assert.That(Is.AtLeast) and Assert.That(Is.GreaterThanOrEqualTo) assertions were supported by porter when translating NUnit/xUnit tests.
SDK-styled csproj files were supported using Buildalyzer library. To use it, one must set the new ‘use_buildalyzer’ option.
Memory consumption when creating delegates was improved.
The ‘CppDeclareFriendFunction’ attribute is now supported by porter. It allows it generating friend declarations for the external functions.
Porter performance issue generating includes for ported files was fixed.
GetSharedMembers() virtual function trunk was excluded from both the library and the ported code.
The FINAL and OVERRIDE macros were retired.
An issue was fixed in porter when translating multiple TestCase-driven tests with same names belonging to different classes.
The rendering of synthesized font styles was improved to better match .Net behavior. Some issues rendering and measuring text were resolved.
HttpWebRequest class now properly handles relative pathes in redirect header.
The signature and contents of SetTemplateWeakPtr method was put in line with the rest of the code in both the library and the generated code.
Some issues translating the code which depends on Zip subsection of the Library were resolved.
The size of System::Object class instance was optimized.
The behavior of System::Threading::Thread::get_ManagedThreadId() was improved to guarantee unical identifiers for the threads.
Translation of foreach-based iteration on ‘this’ no longer causes compilation errors in const methods if ‘IterateOver’-like approach is used.
The default constructors of ShaXXXManaged classes no longer throw NotImplemented exceptions.
The new ‘always_include_delegates’ option is supported by porter to include delegates definitions instead of redeclaring them each time.
System::IO::Compression::BrotliStream class was supported using Brotli library.
Missing include for System::ComponentModel::AsyncCompletedEventArgs in ported code was fixed.
Please consult respective sections of our wiki for more information.
Full List of Issues Covering all Changes in this Release
Fix missing comments
High memory usage when creating delegates
Implement public Venture License API
Some CppForceInclude attributes get ignored
Improve system types handling when porting comments
Adding the new directive that is used to disable GetSharedMembers.
Remove some private headers from include directory and perform limited clean-up of public headers
Support of Assert.That(…, Is.AtLeast(…)) expressions
Fix net namespace comments
Fix porting of parameterized tests with the same name
Check Skia with SK_USE_FREETYPE_EMBOLDEN define enabled
Update SetTemplateWeakPtr method generation
Translate class members when porting comments
Use Aspose.Slides for .NET 21.3 features
Fix text width in GraphicsTest.MeasureDrawString_06
Fix text width in DrawStringTests.Test_10_* test
Remove redundant field m_globalMutex from System::Object
Improving performance of the ported code (investigating bottlenecks)
Fixing regressions in porter caused by ‘Fewer includes’ MR