Jump to the main content

2021

v4.0

  • 2022/01/05~11
    • Refactoring template modules.

    • Optimized warm-up performance.

    • Add comment hints for important members.

    • Optimized using stitching logic.

  • 2022/01/01~05
    • Refactoring the deinterrupter module.

    • Refactoring semantic filtering module.

    • Refactoring the log module.

    • Refactoring syntax modules.

    • Add some extension methods.

    • Refactoring the compiled module.

    • Refactor the domain context.

    • Refactoring plugin management, adding LoadBehaviorEnum enumeration for users to choose the behavior of domain loading plugins.

    • Refactoring reference management, using LoadBehaviorEnum enumeration so that developers can decide on the merging strategy of different domain reference sets.

  • 2021/12/28
    • Optimized refactoring built-in semantic filters.

    • Optimized for refactoring CS0104 semantic extension.

  • 2021/12/27
    • Optimized how global USing is obtained.

    • Added NatashaOperator static operation class, which is convenient for quickly creating other operation classes and using them with domain contexts.

    • InitializeAndPreheating 预热方法支持 func<string,bool> 参数, 以便开发者排除无用的引用加载.

  • 2021/12/22
    • Separate the Microsoft.Extensions.DependencyModel versions for each runtime.

    • Upgrade DotNetCore.SourceLink.Environment to version 3.1.0.

    • The Natasha compilation unit adds the DisableSemanticCheck/EnableSemanticCheck method for developers to choose whether to enable semantic processing, which can improve performance.

    • Block CS0219 errors.

  • 2021/12/03
    • Fixed the bug of XML annotation compilation, support xml annotation file generation.

    • The Natasha compilation unit adds the SetDllFilePath/SetPdbFilePath/SetXmlFilePath method, and developers can create corresponding files on demand.

    • The Natasha compilation unit removes the AssemblyBuildKind enumeration, and the compilation output file is controlled by the developer.

    • The nullable reference switch of the Natasha compilation unit is off by default, and it is recommended to manually enable it in the case of manual string compilation.

  • 2021/11/26
    • Optimize the loading mode of plug-ins, add "blacklist" dependencies, and control the loading of plug-in dependencies.
  • 2021/11/16
    • Improve UT testing, add the principal agent to try to solve the problem of nullable reference pass invalidation.

    • Adjust the reflection logic of some APIs.

  • 2021/11/15
    • Compiler add nullable reference option switch, Add AssemblyCSharpBuilder extension method EnableNullableCompile/DisableNullableCompile.

    • Added nullable reference templates.

  • 2021/11/12
    • graft. NET6.0 Nullable Type Member Reflection API to NETCOREAPP 3.1 and NET5.0 Runtimes.

    • Added complex nullable reference UT test.

    • Added member nullable type inversion, event/field/property/parameter inverse.

  • 2021/11/10
    • Enable nullable references, refactor Natasha, and rewrite part of the exception handling logic.

    • Upgrade Natasha's dependency environment DotNetCore.SourceLink.Environment and DotNetCore.Compile.Environment.

    • Transform Natasha's msbuild build.

    • Upgrade dependencies and target frameworks to add . NET6.0 Support.

    • Upgrade dependencies to increase C#10 syntax support.

  • 2021/11/09
    • Project removal of support for core3.1 or later versions.

    • Accelerated initialization warm-up.

    • Upgrade Microsoft.Extensions.DependencyModel to version 6.0.

    • core3.1 compatible SkipLocalsInitAttribute properties.

    • The Natasha C# compiler added the SupportSkipLocalInit method to be compatible with Microsoft.Extensions.DependencyModel version 6.0 brings ambiguity referencing issues.

    • Compiler templates add APIs : ConfigComplier allows developers to configure the compiler.

    • Compiler Template Changes API : ConfigCompilation allows developers to configure compiler options.

    • Update the compilation binding ID.

v3.6.0.0

  • 2021/11/08
    • Remove some useless code and merge items.

    • Project removes support for the following versions of core3.1.

    • Accelerate initialization warm-up.

    • Add the parameters of the plug-in loading method, allowing the user to choose whether to load the full dependency reference. This parameter affects whether interfaces and abstract classes are defined in the primary domain when the plug-in is loaded into a non-primary domain.

    • Replace the syntax tree format API.

    • Supports the method of dynamically recording success logs, not logged by default, NDelegate/Nxx/. RandomDomain(item=>item. Disable/EnableSucceedLog()).

    • Log directory replaced by /log/to /NatashaLogs/

v3.5.0.0

  • 2021/09/07
    • Source code increases time-consuming echo in DEBUG mode.

    • Fix an error in the warm-up function that refers to initialization.

    • The latest version is archived in the Achive31 branch.

v3.4.0.0

  • 2021/08/16
    • DomainManagement optimizes initialization exception tips.

    • The antisyser repairs the anti-solution of the empty paradigm type.

    • Project archive to the Achive31 branch, future versions will start with core3.1 compatible.

v3.1.0.0

  • 2021/07/14
    • Restore supports versions above standard 2.0 and core2.0.

    • Optimize the plug-in reference management scheme of the DomainBase class, further unify reference management, and remove unnecessary exposure methods.

    • Optimize the implementation of Natasha AssemblyDomain, add the core3.0- version of dependency anti-solution, plug-in behavior is the same:

      • Core3.0 , which parses json files and loads assemblies, supports plug-ins that rely on file version overlays, and upgrades plug-in principals.

      • core3.0 - Scan only dll in the same directory and load assemblies, and cannot upgrade plug-in dependencies.

    • Optimize compilation processes and event calls.

    • Optimize the namespace deinterslating process, masking ExportEdTypes from exporting and throwing exceptions.

    • Optimize template class API naming and classification, distinguishing Set from Append operations.

    • Add named control content append templates, allowing developers to append code to the same namespace.

    • Increase the Syntax node of the Record data type to get the API automatically.

    • Rename the underlying class fields and events.

    • The Natasha.CSharp.Extension.InvisibleInstance extension complements the call chain with CS0103 errors.


v3.0.0.0

  • 2021/06/25
    • Refactoring the engine, adding semantic analysis APIs, user-writeable semantic parsing extensions, thanks to the powerful semantic analyzer, we have upgraded and refactored the compilation engine.

    • Built-in CS0246/CS0234 semantic analysis processor.

    • Removing CS0104 to Natasha.CSharp.Extension.Ambiguity extension package, we believe that ambiguous references should not become a common problem.

    • Added CS8019 useless using processing, thin generated code, post-processing script using for on-demand reference, what using script is required to automatically render what using.

    • Change the passer domain in the NDelegate action class to pass compiler, add the AddUsing API, although you may never use it.

    • Remove the standard2.0 support, change to netcoreapp2.0/2.1/2.2 specific version support.

    • Opened netcore2.1/2.2 version of anti-solution support for readonly / ref structures.

    • Release Natasha.CSharp.Extension.InvisibleInstance extension package, eliminating reference calls to the first parameter of the method in the script, such as: arg. Show can be written directly as Show.


v2.1.0.0

  • 2021/05/09
    • Optimize the engine, streamline the compilation process, remove infrequent events.

    • Domain additions AddReferenceFrom (Type/Type<T>/Assembly) 3 referenced APIs.

    • Anti-solver adds extension method:

      • GetDevelopNameWithoutFlag Gets Unmarked Type Name: System.Collections.Generic.List<>
      • GetDevelopName Get Full Type Name: System.Collections.Generic.List<T>
      • GetRuntimeName Gets Runtime Class Name: List<int>
    • Add strong names to compile.

    • Standardize file structure and secondary class naming.